diff options
author | Kent Fredric <kentnl@gentoo.org> | 2017-10-26 08:48:35 +1300 |
---|---|---|
committer | Kent Fredric <kentnl@gentoo.org> | 2017-10-26 08:48:55 +1300 |
commit | 5607df38997c6992798a115b4aefbcd96cb17b5f (patch) | |
tree | b90657f99f9f3777b09fd9149a9d9edd81848abb /dev-perl/HTML-Template-JIT | |
parent | app-emulation/libvirt: drop vulnerable, bug #635174 (diff) | |
download | gentoo-5607df38997c6992798a115b4aefbcd96cb17b5f.tar.gz gentoo-5607df38997c6992798a115b4aefbcd96cb17b5f.tar.bz2 gentoo-5607df38997c6992798a115b4aefbcd96cb17b5f.zip |
dev-perl/HTML-Template-JIT: Fix for '.' in @INC bug #635464
- EAPI6
- Enable tests
- Add USE=examples
- Fix runtime broken due to '.' in @INC exposed by enabling tests
Bug: https://bugs.gentoo.org/635464
Package-Manager: Portage-2.3.8, Repoman-2.3.3
Diffstat (limited to 'dev-perl/HTML-Template-JIT')
-rw-r--r-- | dev-perl/HTML-Template-JIT/HTML-Template-JIT-0.50.0-r2.ebuild | 20 | ||||
-rw-r--r-- | dev-perl/HTML-Template-JIT/files/HTML-Template-JIT-0.50.0-no-dot-inc.patch | 61 |
2 files changed, 81 insertions, 0 deletions
diff --git a/dev-perl/HTML-Template-JIT/HTML-Template-JIT-0.50.0-r2.ebuild b/dev-perl/HTML-Template-JIT/HTML-Template-JIT-0.50.0-r2.ebuild new file mode 100644 index 000000000000..48f3e10a3e48 --- /dev/null +++ b/dev-perl/HTML-Template-JIT/HTML-Template-JIT-0.50.0-r2.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +DIST_AUTHOR=SAMTREGAR +DIST_VERSION=0.05 +DIST_EXAMPLES=("script/benchmark.pl") +inherit perl-module + +DESCRIPTION="a just-in-time compiler for HTML::Template" + +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=dev-perl/HTML-Template-2.8 + dev-perl/Inline" +DEPEND="${RDEPEND}" +PATCHES=("${FILESDIR}/${P}-no-dot-inc.patch") diff --git a/dev-perl/HTML-Template-JIT/files/HTML-Template-JIT-0.50.0-no-dot-inc.patch b/dev-perl/HTML-Template-JIT/files/HTML-Template-JIT-0.50.0-no-dot-inc.patch new file mode 100644 index 000000000000..624e579a6185 --- /dev/null +++ b/dev-perl/HTML-Template-JIT/files/HTML-Template-JIT-0.50.0-no-dot-inc.patch @@ -0,0 +1,61 @@ +From efbee2adfeb592240e1c84326ece8c90c239bbee Mon Sep 17 00:00:00 2001 +From: Kent Fredric <kentnl@gentoo.org> +Date: Thu, 26 Oct 2017 08:26:53 +1300 +Subject: Fix compiling templates under Perl 5.26 without '.' in @INC + +Perl 5.26 changes the default contents of @INC to no longer include +".", which is required for "require q[foo.tpl]" semantics. + +This breakage is invisible in tests due to a workaround P5P put in +place to avoid breaking tests, by setting PERL_USE_UNSAFE_INC=1 in +Test::Harness and CPAN installers, which makes '.' re-appear in @INC +during installation, while still being silently broken in production. + +This fix works by relying on the mechanic of require() to *NOT* consult +@INC if $path is either an absolute, or a "./" prefixed relative path, +by converting it to an absolute path just before requiring it. + +Bug: https://rt.cpan.org/Ticket/Display.html?id=123380 +Bug: https://bugs.gentoo.org/635464 +--- + JIT.pm | 2 +- + JIT/Compiler.pm | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/JIT.pm b/JIT.pm +index 9e5a6be..1e2afc8 100644 +--- a/JIT.pm ++++ b/JIT.pm +@@ -63,7 +63,7 @@ sub new { + + # try to load the module and return package handle if successful + my $result; +- eval { $result = require $package_path; }; ++ eval { $result = require File::Spec->rel2abs($package_path); }; + if ($result) { + $package->clear_params(); # need to clear out params from prior run + return $package; +diff --git a/JIT/Compiler.pm b/JIT/Compiler.pm +index 6ef3e02..bc1e05f 100644 +--- a/JIT/Compiler.pm ++++ b/JIT/Compiler.pm +@@ -9,6 +9,7 @@ our $VERSION = '0.01'; + use HTML::Template; + use Carp qw(croak confess); + use File::Path qw(mkpath rmtree); ++use File::Spec; + + sub compile { + my %args = @_; +@@ -53,7 +54,7 @@ sub compile { + + # try to load the module and return package handle if successful + my $result; +- eval { $result = require $self->{package_path}; }; ++ eval { $result = require File::Spec->rel2abs($self->{package_path}); }; + return 1 if $result; + + # don't leave failed compiles lying around unless we're debuging +-- +2.14.3 + |