# remirepo spec file for php-pecl-uopz # # Copyright (c) 2014-2017 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # %if 0%{?scl:1} %global sub_prefix %{scl_prefix} %scl_package php-pecl-uopz %endif %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global pecl_name uopz %global ini_name 05-%{pecl_name}.ini # see https://github.com/krakjoe/uopz/releases #global gh_commit c335700be4dc4350605bc4fb1efd8e96ba51b733 #global gh_short %%(c=ยต%{gh_commit}; echo ${c:0:7}) #global gh_owner krakjoe #global gh_project uopz Summary: User Operations for Zend Name: %{?sub_prefix}php-pecl-%{pecl_name} Version: 5.0.1 Release: 5%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} License: PHP Group: Development/Languages URL: http://pecl.php.net/package/%{pecl_name} %if 0%{?gh_commit:1} Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{gh_short}.tar.gz %else Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz %endif Patch0: %{pecl_name}-upstream.patch BuildRequires: %{?scl_prefix}php-devel > 7 BuildRequires: %{?scl_prefix}php-pear Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} %{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} Provides: %{?scl_prefix}php-%{pecl_name} = %{version} Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} %if "%{?scl_prefix}" != "%{?sub_prefix}" Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release} Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} %endif %if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} # Other third party repo stuff Obsoletes: php53-pecl-%{pecl_name} <= %{version} Obsoletes: php53u-pecl-%{pecl_name} <= %{version} Obsoletes: php54-pecl-%{pecl_name} <= %{version} Obsoletes: php54w-pecl-%{pecl_name} <= %{version} Obsoletes: php55u-pecl-%{pecl_name} <= %{version} Obsoletes: php55w-pecl-%{pecl_name} <= %{version} Obsoletes: php56u-pecl-%{pecl_name} <= %{version} Obsoletes: php56w-pecl-%{pecl_name} <= %{version} Obsoletes: php70u-pecl-%{pecl_name} <= %{version} Obsoletes: php70w-pecl-%{pecl_name} <= %{version} %if "%{php_version}" > "7.1" Obsoletes: php71u-pecl-%{pecl_name} <= %{version} Obsoletes: php71w-pecl-%{pecl_name} <= %{version} %endif %if "%{php_version}" > "7.2" Obsoletes: php72u-pecl-%{pecl_name} <= %{version} Obsoletes: php72w-pecl-%{pecl_name} <= %{version} %endif %endif %if 0%{?fedora} < 20 && 0%{?rhel} < 7 # Filter shared private %{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} %{?filter_setup} %endif %description User Operations for Zend: doing things you probably shouldn't since 2014. The uopz extension exposes Zend engine functionality normally used at compilation and execution time in order to allow modification of the internal structures that represent PHP code. It supports the following activities: - Overloading some Zend opcodes including exit/new and composure opcodes - Renaming functions and methods - Aliasing functions and methods - Deletion of functions and methods - Redefinition of constants - Deletion of constants - Runtime composition and modification of classes Documentation: http://php.net/uopz Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. %prep %setup -q -c %if 0%{?gh_commit:1} mv %{gh_project}-%{gh_commit} NTS # Temporary, until released on PECL %{__php} -r ' $pkg = simplexml_load_file("NTS/package.xml"); $pkg->date = "2016-04-12"; $pkg->version->release = "%{version}"; $pkg->version->release = "%{version}"; $pkg->stability->release = "beta"; $pkg->stability->api = "beta"; $pkg->asXML("package.xml"); ' %else mv %{pecl_name}-%{version} NTS %endif # Don't install/register tests sed -e 's/role="test"/role="src"/' \ %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ -i package.xml cd NTS %patch0 -p1 -b .upstream # Sanity check, really often broken extver=$(sed -n '/#define PHP_UOPZ_VERSION/{s/.* "//;s/".*$//;p}' uopz.h) if test "x${extver}" != "x%{version}"; then : Error: Upstream extension version is ${extver}, expecting %{version}. exit 1 fi cd .. # Create configuration files cat << EOF | tee %{ini_name} ; Enable '%{summary}' extension module extension=%{pecl_name}.so EOF %if %{with_zts} # Duplicate source tree for NTS / ZTS build cp -pr NTS ZTS %endif %build cd NTS %{_bindir}/phpize %configure \ --with-php-config=%{_bindir}/php-config make %{?_smp_mflags} %if %{with_zts} cd ../ZTS %{_bindir}/zts-phpize %configure \ --with-php-config=%{_bindir}/zts-php-config make %{?_smp_mflags} %endif %install make -C NTS install INSTALL_ROOT=%{buildroot} # install config file install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} # Install XML package description install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml %if %{with_zts} make -C ZTS install INSTALL_ROOT=%{buildroot} install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif # Documentation for i in $(grep 'role="doc"' package.xml | sed -e 's/^.*name="//;s/".*$//') do install -Dpm 644 NTS/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done %if 0%{?fedora} < 24 # when pear installed alone, after us %triggerin -- %{?scl_prefix}php-pear if [ -x %{__pecl} ] ; then %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : fi # posttrans as pear can be installed after us %posttrans if [ -x %{__pecl} ] ; then %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : fi %postun if [ $1 -eq 0 -a -x %{__pecl} ] ; then %{pecl_uninstall} %{pecl_name} >/dev/null || : fi %endif %check cd NTS : Minimal load test for NTS extension %{__php} --no-php-ini \ --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ --modules | grep %{pecl_name} : Upstream test suite for NTS extension TEST_PHP_EXECUTABLE=%{__php} \ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \ NO_INTERACTION=1 \ REPORT_EXIT_STATUS=1 \ %{__php} -n run-tests.php %if %{with_zts} cd ../ZTS : Minimal load test for ZTS extension %{__ztsphp} --no-php-ini \ --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ --modules | grep %{pecl_name} : Upstream test suite for ZTS extension TEST_PHP_EXECUTABLE=%{_bindir}/zts-php \ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \ NO_INTERACTION=1 \ REPORT_EXIT_STATUS=1 \ %{_bindir}/zts-php -n run-tests.php %endif %files %{?_licensedir:%license NTS/LICENSE} %doc %{pecl_docdir}/%{pecl_name} %{pecl_xmldir}/%{name}.xml %config(noreplace) %{php_inidir}/%{ini_name} %{php_extdir}/%{pecl_name}.so %if %{with_zts} %config(noreplace) %{php_ztsinidir}/%{ini_name} %{php_ztsextdir}/%{pecl_name}.so %endif %changelog * Fri Jun 23 2017 Remi Collet - 5.0.1-5 - add upstream patch for PHP 7.2 * Thu Dec 1 2016 Remi Collet - 5.0.1-4 - rebuild with PHP 7.1.0 GA * Wed Sep 14 2016 Remi Collet - 5.0.1-3 - rebuild for PHP 7.1 new API version * Thu Jun 9 2016 Remi Collet - 5.0.1-2 - add upstream patch for PHP 7.1 * Wed Apr 13 2016 Remi Collet - 5.0.1-1 - update to 5.0.1 * Wed Apr 13 2016 Remi Collet - 5.0.0-1 - update to 5.0.0 for PHP 7 - sources from github (not yet released on pecl) * Tue Mar 8 2016 Remi Collet - 2.0.7-2 - adapt for F24 * Wed Mar 04 2015 Remi Collet - 2.0.7-1 - Update to 2.0.7 - drop runtime dependency on pear, new scriptlets * Wed Dec 24 2014 Remi Collet - 2.0.6-1.1 - Fedora 21 SCL mass rebuild * Wed Oct 15 2014 Remi Collet - 2.0.6-1 - Update to 2.0.6 - don't provide test suite * Tue Aug 26 2014 Remi Collet - 2.0.5-2 - improve SCL build * Thu Jun 05 2014 Remi Collet - 2.0.5-1 - Update to 2.0.5 (stable) * Tue Apr 8 2014 Remi Collet - 2.0.4-2 - add numerical prefix to extension configuration files * Fri Apr 04 2014 Remi Collet - 2.0.4-1 - Update to 2.0.4 (stable) - improve uopz.ini (comments) * Thu Apr 03 2014 Remi Collet - 2.0.3-1 - Update to 2.0.3 (stable) * Wed Apr 02 2014 Remi Collet - 2.0.2-1 - Update to 2.0.2 (stable) * Tue Apr 01 2014 Remi Collet - 2.0.1-1 - Update to 2.0.1 (stable) * Mon Mar 31 2014 Remi Collet - 2.0.0-1 - Update to 2.0.0 (2014-03-31 06:00:49, stable) * Sun Mar 30 2014 Remi Collet - 1.0.11-1 - Update to 1.0.11 (2014-03-30 14:05:44, beta) * Fri Mar 28 2014 Remi Collet - 1.0.5-1 - Update to 1.0.5 (2014-03-28 00:48:31, beta) * Thu Mar 27 2014 Remi Collet - 1.0.4-1 - Update to 1.0.4 (2014-03-27 18:34:03, beta) * Thu Mar 27 2014 Remi Collet - 1.0.4-0 - pre-release test build * Tue Mar 25 2014 Remi Collet - 1.0.3-1 - Update to 1.0.3 (2014-03-24 19:37:04, beta) * Mon Mar 24 2014 Remi Collet - 1.0.2-1 - Update to 1.0.2 (2014-03-24 10:34:02, beta) * Mon Mar 24 2014 Remi Collet - 1.0.1-1 - Update to 1.0.1 (2014-03-23 19:03:27, beta) * Sun Mar 23 2014 Remi Collet - 1.0.0-1 - initial package, version 1.0.0 (12:55, beta)