summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2017-07-07 07:54:47 +0200
committerRemi Collet <remi@remirepo.net>2017-07-07 07:54:47 +0200
commit41b8d0c8aec8ebbf43471f57683e3e6394f5b221 (patch)
tree9ad7f9431ed7c32cbf3241c938f42f0bce503353
parenta2c506f51ace035b28c01bc80b15785fe4b054a3 (diff)
rename to php-pecl-timecop and update to 1.2.7
-rw-r--r--Makefile2
-rw-r--r--REFLECTION2
-rw-r--r--php-pecl-timecop.spec (renamed from php-timecop.spec)119
-rw-r--r--tests-skipcheck.inc.php29
4 files changed, 118 insertions, 34 deletions
diff --git a/Makefile b/Makefile
index 91b0fd5..13af741 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
SRCDIR := $(shell pwd)
NAME := $(shell basename $(SRCDIR))
-include ../../common/Makefile
+include ../../../common/Makefile
diff --git a/REFLECTION b/REFLECTION
index 76380b4..0f47284 100644
--- a/REFLECTION
+++ b/REFLECTION
@@ -1,4 +1,4 @@
-Extension [ <persistent> extension #142 timecop version 1.2.6 ] {
+Extension [ <persistent> extension #142 timecop version 1.2.7 ] {
- INI {
Entry [ timecop.func_override <SYSTEM> ]
diff --git a/php-timecop.spec b/php-pecl-timecop.spec
index 0478297..28a7e03 100644
--- a/php-timecop.spec
+++ b/php-pecl-timecop.spec
@@ -1,4 +1,4 @@
-# remirepo spec file for php-timecop
+# remirepo spec file for php-pecl-timecop
#
# Copyright (c) 2017 Remi Collet
# License: CC-BY-SA
@@ -8,16 +8,12 @@
#
%if 0%{?scl:1}
%global sub_prefix %{scl_prefix}
-%scl_package php-timecop
+%scl_package php-pecl-timecop
%endif
-%global gh_commit 0a0f0a1db2796a6d1dd003dab8f70401a2e9ec2a
-%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
-%global gh_owner hnw
-%global gh_project php-timecop
-#global gh_date 20160608
%global pecl_name timecop
%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}}
+%global with_tests %{?_without_tests:0}%{!?_without_tests:1}
%if "%{php_version}" < "5.6"
%global ini_name %{pecl_name}.ini
%else
@@ -25,41 +21,50 @@
%endif
Summary: Time travel and freezing extension
-Name: %{?sub_prefix}php-timecop
-Version: 1.2.6
-%if 0%{?gh_date:1}
-Release: 0.2.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
-%else
+Name: %{?sub_prefix}php-pecl-timecop
+Version: 1.2.7
Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
-%endif
License: MIT
Group: Development/Languages
-URL: https://github.com/%{gh_owner}/%{gh_project}
-Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{gh_short}.tar.gz
+URL: http://pecl.php.net/package/%{pecl_name}
+Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
+# https://github.com/hnw/php-timecop/pull/22
+Source1: https://raw.githubusercontent.com/hnw/php-timecop/master/tests-skipcheck.inc.php
BuildRequires: %{?scl_prefix}php-devel
+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}}
+Obsoletes: %{?scl_prefix}php-%{pecl_name} < 1.2.7
+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
%if "%{php_version}" > "5.6"
-Obsoletes: php56u-%{pecl_name} <= %{version}
-Obsoletes: php56w-%{pecl_name} <= %{version}
+Obsoletes: php56u-pecl-%{pecl_name} <= %{version}
+Obsoletes: php56w-pecl-%{pecl_name} <= %{version}
%endif
%if "%{php_version}" > "7.0"
-Obsoletes: php70u-%{pecl_name} <= %{version}
-Obsoletes: php70w-%{pecl_name} <= %{version}
+Obsoletes: php70u-pecl-%{pecl_name} <= %{version}
+Obsoletes: php70w-pecl-%{pecl_name} <= %{version}
%endif
%if "%{php_version}" > "7.1"
-Obsoletes: php71u-%{pecl_name} <= %{version}
-Obsoletes: php71w-%{pecl_name} <= %{version}
+Obsoletes: php71u-pecl-%{pecl_name} <= %{version}
+Obsoletes: php71w-pecl-%{pecl_name} <= %{version}
%endif
%if "%{php_version}" > "7.2"
-Obsoletes: php72u-%{pecl_name} <= %{version}
-Obsoletes: php72w-%{pecl_name} <= %{version}
+Obsoletes: php72u-pecl-%{pecl_name} <= %{version}
+Obsoletes: php72w-pecl-%{pecl_name} <= %{version}
%endif
%endif
@@ -79,14 +84,23 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO
%prep
%setup -qc
-mv %{gh_project}-%{gh_commit} NTS
+mv %{pecl_name}-%{version} NTS
+
+# Don't install/register tests
+# see https://github.com/hnw/php-timecop/pull/21
+sed -e 's/role="test"/role="src"/' \
+ -e '/README/s/role="src"/role="doc"/' \
+ %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \
+ %{!?_licensedir:-e '/LICENSE/s/role="src"/role="doc"/' } \
+ -i package.xml
cd NTS
+cp %{SOURCE1} .
# Sanity check, really often broken
extver=$(sed -n '/#define PHP_TIMECOP_VERSION/{s/.* "//;s/".*$//;p}' php_timecop.h)
-if test "x${extver}" != "x%{version}%{?gh_date:-dev}"; then
- : Error: Upstream extension version is ${extver}, expecting %{version}%{?gh_date:-dev}.
+if test "x${extver}" != "x%{version}"; then
+ : Error: Upstream extension version is ${extver}, expecting %{version}.
exit 1
fi
cd ..
@@ -136,27 +150,40 @@ make %{?_smp_mflags}
make -C NTS install INSTALL_ROOT=%{buildroot}
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}
# Install the ZTS stuff
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
%check
cd NTS
+if [ -f %{php_extdir}/calendar.so ]; then
+ MOD="-d extension=calendar.so"
+fi
+
: Minimal load test for NTS extension
%{__php} --no-php-ini \
--define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \
--modules | grep %{pecl_name}
+%if %{with_tests}
: Upstream test suite for NTS extension
TEST_PHP_EXECUTABLE=%{__php} \
-TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \
+TEST_PHP_ARGS="-n $MOD -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \
NO_INTERACTION=1 \
REPORT_EXIT_STATUS=1 \
%{__php} -n run-tests.php --show-diff || : ignore
+%endif
%if %{with_zts}
cd ../ZTS
@@ -165,20 +192,41 @@ cd ../ZTS
--define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \
--modules | grep %{pecl_name}
+%if %{with_tests}
: Upstream test suite for ZTS extension
TEST_PHP_EXECUTABLE=%{__ztsphp} \
-TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \
+TEST_PHP_ARGS="-n $MOD -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \
NO_INTERACTION=1 \
REPORT_EXIT_STATUS=1 \
%{__ztsphp} -n run-tests.php --show-diff
%endif
+%endif
+
+
+%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
%files
-%{!?_licensedir:%global license %%doc}
-%license NTS/LICENSE
-%doc NTS/CREDITS
-%doc NTS/README.md
+%doc %{pecl_docdir}/%{pecl_name}
+%{?_licensedir:%license NTS/LICENSE}
+%{pecl_xmldir}/%{name}.xml
%config(noreplace) %{php_inidir}/%{ini_name}
%{php_extdir}/%{pecl_name}.so
@@ -190,5 +238,12 @@ REPORT_EXIT_STATUS=1 \
%changelog
+* Fri Jul 7 2017 Remi Collet <remi@remirepo.net> - 1.2.7-1
+- rename to php-pecl-timecop
+- use sources from pecl
+- update to 1.2.7
+- open https://github.com/hnw/php-timecop/pull/21 - bad roles
+- open https://github.com/hnw/php-timecop/pull/22 - missing file
+
* Tue Jul 4 2017 Remi Collet <remi@remirepo.net> - 1.2.6-1
- new package, version 1.2.6 (beta)
diff --git a/tests-skipcheck.inc.php b/tests-skipcheck.inc.php
new file mode 100644
index 0000000..0d494a9
--- /dev/null
+++ b/tests-skipcheck.inc.php
@@ -0,0 +1,29 @@
+<?php
+extension_loaded('timecop') or die('skip timecop module not available');
+if (isset($required_version)) {
+ if (version_compare(PHP_VERSION, $required_version, "<")) {
+ die("skip PHP ${required_version}+ required for this test");
+ }
+}
+if (isset($required_func)) {
+ foreach ($required_func as $func_name) {
+ if (!function_exists($func_name)) {
+ die("skip $func_name() function is not available.");
+ }
+ }
+}
+if (isset($required_class)) {
+ foreach ($required_class as $class_name) {
+ if (!class_exists($class_name)) {
+ die("skip $class_name class is not available.");
+ }
+ }
+}
+if (isset($required_method)) {
+ foreach ($required_method as $v) {
+ list($class_name, $method_name) = $v;
+ if (!method_exists($class_name, $method_name)) {
+ die("skip $class_name::$method_name() method is not available.");
+ }
+ }
+}