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.scm364
1 files changed, 363 insertions, 1 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 590945caff..1d1b73f897 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -62,7 +62,8 @@
   #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages readline)
-  #:use-module (gnu packages textutils))
+  #:use-module (gnu packages textutils)
+  #:use-module (gnu packages web))
 
 ;;;
 ;;; Please: Try to add new module packages in alphabetic order.
@@ -354,6 +355,37 @@ of general interest as follows:
 @end itemize")
     (license (package-license perl))))
 
+(define-public perl-authen-dechpwd
+  (package
+    (name "perl-authen-dechpwd")
+    (version "2.007")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-DecHpwd-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "0xzind7zr2prjq3zbs2j18snfpshd4xrd7igv4kp67xl0axr6fpl"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (propagated-inputs
+     `(("perl-data-integer" ,perl-data-integer)
+       ("perl-digest-crc" ,perl-digest-crc)
+       ("perl-scalar-string" ,perl-scalar-string)))
+    (home-page "https://metacpan.org/release/Authen-DecHpwd")
+    (synopsis "DEC VMS password hashing")
+    (description "@code{Authen::DecHpwd} implements the
+SYS$HASH_PASSWORD password hashing function from VMS (also known as
+LGI$HPWD) and some associated VMS username and password handling
+functions.  The password hashing function is implemented in XS with a
+pure Perl backup version for systems that cannot handle XS.")
+    (license gpl2+)))
+
 (define-public perl-autovivification
   (package
     (name "perl-autovivification")
@@ -1297,6 +1329,34 @@ that original method.  @code{around} is run in place of the original method,
 with a hook to easily call that original method.")
     (license (package-license perl))))
 
+(define-public perl-class-mix
+  (package
+    (name "perl-class-mix")
+    (version "0.006")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Class-Mix-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "02vwzzqn1s24g525arbrjh9s9j0y1inp3wbr972gh51ri51zciw7"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (propagated-inputs
+     `(("perl-params-classify" ,perl-params-classify)))
+    (home-page "https://metacpan.org/release/Class-Mix")
+    (synopsis "Dynamic class mixing")
+    (description "The @code{mix_class} function provided by this
+module dynamically generates anonymous classes with specified
+inheritance.  This is useful where an incomplete class requires use of
+a mixin in order to become instantiable.")
+    (license perl-license)))
+
 (define-public perl-class-singleton
   (package
     (name "perl-class-singleton")
@@ -1789,6 +1849,40 @@ CPAN::Meta object are present.")
 versa.")
     (license (package-license perl))))
 
+(define-public perl-crypt-eksblowfish
+  (package
+    (name "perl-crypt-eksblowfish")
+    (version "0.009")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Crypt-Eksblowfish-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "0k01aw3qb2s4m1w4dqsc9cycyry1zg3wabdym4vp4421b1ni5irw"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (propagated-inputs
+     `(("perl-class-mix" ,perl-class-mix)))
+    (home-page "https://metacpan.org/release/Crypt-Eksblowfish")
+    (synopsis "The Eksblowfish block cipher")
+    (description "Eksblowfish is a variant of the Blowfish cipher,
+modified to make the key setup very expensive.  This doesn't make it
+significantly cryptographically stronger but is intended to hinder
+brute-force attacks.  Eksblowfish is a parameterised (family-keyed)
+cipher.  It takes a cost parameter that controls how expensive the key
+scheduling is.  It also takes a family key, known as the \"salt\".
+Cost and salt parameters together define a cipher family.  Within each
+family, the key determines the encryption function.  This distribution
+also includes an implementation of @code{bcrypt}, the Unix crypt()
+password hashing algorithm based on Eksblowfish.")
+    (license perl-license)))
+
 (define-public perl-crypt-randpasswd
   (package
     (name "perl-crypt-randpasswd")
@@ -1813,6 +1907,36 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated
 Password Generator\".")
     (license (package-license perl))))
 
+(define-public perl-crypt-rijndael
+  (package
+    (name "perl-crypt-rijndael")
+    (version "1.14")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "03l5nwq97a8q9na4dpd4m3r7vrwpranx225vw8xm40w7zvgw6lb4"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/Crypt-Rijndael")
+    (synopsis "Crypt::CBC compliant Rijndael encryption module")
+    (description "This module implements the Rijndael cipher which has
+been selected as the Advanced Encryption Standard.  The keysize for
+Rijndael is 32 bytes.  The blocksize is 16 bytes (128 bits).  The
+supported encryption modes are:
+
+@itemize
+@item @code{MODE_CBC}---Cipher Block Chaining
+@item @code{MODE_CFB}---Cipher feedback
+@item @code{MODE_CTR}---Counter mode
+@item @code{MODE_ECB}---Electronic cookbook mode
+@item @code{MODE_OFB}---Output feedback
+@end itemize")
+    (license gpl3)))
+
 (define-public perl-crypt-rc4
   (package
     (name "perl-crypt-rc4")
@@ -1947,6 +2071,71 @@ input.")
 they are copies of each other.")
     (license (package-license perl))))
 
+(define-public perl-data-entropy
+  (package
+    (name "perl-data-entropy")
+    (version "0.007")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Entropy-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "1r176jjzir2zg5kidx85f7vzi6jsw7ci9vd4kvbr9183lfhw8496"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (propagated-inputs
+     `(("perl-crypt-rijndael" ,perl-crypt-rijndael)
+       ("perl-data-float" ,perl-data-float)
+       ("perl-http-lite" ,perl-http-lite)
+       ("perl-params-classify" ,perl-params-classify)))
+    (home-page "https://metacpan.org/release/Data-Entropy")
+    (synopsis "Entropy (randomness) management")
+    (description "@code{Data::Entropy} provides modules relating to
+the generation and use of entropy.  The Data::Entropy::Source class
+manages the entropy coming from a particular source.  This class acts
+as a layer over a raw entropy source, which may be a normal I/O handle
+or a special-purpose class.  The Data::Entropy::RawSource::* classes
+provide fundamental sources of entropy.  The sources specially
+supported are an OS-supplied entropy collector, downloads from servers
+on the Internet, and cryptographic fake entropy.  The
+Data::Entropy::Algorithms module contains a collection of fundamental
+algorithms that use entropy.  There are random number generators and
+functions to shuffle arrays.")
+    (license perl-license)))
+
+(define-public perl-data-integer
+  (package
+    (name "perl-data-integer")
+    (version "0.006")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Integer-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "0m53zxhx9sn49yqh7azlpyy9m65g54v8cd2ha98y77337gg7xdv3"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (home-page "https://metacpan.org/release/Data-Integer")
+    (synopsis "Details of the native integer data type")
+    (description "This module is about the native integer numerical
+data type.  A native integer is one of the types of datum that can
+appear in the numeric part of a Perl scalar.  This module supplies
+constants describing the native integer type.  Both signed and
+unsigned representations are handled.")
+    (license perl-license)))
+
 (define-public perl-data-uniqid
   (package
     (name "perl-data-uniqid")
@@ -2027,6 +2216,34 @@ statement.  It handles self-referential structures correctly.")
 indentation and newlines plus sub deparsing.")
     (license (package-license perl))))
 
+(define-public perl-data-float
+  (package
+    (name "perl-data-float")
+    (version "0.013")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Float-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "12ji4yf3nc965rqqgfhr96w7irpm6n1g15nivfxvhc49hlym5cg2"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (home-page "https://metacpan.org/release/Data-Float")
+    (synopsis "Details of the floating point data type")
+    (description "@code{Data::Float} is about the native floating
+point numerical data type.  A floating point number is one of the
+types of datum that can appear in the numeric part of a Perl scalar.
+This module supplies constants describing the native floating point
+type, classification functions and functions to manipulate floating
+point values at a low level.")
+    (license perl-license)))
+
 (define-public perl-data-optlist
   (package
     (name "perl-data-optlist")
@@ -2815,6 +3032,39 @@ format of RSS 1.0.  It can be used to parse these formats in order to create
 the appropriate objects.")
     (license (package-license perl))))
 
+(define-public perl-devel-callchecker
+  (package
+    (name "perl-devel-callchecker")
+    (version "0.008")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Devel-CallChecker-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "1p0ij2k2i81zhl7064h9ghld1w5xy2zsbghkpdzm2hjryl5lwn2x"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (propagated-inputs
+     `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
+       ("perl-dynaloader-functions" ,perl-dynaloader-functions)))
+    (home-page "https://metacpan.org/release/Devel-CallChecker")
+    (synopsis "Custom op checking attached to subroutines")
+    (description "This module makes some new features of the Perl
+5.14.0 C API available to XS modules running on older versions of
+Perl.  The features are centred around the function
+@code{cv_set_call_checker}, which allows XS code to attach a magical
+annotation to a Perl subroutine, resulting in resolvable calls to that
+subroutine being mutated at compile time by arbitrary C code.  This
+module makes @code{cv_set_call_checker} and several supporting
+functions available.")
+    (license perl-license)))
+
 (define-public perl-devel-caller
   (package
     (name "perl-devel-caller")
@@ -3123,6 +3373,27 @@ each stack frame.")
     (description "Devel::Symdump provides access to the perl symbol table.")
     (license (package-license perl))))
 
+(define-public perl-digest-crc
+  (package
+    (name "perl-digest-crc")
+    (version "0.22")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/O/OL/OLIMAUL/Digest-CRC-"
+            version ".2.tar.gz"))
+      (sha256
+       (base32
+        "1jvqcyrbi11cj3vlfc9sq2g6rv9caizyjkjqsksvmxn6zgvm0aqi"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/Digest-CRC")
+    (synopsis "Generic CRC functions")
+    (description "The @code{Digest::CRC} module calculates CRC sums of
+all sorts.  It contains wrapper functions with the correct parameters
+for CRC-CCITT, CRC-16 and CRC-32.")
+    (license public-domain)))
+
 (define-public perl-digest-hmac
   (package
     (name "perl-digest-hmac")
@@ -3212,6 +3483,32 @@ SHA-1 message digest algorithm for use by Perl programs.")
 modules separately and deal with them after the module is done installing.")
     (license (package-license perl))))
 
+(define-public perl-dynaloader-functions
+  (package
+    (name "perl-dynaloader-functions")
+    (version "0.003")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/DynaLoader-Functions-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "10x13q920j9kid7vmbj6fiaz153042dy4mwdmpzrdrxw2ir39ciy"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (home-page "https://metacpan.org/release/DynaLoader-Functions")
+    (synopsis "Deconstructed dynamic C library loading")
+    (description "This module provides a function-based interface to
+dynamic loading as used by Perl.  Some details of dynamic loading are
+very platform-dependent, so correct use of these functions requires
+the programmer to be mindfulof the space of platform variations.")
+    (license perl-license)))
+
 (define-public perl-encode-detect
   (package
     (name "perl-encode-detect")
@@ -7251,6 +7548,40 @@ operations that can be done in parallel where the number of
 processes to be forked off should be limited.")
     (license (package-license perl))))
 
+(define-public perl-params-classify
+  (package
+    (name "perl-params-classify")
+    (version "0.015")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Params-Classify-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "052r198xyrsv8wz21gijdigz2cgnidsa37nvyfzdiz4rv1fc33ir"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (propagated-inputs
+     `(("perl-devel-callchecker" ,perl-devel-callchecker)))
+    (home-page "https://metacpan.org/release/Params-Classify")
+    (synopsis "Argument type classification")
+    (description "This module provides various type-testing functions.
+These are intended for functions that care what type of data they are
+operating on.  There are two flavours of function.  Functions of the
+first flavour provide type classification only.  Functions of the
+second flavour also check that an argument is of an expected type.
+The type enforcement functions handle only the simplest requirements
+for arguments of the types handled by the classification functions.
+Enforcement of more complex types may be built using the
+classification functions, or it may be more convenient to use a module
+designed for the more complex job, such as @code{Params::Validate}")
+    (license perl-license)))
+
 (define-public perl-params-util
   (package
     (name "perl-params-util")
@@ -7752,6 +8083,37 @@ and @code{deserialize_regexp}.")
 safely on things that may not be objects.")
     (license (package-license perl))))
 
+(define-public perl-scalar-string
+  (package
+    (name "perl-scalar-string")
+    (version "0.003")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append
+            "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Scalar-String-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "0llbsqk7rsg9p7l1f4yk6iv7wij91gvavprsqhnb04w7nz4ifjpm"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (home-page "https://metacpan.org/release/Scalar-String")
+    (synopsis "String aspects of scalars")
+    (description "@code{Scalar::String} is about the string part of
+plain Perl scalars.  A scalar has a string value, which is notionally
+a sequence of Unicode codepoints but may be internally encoded in
+either ISO-8859-1 or UTF-8.  In places, more so in older versions of
+Perl, the internal encoding shows through.  To fully understand Perl
+strings it is necessary to understand these implementation details.
+This module provides functions to classify a string by encoding and to
+encode a string in a desired way.  The module is implemented in XS,
+with a pure Perl backup version for systems that cannot handle XS.")
+    (license perl-license)))
+
 (define-public perl-scope-guard
   (package
     (name "perl-scope-guard")