1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
5 ;;; This file is part of GNU Guix.
7 ;;; GNU Guix is free software; you can redistribute it and/or modify it
8 ;;; under the terms of the GNU General Public License as published by
9 ;;; the Free Software Foundation; either version 3 of the License, or (at
10 ;;; your option) any later version.
12 ;;; GNU Guix is distributed in the hope that it will be useful, but
13 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 ;;; GNU General Public License for more details.
17 ;;; You should have received a copy of the GNU General Public License
18 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 (define-module (gnu packages perl)
21 #:use-module (guix licenses)
22 #:use-module (gnu packages)
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module (guix build-system gnu)
26 #:use-module (guix build-system perl))
29 ;; Yeah, Perl... It is required early in the bootstrap process by Linux.
35 (uri (string-append "http://www.cpan.org/src/5.0/perl-"
39 "15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km"))
40 (patches (list (search-patch "perl-no-sys-dirs.patch")))))
41 (build-system gnu-build-system)
47 (lambda* (#:key inputs outputs #:allow-other-keys)
48 (let ((out (assoc-ref outputs "out"))
49 (libc (assoc-ref inputs "libc")))
50 ;; Use the right path for `pwd'.
51 (substitute* "dist/Cwd/Cwd.pm"
56 (system* "./Configure"
57 (string-append "-Dprefix=" out)
58 (string-append "-Dman1dir=" out "/share/man/man1")
59 (string-append "-Dman3dir=" out "/share/man/man3")
62 "-Dinstallstyle=lib/perl5"
64 (string-append "-Dlocincpth=" libc "/include")
65 (string-append "-Dloclibpth=" libc "/lib")))))
67 (native-search-paths (list (search-path-specification
69 (directories '("lib/perl5/site_perl")))))
70 (synopsis "Implementation of the Perl programming language")
72 "Perl 5 is a highly capable, feature-rich programming language with over
73 24 years of development.")
74 (home-page "http://www.perl.org/")
75 (license gpl1+))) ; or "Artistic"
77 (define-public perl-file-list
79 (name "perl-file-list")
84 "mirror://cpan/authors/id/D/DO/DOPACKI/File-List-"
88 "00m5ax4aq59hdvav6yc4g63vhx3a57006rglyypagvrzfxjvm8s8"))))
89 (build-system perl-build-system)
97 (license (package-license perl))
98 (synopsis "Perl extension for crawling directory trees and compiling
101 "The File::List module crawls the directory tree starting at the
102 provided base directory and can return files (and/or directories if desired)
103 matching a regular expression.")
104 (home-page "http://search.cpan.org/~dopacki/File-List/")))
106 (define-public perl-io-tty
112 (uri (string-append "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-"
116 "0lgd9xcbi4gf4gw1ka6fj94my3w1f3k1zamb4pfln0qxz45zlxx4"))))
117 (build-system perl-build-system)
118 (home-page "http://search.cpan.org/~toddr/IO-Tty/")
119 (synopsis "Perl interface to pseudo ttys")
121 "This package provides the 'IO::Pty' and 'IO::Tty' Perl interfaces to
123 (license (package-license perl))))
125 (define-public perl-archive-zip
127 (name "perl-archive-zip")
133 "mirror://cpan/authors/id/A/AD/ADAMK/Archive-Zip-"
137 "0633zah5z9njiqnvy3vh42fjymncmil1jdfb7d18w8xpfzzp5d7q"))))
138 (build-system perl-build-system)
139 (synopsis "Perl API to zip files")
140 (description "The Archive::Zip module allows a Perl program to create,
141 manipulate, read, and write Zip archive files.")
142 (home-page "http://search.cpan.org/~phred/Archive-Zip-1.37/lib/Archive/Zip.pm")
143 (license (package-license perl))))
145 (define-public perl-digest-sha1
147 (name "perl-digest-sha1")
151 (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/"
152 "Digest-SHA1-" version ".tar.gz"))
155 "1k23p5pjk42vvzg8xcn4iwdii47i0qm4awdzgbmz08bl331dmhb8"))))
156 (build-system perl-build-system)
157 (synopsis "Perl implementation of the SHA-1 message digest algorithm")
159 "This package provides 'Digest::SHA1', an implementation of the NIST
160 SHA-1 message digest algorithm for use by Perl programs.")
161 (home-page (string-append "http://search.cpan.org/~gaas/Digest-SHA1-"
163 (license (package-license perl))))
165 (define-public perl-benchmark-timer
167 (name "perl-benchmark-timer")
171 (uri (string-append "mirror://cpan/authors/id/D/DC/DCOPPIT/"
172 "Benchmark-Timer-" version ".tar.gz"))
175 "1gl9ybm9hgia3ld5s11b7bv2p2hmx5rss5hxcfy6rmbzrjcnci01"))))
176 (build-system perl-build-system)
177 ;; The optional input module Statistics::PointEstimation (from
178 ;; Statistics-TTest) lists no license.
179 (synopsis "Benchmarking with statistical confidence")
181 "The Benchmark::Timer class allows you to time portions of code
182 conveniently, as well as benchmark code by allowing timings of repeated
183 trials. It is perfect for when you need more precise information about the
184 running time of portions of your code than the Benchmark module will give you,
185 but don't want to go all out and profile your code.")
186 (home-page (string-append "http://search.cpan.org/~dcoppit/"
187 "Benchmark-Timer-" version))
190 (define-public perl-exporter-lite
192 (name "perl-exporter-lite")
196 (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
197 "Exporter-Lite-" version ".tar.gz"))
200 "0k4gkvid4fr8yvwj0axdx5111mzfw2iipls3qllxr364fqhmclpj"))))
201 (build-system perl-build-system)
202 (synopsis "Lightweight exporting of functions and variables")
204 "Exporter::Lite is an alternative to Exporter, intended to provide a
205 lightweight subset of the most commonly-used functionality. It supports
206 import(), @EXPORT and @EXPORT_OK and not a whole lot else.")
207 (home-page (string-append "http://search.cpan.org/~neilb/"
208 "Exporter-Lite-" version))
209 (license (package-license perl))))
211 (define-public perl-probe-perl
213 (name "perl-probe-perl")
217 (uri (string-append "mirror://cpan/authors/id/K/KW/KWILLIAMS/"
218 "Probe-Perl-" version ".tar.gz"))
221 "0c9wiaz0mqqknafr4jdr0g2gdzxnn539182z0icqaqvp5qgd5r6r"))))
222 (build-system perl-build-system)
223 (synopsis "Information about the currently running perl")
225 "Probe::Perl provides methods for obtaining information about the
226 currently running perl interpreter. It originally began life as code in the
227 Module::Build project, but has been externalized here for general use.")
228 (home-page (string-append "http://search.cpan.org/~kwilliams/"
229 "Probe-Perl-" version))
230 (license (package-license perl))))
232 (define-public perl-ipc-run3
234 (name "perl-ipc-run3")
238 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
239 "IPC-Run3-" version ".tar.gz"))
242 "0r9m8q78bg7yycpixd7738jm40yz71p2q7inm766kzsw3g6c709x"))))
243 (build-system perl-build-system)
244 (synopsis "Run a subprocess with input/ouput redirection")
246 "The IPC::Run3 module allows you to run a subprocess and redirect stdin,
247 stdout, and/or stderr to files and perl data structures. It aims to satisfy
248 99% of the need for using system, qx, and open3 with a simple, extremely
249 Perlish API and none of the bloat and rarely used features of IPC::Run.")
250 (home-page (string-append "http://search.cpan.org/~rjbs/"
251 "IPC-Run3-" version))
252 ;; "You may use this module under the terms of the BSD, Artistic, or GPL
253 ;; licenses, any version."
254 (license (list bsd-3 gpl3+))))
256 (define-public perl-test-script
258 (name "perl-test-script")
262 (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/"
263 "Test-Script-" version ".tar.gz"))
266 "15pb4zzsnm33msc1syhig2bk05xqc0pckmfyahdwbd177bj5w7p2"))))
267 (build-system perl-build-system)
269 `(("probe-perl" ,perl-probe-perl)
270 ("ipc-run3" ,perl-ipc-run3)))
271 (synopsis "Basic cross-platform tests for scripts")
273 "The intent of the Test::Script module is to provide a series of basic
274 tests for 80% of the testing you will need to do for scripts in the script (or
275 bin as is also commonly used) paths of your Perl distribution.")
276 (home-page (string-append "http://search.cpan.org/~adamk/"
277 "Test-Script-" version))
278 (license (package-license perl))))
280 (define-public perl-file-which
282 (name "perl-file-which")
286 (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/"
287 "File-Which-" version ".tar.gz"))
290 "1hxjyh9yrv32f3g8vrnr8iylzprajsac14vjm75kf1qnj1jyqbxp"))))
291 (build-system perl-build-system)
292 (native-inputs `(("test-script" ,perl-test-script)))
293 (synopsis "Portable implementation of the `which' utility")
295 "File::Which was created to be able to get the paths to executable
296 programs on systems under which the `which' program wasn't implemented in the
298 (home-page (string-append "http://search.cpan.org/~adamk/"
299 "File-Which-" version))
300 (license (package-license perl))))
302 (define-public perl-getopt-tabular
304 (name "perl-getopt-tabular")
308 (uri (string-append "mirror://cpan/authors/id/G/GW/GWARD/"
309 "Getopt-Tabular-" version ".tar.gz"))
312 "0xskl9lcj07sdfx5dkma5wvhhgf5xlsq0khgh8kk34dm6dv0dpwv"))))
313 (build-system perl-build-system)
314 (synopsis "Table-driven argument parsing for Perl")
316 "Getopt::Tabular is a Perl 5 module for table-driven argument parsing,
317 vaguely inspired by John Ousterhout's Tk_ParseArgv.")
318 (home-page (string-append "http://search.cpan.org/~gward/"
319 "Getopt-Tabular-" version))
320 (license (package-license perl))))
322 (define-public perl-regexp-common
324 (name "perl-regexp-common")
325 (version "2013031301")
328 (uri (string-append "mirror://cpan/authors/id/A/AB/ABIGAIL/"
329 "Regexp-Common-" version ".tar.gz"))
332 "112wybsm0vr8yfannx6sdfvgp5vza28gjgr3pgn69ak4sac836kj"))))
333 (build-system perl-build-system)
334 (synopsis "Provide commonly requested regular expressions")
336 "This module exports a single hash (`%RE') that stores or generates
337 commonly needed regular expressions. Patterns currently provided include:
338 balanced parentheses and brackets, delimited text (with escapes), integers and
339 floating-point numbers in any base (up to 36), comments in 44 languages,
340 offensive language, lists of any pattern, IPv4 addresses, URIs, and Zip
342 (home-page (string-append "http://search.cpan.org/~abigail/"
343 "Regexp-Common-" version))
344 ;; Quad-licensed: Perl Artistic, Perl Artistic 2.0, X11, and BSD.
345 (license (list (package-license perl) x11 bsd-3))))