summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Fredric <kentnl@gentoo.org>2017-10-26 08:48:35 +1300
committerKent Fredric <kentnl@gentoo.org>2017-10-26 08:48:55 +1300
commit5607df38997c6992798a115b4aefbcd96cb17b5f (patch)
treeb90657f99f9f3777b09fd9149a9d9edd81848abb /dev-perl/HTML-Template-JIT
parentapp-emulation/libvirt: drop vulnerable, bug #635174 (diff)
downloadgentoo-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.ebuild20
-rw-r--r--dev-perl/HTML-Template-JIT/files/HTML-Template-JIT-0.50.0-no-dot-inc.patch61
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
+