[php-twig] Initial import (#1118528)

Shawn Iwinski siwinski at fedoraproject.org
Wed Aug 27 22:08:55 UTC 2014


commit cae9b8b1571b31b72c387b0c10377275571e07ab
Author: Shawn Iwinski <siwinski at redhat.com>
Date:   Wed Aug 27 18:08:44 2014 -0400

    Initial import (#1118528)

 .gitignore    |    1 +
 php-twig.spec |  245 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 sources       |    1 +
 3 files changed, 247 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..cd02f41 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/php-twig-1.16.0-8ce37115802e257a984a82d38254884085060024.tar.gz
diff --git a/php-twig.spec b/php-twig.spec
new file mode 100644
index 0000000..f770110
--- /dev/null
+++ b/php-twig.spec
@@ -0,0 +1,245 @@
+#
+# RPM spec file for php-twig
+#
+# Copyright (c) 2014 Shawn Iwinski <shawn.iwinski at gmail.com>
+#                    Remi Collet <remi at fedoraproject.org>
+#
+# License: MIT
+# http://opensource.org/licenses/MIT
+#
+# Please preserve changelog entries
+#
+
+%global github_owner     fabpot
+%global github_name      Twig
+%global github_version   1.16.0
+%global github_commit    8ce37115802e257a984a82d38254884085060024
+
+# Lib
+%global composer_vendor  twig
+%global composer_project twig
+
+# Ext
+%global ext_name twig
+%global with_zts 0%{?__ztsphp:1}
+%if "%{php_version}" < "5.6"
+%global ini_name %{ext_name}.ini
+%else
+%global ini_name 40-%{ext_name}.ini
+%endif
+
+# "php": ">=5.2.4"
+%global php_min_ver 5.2.4
+
+# Build using "--without tests" to disable tests
+%global with_tests %{?_without_tests:0}%{!?_without_tests:1}
+
+%{!?php_inidir: %global php_inidir %{_sysconfdir}/php.d}
+%{!?__php:      %global __php      %{_bindir}/php}
+%{!?__phpunit:  %global __phpunit  %{_bindir}/phpunit}
+
+Name:          php-%{composer_project}
+Version:       %{github_version}
+Release:       2%{?dist}
+Summary:       The flexible, fast, and secure template engine for PHP
+
+Group:         Development/Libraries
+License:       BSD
+URL:           http://twig.sensiolabs.org
+Source0:       https://github.com/%{github_owner}/%{github_name}/archive/%{github_commit}/%{name}-%{github_version}-%{github_commit}.tar.gz
+
+BuildRequires: php-devel >= %{php_min_ver}
+%if %{with_tests}
+# For tests
+BuildRequires: php-phpunit-PHPUnit
+# For tests: phpcompatinfo (computed from version 1.16.0)
+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-spl
+%endif
+
+# Lib
+## composer.json
+Requires:      php(language) >= %{php_min_ver}
+## phpcompatinfo (computed from version 1.16.0)
+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-spl
+# Ext
+Requires:      php(zend-abi) = %{php_zend_api}
+Requires:      php(api)      = %{php_core_api}
+
+# Lib
+## Composer
+Provides:      php-composer(%{composer_vendor}/%{composer_project}) = %{version}
+## Rename
+Obsoletes:     php-twig-Twig < %{version}-%{release}
+Provides:      php-twig-Twig = %{version}-%{release}
+## PEAR
+Provides:      php-pear(pear.twig-project.org/Twig) = %{version}
+# Ext
+## Rename
+Obsoletes:     php-twig-ctwig         < %{version}-%{release}
+Provides:      php-twig-ctwig         = %{version}-%{release}
+Provides:      php-twig-ctwig%{?_isa} = %{version}-%{release}
+## PECL
+Provides:      php-pecl(pear.twig-project.org/CTwig)         = %{version}
+Provides:      php-pecl(pear.twig-project.org/CTwig)%{?_isa} = %{version}
+
+# This pkg was the only one in this channel so the channel is no longer needed
+Obsoletes:     php-channel-twig
+
+%if 0%{?fedora} < 20 && 0%{?rhel} < 7
+# Filter shared private
+%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$}
+%{?filter_setup}
+%endif
+
+%description
+%{summary}.
+
+* Fast: Twig compiles templates down to plain optimized PHP code. The
+  overhead compared to regular PHP code was reduced to the very minimum.
+
+* Secure: Twig has a sandbox mode to evaluate untrusted template code. This
+  allows Twig to be used as a template language for applications where users
+  may modify the template design.
+
+* Flexible: Twig is powered by a flexible lexer and parser. This allows the
+  developer to define its own custom tags and filters, and create its own
+  DSL.
+
+
+%prep
+%setup -qn %{github_name}-%{github_commit}
+
+# Licenses
+mv LICENSE LICENSE-lib
+mv ext/twig/LICENSE LICENSE-ext
+
+# Ext
+## NTS
+mv ext/%{ext_name} ext/NTS
+## ZTS
+%if %{with_zts}
+cp -pr ext/NTS ext/ZTS
+%endif
+
+## Create configuration file
+cat > %{ini_name} << 'INI'
+; Enable %{ext_name} extension module
+extension=%{ext_name}.so
+INI
+
+
+%build
+# Ext
+## NTS
+pushd ext/NTS
+%{_bindir}/phpize
+%configure --with-php-config=%{_bindir}/php-config
+make %{?_smp_mflags}
+popd
+
+## ZTS
+%if %{with_zts}
+pushd ext/ZTS
+%{_bindir}/zts-phpize
+%configure --with-php-config=%{_bindir}/zts-php-config
+make %{?_smp_mflags}
+popd
+%endif
+
+
+%install
+# Lib
+mkdir -p %{buildroot}/%{_datadir}/php
+cp -rp lib/* %{buildroot}/%{_datadir}/php/
+
+# Ext
+## NTS
+make -C ext/NTS install INSTALL_ROOT=%{buildroot}
+install -D -m 0644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name}
+## ZTS
+%if %{with_zts}
+make -C ext/ZTS install INSTALL_ROOT=%{buildroot}
+install -D -m 0644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name}
+%endif
+
+
+%check
+# Ext
+: 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
+
+%if %{with_tests}
+# Test suite
+## Skip tests known to fail
+%ifarch ppc64
+sed 's/function testGetAttributeWithTemplateAsObject/function SKIP_testGetAttributeWithTemplateAsObject/' \
+    -i test/Twig/Tests/TemplateTest.php
+%endif
+
+## Create PHPUnit config with colors turned off
+sed 's/colors="true"/colors="false"/' phpunit.xml.dist > phpunit.xml
+
+: Test suite without extension
+%{__phpunit} --include-path ./lib -d date.timezone="UTC"
+
+: Test suite with extension
+%{__php} --define extension=ext/NTS/modules/%{ext_name}.so \
+    %{__phpunit} --include-path ./lib -d date.timezone="UTC"
+%else
+: Tests skipped
+%endif
+
+
+%files
+%{!?_licensedir:%global license %%doc}
+%license LICENSE*
+%doc CHANGELOG README.rst composer.json
+# Lib
+%{_datadir}/php/Twig
+# 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
+
+
+%changelog
+* Mon Aug 25 2014 Shawn Iwinski <shawn.iwinski at gmail.com> - 1.16.0-2
+- Removed obsolete and provide of php-twig-CTwig (never imported into Fedora/EPEL)
+- Obsolete php-channel-twig
+- Removed comment about optional Xdebug in description (does not provide any new feature)
+- Always run extension minimal load test
+
+* Tue Jul 29 2014 Shawn Iwinski <shawn.iwinski at gmail.com> - 1.16.0-1
+- Initial package
diff --git a/sources b/sources
index e69de29..ade9202 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+8e50b6c2d26eb8cdc7029ca95aed2efa  php-twig-1.16.0-8ce37115802e257a984a82d38254884085060024.tar.gz


More information about the scm-commits mailing list