diff options
Diffstat (limited to 'gnu/packages/perl.scm')
-rw-r--r-- | gnu/packages/perl.scm | 92 |
1 files changed, 91 insertions, 1 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 7ef6714540..c3609dfd58 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -13,12 +13,13 @@ ;;; 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> +;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com> ;;; 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> +;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,8 +44,10 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) + #:use-module (guix utils) ;substitute-keyword-arguments for perl-5.26.2 #:use-module (gnu packages base) #:use-module (gnu packages compression) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages perl-check) #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config)) @@ -59,6 +62,7 @@ (package (name "perl") (version "5.26.1") + (replacement perl/fixed) (source (origin (method url-fetch) (uri (string-append "mirror://cpan/src/5.0/perl-" @@ -156,6 +160,39 @@ (home-page "http://www.perl.org/") (license gpl1+))) ; or "Artistic" +;; Fixes CVE-2018-6797, CVE-2018-6798, and CVE-2018-6913. +;; See <https://metacpan.org/changes/release/SHAY/perl-5.26.2>. +(define-public perl-5.26.2 + (package + (inherit perl) + (version "5.26.2") + (source (origin + (inherit (package-source perl)) + (uri (string-append "mirror://cpan/src/5.0/perl-" + version ".tar.gz")) + (sha256 + (base32 + "03gpnxx1g6hvlh0v4aqx00580h787sfywp1vlvw64q2xcbm9qbsp")))))) + +;; When grafting perl, complications arise when the replacement perl has a +;; different version number than the original. So, here we create a version +;; of perl-5.26.2 that thinks it is version 5.26.1. See +;; <https://bugs.gnu.org/31210> and <https://bugs.gnu.org/31216>. +(define perl/fixed + (package + (inherit perl-5.26.2) + (version "5.26.1") + (arguments + (substitute-keyword-arguments (package-arguments perl-5.26.2) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'revert-perl-subversion + (lambda _ + (substitute* "patchlevel.h" + (("^#define PERL_SUBVERSION 2") + "#define PERL_SUBVERSION 1")) + #t)))))))) + (define-public perl-algorithm-c3 (package (name "perl-algorithm-c3") @@ -3502,6 +3539,33 @@ provided base directory and can return files (and/or directories if desired) matching a regular expression.") (home-page "http://search.cpan.org/~dopacki/File-List//"))) +(define-public perl-file-readbackwards + (package + (name "perl-file-readbackwards") + (version "1.05") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/U/UR/URI/File-ReadBackwards-" + version + ".tar.gz")) + (sha256 + (base32 + "0vldy5q0zyf1cwzwb1gv14f8vg2f21bw96b8wvkw6z2hhypn3cl2")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/File-ReadBackwards/") + (synopsis "Read a file backwards by lines") + (description "This module reads a file backwards line by line. It is +simple to use, memory efficient and fast. It supports both an object and a +tied handle interface. + +It is intended for processing log and other similar text files which typically +have their newest entries appended to them. By default files are assumed to +be plain text and have a line ending appropriate to the OS. But you can set +the input record separator string on a per file basis.") + (license perl-license))) + (define-public perl-file-remove (package (name "perl-file-remove") @@ -4057,6 +4121,32 @@ This document describes how to use Inline with the C programming language. It also goes a bit into Perl C internals.") (license (package-license perl)))) +(define-public perl-io-all + (package + (name "perl-io-all") + (version "0.87") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/F/FR/FREW/IO-All-" + version + ".tar.gz")) + (sha256 + (base32 + "0nsd9knlbd7if2v6zwj4q978axq0w5hk8ymp61z14a821hjivqjl")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-file-mimeinfo" ,perl-file-mimeinfo) + ("perl-file-readbackwards" ,perl-file-readbackwards))) + (home-page "http://search.cpan.org/dist/IO-All/") + (synopsis "@code{IO::All} to Larry Wall!") + (description "@code{IO::All} combines all of the best Perl IO modules into +a single nifty object oriented interface to greatly simplify your everyday +Perl IO idioms. It exports a single function called io, which returns a new +@code{IO::All} object. And that object can do it all!") + (license perl-license))) + (define-public perl-io-captureoutput (package (name "perl-io-captureoutput") |