From 972aa17918567aa8928d128da9d36e5b3748fbd1 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 3 Nov 2013 09:57:08 +0100 Subject: - cleanup for Copr - lastest SVN snapshot - enable sqlite2 PDO driver - install doc in pecl doc_dir - install tests in pecl test_dir --- php-pecl-sqlite.spec | 147 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 115 insertions(+), 32 deletions(-) diff --git a/php-pecl-sqlite.spec b/php-pecl-sqlite.spec index b6e1291..136b512 100644 --- a/php-pecl-sqlite.spec +++ b/php-pecl-sqlite.spec @@ -1,60 +1,78 @@ -%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}} +# spec file for php-pecl-sqlite +# +# Copyright (c) 2011-2013 Remi Collet +# 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} +%{!?php_incldir: %global php_incldir %{_includedir}/php} +%{!?__pecl: %global __pecl %{_bindir}/pecl} +%{!?__php: %global __php %{_bindir}/php} %global pecl_name sqlite -%global svnver 313074 +%global svnver 332053 %global extver 2.0-dev +%global with_zts 0%{?__ztsphp:1} +%global with_tests %{?_without_tests:0}%{!?_without_tests:1} + Name: php-pecl-sqlite Version: 2.0.0 -Release: 0.3.svn%{svnver}%{?dist}.5 +Release: 0.4.svn%{svnver}%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} Summary: Extension for the SQLite V2 Embeddable SQL Database Engine Group: Development/Languages License: PHP URL: http://pecl.php.net/package/%{pecl_name} %if 0%{?svnver} -# svn export -r 313074 https://svn.php.net/repository/pecl/sqlite/trunk sqlite -# tar czf sqlite-svn313074.tgz sqlite +# svn export -r 332053 https://svn.php.net/repository/pecl/sqlite/trunk sqlite +# tar czf sqlite-svn332053.tgz sqlite Source0: sqlite-svn%{svnver}.tgz %else Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz %endif -# https://bugs.php.net/65866 ask license file - BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: php-devel >= 5.4.0 -BuildRequires: php-pear >= 1:1.4.0 +BuildRequires: php-devel +BuildRequires: php-pear +BuildRequires: php-pdo BuildRequires: sqlite2-devel -Requires: php(zend-abi) = %{php_zend_api} -Requires: php(api) = %{php_core_api} Requires(post): %{__pecl} Requires(postun): %{__pecl} +Requires: php(zend-abi) = %{php_zend_api} +Requires: php(api) = %{php_core_api} +Requires: php-pdo%{?_isa} Provides: php-pecl(%{pecl_name}) = %{extver} Provides: php-pecl(%{pecl_name})%{?_isa} = %{extver} # Was provided by php until 5.4.0 +%if "%{php_version}" > "5.4" Obsoletes: php-sqlite < 5.4.0 Provides: php-sqlite = 5.4.0 Provides: php-sqlite%{?_isa} = 5.4.0 Obsoletes: php-sqlite2 < 5.4.0 Provides: php-sqlite2 = 5.4.0 Provides: php-sqlite2%{?_isa} = 5.4.0 +%endif # Other third party repo stuff +%if "%{php_version}" > "5.4" Obsoletes: php53-pecl-%{pecl_name} Obsoletes: php53u-pecl-%{pecl_name} -%if "%{php_version}" > "5.4" Obsoletes: php54-pecl-%{pecl_name} %endif %if "%{php_version}" > "5.5" Obsoletes: php55-pecl-%{pecl_name} %endif +%if 0%{?fedora} < 20 # Filter private shared %{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} %{?filter_setup} +%endif %description @@ -69,12 +87,18 @@ SQLite is not a client library used to connect to a big database server. SQLite is the server. The SQLite library reads and writes directly to and from the database files on disk +Notice: this extension is deprecated, you should consider +- sqlite3 http://php.net/sqlite3 +- pdo_sqlite http://php.net/pdo_sqlite + +Documentation: http://php.net/sqlite + %package devel Summary: PHP SQLite V2 developer files (header) Group: Development/Libraries Requires: php-pecl-sqlite%{?_isa} = %{version}-%{release} -Requires: php-devel%{?_isa} >= 5.4.0 +Requires: php-devel%{?_isa} %description devel These are the files needed to compile programs using PHP SQLite V2. @@ -85,78 +109,122 @@ These are the files needed to compile programs using PHP SQLite V2. %if 0%{?svnver} mv %{pecl_name}/package.xml . -mv %{pecl_name} %{pecl_name}-%{version} +mv %{pecl_name} NTS # fix package release state (stability) sed -i \ -e '/stable/s/stable/beta/' \ package.xml +%else +mv %{pecl_name}-%{version} NTS %endif +cd NTS # Check version -extver=$(sed -n '/#define PHP_SQLITE_MODULE_VERSION/{s/.*\t"//;s/".*$//;p}' %{pecl_name}-%{version}/sqlite.c) +extver=$(sed -n '/#define PHP_SQLITE_MODULE_VERSION/{s/.*\t"//;s/".*$//;p}' sqlite.c) if test "x${extver}" != "x%{extver}"; then : Error: Upstream version is ${extver}, expecting %{version}. exit 1 fi +cd .. cat >%{pecl_name}.ini << 'EOF' ; Enable %{pecl_name} extension module extension=%{pecl_name}.so EOF -cp -pr %{pecl_name}-%{version} %{pecl_name}-zts +cp -pr NTS ZTS %build -cd %{pecl_name}-%{version} +cd NTS %{_bindir}/phpize %configure \ --with-sqlite=%{_prefix} \ + --enable-pdo \ --with-php-config=%{_bindir}/php-config make %{?_smp_mflags} -cd ../%{pecl_name}-zts +%if %{with_zts} +cd ../ZTS %{_bindir}/zts-phpize %configure \ --with-sqlite=%{_prefix} \ + --enable-pdo \ --with-php-config=%{_bindir}/zts-php-config make %{?_smp_mflags} +%endif %install rm -rf %{buildroot} -make install -C %{pecl_name}-%{version} INSTALL_ROOT=%{buildroot} -make install -C %{pecl_name}-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 +cd NTS +for i in $(grep 'role="test"' ../package.xml | sed -e 's/^.*name="//;s/".*$//') +do install -Dpm 644 $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 $i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i +done + + %check # ignore this test for now # TODO need investigation -rm %{pecl_name}-*/tests/sqlite_oo_026.phpt - -cd %{pecl_name}-%{version} +rm -f ?TS/tests/sqlite_oo_026.phpt +# cannot be run, need ext/pdo/test tree +rm -f ?TS/tests/pdo/common.phpt +rm -f ?TS/tests/bug38759.phpt + +: Minimal load test for NTS extension +cd NTS +%{__php} --no-php-ini \ + --define extension=pdo.so \ + --define extension=modules/%{pecl_name}.so \ + --modules | grep -i %{pecl_name} + +%if %{with_tests} +: Upstream test suite for NTS extension TEST_PHP_EXECUTABLE=%{__php} \ REPORT_EXIT_STATUS=1 \ NO_INTERACTION=1 \ %{__php} run-tests.php \ -n -q \ - -d extension_dir=modules \ - -d extension=%{pecl_name}.so + -d extension=pdo.so \ + -d extension=$PWD/modules/%{pecl_name}.so +%endif -cd ../%{pecl_name}-zts +%if %{with_zts} +cd ../ZTS +: Minimal load test for ZTS extension +%{__ztsphp} --no-php-ini \ + --define extension=pdo.so \ + --define extension=modules/%{pecl_name}.so \ + --modules | grep -i %{pecl_name} + +%if %{with_tests} +: Upstream test suite for ZTS extension TEST_PHP_EXECUTABLE=%{__ztsphp} \ REPORT_EXIT_STATUS=1 \ NO_INTERACTION=1 \ %{__ztsphp} run-tests.php \ -n -q \ - -d extension_dir=modules \ - -d extension=%{pecl_name}.so + -d extension=pdo.so \ + -d extension=$PWD/modules/%{pecl_name}.so +%endif +%endif %clean @@ -175,20 +243,35 @@ fi %files %defattr(-,root,root,-) -%doc %{pecl_name}-%{version}/CREDITS +%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 + + %files devel %defattr(-,root,root,-) %{php_incldir}/libsqlite + +%if %{with_zts} %{php_ztsincldir}/libsqlite +%endif %changelog +* Sun Nov 3 2013 Remi Collet - 2.0.0-0.4.svn332053 +- cleanup for Copr +- lastest SVN snapshot +- enable sqlite2 PDO driver +- install doc in pecl doc_dir +- install tests in pecl test_dir + * Fri Nov 30 2012 Remi Collet - 2.0.0-0.3.svn313074 - rebuild with system Sqlite2 -- cgit