summaryrefslogtreecommitdiff
path: root/gnu/packages/perl.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/perl.scm')
-rw-r--r--gnu/packages/perl.scm120
1 files changed, 99 insertions, 21 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 6c0b4d2f6c..0e63aa943e 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -1,9 +1,10 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; 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>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,18 +38,21 @@
;; Yeah, Perl... It is required early in the bootstrap process by Linux.
(package
(name "perl")
- (version "5.16.1")
+ (version "5.22.1")
(source (origin
(method url-fetch)
(uri (string-append "http://www.cpan.org/src/5.0/perl-"
version ".tar.gz"))
(sha256
(base32
- "15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km"))
+ "09wg24w5syyafyv87l6z8pxwz4bjgcdj996bx5844k6m9445sirb"))
(patches (map search-patch
'("perl-no-sys-dirs.patch"
"perl-autosplit-default-time.patch"
- "perl-module-pluggable-search.patch")))))
+ "perl-source-date-epoch.patch"
+ "perl-deterministic-ordering.patch"
+ "perl-no-build-time.patch"
+ "perl-CVE-2015-8607.patch")))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
@@ -60,10 +64,16 @@
(let ((out (assoc-ref outputs "out"))
(libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
- (substitute* "dist/Cwd/Cwd.pm"
+ (substitute* "dist/PathTools/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
+ ;; Build in GNU89 mode to tolerate C++-style comment in libc's
+ ;; <bits/string3.h>.
+ (substitute* "cflags.SH"
+ (("-std=c89")
+ "-std=gnu89"))
+
(zero?
(system* "./Configure"
(string-append "-Dprefix=" out)
@@ -158,6 +168,7 @@ differences.")
(base32
"1syyqzy462501kn5ma9gl6xbmcahqcn4qpafhsmpz0nd0x2m4l63"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/aliased")
(synopsis "Use shorter versions of class names")
(description "The alias module loads the class you specify and exports
@@ -493,6 +504,8 @@ your class.")
(base32
"1lilrjy1s0q5hyr0888kf0ifxjyl2iyk4vxil4jsv0sgh39lkgx5"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-class-accessor" ,perl-class-accessor)))
(home-page "http://search.cpan.org/dist/Class-Accessor-Chained")
@@ -653,6 +666,7 @@ type for perl.")
(base32
"09ifd6v0c94vr20n9yr1dxgcp7hyscqq851szdip7y24bd26nlbc"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Class-Factory-Util")
(synopsis "Utility methods for factory classes")
(description "This module exports methods useful for factory classes.")
@@ -911,6 +925,8 @@ as defined by two typical specimens of Perl coders.")
(base32
"06n6jn3q3xhk57icwip0ihzqixxav6sgp6rrb35hahj1z748y3vi"))))
(build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-module-pluggable" ,perl-module-pluggable)))
(home-page "http://search.cpan.org/dist/Config-Any")
(synopsis "Load configuration from different file formats")
(description "Config::Any provides a facility for Perl applications and
@@ -1168,7 +1184,8 @@ indentation and newlines plus sub deparsing.")
"1hvi92c4h2angryc6pngw7gbm3ysc2jfmyxk2wh9ia4vdwpbs554"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-exception" ,perl-test-exception)))
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-exception" ,perl-test-exception)))
(propagated-inputs
`(("perl-class-accessor-chained" ,perl-class-accessor-chained)))
(home-page "http://search.cpan.org/dist/Data-Page")
@@ -1346,6 +1363,7 @@ Date::Calc.")
(base32
"0zd0wbf91i49753rnf7m1lw197hdl5r97mxy0n43zdmcmhvkb3qq"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(arguments
;; Tests would require tzdata for timezone information, but tzdata is in
;; (gnu packages base) which would create a circular dependency. TODO:
@@ -1372,7 +1390,8 @@ time from another, or parsing international times.")
"0fli1ls298qa8nfki15myxqqqfpxvslxk4j5r3vjk577wfgjrnms"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-fatal" ,perl-test-fatal)
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-fatal" ,perl-test-fatal)
("perl-test-warnings" ,perl-test-warnings)))
(propagated-inputs
`(("perl-datetime-locale" ,perl-datetime-locale)
@@ -1399,6 +1418,8 @@ time before its creation (in 1582).")
(base32
"1b27699zkj68w5ll9chjhs52vmf39f9via6x5r5844as30qh9zxb"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-datetime" ,perl-datetime)
("perl-params-validate" ,perl-params-validate)
@@ -1501,6 +1522,7 @@ to do this without writing reams of structural code.")
("perl-datetime-format-builder" ,perl-datetime-format-builder)
("perl-datetime-timezone" ,perl-datetime-timezone)
("perl-list-moreutils" ,perl-list-moreutils)
+ ("perl-module-pluggable" ,perl-module-pluggable)
("perl-test-mocktime" ,perl-test-mocktime)))
(home-page "http://search.cpan.org/dist/DateTime-Format-Flexible")
(synopsis "Parse data/time strings")
@@ -1521,6 +1543,8 @@ give it and parse it into a DateTime object.")
(base32
"0cvwk7pigj7czsp81z35h7prxvylkrlk2l0kwvq0v72ykx9zc2cb"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-datetime" ,perl-datetime)
("perl-datetime-event-ical" ,perl-datetime-event-ical)
@@ -1548,7 +1572,8 @@ order to create the appropriate objects.")
"1qq3adq1y08d0jlmwk9059s5d39hb26f3zjag099gjjyvs5c8yal"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-module-util" ,perl-module-util)
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-module-util" ,perl-module-util)
("perl-test-mocktime" ,perl-test-mocktime)))
(propagated-inputs
`(("perl-boolean" ,perl-boolean)
@@ -1605,6 +1630,8 @@ takes a string and a pattern and returns the `DateTime` object associated.")
(base32
"175grkrxiv012n6ch3z1sip4zprcili6m5zqi3njdk5c1gdvi8ca"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-list-moreutils" ,perl-list-moreutils)
("perl-params-validate" ,perl-params-validate)))
@@ -1707,6 +1734,7 @@ edges (mainly concerning timezone detection and selection).")
(base32
"0g71sma9jy0fjm619hcrcsb9spg2y03vjxx36y8k1xpa2553sr7m"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Devel-CheckBin")
(synopsis "Check that a command is available")
(description "Devel::CheckBin is a perl module that checks whether a
@@ -1941,6 +1969,7 @@ modules separately and deal with them after the module is done installing.")
(base32
"0dsxic78mxy30qvbbdzfyp501hbkwhnbmafqfxipr0yqfy8f2j5g"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Error")
(synopsis "OO-ish Error/Exception handling for Perl")
(description "The Error package provides two interfaces. Firstly Error
@@ -2120,10 +2149,12 @@ module building modules.")
"090i265f73jlcl5rv250791vw32j9vvl4nd5abc7myg0klb8109w"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-exception" ,perl-test-exception)))
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-exception" ,perl-test-exception)))
(propagated-inputs
`(("perl-class-load" ,perl-class-load)
("perl-list-moreutils" ,perl-list-moreutils)
+ ("perl-module-pluggable" ,perl-module-pluggable)
("perl-moose" ,perl-moose)
("perl-moosex-params-validate" ,perl-moosex-params-validate)
("perl-moosex-semiaffordanceaccessor"
@@ -3064,6 +3095,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")
@@ -3077,6 +3128,7 @@ installation version 5.005 or newer.")
(base32
"19326f094jmjs6mgpwkyisid54k67w34br8yfh0gvaaml87gwi2c"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Module-Runtime")
(synopsis "Perl runtime module handling")
(description "The functions exported by this module deal with runtime
@@ -3096,6 +3148,8 @@ handling of Perl modules, which are normally handled at compile time.")
(base32
"0pz23ch78lbpn4kdbm04icgsmbr7jvmxwq1p5m4x2pap8qwd0wqg"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-module-runtime" ,perl-module-runtime)
("perl-dist-checkconflicts" ,perl-dist-checkconflicts)))
@@ -3302,7 +3356,8 @@ private methods are not.")
"1nkzvbsiwldmpn6207ns7rinh860djnw098h6cnvywf429rjnz60"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-deep" ,perl-test-deep)
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-deep" ,perl-test-deep)
("perl-test-fatal" ,perl-test-fatal)
("perl-test-requires" ,perl-test-requires)
("perl-test-trap" ,perl-test-trap)
@@ -3465,6 +3520,7 @@ manually setting up a subclass.")
(build-system perl-build-system)
(native-inputs
`(("perl-cpan-meta-check" ,perl-cpan-meta-check)
+ ("perl-module-build" ,perl-module-build)
("perl-moosex-role-withoverloading" ,perl-moosex-role-withoverloading)
("perl-test-fatal" ,perl-test-fatal)
("perl-test-requires" ,perl-test-requires)))
@@ -3597,7 +3653,8 @@ search for traits and some extra attributes.")
"1iq90s1f0xbmr194q0mhnp9wxqxwwilkbdml040ibqbqvfiz87yh"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-fatal" ,perl-test-fatal)
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-fatal" ,perl-test-fatal)
("perl-test-requires" ,perl-test-requires)))
(propagated-inputs
`(("perl-carp-clan" ,perl-carp-clan)
@@ -3765,7 +3822,8 @@ Perl (back to 5.6.0).")
"0msggbg2zbixxjq1fda19h0yygavxndfzc4j4pq11nfghmawjsb0"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-requires" ,perl-test-requires)))
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-requires" ,perl-test-requires)))
(propagated-inputs
`(("perl-b-hooks-endofscope" ,perl-b-hooks-endofscope)
("perl-namespace-clean" ,perl-namespace-clean)
@@ -4005,7 +4063,8 @@ checking parameters easier.")
"1wh23i9kkma6493c0q1kvy6wmahd6spg6xm3xbp2ar1iy1xhks5l"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-fatal" ,perl-test-fatal)
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-fatal" ,perl-test-fatal)
("perl-test-requires" ,perl-test-requires)))
(propagated-inputs
`(("perl-module-implementation" ,perl-module-implementation)))
@@ -4066,6 +4125,7 @@ up inheritance from those modules at the same time.")
(base32
"1viaj8jyshcj135la0kgfgzalaw06xnbsg9h54jx09v1342v69lj"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Path-Class")
(synopsis "Path specification manipulation")
(description "Path::Class is a module for manipulation of file and
@@ -4125,6 +4185,7 @@ used for writing documentation for Perl and for Perl modules.")
(base32
"0f9p3hx0vqx8zg5v24pz0s4zc8ln100c7c91ks681wq02phqj2v7"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(arguments `(#:tests? #f)) ;TODO: Timezone test failures
(home-page "http://search.cpan.org/dist/POSIX-strftime-Compiler")
(synopsis "GNU C library compatible strftime for loggers and servers")
@@ -4168,6 +4229,7 @@ Module::Build project, but has been externalized here for general use.")
(base32
"165zcf9lpijdpkx82za0g9rx8ckjnhipmcivdkyzshl8jmp1bl4v"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Readonly")
(synopsis "Create read-only scalars, arrays, hashes")
(description "This module provides a facility for creating non-modifiable
@@ -4925,6 +4987,8 @@ structures without getting caught in an infinite loop.")
(base32
"0rhs4q6qn64ji06ns7lwl6iiiw3mggvd9xk9nkiqvx1jihbplrbw"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-text-diff" ,perl-text-diff)
("perl-capture-tiny" ,perl-capture-tiny)))
@@ -5096,6 +5160,7 @@ you test against long strings.")
("perl-test-warn" ,perl-test-warn)
("perl-universal-can" ,perl-universal-can)
("perl-universal-isa" ,perl-universal-isa)))
+ (arguments `(#:tests? #f)) ;TODO: tests require perl-cgi
(home-page "http://search.cpan.org/dist/Test-MockObject")
(synopsis "Emulate troublesome interfaces in Perl")
(description "Test::MockObject allows you to create objects that conform
@@ -5213,6 +5278,7 @@ as flexible as possible to the tester.")
(base32
"1hmwwhabyng4jrnll926b4ab73r40w3pfchlrvs0yx6kh6kwwy14"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Test-Pod")
(synopsis "Check for POD errors in files")
(description "Check POD files for errors or warnings in a test file, using
@@ -5357,6 +5423,8 @@ a minimum of effort.")
(base32
"05b4zc4087imwphls4yksg4chzx9yavbri301gaxas9kv1yhx13w"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-test-tester" ,perl-test-tester)
("perl-data-dump" ,perl-data-dump)))
@@ -5471,7 +5539,8 @@ installed.")
("perl-test-directory" ,perl-test-directory)))
(propagated-inputs
`(("perl-data-tumbler" ,perl-data-tumbler)
- ("perl-file-homedir" ,perl-file-homedir)))
+ ("perl-file-homedir" ,perl-file-homedir)
+ ("perl-module-pluggable" ,perl-module-pluggable)))
(home-page "http://search.cpan.org/dist/Test-WriteVariants")
(synopsis "Dynamic generation of tests")
(description "The Test::WriteVariants module provides for the dynamic
@@ -5512,6 +5581,7 @@ support.")
(base32
"0a6zkchc0apvzkch6z18cx6h97xfiv50r7n4xhg90x8dvk75qzcs"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Text-Aligner")
(synopsis "Align text")
(description "Text::Aligner exports a single function, align(), which is
@@ -5594,6 +5664,7 @@ generally slower on larger files.")
(base32
"0lr76wrsj8wcxrq4wi8z1640w4dmdbkznp06q744rg3g0bd238d5"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Text-Glob")
(synopsis "Match globbing patterns against text")
(description "Text::Glob implements glob(3) style matching that can be
@@ -5632,6 +5703,8 @@ you want to do full file globbing use the File::Glob module instead.")
(base32
"02c8v38k639r23dgxwgvsy4myjjzvgdb238kpiffsiz25ab3xp5j"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-text-aligner" ,perl-text-aligner)))
(home-page "http://search.cpan.org/dist/Text-Table")
@@ -5700,6 +5773,7 @@ as exceptions to standard program flow.")
(base32
"0mmg9iyh42syal3z1p2pn9airq65yrkfs66cnqs9nz76jy60pfzs"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Tie-IxHash")
(synopsis "Ordered associative arrays for Perl")
(description "This Perl module implements Perl hashes that preserve the
@@ -5829,6 +5903,8 @@ time values and formatting dates into ASCII strings.")
(base32
"0bwqyg8z98m8cjw1qcm4wg502n225k33j2fp8ywxkgfjdd1zgllv"))))
(build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-timedate" ,perl-timedate))) ;For Date::Parse
(home-page "http://search.cpan.org/dist/Time-Mock")
@@ -5875,7 +5951,8 @@ simple n-ary tree.")
"1g27xl48q1vr7aikhxg4vvcsj1si8allxz59vmnks61wsw4by7vg"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-exception" ,perl-test-exception)))
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-exception" ,perl-test-exception)))
(propagated-inputs
`(("perl-tree-simple" ,perl-tree-simple)
("perl-base" ,perl-base)))
@@ -6149,12 +6226,13 @@ MYMETA.yml.")
`(("perl-cpan-meta" ,perl-cpan-meta)))
(home-page "http://search.cpan.org/dist/Module-Build")
(synopsis "Build and install Perl modules")
- (description "\"Module::Build\" is a system for building, testing, and
-installing Perl modules. It is meant to be an alternative to
-\"ExtUtils::MakeMaker\". Developers may alter the behavior of the module
+ (description "@code{Module::Build} is a system for building, testing, and
+installing Perl modules; it used to be part of Perl itself until version 5.22,
+which dropped it. It is meant to be an alternative to
+@code{ExtUtils::MakeMaker}. Developers may alter the behavior of the module
through subclassing in a much more straightforward way than with
-\"MakeMaker\". It also does not require a \"make\" on your system - most of
-the \"Module::Build\" code is pure-perl and written in a cross-platform way.")
+@code{MakeMaker}. It also does not require a @command{make} on your
+system---most of the @code{Module::Build} code is pure-Perl.")
(license (package-license perl))))
(define-public perl-parse-cpan-meta