From 4cc8c9649a1f9ce5d260566ca8efe088b6507137 Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Wed, 8 Feb 2017 13:04:58 +0000 Subject: [PATCH] - full versioning, always use alternatives to set default PHP --- php-builddir.patch | 24 ------- php-libtool.patch | 4 +- php.spec | 172 +++++++++++++++++++++------------------------ 3 files changed, 82 insertions(+), 118 deletions(-) delete mode 100644 php-builddir.patch diff --git a/php-builddir.patch b/php-builddir.patch deleted file mode 100644 index 783dc2b..0000000 --- a/php-builddir.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -urbB php-5.0.5.org/scripts/Makefile.frag php-5.0.5/scripts/Makefile.frag ---- php-5.0.5.org/scripts/Makefile.frag 2005-09-10 21:29:04.884122000 +0200 -+++ php-5.0.5/scripts/Makefile.frag 2005-09-10 21:30:09.333324848 +0200 -@@ -4,7 +4,7 @@ - # - - phpincludedir = $(includedir)/php --phpbuilddir = $(libdir)/build -+phpbuilddir = $(libdir)/php/build - - BUILD_FILES = \ - scripts/phpize.m4 \ -diff -urbB php-5.0.5.org/scripts/phpize.in php-5.0.5/scripts/phpize.in ---- php-5.0.5.org/scripts/phpize.in 2005-06-15 19:19:41.000000000 +0200 -+++ php-5.0.5/scripts/phpize.in 2005-09-10 21:51:45.523274024 +0200 -@@ -3,7 +3,7 @@ - # Variable declaration - prefix='@prefix@' - exec_prefix="`eval echo @exec_prefix@`" --phpdir="`eval echo @libdir@`/build" -+phpdir="`eval echo @libdir@`/php/build" - includedir="`eval echo @includedir@`/php" - builddir="`pwd`" - diff --git a/php-libtool.patch b/php-libtool.patch index f9713d8..c95f37f 100644 --- a/php-libtool.patch +++ b/php-libtool.patch @@ -2,8 +2,8 @@ +++ php-5.4.6/scripts/phpize.in 2012-08-23 10:16:37.011306948 +0300 @@ -6,10 +6,16 @@ exec_prefix="`eval echo @exec_prefix@`" - phpdir="`eval echo @libdir@`/php/build" - includedir="`eval echo @includedir@`/php" + phpdir="`eval echo @libdir@`/php/php@program_suffix@/build" + includedir="`eval echo @includedir@`/php/php@program_suffix@" +aclocaldir="$prefix/share/aclocal" builddir="`pwd`" SED="@SED@" diff --git a/php.spec b/php.spec index 3118228..11db953 100644 --- a/php.spec +++ b/php.spec @@ -24,9 +24,6 @@ # standard # # Conditional build: -# - packaging options -%bcond_without alternatives # use alternatives system to select default phar and php-fpm -%bcond_with default_php # build this PHP as default PHP in system (disables alternatives) # - General options: %bcond_without embed # disable building Embedded API %bcond_with gcov # Enable Code coverage reporting @@ -111,10 +108,6 @@ %undefine with_litespeed %endif -%if %{with default_php} -%undefine with_alternatives -%endif - # mm is not thread safe %if %{with zts} %undefine with_mm @@ -141,8 +134,7 @@ %endif %define orgname php -%define ver_suffix 70 -%define php_suffix %{!?with_default_php:%{ver_suffix}} +%define php_suffix 70 Summary: PHP: Hypertext Preprocessor Summary(fr.UTF-8): Le langage de script embarque-HTML PHP Summary(pl.UTF-8): Język skryptowy PHP @@ -151,7 +143,7 @@ Summary(ru.UTF-8): PHP Версии 7 - язык препроцессирова Summary(uk.UTF-8): PHP Версії 7 - мова препроцесування HTML-файлів, виконувана на сервері Name: %{orgname}%{php_suffix} Version: 7.0.15 -Release: 1 +Release: 1.1 Epoch: 4 # All files licensed under PHP version 3.01, except # Zend is licensed under Zend @@ -186,7 +178,7 @@ Patch17: %{orgname}-readline.patch Patch18: %{orgname}-nohttpd.patch Patch21: %{orgname}-dba-link.patch Patch22: %{orgname}-both-apxs.patch -Patch23: %{orgname}-builddir.patch +Patch23: %{orgname}-paths.patch Patch24: %{orgname}-zlib-for-getimagesize.patch Patch25: %{orgname}-stupidapache_version.patch Patch26: %{orgname}-pear.patch @@ -258,7 +250,6 @@ BuildRequires: libpng-devel >= 1.0.8 %{?with_webp:BuildRequires: libwebp-devel} BuildRequires: tokyocabinet-devel BuildRequires: libtool >= 2:2.4.6 -%endif BuildRequires: libxml2-devel >= 1:2.7.6-4 BuildRequires: libxslt-devel >= 1.1.0 %{?with_mm:BuildRequires: mm-devel >= 1.3.0} @@ -298,6 +289,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define php_sysconfdir /etc/%{name} %define php_extensiondir %{_libdir}/%{name} +%define php_datadir /usr/share/%{name} %define _sysconfdir %{php_sysconfdir} # must be in sync with source. extra check ensuring that it is so is done in %%build @@ -438,7 +430,7 @@ Summary: PHP as CLI interpreter Summary(pl.UTF-8): PHP jako interpreter działający z linii poleceń Group: Development/Languages/PHP Requires: %{name}-common = %{epoch}:%{version}-%{release} -Provides: php-program +Requires: alternatives Obsoletes: php-cli < 4:5.3.28-7 %description cli @@ -472,7 +464,7 @@ Requires(postun): /usr/sbin/userdel Requires(pre): /bin/id Requires(pre): /usr/sbin/useradd Requires: %{name}-common = %{epoch}:%{version}-%{release} -%{?with_alternatives:Requires: alternatives} +Requires: alternatives Requires: php-dirs >= 1.4-2 Requires: rc-scripts Provides: php(fcgi) @@ -591,8 +583,6 @@ Obsoletes: php52-devel Obsoletes: php53-devel Obsoletes: php54-devel Obsoletes: php55-devel -Obsoletes: php56-devel -Obsoletes: php71-devel %description devel The php-devel package lets you compile dynamic extensions to PHP. @@ -1457,7 +1447,7 @@ URL: http://php.net/manual/en/book.phar.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-hash = %{epoch}:%{version}-%{release} Requires: %{name}-spl = %{epoch}:%{version}-%{release} -%{?with_alternatives:Requires: alternatives} +Requires: alternatives Suggests: %{name}-cli # zlib is required by phar program, but as phar cli is optional should the dep be too Suggests: %{name}-zlib @@ -2255,10 +2245,12 @@ for sapi in $sapis; do %configure \ EXTRA_LDFLAGS="%{rpmldflags}" \ + --program-suffix=%{php_suffix} \ $sapi_args \ %if "%{!?configure_cache:0}%{?configure_cache}" == "0" --cache-file=config.cache \ %endif + --datadir=%{php_datadir} \ --with-libdir=%{_lib} \ --with-config-file-path=%{_sysconfdir} \ --with-config-file-scan-dir=%{_sysconfdir}/conf.d \ @@ -2515,17 +2507,13 @@ cp -pf Makefile.cli Makefile phpbuilddir=%{_libdir}/%{name}/build \ INSTALL_ROOT=$RPM_BUILD_ROOT -%if %{without default_php} # version the .phar files %{__mv} $RPM_BUILD_ROOT%{_bindir}/phar{,%{php_suffix}}.phar %{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/phar{,%{php_suffix}}.1 -%endif -%if %{with alternatives} # touch for ghost %{__rm} $RPM_BUILD_ROOT%{_bindir}/phar touch $RPM_BUILD_ROOT%{_bindir}/phar touch $RPM_BUILD_ROOT%{_mandir}/man1/phar.1 -%endif # version suffix v=$(echo %{version} | cut -d. -f1-2) @@ -2546,14 +2534,14 @@ libtool --mode=install install -p sapi/litespeed/php $RPM_BUILD_ROOT%{_sbindir}/ %{__make} -f Makefile.phpdbg install-phpdbg \ INSTALL="libtool --mode=install install -p" \ INSTALL_ROOT=$RPM_BUILD_ROOT - -%if %{without default_php} -# version the phpdbg files -%{__mv} $RPM_BUILD_ROOT%{_bindir}/phpdbg{,%{ver_suffix}} -%{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/phpdbg{,%{ver_suffix}}.1 -%endif %endif +# touch for ghost +touch $RPM_BUILD_ROOT%{_bindir}/phpize +touch $RPM_BUILD_ROOT%{_mandir}/man1/phpize.1 +touch $RPM_BUILD_ROOT%{_bindir}/php-config +touch $RPM_BUILD_ROOT%{_mandir}/man1/php-config.1 + %if %{with milter} %{__make} -f Makefile.milter install-milter \ INSTALL_ROOT=$RPM_BUILD_ROOT @@ -2581,10 +2569,8 @@ install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-fpm install -d $RPM_BUILD_ROOT/etc/logrotate.d cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-fpm -%if %{with alternatives} # touch for ghost for alternatives touch $RPM_BUILD_ROOT%{_sbindir}/php-fpm -%endif %{__sed} -i -e ' s#/usr/lib/php#%{php_extensiondir}#g @@ -2597,24 +2583,15 @@ touch $RPM_BUILD_ROOT%{_sbindir}/php-fpm %if %{with embed} # we could use install-headers from Makefile.embed, but that would reinstall all headers # install-sapi installs to wrong dir, so just do it all manually -install -d $RPM_BUILD_ROOT%{_includedir}/php/sapi/embed +install -d $RPM_BUILD_ROOT%{_includedir}/php/php%{php_suffix}/sapi/embed install -p libs/libphp7.so $RPM_BUILD_ROOT%{_libdir} -cp -p sapi/embed/php_embed.h $RPM_BUILD_ROOT%{_includedir}/php/sapi/embed +cp -p sapi/embed/php_embed.h $RPM_BUILD_ROOT%{_includedir}/php/php%{php_suffix}/sapi/embed %endif -# install CLI -# versioned suffix is always installed -libtool --mode=install install -p sapi/cli/php $RPM_BUILD_ROOT%{_bindir}/php%{ver_suffix} -cp -p sapi/cli/php.1 $RPM_BUILD_ROOT%{_mandir}/man1/php%{ver_suffix}.1 - -%if %{with default_php} -# man for php -echo ".so php%{ver_suffix}.1" >$RPM_BUILD_ROOT%{_mandir}/man1/php.1 -# link as /usr/bin/php -ln -sf php%{ver_suffix} $RPM_BUILD_ROOT%{_bindir}/php -# php.cli link for backward compatibility -ln -sf php $RPM_BUILD_ROOT%{_bindir}/php.cli -%endif +# CLI +# touch for ghost +touch $RPM_BUILD_ROOT%{_bindir}/php +touch $RPM_BUILD_ROOT%{_mandir}/man1/php.1 cp -p php.ini $RPM_BUILD_ROOT%{_sysconfdir}/php.ini cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/php-cli.ini @@ -2655,16 +2632,16 @@ for fn in ltmain.sh config/ltmain.sh build-aux/ltmain.sh; do ln -snf $f $RPM_BUILD_ROOT%{_libdir}/%{name}/build break done -sed -i -e '/^phpdir/ s,/php/build,/%{name}/build,' $RPM_BUILD_ROOT%{_bindir}/phpize +sed -i -e '/^phpdir/ s,/php/build,/%{name}/build,' $RPM_BUILD_ROOT%{_bindir}/phpize%{php_suffix} # for php-pecl-mailparse -install -d $RPM_BUILD_ROOT%{_includedir}/php/ext/mbstring -cp -p ext/mbstring/libmbfl/mbfl/*.h $RPM_BUILD_ROOT%{_includedir}/php/ext/mbstring +install -d $RPM_BUILD_ROOT%{_includedir}/php/php%{php_suffix}/ext/mbstring +cp -p ext/mbstring/libmbfl/mbfl/*.h $RPM_BUILD_ROOT%{_includedir}/php/php%{php_suffix}/ext/mbstring # tests -install -d $RPM_BUILD_ROOT%{php_data_dir}/tests/php -install -p run-tests.php $RPM_BUILD_ROOT%{php_data_dir}/tests/php/run-tests.php -cp -a tests/* $RPM_BUILD_ROOT%{php_data_dir}/tests/php +install -d $RPM_BUILD_ROOT%{php_datadir}/tests/php +install -p run-tests.php $RPM_BUILD_ROOT%{php_datadir}/tests/php/run-tests.php +cp -a tests/* $RPM_BUILD_ROOT%{php_datadir}/tests/php # fix install paths, avoid evil rpaths sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_common.la @@ -2684,23 +2661,43 @@ if [ "$1" = "0" ]; then %service -q httpd restart fi +%post cli +update-alternatives \ + --install %{_bindir}/php php %{_bindir}/php%{php_suffix} %{php_suffix} \ + --slave %{_mandir}/man1/php.1 php.1 %{_mandir}/man1/php%{php_suffix}.1* || : + +%postun cli +if [ $1 -eq 0 ]; then + update-alternatives --remove php %{_bindir}/php || : +fi + +%post devel +update-alternatives \ + --install %{_bindir}/phpize phpize %{_bindir}/phpize%{php_suffix} %{php_suffix} \ + --slave %{_mandir}/man1/php.1 php.1 %{_mandir}/man1/php%{php_suffix}.1* || : +update-alternatives \ + --install %{_bindir}/php-config php-config %{_bindir}/php-config%{php_suffix} %{php_suffix} \ + --slave %{_mandir}/man1/php.1 php.1 %{_mandir}/man1/php%{php_suffix}.1* || : + +%postun devel +if [ $1 -eq 0 ]; then + update-alternatives --remove phpize %{_bindir}/phpize || : + update-alternatives --remove php-config %{_bindir}/php-config || : +fi + %pre fpm %useradd -u 51 -r -s /bin/false -c "HTTP User" -g http http %post fpm /sbin/chkconfig --add %{name}-fpm %service %{name}-fpm restart -%if %{with alternatives} -update-alternatives --install %{_sbindir}/php-fpm php-fpm %{_sbindir}/php%{ver_suffix}-fpm %{ver_suffix} || : -%endif +update-alternatives --install %{_sbindir}/php-fpm php-fpm %{_sbindir}/php%{php_suffix}-fpm %{php_suffix} || : %preun fpm if [ "$1" = "0" ]; then %service %{name}-fpm stop /sbin/chkconfig --del %{name}-fpm -%if %{with alternatives} update-alternatives --remove php-fpm %{_sbindir}/php-fpm || : -%endif fi %postun fpm @@ -2856,19 +2853,15 @@ fi \ %post phar %ext_post -%if %{with alternatives} update-alternatives \ - --install %{_bindir}/phar phar %{_bindir}/phar%{ver_suffix}.phar %{ver_suffix} \ - --slave %{_mandir}/man1/phar.1 phar.1 %{_mandir}/man1/phar%{ver_suffix}.1* || : -%endif + --install %{_bindir}/phar phar %{_bindir}/phar%{php_suffix}.phar %{php_suffix} \ + --slave %{_mandir}/man1/phar.1 phar.1 %{_mandir}/man1/phar%{php_suffix}.1* || : %postun phar %ext_postun -%if %{with alternatives} if [ $1 -eq 0 ]; then update-alternatives --remove phar %{_bindir}/phar || : fi -%endif %if %{with apache2} %files -n apache-mod_%{name} @@ -2905,13 +2898,10 @@ fi %defattr(644,root,root,755) %dir %{_sysconfdir}/cli.d %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-cli.ini -%attr(755,root,root) %{_bindir}/php%{ver_suffix} -%{_mandir}/man1/php%{ver_suffix}.1* -%if %{with default_php} -%attr(755,root,root) %{_bindir}/php -%attr(755,root,root) %{_bindir}/php.cli -%{_mandir}/man1/php.1* -%endif +%attr(755,root,root) %{_bindir}/php%{php_suffix} +%{_mandir}/man1/php%{php_suffix}.1* +%ghost %{_bindir}/php +%ghost %{_mandir}/man1/php.1* %if %{with fpm} %files fpm @@ -2921,9 +2911,7 @@ fi %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-fpm.conf %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-fpm.d/www.conf %attr(755,root,root) %{_sbindir}/%{name}-fpm -%if %{with alternatives} %ghost %{_sbindir}/php-fpm -%endif %{_mandir}/man8/%{name}-fpm.8* %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}-fpm %attr(754,root,root) /etc/rc.d/init.d/%{name}-fpm @@ -2956,14 +2944,18 @@ fi %files devel %defattr(644,root,root,755) %doc CODING_STANDARDS README.{EXT_SKEL,PARAMETER_PARSING_API,SELF-CONTAINED-EXTENSIONS,STREAMS,SUBMITTING_PATCH,TESTING,TESTING2,UNIX-BUILD-SYSTEM,input_filter} -%attr(755,root,root) %{_bindir}/phpize -%attr(755,root,root) %{_bindir}/php-config +%attr(755,root,root) %{_bindir}/phpize%{php_suffix} +%attr(755,root,root) %{_bindir}/php-config%{php_suffix} +%ghost %{_bindir}/phpize +%ghost %{_bindir}/php-config %attr(755,root,root) %{_libdir}/libphp_common.so %{_libdir}/libphp_common.la -%{_includedir}/php +%{_includedir}/php/php%{php_suffix} %{_libdir}/%{name}/build -%{_mandir}/man1/php-config.1* -%{_mandir}/man1/phpize.1* +%{_mandir}/man1/php-config%{php_suffix}.1* +%ghost %{_mandir}/man1/php-config.1* +%{_mandir}/man1/phpize%{php_suffix}.1* +%ghost %{_mandir}/man1/phpize.1* %if %{with bcmath} %files bcmath @@ -3302,12 +3294,8 @@ fi %attr(755,root,root) %{_bindir}/phar%{php_suffix}.phar %{_mandir}/man1/phar%{php_suffix}.1* %{_mandir}/man1/phar.phar.1* -%if %{with alternatives} %ghost %{_bindir}/phar -%ghost %{_mandir}/man1/phar.1 -%else -%attr(755,root,root) %{_bindir}/phar -%endif +%ghost %{_mandir}/man1/phar.1* %endif %if %{with posix} @@ -3419,18 +3407,18 @@ fi %files tests %defattr(644,root,root,755) -%dir %{php_data_dir}/tests -%dir %{php_data_dir}/tests/php -%{php_data_dir}/tests/php/basic -%{php_data_dir}/tests/php/classes -%{php_data_dir}/tests/php/func -%{php_data_dir}/tests/php/lang -%{php_data_dir}/tests/php/output -%{php_data_dir}/tests/php/run-test -%{php_data_dir}/tests/php/security -%{php_data_dir}/tests/php/strings -%{php_data_dir}/tests/php/quicktester.inc -%attr(755,root,root) %{php_data_dir}/tests/php/run-tests.php +%dir %{php_datadir}/tests +%dir %{php_datadir}/tests/php +%{php_datadir}/tests/php/basic +%{php_datadir}/tests/php/classes +%{php_datadir}/tests/php/func +%{php_datadir}/tests/php/lang +%{php_datadir}/tests/php/output +%{php_datadir}/tests/php/run-test +%{php_datadir}/tests/php/security +%{php_datadir}/tests/php/strings +%{php_datadir}/tests/php/quicktester.inc +%attr(755,root,root) %{php_datadir}/tests/php/run-tests.php %if %{with tidy} %files tidy -- 2.46.0