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.
This commit is contained in:
Eric Bavier 2015-04-19 09:59:23 -05:00
parent d8d6d096be
commit cc8ddcb097
3 changed files with 29 additions and 1 deletions

View File

@ -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 \

View File

@ -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;

View File

@ -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