From f5b315adb75b7d6d201a175156e804fa2f108bae Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 14 Jan 2014 18:03:32 +0100 Subject: php-pecl-rrd: 1.1.2 (stable) --- php-pecl-rrd.spec | 137 +++++++++++++++++++++++++++++++++++++----------------- rrd-svn.patch | 86 ++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+), 43 deletions(-) create mode 100644 rrd-svn.patch diff --git a/php-pecl-rrd.spec b/php-pecl-rrd.spec index 1db191d..1079c5f 100644 --- a/php-pecl-rrd.spec +++ b/php-pecl-rrd.spec @@ -6,42 +6,64 @@ # # Please, preserve the changelog entries # -%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}} +%{?scl: %scl_package php-pecl-rrd} +%{!?php_inidir: %global php_inidir %{_sysconfdir}/php.d} +%{!?__pecl: %global __pecl %{_bindir}/pecl} +%{!?__php: %global __php %{_bindir}/php} +%global with_zts 0%{?__ztsphp:1} %global pecl_name rrd Summary: PHP Bindings for rrdtool -Name: php-pecl-rrd -Version: 1.1.1 -Release: 1%{?dist}.1 +Name: %{?scl_prefix}php-pecl-rrd +Version: 1.1.2 +Release: 2%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} License: BSD Group: Development/Languages URL: http://pecl.php.net/package/rrd Source: http://pecl.php.net/get/%{pecl_name}-%{version}%{?pre}.tgz +# http://svn.php.net/viewvc?view=revision&revision=332619 +# fix build with rrdtool < 1.4 +Patch0: %{pecl_name}-svn.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: php-devel >= 5.3.2 +BuildRequires: %{?scl_prefix}php-devel >= 5.3.2 BuildRequires: rrdtool BuildRequires: rrdtool-devel >= 1.3.0 -BuildRequires: php-pear +BuildRequires: %{?scl_prefix}php-pear Requires(post): %{__pecl} Requires(postun): %{__pecl} -Requires: php(zend-abi) = %{php_zend_api} -Requires: php(api) = %{php_core_api} - -Conflicts: rrdtool-php -Provides: php-pecl(%{pecl_name}) = %{version}%{?pre} -Provides: php-pecl(%{pecl_name})%{?_isa} = %{version}%{?pre} -Provides: php-%{pecl_name} = %{version}%{?pre} -Provides: php-%{pecl_name}%{?_isa} = %{version}%{?pre} - - -# Filter private shared object -%{?filter_provides_in: %filter_provides_in %{_dir}/.*\.so$} +Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} +Requires: %{?scl_prefix}php(api) = %{php_core_api} + +Conflicts: %{?scl_prefix}rrdtool-php +Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version}%{?pre} +Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version}%{?pre} +Provides: %{?scl_prefix}php-%{pecl_name} = %{version}%{?pre} +Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version}%{?pre} + + +%if 0%{!?scl:1} +# Other third party repo stuff +%if "%{php_version}" > "5.4" +Obsoletes: php53-pecl-%{pecl_name} +Obsoletes: php53u-pecl-%{pecl_name} +Obsoletes: php54-pecl-%{pecl_name} +%endif +%if "%{php_version}" > "5.5" +Obsoletes: php55u-pecl-%{pecl_name} +%endif +%endif + +%if 0%{?fedora} < 20 +# Filter shared private +%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} %{?filter_setup} +%endif %description @@ -52,58 +74,79 @@ system for time series data. %prep %setup -c -q -cp -r %{pecl_name}-%{version}%{?pre} %{pecl_name}-%{version}-zts +mv %{pecl_name}-%{version} NTS -extver=$(sed -n '/#define PHP_RRD_VERSION/{s/.* "//;s/".*$//;p}' %{pecl_name}-%{version}%{?pre}/php_rrd.h) -if test "x${extver}" != "x%{version}%{?pre}"; then - : Error: Upstream version is ${extver}, expecting %{version}. - exit 1 -fi +cd NTS +%patch0 -p0 -b .svn +cd .. cat > %{pecl_name}.ini << 'EOF' ; Enable %{pecl_name} extension module extension=%{pecl_name}.so EOF +%if %{with_zts} +cp -r NTS ZTS +%endif + %build -cd %{pecl_name}-%{version}%{?pre} +cd NTS %{_bindir}/phpize %configure --with-php-config=%{_bindir}/php-config make %{?_smp_mflags} -cd ../%{pecl_name}-%{version}-zts +%if %{with_zts} +cd ../ZTS %{_bindir}/zts-phpize %configure --with-php-config=%{_bindir}/zts-php-config make %{?_smp_mflags} +%endif %install rm -rf %{buildroot} -make install -C %{pecl_name}-%{version}%{?pre} INSTALL_ROOT=%{buildroot} -make install -C %{pecl_name}-%{version}-zts INSTALL_ROOT=%{buildroot} +make install -C NTS INSTALL_ROOT=%{buildroot} # Drop in the bit of configuration install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_inidir}/%{pecl_name}.ini -install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_ztsinidir}/%{pecl_name}.ini # Install XML package description install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml +%if %{with_zts} +make install -C ZTS INSTALL_ROOT=%{buildroot} +install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_ztsinidir}/%{pecl_name}.ini +%endif + +# Test & Documentation +for i in $(grep 'role="test"' package.xml | sed -e 's/^.*name="//;s/".*$//') +do install -Dpm 644 NTS/$i %{buildroot}%{pecl_testdir}/%{pecl_name}/$i +done +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 + %check +%if %{with_zts} %{__ztsphp} --no-php-ini \ - --define extension_dir=%{pecl_name}-%{version}-zts/modules \ - --define extension=%{pecl_name}.so \ + --define extension=ZTS/modules/%{pecl_name}.so \ --modules | grep %{pecl_name} +%endif -cd %{pecl_name}-%{version}%{?pre} +cd NTS %{__php} --no-php-ini \ - --define extension_dir=modules \ - --define extension=%{pecl_name}.so \ + --define extension=modules/%{pecl_name}.so \ --modules | grep %{pecl_name} +%if 0%{?fedora} < 14 && 0%{?rhel} < 7 + # skip tests which only succeed with rrdtool > 1.4.0 + rm tests/rrd_012.phpt \ + tests/rrd_017.phpt +%endif + make -C tests/data clean make -C tests/data all make test NO_INTERACTION=1 | tee rpmtests.log @@ -114,12 +157,7 @@ if grep -q "FAILED TEST" rpmtests.log; then diff -u tests/$(basename $t .diff).exp tests/$(basename $t .diff).out || : done - # tests only succeed with some rrdtool version (> 1.4.0 but < 1.4.7) - # because of difference between image size / position - # http://pecl.php.net/bugs/22642 - - # only consider result of rrd_version test - [ -f tests/rrd_020.diff ] && exit 1 + exit 1 fi @@ -139,15 +177,28 @@ fi %files %defattr(-, root, root, -) -%doc %{pecl_name}-%{version}%{?pre}/{CREDITS,LICENSE} +%doc %{pecl_docdir}/%{pecl_name} +%doc %{pecl_testdir}/%{pecl_name} %config(noreplace) %{php_inidir}/%{pecl_name}.ini -%config(noreplace) %{php_ztsinidir}/%{pecl_name}.ini %{php_extdir}/%{pecl_name}.so -%{php_ztsextdir}/%{pecl_name}.so %{pecl_xmldir}/%{name}.xml +%if %{with_zts} +%config(noreplace) %{php_ztsinidir}/%{pecl_name}.ini +%{php_ztsextdir}/%{pecl_name}.so +%endif + %changelog +* Tue Jan 14 2014 Remi Collet - 1.1.2-2 +- fix upstream patch + +* Tue Jan 14 2014 Remi Collet - 1.1.2-1 +- Update to 1.1.2 (stable) +- install doc in pecl doc_dir +- install tests in pecl test_dir +- adapt for SCL + * Mon Sep 09 2013 Remi Collet - 1.1.1-1 - Update to 1.1.1 diff --git a/rrd-svn.patch b/rrd-svn.patch new file mode 100644 index 0000000..8e95bcf --- /dev/null +++ b/rrd-svn.patch @@ -0,0 +1,86 @@ +Index: config.m4 +=================================================================== +--- config.m4 (révision 332618) ++++ config.m4 (copie de travail) +@@ -67,6 +67,9 @@ + dnl rrd_lastupdate_r available in 1.4.0+ + PHP_CHECK_FUNC(rrd_lastupdate_r, rrd) + ++ dnl rrd_disconnect available in 1.4.0+ ++ PHP_CHECK_FUNC(rrdc_disconnect, rrd) ++ + LDFLAGS=$old_LDFLAGS + + PHP_NEW_EXTENSION(rrd, rrd.c rrd_graph.c rrd_create.c rrd_update.c rrd_info.c, $ext_shared) +Index: rrd.c +=================================================================== +--- rrd.c (révision 332618) ++++ rrd.c (copie de travail) +@@ -481,6 +481,7 @@ + } + /* }}} */ + ++#ifdef HAVE_RRDC_DISCONNECT + /* {{{ proto void rrdc_disconnect() + * Close any outstanding connection to rrd cache daemon. + */ +@@ -492,6 +493,7 @@ + + rrdc_disconnect(); + } ++#endif + + /* {{{ proto string rrd_version() + * Gets version of underlying librrd. +@@ -573,7 +575,9 @@ + PHP_FE(rrd_restore, arginfo_rrd_restore) + PHP_FE(rrd_tune, arginfo_rrd_tune) + PHP_FE(rrd_xport, arginfo_rrd_xport) ++#ifdef HAVE_RRDC_DISCONNECT + PHP_FE(rrdc_disconnect, NULL) ++#endif + PHP_FE(rrd_version, NULL) + {NULL, NULL, NULL} + }; +@@ -609,7 +613,9 @@ + static PHP_MSHUTDOWN_FUNCTION(rrd) + { + /* ensure that any connection to rrd cache deamon will be closed */ ++#ifdef HAVE_RRDC_DISCONNECT + rrdc_disconnect(); ++#endif + return SUCCESS; + } + /* }}} */ +Index: tests/rrd_012.phpt +=================================================================== +--- tests/rrd_012.phpt (révision 332618) ++++ tests/rrd_012.phpt (copie de travail) +@@ -11,6 +11,8 @@ + --FILE-- + +Index: tests/rrd_022.phpt +=================================================================== +--- tests/rrd_022.phpt (révision 332618) ++++ tests/rrd_022.phpt (copie de travail) +@@ -1,7 +1,13 @@ + --TEST-- + rrdc_disconnect test + --SKIPIF-- +- ++= 1.4"); ++} ++ ++?> + --FILE-- +