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.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")