dev-perl/Data-FormValidator: Add fix for '.' in @INC re bug #613378
authorKent Fredric <kentnl@gentoo.org>
Sat, 3 Jun 2017 19:10:43 +0000 (07:10 +1200)
committerKent Fredric <kentnl@gentoo.org>
Sat, 3 Jun 2017 19:22:25 +0000 (07:22 +1200)
This avoids the '.' in @INC issue by absolutizing paths at construction
time so that "do" never loads any path other than the one the user
assumed would be read.

Bug: https://bugs.gentoo.org/613378
Package-Manager: Portage-2.3.5, Repoman-2.3.2

dev-perl/Data-FormValidator/Data-FormValidator-4.860.0-r1.ebuild [new file with mode: 0644]
dev-perl/Data-FormValidator/files/4.86-dot-in-inc.patch [new file with mode: 0644]

diff --git a/dev-perl/Data-FormValidator/Data-FormValidator-4.860.0-r1.ebuild b/dev-perl/Data-FormValidator/Data-FormValidator-4.860.0-r1.ebuild
new file mode 100644 (file)
index 0000000..e91a4c2
--- /dev/null
@@ -0,0 +1,32 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DIST_AUTHOR=DFARRELL
+DIST_VERSION=4.86
+inherit perl-module
+
+DESCRIPTION="Validates user input (usually from an HTML form) based on input profile"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+PATCHES=( "${FILESDIR}/4.86-dot-in-inc.patch" )
+RDEPEND="dev-perl/Image-Size
+       >=dev-perl/Date-Calc-5.0
+       >=dev-perl/File-MMagic-1.17
+       >=dev-perl/MIME-Types-1.005
+       >=dev-perl/Regexp-Common-0.30.0
+       dev-perl/Email-Valid
+       virtual/perl-File-Spec
+"
+DEPEND="${RDEPEND}
+       virtual/perl-ExtUtils-MakeMaker
+"
+
+src_test() {
+       perl_rm_files t/pod.t
+       perl-module_src_test
+}
diff --git a/dev-perl/Data-FormValidator/files/4.86-dot-in-inc.patch b/dev-perl/Data-FormValidator/files/4.86-dot-in-inc.patch
new file mode 100644 (file)
index 0000000..a6fdb27
--- /dev/null
@@ -0,0 +1,58 @@
+From bfc088aa911062d987c830d5bb56aa4afd0d3735 Mon Sep 17 00:00:00 2001
+From: Kent Fredric <kentfredric@gmail.com>
+Date: Sun, 4 Jun 2017 00:40:04 +1200
+Subject: [PATCH] Absolutize filenames during construction
+
+This way, any relative paths become absolute as soon as possible,
+so that if chdir happens between "new" and "load_profiles", the loaded
+file won't magically change.
+
+This also aims to turn the <do "file.pm"> into a <do "/path/to/File.pm">
+as the former no longer reads from "." since Perl 5.25.11, as paths
+with neither leading "./" or leading "/" imply @INC traversal.
+
+This aims to resolve RT#120671
+
+https://rt.cpan.org/Ticket/Display.html?id=120671
+https://bugs.gentoo.org/613378
+---
+ Makefile.PL               | 1 +
+ lib/Data/FormValidator.pm | 3 ++-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.PL b/Makefile.PL
+index a9839a6..cef175a 100644
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -19,6 +19,7 @@ WriteMakefile(
+     'Regexp::Common'  => 0.03, # when ::whitespace was added
+     'Scalar::Util'    => 0,
+     'Email::Valid'    => 0,
++    'File::Spec'      => 0,
+   },
+   (eval { ExtUtils::MakeMaker->VERSION(6.46) } ? (META_MERGE => {
+       'meta-spec' => { version => 2 },
+diff --git a/lib/Data/FormValidator.pm b/lib/Data/FormValidator.pm
+index 7075dc4..bc0709e 100644
+--- a/lib/Data/FormValidator.pm
++++ b/lib/Data/FormValidator.pm
+@@ -24,6 +24,7 @@
+ package Data::FormValidator;
+ use Exporter 'import';
++use File::Spec qw();
+ use 5.008;
+ use Data::FormValidator::Results;
+@@ -147,7 +148,7 @@ sub new {
+         $profiles = $profiles_or_file;
+     }
+     else {
+-        $file = $profiles_or_file;
++        $file = File::Spec->rel2abs( $profiles_or_file );
+     }
+-- 
+2.12.2
+