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.scm317
1 files changed, 316 insertions, 1 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index eee688354a..840e0b763e 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
+;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,7 +37,8 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
-  #:use-module (gnu packages perl-web))
+  #:use-module (gnu packages perl-web)
+  #:use-module (gnu packages pkg-config))
 
 ;;;
 ;;; Please: Try to add new module packages in alphabetic order.
@@ -206,6 +208,31 @@ explicitly alias the class to another name or, if you prefer, you can do so
 implicitly.")
     (license (package-license perl))))
 
+(define-public perl-any-moose
+  (package
+    (name "perl-any-moose")
+    (version "0.27")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+                                  "Any-Moose-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0dc55mpayrixwx8dwql0vj0jalg4rlb3k64rprc84bl0z8vkx9m8"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-mouse" ,perl-mouse)
+       ("perl-moose" ,perl-moose)))
+    (home-page "http://search.cpan.org/dist/Any-Moose")
+    (synopsis "Transparently use Moose or Mouse modules")
+    (description
+     "This module facilitates using @code{Moose} or @code{Mouse} modules
+without changing the code.  By default, Mouse will be provided to libraries,
+unless Moose is already loaded, or explicitly requested by the end-user.  End
+users can force the decision of which backend to use by setting the environment
+variable ANY_MOOSE to be Moose or Mouse.")
+    (license (package-license perl))))
+
 (define-public perl-appconfig
   (package
     (name "perl-appconfig")
@@ -268,6 +295,39 @@ manipulate, read, and write Zip archive files.")
 list manipulation routines.")
     (license (package-license perl))))
 
+(define-public perl-async-interrupt
+  (package
+    (name "perl-async-interrupt")
+    (version "1.21")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/"
+                                  "Async-Interrupt-" version ".tar.gz"))
+              (sha256
+               (base32
+                "092zs7b72f8q109c3z829nqfgwqghp3nhw44c0gcyhacbb4wgpk3"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-common-sense" ,perl-common-sense)))
+    (home-page "http://search.cpan.org/dist/Async-Interrupt")
+    (synopsis "Allow C/XS libraries to interrupt perl asynchronously")
+    (description
+     "@code{Async::Interrupt} implements a single feature only of interest
+to advanced perl modules, namely asynchronous interruptions (think \"UNIX
+signals\", which are very similar).
+
+Sometimes, modules wish to run code asynchronously (in another thread,
+or from a signal handler), and then signal the perl interpreter on
+certain events.  One common way is to write some data to a pipe and use
+an event handling toolkit to watch for I/O events.  Another way is to
+send a signal.  Those methods are slow, and in the case of a pipe, also
+not asynchronous - it won't interrupt a running perl interpreter.
+
+This module implements asynchronous notifications that enable you to
+signal running perl code from another thread, asynchronously, and
+sometimes even without using a single syscall.")
+    (license (package-license perl))))
+
 (define-public perl-autovivification
   (package
     (name "perl-autovivification")
@@ -562,6 +622,25 @@ code or from an external program.  Optionally, output can be teed so that it
 is captured while being passed through to the original file handles.")
     (license asl2.0)))
 
+(define-public perl-canary-stability
+  (package
+    (name "perl-canary-stability")
+    (version "2012")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/"
+                                  "Canary-Stability-" version ".tar.gz"))
+              (sha256
+               (base32
+                "01vih43hvpqy67m6a6fwmlswli91mqpv8n8ccglvlkc33l8hn97x"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Canary-Stability")
+    (synopsis "Check compatibility with the installed perl version")
+    (description
+     "This module is used by Schmorp's modules during configuration stage
+to test the installed perl for compatibility with his modules.")
+    (license (package-license perl))))
+
 (define-public perl-carp-assert
   (package
     (name "perl-carp-assert")
@@ -1290,6 +1369,28 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated
 Password Generator\".")
     (license (package-license perl))))
 
+(define-public perl-cwd-guard
+  (package
+    (name "perl-cwd-guard")
+    (version "0.05")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/K/KA/KAZEBURO/"
+                                  "Cwd-Guard-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0xwf4rmii55k3lp19mpbh00mbgby7rxdk2lk84148bjhp6i7rz3s"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-requires" ,perl-test-requires)))
+    (home-page "http://search.cpan.org/dist/Cwd-Guard")
+    (synopsis "Temporarily change working directory")
+    (description
+     "@code{Cwd::Guard} changes the current directory using a limited scope.
+It returns to the previous working directory when the object is destroyed.")
+    (license (package-license perl))))
+
 (define-public perl-czplib
   (package
     (name "perl-czplib")
@@ -2097,6 +2198,27 @@ the appropriate objects.")
 particular command is available.")
     (license (package-license perl))))
 
+(define-public perl-devel-checkcompiler
+  (package
+  (name "perl-devel-checkcompiler")
+  (version "0.07")
+  (source (origin
+            (method url-fetch)
+            (uri (string-append "mirror://cpan/authors/id/S/SY/SYOHEX/"
+                                "Devel-CheckCompiler-" version ".tar.gz"))
+            (sha256
+             (base32
+              "1db973a4dbyknjxq608hywil5ai6vplnayshqxrd7m5qnjbpd2vn"))))
+  (build-system perl-build-system)
+  (native-inputs
+   `(("perl-module-build-tiny" ,perl-module-build-tiny)))
+  (home-page "http://search.cpan.org/dist/Devel-CheckCompiler")
+  (synopsis "Check compiler availability")
+  (description "@code{Devel::CheckCompiler} is a tiny module to check
+whether a compiler is available.  It can test for a C99 compiler, or
+you can tell it to compile a C source file with optional linker flags.")
+  (license (package-license perl))))
+
 (define-public perl-devel-globaldestruction
   (package
     (name "perl-devel-globaldestruction")
@@ -2603,6 +2725,29 @@ By itself it is not a particularly interesting module by any measure, however
 it ties together a family of modern toolchain modules.")
     (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
+     "This module tries to make it easy to build Perl extensions that use
+functions and typemaps provided by other perl extensions.  This means that a
+perl extension is treated like a shared library that provides also a C and an
+XS interface besides the perl one.")
+    (license (package-license perl))))
+
 (define-public perl-extutils-helpers
   (package
     (name "perl-extutils-helpers")
@@ -2645,6 +2790,29 @@ C code in your Perl programs, there isn't a clear method to compile standard,
 self-contained C libraries.  This module main goal is to help in that task.")
     (license (package-license perl))))
 
+(define-public perl-extutils-pkgconfig
+  (package
+    (name "perl-extutils-pkgconfig")
+    (version "1.15")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
+                                  "ExtUtils-PkgConfig-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1cxh6w8vmyqmhl6afys2q6z6jkp1m6zvacpk70196zmk48p1kcv9"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://search.cpan.org/dist/ExtUtils-PkgConfig")
+    (synopsis "Simplistic interface to pkg-config")
+    (description
+     "@code{ExtUtils::PkgConfig} is a very simplistic interface to the
+@command{pkg-config} utility, intended for use in the @file{Makefile.PL}
+of perl extensions which bind libraries that @command{pkg-config} knows.
+It is really just boilerplate code that you would have written yourself.")
+    (license lgpl2.1+)))
+
 (define-public perl-file-changenotify
   (package
     (name "perl-file-changenotify")
@@ -3953,6 +4121,50 @@ replacement.  Whereas Module::Build has over 6,700 lines of code; this module
 has less than 120, yet supports the features needed by most distributions.")
     (license (package-license perl))))
 
+(define-public perl-module-build-xsutil
+  (package
+    (name "perl-module-build-xsutil")
+    (version "0.16")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/H/HI/HIDEAKIO/"
+                                  "Module-Build-XSUtil-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1nrs0b6hmwl3sw3g50b9857qgp5cbbbpl716zwn30h9vwjj2yxhm"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-capture-tiny" ,perl-capture-tiny)
+       ("perl-cwd-guard" ,perl-cwd-guard)
+       ("perl-file-copy-recursive" ,perl-file-copy-recursive)
+       ("perl-module-build" ,perl-module-build)))
+    (propagated-inputs
+     `(("perl-devel-checkcompiler" ,perl-devel-checkcompiler)))
+    (home-page "http://search.cpan.org/dist/Module-Build-XSUtil")
+    (synopsis "Module::Build class for building XS modules")
+    (description
+     "@code{Module::Build::XSUtil} is subclass of @code{Module::Build}
+for support building XS modules.
+
+This is a list of a new parameters in the @code{Module::Build::new} method:
+
+@enumerate
+@item @code{needs_compiler_c99}: This option checks C99 compiler availability.
+@item @code{needs_compiler_cpp}: This option checks C++ compiler availability.
+Can also pass @code{extra_compiler_flags} and @code{extra_linker_flags} for C++.
+@item @code{generate_ppport_h}: Generate @file{ppport.h} by @code{Devel::PPPort}.
+@item @code{generate_xshelper_h}: Generate @file{xshelper.h} which is a helper
+header file to include @file{EXTERN.h}, @file{perl.h}, @file{XSUB.h} and
+@file{ppport.h}, and defines some portability stuff which are not supported by
+@file{ppport.h}.
+
+It is ported from @code{Module::Install::XSUtil}.
+@item @code{cc_warnings}: Toggle compiler warnings.  Enabled by default.
+@item @code{-g options}: Invoke @file{Build.PL} with @code{-g} to enable
+debug options.
+@end enumerate")
+    (license (package-license perl))))
+
 (define-public perl-module-find
   (package
     (name "perl-module-find")
@@ -4732,6 +4944,62 @@ own set of Moose-like types.  These custom types can then be used to describe
 fields in Moo-based classes.")
     (license (package-license perl))))
 
+(define-public perl-mouse
+  (package
+  (name "perl-mouse")
+  (version "2.4.9")
+  (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "mirror://cpan/authors/id/S/SY/SYOHEX/Mouse-v"
+                  version
+                  ".tar.gz"))
+            (sha256
+             (base32
+              "1y20sl97x1h4y1iid47hj0w1hb2887dchh4nfffgmqpyggkslh4n"))))
+  (build-system perl-build-system)
+  (native-inputs
+   `(("perl-module-build" ,perl-module-build)
+     ("perl-module-build-xsutil" ,perl-module-build-xsutil)
+     ("perl-test-exception" ,perl-test-exception)
+     ("perl-test-fatal" ,perl-test-fatal)
+     ("perl-test-leaktrace" ,perl-test-leaktrace)
+     ("perl-test-output" ,perl-test-output)
+     ("perl-test-requires" ,perl-test-requires)
+     ("perl-try-tiny" ,perl-try-tiny)))
+  (home-page "https://github.com/gfx/p5-Mouse")
+  (synopsis "Fast Moose-compatible object system for perl5")
+  (description
+   "Mouse is a @code{Moose} compatible object system that implements a
+subset of the functionality for reduced startup time.")
+  (license (package-license perl))))
+
+(define-public perl-mousex-nativetraits
+  (package
+    (name "perl-mousex-nativetraits")
+    (version "1.09")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/G/GF/GFUJI/"
+                                  "MouseX-NativeTraits-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pnbchkxfz9fwa8sniyjqp0mz75b3k2fafq9r09znbbh51dbz9gq"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-any-moose" ,perl-any-moose)
+       ("perl-test-fatal" ,perl-test-fatal)))
+    (propagated-inputs
+     `(("perl-mouse" ,perl-mouse)))
+    (home-page "http://search.cpan.org/dist/MouseX-NativeTraits")
+    (synopsis "Extend attribute interfaces for Mouse")
+    (description
+     "While @code{Mouse} attributes provide a way to name your accessors,
+readers, writers, clearers and predicates, @code{MouseX::NativeTraits}
+provides commonly used attribute helper methods for more specific types
+of data.")
+    (license (package-license perl))))
+
 (define-public perl-mozilla-ca
   (package
     (name "perl-mozilla-ca")
@@ -6445,6 +6713,29 @@ including a stack trace of what was going on when it occurred.")
                               "Test-NoWarnings-" version))
     (license lgpl2.1)))
 
+(define-public perl-test-number-delta
+  (package
+    (name "perl-test-number-delta")
+    (version "1.06")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
+                                  "Test-Number-Delta-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jfhzhpzkc23mkrlbnv085ykpfncmy99hvppbzjnrpvgks8k0m2k"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Test-Number-Delta")
+    (synopsis
+     "Compare the difference between numbers against a given tolerance")
+    (description
+     "At some point or another, most programmers find they need to compare
+floating-point numbers for equality.  The typical idiom is to test if the
+absolute value of the difference of the numbers is within a desired tolerance,
+usually called epsilon.  This module provides such a function for use with
+@code{Test::More}.")
+    (license asl2.0)))
+
 (define-public perl-test-output
   (package
     (name "perl-test-output")
@@ -7492,6 +7783,30 @@ attribute names.")
     ;; modification, are permitted under any circumstances.  No warranty.
     (license public-domain)))
 
+(define-public perl-xs-object-magic
+  (package
+    (name "perl-xs-object-magic")
+    (version "0.04")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
+                                  "XS-Object-Magic-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03fghj7hq0fiicmfdxhmzfm4mzv7s097pgkd32ji7jnljvhm9six"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-extutils-depends" ,perl-extutils-depends)
+       ("perl-test-fatal" ,perl-test-fatal)))
+    (home-page "http://search.cpan.org/dist/XS-Object-Magic")
+    (synopsis "Opaque, extensible XS pointer backed objects using sv_magic")
+    (description
+     "This way of associating structs with Perl space objects is designed to
+supersede Perl's builtin @code{T_PTROBJ} with something that is extensible
+(structs can be associated with any data type) and opaque (the C pointer is
+neither visible nor modifiable from Perl space).")
+    (license (package-license perl))))
+
 (define-public perl-yaml
   (package
     (name "perl-yaml")