summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rwxr-xr-xgnu/packages/patches/perl-module-pluggable-search.patch25
-rw-r--r--gnu/packages/perl.scm22
3 files changed, 47 insertions, 1 deletions
diff --git a/gnu-system.am b/gnu-system.am
index e2c12520b2..fe421a9569 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -627,6 +627,7 @@ dist_patch_DATA = \
gnu/packages/patches/perl-net-ssleay-disable-ede-test.patch \
gnu/packages/patches/perl-no-build-time.patch \
gnu/packages/patches/perl-no-sys-dirs.patch \
+ gnu/packages/patches/perl-module-pluggable-search.patch \
gnu/packages/patches/perl-source-date-epoch.patch \
gnu/packages/patches/perl-tk-x11-discover.patch \
gnu/packages/patches/pidgin-add-search-path.patch \
diff --git a/gnu/packages/patches/perl-module-pluggable-search.patch b/gnu/packages/patches/perl-module-pluggable-search.patch
new file mode 100755
index 0000000000..ec51abc35d
--- /dev/null
+++ b/gnu/packages/patches/perl-module-pluggable-search.patch
@@ -0,0 +1,25 @@
+Fix Perl module Module::Pluggable such that it can find plugins that live in
+symlinked directories.
+
+Patch borrowed/adapted from Nixpkgs.
+
+--- Module-Pluggable-5.2/lib/Module/Pluggable/Object.pm 2015-04-08 23:28:48.120164135 -0500
++++ Module-Pluggable-5.2/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; \ No newline at end of file
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 51fb96516a..4d9806cf4b 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;;
@@ -3077,6 +3077,26 @@ strictly correct manner with ExtUtils::MakeMaker, and will run on any Perl
installation version 5.005 or newer.")
(license (package-license perl))))
+(define-public perl-module-pluggable
+ (package
+ (name "perl-module-pluggable")
+ (version "5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/S/SI/SIMONW/"
+ "Module-Pluggable-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1px6qmszmfc69v36vd8d92av4nkrif6xf4nrj3xv647xwi2svwmk"))
+ (patches (list (search-patch "perl-module-pluggable-search.patch")))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Module-Pluggable")
+ (synopsis "Give your Perl module the ability to have plugins")
+ (description "This module provides a simple but extensible way of having
+'plugins' for your Perl module.")
+ (license (package-license perl))))
+
(define-public perl-module-runtime
(package
(name "perl-module-runtime")