%define upstream_name phpMyAdmin Summary: Handles the administration of MySQL over the web Name: phpmyadmin Version: 4.1.7 Release: %mkrel 1 License: GPLv2 Group: System/Servers URL: http://www.phpmyadmin.net/ Source0: http://prdownloads.sourceforge.net/phpmyadmin/%{upstream_name}-%{version}-all-languages.tar.xz Source1: phpmyadmin-16x16.png Source2: phpmyadmin-32x32.png Source3: phpmyadmin-48x48.png Source4: phpmyadmin.conf Patch0: phpMyAdmin-4.0.0-default_config.diff Patch1: phpMyAdmin-4.0.0-external_phpseclib.diff Requires: apache-mod_php Requires: php-mysqli Requires: php-mbstring Requires: php-mcrypt BuildArch: noarch Obsoletes: phpMyAdmin # used by setup Suggests: php-bz2 php-zip # parts of phpseclib is bundled in libraries/phpseclib/Crypt, but is incomplete # http://sourceforge.net/projects/phpseclib/ Requires: phpseclib %description phpMyAdmin is intended to handle the administration of MySQL over the web. Currently it can : create and drop databases, create, copy, drop and alter tables, delete, edit and add fields, execute any SQL-statement, even batch-queries, manage keys on fields, load text files into tables, create and read dumps of tables, export data to CSV value, administer multiple servers and single databases. %prep %setup -q -n %{upstream_name}-%{version}-all-languages %patch0 -p0 # Setup vendor config file sed -e "/'CHANGELOG_FILE'/s@./ChangeLog@%{_datadir}/doc/%{name}/ChangeLog@" \ -e "/'LICENSE_FILE'/s@./LICENSE@%{_datadir}/doc/%{name}/LICENSE@" \ -e "/'CONFIG_DIR'/s@'./'@'%{_sysconfdir}/%{name}/'@" \ -e "/'SETUP_CONFIG_FILE'/s@./config/config.inc.php@%{_localstatedir}/lib/%{name}/config/config.inc.php@" \ -i libraries/vendor_config.php %build %install export DONT_RELINK=1 install -d %{buildroot}%{_sysconfdir}/%{name} install -d %{buildroot}%{_datadir}/%{name} cp -aRf * %{buildroot}%{_datadir}/%{name}/ # cleanup pushd %{buildroot}%{_datadir}/%{name} rm -f CREDITS ChangeLog Documentation.txt INSTALL LICENSE README rm -f README.VENDOR RELEASE-DATE-* TODO rm -rf scripts rm -rf contrib rm -rf doc rm -f lang/*.sh libraries/transformations/*.sh rm -rf libraries/phpseclib rm -rf phpunit.xml.nocoverage # nuke the patch backup, if any rm -f config.sample.inc.php.* find -name "\.htaccess" | xargs rm -f popd # fix docs install -d %{buildroot}%{_datadir}/%{name}/doc/html/_static install -m0644 doc/html/*.html doc/html/*.js %{buildroot}%{_datadir}/%{name}/doc/html/ install -m0644 doc/html/_static/* %{buildroot}%{_datadir}/%{name}/doc/html/_static/ # fix config file location # keep the "config.inc.php" file name as this is hard coded everywhere. mv %{buildroot}%{_datadir}/%{name}/config.sample.inc.php \ %{buildroot}%{_sysconfdir}/%{name}/config.inc.php chmod 640 %{buildroot}%{_sysconfdir}/%{name}/config.inc.php install -d %{buildroot}%{_localstatedir}/lib/%{name}/{upload,save,config} cat > README.urpmi << EOF The actual configuration file is /etc/phpmyadmin/config.inc.php The %{_datadir}/%{name}/config.default.inc.php file contains default values, and is not supposed to be modified. EOF # new Icons install -d %{buildroot}%{_iconsdir} install -d %{buildroot}%{_miconsdir} install -d %{buildroot}%{_liconsdir} install -m0644 %{SOURCE1} %{buildroot}%{_miconsdir}/%{name}.png install -m0644 %{SOURCE2} %{buildroot}%{_iconsdir}/%{name}.png install -m0644 %{SOURCE3} %{buildroot}%{_liconsdir}/%{name}.png # install menu entry. # XDG menu install -d %{buildroot}%{_datadir}/applications cat > %{buildroot}%{_datadir}/applications/%{_real_vendor}-%{name}.desktop << EOF [Desktop Entry] Name=phpMyAdmin Comment=%{summary} Exec=%{_bindir}/www-browser http://localhost/%{name}/ Icon=%{name} Terminal=false Type=Application Categories=X-MandrivaLinux-MoreApplications-Databases; EOF install -d -m 755 %{buildroot}%{_webappconfdir} install -m0644 %{SOURCE4} %{buildroot}%{_webappconfdir}/%{name}.conf # fix borked permissions find %{buildroot}%{_datadir}/%{name} -type d -exec chmod 755 {} \; find %{buildroot}%{_datadir}/%{name} -type f -exec chmod 644 {} \; %pretrans # fix configuration file name change if [ -f %{_sysconfdir}/phpmyadmin/config.default.php ]; then mv %{_sysconfdir}/phpmyadmin/config.default.php \ %{_sysconfdir}/phpmyadmin/config.php fi # use the default file name if [ -f %{_sysconfdir}/phpmyadmin/config.php ]; then mv %{_sysconfdir}/phpmyadmin/config.php \ %{_sysconfdir}/phpmyadmin/config.inc.php fi if [ -L /var/www/phpmyadmin/libraries/config.default.php ]; then rm -f /var/www/phpmyadmin/libraries/config.default.php fi if [ -L %{_datadir}/phpmyadmin/libraries/config.default.php ]; then rm -f %{_datadir}/phpmyadmin/libraries/config.default.php fi %post # generate random secret secret=%_get_password 46 # blowfish secret perl -pi \ -e "s|\\\$cfg\\['blowfish_secret'\\] = ''|\\\$cfg\\['blowfish_secret'\\] = '$secret'|" \ %{_sysconfdir}/%{name}/config.inc.php %files %doc ChangeLog LICENSE README RELEASE-DATE-* README.urpmi %config(noreplace) %{webappconfdir}/%{name}.conf %dir %{_sysconfdir}/%{name} %attr(-,root,apache) %config(noreplace) %{_sysconfdir}/%{name}/config.inc.php %{_datadir}/%{name} %dir %{_localstatedir}/lib/%{name}/ %dir %attr(0755,apache,apache) %{_localstatedir}/lib/%{name}/upload %dir %attr(0755,apache,apache) %{_localstatedir}/lib/%{name}/save %dir %attr(0755,apache,apache) %{_localstatedir}/lib/%{name}/config %{_iconsdir}/%{name}.png %{_miconsdir}/%{name}.png %{_liconsdir}/%{name}.png %{_datadir}/applications/*.desktop