From unknown Fri Sep 19 21:46:09 2025 X-Loop: help-debbugs@gnu.org Subject: bug#26776: [PATCH] gnu: Add Parcimonie. Resent-From: Petter Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 04 May 2017 11:53:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 26776 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 26776@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.149389876014820 (code B ref -1); Thu, 04 May 2017 11:53:01 +0000 Received: (at submit) by debbugs.gnu.org; 4 May 2017 11:52:40 +0000 Received: from localhost ([127.0.0.1]:53658 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d6FJ7-0003qm-UC for submit@debbugs.gnu.org; Thu, 04 May 2017 07:52:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:58303) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d6FIy-0003qS-QO for submit@debbugs.gnu.org; Thu, 04 May 2017 07:52:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d6FIl-0002bL-Ff for submit@debbugs.gnu.org; Thu, 04 May 2017 07:52:15 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:32867) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d6FIl-0002b1-97 for submit@debbugs.gnu.org; Thu, 04 May 2017 07:52:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49197) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d6FIc-0002n6-I8 for guix-patches@gnu.org; Thu, 04 May 2017 07:52:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d6FIU-0002VV-Lg for guix-patches@gnu.org; Thu, 04 May 2017 07:51:58 -0400 Received: from mx.kolabnow.com ([95.128.36.1]:60450 helo=mx-out02.mykolab.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d6FIT-0002UR-Nb for guix-patches@gnu.org; Thu, 04 May 2017 07:51:50 -0400 X-Virus-Scanned: amavisd-new at kolabnow.com Received: from mx05.mykolab.com (mx05.mykolab.com [10.20.7.161]) by mx-out02.mykolab.com (Postfix) with ESMTPS id 2B83761713 for ; Thu, 4 May 2017 13:51:39 +0200 (CEST) Date: Thu, 4 May 2017 13:51:28 +0200 From: Petter Message-ID: <20170504135128.4747771c@mykolab.ch> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/hk9L3hgiK1D3Hwcy9hEIz2x" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.9 (/) --MP_/hk9L3hgiK1D3Hwcy9hEIz2x Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Guix, So I'm looking to improve my key management skills and was reading this article, https://riseup.net/en/security/message-security/openpgp/best-practices I had not heard of Parcimonie before, but I immediately liked the idea of it. And since Parcimonie wasn't packaged for Guix I of course figured I should package it real quick. After all, a program that just refreshes your keyring every now and then shouldn't be too complex and need a lot of dependencies, maybe a few, right? Well, it needed a lot. And the dependencies needed a lot of dependencies. And also some of the dependencies dependencies required many dependencies. Great! I naively jumped into this, and at any one point had no idea if I was packaging the last module or not (I'm sure you're familiar with this). Think I got the last one in the end though. But it's taken waaay more time than I anticipated. Also with 56 packages it becomes difficult to make sure each of them is on standard, so I assume some are below standard. It would be particularly interesting if someone with some Parcimonie experience could try it, and report if there's any missing features etc.. I haven't used it before and have just started it a few times to see that it can at least start. Back to the article for me :) Best, Petter --MP_/hk9L3hgiK1D3Hwcy9hEIz2x Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-gnu-Add-Parcimonie.patch =46rom fdf2b751d19a1c9397535cb5054557b1fd711d23 Mon Sep 17 00:00:00 2001 From: Petter Date: Sun, 30 Apr 2017 11:40:06 +0200 Subject: [PATCH] gnu: Add Parcimonie. * gnu/packages/gnupg.scm: New variables. * gnu/packages/perl.scm: Same. * gnu/packages/web.scm: Same. * gnu/packages/xml.scm: Same. --- gnu/packages/gnupg.scm | 125 +++++ gnu/packages/perl.scm | 1290 ++++++++++++++++++++++++++++++++++++++++++++= ++-- gnu/packages/web.scm | 279 ++++++++++- gnu/packages/xml.scm | 160 ++++++ 4 files changed, 1800 insertions(+), 54 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 3edb15770..df7d135a5 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -12,6 +12,7 @@ ;;; Copyright =C2=A9 2016 Mike Gerwitz ;;; Copyright =C2=A9 2016 Troy Sankey ;;; Copyright =C2=A9 2017 Leo Famulari +;;; Copyright =C2=A9 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,10 +50,15 @@ #:use-module (gnu packages security-token) #:use-module (gnu packages swig) #:use-module (gnu packages tls) + #:use-module (gnu packages base) + #:use-module (gnu packages xml) + #:use-module (gnu packages web) + #:use-module (gnu packages tor) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system perl) #:use-module (guix build-system python)) =20 (define-public libgpg-error @@ -745,3 +751,122 @@ qualities. To reconstruct a secret key, you re-enter= those bytes (whether by hand, OCR, QR code, or the like) and paperkey can use them to transform your existing public key into a secret key.") (license license:gpl2+))) + +(define-public parcimonie + (package + (name "parcimonie") + (version "0.10.2") + (source (origin + (method url-fetch) + (uri (string-append "https://gaffer.ptitcanardnoir.org/" + "intrigeri/files/parcimonie/App-Parcimon= ie-" + version ".tar.gz")) + (sha256 + (base32 + "1gni9wsjgyqh99pc087n33b06lk0kmxqb98y16a9bcrs4izzrsg0")))) + (build-system perl-build-system) + (inputs + `(("glib" ,glib) + ("gtk+" ,gtk+) + ("gnupg" ,gnupg) + ("pango" ,pango) + ("perl-config-general" ,perl-config-general) + ("perl-clone" ,perl-clone) + ("perl-data" ,perl-data) + ("perl-exporter-tiny" ,perl-exporter-tiny) + ("perl-file-homedir" ,perl-file-homedir) + ("perl-file-sharedir" ,perl-file-sharedir) + ("perl-file-which" ,perl-file-which) + ("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive) + ("perl-gnupg-interface" ,perl-gnupg-interface) + ("perl-ipc-system-simple" ,perl-ipc-system-simple) + ("perl-list-moreutils" ,perl-list-moreutils) + ("perl-libintl-perl" ,perl-libintl-perl) ; Locale::TextDomain + ("perl-lwp-online" ,perl-lwp-online) + ("perl-module-build" ,perl-module-build) + ("perl-module-pluggable-object" ,perl-module-pluggable) + ("perl-moo" ,perl-moo) + ("perl-moox-handlesvia" ,perl-moox-handlesvia) + ("perl-moox-late" ,perl-moox-late) + ("perl-moox-options" ,perl-moox-options) + ("perl-namespace-clean" ,perl-namespace-clean) + ("perl-net-dbus" ,perl-net-dbus) + ("perl-net-dbus-glib" ,perl-net-dbus-glib) + ("perl-path-tiny" ,perl-path-tiny) + ("perl-test-most" ,perl-test-most) + ("perl-test-trap" ,perl-test-trap) + ("perl-time-duration" ,perl-time-duration) + ("perl-time-duration-parse" ,perl-time-duration-parse) + ("perl-try-tiny" ,perl-try-tiny) + ("perl-type-tiny" ,perl-type-tiny) + ("perl-types-path-tiny" ,perl-types-path-tiny) + ("perl-unicode-linebreak" ,perl-unicode-linebreak) + ("perl-xml-parser" ,perl-xml-parser) + ("perl-xml-twig" ,perl-xml-twig) + ("torsocks" ,torsocks))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* + (string-append + (assoc-ref outputs "out") + "/lib/perl5/site_perl/5.24.0/" + "App/Parcimonie/GnuPG/Interface.pm") + (("gpg2") "gpg")) + =20 + (wrap-program (string-append + (assoc-ref outputs "out") + "/bin/parcimonie") + `("PERL5LIB" ":" + prefix (, + (string-append + (assoc-ref outputs "out") + "/lib/perl5/site_perl/5.24.0/:" + (getenv "PERL5LIB")))) + `("PATH" ":" + prefix (,(string-append + (assoc-ref inputs "torsocks") + "/bin/"))))))) + #:tests? #f)) ; gpg-connect-agent tries to create /homeless-shelter/ + (home-page "https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimoni= e/") + (synopsis "Incrementally refreshes a GnuPG keyring") + (description + "Parcimonie incrementaly refreshes a GnuPG keyring in a way that: +@enumerate +@item makes it hard to correlate her keyring content to an individual; +@item makes it hard to locate an individual based on an identifying subset= of her keyring content. +@end enumerate +Parcimonie is a daemon that fetches one key at a time using the Tor networ= k, waits a bit, changes the Tor circuit being used, and starts over.") + (license license:gpl1+))) + +(define-public perl-gnupg-interface + (package + (name "perl-gnupg-interface") + (version "0.52") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AL/ALEXMV/" + "GnuPG-Interface-" version ".tar.gz")) + (sha256 + (base32 + "0dgx8yhdsmhkazcrz14n4flrk1afv7azgl003hl4arxvi1d9yyi4")))) + (build-system perl-build-system) + (inputs + `(("which" ,which) + ("gpg" ,gnupg) + ("perl-data" ,perl-data) + ("perl-exporter-tiny" ,perl-exporter-tiny) + ("perl-list-moreutils" ,perl-list-moreutils) + ("perl-moo" ,perl-moo) + ("perl-moox-handlesvia" ,perl-moox-handlesvia) + ("perl-moox-late" ,perl-moox-late) + ("perl-type-tiny" ,perl-type-tiny))) + (arguments + `(#:tests? #f)) ; gpg: signing failed: No pinentry + (synopsis "Lorem Ipsum") + (description "Lorem Ipsum") + (home-page (string-append "http://search.cpan.org/~gward/" + "Getopt-Tabular-" version)) + (license license:perl-license))) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 3eb7815f2..76a5b7982 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -16,6 +16,7 @@ ;;; Copyright =C2=A9 2017 Marius Bakke ;;; Copyright =C2=A9 2017 humanitiesNerd ;;; Copyright =C2=A9 2017 Tobias Geerinckx-Rice +;;; Copyright =C2=A9 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,14 +34,18 @@ ;;; along with GNU Guix. If not, see . =20 (define-module (gnu packages perl) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix licenses) #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) + #:use-module (gnu packages glib) #:use-module (gnu packages perl-web) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xml) ; "expat" imported from licenses and xml + #:use-module (gnu packages web)) =20 ;;; ;;; Please: Try to add new module packages in alphabetic order. @@ -256,6 +261,27 @@ variable ANY_MOOSE to be Moose or Mouse.") configuration files and parsing command line arguments.") (license (package-license perl)))) =20 +(define-public perl-archive-extract +(package + (name "perl-archive-extract") + (version "0.80") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-" + version + ".tar.gz")) + (sha256 + (base32 + "1x15j1q6w6z8hqyqgap0lz4qbq2174wfhksy1fdd653ccbaw5jr5")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Archive-Extract") + (synopsis "Generic archive extracting mechanism") + (description "It allows you to extract any archive file of the type .tar= , .tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma= without having to worry how it does so, or use different interfaces for ea= ch type by using either perl modules, or commandline tools on your system.") + (license (package-license perl)))) + (define-public perl-archive-zip (package (name "perl-archive-zip") @@ -357,6 +383,51 @@ autovivification for some constructs and optionally th= rows a warning or an error when it would have happened.") (license (package-license perl)))) =20 +(define-public perl-b-keywords +(package + (name "perl-b-keywords") + (version "1.15") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-" + version + ".tar.gz")) + (sha256 + (base32 + "1nhdplmd0y69lnwyajg3anhk6pm13nm6qzm05nzpz8zl7j7fzlk5")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/B-Keywords") + (synopsis + "Lists of reserved barewords and symbol names") + (description "@code{B::Keywords} supplies several arrays of exportable k= eywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols, @@F= unctions, @@Barewords, @@TieIOMethods, @@UNIVERSALMethods and @@ExporterSym= bols}.") + (license license:gpl2))) + +(define-public perl-browser-open +(package + (name "perl-browser-open") + (version "0.04") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/C/CF/CFRANKS/Browser-Open-" + version + ".tar.gz")) + (sha256 + (base32 + "0rv80n5ihy9vnrzsc3l7wlk8880cwabiljrydrdnxq1gg0lk3sxc")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Browser-Open") + (synopsis "Open a browser in a given URL") + (description "The functions optionaly exported by this module allows you= to open URLs in the user browser. + +A set of known commands per OS-name is tested for presence, and the first = one found is executed. With an optional parameter, all known commands are = checked.") + (license (package-license perl)))) + (define-public perl-base (package (name "perl-base") @@ -708,6 +779,30 @@ cases where the clan modules are not classes derived f= rom each other, and thus the Carp.pm module doesn't help.") (license (package-license perl)))) =20 +(define-public perl-carp-always +(package + (name "perl-carp-always") + (version "0.13") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/F/FE/FERREIRA/Carp-Always-" + version + ".tar.gz")) + (sha256 + (base32 + "0i2rifkr7ybfcdsqana52487z7vxp2l5qdra0f6ik0ddhn6rzii1")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-base" ,perl-test-base))) + (home-page + "http://search.cpan.org/dist/Carp-Always") + (synopsis + "Warns and dies noisily with stack backtraces") + (description "This module is meant as a debugging aid. It can be used to= make a script complain loudly with stack backtraces when warn()ing or die(= )ing.") + (license (package-license perl)))) + (define-public perl-cddb-get (package (name "perl-cddb-get") @@ -727,6 +822,30 @@ the Carp.pm module doesn't help.") ;; Either GPLv2 or the "Artistic" license. (license (list gpl2 artistic2.0)))) =20 +(define-public perl-clipboard +(package + (name "perl-clipboard") + (version "0.13") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/K/KI/KING/Clipboard-" + version + ".tar.gz")) + (sha256 + (base32 + "12pc8q04nrqp2mvr74nrrkw4gkv7g4a1gq6smd8fhjs8naf1rgzf")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Clipboard") + (synopsis + "Cliboard - Copy and Paste with any OS") + (description "Who doesn't remember the first time they learned to copy a= nd paste, and generated an exponentially growing text document? Yes, that's= right, clipboards are magical. + +With Clipboard.pm, this magic is now trivial to access, in a cross-platfor= m-consistent API, from your Perl code.") + (license (package-license perl)))) + (define-public perl-class-accessor (package (name "perl-class-accessor") @@ -1069,6 +1188,45 @@ is run in place of the original method, with a hook = to easily call that original method.") (license (package-license perl)))) =20 +(define-public perl-class-refresh +(package + (name "perl-class-refresh") + (version "0.07") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DO/DOY/Class-Refresh-" + version + ".tar.gz")) + (sha256 + (base32 + "1cxyshgxpk98icwws2jpgix6m53qsn43c8izxqm5mcybam9h7c73")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-fatal" ,perl-test-fatal) + ("perl-test-requires" ,perl-test-requires))) + (inputs + `(("perl-class-load" ,perl-class-load) + ("perl-class-unload" ,perl-class-unload) + ("perl-devel-overrideglobalrequire" + ,perl-devel-overrideglobalrequire) + ("perl-moose" ,perl-moose) + ("perl-try-tiny" ,perl-try-tiny))) + (home-page + "http://search.cpan.org/dist/Class-Refresh") + (synopsis "Refresh your classes during runtime") + (description "During development, it is fairly common to cycle between +writing code and testing that code. Generally the testing happens within = the +test suite, but frequently it is more convenient to test things by hand wh= en +tracking down a bug, or when doing some exploratory coding. In many +situations, however, this becomes inconvenient - for instance, in a REPL, = or +in a stateful web application, restarting from the beginning after every c= ode +change can get pretty tedious. This module allows you to reload your +application classes on the fly, so that the code/test cycle becomes a lot +easier.") + (license (package-license perl)))) + (define-public perl-class-singleton (package (name "perl-class-singleton") @@ -1173,6 +1331,30 @@ objects.") "Clone-" version)) (license (package-license perl)))) =20 +(define-public perl-clone-pp + (package + (name "perl-clone-pp") + (version "1.07") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-" + version + ".tar.gz")) + (sha256 + (base32 + "15dkhqvih6rx9dnngfwwljcm9s8afb0nbyl2vdvhd8frnw4y31dz")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Clone-PP") + (synopsis "Recursively copy Perl datatypes") + (description "This module provides a general-purpose clone function to m= ake +deep copies of Perl data structures. It calls itself recursively to copy +nested hash, array, scalar and reference types, including tied variables a= nd +objects.") + (license (package-license perl)))) + (define-public perl-common-sense (package (name "perl-common-sense") @@ -1282,6 +1464,36 @@ options.") and writing of @code{.ini}-style configuration files.") (license (package-license perl)))) =20 +(define-public perl-config-ini-reader-ordered +(package + (name "perl-config-ini-reader-ordered") + (version "0.020") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RJ/RJBS/Config-INI-Reader-Ordered= -" + version + ".tar.gz")) + (sha256 + (base32 + "07gpp6q3l4i84vqx49f5fn626dwrxy07ld7j2zgaxrj8za54b12r")))) + (build-system perl-build-system) + (inputs + `(("perl-config-ini" ,perl-config-ini) + ("perl-mixin-linewise" ,perl-mixin-linewise) + ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict) + ("perl-sub-exporter" ,perl-sub-exporter))) + (home-page + "http://search.cpan.org/dist/Config-INI-Reader-Ordered") + (synopsis + ".ini-file parser that returns sections in order") + (description "@code{Config::INI::Reader::Ordered} is a subclass of +@code{Config::INI::Reader} which preserves section order. See +@code{Config::INI::Reader} for all documentation; the only difference is as +presented in the \"SYNOPSIS\".") + (license (package-license perl)))) + (define-public perl-context-preserve (package (name "perl-context-preserve") @@ -1305,6 +1517,28 @@ the context the subroutine would have seen if it wer= e the last statement in the caller.") (license (package-license perl)))) =20 +(define-public perl-cpan-changes +(package + (name "perl-cpan-changes") + (version "0.400002") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/H/HA/HAARG/CPAN-Changes-" + version + ".tar.gz")) + (sha256 + (base32 + "13dy78amkhwg278sv5im0ylyskhxpfivyl2aissqqih71nlxxvh1")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/CPAN-Changes") + (synopsis "Read and write Changes files") + (description "This module allows CPAN authors to write automated tests to +ensure their changelogs match the specification.") + (license (package-license perl)))) + (define-public perl-cpan-meta-check (package (name "perl-cpan-meta-check") @@ -1582,6 +1816,98 @@ on one page. This results in wanting to page throug= h various pages of data. The maths behind this is unfortunately fiddly, hence this module.") (license (package-license perl)))) =20 +(define-public perl-data + (package + (name "perl-data") + (version "0.002009") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MA/MATTP/" + "Data-Perl-" version ".tar.gz")) + (sha256 + (base32 + "12vgqdjbfqf2qfg21x22wg88xnwxfbw2ki3qzcb3nb0chwjj4axn")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-deep" ,perl-test-deep) + ("perl-test-output" ,perl-test-output) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-class-method-modifiers" ,perl-class-method-modifiers) + ("perl-list-moreutils" ,perl-list-moreutils) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-role-tiny" ,perl-role-tiny) + ("perl-strictures" ,perl-strictures))) + (home-page "http://search.cpan.org/dist/Data-Perl") + (synopsis "Base classes wrapping fundamental Perl data types") + (description "Collection of classes that wrap fundamental data types t= hat +exist in Perl. These classes and methods as they exist today are an attem= pt +to mirror functionality provided by Moose's Native Traits. One important +thing to note is all classes currently do no validation on constructor +input.") + (license (package-license perl)))) + +(define-public perl-data-printer + (package + (name "perl-data-printer") + (version "0.39") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GA/GARU/Data-Printer-" + version + ".tar.gz")) + (sha256 + (base32 + "16b449vargvk39f7m4v23lhrzlk2500x2mcp0njhxx2y78s4i616")))) + (build-system perl-build-system) + (inputs + `(("perl-clone-pp" ,perl-clone-pp) + ("perl-file-homedir" ,perl-file-homedir) + ("perl-package-stash" ,perl-package-stash) + ("perl-sort-naturally" ,perl-sort-naturally))) + (home-page + "http://search.cpan.org/dist/Data-Printer") + (synopsis + "Colored pretty-print of Perl data structures and objects") + (description "Display Perl variables and objects on screen, properly +formatted (to be inspected by a human).") + (license (package-license perl)))) + +(define-public perl-data-record + (package + (name "perl-data-record") + (version "0.002") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/O/OV/OVID/" + "Data-Record-" version ".tar.gz")) + (sha256 + (base32 + "1gwyhjwg4lrnfsn8wb6r8msb4yh0y4wca4mz3z120xbnl9nycshx")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-exception" ,perl-test-exception))) + (inputs + `(("perl-module-build" ,perl-module-build) + ("perl-sub-uplevel" ,perl-sub-uplevel))) + (home-page "http://search.cpan.org/dist/Data-Record") + (synopsis "\"split\" on steroids") + (description "Sometimes we need data split into records and a simple s= plit +on the input record separator @code{$/} or some other value fails because = the +values we're splitting on may allowed in other parts of the data. Perhaps +they're quoted. Perhaps they're embedded in other data which should not be +split up. + +This module allows you to specify what you wish to split the data on, but = also +speficy an \"unless\" regular expression. If the text in question matches= the +\"unless\" regex, it will not be split there. This allows us to do things= like +split on newlines unless newlines are embedded in quotes.") + (license (package-license perl)))) + (define-public perl-data-stag (package (name "perl-data-stag") @@ -2262,6 +2588,33 @@ you can tell it to compile a C source file with opti= onal linker flags.") equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.") (license (package-license perl)))) =20 +(define-public perl-devel-hide +(package + (name "perl-devel-hide") + (version "0.0009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/F/FE/FERREIRA/Devel-Hide-" + version + ".tar.gz")) + (sha256 + (base32 + "1phnzbw58v6551nhv6sg86m72nx9w5j4msh1hg4jvkakkq5w9pki")))) + (build-system perl-build-system) + (inputs + `(("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page + "http://search.cpan.org/dist/Devel-Hide") + (synopsis + "Forces the unavailability of specified Perl modules (for testing)") + (description "Given a list of Perl modules/filenames, this module makes +require and use statements fail (no matter the specified files/modules are +installed or not).") + (license (package-license perl)))) + (define-public perl-devel-lexalias (package (name "perl-devel-lexalias") @@ -2309,6 +2662,30 @@ operators for a given class (or object), including w= here in the inheritance hierarchy the overloads are declared and where the code implementing it is= .") (license (package-license perl)))) =20 +(define-public perl-devel-overrideglobalrequire + (package + (name "perl-devel-overrideglobalrequire") + (version "0.001") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DA/DAGOLDEN/Devel-OverrideGlobalR= equire-" + version + ".tar.gz")) + (sha256 + (base32 + "1yayg0838b58dqg8acahhw885s0yvchjyf2fm7s2ladfwcnqk487")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Devel-OverrideGlobalRequire") + (synopsis + "Override @code{CORE::GLOBAL::require} safely") + (description "This module overrides @code{CORE::GLOBAL::require} with a = code +reference in a way that plays nice with any existing overloading and ensur= es +the right calling package is in scope.") + (license (package-license perl)))) + (define-public perl-devel-partialdump (package (name "perl-devel-partialdump") @@ -2566,7 +2943,7 @@ also known as JIS 2000.") part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLU= S\", \"BIG5EXT\", \"CCCII\", \"EUC-TW\", \"CNS11643-*\", \"GB18030\", and \"UNISYS\".") - (license expat))) + (license license:expat))) =20 (define-public perl-env-path (package @@ -2868,6 +3245,41 @@ It is really just boilerplate code that you would ha= ve written yourself.") changes made to any file.") (license artistic2.0))) =20 +(define-public perl-file-configdir + (package + (name "perl-file-configdir") + (version "0.017") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/" + "File-ConfigDir-" version ".tar.gz")) + (sha256 + (base32 + "0y3nx93r4m7fl07zzz1ql7jm88mskx6pnd54lrrb7pwfmd8nwbx7")))) + (build-system perl-build-system) + (inputs + `(("perl-file-homedir" ,perl-file-homedir) + ("perl-list-moreutils" ,perl-list-moreutils))) + (home-page "http://search.cpan.org/dist/File-ConfigDir") + (synopsis "Get directories of configuration files") + (description "This module is a helper for installing, reading and find= ing +configuration file locations. It's intended to work in every supported Pe= rl5 +environment and will always try to Do The Right Thing(tm). + +@code{File::ConfigDir} is a module to help out when perl modules (especial= ly +applications) need to read and store configuration files from more than one +location. Writing user configuration is easy thanks to @code{File::HomeDir= }, +but what when the system administrator needs to place some global +configuration or there will be system related configuration (in /etc on +UNIX(tm) or $ENV@{windir@} on Windows(tm)) and some network configuration = in nfs +mapped /etc/p5-app or $ENV@{ALLUSERSPROFILE@} . \"\\Application Data\\p5-a= pp\", +respectively. + +@code{File::ConfigDir} has no \"do what I mean\" mode - it's entirely up to +the user to pick the right directory for each particular application.") + (license (package-license perl)))) + (define-public perl-file-copy-recursive (package (name "perl-file-copy-recursive") @@ -3285,7 +3697,7 @@ single-letter approach, is provided but not enabled b= y default.") (define-public perl-getopt-long-descriptive (package (name "perl-getopt-long-descriptive") - (version "0.098") + (version "0.100") (source (origin (method url-fetch) @@ -3293,10 +3705,11 @@ single-letter approach, is provided but not enabled= by default.") "Getopt-Long-Descriptive-" version ".tar.gz")) (sha256 (base32 - "08lphvqshcajvvd6z4rvcda6rx5kz8pysrsip4nfv2mbks95p9ma")))) + "1dpz5nhg5glmrpq46nkc90dg19cfqfjspqwhfvihsqyi229yfl8l")))) (build-system perl-build-system) (native-inputs - `(("perl-test-fatal" ,perl-test-fatal) + `(("perl-cpan-meta-check" ,perl-cpan-meta-check) + ("perl-test-fatal" ,perl-test-fatal) ("perl-test-warnings" ,perl-test-warnings))) (propagated-inputs `(("perl-params-validate" ,perl-params-validate) @@ -3373,6 +3786,37 @@ objects, which execute a given code block when destr= oyed, and scoped guards, which are tied to the scope exit.") (license (package-license perl)))) =20 +(define-public perl-hash-fieldhash + (package + (name "perl-hash-fieldhash") + (version "0.15") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GF/GFUJI/Hash-FieldHash-" + version + ".tar.gz")) + (sha256 + (base32 + "1wg8nzczfxif55j2nbymbhyd25pjy7dqs4bvd6jrcds3ll3mflaw")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-leaktrace" ,perl-test-leaktrace))) + (home-page + "http://search.cpan.org/dist/Hash-FieldHash") + (synopsis + "Lightweight field hash for inside-out objects") + (description "@code{Hash::FieldHash} provides the field hash mechanism w= hich +supports the inside-out technique. + +You may know @code{Hash::Util::FieldHash}. It's a very useful module, but = too +complex to understand the functionality and only available in +5.10. @code{H::U::F::Compat} is available for pre-5.10, but it is too slow= to +use.") + (license (package-license perl)))) + (define-public perl-hash-merge (package (name "perl-hash-merge") @@ -3505,29 +3949,83 @@ easier to develop interactive applications: is_inte= ractive(), interactive(), and busy().") (license (package-license perl)))) =20 -(define-public perl-io-string +(define-public perl-io-pager (package - (name "perl-io-string") - (version "1.08") + (name "perl-io-pager") + (version "0.37") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/" - "IO-String-" version ".tar.gz")) + (uri (string-append + "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-" + version + ".tgz")) (sha256 (base32 - "18755m410yl70s17rgq3m0hyxl8r5mr47vsq1rw7141d8kc4lgra")))) + "0xmqyyvm06d26l2pyh874343b1hjmimdx1ff2r66f1h34yv759fg")))) (build-system perl-build-system) - (home-page "http://search.cpan.org/~gaas/IO-String-1.08/") - (synopsis "Emulate file interface for in-core strings") - (description "IO::String is an IO::File (and IO::Handle) compatible cl= ass -that reads or writes data from in-core strings.") + (inputs + `(("perl-file-which" ,perl-file-which))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-pager + (lambda* (#:key inputs #:allow-other-keys) + (setenv "PAGER" "cat")))))) + (home-page + "http://search.cpan.org/dist/IO-Pager") + (synopsis + "Select a pager and pipe text to it if destination is a TTY") + (description "@code{IO::Pager} can be used to locate an available page= r and +set the PAGER environment variable. It is also a factory for creating I/O +objects such as @code{IO::Pager::Buffered} and @code{IO::Pager::Unbuffered= }.") (license (package-license perl)))) =20 (define-public perl-io-stringy (package (name "perl-io-stringy") - (version "2.110") + (version "2.111") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DS/DSKOLL/" + "IO-Stringy-" version ".tar.gz")) + (sha256 + (base32 + "0c437zvzpqi8f0h3nmblwdi2bvsb92b7g30fndr7my9qnky35izw")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/IO-stringy") + (synopsis "Write a file which is updated atomically") + (description "This toolkit primarily provides modules for performing b= oth +traditional and object-oriented i/o) on things *other* than normal +filehandles; in particular, @code{IO::Scalar}, @code{IO::ScalarArray}, and +@code{IO::Lines}.") + (license (package-license perl)))) + +(define-public perl-io-string + (package + (name "perl-io-string") + (version "1.08") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/" + "IO-String-" version ".tar.gz")) + (sha256 + (base32 + "18755m410yl70s17rgq3m0hyxl8r5mr47vsq1rw7141d8kc4lgra")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/~gaas/IO-String-1.08/") + (synopsis "Emulate file interface for in-core strings") + (description "IO::String is an IO::File (and IO::Handle) compatible cl= ass +that reads or writes data from in-core strings.") + (license (package-license perl)))) + +(define-public perl-io-stringy + (package + (name "perl-io-stringy") + (version "2.110") (source (origin (method url-fetch) @@ -3559,7 +4057,7 @@ filehandles; in particular, IO::Scalar, IO::ScalarArr= ay, and IO::Lines.") (home-page "http://search.cpan.org/~toddr/IO-Tty/") (synopsis "Perl interface to pseudo ttys") (description - "This package provides the 'IO::Pty' and 'IO::Tty' Perl interfaces to + "This package provides the @code{IO::Pty} and @code{IO::Tty} Perl int= erfaces to pseudo ttys.") (license (package-license perl)))) =20 @@ -3778,6 +4276,28 @@ either uses the first module it finds or throws an e= rror.") versa.") (license (package-license perl)))) =20 +(define-public perl-libintl-perl + (package + (name "perl-libintl-perl") + (version "1.26") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GU/GUIDO/" + "libintl-perl-" version ".tar.gz")) + (sha256 + (base32 + "0l1y0pw8k4zy703kwbrhjmmjlc2x96camdkbz4n8bhi4v2lyla1z")))) + (build-system perl-build-system) + (inputs + `(("perl-file-sharedir" ,perl-file-sharedir))) + (home-page "http://search.cpan.org/dist/libintl-perl") + (synopsis "High-Level Interface to Uniforum Message Translation") + (description "@code{List::SomeUtils} provides some trivial but commonly +portions of this module couldn't be compiled on this machine.") + (license license:gpl3))) + (define-public perl-log-any (package (name "perl-log-any") @@ -4970,6 +5490,257 @@ all coercions and constraints are inherited.") constraint with coercion to load the class.") (license (package-license perl)))) =20 +(define-public perl-moox +(package + (name "perl-moox") + (version "0.101") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GE/GETTY/MooX-" + version + ".tar.gz")) + (sha256 + (base32 + "1m9jvrqcidiabdih211byadwnnkygafq54r2ljnf1akqdrjimy9g")))) + (build-system perl-build-system) + (inputs + `(("perl-data-optlist" ,perl-data-optlist) + ("perl-import-into" ,perl-import-into) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo))) + (home-page "http://search.cpan.org/dist/MooX") + (synopsis + "Using Moo and MooX:: packages the most lazy way") + (description "Using Moo and MooX:: packages the most lazy way.") + (license (package-license perl)))) + +(define-public perl-moox-cmd +(package + (name "perl-moox-cmd") + (version "0.015") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-" + version + ".tar.gz")) + (sha256 + (base32 + "0145ha8vnc6sbg82ps96wj716bznq2qamm657bia9ji2yxhbnsam")))) + (build-system perl-build-system) + (native-inputs + `(("perl-capture-tiny" ,perl-capture-tiny) + ("perl-list-moreutils" ,perl-list-moreutils))) + (inputs + `(("perl-module-pluggable" ,perl-module-pluggable) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo) + ("perl-package-stash" ,perl-package-stash) + ("perl-params-util" ,perl-params-util) + ("perl-regexp-common" ,perl-regexp-common))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-envvar + (lambda* (#:key inputs #:allow-other-keys) + (setenv "PERL5LIB" + (string-append + (assoc-ref inputs "perl-list-moreutils= ") + ":" (getenv "PERL5LIB")))))) + #:tests? #f)) ; Error: Could not find sub 'first_result' + ; exported by List::MoreUtils + (home-page + "http://search.cpan.org/dist/MooX-Cmd") + (synopsis + "Giving an easy Moo style way to make command organized CLI apps") + (description "Eases the writing of command line utilities, accepting +commands and subcommands and so on. These commands can form a tree, which = is +mirrored in the package structure. On invocation each command along the pa= th +through the tree (starting from the toplevel command through to the most +specific one) is instanciated.") + (license (package-license perl)))) + +(define-public perl-moox-configfromfile + (package + (name "perl-moox-configfromfile") + (version "0.007") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/" + "MooX-ConfigFromFile-" version ".tar.gz")) + (sha256 + (base32 + "0qq1vlcrnhgisww3ddzbc3y96y87ij5r6rggx38aqcsd3v89pcqm")))) + (build-system perl-build-system) + (native-inputs + `(("perl-hash-merge" ,perl-hash-merge) + ("perl-json" ,perl-json) + ("perl-moox-cmd" ,perl-moox-cmd))) +; ("perl-moox-options" ,perl-moox-options))) ; hangs + (inputs + `(("perl-config-any" ,perl-config-any) + ("perl-file-configdir" ,perl-file-configdir) + ("perl-file-find-rule" ,perl-file-find-rule) + ("perl-hash-merge" ,perl-hash-merge) + ("perl-moo", perl-moo) + ("perl-moox-file-configdir" ,perl-moox-file-configdir) + ("perl-namespace-clean" ,perl-namespace-clean))) + (home-page "http://search.cpan.org/dist/MooX-ConfigFromFile") + (synopsis "Moo eXtension for initializing objects from config file") + (description "This module is intended to easy load initialization valu= es +for attributes on object construction from an appropriate config file. The +building is done in @code{MooX::ConfigFromFile::Role} - using +@code{MooX::ConfigFromFile} ensures the role is applied.") + (license (package-license perl)))) + +(define-public perl-moox-file-configdir + (package + (name "perl-moox-file-configdir") + (version "0.005") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RE/RESHACK/" + "MooX-File-ConfigDir-" version ".tar.gz")) + (sha256 + (base32 + "1vvmgygv1i6n98wp26x1112asmwrpy6v089j46l88if3lc6zk3l8")))) + (build-system perl-build-system) + (inputs + `(("perl-file-configdir" ,perl-file-configdir) + ("perl-moo-role" ,perl-moo) + ("perl-namespace-clean" ,perl-namespace-clean))) + (home-page "http://search.cpan.org/dist/MooX-File-ConfigDir") + (synopsis "Moo eXtension for @code{File::ConfigDir}") + (description "This module is a helper for easily find configuration fi= le +locations. Whether to use this information for find a suitable place for +installing them or looking around for finding any piece of settings, heavi= ly +depends on the requirements.") + (license (package-license perl)))) + +(define-public perl-moox-handlesvia + (package + (name "perl-moox-handlesvia") + (version "0.001008") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MA/MATTP/" + "MooX-HandlesVia-" version ".tar.gz")) + (sha256 + (base32 + "137yrjn2jmw4cj0fjdajnkjgqr5arnpq72kbm6w66xskncinz55h")))) + (build-system perl-build-system) + (native-inputs + `(("perl-moox-types-mooselike" ,perl-moox-types-mooselike) + ("perl-test-exception" ,perl-test-exception) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-data" ,perl-data) + ("perl-list-moreutils" ,perl-list-moreutils) + ("perl-class-method-modifiers" ,perl-class-method-modifiers) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo) + ("perl-role-tiny" ,perl-role-tiny))) + (home-page "http://search.cpan.org/dist/MooX-HandlesVia") + (synopsis "NativeTrait-like behavior for Moo") + (description "Extension of Moo's 'handles' attribute functionality. It +provides a means of proxying functionality from an external class to the g= iven +atttribute. This is most commonly used as a way to emulate 'Native Trait' +behavior that has become commonplace in Moose code, for which there was no= Moo +alternative.") + (license (package-license perl)))) + +(define-public perl-moox-late + (package + (name "perl-moox-late") + (version "0.015") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-lat= e-" + version ".tar.gz")) + (sha256 + (base32 + "1gzvd9zws3v09sh0xx6srmw4jwi22fnrya4zcsc8dykn62pjclqp")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-requires" ,perl-test-requires) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-data" ,perl-data) + ("perl-moo" ,perl-moo) + ("perl-moosex-types" ,perl-moosex-types) + ("perl-moox" ,perl-moox) + ("perl-moox-handlesvia" ,perl-moox-handlesvia) + ("perl-type-tiny" ,perl-type-tiny))) + (home-page "http://search.cpan.org/dist/MooX-late") + (synopsis "Easily translate Moose code to Moo") + (description "Moo is a light-weight object oriented programming framew= ork +which aims to be compatible with Moose. It does this by detecting when Moo= se +has been loaded, and automatically \"inflating\" its classes and roles to = full +Moose classes and roles. This way, Moo classes can consume Moose roles, Mo= ose +classes can extend Moo classes, and so forth.") + (license perl-license))) + +(define-public perl-moox-options + (package + (name "perl-moox-options") + (version "4.023") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/C/CE/CELOGEEK/" + "MooX-Options-" version ".tar.gz")) + (sha256 + (base32 + "14kz51hybxx8vcm4wg36f0qa64aainw7i2sqmqxg20c3qvczyvj2")))) + (build-system perl-build-system) + (native-inputs + `(("perl-capture-tiny" ,perl-capture-tiny) + ("perl-import-into" ,perl-import-into) + ("perl-module-build" ,perl-module-build) +; ("perl-mo" ,perl-mo) ; not packaged + ("perl-moo" ,perl-moo) + ("perl-moose" ,perl-moose) +; ("perl-moox-cmd" ,perl-moox-cmd) ; hangs + ("perl-namespace-clean" ,perl-namespace-clean) + ("perl-role-tiny" ,perl-role-tiny) + ("perl-test-requires" ,perl-test-requires) + ("perl-test-trap" ,perl-test-trap) + ("perl-test-pod" ,perl-test-pod) + ("perl-try-tiny" ,perl-try-tiny))) + (inputs + `(("perl-config-any" ,perl-config-any) + ("perl-moox-configfromfile" ,perl-moox-configfromfile) + ("perl-data-record" ,perl-data-record) + ("perl-file-configdir" ,perl-file-configdir) + ("perl-file-find-rule" ,perl-file-find-rule) + ("perl-file-sharedir" ,perl-file-sharedir) + ("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive) + ("perl-json-maybexs" ,perl-json-maybexs) + ("perl-libintl-perl" ,perl-libintl-perl) + ("perl-moox-configfromfile" ,perl-moox-configfromfile) + ("perl-moox-file-configdir" ,perl-moox-file-configdir) + ("perl-path-class" ,perl-path-class) + ("perl-regexp-common" ,perl-regexp-common) + ("perl-term-size-any" ,perl-term-size-any) + ("perl-unicode-linebreak" ,perl-unicode-linebreak))) + (home-page "http://search.cpan.org/dist/MooX-Options") + (synopsis "Explicit Options eXtension for Object Class") + (description "Create a command line tool with your Mo, Moo, Moose obje= cts. + +Everything is explicit. You have an option keyword to replace the usual h= as +to explicitly use your attribute into the command line. + +The option keyword takes additional parameters and uses +@code{Getopt::Long::Descriptive} to generate a command line tool.") + (license (package-license perl)))) + (define-public perl-moox-types-mooselike (package (name "perl-moox-types-mooselike") @@ -5148,6 +5919,61 @@ cycle. Functions called in the package itself will = still be bound by their name, but they won't show up as methods on your class or instances.") (license (package-license perl)))) =20 +(define-public perl-net-dbus +(package + (name "perl-net-dbus") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-" + version + ".tar.gz")) + (sha256 + (base32 + "0sg2w147b9r9ykfzjs7y9qxry73xkjnhnk4qf95kfv79p5nnk4c3")))) + (build-system perl-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("perl-cpan-changes" ,perl-cpan-changes) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (inputs + `(("dbus" ,dbus) + ("perl-xml-parser" ,perl-xml-parser) + ("perl-xml-twig" ,perl-xml-twig))) + (home-page + "http://search.cpan.org/dist/Net-DBus") + (synopsis "Extension for the DBus bindings") + (description "Net::DBus provides a Perl API for the DBus message system.= The +DBus Perl interface is currently operating against the 0.32 development +version of DBus, but should work with later versions too, providing the API +changes have not been too drastic.") + (license perl-license))) + +(define-public perl-net-dbus-glib + (package + (name "perl-net-dbus-glib") + (version "0.33.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DA/DANBERR/" + "Net-DBus-GLib-" version ".tar.gz")) + (sha256 + (base32 + "1z4mbv8z0rad604xahijpg5szzi8qak07hbahh230z4jf96fkxvj")))) + (build-system perl-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("dbus-glib" ,dbus-glib))) + (home-page "http://search.cpan.org/~danberr/Net-DBus-GLib-0.33.0/") + (synopsis "Perl extension for the DBus GLib bindings") + (description "Provides an extension to the @code{Net::DBus} module all= owing integration with the GLib mainloop. To integrate with the main loop,= simply get a connection to the bus via the methods in @code{Net::DBus::GLi= b} rather than the usual @code{Net::DBus} module. That's it - every other = API remains the same.") + (license (list gpl2+ perl-license)))) + (define-public perl-net-statsd (package (name "perl-net-statsd") @@ -5618,6 +6444,45 @@ Module::Build project, but has been externalized her= e for general use.") "Probe-Perl-" version)) (license (package-license perl)))) =20 +(define-public perl-proc-invokeeditor + (package + (name "perl-proc-invokeeditor") + (version "1.07") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MS/MSTEVENS/Proc-InvokeEditor-" + version + ".tar.gz")) + (sha256 + (base32 + "1ahc41s06bbq9y37706qci5k89fbnspmyldlb8srlaqibsqqm37x")))) + (build-system perl-build-system) + (inputs + `(("perl-carp-assert" ,perl-carp-assert))) + (arguments + '(#:tests? #f)) ; Needs an editor + (home-page + "http://search.cpan.org/dist/Proc-InvokeEditor") + (synopsis + "Interface to external editor from perl") + (description "This module provides the ability to supply some text to an +external text editor, have it edited by the user, and retrieve the results. + +The @code{File::Temp} module is used to provide secure, safe temporary fil= es, +and @code{File::Temp} is set to its highest available level of security. = This +may cause problems on some systems where no secure temporary directory is +available. + +When the editor is started, no subshell is used. Your path will be scanne= d to +find the binary to use for each editor if the string given does not exist = as a +file, and if a named editor contains whitespace, eg) if you try to use the +editor xemacs -nw, then the string will be split on whitespace and anything +after the editor name will be passed as arguments to your editor. A shell= is +not used but this should cover most simple cases.") + (license (package-license perl)))) + (define-public perl-readonly (package (name "perl-readonly") @@ -5665,29 +6530,6 @@ codes.") ;; Quad-licensed: Perl Artistic, Perl Artistic 2.0, X11, and BSD. (license (list (package-license perl) x11 bsd-3)))) =20 -(define-public perl-role-tiny - (package - (name "perl-role-tiny") - (version "1.003004") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/" - "Role-Tiny-" version ".tar.gz")) - (sha256 - (base32 - "0ak60hakn0ixmsiw403si0lf5pagq5r6wjgl7p0pr979nlcikfmd")))) - (build-system perl-build-system) - (native-inputs - `(("perl-namespace-autoclean" ,perl-namespace-autoclean) - ("perl-test-fatal" ,perl-test-fatal))) - (propagated-inputs - `(("perl-class-method-modifiers" ,perl-class-method-modifiers))) - (home-page "http://search.cpan.org/dist/Role-Tiny") - (synopsis "Roles, as a slice of Moose") - (description "Role::Tiny is a minimalist role composition tool.") - (license (package-license perl)))) - (define-public perl-safe-isa (package (name "perl-safe-isa") @@ -5811,6 +6653,28 @@ compact.") arrays by one or multiple calculated keys.") (license (package-license perl)))) =20 +(define-public perl-sort-naturally + (package + (name "perl-sort-naturally") + (version "1.03") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-" + version + ".tar.gz")) + (sha256 + (base32 + "0ip7q5g8d3lr7ri3ffcbrpk1hzzsiwgsn14k10k7hnjphxf1raza")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Sort-Naturally") + (synopsis + "Sort lexically, but sort numeral parts numerically") + (description "This module exports two functions, @code{nsort} and @code{= ncmp}; they are used in implementing my idea of a \"natural sorting\" algor= ithm. Under natural sorting, numeric substrings are compared numerically, = and other word-characters are compared lexically.") + (license (package-license perl)))) + (define-public perl-spiffy (package (name "perl-spiffy") @@ -6331,6 +7195,79 @@ other terminal related features, including retrieval= /modification of the screen size, and retrieval/modification of the control characters.") (license (package-license perl)))) =20 +(define-public perl-term-size-any + (package + (name "perl-term-size-any") + (version "0.002") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/" + "Term-Size-Any-" version ".tar.gz")) + (sha256 + (base32 + "1lnynd8pwjp3g85bl4nav6yigg2lag3sx5da989j7a733bdmzyk4")))) + (build-system perl-build-system) + (inputs + `(("perl-devel-hide" ,perl-devel-hide) + ("perl-term-size-perl" ,perl-term-size-perl))) + (home-page "http://search.cpan.org/dist/Term-Size-Any") + (synopsis "Retrieve terminal size") + (description "This is a unified interface to retrieve terminal size. = It +loads one module of a list of known alternatives, each implementing some w= ay +to get the desired terminal information. This loaded module will actually= do +the job on behalf of @code{Term::Size::Any}.") + (license (package-license perl)))) + +(define-public perl-term-size-perl + (package + (name "perl-term-size-perl") + (version "0.029") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/" + "Term-Size-Perl-" version ".tar.gz")) + (sha256 + (base32 + "1rvm91bhdlxfwx5zka023p7szf2s7gm16wl27qiivvj66svsl6lc")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Term-Size-Perl") + (synopsis "Perl extension for retrieving terminal size (Perl version)") + (description "Yet another implementation of @code{Term::Size}. Now in +pure Perl, with the exception of a C probe run on build time.") + (license (package-license perl)))) + +(define-public perl-termreadkey + (package + (name "perl-termreadkey") + (version "2.14") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/K/KJ/KJALB/TermReadKey-" + version + ".tar.gz")) + (sha256 + (base32 + "1a69ainw5z8i6kmk1yh4rbqm4l6fga29kbvqv808r7w8v661a2b0")))) + (build-system perl-build-system) + (arguments + '(#:tests? #f)) ; Needs terminal + (home-page + "http://search.cpan.org/dist/TermReadKey") + (synopsis + "A perl module for simple terminal control") + (description "@code{Term::ReadKey} is a compiled perl module dedicated= to +providing simple control over terminal driver modes (cbreak, raw, cooked, +etc.,) support for non-blocking reads, if the architecture allows, and some +generalized handy functions for working with terminals. One of the main g= oals +is to have the functions as portable as possible, so you can just plug in +\"use Term::ReadKey\" on any architecture and have a good likelihood of it +working.") + (license (package-license perl)))) + (define-public perl-test-base (package (name "perl-test-base") @@ -6989,6 +7926,35 @@ makes fork(2) safe to use in test cases.") "Test-Simple-" version)) (license (package-license perl)))) =20 +(define-public perl-test-taint + (package + (name "perl-test-taint") + (version "1.06") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Taint-" + version + ".tar.gz")) + (sha256 + (base32 + "01rip5d7gdr1c7lq6yczzkqfd0500nfa977ryigylj6jj75526vj")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-Taint") + (synopsis "Checks for taintedness of variables") + (description "Tainted data is data that comes from an unsafe source, s= uch as +the command line, or, in the case of web apps, any GET or POST transaction= s. +Read the perlsec man page for details on why tainted data is bad, and how = to +untaint the data. + +When you're writing unit tests for code that deals with tainted data, you'= ll +want to have a way to provide tainted data for your routines to handle, and +easy ways to check and report on the taintedness of your data, in standard +@code{Test::More} style.") + (license (package-license perl)))) + (define-public perl-test-tester (package (name "perl-test-tester") @@ -7690,6 +8656,97 @@ that are designed to minimize common mistakes with e= val blocks, and nothing else.") (license x11))) =20 +(define-public perl-type-tie + (package + (name "perl-type-tie") + (version "0.009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tie-" + version + ".tar.gz")) + (sha256 + (base32 + "1wv32kd7gx4kfyvzs13y029f49qbbji991wawvarac7rlz09wpan")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-fatal" ,perl-test-fatal) + ("perl-test-requires" ,perl-test-requires))) + (inputs + `(("perl-exporter-tiny" ,perl-exporter-tiny) + ("perl-hash-fieldhash" ,perl-hash-fieldhash))) + (home-page + "http://search.cpan.org/dist/Type-Tie") + (synopsis "tie a variable to a type constraint") + (description "This module exports a single function: @code{ttie}. ttie t= ies a variable to a type constraint, ensuring that whatever values stored i= n the variable will conform to the type constraint. If the type constraint = has coercions, these will be used if necessary to ensure values assigned to= the variable conform.") + (license (package-license perl)))) + +(define-public perl-type-tiny + (package + (name "perl-type-tiny") + (version "1.000006") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/T/TO/TOBYINK/" + "Type-Tiny-" version ".tar.gz")) + (sha256 + (base32 + "0wn0pf3kzfdaa1ygj8gc1qjfifs5rf21a7xzgvr6hmavwfgs6qdw")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-warnings" ,perl-test-warnings))) + (inputs + `(("perl-devel-lexalias" ,perl-devel-lexalias) + ("perl-devel-stacktrace" ,perl-devel-stacktrace) + ("perl-exporter-tiny" ,perl-exporter-tiny) + ("perl-moo" ,perl-moo) + ("perl-moose" ,perl-moose) + ("perl-mouse" ,perl-mouse) + ("perl-reply" ,perl-reply) + ("perl-sub-name" ,perl-sub-name) + ("perl-type-tie" ,perl-type-tie) + ("perl-type-tiny-xs" ,perl-type-tiny-xs))) + (home-page "http://search.cpan.org/dist/Type-Tiny") + (synopsis "Tiny, yet Moo(se)-compatible type constraint") + (description "@code{Type::Tiny} is a tiny class for creating Moose-like +type constraint objects which are compatible with Moo, Moose and Mouse. + +Maybe now we won't need to have separate MooseX, MouseX and MooX versions = of +everything? We can but hope... + +This documents the internals of @code{Type::Tiny}. @code{Type::Tiny::Manua= l} +is a better starting place if you're new.") + (license perl-license))) + +(define-public perl-type-tiny-xs + (package + (name "perl-type-tiny-xs") + (version "0.012") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-" + version + ".tar.gz")) + (sha256 + (base32 + "05nbr898cvjjh1wsy55l84zasx65gijdxc6dnn558ihns8zx6gm9")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Type-Tiny-XS") + (synopsis + "Provides an XS boost for some of @code{Type::Tiny}'s built-in type c= onstraints") + (description "This module is optionally used by @code{Type::Tiny} 0.04= 5_03 and +above to provide faster, C-based implementations of some type +constraints. (This package has only core dependencies, and does not depend= on +@code{Type::Tiny}, so other data validation frameworks might also consider= using +it!)") + (license perl-license))) + (define-public perl-types-serialiser (package (name "perl-types-serialiser") @@ -7750,7 +8807,7 @@ common serialisation formats such as JSON or CBOR.") Unicode data.") ;; The file Unicode/Collate/allkeys.txt is released under the Expat ;; license. - (license (list (package-license perl) expat)))) + (license (list (package-license perl) license:expat)))) =20 (define-public perl-unicode-linebreak (package @@ -8102,6 +9159,90 @@ system---most of the @code{Module::Build} code is pu= re-Perl.") files, using JSON::PP and/or CPAN::Meta::YAML.") (license (package-license perl)))) =20 +(define-public perl-reply + (package + (name "perl-reply") + (version "0.42") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DO/DOY/Reply-" + version + ".tar.gz")) + (sha256 + (base32 + "1wkrmc1ksy4zdribj305mmwmsvc2x9283979qh8awm3slx2jmnja")))) + (build-system perl-build-system) + (inputs + `(("perl-app-nopaste" ,perl-app-nopaste) + ("perl-b-keywords" ,perl-b-keywords) + ("perl-carp-always" ,perl-carp-always) + ("perl-class-refresh" ,perl-class-refresh) + ("perl-config-ini" ,perl-config-ini) + ("perl-config-ini-reader-ordered" + ,perl-config-ini-reader-ordered) + ("perl-data-dump" ,perl-data-dump) + ("perl-data-printer" ,perl-data-printer) + ("perl-devel-lexalias" ,perl-devel-lexalias) + ("perl-eval-closure" ,perl-eval-closure) + ("perl-file-homedir" ,perl-file-homedir) + ("perl-io-pager" ,perl-io-pager) + ("perl-mixin-linewise" ,perl-mixin-linewise) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-package-stash" ,perl-package-stash) + ("perl-padwalker" ,perl-padwalker) + ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict) + ("perl-sub-exporter" ,perl-sub-exporter) + ("perl-proc-invokeeditor" + ,perl-proc-invokeeditor) + ;("perl-term-readline-gnu" ; unable to build + ; ,perl-term-readline-gnu) + ("perl-termreadkey" ,perl-termreadkey) + ("perl-try-tiny" ,perl-try-tiny))) + (home-page "http://search.cpan.org/dist/Reply") + (synopsis "read, eval, print, loop, yay!") + (description "Reply is a lightweight, extensible REPL for Perl. It is +plugin-based (see @code{Reply::Plugin}), and through plugins supports many +advanced features such as coloring and pretty printing, readline support, = and +pluggable commands.") + (license x11))) + +(define-public perl-role-tiny + (package + (name "perl-role-tiny") + (version "2.000005") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/" + "Role-Tiny-" version ".tar.gz")) + (sha256 + (base32 + "059i0rq0rzbamsnyxba9zhm51v7nzmfls5fh301byag046v2jfjr")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-cpan-meta-yaml" ,perl-cpan-meta-yaml))) + (home-page "http://search.cpan.org/dist/Role-Tiny") + (synopsis "Like a nouvelle cuisine portion size slice of Moose") + (description "A minimalist role composition tool. + +Role composition can be thought of as much more clever and meaningful mult= iple +inheritance. The basics of this implementation of roles is: + + If a method is already defined on a class, that method will not be +composed in from the role. A method inherited by a class gets overridden by +the role's method of the same name, though. If a method that the role +\"requires\" to be implemented is not implemented, role application will f= ail +loudly. + +Unlike Class::C3, where the last class inherited from \"wins,\" role +composition is the other way around, where the class wins. If multiple ro= les +are applied in a single call (single with statement), then if any of their +provided methods clash, an exception is raised unless the class provides a +method since this conflict indicates a potential problem.") + (license (package-license perl)))) + (define-public perl-scalar-list-utils (package (name "perl-scalar-list-utils") @@ -8146,6 +9287,40 @@ such that being individual extensions would be waste= ful.") "Shell::Command is a thin wrapper around ExtUtils::Command.") (license (package-license perl)))) =20 +(define-public perl-strictures + (package + (name "perl-strictures") + (version "2.000003") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/H/HA/HAARG/" + "strictures-" version ".tar.gz")) + (sha256 + (base32 + "08mgvf1d2651gsg3jgjfs13878ndqa4ji8vfsda9f7jjd84ymy17")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/strictures") + (synopsis + "Turn on strict and make most warnings fatal") + (description + "Things like the importer in use Moose don't help me because they tu= rn +warnings on but don't make them fatal -- which from my point of view is +useless because I want an exception to tell me my code isn't warnings-clea= n. + +Any time I see a warning from my code, that indicates a mistake. + +Any time my code encounters a mistake, I want a crash -- not spew to STDERR +and then unknown (and probably undesired) subsequent behaviour. + +I also want to ensure that obvious coding mistakes, like indirect object +syntax (and not so obvious mistakes that cause things to accidentally comp= ile +as such) get caught, but not at the cost of an XS dependency and not at the +cost of blowing things up on another machine.") + (license (package-license perl)))) + ;;; END: Core module overrides =20 (define-public perl-file-find-object @@ -8235,3 +9410,36 @@ interface to File::Find::Object.") (description "Test::TrailingSpace tests for trailing spaces in Perl source files.") (license x11))) + +(define-public perl-types-path-tiny + (package + (name "perl-types-path-tiny") + (version "0.005") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DA/DAGOLDEN/" + "Types-Path-Tiny-" version ".tar.gz")) + (sha256 + (base32 + "09nf167ssi4rgj8hhzylwp3zdx61njdpyfri43arcmk9aqn7f0pp")))) + (build-system perl-build-system) + (native-inputs + `(("perl-file-pushd" ,perl-file-pushd) + ("perl-path-tiny" ,perl-path-tiny) + ("perl-type-tiny" ,perl-type-tiny) + ("perl-exporter-tiny" ,perl-exporter-tiny))) + (home-page + "http://search.cpan.org/dist/Types-Path-Tiny") + (synopsis + "Types and coercions for Moose and Moo") + (description "This module provides @code{Path::Tiny} types for Moose, Mo= o, etc. + +It handles two important types of coercion: +@enumerate +@item coercing objects with overloaded stringification +@item coercing to absolute paths +@end enumerate +It also can check to ensure that files or directories exist.") + (license artistic2.0))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 8abd4309d..cf8d3be1d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -19,6 +19,7 @@ ;;; Copyright =C2=A9 2016 Bake Timmons ;;; Copyright =C2=A9 2017 Thomas Danckaert ;;; Copyright =C2=A9 2017 Marius Bakke +;;; Copyright =C2=A9 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,6 +75,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages libidn) #:use-module (gnu packages lua) + #:use-module (gnu packages moreutils) #:use-module (gnu packages ncurses) #:use-module (gnu packages base) #:use-module (gnu packages perl) @@ -981,6 +983,55 @@ language known as SASS.") to perl-code, for faster generation of access_log lines.") (license l:perl-license))) =20 +(define-public perl-app-nopaste + (package + (name "perl-app-nopaste") + (version "1.009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/E/ET/ETHER/App-Nopaste-" + version + ".tar.gz")) + (sha256 + (base32 + "0yz1mfjnnvpxpydcgzmkravd9ixsg86q07g6f4mm3ylkpk9bsr0l")))) + (build-system perl-build-system) + (native-inputs + `(("perl-libwww" ,perl-libwww) + ("perl-test-deep" ,perl-test-deep) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-browser-open" ,perl-browser-open) + ("perl-class-load" ,perl-class-load) + ("perl-clipboard" ,perl-clipboard) + ("perl-getopt-long-descriptive" + ,perl-getopt-long-descriptive) + ("perl-html-form" ,perl-html-form) + ("perl-json-maybexs" ,perl-json-maybexs) + ("perl-module-pluggable" ,perl-module-pluggable) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-namespace-clean" ,perl-namespace-clean) + ("perl-path-tiny" ,perl-path-tiny) + ("perl-sub-name" ,perl-sub-name) + ("perl-uri" ,perl-uri) + ("perl-www-mechanize" ,perl-www-mechanize) + ("perl-yaml" ,perl-yaml) + ("perl-www-pastebin-pastebincom-create" + ,perl-www-pastebin-pastebincom-create))) + (home-page + "http://search.cpan.org/dist/App-Nopaste") + (synopsis "Easy access to any pastebin") + (description "Pastebins (also known as nopaste sites) let you post tex= t, usually code, for public viewing. They're used a lot in IRC channels to= show code that would normally be too long to give directly in the channel = (hence the name nopaste). + +Each pastebin is slightly different. When one pastebin goes down (I'm loo= king at you, http://paste.husk.org), then you have to find a new one. And = if you usually use a script to publish text, then it's too much hassle. + +This module aims to smooth out the differences between pastebins, and prov= ides redundancy: if one site doesn't work, it just tries a different one. + +It's also modular: you only need to put on CPAN a @code{App::Nopaste::Serv= ice::Foo} module and anyone can begin using it.") + (license l:perl-license))) + (define-public perl-authen-sasl (package (name "perl-authen-sasl") @@ -2030,6 +2081,36 @@ Yahoo! Finance, Fidelity Investments, and the Austra= lian Stock Exchange.") described in RFC 2744.") (license l:perl-license))) =20 +(define-public perl-html-form +(package + (name "perl-html-form") + (version "6.03") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GA/GAAS/HTML-Form-" + version + ".tar.gz")) + (sha256 + (base32 + "0dpwr7yz6hjc3bcqgcbdzjjk9l58ycdjmbam9nfcmm85y2a1vh38")))) + (build-system perl-build-system) + (inputs + `(("perl-html-parser" ,perl-html-parser) + ("perl-http-message" ,perl-http-message) + ("perl-uri" ,perl-uri))) + (home-page + "http://search.cpan.org/dist/HTML-Form") + (synopsis + "Class that represents an HTML form element") + (description "Objects of the @code{HTML::Form} class represents a single +HTML
...
instance. A form consists of a sequence of inputs = that +usually have names, and which can take on various values. The state of a f= orm +can be tweaked and it can then be asked to provide @code{HTTP::Request} +objects that can be passed to the request() method of @code{LWP::UserAgent= }.") + (license l:perl-license))) + (define-public perl-html-element-extended (package (name "perl-html-element-extended") @@ -2634,6 +2715,42 @@ media types is defined by the media.types file. If = the ~/.media.types file exists it is used instead.") (home-page "http://search.cpan.org/~gaas/LWP-MediaTypes/"))) =20 +(define-public perl-lwp-online + (package + (name "perl-lwp-online") + (version "1.08") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/A/AD/ADAMK/LWP-Online-" + version + ".tar.gz")) + (sha256 + (base32 + "176f6vbk1018i0y7xj9d406ndbjgwzan2j9nihxnsahzg2vr2vz2")))) + (build-system perl-build-system) + (inputs + `(("perl-libwww" ,perl-libwww) + ("perl-uri" ,perl-uri))) + (home-page + "http://search.cpan.org/dist/LWP-Online") + (synopsis + "Does your process have access to the web") + (description "This module attempts to answer, as accurately as it can,= one +of the nastiest technical questions there is. + +Am I on the internet? + +A host of networking and security issues make this problem very +difficult. There are firewalls, proxies (both well behaved and badly +behaved). We might not have DNS. We might not have a network card at all! + +You might have network access, but only to a for-money wireless network th= at +responds to ever HTTP request with a page asking you to enter your credit = card +details for paid access. Which means you don't \"REALLY\" have access.") + (license l:perl-license))) + (define-public perl-lwp-protocol-https (package (name "perl-lwp-protocol-https") @@ -3209,30 +3326,49 @@ library.") (define-public perl-www-mechanize (package (name "perl-www-mechanize") - (version "1.73") + (version "1.84") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" - "WWW-Mechanize-" version ".tar.gz")) + (uri (string-append + "mirror://cpan/authors/id/O/OA/OALDERS/WWW-Mechanize-" + version + ".tar.gz")) (sha256 (base32 - "1zrw8aadhwy48q51x2z2rqlkwf17bya4j4h3hy89mw783j96rmg9")))) + "06igfrd50la7csp9365g3i6gfans9y1hpwy2ln20lbny1arzvq0m")))) (build-system perl-build-system) - (native-inputs ;only for tests - `(("perl-cgi" ,perl-cgi))) - (propagated-inputs + (native-inputs + `(("perl-cgi" ,perl-cgi) + ("perl-http-daemon" ,perl-http-daemon) + ("perl-http-message" ,perl-http-message) + ("perl-http-server-simple" + ,perl-http-server-simple) + ("perl-libwww" ,perl-libwww) + ("perl-test-deep" ,perl-test-deep) + ("perl-test-exception" ,perl-test-exception) + ("perl-test-fatal" ,perl-test-fatal) + ("perl-test-needs" ,perl-test-needs) + ("perl-test-nowarnings" ,perl-test-nowarnings) + ("perl-test-output" ,perl-test-output) + ; ("perl-test-requiresinterne= t" + ; ,perl-test-requiresinterne= t) + ("perl-test-taint" ,perl-test-taint) + ("perl-test-warn" ,perl-test-warn) + ("perl-test-warnings" ,perl-test-warnings) + ("perl-uri" ,perl-uri))) + (inputs `(("perl-html-form" ,perl-html-form) ("perl-html-parser" ,perl-html-parser) + ("perl-html-tree" ,perl-html-tree) + ("perl-http-cookies" ,perl-http-cookies) ("perl-http-message" ,perl-http-message) - ("perl-http-server-simple" ,perl-http-server-simple) ("perl-libwww" ,perl-libwww) - ("perl-test-warn" ,perl-test-warn) ("perl-uri" ,perl-uri))) - (home-page "http://search.cpan.org/dist/WWW-Mechanize") - (synopsis "Web browsing in a Perl object") - (description "WWW::Mechanize is a Perl module for stateful programmatic -web browsing, used for automating interaction with websites.") + (home-page + "http://search.cpan.org/dist/WWW-Mechanize") + (synopsis "Handy web browsing in a Perl object") + (description "@code{WWW::Mechanize}, or Mech for short, is a Perl modu= le for stateful programmatic web browsing, used for automating interaction = with websites.") (license l:perl-license))) =20 (define-public perl-www-opensearch @@ -3263,6 +3399,41 @@ web browsing, used for automating interaction with w= ebsites.") http://opensearch.a9.com} compatible search engines.") (license l:perl-license))) =20 +(define-public perl-www-pastebin-pastebincom-create + (package + (name "perl-www-pastebin-pastebincom-create") + (version "1.003") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZO/ZOFFIX/WWW-Pastebin-PastebinCo= m-Create-" + version + ".tar.gz")) + (sha256 + (base32 + "0xs29hilmlr51hcg4azbvi7c30yivan5gzwiq2z0dwrdy13lvcln")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (inputs + `(("perl-html-form" ,perl-html-form) + ("perl-http-message" ,perl-http-message) + ("perl-moo" ,perl-moo) + ("perl-libwww" ,perl-libwww) + ("perl-www-mechanize" ,perl-www-mechanize))) + (arguments + '(#:tests? #f)) ; 4 dependency levels down from what I'm trying to bu= ild >.< + (home-page + "http://search.cpan.org/dist/WWW-Pastebin-PastebinCom-Create") + (synopsis + "paste on www.pastebin.com without API keys") + (description "You kinda, sorta, maybe shouldn't really use this module= . Use +@code{WWW::Pastebin::PastebinCom::API} instead. Pastebin.com switched to a +key-based API (which is what ::API version implements), and using this, +keyless, module lets you paste only 10 pastes per day.") + (license l:artistic2.0))) + (define-public perl-www-robotrules (package (name "perl-www-robotrules") @@ -4439,6 +4610,88 @@ developers can integrate into their applications to = make use of the functions of Tidy.") (license l:bsd-3))) =20 +(define-public tidyp + (package + (name "tidyp") + (version "1.04") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/downloads/petdance/tidyp/tidyp-" + version ".tar.gz")) + (sha256 + (base32 + "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10")) + (patches + (search-patches "tidyp-specify-test-files-in-makefile.patch")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)) ; Missing script + (home-page "http://www.tidyp.com/") + (synopsis "Validate HTML") + (description "Tidyp is a program that can validate your HTML, as well = as +modify it to be more clean and standard. tidyp does not validate HTML 5. + +libtidyp is the library on which the program is based. It can be used by = any +other program that can interface to it. The Perl module @code{HTML::Tidy}= is +based on this library, allowing Perl programmers to easily validate HTML.") + (license (l:fsf-free "file://COPYRIGHT")))) + +(define-public perl-html-tidy + (package + (name "perl-html-tidy") + (version "1.56") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-" + version + ".tar.gz")) + (sha256 + (base32 + "1zp4wndvr9vadbqjmd8d8ck6hlmr0dqg20vpa8cqfdflqkzqf208")))) + (build-system perl-build-system) + (inputs + `(("perl-libwww" ,perl-libwww) + ("tidyp" ,tidyp))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'config 'patch-check + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile.PL" + (("-I/usr/include/tidyp") + (string-append + "-I" (assoc-ref inputs "tidyp") "/tidyp/include= /"))))) + (add-before 'build 'patch-check + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Tidy.xs" + (("#include ") + (string-append "#include <" + (assoc-ref inputs "tidyp") + "/include/tidyp/tidyp.h>")) + (("#include ") + (string-append "#include <" + (assoc-ref inputs "tidyp") + "/include/tidyp/buffio.h>"))))) + (add-after 'build 'update-include + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Tidy.c" + (("#include ") + (string-append "#include <" + (assoc-ref inputs "tidyp") + "/include/tidyp/tidyp.h>")))))) + #:tests? #f)) ; Disabled because I was unable to fix it. + (home-page + "http://search.cpan.org/dist/HTML-Tidy") + (synopsis "(X)HTML validation in a Perl object") + (description "@code{HTML::Tidy} is an HTML checker in a handy dandy +object. It's meant as a replacement for [@code{HTML::Lint}] 1, which is +written in Perl but is not nearly as capable as @code{HTML::Tidy}.") + (license l:artistic2.0))) + (define-public hiawatha (package (name "hiawatha") diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index f4b68ba6a..a228817d2 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -15,6 +15,7 @@ ;;; Copyright =C2=A9 2016 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2016, 2017 Marius Bakke ;;; Copyright =C2=A9 2017 humanitiesNerd +;;; Copyright =C2=A9 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -305,6 +306,45 @@ to @code{XML::Parser} in much the same way that Gisle = Aas' corresponding to an @code{XML::Parser} event.") (license license:perl-license))) =20 +(define-public perl-xml-twig + (package + (name "perl-xml-twig") + (version "3.52") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/" + "XML-Twig-" version ".tar.gz")) + (sha256 + (base32 + "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy")))) + (build-system perl-build-system) + (inputs + `(("expat" ,expat) +; ("perl-cpan-meta-json" ,perl-cpan-meta-json) + ("perl-html-tidy" ,perl-html-tidy) + ("perl-html-tree" ,perl-html-tree) + ("perl-io-captureoutput" ,perl-io-captureoutput) + ("perl-io-string" ,perl-io-string) + ("perl-io-stringy" ,perl-io-stringy) + ("perl-libxml" ,perl-libxml) + ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext) + ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter) + ("perl-xml-parser" ,perl-xml-parser) + ("perl-xml-sax-writer" ,perl-xml-sax-writer) + ("perl-xml-simple" ,perl-xml-simple) + ("perl-xml-xpathengine" ,perl-xml-xpathengine) + ("perl-test-pod", perl-test-pod) + ("perl-tree-xpathengine" ,perl-tree-xpathengine))) + (home-page "http://search.cpan.org/dist/XML-Twig") + (synopsis "A perl module for processing huge XML documents in tree mod= e") + (description + "@code{xml::TokeParser} provides a procedural (\"pull mode\") interfa= ce +to @code{XML::Parser} in much the same way that Gisle Aas' +@code{HTML::TokeParser} provides a procedural interface to @code{HTML::Par= ser}. +@code{XML::TokeParser} splits its XML input up into \"tokens\", each +corresponding to an @code{XML::Parser} event.") + (license license:perl-license))) + (define-public perl-libxml (package (name "perl-libxml") @@ -327,6 +367,52 @@ corresponding to an @code{XML::Parser} event.") module.") (home-page "http://search.cpan.org/~kmacleod/libxml-perl/lib/XML/Parse= r/PerlSAX.pm"))) =20 +(define-public perl-xml-filter-buffertext + (package + (name "perl-xml-filter-buffertext") + (version "1.01") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/" + "XML-Filter-BufferText-" version ".tar.gz")) + (sha256 + (base32 + "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg")))) + (build-system perl-build-system) + (inputs + `(("perl-xml-sax-base" ,perl-xml-sax-base))) + (home-page "http://search.cpan.org/dist/XML-Filter-BufferText") + (synopsis "Filter to put all characters() in one event") + (description "This is a very simple filter. One common cause of grief= (and +programmer error) is that XML parsers aren't required to provide character +events in one chunk. They can, but are not forced to, and most don't. Th= is +filter does the trivial but oft-repeated task of putting all characters in= to a +single event.") + (license license:perl-license))) + +(define-public perl-xml-handler-yawriter + (package + (name "perl-xml-handler-yawriter") + (version "0.23") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/" + "XML-Handler-YAWriter-" version ".tar.gz")) + (sha256 + (base32 + "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77")))) + (build-system perl-build-system) + (inputs + `(("perl-libxml" ,perl-libxml))) + (home-page "http://search.cpan.org/dist/XML-Handler-YAWriter") + (synopsis "Yet another Perl SAX XML Writer") + (description "YAWriter implements Yet Another @code{XML::Handler::Writ= er}.=20 +The reasons for this one are that I needed a flexible escaping technique, = and +want some kind of pretty printing.") + (license license:perl-license))) + (define-public perl-xml-libxml (package (name "perl-xml-libxml") @@ -510,6 +596,33 @@ base class so you don't have to, for example, implemen= t the characters() callback.") (license license:perl-license))) =20 +(define-public perl-xml-sax-writer + (package + (name "perl-xml-sax-writer") + (version "0.56") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PERIGRIN/" + "XML-SAX-Writer-" version ".tar.gz")) + (sha256 + (base32 + "00vx47493rdgwmirxfgspwanlc9if389jsxq2w1ibj3ja2igfwyh")))) + (build-system perl-build-system) + (inputs + `(("perl-libxml" ,perl-libxml) + ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext) + ("perl-xml-namespacesupport", perl-xml-namespacesupport) + ("perl-xml-sax-base" ,perl-xml-sax-base))) + (license license:perl-license) + (home-page "http://search.cpan.org/dist/XML-SAX-Writer") + (synopsis "SAX2 XML Writer") + (description + "A new XML Writer was needed to match the SAX2 effort because quite +naturally no existing writer understood SAX2. My first intention had been= to +start patching @code{XML::Handler::YAWriter} as it had previously been my +favourite writer in the SAX1 world."))) + (define-public perl-xml-simple (package (name "perl-xml-simple") @@ -774,6 +887,53 @@ https://www.w3.org/TR/xpath} and yet allow extensions = to be added in the form of functions.") (license license:perl-license))) =20 +(define-public perl-xml-xpathengine + (package + (name "perl-xml-xpathengine") + (version "0.14") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/" + "XML-XPathEngine-" version ".tar.gz")) + (sha256 + (base32 + "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/XML-XPathEngine") + (synopsis "A re-usable XPath engine for DOM-like trees") + (description + "This module provides an XPath engine, that can be re-used by other +module/classes that implement trees. + +In order to use the XPath engine, nodes in the user module need to mimick = DOM +nodes. The degree of similitude between the user tree and a DOM dictates = how +much of the XPath features can be used. A module implementing all of the = DOM +should be able to use this module very easily (you might need to add the c= mp +method on nodes in order to get ordered result sets).") + (license license:perl-license))) + +(define-public perl-tree-xpathengine + (package + (name "perl-tree-xpathengine") + (version "0.05") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/" + "Tree-XPathEngine-" version ".tar.gz")) + (sha256 + (base32 + "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Tree-XPathEngine") + (synopsis "A re-usable XPath engine") + (description + "This module provides an XPath engine, that can be re-used by other +module/classes that implement trees. + +It is designed to be compatible with @code{Class::XPath}, ie it passes its +tests if you replace @code{Class::XPath} by @code{Tree::XPathEngine}.") + (license license:perl-license))) + (define-public pugixml (package (name "pugixml") --=20 2.12.2 --MP_/hk9L3hgiK1D3Hwcy9hEIz2x-- From unknown Fri Sep 19 21:46:09 2025 X-Loop: help-debbugs@gnu.org Subject: bug#26776: [PATCH] gnu: Add Parcimonie. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 11 May 2017 21:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26776 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Petter Cc: 26776@debbugs.gnu.org Received: via spool by 26776-submit@debbugs.gnu.org id=B26776.14945382851558 (code B ref 26776); Thu, 11 May 2017 21:32:02 +0000 Received: (at 26776) by debbugs.gnu.org; 11 May 2017 21:31:25 +0000 Received: from localhost ([127.0.0.1]:39235 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d8vgC-0000Of-Pe for submit@debbugs.gnu.org; Thu, 11 May 2017 17:31:25 -0400 Received: from eggs.gnu.org ([208.118.235.92]:51849) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d8vgB-0000JJ-Av for 26776@debbugs.gnu.org; Thu, 11 May 2017 17:31:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d8vg2-0004t8-49 for 26776@debbugs.gnu.org; Thu, 11 May 2017 17:31:18 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:60107) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8vg2-0004t4-0K; Thu, 11 May 2017 17:31:14 -0400 Received: from reverse-83.fdn.fr ([80.67.176.83]:60514 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1d8vg1-0003Zb-DJ; Thu, 11 May 2017 17:31:13 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20170504135128.4747771c@mykolab.ch> Date: Thu, 11 May 2017 23:31:10 +0200 In-Reply-To: <20170504135128.4747771c@mykolab.ch> (petter@mykolab.ch's message of "Thu, 4 May 2017 13:51:28 +0200") Message-ID: <87inl7krmp.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Hi Petter, Petter skribis: > From fdf2b751d19a1c9397535cb5054557b1fd711d23 Mon Sep 17 00:00:00 2001 > From: Petter > Date: Sun, 30 Apr 2017 11:40:06 +0200 > Subject: [PATCH] gnu: Add Parcimonie. > > * gnu/packages/gnupg.scm: New variables. > * gnu/packages/perl.scm: Same. > * gnu/packages/web.scm: Same. > * gnu/packages/xml.scm: Same. Overall this looks good to me, and a useful addition! There are a few =E2=80=9Ccosmetic=E2=80=9D things that I think should be addressed: [...] > + (synopsis "Lorem Ipsum") > + (description "Lorem Ipsum") Could you fix this? :-) > +(define-public perl-archive-extract > +(package > + (name "perl-archive-extract") > + (version "0.80") > + (source > + (origin > + (method url-fetch) > + (uri (string-append > + "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-" > + version > + ".tar.gz")) > + (sha256 > + (base32 > + "1x15j1q6w6z8hqyqgap0lz4qbq2174wfhksy1fdd653ccbaw5jr5")))) > + (build-system perl-build-system) > + (home-page > + "http://search.cpan.org/dist/Archive-Extract") > + (synopsis "Generic archive extracting mechanism") > + (description "It allows you to extract any archive file of the type .t= ar, .tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lz= ma without having to worry how it does so, or use different interfaces for = each type by using either perl modules, or commandline tools on your system= .") > + (license (package-license perl)))) Please run: ./etc/indent-code.el gnu/packages/perl.scm perl-archive-extract ./pre-inst-env guix lint perl-archive-extract Likewise for the other packages here. Last thing: we usually submit one package per patch. Do you think you could split the patch? If not, if there are no objections (Ricardo?), we could consider making an exception=E2=80=A6 Thanks in advance! Ludo=E2=80=99. From unknown Fri Sep 19 21:46:09 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Petter Subject: bug#26776: closed (Re: bug#26776: [PATCH] gnu: Add Parcimonie.) Message-ID: References: <878tfzd2w5.fsf@elephly.net> <20170504135128.4747771c@mykolab.ch> X-Gnu-PR-Message: they-closed 26776 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 26776@debbugs.gnu.org Date: Thu, 26 Oct 2017 21:13:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1509052382-28985-1" This is a multi-part message in MIME format... ------------=_1509052382-28985-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #26776: [PATCH] gnu: Add Parcimonie. which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 26776@debbugs.gnu.org. --=20 26776: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D26776 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1509052382-28985-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 26776-done) by debbugs.gnu.org; 26 Oct 2017 21:12:13 +0000 Received: from localhost ([127.0.0.1]:35568 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e7pRl-0007WT-2u for submit@debbugs.gnu.org; Thu, 26 Oct 2017 17:12:13 -0400 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21035) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e7pRj-0007WL-VQ for 26776-done@debbugs.gnu.org; Thu, 26 Oct 2017 17:12:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1508921630; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:To:Cc:Subject:In-reply-to:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; l=611; bh=KoGXaTA3LMjy3rfqjRIADf3qOohP1v+/wF+BPLGZrJY=; b=F5mXGtgFlZ+ELDsL22hE3iMqD6mXe9Uua3YmBujea2qUFfGJtxx+9HXbgNmeS9UU 0zJNeHyijMe7UtFW9PCYZ67QUPfHR5sNs0UOCP3rXQdButmXK8ek8F35r8GdtZMysez TI6Ym4gK+sfSmndeRDq1bSLoq18o5utAjrf5DL8k= Received: from localhost (141.80.247.119 [141.80.247.119]) by mx.zohomail.com with SMTPS id 1508921630446874.9846552184455; Wed, 25 Oct 2017 01:53:50 -0700 (PDT) References: <20170504135128.4747771c@mykolab.ch> <87inl7krmp.fsf@gnu.org> User-agent: mu4e 0.9.18; emacs 25.3.1 From: Ricardo Wurmus To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#26776: [PATCH] gnu: Add Parcimonie. In-reply-to: <87inl7krmp.fsf@gnu.org> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Date: Wed, 25 Oct 2017 10:53:46 +0200 Message-ID: <878tfzd2w5.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-ZohoMailClient: External X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 26776-done Cc: Petter , 26776-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.8 (--) Hi Petter, I have split the patch into separate commits, fixed some incorrect licenses and descriptions, enabled tests where possible, changed “inputs” to “propagated-inputs” where appropriate, and updated some of the packages. I skipped some non-essential packages such as perl-app-nopaste and its dependencies, because it was not needed after all, and it reduced the overall amount of work. The result is the parcimonie package added with commit 15b084425 in master. Thanks for the contribution! -- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net ------------=_1509052382-28985-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 4 May 2017 11:52:40 +0000 Received: from localhost ([127.0.0.1]:53658 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d6FJ7-0003qm-UC for submit@debbugs.gnu.org; Thu, 04 May 2017 07:52:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:58303) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d6FIy-0003qS-QO for submit@debbugs.gnu.org; Thu, 04 May 2017 07:52:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d6FIl-0002bL-Ff for submit@debbugs.gnu.org; Thu, 04 May 2017 07:52:15 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:32867) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d6FIl-0002b1-97 for submit@debbugs.gnu.org; Thu, 04 May 2017 07:52:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49197) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d6FIc-0002n6-I8 for guix-patches@gnu.org; Thu, 04 May 2017 07:52:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d6FIU-0002VV-Lg for guix-patches@gnu.org; Thu, 04 May 2017 07:51:58 -0400 Received: from mx.kolabnow.com ([95.128.36.1]:60450 helo=mx-out02.mykolab.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d6FIT-0002UR-Nb for guix-patches@gnu.org; Thu, 04 May 2017 07:51:50 -0400 X-Virus-Scanned: amavisd-new at kolabnow.com Received: from mx05.mykolab.com (mx05.mykolab.com [10.20.7.161]) by mx-out02.mykolab.com (Postfix) with ESMTPS id 2B83761713 for ; Thu, 4 May 2017 13:51:39 +0200 (CEST) Date: Thu, 4 May 2017 13:51:28 +0200 From: Petter To: guix-patches@gnu.org Subject: [PATCH] gnu: Add Parcimonie. Message-ID: <20170504135128.4747771c@mykolab.ch> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/hk9L3hgiK1D3Hwcy9hEIz2x" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.9 (/) --MP_/hk9L3hgiK1D3Hwcy9hEIz2x Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Guix, So I'm looking to improve my key management skills and was reading this article, https://riseup.net/en/security/message-security/openpgp/best-practices I had not heard of Parcimonie before, but I immediately liked the idea of it. And since Parcimonie wasn't packaged for Guix I of course figured I should package it real quick. After all, a program that just refreshes your keyring every now and then shouldn't be too complex and need a lot of dependencies, maybe a few, right? Well, it needed a lot. And the dependencies needed a lot of dependencies. And also some of the dependencies dependencies required many dependencies. Great! I naively jumped into this, and at any one point had no idea if I was packaging the last module or not (I'm sure you're familiar with this). Think I got the last one in the end though. But it's taken waaay more time than I anticipated. Also with 56 packages it becomes difficult to make sure each of them is on standard, so I assume some are below standard. It would be particularly interesting if someone with some Parcimonie experience could try it, and report if there's any missing features etc.. I haven't used it before and have just started it a few times to see that it can at least start. Back to the article for me :) Best, Petter --MP_/hk9L3hgiK1D3Hwcy9hEIz2x Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-gnu-Add-Parcimonie.patch =46rom fdf2b751d19a1c9397535cb5054557b1fd711d23 Mon Sep 17 00:00:00 2001 From: Petter Date: Sun, 30 Apr 2017 11:40:06 +0200 Subject: [PATCH] gnu: Add Parcimonie. * gnu/packages/gnupg.scm: New variables. * gnu/packages/perl.scm: Same. * gnu/packages/web.scm: Same. * gnu/packages/xml.scm: Same. --- gnu/packages/gnupg.scm | 125 +++++ gnu/packages/perl.scm | 1290 ++++++++++++++++++++++++++++++++++++++++++++= ++-- gnu/packages/web.scm | 279 ++++++++++- gnu/packages/xml.scm | 160 ++++++ 4 files changed, 1800 insertions(+), 54 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 3edb15770..df7d135a5 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -12,6 +12,7 @@ ;;; Copyright =C2=A9 2016 Mike Gerwitz ;;; Copyright =C2=A9 2016 Troy Sankey ;;; Copyright =C2=A9 2017 Leo Famulari +;;; Copyright =C2=A9 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,10 +50,15 @@ #:use-module (gnu packages security-token) #:use-module (gnu packages swig) #:use-module (gnu packages tls) + #:use-module (gnu packages base) + #:use-module (gnu packages xml) + #:use-module (gnu packages web) + #:use-module (gnu packages tor) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system perl) #:use-module (guix build-system python)) =20 (define-public libgpg-error @@ -745,3 +751,122 @@ qualities. To reconstruct a secret key, you re-enter= those bytes (whether by hand, OCR, QR code, or the like) and paperkey can use them to transform your existing public key into a secret key.") (license license:gpl2+))) + +(define-public parcimonie + (package + (name "parcimonie") + (version "0.10.2") + (source (origin + (method url-fetch) + (uri (string-append "https://gaffer.ptitcanardnoir.org/" + "intrigeri/files/parcimonie/App-Parcimon= ie-" + version ".tar.gz")) + (sha256 + (base32 + "1gni9wsjgyqh99pc087n33b06lk0kmxqb98y16a9bcrs4izzrsg0")))) + (build-system perl-build-system) + (inputs + `(("glib" ,glib) + ("gtk+" ,gtk+) + ("gnupg" ,gnupg) + ("pango" ,pango) + ("perl-config-general" ,perl-config-general) + ("perl-clone" ,perl-clone) + ("perl-data" ,perl-data) + ("perl-exporter-tiny" ,perl-exporter-tiny) + ("perl-file-homedir" ,perl-file-homedir) + ("perl-file-sharedir" ,perl-file-sharedir) + ("perl-file-which" ,perl-file-which) + ("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive) + ("perl-gnupg-interface" ,perl-gnupg-interface) + ("perl-ipc-system-simple" ,perl-ipc-system-simple) + ("perl-list-moreutils" ,perl-list-moreutils) + ("perl-libintl-perl" ,perl-libintl-perl) ; Locale::TextDomain + ("perl-lwp-online" ,perl-lwp-online) + ("perl-module-build" ,perl-module-build) + ("perl-module-pluggable-object" ,perl-module-pluggable) + ("perl-moo" ,perl-moo) + ("perl-moox-handlesvia" ,perl-moox-handlesvia) + ("perl-moox-late" ,perl-moox-late) + ("perl-moox-options" ,perl-moox-options) + ("perl-namespace-clean" ,perl-namespace-clean) + ("perl-net-dbus" ,perl-net-dbus) + ("perl-net-dbus-glib" ,perl-net-dbus-glib) + ("perl-path-tiny" ,perl-path-tiny) + ("perl-test-most" ,perl-test-most) + ("perl-test-trap" ,perl-test-trap) + ("perl-time-duration" ,perl-time-duration) + ("perl-time-duration-parse" ,perl-time-duration-parse) + ("perl-try-tiny" ,perl-try-tiny) + ("perl-type-tiny" ,perl-type-tiny) + ("perl-types-path-tiny" ,perl-types-path-tiny) + ("perl-unicode-linebreak" ,perl-unicode-linebreak) + ("perl-xml-parser" ,perl-xml-parser) + ("perl-xml-twig" ,perl-xml-twig) + ("torsocks" ,torsocks))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* + (string-append + (assoc-ref outputs "out") + "/lib/perl5/site_perl/5.24.0/" + "App/Parcimonie/GnuPG/Interface.pm") + (("gpg2") "gpg")) + =20 + (wrap-program (string-append + (assoc-ref outputs "out") + "/bin/parcimonie") + `("PERL5LIB" ":" + prefix (, + (string-append + (assoc-ref outputs "out") + "/lib/perl5/site_perl/5.24.0/:" + (getenv "PERL5LIB")))) + `("PATH" ":" + prefix (,(string-append + (assoc-ref inputs "torsocks") + "/bin/"))))))) + #:tests? #f)) ; gpg-connect-agent tries to create /homeless-shelter/ + (home-page "https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimoni= e/") + (synopsis "Incrementally refreshes a GnuPG keyring") + (description + "Parcimonie incrementaly refreshes a GnuPG keyring in a way that: +@enumerate +@item makes it hard to correlate her keyring content to an individual; +@item makes it hard to locate an individual based on an identifying subset= of her keyring content. +@end enumerate +Parcimonie is a daemon that fetches one key at a time using the Tor networ= k, waits a bit, changes the Tor circuit being used, and starts over.") + (license license:gpl1+))) + +(define-public perl-gnupg-interface + (package + (name "perl-gnupg-interface") + (version "0.52") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AL/ALEXMV/" + "GnuPG-Interface-" version ".tar.gz")) + (sha256 + (base32 + "0dgx8yhdsmhkazcrz14n4flrk1afv7azgl003hl4arxvi1d9yyi4")))) + (build-system perl-build-system) + (inputs + `(("which" ,which) + ("gpg" ,gnupg) + ("perl-data" ,perl-data) + ("perl-exporter-tiny" ,perl-exporter-tiny) + ("perl-list-moreutils" ,perl-list-moreutils) + ("perl-moo" ,perl-moo) + ("perl-moox-handlesvia" ,perl-moox-handlesvia) + ("perl-moox-late" ,perl-moox-late) + ("perl-type-tiny" ,perl-type-tiny))) + (arguments + `(#:tests? #f)) ; gpg: signing failed: No pinentry + (synopsis "Lorem Ipsum") + (description "Lorem Ipsum") + (home-page (string-append "http://search.cpan.org/~gward/" + "Getopt-Tabular-" version)) + (license license:perl-license))) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 3eb7815f2..76a5b7982 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -16,6 +16,7 @@ ;;; Copyright =C2=A9 2017 Marius Bakke ;;; Copyright =C2=A9 2017 humanitiesNerd ;;; Copyright =C2=A9 2017 Tobias Geerinckx-Rice +;;; Copyright =C2=A9 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,14 +34,18 @@ ;;; along with GNU Guix. If not, see . =20 (define-module (gnu packages perl) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix licenses) #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) + #:use-module (gnu packages glib) #:use-module (gnu packages perl-web) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xml) ; "expat" imported from licenses and xml + #:use-module (gnu packages web)) =20 ;;; ;;; Please: Try to add new module packages in alphabetic order. @@ -256,6 +261,27 @@ variable ANY_MOOSE to be Moose or Mouse.") configuration files and parsing command line arguments.") (license (package-license perl)))) =20 +(define-public perl-archive-extract +(package + (name "perl-archive-extract") + (version "0.80") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-" + version + ".tar.gz")) + (sha256 + (base32 + "1x15j1q6w6z8hqyqgap0lz4qbq2174wfhksy1fdd653ccbaw5jr5")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Archive-Extract") + (synopsis "Generic archive extracting mechanism") + (description "It allows you to extract any archive file of the type .tar= , .tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma= without having to worry how it does so, or use different interfaces for ea= ch type by using either perl modules, or commandline tools on your system.") + (license (package-license perl)))) + (define-public perl-archive-zip (package (name "perl-archive-zip") @@ -357,6 +383,51 @@ autovivification for some constructs and optionally th= rows a warning or an error when it would have happened.") (license (package-license perl)))) =20 +(define-public perl-b-keywords +(package + (name "perl-b-keywords") + (version "1.15") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-" + version + ".tar.gz")) + (sha256 + (base32 + "1nhdplmd0y69lnwyajg3anhk6pm13nm6qzm05nzpz8zl7j7fzlk5")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/B-Keywords") + (synopsis + "Lists of reserved barewords and symbol names") + (description "@code{B::Keywords} supplies several arrays of exportable k= eywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols, @@F= unctions, @@Barewords, @@TieIOMethods, @@UNIVERSALMethods and @@ExporterSym= bols}.") + (license license:gpl2))) + +(define-public perl-browser-open +(package + (name "perl-browser-open") + (version "0.04") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/C/CF/CFRANKS/Browser-Open-" + version + ".tar.gz")) + (sha256 + (base32 + "0rv80n5ihy9vnrzsc3l7wlk8880cwabiljrydrdnxq1gg0lk3sxc")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Browser-Open") + (synopsis "Open a browser in a given URL") + (description "The functions optionaly exported by this module allows you= to open URLs in the user browser. + +A set of known commands per OS-name is tested for presence, and the first = one found is executed. With an optional parameter, all known commands are = checked.") + (license (package-license perl)))) + (define-public perl-base (package (name "perl-base") @@ -708,6 +779,30 @@ cases where the clan modules are not classes derived f= rom each other, and thus the Carp.pm module doesn't help.") (license (package-license perl)))) =20 +(define-public perl-carp-always +(package + (name "perl-carp-always") + (version "0.13") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/F/FE/FERREIRA/Carp-Always-" + version + ".tar.gz")) + (sha256 + (base32 + "0i2rifkr7ybfcdsqana52487z7vxp2l5qdra0f6ik0ddhn6rzii1")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-base" ,perl-test-base))) + (home-page + "http://search.cpan.org/dist/Carp-Always") + (synopsis + "Warns and dies noisily with stack backtraces") + (description "This module is meant as a debugging aid. It can be used to= make a script complain loudly with stack backtraces when warn()ing or die(= )ing.") + (license (package-license perl)))) + (define-public perl-cddb-get (package (name "perl-cddb-get") @@ -727,6 +822,30 @@ the Carp.pm module doesn't help.") ;; Either GPLv2 or the "Artistic" license. (license (list gpl2 artistic2.0)))) =20 +(define-public perl-clipboard +(package + (name "perl-clipboard") + (version "0.13") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/K/KI/KING/Clipboard-" + version + ".tar.gz")) + (sha256 + (base32 + "12pc8q04nrqp2mvr74nrrkw4gkv7g4a1gq6smd8fhjs8naf1rgzf")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Clipboard") + (synopsis + "Cliboard - Copy and Paste with any OS") + (description "Who doesn't remember the first time they learned to copy a= nd paste, and generated an exponentially growing text document? Yes, that's= right, clipboards are magical. + +With Clipboard.pm, this magic is now trivial to access, in a cross-platfor= m-consistent API, from your Perl code.") + (license (package-license perl)))) + (define-public perl-class-accessor (package (name "perl-class-accessor") @@ -1069,6 +1188,45 @@ is run in place of the original method, with a hook = to easily call that original method.") (license (package-license perl)))) =20 +(define-public perl-class-refresh +(package + (name "perl-class-refresh") + (version "0.07") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DO/DOY/Class-Refresh-" + version + ".tar.gz")) + (sha256 + (base32 + "1cxyshgxpk98icwws2jpgix6m53qsn43c8izxqm5mcybam9h7c73")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-fatal" ,perl-test-fatal) + ("perl-test-requires" ,perl-test-requires))) + (inputs + `(("perl-class-load" ,perl-class-load) + ("perl-class-unload" ,perl-class-unload) + ("perl-devel-overrideglobalrequire" + ,perl-devel-overrideglobalrequire) + ("perl-moose" ,perl-moose) + ("perl-try-tiny" ,perl-try-tiny))) + (home-page + "http://search.cpan.org/dist/Class-Refresh") + (synopsis "Refresh your classes during runtime") + (description "During development, it is fairly common to cycle between +writing code and testing that code. Generally the testing happens within = the +test suite, but frequently it is more convenient to test things by hand wh= en +tracking down a bug, or when doing some exploratory coding. In many +situations, however, this becomes inconvenient - for instance, in a REPL, = or +in a stateful web application, restarting from the beginning after every c= ode +change can get pretty tedious. This module allows you to reload your +application classes on the fly, so that the code/test cycle becomes a lot +easier.") + (license (package-license perl)))) + (define-public perl-class-singleton (package (name "perl-class-singleton") @@ -1173,6 +1331,30 @@ objects.") "Clone-" version)) (license (package-license perl)))) =20 +(define-public perl-clone-pp + (package + (name "perl-clone-pp") + (version "1.07") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-" + version + ".tar.gz")) + (sha256 + (base32 + "15dkhqvih6rx9dnngfwwljcm9s8afb0nbyl2vdvhd8frnw4y31dz")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Clone-PP") + (synopsis "Recursively copy Perl datatypes") + (description "This module provides a general-purpose clone function to m= ake +deep copies of Perl data structures. It calls itself recursively to copy +nested hash, array, scalar and reference types, including tied variables a= nd +objects.") + (license (package-license perl)))) + (define-public perl-common-sense (package (name "perl-common-sense") @@ -1282,6 +1464,36 @@ options.") and writing of @code{.ini}-style configuration files.") (license (package-license perl)))) =20 +(define-public perl-config-ini-reader-ordered +(package + (name "perl-config-ini-reader-ordered") + (version "0.020") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RJ/RJBS/Config-INI-Reader-Ordered= -" + version + ".tar.gz")) + (sha256 + (base32 + "07gpp6q3l4i84vqx49f5fn626dwrxy07ld7j2zgaxrj8za54b12r")))) + (build-system perl-build-system) + (inputs + `(("perl-config-ini" ,perl-config-ini) + ("perl-mixin-linewise" ,perl-mixin-linewise) + ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict) + ("perl-sub-exporter" ,perl-sub-exporter))) + (home-page + "http://search.cpan.org/dist/Config-INI-Reader-Ordered") + (synopsis + ".ini-file parser that returns sections in order") + (description "@code{Config::INI::Reader::Ordered} is a subclass of +@code{Config::INI::Reader} which preserves section order. See +@code{Config::INI::Reader} for all documentation; the only difference is as +presented in the \"SYNOPSIS\".") + (license (package-license perl)))) + (define-public perl-context-preserve (package (name "perl-context-preserve") @@ -1305,6 +1517,28 @@ the context the subroutine would have seen if it wer= e the last statement in the caller.") (license (package-license perl)))) =20 +(define-public perl-cpan-changes +(package + (name "perl-cpan-changes") + (version "0.400002") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/H/HA/HAARG/CPAN-Changes-" + version + ".tar.gz")) + (sha256 + (base32 + "13dy78amkhwg278sv5im0ylyskhxpfivyl2aissqqih71nlxxvh1")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/CPAN-Changes") + (synopsis "Read and write Changes files") + (description "This module allows CPAN authors to write automated tests to +ensure their changelogs match the specification.") + (license (package-license perl)))) + (define-public perl-cpan-meta-check (package (name "perl-cpan-meta-check") @@ -1582,6 +1816,98 @@ on one page. This results in wanting to page throug= h various pages of data. The maths behind this is unfortunately fiddly, hence this module.") (license (package-license perl)))) =20 +(define-public perl-data + (package + (name "perl-data") + (version "0.002009") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MA/MATTP/" + "Data-Perl-" version ".tar.gz")) + (sha256 + (base32 + "12vgqdjbfqf2qfg21x22wg88xnwxfbw2ki3qzcb3nb0chwjj4axn")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-deep" ,perl-test-deep) + ("perl-test-output" ,perl-test-output) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-class-method-modifiers" ,perl-class-method-modifiers) + ("perl-list-moreutils" ,perl-list-moreutils) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-role-tiny" ,perl-role-tiny) + ("perl-strictures" ,perl-strictures))) + (home-page "http://search.cpan.org/dist/Data-Perl") + (synopsis "Base classes wrapping fundamental Perl data types") + (description "Collection of classes that wrap fundamental data types t= hat +exist in Perl. These classes and methods as they exist today are an attem= pt +to mirror functionality provided by Moose's Native Traits. One important +thing to note is all classes currently do no validation on constructor +input.") + (license (package-license perl)))) + +(define-public perl-data-printer + (package + (name "perl-data-printer") + (version "0.39") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GA/GARU/Data-Printer-" + version + ".tar.gz")) + (sha256 + (base32 + "16b449vargvk39f7m4v23lhrzlk2500x2mcp0njhxx2y78s4i616")))) + (build-system perl-build-system) + (inputs + `(("perl-clone-pp" ,perl-clone-pp) + ("perl-file-homedir" ,perl-file-homedir) + ("perl-package-stash" ,perl-package-stash) + ("perl-sort-naturally" ,perl-sort-naturally))) + (home-page + "http://search.cpan.org/dist/Data-Printer") + (synopsis + "Colored pretty-print of Perl data structures and objects") + (description "Display Perl variables and objects on screen, properly +formatted (to be inspected by a human).") + (license (package-license perl)))) + +(define-public perl-data-record + (package + (name "perl-data-record") + (version "0.002") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/O/OV/OVID/" + "Data-Record-" version ".tar.gz")) + (sha256 + (base32 + "1gwyhjwg4lrnfsn8wb6r8msb4yh0y4wca4mz3z120xbnl9nycshx")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-exception" ,perl-test-exception))) + (inputs + `(("perl-module-build" ,perl-module-build) + ("perl-sub-uplevel" ,perl-sub-uplevel))) + (home-page "http://search.cpan.org/dist/Data-Record") + (synopsis "\"split\" on steroids") + (description "Sometimes we need data split into records and a simple s= plit +on the input record separator @code{$/} or some other value fails because = the +values we're splitting on may allowed in other parts of the data. Perhaps +they're quoted. Perhaps they're embedded in other data which should not be +split up. + +This module allows you to specify what you wish to split the data on, but = also +speficy an \"unless\" regular expression. If the text in question matches= the +\"unless\" regex, it will not be split there. This allows us to do things= like +split on newlines unless newlines are embedded in quotes.") + (license (package-license perl)))) + (define-public perl-data-stag (package (name "perl-data-stag") @@ -2262,6 +2588,33 @@ you can tell it to compile a C source file with opti= onal linker flags.") equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.") (license (package-license perl)))) =20 +(define-public perl-devel-hide +(package + (name "perl-devel-hide") + (version "0.0009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/F/FE/FERREIRA/Devel-Hide-" + version + ".tar.gz")) + (sha256 + (base32 + "1phnzbw58v6551nhv6sg86m72nx9w5j4msh1hg4jvkakkq5w9pki")))) + (build-system perl-build-system) + (inputs + `(("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page + "http://search.cpan.org/dist/Devel-Hide") + (synopsis + "Forces the unavailability of specified Perl modules (for testing)") + (description "Given a list of Perl modules/filenames, this module makes +require and use statements fail (no matter the specified files/modules are +installed or not).") + (license (package-license perl)))) + (define-public perl-devel-lexalias (package (name "perl-devel-lexalias") @@ -2309,6 +2662,30 @@ operators for a given class (or object), including w= here in the inheritance hierarchy the overloads are declared and where the code implementing it is= .") (license (package-license perl)))) =20 +(define-public perl-devel-overrideglobalrequire + (package + (name "perl-devel-overrideglobalrequire") + (version "0.001") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DA/DAGOLDEN/Devel-OverrideGlobalR= equire-" + version + ".tar.gz")) + (sha256 + (base32 + "1yayg0838b58dqg8acahhw885s0yvchjyf2fm7s2ladfwcnqk487")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Devel-OverrideGlobalRequire") + (synopsis + "Override @code{CORE::GLOBAL::require} safely") + (description "This module overrides @code{CORE::GLOBAL::require} with a = code +reference in a way that plays nice with any existing overloading and ensur= es +the right calling package is in scope.") + (license (package-license perl)))) + (define-public perl-devel-partialdump (package (name "perl-devel-partialdump") @@ -2566,7 +2943,7 @@ also known as JIS 2000.") part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLU= S\", \"BIG5EXT\", \"CCCII\", \"EUC-TW\", \"CNS11643-*\", \"GB18030\", and \"UNISYS\".") - (license expat))) + (license license:expat))) =20 (define-public perl-env-path (package @@ -2868,6 +3245,41 @@ It is really just boilerplate code that you would ha= ve written yourself.") changes made to any file.") (license artistic2.0))) =20 +(define-public perl-file-configdir + (package + (name "perl-file-configdir") + (version "0.017") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/" + "File-ConfigDir-" version ".tar.gz")) + (sha256 + (base32 + "0y3nx93r4m7fl07zzz1ql7jm88mskx6pnd54lrrb7pwfmd8nwbx7")))) + (build-system perl-build-system) + (inputs + `(("perl-file-homedir" ,perl-file-homedir) + ("perl-list-moreutils" ,perl-list-moreutils))) + (home-page "http://search.cpan.org/dist/File-ConfigDir") + (synopsis "Get directories of configuration files") + (description "This module is a helper for installing, reading and find= ing +configuration file locations. It's intended to work in every supported Pe= rl5 +environment and will always try to Do The Right Thing(tm). + +@code{File::ConfigDir} is a module to help out when perl modules (especial= ly +applications) need to read and store configuration files from more than one +location. Writing user configuration is easy thanks to @code{File::HomeDir= }, +but what when the system administrator needs to place some global +configuration or there will be system related configuration (in /etc on +UNIX(tm) or $ENV@{windir@} on Windows(tm)) and some network configuration = in nfs +mapped /etc/p5-app or $ENV@{ALLUSERSPROFILE@} . \"\\Application Data\\p5-a= pp\", +respectively. + +@code{File::ConfigDir} has no \"do what I mean\" mode - it's entirely up to +the user to pick the right directory for each particular application.") + (license (package-license perl)))) + (define-public perl-file-copy-recursive (package (name "perl-file-copy-recursive") @@ -3285,7 +3697,7 @@ single-letter approach, is provided but not enabled b= y default.") (define-public perl-getopt-long-descriptive (package (name "perl-getopt-long-descriptive") - (version "0.098") + (version "0.100") (source (origin (method url-fetch) @@ -3293,10 +3705,11 @@ single-letter approach, is provided but not enabled= by default.") "Getopt-Long-Descriptive-" version ".tar.gz")) (sha256 (base32 - "08lphvqshcajvvd6z4rvcda6rx5kz8pysrsip4nfv2mbks95p9ma")))) + "1dpz5nhg5glmrpq46nkc90dg19cfqfjspqwhfvihsqyi229yfl8l")))) (build-system perl-build-system) (native-inputs - `(("perl-test-fatal" ,perl-test-fatal) + `(("perl-cpan-meta-check" ,perl-cpan-meta-check) + ("perl-test-fatal" ,perl-test-fatal) ("perl-test-warnings" ,perl-test-warnings))) (propagated-inputs `(("perl-params-validate" ,perl-params-validate) @@ -3373,6 +3786,37 @@ objects, which execute a given code block when destr= oyed, and scoped guards, which are tied to the scope exit.") (license (package-license perl)))) =20 +(define-public perl-hash-fieldhash + (package + (name "perl-hash-fieldhash") + (version "0.15") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GF/GFUJI/Hash-FieldHash-" + version + ".tar.gz")) + (sha256 + (base32 + "1wg8nzczfxif55j2nbymbhyd25pjy7dqs4bvd6jrcds3ll3mflaw")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-leaktrace" ,perl-test-leaktrace))) + (home-page + "http://search.cpan.org/dist/Hash-FieldHash") + (synopsis + "Lightweight field hash for inside-out objects") + (description "@code{Hash::FieldHash} provides the field hash mechanism w= hich +supports the inside-out technique. + +You may know @code{Hash::Util::FieldHash}. It's a very useful module, but = too +complex to understand the functionality and only available in +5.10. @code{H::U::F::Compat} is available for pre-5.10, but it is too slow= to +use.") + (license (package-license perl)))) + (define-public perl-hash-merge (package (name "perl-hash-merge") @@ -3505,29 +3949,83 @@ easier to develop interactive applications: is_inte= ractive(), interactive(), and busy().") (license (package-license perl)))) =20 -(define-public perl-io-string +(define-public perl-io-pager (package - (name "perl-io-string") - (version "1.08") + (name "perl-io-pager") + (version "0.37") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/" - "IO-String-" version ".tar.gz")) + (uri (string-append + "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-" + version + ".tgz")) (sha256 (base32 - "18755m410yl70s17rgq3m0hyxl8r5mr47vsq1rw7141d8kc4lgra")))) + "0xmqyyvm06d26l2pyh874343b1hjmimdx1ff2r66f1h34yv759fg")))) (build-system perl-build-system) - (home-page "http://search.cpan.org/~gaas/IO-String-1.08/") - (synopsis "Emulate file interface for in-core strings") - (description "IO::String is an IO::File (and IO::Handle) compatible cl= ass -that reads or writes data from in-core strings.") + (inputs + `(("perl-file-which" ,perl-file-which))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-pager + (lambda* (#:key inputs #:allow-other-keys) + (setenv "PAGER" "cat")))))) + (home-page + "http://search.cpan.org/dist/IO-Pager") + (synopsis + "Select a pager and pipe text to it if destination is a TTY") + (description "@code{IO::Pager} can be used to locate an available page= r and +set the PAGER environment variable. It is also a factory for creating I/O +objects such as @code{IO::Pager::Buffered} and @code{IO::Pager::Unbuffered= }.") (license (package-license perl)))) =20 (define-public perl-io-stringy (package (name "perl-io-stringy") - (version "2.110") + (version "2.111") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DS/DSKOLL/" + "IO-Stringy-" version ".tar.gz")) + (sha256 + (base32 + "0c437zvzpqi8f0h3nmblwdi2bvsb92b7g30fndr7my9qnky35izw")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/IO-stringy") + (synopsis "Write a file which is updated atomically") + (description "This toolkit primarily provides modules for performing b= oth +traditional and object-oriented i/o) on things *other* than normal +filehandles; in particular, @code{IO::Scalar}, @code{IO::ScalarArray}, and +@code{IO::Lines}.") + (license (package-license perl)))) + +(define-public perl-io-string + (package + (name "perl-io-string") + (version "1.08") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/" + "IO-String-" version ".tar.gz")) + (sha256 + (base32 + "18755m410yl70s17rgq3m0hyxl8r5mr47vsq1rw7141d8kc4lgra")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/~gaas/IO-String-1.08/") + (synopsis "Emulate file interface for in-core strings") + (description "IO::String is an IO::File (and IO::Handle) compatible cl= ass +that reads or writes data from in-core strings.") + (license (package-license perl)))) + +(define-public perl-io-stringy + (package + (name "perl-io-stringy") + (version "2.110") (source (origin (method url-fetch) @@ -3559,7 +4057,7 @@ filehandles; in particular, IO::Scalar, IO::ScalarArr= ay, and IO::Lines.") (home-page "http://search.cpan.org/~toddr/IO-Tty/") (synopsis "Perl interface to pseudo ttys") (description - "This package provides the 'IO::Pty' and 'IO::Tty' Perl interfaces to + "This package provides the @code{IO::Pty} and @code{IO::Tty} Perl int= erfaces to pseudo ttys.") (license (package-license perl)))) =20 @@ -3778,6 +4276,28 @@ either uses the first module it finds or throws an e= rror.") versa.") (license (package-license perl)))) =20 +(define-public perl-libintl-perl + (package + (name "perl-libintl-perl") + (version "1.26") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GU/GUIDO/" + "libintl-perl-" version ".tar.gz")) + (sha256 + (base32 + "0l1y0pw8k4zy703kwbrhjmmjlc2x96camdkbz4n8bhi4v2lyla1z")))) + (build-system perl-build-system) + (inputs + `(("perl-file-sharedir" ,perl-file-sharedir))) + (home-page "http://search.cpan.org/dist/libintl-perl") + (synopsis "High-Level Interface to Uniforum Message Translation") + (description "@code{List::SomeUtils} provides some trivial but commonly +portions of this module couldn't be compiled on this machine.") + (license license:gpl3))) + (define-public perl-log-any (package (name "perl-log-any") @@ -4970,6 +5490,257 @@ all coercions and constraints are inherited.") constraint with coercion to load the class.") (license (package-license perl)))) =20 +(define-public perl-moox +(package + (name "perl-moox") + (version "0.101") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GE/GETTY/MooX-" + version + ".tar.gz")) + (sha256 + (base32 + "1m9jvrqcidiabdih211byadwnnkygafq54r2ljnf1akqdrjimy9g")))) + (build-system perl-build-system) + (inputs + `(("perl-data-optlist" ,perl-data-optlist) + ("perl-import-into" ,perl-import-into) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo))) + (home-page "http://search.cpan.org/dist/MooX") + (synopsis + "Using Moo and MooX:: packages the most lazy way") + (description "Using Moo and MooX:: packages the most lazy way.") + (license (package-license perl)))) + +(define-public perl-moox-cmd +(package + (name "perl-moox-cmd") + (version "0.015") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-" + version + ".tar.gz")) + (sha256 + (base32 + "0145ha8vnc6sbg82ps96wj716bznq2qamm657bia9ji2yxhbnsam")))) + (build-system perl-build-system) + (native-inputs + `(("perl-capture-tiny" ,perl-capture-tiny) + ("perl-list-moreutils" ,perl-list-moreutils))) + (inputs + `(("perl-module-pluggable" ,perl-module-pluggable) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo) + ("perl-package-stash" ,perl-package-stash) + ("perl-params-util" ,perl-params-util) + ("perl-regexp-common" ,perl-regexp-common))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-envvar + (lambda* (#:key inputs #:allow-other-keys) + (setenv "PERL5LIB" + (string-append + (assoc-ref inputs "perl-list-moreutils= ") + ":" (getenv "PERL5LIB")))))) + #:tests? #f)) ; Error: Could not find sub 'first_result' + ; exported by List::MoreUtils + (home-page + "http://search.cpan.org/dist/MooX-Cmd") + (synopsis + "Giving an easy Moo style way to make command organized CLI apps") + (description "Eases the writing of command line utilities, accepting +commands and subcommands and so on. These commands can form a tree, which = is +mirrored in the package structure. On invocation each command along the pa= th +through the tree (starting from the toplevel command through to the most +specific one) is instanciated.") + (license (package-license perl)))) + +(define-public perl-moox-configfromfile + (package + (name "perl-moox-configfromfile") + (version "0.007") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/" + "MooX-ConfigFromFile-" version ".tar.gz")) + (sha256 + (base32 + "0qq1vlcrnhgisww3ddzbc3y96y87ij5r6rggx38aqcsd3v89pcqm")))) + (build-system perl-build-system) + (native-inputs + `(("perl-hash-merge" ,perl-hash-merge) + ("perl-json" ,perl-json) + ("perl-moox-cmd" ,perl-moox-cmd))) +; ("perl-moox-options" ,perl-moox-options))) ; hangs + (inputs + `(("perl-config-any" ,perl-config-any) + ("perl-file-configdir" ,perl-file-configdir) + ("perl-file-find-rule" ,perl-file-find-rule) + ("perl-hash-merge" ,perl-hash-merge) + ("perl-moo", perl-moo) + ("perl-moox-file-configdir" ,perl-moox-file-configdir) + ("perl-namespace-clean" ,perl-namespace-clean))) + (home-page "http://search.cpan.org/dist/MooX-ConfigFromFile") + (synopsis "Moo eXtension for initializing objects from config file") + (description "This module is intended to easy load initialization valu= es +for attributes on object construction from an appropriate config file. The +building is done in @code{MooX::ConfigFromFile::Role} - using +@code{MooX::ConfigFromFile} ensures the role is applied.") + (license (package-license perl)))) + +(define-public perl-moox-file-configdir + (package + (name "perl-moox-file-configdir") + (version "0.005") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RE/RESHACK/" + "MooX-File-ConfigDir-" version ".tar.gz")) + (sha256 + (base32 + "1vvmgygv1i6n98wp26x1112asmwrpy6v089j46l88if3lc6zk3l8")))) + (build-system perl-build-system) + (inputs + `(("perl-file-configdir" ,perl-file-configdir) + ("perl-moo-role" ,perl-moo) + ("perl-namespace-clean" ,perl-namespace-clean))) + (home-page "http://search.cpan.org/dist/MooX-File-ConfigDir") + (synopsis "Moo eXtension for @code{File::ConfigDir}") + (description "This module is a helper for easily find configuration fi= le +locations. Whether to use this information for find a suitable place for +installing them or looking around for finding any piece of settings, heavi= ly +depends on the requirements.") + (license (package-license perl)))) + +(define-public perl-moox-handlesvia + (package + (name "perl-moox-handlesvia") + (version "0.001008") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MA/MATTP/" + "MooX-HandlesVia-" version ".tar.gz")) + (sha256 + (base32 + "137yrjn2jmw4cj0fjdajnkjgqr5arnpq72kbm6w66xskncinz55h")))) + (build-system perl-build-system) + (native-inputs + `(("perl-moox-types-mooselike" ,perl-moox-types-mooselike) + ("perl-test-exception" ,perl-test-exception) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-data" ,perl-data) + ("perl-list-moreutils" ,perl-list-moreutils) + ("perl-class-method-modifiers" ,perl-class-method-modifiers) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo) + ("perl-role-tiny" ,perl-role-tiny))) + (home-page "http://search.cpan.org/dist/MooX-HandlesVia") + (synopsis "NativeTrait-like behavior for Moo") + (description "Extension of Moo's 'handles' attribute functionality. It +provides a means of proxying functionality from an external class to the g= iven +atttribute. This is most commonly used as a way to emulate 'Native Trait' +behavior that has become commonplace in Moose code, for which there was no= Moo +alternative.") + (license (package-license perl)))) + +(define-public perl-moox-late + (package + (name "perl-moox-late") + (version "0.015") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-lat= e-" + version ".tar.gz")) + (sha256 + (base32 + "1gzvd9zws3v09sh0xx6srmw4jwi22fnrya4zcsc8dykn62pjclqp")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-requires" ,perl-test-requires) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-data" ,perl-data) + ("perl-moo" ,perl-moo) + ("perl-moosex-types" ,perl-moosex-types) + ("perl-moox" ,perl-moox) + ("perl-moox-handlesvia" ,perl-moox-handlesvia) + ("perl-type-tiny" ,perl-type-tiny))) + (home-page "http://search.cpan.org/dist/MooX-late") + (synopsis "Easily translate Moose code to Moo") + (description "Moo is a light-weight object oriented programming framew= ork +which aims to be compatible with Moose. It does this by detecting when Moo= se +has been loaded, and automatically \"inflating\" its classes and roles to = full +Moose classes and roles. This way, Moo classes can consume Moose roles, Mo= ose +classes can extend Moo classes, and so forth.") + (license perl-license))) + +(define-public perl-moox-options + (package + (name "perl-moox-options") + (version "4.023") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/C/CE/CELOGEEK/" + "MooX-Options-" version ".tar.gz")) + (sha256 + (base32 + "14kz51hybxx8vcm4wg36f0qa64aainw7i2sqmqxg20c3qvczyvj2")))) + (build-system perl-build-system) + (native-inputs + `(("perl-capture-tiny" ,perl-capture-tiny) + ("perl-import-into" ,perl-import-into) + ("perl-module-build" ,perl-module-build) +; ("perl-mo" ,perl-mo) ; not packaged + ("perl-moo" ,perl-moo) + ("perl-moose" ,perl-moose) +; ("perl-moox-cmd" ,perl-moox-cmd) ; hangs + ("perl-namespace-clean" ,perl-namespace-clean) + ("perl-role-tiny" ,perl-role-tiny) + ("perl-test-requires" ,perl-test-requires) + ("perl-test-trap" ,perl-test-trap) + ("perl-test-pod" ,perl-test-pod) + ("perl-try-tiny" ,perl-try-tiny))) + (inputs + `(("perl-config-any" ,perl-config-any) + ("perl-moox-configfromfile" ,perl-moox-configfromfile) + ("perl-data-record" ,perl-data-record) + ("perl-file-configdir" ,perl-file-configdir) + ("perl-file-find-rule" ,perl-file-find-rule) + ("perl-file-sharedir" ,perl-file-sharedir) + ("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive) + ("perl-json-maybexs" ,perl-json-maybexs) + ("perl-libintl-perl" ,perl-libintl-perl) + ("perl-moox-configfromfile" ,perl-moox-configfromfile) + ("perl-moox-file-configdir" ,perl-moox-file-configdir) + ("perl-path-class" ,perl-path-class) + ("perl-regexp-common" ,perl-regexp-common) + ("perl-term-size-any" ,perl-term-size-any) + ("perl-unicode-linebreak" ,perl-unicode-linebreak))) + (home-page "http://search.cpan.org/dist/MooX-Options") + (synopsis "Explicit Options eXtension for Object Class") + (description "Create a command line tool with your Mo, Moo, Moose obje= cts. + +Everything is explicit. You have an option keyword to replace the usual h= as +to explicitly use your attribute into the command line. + +The option keyword takes additional parameters and uses +@code{Getopt::Long::Descriptive} to generate a command line tool.") + (license (package-license perl)))) + (define-public perl-moox-types-mooselike (package (name "perl-moox-types-mooselike") @@ -5148,6 +5919,61 @@ cycle. Functions called in the package itself will = still be bound by their name, but they won't show up as methods on your class or instances.") (license (package-license perl)))) =20 +(define-public perl-net-dbus +(package + (name "perl-net-dbus") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-" + version + ".tar.gz")) + (sha256 + (base32 + "0sg2w147b9r9ykfzjs7y9qxry73xkjnhnk4qf95kfv79p5nnk4c3")))) + (build-system perl-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("perl-cpan-changes" ,perl-cpan-changes) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (inputs + `(("dbus" ,dbus) + ("perl-xml-parser" ,perl-xml-parser) + ("perl-xml-twig" ,perl-xml-twig))) + (home-page + "http://search.cpan.org/dist/Net-DBus") + (synopsis "Extension for the DBus bindings") + (description "Net::DBus provides a Perl API for the DBus message system.= The +DBus Perl interface is currently operating against the 0.32 development +version of DBus, but should work with later versions too, providing the API +changes have not been too drastic.") + (license perl-license))) + +(define-public perl-net-dbus-glib + (package + (name "perl-net-dbus-glib") + (version "0.33.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DA/DANBERR/" + "Net-DBus-GLib-" version ".tar.gz")) + (sha256 + (base32 + "1z4mbv8z0rad604xahijpg5szzi8qak07hbahh230z4jf96fkxvj")))) + (build-system perl-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("dbus-glib" ,dbus-glib))) + (home-page "http://search.cpan.org/~danberr/Net-DBus-GLib-0.33.0/") + (synopsis "Perl extension for the DBus GLib bindings") + (description "Provides an extension to the @code{Net::DBus} module all= owing integration with the GLib mainloop. To integrate with the main loop,= simply get a connection to the bus via the methods in @code{Net::DBus::GLi= b} rather than the usual @code{Net::DBus} module. That's it - every other = API remains the same.") + (license (list gpl2+ perl-license)))) + (define-public perl-net-statsd (package (name "perl-net-statsd") @@ -5618,6 +6444,45 @@ Module::Build project, but has been externalized her= e for general use.") "Probe-Perl-" version)) (license (package-license perl)))) =20 +(define-public perl-proc-invokeeditor + (package + (name "perl-proc-invokeeditor") + (version "1.07") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MS/MSTEVENS/Proc-InvokeEditor-" + version + ".tar.gz")) + (sha256 + (base32 + "1ahc41s06bbq9y37706qci5k89fbnspmyldlb8srlaqibsqqm37x")))) + (build-system perl-build-system) + (inputs + `(("perl-carp-assert" ,perl-carp-assert))) + (arguments + '(#:tests? #f)) ; Needs an editor + (home-page + "http://search.cpan.org/dist/Proc-InvokeEditor") + (synopsis + "Interface to external editor from perl") + (description "This module provides the ability to supply some text to an +external text editor, have it edited by the user, and retrieve the results. + +The @code{File::Temp} module is used to provide secure, safe temporary fil= es, +and @code{File::Temp} is set to its highest available level of security. = This +may cause problems on some systems where no secure temporary directory is +available. + +When the editor is started, no subshell is used. Your path will be scanne= d to +find the binary to use for each editor if the string given does not exist = as a +file, and if a named editor contains whitespace, eg) if you try to use the +editor xemacs -nw, then the string will be split on whitespace and anything +after the editor name will be passed as arguments to your editor. A shell= is +not used but this should cover most simple cases.") + (license (package-license perl)))) + (define-public perl-readonly (package (name "perl-readonly") @@ -5665,29 +6530,6 @@ codes.") ;; Quad-licensed: Perl Artistic, Perl Artistic 2.0, X11, and BSD. (license (list (package-license perl) x11 bsd-3)))) =20 -(define-public perl-role-tiny - (package - (name "perl-role-tiny") - (version "1.003004") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/" - "Role-Tiny-" version ".tar.gz")) - (sha256 - (base32 - "0ak60hakn0ixmsiw403si0lf5pagq5r6wjgl7p0pr979nlcikfmd")))) - (build-system perl-build-system) - (native-inputs - `(("perl-namespace-autoclean" ,perl-namespace-autoclean) - ("perl-test-fatal" ,perl-test-fatal))) - (propagated-inputs - `(("perl-class-method-modifiers" ,perl-class-method-modifiers))) - (home-page "http://search.cpan.org/dist/Role-Tiny") - (synopsis "Roles, as a slice of Moose") - (description "Role::Tiny is a minimalist role composition tool.") - (license (package-license perl)))) - (define-public perl-safe-isa (package (name "perl-safe-isa") @@ -5811,6 +6653,28 @@ compact.") arrays by one or multiple calculated keys.") (license (package-license perl)))) =20 +(define-public perl-sort-naturally + (package + (name "perl-sort-naturally") + (version "1.03") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-" + version + ".tar.gz")) + (sha256 + (base32 + "0ip7q5g8d3lr7ri3ffcbrpk1hzzsiwgsn14k10k7hnjphxf1raza")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Sort-Naturally") + (synopsis + "Sort lexically, but sort numeral parts numerically") + (description "This module exports two functions, @code{nsort} and @code{= ncmp}; they are used in implementing my idea of a \"natural sorting\" algor= ithm. Under natural sorting, numeric substrings are compared numerically, = and other word-characters are compared lexically.") + (license (package-license perl)))) + (define-public perl-spiffy (package (name "perl-spiffy") @@ -6331,6 +7195,79 @@ other terminal related features, including retrieval= /modification of the screen size, and retrieval/modification of the control characters.") (license (package-license perl)))) =20 +(define-public perl-term-size-any + (package + (name "perl-term-size-any") + (version "0.002") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/" + "Term-Size-Any-" version ".tar.gz")) + (sha256 + (base32 + "1lnynd8pwjp3g85bl4nav6yigg2lag3sx5da989j7a733bdmzyk4")))) + (build-system perl-build-system) + (inputs + `(("perl-devel-hide" ,perl-devel-hide) + ("perl-term-size-perl" ,perl-term-size-perl))) + (home-page "http://search.cpan.org/dist/Term-Size-Any") + (synopsis "Retrieve terminal size") + (description "This is a unified interface to retrieve terminal size. = It +loads one module of a list of known alternatives, each implementing some w= ay +to get the desired terminal information. This loaded module will actually= do +the job on behalf of @code{Term::Size::Any}.") + (license (package-license perl)))) + +(define-public perl-term-size-perl + (package + (name "perl-term-size-perl") + (version "0.029") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/" + "Term-Size-Perl-" version ".tar.gz")) + (sha256 + (base32 + "1rvm91bhdlxfwx5zka023p7szf2s7gm16wl27qiivvj66svsl6lc")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Term-Size-Perl") + (synopsis "Perl extension for retrieving terminal size (Perl version)") + (description "Yet another implementation of @code{Term::Size}. Now in +pure Perl, with the exception of a C probe run on build time.") + (license (package-license perl)))) + +(define-public perl-termreadkey + (package + (name "perl-termreadkey") + (version "2.14") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/K/KJ/KJALB/TermReadKey-" + version + ".tar.gz")) + (sha256 + (base32 + "1a69ainw5z8i6kmk1yh4rbqm4l6fga29kbvqv808r7w8v661a2b0")))) + (build-system perl-build-system) + (arguments + '(#:tests? #f)) ; Needs terminal + (home-page + "http://search.cpan.org/dist/TermReadKey") + (synopsis + "A perl module for simple terminal control") + (description "@code{Term::ReadKey} is a compiled perl module dedicated= to +providing simple control over terminal driver modes (cbreak, raw, cooked, +etc.,) support for non-blocking reads, if the architecture allows, and some +generalized handy functions for working with terminals. One of the main g= oals +is to have the functions as portable as possible, so you can just plug in +\"use Term::ReadKey\" on any architecture and have a good likelihood of it +working.") + (license (package-license perl)))) + (define-public perl-test-base (package (name "perl-test-base") @@ -6989,6 +7926,35 @@ makes fork(2) safe to use in test cases.") "Test-Simple-" version)) (license (package-license perl)))) =20 +(define-public perl-test-taint + (package + (name "perl-test-taint") + (version "1.06") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Taint-" + version + ".tar.gz")) + (sha256 + (base32 + "01rip5d7gdr1c7lq6yczzkqfd0500nfa977ryigylj6jj75526vj")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-Taint") + (synopsis "Checks for taintedness of variables") + (description "Tainted data is data that comes from an unsafe source, s= uch as +the command line, or, in the case of web apps, any GET or POST transaction= s. +Read the perlsec man page for details on why tainted data is bad, and how = to +untaint the data. + +When you're writing unit tests for code that deals with tainted data, you'= ll +want to have a way to provide tainted data for your routines to handle, and +easy ways to check and report on the taintedness of your data, in standard +@code{Test::More} style.") + (license (package-license perl)))) + (define-public perl-test-tester (package (name "perl-test-tester") @@ -7690,6 +8656,97 @@ that are designed to minimize common mistakes with e= val blocks, and nothing else.") (license x11))) =20 +(define-public perl-type-tie + (package + (name "perl-type-tie") + (version "0.009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tie-" + version + ".tar.gz")) + (sha256 + (base32 + "1wv32kd7gx4kfyvzs13y029f49qbbji991wawvarac7rlz09wpan")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-fatal" ,perl-test-fatal) + ("perl-test-requires" ,perl-test-requires))) + (inputs + `(("perl-exporter-tiny" ,perl-exporter-tiny) + ("perl-hash-fieldhash" ,perl-hash-fieldhash))) + (home-page + "http://search.cpan.org/dist/Type-Tie") + (synopsis "tie a variable to a type constraint") + (description "This module exports a single function: @code{ttie}. ttie t= ies a variable to a type constraint, ensuring that whatever values stored i= n the variable will conform to the type constraint. If the type constraint = has coercions, these will be used if necessary to ensure values assigned to= the variable conform.") + (license (package-license perl)))) + +(define-public perl-type-tiny + (package + (name "perl-type-tiny") + (version "1.000006") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/T/TO/TOBYINK/" + "Type-Tiny-" version ".tar.gz")) + (sha256 + (base32 + "0wn0pf3kzfdaa1ygj8gc1qjfifs5rf21a7xzgvr6hmavwfgs6qdw")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-warnings" ,perl-test-warnings))) + (inputs + `(("perl-devel-lexalias" ,perl-devel-lexalias) + ("perl-devel-stacktrace" ,perl-devel-stacktrace) + ("perl-exporter-tiny" ,perl-exporter-tiny) + ("perl-moo" ,perl-moo) + ("perl-moose" ,perl-moose) + ("perl-mouse" ,perl-mouse) + ("perl-reply" ,perl-reply) + ("perl-sub-name" ,perl-sub-name) + ("perl-type-tie" ,perl-type-tie) + ("perl-type-tiny-xs" ,perl-type-tiny-xs))) + (home-page "http://search.cpan.org/dist/Type-Tiny") + (synopsis "Tiny, yet Moo(se)-compatible type constraint") + (description "@code{Type::Tiny} is a tiny class for creating Moose-like +type constraint objects which are compatible with Moo, Moose and Mouse. + +Maybe now we won't need to have separate MooseX, MouseX and MooX versions = of +everything? We can but hope... + +This documents the internals of @code{Type::Tiny}. @code{Type::Tiny::Manua= l} +is a better starting place if you're new.") + (license perl-license))) + +(define-public perl-type-tiny-xs + (package + (name "perl-type-tiny-xs") + (version "0.012") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-" + version + ".tar.gz")) + (sha256 + (base32 + "05nbr898cvjjh1wsy55l84zasx65gijdxc6dnn558ihns8zx6gm9")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Type-Tiny-XS") + (synopsis + "Provides an XS boost for some of @code{Type::Tiny}'s built-in type c= onstraints") + (description "This module is optionally used by @code{Type::Tiny} 0.04= 5_03 and +above to provide faster, C-based implementations of some type +constraints. (This package has only core dependencies, and does not depend= on +@code{Type::Tiny}, so other data validation frameworks might also consider= using +it!)") + (license perl-license))) + (define-public perl-types-serialiser (package (name "perl-types-serialiser") @@ -7750,7 +8807,7 @@ common serialisation formats such as JSON or CBOR.") Unicode data.") ;; The file Unicode/Collate/allkeys.txt is released under the Expat ;; license. - (license (list (package-license perl) expat)))) + (license (list (package-license perl) license:expat)))) =20 (define-public perl-unicode-linebreak (package @@ -8102,6 +9159,90 @@ system---most of the @code{Module::Build} code is pu= re-Perl.") files, using JSON::PP and/or CPAN::Meta::YAML.") (license (package-license perl)))) =20 +(define-public perl-reply + (package + (name "perl-reply") + (version "0.42") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DO/DOY/Reply-" + version + ".tar.gz")) + (sha256 + (base32 + "1wkrmc1ksy4zdribj305mmwmsvc2x9283979qh8awm3slx2jmnja")))) + (build-system perl-build-system) + (inputs + `(("perl-app-nopaste" ,perl-app-nopaste) + ("perl-b-keywords" ,perl-b-keywords) + ("perl-carp-always" ,perl-carp-always) + ("perl-class-refresh" ,perl-class-refresh) + ("perl-config-ini" ,perl-config-ini) + ("perl-config-ini-reader-ordered" + ,perl-config-ini-reader-ordered) + ("perl-data-dump" ,perl-data-dump) + ("perl-data-printer" ,perl-data-printer) + ("perl-devel-lexalias" ,perl-devel-lexalias) + ("perl-eval-closure" ,perl-eval-closure) + ("perl-file-homedir" ,perl-file-homedir) + ("perl-io-pager" ,perl-io-pager) + ("perl-mixin-linewise" ,perl-mixin-linewise) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-package-stash" ,perl-package-stash) + ("perl-padwalker" ,perl-padwalker) + ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict) + ("perl-sub-exporter" ,perl-sub-exporter) + ("perl-proc-invokeeditor" + ,perl-proc-invokeeditor) + ;("perl-term-readline-gnu" ; unable to build + ; ,perl-term-readline-gnu) + ("perl-termreadkey" ,perl-termreadkey) + ("perl-try-tiny" ,perl-try-tiny))) + (home-page "http://search.cpan.org/dist/Reply") + (synopsis "read, eval, print, loop, yay!") + (description "Reply is a lightweight, extensible REPL for Perl. It is +plugin-based (see @code{Reply::Plugin}), and through plugins supports many +advanced features such as coloring and pretty printing, readline support, = and +pluggable commands.") + (license x11))) + +(define-public perl-role-tiny + (package + (name "perl-role-tiny") + (version "2.000005") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/" + "Role-Tiny-" version ".tar.gz")) + (sha256 + (base32 + "059i0rq0rzbamsnyxba9zhm51v7nzmfls5fh301byag046v2jfjr")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-cpan-meta-yaml" ,perl-cpan-meta-yaml))) + (home-page "http://search.cpan.org/dist/Role-Tiny") + (synopsis "Like a nouvelle cuisine portion size slice of Moose") + (description "A minimalist role composition tool. + +Role composition can be thought of as much more clever and meaningful mult= iple +inheritance. The basics of this implementation of roles is: + + If a method is already defined on a class, that method will not be +composed in from the role. A method inherited by a class gets overridden by +the role's method of the same name, though. If a method that the role +\"requires\" to be implemented is not implemented, role application will f= ail +loudly. + +Unlike Class::C3, where the last class inherited from \"wins,\" role +composition is the other way around, where the class wins. If multiple ro= les +are applied in a single call (single with statement), then if any of their +provided methods clash, an exception is raised unless the class provides a +method since this conflict indicates a potential problem.") + (license (package-license perl)))) + (define-public perl-scalar-list-utils (package (name "perl-scalar-list-utils") @@ -8146,6 +9287,40 @@ such that being individual extensions would be waste= ful.") "Shell::Command is a thin wrapper around ExtUtils::Command.") (license (package-license perl)))) =20 +(define-public perl-strictures + (package + (name "perl-strictures") + (version "2.000003") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/H/HA/HAARG/" + "strictures-" version ".tar.gz")) + (sha256 + (base32 + "08mgvf1d2651gsg3jgjfs13878ndqa4ji8vfsda9f7jjd84ymy17")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/strictures") + (synopsis + "Turn on strict and make most warnings fatal") + (description + "Things like the importer in use Moose don't help me because they tu= rn +warnings on but don't make them fatal -- which from my point of view is +useless because I want an exception to tell me my code isn't warnings-clea= n. + +Any time I see a warning from my code, that indicates a mistake. + +Any time my code encounters a mistake, I want a crash -- not spew to STDERR +and then unknown (and probably undesired) subsequent behaviour. + +I also want to ensure that obvious coding mistakes, like indirect object +syntax (and not so obvious mistakes that cause things to accidentally comp= ile +as such) get caught, but not at the cost of an XS dependency and not at the +cost of blowing things up on another machine.") + (license (package-license perl)))) + ;;; END: Core module overrides =20 (define-public perl-file-find-object @@ -8235,3 +9410,36 @@ interface to File::Find::Object.") (description "Test::TrailingSpace tests for trailing spaces in Perl source files.") (license x11))) + +(define-public perl-types-path-tiny + (package + (name "perl-types-path-tiny") + (version "0.005") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DA/DAGOLDEN/" + "Types-Path-Tiny-" version ".tar.gz")) + (sha256 + (base32 + "09nf167ssi4rgj8hhzylwp3zdx61njdpyfri43arcmk9aqn7f0pp")))) + (build-system perl-build-system) + (native-inputs + `(("perl-file-pushd" ,perl-file-pushd) + ("perl-path-tiny" ,perl-path-tiny) + ("perl-type-tiny" ,perl-type-tiny) + ("perl-exporter-tiny" ,perl-exporter-tiny))) + (home-page + "http://search.cpan.org/dist/Types-Path-Tiny") + (synopsis + "Types and coercions for Moose and Moo") + (description "This module provides @code{Path::Tiny} types for Moose, Mo= o, etc. + +It handles two important types of coercion: +@enumerate +@item coercing objects with overloaded stringification +@item coercing to absolute paths +@end enumerate +It also can check to ensure that files or directories exist.") + (license artistic2.0))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 8abd4309d..cf8d3be1d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -19,6 +19,7 @@ ;;; Copyright =C2=A9 2016 Bake Timmons ;;; Copyright =C2=A9 2017 Thomas Danckaert ;;; Copyright =C2=A9 2017 Marius Bakke +;;; Copyright =C2=A9 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,6 +75,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages libidn) #:use-module (gnu packages lua) + #:use-module (gnu packages moreutils) #:use-module (gnu packages ncurses) #:use-module (gnu packages base) #:use-module (gnu packages perl) @@ -981,6 +983,55 @@ language known as SASS.") to perl-code, for faster generation of access_log lines.") (license l:perl-license))) =20 +(define-public perl-app-nopaste + (package + (name "perl-app-nopaste") + (version "1.009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/E/ET/ETHER/App-Nopaste-" + version + ".tar.gz")) + (sha256 + (base32 + "0yz1mfjnnvpxpydcgzmkravd9ixsg86q07g6f4mm3ylkpk9bsr0l")))) + (build-system perl-build-system) + (native-inputs + `(("perl-libwww" ,perl-libwww) + ("perl-test-deep" ,perl-test-deep) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-browser-open" ,perl-browser-open) + ("perl-class-load" ,perl-class-load) + ("perl-clipboard" ,perl-clipboard) + ("perl-getopt-long-descriptive" + ,perl-getopt-long-descriptive) + ("perl-html-form" ,perl-html-form) + ("perl-json-maybexs" ,perl-json-maybexs) + ("perl-module-pluggable" ,perl-module-pluggable) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-namespace-clean" ,perl-namespace-clean) + ("perl-path-tiny" ,perl-path-tiny) + ("perl-sub-name" ,perl-sub-name) + ("perl-uri" ,perl-uri) + ("perl-www-mechanize" ,perl-www-mechanize) + ("perl-yaml" ,perl-yaml) + ("perl-www-pastebin-pastebincom-create" + ,perl-www-pastebin-pastebincom-create))) + (home-page + "http://search.cpan.org/dist/App-Nopaste") + (synopsis "Easy access to any pastebin") + (description "Pastebins (also known as nopaste sites) let you post tex= t, usually code, for public viewing. They're used a lot in IRC channels to= show code that would normally be too long to give directly in the channel = (hence the name nopaste). + +Each pastebin is slightly different. When one pastebin goes down (I'm loo= king at you, http://paste.husk.org), then you have to find a new one. And = if you usually use a script to publish text, then it's too much hassle. + +This module aims to smooth out the differences between pastebins, and prov= ides redundancy: if one site doesn't work, it just tries a different one. + +It's also modular: you only need to put on CPAN a @code{App::Nopaste::Serv= ice::Foo} module and anyone can begin using it.") + (license l:perl-license))) + (define-public perl-authen-sasl (package (name "perl-authen-sasl") @@ -2030,6 +2081,36 @@ Yahoo! Finance, Fidelity Investments, and the Austra= lian Stock Exchange.") described in RFC 2744.") (license l:perl-license))) =20 +(define-public perl-html-form +(package + (name "perl-html-form") + (version "6.03") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GA/GAAS/HTML-Form-" + version + ".tar.gz")) + (sha256 + (base32 + "0dpwr7yz6hjc3bcqgcbdzjjk9l58ycdjmbam9nfcmm85y2a1vh38")))) + (build-system perl-build-system) + (inputs + `(("perl-html-parser" ,perl-html-parser) + ("perl-http-message" ,perl-http-message) + ("perl-uri" ,perl-uri))) + (home-page + "http://search.cpan.org/dist/HTML-Form") + (synopsis + "Class that represents an HTML form element") + (description "Objects of the @code{HTML::Form} class represents a single +HTML
...
instance. A form consists of a sequence of inputs = that +usually have names, and which can take on various values. The state of a f= orm +can be tweaked and it can then be asked to provide @code{HTTP::Request} +objects that can be passed to the request() method of @code{LWP::UserAgent= }.") + (license l:perl-license))) + (define-public perl-html-element-extended (package (name "perl-html-element-extended") @@ -2634,6 +2715,42 @@ media types is defined by the media.types file. If = the ~/.media.types file exists it is used instead.") (home-page "http://search.cpan.org/~gaas/LWP-MediaTypes/"))) =20 +(define-public perl-lwp-online + (package + (name "perl-lwp-online") + (version "1.08") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/A/AD/ADAMK/LWP-Online-" + version + ".tar.gz")) + (sha256 + (base32 + "176f6vbk1018i0y7xj9d406ndbjgwzan2j9nihxnsahzg2vr2vz2")))) + (build-system perl-build-system) + (inputs + `(("perl-libwww" ,perl-libwww) + ("perl-uri" ,perl-uri))) + (home-page + "http://search.cpan.org/dist/LWP-Online") + (synopsis + "Does your process have access to the web") + (description "This module attempts to answer, as accurately as it can,= one +of the nastiest technical questions there is. + +Am I on the internet? + +A host of networking and security issues make this problem very +difficult. There are firewalls, proxies (both well behaved and badly +behaved). We might not have DNS. We might not have a network card at all! + +You might have network access, but only to a for-money wireless network th= at +responds to ever HTTP request with a page asking you to enter your credit = card +details for paid access. Which means you don't \"REALLY\" have access.") + (license l:perl-license))) + (define-public perl-lwp-protocol-https (package (name "perl-lwp-protocol-https") @@ -3209,30 +3326,49 @@ library.") (define-public perl-www-mechanize (package (name "perl-www-mechanize") - (version "1.73") + (version "1.84") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" - "WWW-Mechanize-" version ".tar.gz")) + (uri (string-append + "mirror://cpan/authors/id/O/OA/OALDERS/WWW-Mechanize-" + version + ".tar.gz")) (sha256 (base32 - "1zrw8aadhwy48q51x2z2rqlkwf17bya4j4h3hy89mw783j96rmg9")))) + "06igfrd50la7csp9365g3i6gfans9y1hpwy2ln20lbny1arzvq0m")))) (build-system perl-build-system) - (native-inputs ;only for tests - `(("perl-cgi" ,perl-cgi))) - (propagated-inputs + (native-inputs + `(("perl-cgi" ,perl-cgi) + ("perl-http-daemon" ,perl-http-daemon) + ("perl-http-message" ,perl-http-message) + ("perl-http-server-simple" + ,perl-http-server-simple) + ("perl-libwww" ,perl-libwww) + ("perl-test-deep" ,perl-test-deep) + ("perl-test-exception" ,perl-test-exception) + ("perl-test-fatal" ,perl-test-fatal) + ("perl-test-needs" ,perl-test-needs) + ("perl-test-nowarnings" ,perl-test-nowarnings) + ("perl-test-output" ,perl-test-output) + ; ("perl-test-requiresinterne= t" + ; ,perl-test-requiresinterne= t) + ("perl-test-taint" ,perl-test-taint) + ("perl-test-warn" ,perl-test-warn) + ("perl-test-warnings" ,perl-test-warnings) + ("perl-uri" ,perl-uri))) + (inputs `(("perl-html-form" ,perl-html-form) ("perl-html-parser" ,perl-html-parser) + ("perl-html-tree" ,perl-html-tree) + ("perl-http-cookies" ,perl-http-cookies) ("perl-http-message" ,perl-http-message) - ("perl-http-server-simple" ,perl-http-server-simple) ("perl-libwww" ,perl-libwww) - ("perl-test-warn" ,perl-test-warn) ("perl-uri" ,perl-uri))) - (home-page "http://search.cpan.org/dist/WWW-Mechanize") - (synopsis "Web browsing in a Perl object") - (description "WWW::Mechanize is a Perl module for stateful programmatic -web browsing, used for automating interaction with websites.") + (home-page + "http://search.cpan.org/dist/WWW-Mechanize") + (synopsis "Handy web browsing in a Perl object") + (description "@code{WWW::Mechanize}, or Mech for short, is a Perl modu= le for stateful programmatic web browsing, used for automating interaction = with websites.") (license l:perl-license))) =20 (define-public perl-www-opensearch @@ -3263,6 +3399,41 @@ web browsing, used for automating interaction with w= ebsites.") http://opensearch.a9.com} compatible search engines.") (license l:perl-license))) =20 +(define-public perl-www-pastebin-pastebincom-create + (package + (name "perl-www-pastebin-pastebincom-create") + (version "1.003") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZO/ZOFFIX/WWW-Pastebin-PastebinCo= m-Create-" + version + ".tar.gz")) + (sha256 + (base32 + "0xs29hilmlr51hcg4azbvi7c30yivan5gzwiq2z0dwrdy13lvcln")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (inputs + `(("perl-html-form" ,perl-html-form) + ("perl-http-message" ,perl-http-message) + ("perl-moo" ,perl-moo) + ("perl-libwww" ,perl-libwww) + ("perl-www-mechanize" ,perl-www-mechanize))) + (arguments + '(#:tests? #f)) ; 4 dependency levels down from what I'm trying to bu= ild >.< + (home-page + "http://search.cpan.org/dist/WWW-Pastebin-PastebinCom-Create") + (synopsis + "paste on www.pastebin.com without API keys") + (description "You kinda, sorta, maybe shouldn't really use this module= . Use +@code{WWW::Pastebin::PastebinCom::API} instead. Pastebin.com switched to a +key-based API (which is what ::API version implements), and using this, +keyless, module lets you paste only 10 pastes per day.") + (license l:artistic2.0))) + (define-public perl-www-robotrules (package (name "perl-www-robotrules") @@ -4439,6 +4610,88 @@ developers can integrate into their applications to = make use of the functions of Tidy.") (license l:bsd-3))) =20 +(define-public tidyp + (package + (name "tidyp") + (version "1.04") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/downloads/petdance/tidyp/tidyp-" + version ".tar.gz")) + (sha256 + (base32 + "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10")) + (patches + (search-patches "tidyp-specify-test-files-in-makefile.patch")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)) ; Missing script + (home-page "http://www.tidyp.com/") + (synopsis "Validate HTML") + (description "Tidyp is a program that can validate your HTML, as well = as +modify it to be more clean and standard. tidyp does not validate HTML 5. + +libtidyp is the library on which the program is based. It can be used by = any +other program that can interface to it. The Perl module @code{HTML::Tidy}= is +based on this library, allowing Perl programmers to easily validate HTML.") + (license (l:fsf-free "file://COPYRIGHT")))) + +(define-public perl-html-tidy + (package + (name "perl-html-tidy") + (version "1.56") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-" + version + ".tar.gz")) + (sha256 + (base32 + "1zp4wndvr9vadbqjmd8d8ck6hlmr0dqg20vpa8cqfdflqkzqf208")))) + (build-system perl-build-system) + (inputs + `(("perl-libwww" ,perl-libwww) + ("tidyp" ,tidyp))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'config 'patch-check + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile.PL" + (("-I/usr/include/tidyp") + (string-append + "-I" (assoc-ref inputs "tidyp") "/tidyp/include= /"))))) + (add-before 'build 'patch-check + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Tidy.xs" + (("#include ") + (string-append "#include <" + (assoc-ref inputs "tidyp") + "/include/tidyp/tidyp.h>")) + (("#include ") + (string-append "#include <" + (assoc-ref inputs "tidyp") + "/include/tidyp/buffio.h>"))))) + (add-after 'build 'update-include + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Tidy.c" + (("#include ") + (string-append "#include <" + (assoc-ref inputs "tidyp") + "/include/tidyp/tidyp.h>")))))) + #:tests? #f)) ; Disabled because I was unable to fix it. + (home-page + "http://search.cpan.org/dist/HTML-Tidy") + (synopsis "(X)HTML validation in a Perl object") + (description "@code{HTML::Tidy} is an HTML checker in a handy dandy +object. It's meant as a replacement for [@code{HTML::Lint}] 1, which is +written in Perl but is not nearly as capable as @code{HTML::Tidy}.") + (license l:artistic2.0))) + (define-public hiawatha (package (name "hiawatha") diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index f4b68ba6a..a228817d2 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -15,6 +15,7 @@ ;;; Copyright =C2=A9 2016 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2016, 2017 Marius Bakke ;;; Copyright =C2=A9 2017 humanitiesNerd +;;; Copyright =C2=A9 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -305,6 +306,45 @@ to @code{XML::Parser} in much the same way that Gisle = Aas' corresponding to an @code{XML::Parser} event.") (license license:perl-license))) =20 +(define-public perl-xml-twig + (package + (name "perl-xml-twig") + (version "3.52") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/" + "XML-Twig-" version ".tar.gz")) + (sha256 + (base32 + "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy")))) + (build-system perl-build-system) + (inputs + `(("expat" ,expat) +; ("perl-cpan-meta-json" ,perl-cpan-meta-json) + ("perl-html-tidy" ,perl-html-tidy) + ("perl-html-tree" ,perl-html-tree) + ("perl-io-captureoutput" ,perl-io-captureoutput) + ("perl-io-string" ,perl-io-string) + ("perl-io-stringy" ,perl-io-stringy) + ("perl-libxml" ,perl-libxml) + ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext) + ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter) + ("perl-xml-parser" ,perl-xml-parser) + ("perl-xml-sax-writer" ,perl-xml-sax-writer) + ("perl-xml-simple" ,perl-xml-simple) + ("perl-xml-xpathengine" ,perl-xml-xpathengine) + ("perl-test-pod", perl-test-pod) + ("perl-tree-xpathengine" ,perl-tree-xpathengine))) + (home-page "http://search.cpan.org/dist/XML-Twig") + (synopsis "A perl module for processing huge XML documents in tree mod= e") + (description + "@code{xml::TokeParser} provides a procedural (\"pull mode\") interfa= ce +to @code{XML::Parser} in much the same way that Gisle Aas' +@code{HTML::TokeParser} provides a procedural interface to @code{HTML::Par= ser}. +@code{XML::TokeParser} splits its XML input up into \"tokens\", each +corresponding to an @code{XML::Parser} event.") + (license license:perl-license))) + (define-public perl-libxml (package (name "perl-libxml") @@ -327,6 +367,52 @@ corresponding to an @code{XML::Parser} event.") module.") (home-page "http://search.cpan.org/~kmacleod/libxml-perl/lib/XML/Parse= r/PerlSAX.pm"))) =20 +(define-public perl-xml-filter-buffertext + (package + (name "perl-xml-filter-buffertext") + (version "1.01") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/" + "XML-Filter-BufferText-" version ".tar.gz")) + (sha256 + (base32 + "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg")))) + (build-system perl-build-system) + (inputs + `(("perl-xml-sax-base" ,perl-xml-sax-base))) + (home-page "http://search.cpan.org/dist/XML-Filter-BufferText") + (synopsis "Filter to put all characters() in one event") + (description "This is a very simple filter. One common cause of grief= (and +programmer error) is that XML parsers aren't required to provide character +events in one chunk. They can, but are not forced to, and most don't. Th= is +filter does the trivial but oft-repeated task of putting all characters in= to a +single event.") + (license license:perl-license))) + +(define-public perl-xml-handler-yawriter + (package + (name "perl-xml-handler-yawriter") + (version "0.23") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/" + "XML-Handler-YAWriter-" version ".tar.gz")) + (sha256 + (base32 + "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77")))) + (build-system perl-build-system) + (inputs + `(("perl-libxml" ,perl-libxml))) + (home-page "http://search.cpan.org/dist/XML-Handler-YAWriter") + (synopsis "Yet another Perl SAX XML Writer") + (description "YAWriter implements Yet Another @code{XML::Handler::Writ= er}.=20 +The reasons for this one are that I needed a flexible escaping technique, = and +want some kind of pretty printing.") + (license license:perl-license))) + (define-public perl-xml-libxml (package (name "perl-xml-libxml") @@ -510,6 +596,33 @@ base class so you don't have to, for example, implemen= t the characters() callback.") (license license:perl-license))) =20 +(define-public perl-xml-sax-writer + (package + (name "perl-xml-sax-writer") + (version "0.56") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PERIGRIN/" + "XML-SAX-Writer-" version ".tar.gz")) + (sha256 + (base32 + "00vx47493rdgwmirxfgspwanlc9if389jsxq2w1ibj3ja2igfwyh")))) + (build-system perl-build-system) + (inputs + `(("perl-libxml" ,perl-libxml) + ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext) + ("perl-xml-namespacesupport", perl-xml-namespacesupport) + ("perl-xml-sax-base" ,perl-xml-sax-base))) + (license license:perl-license) + (home-page "http://search.cpan.org/dist/XML-SAX-Writer") + (synopsis "SAX2 XML Writer") + (description + "A new XML Writer was needed to match the SAX2 effort because quite +naturally no existing writer understood SAX2. My first intention had been= to +start patching @code{XML::Handler::YAWriter} as it had previously been my +favourite writer in the SAX1 world."))) + (define-public perl-xml-simple (package (name "perl-xml-simple") @@ -774,6 +887,53 @@ https://www.w3.org/TR/xpath} and yet allow extensions = to be added in the form of functions.") (license license:perl-license))) =20 +(define-public perl-xml-xpathengine + (package + (name "perl-xml-xpathengine") + (version "0.14") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/" + "XML-XPathEngine-" version ".tar.gz")) + (sha256 + (base32 + "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/XML-XPathEngine") + (synopsis "A re-usable XPath engine for DOM-like trees") + (description + "This module provides an XPath engine, that can be re-used by other +module/classes that implement trees. + +In order to use the XPath engine, nodes in the user module need to mimick = DOM +nodes. The degree of similitude between the user tree and a DOM dictates = how +much of the XPath features can be used. A module implementing all of the = DOM +should be able to use this module very easily (you might need to add the c= mp +method on nodes in order to get ordered result sets).") + (license license:perl-license))) + +(define-public perl-tree-xpathengine + (package + (name "perl-tree-xpathengine") + (version "0.05") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/" + "Tree-XPathEngine-" version ".tar.gz")) + (sha256 + (base32 + "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Tree-XPathEngine") + (synopsis "A re-usable XPath engine") + (description + "This module provides an XPath engine, that can be re-used by other +module/classes that implement trees. + +It is designed to be compatible with @code{Class::XPath}, ie it passes its +tests if you replace @code{Class::XPath} by @code{Tree::XPathEngine}.") + (license license:perl-license))) + (define-public pugixml (package (name "pugixml") --=20 2.12.2 --MP_/hk9L3hgiK1D3Hwcy9hEIz2x-- ------------=_1509052382-28985-1-- From unknown Fri Sep 19 21:46:09 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#26776] [PATCH] gnu: Add Parcimonie. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 26 Oct 2017 22:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26776 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ricardo Wurmus Cc: Petter , 26776-done@debbugs.gnu.org Received: via spool by 26776-done@debbugs.gnu.org id=D26776.15090562672530 (code D ref 26776); Thu, 26 Oct 2017 22:18:01 +0000 Received: (at 26776-done) by debbugs.gnu.org; 26 Oct 2017 22:17:47 +0000 Received: from localhost ([127.0.0.1]:35639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e7qTC-0000ej-MN for submit@debbugs.gnu.org; Thu, 26 Oct 2017 18:17:46 -0400 Received: from hera.aquilenet.fr ([141.255.128.1]:53182) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e7qTA-0000eb-N5 for 26776-done@debbugs.gnu.org; Thu, 26 Oct 2017 18:17:45 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id A4633F51A; Fri, 27 Oct 2017 00:17:44 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tVHnc1K5UV0m; Fri, 27 Oct 2017 00:17:43 +0200 (CEST) Received: from ribbon (unknown [72.28.92.19]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 81FAB8B30; Fri, 27 Oct 2017 00:17:42 +0200 (CEST) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20170504135128.4747771c@mykolab.ch> <87inl7krmp.fsf@gnu.org> <878tfzd2w5.fsf@elephly.net> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 5 Brumaire an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Thu, 26 Oct 2017 15:17:38 -0700 In-Reply-To: <878tfzd2w5.fsf@elephly.net> (Ricardo Wurmus's message of "Wed, 25 Oct 2017 10:53:46 +0200") Message-ID: <878tfxfta5.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Heya, Ricardo Wurmus skribis: > I have split the patch into separate commits, fixed some incorrect > licenses and descriptions, enabled tests where possible, changed > =E2=80=9Cinputs=E2=80=9D to =E2=80=9Cpropagated-inputs=E2=80=9D where app= ropriate, and updated some of > the packages. > > I skipped some non-essential packages such as perl-app-nopaste and its > dependencies, because it was not needed after all, and it reduced the > overall amount of work. > > The result is the parcimonie package added with commit 15b084425 in > master. A big thanks to you too, Ricardo, for this thankless work! Ludo=E2=80=99.