From cc8ddcb09771dff47c669a4e585f91c28d08359f Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 19 Apr 2015 09:59:23 -0500 Subject: gnu: perl: Fix Module::Pluggable for symlink forests. * gnu/packages/patches/perl-module-pluggable-search.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/perl.scm (perl)[source]: Add patch. --- gnu-system.am | 1 + .../patches/perl-module-pluggable-search.patch | 25 ++++++++++++++++++++++ gnu/packages/perl.scm | 4 +++- 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/perl-module-pluggable-search.patch diff --git a/gnu-system.am b/gnu-system.am index 06ec6e7142..8936b0be1f 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -503,6 +503,7 @@ dist_patch_DATA = \ gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \ gnu/packages/patches/pavucontrol-sigsegv.patch \ gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \ + gnu/packages/patches/perl-module-pluggable-search.patch \ gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch \ gnu/packages/patches/perl-no-sys-dirs.patch \ gnu/packages/patches/perl-tk-x11-discover.patch \ diff --git a/gnu/packages/patches/perl-module-pluggable-search.patch b/gnu/packages/patches/perl-module-pluggable-search.patch new file mode 100644 index 0000000000..bb2a57f7e5 --- /dev/null +++ b/gnu/packages/patches/perl-module-pluggable-search.patch @@ -0,0 +1,25 @@ +Fix core Perl module Module::Pluggable such that it can find plugins that live +in symlinked directories. + +Patch borrowed/adapted from Nixpkgs. + +--- perl-5.16.1/cpan/Module-Pluggable/lib/Module/Pluggable/Object.pm 2015-04-08 23:28:48.120164135 -0500 ++++ perl-5.16.1/cpan/Module-Pluggable/lib/Module/Pluggable/Object.pm 2015-04-08 23:30:27.032166704 -0500 +@@ -164,7 +164,7 @@ + my $sp = catdir($dir, (split /::/, $searchpath)); + + # if it doesn't exist or it's not a dir then skip it +- next unless ( -e $sp && -d _ ); # Use the cached stat the second time ++ next unless ( -e $sp ); + + my @files = $self->find_files($sp); + +@@ -279,7 +279,7 @@ + (my $path = $File::Find::name) =~ s#^\\./##; + push @files, $path; + } +- }, $search_path ); ++ }, "$search_path/." ); + } + #chdir $cwd; + return @files; diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index e55eb8791d..80c476b2b1 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -44,7 +44,9 @@ (sha256 (base32 "15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km")) - (patches (list (search-patch "perl-no-sys-dirs.patch"))))) + (patches (map search-patch + '("perl-no-sys-dirs.patch" + "perl-module-pluggable-search.patch"))))) (build-system gnu-build-system) (arguments '(#:tests? #f -- cgit v1.2.3