From da0f714f5d4ca194ca32b106b635577f9d601e38 Mon Sep 17 00:00:00 2001 From: Kent Fredric Date: Mon, 15 Jan 2018 06:21:15 +1300 Subject: 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 --- .../Template-Toolkit-2.270.0-r1.ebuild | 49 ++++++++++++++++ .../files/Template-Toolkit-2.27-cgipm.patch | 66 ++++++++++++++++++++++ .../files/Template-Toolkit-2.27-no-dot-inc.patch | 54 ++++++++++++++++++ 3 files changed, 169 insertions(+) create mode 100644 dev-perl/Template-Toolkit/Template-Toolkit-2.270.0-r1.ebuild create mode 100644 dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-cgipm.patch create mode 100644 dev-perl/Template-Toolkit/files/Template-Toolkit-2.27-no-dot-inc.patch 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 +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 +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 + -- cgit v1.2.3-65-gdbad