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.scm411
1 files changed, 411 insertions, 0 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 5a2fc6a6bb..cef42847c6 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,6 +36,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages perl)
+ #:use-module (srfi srfi-1)
#:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (guix packages)
@@ -343,6 +345,31 @@ autovivification for some constructs and optionally throws a warning or an
error when it would have happened.")
(license (package-license perl))))
+(define-public perl-bareword-filehandles
+ (package
+ (name "perl-bareword-filehandles")
+ (version "0.005")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/I/IL/ILMARI/bareword-filehandles-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0fdirls2pg7d6ymvlzzz59q3dy6hgh08k0qpr2mw51w127s8rav6"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
+ ("perl-extutils-depends" ,perl-extutils-depends)))
+ (propagated-inputs
+ `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
+ ("perl-lexical-sealrequirehints" ,perl-lexical-sealrequirehints)))
+ (home-page "http://search.cpan.org/dist/bareword-filehandles/")
+ (synopsis "Disables bareword filehandles")
+ (description "This module disables bareword filehandles.")
+ (license (package-license perl))))
+
(define-public perl-base
(package
(name "perl-base")
@@ -409,6 +436,27 @@ all known commands are checked.")
compiling the surrounding scope.")
(license (package-license perl))))
+(define-public perl-b-hooks-op-check
+ (package
+ (name "perl-b-hooks-op-check")
+ (version "0.22")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-OP-Check-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1kfdv25gn6yik8jrwik4ajp99gi44s6idcvyyrzhiycyynzd3df7"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-extutils-depends" ,perl-extutils-depends)))
+ (home-page "http://search.cpan.org/dist/B-Hooks-OP-Check/")
+ (synopsis "Wrap OP check callbacks")
+ (description "This module allows you to wrap OP check callbacks.")
+ (license (package-license perl))))
+
(define-public perl-b-keywords
(package
(name "perl-b-keywords")
@@ -1812,6 +1860,32 @@ an \"unless\" regular expression. If the text in question matches the
like split on newlines unless newlines are embedded in quotes.")
(license (package-license perl))))
+(define-public perl-data-section
+ (package
+ (name "perl-data-section")
+ (version "0.200007")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/R/RJ/RJBS/Data-Section-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1pmlxca0a8sv2jjwvhwgqavq6iwys6kf457lby4anjp3f1dpx4yd"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-failwarnings" ,perl-test-failwarnings)))
+ (propagated-inputs
+ `(("perl-mro-compat" ,perl-mro-compat)
+ ("perl-sub-exporter" ,perl-sub-exporter)))
+ (home-page "http://search.cpan.org/dist/Data-Section/")
+ (synopsis "Read multiple hunks of data out of your DATA section")
+ (description "This package provides a Perl library to read multiple hunks
+of data out of your DATA section.")
+ (license (package-license perl))))
+
(define-public perl-data-stag
(package
(name "perl-data-stag")
@@ -3003,6 +3077,30 @@ and alternative installers with the `installler` option. But it's written in
only about 40% as many lines of code and with zero non-core dependencies.")
(license (package-license perl))))
+(define-public perl-extutils-depends
+ (package
+ (name "perl-extutils-depends")
+ (version "0.405")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-Depends-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0b4ab9qmcihsfs2ajhn5qzg7nhazr68v3r0zvb7076smswd41mla"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-number-delta"
+ ,perl-test-number-delta)))
+ (home-page "http://search.cpan.org/dist/ExtUtils-Depends/")
+ (synopsis "Easily build XS extensions that depend on XS extensions")
+ (description "ExtUtils::Depends builds XS extensions that depend on XS
+extensions")
+ (license (package-license perl))))
+
(define-public perl-extutils-installpaths
(package
(name "perl-extutils-installpaths")
@@ -3857,6 +3955,26 @@ dependencies for CPAN distributions. These dependencies get bundled into the
inc directory within a distribution and are used by Makefile.PL or Build.PL.")
(license asl2.0)))
+(define-public perl-indirect
+ (package
+ (name "perl-indirect")
+ (version "0.38")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/V/VP/VPIT/indirect-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "13k5a8p903m8x3pcv9qqkzvnb8gpgq36cr3dvn3lk1ngsi9w5ydy"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/indirect/")
+ (synopsis "Lexically warn about using the indirect method call syntax")
+ (description
+ "Indirect warns about using the indirect method call syntax.")
+ (license (package-license perl))))
+
(define-public perl-io-captureoutput
(package
(name "perl-io-captureoutput")
@@ -4175,6 +4293,29 @@ either uses the first module it finds or throws an error.")
versa.")
(license (package-license perl))))
+(define-public perl-lexical-sealrequirehints
+ (package
+ (name "perl-lexical-sealrequirehints")
+ (version "0.011")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Lexical-SealRequireHints-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0fh1arpr0hsj7skbn97yfvbk22pfcrpcvcfs15p5ss7g338qx4cy"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
+ (home-page "http://search.cpan.org/dist/Lexical-SealRequireHints/")
+ (synopsis "Prevent leakage of lexical hints")
+ (description
+ "Lexical::SealRequireHints prevents leakage of lexical hints")
+ (license (package-license perl))))
+
(define-public perl-log-any
(package
(name "perl-log-any")
@@ -4980,6 +5121,37 @@ that avoids the details of Perl's object system. Moo contains a subset of
Moose and is optimised for rapid startup.")
(license (package-license perl))))
+;; Some packages don't yet work with this newer version of ‘Moo’.
+(define-public perl-moo-2
+ (package
+ (inherit perl-moo)
+ (name "perl-moo-2")
+ (version "2.003004")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
+ "Moo-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1qciprcgb4661g2g4ks0fxkx5gbjvn7h9yfg0nzflqz9z0jvdfzq"))))
+ (propagated-inputs
+ `(("perl-role-tiny" ,perl-role-tiny-2)
+ ("perl-sub-name" ,perl-sub-name)
+ ("perl-sub-quote" ,perl-sub-quote)
+ ("perl-strictures" ,perl-strictures-2)
+ ,@(alist-delete "perl-strictures"
+ (alist-delete "perl-role-tiny"
+ (package-propagated-inputs perl-moo)))))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-perl-search-path
+ (lambda _
+ ;; Use perl-strictures for testing.
+ (setenv "MOO_FATAL_WARNINGS" "=1")
+ #t)))))))
+
(define-public perl-moose
(package
(name "perl-moose")
@@ -5853,6 +6025,32 @@ Certificate Authority certificates in a form that can be consumed by modules
and libraries based on OpenSSL.")
(license mpl2.0)))
+(define-public perl-multidimensional
+ (package
+ (name "perl-multidimensional")
+ (version "0.013")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/I/IL/ILMARI/multidimensional-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "02p5zv68i39hnkmzzxsk1fi7xy56pfcsslrd7yqwzhq74czcw81x"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
+ ("perl-extutils-depends" ,perl-extutils-depends)))
+ (propagated-inputs
+ `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
+ ("perl-lexical-sealrequirehints" ,perl-lexical-sealrequirehints)))
+ (home-page "http://search.cpan.org/dist/multidimensional/")
+ (synopsis "Disable multidimensional array emulation")
+ (description
+ "Multidimensional disables multidimensional array emulation.")
+ (license (package-license perl))))
+
(define-public perl-mro-compat
(package
(name "perl-mro-compat")
@@ -6025,6 +6223,26 @@ collector daemon in use at Etsy.com.")
subroutine, which you can call with a value to be tested against.")
(license (package-license perl))))
+(define-public perl-number-range
+ (package
+ (name "perl-number-range")
+ (version "0.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/L/LA/LARRYSH/Number-Range-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0999xvs3w2xprs14q4shqndjf2m6mzvhzdljgr61ddjaqhd84gj3"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Number-Range/")
+ (synopsis "Perl extension defining ranges of numbers")
+ (description "Number::Range is an object-oriented interface to test if a
+number exists in a given range, and to be able to manipulate the range.")
+ (license (package-license perl))))
+
(define-public perl-object-signature
(package
(name "perl-object-signature")
@@ -6626,6 +6844,20 @@ and @code{deserialize_regexp}.")
(description "Role::Tiny is a minimalist role composition tool.")
(license (package-license perl))))
+;; Some packages don't yet work with this newer version of ‘Role::Tiny’.
+(define-public perl-role-tiny-2
+ (package
+ (inherit perl-role-tiny)
+ (version "2.000006")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
+ "Role-Tiny-" version ".tar.gz"))
+ (sha256
+ (base32
+ "10p3sc639c0nj56bb77a2wg8samyyl8sqpliv3n8c0jaj2642wyc"))))))
+
(define-public perl-safe-isa
(package
(name "perl-safe-isa")
@@ -6865,6 +7097,20 @@ on the length of the size.")
run from within a source-controlled directory.")
(license (package-license perl))))
+;; Some packages don't yet work with this newer version of ‘strictures’.
+(define-public perl-strictures-2
+ (package
+ (inherit perl-strictures)
+ (version "2.000003")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
+ "strictures-" version ".tar.gz"))
+ (sha256
+ (base32
+ "08mgvf1d2651gsg3jgjfs13878ndqa4ji8vfsda9f7jjd84ymy17"))))))
+
(define-public perl-string-camelcase
(package
(name "perl-string-camelcase")
@@ -6894,6 +7140,28 @@ run from within a source-controlled directory.")
CamelCase and back again.")
(license (package-license perl))))
+(define-public perl-string-escape
+ (package
+ (name "perl-string-escape")
+ (version "2010.002")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/E/EV/EVO/String-Escape-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "12ls7f7847i4qcikkp3skwraqvjphjiv2zxfhl5d49326f5myr7x"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/String-Escape/")
+ (synopsis "Backslash escapes, quoted phrase, word elision, etc.")
+ (description "This module provides a flexible calling interface to some
+frequently-performed string conversion functions, including applying and
+expanding standard C/Unix-style backslash escapes like \n and \t, wrapping and
+removing double-quotes, and truncating to fit within a desired length.")
+ (license (package-license perl))))
+
(define-public perl-string-rewriteprefix
(package
(name "perl-string-rewriteprefix")
@@ -7069,6 +7337,30 @@ specification is omitted in the name, then the current package is used. The
return value is the sub.")
(license (package-license perl))))
+(define-public perl-sub-quote
+ (package
+ (name "perl-sub-quote")
+ (version "2.004000")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/H/HA/HAARG/Sub-Quote-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1zrh3apxsw1ks25zkh9dcn00656rsvq4mimqz3w8p37s2c1m4qaq"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-fatal" ,perl-test-fatal)))
+ (propagated-inputs
+ `(("perl-sub-name" ,perl-sub-name)))
+ (home-page "http://search.cpan.org/dist/Sub-Quote/")
+ (synopsis "Efficient generation of subroutines via string eval")
+ (description "Sub::Quote provides an efficient generation of subroutines
+via string eval.")
+ (license (package-license perl))))
+
(define-public perl-sub-uplevel
(package
(name "perl-sub-uplevel")
@@ -8331,6 +8623,27 @@ UNIVERSAL::can() as a function, which it is not.")
UNIVERSAL::isa as a function.")
(license (package-license perl))))
+(define-public perl-universal-require
+ (package
+ (name "perl-universal-require")
+ (version "0.18")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/N/NE/NEILB/UNIVERSAL-require-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1v9qdg80ng6dzyzs7cn8sb6mn8ym042i32lcnpd478b7g6l3d9xj"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/UNIVERSAL-require/")
+ (synopsis "Require modules from a variable")
+ (description "This module lets you require other modules where the module
+name is in a variable, something you can't do with the @code{require}
+built-in.")
+ (license (package-license perl))))
+
(define-public perl-variable-magic
(package
(name "perl-variable-magic")
@@ -8817,3 +9130,101 @@ till 5pm\" and \"on the second Tuesday of the month\" and \"between 4pm and
4:15pm\" and \"in the first half of each minute\" and \"in January of
1998\".")
(license perl-license)))
+
+(define-public perl-path-iterator-rule
+ (package
+ (name "perl-path-iterator-rule")
+ (version "1.012")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Iterator-Rule-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1z76avwvwgv4bw28kzx79mmb4449s5l345sn0wljq3dbf4wqigd1"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-file-pushd" ,perl-file-pushd)
+ ("perl-path-tiny" ,perl-path-tiny)
+ ("perl-test-deep" ,perl-test-deep)
+ ("perl-test-filename" ,perl-test-filename)))
+ (propagated-inputs
+ `(("perl-number-compare" ,perl-number-compare)
+ ("perl-text-glob" ,perl-text-glob)
+ ("perl-try-tiny" ,perl-try-tiny)))
+ (home-page "http://search.cpan.org/dist/Path-Iterator-Rule/")
+ (synopsis "Iterative, recursive file finder")
+ (description "Path::Iterator::Rule iterates over files and directories to
+identify ones matching a user-defined set of rules. The API is based heavily
+on File::Find::Rule, but with more explicit distinction between matching rules
+and options that influence how directories are searched. A
+Path::Iterator::Rule object is a collection of rules (match criteria) with
+methods to add additional criteria. Options that control directory traversal
+are given as arguments to the method that generates an iterator.
+
+A summary of features for comparison to other file finding modules:
+
+@itemize
+@item provides many helper methods for specifying rules
+@item offers (lazy) iterator and flattened list interfaces
+@item custom rules implemented with callbacks
+@item breadth-first (default) or pre- or post-order depth-first searching
+@item follows symlinks (by default, but can be disabled)
+@item directories visited only once (no infinite loop; can be disabled)
+@item doesn't chdir during operation
+@item provides an API for extensions
+@end itemize
+
+As a convenience, the PIR module is an empty subclass of this one that is less
+arduous to type for one-liners.")
+ (license asl2.0)))
+
+(define-public perl-pod-constants
+ (package
+ (name "perl-pod-constants")
+ (version "0.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/M/MG/MGV/Pod-Constants-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1njgr2zly9nrwvfrjhgk9dqq48as1pmbb2rs4bh3irvla75v7azg"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Pod-Constants/")
+ (synopsis "Include constants from POD")
+ (description "This module allows you to specify those constants that
+should be documented in your POD, and pull them out a run time in a fairly
+arbitrary fashion.
+
+Pod::Constants uses Pod::Parser to do the parsing of the source file. It has
+to open the source file it is called from, and does so directly either by
+lookup in %INC or by assuming it is $0 if the caller is @code{main}
+(or it can't find %INC{caller()}).")
+ (license artistic2.0)))
+
+(define-public perl-regexp-pattern
+ (package
+ (name "perl-regexp-pattern")
+ (version "0.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/P/PE/PERLANCAR/Regexp-Pattern-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0rwpl6dxd1yl2ng3d4jdy68jz3mggmdl35rphrw1x619sm1aa876"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-exception" ,perl-test-exception)))
+ (home-page "http://search.cpan.org/dist/Regexp-Pattern/")
+ (synopsis "Collection of regexp patterns")
+ (description "Regexp::Pattern is a convention for organizing reusable
+regexp patterns in modules.")
+ (license (package-license perl))))