summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--php-jeremeamia-superclosure-autoload.php14
-rw-r--r--php-jeremeamia-superclosure-php8.patch22
-rw-r--r--php-jeremeamia-superclosure.spec58
3 files changed, 59 insertions, 35 deletions
diff --git a/php-jeremeamia-superclosure-autoload.php b/php-jeremeamia-superclosure-autoload.php
deleted file mode 100644
index 53233e0..0000000
--- a/php-jeremeamia-superclosure-autoload.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/* Autoloader for jeremeamia/superclosure and its dependencies */
-
-require_once '/usr/share/php/Fedora/Autoloader/autoload.php';
-\Fedora\Autoloader\Autoload::addPsr4('SuperClosure\\', __DIR__);
-\Fedora\Autoloader\Dependencies::required(array(
- '/usr/share/php/Symfony/Polyfill/autoload.php',
- array(
- '/usr/share/php/PhpParser4/autoload.php',
- '/usr/share/php/PhpParser3/autoload.php',
- '/usr/share/php/PhpParser2/autoload.php',
- '/usr/share/php/PhpParser/autoload.php',
-)));
-
diff --git a/php-jeremeamia-superclosure-php8.patch b/php-jeremeamia-superclosure-php8.patch
new file mode 100644
index 0000000..c970218
--- /dev/null
+++ b/php-jeremeamia-superclosure-php8.patch
@@ -0,0 +1,22 @@
+From 536eaa1552c7f135ac97ac06eadfa076bb6f8127 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@famillecollet.com>
+Date: Mon, 29 Mar 2021 15:14:26 +0200
+Subject: [PATCH] Fix char / string
+
+---
+ tests/Unit/SerializerTest.php | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/Unit/SerializerTest.php b/tests/Unit/SerializerTest.php
+index d35d18a..9137c7c 100644
+--- a/tests/Unit/SerializerTest.php
++++ b/tests/Unit/SerializerTest.php
+@@ -27,7 +27,7 @@ public function testUnserializingFailsWithInvalidSignature()
+ $serializedFn = $serializer->serialize($originalFn);
+
+ // Modify the serialized closure.
+- $serializedFn[5] = '6119dcd1245df749d162b544d4f44280eef3e7f4d4c636611ed87e7b97198c0b';
++ $serializedFn[5] = 'x';
+
+ // Unserialization should fail on invalid signature.
+ $this->setExpectedException('SuperClosure\Exception\ClosureUnserializationException');
diff --git a/php-jeremeamia-superclosure.spec b/php-jeremeamia-superclosure.spec
index 1f29632..9edccf7 100644
--- a/php-jeremeamia-superclosure.spec
+++ b/php-jeremeamia-superclosure.spec
@@ -1,6 +1,6 @@
# remirepo/fedora spec file for php-jeremeamia-superclosure
#
-# Copyright (c) 2015-2018 Remi Collet
+# Copyright (c) 2015-2021 Remi Collet
# License: CC-BY-SA
# http://creativecommons.org/licenses/by-sa/4.0/
#
@@ -19,7 +19,7 @@
Name: php-%{pk_vendor}-%{pk_name}
Version: 2.4.0
-Release: 1%{?dist}
+Release: 9%{?dist}
Summary: Serialize Closure objects, including their context and binding
License: MIT
@@ -27,38 +27,38 @@ URL: https://github.com/%{gh_owner}/%{gh_project}
Source0: %{name}-%{version}-%{gh_short}.tgz
# Create git snapshot as tests are excluded from official tarball
Source1: makesrc.sh
-# Autoloader
-Source2: %{name}-autoload.php
+
+Patch0: %{name}-php8.patch
BuildArch: noarch
-BuildRequires: php(language) >= 5.4
+BuildRequires: php(language) >= 7.0
+# remirepo:1
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-BuildRequires: (php-composer(nikic/php-parser) >= 1.4 with php-composer(nikic/php-parser) < 5)
-BuildRequires: (php-composer(symfony/polyfill-php56) >= 1.0 with php-composer(symfony/polyfill-php56) < 2)
+BuildRequires: (php-composer(nikic/php-parser) >= 4.0 with php-composer(nikic/php-parser) < 5)
+# remirepo:3
%else
-BuildRequires: php-nikic-php-parser3
-BuildRequires: php-symfony-polyfill
+BuildRequires: php-nikic-php-parser4
%endif
# From composer.json, "require-dev": {
# "phpunit/phpunit": "^4.0|^5.0",
BuildRequires: php-composer(phpunit/phpunit) >= 4.0
# Autoloader
-BuildRequires: php-composer(fedora/autoloader)
+BuildRequires: php-fedora-autoloader-devel
# From composer.json, "require": {
# "php": ">=5.4",
# "nikic/php-parser": "^1.2|^2.0|^3.0|^4.0",
# "symfony/polyfill-php56": "^1.0"
# php-parser 1.4 for autoloader
-Requires: php(language) >= 5.4
+Requires: php(language) >= 7.0
+# remirepo:1
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-Requires: (php-composer(nikic/php-parser) >= 1.4 with php-composer(nikic/php-parser) < 5)
-Requires: (php-composer(symfony/polyfill-php56) >= 1.0 with php-composer(symfony/polyfill-php56) < 2)
+Requires: (php-composer(nikic/php-parser) >= 4.0 with php-composer(nikic/php-parser) < 5)
+# remirepo:3
%else
-Requires: php-nikic-php-parser3
-Requires: php-symfony-polyfill
+Requires: php-nikic-php-parser4
%endif
-# From phpcompatifo report for 2.1.0
+# From phpcompatifo report for 2.4.0
Requires: php-hash
Requires: php-reflection
Requires: php-spl
@@ -73,17 +73,22 @@ Provides: php-composer(%{pk_vendor}/%{pk_name}) = %{version}
Even though serializing closures is "not allowed" by PHP,
the SuperClosure library makes it possible
-To use this library, you just have to add, in your project:
- require-once '%{_datadir}/php/%{namespace}/autoload.php';
+Autoloader: %{_datadir}/php/%{namespace}/autoload.php
%prep
%setup -q -n %{gh_project}-%{gh_commit}
-install -pm 644 %{SOURCE2} src/autoload.php
+%patch0 -p1 -b .php8
%build
-# Nothing
+phpab -t fedora -o src/autoload.php src
+cat << 'EOF' | tee -a src/autoload.php
+
+\Fedora\Autoloader\Dependencies::required([
+ '%{_datadir}/php/PhpParser4/autoload.php',
+]);
+EOF
%install
@@ -103,7 +108,7 @@ EOF
: Run the test suite
ret=0
-for cmd in php php70 php71 php72; do
+for cmd in php php73 php74 php80; do
if which $cmd; then
$cmd %{_bindir}/phpunit || ret=1
fi
@@ -112,6 +117,7 @@ exit $ret
%files
+# remirepo:1
%{!?_licensedir:%global license %%doc}
%license LICENSE.md
%doc README.md composer.json
@@ -119,6 +125,16 @@ exit $ret
%changelog
+* Mon Mar 29 2021 Remi Collet <remi@remirepo.net> - 2.4.0-9
+- fix test suite using patch from
+ https://github.com/jeremeamia/super_closure/pull/114
+- switch to classmap autoloader
+
+* Mon Oct 26 2020 Remi Collet <remi@remirepo.net> - 2.4.0-7
+- raise dependency on PHP 7.0
+- raise dependency on nikic/php-parser 4.0
+- drop dependency on symfony-polyfill
+
* Thu Mar 22 2018 Remi Collet <remi@remirepo.net> - 2.4.0-1
- update to 2.4.0
- use range dependencies on F27+ else package names