summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0001-Fix-Implicitly-marking-parameter-.-as-nullable-is-de.patch111
-rw-r--r--php-pecl-handlebars.spec100
2 files changed, 154 insertions, 57 deletions
diff --git a/0001-Fix-Implicitly-marking-parameter-.-as-nullable-is-de.patch b/0001-Fix-Implicitly-marking-parameter-.-as-nullable-is-de.patch
new file mode 100644
index 0000000..a8f006d
--- /dev/null
+++ b/0001-Fix-Implicitly-marking-parameter-.-as-nullable-is-de.patch
@@ -0,0 +1,111 @@
+From d89c051d3d24a9a96684c123207534cc5c4a58da Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Mon, 15 Jul 2024 16:03:49 +0200
+Subject: [PATCH] Fix Implicitly marking parameter $.. as nullable is
+ deprecated
+
+---
+ tests/base-impl/fake-impl.php.inc | 4 ++--
+ tests/helper-with-options-union.phpt | 2 +-
+ tests/helper-with-options.phpt | 2 +-
+ tests/vm/__construct-without-psr.phpt | 8 ++++----
+ tests/vm/setLogger-without-psr.phpt | 8 ++++----
+ 5 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/tests/base-impl/fake-impl.php.inc b/tests/base-impl/fake-impl.php.inc
+index 434e0dc..f186734 100644
+--- a/tests/base-impl/fake-impl.php.inc
++++ b/tests/base-impl/fake-impl.php.inc
+@@ -1,6 +1,6 @@
+ <?php
+
+ class FakeImpl extends Handlebars\BaseImpl {
+- public function render(string $tmpl, $context = null, array $options = null): string {}
+- public function renderFile(string $filename, $context = null, array $options = null): string {}
++ public function render(string $tmpl, $context = null, ?array $options = null): string {}
++ public function renderFile(string $filename, $context = null, ?array $options = null): string {}
+ }
+diff --git a/tests/helper-with-options-union.phpt b/tests/helper-with-options-union.phpt
+index ac3f88c..86626bc 100644
+--- a/tests/helper-with-options-union.phpt
++++ b/tests/helper-with-options-union.phpt
+@@ -17,7 +17,7 @@ $helpers = new DefaultRegistry(array(
+ 'testHelperWithUnionType2' => function(string $a, string|int|null $b = null) {
+ var_dump(func_num_args());
+ },
+- 'testHelperWithUnionType3' => function(string $a, stdClass|Handlebars\Options $b = null) {
++ 'testHelperWithUnionType3' => function(string $a, stdClass|Handlebars\Options|null $b = null) {
+ var_dump(func_num_args());
+ },
+ ));
+diff --git a/tests/helper-with-options.phpt b/tests/helper-with-options.phpt
+index 29ed341..316add8 100644
+--- a/tests/helper-with-options.phpt
++++ b/tests/helper-with-options.phpt
+@@ -27,7 +27,7 @@ $helpers = new DefaultRegistry(array(
+ var_dump(gettype($b));
+ var_dump(get_class($b));
+ },
+- 'testHelperWithInvalidArgType' => function(string $a, string $b = null) {
++ 'testHelperWithInvalidArgType' => function(string $a, ?string $b = null) {
+ var_dump(func_num_args());
+ var_dump($a);
+ var_dump(gettype($b));
+diff --git a/tests/vm/__construct-without-psr.phpt b/tests/vm/__construct-without-psr.phpt
+index a0ca724..b2a561b 100644
+--- a/tests/vm/__construct-without-psr.phpt
++++ b/tests/vm/__construct-without-psr.phpt
+@@ -11,11 +11,11 @@ if( extension_loaded('psr') ) die('skip ');
+ namespace Psr\Log;
+
+ interface LoggerInterface {
+- public function log($level, $message, array $context = null);
++ public function log($level, $message, ?array $context = null);
+ }
+ abstract class AbstractLogger implements LoggerInterface {
+- public function info($message, array $context = null) { $this->log('info', $message, $context); }
+- public function warning($message, array $context = null) { $this->log('warning', $message, $context); }
++ public function info($message, ?array $context = null) { $this->log('info', $message, $context); }
++ public function warning($message, ?array $context = null) { $this->log('warning', $message, $context); }
+ }
+
+ namespace IgnoreMe;
+@@ -25,7 +25,7 @@ use Handlebars\VM;
+ use Psr\Log\AbstractLogger;
+
+ class TestLogger extends AbstractLogger {
+- public function log($level, $message, array $context = null) { var_dump($level, $message); }
++ public function log($level, $message, ?array $context = null) { var_dump($level, $message); }
+ }
+
+ $helpers = new DefaultRegistry();
+diff --git a/tests/vm/setLogger-without-psr.phpt b/tests/vm/setLogger-without-psr.phpt
+index 2553a3c..735e5c1 100644
+--- a/tests/vm/setLogger-without-psr.phpt
++++ b/tests/vm/setLogger-without-psr.phpt
+@@ -6,18 +6,18 @@ Handlebars\VM::setLogger() without php-psr
+ <?php
+ namespace Psr\Log;
+ interface LoggerInterface {
+- public function log($level, $message, array $context = null);
++ public function log($level, $message, ?array $context = null);
+ }
+ abstract class AbstractLogger implements LoggerInterface {
+- public function info($message, array $context = null) { $this->log('info', $message, $context); }
+- public function warning($message, array $context = null) { $this->log('warning', $message, $context); }
++ public function info($message, ?array $context = null) { $this->log('info', $message, $context); }
++ public function warning($message, ?array $context = null) { $this->log('warning', $message, $context); }
+ }
+
+ namespace Invalid;
+ use Psr\Log\AbstractLogger;
+ use Handlebars\VM;
+ class TestLogger extends AbstractLogger {
+- public function log($level, $message, array $context = null) { var_dump($level, $message); }
++ public function log($level, $message, ?array $context = null) { var_dump($level, $message); }
+ }
+ $logger = new TestLogger();
+ $vm = new VM();
+--
+2.45.2
+
diff --git a/php-pecl-handlebars.spec b/php-pecl-handlebars.spec
index 33fb80d..33f0dea 100644
--- a/php-pecl-handlebars.spec
+++ b/php-pecl-handlebars.spec
@@ -1,34 +1,34 @@
# remirepo spec file for php-pecl-handlebars
#
-# Copyright (c) 2017-2022 Remi Collet
-# License: CC-BY-SA
+# Copyright (c) 2017-2024 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}
-%scl_package php-pecl-handlebars
-%endif
+%{?scl:%scl_package php-pecl-handlebars}
-%bcond_without tests
+%bcond_without tests
-%global pecl_name handlebars
-%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}}
+%global pecl_name handlebars
+%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}}
# After 40-psr.ini
-%global ini_name 50-%{pecl_name}.ini
-
+%global ini_name 50-%{pecl_name}.ini
%global upstream_version 1.0.0
#global upstream_prever RC2
+%global sources %{pecl_name}-%{upstream_version}%{?upstream_prever}
+%global _configure ../%{sources}/configure
Summary: Handlebars templating language
Name: %{?scl_prefix}php-pecl-%{pecl_name}
Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}}
-Release: 2%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
-License: BSD
+Release: 4%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+License: BSD-2-Clause
URL: https://pecl.php.net/package/%{pecl_name}
-Source0: https://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz
+Source0: https://pecl.php.net/get/%{sources}.tgz
Patch0: upstream.patch
+Patch1: 0001-Fix-Implicitly-marking-parameter-.-as-nullable-is-de.patch
BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
@@ -39,10 +39,7 @@ BuildRequires: libtalloc-devel
Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api}
Requires: %{?scl_prefix}php(api) = %{php_core_api}
-%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}}
-%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
Recommends: %{?scl_prefix}php-psr%{?_isa}
-%endif
Provides: %{?scl_prefix}php-%{pecl_name} = %{version}
Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version}
@@ -69,14 +66,16 @@ These are the files needed to compile programs using %{name}.
%prep
%setup -q -c
-mv %{pecl_name}-%{upstream_version}%{?upstream_prever} NTS
# Don't install/register License
-%{?_licensedir:sed -e '/LICENSE/s/role="doc"/role="src"/' -i package.xml}
+sed -e '/LICENSE/s/role="doc"/role="src"/' -i package.xml
-cd NTS
-%patch0 -p1 -b .up
+cd %{sources}
+%patch -P0 -p1 -b .up
+if [ $(%{__php} -r 'echo PHP_VERSION_ID;') -ge 80400 ]; then
+%patch -P1 -p1 -b .up
+fi
# Honours RPM build options
sed -e '/ LDFLAGS=/d;/ CFLAGS=/d;' -i config.m4
@@ -89,9 +88,9 @@ if test "x${extver}" != "x%{upstream_version}%{?upstream_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
@@ -115,26 +114,27 @@ EOF
%build
%{?dtsenable}
-cd NTS
-%{_bindir}/phpize
+cd %{sources}
+%{__phpize}
+
+cd ../NTS
%configure \
--enable-handlebars \
--disable-handlebars-psr \
--enable-handlebars-ast \
--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-handlebars \
--disable-handlebars-psr \
--enable-handlebars-ast \
--with-libdir=%{_lib} \
- --with-php-config=%{_bindir}/zts-php-config
+ --with-php-config=%{__ztsphpconfig}
make %{?_smp_mflags}
%endif
@@ -159,38 +159,19 @@ install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name}
# Test & Documentation
for i in $(grep 'role="test"' package.xml | sed -e 's/^.*name="//;s/".*$//')
-do install -Dpm 644 NTS/$i %{buildroot}%{pecl_testdir}/%{pecl_name}/$i
+do install -Dpm 644 %{sources}/$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 NTS/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i
+do install -Dpm 644 %{sources}/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i
done
-%if 0%{?fedora} < 24 && 0%{?rhel} < 8
-# 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
-
-
%check
+cd %{sources}
+
: Minimal load test for NTS extension
-cd NTS
%{__php} --no-php-ini \
- --define extension=modules/%{pecl_name}.so \
+ --define extension=../NTS/modules/%{pecl_name}.so \
--modules | grep '^%{pecl_name}$'
%if %{with tests}
@@ -200,21 +181,20 @@ OPT="$OPT %{?_smp_mflags}"
%endif
# Upstream test suite
-TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \
+TEST_PHP_ARGS="-n -d extension=$PWD/../NTS/modules/%{pecl_name}.so" \
REPORT_EXIT_STATUS=1 \
%{__php} -n run-tests.php $OPT
%endif
%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}$'
%if %{with tests}
# Upstream test suite
-TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \
+TEST_PHP_ARGS="-n -d extension=$PWD/../ZTS/modules/%{pecl_name}.so" \
REPORT_EXIT_STATUS=1 \
%{__ztsphp} -n run-tests.php $OPT
%endif
@@ -222,8 +202,7 @@ REPORT_EXIT_STATUS=1 \
%files
-%{!?_licensedir:%global license %%doc}
-%license NTS/LICENSE.md
+%license %{sources}/LICENSE.md
%doc %{pecl_docdir}/%{pecl_name}
%{pecl_xmldir}/%{name}.xml
@@ -246,6 +225,13 @@ REPORT_EXIT_STATUS=1 \
%changelog
+* Mon Jul 15 2024 Remi Collet <remi@remirepo.net> - 1.0.0-4
+- add patch for test suite with 8.4 from
+ https://github.com/jbboehr/php-handlebars/pull/78
+
+* Fri Sep 1 2023 Remi Collet <remi@remirepo.net> - 1.0.0-3
+- build out of sources tree
+
* Tue Nov 29 2022 Remi Collet <remi@remirepo.net> - 1.0.0-2
- add upstream patch for https://github.com/jbboehr/php-handlebars/issues/77