mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-04 01:37:34 -08:00
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
This commit is contained in:
parent
b7763ae02a
commit
5607df3899
@ -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")
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user