summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore7
-rw-r--r--3563.patch23
-rw-r--r--PHPINFO4
-rw-r--r--REFLECTION17
-rw-r--r--composer.json14
-rwxr-xr-xmakesrc.sh28
-rw-r--r--php-twig.spec341
7 files changed, 186 insertions, 248 deletions
diff --git a/.gitignore b/.gitignore
index d820c84..01f0400 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,9 @@
+clog
+package-*.xml
+*.tgz
+*.tar.bz2
*.tar.gz
+*.tar.xz
+*.tar.xz.asc
*.src.rpm
+*/*rpm
diff --git a/3563.patch b/3563.patch
new file mode 100644
index 0000000..dcb0abb
--- /dev/null
+++ b/3563.patch
@@ -0,0 +1,23 @@
+From 61df934a7ea2ed0c9860bf62c0c68f5318d99926 Mon Sep 17 00:00:00 2001
+From: Remi Collet <fedora@famillecollet.com>
+Date: Wed, 22 Sep 2021 11:33:46 +0200
+Subject: [PATCH] Missing Environment and LoaderInterface
+
+---
+ tests/escapingTest.php | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/tests/escapingTest.php b/tests/escapingTest.php
+index a35ce9ab1..6ebb7b7e3 100644
+--- a/tests/escapingTest.php
++++ b/tests/escapingTest.php
+@@ -2,6 +2,9 @@
+
+ namespace Twig\Tests;
+
++use Twig\Environment;
++use Twig\Loader\LoaderInterface;
++
+ /**
+ * This class is adapted from code coming from Zend Framework.
+ *
diff --git a/PHPINFO b/PHPINFO
deleted file mode 100644
index bf96a77..0000000
--- a/PHPINFO
+++ /dev/null
@@ -1,4 +0,0 @@
-
-twig
-
-Version => 1.42.2
diff --git a/REFLECTION b/REFLECTION
deleted file mode 100644
index faeac61..0000000
--- a/REFLECTION
+++ /dev/null
@@ -1,17 +0,0 @@
-Extension [ <persistent> extension #79 twig version 1.42.2 ] {
-
- - Functions {
- Function [ <internal:twig> function twig_template_get_attributes ] {
-
- - Parameters [6] {
- Parameter #0 [ <required> $template ]
- Parameter #1 [ <required> $object ]
- Parameter #2 [ <required> $item ]
- Parameter #3 [ <required> $arguments ]
- Parameter #4 [ <required> $type ]
- Parameter #5 [ <required> $isDefinedTest ]
- }
- }
- }
-}
-
diff --git a/composer.json b/composer.json
index 2f10465..46b0fc7 100644
--- a/composer.json
+++ b/composer.json
@@ -5,6 +5,7 @@
"keywords": ["templating"],
"homepage": "https://twig.symfony.com",
"license": "BSD-3-Clause",
+ "minimum-stability": "dev",
"authors": [
{
"name": "Fabien Potencier",
@@ -14,7 +15,6 @@
},
{
"name": "Twig Team",
- "homepage": "https://twig.symfony.com/contributors",
"role": "Contributors"
},
{
@@ -24,12 +24,11 @@
}
],
"require": {
- "php": ">=5.4.0",
+ "php": ">=7.2.5",
"symfony/polyfill-ctype": "^1.8"
},
"require-dev": {
- "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0",
- "symfony/debug": "^2.7",
+ "symfony/phpunit-bridge": "^4.4.9|^5.0.9",
"psr/container": "^1.0"
},
"autoload": {
@@ -40,9 +39,14 @@
"Twig\\" : "src/"
}
},
+ "autoload-dev": {
+ "psr-4" : {
+ "Twig\\Tests\\" : "tests"
+ }
+ },
"extra": {
"branch-alias": {
- "dev-master": "1.42-dev"
+ "dev-master": "1.44-dev"
}
}
}
diff --git a/makesrc.sh b/makesrc.sh
new file mode 100755
index 0000000..97be9f6
--- /dev/null
+++ b/makesrc.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+NAME=$(basename $PWD)
+OWNER=$(sed -n '/^%global github_owner/{s/.* //;p}' $NAME.spec)
+PROJECT=$(sed -n '/^%global github_name/{s/.* //;p}' $NAME.spec)
+VERSION=$(sed -n '/^%global github_version/{s/.* //;p}' $NAME.spec)
+COMMIT=$(sed -n '/^%global github_commit/{s/.* //;p}' $NAME.spec)
+SHORT=${COMMIT:0:7}
+
+echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION\n"
+
+echo "Cloning..."
+rm -rf $PROJECT-$COMMIT
+git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT
+
+echo "Getting commit..."
+pushd $PROJECT-$COMMIT
+git checkout $COMMIT
+cp composer.json ../composer.json
+popd
+
+echo "Archiving..."
+tar czf $NAME-$VERSION-$SHORT.tgz --exclude-vcs $PROJECT-$COMMIT
+
+echo "Cleaning..."
+rm -rf $PROJECT-$COMMIT
+
+echo "Done."
diff --git a/php-twig.spec b/php-twig.spec
index 0591ef8..4331931 100644
--- a/php-twig.spec
+++ b/php-twig.spec
@@ -1,9 +1,8 @@
# remirepo spec file for php-twig
-# With SCL stuff, from Fedora:
#
# Fedora spec file for php-twig
#
-# Copyright (c) 2014-2019 Shawn Iwinski <shawn.iwinski@gmail.com>
+# Copyright (c) 2014-2022 Shawn Iwinski <shawn.iwinski@gmail.com>
# Remi Collet <remi@fedoraproject.org>
#
# License: MIT
@@ -11,163 +10,98 @@
#
# Please preserve changelog entries
#
-%if 0%{?scl:1}
-# PHPUnit not available in SCL
-%global with_tests 0
-%global sub_prefix %{scl_prefix}
-%scl_package php-twig
-%else
-%global pkg_name %{name}
-%if 0%{?fedora} || 0%{?rhel} >= 8
+
# Build using "--without tests" to disable tests
-%global with_tests 0%{!?_without_tests:1}
-%else
-# Build using "--with tests" to enable tests
-# PHPUnit in remi requires PHP 5.6
-%global with_tests 0%{?_with_tests:1}
-%endif
-%endif
+%bcond_without tests
%global github_owner twigphp
%global github_name Twig
-%global github_version 1.42.2
-%global github_commit 21707d6ebd05476854805e4f91b836531941bcd4
+%global github_version 1.44.7
+%global github_commit 0887422319889e442458e48e2f3d9add1a172ad5
%global github_short %(c=%{github_commit}; echo ${c:0:7})
-%if "%{php_version}" < "7"
-%global with_ext 1
-%else
-%global with_ext 0
-BuildArch: noarch
-%endif
-
# Lib
%global composer_vendor twig
%global composer_project twig
-# Ext
-%global ext_name twig
-%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}}
-%if "%{php_version}" < "5.6"
-%global ini_name %{ext_name}.ini
-%else
-%global ini_name 40-%{ext_name}.ini
-%endif
+# "php": ">=7.2.5"
+%global php_min_ver 7.2.5
-# "php": ">=5.4.0"
-%global php_min_ver 5.4
+%{!?phpdir: %global phpdir %{_datadir}/php}
+%{!?php_inidir: %global php_inidir %{_sysconfdir}/php.d}
-%global phpdir %{_datadir}/php
-
-Name: %{?sub_prefix}php-%{composer_project}
+Name: php-%{composer_project}
Version: %{github_version}
-Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 1%{?dist}
Summary: The flexible, fast, and secure template engine for PHP
License: BSD
URL: http://twig.sensiolabs.org
-Source0: https://github.com/%{github_owner}/%{github_name}/archive/%{github_commit}/%{pkg_name}-%{github_version}-%{github_short}.tar.gz
+Source0: %{name}-%{github_version}-%{github_short}.tgz
+Source1: makesrc.sh
-BuildRequires: %{?scl_prefix}php-devel >= %{php_min_ver}
-%if %{with_tests}
-# For tests
-BuildRequires: php-composer(phpunit/phpunit)
+BuildArch: noarch
+# as we use phpunit9 (for assertFileDoesNotExist)
+BuildRequires: php-devel >= 7.3
+# Tests
+%if %{with tests}
+# remirepo:1
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-BuildRequires: (php-composer(symfony/debug) >= 2.7 with php-composer(symfony/debug) < 3)
+BuildRequires: (php-composer(symfony/debug) >= 3.4 with php-composer(symfony/debug) < 4)
BuildRequires: (php-composer(psr/container) >= 1.0 with php-composer(psr/container) < 2)
+# remirepo:5
%else
-BuildRequires: php-symfony-debug >= 2.7
-BuildRequires: php-composer(psr/container) < 2
-BuildRequires: php-composer(psr/container) >= 1.0
+BuildRequires: php-symfony3-debug >= 3.4
+BuildRequires: php-psr-container < 2
+BuildRequires: php-psr-container >= 1.0
%endif
+%global phpunit %{_bindir}/phpunit9
+BuildRequires: %{phpunit}
## phpcompatinfo (computed from version 1.42.2)
-BuildRequires: %{?scl_prefix}php-ctype
-BuildRequires: %{?scl_prefix}php-date
-BuildRequires: %{?scl_prefix}php-dom
-BuildRequires: %{?scl_prefix}php-hash
-BuildRequires: %{?scl_prefix}php-iconv
-BuildRequires: %{?scl_prefix}php-json
-BuildRequires: %{?scl_prefix}php-mbstring
-BuildRequires: %{?scl_prefix}php-pcre
-BuildRequires: %{?scl_prefix}php-reflection
-BuildRequires: %{?scl_prefix}php-simplexml
-BuildRequires: %{?scl_prefix}php-spl
+BuildRequires: php-ctype
+BuildRequires: php-date
+BuildRequires: php-dom
+BuildRequires: php-hash
+BuildRequires: php-iconv
+BuildRequires: php-json
+BuildRequires: php-mbstring
+BuildRequires: php-pcre
+BuildRequires: php-reflection
+BuildRequires: php-simplexml
+BuildRequires: php-spl
%endif
# Autoloader
BuildRequires: php-fedora-autoloader-devel
# Lib
## composer.json
-Requires: %{?scl_prefix}php(language) >= %{php_min_ver}
+Requires: php(language) >= %{php_min_ver}
## phpcompatinfo (computed from version 1.42.2)
-Requires: %{?scl_prefix}php-ctype
-Requires: %{?scl_prefix}php-date
-Requires: %{?scl_prefix}php-dom
-Requires: %{?scl_prefix}php-hash
-Requires: %{?scl_prefix}php-iconv
-Requires: %{?scl_prefix}php-json
-Requires: %{?scl_prefix}php-mbstring
-Requires: %{?scl_prefix}php-pcre
-Requires: %{?scl_prefix}php-reflection
-Requires: %{?scl_prefix}php-simplexml
-Requires: %{?scl_prefix}php-spl
-%if %{with_ext}
-# Ext
-Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api}
-Requires: %{?scl_prefix}php(api) = %{php_core_api}
-%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}}
-%endif
+Requires: php-ctype
+Requires: php-date
+Requires: php-dom
+Requires: php-hash
+Requires: php-iconv
+Requires: php-json
+Requires: php-mbstring
+Requires: php-pcre
+Requires: php-reflection
+Requires: php-simplexml
+Requires: php-spl
# Autoloader
Requires: php-composer(fedora/autoloader)
# Lib
## Composer
-Provides: %{?scl_prefix}php-composer(%{composer_vendor}/%{composer_project}) = %{version}
+Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version}
## Rename
-Obsoletes: %{?scl_prefix}php-twig-Twig < %{version}-%{release}
-Provides: %{?scl_prefix}php-twig-Twig = %{version}-%{release}
+Obsoletes: php-twig-Twig < %{version}-%{release}
+Provides: php-twig-Twig = %{version}-%{release}
## PEAR
-Provides: %{?scl_prefix}php-pear(pear.twig-project.org/Twig) = %{version}
-%if %{with_ext}
-# Ext
-## Rename
-Obsoletes: %{?scl_prefix}php-twig-ctwig < %{version}-%{release}
-Provides: %{?scl_prefix}php-twig-ctwig = %{version}-%{release}
-Provides: %{?scl_prefix}php-twig-ctwig%{?_isa} = %{version}-%{release}
-%if "%{?scl_prefix}" != "%{?sub_prefix}"
-## Compat SCL (rh-php56)
-Provides: %{?scl_prefix}php-twig = %{version}-%{release}
-Provides: %{?scl_prefix}php-twig%{?_isa} = %{version}-%{release}
-%endif
-## PECL
-Provides: %{?scl_prefix}php-pecl(pear.twig-project.org/CTwig) = %{version}
-Provides: %{?scl_prefix}php-pecl(pear.twig-project.org/CTwig)%{?_isa} = %{version}
-%endif
+Provides: php-pear(pear.twig-project.org/Twig) = %{version}
# This pkg was the only one in this channel so the channel is no longer needed
-Obsoletes: %{?scl_prefix}php-channel-twig
-
-%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel}
-# Other third party repo stuff
-Obsoletes: php53-%{ext_name} <= %{version}
-Obsoletes: php53u-%{ext_name} <= %{version}
-Obsoletes: php54-%{ext_name} <= %{version}
-Obsoletes: php54w-%{ext_name} <= %{version}
-%if "%{php_version}" > "5.5"
-Obsoletes: php55u-%{ext_name} <= %{version}
-Obsoletes: php55w-%{ext_name} <= %{version}
-%endif
-%if "%{php_version}" > "5.6"
-Obsoletes: php56u-%{ext_name} <= %{version}
-Obsoletes: php56w-%{ext_name} <= %{version}
-%endif
-%endif
-
-%if 0%{?fedora} < 20 && 0%{?rhel} < 7
-# Filter shared private
-%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$}
-%{?filter_setup}
-%endif
+Obsoletes: php-channel-twig < 1.4
%description
@@ -184,31 +118,12 @@ Obsoletes: php56w-%{ext_name} <= %{version}
developer to define its own custom tags and filters, and create its own
DSL.
-Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}.
+Autoloader: %{phpdir}/Twig/autoload.php
%prep
%setup -qn %{github_name}-%{github_commit}
-: PHP version %{php_version}
-: Build extension %{with_ext}
-
-%if %{with_ext}
-: Ext -- NTS
-mv ext/%{ext_name} ext/NTS
-sed -e '/PHP_TWIG_VERSION/s/-DEV//' -i ext/NTS/php_twig.h
- %if %{with_zts}
-: Ext -- ZTS
-cp -pr ext/NTS ext/ZTS
-%endif
-
-: Ext -- Create configuration file
-cat > %{ini_name} << 'INI'
-; Enable %{ext_name} extension module
-extension=%{ext_name}.so
-INI
-%endif
-
: Move the PSR-4 compat library
mv src lib/Twig/psr4
@@ -217,45 +132,14 @@ phpab --template fedora --output lib/Twig/autoload.php lib
%build
-%{?dtsenable}
-
-%if %{with_ext}
-: Ext -- NTS
-pushd ext/NTS
-%{_bindir}/phpize
-%configure --with-php-config=%{_bindir}/php-config
-make %{?_smp_mflags}
-popd
-
-: Ext -- ZTS
-%if %{with_zts}
-pushd ext/ZTS
-%{_bindir}/zts-phpize
-%configure --with-php-config=%{_bindir}/zts-php-config
-make %{?_smp_mflags}
-popd
-%endif
-%endif
+: nothing
%install
-%{?dtsenable}
-
: PSR-0 and PSR-4 Libraries
mkdir -p %{buildroot}%{phpdir}
cp -rp lib/* %{buildroot}%{phpdir}/
-%if %{with_ext}
-: Ext -- NTS
-make -C ext/NTS install INSTALL_ROOT=%{buildroot}
-install -D -m 0644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name}
-: Ext -- ZTS
-%if %{with_zts}
-make -C ext/ZTS install INSTALL_ROOT=%{buildroot}
-install -D -m 0644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name}
-%endif
-%endif
-
%check
: Library version check
@@ -265,85 +149,98 @@ install -D -m 0644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name}
%{_bindir}/php -r 'require_once "%{buildroot}%{phpdir}/Twig/autoload.php";
exit(version_compare("%{version}", Twig\Environment::VERSION, "=") ? 0 : 1);'
-%if %{with_ext}
-: Extension version check
-EXT_VERSION=`grep PHP_TWIG_VERSION ext/NTS/php_twig.h | awk '{print $3}' | sed 's/"//g'` \
- %{_bindir}/php -r 'exit(version_compare("%{version}", getenv("EXT_VERSION"), "=") ? 0 : 1);'
-
-: Extension NTS minimal load test
-%{__php} --no-php-ini \
- --define extension=ext/NTS/modules/%{ext_name}.so \
- --modules | grep %{ext_name}
-
-%if %{with_zts}
-: Extension ZTS minimal load test
-%{__ztsphp} --no-php-ini \
- --define extension=ext/ZTS/modules/%{ext_name}.so \
- --modules | grep %{ext_name}
-%endif
-%endif
-
-%if %{with_tests}
+%if %{with tests}
: Generate autoloader
mkdir vendor
cat << 'EOF' | tee vendor/autoload.php
<?php
require_once '%{buildroot}%{phpdir}/Twig/autoload.php';
+\Fedora\Autoloader\Autoload::addPsr4('Twig\\Tests\\', dirname(__DIR__) . '/tests');
\Fedora\Autoloader\Dependencies::required(array(
- '%{phpdir}/Symfony/Component/Debug/autoload.php',
+ '%{phpdir}/Symfony3/Component/Debug/autoload.php',
'%{phpdir}/Psr/Container/autoload.php',
));
EOF
-: Skip tests known to fail
-%if 0%{?rhel} == 6
-sed -e 's/function testGetAttributeWithTemplateAsObject/function skip_testGetAttributeWithTemplateAsObject/' \
- -i test/Twig/Tests/TemplateTest.php
-%endif
-
-: Disable listener from symfony/phpunit-bridge ~3.2
+: Disable listener from symfony/phpunit-bridge # ^4.4.9|^5.0.9
sed -e '/listener/d' phpunit.xml.dist > phpunit.xml
: Test suite without extension
ret=0
-# TODO : 2 failed tests with 7.4 (Function ReflectionType::__toString() is deprecated)
-for cmd in php php71 php72 php73; do
- if which $cmd; then
- $cmd %{_bindir}/phpunit --verbose || ret=1
- fi
+for SCL in "php %{phpunit}" php74 php80 php81 php82; do
+ if which $SCL; then
+ set $SCL
+ $1 ${2:-%{_bindir}/phpunit9} $SKIP \
+ --verbose || RETURN_CODE=1
+ fi
done
-%if %{with_ext}
-: Test suite with extension
-%{_bindir}/php --define extension=ext/NTS/modules/%{ext_name}.so \
- %{_bindir}/phpunit --verbose || ret=1
-%endif
-
-exit $ret
+exit $RETURN_CODE
%else
: Tests skipped
%endif
%files
+# remirepo:1
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc CHANGELOG README.rst composer.json
# Lib
%{phpdir}/Twig
-%if %{with_ext}
-# Ext
-## NTS
-%config(noreplace) %{php_inidir}/%{ini_name}
-%{php_extdir}/%{ext_name}.so
-## ZTS
-%if %{with_zts}
-%config(noreplace) %{php_ztsinidir}/%{ini_name}
-%{php_ztsextdir}/%{ext_name}.so
-%endif
-%endif
%changelog
+* Thu Sep 29 2022 Remi Collet <remi@remirepo.net> - 1.44.7-1
+- update to 1.44.7
+
+* Thu Nov 25 2021 Remi Collet <remi@remirepo.net> - 1.44.6-1
+- update to 1.44.6 (no change)
+- drop patch merged upstream
+
+* Wed Sep 22 2021 Remi Collet <remi@remirepo.net> - 1.44.5-1
+- update to 1.44.5
+- add patch for test suite from https://github.com/twigphp/Twig/pull/3563
+
+* Mon May 17 2021 Remi Collet <remi@remirepo.net> - 1.44.4-1
+- update to 1.44.4
+
+* Wed May 12 2021 Remi Collet <remi@remirepo.net> - 1.44.3-1
+- update to 1.44.3
+
+* Wed Jan 6 2021 Remi Collet <remi@remirepo.net> - 1.44.2-1
+- update to 1.44.2
+
+* Wed Oct 28 2020 Remi Collet <remi@remirepo.net> - 1.44.1-1
+- update to 1.44.1
+
+* Wed Oct 21 2020 Remi Collet <remi@remirepo.net> - 1.44.0-1
+- update to 1.44.0
+- raise dependency on PHP 7.2.5
+
+* Tue Aug 11 2020 Remi Collet <remi@remirepo.net> - 1.43.1-1
+- update to 1.43.1
+- switch to phpunit9
+- skip 1 more test with PHP 8.0
+
+* Mon Jul 6 2020 Remi Collet <remi@remirepo.net> - 1.43.0-1
+- update to 1.43.0
+- raise dependency on PHP 7.1.3
+- switch to phpunit8
+
+* Wed Feb 12 2020 Remi Collet <remi@remirepo.net> - 1.42.5-1
+- update to 1.42.5
+
+* Tue Nov 12 2019 Remi Collet <remi@remirepo.net> - 1.42.4-1
+- update to 1.42.4
+- sources from git snapshot
+
+* Tue Aug 27 2019 Remi Collet <remi@remirepo.net> - 1.42.3-1
+- update to 1.42.3
+- use symfony/debug v3
+- use phpunit v7
+- raise dependency on PHP 5.5
+- drop support of the C extension
+
* Tue Jun 18 2019 Shawn Iwinski <shawn@iwin.ski> - 1.42.2-1
- Update to 1.42.2