summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--REFLECTION2
-rw-r--r--ea17b8cb1c7ecca5af3ece4420c4b2880984b41a.patch61
-rw-r--r--php-pecl-xxtea.spec119
4 files changed, 113 insertions, 71 deletions
diff --git a/.gitignore b/.gitignore
index 1ab5c4f..01f0400 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
+clog
package-*.xml
*.tgz
+*.tar.bz2
*.tar.gz
*.tar.xz
*.tar.xz.asc
diff --git a/REFLECTION b/REFLECTION
index 99d5f0b..230cc6d 100644
--- a/REFLECTION
+++ b/REFLECTION
@@ -1,4 +1,4 @@
-Extension [ <persistent> extension #187 xxtea version 1.0.11 ] {
+Extension [ <persistent> extension #125 xxtea version 1.0.11 ] {
- Functions {
Function [ <internal:xxtea> function xxtea_encrypt ] {
diff --git a/ea17b8cb1c7ecca5af3ece4420c4b2880984b41a.patch b/ea17b8cb1c7ecca5af3ece4420c4b2880984b41a.patch
new file mode 100644
index 0000000..c8d4eaa
--- /dev/null
+++ b/ea17b8cb1c7ecca5af3ece4420c4b2880984b41a.patch
@@ -0,0 +1,61 @@
+From ea17b8cb1c7ecca5af3ece4420c4b2880984b41a Mon Sep 17 00:00:00 2001
+From: Jan Ehrhardt <github@ehrhardt.nl>
+Date: Thu, 3 Dec 2020 17:40:24 +0100
+Subject: [PATCH] Add PHP8 compatibility
+
+The first change deal with the issue that win32/php_stdint.h does not exist anymore in PHP8, but the VS16 compiler does provide a inttypes.h. So we check if we are using a MSVC compiler and if it is a lower version than Visual Studio 2019 (or VS16).
+
+The other chages deal with the fact that the TSRMLS macros have been removed in PHP8. They already did not do anything at all in PHP7, but they are gone completely now
+---
+ php_xxtea.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/php_xxtea.c b/php_xxtea.c
+index 7001270..c0cf743 100644
+--- a/php_xxtea.c
++++ b/php_xxtea.c
+@@ -16,7 +16,7 @@
+ #include "php_xxtea.h"
+ #include "ext/standard/info.h" /* for phpinfo() functions */
+
+-#if defined(_MSC_VER)
++#if defined(_MSC_VER) && _MSC_VER < 1920
+ #include "win32/php_stdint.h"
+ #elif defined(__FreeBSD__) && __FreeBSD__ < 5
+ /* FreeBSD 4 doesn't have stdint.h file */
+@@ -281,7 +281,11 @@ ZEND_FUNCTION(xxtea_encrypt) {
+ size_t i, ret_length;
+ uint8_t fixed_key[16];
+
++#ifdef TSRMLS_CC
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &data, &data_len, &key, &key_len) == FAILURE) {
++#else
++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss", &data, &data_len, &key, &key_len) == FAILURE) {
++#endif
+ return;
+ }
+ if (data_len == 0) {
+@@ -314,7 +318,11 @@ ZEND_FUNCTION(xxtea_decrypt) {
+ size_t i, ret_length;
+ uint8_t fixed_key[16];
+
++#ifdef TSRMLS_CC
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &data, &data_len, &key, &key_len) == FAILURE) {
++#else
++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss", &data, &data_len, &key, &key_len) == FAILURE) {
++#endif
+ return;
+ }
+ if (data_len == 0) {
+@@ -346,7 +354,11 @@ static zend_function_entry xxtea_method[] = {
+ ZEND_MINIT_FUNCTION(xxtea) {
+ zend_class_entry ce;
+ INIT_CLASS_ENTRY(ce, "XXTEA", xxtea_method);
++#ifdef TSRMLS_CC
+ xxtea_ce = zend_register_internal_class(&ce TSRMLS_CC);
++#else
++ xxtea_ce = zend_register_internal_class(&ce);
++#endif
+ return SUCCESS;
+ }
+
diff --git a/php-pecl-xxtea.spec b/php-pecl-xxtea.spec
index 932e4a9..8cf8cc4 100644
--- a/php-pecl-xxtea.spec
+++ b/php-pecl-xxtea.spec
@@ -1,39 +1,41 @@
# remirepo spec file for php-pecl-xxtea
#
-# Copyright (c) 2013-2018 Remi Collet
-# License: CC-BY-SA
+# Copyright (c) 2013-2023 Remi Collet
+# License: CC-BY-SA-4.0
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
#
-%if 0%{?scl:1}
-%global sub_prefix %{scl_prefix}
-%scl_package php-pecl-xxtea
-%endif
-%global pecl_name xxtea
-%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}}
+%{?scl:%scl_package php-pecl-xxtea}
+
+%global pecl_name xxtea
+%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}}
%if "%{php_version}" < "5.6"
-%global ini_name %{pecl_name}.ini
+%global ini_name %{pecl_name}.ini
%else
-%global ini_name 40-%{pecl_name}.ini
+%global ini_name 40-%{pecl_name}.ini
%endif
+%global sources %{pecl_name}-%{version}
+%global _configure ../%{sources}/configure
Summary: XXTEA encryption algorithm extension for PHP
-Name: %{?sub_prefix}php-pecl-%{pecl_name}
+Name: %{?scl_prefix}php-pecl-%{pecl_name}
Version: 1.0.11
-Release: 8%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 10%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
License: MIT
-URL: http://pecl.php.net/package/%{pecl_name}
-Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
+URL: https://pecl.php.net/package/%{pecl_name}
+Source0: https://pecl.php.net/get/%{sources}.tgz
+Patch0: https://github.com/xxtea/xxtea-pecl/commit/ea17b8cb1c7ecca5af3ece4420c4b2880984b41a.patch
+
+BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
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}}
Provides: %{?scl_prefix}php-%{pecl_name} = %{version}
Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version}
@@ -42,46 +44,17 @@ Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version}
Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release}
Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release}
-%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel}
+%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel}
# Other third party repo stuff
-Obsoletes: php53-pecl-%{pecl_name} <= %{version}
-Obsoletes: php53u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php54-pecl-%{pecl_name} <= %{version}
-Obsoletes: php54w-pecl-%{pecl_name} <= %{version}
-%if "%{php_version}" > "5.5"
-Obsoletes: php55u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php55w-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "5.6"
-Obsoletes: php56u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php56w-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "7.0"
-Obsoletes: php70u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php70w-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "7.1"
-Obsoletes: php71u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php71w-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "7.2"
-Obsoletes: php72u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php72w-pecl-%{pecl_name} <= %{version}
-%endif
%if "%{php_version}" > "7.3"
Obsoletes: php73-pecl-%{pecl_name} <= %{version}
-Obsoletes: php73w-pecl-%{pecl_name} <= %{version}
%endif
%if "%{php_version}" > "7.4"
Obsoletes: php74-pecl-%{pecl_name} <= %{version}
-Obsoletes: php74w-pecl-%{pecl_name} <= %{version}
%endif
+%if "%{php_version}" > "8.0"
+Obsoletes: php80-pecl-%{pecl_name} <= %{version}
%endif
-
-%if 0%{?fedora} < 20 && 0%{?rhel} < 7
-# Filter shared private
-%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$}
-%{?filter_setup}
%endif
@@ -99,14 +72,14 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO
%prep
%setup -q -c
-mv %{pecl_name}-%{version} NTS
# Don't install/register tests
sed -e 's/role="test"/role="src"/' \
%{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \
-i package.xml
-cd NTS
+cd %{sources}
+%patch -P0 -p1 -b .up
# Sanity check, really often broken
extver=$(sed -n '/#define PHP_XXTEA_VERSION/{s/.* "//;s/".*$//;p}' php_xxtea.h)
@@ -116,9 +89,9 @@ if test "x${extver}" != "x%{version}%{?prever:-%{prever}}"; then
fi
cd ..
+mkdir NTS
%if %{with_zts}
-# Duplicate source tree for NTS / ZTS build
-cp -pr NTS ZTS
+mkdir ZTS
%endif
# Create configuration file
@@ -131,22 +104,23 @@ EOF
%build
%{?dtsenable}
-cd NTS
-%{_bindir}/phpize
+cd %{sources}
+%{__phpize}
+
+cd ../NTS
%configure \
--enable-xxtea \
--with-libdir=%{_lib} \
- --with-php-config=%{_bindir}/php-config
+ --with-php-config=%{__phpconfig}
make %{?_smp_mflags}
%if %{with_zts}
cd ../ZTS
-%{_bindir}/zts-phpize
%configure \
--enable-xxtea \
--with-libdir=%{_lib} \
- --with-php-config=%{_bindir}/zts-php-config
+ --with-php-config=%{__ztsphpconfig}
make %{?_smp_mflags}
%endif
@@ -170,8 +144,9 @@ 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
+cd %{sources}
+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
@@ -196,38 +171,36 @@ fi
%check
+cd %{sources}
+
: Minimal load test for NTS extension
-cd NTS
%{__php} --no-php-ini \
- --define extension=modules/%{pecl_name}.so \
- --modules | grep %{pecl_name}
+ --define extension=../NTS/modules/%{pecl_name}.so \
+ --modules | grep '^%{pecl_name}$'
: Upstream test suite for NTS extension
TEST_PHP_EXECUTABLE=%{__php} \
-TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \
-NO_INTERACTION=1 \
+TEST_PHP_ARGS="-n -d extension=$PWD/../NTS/modules/%{pecl_name}.so" \
REPORT_EXIT_STATUS=1 \
-%{__php} -n run-tests.php
+%{__php} -n run-tests.php -q --show-diff
%if %{with_zts}
: Minimal load test for ZTS extension
-cd ../ZTS
%{__ztsphp} --no-php-ini \
- --define extension=modules/%{pecl_name}.so \
+ --define extension=../ZTS/modules/%{pecl_name}.so \
--modules | grep %{pecl_name}
: Upstream test suite for ZTS extension
TEST_PHP_EXECUTABLE=%{__ztsphp} \
-TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \
-NO_INTERACTION=1 \
+TEST_PHP_ARGS="-n -d extension=$PWD/../ZTS/modules/%{pecl_name}.so" \
REPORT_EXIT_STATUS=1 \
-%{__ztsphp} -n run-tests.php
+%{__ztsphp} -n run-tests.php -q --show-diff
%endif
%files
-%{?_licensedir:%license NTS/LICENSE.md}
+%{?_licensedir:%license %{sources}/LICENSE.md}
%doc %{pecl_docdir}/%{pecl_name}
%{pecl_xmldir}/%{name}.xml
@@ -241,6 +214,12 @@ REPORT_EXIT_STATUS=1 \
%changelog
+* Mon Sep 4 2023 Remi Collet <remi@remirepo.net> - 1.0.11-10
+- build out of sources tree
+
+* Fri Jan 8 2021 Remi Collet <remi@remirepo.net> - 1.0.11-9
+- add upstream patch for PHP 8
+
* Tue Sep 03 2019 Remi Collet <remi@remirepo.net> - 1.0.11-8
- rebuild for 7.4.0RC1