diff options
Diffstat (limited to 'gnu/packages/perl.scm')
-rw-r--r-- | gnu/packages/perl.scm | 506 |
1 files changed, 503 insertions, 3 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 20c927c7c4..6999946fe9 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2019, 2020, 2021 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2019, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2016, 2018 Mark H Weaver <mhw@netris.org> @@ -32,6 +32,9 @@ ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2022 Evgeny Pisemsky <evgeny@pisemsky.com> +;;; Copyright © 2022 gemmaro <gemmaro.dev@gmail.com> +;;; Copyright © 2023 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -71,6 +74,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages hurd) #:use-module (gnu packages image) + #:use-module (gnu packages language) #:use-module (gnu packages less) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl-check) @@ -330,6 +334,74 @@ administration, web development, network programming, GUI development, and more.") (license license:gpl1+))) +(define-public perl-5.6 + (package + (inherit perl-5.14) + (name "perl") + (version "5.6.2") + (source (origin + (method url-fetch) + (uri (string-append "https://www.cpan.org/src/5.0/perl-" + version ".tar.gz")) + (sha256 + (base32 + "0khk94gvc8qkwxdb98khmxbwxxdbhap7rxb9ymkha6vhpxp6zrm5")))) + (properties `((release-date . "2003-11-15") + (hidden? . #t))) ;only for GHC 4. + (build-system gnu-build-system) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (libc (assoc-ref inputs "libc"))) + ;; Use the right path for `pwd'. + (substitute* "lib/Cwd.pm" + (("/bin/pwd") + (which "pwd"))) + + (invoke "./Configure" + (string-append "-Dprefix=" out) + (string-append "-Dman1dir=" out "/share/man/man1") + (string-append "-Dman3dir=" out "/share/man/man3") + "-de" "-Dcc=gcc" + "-Uinstallusrbinperl" + "-Dinstallstyle=lib/perl5" + "-Duseshrplib" + (string-append "-Dlocincpth=" libc "/include") + (string-append "-Dloclibpth=" libc "/lib") + + ;; Force the library search path to contain only libc + ;; because it is recorded in Config.pm and + ;; Config_heavy.pl; we don't want to keep a reference + ;; to everything that's in $LIBRARY_PATH at build + ;; time (Binutils, bzip2, file, etc.) + (string-append "-Dlibpth=" libc "/lib") + (string-append "-Dplibpth=" libc "/lib"))))) + (add-after 'configure 'bleh + (lambda _ + (substitute* '("makefile" + "x2p/makefile") + ((".*\\<command-line>.*") "")) + ;; Don't look for /usr/include/errno.h. + (substitute* "ext/Errno/Errno_pm.PL" + (("O eq 'linux'") "O eq 'loonix'")) + (substitute* "ext/IPC/SysV/SysV.xs" + ((".*asm/page.h.*") "")))) + (add-before 'strip 'make-shared-objects-writable + (lambda* (#:key outputs #:allow-other-keys) + ;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them + ;; writable so that 'strip' actually strips them. + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + (for-each (lambda (dso) + (chmod dso #o755)) + (find-files lib "\\.so$")))))))) + (native-inputs + (list gcc-5)))) + (define-public perl-algorithm-c3 (package (name "perl-algorithm-c3") @@ -1829,14 +1901,14 @@ as defined by two typical specimens of Perl coders.") (define-public perl-conf-libconfig (package (name "perl-conf-libconfig") - (version "0.100") + (version "0.101") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/C/CN/CNANGEL/" "Conf-Libconfig-" version ".tar.gz")) (sha256 - (base32 "0qdypqd7mx96bwdjlv13fn6p96bs4w0yv94yv94xa7z5lqkdj4rg")))) + (base32 "11dd3kb0k45gqahnnwz50x3b4b25c5jgykkwgf74rcyr0dsy0n5a")))) (build-system perl-build-system) (native-inputs (list perl-extutils-pkgconfig perl-test-deep perl-test-exception @@ -2007,6 +2079,33 @@ of the style used by the Git version control system.") and writing of @code{.ini}-style configuration files.") (license (package-license perl)))) +(define-public perl-config-tiny + (package + (name "perl-config-tiny") + (version "2.28") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RS/RSAVAGE/Config-Tiny-" + version ".tgz")) + (sha256 + (base32 + "000mw17nb7aj341s0afqimxd53w5y0c4yk61pihqzm191lx89pqj")))) + (build-system perl-build-system) + (native-inputs (list perl-test-pod)) + (home-page "https://metacpan.org/release/Config-Tiny") + (synopsis "Read/Write .ini style files with as little code as possible") + (description + "@code{Config::Tiny} is a Perl class to read and write .ini +style configuration files with as little code as possible, reducing load time +and memory overhead. + +This module is primarily for reading human written files, and anything we write +shouldn't need to have documentation/comments. If you need something with more +power move up to @code{Config::Simple}, @code{Config::General} or one of the +many other @code{Config::*} modules.") + (license license:perl-license))) + (define-public perl-const-fast (package (name "perl-const-fast") @@ -2165,6 +2264,51 @@ CPAN::Meta object are present.") versa.") (license (package-license perl)))) +(define-public perl-critic + (package + (name "perl-critic") + (version "1.140") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-" + version ".tar.gz")) + (sha256 + (base32 + "1nzxpn71mrpp85yxrxlraj52q2skvf9ja887ls11d57h6smg1vmz")))) + (build-system perl-build-system) + (native-inputs (list perl-module-build perl-test-deep)) + (propagated-inputs (list perltidy + perl-exception-class + perl-io-string + perl-ppi + perl-ppix-regexp + perl-b-keywords + perl-config-tiny + perl-padwalker + perl-test-memory-cycle + perl-file-which + perl-list-moreutils + perl-module-pluggable + perl-pod-parser + perl-pod-spell + perl-ppix-quotelike + perl-ppix-utilities + perl-readonly + perl-string-format + perl-task-weaken)) + (home-page "https://metacpan.org/release/Perl-Critic") + (synopsis "Critique Perl source code for best-practices") + (description + "@code{perlcritic} is a Perl source code analyzer. It is the +executable front-end to the @code{Perl::Critic} engine, which attempts to +identify awkward, hard to read, error-prone, or unconventional constructs in +your code. Most of the rules are based on Damian Conway's book \"Perl Best +Practices\". However, @code{perlcritic} is not limited to enforcing PBP, and it +will even support rules that contradict Conway. All rules can easily be +configured or disabled to your liking.") + (license license:perl-license))) + (define-public perl-crypt-cbc (package (name "perl-crypt-cbc") @@ -5064,6 +5208,27 @@ Linux, fsevents on OS X, @code{kqueue} on FreeBSD, and back to a full directory scan if none of these are available.") (license license:perl-license))) +(define-public perl-getopt-argvfile + (package + (name "perl-getopt-argvfile") + (version "1.11") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile-" + version + ".tar.gz")) + (sha256 + (base32 + "08jvhfqcjlsn013x96qa6paif0095x6y60jslp8p3zg67i8sl29p")))) + (build-system perl-build-system) + (home-page "https://metacpan.org/release/Getopt-ArgvFile") + (synopsis "Perl module for reading script options and parameters from files") + (description "This module simply interpolates option file hints in @code{@@ARGV} +by the contents of the pointed files. This enables option reading from files instead +of or additional to the usual reading from the command line.") + (license license:artistic2.0))) + (define-public perl-getopt-long (package (name "perl-getopt-long") @@ -6106,6 +6271,18 @@ expression and a list of abbreviations (built in and given).") (base32 "1qgap0j0ixmif309dvbqca7sy8xha9xgnj9s2lvh8qrczkc92gqi")))) (build-system perl-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'wrap-translit + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/translit") + `("PERL5LIB" ":" prefix + (,(getenv "PERL5LIB") + ,(string-append out "/lib/perl5/site_perl")))))))))) + (inputs (list bash-minimal)) (home-page "https://metacpan.org/release/Lingua-Translit") (synopsis "Transliterate text between writing systems") (description "@code{Lingua::Translit} can be used to convert text from one @@ -6431,6 +6608,30 @@ follows LRU semantics, that is, the last n results, where n is specified as the argument to the CACHESIZE parameter, will be cached.") (license (package-license perl)))) +(define-public perl-memory-usage + (package + (name "perl-memory-usage") + (version "0.201") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DO/DONEILL/Memory-Usage-" + version ".tar.gz")) + (sha256 + (base32 + "0jakrq9yk2njzc5qhbgvp7fi933ir903w3wc3kl4i9s03v9glalg")))) + (build-system perl-build-system) + (native-inputs + (list perl-module-install + perl-test-pod + perl-test-pod-coverage)) + (home-page "https://metacpan.org/release/Memory-Usage") + (synopsis "Tools to determine actual memory usage") + (description + "This module lets you attempt to measure, from your operating system's +perspective, how much memory a process is using at any given time.") + (license license:perl-license))) + (define-public perl-mime-base64 (package (name "perl-mime-base64") @@ -8613,6 +8814,34 @@ the @dfn{Pod} (plain old documentation) markup language that is typically used for writing documentation for Perl and for Perl modules.") (license (package-license perl)))) +(define-public perl-pod-spell + (package + (name "perl-pod-spell") + (version "1.25") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/H/HA/HAARG/Pod-Spell-" version + ".tar.gz")) + (sha256 + (base32 + "18wzpfn39hpw6n8g9pwh964nid8skks79i5jdcm33gf9kf5qx3r0")))) + (build-system perl-build-system) + (native-inputs (list perl-file-sharedir-install)) + (propagated-inputs (list perl-class-tiny perl-file-sharedir + perl-lingua-en-inflect)) + (home-page "https://metacpan.org/release/Pod-Spell") + (synopsis "Formatter for spellchecking Pod") + (description + "@code{Pod::Spell} is a Pod formatter whose output is good +for spellchecking. + +@code{Pod::Spell} is rather like @code{Pod::Text}, except that it doesn't put +much effort into actual formatting, and it suppresses things that look like Perl +symbols or Perl jargon (so that your spellchecking program won't complain about +mystery words like \"@code{$thing}\" or \"@code{Foo::Bar}\" or \"@code{hashref}\").") + (license license:artistic2.0))) + (define-public perl-posix-strftime-compiler (package (name "perl-posix-strftime-compiler") @@ -8661,6 +8890,80 @@ applications.") code.") (license license:perl-license))) +(define-public perl-ppix-regexp + (package + (name "perl-ppix-regexp") + (version "0.085") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-" version + ".tar.gz")) + (sha256 + (base32 + "07fg63ql3f7hv1ys10l8j0p562ndraq9lk66iw9y0f444j4vpw1f")))) + (build-system perl-build-system) + (native-inputs (list perl-module-build)) + (propagated-inputs (list perl-ppi)) + (home-page "https://metacpan.org/release/PPIx-Regexp") + (synopsis "Parse Perl string literals and string-literal-like things") + (description + "The purpose of the @code{PPIx-Regexp} package is to parse +regular expressions in a manner similar to the way the @code{PPI} package parses +Perl. This class forms the root of the parse tree, playing a role similar to +@code{PPI::Document}.") + (license license:perl-license))) + +(define-public perl-ppix-quotelike + (package + (name "perl-ppix-quotelike") + (version "0.023") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-" + version ".tar.gz")) + (sha256 + (base32 + "08ad4d20afvi1c4xzwbfk94lmf6gwlmqkdrpjxzf0lrcklaa6xim")))) + (build-system perl-build-system) + (native-inputs (list perl-module-build)) + (propagated-inputs (list perl-ppi perl-ppix-regexp perl-readonly)) + (home-page "https://metacpan.org/release/PPIx-QuoteLike") + (synopsis "Parse Perl string literals and string-literal-like things") + (description + "@code{PPIX::QuoteLike} parses Perl string literals and things that +are reasonably like string literals. Its real reason for being is to find +interpolated variables for @code{Perl::Critic} policies and similar code.") + (license license:perl-license))) + +(define-public perl-ppix-utilities + (package + (name "perl-ppix-utilities") + (version "1.001000") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/E/EL/ELLIOTJS/PPIx-Utilities-" + version ".tar.gz")) + (sha256 + (base32 + "16yb7dnz8lgq2azs8jxj1wac60kbn16x8y4py04ci8nndww87903")))) + (build-system perl-build-system) + (native-inputs (list perl-module-build perl-test-deep)) + (propagated-inputs (list perl-exception-class perl-ppi perl-readonly-xs + perl-task-weaken)) + (home-page "https://metacpan.org/release/PPIx-Utilities") + (synopsis "Extensions to PPI") + (description + "@code{PPIx::Utilities} is a collection of functions for dealing +with @code{PPI} objects, many of which originated in @code{Perl::Critic}. They +are organized into modules by the kind of @code{PPI} class they relate to, by +replacing the \"@code{PPI}\" at the front of the module name with +\"@code{PPIx::Utilities}\", e.g. functionality related to @code{PPI::Nodes} is +in @code{PPIx::Utilities::Node}.") + (license license:perl-license))) + (define-public perl-probe-perl (package (name "perl-probe-perl") @@ -8729,6 +9032,38 @@ can also be useful as a development and debugging tool for catching updates to variables that should not be changed.") (license (package-license perl)))) +(define-public perl-readonly-xs + (package + (name "perl-readonly-xs") + (version "1.05") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RO/ROODE/Readonly-XS-" version + ".tar.gz")) + (sha256 + (base32 + "03gz7yp194fwah2bc36ww04hgw1qx8p6y68vvnywircrablc9rca")))) + (build-system perl-build-system) + (propagated-inputs (list perl-readonly)) + (home-page "https://metacpan.org/release/Readonly-XS") + (synopsis "Companion module for @code{Readonly.pm}, to speed up read-only +scalar variables") + (description + "The @code{Readonly} module is an effective way to create non-modifiable +variables. However, it's relatively slow. + +The reason it's slow is that is implements the read-only-ness of variables via +tied objects. This mechanism is inherently slow. Perl simply has to do a lot +of work under the hood to make tied variables work. + +This module corrects the speed problem, at least with respect to scalar +variables. When @code{Readonly::XS} is installed, @code{Readonly} uses it to +access the internals of scalar variables. Instead of creating a scalar variable +object and tying it, @code{Readonly} simply flips the @code{SvREADONLY} bit in +the scalar's @code{FLAGS} structure.") + (license license:perl-license))) + (define-public perl-ref-util-xs (package (name "perl-ref-util-xs") @@ -8774,6 +9109,30 @@ codes.") ;; Quad-licensed: Perl Artistic, Perl Artistic 2.0, X11, and BSD. (license (list (package-license perl) license:x11 license:bsd-3)))) +(define-public perl-regexp-grammars + (package + (name "perl-regexp-grammars") + (version "1.058") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-" + version ".tar.gz")) + (sha256 + (base32 + "14hwskrmy6ma0k9nr1amrf7wpb1f6jsx7x29kgizlx0n4n7db27a")))) + (build-system perl-build-system) + (native-inputs (list perl-module-build perl-test-pod perl-moose)) + (home-page "https://metacpan.org/release/Regexp-Grammars") + (synopsis "Complete recursive descent parser on Perl's regex engine") + (description + "The @code{Regexp::Grammars} module adds a small number of new +regex constructs that can be used within Perl 5.10 patterns to implement +complete recursive-descent parsing. It allows you to go beyond matching +complex, nested and recursive structures, and allows you to parse and extract +hierarchical data from it.") + (license license:perl-license))) + (define-public perl-regexp-util (package (name "perl-regexp-util") @@ -9307,6 +9666,30 @@ expanding standard C/Unix-style backslash escapes like \n and \t, wrapping and removing double-quotes, and truncating to fit within a desired length.") (license (package-license perl)))) +(define-public perl-string-format + (package + (name "perl-string-format") + (version "1.18") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/S/SR/SREZIC/String-Format-" + version ".tar.gz")) + (sha256 + (base32 + "0y77frxzjifd4sw0j19cc346ysas1mya84rdxaz279lyin7plhcy")))) + (build-system perl-build-system) + (home-page "https://metacpan.org/release/String-Format") + (synopsis "Format sprintf-like strings with arbitrary format definitions") + (description + "@code{String::Format} lets you define arbitrary printf-like format +sequences to be expanded. This module would be most useful in configuration +files and reporting tools, where the results of a query need to be formatted in +a particular way. It was inspired by +@url{http://www.mutt.org/doc/manual/manual.html#index-format,mutt's +@code{index_format} and related directives}.") + (license license:gpl2))) + (define-public perl-string-formatter (package (name "perl-string-formatter") @@ -9638,6 +10021,30 @@ mechanism. The module augments the standard Perl syntax with two new statements: @code{switch} and @code{case}.") (license (package-license perl)))) +(define-public perl-syntax-keyword-try + (package + (name "perl-syntax-keyword-try") + (version "0.28") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PEVANS/Syntax-Keyword-Try-" + version ".tar.gz")) + (sha256 + (base32 + "1j02z9w0p9a77maf62cy5324vmc01hks0bfm5qjidc50hafmzbfc")))) + (build-system perl-build-system) + (native-inputs (list perl-module-build)) + (inputs (list perl-xs-parse-keyword)) + (home-page "https://metacpan.org/pod/Syntax::Keyword::Try") + (synopsis "Try/catch/finally syntax for perl") + (description + "This module provides a syntax plugin that implements +exception-handling semantics in a form familiar to users of other +languages, being built on a block labeled with the @code{try} keyword, +followed by at least one of a @code{catch} or @code{finally} block.") + (license (package-license perl)))) + (define-public perl-sys-cpu (package (name "perl-sys-cpu") @@ -10113,6 +10520,27 @@ used to justify strings to various alignment styles.") text sequences from strings.") (license (package-license perl)))) +(define-public perl-text-charwidth + (package + (name "perl-text-charwidth") + (version "0.04") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/K/KU/KUBOTA/Text-CharWidth-" + version ".tar.gz")) + (sha256 + (base32 + "1y040wiqx78pnr0wxbjhpzjxm2a9qiqq479gzn4qwcyrzpsdbpmb")))) + (build-system perl-build-system) + (home-page "https://metacpan.org/dist/Text-CharWidth") + (synopsis "Get number of occupied columns of a string on terminal") + (description + "With this module, you can calculate terminal character +widths that vary by locale. This module supplies features similar to +wcwidth(3) and wcswidth(3) in C language.") + (license (package-license perl)))) + (define-public perl-text-csv (package (name "perl-text-csv") @@ -11201,6 +11629,28 @@ supersede Perl's builtin @code{T_PTROBJ} with something that is extensible neither visible nor modifiable from Perl space).") (license (package-license perl)))) +(define-public perl-xs-parse-keyword + (package + (name "perl-xs-parse-keyword") + (version "0.06") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Keyword-" + version ".tar.gz")) + (sha256 + (base32 + "0nnr8akkxb2h2y3d5r51pr84vvxkq89ynmi9azkbnn79jmbcbgvq")))) + (build-system perl-build-system) + (native-inputs (list perl-module-build perl-test-simple)) + (home-page "https://metacpan.org/dist/XS-Parse-Keyword") + (synopsis "XS functions to assist in parsing keyword syntax") + (description + "This module provides some XS functions to assist in writing +syntax modules that provide new perl-visible syntax, primarily for authors of +keyword plugins using the @code{PL_keyword_plugin} hook mechanism.") + (license (package-license perl)))) + (define-public perl-yaml (package (name "perl-yaml") @@ -11640,6 +12090,28 @@ method calls. Furthermore, a partial sequence can be created and held, and used as the head of many different sequences.") (license license:perl-license))) +(define-public perl-file-fcntllock + (package + (name "perl-file-fcntllock") + (version "0.22") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/J/JT/JTT/File-FcntlLock-" version + ".tar.gz")) + (sha256 + (base32 + "1pxwknq4lw0wqpkh8pf18qsjf9g503vx6a5184vvffprzwpbp6ls")))) + (build-system perl-build-system) + (home-page "https://metacpan.org/release/File-FcntlLock") + (synopsis "File locking with fcntl(2)") + (description "File locking in Perl is usually done using the @code{flock} +function. Unfortunately, this only allows locks on whole files and is often +implemented in terms of the @code{flock(2)} system function which has some +shortcomings (especially concerning locks on remotely mounted file systems) +and slightly different behaviour than @code{fcntl(2)}.") + (license license:perl-license))) + (define-public perl-font-ttf (package (name "perl-font-ttf") @@ -11832,6 +12304,34 @@ called \"American Soundex\" used for US census data, and current maintained by the National Archives and Records Administration (NARA).") (license license:perl-license))) +(define-public perl-text-wrapi18n + (package + (name "perl-text-wrapi18n") + (version "0.06") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/K/KU/KUBOTA/Text-WrapI18N-" + version ".tar.gz")) + (sha256 + (base32 + "12548qc99ms12yp5j26076p0zazjfv1b618h5k8r5iy2y0brmljb")))) + (build-system perl-build-system) + (inputs (list perl-text-charwidth)) + (home-page "https://metacpan.org/pod/Text::WrapI18N") + (synopsis "Line wrapping for multibyte, fullwidth, combining +characters and so on") + (description + "This module intends to be a better Text::Wrap module. This +module is needed to support multibyte character encodings such as UTF-8, +EUC-JP, EUC-KR, GB2312, and Big5. This module also supports characters with +irregular widths, such as combining characters (which occupy zero columns on +terminal, like diacritical marks in UTF-8) and fullwidth characters (which +occupy two columns on terminal, like most of east Asian characters). Also, +minimal handling of languages which doesn't use whitespaces between +words (like Chinese and Japanese) is supported.") + (license (package-license perl)))) + (define-public perl-regexp-pattern (package (name "perl-regexp-pattern") |