commit: d77e12134dd5df6bf717799d8eeb256094644c60
Author: Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Thu May 9 13:57:38 2019 +0000
Commit: Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Thu May 9 13:57:38 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d77e1213
dev-php/twig: Remove obsolete extension and use new autoloader
The twig extension is no longer necessary as PHP 5.6 is end-of-life
Also, use the dev-php/fedora-autoloader to replace Twig's autoloader
so that it simulates composer loading with Psr4 and does not throw
errors in the logs
In addition, the ctype USE on dev-lang/php is now required
Package-Manager: Portage-2.3.66, Repoman-2.3.12
Signed-off-by: Brian Evans <grknight <AT> gentoo.org>
dev-php/twig/files/Autoloader.php | 18 ++++++++++++++
dev-php/twig/twig-1.40.1-r1.ebuild | 49 ++++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+)
diff --git a/dev-php/twig/files/Autoloader.php
b/dev-php/twig/files/Autoloader.php
new file mode 100644
index 00000000000..e4bef547125
--- /dev/null
+++ b/dev-php/twig/files/Autoloader.php
@@ -0,0 +1,18 @@
+<?php
+/* Autoloader for dev-php/twig */
+
+if (!class_exists('Twig_Autoloader', false)) {
+ // polyfill for old code
+ class Twig_Autoloader {
+ public static function register(){}
+ public static function autoload(){}
+ }
+}
+
+if (!class_exists('Fedora\\Autoloader\\Autoload', false)) {
+ require_once '/usr/share/php/Fedora/Autoloader/autoload.php';
+}
+
+\Fedora\Autoloader\Autoload::addPsr0('Twig_', __DIR__.'/lib');
+\Fedora\Autoloader\Autoload::addPsr4('Twig\\', __DIR__.'/src');
+
diff --git a/dev-php/twig/twig-1.40.1-r1.ebuild
b/dev-php/twig/twig-1.40.1-r1.ebuild
new file mode 100644
index 00000000000..c06e5c62736
--- /dev/null
+++ b/dev-php/twig/twig-1.40.1-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_PN="Twig"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+DESCRIPTION="PHP templating engine with syntax similar to Django"
+HOMEPAGE="http://twig.sensiolabs.org/"
+SRC_URI="https://github.com/twigphp/${MY_PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND="dev-lang/php:*[ctype] dev-php/fedora-autoloader"
+DEPEND="test? ( dev-php/phpunit ${RDEPEND} )"
+# Test fail due to missing Symphony dependencies
+RESTRICT="test"
+
+src_install(){
+ # The autoloader requires the 'T' in "Twig" capitalized.
+ insinto "/usr/share/php/${MY_PN}/lib"
+ doins -r lib/"${MY_PN}"/*
+ insinto "/usr/share/php/${MY_PN}/src"
+ doins -r src/*
+ insinto "/usr/share/php/${MY_PN}"
+ doins "${FILESDIR}/Autoloader.php"
+
+ dodoc README.rst CHANGELOG
+
+ # This installs the reStructuredText source documents. There's got
+ # to be some way to turn them into HTML using Sphinx, but upstream
+ # doesn't provide for it.
+ use doc && dodoc -r doc
+}
+
+src_test(){
+ cp "${FILESDIR}/Autoloader.php" "${S}" || die
+ phpunit --bootstrap Autoloader.php || die "test suite failed"
+ rm "${S}/Autoloader.php" || die
+}
+
+pkg_postinst(){
+ elog "${PN} has been installed in /usr/share/php/${MY_PN}/."
+ elog "To use it in a script, require('${MY_PN}/Autoloader.php')"
+}