~ruther/guix-local

cc8ddcb09771dff47c669a4e585f91c28d08359f — Eric Bavier 11 years ago d8d6d09
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.
3 files changed, 29 insertions(+), 1 deletions(-)

M gnu-system.am
A gnu/packages/patches/perl-module-pluggable-search.patch
M gnu/packages/perl.scm
M gnu-system.am => gnu-system.am +1 -0
@@ 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		\

A gnu/packages/patches/perl-module-pluggable-search.patch => gnu/packages/patches/perl-module-pluggable-search.patch +25 -0
@@ 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;

M gnu/packages/perl.scm => gnu/packages/perl.scm +3 -1
@@ 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