[php-pecl-solr] - add numerical prefix to extension configuration file (php 5.6) - install doc in pecl_docdir - inst

Remi Collet remi at fedoraproject.org
Thu Apr 24 08:05:15 UTC 2014


commit 01e1768e218f85512a849650a297c3d933a7d712
Author: Remi Collet <remi at fedoraproject.org>
Date:   Thu Apr 24 10:05:08 2014 +0200

    - add numerical prefix to extension configuration file (php 5.6)
    - install doc in pecl_docdir
    - install tests in pecl_testdir
    - build ZTS extension

 .gitignore         |    3 +-
 php-pecl-solr.spec |  169 ++++++++++++++++++++++++++++++++++++++--------------
 xml2changelog      |   34 -----------
 3 files changed, 125 insertions(+), 81 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index fcf514d..d1b48c1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-*~
-package-*.xml
+clog
 /solr-1.0.1.tgz
 /solr-1.0.2.tgz
diff --git a/php-pecl-solr.spec b/php-pecl-solr.spec
index e776a23..a21c527 100644
--- a/php-pecl-solr.spec
+++ b/php-pecl-solr.spec
@@ -1,35 +1,67 @@
-%{!?__pecl:     %{expand: %%global __pecl     %{_bindir}/pecl}}
-%{!?php_extdir: %{expand: %%global php_extdir %(php-config --extension-dir)}}
+# spec file for php-pecl-solr
+#
+# Copyright (c) 2011-2014 Remi Collet
+# Copyright (c) 2010 Johan Cwiklinski
+# License: CC-BY-SA
+# http://creativecommons.org/licenses/by-sa/3.0/
+#
+# Please, preserve the changelog entries
+#
+%{!?php_inidir:  %global php_inidir   %{_sysconfdir}/php.d}
+%{!?__pecl:      %global __pecl       %{_bindir}/pecl}
+%{!?__php:       %global __php        %{_bindir}/php}
 
 %global pecl_name solr
+%global with_zts  0%{?__ztsphp:1}
+%if 0%{?fedora} < 21
+# After curl, json
+%global ini_name  %{pecl_name}.ini
+%else
+# After 20-curl, 40-json
+%global ini_name  50-%{pecl_name}.ini
+%endif
 
 Summary:        Object oriented API to Apache Solr
 Summary(fr):    API orientée objet pour Apache Solr
 Name:           php-pecl-solr
 Version:        1.0.2
-Release:        7%{?dist}
+Release:        8%{?dist}
 License:        PHP
 Group:          Development/Languages
 URL:            http://pecl.php.net/package/solr
 
 Source0:        http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
-Source2:        xml2changelog
 
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires:  php-devel, php-pear, curl-devel, libxml2-devel
+BuildRequires:  php-devel
+BuildRequires:  php-pear
+BuildRequires:  php-curl
+BuildRequires:  php-json
+BuildRequires:  curl-devel
+BuildRequires:  libxml2-devel
 
 Requires(post): %{__pecl}
 Requires(postun): %{__pecl}
 Requires:       php(zend-abi) = %{php_zend_api}
 Requires:       php(api) = %{php_core_api}
-Requires:       php-xml >= 5.2.3
-Provides:       php-pecl(%{pecl_name}) = %{version}, php-%{pecl_name} = %{version}
-
-# RPM 4.8
-%{?filter_provides_in: %filter_provides_in %{php_extdir}/.*\.so$}
+%if "%{php_version}" < "5.4"
+# php 5.3.3 in EL-6 don't use arched virtual provides
+# so only requires real packages instead
+Requires:       php-common%{?_isa}
+%else
+Requires:       php-curl%{?_isa}
+Requires:       php-json%{?_isa}
+%endif
+
+Provides:       php-%{pecl_name} = %{version}
+Provides:       php-%{pecl_name}%{?_isa} = %{version}
+Provides:       php-pecl(%{pecl_name}) = %{version}
+Provides:       php-pecl(%{pecl_name})%{?_isa} = %{version}
+
+%if 0%{?fedora} < 20 && 0%{?rhel} < 7
+# Filter shared private
+%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$}
 %{?filter_setup}
-# RPM 4.9
-%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}%{php_extdir}/.*\\.so$
+%endif
 
 
 %description
@@ -52,6 +84,8 @@ SSL-enabled containers.
 More info on PHP-Solr can be found at:
 http://www.php.net/manual/en/book.solr.php
 
+Warning: PECL Solr 1 is not compatible with Solr Server >= 4.0.
+
 
 %description -l fr
 Bibliothèque riche en fonctionnalités qui permet aux développeurs PHP
@@ -75,12 +109,15 @@ serveurs via SSL.
 Plus d'informations sur PHP-Solr sur:
 http://www.php.net/manual/fr/book.solr.php
 
+Attention: PECL Solr 1 n'est pas compatible avec un serveur Solr >= 4.0.
+
 
 %prep
 %setup -c -q
-%{_bindir}/php %{SOURCE2} package.xml >CHANGELOG
 
-cd %{pecl_name}-%{version}
+mv %{pecl_name}-%{version}%{?prever} NTS
+cd NTS
+
 # Fix version
 sed -i -e '/PHP_SOLR_DOTTED_VERSION/s/1.0.1/1.0.2/' php_solr_version.h
 
@@ -102,29 +139,51 @@ chmod -x README.* \
 cd ..
 
 # Create configuration file
-cat > %{pecl_name}.ini << 'EOF'
+cat > %{ini_name} << 'EOF'
 ; Enable Solr extension module
 extension=%{pecl_name}.so
 EOF
 
+%if %{with_zts}
+cp -r NTS ZTS
+%endif
+
 
 %build
-cd %{pecl_name}-%{version}
-phpize
-%configure
-%{__make} %{?_smp_mflags}
+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
-rm -rf %{buildroot}
-make -C %{pecl_name}-%{version} \
-     install INSTALL_ROOT=%{buildroot}
+make -C NTS install INSTALL_ROOT=%{buildroot}
 
 # Install XML package description
 install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml
 
 # install config file
-install -D -m 644 %{pecl_name}.ini %{buildroot}%{_sysconfdir}/php.d/%{pecl_name}.ini
+install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name}
+
+%if %{with_zts}
+make -C ZTS install INSTALL_ROOT=%{buildroot}
+install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name}
+%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 LICENSE $(grep 'role="doc"' package.xml | sed -e 's/^.*name="//;s/".*$//')
+do install -Dpm 644 NTS/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i
+done
 
 
 %post
@@ -138,39 +197,59 @@ fi
 
 
 %check
-cd %{pecl_name}-%{version}
-ln -s %{php_extdir}/curl.so modules/
-ln -s %{php_extdir}/json.so modules/
-
-TEST_PHP_ARGS="-n -d extension_dir=$PWD/modules -d extension=curl.so -d extension=json.so -d extension=%{pecl_name}.so" \
+DEP="-d extension=curl.so -d extension=json.so"
+cd NTS
+: Minimal load test for NTS extension
+%{__php} --no-php-ini \
+    $DEP \
+    --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \
+    --modules | grep %{pecl_name}
+
+TEST_PHP_ARGS="-n $DEP -d extension=$PWD/modules/%{pecl_name}.so" \
    REPORT_EXIT_STATUS=1 \
    NO_INTERACTION=1 \
-   TEST_PHP_EXECUTABLE=%{_bindir}/php \
-   %{_bindir}/php \
+   TEST_PHP_EXECUTABLE=%{__php} \
+   %{__php} \
    run-tests.php
 
+%if %{with_zts}
+cd ../ZTS
+: Minimal load test for ZTS extension
+%{__ztsphp} --no-php-ini \
+    $DEP \
+    --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \
+    --modules | grep %{pecl_name}
 
-%clean
-rm -rf %{buildroot}
+TEST_PHP_ARGS="-n $DEP -d extension=$PWD/modules/%{pecl_name}.so" \
+   REPORT_EXIT_STATUS=1 \
+   NO_INTERACTION=1 \
+   TEST_PHP_EXECUTABLE=%{__ztsphp} \
+   %{__ztsphp} \
+   run-tests.php
+%endif
 
 
 %files
-%defattr(-, root, root, -)
-%doc CHANGELOG
-%doc %{pecl_name}-%{version}/CREDITS
-%doc %{pecl_name}-%{version}/README.ABOUT_SOLR_EXTENSION
-%doc %{pecl_name}-%{version}/README.CONTRIBUTORS
-%doc %{pecl_name}-%{version}/README.MEMORY_ALLOCATION
-%doc %{pecl_name}-%{version}/README.SUBMITTING_CONTRIBUTIONS
-%doc %{pecl_name}-%{version}/TODO
-%doc %{pecl_name}-%{version}/LICENSE
-%doc %{pecl_name}-%{version}/docs/documentation.php
-%config(noreplace) %{_sysconfdir}/php.d/%{pecl_name}.ini
-%{php_extdir}/%{pecl_name}.so
+%doc %{pecl_docdir}/%{pecl_name}
+%doc %{pecl_testdir}/%{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
+* Thu Apr 17 2014 Remi Collet <remi at fedoraproject.org> - 1.0.2-8
+- add numerical prefix to extension configuration file (php 5.6)
+- install doc in pecl_docdir
+- install tests in pecl_testdir
+- build ZTS extension
+
 * Sun Aug 04 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.0.2-7
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
 


More information about the scm-commits mailing list