summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Fredric <kentnl@gentoo.org>2018-01-15 06:21:15 +1300
committerKent Fredric <kentnl@gentoo.org>2018-01-15 06:22:02 +1300
commitda0f714f5d4ca194ca32b106b635577f9d601e38 (patch)
tree0d917aaa2a2c26f6f907d48f9bd247f19bce2e71 /dev-perl
parentx11-themes/mate-themes-meta: Remove old gtk+ versions (diff)
downloadgentoo-da0f714f5d4ca194ca32b106b635577f9d601e38.tar.gz
gentoo-da0f714f5d4ca194ca32b106b635577f9d601e38.tar.bz2
gentoo-da0f714f5d4ca194ca32b106b635577f9d601e38.zip
dev-perl/Template-Toolkit: Add fix for '.' in @INC bug #615704
- Add runtime fix for '.' in @INC problems - Patch tests for CGI.pm warnings Bug: https://bugs.gentoo.org/615704 Package-Manager: Portage-2.3.18, Repoman-2.3.6
Diffstat (limited to 'dev-perl')
-rw-r--r--dev-perl/Template-Toolkit/Template-Toolkit-2.270.0-r1.ebuild49
-rw-r--r--dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-cgipm.patch66
-rw-r--r--dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-no-dot-inc.patch54
3 files changed, 169 insertions, 0 deletions
diff --git a/dev-perl/Template-Toolkit/Template-Toolkit-2.270.0-r1.ebuild b/dev-perl/Template-Toolkit/Template-Toolkit-2.270.0-r1.ebuild
new file mode 100644
index 000000000000..5823e2648c95
--- /dev/null
+++ b/dev-perl/Template-Toolkit/Template-Toolkit-2.270.0-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DIST_AUTHOR=ABW
+DIST_VERSION=2.27
+inherit perl-module
+
+DESCRIPTION="The Template Toolkit"
+
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~ppc-aix ~x86-fbsd ~x86-solaris"
+IUSE="xml gd mysql postgres latex vim-syntax test"
+
+RDEPEND="dev-perl/Text-Autoformat
+ mysql? ( dev-perl/DBD-mysql )
+ postgres? ( dev-perl/DBD-Pg )
+ >=dev-perl/AppConfig-1.56"
+DEPEND="${RDEPEND}
+ test? ( dev-perl/CGI )
+"
+PDEPEND="dev-perl/Text-Autoformat
+ vim-syntax? ( app-vim/tt2-syntax )
+ xml? ( dev-perl/Template-XML )
+ gd? ( dev-perl/Template-GD )
+ mysql? ( dev-perl/Template-DBI )
+ latex? ( dev-perl/Template-Plugin-Latex )
+ postgres? ( dev-perl/Template-DBI )"
+
+myconf=(
+ TT_XS_ENABLE=y
+ TT_XS_DEFAULT=y
+ TT_QUIET=y
+ TT_ACCEPT=y
+)
+
+PERL_RM_FILES=(
+ t/zz-plugin-leak.t
+ t/zz-pmv.t
+ t/zz-pod-coverage.t
+ t/zz-pod-kwalitee.t
+ t/zz-stash-xs-leak.t
+ t/zz-url2.t
+)
+PATCHES=(
+ "${FILESDIR}/${PN}-2.27-no-dot-inc.patch"
+ "${FILESDIR}/${PN}-2.27-cgipm.patch"
+)
diff --git a/dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-cgipm.patch b/dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-cgipm.patch
new file mode 100644
index 000000000000..422cc851838f
--- /dev/null
+++ b/dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-cgipm.patch
@@ -0,0 +1,66 @@
+From e723aeecf60ece32f6a1381f5c026ae08cae9913 Mon Sep 17 00:00:00 2001
+From: Kent Fredric <kentnl@gentoo.org>
+Date: Sat, 13 Jan 2018 13:48:31 +1300
+Subject: Fix tests warning w/ CGI.pm
+
+This currently seems like an intractable problem with the syntax of
+Template::Toolkit forcing list context by default on called functions.
+
+The only real way around this is to either:
+
+A) always use Template::Plugin::Scalar to enforce scalar context
+B) abuse cgi.multi_param to simply silence the warning and being an
+ adult about the fact "yes, this returns a list, make sure you do the
+ right thing with that"
+
+Bug: https://rt.cpan.org/Ticket/Display.html?id=100503
+---
+ t/cgi.t | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/t/cgi.t b/t/cgi.t
+index 023ab5ab..6086e145 100644
+--- a/t/cgi.t
++++ b/t/cgi.t
+@@ -49,28 +49,32 @@ sub barf {
+
+ __END__
+ -- test --
++[% USE scalar -%]
+ [% USE cgi = CGI('id=abw&name=Andy+Wardley'); global.cgi = cgi -%]
+-name: [% global.cgi.param('name') %]
++name: [% global.cgi.scalar.param('name') %]
+ -- expect --
+ name: Andy Wardley
+
+ -- test --
+-name: [% global.cgi.param('name') %]
++[% USE scalar -%]
++name: [% global.cgi.scalar.param('name') %]
+
+ -- expect --
+ name: Andy Wardley
+
+ -- test --
+-[% FOREACH key = global.cgi.param.sort -%]
+- * [% key %] : [% global.cgi.param(key) %]
++[% USE scalar -%]
++[% FOREACH key = global.cgi.multi_param.sort -%]
++ * [% key %] : [% global.cgi.scalar.param(key) %]
+ [% END %]
+ -- expect --
+ * id : abw
+ * name : Andy Wardley
+
+ -- test --
+-[% FOREACH key = global.cgi.param().sort -%]
+- * [% key %] : [% global.cgi.param(key) %]
++[% USE scalar -%]
++[% FOREACH key = global.cgi.multi_param().sort -%]
++ * [% key %] : [% global.cgi.scalar.param(key) %]
+ [% END %]
+ -- expect --
+ * id : abw
+--
+2.15.1
+
diff --git a/dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-no-dot-inc.patch b/dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-no-dot-inc.patch
new file mode 100644
index 000000000000..97decd75cb14
--- /dev/null
+++ b/dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-no-dot-inc.patch
@@ -0,0 +1,54 @@
+From 65e7f0e980e64dd0525eda058330cea06379c332 Mon Sep 17 00:00:00 2001
+From: Kent Fredric <kentnl@gentoo.org>
+Date: Sat, 13 Jan 2018 13:05:52 +1300
+Subject: Fix relative path handling in templates on Perl 5.26+
+
+NB: It doesn't seem like the value of "$compiled" is very useful in the
+failure case, as the expectation is that'd have been a falsey value at
+best, or a literal "undef" at worst, yeilding additional warnings.
+
+Bug: https://rt.cpan.org/Ticket/Display.html?id=121171
+Bug: https://bugs.gentoo.org/615704
+---
+ lib/Template/Provider.pm | 20 ++++++++++++++++++--
+ 1 file changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/lib/Template/Provider.pm b/lib/Template/Provider.pm
+index 6ecb2453..61c3469c 100644
+--- a/lib/Template/Provider.pm
++++ b/lib/Template/Provider.pm
+@@ -562,13 +562,29 @@ sub _compiled_filename {
+
+ sub _load_compiled {
+ my ($self, $file) = @_;
++
++ # Implicitly Relative paths are not supported
++ # by "require" and invoke @INC traversal, where relative
++ # paths only traditionally worked prior to Perl 5.26
++ # due to the presence of '.' in @INC
++ #
++ # Given load_compiled never wants to traverse @INC, forcing
++ # an absolute path for the loaded file and the INC key is
++ # sensible.
++ #
++ # NB: %INC Keys are always identical to their respective
++ # "require" invocations regardless of OS, and the only time
++ # one needs to care about slash direction is when dealing
++ # with Module::Name -> Module/Name.pm translation.
++ my $fpath = File::Spec->rel2abs( $file );
++
+ my $compiled;
+
+ # load compiled template via require(); we zap any
+ # %INC entry to ensure it is reloaded (we don't
+ # want 1 returned by require() to say it's in memory)
+- delete $INC{ $file };
+- eval { $compiled = require $file; };
++ delete $INC{ $fpath };
++ eval { $compiled = require $fpath; };
+ return $@
+ ? $self->error("compiled template $compiled: $@")
+ : $compiled;
+--
+2.15.1
+