summary refs log tree commit diff
path: root/gnu/packages/perl.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/perl.scm')
-rw-r--r--gnu/packages/perl.scm308
1 files changed, 305 insertions, 3 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 211505a846..9f298ac960 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -8,6 +8,8 @@
 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
+;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1002,6 +1004,29 @@ some enhancements such as here-documents, C-style comments, and multiline
 options.")
     (license (package-license perl))))
 
+(define-public perl-config-ini
+  (package
+    (name "perl-config-ini")
+    (version "0.025")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://cpan/authors/id/R/RJ/RJBS/Config-INI-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0clphq6a17chvb663fvjnxqvyvh26g03x0fl4bg9vy4ibdnzg2v2"))))
+    (build-system perl-build-system)
+    (inputs
+     `(("perl-mixin-linewise" ,perl-mixin-linewise)
+       ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
+       ("perl-sub-exporter" ,perl-sub-exporter)))
+    (home-page "http://search.cpan.org/dist/Config-INI")
+    (synopsis "Simple .ini-file format reader and writer")
+    (description "@code{Config::INI} is a module that facilates the reading
+and writing of @code{.ini}-style configuration files.")
+    (license (package-license perl))))
+
 (define-public perl-context-preserve
   (package
     (name "perl-context-preserve")
@@ -2458,6 +2483,26 @@ shell.")
                               "File-Which-" version))
     (license (package-license perl))))
 
+(define-public perl-file-zglob
+  (package
+    (name "perl-file-zglob")
+    (version "0.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://cpan/authors/id/T/TO/TOKUHIROM/File-Zglob-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "16v61rn0yimpv5kp6b20z2f1c93n5kpsyjvr0gq4w2dc43gfvc8w"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/File-Zglob")
+    (synopsis "Extended Unix style glob functionality")
+    (description "@code{File::Zglob} provides a traditional Unix @code{glob}
+functionality; it returns a list of file names that match the given pattern.
+For instance, it supports the @code{**/*.pm} form.")
+    (license (package-license perl))))
+
 (define-public perl-getopt-long-descriptive
   (package
     (name "perl-getopt-long-descriptive")
@@ -2505,6 +2550,29 @@ vaguely inspired by John Ousterhout's Tk_ParseArgv.")
                               "Getopt-Tabular-" version))
     (license (package-license perl))))
 
+(define-public perl-guard
+  (package
+    (name "perl-guard")
+    (version "1.023")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/Guard-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1p6i9mfmbs9cw40jqdv71ihv2xfi0vvlv8bdv2810gf93zwxvi1l"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Guard")
+    (synopsis "Safe cleanup blocks implemented as guards")
+    (description "@code{Guard} implements so-called @dfn{guards}.  A guard is
+something (usually an object) that \"guards\" a resource, ensuring that it is
+cleaned up when expected.
+
+Specifically, this module supports two different types of guards: guard
+objects, which execute a given code block when destroyed, and scoped guards,
+which are tied to the scope exit.")
+    (license (package-license perl))))
+
 (define-public perl-hash-merge
   (package
     (name "perl-hash-merge")
@@ -2592,6 +2660,31 @@ 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-io-captureoutput
+  (package
+    (name "perl-io-captureoutput")
+    (version "1.1104")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/D/DA/DAGOLDEN/IO-CaptureOutput-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0c437zvzpqi8f0h3nmblwdi2bvsb92b7g30fndr7my9qnky35izw"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/IO-CaptureOutput")
+    (synopsis "Capture STDOUT and STDERR from Perl code, subprocesses or XS")
+    (description "@code{IO::CaptureOutput} provides routines for capturing
+@code{STDOUT} and @code{STDERR} from perl subroutines, forked system
+calls (e.g. @code{system()}, @code{fork()}) and from XS or C modules.
+
+This module is no longer recommended by its maintainer.  Users are advised to
+try @code{Capture::Tiny} instead.")
+    (license (package-license perl))))
+
 (define-public perl-io-interactive
   (package
     (name "perl-io-interactive")
@@ -2744,6 +2837,30 @@ Perlish API and none of the bloat and rarely used features of IPC::Run.")
 allowing data to be efficiently communicated between processes.")
     (license (package-license perl))))
 
+(define-public perl-ipc-system-simple
+  (package
+    (name "perl-ipc-system-simple")
+    (version "1.25")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://cpan/authors/id/P/PJ/PJF/IPC-System-Simple-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0fsdb81shjj4hifyyzvj7vpkhq5jrfhlcpw2xbjfi1mqz8fsmdpi"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/IPC-System-Simple")
+    (synopsis "Run commands simply, with detailed diagnostics")
+    (description "Calling Perl's in-built @code{system} function is easy,
+determining if it was successful is hard.  Let's face it, @code{$?} isn't the
+nicest variable in the world to play with, and even if you do check it,
+producing a well-formatted error string takes a lot of work.
+
+@code{IPC::System::Simple} takes the hard work out of calling external
+commands.")
+    (license (package-license perl))))
+
 (define-public perl-json
   (package
     (name "perl-json")
@@ -2913,6 +3030,30 @@ one: logging, exceptions, and translations.")
 List::Util or List::MoreUtils defines, with preference to List::Util.")
     (license (package-license perl))))
 
+(define-public perl-list-compare
+  (package
+    (name "perl-list-compare")
+    (version "0.53")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/J/JK/JKEENAN/List-Compare-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0l451yqhx1hlm7f2c3bjsl3n8w6l1jngrxzyfm2d8d9iggv4zgzx"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-io-captureoutput" ,perl-io-captureoutput)))
+    (home-page "http://search.cpan.org/dist/List-Compare")
+    (synopsis "Compare elements of two or more lists")
+    (description "@code{List::Compare} provides a module to perform
+comparative operations on two or more lists.  Provided operations include
+intersections, unions, unique elements, complements and many more.")
+    (license (package-license perl))))
+
 (define-public perl-list-moreutils
   (package
     (name "perl-list-moreutils")
@@ -2938,6 +3079,39 @@ List::Util or List::MoreUtils defines, with preference to List::Util.")
 functionality on lists which is not going to go into List::Util.")
     (license (package-license perl))))
 
+(define-public perl-list-someutils
+  (package
+    (name "perl-list-someutils")
+    (version "0.52")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/D/DR/DROLSKY/List-SomeUtils-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1b450jyxaa6q2yl0cdhknr3c2a5s7b9b18ccnwac625c681r130y"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-leaktrace" ,perl-test-leaktrace)))
+    (inputs
+     `(("perl-exporter-tiny" ,perl-exporter-tiny)
+       ("perl-module-implementation"
+        ,perl-module-implementation)))
+    (home-page "http://search.cpan.org/dist/List-SomeUtils")
+    (synopsis "Provide the stuff missing in List::Util")
+    (description "@code{List::SomeUtils} provides some trivial but commonly
+needed functionality on lists which is not going to go into @code{List::Util}.
+
+All of the below functions are implementable in only a couple of lines of Perl
+code.  Using the functions from this module however should give slightly
+better performance as everything is implemented in C.  The pure-Perl
+implementation of these functions only serves as a fallback in case the C
+portions of this module couldn't be compiled on this machine.")
+    (license (package-license perl))))
+
 (define-public perl-memoize-expirelru
   (package
     (name "perl-memoize-expirelru")
@@ -2997,6 +3171,31 @@ from various sources.  For instance, it contains all IANA types and the
 knowledge of Apache.")
     (license (package-license perl))))
 
+(define-public perl-mixin-linewise
+  (package
+    (name "perl-mixin-linewise")
+    (version "0.108")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://cpan/authors/id/R/RJ/RJBS/Mixin-Linewise-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "1wmfr19w9y8qys7b32mnj1vmps7qwdahqas71a9p62ac8xw0dwkx"))))
+    (build-system perl-build-system)
+    (inputs
+     `(("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
+       ("perl-sub-exporter" ,perl-sub-exporter)))
+    (home-page "http://search.cpan.org/dist/Mixin-Linewise")
+    (synopsis "Write your linewise code for handles; this does the rest")
+    (description "It's boring to deal with opening files for IO, converting
+strings to handle-like objects, and all that.  With
+@code{Mixin::Linewise::Readers} and @code{Mixin::Linewise::Writers}, you can
+just write a method to handle handles, and methods for handling strings and
+file names are added for you.")
+    (license (package-license perl))))
+
 (define-public perl-module-build-tiny
   (package
     (name "perl-module-build-tiny")
@@ -4154,6 +4353,29 @@ up inheritance from those modules at the same time.")
 directory specifications in a cross-platform manner.")
     (license (package-license perl))))
 
+(define-public perl-perlio-utf8_strict
+  (package
+    (name "perl-perlio-utf8-strict")
+    (version "0.006")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-utf8_strict-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0qnmiflirfq10jkmrxyy81ch6hzyndfzxqf8maif0fy44kk1004q"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-exception" ,perl-test-exception)))
+    (home-page
+     "http://search.cpan.org/dist/PerlIO-utf8_strict")
+    (synopsis "Fast and correct UTF-8 IO")
+    (description "@code{PerlIO::utf8_strict} provides a fast and correct UTF-8
+PerlIO layer.  Unlike Perl's default @code{:utf8} layer it checks the input
+for correctness.")
+    (license (package-license perl))))
+
 (define-public perl-pod-coverage
   (package
     (name "perl-pod-coverage")
@@ -4939,6 +5161,66 @@ framework base class.  It concentrates on offering reusable data driven
 patterns, so that you can write tests with a minimum of code.")
     (license (package-license perl))))
 
+(define-public perl-test-class
+  (package
+    (name "perl-test-class")
+    (version "0.50")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Class-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0l0kk5jvxjkic2jkf1r7v41irb344aasnzr3f5ygjgxgiknm9489"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-exception" ,perl-test-exception)))
+    (inputs
+     `(("perl-module-runtime" ,perl-module-runtime)
+       ("perl-mro-compat" ,perl-mro-compat)
+       ("perl-try-tiny" ,perl-try-tiny)))
+    (home-page "http://search.cpan.org/dist/Test-Class")
+    (synopsis "Easily create test classes in an xUnit/JUnit style")
+    (description "@code{Test::Class} provides a simple way of creating classes
+and objects to test your code in an xUnit style.
+
+Built using @code{Test::Builder}, it was designed to work with other
+@code{Test::Builder} based modules (@code{Test::More},
+@code{Test::Differences}, @code{Test::Exception}, etc.).")
+    (license (package-license perl))))
+
+(define-public perl-test-class-most
+  (package
+    (name "perl-test-class-most")
+    (version "0.08")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1zvx9hil0mg0pnb8xfa4m0xgjpvh8s5gnbyprq3xwpdsdgcdwk33"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)))
+    (inputs
+     `(("perl-test-class" ,perl-test-class)
+       ("perl-test-most" ,perl-test-most)
+       ("perl-module-runtime" ,perl-module-runtime)
+       ("perl-try-tiny" ,perl-try-tiny)
+       ("perl-mro-compat" ,perl-mro-compat)))
+    (home-page "http://search.cpan.org/dist/Test-Class-Most")
+    (synopsis "Test classes the easy way")
+    (description "@code{Test::Class::Most} provides some more convenience when
+using @code{Test::Class}.")
+    (license (package-license perl))))
+
 (define-public perl-test-cleannamespaces
   (package
     (name "perl-test-cleannamespaces")
@@ -5651,15 +5933,15 @@ can combine fields into a CSV string and parse a CSV string into fields.")
 (define-public perl-text-diff
   (package
     (name "perl-text-diff")
-    (version "1.41")
+    (version "1.44")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/O/OV/OVID/"
+       (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
                            "Text-Diff-" version ".tar.gz"))
        (sha256
         (base32
-         "1ynjsa4sr1yvyh65sdfvahaafglibz70j8b6rj01cg1iisj50zx6"))))
+         "041v92zla2acdc433f47giridf6p820sdczs7x5d71fhsyza1xsp"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-algorithm-diff" ,perl-algorithm-diff)))
@@ -5806,6 +6088,26 @@ system.")
 as exceptions to standard program flow.")
     (license (package-license perl))))
 
+(define-public perltidy
+  (package
+    (name "perltidy")
+    (version "20160302")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/perltidy/Perl-Tidy-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "19yw63yh5s3pq7k3nkw6nsamg5b8vvwyhgbizslgxg0mqgc4xl3d"))))
+    (build-system perl-build-system)
+    (home-page "http://perltidy.sourceforge.net/")
+    (synopsis "Perl script tidier")
+    (description "This package contains a Perl script which indents and
+reformats Perl scripts to make them easier to read.   The formatting can be
+controlled with command line parameters.  The default parameter settings
+approximately follow the suggestions in the Perl Style Guide.")
+    (license gpl2+)))
+
 (define-public perl-tie-ixhash
   (package
   (name "perl-tie-ixhash")