summaryrefslogtreecommitdiffstats
path: root/php-pecl-mongo.spec
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2014-04-04 11:24:44 +0200
committerRemi Collet <fedora@famillecollet.com>2014-04-04 11:24:44 +0200
commitb1088241884fe6ab8c7a6ed0e72d05cfc920a82e (patch)
tree004dd2da435763179c773d9551d35655219c96a5 /php-pecl-mongo.spec
parent180b0256f503c39e1efe2c8cc1caf2edf592f1b1 (diff)
php-pecl-mongo: switch spec
Diffstat (limited to 'php-pecl-mongo.spec')
-rw-r--r--php-pecl-mongo.spec106
1 files changed, 96 insertions, 10 deletions
diff --git a/php-pecl-mongo.spec b/php-pecl-mongo.spec
index a6b1fc5..17047cf 100644
--- a/php-pecl-mongo.spec
+++ b/php-pecl-mongo.spec
@@ -4,32 +4,53 @@
%global pecl_name mongo
%global with_zts 0%{?__ztsphp:1}
+#global prever RC2
+%global gh_commit b249aec0ea0aa40ff71b9de1121d0ac4eaf77ded
+%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
+%global gh_owner mongodb
+%global gh_project mongo-php-driver
+%global with_tests %{?_with_tests:1}%{!?_with_tests:0}
Summary: PHP MongoDB database driver
Name: php-pecl-mongo
-Version: 1.4.5
+Version: 1.5.0
Release: 1%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}
License: ASL 2.0
Group: Development/Languages
URL: http://pecl.php.net/package/%{pecl_name}
-Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
+# Pull sources from github to get tests
+Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}%{?prever}.tar.gz
Source1: %{pecl_name}.ini
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: php-devel >= 5.2.6
BuildRequires: php-pear
+BuildRequires: php-json
+BuildRequires: cyrus-sasl-devel
+%if %{with_tests}
+BuildRequires: mongodb
+BuildRequires: mongodb-server
+%endif
Requires(post): %{__pecl}
Requires(postun): %{__pecl}
Requires: php(zend-abi) = %{php_zend_api}
Requires: php(api) = %{php_core_api}
+%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-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 "%{?vendor}" == "Remi Collet"
# Other third party repo stuff
%if "%{php_version}" > "5.4"
Obsoletes: php53-pecl-%{pecl_name}
@@ -39,6 +60,10 @@ Obsoletes: php54-pecl-%{pecl_name}
%if "%{php_version}" > "5.5"
Obsoletes: php55u-pecl-%{pecl_name}
%endif
+%if "%{php_version}" > "5.6"
+Obsoletes: php56u-pecl-%{pecl_name}
+%endif
+%endif
%if 0%{?fedora} < 20 && 0%{?rhel} < 7
# Filter private shared provides
@@ -51,22 +76,25 @@ Obsoletes: php55u-pecl-%{pecl_name}
This package provides an interface for communicating with the
MongoDB database in PHP.
+Documentation: http://php.net/mongo
+
%prep
%setup -c -q
-mv %{pecl_name}-%{version} NTS
-cd NTS
+mv %{gh_project}-%{gh_commit} NTS
+cp %{SOURCE1} .
+mv NTS/package.xml .
+cd NTS
+# Sanity check, really often broken
extver=$(sed -n '/#define PHP_MONGO_VERSION/{s/.* "//;s/".*$//;p}' php_mongo.h)
-if test "x${extver}" != "x%{version}%{?pre}"; then
- : Error: Upstream version is ${extver}, expecting %{version}.
+if test "x${extver}" != "x%{version}%{?prever}"; then
+ : Error: Upstream extension version is ${extver}, expecting %{version}%{?prever}.
exit 1
fi
cd ..
-cp %{SOURCE1} .
-
%if %{with_zts}
cp -pr NTS ZTS
%endif
@@ -75,13 +103,17 @@ cp -pr NTS ZTS
%build
cd NTS
%{_bindir}/phpize
-%configure --with-php-config=%{_bindir}/php-config
+%configure \
+ --with-mongo-sasl \
+ --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
+%configure \
+ --with-mongo-sasl \
+ --with-php-config=%{_bindir}/zts-php-config
make %{?_smp_mflags}
%endif
@@ -124,12 +156,45 @@ fi
%check
: Minimal load test for NTS extension
%{__php} -n \
+ -d extension=json.so \
-d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \
-i | grep "MongoDB Support => enabled"
+%if %{with_tests}
+cd NTS
+
+: Create the configuration file
+mkdir data
+sed -e "/DBDIR/s:/data:$PWD/data:" \
+ tests/utils/cfg.inc.template \
+ >tests/utils/cfg.inc
+
+: Launch the test servers
+MONGO_SERVER_STANDALONE=yes \
+MONGO_SERVER_STANDALONE_AUTH=yes \
+MONGO_SERVER_REPLICASET=yes \
+MONGO_SERVER_REPLICASET_AUTH=yes \
+make servers
+
+: Upstream test suite NTS extension
+ret=0
+TEST_PHP_EXECUTABLE=/usr/bin/php \
+TEST_PHP_ARGS="-n -d extension=json.so -d extension=$PWD/modules/mongo.so" \
+NO_INTERACTION=1 \
+REPORT_EXIT_STATUS=1 \
+/usr/bin/php -n run-tests.php || ret=1
+
+: Clanups
+make stop-servers
+rm -rf data
+
+[ $ret -eq 0 ] || exit $ret
+%endif
+
%if %{with_zts}
: Minimal load test for ZTS extension
%{__ztsphp} -n \
+ -d extension=json.so \
-d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \
-i | grep "MongoDB Support => enabled"
%endif
@@ -149,6 +214,27 @@ fi
%changelog
+* Fri Apr 4 2014 Remi Collet <remi@fedoraproject.org> - 1.5.0-1
+- Update to 1.5.0 (no change since RC2)
+
+* Tue Apr 1 2014 Remi Collet <remi@fedoraproject.org> - 1.5.0-0.3-RC2
+- Update to 1.5.0RC2
+
+* Tue Mar 11 2014 Remi Collet <remi@fedoraproject.org> - 1.5.0-0.2-RC1
+- Update to 1.5.0RC1
+- open https://jira.mongodb.org/browse/PHP-1009
+ JSON is optional at buildtime but required at runtime
+- always enable SASL support
+
+* Wed Feb 26 2014 Remi Collet <remi@fedoraproject.org> - 1.5.0-0.1.alpha1
+- Update to 1.5.0alpha1
+- use sources from github for tests
+- cleanup mongo.ini
+- enable SASL support (Fedora >= 19, RHEL-7)
+ https://jira.mongodb.org/browse/PHP-996
+- add patch for JSON detection
+ https://jira.mongodb.org/browse/PHP-995
+
* Tue Nov 05 2013 Remi Collet <remi@fedoraproject.org> - 1.4.5-1
- Update to 1.4.5
- install doc in pecl doc_dir