From 38ad27da807077c953d19ab655ce57c124437b0c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 7 Nov 2017 20:23:29 +0100 Subject: gnu: mercurial: Update to 4.4.1. * gnu/packages/version-control.scm (mercurial): Update to 4.4.1. --- gnu/packages/version-control.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/version-control.scm') diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index af880c29ff..7f50af1390 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -851,14 +851,14 @@ (define-public gitolite (define-public mercurial (package (name "mercurial") - (version "4.2.3") + (version "4.4.1") (source (origin (method url-fetch) (uri (string-append "https://www.mercurial-scm.org/" "release/mercurial-" version ".tar.gz")) (sha256 (base32 - "1b7p3z8lin6hyyzkskskp065qnyfxid2yxnjygni0n4yv33qz404")))) + "0ik2ypzxjr6vpcghxvn39a73gw52629n7vwak04gnbycsq95aalg")))) (build-system python-build-system) (arguments `(;; Restrict to Python 2, as Python 3 would require -- cgit v1.2.3 From a06b9b50075a78f846093f86da85d5806b36fbf7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 13 Nov 2017 17:11:01 +0100 Subject: gnu: Move testing packages from haskell to haskell-check. * gnu/packages/haskell.scm (ghc-clock-bootstrap, ghc-tasty-ant-xml, ghc-tasty-smallcheck, ghc-tasty-quickcheck, ghc-tasty-golden, ghc-tasty, ghc-tasty-hunit, ghc-tasty-kat, ghc-tasty-th, ghc-tasty-rerun, ghc-quickcheck-instances, ghc-quickcheck-unicode, ghc-quickcheck-io, ghc-quickcheck, ghc-test-framework, ghc-test-framework-hunit, ghc-test-framework-quickcheck2, ghc-test-framework-th, ghc-hunit, hspec-discover, ghc-hspec-core, ghc-hspec-meta, ghc-hspec, ghc-hspec-contrib, ghc-hspec-expectations): Move variables to ... * gnu/packages/haskell-check.scm: ... this new file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/haskell.scm, gnu/packages/idris.scm, gnu/packages/version-control.scm, gnu/packages/wm.scm: Include haskell-check module. --- gnu/local.mk | 1 + gnu/packages/haskell-check.scm | 728 +++++++++++++++++++++++++++++++++++++++ gnu/packages/haskell.scm | 697 +------------------------------------ gnu/packages/idris.scm | 1 + gnu/packages/version-control.scm | 1 + gnu/packages/wm.scm | 1 + 6 files changed, 733 insertions(+), 696 deletions(-) create mode 100644 gnu/packages/haskell-check.scm (limited to 'gnu/packages/version-control.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 61bebe662f..08637db642 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -201,6 +201,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/gv.scm \ %D%/packages/gxmessage.scm \ %D%/packages/haskell.scm \ + %D%/packages/haskell-check.scm \ %D%/packages/ham-radio.scm \ %D%/packages/hexedit.scm \ %D%/packages/hugs.scm \ diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm new file mode 100644 index 0000000000..190ee7cc93 --- /dev/null +++ b/gnu/packages/haskell-check.scm @@ -0,0 +1,728 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Paul van der Walt +;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2015 Federico Beffa +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2016 ng0 +;;; Copyright © 2016 David Craven +;;; Copyright © 2017 Danny Milosavljevic +;;; Copyright © 2017 rsiddharth +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages haskell-check) + #:use-module (gnu packages) + #:use-module (gnu packages haskell) + #:use-module (guix build-system haskell) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define-public ghc-tasty-ant-xml + (package + (name "ghc-tasty-ant-xml") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/tasty-ant-xml/tasty-ant-xml-" + version + ".tar.gz")) + (sha256 + (base32 + "0pgz2lclg2hp72ykljcbxd88pjanfdfk8m5vb2qzcyjr85kwrhxv")))) + (build-system haskell-build-system) + (inputs + `(("ghc-generic-deriving" ,ghc-generic-deriving) + ("ghc-xml" ,ghc-xml) + ("ghc-mtl" ,ghc-mtl) + ("ghc-stm" ,ghc-stm) + ("ghc-tagged" ,ghc-tagged) + ("ghc-tasty" ,ghc-tasty))) + (home-page + "https://github.com/ocharles/tasty-ant-xml") + (synopsis + "Render tasty output to XML for Jenkins") + (description + "A tasty ingredient to output test results in XML, using the Ant +schema. This XML can be consumed by the Jenkins continuous integration +framework.") + (license license:bsd-3))) + +(define-public ghc-tasty-smallcheck + (package + (name "ghc-tasty-smallcheck") + (version "0.8.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/tasty-smallcheck/tasty-smallcheck-" + version + ".tar.gz")) + (sha256 + (base32 + "0yckfbz8na8ccyw2911i3a4hd3fdncclk3ng5343hs5cylw6y4sm")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-smallcheck" ,ghc-smallcheck) + ("ghc-async" ,ghc-async) + ("ghc-tagged" ,ghc-tagged))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "SmallCheck support for the Tasty test framework") + (description "This package provides SmallCheck support for the Tasty +Haskell test framework.") + (license license:bsd-3))) + +(define-public ghc-tasty-quickcheck + (package + (name "ghc-tasty-quickcheck") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/tasty-quickcheck/" + "tasty-quickcheck-" version ".tar.gz")) + (sha256 + (base32 + "15rjxib5jmjq0hzj47x15kgp3awc73va4cy1pmpf7k3hvfv4qprn")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tagged" ,ghc-tagged) + ("ghc-tasty" ,ghc-tasty) + ("ghc-random" ,ghc-random) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-pcre-light" ,ghc-pcre-light))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "QuickCheck support for the Tasty test framework") + (description "This package provides QuickCheck support for the Tasty +Haskell test framework.") + (license license:expat))) + +(define-public ghc-tasty-golden + (package + (name "ghc-tasty-golden") + (version "2.3.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/tasty-golden/tasty-golden-" + version + ".tar.gz")) + (sha256 + (base32 + "0n7nll1sx75n3lffwhgnjrxdn0jz1g0921z9mj193fxqw0wz8axh")))) + (build-system haskell-build-system) + (inputs + `(("ghc-temporary" ,ghc-temporary) + ("ghc-tasty" ,ghc-tasty) + ("ghc-mtl" ,ghc-mtl) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-tagged" ,ghc-tagged) + ("ghc-async" ,ghc-async) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-temporary-rc" ,ghc-temporary-rc))) + (home-page + "https://github.com/feuerbach/tasty-golden") + (synopsis "Golden tests support for tasty") + (description + "This package provides support for 'golden testing'. A golden test is an +IO action that writes its result to a file. To pass the test, this output +file should be identical to the corresponding 'golden' file, which contains +the correct result for the test.") + (license license:expat))) + +;; This package builds `clock` without tests, since the tests rely on tasty +;; and tasty-quickcheck, which in turn require clock to build. +(define ghc-clock-bootstrap + (package + (name "ghc-clock-bootstrap") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/" + "clock/" + "clock-" version ".tar.gz")) + (sha256 + (base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ;; Testing suite depends on tasty and + ;; tasty-quickcheck, which need clock to build. + (home-page "https://hackage.haskell.org/package/clock") + (synopsis "High-resolution clock for Haskell") + (description "A package for convenient access to high-resolution clock and +timer functions of different operating systems via a unified API.") + (license license:bsd-3))) + +(define-public ghc-tasty + (package + (name "ghc-tasty") + (version "0.11.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/tasty/tasty-" + version + ".tar.gz")) + (sha256 + (base32 + "1chapivmmwsb1ghwagvdm80bfj3hdk75m94z4p212ng2i4ghpjkx")))) + (build-system haskell-build-system) + (inputs + `(("ghc-stm" ,ghc-stm) + ("ghc-mtl" ,ghc-mtl) + ("ghc-tagged" ,ghc-tagged) + ("ghc-regex-tdfa-rc" ,ghc-regex-tdfa-rc) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-unbounded-delays" ,ghc-unbounded-delays) + ("ghc-async" ,ghc-async) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-clock-bootstrap" ,ghc-clock-bootstrap))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "Modern and extensible testing framework") + (description "Tasty is a modern testing framework for Haskell. It lets +you combine your unit tests, golden tests, QuickCheck/SmallCheck properties, +and any other types of tests into a single test suite.") + (license license:expat))) + +(define-public ghc-tasty-hunit + (package + (name "ghc-tasty-hunit") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/tasty-hunit/tasty-hunit-" + version + ".tar.gz")) + (sha256 + (base32 + "08qnxaw34wfnzi9irs1jd4d0zczqm3k5ffkd4zwhkz0dflmgq7mf")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "HUnit support for the Tasty test framework") + (description "This package provides HUnit support for the Tasty Haskell +test framework.") + (license license:expat))) + +(define-public ghc-tasty-kat + (package + (name "ghc-tasty-kat") + (version "0.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "tasty-kat/tasty-kat-" version ".tar.gz")) + (sha256 + (base32 + "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-mtl" ,ghc-mtl) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-tasty-hunit" ,ghc-tasty-hunit))) + (home-page "https://github.com/vincenthz/tasty-kat") + (synopsis "Known Answer Tests (KAT) framework for tasty") + (description + "This package provides a @dfn{Known Answer Tests} (KAT) framework for +tasty.") + (license license:expat))) + +(define-public ghc-tasty-th + (package + (name "ghc-tasty-th") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/tasty-th/tasty-th-" + version ".tar.gz")) + (sha256 + (base32 + "0dff9si8i1qp0s7p4hlk0l29vq7wxfglw6mvlgmld43h7rllv88q")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty))) + (home-page "https://github.com/bennofs/tasty-th") + (synopsis "Automatically generate tasty TestTrees") + (description + "Tasty-th automatically generates tasty TestTrees from functions of the +current module, using TemplateHaskell. This is a fork the original +test-framework-th package, modified to work with tasty instead of +test-framework.") + (license license:bsd-3))) + +(define-public ghc-tasty-rerun + (package + (name "ghc-tasty-rerun") + (version "1.1.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/tasty-rerun/" + "tasty-rerun-" version ".tar.gz")) + (sha256 + (base32 + "0ycxg7whabgcxyzy6gr536x8ykzx45whh1wrbsc7c58zi862fczd")))) + (build-system haskell-build-system) + (inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-reducers" ,ghc-reducers) + ("ghc-split" ,ghc-split) + ("ghc-stm" ,ghc-stm) + ("ghc-tagged" ,ghc-tagged) + ("ghc-tasty" ,ghc-tasty))) + (home-page "https://github.com/ocharles/tasty-rerun") + (synopsis "Run tests by filtering the test tree") + (description "This package adds the ability to run tests by filtering the +test tree based on the result of a previous test run. You can use this to run +only those tests that failed in the last run, or to only run the tests that have +been added since previous test run.") + (license license:bsd-3))) + +(define-public ghc-quickcheck-instances + (package + (name "ghc-quickcheck-instances") + (version "0.3.12") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/" + "quickcheck-instances/quickcheck-instances-" + version ".tar.gz")) + (sha256 + (base32 + "1wwvkzpams7i0j7nk5qj8vvhj8x5zcbgbgrpczszgvshva4bkmfx")))) + (build-system haskell-build-system) + (inputs + `(("ghc-old-time" ,ghc-old-time) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-hashable" ,ghc-hashable) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-scientific" ,ghc-scientific) + ("ghc-vector" ,ghc-vector) + ("ghc-text" ,ghc-text))) + (home-page + "https://github.com/aslatter/qc-instances") + (synopsis "Common quickcheck instances") + (description "This package provides QuickCheck instances for types +provided by the Haskell Platform.") + (license license:bsd-3))) + +(define-public ghc-quickcheck-unicode + (package + (name "ghc-quickcheck-unicode") + (version "1.0.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/quickcheck-unicode/quickcheck-unicode-" + version + ".tar.gz")) + (sha256 + (base32 + "1a8nl6x7l9b22yx61wm0bh2n1xzb1hd5i5zgg1w4fpaivjnrrhi4")))) + (build-system haskell-build-system) + (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) + (home-page + "https://github.com/bos/quickcheck-unicode") + (synopsis "Generator functions Unicode-related tests") + (description "This package provides generator and shrink functions for +testing Unicode-related software.") + (license license:bsd-3))) + +(define-public ghc-quickcheck-io + (package + (name "ghc-quickcheck-io") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/quickcheck-io/quickcheck-io-" + version + ".tar.gz")) + (sha256 + (base32 + "1kf1kfw9fsmly0rvzvdf6jvdw10qhkmikyj0wcwciw6wad95w9sh")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit))) + (home-page + "https://github.com/hspec/quickcheck-io#readme") + (synopsis "Use HUnit assertions as QuickCheck properties") + (description "This package provides an orphan instance that allows you to +use HUnit assertions as QuickCheck properties.") + (license license:expat))) + +(define-public ghc-quickcheck + (package + (name "ghc-quickcheck") + (version "2.8.2") + (outputs '("out" "doc")) + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/QuickCheck/QuickCheck-" + version + ".tar.gz")) + (sha256 + (base32 + "1ai6k5v0bibaxq8xffcblc6rwmmk6gf8vjyd9p2h3y6vwbhlvilq")))) + (build-system haskell-build-system) + (arguments + `(#:tests? #f ; FIXME: currently missing libraries used for tests. + #:configure-flags '("-f base4"))) + (inputs + `(("ghc-tf-random" ,ghc-tf-random))) + (home-page + "https://github.com/nick8325/quickcheck") + (synopsis + "Automatic testing of Haskell programs") + (description + "QuickCheck is a library for random testing of program properties.") + (license license:bsd-3))) + +(define-public ghc-test-framework + (package + (name "ghc-test-framework") + (version "0.8.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/test-framework/" + "test-framework-" version ".tar.gz")) + (sha256 + (base32 + "0wxjgdvb1c4ykazw774zlx86550848wbsvgjgcrdzcgbb9m650vq")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck))) + (inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-hostname" ,ghc-hostname) + ("ghc-old-locale" ,ghc-old-locale) + ("ghc-random" ,ghc-random) + ("ghc-regex-posix" ,ghc-regex-posix) + ("ghc-xml" ,ghc-xml) + ("ghc-libxml" ,ghc-libxml))) + (home-page "https://batterseapower.github.io/test-framework/") + (synopsis "Framework for running and organising tests") + (description + "This package allows tests such as QuickCheck properties and HUnit test +cases to be assembled into test groups, run in parallel (but reported in +deterministic order, to aid diff interpretation) and filtered and controlled +by command line options. All of this comes with colored test output, progress +reporting and test statistics output.") + (license license:bsd-3))) + +(define-public ghc-test-framework-hunit + (package + (name "ghc-test-framework-hunit") + (version "0.3.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "test-framework-hunit/test-framework-hunit-" + version ".tar.gz")) + (sha256 + (base32 + "1h0h55kf6ff25nbfx1mhliwyknc0glwv3zi78wpzllbjbs7gvyfk")))) + (build-system haskell-build-system) + (inputs + `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions) + ("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework))) + (home-page "https://batterseapower.github.io/test-framework/") + (synopsis "HUnit support for test-framework") + (description + "This package provides HUnit support for the test-framework package.") + (license license:bsd-3))) + +(define-public ghc-test-framework-quickcheck2 + (package + (name "ghc-test-framework-quickcheck2") + (version "0.3.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "test-framework-quickcheck2/" + "test-framework-quickcheck2-" version ".tar.gz")) + (sha256 + (base32 + "12p1zwrsz35r3j5gzbvixz9z1h5643rhihf5gqznmc991krwd5nc")) + (modules '((guix build utils))) + (snippet + ;; The Hackage page and the cabal file linked there for this package + ;; both list 2.9 as the upper version limit, but the source tarball + ;; specifies 2.8. Assume the Hackage page is correct. + '(substitute* "test-framework-quickcheck2.cabal" + (("QuickCheck >= 2.4 && < 2.8") "QuickCheck >= 2.4 && < 2.9"))))) + (build-system haskell-build-system) + (inputs + `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-test-framework" ,ghc-test-framework))) + (home-page "https://batterseapower.github.io/test-framework/") + (synopsis "QuickCheck2 support for test-framework") + (description + "This packages provides QuickCheck2 support for the test-framework +package.") + (license license:bsd-3))) + +(define-public ghc-test-framework-th + (package + (name "ghc-test-framework-th") + (version "0.2.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "test-framework-th-" version "/" + "test-framework-th-" version ".tar.gz")) + (sha256 + (base32 + "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b")))) + (build-system haskell-build-system) + (inputs + `(("ghc-test-framework" ,ghc-test-framework) + ("ghc-language-haskell-extract" ,ghc-language-haskell-extract) + ("ghc-haskell-src-exts" ,ghc-haskell-src-exts) + ("ghc-regex-posix" ,ghc-regex-posix))) + (home-page "https://github.com/finnsson/test-generator") + (synopsis "Auto generate the HUnit- and Quickcheck-bulk-code +using Template Haskell") + (description "This library contains two functions: +@code{defaultMainGenerator} and @code{testGroupGenerator}. + +@code{defaultMainGenerator} will extract all functions beginning with +@code{case_}, @code{prop_}, or @code{test_} in the module and put them in a +@code{testGroup}. + +@code{testGroupGenerator} is like @code{defaultMainGenerator} but without +@code{defaultMain}. It is useful if you need a function for the testgroup +\(e.g. if you want to be able to call the testgroup from another module).") + (license license:bsd-3))) + +(define-public ghc-hunit + (package + (name "ghc-hunit") + (version "1.2.5.2") + (outputs '("out" "doc")) + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/HUnit/HUnit-" + version + ".tar.gz")) + (sha256 + (base32 + "0hcs6qh8bqhip1kkjjnw7ccgcsmawdz5yvffjj5y8zd2vcsavx8a")))) + (build-system haskell-build-system) + (home-page "http://hunit.sourceforge.net/") + (synopsis "Unit testing framework for Haskell") + (description + "HUnit is a unit testing framework for Haskell, inspired by the +JUnit tool for Java.") + (license license:bsd-3))) + +(define-public hspec-discover + (package + (name "hspec-discover") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/hspec-discover/hspec-discover-" + version + ".tar.gz")) + (sha256 + (base32 + "0w3awzbljf4hqhxrjrxqa1lfcclg92bhmq641gz2q80vycspapzx")))) + (build-system haskell-build-system) + (arguments `(#:haddock? #f)) ; Haddock phase fails because there are no + ; documentation files. + (inputs `(("ghc-hspec-meta" ,ghc-hspec-meta))) + (home-page "http://hspec.github.io/") + (synopsis "Automatically discover and run Hspec tests") + (description "hspec-discover is a tool which automatically discovers and +runs Hspec tests.") + (license license:expat))) + +(define-public ghc-hspec-core + (package + (name "ghc-hspec-core") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/hspec-core/hspec-core-" + version + ".tar.gz")) + (sha256 + (base32 + "1wgd55k652jaf81nkvciyqi67ycj7zamr4nd9z1cqf8nr9fc3sa4")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (inputs + `(("ghc-setenv" ,ghc-setenv) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-async" ,ghc-async) + ("ghc-quickcheck-io" ,ghc-quickcheck-io) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hspec-expectations" ,ghc-hspec-expectations) + ("ghc-silently" ,ghc-silently))) + (home-page "http://hspec.github.io/") + (synopsis "Testing framework for Haskell") + (description "This library exposes internal types and functions that can +be used to extend Hspec's functionality.") + (license license:expat))) + +(define-public ghc-hspec-meta + (package + (name "ghc-hspec-meta") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/hspec-meta/hspec-meta-" + version + ".tar.gz")) + (sha256 + (base32 + "1fmqmgrzp135cxhmxxbaswkk4bqbpgfml00cmcz0d39n11vzpa5z")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-async" ,ghc-async) + ("ghc-hspec-expectations" ,ghc-hspec-expectations) + ("ghc-setenv" ,ghc-setenv) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck-io" ,ghc-quickcheck-io))) + (home-page "http://hspec.github.io/") + (synopsis "Version of Hspec to test Hspec itself") + (description "This library provides a stable version of Hspec which is +used to test the in-development version of Hspec.") + (license license:expat))) + +(define-public ghc-hspec + (package + (name "ghc-hspec") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/hspec/hspec-" + version + ".tar.gz")) + (sha256 + (base32 + "0zqisxznlbszivsgy3irvf566zhcr6ipqqj3x9i7pj5hy913jwqf")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hspec-core" ,ghc-hspec-core) + ("hspec-discover" ,hspec-discover) + ("ghc-hspec-expectations" ,ghc-hspec-expectations) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-stringbuilder" ,ghc-stringbuilder) + ("ghc-hspec-meta" ,ghc-hspec-meta))) + (home-page "http://hspec.github.io/") + (synopsis "Testing Framework for Haskell") + (description "This library provides the Hspec testing framework for +Haskell, inspired by the Ruby library RSpec.") + (license license:expat))) + +(define-public ghc-hspec-contrib + (package + (name "ghc-hspec-contrib") + (version "0.3.0") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "hspec-contrib/hspec-contrib-" + version ".tar.gz")) + (sha256 + (base32 + "006syw8xagfhsx06ws9ywig1qx5lk4cgl7sq6pbid1s64c72mxn4")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hspec-core" ,ghc-hspec-core) + ("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (native-inputs + `(("hspec-discover" ,hspec-discover))) + (home-page "http://hspec.github.io/") + (synopsis "Contributed functionality for Hspec") + (description + "This package provides contributed Hspec extensions.") + (license license:expat))) + +(define-public ghc-hspec-expectations + (package + (name "ghc-hspec-expectations") + (version "0.7.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/hspec-expectations/hspec-expectations-" + version + ".tar.gz")) + (sha256 + (base32 + "1w56jiqfyl237sr207gh3b0l8sr9layy0mdsgd5wknzb49mif6ip")))) + (build-system haskell-build-system) + (inputs `(("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/sol/hspec-expectations") + (synopsis "Catchy combinators for HUnit") + (description "This library provides catchy combinators for HUnit, see +@uref{https://github.com/sol/hspec-expectations#readme, the README}.") + (license license:expat))) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 87e60a8861..68324b1210 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -36,6 +36,7 @@ (define-module (gnu packages haskell) #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) + #:use-module (gnu packages haskell-check) #:use-module (gnu packages libffi) #:use-module (gnu packages lisp) #:use-module (gnu packages lua) @@ -1944,29 +1945,6 @@ (define-public ghc-murmur-hash binding.") (license license:bsd-3))) -(define-public ghc-hunit - (package - (name "ghc-hunit") - (version "1.2.5.2") - (outputs '("out" "doc")) - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/HUnit/HUnit-" - version - ".tar.gz")) - (sha256 - (base32 - "0hcs6qh8bqhip1kkjjnw7ccgcsmawdz5yvffjj5y8zd2vcsavx8a")))) - (build-system haskell-build-system) - (home-page "http://hunit.sourceforge.net/") - (synopsis "Unit testing framework for Haskell") - (description - "HUnit is a unit testing framework for Haskell, inspired by the -JUnit tool for Java.") - (license license:bsd-3))) - (define-public ghc-random (package (name "ghc-random") @@ -2011,98 +1989,6 @@ (define-public ghc-primitive "This package provides various primitive memory-related operations.") (license license:bsd-3))) -(define-public ghc-test-framework - (package - (name "ghc-test-framework") - (version "0.8.1.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/test-framework/" - "test-framework-" version ".tar.gz")) - (sha256 - (base32 - "0wxjgdvb1c4ykazw774zlx86550848wbsvgjgcrdzcgbb9m650vq")))) - (build-system haskell-build-system) - (native-inputs - `(("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck))) - (inputs - `(("ghc-ansi-terminal" ,ghc-ansi-terminal) - ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) - ("ghc-hostname" ,ghc-hostname) - ("ghc-old-locale" ,ghc-old-locale) - ("ghc-random" ,ghc-random) - ("ghc-regex-posix" ,ghc-regex-posix) - ("ghc-xml" ,ghc-xml) - ("ghc-libxml" ,ghc-libxml))) - (home-page "https://batterseapower.github.io/test-framework/") - (synopsis "Framework for running and organising tests") - (description - "This package allows tests such as QuickCheck properties and HUnit test -cases to be assembled into test groups, run in parallel (but reported in -deterministic order, to aid diff interpretation) and filtered and controlled -by command line options. All of this comes with colored test output, progress -reporting and test statistics output.") - (license license:bsd-3))) - -(define-public ghc-test-framework-hunit - (package - (name "ghc-test-framework-hunit") - (version "0.3.0.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "test-framework-hunit/test-framework-hunit-" - version ".tar.gz")) - (sha256 - (base32 - "1h0h55kf6ff25nbfx1mhliwyknc0glwv3zi78wpzllbjbs7gvyfk")))) - (build-system haskell-build-system) - (inputs - `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions) - ("ghc-hunit" ,ghc-hunit) - ("ghc-test-framework" ,ghc-test-framework))) - (home-page "https://batterseapower.github.io/test-framework/") - (synopsis "HUnit support for test-framework") - (description - "This package provides HUnit support for the test-framework package.") - (license license:bsd-3))) - -(define-public ghc-test-framework-quickcheck2 - (package - (name "ghc-test-framework-quickcheck2") - (version "0.3.0.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "test-framework-quickcheck2/" - "test-framework-quickcheck2-" version ".tar.gz")) - (sha256 - (base32 - "12p1zwrsz35r3j5gzbvixz9z1h5643rhihf5gqznmc991krwd5nc")) - (modules '((guix build utils))) - (snippet - ;; The Hackage page and the cabal file linked there for this package - ;; both list 2.9 as the upper version limit, but the source tarball - ;; specifies 2.8. Assume the Hackage page is correct. - '(substitute* "test-framework-quickcheck2.cabal" - (("QuickCheck >= 2.4 && < 2.8") "QuickCheck >= 2.4 && < 2.9"))))) - (build-system haskell-build-system) - (inputs - `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-random" ,ghc-random) - ("ghc-test-framework" ,ghc-test-framework))) - (home-page "https://batterseapower.github.io/test-framework/") - (synopsis "QuickCheck2 support for test-framework") - (description - "This packages provides QuickCheck2 support for the test-framework -package.") - (license license:bsd-3))) - (define-public ghc-tf-random (package (name "ghc-tf-random") @@ -3020,64 +2906,6 @@ (define-public ghc-smallcheck automatically by SmallCheck.") (license license:bsd-3))) -(define-public ghc-tasty-ant-xml - (package - (name "ghc-tasty-ant-xml") - (version "1.0.2") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/tasty-ant-xml/tasty-ant-xml-" - version - ".tar.gz")) - (sha256 - (base32 - "0pgz2lclg2hp72ykljcbxd88pjanfdfk8m5vb2qzcyjr85kwrhxv")))) - (build-system haskell-build-system) - (inputs - `(("ghc-generic-deriving" ,ghc-generic-deriving) - ("ghc-xml" ,ghc-xml) - ("ghc-mtl" ,ghc-mtl) - ("ghc-stm" ,ghc-stm) - ("ghc-tagged" ,ghc-tagged) - ("ghc-tasty" ,ghc-tasty))) - (home-page - "https://github.com/ocharles/tasty-ant-xml") - (synopsis - "Render tasty output to XML for Jenkins") - (description - "A tasty ingredient to output test results in XML, using the Ant -schema. This XML can be consumed by the Jenkins continuous integration -framework.") - (license license:bsd-3))) - -(define-public ghc-tasty-smallcheck - (package - (name "ghc-tasty-smallcheck") - (version "0.8.0.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/tasty-smallcheck/tasty-smallcheck-" - version - ".tar.gz")) - (sha256 - (base32 - "0yckfbz8na8ccyw2911i3a4hd3fdncclk3ng5343hs5cylw6y4sm")))) - (build-system haskell-build-system) - (inputs - `(("ghc-tasty" ,ghc-tasty) - ("ghc-smallcheck" ,ghc-smallcheck) - ("ghc-async" ,ghc-async) - ("ghc-tagged" ,ghc-tagged))) - (home-page "http://documentup.com/feuerbach/tasty") - (synopsis "SmallCheck support for the Tasty test framework") - (description "This package provides SmallCheck support for the Tasty -Haskell test framework.") - (license license:bsd-3))) - (define-public ghc-silently (package (name "ghc-silently") @@ -3102,113 +2930,6 @@ (define-public ghc-silently writing to stdout and other handles.") (license license:bsd-3))) -(define-public ghc-quickcheck-instances - (package - (name "ghc-quickcheck-instances") - (version "0.3.12") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/" - "quickcheck-instances/quickcheck-instances-" - version ".tar.gz")) - (sha256 - (base32 - "1wwvkzpams7i0j7nk5qj8vvhj8x5zcbgbgrpczszgvshva4bkmfx")))) - (build-system haskell-build-system) - (inputs - `(("ghc-old-time" ,ghc-old-time) - ("ghc-unordered-containers" ,ghc-unordered-containers) - ("ghc-hashable" ,ghc-hashable) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-scientific" ,ghc-scientific) - ("ghc-vector" ,ghc-vector) - ("ghc-text" ,ghc-text))) - (home-page - "https://github.com/aslatter/qc-instances") - (synopsis "Common quickcheck instances") - (description "This package provides QuickCheck instances for types -provided by the Haskell Platform.") - (license license:bsd-3))) - -(define-public ghc-quickcheck-unicode - (package - (name "ghc-quickcheck-unicode") - (version "1.0.0.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/quickcheck-unicode/quickcheck-unicode-" - version - ".tar.gz")) - (sha256 - (base32 - "1a8nl6x7l9b22yx61wm0bh2n1xzb1hd5i5zgg1w4fpaivjnrrhi4")))) - (build-system haskell-build-system) - (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) - (home-page - "https://github.com/bos/quickcheck-unicode") - (synopsis "Generator functions Unicode-related tests") - (description "This package provides generator and shrink functions for -testing Unicode-related software.") - (license license:bsd-3))) - -(define-public ghc-quickcheck-io - (package - (name "ghc-quickcheck-io") - (version "0.1.2") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/quickcheck-io/quickcheck-io-" - version - ".tar.gz")) - (sha256 - (base32 - "1kf1kfw9fsmly0rvzvdf6jvdw10qhkmikyj0wcwciw6wad95w9sh")))) - (build-system haskell-build-system) - (inputs - `(("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-hunit" ,ghc-hunit))) - (home-page - "https://github.com/hspec/quickcheck-io#readme") - (synopsis "Use HUnit assertions as QuickCheck properties") - (description "This package provides an orphan instance that allows you to -use HUnit assertions as QuickCheck properties.") - (license license:expat))) - -(define-public ghc-quickcheck - (package - (name "ghc-quickcheck") - (version "2.8.2") - (outputs '("out" "doc")) - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/QuickCheck/QuickCheck-" - version - ".tar.gz")) - (sha256 - (base32 - "1ai6k5v0bibaxq8xffcblc6rwmmk6gf8vjyd9p2h3y6vwbhlvilq")))) - (build-system haskell-build-system) - (arguments - `(#:tests? #f ; FIXME: currently missing libraries used for tests. - #:configure-flags '("-f base4"))) - (inputs - `(("ghc-tf-random" ,ghc-tf-random))) - (home-page - "https://github.com/nick8325/quickcheck") - (synopsis - "Automatic testing of Haskell programs") - (description - "QuickCheck is a library for random testing of program properties.") - (license license:bsd-3))) - (define-public ghc-case-insensitive (package (name "ghc-case-insensitive") @@ -3722,168 +3443,6 @@ (define-public ghc-http responses coming back.") (license license:bsd-3))) -(define-public ghc-hspec - (package - (name "ghc-hspec") - (version "2.2.0") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/hspec/hspec-" - version - ".tar.gz")) - (sha256 - (base32 - "0zqisxznlbszivsgy3irvf566zhcr6ipqqj3x9i7pj5hy913jwqf")))) - (build-system haskell-build-system) - (inputs - `(("ghc-hspec-core" ,ghc-hspec-core) - ("hspec-discover" ,hspec-discover) - ("ghc-hspec-expectations" ,ghc-hspec-expectations) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-hunit" ,ghc-hunit) - ("ghc-stringbuilder" ,ghc-stringbuilder) - ("ghc-hspec-meta" ,ghc-hspec-meta))) - (home-page "http://hspec.github.io/") - (synopsis "Testing Framework for Haskell") - (description "This library provides the Hspec testing framework for -Haskell, inspired by the Ruby library RSpec.") - (license license:expat))) - -(define-public ghc-hspec-contrib - (package - (name "ghc-hspec-contrib") - (version "0.3.0") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "hspec-contrib/hspec-contrib-" - version ".tar.gz")) - (sha256 - (base32 - "006syw8xagfhsx06ws9ywig1qx5lk4cgl7sq6pbid1s64c72mxn4")))) - (build-system haskell-build-system) - (inputs - `(("ghc-hspec-core" ,ghc-hspec-core) - ("ghc-hunit" ,ghc-hunit) - ("ghc-hspec" ,ghc-hspec) - ("ghc-quickcheck" ,ghc-quickcheck))) - (native-inputs - `(("hspec-discover" ,hspec-discover))) - (home-page "http://hspec.github.io/") - (synopsis "Contributed functionality for Hspec") - (description - "This package provides contributed Hspec extensions.") - (license license:expat))) - -(define-public ghc-hspec-expectations - (package - (name "ghc-hspec-expectations") - (version "0.7.2") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/hspec-expectations/hspec-expectations-" - version - ".tar.gz")) - (sha256 - (base32 - "1w56jiqfyl237sr207gh3b0l8sr9layy0mdsgd5wknzb49mif6ip")))) - (build-system haskell-build-system) - (inputs `(("ghc-hunit" ,ghc-hunit))) - (home-page "https://github.com/sol/hspec-expectations") - (synopsis "Catchy combinators for HUnit") - (description "This library provides catchy combinators for HUnit, see -@uref{https://github.com/sol/hspec-expectations#readme, the README}.") - (license license:expat))) - -(define-public hspec-discover - (package - (name "hspec-discover") - (version "2.2.0") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/hspec-discover/hspec-discover-" - version - ".tar.gz")) - (sha256 - (base32 - "0w3awzbljf4hqhxrjrxqa1lfcclg92bhmq641gz2q80vycspapzx")))) - (build-system haskell-build-system) - (arguments `(#:haddock? #f)) ; Haddock phase fails because there are no - ; documentation files. - (inputs `(("ghc-hspec-meta" ,ghc-hspec-meta))) - (home-page "http://hspec.github.io/") - (synopsis "Automatically discover and run Hspec tests") - (description "hspec-discover is a tool which automatically discovers and -runs Hspec tests.") - (license license:expat))) - -(define-public ghc-hspec-core - (package - (name "ghc-hspec-core") - (version "2.2.0") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/hspec-core/hspec-core-" - version - ".tar.gz")) - (sha256 - (base32 - "1wgd55k652jaf81nkvciyqi67ycj7zamr4nd9z1cqf8nr9fc3sa4")))) - (build-system haskell-build-system) - (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. - (inputs - `(("ghc-setenv" ,ghc-setenv) - ("ghc-ansi-terminal" ,ghc-ansi-terminal) - ("ghc-async" ,ghc-async) - ("ghc-quickcheck-io" ,ghc-quickcheck-io) - ("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-hspec-expectations" ,ghc-hspec-expectations) - ("ghc-silently" ,ghc-silently))) - (home-page "http://hspec.github.io/") - (synopsis "Testing framework for Haskell") - (description "This library exposes internal types and functions that can -be used to extend Hspec's functionality.") - (license license:expat))) - -(define-public ghc-hspec-meta - (package - (name "ghc-hspec-meta") - (version "2.2.0") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/hspec-meta/hspec-meta-" - version - ".tar.gz")) - (sha256 - (base32 - "1fmqmgrzp135cxhmxxbaswkk4bqbpgfml00cmcz0d39n11vzpa5z")))) - (build-system haskell-build-system) - (inputs - `(("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-hunit" ,ghc-hunit) - ("ghc-ansi-terminal" ,ghc-ansi-terminal) - ("ghc-async" ,ghc-async) - ("ghc-hspec-expectations" ,ghc-hspec-expectations) - ("ghc-setenv" ,ghc-setenv) - ("ghc-random" ,ghc-random) - ("ghc-quickcheck-io" ,ghc-quickcheck-io))) - (home-page "http://hspec.github.io/") - (synopsis "Version of Hspec to test Hspec itself") - (description "This library provides a stable version of Hspec which is -used to test the in-development version of Hspec.") - (license license:expat))) - (define-public ghc-vault (package (name "ghc-vault") @@ -4370,31 +3929,6 @@ (define-public ghc-unbounded-delays unbounded @code{Integer} type.") (license license:bsd-3))) -;; This package builds `clock` without tests, since the tests rely on tasty -;; and tasty-quickcheck, which in turn require clock to build. When tasty and -;; tasty-quickcheck are added, we will add ghc-clock with tests enabled. -(define ghc-clock-bootstrap - (package - (name "ghc-clock-bootstrap") - (version "0.5.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/" - "clock/" - "clock-" version ".tar.gz")) - (sha256 - (base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw")))) - (build-system haskell-build-system) - (arguments `(#:tests? #f)) ;; Testing suite depends on tasty and - ;; tasty-quickcheck, which need clock to build. - (home-page "https://hackage.haskell.org/package/clock") - (synopsis "High-resolution clock for Haskell") - (description "A package for convenient access to high-resolution clock and -timer functions of different operating systems via a unified API.") - (license license:bsd-3))) - (define-public ghc-clock (package (name "ghc-clock") @@ -5060,123 +4594,6 @@ (define-public ghc-stringsearch occurrences of a substring (the first in case of overlaps) with another.") (license license:bsd-3))) -(define-public ghc-tasty-quickcheck - (package - (name "ghc-tasty-quickcheck") - (version "0.8.4") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/tasty-quickcheck/" - "tasty-quickcheck-" version ".tar.gz")) - (sha256 - (base32 - "15rjxib5jmjq0hzj47x15kgp3awc73va4cy1pmpf7k3hvfv4qprn")))) - (build-system haskell-build-system) - (inputs - `(("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-tagged" ,ghc-tagged) - ("ghc-tasty" ,ghc-tasty) - ("ghc-random" ,ghc-random) - ("ghc-ansi-terminal" ,ghc-ansi-terminal) - ("ghc-tasty-hunit" ,ghc-tasty-hunit) - ("ghc-pcre-light" ,ghc-pcre-light))) - (home-page "http://documentup.com/feuerbach/tasty") - (synopsis "QuickCheck support for the Tasty test framework") - (description "This package provides QuickCheck support for the Tasty -Haskell test framework.") - (license license:expat))) - -(define-public ghc-tasty-golden - (package - (name "ghc-tasty-golden") - (version "2.3.0.2") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/tasty-golden/tasty-golden-" - version - ".tar.gz")) - (sha256 - (base32 - "0n7nll1sx75n3lffwhgnjrxdn0jz1g0921z9mj193fxqw0wz8axh")))) - (build-system haskell-build-system) - (inputs - `(("ghc-temporary" ,ghc-temporary) - ("ghc-tasty" ,ghc-tasty) - ("ghc-mtl" ,ghc-mtl) - ("ghc-optparse-applicative" ,ghc-optparse-applicative) - ("ghc-tagged" ,ghc-tagged) - ("ghc-async" ,ghc-async) - ("ghc-tasty-hunit" ,ghc-tasty-hunit) - ("ghc-temporary-rc" ,ghc-temporary-rc))) - (home-page - "https://github.com/feuerbach/tasty-golden") - (synopsis "Golden tests support for tasty") - (description - "This package provides support for 'golden testing'. A golden test is an -IO action that writes its result to a file. To pass the test, this output -file should be identical to the corresponding 'golden' file, which contains -the correct result for the test.") - (license license:expat))) - -(define-public ghc-tasty - (package - (name "ghc-tasty") - (version "0.11.0.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/tasty/tasty-" - version - ".tar.gz")) - (sha256 - (base32 - "1chapivmmwsb1ghwagvdm80bfj3hdk75m94z4p212ng2i4ghpjkx")))) - (build-system haskell-build-system) - (inputs - `(("ghc-stm" ,ghc-stm) - ("ghc-mtl" ,ghc-mtl) - ("ghc-tagged" ,ghc-tagged) - ("ghc-regex-tdfa-rc" ,ghc-regex-tdfa-rc) - ("ghc-optparse-applicative" ,ghc-optparse-applicative) - ("ghc-unbounded-delays" ,ghc-unbounded-delays) - ("ghc-async" ,ghc-async) - ("ghc-ansi-terminal" ,ghc-ansi-terminal) - ("ghc-clock-bootstrap" ,ghc-clock-bootstrap))) - (home-page "http://documentup.com/feuerbach/tasty") - (synopsis "Modern and extensible testing framework") - (description "Tasty is a modern testing framework for Haskell. It lets -you combine your unit tests, golden tests, QuickCheck/SmallCheck properties, -and any other types of tests into a single test suite.") - (license license:expat))) - -(define-public ghc-tasty-hunit - (package - (name "ghc-tasty-hunit") - (version "0.9.2") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/tasty-hunit/tasty-hunit-" - version - ".tar.gz")) - (sha256 - (base32 - "08qnxaw34wfnzi9irs1jd4d0zczqm3k5ffkd4zwhkz0dflmgq7mf")))) - (build-system haskell-build-system) - (inputs - `(("ghc-tasty" ,ghc-tasty))) - (home-page "http://documentup.com/feuerbach/tasty") - (synopsis "HUnit support for the Tasty test framework") - (description "This package provides HUnit support for the Tasty Haskell -test framework.") - (license license:expat))) - (define-public ghc-cookie (package (name "ghc-cookie") @@ -6399,30 +5816,6 @@ (define-public ghc-edit-distance Damerau-Levenshtein algorithms.") (license license:bsd-3))) -(define-public ghc-tasty-kat - (package - (name "ghc-tasty-kat") - (version "0.0.3") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "tasty-kat/tasty-kat-" version ".tar.gz")) - (sha256 - (base32 - "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7")))) - (build-system haskell-build-system) - (inputs - `(("ghc-tasty" ,ghc-tasty) - ("ghc-mtl" ,ghc-mtl) - ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) - ("ghc-tasty-hunit" ,ghc-tasty-hunit))) - (home-page "https://github.com/vincenthz/tasty-kat") - (synopsis "Known Answer Tests (KAT) framework for tasty") - (description - "This package provides a @dfn{Known Answer Tests} (KAT) framework for -tasty.") - (license license:expat))) - (define-public ghc-cryptonite (package (name "ghc-cryptonite") @@ -7225,31 +6618,6 @@ (define-public ghc-regex-compat-tdfa this problem.") (license license:bsd-3))) -(define-public ghc-tasty-th - (package - (name "ghc-tasty-th") - (version "0.1.4") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/tasty-th/tasty-th-" - version ".tar.gz")) - (sha256 - (base32 - "0dff9si8i1qp0s7p4hlk0l29vq7wxfglw6mvlgmld43h7rllv88q")))) - (build-system haskell-build-system) - (inputs - `(("ghc-tasty" ,ghc-tasty))) - (home-page "https://github.com/bennofs/tasty-th") - (synopsis "Automatically generate tasty TestTrees") - (description - "Tasty-th automatically generates tasty TestTrees from functions of the -current module, using TemplateHaskell. This is a fork the original -test-framework-th package, modified to work with tasty instead of -test-framework.") - (license license:bsd-3))) - (define-public ghc-sandi (package (name "ghc-sandi") @@ -8348,35 +7716,6 @@ (define-public ghc-fsnotify specific Windows, Mac, and Linux filesystem event notification.") (license license:bsd-3))) -(define-public ghc-tasty-rerun - (package - (name "ghc-tasty-rerun") - (version "1.1.6") - (source (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/tasty-rerun/" - "tasty-rerun-" version ".tar.gz")) - (sha256 - (base32 - "0ycxg7whabgcxyzy6gr536x8ykzx45whh1wrbsc7c58zi862fczd")))) - (build-system haskell-build-system) - (inputs - `(("ghc-mtl" ,ghc-mtl) - ("ghc-optparse-applicative" ,ghc-optparse-applicative) - ("ghc-reducers" ,ghc-reducers) - ("ghc-split" ,ghc-split) - ("ghc-stm" ,ghc-stm) - ("ghc-tagged" ,ghc-tagged) - ("ghc-tasty" ,ghc-tasty))) - (home-page "https://github.com/ocharles/tasty-rerun") - (synopsis "Run tests by filtering the test tree") - (description "This package adds the ability to run tests by filtering the -test tree based on the result of a previous test run. You can use this to run -only those tests that failed in the last run, or to only run the tests that have -been added since previous test run.") - (license license:bsd-3))) - (define-public ghc-ieee754 (package (name "ghc-ieee754") @@ -9201,40 +8540,6 @@ (define-public ghc-language-haskell-extract with @code{wc} (for a web service).") (license license:bsd-3))) -(define-public ghc-test-framework-th - (package - (name "ghc-test-framework-th") - (version "0.2.4") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "test-framework-th-" version "/" - "test-framework-th-" version ".tar.gz")) - (sha256 - (base32 - "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b")))) - (build-system haskell-build-system) - (inputs - `(("ghc-test-framework" ,ghc-test-framework) - ("ghc-language-haskell-extract" ,ghc-language-haskell-extract) - ("ghc-haskell-src-exts" ,ghc-haskell-src-exts) - ("ghc-regex-posix" ,ghc-regex-posix))) - (home-page "https://github.com/finnsson/test-generator") - (synopsis "Auto generate the HUnit- and Quickcheck-bulk-code -using Template Haskell") - (description "This library contains two functions: -@code{defaultMainGenerator} and @code{testGroupGenerator}. - -@code{defaultMainGenerator} will extract all functions beginning with -@code{case_}, @code{prop_}, or @code{test_} in the module and put them in a -@code{testGroup}. - -@code{testGroupGenerator} is like @code{defaultMainGenerator} but without -@code{defaultMain}. It is useful if you need a function for the testgroup -\(e.g. if you want to be able to call the testgroup from another module).") - (license license:bsd-3))) - (define-public ghc-abstract-par (package (name "ghc-abstract-par") diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index de9b5dd1d0..438e582fe3 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -19,6 +19,7 @@ (define-module (gnu packages idris) #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (guix build-system gnu) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 7f50af1390..6ef3f8b060 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -59,6 +59,7 @@ (define-module (gnu packages version-control) #:use-module (gnu packages gettext) #:use-module (gnu packages groff) #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages nano) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 09c10eaa0e..cdffb0d852 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -42,6 +42,7 @@ (define-module (gnu packages wm) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) #:use-module (gnu packages base) #:use-module (gnu packages pkg-config) #:use-module (gnu packages perl) -- cgit v1.2.3 From 44b7374a220caf73e398f156e08887250214cbeb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 13 Nov 2017 18:09:36 +0100 Subject: gnu: Move web packages from haskell to haskell-web. * gnu/packages/haskell.scm (ghc-tagsoup, ghc-cookie, ghc-http-types, ghc-http, ghc-http-client, ghc-http-client-tls, ghc-http-date, ghc-http2, ghc-http-conduit, ghc-wai, ghc-wai-logger, ghc-wai-extra, ghc-wai-conduit, ghc-warp, ghc-warp-tls, ghc-xss-sanitize, ghc-css-text, ghc-mime-types, ghc-html, ghc-xhtml, ghc-blaze-html, ghc-aeson, ghc-aeson-pretty, ghc-aeson-qq, ghc-multipart): Move variables to ... * gnu/packages/haskell-web.scm: ... this new file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/haskell.scm, gnu/packages/idris.scm, gnu/packages/version-control.scm, gnu/packages/wm.scm: Include haskell-web module. --- gnu/local.mk | 1 + gnu/packages/haskell-web.scm | 843 +++++++++++++++++++++++++++++++++++++++ gnu/packages/haskell.scm | 813 +------------------------------------ gnu/packages/idris.scm | 1 + gnu/packages/version-control.scm | 1 + gnu/packages/wm.scm | 1 + 6 files changed, 848 insertions(+), 812 deletions(-) create mode 100644 gnu/packages/haskell-web.scm (limited to 'gnu/packages/version-control.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 08637db642..969b5c2af1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -202,6 +202,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/gxmessage.scm \ %D%/packages/haskell.scm \ %D%/packages/haskell-check.scm \ + %D%/packages/haskell-web.scm \ %D%/packages/ham-radio.scm \ %D%/packages/hexedit.scm \ %D%/packages/hugs.scm \ diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm new file mode 100644 index 0000000000..c1a24b91f9 --- /dev/null +++ b/gnu/packages/haskell-web.scm @@ -0,0 +1,843 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Paul van der Walt +;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015 Federico Beffa +;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2017 rsiddharth +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages haskell-web) + #:use-module (gnu packages) + #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) + #:use-module (guix build-system haskell) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define-public ghc-tagsoup + (package + (name "ghc-tagsoup") + (version "0.14") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/tagsoup/tagsoup-" + version + ".tar.gz")) + (sha256 + (base32 + "07pax7i0bl79dmqqz58zy09yrgpnyyr2ya0z183hv96kp65jv0lh")))) + (build-system haskell-build-system) + (inputs `(("ghc-text" ,ghc-text))) + (home-page + "http://community.haskell.org/~ndm/tagsoup/") + (synopsis + "Parsing and extracting information from (possibly malformed) HTML/XML +documents") + (description + "TagSoup is a library for parsing HTML/XML. It supports the HTML 5 +specification, and can be used to parse either well-formed XML, or +unstructured and malformed HTML from the web. The library also provides +useful functions to extract information from an HTML document, making it ideal +for screen-scraping.") + (license license:bsd-3))) + +(define-public ghc-cookie + (package + (name "ghc-cookie") + (version "0.4.1.6") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/cookie/cookie-" + version + ".tar.gz")) + (sha256 + (base32 + "0b6ym6fn29p5az4dwydy036lxj131kagrmgb93w4bbkqfkds8b9s")))) + (build-system haskell-build-system) + (inputs + `(("ghc-old-locale" ,ghc-old-locale) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (home-page "https://github.com/snoyberg/cookie") + (synopsis "HTTP cookie parsing and rendering") + (description "HTTP cookie parsing and rendering library for Haskell.") + (license license:bsd-3))) + +(define-public ghc-http-types + (package + (name "ghc-http-types") + (version "0.9") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/http-types/http-types-" + version + ".tar.gz")) + (sha256 + (base32 + "0ny15jgm5skhs2yx6snr13lrnw19hwjgfygrpsmhib8wqa8cz8cc")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests cannot find + ; Blaze.Bytestring.Builder, which should be + ; provided by ghc-blaze-builder. + (inputs + `(("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text))) + (home-page "https://github.com/aristidb/http-types") + (synopsis "Generic HTTP types for Haskell") + (description "This package provides generic HTTP types for Haskell (for +both client and server code).") + (license license:bsd-3))) + +(define-public ghc-http + (package + (name "ghc-http") + (version "4000.2.20") + (outputs '("out" "doc")) + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/HTTP/HTTP-" + version + ".tar.gz")) + (sha256 + (base32 + "0nyqdxr5ls2dxkf4a1f3x15xzwdm46ppn99nkcbhswlr6s3cq1s4")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-hunit" ,ghc-hunit))) + (inputs + `(("ghc-old-time" ,ghc-old-time) + ("ghc-parsec" ,ghc-parsec) + ("ghc-mtl" ,ghc-mtl) + ("ghc-network" ,ghc-network) + ("ghc-network-uri" ,ghc-network-uri))) + (arguments + `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. + (home-page "https://github.com/haskell/HTTP") + (synopsis "Library for client-side HTTP") + (description + "The HTTP package supports client-side web programming in Haskell. It +lets you set up HTTP connections, transmitting requests and processing the +responses coming back.") + (license license:bsd-3))) + +(define-public ghc-http-client + (package + (name "ghc-http-client") + (version "0.5.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "http-client/http-client-" + version ".tar.gz")) + (sha256 + (base32 + "1v9bdb8dkhb5g6jl9azk86ig7ia8xh9arr64n7s8r94fp0vl6c1c")))) + (build-system haskell-build-system) + ;; Tests require access to the web. + (arguments `(#:tests? #f)) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-http-types" ,ghc-http-types) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-network" ,ghc-network) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-cookie" ,ghc-cookie) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-random" ,ghc-random) + ("ghc-mime-types" ,ghc-mime-types) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-zlib" ,ghc-zlib) + ("ghc-async" ,ghc-async))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "https://github.com/snoyberg/http-client") + (synopsis "HTTP client engine") + (description + "This package provides an HTTP client engine, intended as a base layer +for more user-friendly packages.") + (license license:expat))) + +(define-public ghc-http-client-tls + (package + (name "ghc-http-client-tls") + (version "0.3.4.1") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "http-client-tls/http-client-tls-" + version ".tar.gz")) + (sha256 + (base32 + "1mbwdfn4hs8lcwml2l6xv4n068l9zlasyv6vwb2ylgm030pyv3xh")))) + (build-system haskell-build-system) + ;; Tests require Internet access + (arguments `(#:tests? #f)) + (inputs + `(("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-http-client" ,ghc-http-client) + ("ghc-connection" ,ghc-connection) + ("ghc-network" ,ghc-network) + ("ghc-tls" ,ghc-tls) + ("ghc-http-types" ,ghc-http-types))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "https://github.com/snoyberg/http-client") + (synopsis "Backend for http-client using the TLS library") + (description + "This package provides a backend for the http-client package using the +connection and TLS libraries. It is intended for use by higher-level +libraries, such as http-conduit.") + (license license:expat))) + +(define-public ghc-http-date + (package + (name "ghc-http-date") + (version "0.0.6.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "http-date-" version "/" + "http-date-" version ".tar.gz")) + (sha256 + (base32 + "0dknh28kyarnzqrsc80ssalxjrq0qbv7ir49247p2grb7rh0dqgj")))) + (build-system haskell-build-system) + (inputs + `(("ghc-attoparsec" ,ghc-attoparsec))) + (native-inputs + `(("ghc-doctest" ,ghc-doctest) + ("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover) + ("ghc-old-locale" ,ghc-old-locale))) + (home-page "https://github.com/kazu-yamamoto/http-date") + (synopsis "HTTP Date parser/formatter") + (description "Library for Parsing and formatting HTTP +Date in Haskell.") + (license license:bsd-3))) + +(define-public ghc-http2 + (package + (name "ghc-http2") + (version "1.6.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "http2-" version "/" + "http2-" version ".tar.gz")) + (sha256 + (base32 + "0hww0rfsv6lqx62qzycbcqy5q6rh9k09qkyjkdm5m1sp1z50wqk1")))) + (build-system haskell-build-system) + (inputs + `(("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-aeson" ,ghc-aeson) + ("ghc-aeson-pretty" ,ghc-aeson-pretty) + ("ghc-hex" ,ghc-hex) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector) + ("ghc-word8" ,ghc-word8) + ("ghc-psqueues" ,ghc-psqueues) + ("ghc-stm" ,ghc-stm))) + (native-inputs + `(("ghc-glob" ,ghc-glob) + ("ghc-hspec" ,ghc-hspec) + ("ghc-doctest" ,ghc-doctest) + ("hspec-discover" ,hspec-discover))) + (home-page "https://github.com/kazu-yamamoto/http2") + (synopsis "HTTP/2 library including frames, priority queues and HPACK") + (description "This package provides a HTTP/2.0 library including frames +and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.") + (license license:bsd-3))) + +(define-public ghc-http-conduit + (package + (name "ghc-http-conduit") + (version "2.2.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "http-conduit-" version "/" "http-conduit-" + version ".tar.gz")) + (sha256 (base32 + "03na2nbm9la0shlijvjyb5mpp1prfskk4jmjy8iz707r0731dbjk")))) + (build-system haskell-build-system) + ;; FIXME: `httpLbs TLS` in test-suite `test` fails with + ;; ConnectionFailure getProtocolByName: does not exist (no such protocol + ;; name: tcp) + (arguments `(#:tests? #f)) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-http-types" ,ghc-http-types) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-mtl" ,ghc-mtl) + ("ghc-exceptions" ,ghc-exceptions))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-connection" ,ghc-connection) + ("ghc-warp-tls" ,ghc-warp-tls) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text) + ("ghc-conduit" ,ghc-conduit) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-network" ,ghc-network) + ("ghc-wai" ,ghc-wai) + ("ghc-warp" ,ghc-warp) + ("ghc-wai-conduit" ,ghc-wai-conduit) + ("ghc-http-types" ,ghc-http-types) + ("ghc-http-client" ,ghc-http-client) + ("ghc-cookie" ,ghc-cookie) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-aeson" ,ghc-aeson) + ("ghc-temporary" ,ghc-temporary) + ("ghc-resourcet" ,ghc-resourcet))) + (home-page "https://hackage.haskell.org/package/http-conduit") + (synopsis "HTTP/HTTPS client with conduit interface") + (description "This library uses attoparsec for parsing the actual +contents of the HTTP connection. It also provides higher-level functions +which allow you to avoid direct usage of conduits.") + (license license:bsd-3))) + +(define-public ghc-wai + (package + (name "ghc-wai") + (version "3.2.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/wai/wai-" + version + ".tar.gz")) + (sha256 + (base32 + "08afasnirja21vr0bmzcywz4w29x736dmdv7h8nnh1l8bn7sd02x")))) + (build-system haskell-build-system) + (inputs + `(("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-vault" ,ghc-vault) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-network" ,ghc-network) + ("ghc-text" ,ghc-text) + ("ghc-http-types" ,ghc-http-types))) + (native-inputs + `(("hspec-discover" ,hspec-discover) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec))) + (home-page "https://hackage.haskell.org/package/wai") + (synopsis "Web application interface for Haskell") + (description "This package provides a Web Application Interface (WAI) +library for the Haskell language. It defines a common protocol for +communication between web applications and web servers.") + (license license:bsd-3))) + +(define-public ghc-wai-logger + (package + (name "ghc-wai-logger") + (version "2.2.4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/wai-logger/wai-logger-" + version + ".tar.gz")) + (sha256 + (base32 + "1s6svvy3ci4j1dj1jaw8hg628miwj8f5gpy9n8d8hpsaxav6nzgk")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported + ; by propagated-inputs. + (inputs + `(("ghc-auto-update" ,ghc-auto-update) + ("ghc-byteorder" ,ghc-byteorder) + ("ghc-easy-file" ,ghc-easy-file) + ("ghc-unix-time" ,ghc-unix-time) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-fast-logger" ,ghc-fast-logger) + ("ghc-http-types" ,ghc-http-types) + ("ghc-network" ,ghc-network) + ("ghc-wai" ,ghc-wai))) + (home-page "https://hackage.haskell.org/package/wai-logger") + (synopsis "Logging system for WAI") + (description "This package provides the logging system for WAI.") + (license license:bsd-3))) + +(define-public ghc-wai-extra + (package + (name "ghc-wai-extra") + (version "3.0.13.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/wai-extra/wai-extra-" + version + ".tar.gz")) + (sha256 + (base32 + "0mh761a1bayr4ydwqmh3h8ndpi19zqw34mmy49lp2abr70r0nm1p")))) + (build-system haskell-build-system) + (inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-cookie" ,ghc-cookie) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-network" ,ghc-network) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-stringsearch" ,ghc-stringsearch) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-fast-logger" ,ghc-fast-logger) + ("ghc-wai-logger" ,ghc-wai-logger) + ("ghc-zlib" ,ghc-zlib) + ("ghc-word8" ,ghc-word8) + ("ghc-iproute" ,ghc-iproute) + ("ghc-void" ,ghc-void) + ("ghc-wai" ,ghc-wai) + ("ghc-http-types" ,ghc-http-types) + ("ghc-text" ,ghc-text) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-vault" ,ghc-vault) + ("ghc-aeson" ,ghc-aeson))) + (native-inputs + `(("hspec-discover" ,hspec-discover) + ("ghc-hspec" ,ghc-hspec) + ("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/yesodweb/wai") + (synopsis "Some basic WAI handlers and middleware") + (description "This library provides basic WAI handlers and middleware +functionality.") + (license license:expat))) + +(define-public ghc-wai-conduit + (package + (name "ghc-wai-conduit") + (version "3.0.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "wai-conduit-" version "/" + "wai-conduit-" version ".tar.gz")) + (sha256 + (base32 + "1zvsiwjq2mvkb9sjgp3ly9m968m7a2jjzr4id6jpi3mmqykj15z4")))) + (build-system haskell-build-system) + (inputs + `(("ghc-conduit" ,ghc-conduit) + ("ghc-http-types" ,ghc-http-types) + ("ghc-wai" ,ghc-wai) + ("ghc-blaze-builder" ,ghc-blaze-builder))) + (home-page "https://github.com/yesodweb/wai") + (synopsis "Conduit wrappers for Haskell's WAI") + (description "This package provides data streaming abstraction for +Haskell's Web Application Interface (WAI).") + (license license:expat))) + +(define-public ghc-warp + (package + (name "ghc-warp") + (version "3.2.11.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "warp-" version "/" "warp-" version + ".tar.gz")) + (sha256 + (base32 + "1zp5cy0bbj508vdvms1n5z80z37m253kwsqc5a83cfc990n6fgw5")))) + (build-system haskell-build-system) + (arguments + `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails. + (inputs + `(("ghc-async" ,ghc-async) + ("ghc-auto-update" ,ghc-auto-update) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-hashable" ,ghc-hashable) + ("ghc-http-types" ,ghc-http-types) + ("ghc-iproute" ,ghc-iproute) + ("ghc-network" ,ghc-network) + ("ghc-stm" ,ghc-stm) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-text" ,ghc-text) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-vault" ,ghc-vault) + ("ghc-wai" ,ghc-wai) + ("ghc-word8" ,ghc-word8) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-http-date" ,ghc-http-date) + ("ghc-simple-sendfile" ,ghc-simple-sendfile) + ("ghc-http2" ,ghc-http2))) + (native-inputs + `(("ghc-silently" ,ghc-silently) + ("ghc-hspec" ,ghc-hspec) + ("ghc-auto-update" ,ghc-auto-update) + ("ghc-doctest" ,ghc-doctest) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-http" ,ghc-http) + ("hspec-discover" ,hspec-discover))) + (home-page "http://github.com/yesodweb/wai") + (synopsis "HTTP server library for Haskell's WAI") + (description "Warp is a server library for HTTP/1.x and HTTP/2 +based WAI (Web Application Interface in Haskell).") + (license license:expat))) + +(define-public ghc-warp-tls + (package + (name "ghc-warp-tls") + (version "3.2.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "warp-tls-" version "/" + "warp-tls-" version ".tar.gz")) + (sha256 + (base32 + "14m2bzk5ivz9gdpxlcj6qnh46f2lycm1ybdjnfkj2876zrqwii7m")))) + (build-system haskell-build-system) + (inputs + `(("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-network" ,ghc-network) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-tls" ,ghc-tls) + ("ghc-wai" ,ghc-wai) + ("ghc-warp" ,ghc-warp))) + (home-page "http://github.com/yesodweb/wai") + (synopsis "SSL/TLS support for Warp") + (description "This package provides SSL/TLS support for Warp, +a WAI handler, via the native Haskell TLS implementation.") + (license license:expat))) + +(define-public ghc-xss-sanitize + (package + (name "ghc-xss-sanitize") + (version "0.3.5.6") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-" + version + ".tar.gz")) + (sha256 + (base32 + "1j2qrn2dbfx01m7zyk9ilgnp9zjwq9mk62b0rdal4zkg4vh212h0")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tagsoup" ,ghc-tagsoup) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-css-text" ,ghc-css-text) + ("ghc-network-uri" ,ghc-network-uri))) + (native-inputs + `(("ghc-text" ,ghc-text) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-hspec" ,ghc-hspec) + ("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/yesodweb/haskell-xss-sanitize") + (synopsis "Sanitize untrusted HTML to prevent XSS attacks") + (description "This library provides @code{sanitizeXSS}. Run untrusted +HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS +attacks.") + (license license:bsd-3))) + +(define-public ghc-css-text + (package + (name "ghc-css-text") + (version "0.1.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/css-text/css-text-" + version + ".tar.gz")) + (sha256 + (base32 + "1xi1n2f0g8y43p95lynhcg50wxbq7hqfzbfzm7fy8mn7gvd920nw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://www.yesodweb.com/") + (synopsis "CSS parser and renderer") + (description "This package provides a CSS parser and renderer for +Haskell.") + (license license:bsd-3))) + +(define-public ghc-mime-types + (package + (name "ghc-mime-types") + (version "0.1.0.6") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "mime-types/mime-types-" + version ".tar.gz")) + (sha256 + (base32 + "090z3dp928243amnc6s8g10rk2h2bprk9y138q6wj3cpflzr72pw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-text" ,ghc-text))) + (home-page "https://github.com/yesodweb/wai") + (synopsis "Basic MIME type handling types and functions") + (description + "This library provides basic MIME type handling types and functions.") + (license license:expat))) + +(define-public ghc-html + (package + (name "ghc-html") + (version "1.0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/html/html-" + version + ".tar.gz")) + (sha256 + (base32 + "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c")))) + (build-system haskell-build-system) + (home-page + "https://hackage.haskell.org/package/html") + (synopsis "HTML combinator library") + (description + "This package contains a combinator library for constructing HTML +documents.") + (license license:bsd-3))) + +(define-public ghc-xhtml + (package + (name "ghc-xhtml") + (version "3000.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/xhtml/xhtml-" + version + ".tar.gz")) + (sha256 + (base32 + "1n6wgzxbj8xf0wf1il827qidphnffb5vzhwzqlxhh70c2y10f0ik")))) + (build-system haskell-build-system) + (home-page "https://github.com/haskell/xhtml") + (synopsis "XHTML combinator library") + (description + "This package provides combinators for producing XHTML 1.0, including the +Strict, Transitional and Frameset variants.") + (license license:bsd-3))) + +(define-public ghc-blaze-html + (package + (name "ghc-blaze-html") + (version "0.8.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/blaze-html/blaze-html-" + version + ".tar.gz")) + (sha256 + (base32 + "1dnw50kh0s405cg9i2y4a8awanhj3bqzk21jwgfza65kcjby7lpq")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text) + ("ghc-blaze-markup" ,ghc-blaze-markup))) + (home-page "http://jaspervdj.be/blaze") + (synopsis "Fast HTML combinator library") + (description "This library provides HTML combinators for Haskell.") + (license license:bsd-3))) + +(define-public ghc-aeson + (package + (name "ghc-aeson") + (version "0.10.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/aeson/aeson-" + version + ".tar.gz")) + (sha256 + (base32 + "19kp33rfivr4d3myyr8xn803wd7p8x5nc4wb3qvlgjwgyqjaxvrz")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (inputs + `(("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-dlist" ,ghc-dlist) + ("ghc-mtl" ,ghc-mtl) + ("ghc-scientific" ,ghc-scientific) + ("ghc-syb" ,ghc-syb) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector) + ("ghc-hashable" ,ghc-hashable) + ("ghc-text" ,ghc-text) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/bos/aeson") + (synopsis "Fast JSON parsing and encoding") + (description "This package provides a JSON parsing and encoding library +for Haskell, optimized for ease of use and high performance. (A note on +naming: in Greek mythology, Aeson was the father of Jason.)") + (license license:bsd-3))) + +(define-public ghc-aeson-pretty + (package + (name "ghc-aeson-pretty") + (version "0.7.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-" + version ".tar.gz")) + (sha256 + (base32 + "03ap81853qi8yd9kdgczllrrni23a6glsfxrwj8zab6ipjrbh234")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-vector" ,ghc-vector) + ("ghc-text" ,ghc-text) + ("ghc-unordered-containers" + ,ghc-unordered-containers) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-cmdargs" ,ghc-cmdargs))) + (home-page "https://github.com/informatikr/aeson-pretty") + (synopsis "JSON pretty-printing library and command-line tool") + (description + "This package provides a JSON pretty-printing library compatible with aeson +as well as a command-line tool to improve readabilty of streams of JSON data. +The library provides the function @code{encodePretty}. It is a drop-in +replacement for aeson's @code{encode} function, producing JSON-ByteStrings for +human readers. The command-line tool reads JSON from stdin and writes +prettified JSON to stdout. It also offers a complementary \"compact\"-mode, +essentially the opposite of pretty-printing.") + (license license:bsd-3))) + +(define-public ghc-aeson-qq + (package + (name "ghc-aeson-qq") + (version "0.8.1") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "aeson-qq/aeson-qq-" version ".tar.gz")) + (sha256 + (base32 + "1z8kh3qjc4khadz1ijdqm7fbk7dh17sisqhpwd3c9aibj2927k9d")))) + (build-system haskell-build-system) + (inputs + `(("ghc-base-compat" ,ghc-base-compat) + ("ghc-text" ,ghc-text) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-scientific" ,ghc-scientific) + ("ghc-vector" ,ghc-vector) + ("ghc-aeson" ,ghc-aeson) + ("ghc-parsec" ,ghc-parsec) + ("ghc-haskell-src-meta" ,ghc-haskell-src-meta))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover))) + (home-page "https://github.com/zalora/aeson-qq") + (synopsis "JSON quasiquoter for Haskell") + (description + "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes +the function @code{aesonQQ} that compile-time converts a string representation +of a JSON value into a @code{Data.Aeson.Value}.") + (license license:expat))) + +(define-public ghc-multipart + (package + (name "ghc-multipart") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/multipart/multipart-" + version + ".tar.gz")) + (sha256 + (base32 + "0g04jhyw1ib1s7c9bcldyyn4n90qd9x7dmvic4vgq57bgcqgnhz5")))) + (build-system haskell-build-system) + (inputs `(("ghc-parsec" ,ghc-parsec))) + (home-page + "http://www.github.com/silkapp/multipart") + (synopsis + "HTTP multipart library") + (description + "HTTP multipart split out of the cgi package, for Haskell.") + (license license:bsd-3))) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 68324b1210..23093e318d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -37,6 +37,7 @@ (define-module (gnu packages haskell) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-web) #:use-module (gnu packages libffi) #:use-module (gnu packages lisp) #:use-module (gnu packages lua) @@ -735,75 +736,6 @@ (define-public ghc-simple-reflect them.") (license license:bsd-3))) -(define-public ghc-multipart - (package - (name "ghc-multipart") - (version "0.1.2") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/multipart/multipart-" - version - ".tar.gz")) - (sha256 - (base32 - "0g04jhyw1ib1s7c9bcldyyn4n90qd9x7dmvic4vgq57bgcqgnhz5")))) - (build-system haskell-build-system) - (inputs `(("ghc-parsec" ,ghc-parsec))) - (home-page - "http://www.github.com/silkapp/multipart") - (synopsis - "HTTP multipart library") - (description - "HTTP multipart split out of the cgi package, for Haskell.") - (license license:bsd-3))) - -(define-public ghc-html - (package - (name "ghc-html") - (version "1.0.1.2") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/html/html-" - version - ".tar.gz")) - (sha256 - (base32 - "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c")))) - (build-system haskell-build-system) - (home-page - "https://hackage.haskell.org/package/html") - (synopsis "HTML combinator library") - (description - "This package contains a combinator library for constructing HTML -documents.") - (license license:bsd-3))) - -(define-public ghc-xhtml - (package - (name "ghc-xhtml") - (version "3000.2.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/xhtml/xhtml-" - version - ".tar.gz")) - (sha256 - (base32 - "1n6wgzxbj8xf0wf1il827qidphnffb5vzhwzqlxhh70c2y10f0ik")))) - (build-system haskell-build-system) - (home-page "https://github.com/haskell/xhtml") - (synopsis "XHTML combinator library") - (description - "This package provides combinators for producing XHTML 1.0, including the -Strict, Transitional and Frameset variants.") - (license license:bsd-3))) - (define-public ghc-haskell-src (package (name "ghc-haskell-src") @@ -1057,38 +989,6 @@ (define-public ghc-resourcet code where you can safely allocate resources.") (license license:bsd-3))) -(define-public ghc-xss-sanitize - (package - (name "ghc-xss-sanitize") - (version "0.3.5.6") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-" - version - ".tar.gz")) - (sha256 - (base32 - "1j2qrn2dbfx01m7zyk9ilgnp9zjwq9mk62b0rdal4zkg4vh212h0")))) - (build-system haskell-build-system) - (inputs - `(("ghc-tagsoup" ,ghc-tagsoup) - ("ghc-utf8-string" ,ghc-utf8-string) - ("ghc-css-text" ,ghc-css-text) - ("ghc-network-uri" ,ghc-network-uri))) - (native-inputs - `(("ghc-text" ,ghc-text) - ("ghc-attoparsec" ,ghc-attoparsec) - ("ghc-hspec" ,ghc-hspec) - ("ghc-hunit" ,ghc-hunit))) - (home-page "https://github.com/yesodweb/haskell-xss-sanitize") - (synopsis "Sanitize untrusted HTML to prevent XSS attacks") - (description "This library provides @code{sanitizeXSS}. Run untrusted -HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS -attacks.") - (license license:bsd-3))) - (define-public ghc-objectname (package (name "ghc-objectname") @@ -2117,34 +2017,6 @@ (define-public ghc-unix-compat isn't available, portable implementations are used.") (license license:bsd-3))) -(define-public ghc-http-types - (package - (name "ghc-http-types") - (version "0.9") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/http-types/http-types-" - version - ".tar.gz")) - (sha256 - (base32 - "0ny15jgm5skhs2yx6snr13lrnw19hwjgfygrpsmhib8wqa8cz8cc")))) - (build-system haskell-build-system) - (arguments `(#:tests? #f)) ; FIXME: Tests cannot find - ; Blaze.Bytestring.Builder, which should be - ; provided by ghc-blaze-builder. - (inputs - `(("ghc-case-insensitive" ,ghc-case-insensitive) - ("ghc-blaze-builder" ,ghc-blaze-builder) - ("ghc-text" ,ghc-text))) - (home-page "https://github.com/aristidb/http-types") - (synopsis "Generic HTTP types for Haskell") - (description "This package provides generic HTTP types for Haskell (for -both client and server code).") - (license license:bsd-3))) - (define-public ghc-indents (package (name "ghc-indents") @@ -2400,32 +2272,6 @@ (define-public ghc-attoparsec complicated text/binary file formats.") (license license:bsd-3))) -(define-public ghc-css-text - (package - (name "ghc-css-text") - (version "0.1.2.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/css-text/css-text-" - version - ".tar.gz")) - (sha256 - (base32 - "1xi1n2f0g8y43p95lynhcg50wxbq7hqfzbfzm7fy8mn7gvd920nw")))) - (build-system haskell-build-system) - (inputs - `(("ghc-text" ,ghc-text) - ("ghc-attoparsec" ,ghc-attoparsec) - ("ghc-hspec" ,ghc-hspec) - ("ghc-quickcheck" ,ghc-quickcheck))) - (home-page "http://www.yesodweb.com/") - (synopsis "CSS parser and renderer") - (description "This package provides a CSS parser and renderer for -Haskell.") - (license license:bsd-3))) - (define-public ghc-zip-archive (package (name "ghc-zip-archive") @@ -3409,40 +3255,6 @@ (define-public ghc-ansi-terminal cursor, and changing the title.") (license license:bsd-3))) -(define-public ghc-http - (package - (name "ghc-http") - (version "4000.2.20") - (outputs '("out" "doc")) - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/HTTP/HTTP-" - version - ".tar.gz")) - (sha256 - (base32 - "0nyqdxr5ls2dxkf4a1f3x15xzwdm46ppn99nkcbhswlr6s3cq1s4")))) - (build-system haskell-build-system) - (native-inputs - `(("ghc-hunit" ,ghc-hunit))) - (inputs - `(("ghc-old-time" ,ghc-old-time) - ("ghc-parsec" ,ghc-parsec) - ("ghc-mtl" ,ghc-mtl) - ("ghc-network" ,ghc-network) - ("ghc-network-uri" ,ghc-network-uri))) - (arguments - `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. - (home-page "https://github.com/haskell/HTTP") - (synopsis "Library for client-side HTTP") - (description - "The HTTP package supports client-side web programming in Haskell. It -lets you set up HTTP connections, transmitting requests and processing the -responses coming back.") - (license license:bsd-3))) - (define-public ghc-vault (package (name "ghc-vault") @@ -3717,31 +3529,6 @@ (define-public ghc-blaze-markup library for Haskell.") (license license:bsd-3))) -(define-public ghc-blaze-html - (package - (name "ghc-blaze-html") - (version "0.8.1.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/blaze-html/blaze-html-" - version - ".tar.gz")) - (sha256 - (base32 - "1dnw50kh0s405cg9i2y4a8awanhj3bqzk21jwgfza65kcjby7lpq")))) - (build-system haskell-build-system) - (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. - (inputs - `(("ghc-blaze-builder" ,ghc-blaze-builder) - ("ghc-text" ,ghc-text) - ("ghc-blaze-markup" ,ghc-blaze-markup))) - (home-page "http://jaspervdj.be/blaze") - (synopsis "Fast HTML combinator library") - (description "This library provides HTML combinators for Haskell.") - (license license:bsd-3))) - (define-public ghc-easy-file (package (name "ghc-easy-file") @@ -4150,35 +3937,6 @@ (define-public ghc-lens indexed variants.") (license license:bsd-3))) -(define-public ghc-tagsoup - (package - (name "ghc-tagsoup") - (version "0.14") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/tagsoup/tagsoup-" - version - ".tar.gz")) - (sha256 - (base32 - "07pax7i0bl79dmqqz58zy09yrgpnyyr2ya0z183hv96kp65jv0lh")))) - (build-system haskell-build-system) - (inputs `(("ghc-text" ,ghc-text))) - (home-page - "http://community.haskell.org/~ndm/tagsoup/") - (synopsis - "Parsing and extracting information from (possibly malformed) HTML/XML -documents") - (description - "TagSoup is a library for parsing HTML/XML. It supports the HTML 5 -specification, and can be used to parse either well-formed XML, or -unstructured and malformed HTML from the web. The library also provides -useful functions to extract information from an HTML document, making it ideal -for screen-scraping.") - (license license:bsd-3))) - (define-public ghc-digest (package (name "ghc-digest") @@ -4594,36 +4352,6 @@ (define-public ghc-stringsearch occurrences of a substring (the first in case of overlaps) with another.") (license license:bsd-3))) -(define-public ghc-cookie - (package - (name "ghc-cookie") - (version "0.4.1.6") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/cookie/cookie-" - version - ".tar.gz")) - (sha256 - (base32 - "0b6ym6fn29p5az4dwydy036lxj131kagrmgb93w4bbkqfkds8b9s")))) - (build-system haskell-build-system) - (inputs - `(("ghc-old-locale" ,ghc-old-locale) - ("ghc-blaze-builder" ,ghc-blaze-builder) - ("ghc-text" ,ghc-text) - ("ghc-data-default-class" ,ghc-data-default-class) - ("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-tasty" ,ghc-tasty) - ("ghc-tasty-hunit" ,ghc-tasty-hunit) - ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) - (home-page "https://github.com/snoyberg/cookie") - (synopsis "HTTP cookie parsing and rendering") - (description "HTTP cookie parsing and rendering library for Haskell.") - (license license:bsd-3))) - (define-public ghc-scientific (package (name "ghc-scientific") @@ -4659,74 +4387,6 @@ (define-public ghc-scientific notation}.") (license license:bsd-3))) -(define-public ghc-aeson - (package - (name "ghc-aeson") - (version "0.10.0.0") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/aeson/aeson-" - version - ".tar.gz")) - (sha256 - (base32 - "19kp33rfivr4d3myyr8xn803wd7p8x5nc4wb3qvlgjwgyqjaxvrz")))) - (build-system haskell-build-system) - (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. - (inputs - `(("ghc-attoparsec" ,ghc-attoparsec) - ("ghc-dlist" ,ghc-dlist) - ("ghc-mtl" ,ghc-mtl) - ("ghc-scientific" ,ghc-scientific) - ("ghc-syb" ,ghc-syb) - ("ghc-unordered-containers" ,ghc-unordered-containers) - ("ghc-vector" ,ghc-vector) - ("ghc-hashable" ,ghc-hashable) - ("ghc-text" ,ghc-text) - ("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck))) - (home-page "https://github.com/bos/aeson") - (synopsis "Fast JSON parsing and encoding") - (description "This package provides a JSON parsing and encoding library -for Haskell, optimized for ease of use and high performance. (A note on -naming: in Greek mythology, Aeson was the father of Jason.)") - (license license:bsd-3))) - -(define-public ghc-aeson-pretty - (package - (name "ghc-aeson-pretty") - (version "0.7.2") - (source (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-" - version ".tar.gz")) - (sha256 - (base32 - "03ap81853qi8yd9kdgczllrrni23a6glsfxrwj8zab6ipjrbh234")))) - (build-system haskell-build-system) - (inputs - `(("ghc-aeson" ,ghc-aeson) - ("ghc-vector" ,ghc-vector) - ("ghc-text" ,ghc-text) - ("ghc-unordered-containers" - ,ghc-unordered-containers) - ("ghc-attoparsec" ,ghc-attoparsec) - ("ghc-cmdargs" ,ghc-cmdargs))) - (home-page "https://github.com/informatikr/aeson-pretty") - (synopsis "JSON pretty-printing library and command-line tool") - (description - "This package provides a JSON pretty-printing library compatible with aeson -as well as a command-line tool to improve readabilty of streams of JSON data. -The library provides the function @code{encodePretty}. It is a drop-in -replacement for aeson's @code{encode} function, producing JSON-ByteStrings for -human readers. The command-line tool reads JSON from stdin and writes -prettified JSON to stdout. It also offers a complementary \"compact\"-mode, -essentially the opposite of pretty-printing.") - (license license:bsd-3))) - (define-public ghc-boxes (package (name "ghc-boxes") @@ -4749,123 +4409,6 @@ (define-public ghc-boxes using a simple box model.") (license license:bsd-3))) -(define-public ghc-wai - (package - (name "ghc-wai") - (version "3.2.1.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/wai/wai-" - version - ".tar.gz")) - (sha256 - (base32 - "08afasnirja21vr0bmzcywz4w29x736dmdv7h8nnh1l8bn7sd02x")))) - (build-system haskell-build-system) - (inputs - `(("ghc-bytestring-builder" ,ghc-bytestring-builder) - ("ghc-unix-compat" ,ghc-unix-compat) - ("ghc-vault" ,ghc-vault) - ("ghc-blaze-builder" ,ghc-blaze-builder) - ("ghc-network" ,ghc-network) - ("ghc-text" ,ghc-text) - ("ghc-http-types" ,ghc-http-types))) - (native-inputs - `(("hspec-discover" ,hspec-discover) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-hunit" ,ghc-hunit) - ("ghc-hspec" ,ghc-hspec))) - (home-page "https://hackage.haskell.org/package/wai") - (synopsis "Web application interface for Haskell") - (description "This package provides a Web Application Interface (WAI) -library for the Haskell language. It defines a common protocol for -communication between web applications and web servers.") - (license license:bsd-3))) - -(define-public ghc-wai-logger - (package - (name "ghc-wai-logger") - (version "2.2.4.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/wai-logger/wai-logger-" - version - ".tar.gz")) - (sha256 - (base32 - "1s6svvy3ci4j1dj1jaw8hg628miwj8f5gpy9n8d8hpsaxav6nzgk")))) - (build-system haskell-build-system) - (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported - ; by propagated-inputs. - (inputs - `(("ghc-auto-update" ,ghc-auto-update) - ("ghc-byteorder" ,ghc-byteorder) - ("ghc-easy-file" ,ghc-easy-file) - ("ghc-unix-time" ,ghc-unix-time) - ("ghc-blaze-builder" ,ghc-blaze-builder) - ("ghc-case-insensitive" ,ghc-case-insensitive) - ("ghc-fast-logger" ,ghc-fast-logger) - ("ghc-http-types" ,ghc-http-types) - ("ghc-network" ,ghc-network) - ("ghc-wai" ,ghc-wai))) - (home-page "https://hackage.haskell.org/package/wai-logger") - (synopsis "Logging system for WAI") - (description "This package provides the logging system for WAI.") - (license license:bsd-3))) - -(define-public ghc-wai-extra - (package - (name "ghc-wai-extra") - (version "3.0.13.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/wai-extra/wai-extra-" - version - ".tar.gz")) - (sha256 - (base32 - "0mh761a1bayr4ydwqmh3h8ndpi19zqw34mmy49lp2abr70r0nm1p")))) - (build-system haskell-build-system) - (inputs - `(("ghc-ansi-terminal" ,ghc-ansi-terminal) - ("ghc-base64-bytestring" ,ghc-base64-bytestring) - ("ghc-cookie" ,ghc-cookie) - ("ghc-blaze-builder" ,ghc-blaze-builder) - ("ghc-network" ,ghc-network) - ("ghc-lifted-base" ,ghc-lifted-base) - ("ghc-streaming-commons" ,ghc-streaming-commons) - ("ghc-stringsearch" ,ghc-stringsearch) - ("ghc-resourcet" ,ghc-resourcet) - ("ghc-fast-logger" ,ghc-fast-logger) - ("ghc-wai-logger" ,ghc-wai-logger) - ("ghc-zlib" ,ghc-zlib) - ("ghc-word8" ,ghc-word8) - ("ghc-iproute" ,ghc-iproute) - ("ghc-void" ,ghc-void) - ("ghc-wai" ,ghc-wai) - ("ghc-http-types" ,ghc-http-types) - ("ghc-text" ,ghc-text) - ("ghc-case-insensitive" ,ghc-case-insensitive) - ("ghc-data-default-class" ,ghc-data-default-class) - ("ghc-unix-compat" ,ghc-unix-compat) - ("ghc-vault" ,ghc-vault) - ("ghc-aeson" ,ghc-aeson))) - (native-inputs - `(("hspec-discover" ,hspec-discover) - ("ghc-hspec" ,ghc-hspec) - ("ghc-hunit" ,ghc-hunit))) - (home-page "https://github.com/yesodweb/wai") - (synopsis "Some basic WAI handlers and middleware") - (description "This library provides basic WAI handlers and middleware -functionality.") - (license license:expat))) - (define-public ghc-deepseq-generics (package (name "ghc-deepseq-generics") @@ -5301,38 +4844,6 @@ (define-public ghc-haskell-src-meta template-haskell abstract syntax.") (license license:bsd-3))) -(define-public ghc-aeson-qq - (package - (name "ghc-aeson-qq") - (version "0.8.1") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "aeson-qq/aeson-qq-" version ".tar.gz")) - (sha256 - (base32 - "1z8kh3qjc4khadz1ijdqm7fbk7dh17sisqhpwd3c9aibj2927k9d")))) - (build-system haskell-build-system) - (inputs - `(("ghc-base-compat" ,ghc-base-compat) - ("ghc-text" ,ghc-text) - ("ghc-attoparsec" ,ghc-attoparsec) - ("ghc-scientific" ,ghc-scientific) - ("ghc-vector" ,ghc-vector) - ("ghc-aeson" ,ghc-aeson) - ("ghc-parsec" ,ghc-parsec) - ("ghc-haskell-src-meta" ,ghc-haskell-src-meta))) - (native-inputs - `(("ghc-hspec" ,ghc-hspec) - ("hspec-discover" ,hspec-discover))) - (home-page "https://github.com/zalora/aeson-qq") - (synopsis "JSON quasiquoter for Haskell") - (description - "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes -the function @code{aesonQQ} that compile-time converts a string representation -of a JSON value into a @code{Data.Aeson.Value}.") - (license license:expat))) - (define-public ghc-conduit (package (name "ghc-conduit") @@ -5578,68 +5089,6 @@ (define-public ghc-hslua described in @url{http://www.lua.org/}.") (license license:expat))) -(define-public ghc-mime-types - (package - (name "ghc-mime-types") - (version "0.1.0.6") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "mime-types/mime-types-" - version ".tar.gz")) - (sha256 - (base32 - "090z3dp928243amnc6s8g10rk2h2bprk9y138q6wj3cpflzr72pw")))) - (build-system haskell-build-system) - (inputs - `(("ghc-text" ,ghc-text))) - (home-page "https://github.com/yesodweb/wai") - (synopsis "Basic MIME type handling types and functions") - (description - "This library provides basic MIME type handling types and functions.") - (license license:expat))) - -(define-public ghc-http-client - (package - (name "ghc-http-client") - (version "0.5.6.1") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "http-client/http-client-" - version ".tar.gz")) - (sha256 - (base32 - "1v9bdb8dkhb5g6jl9azk86ig7ia8xh9arr64n7s8r94fp0vl6c1c")))) - (build-system haskell-build-system) - ;; Tests require access to the web. - (arguments `(#:tests? #f)) - (inputs - `(("ghc-text" ,ghc-text) - ("ghc-http-types" ,ghc-http-types) - ("ghc-blaze-builder" ,ghc-blaze-builder) - ("ghc-data-default-class" ,ghc-data-default-class) - ("ghc-network" ,ghc-network) - ("ghc-streaming-commons" ,ghc-streaming-commons) - ("ghc-case-insensitive" ,ghc-case-insensitive) - ("ghc-base64-bytestring" ,ghc-base64-bytestring) - ("ghc-cookie" ,ghc-cookie) - ("ghc-exceptions" ,ghc-exceptions) - ("ghc-random" ,ghc-random) - ("ghc-mime-types" ,ghc-mime-types) - ("ghc-network-uri" ,ghc-network-uri) - ("ghc-monad-control" ,ghc-monad-control) - ("ghc-zlib" ,ghc-zlib) - ("ghc-async" ,ghc-async))) - (native-inputs - `(("ghc-hspec" ,ghc-hspec))) - (home-page "https://github.com/snoyberg/http-client") - (synopsis "HTTP client engine") - (description - "This package provides an HTTP client engine, intended as a base layer -for more user-friendly packages.") - (license license:expat))) - (define-public ghc-byteable (package (name "ghc-byteable") @@ -6081,38 +5530,6 @@ (define-public ghc-connection the choice of SSL/TLS, and SOCKS.") (license license:bsd-3))) -(define-public ghc-http-client-tls - (package - (name "ghc-http-client-tls") - (version "0.3.4.1") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "http-client-tls/http-client-tls-" - version ".tar.gz")) - (sha256 - (base32 - "1mbwdfn4hs8lcwml2l6xv4n068l9zlasyv6vwb2ylgm030pyv3xh")))) - (build-system haskell-build-system) - ;; Tests require Internet access - (arguments `(#:tests? #f)) - (inputs - `(("ghc-data-default-class" ,ghc-data-default-class) - ("ghc-http-client" ,ghc-http-client) - ("ghc-connection" ,ghc-connection) - ("ghc-network" ,ghc-network) - ("ghc-tls" ,ghc-tls) - ("ghc-http-types" ,ghc-http-types))) - (native-inputs - `(("ghc-hspec" ,ghc-hspec))) - (home-page "https://github.com/snoyberg/http-client") - (synopsis "Backend for http-client using the TLS library") - (description - "This package provides a backend for the http-client package using the -connection and TLS libraries. It is intended for use by higher-level -libraries, such as http-conduit.") - (license license:expat))) - (define-public ghc-pandoc (package (name "ghc-pandoc") @@ -7975,58 +7392,6 @@ (define-public shellcheck @end enumerate") (license license:gpl3+))) -(define-public ghc-wai-conduit - (package - (name "ghc-wai-conduit") - (version "3.0.0.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "wai-conduit-" version "/" - "wai-conduit-" version ".tar.gz")) - (sha256 - (base32 - "1zvsiwjq2mvkb9sjgp3ly9m968m7a2jjzr4id6jpi3mmqykj15z4")))) - (build-system haskell-build-system) - (inputs - `(("ghc-conduit" ,ghc-conduit) - ("ghc-http-types" ,ghc-http-types) - ("ghc-wai" ,ghc-wai) - ("ghc-blaze-builder" ,ghc-blaze-builder))) - (home-page "https://github.com/yesodweb/wai") - (synopsis "Conduit wrappers for Haskell's WAI") - (description "This package provides data streaming abstraction for -Haskell's Web Application Interface (WAI).") - (license license:expat))) - -(define-public ghc-http-date - (package - (name "ghc-http-date") - (version "0.0.6.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "http-date-" version "/" - "http-date-" version ".tar.gz")) - (sha256 - (base32 - "0dknh28kyarnzqrsc80ssalxjrq0qbv7ir49247p2grb7rh0dqgj")))) - (build-system haskell-build-system) - (inputs - `(("ghc-attoparsec" ,ghc-attoparsec))) - (native-inputs - `(("ghc-doctest" ,ghc-doctest) - ("ghc-hspec" ,ghc-hspec) - ("hspec-discover" ,hspec-discover) - ("ghc-old-locale" ,ghc-old-locale))) - (home-page "https://github.com/kazu-yamamoto/http-date") - (synopsis "HTTP Date parser/formatter") - (description "Library for Parsing and formatting HTTP -Date in Haskell.") - (license license:bsd-3))) - (define-public ghc-simple-sendfile (package (name "ghc-simple-sendfile") @@ -8170,182 +7535,6 @@ (define-public ghc-glob matching patterns against file paths.") (license license:bsd-3))) -(define-public ghc-http2 - (package - (name "ghc-http2") - (version "1.6.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "http2-" version "/" - "http2-" version ".tar.gz")) - (sha256 - (base32 - "0hww0rfsv6lqx62qzycbcqy5q6rh9k09qkyjkdm5m1sp1z50wqk1")))) - (build-system haskell-build-system) - (inputs - `(("ghc-bytestring-builder" ,ghc-bytestring-builder) - ("ghc-case-insensitive" ,ghc-case-insensitive) - ("ghc-aeson" ,ghc-aeson) - ("ghc-aeson-pretty" ,ghc-aeson-pretty) - ("ghc-hex" ,ghc-hex) - ("ghc-unordered-containers" ,ghc-unordered-containers) - ("ghc-vector" ,ghc-vector) - ("ghc-word8" ,ghc-word8) - ("ghc-psqueues" ,ghc-psqueues) - ("ghc-stm" ,ghc-stm))) - (native-inputs - `(("ghc-glob" ,ghc-glob) - ("ghc-hspec" ,ghc-hspec) - ("ghc-doctest" ,ghc-doctest) - ("hspec-discover" ,hspec-discover))) - (home-page "https://github.com/kazu-yamamoto/http2") - (synopsis "HTTP/2 library including frames, priority queues and HPACK") - (description "This package provides a HTTP/2.0 library including frames -and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.") - (license license:bsd-3))) - -(define-public ghc-warp - (package - (name "ghc-warp") - (version "3.2.11.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "warp-" version "/" "warp-" version - ".tar.gz")) - (sha256 - (base32 - "1zp5cy0bbj508vdvms1n5z80z37m253kwsqc5a83cfc990n6fgw5")))) - (build-system haskell-build-system) - (arguments - `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails. - (inputs - `(("ghc-async" ,ghc-async) - ("ghc-auto-update" ,ghc-auto-update) - ("ghc-blaze-builder" ,ghc-blaze-builder) - ("ghc-bytestring-builder" ,ghc-bytestring-builder) - ("ghc-case-insensitive" ,ghc-case-insensitive) - ("ghc-hashable" ,ghc-hashable) - ("ghc-http-types" ,ghc-http-types) - ("ghc-iproute" ,ghc-iproute) - ("ghc-network" ,ghc-network) - ("ghc-stm" ,ghc-stm) - ("ghc-streaming-commons" ,ghc-streaming-commons) - ("ghc-text" ,ghc-text) - ("ghc-unix-compat" ,ghc-unix-compat) - ("ghc-vault" ,ghc-vault) - ("ghc-wai" ,ghc-wai) - ("ghc-word8" ,ghc-word8) - ("ghc-lifted-base" ,ghc-lifted-base) - ("ghc-http-date" ,ghc-http-date) - ("ghc-simple-sendfile" ,ghc-simple-sendfile) - ("ghc-http2" ,ghc-http2))) - (native-inputs - `(("ghc-silently" ,ghc-silently) - ("ghc-hspec" ,ghc-hspec) - ("ghc-auto-update" ,ghc-auto-update) - ("ghc-doctest" ,ghc-doctest) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-hunit" ,ghc-hunit) - ("ghc-http" ,ghc-http) - ("hspec-discover" ,hspec-discover))) - (home-page "http://github.com/yesodweb/wai") - (synopsis "HTTP server library for Haskell's WAI") - (description "Warp is a server library for HTTP/1.x and HTTP/2 -based WAI (Web Application Interface in Haskell).") - (license license:expat))) - -(define-public ghc-warp-tls - (package - (name "ghc-warp-tls") - (version "3.2.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "warp-tls-" version "/" - "warp-tls-" version ".tar.gz")) - (sha256 - (base32 - "14m2bzk5ivz9gdpxlcj6qnh46f2lycm1ybdjnfkj2876zrqwii7m")))) - (build-system haskell-build-system) - (inputs - `(("ghc-cryptonite" ,ghc-cryptonite) - ("ghc-data-default-class" ,ghc-data-default-class) - ("ghc-network" ,ghc-network) - ("ghc-streaming-commons" ,ghc-streaming-commons) - ("ghc-tls" ,ghc-tls) - ("ghc-wai" ,ghc-wai) - ("ghc-warp" ,ghc-warp))) - (home-page "http://github.com/yesodweb/wai") - (synopsis "SSL/TLS support for Warp") - (description "This package provides SSL/TLS support for Warp, -a WAI handler, via the native Haskell TLS implementation.") - (license license:expat))) - -(define-public ghc-http-conduit - (package - (name "ghc-http-conduit") - (version "2.2.3.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "http-conduit-" version "/" "http-conduit-" - version ".tar.gz")) - (sha256 (base32 - "03na2nbm9la0shlijvjyb5mpp1prfskk4jmjy8iz707r0731dbjk")))) - (build-system haskell-build-system) - ;; FIXME: `httpLbs TLS` in test-suite `test` fails with - ;; ConnectionFailure getProtocolByName: does not exist (no such protocol - ;; name: tcp) - (arguments `(#:tests? #f)) - (inputs - `(("ghc-aeson" ,ghc-aeson) - ("ghc-resourcet" ,ghc-resourcet) - ("ghc-conduit" ,ghc-conduit) - ("ghc-conduit-extra" ,ghc-conduit-extra) - ("ghc-http-types" ,ghc-http-types) - ("ghc-lifted-base" ,ghc-lifted-base) - ("ghc-http-client" ,ghc-http-client) - ("ghc-http-client-tls" ,ghc-http-client-tls) - ("ghc-monad-control" ,ghc-monad-control) - ("ghc-mtl" ,ghc-mtl) - ("ghc-exceptions" ,ghc-exceptions))) - (native-inputs - `(("ghc-hunit" ,ghc-hunit) - ("ghc-hspec" ,ghc-hspec) - ("ghc-data-default-class" ,ghc-data-default-class) - ("ghc-connection" ,ghc-connection) - ("ghc-warp-tls" ,ghc-warp-tls) - ("ghc-blaze-builder" ,ghc-blaze-builder) - ("ghc-text" ,ghc-text) - ("ghc-conduit" ,ghc-conduit) - ("ghc-utf8-string" ,ghc-utf8-string) - ("ghc-case-insensitive" ,ghc-case-insensitive) - ("ghc-lifted-base" ,ghc-lifted-base) - ("ghc-network" ,ghc-network) - ("ghc-wai" ,ghc-wai) - ("ghc-warp" ,ghc-warp) - ("ghc-wai-conduit" ,ghc-wai-conduit) - ("ghc-http-types" ,ghc-http-types) - ("ghc-http-client" ,ghc-http-client) - ("ghc-cookie" ,ghc-cookie) - ("ghc-conduit-extra" ,ghc-conduit-extra) - ("ghc-streaming-commons" ,ghc-streaming-commons) - ("ghc-aeson" ,ghc-aeson) - ("ghc-temporary" ,ghc-temporary) - ("ghc-resourcet" ,ghc-resourcet))) - (home-page "https://hackage.haskell.org/package/http-conduit") - (synopsis "HTTP/HTTPS client with conduit interface") - (description "This library uses attoparsec for parsing the actual -contents of the HTTP connection. It also provides higher-level functions -which allow you to avoid direct usage of conduits.") - (license license:bsd-3))) - (define-public ghc-errors (package (name "ghc-errors") diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index 438e582fe3..6eb940c9d5 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -20,6 +20,7 @@ (define-module (gnu packages idris) #:use-module (gnu packages haskell) #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-web) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (guix build-system gnu) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 6ef3f8b060..8e71a11427 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -60,6 +60,7 @@ (define-module (gnu packages version-control) #:use-module (gnu packages groff) #:use-module (gnu packages haskell) #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-web) #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages nano) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index cdffb0d852..599d5ad34e 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -43,6 +43,7 @@ (define-module (gnu packages wm) #:use-module (guix build-system python) #:use-module (gnu packages haskell) #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-web) #:use-module (gnu packages base) #:use-module (gnu packages pkg-config) #:use-module (gnu packages perl) -- cgit v1.2.3 From f24eba89f49ac3062ea4f43c4dfd342f76d3036a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 13 Nov 2017 18:34:27 +0100 Subject: gnu: Move crypto packages from haskell to haskell-crypto. * gnu/packages/haskell.scm (ghc-asn1-types, ghc-asn1-encoding, ghc-asn1-parse, ghc-crypto-api, ghc-crypto-api-tests, ghc-cryptohash, ghc-cryptohash-md5, ghc-cryptohash-sha1, ghc-cryptonite, ghc-digest, ghc-entropy, ghc-pem, ghc-puremd5, ghc-sha, ghc-x509, ghc-x509-store, ghc-x509-validation, ghc-x509-system): Move variables to ... * gnu/packages/haskell-crypto.scm: ... this new file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/haskell.scm, gnu/packages/haskell-web.scm, gnu/packages/version-control.scm: Include haskell-crypto module. --- gnu/local.mk | 1 + gnu/packages/haskell-crypto.scm | 530 +++++++++++++++++++++++++++++++++++++++ gnu/packages/haskell-web.scm | 1 + gnu/packages/haskell.scm | 500 +----------------------------------- gnu/packages/version-control.scm | 1 + 5 files changed, 534 insertions(+), 499 deletions(-) create mode 100644 gnu/packages/haskell-crypto.scm (limited to 'gnu/packages/version-control.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 969b5c2af1..b94a6d75b0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -202,6 +202,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/gxmessage.scm \ %D%/packages/haskell.scm \ %D%/packages/haskell-check.scm \ + %D%/packages/haskell-crypto.scm \ %D%/packages/haskell-web.scm \ %D%/packages/ham-radio.scm \ %D%/packages/hexedit.scm \ diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm new file mode 100644 index 0000000000..9501fb2c39 --- /dev/null +++ b/gnu/packages/haskell-crypto.scm @@ -0,0 +1,530 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Paul van der Walt +;;; Copyright © 2015, 2017 Ricardo Wurmus +;;; Copyright © 2016 ng0 +;;; Copyright © 2017 rsiddharth +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages haskell-crypto) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) + #:use-module (guix build-system haskell) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define-public ghc-asn1-types + (package + (name "ghc-asn1-types") + (version "0.3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "asn1-types/asn1-types-" + version ".tar.gz")) + (sha256 + (base32 + "1iif9yrh4mmj249gyvam0zb2vb3jnlz777gahh2z9sx00dsx9rja")))) + (build-system haskell-build-system) + (inputs + `(("ghc-memory" ,ghc-memory) + ("ghc-hourglass" ,ghc-hourglass))) + (home-page "https://github.com/vincenthz/hs-asn1-types") + (synopsis "ASN.1 types for Haskell") + (description + "The package provides the standard types for dealing with the ASN.1 +format.") + (license license:bsd-3))) + +(define-public ghc-asn1-encoding + (package + (name "ghc-asn1-encoding") + (version "0.9.3") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "asn1-encoding/asn1-encoding-" + version ".tar.gz")) + (sha256 + (base32 + "01ki5msrpccgdbdiaaa5a9zw0icp1hki4hca8qx6hzlp0rcf1mwh")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hourglass" ,ghc-hourglass) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-text" ,ghc-text) + ("ghc-mtl" ,ghc-mtl))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (home-page "https://github.com/vincenthz/hs-asn1") + (synopsis "ASN1 data reader and writer in RAW, BER and DER forms") + (description + "This package provides a reader and writer for ASN1 data in raw form with +supports for high level forms of ASN1 (BER, and DER).") + (license license:bsd-3))) + +(define-public ghc-asn1-parse + (package + (name "ghc-asn1-parse") + (version "0.9.4") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "asn1-parse/asn1-parse-" + version ".tar.gz")) + (sha256 + (base32 + "025prsihk5g6rdv9xlfmj0zpa0wa3qjzj5i4ilzvg7f6f3sji8y6")))) + (build-system haskell-build-system) + (inputs + `(("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding))) + (home-page "https://github.com/vincenthz/hs-asn1") + (synopsis "Simple monadic parser for ASN1 stream types") + (description + "This package provides a simple monadic parser for ASN1 stream types, +when ASN1 pattern matching is not convenient.") + (license license:bsd-3))) + +(define-public ghc-crypto-api + (package + (name "ghc-crypto-api") + (version "0.13.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "crypto-api-" version "/" + "crypto-api-" version ".tar.gz")) + (sha256 + (base32 + "1vc27qcgbg7hf50rkqhlrs58zn1888ilh4b6wrrm07bnm48xacak")))) + (build-system haskell-build-system) + (inputs `(("ghc-cereal" ,ghc-cereal) + ("ghc-tagged" ,ghc-tagged) + ("ghc-entropy" ,ghc-entropy))) + (home-page "https://github.com/TomMD/crypto-api") + (synopsis "Provides generic interface for cryptographic operations +for Haskell") + (description "This Haskell package provides a generic interface for +cryptographic operations (hashes, ciphers, randomness). + +Maintainers of hash and cipher implementations are encouraged to add instances +for the classes defined in @code{Crypto.Classes}. @code{Crypto} users are +similarly encouraged to use the interfaces defined in the @code{Classes} module. + +Any concepts or functions of general use to more than one cryptographic +algorithm (ex: padding) is within scope of this package.") + (license license:bsd-3))) + +(define-public ghc-crypto-api-tests + (package + (name "ghc-crypto-api-tests") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "crypto-api-tests-" version "/" + "crypto-api-tests-" version ".tar.gz")) + (sha256 + (base32 + "0w3j43jdrlj28jryp18hc6q84nkl2yf4vs1hhgrsk7gb9kfyqjpl")))) + (build-system haskell-build-system) + (inputs `(("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) + ("ghc-crypto-api" ,ghc-crypto-api) + ("ghc-cereal" ,ghc-cereal) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/TomMD/crypto-api-tests") + (synopsis "Test framework and KATs for cryptographic operations for Haskell") + (description "This Haskell package provides a test framework for hash and +cipher operations using the crypto-api interface. Known answer tests (KATs) +for common cryptographic algorithms are included.") + (license license:bsd-3))) + +(define-public ghc-cryptohash + (package + (name "ghc-cryptohash") + (version "0.11.9") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/cryptohash/cryptohash-" + version ".tar.gz")) + (sha256 + (base32 + "1yr2iyb779znj79j3fq4ky8l1y8a600a2x1fx9p5pmpwq5zq93y2")))) + (build-system haskell-build-system) + (inputs + `(("ghc-byteable" ,ghc-byteable) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-memory" ,ghc-memory) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-tasty-hunit" ,ghc-tasty-hunit))) + (home-page "https://github.com/vincenthz/hs-cryptohash") + (synopsis "Collection of cryptographic hashes in Haskell") + (description + "A collection of crypto hashes, with a practical incremental and one-pass, +pure APIs, with performance close to the fastest implementations available in +other languages. The implementations are made in C with a haskell FFI wrapper +that hides the C implementation.") + (license license:bsd-3))) + +(define-public ghc-cryptohash-md5 + (package + (name "ghc-cryptohash-md5") + (version "0.11.100.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "cryptohash-md5-" version "/" + "cryptohash-md5-" version ".tar.gz")) + (sha256 + (base32 + "1y8q7s2bn4gdknw1wjikdnar2b5pgz3nv3220lxrlgpsf23x82vi")))) + (build-system haskell-build-system) + (arguments + `(#:tests? #f)) ; tests require old version of ghc-hunit (0.9) + (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring) + ("ghc-puremd5" ,ghc-puremd5) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/hvr/cryptohash-md5") + (synopsis "MD5 implementation for Haskell") + (description "This Haskell package provides implementation of MD5.") + (license license:bsd-3))) + +(define-public ghc-cryptohash-sha1 + (package + (name "ghc-cryptohash-sha1") + (version "0.11.100.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "cryptohash-sha1-" version "/" + "cryptohash-sha1-" version ".tar.gz")) + (sha256 + (base32 + "1aqdxdhxhl9jldh951djpwxx8z7gzaqspxl7iwpl84i5ahrsyy9w")))) + (build-system haskell-build-system) + (arguments + `(#:tests? #f)) ; tests require old version of ghc-hunit (0.9) + (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring) + ("ghc-sha" ,ghc-sha) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/hvr/cryptohash-sha1") + (synopsis "SHA-1 implementation for Haskell") + (description "This Haskell package provides an incremental and one-pass, +pure API to the @uref{https://en.wikipedia.org/wiki/SHA-1, SHA-1 hash algorithm}, +including @uref{https://en.wikipedia.org/wiki/HMAC, HMAC support}, with +performance close to the fastest implementations available in other languages. + +The implementation is made in C with a haskell FFI wrapper that hides +the C implementation.") + (license license:bsd-3))) + +(define-public ghc-cryptonite + (package + (name "ghc-cryptonite") + (version "0.19") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "cryptonite/cryptonite-" + version ".tar.gz")) + (sha256 + (base32 + "1rw5k34vpn4134yrzdhf0rsshsrkixfbv9ap18di2n00z2cw1shw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-memory" ,ghc-memory) + ("ghc-byteable" ,ghc-byteable))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-kat" ,ghc-tasty-kat))) + (home-page "https://github.com/haskell-crypto/cryptonite") + (synopsis "Cryptography primitives") + (description + "This package is a repository of cryptographic primitives for Haskell. +It supports a wide range of symmetric ciphers, cryptographic hash functions, +public key algorithms, key derivation numbers, cryptographic random number +generators, and more.") + (license license:bsd-3))) + +(define-public ghc-digest + (package + (name "ghc-digest") + (version "0.0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/digest/digest-" + version + ".tar.gz")) + (sha256 + (base32 + "04gy2zp8yzvv7j9bdfvmfzcz3sqyqa6rwslqcn4vyair2vmif5v4")))) + (build-system haskell-build-system) + (inputs + `(("zlib" ,zlib))) + (home-page + "https://hackage.haskell.org/package/digest") + (synopsis + "Various cryptographic hashes for bytestrings") + (description + "This package provides efficient cryptographic hash implementations for +strict and lazy bytestrings. For now, CRC32 and Adler32 are supported; they +are implemented as FFI bindings to efficient code from zlib.") + (license license:bsd-3))) + +(define-public ghc-entropy + (package + (name "ghc-entropy") + (version "0.3.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "entropy-" version "/" + "entropy-" version ".tar.gz")) + (sha256 + (base32 + "1l3lfigqvdlmxkz1wl7zdkmc0i2r5p6z4xzhiw8xdsbsw7aljfkl")))) + (build-system haskell-build-system) + (home-page "https://github.com/TomMD/entropy") + (synopsis "Provides platform independent entropy source for Haskell") + (description "This Haskell package provides a platform independent method +to obtain cryptographically strong entropy.") + (license license:bsd-3))) + +(define-public ghc-pem + (package + (name "ghc-pem") + (version "0.2.2") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "pem/pem-" version ".tar.gz")) + (sha256 + (base32 + "162sk5sg22w21wqz5qv8kx6ibxp99v5p20g3nknhm1kddk3hha1p")))) + (build-system haskell-build-system) + (inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-base64-bytestring" ,ghc-base64-bytestring))) + (native-inputs + `(("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/vincenthz/hs-pem") + (synopsis "Privacy Enhanced Mail (PEM) format reader and writer") + (description + "This library provides readers and writers for the @dfn{Privacy Enhanced +Mail} (PEM) format.") + (license license:bsd-3))) + +(define-public ghc-puremd5 + (package + (name "ghc-puremd5") + (version "2.1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "pureMD5-" version "/" + "pureMD5-" version ".tar.gz")) + (sha256 + (base32 + "0zdilz41cla2ck7mcw1a9702gyg2abq94mqahr4vci9sbs53bwxy")))) + (build-system haskell-build-system) + (inputs `(("ghc-cereal" ,ghc-cereal) + ("ghc-crypto-api" ,ghc-crypto-api) + ("ghc-tagged" ,ghc-tagged))) + (native-inputs `(("ghc-crypto-api-tests" ,ghc-crypto-api-tests) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" + ,ghc-test-framework-quickcheck2) + ("ghc-pretty-hex" ,ghc-pretty-hex))) + (home-page "https://github.com/TomMD/pureMD5") + (synopsis "Haskell implementation of the MD5 hash algorithm") + (description "This package provides a Haskell-only implementation of +the MD5 digest (hash) algorithm. This now supports the @code{crypto-api} class +interface.") + (license license:bsd-3))) + +(define-public ghc-sha + (package + (name "ghc-sha") + (version "1.6.4.2") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "SHA/SHA-" version ".tar.gz")) + (sha256 + (base32 + "134ajm87fm4lpsw86m9q8apv20dw4bpk46raa389zr6bcdpifw64")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (home-page "https://hackage.haskell.org/package/SHA") + (synopsis "SHA suite of message digest functions") + (description + "This library implements the SHA suite of message digest functions, +according to NIST FIPS 180-2 (with the SHA-224 addendum), as well as the +SHA-based HMAC routines. The functions have been tested against most of the +NIST and RFC test vectors for the various functions. While some attention has +been paid to performance, these do not presently reach the speed of well-tuned +libraries, like OpenSSL.") + (license license:bsd-3))) + +(define-public ghc-x509 + (package + (name "ghc-x509") + (version "1.6.3") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "x509/x509-" version ".tar.gz")) + (sha256 + (base32 + "1pmsby29abn485fvnymsgipvb3p1ch9c591xj5ncszkf0ivjiiin")))) + (build-system haskell-build-system) + (inputs + `(("ghc-memory" ,ghc-memory) + ("ghc-mtl" ,ghc-mtl) + ("ghc-hourglass" ,ghc-hourglass) + ("ghc-pem" ,ghc-pem) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding) + ("ghc-asn1-parse" ,ghc-asn1-parse) + ("ghc-cryptonite" ,ghc-cryptonite))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (home-page "https://github.com/vincenthz/hs-certificate") + (synopsis "X509 reader and writer") + (description + "This library provides functions to read and write X509 certificates.") + (license license:bsd-3))) + +(define-public ghc-x509-store + (package + (name "ghc-x509-store") + (version "1.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "x509-store/x509-store-" + version ".tar.gz")) + (sha256 + (base32 + "01abx528i9f7djq2772xyna8x2mykrnwqkcfrapcx7z3bhprvml3")))) + (build-system haskell-build-system) + (inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-pem" ,ghc-pem) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-x509" ,ghc-x509))) + (home-page "https://github.com/vincenthz/hs-certificate") + (synopsis "X.509 collection accessing and storing methods") + (description + "This package provides functions for accessing and storing X.509 +collections, certificates, revocation lists, and exception lists.") + (license license:bsd-3))) + +(define-public ghc-x509-validation + (package + (name "ghc-x509-validation") + (version "1.6.3") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "x509-validation/x509-validation-" + version ".tar.gz")) + (sha256 + (base32 + "1qr1v561hdlhjgqjv9pj9mbk0q1xf2mr1j67ghy93nlxxyzd7dw0")))) + (build-system haskell-build-system) + (inputs + `(("ghc-memory" ,ghc-memory) + ("ghc-byteable" ,ghc-byteable) + ("ghc-mtl" ,ghc-mtl) + ("ghc-hourglass" ,ghc-hourglass) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-pem" ,ghc-pem) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding) + ("ghc-x509" ,ghc-x509) + ("ghc-x509-store" ,ghc-x509-store) + ("ghc-cryptonite" ,ghc-cryptonite))) + (home-page "https://github.com/vincenthz/hs-certificate") + (synopsis "X.509 certificate and revocation list validation") + (description + "This package provides functions for X.509 certificate and revocation +list validation.") + (license license:bsd-3))) + +(define-public ghc-x509-system + (package + (name "ghc-x509-system") + (version "1.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "x509-system/x509-system-" + version ".tar.gz")) + (sha256 + (base32 + "10qf60d2f9jqwnbrhsb2cwpi86xg66m6dxndlxw967v1cdb3h6gf")))) + (build-system haskell-build-system) + (inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-pem" ,ghc-pem) + ("ghc-x509" ,ghc-x509) + ("ghc-x509-store" ,ghc-x509-store))) + (home-page "https://github.com/vincenthz/hs-certificate") + (synopsis "Handle system X.509 accessors and storage") + (description + "This package provides a library to handle system accessors and storage +for X.509 certificates.") + (license license:bsd-3))) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index c1a24b91f9..4e647bf7bc 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -24,6 +24,7 @@ (define-module (gnu packages haskell-web) #:use-module (gnu packages) #:use-module (gnu packages haskell) #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-crypto) #:use-module (guix build-system haskell) #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 23093e318d..89aa62aeaf 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -37,6 +37,7 @@ (define-module (gnu packages haskell) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-crypto) #:use-module (gnu packages haskell-web) #:use-module (gnu packages libffi) #:use-module (gnu packages lisp) @@ -3937,33 +3938,6 @@ (define-public ghc-lens indexed variants.") (license license:bsd-3))) -(define-public ghc-digest - (package - (name "ghc-digest") - (version "0.0.1.2") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/digest/digest-" - version - ".tar.gz")) - (sha256 - (base32 - "04gy2zp8yzvv7j9bdfvmfzcz3sqyqa6rwslqcn4vyair2vmif5v4")))) - (build-system haskell-build-system) - (inputs - `(("zlib" ,zlib))) - (home-page - "https://hackage.haskell.org/package/digest") - (synopsis - "Various cryptographic hashes for bytestrings") - (description - "This package provides efficient cryptographic hash implementations for -strict and lazy bytestrings. For now, CRC32 and Adler32 are supported; they -are implemented as FFI bindings to efficient code from zlib.") - (license license:bsd-3))) - (define-public ghc-cheapskate (package (name "ghc-cheapskate") @@ -5031,33 +5005,6 @@ (define-public ghc-juicypixels TIFF and GIF formats.") (license license:bsd-3))) -(define-public ghc-sha - (package - (name "ghc-sha") - (version "1.6.4.2") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "SHA/SHA-" version ".tar.gz")) - (sha256 - (base32 - "134ajm87fm4lpsw86m9q8apv20dw4bpk46raa389zr6bcdpifw64")))) - (build-system haskell-build-system) - (native-inputs - `(("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-test-framework" ,ghc-test-framework) - ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) - (home-page "https://hackage.haskell.org/package/SHA") - (synopsis "SHA suite of message digest functions") - (description - "This library implements the SHA suite of message digest functions, -according to NIST FIPS 180-2 (with the SHA-224 addendum), as well as the -SHA-based HMAC routines. The functions have been tested against most of the -NIST and RFC test vectors for the various functions. While some attention has -been paid to performance, these do not presently reach the speed of well-tuned -libraries, like OpenSSL.") - (license license:bsd-3))) - (define-public ghc-hslua (package (name "ghc-hslua") @@ -5138,108 +5085,6 @@ (define-public ghc-hourglass representations of current time.") (license license:bsd-3))) -(define-public ghc-pem - (package - (name "ghc-pem") - (version "0.2.2") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "pem/pem-" version ".tar.gz")) - (sha256 - (base32 - "162sk5sg22w21wqz5qv8kx6ibxp99v5p20g3nknhm1kddk3hha1p")))) - (build-system haskell-build-system) - (inputs - `(("ghc-mtl" ,ghc-mtl) - ("ghc-base64-bytestring" ,ghc-base64-bytestring))) - (native-inputs - `(("ghc-test-framework" ,ghc-test-framework) - ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) - ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) - ("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck))) - (home-page "https://github.com/vincenthz/hs-pem") - (synopsis "Privacy Enhanced Mail (PEM) format reader and writer") - (description - "This library provides readers and writers for the @dfn{Privacy Enhanced -Mail} (PEM) format.") - (license license:bsd-3))) - -(define-public ghc-asn1-types - (package - (name "ghc-asn1-types") - (version "0.3.1") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "asn1-types/asn1-types-" - version ".tar.gz")) - (sha256 - (base32 - "1iif9yrh4mmj249gyvam0zb2vb3jnlz777gahh2z9sx00dsx9rja")))) - (build-system haskell-build-system) - (inputs - `(("ghc-memory" ,ghc-memory) - ("ghc-hourglass" ,ghc-hourglass))) - (home-page "https://github.com/vincenthz/hs-asn1-types") - (synopsis "ASN.1 types for Haskell") - (description - "The package provides the standard types for dealing with the ASN.1 -format.") - (license license:bsd-3))) - -(define-public ghc-asn1-encoding - (package - (name "ghc-asn1-encoding") - (version "0.9.3") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "asn1-encoding/asn1-encoding-" - version ".tar.gz")) - (sha256 - (base32 - "01ki5msrpccgdbdiaaa5a9zw0icp1hki4hca8qx6hzlp0rcf1mwh")))) - (build-system haskell-build-system) - (inputs - `(("ghc-hourglass" ,ghc-hourglass) - ("ghc-asn1-types" ,ghc-asn1-types) - ("ghc-text" ,ghc-text) - ("ghc-mtl" ,ghc-mtl))) - (native-inputs - `(("ghc-tasty" ,ghc-tasty) - ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) - (home-page "https://github.com/vincenthz/hs-asn1") - (synopsis "ASN1 data reader and writer in RAW, BER and DER forms") - (description - "This package provides a reader and writer for ASN1 data in raw form with -supports for high level forms of ASN1 (BER, and DER).") - (license license:bsd-3))) - -(define-public ghc-asn1-parse - (package - (name "ghc-asn1-parse") - (version "0.9.4") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "asn1-parse/asn1-parse-" - version ".tar.gz")) - (sha256 - (base32 - "025prsihk5g6rdv9xlfmj0zpa0wa3qjzj5i4ilzvg7f6f3sji8y6")))) - (build-system haskell-build-system) - (inputs - `(("ghc-asn1-types" ,ghc-asn1-types) - ("ghc-asn1-encoding" ,ghc-asn1-encoding))) - (home-page "https://github.com/vincenthz/hs-asn1") - (synopsis "Simple monadic parser for ASN1 stream types") - (description - "This package provides a simple monadic parser for ASN1 stream types, -when ASN1 pattern matching is not convenient.") - (license license:bsd-3))) - (define-public ghc-edit-distance (package (name "ghc-edit-distance") @@ -5265,36 +5110,6 @@ (define-public ghc-edit-distance Damerau-Levenshtein algorithms.") (license license:bsd-3))) -(define-public ghc-cryptonite - (package - (name "ghc-cryptonite") - (version "0.19") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "cryptonite/cryptonite-" - version ".tar.gz")) - (sha256 - (base32 - "1rw5k34vpn4134yrzdhf0rsshsrkixfbv9ap18di2n00z2cw1shw")))) - (build-system haskell-build-system) - (inputs - `(("ghc-memory" ,ghc-memory) - ("ghc-byteable" ,ghc-byteable))) - (native-inputs - `(("ghc-tasty" ,ghc-tasty) - ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) - ("ghc-tasty-hunit" ,ghc-tasty-hunit) - ("ghc-tasty-kat" ,ghc-tasty-kat))) - (home-page "https://github.com/haskell-crypto/cryptonite") - (synopsis "Cryptography primitives") - (description - "This package is a repository of cryptographic primitives for Haskell. -It supports a wide range of symmetric ciphers, cryptographic hash functions, -public key algorithms, key derivation numbers, cryptographic random number -generators, and more.") - (license license:bsd-3))) - (define-public ghc-memory (package (name "ghc-memory") @@ -5321,120 +5136,6 @@ (define-public ghc-memory set, memory copy, ..) and more") (license license:bsd-3))) -(define-public ghc-x509 - (package - (name "ghc-x509") - (version "1.6.3") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "x509/x509-" version ".tar.gz")) - (sha256 - (base32 - "1pmsby29abn485fvnymsgipvb3p1ch9c591xj5ncszkf0ivjiiin")))) - (build-system haskell-build-system) - (inputs - `(("ghc-memory" ,ghc-memory) - ("ghc-mtl" ,ghc-mtl) - ("ghc-hourglass" ,ghc-hourglass) - ("ghc-pem" ,ghc-pem) - ("ghc-asn1-types" ,ghc-asn1-types) - ("ghc-asn1-encoding" ,ghc-asn1-encoding) - ("ghc-asn1-parse" ,ghc-asn1-parse) - ("ghc-cryptonite" ,ghc-cryptonite))) - (native-inputs - `(("ghc-tasty" ,ghc-tasty) - ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) - (home-page "https://github.com/vincenthz/hs-certificate") - (synopsis "X509 reader and writer") - (description - "This library provides functions to read and write X509 certificates.") - (license license:bsd-3))) - -(define-public ghc-x509-store - (package - (name "ghc-x509-store") - (version "1.6.1") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "x509-store/x509-store-" - version ".tar.gz")) - (sha256 - (base32 - "01abx528i9f7djq2772xyna8x2mykrnwqkcfrapcx7z3bhprvml3")))) - (build-system haskell-build-system) - (inputs - `(("ghc-mtl" ,ghc-mtl) - ("ghc-pem" ,ghc-pem) - ("ghc-asn1-types" ,ghc-asn1-types) - ("ghc-asn1-encoding" ,ghc-asn1-encoding) - ("ghc-cryptonite" ,ghc-cryptonite) - ("ghc-x509" ,ghc-x509))) - (home-page "https://github.com/vincenthz/hs-certificate") - (synopsis "X.509 collection accessing and storing methods") - (description - "This package provides functions for accessing and storing X.509 -collections, certificates, revocation lists, and exception lists.") - (license license:bsd-3))) - -(define-public ghc-x509-validation - (package - (name "ghc-x509-validation") - (version "1.6.3") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "x509-validation/x509-validation-" - version ".tar.gz")) - (sha256 - (base32 - "1qr1v561hdlhjgqjv9pj9mbk0q1xf2mr1j67ghy93nlxxyzd7dw0")))) - (build-system haskell-build-system) - (inputs - `(("ghc-memory" ,ghc-memory) - ("ghc-byteable" ,ghc-byteable) - ("ghc-mtl" ,ghc-mtl) - ("ghc-hourglass" ,ghc-hourglass) - ("ghc-data-default-class" ,ghc-data-default-class) - ("ghc-pem" ,ghc-pem) - ("ghc-asn1-types" ,ghc-asn1-types) - ("ghc-asn1-encoding" ,ghc-asn1-encoding) - ("ghc-x509" ,ghc-x509) - ("ghc-x509-store" ,ghc-x509-store) - ("ghc-cryptonite" ,ghc-cryptonite))) - (home-page "https://github.com/vincenthz/hs-certificate") - (synopsis "X.509 certificate and revocation list validation") - (description - "This package provides functions for X.509 certificate and revocation -list validation.") - (license license:bsd-3))) - -(define-public ghc-x509-system - (package - (name "ghc-x509-system") - (version "1.6.1") - (source (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "x509-system/x509-system-" - version ".tar.gz")) - (sha256 - (base32 - "10qf60d2f9jqwnbrhsb2cwpi86xg66m6dxndlxw967v1cdb3h6gf")))) - (build-system haskell-build-system) - (inputs - `(("ghc-mtl" ,ghc-mtl) - ("ghc-pem" ,ghc-pem) - ("ghc-x509" ,ghc-x509) - ("ghc-x509-store" ,ghc-x509-store))) - (home-page "https://github.com/vincenthz/hs-certificate") - (synopsis "Handle system X.509 accessors and storage") - (description - "This package provides a library to handle system accessors and storage -for X.509 certificates.") - (license license:bsd-3))) - (define-public ghc-tls (package (name "ghc-tls") @@ -5878,38 +5579,6 @@ (define-public ghc-binary been observed, so this library should be suitable for high performance scenarios.") (license license:bsd-3))) -(define-public ghc-cryptohash - (package - (name "ghc-cryptohash") - (version "0.11.9") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/cryptohash/cryptohash-" - version ".tar.gz")) - (sha256 - (base32 - "1yr2iyb779znj79j3fq4ky8l1y8a600a2x1fx9p5pmpwq5zq93y2")))) - (build-system haskell-build-system) - (inputs - `(("ghc-byteable" ,ghc-byteable) - ("ghc-cryptonite" ,ghc-cryptonite) - ("ghc-memory" ,ghc-memory) - ("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-tasty" ,ghc-tasty) - ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) - ("ghc-tasty-hunit" ,ghc-tasty-hunit))) - (home-page "https://github.com/vincenthz/hs-cryptohash") - (synopsis "Collection of cryptographic hashes in Haskell") - (description - "A collection of crypto hashes, with a practical incremental and one-pass, -pure APIs, with performance close to the fastest implementations available in -other languages. The implementations are made in C with a haskell FFI wrapper -that hides the C implementation.") - (license license:bsd-3))) - (define-public ghc-data-ordlist (package (name "ghc-data-ordlist") @@ -8064,85 +7733,6 @@ (define-public ghc-either (description "This Haskell package provides an either monad transformer.") (license license:bsd-3))) -(define-public ghc-entropy - (package - (name "ghc-entropy") - (version "0.3.8") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "entropy-" version "/" - "entropy-" version ".tar.gz")) - (sha256 - (base32 - "1l3lfigqvdlmxkz1wl7zdkmc0i2r5p6z4xzhiw8xdsbsw7aljfkl")))) - (build-system haskell-build-system) - (home-page "https://github.com/TomMD/entropy") - (synopsis "Provides platform independent entropy source for Haskell") - (description "This Haskell package provides a platform independent method -to obtain cryptographically strong entropy.") - (license license:bsd-3))) - -(define-public ghc-crypto-api - (package - (name "ghc-crypto-api") - (version "0.13.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "crypto-api-" version "/" - "crypto-api-" version ".tar.gz")) - (sha256 - (base32 - "1vc27qcgbg7hf50rkqhlrs58zn1888ilh4b6wrrm07bnm48xacak")))) - (build-system haskell-build-system) - (inputs `(("ghc-cereal" ,ghc-cereal) - ("ghc-tagged" ,ghc-tagged) - ("ghc-entropy" ,ghc-entropy))) - (home-page "https://github.com/TomMD/crypto-api") - (synopsis "Provides generic interface for cryptographic operations -for Haskell") - (description "This Haskell package provides a generic interface for -cryptographic operations (hashes, ciphers, randomness). - -Maintainers of hash and cipher implementations are encouraged to add instances -for the classes defined in @code{Crypto.Classes}. @code{Crypto} users are -similarly encouraged to use the interfaces defined in the @code{Classes} module. - -Any concepts or functions of general use to more than one cryptographic -algorithm (ex: padding) is within scope of this package.") - (license license:bsd-3))) - -(define-public ghc-crypto-api-tests - (package - (name "ghc-crypto-api-tests") - (version "0.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "crypto-api-tests-" version "/" - "crypto-api-tests-" version ".tar.gz")) - (sha256 - (base32 - "0w3j43jdrlj28jryp18hc6q84nkl2yf4vs1hhgrsk7gb9kfyqjpl")))) - (build-system haskell-build-system) - (inputs `(("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) - ("ghc-crypto-api" ,ghc-crypto-api) - ("ghc-cereal" ,ghc-cereal) - ("ghc-test-framework" ,ghc-test-framework) - ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) - ("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck))) - (home-page "https://github.com/TomMD/crypto-api-tests") - (synopsis "Test framework and KATs for cryptographic operations for Haskell") - (description "This Haskell package provides a test framework for hash and -cipher operations using the crypto-api interface. Known answer tests (KATs) -for common cryptographic algorithms are included.") - (license license:bsd-3))) - (define-public ghc-pretty-hex (package (name "ghc-pretty-hex") @@ -8163,94 +7753,6 @@ (define-public ghc-pretty-hex ByteStrings in the style of other common *nix hex dump tools.") (license license:bsd-3))) -(define-public ghc-puremd5 - (package - (name "ghc-puremd5") - (version "2.1.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "pureMD5-" version "/" - "pureMD5-" version ".tar.gz")) - (sha256 - (base32 - "0zdilz41cla2ck7mcw1a9702gyg2abq94mqahr4vci9sbs53bwxy")))) - (build-system haskell-build-system) - (inputs `(("ghc-cereal" ,ghc-cereal) - ("ghc-crypto-api" ,ghc-crypto-api) - ("ghc-tagged" ,ghc-tagged))) - (native-inputs `(("ghc-crypto-api-tests" ,ghc-crypto-api-tests) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-test-framework" ,ghc-test-framework) - ("ghc-test-framework-quickcheck2" - ,ghc-test-framework-quickcheck2) - ("ghc-pretty-hex" ,ghc-pretty-hex))) - (home-page "https://github.com/TomMD/pureMD5") - (synopsis "Haskell implementation of the MD5 hash algorithm") - (description "This package provides a Haskell-only implementation of -the MD5 digest (hash) algorithm. This now supports the @code{crypto-api} class -interface.") - (license license:bsd-3))) - -(define-public ghc-cryptohash-md5 - (package - (name "ghc-cryptohash-md5") - (version "0.11.100.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "cryptohash-md5-" version "/" - "cryptohash-md5-" version ".tar.gz")) - (sha256 - (base32 - "1y8q7s2bn4gdknw1wjikdnar2b5pgz3nv3220lxrlgpsf23x82vi")))) - (build-system haskell-build-system) - (arguments - `(#:tests? #f)) ; tests require old version of ghc-hunit (0.9) - (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring) - ("ghc-puremd5" ,ghc-puremd5) - ("ghc-tasty" ,ghc-tasty) - ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) - ("ghc-hunit" ,ghc-hunit))) - (home-page "https://github.com/hvr/cryptohash-md5") - (synopsis "MD5 implementation for Haskell") - (description "This Haskell package provides implementation of MD5.") - (license license:bsd-3))) - -(define-public ghc-cryptohash-sha1 - (package - (name "ghc-cryptohash-sha1") - (version "0.11.100.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://hackage.haskell.org/package/" - "cryptohash-sha1-" version "/" - "cryptohash-sha1-" version ".tar.gz")) - (sha256 - (base32 - "1aqdxdhxhl9jldh951djpwxx8z7gzaqspxl7iwpl84i5ahrsyy9w")))) - (build-system haskell-build-system) - (arguments - `(#:tests? #f)) ; tests require old version of ghc-hunit (0.9) - (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring) - ("ghc-sha" ,ghc-sha) - ("ghc-tasty" ,ghc-tasty) - ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) - ("ghc-hunit" ,ghc-hunit))) - (home-page "https://github.com/hvr/cryptohash-sha1") - (synopsis "SHA-1 implementation for Haskell") - (description "This Haskell package provides an incremental and one-pass, -pure API to the @uref{https://en.wikipedia.org/wiki/SHA-1, SHA-1 hash algorithm}, -including @uref{https://en.wikipedia.org/wiki/HMAC, HMAC support}, with -performance close to the fastest implementations available in other languages. - -The implementation is made in C with a haskell FFI wrapper that hides -the C implementation.") - (license license:bsd-3))) - (define-public ghc-network-info (package (name "ghc-network-info") diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 8e71a11427..4a5f6b068a 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -60,6 +60,7 @@ (define-module (gnu packages version-control) #:use-module (gnu packages groff) #:use-module (gnu packages haskell) #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-crypto) #:use-module (gnu packages haskell-web) #:use-module (gnu packages java) #:use-module (gnu packages linux) -- cgit v1.2.3 From 5ccde2079e0b5f6e04b11765905dbd49d191fd8f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 13 Nov 2017 23:03:01 +0100 Subject: gnu: Move test packages from perl to perl-check. * gnu/packages/perl.scm (perl-test2-bundle-extended, perl-test2-plugin-nowarnings, perl-test-base, perl-test-class, perl-test-class-most, perl-test-cleannamespaces, perl-test-command, perl-test-cpan-meta, perl-test-cpan-meta-json, perl-test-deep, perl-test-differences, perl-test-directory, perl-test-eol, perl-test-exception, perl-test-fatal, perl-test-file-sharedir-dist, perl-test-files, perl-test-harness, perl-test-leaktrace, perl-test-longstring, perl-test-manifest, perl-test-memory-cycle, perl-test-mockobject, perl-test-mocktime, perl-test-most, perl-test-needs, perl-test-notabs, perl-test-nowarnings, perl-test-number-delta, perl-test-output, perl-test-pod, perl-test-pod-coverage, perl-test-requires, perl-test-script, perl-test-sharedfork, perl-test-simple, perl-test-taint, perl-test-tester, perl-test-trap, perl-test-utf8, perl-test-warn, perl-test-warnings, perl-test-without-module, perl-test-writevariants, perl-test-yaml, perl-test-trailingspace): Move variables to ... * gnu/packages/perl-check.scm: ... this new file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/admin.scm, gnu/packages/bioinformatics.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/glib.scm, gnu/packages/gnupg.scm, gnu/packages/image-viewers.scm, gnu/packages/language.scm, gnu/packages/networking.scm, gnu/packages/package-management.scm, gnu/packages/perl.scm, gnu/packages/terminals.scm, gnu/packages/tex.scm, gnu/packages/version-control.scm, gnu/packages/web.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm: Use perl-check module. --- gnu/local.mk | 1 + gnu/packages/admin.scm | 1 + gnu/packages/bioinformatics.scm | 1 + gnu/packages/crypto.scm | 1 + gnu/packages/databases.scm | 1 + gnu/packages/glib.scm | 1 + gnu/packages/gnupg.scm | 1 + gnu/packages/image-viewers.scm | 1 + gnu/packages/language.scm | 1 + gnu/packages/networking.scm | 1 + gnu/packages/package-management.scm | 1 + gnu/packages/perl-check.scm | 1169 +++++++++++++++++++++++++++++++++++ gnu/packages/perl.scm | 1135 +--------------------------------- gnu/packages/terminals.scm | 1 + gnu/packages/tex.scm | 1 + gnu/packages/version-control.scm | 1 + gnu/packages/web.scm | 2 +- gnu/packages/xml.scm | 1 + gnu/packages/xorg.scm | 1 + 19 files changed, 1187 insertions(+), 1135 deletions(-) create mode 100644 gnu/packages/perl-check.scm (limited to 'gnu/packages/version-control.scm') diff --git a/gnu/local.mk b/gnu/local.mk index b94a6d75b0..00d82ee4a1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -325,6 +325,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/pdf.scm \ %D%/packages/pem.scm \ %D%/packages/perl.scm \ + %D%/packages/perl-check.scm \ %D%/packages/perl-web.scm \ %D%/packages/photo.scm \ %D%/packages/php.scm \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 7b8e41fced..30b5a1fb6a 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -55,6 +55,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages gettext) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages tcl) #:use-module (gnu packages compression) #:use-module (gnu packages cross-base) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index d34f91f585..cf2671ce66 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -81,6 +81,7 @@ (define-module (gnu packages bioinformatics) #:use-module (gnu packages parallel) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages protobuf) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index e17db289e5..dce7d3534c 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -42,6 +42,7 @@ (define-module (gnu packages crypto) #:use-module (gnu packages nettle) #:use-module (gnu packages password-utils) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages search) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index b1cb9ed2bf..38ca5708d7 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -66,6 +66,7 @@ (define-module (gnu packages databases) #:use-module (gnu packages parallel) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages python) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index bc87750045..de74278597 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -46,6 +46,7 @@ (define-module (gnu packages glib) #:use-module (gnu packages nettle) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages xml) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 47a594b6e1..d179d41963 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -39,6 +39,7 @@ (define-module (gnu packages gnupg) #:use-module (gnu packages crypto) #:use-module (gnu packages openldap) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pth) #:use-module (gnu packages python) #:use-module (gnu packages qt) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index f9b00de848..facf81b087 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -45,6 +45,7 @@ (define-module (gnu packages image-viewers) #:use-module (gnu packages imagemagick) #:use-module (gnu packages maths) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index ee0c5c0d89..57d625057c 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -19,6 +19,7 @@ (define-module (gnu packages language) #:use-module (gnu packages) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages web) #:use-module (guix packages) #:use-module (guix build-system perl) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 57b32c252f..1f4906b7b5 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -70,6 +70,7 @@ (define-module (gnu packages networking) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages qt) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 2a5395589f..1242156dbf 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -46,6 +46,7 @@ (define-module (gnu packages package-management) #:use-module (gnu packages texinfo) #:use-module (gnu packages nettle) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages curl) #:use-module (gnu packages web) #:use-module (gnu packages man) diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm new file mode 100644 index 0000000000..f0ee2a5362 --- /dev/null +++ b/gnu/packages/perl-check.scm @@ -0,0 +1,1169 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014, 2015 Eric Bavier +;;; Copyright © 2016 Danny Milosavljevic +;;; Copyright © 2016 Ben Woodcroft +;;; Copyright © 2016 Ricardo Wurmus +;;; Coypright © 2016 ng0 +;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017 Alex Sassmannshausen +;;; Copyright © 2016, 2017 Marius Bakke +;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 Christopher Baines +;;; Copyright © 2017 Petter +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages perl-check) + #:use-module (guix licenses) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system perl) + #:use-module (gnu packages perl)) + +(define-public perl-test2-bundle-extended + (package + (name "perl-test2-bundle-extended") + (version "0.000072") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-" + version ".tar.gz")) + (sha256 + (base32 + "0hgd6n29qjh1pwqvbglm2kb852yqshmixqqjhsr2kvvibdr58qpf")))) + (build-system perl-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-env + (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1")))))) + (propagated-inputs + `(("perl-importer" ,perl-importer) + ("perl-term-table" ,perl-term-table) + ("perl-sub-info" ,perl-sub-info))) + (home-page "http://search.cpan.org/~exodist/Test2-Suite/lib/Test2/Bundle/Extended.pm") + (synopsis "Full set of tools for Test2::Suite") + (description "This package provides a rich set of tools, plugins, bundles, +etc built upon the Test2 testing library.") + (license perl-license))) + +(define-public perl-test2-plugin-nowarnings + (package + (name "perl-test2-plugin-nowarnings") + (version "0.06") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-" + version ".tar.gz")) + (sha256 + (base32 + "002qk6qsm0l6r2kaxywvc38w0yf0mlavgywq8li076pn6kcw3242")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-test2-bundle-extended" ,perl-test2-bundle-extended))) + (home-page "http://search.cpan.org/dist/Test2-Plugin-NoWarnings//") + (synopsis "Fail if tests warn") + (description "Loading this plugin causes your tests to fail if there any +warnings while they run. Each warning generates a new failing test and the +warning content is outputted via diag.") + (license perl-license))) + +(define-public perl-test-base + (package + (name "perl-test-base") + (version "0.88") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/I/IN/INGY/" + "Test-Base-" version ".tar.gz")) + (sha256 + (base32 + "0fch1cvivnszbnwhpfmwv1rin04j5xkj1n1ylfmlxg6bm72qqdjj")))) + (build-system perl-build-system) + (native-inputs + `(("perl-algorithm-diff" ,perl-algorithm-diff) + ("perl-text-diff" ,perl-text-diff))) + (propagated-inputs + `(("perl-spiffy" ,perl-spiffy) + ("perl-test-deep" ,perl-test-deep))) + (home-page "http://search.cpan.org/dist/Test-Base/") + (synopsis "Data-driven testing framework for Perl") + (description "Test::Base gives a way to trivially write your own test +framework base class. It concentrates on offering reusable data driven +patterns, so that you can write tests with a minimum of code.") + (license perl-license))) + +(define-public perl-test-class + (package + (name "perl-test-class") + (version "0.50") + (source + (origin + (method url-fetch) + (uri (string-append + "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Class-" + version + ".tar.gz")) + (sha256 + (base32 + "0l0kk5jvxjkic2jkf1r7v41irb344aasnzr3f5ygjgxgiknm9489")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-exception" ,perl-test-exception))) + (inputs + `(("perl-module-runtime" ,perl-module-runtime) + ("perl-mro-compat" ,perl-mro-compat) + ("perl-try-tiny" ,perl-try-tiny))) + (home-page "http://search.cpan.org/dist/Test-Class/") + (synopsis "Easily create test classes in an xUnit/JUnit style") + (description "@code{Test::Class} provides a simple way of creating classes +and objects to test your code in an xUnit style. + +Built using @code{Test::Builder}, it was designed to work with other +@code{Test::Builder} based modules (@code{Test::More}, +@code{Test::Differences}, @code{Test::Exception}, etc.).") + (license perl-license))) + +(define-public perl-test-class-most + (package + (name "perl-test-class-most") + (version "0.08") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-" + version + ".tar.gz")) + (sha256 + (base32 + "1zvx9hil0mg0pnb8xfa4m0xgjpvh8s5gnbyprq3xwpdsdgcdwk33")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (inputs + `(("perl-test-class" ,perl-test-class) + ("perl-test-most" ,perl-test-most) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-try-tiny" ,perl-try-tiny) + ("perl-mro-compat" ,perl-mro-compat))) + (home-page "http://search.cpan.org/dist/Test-Class-Most/") + (synopsis "Test classes the easy way") + (description "@code{Test::Class::Most} provides some more convenience when +using @code{Test::Class}.") + (license perl-license))) + +(define-public perl-test-cleannamespaces + (package + (name "perl-test-cleannamespaces") + (version "0.22") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" + "Test-CleanNamespaces-" version ".tar.gz")) + (sha256 + (base32 + "1jma95agqqy7iwdcl6jbg1waqz7mjqng4l046lpknhfxjhcj4al6")))) + (build-system perl-build-system) + (native-inputs + `(("perl-file-pushd" ,perl-file-pushd) + ("perl-test-requires" ,perl-test-requires) + ("perl-test-deep" ,perl-test-deep) + ("perl-test-warnings" ,perl-test-warnings) + ("perl-test-tester" ,perl-test-tester) + ("perl-test-needs" ,perl-test-needs))) + (propagated-inputs + `(("perl-namespace-clean" ,perl-namespace-clean) + ("perl-package-stash" ,perl-package-stash) + ("perl-sub-identify" ,perl-sub-identify) + ("perl-sub-exporter" ,perl-sub-exporter) + ("perl-file-find-rule" ,perl-file-find-rule) + ("perl-file-find-rule-perl" ,perl-file-find-rule-perl))) + (home-page "http://search.cpan.org/dist/Test-CleanNamespaces/") + (synopsis "Check for uncleaned imports") + (description "This module lets you check your module's namespaces for +imported functions you might have forgotten to remove with +namespace::autoclean or namespace::clean and are therefore available to be +called as methods, which usually isn't want you want.") + (license perl-license))) + +(define-public perl-test-command + (package + (name "perl-test-command") + (version "0.11") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DA/DANBOO/Test-Command-" + version ".tar.gz")) + (sha256 + (base32 + "0cwm3c4d49mdrbm6vgh78b3x8mk730l0zg8i7xb9z8bkx9pzr8r8")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (home-page "https://github.com/danboo/perl-test-command") + (synopsis "Test routines for external commands") + (description + "This module provides routines for testing the exit status, standard +output and standard error of external commands.") + (license perl-license))) + +(define-public perl-test-cpan-meta + (package + (name "perl-test-cpan-meta") + (version "0.25") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-" + version + ".tar.gz")) + (sha256 + (base32 + "1dcdbbdwdyhpldkhjzc9rvzlmb5jbil6fwh2x07nsfdwysf4ynzm")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-cpan-meta-json" ,perl-test-cpan-meta-json) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page + "http://search.cpan.org/dist/Test-CPAN-Meta/") + (synopsis "Validate your CPAN META.yml files") + (description + "This module was written to ensure that a META.yml file meets the +specification.") + (license artistic2.0))) + +(define-public perl-test-cpan-meta-json + (package + (name "perl-test-cpan-meta-json") + (version "0.16") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-" + version + ".tar.gz")) + (sha256 + (base32 + "1jg9ka50ixwq083wd4k12rhdjq87w0ihb34gd8jjn7gvvyd51b37")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (inputs + `(("perl-json" ,perl-json))) + (home-page + "http://search.cpan.org/dist/Test-CPAN-Meta-JSON/") + (synopsis "Validate your CPAN META.json files") + (description + "This module was written to ensure that a META.json file meets the +specification.") + (license artistic2.0))) + +(define-public perl-test-deep + (package + (name "perl-test-deep") + (version "1.120") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/" + "Test-Deep-" version ".tar.gz")) + (sha256 + (base32 + "1kdy06r0yg7zwarqglc9163vbfb0sfc4s6ld4pw5q7i9f7mghzi0")))) + (build-system perl-build-system) + (inputs `(("perl-test-tester" ,perl-test-tester) + ("perl-test-nowarnings" ,perl-test-nowarnings))) + (synopsis "Flexible deep comparison for the Test::Builder framework") + (description + "Test::Deep compares two structures by going through each level, ensuring +that the values match, that arrays and hashes have the same elements and that +references are blessed into the correct class. It also handles circular data +structures without getting caught in an infinite loop.") + (home-page "http://search.cpan.org/dist/Test-Deep/") + (license gpl1+))) ; or "Artistic License" + +(define-public perl-test-differences + (package + (name "perl-test-differences") + (version "0.63") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DC/DCANTRELL/" + "Test-Differences-" version ".tar.gz")) + (sha256 + (base32 + "0rhs4q6qn64ji06ns7lwl6iiiw3mggvd9xk9nkiqvx1jihbplrbw")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (propagated-inputs + `(("perl-text-diff" ,perl-text-diff) + ("perl-capture-tiny" ,perl-capture-tiny))) + (home-page "http://search.cpan.org/dist/Test-Differences/") + (synopsis "Test strings and data structures and show differences") + (description "This module exports three test functions and four diff-style +functions.") + ;; See LICENSE section of Test/Differences.pm, which reads "... GNU public + ;; license, any version, ..." + (license gpl3+))) + +(define-public perl-test-directory + (package + (name "perl-test-directory") + (version "0.041") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/S/SA/SANBEG/" + "Test-Directory-" version ".tar.gz")) + (sha256 + (base32 + "1ncql08cizhicbxwd753b4czns8nlcnlw0zfjcfrbdd41x4j6hqr")))) + (build-system perl-build-system) + (native-inputs `(("perl-test-exception" ,perl-test-exception))) + (home-page "http://search.cpan.org/dist/Test-Directory/") + (synopsis "Perl extension for maintaining test directories") + (description "Testing code can involve making sure that files are created +and deleted as expected. Doing this manually can be error prone, as it's easy +to forget a file, or miss that some unexpected file was added. This module +simplifies maintaining test directories by tracking their status as they are +modified or tested with this API, making it simple to test both individual +files, as well as to verify that there are no missing or unknown files.") + (license perl-license))) + +(define-public perl-test-eol + (package + (name "perl-test-eol") + (version "2.00") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-" + version + ".tar.gz")) + (sha256 + (base32 + "0l3bxpsw0x7j9nclizcp53mnf9wny25dmg2iglfhzgnk0xfpwzwf")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-EOL/") + (synopsis + "Check the correct line endings in your project") + (description + "@code{Test::EOL} lets you check for the presence of trailing whitespace +and/or windows line endings in your perl code.") + (license perl-license))) + +(define-public perl-test-exception + (package + (name "perl-test-exception") + (version "0.43") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/" + "Test-Exception-" version ".tar.gz")) + (sha256 + (base32 + "0cxm7s4bg0xpxa6l6996a6iq3brr4j7p4hssnkc6dxv4fzq16sqm")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (propagated-inputs + `(("perl-sub-uplevel" ,perl-sub-uplevel))) + (home-page "http://search.cpan.org/dist/Test-Exception/") + (synopsis "Test exception based code") + (description "This module provides a few convenience methods for testing +exception based code. It is built with Test::Builder and plays happily with +Test::More and friends.") + (license perl-license))) + +(define-public perl-test-fatal + (package + (name "perl-test-fatal") + (version "0.014") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/" + "Test-Fatal-" version ".tar.gz")) + (sha256 + (base32 + "1c6bs68mss4q7cyapkv2c0jn66i21050p0faxf3s3417gdffzp5w")))) + (build-system perl-build-system) + (propagated-inputs `(("perl-try-tiny" ,perl-try-tiny))) + (home-page "http://search.cpan.org/dist/Test-Fatal/") + (synopsis "Simple helpers for testing code with exceptions") + (description "Test::Fatal is an alternative to the popular +Test::Exception. It does much less, but should allow greater flexibility in +testing exception-throwing code with about the same amount of typing.") + (license perl-license))) + +(define-public perl-test-file-sharedir-dist + (package + (name "perl-test-file-sharedir-dist") + (version "1.001002") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/K/KE/KENTNL/" + "Test-File-ShareDir-" version ".tar.gz")) + (sha256 + (base32 + "1bbs6cx69wcinq77gif4i4pmrj8a7lwb92sgvvxzrwmjnk5lfdmk")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-class-tiny" ,perl-class-tiny) + ("perl-file-copy-recursive" ,perl-file-copy-recursive) + ("perl-file-sharedir" ,perl-file-sharedir) + ("perl-path-tiny" ,perl-path-tiny) + ("perl-scope-guard" ,perl-scope-guard) + ("perl-test-fatal" ,perl-test-fatal))) + (home-page "https://github.com/kentnl/Test-File-ShareDir") + (synopsis "Dist oriented ShareDir tester") + (description "This module creates a Fake ShareDir for your modules +for testing.") + (license perl-license))) + +(define-public perl-test-files + (package + (name "perl-test-files") + (version "0.14") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PH/PHILCROW/Test-Files-" + version + ".tar.gz")) + (sha256 + (base32 + "1zn33yigznq7i1jr4yjr4lxvc6bn7znkbqdzj7slhc146pqapkln")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-algorithm-diff" ,perl-algorithm-diff) + ("perl-text-diff" ,perl-text-diff))) + (home-page "http://search.cpan.org/dist/Test-Files/") + (synopsis "Ease software testing with files and directories") + (description "This library provides functions to enable testing of files +and directories. For instance, the @code{file_ok} helper can test whether the +contents of a file is equal to a particular string.") + (license perl-license))) + +(define-public perl-test-harness + (package + (name "perl-test-harness") + (version "3.39") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/L/LE/LEONT/" + "Test-Harness-" version ".tar.gz")) + (sha256 + (base32 + "0chiqnzmna2mglm37nzxvn9qhq2j31iwz3i9isqjs7bf3k449gb9")))) + (build-system perl-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'patch-test + (lambda* (#:key inputs #:allow-other-keys) + ;; This test looks for "#!/usr/bin/perl" in some source. + ;; Patch what the test looks for. + (substitute* "t/source.t" + (("#!/usr/bin/perl") + (string-append "#!" (assoc-ref inputs "perl") + "/bin/perl"))) + #t))))) + (home-page "http://search.cpan.org/dist/Test-Harness/") + (synopsis "Run Perl standard test scripts with statistics") + (description "Simple test harness which allows tests to be run and results +automatically aggregated and output to STDOUT.") + (license perl-license))) + +(define-public perl-test-leaktrace + (package + (name "perl-test-leaktrace") + (version "0.16") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/L/LE/LEEJO/" + "Test-LeakTrace-" version ".tar.gz")) + (sha256 + (base32 + "00z4hcjra5nk700f3fgpy8fs036d7ry7glpn8g3wh7jzj7nrw22z")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Test-LeakTrace/") + (synopsis "Traces memory leaks in Perl") + (description "Test::LeakTrace provides several functions that trace memory +leaks. This module scans arenas, the memory allocation system, so it can +detect any leaked SVs in given blocks.") + (license perl-license))) + +(define-public perl-test-longstring + (package + (name "perl-test-longstring") + (version "0.17") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RG/RGARCIA/" + "Test-LongString-" version ".tar.gz")) + (sha256 + (base32 + "0kwp7rfr1i2amz4ckigkv13ah7jr30q6l5k4wk0vxl84myg39i5b")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Test-LongString/") + (synopsis "Tests strings for equality, with more helpful failures") + (description "This module provides some drop-in replacements for the +string comparison functions of Test::More, but which are more suitable when +you test against long strings.") + (license perl-license))) + +(define-public perl-test-manifest + (package + (name "perl-test-manifest") + (version "2.02") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/" + "Test-Manifest-" version ".tar.gz")) + (sha256 + (base32 + "15ik52l9macrrfizf4y6wj71d4lx7w590h2dfajnkmbxmz786iq6")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "http://search.cpan.org/dist/Test-Manifest/") + (synopsis "Interact with a t/test_manifest file") + (description "@code{Test::Manifest} overrides the default test file order. Instead of +running all of the t/*.t files in ASCII-betical order, it looks in the t/test_manifest +file to find out which tests you want to run and the order in which you want to run them. +It constructs the right value for the build system to do the right thing.") + (license perl-license))) + +(define-public perl-test-memory-cycle + (package + (name "perl-test-memory-cycle") + (version "1.06") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-" + version + ".tar.gz")) + (sha256 + (base32 + "00ijmgx1r3cxrcs1qa9rb2s4gbm3nsawd90drda89kb4r7yxslwx")))) + (build-system perl-build-system) + (inputs + `(("perl-padwalker" ,perl-padwalker))) + (propagated-inputs + `(("perl-devel-cycle" ,perl-devel-cycle))) + (home-page + "http://search.cpan.org/dist/Test-Memory-Cycle/") + (synopsis + "Verifies code hasn't left circular references") + (description + "@code{Test::Memory::Cycle} is built on top of @code{Devel::Cycle} to +give you an easy way to check for these circular references. + +@example +use Test::Memory::Cycle; + +my $object = new MyObject; +# Do stuff with the object. +memory_cycle_ok( $object ); +@end example") + (license artistic2.0))) + +(define-public perl-test-mockobject + (package + (name "perl-test-mockobject") + (version "1.20150527") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/C/CH/CHROMATIC/" + "Test-MockObject-" version ".tar.gz")) + (sha256 + (base32 + "160xvhbpwqjaff4fgckvldknldzcbn1z3jvyzybs7cqlj1x3bwdd")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-exception" ,perl-test-exception) + ("perl-test-warn" ,perl-test-warn))) + (propagated-inputs + `(("perl-test-exception" ,perl-test-exception) + ("perl-test-warn" ,perl-test-warn) + ("perl-universal-can" ,perl-universal-can) + ("perl-universal-isa" ,perl-universal-isa))) + (arguments `(#:tests? #f)) ;TODO: tests require perl-cgi + (home-page "http://search.cpan.org/dist/Test-MockObject/") + (synopsis "Emulate troublesome interfaces in Perl") + (description "Test::MockObject allows you to create objects that conform +to particular interfaces with very little code. You don't have to reimplement +the behavior, just the input and the output.") + (license perl-license))) + +(define-public perl-test-mocktime + (package + (name "perl-test-mocktime") + (version "0.13") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DD/DDICK/" + "Test-MockTime-" version ".tar.gz")) + (sha256 + (base32 + "0yrqmjg33akannwz2f99rfm7dvvxpzsdj23lsvlvfi4qslrlqfvw")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Test-MockTime/") + (synopsis "Replaces actual time with simulated time") + (description "This module was created to enable test suites to test code +at specific points in time. Specifically it overrides localtime, gmtime and +time at compile time and then relies on the user supplying a mock time via +set_relative_time, set_absolute_time or set_fixed_time to alter future calls +to gmtime,time or localtime.") + (license perl-license))) + +(define-public perl-test-most + (package + (name "perl-test-most") + (version "0.34") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/O/OV/OVID/" + "Test-Most-" version ".tar.gz")) + (sha256 + (base32 + "0i72aih3pakm8gh73wx1n4dwq8lbx6dvxhla46gsapszws6hr0n2")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-test-differences" ,perl-test-differences) + ("perl-test-warn" ,perl-test-warn) + ("perl-exception-class" ,perl-exception-class) + ("perl-test-deep" ,perl-test-deep) + ("perl-test-exception" ,perl-test-exception))) + (home-page "http://search.cpan.org/dist/Test-Most/") + (synopsis "Most commonly needed test functions and features") + (description "This module provides the most commonly used testing +functions, along with automatically turning on strict and warning and gives a +bit more fine-grained control over test suites.") + (license perl-license))) + +(define-public perl-test-needs + (package + (name "perl-test-needs") + (version "0.002005") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/H/HA/HAARG/Test-Needs-" + version + ".tar.gz")) + (sha256 + (base32 + "16gkgpmr9hvkz382iaqd3500269lk2d44fqaw3dsrvc66nc36kss")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-Needs/") + (synopsis + "Skip tests when modules not available") + (description "@code{Test::Needs} allows you to skip test scripts if +modules are not available. The requested modules will be loaded, and +optionally have their versions checked. If the module is missing, the test +script will be skipped. Modules that are found but fail to compile will exit +with an error rather than skip. + +If used in a subtest, the remainder of the subtest will be skipped.") + (license perl-license))) + +(define-public perl-test-notabs + (package + (name "perl-test-notabs") + (version "2.00") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-" + version + ".tar.gz")) + (sha256 + (base32 + "127kpl1va267qar2ia4c22xb96jby2jqnda3sj5pjgmxg8si26cg")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-NoTabs/") + (synopsis + "Check the presence of tabs in your project") + (description + "@code{Test::NoTabs} lets you check the presence of tabs in your perl +code.") + (license perl-license))) + +(define-public perl-test-nowarnings + (package + (name "perl-test-nowarnings") + (version "1.04") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/" + "Test-NoWarnings-" version ".tar.gz")) + (sha256 + (base32 + "0v385ch0hzz9naqwdw2az3zdqi15gka76pmiwlgsy6diiijmg2k3")))) + (build-system perl-build-system) + (inputs `(("perl-test-tester" ,perl-test-tester))) + (synopsis "Ensure no warnings are produced while testing") + (description + "This modules causes any warnings during testing to be captured and +stored. It automatically adds an extra test that will run when your script +ends to check that there were no warnings. If there were any warnings, the +test will fail and output diagnostics of where, when and what the warning was, +including a stack trace of what was going on when it occurred.") + (home-page (string-append "http://search.cpan.org/~adamk//" + "Test-NoWarnings-" version)) + (license lgpl2.1))) + +(define-public perl-test-number-delta + (package + (name "perl-test-number-delta") + (version "1.06") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/" + "Test-Number-Delta-" version ".tar.gz")) + (sha256 + (base32 + "0jfhzhpzkc23mkrlbnv085ykpfncmy99hvppbzjnrpvgks8k0m2k")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Test-Number-Delta/") + (synopsis + "Compare the difference between numbers against a given tolerance") + (description + "At some point or another, most programmers find they need to compare +floating-point numbers for equality. The typical idiom is to test if the +absolute value of the difference of the numbers is within a desired tolerance, +usually called epsilon. This module provides such a function for use with +@code{Test::More}.") + (license asl2.0))) + +(define-public perl-test-output + (package + (name "perl-test-output") + (version "1.03") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/" + "Test-Output-" version ".tar.gz")) + (sha256 + (base32 + "12991jnzj4cbw9whhprmqvnzd1ayii84g2mh8vxbjngwqrjsy41i")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-capture-tiny" ,perl-capture-tiny) + ("perl-test-tester" ,perl-test-tester) + ("perl-sub-exporter" ,perl-sub-exporter))) + (synopsis "Utilities to test STDOUT and STDERR messages") + (description + "Test::Output provides a simple interface for testing output sent to +STDOUT or STDERR. A number of different utilities are included to try and be +as flexible as possible to the tester.") + (home-page (string-append "http://search.cpan.org/~bdfoy//" + "Test-Output-" version)) + (license perl-license))) + +(define-public perl-test-pod + (package + (name "perl-test-pod") + (version "1.48") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DW/DWHEELER/" + "Test-Pod-" version ".tar.gz")) + (sha256 + (base32 + "1hmwwhabyng4jrnll926b4ab73r40w3pfchlrvs0yx6kh6kwwy14")))) + (build-system perl-build-system) + (native-inputs `(("perl-module-build" ,perl-module-build))) + (home-page "http://search.cpan.org/dist/Test-Pod/") + (synopsis "Check for POD errors in files") + (description "Check POD files for errors or warnings in a test file, using +Pod::Simple to do the heavy lifting.") + (license perl-license))) + +(define-public perl-test-pod-coverage + (package + (name "perl-test-pod-coverage") + (version "1.10") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/" + "Test-Pod-Coverage-" version ".tar.gz")) + (sha256 + (base32 + "1m203mhgfilz7iqc8mxaw4lw02fz391mni3n25sfx7nryylwrja8")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-pod-coverage" ,perl-pod-coverage))) + (home-page "http://search.cpan.org/dist/Test-Pod-Coverage/") + (synopsis "Check for pod coverage") + (description "This module adds a test to your Perl distribution which +checks for pod coverage of all appropriate files.") + (license artistic2.0))) + +(define-public perl-test-requires + (package + (name "perl-test-requires") + (version "0.08") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/T/TO/TOKUHIROM/" + "Test-Requires-" version ".tar.gz")) + (sha256 + (base32 + "08c29m0dn34384mmmpqqlbb899zpbkkc01c2lsp31mch1frv9cg7")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Test-Requires/") + (synopsis "Checks to see if the module can be loaded") + (description "Test::Requires checks to see if the module can be loaded. +If this fails, then rather than failing tests this skips all tests.") + (license perl-license))) + +(define-public perl-test-script + (package + (name "perl-test-script") + (version "1.20") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/P/PL/PLICEASE/" + "Test-Script-" version ".tar.gz")) + (sha256 + (base32 + "1msavbi6przkxq3npm90nv925v58iym9jrk677wn46x19whwzwzm")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-capture-tiny" ,perl-capture-tiny) + ("perl-probe-perl" ,perl-probe-perl))) + (synopsis "Basic cross-platform tests for scripts") + (description + "The intent of the Test::Script module is to provide a series of basic +tests for 80% of the testing you will need to do for scripts in the script (or +bin as is also commonly used) paths of your Perl distribution.") + (home-page "http://search.cpan.org/dist/Test-Script/") + (license perl-license))) + +(define-public perl-test-sharedfork + (package + (name "perl-test-sharedfork") + (version "0.29") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/" + "Test-SharedFork-" version ".tar.gz")) + (sha256 + (base32 + "0vlak10q4gcf0ch0rfcb9lvddav6r8h15iipzbkbgf9mrj47gbv3")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-requires" ,perl-test-requires))) + (home-page "http://search.cpan.org/dist/Test-SharedFork/") + (synopsis "Fork test in Perl") + (description "Test::SharedFork is a utility module for Test::Builder. It +makes fork(2) safe to use in test cases.") + (license perl-license))) + +(define-public perl-test-simple + (package + (name "perl-test-simple") + (version "1.302078") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/" + "Test-Simple-" version ".tar.gz")) + (sha256 + (base32 + "05acl24kmz3dgr2nayy162yaf0kz92h1j5vkiavyv6mdh2lz6ixb")))) + (build-system perl-build-system) + (synopsis "Basic utilities for writing tests") + (description + "Test::Simple contains basic utilities for writing tests.") + (home-page (string-append "http://search.cpan.org/~exodist//" + "Test-Simple-" version)) + (license perl-license))) + +(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, such +as the command line, or, in the case of web apps, any @code{GET} or +@code{POST} transactions. Read the @code{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 perl-license))) + +(define-public perl-test-tester + (package + (name "perl-test-tester") + (version "0.109") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/F/FD/FDALY/" + "Test-Tester-" version ".tar.gz")) + (sha256 + (base32 + "0m9n28z09kq455r5nydj1bnr85lvmbfpcbjdkjfbpmfb5xgciiyk")))) + (build-system perl-build-system) + (synopsis "Simplify running Test::Builder tests") + (description + "Test::Tester allows testing of test modules based on Test::Builder with +a minimum of effort.") + (home-page (string-append "http://search.cpan.org/~fdaly//" + "Test-Tester-" version)) + ;; "Under the same license as Perl itself" + (license perl-license))) + +(define-public perl-test-trap + (package + (name "perl-test-trap") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/E/EB/EBHANSSEN/" + "Test-Trap-v" version ".tar.gz")) + (sha256 + (base32 + "0jq54pkm4s61gk8gzxglix1ff9s0m9vi6bpfv7f63lb9qq4r76rr")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-simple" ,perl-test-simple))) + (propagated-inputs + `(("perl-test-tester" ,perl-test-tester) + ("perl-data-dump" ,perl-data-dump))) + (home-page "http://search.cpan.org/dist/Test-Trap/") + (synopsis "Trap exit codes, exceptions, output, and so on") + (description "This module is primarily (but not exclusively) for use in +test scripts: A block eval configurable and extensible but by default trapping +STDOUT, STDERR, warnings, exceptions, would-be exit codes, and return values +from boxed blocks of test code.") + (license perl-license))) + +(define-public perl-test-utf8 + (package + (name "perl-test-utf8") + (version "1.01") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MA/MARKF/" + "Test-utf8-" version ".tar.gz")) + (sha256 + (base32 + "0yhvf735v334qqvp9zg7i66qyk6r4cbk5s2psv93d3fdd4bindzg")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-install" ,perl-module-install))) + (home-page "http://search.cpan.org/dist/Test-utf8/") + (synopsis "UTF-8 testing in Perl") + (description "This module is a collection of tests useful for dealing with +UTF-8 strings in Perl. This module has two types of tests: The validity tests +check if a string is valid and not corrupt, whereas the characteristics tests +will check that string has a given set of characteristics.") + (license perl-license))) + +(define-public perl-test-warn + (package + (name "perl-test-warn") + (version "0.30") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/C/CH/CHORNY/" + "Test-Warn-" version ".tar.gz")) + (sha256 + (base32 + "0haf2ii7br5z0psmkvlvmx2z2q9qz1c70gx0969r378qjidmb5w1")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-sub-uplevel" ,perl-sub-uplevel))) + (home-page "http://search.cpan.org/dist/Test-Warn/") + (synopsis "Perl extension to test methods for warnings") + (description "This module provides a few convenience methods for testing +warning based code.") + (license perl-license))) + +(define-public perl-test-warnings + (package + (name "perl-test-warnings") + (version "0.026") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" + "Test-Warnings-" version ".tar.gz")) + (sha256 + (base32 + "024srkwjckp15dxkni9lb1hc8bg4xwc52zz0iich8rv1nnqnhaxf")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Test-Warnings/") + (synopsis "Test for warnings and the lack of them") + (description "This module is intended to be used as a drop-in replacement +for Test::NoWarnings. It also adds an extra test, but runs this test before +done_testing calculates the test count, rather than after. It does this by +hooking into done_testing as well as via an END block. You can declare a +plan, or not, and things will still Just Work.") + (license perl-license))) + +(define-public perl-test-without-module + (package + (name "perl-test-without-module") + (version "0.18") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/C/CO/CORION/" + "Test-Without-Module-" version ".tar.gz")) + (sha256 + (base32 + "0zwc2dk5srd02j4p049w77m89iw5nbff381rmhcbaz8x2w5kdhz2")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Test-Without-Module/") + (synopsis "Test fallback behaviour in absence of modules") + (description "This module allows you to deliberately hide modules from a +program even though they are installed. This is mostly useful for testing +modules that have a fallback when a certain dependency module is not +installed.") + (license perl-license))) + +(define-public perl-test-writevariants + (package + (name "perl-test-writevariants") + (version "0.010") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/" + "Test-WriteVariants-" version ".tar.gz")) + (sha256 + (base32 + "0kklp05fj98yiq8znyfx9lx1vmjay2ypfb868qdwv3kf93m5zjwr")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-most" ,perl-test-most) + ("perl-test-directory" ,perl-test-directory))) + (propagated-inputs + `(("perl-data-tumbler" ,perl-data-tumbler) + ("perl-file-homedir" ,perl-file-homedir) + ("perl-module-pluggable" ,perl-module-pluggable))) + (home-page "http://search.cpan.org/dist/Test-WriteVariants/") + (synopsis "Dynamic generation of tests") + (description "The Test::WriteVariants module provides for the dynamic +generation of tests in nested combinations of contexts.") + (license perl-license))) ;See LICENSE + +(define-public perl-test-yaml + (package + (name "perl-test-yaml") + (version "1.05") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/I/IN/INGY/" + "Test-YAML-" version ".tar.gz")) + (sha256 + (base32 + "079nayc0fp2fwjv8s2yr069bdffln699j6z3lqr5dpx1v2qg82ck")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-test-base" ,perl-test-base))) + (home-page "http://search.cpan.org/dist/Test-YAML/") + (synopsis "Testing module for YAML implementations") + (description "Test::YAML is a subclass of Test::Base with YAML specific +support.") + (license perl-license))) + +(define-public perl-test-trailingspace + (package + (name "perl-test-trailingspace") + (version "0.0300") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-" + version + ".tar.gz")) + (sha256 + (base32 + "01slmrcjfq38mpdg3hlb7lnnbgsqbn26958y3hzx0zwrif40pigr")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-file-find-object" ,perl-file-find-object) + ("perl-class-xsaccessor" ,perl-class-xsaccessor))) + (inputs + `(("perl-file-find-object-rule" ,perl-file-find-object-rule) + ("perl-text-glob" ,perl-text-glob) + ("perl-number-compare" ,perl-number-compare))) + (home-page + "http://search.cpan.org/dist/Test-TrailingSpace/") + (synopsis + "Test for trailing space in Perl source files") + (description "Test::TrailingSpace tests for trailing spaces +in Perl source files.") + (license x11))) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 29c54c956e..2d8b488ca3 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -42,6 +42,7 @@ (define-module (gnu packages perl) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (gnu packages base) + #:use-module (gnu packages perl-check) #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config)) @@ -7451,1109 +7452,6 @@ (define-public perl-term-table into tables.") (license (package-license perl)))) -(define-public perl-test2-bundle-extended - (package - (name "perl-test2-bundle-extended") - (version "0.000072") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-" - version ".tar.gz")) - (sha256 - (base32 - "0hgd6n29qjh1pwqvbglm2kb852yqshmixqqjhsr2kvvibdr58qpf")))) - (build-system perl-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-env - (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1")))))) - (propagated-inputs - `(("perl-importer" ,perl-importer) - ("perl-term-table" ,perl-term-table) - ("perl-sub-info" ,perl-sub-info))) - (home-page "http://search.cpan.org/~exodist/Test2-Suite/lib/Test2/Bundle/Extended.pm") - (synopsis "Full set of tools for Test2::Suite") - (description "This package provides a rich set of tools, plugins, bundles, -etc built upon the Test2 testing library.") - (license (package-license perl)))) - -(define-public perl-test2-plugin-nowarnings - (package - (name "perl-test2-plugin-nowarnings") - (version "0.06") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-" - version ".tar.gz")) - (sha256 - (base32 - "002qk6qsm0l6r2kaxywvc38w0yf0mlavgywq8li076pn6kcw3242")))) - (build-system perl-build-system) - (propagated-inputs - `(("perl-test2-bundle-extended" ,perl-test2-bundle-extended))) - (home-page "http://search.cpan.org/dist/Test2-Plugin-NoWarnings//") - (synopsis "Fail if tests warn") - (description "Loading this plugin causes your tests to fail if there any -warnings while they run. Each warning generates a new failing test and the -warning content is outputted via diag.") - (license (package-license perl)))) - -(define-public perl-test-base - (package - (name "perl-test-base") - (version "0.88") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/I/IN/INGY/" - "Test-Base-" version ".tar.gz")) - (sha256 - (base32 - "0fch1cvivnszbnwhpfmwv1rin04j5xkj1n1ylfmlxg6bm72qqdjj")))) - (build-system perl-build-system) - (native-inputs - `(("perl-algorithm-diff" ,perl-algorithm-diff) - ("perl-text-diff" ,perl-text-diff))) - (propagated-inputs - `(("perl-spiffy" ,perl-spiffy) - ("perl-test-deep" ,perl-test-deep))) - (home-page "http://search.cpan.org/dist/Test-Base/") - (synopsis "Data-driven testing framework for Perl") - (description "Test::Base gives a way to trivially write your own test -framework base class. It concentrates on offering reusable data driven -patterns, so that you can write tests with a minimum of code.") - (license (package-license perl)))) - -(define-public perl-test-class - (package - (name "perl-test-class") - (version "0.50") - (source - (origin - (method url-fetch) - (uri (string-append - "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Class-" - version - ".tar.gz")) - (sha256 - (base32 - "0l0kk5jvxjkic2jkf1r7v41irb344aasnzr3f5ygjgxgiknm9489")))) - (build-system perl-build-system) - (native-inputs - `(("perl-test-exception" ,perl-test-exception))) - (inputs - `(("perl-module-runtime" ,perl-module-runtime) - ("perl-mro-compat" ,perl-mro-compat) - ("perl-try-tiny" ,perl-try-tiny))) - (home-page "http://search.cpan.org/dist/Test-Class/") - (synopsis "Easily create test classes in an xUnit/JUnit style") - (description "@code{Test::Class} provides a simple way of creating classes -and objects to test your code in an xUnit style. - -Built using @code{Test::Builder}, it was designed to work with other -@code{Test::Builder} based modules (@code{Test::More}, -@code{Test::Differences}, @code{Test::Exception}, etc.).") - (license (package-license perl)))) - -(define-public perl-test-class-most - (package - (name "perl-test-class-most") - (version "0.08") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-" - version - ".tar.gz")) - (sha256 - (base32 - "1zvx9hil0mg0pnb8xfa4m0xgjpvh8s5gnbyprq3xwpdsdgcdwk33")))) - (build-system perl-build-system) - (native-inputs - `(("perl-module-build" ,perl-module-build))) - (inputs - `(("perl-test-class" ,perl-test-class) - ("perl-test-most" ,perl-test-most) - ("perl-module-runtime" ,perl-module-runtime) - ("perl-try-tiny" ,perl-try-tiny) - ("perl-mro-compat" ,perl-mro-compat))) - (home-page "http://search.cpan.org/dist/Test-Class-Most/") - (synopsis "Test classes the easy way") - (description "@code{Test::Class::Most} provides some more convenience when -using @code{Test::Class}.") - (license (package-license perl)))) - -(define-public perl-test-cleannamespaces - (package - (name "perl-test-cleannamespaces") - (version "0.22") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" - "Test-CleanNamespaces-" version ".tar.gz")) - (sha256 - (base32 - "1jma95agqqy7iwdcl6jbg1waqz7mjqng4l046lpknhfxjhcj4al6")))) - (build-system perl-build-system) - (native-inputs - `(("perl-file-pushd" ,perl-file-pushd) - ("perl-test-requires" ,perl-test-requires) - ("perl-test-deep" ,perl-test-deep) - ("perl-test-warnings" ,perl-test-warnings) - ("perl-test-tester" ,perl-test-tester) - ("perl-test-needs" ,perl-test-needs))) - (propagated-inputs - `(("perl-namespace-clean" ,perl-namespace-clean) - ("perl-package-stash" ,perl-package-stash) - ("perl-sub-identify" ,perl-sub-identify) - ("perl-sub-exporter" ,perl-sub-exporter) - ("perl-file-find-rule" ,perl-file-find-rule) - ("perl-file-find-rule-perl" ,perl-file-find-rule-perl))) - (home-page "http://search.cpan.org/dist/Test-CleanNamespaces/") - (synopsis "Check for uncleaned imports") - (description "This module lets you check your module's namespaces for -imported functions you might have forgotten to remove with -namespace::autoclean or namespace::clean and are therefore available to be -called as methods, which usually isn't want you want.") - (license (package-license perl)))) - -(define-public perl-test-command - (package - (name "perl-test-command") - (version "0.11") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/D/DA/DANBOO/Test-Command-" - version ".tar.gz")) - (sha256 - (base32 - "0cwm3c4d49mdrbm6vgh78b3x8mk730l0zg8i7xb9z8bkx9pzr8r8")))) - (build-system perl-build-system) - (native-inputs - `(("perl-module-build" ,perl-module-build))) - (home-page "https://github.com/danboo/perl-test-command") - (synopsis "Test routines for external commands") - (description - "This module provides routines for testing the exit status, standard -output and standard error of external commands.") - (license perl-license))) - -(define-public perl-test-cpan-meta - (package - (name "perl-test-cpan-meta") - (version "0.25") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-" - version - ".tar.gz")) - (sha256 - (base32 - "1dcdbbdwdyhpldkhjzc9rvzlmb5jbil6fwh2x07nsfdwysf4ynzm")))) - (build-system perl-build-system) - (native-inputs - `(("perl-test-cpan-meta-json" ,perl-test-cpan-meta-json) - ("perl-test-pod" ,perl-test-pod) - ("perl-test-pod-coverage" ,perl-test-pod-coverage))) - (home-page - "http://search.cpan.org/dist/Test-CPAN-Meta/") - (synopsis "Validate your CPAN META.yml files") - (description - "This module was written to ensure that a META.yml file meets the -specification.") - (license artistic2.0))) - -(define-public perl-test-cpan-meta-json - (package - (name "perl-test-cpan-meta-json") - (version "0.16") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-" - version - ".tar.gz")) - (sha256 - (base32 - "1jg9ka50ixwq083wd4k12rhdjq87w0ihb34gd8jjn7gvvyd51b37")))) - (build-system perl-build-system) - (native-inputs - `(("perl-test-pod" ,perl-test-pod) - ("perl-test-pod-coverage" ,perl-test-pod-coverage))) - (inputs - `(("perl-json" ,perl-json))) - (home-page - "http://search.cpan.org/dist/Test-CPAN-Meta-JSON/") - (synopsis "Validate your CPAN META.json files") - (description - "This module was written to ensure that a META.json file meets the -specification.") - (license artistic2.0))) - -(define-public perl-test-deep - (package - (name "perl-test-deep") - (version "1.120") - (source (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/" - "Test-Deep-" version ".tar.gz")) - (sha256 - (base32 - "1kdy06r0yg7zwarqglc9163vbfb0sfc4s6ld4pw5q7i9f7mghzi0")))) - (build-system perl-build-system) - (inputs `(("perl-test-tester" ,perl-test-tester) - ("perl-test-nowarnings" ,perl-test-nowarnings))) - (synopsis "Flexible deep comparison for the Test::Builder framework") - (description - "Test::Deep compares two structures by going through each level, ensuring -that the values match, that arrays and hashes have the same elements and that -references are blessed into the correct class. It also handles circular data -structures without getting caught in an infinite loop.") - (home-page "http://search.cpan.org/dist/Test-Deep/") - (license gpl1+))) ; or "Artistic License" - -(define-public perl-test-differences - (package - (name "perl-test-differences") - (version "0.63") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/D/DC/DCANTRELL/" - "Test-Differences-" version ".tar.gz")) - (sha256 - (base32 - "0rhs4q6qn64ji06ns7lwl6iiiw3mggvd9xk9nkiqvx1jihbplrbw")))) - (build-system perl-build-system) - (native-inputs - `(("perl-module-build" ,perl-module-build))) - (propagated-inputs - `(("perl-text-diff" ,perl-text-diff) - ("perl-capture-tiny" ,perl-capture-tiny))) - (home-page "http://search.cpan.org/dist/Test-Differences/") - (synopsis "Test strings and data structures and show differences") - (description "This module exports three test functions and four diff-style -functions.") - ;; See LICENSE section of Test/Differences.pm, which reads "... GNU public - ;; license, any version, ..." - (license gpl3+))) - -(define-public perl-test-directory - (package - (name "perl-test-directory") - (version "0.041") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/S/SA/SANBEG/" - "Test-Directory-" version ".tar.gz")) - (sha256 - (base32 - "1ncql08cizhicbxwd753b4czns8nlcnlw0zfjcfrbdd41x4j6hqr")))) - (build-system perl-build-system) - (native-inputs `(("perl-test-exception" ,perl-test-exception))) - (home-page "http://search.cpan.org/dist/Test-Directory/") - (synopsis "Perl extension for maintaining test directories") - (description "Testing code can involve making sure that files are created -and deleted as expected. Doing this manually can be error prone, as it's easy -to forget a file, or miss that some unexpected file was added. This module -simplifies maintaining test directories by tracking their status as they are -modified or tested with this API, making it simple to test both individual -files, as well as to verify that there are no missing or unknown files.") - (license (package-license perl)))) - -(define-public perl-test-eol - (package - (name "perl-test-eol") - (version "2.00") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-" - version - ".tar.gz")) - (sha256 - (base32 - "0l3bxpsw0x7j9nclizcp53mnf9wny25dmg2iglfhzgnk0xfpwzwf")))) - (build-system perl-build-system) - (home-page - "http://search.cpan.org/dist/Test-EOL/") - (synopsis - "Check the correct line endings in your project") - (description - "@code{Test::EOL} lets you check for the presence of trailing whitespace -and/or windows line endings in your perl code.") - (license perl-license))) - -(define-public perl-test-exception - (package - (name "perl-test-exception") - (version "0.43") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/" - "Test-Exception-" version ".tar.gz")) - (sha256 - (base32 - "0cxm7s4bg0xpxa6l6996a6iq3brr4j7p4hssnkc6dxv4fzq16sqm")))) - (build-system perl-build-system) - (native-inputs - `(("perl-module-build" ,perl-module-build))) - (propagated-inputs - `(("perl-sub-uplevel" ,perl-sub-uplevel))) - (home-page "http://search.cpan.org/dist/Test-Exception/") - (synopsis "Test exception based code") - (description "This module provides a few convenience methods for testing -exception based code. It is built with Test::Builder and plays happily with -Test::More and friends.") - (license (package-license perl)))) - -(define-public perl-test-fatal - (package - (name "perl-test-fatal") - (version "0.014") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/" - "Test-Fatal-" version ".tar.gz")) - (sha256 - (base32 - "1c6bs68mss4q7cyapkv2c0jn66i21050p0faxf3s3417gdffzp5w")))) - (build-system perl-build-system) - (propagated-inputs `(("perl-try-tiny" ,perl-try-tiny))) - (home-page "http://search.cpan.org/dist/Test-Fatal/") - (synopsis "Simple helpers for testing code with exceptions") - (description "Test::Fatal is an alternative to the popular -Test::Exception. It does much less, but should allow greater flexibility in -testing exception-throwing code with about the same amount of typing.") - (license (package-license perl)))) - -(define-public perl-test-file-sharedir-dist - (package - (name "perl-test-file-sharedir-dist") - (version "1.001002") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/K/KE/KENTNL/" - "Test-File-ShareDir-" version ".tar.gz")) - (sha256 - (base32 - "1bbs6cx69wcinq77gif4i4pmrj8a7lwb92sgvvxzrwmjnk5lfdmk")))) - (build-system perl-build-system) - (propagated-inputs - `(("perl-class-tiny" ,perl-class-tiny) - ("perl-file-copy-recursive" ,perl-file-copy-recursive) - ("perl-file-sharedir" ,perl-file-sharedir) - ("perl-path-tiny" ,perl-path-tiny) - ("perl-scope-guard" ,perl-scope-guard) - ("perl-test-fatal" ,perl-test-fatal))) - (home-page "https://github.com/kentnl/Test-File-ShareDir") - (synopsis "Dist oriented ShareDir tester") - (description "This module creates a Fake ShareDir for your modules -for testing.") - (license (package-license perl)))) - -(define-public perl-test-files - (package - (name "perl-test-files") - (version "0.14") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/P/PH/PHILCROW/Test-Files-" - version - ".tar.gz")) - (sha256 - (base32 - "1zn33yigznq7i1jr4yjr4lxvc6bn7znkbqdzj7slhc146pqapkln")))) - (build-system perl-build-system) - (propagated-inputs - `(("perl-algorithm-diff" ,perl-algorithm-diff) - ("perl-text-diff" ,perl-text-diff))) - (home-page "http://search.cpan.org/dist/Test-Files/") - (synopsis "Ease software testing with files and directories") - (description "This library provides functions to enable testing of files -and directories. For instance, the @code{file_ok} helper can test whether the -contents of a file is equal to a particular string.") - (license (package-license perl)))) - -(define-public perl-test-harness - (package - (name "perl-test-harness") - (version "3.39") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/L/LE/LEONT/" - "Test-Harness-" version ".tar.gz")) - (sha256 - (base32 - "0chiqnzmna2mglm37nzxvn9qhq2j31iwz3i9isqjs7bf3k449gb9")))) - (build-system perl-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'patch-test - (lambda* (#:key inputs #:allow-other-keys) - ;; This test looks for "#!/usr/bin/perl" in some source. - ;; Patch what the test looks for. - (substitute* "t/source.t" - (("#!/usr/bin/perl") - (string-append "#!" (assoc-ref inputs "perl") - "/bin/perl"))) - #t))))) - (home-page "http://search.cpan.org/dist/Test-Harness/") - (synopsis "Run Perl standard test scripts with statistics") - (description "Simple test harness which allows tests to be run and results -automatically aggregated and output to STDOUT.") - (license (package-license perl)))) - -(define-public perl-test-leaktrace - (package - (name "perl-test-leaktrace") - (version "0.16") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/L/LE/LEEJO/" - "Test-LeakTrace-" version ".tar.gz")) - (sha256 - (base32 - "00z4hcjra5nk700f3fgpy8fs036d7ry7glpn8g3wh7jzj7nrw22z")))) - (build-system perl-build-system) - (home-page "http://search.cpan.org/dist/Test-LeakTrace/") - (synopsis "Traces memory leaks in Perl") - (description "Test::LeakTrace provides several functions that trace memory -leaks. This module scans arenas, the memory allocation system, so it can -detect any leaked SVs in given blocks.") - (license (package-license perl)))) - -(define-public perl-test-longstring - (package - (name "perl-test-longstring") - (version "0.17") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/R/RG/RGARCIA/" - "Test-LongString-" version ".tar.gz")) - (sha256 - (base32 - "0kwp7rfr1i2amz4ckigkv13ah7jr30q6l5k4wk0vxl84myg39i5b")))) - (build-system perl-build-system) - (home-page "http://search.cpan.org/dist/Test-LongString/") - (synopsis "Tests strings for equality, with more helpful failures") - (description "This module provides some drop-in replacements for the -string comparison functions of Test::More, but which are more suitable when -you test against long strings.") - (license (package-license perl)))) - -(define-public perl-test-manifest - (package - (name "perl-test-manifest") - (version "2.02") - (source (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/" - "Test-Manifest-" version ".tar.gz")) - (sha256 - (base32 - "15ik52l9macrrfizf4y6wj71d4lx7w590h2dfajnkmbxmz786iq6")))) - (build-system perl-build-system) - (native-inputs - `(("perl-test-pod" ,perl-test-pod) - ("perl-test-pod-coverage" ,perl-test-pod-coverage))) - (home-page "http://search.cpan.org/dist/Test-Manifest/") - (synopsis "Interact with a t/test_manifest file") - (description "@code{Test::Manifest} overrides the default test file order. Instead of -running all of the t/*.t files in ASCII-betical order, it looks in the t/test_manifest -file to find out which tests you want to run and the order in which you want to run them. -It constructs the right value for the build system to do the right thing.") - (license (package-license perl)))) - -(define-public perl-test-memory-cycle - (package - (name "perl-test-memory-cycle") - (version "1.06") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-" - version - ".tar.gz")) - (sha256 - (base32 - "00ijmgx1r3cxrcs1qa9rb2s4gbm3nsawd90drda89kb4r7yxslwx")))) - (build-system perl-build-system) - (inputs - `(("perl-padwalker" ,perl-padwalker))) - (propagated-inputs - `(("perl-devel-cycle" ,perl-devel-cycle))) - (home-page - "http://search.cpan.org/dist/Test-Memory-Cycle/") - (synopsis - "Verifies code hasn't left circular references") - (description - "@code{Test::Memory::Cycle} is built on top of @code{Devel::Cycle} to -give you an easy way to check for these circular references. - -@example -use Test::Memory::Cycle; - -my $object = new MyObject; -# Do stuff with the object. -memory_cycle_ok( $object ); -@end example") - (license artistic2.0))) - -(define-public perl-test-mockobject - (package - (name "perl-test-mockobject") - (version "1.20150527") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/C/CH/CHROMATIC/" - "Test-MockObject-" version ".tar.gz")) - (sha256 - (base32 - "160xvhbpwqjaff4fgckvldknldzcbn1z3jvyzybs7cqlj1x3bwdd")))) - (build-system perl-build-system) - (native-inputs - `(("perl-test-exception" ,perl-test-exception) - ("perl-test-warn" ,perl-test-warn))) - (propagated-inputs - `(("perl-test-exception" ,perl-test-exception) - ("perl-test-warn" ,perl-test-warn) - ("perl-universal-can" ,perl-universal-can) - ("perl-universal-isa" ,perl-universal-isa))) - (arguments `(#:tests? #f)) ;TODO: tests require perl-cgi - (home-page "http://search.cpan.org/dist/Test-MockObject/") - (synopsis "Emulate troublesome interfaces in Perl") - (description "Test::MockObject allows you to create objects that conform -to particular interfaces with very little code. You don't have to reimplement -the behavior, just the input and the output.") - (license (package-license perl)))) - -(define-public perl-test-mocktime - (package - (name "perl-test-mocktime") - (version "0.13") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/D/DD/DDICK/" - "Test-MockTime-" version ".tar.gz")) - (sha256 - (base32 - "0yrqmjg33akannwz2f99rfm7dvvxpzsdj23lsvlvfi4qslrlqfvw")))) - (build-system perl-build-system) - (home-page "http://search.cpan.org/dist/Test-MockTime/") - (synopsis "Replaces actual time with simulated time") - (description "This module was created to enable test suites to test code -at specific points in time. Specifically it overrides localtime, gmtime and -time at compile time and then relies on the user supplying a mock time via -set_relative_time, set_absolute_time or set_fixed_time to alter future calls -to gmtime,time or localtime.") - (license (package-license perl)))) - -(define-public perl-test-most - (package - (name "perl-test-most") - (version "0.34") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/O/OV/OVID/" - "Test-Most-" version ".tar.gz")) - (sha256 - (base32 - "0i72aih3pakm8gh73wx1n4dwq8lbx6dvxhla46gsapszws6hr0n2")))) - (build-system perl-build-system) - (propagated-inputs - `(("perl-test-differences" ,perl-test-differences) - ("perl-test-warn" ,perl-test-warn) - ("perl-exception-class" ,perl-exception-class) - ("perl-test-deep" ,perl-test-deep) - ("perl-test-exception" ,perl-test-exception))) - (home-page "http://search.cpan.org/dist/Test-Most/") - (synopsis "Most commonly needed test functions and features") - (description "This module provides the most commonly used testing -functions, along with automatically turning on strict and warning and gives a -bit more fine-grained control over test suites.") - (license (package-license perl)))) - -(define-public perl-test-needs - (package - (name "perl-test-needs") - (version "0.002005") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/H/HA/HAARG/Test-Needs-" - version - ".tar.gz")) - (sha256 - (base32 - "16gkgpmr9hvkz382iaqd3500269lk2d44fqaw3dsrvc66nc36kss")))) - (build-system perl-build-system) - (home-page - "http://search.cpan.org/dist/Test-Needs/") - (synopsis - "Skip tests when modules not available") - (description "@code{Test::Needs} allows you to skip test scripts if -modules are not available. The requested modules will be loaded, and -optionally have their versions checked. If the module is missing, the test -script will be skipped. Modules that are found but fail to compile will exit -with an error rather than skip. - -If used in a subtest, the remainder of the subtest will be skipped.") - (license (package-license perl)))) - -(define-public perl-test-notabs - (package - (name "perl-test-notabs") - (version "2.00") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-" - version - ".tar.gz")) - (sha256 - (base32 - "127kpl1va267qar2ia4c22xb96jby2jqnda3sj5pjgmxg8si26cg")))) - (build-system perl-build-system) - (home-page - "http://search.cpan.org/dist/Test-NoTabs/") - (synopsis - "Check the presence of tabs in your project") - (description - "@code{Test::NoTabs} lets you check the presence of tabs in your perl -code.") - (license perl-license))) - -(define-public perl-test-nowarnings - (package - (name "perl-test-nowarnings") - (version "1.04") - (source (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/" - "Test-NoWarnings-" version ".tar.gz")) - (sha256 - (base32 - "0v385ch0hzz9naqwdw2az3zdqi15gka76pmiwlgsy6diiijmg2k3")))) - (build-system perl-build-system) - (inputs `(("perl-test-tester" ,perl-test-tester))) - (synopsis "Ensure no warnings are produced while testing") - (description - "This modules causes any warnings during testing to be captured and -stored. It automatically adds an extra test that will run when your script -ends to check that there were no warnings. If there were any warnings, the -test will fail and output diagnostics of where, when and what the warning was, -including a stack trace of what was going on when it occurred.") - (home-page (string-append "http://search.cpan.org/~adamk//" - "Test-NoWarnings-" version)) - (license lgpl2.1))) - -(define-public perl-test-number-delta - (package - (name "perl-test-number-delta") - (version "1.06") - (source (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/" - "Test-Number-Delta-" version ".tar.gz")) - (sha256 - (base32 - "0jfhzhpzkc23mkrlbnv085ykpfncmy99hvppbzjnrpvgks8k0m2k")))) - (build-system perl-build-system) - (home-page "http://search.cpan.org/dist/Test-Number-Delta/") - (synopsis - "Compare the difference between numbers against a given tolerance") - (description - "At some point or another, most programmers find they need to compare -floating-point numbers for equality. The typical idiom is to test if the -absolute value of the difference of the numbers is within a desired tolerance, -usually called epsilon. This module provides such a function for use with -@code{Test::More}.") - (license asl2.0))) - -(define-public perl-test-output - (package - (name "perl-test-output") - (version "1.03") - (source (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/" - "Test-Output-" version ".tar.gz")) - (sha256 - (base32 - "12991jnzj4cbw9whhprmqvnzd1ayii84g2mh8vxbjngwqrjsy41i")))) - (build-system perl-build-system) - (propagated-inputs - `(("perl-capture-tiny" ,perl-capture-tiny) - ("perl-test-tester" ,perl-test-tester) - ("perl-sub-exporter" ,perl-sub-exporter))) - (synopsis "Utilities to test STDOUT and STDERR messages") - (description - "Test::Output provides a simple interface for testing output sent to -STDOUT or STDERR. A number of different utilities are included to try and be -as flexible as possible to the tester.") - (home-page (string-append "http://search.cpan.org/~bdfoy//" - "Test-Output-" version)) - (license (package-license perl)))) - -(define-public perl-test-pod - (package - (name "perl-test-pod") - (version "1.48") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/D/DW/DWHEELER/" - "Test-Pod-" version ".tar.gz")) - (sha256 - (base32 - "1hmwwhabyng4jrnll926b4ab73r40w3pfchlrvs0yx6kh6kwwy14")))) - (build-system perl-build-system) - (native-inputs `(("perl-module-build" ,perl-module-build))) - (home-page "http://search.cpan.org/dist/Test-Pod/") - (synopsis "Check for POD errors in files") - (description "Check POD files for errors or warnings in a test file, using -Pod::Simple to do the heavy lifting.") - (license (package-license perl)))) - -(define-public perl-test-pod-coverage - (package - (name "perl-test-pod-coverage") - (version "1.10") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/" - "Test-Pod-Coverage-" version ".tar.gz")) - (sha256 - (base32 - "1m203mhgfilz7iqc8mxaw4lw02fz391mni3n25sfx7nryylwrja8")))) - (build-system perl-build-system) - (propagated-inputs - `(("perl-pod-coverage" ,perl-pod-coverage))) - (home-page "http://search.cpan.org/dist/Test-Pod-Coverage/") - (synopsis "Check for pod coverage") - (description "This module adds a test to your Perl distribution which -checks for pod coverage of all appropriate files.") - (license artistic2.0))) - -(define-public perl-test-requires - (package - (name "perl-test-requires") - (version "0.08") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/T/TO/TOKUHIROM/" - "Test-Requires-" version ".tar.gz")) - (sha256 - (base32 - "08c29m0dn34384mmmpqqlbb899zpbkkc01c2lsp31mch1frv9cg7")))) - (build-system perl-build-system) - (home-page "http://search.cpan.org/dist/Test-Requires/") - (synopsis "Checks to see if the module can be loaded") - (description "Test::Requires checks to see if the module can be loaded. -If this fails, then rather than failing tests this skips all tests.") - (license (package-license perl)))) - -(define-public perl-test-script - (package - (name "perl-test-script") - (version "1.20") - (source (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/P/PL/PLICEASE/" - "Test-Script-" version ".tar.gz")) - (sha256 - (base32 - "1msavbi6przkxq3npm90nv925v58iym9jrk677wn46x19whwzwzm")))) - (build-system perl-build-system) - (propagated-inputs - `(("perl-capture-tiny" ,perl-capture-tiny) - ("perl-probe-perl" ,perl-probe-perl))) - (synopsis "Basic cross-platform tests for scripts") - (description - "The intent of the Test::Script module is to provide a series of basic -tests for 80% of the testing you will need to do for scripts in the script (or -bin as is also commonly used) paths of your Perl distribution.") - (home-page "http://search.cpan.org/dist/Test-Script/") - (license (package-license perl)))) - -(define-public perl-test-sharedfork - (package - (name "perl-test-sharedfork") - (version "0.29") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/" - "Test-SharedFork-" version ".tar.gz")) - (sha256 - (base32 - "0vlak10q4gcf0ch0rfcb9lvddav6r8h15iipzbkbgf9mrj47gbv3")))) - (build-system perl-build-system) - (native-inputs - `(("perl-test-requires" ,perl-test-requires))) - (home-page "http://search.cpan.org/dist/Test-SharedFork/") - (synopsis "Fork test in Perl") - (description "Test::SharedFork is a utility module for Test::Builder. It -makes fork(2) safe to use in test cases.") - (license (package-license perl)))) - -(define-public perl-test-simple - (package - (name "perl-test-simple") - (version "1.302078") - (source (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/" - "Test-Simple-" version ".tar.gz")) - (sha256 - (base32 - "05acl24kmz3dgr2nayy162yaf0kz92h1j5vkiavyv6mdh2lz6ixb")))) - (build-system perl-build-system) - (synopsis "Basic utilities for writing tests") - (description - "Test::Simple contains basic utilities for writing tests.") - (home-page (string-append "http://search.cpan.org/~exodist//" - "Test-Simple-" version)) - (license (package-license perl)))) - -(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, such -as the command line, or, in the case of web apps, any @code{GET} or -@code{POST} transactions. Read the @code{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") - (version "0.109") - (source (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/F/FD/FDALY/" - "Test-Tester-" version ".tar.gz")) - (sha256 - (base32 - "0m9n28z09kq455r5nydj1bnr85lvmbfpcbjdkjfbpmfb5xgciiyk")))) - (build-system perl-build-system) - (synopsis "Simplify running Test::Builder tests") - (description - "Test::Tester allows testing of test modules based on Test::Builder with -a minimum of effort.") - (home-page (string-append "http://search.cpan.org/~fdaly//" - "Test-Tester-" version)) - ;; "Under the same license as Perl itself" - (license (package-license perl)))) - -(define-public perl-test-trap - (package - (name "perl-test-trap") - (version "0.3.2") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/EB/EBHANSSEN/" - "Test-Trap-v" version ".tar.gz")) - (sha256 - (base32 - "0jq54pkm4s61gk8gzxglix1ff9s0m9vi6bpfv7f63lb9qq4r76rr")))) - (build-system perl-build-system) - (native-inputs - `(("perl-module-build" ,perl-module-build) - ("perl-test-simple" ,perl-test-simple))) - (propagated-inputs - `(("perl-test-tester" ,perl-test-tester) - ("perl-data-dump" ,perl-data-dump))) - (home-page "http://search.cpan.org/dist/Test-Trap/") - (synopsis "Trap exit codes, exceptions, output, and so on") - (description "This module is primarily (but not exclusively) for use in -test scripts: A block eval configurable and extensible but by default trapping -STDOUT, STDERR, warnings, exceptions, would-be exit codes, and return values -from boxed blocks of test code.") - (license (package-license perl)))) - -(define-public perl-test-utf8 - (package - (name "perl-test-utf8") - (version "1.01") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/M/MA/MARKF/" - "Test-utf8-" version ".tar.gz")) - (sha256 - (base32 - "0yhvf735v334qqvp9zg7i66qyk6r4cbk5s2psv93d3fdd4bindzg")))) - (build-system perl-build-system) - (native-inputs - `(("perl-module-install" ,perl-module-install))) - (home-page "http://search.cpan.org/dist/Test-utf8/") - (synopsis "UTF-8 testing in Perl") - (description "This module is a collection of tests useful for dealing with -UTF-8 strings in Perl. This module has two types of tests: The validity tests -check if a string is valid and not corrupt, whereas the characteristics tests -will check that string has a given set of characteristics.") - (license (package-license perl)))) - -(define-public perl-test-warn - (package - (name "perl-test-warn") - (version "0.30") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/C/CH/CHORNY/" - "Test-Warn-" version ".tar.gz")) - (sha256 - (base32 - "0haf2ii7br5z0psmkvlvmx2z2q9qz1c70gx0969r378qjidmb5w1")))) - (build-system perl-build-system) - (propagated-inputs - `(("perl-sub-uplevel" ,perl-sub-uplevel))) - (home-page "http://search.cpan.org/dist/Test-Warn/") - (synopsis "Perl extension to test methods for warnings") - (description "This module provides a few convenience methods for testing -warning based code.") - (license (package-license perl)))) - -(define-public perl-test-warnings - (package - (name "perl-test-warnings") - (version "0.026") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" - "Test-Warnings-" version ".tar.gz")) - (sha256 - (base32 - "024srkwjckp15dxkni9lb1hc8bg4xwc52zz0iich8rv1nnqnhaxf")))) - (build-system perl-build-system) - (home-page "http://search.cpan.org/dist/Test-Warnings/") - (synopsis "Test for warnings and the lack of them") - (description "This module is intended to be used as a drop-in replacement -for Test::NoWarnings. It also adds an extra test, but runs this test before -done_testing calculates the test count, rather than after. It does this by -hooking into done_testing as well as via an END block. You can declare a -plan, or not, and things will still Just Work.") - (license (package-license perl)))) - -(define-public perl-test-without-module - (package - (name "perl-test-without-module") - (version "0.18") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/C/CO/CORION/" - "Test-Without-Module-" version ".tar.gz")) - (sha256 - (base32 - "0zwc2dk5srd02j4p049w77m89iw5nbff381rmhcbaz8x2w5kdhz2")))) - (build-system perl-build-system) - (home-page "http://search.cpan.org/dist/Test-Without-Module/") - (synopsis "Test fallback behaviour in absence of modules") - (description "This module allows you to deliberately hide modules from a -program even though they are installed. This is mostly useful for testing -modules that have a fallback when a certain dependency module is not -installed.") - (license (package-license perl)))) - -(define-public perl-test-writevariants - (package - (name "perl-test-writevariants") - (version "0.010") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/" - "Test-WriteVariants-" version ".tar.gz")) - (sha256 - (base32 - "0kklp05fj98yiq8znyfx9lx1vmjay2ypfb868qdwv3kf93m5zjwr")))) - (build-system perl-build-system) - (native-inputs - `(("perl-test-most" ,perl-test-most) - ("perl-test-directory" ,perl-test-directory))) - (propagated-inputs - `(("perl-data-tumbler" ,perl-data-tumbler) - ("perl-file-homedir" ,perl-file-homedir) - ("perl-module-pluggable" ,perl-module-pluggable))) - (home-page "http://search.cpan.org/dist/Test-WriteVariants/") - (synopsis "Dynamic generation of tests") - (description "The Test::WriteVariants module provides for the dynamic -generation of tests in nested combinations of contexts.") - (license (package-license perl)))) ;See LICENSE - -(define-public perl-test-yaml - (package - (name "perl-test-yaml") - (version "1.05") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/I/IN/INGY/" - "Test-YAML-" version ".tar.gz")) - (sha256 - (base32 - "079nayc0fp2fwjv8s2yr069bdffln699j6z3lqr5dpx1v2qg82ck")))) - (build-system perl-build-system) - (propagated-inputs - `(("perl-test-base" ,perl-test-base))) - (home-page "http://search.cpan.org/dist/Test-YAML/") - (synopsis "Testing module for YAML implementations") - (description "Test::YAML is a subclass of Test::Base with YAML specific -support.") - (license (package-license perl)))) - (define-public perl-text-aligner (package (name "perl-text-aligner") @@ -9796,37 +8694,6 @@ (define-public perl-file-find-object-rule interface to File::Find::Object.") (license (package-license perl)))) -(define-public perl-test-trailingspace - (package - (name "perl-test-trailingspace") - (version "0.0300") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-" - version - ".tar.gz")) - (sha256 - (base32 - "01slmrcjfq38mpdg3hlb7lnnbgsqbn26958y3hzx0zwrif40pigr")))) - (build-system perl-build-system) - (native-inputs - `(("perl-module-build" ,perl-module-build) - ("perl-file-find-object" ,perl-file-find-object) - ("perl-class-xsaccessor" ,perl-class-xsaccessor))) - (inputs - `(("perl-file-find-object-rule" ,perl-file-find-object-rule) - ("perl-text-glob" ,perl-text-glob) - ("perl-number-compare" ,perl-number-compare))) - (home-page - "http://search.cpan.org/dist/Test-TrailingSpace/") - (synopsis - "Test for trailing space in Perl source files") - (description "Test::TrailingSpace tests for trailing spaces -in Perl source files.") - (license x11))) - (define-public perl-libtime-parsedate (package (name "perl-libtime-parsedate") diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 1bfe6a7762..d4a0da09a6 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -47,6 +47,7 @@ (define-module (gnu packages terminals) #:use-module (gnu packages linux) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages qt) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index fef81c6931..67a1298bec 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -50,6 +50,7 @@ (define-module (gnu packages tex) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages qt) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 4a5f6b068a..22c48f0c6b 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -70,6 +70,7 @@ (define-module (gnu packages version-control) #:use-module (gnu packages web) #:use-module (gnu packages openstack) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages readline) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 6a90868467..dc9849eafe 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -90,6 +90,7 @@ (define-module (gnu packages web) #:use-module (gnu packages openstack) #:use-module (gnu packages base) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages python) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) @@ -97,7 +98,6 @@ (define-module (gnu packages web) #:use-module (gnu packages valgrind) #:use-module (gnu packages xml) #:use-module (gnu packages curl) - #:use-module (gnu packages perl) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index c4bd67117d..4f75de344c 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -40,6 +40,7 @@ (define-module (gnu packages xml) #:use-module (gnu packages compression) #:use-module (gnu packages gnupg) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages python) #:use-module (gnu packages tls) #:use-module (gnu packages web) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7910a5d026..8435a463b4 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -64,6 +64,7 @@ (define-module (gnu packages xorg) #:use-module (gnu packages ncurses) #:use-module (gnu packages pciutils) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages qt) -- cgit v1.2.3 From 1b2f753d9c73a5431ec1f5510449c480debf80ce Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 13 Nov 2017 23:24:11 +0100 Subject: gnu: Move web packages from python to python-web. This is in part to address . * gnu/packages/python.scm (python-httplib2, python2-httplib2) (python-sockjs-tornado, python2-sockjs-tornado) (python-flask-babel, python2-flask-babel) (python-html5lib, python2-html5lib) (python-html5lib-0.9, python2-html5lib-0.9) (python-html5-parser, python2-html5-parser) (python-webencodings, python2-webencodings) (python-openid, python2-openid, python-cssutils, python2-cssutils) (python-cssselect, python2-cssutils) (python-openid-cla, python2-openid-cla) (python-openid-teams, python2-openid-teams) (python-tornado, python2-tornado) (python-tornado-http-auth, python-terminado, python2-terminado) (python-webob, python2-webob, python-zope-event, python2-zope-event) (python-zope-interface, python2-zope-interface) (python-zope-exceptions, python2-zope-exceptions) (python-zope-testing, python2-zope-testing) (python-zope-testrunner, python2-zope-testrunner) (python-zope-i18nmessageid, python2-zope-i18nmessageid) (python-zope-schema, python2-zope-schema) (python-zope-configuration, python2-zope-configuration) (python-zope-proxy, python2-zope-proxy) (python-zope-location, python2-zope-location) (python-zope-security, python2-zope-security) (python-zope-component, python2-zope-component) (python-ndg-httpsclient, python2-ndg-httpsclient) (python-websocket-client, python2-websocket-client) (python-requests-toolbelt, python2-requests-toolbelt) (python-rauth, python2-rauth, python-urllib3, python2-urllib3) (awscli, python-wsgiproxy2, python2-wsgiproxy2) (python-pastedeploy, python2-pastedeploy) (python-webtest, python2-webtest, python-flask, python2-flask) (python-flast-wtf, python2-flask-wtf) (python-flask-multistatic, python2-flask-multistatic) (python-cookies, python2-cookies) (python-responses, python2-responses) (python-geventhttpclient, python2-geventhttpclient) (python-requests-oauthlib, python2-requests-oauthlib) (python-url, python2-url, python-cachecontrol, python2-cachecontrol) (python-betamax, python2-betamax) (python-betamax-matchers, python2-betamax-matchers) (python-s3transfer, python2-s3transfer) (python-flask-restful, python-flask-basicauth) (python-flask-sqlalchemy, python-flask-restplus) (python-flask-restful-swagger, python-htmlmin, python2-htmlmin) (python-flask-htmlmin, python2-flask-htmlmin) (python-flask-login, python2-flask-login) (python-oauth2client, python-flask-oidc) (python-webassets, python-cssmin, python2-cssmin) (python-elasticsearch, python2-elasticsearch) (python-flask-script, python2-flask-script) (python-flask-migrate, python2-flask-migrate) (python-genshi, python2-genshi) (python-flask-principal, python2-flask-principal) (python-flask-httpauth, python2-flask-httpauth) (python-uritemplate, python2-uritemplate): Move to... * gnu/packages/python-web.scm: ... here. New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/admin.scm, gnu/packages/backup.scm, gnu/packages/dav.scm, gnu/packages/django.scm, gnu/packages/docker.scm, gnu/packages/ebook.scm, gnu/packages/logging.scm, gnu/packages/mail.scm, gnu/packages/music.scm, gnu/packages/openstack.scm, gnu/packages/package-management.scm, gnu/packages/rdf.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/tryton.scm, gnu/packages/version-control.scm, gnu/packages/web-browsers.scm, gnu/packages/web.scm: Adjust accordingly. --- gnu/local.mk | 1 + gnu/packages/admin.scm | 2 +- gnu/packages/backup.scm | 1 + gnu/packages/dav.scm | 3 +- gnu/packages/django.scm | 3 +- gnu/packages/docker.scm | 3 +- gnu/packages/ebook.scm | 1 + gnu/packages/logging.scm | 1 + gnu/packages/mail.scm | 1 + gnu/packages/music.scm | 1 + gnu/packages/openstack.scm | 41 +- gnu/packages/package-management.scm | 1 + gnu/packages/python-web.scm | 2119 ++++++++++++++++++++++++++++++++++ gnu/packages/python.scm | 2173 ++--------------------------------- gnu/packages/rdf.scm | 1 + gnu/packages/tls.scm | 1 + gnu/packages/tor.scm | 1 + gnu/packages/tryton.scm | 1 + gnu/packages/version-control.scm | 1 + gnu/packages/web-browsers.scm | 1 + gnu/packages/web.scm | 1 + 21 files changed, 2214 insertions(+), 2144 deletions(-) create mode 100644 gnu/packages/python-web.scm (limited to 'gnu/packages/version-control.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 00d82ee4a1..459112fc57 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -341,6 +341,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/protobuf.scm \ %D%/packages/pv.scm \ %D%/packages/python.scm \ + %D%/packages/python-web.scm \ %D%/packages/tryton.scm \ %D%/packages/qt.scm \ %D%/packages/ragel.scm \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 30b5a1fb6a..43a72d7184 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -69,6 +69,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages texinfo) #:use-module (gnu packages groff) #:use-module (gnu packages pciutils) @@ -78,7 +79,6 @@ (define-module (gnu packages admin) #:use-module (gnu packages image) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages python) #:use-module (gnu packages man) #:use-module (gnu packages autotools) #:use-module (gnu packages gnome) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index c60d02d1e3..70dfb30c03 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -49,6 +49,7 @@ (define-module (gnu packages backup) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages rsync) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 5a780b9148..f06f232587 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -22,7 +22,8 @@ (define-module (gnu packages dav) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (gnu packages) - #:use-module (gnu packages python)) + #:use-module (gnu packages python) + #:use-module (gnu packages python-web)) (define-public radicale (package diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index f983b1aa10..229f0319f4 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -27,7 +27,8 @@ (define-module (gnu packages django) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages databases) - #:use-module (gnu packages python)) + #:use-module (gnu packages python) + #:use-module (gnu packages python-web)) (define-public python-django (package diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 3cfdb7ef55..f540417b4f 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -24,7 +24,8 @@ (define-module (gnu packages docker) #:use-module (guix git-download) #:use-module (guix build-system python) #:use-module (guix utils) - #:use-module (gnu packages python)) + #:use-module (gnu packages python) + #:use-module (gnu packages python-web)) (define-public python-docker-py (package diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 0eeee09054..8cf977cff3 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -44,6 +44,7 @@ (define-module (gnu packages ebook) #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages serialization) #:use-module (gnu packages tls) diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index 648a07e4c4..6f9056d8f2 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -30,6 +30,7 @@ (define-module (gnu packages logging) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages autotools)) (define-public log4cpp diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index c6ac2662b1..0b1f0e7dbf 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -81,6 +81,7 @@ (define-module (gnu packages mail) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages readline) #:use-module (gnu packages search) #:use-module (gnu packages texinfo) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index f5df440709..04a1c934a5 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -93,6 +93,7 @@ (define-module (gnu packages music) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) ;libsndfile #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 86d1ce9978..410a205849 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -21,6 +21,7 @@ (define-module (gnu packages openstack) #:use-module (gnu packages gnupg) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) @@ -249,46 +250,6 @@ (define-public python-os-testr (define-public python2-os-testr (package-with-python2 python-os-testr)) -(define-public python-requests-mock - (package - (name "python-requests-mock") - (version "1.3.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "requests-mock" version)) - (sha256 - (base32 - "0jr997dvk6zbmhvbpcv3rajrgag69mcsm1ai3w3rgk2jdh6rg1mx")))) - (build-system python-build-system) - (propagated-inputs - `(("python-requests" ,python-requests) - ("python-six" ,python-six))) - (native-inputs - `(("python-pbr" ,python-pbr) - ("python-discover" ,python-discover) - ("python-docutils" ,python-docutils) - ("python-fixtures" ,python-fixtures) - ("python-mock" ,python-mock) - ("python-sphinx" ,python-sphinx) - ("python-testrepository" ,python-testrepository) - ("python-testtools" ,python-testtools))) - (home-page "https://requests-mock.readthedocs.org/") - (synopsis "Mock out responses from the requests package") - (description - "This module provides a building block to stub out the HTTP requests -portions of your testing code.") - (properties `((python2-variant . ,(delay python2-requests-mock)))) - (license asl2.0))) - -(define-public python2-requests-mock - (package (inherit (package-with-python2 - (strip-python2-variant python-requests-mock))) - (arguments - `(#:python ,python-2 - ;; FIXME: 'subunit.run discover: error: no such option: --list' - #:tests? #f)))) - (define-public python-stevedore (package (name "python-stevedore") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 1242156dbf..85b6cd2699 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -53,6 +53,7 @@ (define-module (gnu packages package-management) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages patchutils) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages popt) #:use-module (gnu packages gnuzilla) #:use-module (gnu packages cpio) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm new file mode 100644 index 0000000000..d541b0f3fd --- /dev/null +++ b/gnu/packages/python-web.scm @@ -0,0 +1,2119 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Eric Dvorsak +;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2017 Christopher Baines +;;; Copyright © 2016 Danny Milosavljevic +;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge +;;; Copyright © 2016, 2017 Marius Bakke +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2017 Roel Janssen +;;; Copyright © 2016, 2017 Julien Lepiller +;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2014, 2017 Eric Bavier +;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2015 Cyril Roelandt +;;; Copyright © 2015, 2016, 2017 Leo Famulari +;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice +;;; Copyright © 2015, 2017 Ben Woodcroft +;;; Copyright © 2015, 2016 Christopher Allan Webber +;;; Copyright © 2017 Adriano Peluso +;;; Copyright © 2016 Dylan Jeffers +;;; Copyright © 2016 David Craven +;;; Copyright © 2017 Oleg Pykhalov +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages python-web) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages django) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages xml) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (srfi srfi-1)) + +(define-public python-httplib2 + (package + (name "python-httplib2") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "httplib2" version)) + (sha256 + (base32 + "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3")))) + (build-system python-build-system) + (home-page "https://github.com/jcgregorio/httplib2") + (synopsis "Comprehensive HTTP client library") + (description + "A comprehensive HTTP client library supporting many features left out of +other HTTP libraries.") + (license license:expat))) + +(define-public python2-httplib2 + (package-with-python2 python-httplib2)) + +(define-public python-sockjs-tornado + (package + (name "python-sockjs-tornado") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sockjs-tornado" version)) + (sha256 + (base32 + "16cff40nniqsyvda1pb2j3b4zwmrw7y2g1vqq78lp20xpmhnwwkd")))) + (build-system python-build-system) + (arguments + `(;; There are no tests, and running the test phase requires missing + ;; dependencies + #:tests? #f)) + (propagated-inputs + `(("python-tornado" ,python-tornado))) + (home-page "http://github.com/mrjoes/sockjs-tornado/") + (synopsis + "SockJS python server implementation on top of Tornado framework") + (description + "SockJS-tornado provides the server side counterpart to a SockJS client +library, through the Tornado framework. + +SockJS provides a low latency, full duplex, cross-domain communication channel +between a web browser and web server.") + (license license:expat))) + +(define-public python2-sockjs-tornado + (package-with-python2 python-sockjs-tornado)) + +(define-public python-flask-babel + (package + (name "python-flask-babel") + (version "0.11.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-Babel" version)) + (sha256 + (base32 + "16b80cipdba9xj3jlaiaq6wgrgpjb70w3j01jjy9hbp4k71kd6yj")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-babel" ,python-babel) + ("python-jinja2" ,python-jinja2) + ("python-pytz" ,python-pytz))) + (home-page "https://github.com/python-babel/flask-babel") + (synopsis "Add i18n/l10n support to Flask applications") + (description "This package implements internationalization and localization +support for Flask. This is based on the Python babel module as well as pytz - +both of which are installed automatically if you install this library.") + (license license:bsd-3))) + +(define-public python2-flask-babel + (package-with-python2 python-flask-babel)) + +(define-public python-html5lib + (package + (name "python-html5lib") + (version "1.0b10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "html5lib" version)) + (sha256 + (base32 + "1yd068a5c00wd0ajq0hqimv7fd82lhrw0w3s01vbhy9bbd6xapqd")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-webencodings" ,python-webencodings))) + (arguments + `(#:test-target "check")) + (home-page + "https://github.com/html5lib/html5lib-python") + (synopsis + "Python HTML parser based on the WHATWG HTML specifcation") + (description + "Html5lib is an HTML parser based on the WHATWG HTML specifcation +and written in Python.") + (license license:expat))) + +(define-public python2-html5lib + (package-with-python2 python-html5lib)) + +;; Needed for python-bleach, a dependency of python-notebook +(define-public python-html5lib-0.9 + (package + (inherit python-html5lib) + (version "0.999") + (source + (origin + (method url-fetch) + (uri (pypi-uri "html5lib" version)) + (sha256 + (base32 + "17n4zfsj6ynmbwdwviywmj8r6nzr3xvfx2zs0xhndmvm51z7z263")))))) + +(define-public python2-html5lib-0.9 + (package-with-python2 python-html5lib-0.9)) + +(define-public python-html5-parser + (package + (name "python-html5-parser") + (version "0.4.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "html5-parser" version)) + (sha256 + (base32 + "1d8sxhl41ffh7qlk7wlsy17xw6slzx5v1yna9s72wx5qrpaa3wxr")))) + (build-system python-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libxml2" ,libxml2))) + (propagated-inputs + `(("python-lxml" ,python-lxml) + ("python-beautifulsoup4" ,python-beautifulsoup4))) + (home-page "https://html5-parser.readthedocs.io") + (synopsis "Fast C-based HTML5 parsing for Python") + (description "This package provides a fast implementation of the HTML5 +parsing spec for Python. Parsing is done in C using a variant of the gumbo +parser. The gumbo parse tree is then transformed into an lxml tree, also in +C, yielding parse times that can be a thirtieth of the html5lib parse times.") + ;; src/as-python-tree.[c|h] are licensed GPL3. The other files + ;; indicate ASL2.0, including the LICENSE file for the whole project. + (license (list license:asl2.0 license:gpl3)))) + +(define-public python2-html5-parser + (package-with-python2 python-html5-parser)) + +(define-public python-webencodings + (package + (name "python-webencodings") + (version "0.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "webencodings" version)) + (sha256 + (base32 + "015rw7662lkpb9aqiqah2hbizk6w531badqwjpz41rr47glmxid5")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "py.test" "-v" "webencodings/tests.py"))))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/SimonSapin/python-webencodings") + (synopsis "Character encoding aliases for legacy web content") + (description + "In order to be compatible with legacy web content when interpreting +something like @code{Content-Type: text/html; charset=latin1}, tools need +to use a particular set of aliases for encoding labels as well as some +overriding rules. For example, @code{US-ASCII} and @code{iso-8859-1} on +the web are actually aliases for @code{windows-1252}, and an @code{UTF-8} +or @code{UTF-16} BOM takes precedence over any other encoding declaration. +The WHATWG @url{https://encoding.spec.whatwg.org/,Encoding} standard +defines all such details so that implementations do not have to +reverse-engineer each other. + +This module implements the Encoding standard and has encoding labels and +BOM detection, but the actual implementation for encoders and decoders +is Python’s.") + (license license:bsd-3))) + +(define-public python2-webencodings + (package-with-python2 python-webencodings)) + +(define-public python-openid + (package + (name "python-openid") + (version "3.0.10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python3-openid" version)) + (sha256 + (base32 + "1x3nh3fycqfn43jp5j5pb4q4y2jxp4mdka4absaa3bc0078qd758")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "./admin/runtests"))))))) + (properties `((python2-variant . ,(delay python2-openid)))) + (propagated-inputs + `(("python-defusedxml" ,python-defusedxml))) + (native-inputs + `(("python-psycopg2" ,python-psycopg2) + ("python-django" ,python-django))) + (home-page "https://github.com/necaris/python3-openid") + (synopsis "OpenID support for servers and consumers") + (description "This library provides OpenID authentication for Python, both +for clients and servers.") + (license license:asl2.0))) + +(define-public python2-openid + (package + (name "python2-openid") + (version "2.2.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-openid" version)) + (sha256 + (base32 + "1vvhxlghjan01snfdc4k7ykd80vkyjgizwgg9bncnin8rqz1ricj")))) + (build-system python-build-system) + (arguments + ;; Python 3 support is in `python3-openid`, a separate package. + `(#:python ,python-2)) + (home-page "https://github.com/openid/python-openid") + (synopsis "OpenID support for servers and consumers") + (description "This library provides OpenID authentication for Python, both +for clients and servers.") + (license license:asl2.0))) + +(define-public python-cssutils + (package + (name "python-cssutils") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cssutils" version)) + (sha256 + (base32 + "0qwha9x1wml2qmipbcz03gndnlwhzrjdvw9i09si247a90l8p8fq")))) + (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) ; for unpacking the source + (arguments + `(#:tests? #f)) ;tests require python-pbr < 1.7.0 + (home-page "http://cthedot.de/cssutils/") + (synopsis + "CSS Cascading Style Sheets library for Python") + (description + "Cssutils is a Python package for parsing and building CSS +Cascading Style Sheets. Currently it provides a DOM only and no rendering +options.") + (license license:lgpl3+))) + +(define-public python2-cssutils + (package-with-python2 python-cssutils)) + +(define-public python-cssselect + (package + (name "python-cssselect") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cssselect" version)) + (sha256 + (base32 + "1xg6gbva1yswghiycmgincv6ab4bn7hpm720ndbj40h8xycmnfvi")))) + (build-system python-build-system) + (arguments + ;; tests fail with message + ;; AttributeError: 'module' object has no attribute 'tests' + `(#:tests? #f)) + (home-page + "https://pythonhosted.org/cssselect/") + (synopsis + "CSS3 selector parser and translator to XPath 1.0") + (description + "Cssselect ia a Python module that parses CSS3 Selectors and translates +them to XPath 1.0 expressions. Such expressions can be used in lxml or +another XPath engine to find the matching elements in an XML or HTML document.") + (license license:bsd-3))) + +(define-public python2-cssselect + (package-with-python2 python-cssselect)) + +(define-public python-openid-cla + (package + (name "python-openid-cla") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-openid-cla" version)) + (sha256 + (base32 + "102hy2qisvjxp5s0v9lvwqi4f2dk0dhns40vjgn008yxc7k0h3cr")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. + (home-page "https://github.com/puiterwijk/python-openid-cla/") + (synopsis "Implementation of the OpenID CLA extension for python-openid") + (description "@code{openid-cla} is an implementation of the OpenID +contributor license agreement extension for python-openid.") + (license license:bsd-3))) + +(define-public python2-openid-cla + (package-with-python2 python-openid-cla)) + +(define-public python-openid-teams + (package + (name "python-openid-teams") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-openid-teams" version)) + (sha256 + (base32 + "05zrh78alav24rxkbqlpbad6d3x2nljk6z6j7kflxf3vdqa7w969")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. + (home-page "https://github.com/puiterwijk/python-openid-teams/") + (synopsis "Implementation of the OpenID teams extension for python-openid") + (description + "@code{openid-teams} is an implementation of the OpenID +teams extension for python-openid.") + (license license:bsd-3))) + +(define-public python2-openid-teams + (package-with-python2 python-openid-teams)) + +(define-public python-tornado + (package + (name "python-tornado") + (version "4.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tornado" version)) + (sha256 + (base32 "1zbkgcdfq81k298awrm8p0xwbwwn2p3nbizdglzfbkskhai082fv")))) + (build-system python-build-system) + (arguments + '(;; FIXME: Two tests error out with: + ;; AssertionError: b'Error in atexit._run_exitfuncs:\nFileNotF[44 chars]ry\n' != b'' + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; ;; 'setup.py test' hits an AssertionError on BSD-specific + ;; ;; "tornado/platform/kqueue.py". This is the supported method: + ;; (zero? (system* "python" "-m" "tornado.test"))))) + #:tests? #f)) + (native-inputs + `(("python-certifi" ,python-certifi))) + (propagated-inputs + `(("python-backports-abc" ,python-backports-abc))) + (home-page "http://www.tornadoweb.org/") + (synopsis "Python web framework and asynchronous networking library") + (description + "Tornado is a Python web framework and asynchronous networking library, +originally developed at FriendFeed. By using non-blocking network I/O, +Tornado can scale to tens of thousands of open connections, making it ideal +for long polling, WebSockets, and other applications that require a long-lived +connection to each user.") + (license license:asl2.0) + (properties `((python2-variant . ,(delay python2-tornado)))))) + +(define-public python2-tornado + (let ((tornado (package-with-python2 (strip-python2-variant python-tornado)))) + (package (inherit tornado) + (propagated-inputs + `(("python2-backport-ssl-match-hostname" + ,python2-backport-ssl-match-hostname) + ("python2-singledispatch" ,python2-singledispatch) + ,@(package-propagated-inputs tornado)))))) + +(define-public python-tornado-http-auth + (package + (name "python-tornado-http-auth") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tornado-http-auth" version)) + (sha256 + (base32 + "0znrgqd7k2s4ia474xizi6h3061zj4sn5n6cq76bkwl3wwshifn5")))) + (build-system python-build-system) + (propagated-inputs + `(("python-tornado" ,python-tornado))) + (home-page + "https://github.com/gvalkov/tornado-http-auth") + (synopsis + "Digest and basic authentication module for Tornado") + (description + "Provides support for adding authentication to services using the Tornado +web framework, either via the basic or digest authentication schemes.") + (license license:asl2.0))) + +(define-public python-terminado + (package + (name "python-terminado") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "terminado" version)) + (sha256 + (base32 + "09h1kwi86g5mrk14s4pgbhshd602zry29lnpxamcqz864kva22rc")))) + (build-system python-build-system) + (propagated-inputs + `(("python-tornado" ,python-tornado) + ("python-ptyprocess" ,python-ptyprocess))) + (native-inputs + `(("python-nose" ,python-nose))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "nosetests"))))))) + (home-page "https://github.com/takluyver/terminado") + (synopsis "Terminals served to term.js using Tornado websockets") + (description "This package provides a Tornado websocket backend for the +term.js Javascript terminal emulator library.") + (license license:bsd-2) + (properties `((python2-variant . ,(delay python2-terminado)))))) + +(define-public python2-terminado + (let ((terminado (package-with-python2 (strip-python2-variant python-terminado)))) + (package (inherit terminado) + (propagated-inputs + `(("python2-backport-ssl-match-hostname" + ,python2-backport-ssl-match-hostname) + ,@(package-propagated-inputs terminado)))))) + +(define-public python-webob + (package + (name "python-webob") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "WebOb" version)) + (sha256 + (base32 + "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "http://webob.org/") + (synopsis "WSGI request and response object") + (description + "WebOb provides wrappers around the WSGI request environment, and an +object to help create WSGI responses.") + (license license:expat))) + +(define-public python2-webob + (package-with-python2 python-webob)) + +(define-public python-zope-event + (package + (name "python-zope-event") + (version "4.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.event/zope.event-" version ".tar.gz")) + (sha256 + (base32 + "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw")))) + (build-system python-build-system) + (home-page "http://pypi.python.org/pypi/zope.event") + (synopsis "Event publishing system for Python") + (description "Zope.event provides an event publishing API, intended for +use by applications which are unaware of any subscribers to their events. It +is a simple event-dispatching system on which more sophisticated event +dispatching systems can be built.") + (license license:zpl2.1))) + +(define-public python2-zope-event + (package-with-python2 python-zope-event)) + +(define-public python-zope-interface + (package + (name "python-zope-interface") + (version "4.1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.interface/zope.interface-" version ".tar.gz")) + (sha256 + (base32 + "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if")))) + (build-system python-build-system) + (native-inputs + `(("python-zope-event" ,python-zope-event))) + (home-page "https://github.com/zopefoundation/zope.interface") + (synopsis "Python implementation of the \"design by contract\" +methodology") + (description "Zope.interface provides an implementation of \"object +interfaces\" for Python. Interfaces are a mechanism for labeling objects as +conforming to a given API or contract.") + (license license:zpl2.1))) + +(define-public python2-zope-interface + (package-with-python2 python-zope-interface)) + +(define-public python-zope-exceptions + (package + (name "python-zope-exceptions") + (version "4.0.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.exceptions/zope.exceptions-" + version ".tar.gz")) + (sha256 + (base32 + "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; circular dependency with zope.testrunner + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://cheeseshop.python.org/pypi/zope.exceptions") + (synopsis "Zope exceptions") + (description "Zope.exceptions provides general-purpose exception types +that have uses outside of the Zope framework.") + (license license:zpl2.1))) + +(define-public python2-zope-exceptions + (package-with-python2 python-zope-exceptions)) + +(define-public python-zope-testing + (package + (name "python-zope-testing") + (version "4.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.testing/zope.testing-" version ".tar.gz")) + (sha256 + (base32 + "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove pre-compiled .pyc files backup files from source. + (for-each delete-file (find-files "." "(\\.pyc|~)$")) + #t)))) + (build-system python-build-system) + (native-inputs + `(("python-zope-exceptions" ,python-zope-exceptions))) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.testing") + (synopsis "Zope testing helpers") + (description "Zope.testing provides a number of testing utilities for HTML +forms, HTTP servers, regular expressions, and more.") + (license license:zpl2.1))) + +(define-public python2-zope-testing + (package-with-python2 python-zope-testing)) + +(define-public python-zope-testrunner + (package + (name "python-zope-testrunner") + (version "4.4.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.testrunner/zope.testrunner-" + version ".zip")) + (sha256 + (base32 + "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. + (native-inputs + `(("python-six" ,python-six) + ;("python-zope-interface" ,python-zope-interface) + ("python-zope-exceptions" ,python-zope-exceptions) + ("python-zope-testing" ,python-zope-testing) + ("unzip" ,unzip))) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.testrunner") + (synopsis "Zope testrunner script") + (description "Zope.testrunner provides a script for running Python +tests.") + (license license:zpl2.1))) + +(define-public python2-zope-testrunner + (let ((base (package-with-python2 python-zope-testrunner))) + (package + (inherit base) + (native-inputs + (append (package-native-inputs base) + `(("python2-subunit" ,python2-subunit) + ("python2-mimeparse" ,python2-mimeparse))))))) + +(define-public python-zope-i18nmessageid + (package + (name "python-zope-i18nmessageid") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/z" + "/zope.i18nmessageid/zope.i18nmessageid-" + version ".tar.gz")) + (sha256 + (base32 + "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml")))) + (build-system python-build-system) + (home-page "http://pypi.python.org/pypi/zope.i18nmessageid") + (synopsis "Message identifiers for internationalization") + (description "Zope.i18nmessageid provides facilities for declaring +internationalized messages within program source text.") + (license license:zpl2.1))) + +(define-public python2-zope-i18nmessageid + (package-with-python2 python-zope-i18nmessageid)) + +(define-public python-zope-schema + (package + (name "python-zope-schema") + (version "4.4.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.schema/zope.schema-" version ".tar.gz")) + (sha256 + (base32 + "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.event. + (propagated-inputs + `(("python-zope-event" ,python-zope-event) + ("python-zope-exceptions", python-zope-exceptions) + ("python-zope-interface" ,python-zope-interface))) + (native-inputs + `(("python-zope-testing" ,python-zope-testing) + ("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) + (home-page "http://pypi.python.org/pypi/zope.schema") + (synopsis "Zope data schemas") + (description "Zope.scheme provides extensions to zope.interface for +defining data schemas.") + (license license:zpl2.1))) + +(define-public python2-zope-schema + (package-with-python2 python-zope-schema)) + +(define-public python-zope-configuration + (package + (name "python-zope-configuration") + (version "4.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.configuration/zope.configuration-" + version ".tar.gz")) + (sha256 + (base32 + "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. + (propagated-inputs + `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-schema" ,python-zope-schema))) + (home-page "http://pypi.python.org/pypi/zope.configuration") + (synopsis "Zope Configuration Markup Language") + (description "Zope.configuration implements ZCML, the Zope Configuration +Markup Language.") + (license license:zpl2.1))) + +(define-public python2-zope-configuration + (package-with-python2 python-zope-configuration)) + +(define-public python-zope-proxy + (package + (name "python-zope-proxy") + (version "4.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.proxy/zope.proxy-" version ".tar.gz")) + (sha256 + (base32 + "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.proxy") + (synopsis "Generic, transparent proxies") + (description "Zope.proxy provides generic, transparent proxies for Python. +Proxies are special objects which serve as mostly-transparent wrappers around +another object, intervening in the apparent behavior of the wrapped object +only when necessary to apply the policy (e.g., access checking, location +brokering, etc.) for which the proxy is responsible.") + (license license:zpl2.1))) + +(define-public python2-zope-proxy + (package-with-python2 python-zope-proxy)) + +(define-public python-zope-location + (package + (name "python-zope-location") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.location/zope.location-" version ".tar.gz")) + (sha256 + (base32 + "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. + (propagated-inputs + `(("python-zope-proxy" ,python-zope-proxy) + ("python-zope-schema" ,python-zope-schema))) + (home-page "http://pypi.python.org/pypi/zope.location/") + (synopsis "Zope location library") + (description "Zope.location implements the concept of \"locations\" in +Zope3, which are are special objects that have a structural location.") + (license license:zpl2.1))) + +(define-public python2-zope-location + (package-with-python2 python-zope-location)) + +(define-public python-zope-security + (package + (name "python-zope-security") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.security/zope.security-" version ".tar.gz")) + (sha256 + (base32 + "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.testrunner. + (propagated-inputs + `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-proxy" ,python-zope-proxy) + ("python-zope-schema" ,python-zope-schema))) + (native-inputs + `(("python-six" ,python-six) + ("python-zope-component" ,python-zope-component) + ("python-zope-configuration" ,python-zope-configuration) + ("python-zope-location" ,python-zope-location) + ("python-zope-testrunner" ,python-zope-testrunner) + ("python-zope-testing" ,python-zope-testing))) + (home-page "http://pypi.python.org/pypi/zope.security") + (synopsis "Zope security framework") + (description "Zope.security provides a generic mechanism to implement +security policies on Python objects.") + (license license:zpl2.1))) + +(define-public python2-zope-security + (let ((zope-security (package-with-python2 python-zope-security))) + (package (inherit zope-security) + (propagated-inputs + `(("python2-zope-testrunner" ,python2-zope-testrunner) + ,@(alist-delete + "python-zope-testrunner" + (package-propagated-inputs zope-security))))))) + +(define-public python-zope-component + (package + (name "python-zope-component") + (version "4.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "zope.component" version)) + (sha256 + (base32 + "1hlvzwj1kcfz1qms1dzhwsshpsf38z9clmyksb1gh41n8k3kchdv")))) + (build-system python-build-system) + (arguments + ;; Skip tests due to circular dependency with python-zope-security. + '(#:tests? #f)) + (native-inputs + `(("python-zope-testing" ,python-zope-testing))) + (propagated-inputs + `(("python-zope-event" ,python-zope-event) + ("python-zope-interface" ,python-zope-interface) + ("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-configuration" ,python-zope-configuration))) + (home-page "https://github.com/zopefoundation/zope.component") + (synopsis "Zope Component Architecture") + (description "Zope.component represents the core of the Zope Component +Architecture. Together with the zope.interface package, it provides +facilities for defining, registering and looking up components.") + (license license:zpl2.1))) + +(define-public python2-zope-component + (package-with-python2 python-zope-component)) + +(define-public python-ndg-httpsclient + (package + (name "python-ndg-httpsclient") + (version "0.4.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "ndg_httpsclient" version)) + (sha256 + (base32 + "1b5qirv46v4dpnmfqviwq42mdwfcby4dxmz0i41wad2337pqf2aq")))) + (build-system python-build-system) + (arguments + '(;; The tests appear to require networking. + #:tests? #f)) + (propagated-inputs + `(("python-pyopenssl" ,python-pyopenssl))) + (synopsis "HTTPS support for Python's httplib and urllib2") + (description "This is a HTTPS client implementation for httplib and urllib2 +based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation +over the default provided with Python and importantly enables full verification +of the SSL peer.") + (home-page "https://github.com/cedadev/ndg_httpsclient/") + (license license:bsd-3))) + +;; python2-openssl requires special care, so package-with-python2 is +;; insufficient. +(define-public python2-ndg-httpsclient + (package (inherit python-ndg-httpsclient) + (name "python2-ndg-httpsclient") + (arguments `(#:python ,python-2)) + (propagated-inputs + `(("python2-pyopenssl" ,python2-pyopenssl))))) + +(define-public python-websocket-client + (package + (name "python-websocket-client") + (version "0.37.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "websocket_client" version)) + (sha256 + (base32 + "0h9glp1jll3z76ly3kg08aqgxqk0a68p4zi9yn50353bh5nj92v7")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/liris/websocket-client") + (synopsis "WebSocket client for Python") + (description "The Websocket-client module provides the low level APIs for +WebSocket usage in Python programs.") + (license license:lgpl2.1+))) + +(define-public python2-websocket-client + (package-with-python2 python-websocket-client)) + +(define-public python-requests-mock + (package + (name "python-requests-mock") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "requests-mock" version)) + (sha256 + (base32 + "0jr997dvk6zbmhvbpcv3rajrgag69mcsm1ai3w3rgk2jdh6rg1mx")))) + (build-system python-build-system) + (propagated-inputs + `(("python-requests" ,python-requests) + ("python-six" ,python-six))) + (native-inputs + `(("python-pbr" ,python-pbr) + ("python-discover" ,python-discover) + ("python-docutils" ,python-docutils) + ("python-fixtures" ,python-fixtures) + ("python-mock" ,python-mock) + ("python-sphinx" ,python-sphinx) + ("python-testrepository" ,python-testrepository) + ("python-testtools" ,python-testtools))) + (home-page "https://requests-mock.readthedocs.org/") + (synopsis "Mock out responses from the requests package") + (description + "This module provides a building block to stub out the HTTP requests +portions of your testing code.") + (properties `((python2-variant . ,(delay python2-requests-mock)))) + (license license:asl2.0))) + +(define-public python2-requests-mock + (package (inherit (package-with-python2 + (strip-python2-variant python-requests-mock))) + (arguments + `(#:python ,python-2 + ;; FIXME: 'subunit.run discover: error: no such option: --list' + #:tests? #f)))) + +(define-public python-requests-toolbelt + (package + (name "python-requests-toolbelt") + (version "0.8.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "requests-toolbelt" version)) + (sha256 + (base32 + "1dc7l42i4080r8i4m9fj51jx367lqkai170vrv7wd93gdj9k39gn")))) + (build-system python-build-system) + (native-inputs + `(("python-betamax" ,python-betamax) + ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-requests" ,python-requests))) + (synopsis "Extensions to python-requests") + (description "This is a toolbelt of useful classes and functions to be used +with python-requests.") + (home-page "https://github.com/sigmavirus24/requests-toolbelt") + (license license:asl2.0))) + +(define-public python2-requests-toolbelt + (package-with-python2 python-requests-toolbelt)) + +(define-public python-rauth + (package + (name "python-rauth") + (version "0.7.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rauth" version)) + (sha256 + (base32 + "02kv8w8l98ky223avyq7vw7x1f2ya9chrm59r77ylq45qb0xnk2j")))) + (build-system python-build-system) + (arguments + `(#:test-target "check")) + (propagated-inputs + `(("python-requests" ,python-requests))) + (home-page "https://github.com/litl/rauth") + (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly") + (description + "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also +provides service wrappers for convenient connection initialization and +authenticated session objects providing things like keep-alive.") + (license license:expat) + (properties `((python2-variant . ,(delay python2-rauth)))))) + +(define-public python2-rauth + (let ((base (package-with-python2 (strip-python2-variant python-rauth)))) + (package + (inherit base) + (native-inputs `(("python2-unittest2" ,python2-unittest2) + ,@(package-native-inputs base)))))) + +(define-public python-urllib3 + (package + (name "python-urllib3") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "urllib3" version)) + (sha256 + (base32 + "1wb8aqnq53vzh2amrv8kc66f3h6fx217y0q62y6n30a64p2yqmam")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) + (native-inputs + `(;; some packages for tests + ("python-nose" ,python-nose) + ("python-mock" ,python-mock) + ("python-tornado" ,python-tornado))) + (propagated-inputs + `(;; These 5 inputs are used to build urrlib3[secure] + ("python-certifi" ,python-certifi) + ("python-cryptography" ,python-cryptography) ; + ("python-idna" ,python-idna) + ("python-ipaddress" ,python-ipaddress) + ("python-pyopenssl" ,python-pyopenssl))) + (home-page "https://urllib3.readthedocs.org/") + (synopsis "HTTP library with thread-safe connection pooling") + (description + "Urllib3 supports features left out of urllib and urllib2 libraries. It +can reuse the same socket connection for multiple requests, it can POST files, +supports url redirection and retries, and also gzip and deflate decoding.") + (license license:expat))) + +(define-public python2-urllib3 + (package-with-python2 python-urllib3)) + +(define-public awscli + (package + (name "awscli") + (version "1.11.164") + (source + (origin + (method url-fetch) + (uri (pypi-uri name version)) + (sha256 + (base32 + "05r8cw7i7ff6barpmyxxk3i52gzb1xyxwj8isynmiyqlmk3c9r8w")))) + (build-system python-build-system) + (propagated-inputs + `(("python-colorama" ,python-colorama) + ("python-botocore" ,python-botocore) + ("python-s3transfer" ,python-s3transfer) + ("python-docutils" ,python-docutils) + ("python-pyyaml" ,python-pyyaml) + ("python-rsa" ,python-rsa))) + (arguments + ;; FIXME: The 'pypi' release does not contain tests. + '(#:tests? #f)) + (home-page "https://aws.amazon.com/cli/") + (synopsis "Command line client for AWS") + (description "AWS CLI provides a unified command line interface to the +Amazon Web Services (AWS) API.") + (license license:asl2.0))) + +(define-public python-wsgiproxy2 + (package + (name "python-wsgiproxy2") + (version "0.4.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "WSGIProxy2" version ".zip")) + (sha256 + (base32 + "13kf9bdxrc95y9vriaz0viry3ah11nz4rlrykcfvb8nlqpx3dcm4")))) + (build-system python-build-system) + (arguments + '(;; Wsgiproxy2's test suite requires Restkit, which does not yet fully + ;; support Python 3: + ;; https://github.com/benoitc/restkit/issues/140 + #:tests? #f)) + (native-inputs + `(("unzip" ,unzip) + ("python-nose" ,python-nose) + ("python-coverage" ,python-coverage))) + (propagated-inputs + `(("python-six" ,python-six) + ("python-webob" ,python-webob))) + (home-page + "https://github.com/gawel/WSGIProxy2/") + (synopsis "WSGI Proxy with various http client backends") + (description "WSGI turns HTTP requests into WSGI function calls. +WSGIProxy turns WSGI function calls into HTTP requests. +It also includes code to sign requests and pass private data, +and to spawn subprocesses to handle requests.") + (license license:expat))) + +(define-public python2-wsgiproxy2 + (package-with-python2 python-wsgiproxy2)) + +(define-public python-pastedeploy + (package + (name "python-pastedeploy") + (version "1.5.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PasteDeploy" version)) + (sha256 + (base32 + "1jz3m4hq8v6hyhfjz9425nd3nvn52cvbfipdcd72krjmla4qz1fm")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "http://pythonpaste.org/deploy/") + (synopsis + "Load, configure, and compose WSGI applications and servers") + (description + "This tool provides code to load WSGI applications and servers from URIs; +these URIs can refer to Python Eggs for INI-style configuration files. Paste +Script provides commands to serve applications based on this configuration +file.") + (license license:expat))) + +(define-public python2-pastedeploy + (package-with-python2 python-pastedeploy)) + +(define-public python-webtest + (package + (name "python-webtest") + (version "2.0.20") + (source + (origin + (method url-fetch) + (uri (pypi-uri "WebTest" version)) + (sha256 + (base32 + "0bv0qhdjakdsdgj4sk21gnpp8xp8bga4x03p6gjb83ihrsb7n4xv")))) + (build-system python-build-system) + (arguments + `(;; Unfortunately we have to disable tests! + ;; This release of WebTest is pinned to python-nose < 1.3, + ;; but older versions of python-nose are plagued with the following + ;; bug(s), which rears its ugly head during test execution: + ;; https://github.com/nose-devs/nose/issues/759 + ;; https://github.com/nose-devs/nose/pull/811 + #:tests? #f)) + ;; Commented out code is no good, but in this case, once tests + ;; are ready to be enabled again, we should put the following + ;; in place: + ;; (native-inputs + ;; `(("python-nose" ,python-nose) ; technially < 1.3, + ;; ; but see above comment + ;; ("python-coverage" ,python-coverage) + ;; ("python-mock" ,python-mock) + ;; ("python-pastedeploy" ,python-pastedeploy) + ;; ("python-wsgiproxy2" ,python-wsgiproxy2) + ;; ("python-pyquery" ,python-pyquery))) + (propagated-inputs + `(("python-waitress" ,python-waitress) + ("python-webob" ,python-webob) + ("python-six" ,python-six) + ("python-beautifulsoup4" ,python-beautifulsoup4))) + (home-page "http://webtest.pythonpaste.org/") + (synopsis "Helper to test WSGI applications") + (description "Webtest allows you to test your Python web applications +without starting an HTTP server. It supports anything that supports the +minimum of WSGI.") + (license license:expat))) + +(define-public python2-webtest + (package-with-python2 python-webtest)) + +(define-public python-flask + (package + (name "python-flask") + (version "0.11.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "Flask" version)) + (sha256 + (base32 + "03kbfll4sj3v5z7r31c7bhfpi11r1np076d4p1k2kg4yzcmkywdl")))) + (build-system python-build-system) + (propagated-inputs + `(("python-itsdangerous" ,python-itsdangerous) + ("python-jinja2" ,python-jinja2) + ("python-click" ,python-click) + ("python-werkzeug" ,python-werkzeug))) + (home-page "https://github.com/mitsuhiko/flask/") + (synopsis "Microframework based on Werkzeug, Jinja2 and good intentions") + (description "Flask is a micro web framework based on the Werkzeug toolkit +and Jinja2 template engine. It is called a micro framework because it does not +presume or force a developer to use a particular tool or library.") + (license license:bsd-3))) + +(define-public python2-flask + (package-with-python2 python-flask)) + +(define-public python-flask-wtf + (package + (name "python-flask-wtf") + (version "0.13.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-WTF" version)) + (sha256 + (base32 + "04l5743j2dici46038sqlzvf0xzpg8rf7s9ld2x24xv7f4idg990")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'drop-failing-test + (lambda _ + ;; FIXME: This file tries resolving an external server, which + ;; fails. Try to patch out the offending section instead of + ;; deleting the whole thing. + (delete-file "tests/test_recaptcha.py") + #t))))) + (propagated-inputs + `(("python-flask-babel" ,python-flask-babel) + ("python-babel" ,python-babel) + ("python-wtforms" ,python-wtforms))) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "https://github.com/lepture/flask-wtf") + (synopsis "Simple integration of Flask and WTForms") + (description "Flask-WTF integrates Flask and WTForms, including CSRF, file +upload, and reCAPTCHA.") + (license license:bsd-3))) + +(define-public python2-flask-wtf + (package-with-python2 python-flask-wtf)) + +(define-public python-flask-multistatic + (package + (name "python-flask-multistatic") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-multistatic" version)) + (sha256 + (base32 + "0p4v50rwv64wcd0zlq7rzl4waprwr4hj19s3cgf1isywa7jcisgm")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask))) + (home-page "https://pagure.io/flask-multistatic") + (synopsis "Flask plugin to allow overriding static files") + (description "@code{flask-multistatic} is a flask plugin that adds support +for overriding static files.") + (license license:gpl3+))) + +(define-public python2-flask-multistatic + (package-with-python2 python-flask-multistatic)) + +(define-public python-cookies + (package + (name "python-cookies") + (version "2.2.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "cookies" version)) + (sha256 + (base32 + "13pfndz8vbk4p2a44cfbjsypjarkrall71pgc97glk5fiiw9idnn")))) + (build-system python-build-system) + (arguments + `(;; test are broken: https://gitlab.com/sashahart/cookies/issues/3 + #:tests? #f)) + (native-inputs + `(("python-pytest" ,python2-pytest))) + (synopsis "HTTP cookie parser and renderer") + (description "A RFC 6265-compliant HTTP cookie parser and renderer in +Python.") + (home-page "https://gitlab.com/sashahart/cookies") + (license license:expat))) + +(define-public python2-cookies + (package-with-python2 python-cookies)) + +(define-public python-responses + (package + (name "python-responses") + (version "0.5.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "responses" version)) + (sha256 + (base32 + "1spcfxixyk9k7pk82jm6zqkwk031s95lh8q0mz7539jrb7269bcc")))) + (build-system python-build-system) + (arguments + `(;; Test suite is not distributed: + ;; https://github.com/getsentry/responses/issues/38 + #:tests? #f)) + (native-inputs + `(("python-mock" ,python-mock))) + (propagated-inputs + `(("python-requests" ,python-requests) + ("python-cookies" ,python-cookies) + ("python-six" ,python-six))) + (home-page "https://github.com/getsentry/responses") + (synopsis "Utility for mocking out the `requests` Python library") + (description "A utility library for mocking out the `requests` Python +library.") + (license license:asl2.0))) + +(define-public python2-responses + (package-with-python2 python-responses)) + +(define-public python-geventhttpclient + (package + (name "python-geventhttpclient") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "geventhttpclient" version)) + (sha256 + (base32 + "07d0q3wzmml75227r6y6mrl5a0zpf4v9gj0ni5rhbyzmaj4az1xx")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete pre-compiled files. + (for-each delete-file (find-files "src/geventhttpclient" + ".*\\.pyc")) + #t)))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-network-tests + (lambda _ + (delete-file "src/geventhttpclient/tests/test_client.py") + #t)) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (zero? (system* "py.test" "src/geventhttpclient/tests" "-v"))))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-certifi" ,python-certifi) + ("python-gevent" ,python-gevent) + ("python-six" ,python-six))) + (home-page "https://github.com/gwik/geventhttpclient") + (synopsis "HTTP client library for gevent") + (description "@code{python-geventhttpclient} is a high performance, +concurrent HTTP client library for python using @code{gevent}.") + (license license:expat))) + +(define-public python2-geventhttpclient + (package-with-python2 python-geventhttpclient)) + +(define-public python-requests-oauthlib + (package + (name "python-requests-oauthlib") + (version "0.6.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "requests-oauthlib" version)) + (sha256 + (base32 + "0ykff67sjcl227c23g0rxzfx34rr5bf21kwv0z3zmgk0lfmch7hn")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; removes tests that require network access + (add-before 'check 'pre-check + (lambda _ + (delete-file "tests/test_core.py") + #t))))) + (native-inputs + `(("python-requests-mock" ,python-requests-mock) + ("python-mock" ,python-mock))) + (propagated-inputs + `(("python-oauthlib" ,python-oauthlib) + ("python-requests" ,python-requests))) + (home-page + "https://github.com/requests/requests-oauthlib") + (synopsis + "OAuthlib authentication support for Requests") + (description + "Requests-OAuthlib uses the Python Requests and OAuthlib libraries to +provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients.") + (license license:isc))) + +(define-public python2-requests-oauthlib + (package-with-python2 python-requests-oauthlib)) + +(define-public python-url + (package + (name "python-url") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "url" version)) + (sha256 + (base32 + "0v879yadcz9qxfl41ak6wkga1kimp9cflla9ddz03hjjvgkqy5ki")))) + (build-system python-build-system) + (propagated-inputs + `(("python-publicsuffix" ,python-publicsuffix))) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) + (arguments + `(#:tests? #f)) ; FIXME: tests fail with "ImportError: No module named 'tests'" + (home-page "https://github.com/seomoz/url-py") + (synopsis "URL Parsing") + (description "Library for parsing urls.") + (license license:expat) + (properties `((python2-variant . ,(delay python2-url)))))) + +(define-public python2-url + (let ((base (package-with-python2 (strip-python2-variant python-url)))) + (package (inherit base) + (propagated-inputs + `(("python2-publicsuffix" ,python2-publicsuffix)))))) + +(define-public python-cachecontrol + (package + (name "python-cachecontrol") + (version "0.11.6") + (source + (origin + (method url-fetch) + ;; Pypi does not have tests. + (uri (string-append + "https://github.com/ionrock/cachecontrol/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0yj60d0f69a2l8p7y86k4zhzzm6rnxpq74sfl240pry9l0lfw2vw")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Drop test that requires internet access. + (delete-file "tests/test_regressions.py") + (setenv "PYTHONPATH" + (string-append (getcwd) "/build/lib:" + (getenv "PYTHONPATH"))) + (zero? (system* "py.test" "-vv"))))))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-redis" ,python-redis) + ("python-webtest" ,python-webtest) + ("python-mock" ,python-mock))) + (propagated-inputs + `(("python-requests" ,python-requests) + ("python-lockfile" ,python-lockfile))) + (home-page "https://github.com/ionrock/cachecontrol") + (synopsis "The httplib2 caching algorithms for use with requests") + (description "CacheControl is a port of the caching algorithms in +@code{httplib2} for use with @code{requests} session objects.") + (license license:asl2.0))) + +(define-public python2-cachecontrol + (package-with-python2 python-cachecontrol)) + +(define-public python-betamax + (package + (name "python-betamax") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "betamax" version)) + (sha256 + (base32 + "18f8v5gng3j773jlbbzx4rg1i4y2zw3m2l1zpmbvp8bh5a2q1i42")))) + (build-system python-build-system) + (arguments + '(;; Many tests fail because they require networking. + #:tests? #f)) + (propagated-inputs + `(("python-requests" ,python-requests))) + (home-page "https://github.com/sigmavirus24/betamax") + (synopsis "Record HTTP interactions with python-requests") + (description "Betamax will record your test suite's HTTP interactions and +replay them during future tests. It is designed to work with python-requests.") + (license license:expat))) + +(define-public python2-betamax + (package-with-python2 python-betamax)) + +(define-public python-betamax-matchers + (package + (name "python-betamax-matchers") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "betamax-matchers" version)) + (sha256 + (base32 + "07qpwjyq2i2aqhz5iwghnj4pqr2ys5n45v1vmpcfx9r5mhwrsq43")))) + (build-system python-build-system) + (propagated-inputs + `(("python-betamax" ,python-betamax) + ("python-requests-toolbelt" ,python-requests-toolbelt))) + (home-page "https://github.com/sigmavirus24/betamax_matchers") + (synopsis "VCR imitation for python-requests") + (description "@code{betamax-matchers} provides a set of Matchers for +Betamax.") + (license license:asl2.0))) + +(define-public python2-betamax-matchers + (package-with-python2 python-betamax-matchers)) + +(define-public python-s3transfer + (package + (name "python-s3transfer") + (version "0.1.11") + (source (origin + (method url-fetch) + (uri (pypi-uri "s3transfer" version)) + (sha256 + (base32 + "0yfrfnf404cxzn3iswibqjxklsl0b1lwgqiml6pwiqj79a7zbwbn")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; 7 of the 'integration' tests require network access or login + ;; credentials. + (zero? (system* "nosetests" "--exclude=integration"))))))) + (native-inputs + `(("python-docutils" ,python-docutils) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose))) + (propagated-inputs + `(("python-botocore" ,python-botocore))) + (synopsis "Amazon S3 Transfer Manager") + (description "S3transfer is a Python library for managing Amazon S3 +transfers.") + (home-page "https://github.com/boto/s3transfer") + (license license:asl2.0) + (properties `((python2-variant . ,(delay python2-s3transfer)))))) + +(define-public python2-s3transfer + (let ((base (package-with-python2 (strip-python2-variant python-s3transfer)))) + (package + (inherit base) + (native-inputs + `(("python2-futures" ,python2-futures) + ,@(package-native-inputs base)))))) + +(define-public python-flask-restful + (package + (name "python-flask-restful") + (version "0.3.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-RESTful" version)) + (sha256 + (base32 + "0hjcmdb56b7z4bkw848lxfkyrpnkwzmqn2dgnlv12mwvjpzsxr6c")))) + (build-system python-build-system) + (propagated-inputs + `(("python-aniso8601" ,python-aniso8601) + ("python-flask" ,python-flask) + ("python-pycrypto" ,python-pycrypto) + ("python-pytz" ,python-pytz))) + (native-inputs + `(;; Optional dependency of Flask. Tests need it. + ("python-blinker" ,python-blinker) + ("python-mock" ,python-mock) ; For tests + ("python-nose" ,python-nose) ; For tests + ("python-sphinx" ,python-sphinx))) + (home-page + "https://www.github.com/flask-restful/flask-restful/") + (synopsis + "Flask module for creating REST APIs") + (description + "This package contains a Flask module for creating REST APIs.") + (license license:bsd-3))) + +(define-public python-flask-basicauth + (package + (name "python-flask-basicauth") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-BasicAuth" version)) + (sha256 + (base32 + "1zq1spkjr4sjdnalpp8wl242kdqyk6fhbnhr8hi4r4f0km4bspnz")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask))) + (home-page + "https://github.com/jpvanhal/flask-basicauth") + (synopsis + "HTTP basic access authentication for Flask") + (description + "This package provides HTTP basic access authentication for Flask.") + (license license:bsd-3))) + +(define-public python-flask-sqlalchemy + (package + (name "python-flask-sqlalchemy") + (version "2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-SQLAlchemy" version)) + (sha256 + (base32 + "1i9ps5d5snih9xlqhrvmi3qfiygkmqzxh92n25kj4pf89kj4s965")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-sqlalchemy" ,python-sqlalchemy))) + (home-page + "https://github.com/mitsuhiko/flask-sqlalchemy") + (synopsis + "Module adding SQLAlchemy support to your Flask application") + (description + "This package adds SQLAlchemy support to your Flask application.") + (license license:bsd-3))) + +(define-public python-flask-restplus + (package + (name "python-flask-restplus") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-restplus" version)) + (sha256 + (base32 + "11his6ii5brpkhld0d5bwzjjw4q3vmplpd6fmgzjrvvklsbk0cf4")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: 35/882 tests failing. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; (zero? (system* "nosetests"))))))) + (propagated-inputs + `(("python-aniso8601" ,python-aniso8601) + ("python-flask" ,python-flask) + ("python-jsonschema" ,python-jsonschema) + ("python-pytz" ,python-pytz) + ("python-six" ,python-six))) + (native-inputs + `(("python-tzlocal" ,python-tzlocal) + ("python-blinker" ,python-blinker) + ("python-nose" ,python-nose) + ("python-rednose" ,python-rednose))) + (home-page "https://github.com/noirbizarre/flask-restplus") + (synopsis "Framework for documented API development with Flask") + (description "This package provides a framework for API development with +the Flask web framework in Python. It is similar to package +@code{python-flask-restful} but supports the @code{python-swagger} +documentation builder.") + (license license:expat))) + +(define-public python-flask-restful-swagger + (package + (name "python-flask-restful-swagger") + (version "0.19") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-restful-swagger" version)) + (sha256 + (base32 + "16msl8hd5xjmj833bpy264v98cpl5hkw5bgl5gf5vgndxbv3rm6v")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask-restful" ,python-flask-restful))) + (home-page "https://github.com/rantav/flask-restful-swagger") + (synopsis "Extract Swagger specs from Flask-Restful projects") + (description "This package lets you extract Swagger API documentation +specs from your Flask-Restful projects.") + (license license:expat))) + +(define-public python2-flask-restful-swagger + (package-with-python2 python-flask-restful-swagger)) + +(define-public python-htmlmin + (package + (name "python-htmlmin") + (version "0.1.10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "htmlmin" version)) + (sha256 + (base32 + "0qxa93j3p1ak32qh8d9kshqv8v3z0hkc13dwbhp5cn7sn3xmsp6a")))) + (arguments + `(#:tests? #f)) ;htmlmin has no tests + (build-system python-build-system) + (home-page "https://htmlmin.readthedocs.org/en/latest/") + (synopsis "HTML minifier") + (description "@code{htmlmin} is an HTML minifier that just works. +It comes with safe defaults and easily configurable options.") + (license license:bsd-3))) + +(define-public python2-htmlmin + (package-with-python2 python-htmlmin)) + +(define-public python-flask-htmlmin + (package + (name "python-flask-htmlmin") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-HTMLmin" version)) + (sha256 + (base32 + "1n6zlq72kakkw0z2jpq6nh74lfsmxybm4g053pwhc14fbr809348")))) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-htmlmin" ,python-htmlmin))) + (build-system python-build-system) + (home-page "https://github.com/hamidfzm/Flask-HTMLmin") + (synopsis "HTML response minifier for Flask") + (description + "Minify @code{text/html} MIME type responses when using @code{Flask}.") + (license license:bsd-3))) + +(define-public python2-flask-htmlmin + (package-with-python2 python-flask-htmlmin)) + +(define-public python-flask-login + (package + (name "python-flask-login") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/maxcountryman/flask-login/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1pdqp7a2gyb7k06xda004x0fi2w66s6kn2i0ndkqndmg12d83f9w")))) + (arguments + ;; Tests fail PEP8 compliance. See: + ;; https://github.com/maxcountryman/flask-login/issues/340 + `(#:tests? #f)) + (build-system python-build-system) + (home-page "https://github.com/maxcountryman/flask-login") + (synopsis "User session management for Flask") + (description + "@code{Flask-Login} provides user session management for Flask. It +handles the common tasks of logging in, logging out, and remembering your +users' sessions over extended periods of time.") + (license license:expat))) + +(define-public python2-flask-login + (package-with-python2 python-flask-login)) + +(define-public python-oauth2client + (package + (name "python-oauth2client") + (version "4.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "oauth2client" version)) + (sha256 + (base32 + "1irqqap2zibysf8dba8sklfqikia579srd0phm5n754ni0h59gl0")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs + `(("python-httplib2" ,python-httplib2) + ("python-pyasn1" ,python-pyasn1) + ("python-pyasn1-modules" ,python-pyasn1-modules) + ("python-rsa" ,python-rsa) + ("python-six" ,python-six))) + (home-page "http://github.com/google/oauth2client/") + (synopsis "OAuth 2.0 client library") + (description "@code{python-oauth2client} provides an OAuth 2.0 client +library for Python") + (license license:asl2.0))) + +(define-public python-flask-oidc + (package + (name "python-flask-oidc") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-oidc" version)) + (sha256 + (base32 + "1ay5j0mf174bix7i67hclr95gv16z81fpx0dijvi0gydvdj3ddy2")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-itsdangerous" ,python-itsdangerous) + ("python-oauth2client" ,python-oauth2client) + ("python-six" ,python-six))) + (native-inputs + `(("python-nose" ,python-nose) + ("python-mock" ,python-mock))) + (home-page "https://github.com/puiterwijk/flask-oidc") + (synopsis "OpenID Connect extension for Flask") + (description "@code{python-flask-oidc} provides an OpenID Connect extension +for Flask.") + (license license:bsd-2))) + +(define-public python-webassets + (package + (name "python-webassets") + (version "0.12.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "webassets" version)) + (sha256 + (base32 + "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7")))) + (build-system python-build-system) + (native-inputs + `(("python-jinja2" ,python-jinja2) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-pytest" ,python-pytest))) + (home-page "https://github.com/miracle2k/webassets") + (synopsis "Media asset management") + (description "Merges, minifies and compresses Javascript and CSS files, +supporting a variety of different filters, including YUI, jsmin, jspacker or +CSS tidy. Also supports URL rewriting in CSS files.") + (license license:bsd-2))) + +(define-public python-cssmin + (package + (name "python-cssmin") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cssmin" version)) + (sha256 + (base32 + "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0")))) + (build-system python-build-system) + (home-page "https://github.com/zacharyvoase/cssmin") + (synopsis "Python port of the YUI CSS Compressor") + (description "Python port of the YUI CSS Compressor.") + (license (list license:expat license:bsd-3)))) + +(define-public python2-cssmin + (package-with-python2 python-cssmin)) + +(define-public python-elasticsearch + (package + (name "python-elasticsearch") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "elasticsearch" version)) + (sha256 + (base32 + "1sdw1r05cw7ihnmng8ra9v968fj7bq6sji8i1dikymsnkcpgc69g")))) + (build-system python-build-system) + (native-inputs + `(("python-mock" ,python-mock) + ("python-nosexcover" ,python-nosexcover) + ("python-pyaml" ,python-pyaml) + ("python-requests" ,python-requests))) + (propagated-inputs + `(("urllib3" ,python-urllib3))) + (arguments + ;; tests require the test_elasticsearch module but it is not distributed. + `(#:tests? #f)) + (home-page "https://github.com/elastic/elasticsearch-py") + (synopsis "Low-level client for Elasticsearch") + (description "Official low-level client for Elasticsearch. Its goal is to +provide common ground for all Elasticsearch-related code in Python; because of +this it tries to be opinion-free and very extendable.") + (license license:expat))) + +(define-public python2-elasticsearch + (package-with-python2 python-elasticsearch)) + +(define-public python-flask-script + (package + (name "python-flask-script") + (version "2.0.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-Script" version)) + (sha256 + (base32 + "0zqh2yq8zk7m9b4xw1ryqmrljkdigfb3hk5155a3b5hkfnn6xxyf")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-argcomplete" ,python-argcomplete) + ("python-werkzeug" ,python-werkzeug))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page + "http://github.com/smurfix/flask-script") + (synopsis "Scripting support for Flask") + (description "The Flask-Script extension provides support for writing +external scripts in Flask. This includes running a development server, +a customised Python shell, scripts to set up your database, cronjobs, +and other command-line tasks that belong outside the web application +itself.") + (license license:bsd-3))) + +(define-public python2-flask-script + (package-with-python2 python-flask-script)) + +(define-public python-flask-migrate + (package + (name "python-flask-migrate") + (version "2.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-Migrate" version)) + (sha256 + (base32 + "107x78lkqsnbg92dld3dkagg07jvchp3ib3y0sivc4ipz6n1y7rk")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-alembic" ,python-alembic) + ("python-sqlalchemy" ,python-sqlalchemy) + ("python-flask-script" ,python-flask-script) + ("python-flask-sqlalchemy" ,python-flask-sqlalchemy))) + (home-page "http://github.com/miguelgrinberg/flask-migrate/") + (synopsis "SQLAlchemy database migrations for Flask programs using +Alembic") + (description "This package contains SQLAlchemy database migration tools +for Flask programs that are using @code{python-alembic}.") + (license license:expat))) + +(define-public python2-flask-migrate + (package-with-python2 python-flask-migrate)) + +(define-public python-genshi + (package + (name "python-genshi") + (version "0.7") + (source + (origin + (method url-fetch) + (uri (string-append + "https://ftp.edgewall.org/pub/genshi/Genshi-" + version ".tar.gz")) + (patches + (search-patches + ;; The first 4 patches are in the master branch upstream. + ;; See this as a reference https://genshi.edgewall.org/ticket/582 + ;; The last 2 are NOT in any branch. + ;; They were sent as attachments to a ticket opened at + ;; https://genshi.edgewall.org/ticket/602#no1 + "python-genshi-stripping-of-unsafe-script-tags.patch" + "python-genshi-disable-speedups-on-python-3.3.patch" + "python-genshi-isstring-helper.patch" + "python-genshi-add-support-for-python-3.4-AST.patch" + "python-genshi-fix-tests-on-python-3.5.patch" + "python-genshi-buildable-on-python-2.7.patch")) + (sha256 + (base32 + "0lkkbp6fbwzv0zda5iqc21rr7rdldkwh3hfabfjl9i4bwq14858x")))) + (build-system python-build-system) + (home-page "https://genshi.edgewall.org/") + (synopsis "Toolkit for generation of output for the web") + (description "Genshi is a Python library that provides an integrated set +of components for parsing, generating, and processing HTML, XML or other +textual content for output generation on the web.") + (license license:bsd-3))) + +;; The linter here claims that patch file names should start with the package +;; name. But, in this case the patches are inherited from python-genshi with +;; the "python-genshi-" prefix instead of "python2-genshi-". +(define-public python2-genshi + (package-with-python2 python-genshi)) + +(define-public python-flask-principal + (package + (name "python-flask-principal") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-Principal" version)) + (sha256 + (base32 + "0lwlr5smz8vfm5h9a9i7da3q1c24xqc6vm9jdywdpgxfbi5i7mpm")))) + (build-system python-build-system) + (propagated-inputs + `(("python-blinker" ,python-blinker))) + (native-inputs + `(("python-flask" ,python-flask) + ("python-nose" ,python-nose))) + (home-page "http://packages.python.org/Flask-Principal/") + (synopsis "Identity management for Flask") + (description "@code{flask_principal} is a identity management library for +Flask. It supports managing both authentication and authorization data in a +thread-local variable.") + (license license:expat))) + +(define-public python2-flask-principal + (package-with-python2 python-flask-principal)) + +(define-public python-flask-httpauth + (package + (name "python-flask-httpauth") + (version "3.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Flask-HTTPAuth" version)) + (sha256 + (base32 + "13gff5w1mqpzm5nccyg02v3ifb9ifqh5k866cssjhghhg6msfjsz")))) + (build-system python-build-system) + (native-inputs + `(("python-flask" ,python-flask))) + (home-page "http://github.com/miguelgrinberg/flask-httpauth/") + (synopsis "Basic and Digest HTTP authentication for Flask routes") + (description "@code{flask_httpauth} provides Basic and Digest HTTP +authentication for Flask routes.") + (license license:expat))) + +(define-public python2-flask-httpauth + (package-with-python2 python-flask-httpauth)) + +(define-public python-uritemplate + (package + (name "python-uritemplate") + (version "3.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "uritemplate" version)) + (sha256 + (base32 + "0781gm9g34wa0asc19dx81ng0nqq07igzv3bbvdqmz13pv7469n0")))) + (build-system python-build-system) + (home-page "https://uritemplate.readthedocs.org") + (synopsis "Library to deal with URI Templates") + (description "@code{uritemplate} provides Python library to deal with URI +Templates.") + (license license:bsd-2))) + +(define-public python2-uritemplate + (package-with-python2 python-uritemplate)) + diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a6a4ec9372..0d5c09b86b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -73,7 +73,6 @@ (define-module (gnu packages python) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) - #:use-module (gnu packages django) #:use-module (gnu packages file) #:use-module (gnu packages fontutils) #:use-module (gnu packages gcc) @@ -101,6 +100,7 @@ (define-module (gnu packages python) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages sdl) @@ -573,28 +573,6 @@ (define-public python2-paramiko (package-with-python2 python-paramiko)) -(define-public python-httplib2 - (package - (name "python-httplib2") - (version "0.9.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "httplib2" version)) - (sha256 - (base32 - "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3")))) - (build-system python-build-system) - (home-page "https://github.com/jcgregorio/httplib2") - (synopsis "Comprehensive HTTP client library") - (description - "A comprehensive HTTP client library supporting many features left out of -other HTTP libraries.") - (license license:expat))) - -(define-public python2-httplib2 - (package-with-python2 python-httplib2)) - (define-public python-ecdsa (package (name "python-ecdsa") @@ -4755,38 +4733,6 @@ (define-public python2-scipy (package-with-python2 (strip-python2-variant python-scipy))) -(define-public python-sockjs-tornado - (package - (name "python-sockjs-tornado") - (version "1.0.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "sockjs-tornado" version)) - (sha256 - (base32 - "16cff40nniqsyvda1pb2j3b4zwmrw7y2g1vqq78lp20xpmhnwwkd")))) - (build-system python-build-system) - (arguments - `(;; There are no tests, and running the test phase requires missing - ;; dependencies - #:tests? #f)) - (propagated-inputs - `(("python-tornado" ,python-tornado))) - (home-page "http://github.com/mrjoes/sockjs-tornado/") - (synopsis - "SockJS python server implementation on top of Tornado framework") - (description - "SockJS-tornado provides the server side counterpart to a SockJS client -library, through the Tornado framework. - -SockJS provides a low latency, full duplex, cross-domain communication channel -between a web browser and web server.") - (license license:expat))) - -(define-public python2-sockjs-tornado - (package-with-python2 python-sockjs-tornado)) - (define-public python-socksipy-branch (package (name "python-socksipy-branch") @@ -4963,33 +4909,6 @@ (define-public python-flaky (define-public python2-flaky (package-with-python2 python-flaky)) -(define-public python-flask-babel - (package - (name "python-flask-babel") - (version "0.11.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-Babel" version)) - (sha256 - (base32 - "16b80cipdba9xj3jlaiaq6wgrgpjb70w3j01jjy9hbp4k71kd6yj")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-babel" ,python-babel) - ("python-jinja2" ,python-jinja2) - ("python-pytz" ,python-pytz))) - (home-page "https://github.com/python-babel/flask-babel") - (synopsis "Add i18n/l10n support to Flask applications") - (description "This package implements internationalization and localization -support for Flask. This is based on the Python babel module as well as pytz - -both of which are installed automatically if you install this library.") - (license license:bsd-3))) - -(define-public python2-flask-babel - (package-with-python2 python-flask-babel)) - (define-public python-sqlalchemy-utils (package (name "python-sqlalchemy-utils") @@ -6068,122 +5987,6 @@ (define-public python-isodate (define-public python2-isodate (package-with-python2 python-isodate)) -(define-public python-html5lib - (package - (name "python-html5lib") - (version "1.0b10") - (source - (origin - (method url-fetch) - (uri (pypi-uri "html5lib" version)) - (sha256 - (base32 - "1yd068a5c00wd0ajq0hqimv7fd82lhrw0w3s01vbhy9bbd6xapqd")))) - (build-system python-build-system) - (propagated-inputs - `(("python-six" ,python-six) - ("python-webencodings" ,python-webencodings))) - (arguments - `(#:test-target "check")) - (home-page - "https://github.com/html5lib/html5lib-python") - (synopsis - "Python HTML parser based on the WHATWG HTML specifcation") - (description - "Html5lib is an HTML parser based on the WHATWG HTML specifcation -and written in Python.") - (license license:expat))) - -(define-public python2-html5lib - (package-with-python2 python-html5lib)) - -;; Needed for python-bleach, a dependency of python-notebook -(define-public python-html5lib-0.9 - (package - (inherit python-html5lib) - (version "0.999") - (source - (origin - (method url-fetch) - (uri (pypi-uri "html5lib" version)) - (sha256 - (base32 - "17n4zfsj6ynmbwdwviywmj8r6nzr3xvfx2zs0xhndmvm51z7z263")))))) - -(define-public python2-html5lib-0.9 - (package-with-python2 python-html5lib-0.9)) - -(define-public python-html5-parser - (package - (name "python-html5-parser") - (version "0.4.4") - (source (origin - (method url-fetch) - (uri (pypi-uri "html5-parser" version)) - (sha256 - (base32 - "1d8sxhl41ffh7qlk7wlsy17xw6slzx5v1yna9s72wx5qrpaa3wxr")))) - (build-system python-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("libxml2" ,libxml2))) - (propagated-inputs - `(("python-lxml" ,python-lxml) - ("python-beautifulsoup4" ,python-beautifulsoup4))) - (home-page "https://html5-parser.readthedocs.io") - (synopsis "Fast C-based HTML5 parsing for Python") - (description "This package provides a fast implementation of the HTML5 -parsing spec for Python. Parsing is done in C using a variant of the gumbo -parser. The gumbo parse tree is then transformed into an lxml tree, also in -C, yielding parse times that can be a thirtieth of the html5lib parse times.") - ;; src/as-python-tree.[c|h] are licensed GPL3. The other files - ;; indicate ASL2.0, including the LICENSE file for the whole project. - (license (list license:asl2.0 license:gpl3)))) - -(define-public python2-html5-parser - (package-with-python2 python-html5-parser)) - -(define-public python-webencodings - (package - (name "python-webencodings") - (version "0.5") - (source (origin - (method url-fetch) - (uri (pypi-uri "webencodings" version)) - (sha256 - (base32 - "015rw7662lkpb9aqiqah2hbizk6w531badqwjpz41rr47glmxid5")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (zero? (system* "py.test" "-v" "webencodings/tests.py"))))))) - (native-inputs - `(("python-pytest" ,python-pytest))) - (home-page "https://github.com/SimonSapin/python-webencodings") - (synopsis "Character encoding aliases for legacy web content") - (description - "In order to be compatible with legacy web content when interpreting -something like @code{Content-Type: text/html; charset=latin1}, tools need -to use a particular set of aliases for encoding labels as well as some -overriding rules. For example, @code{US-ASCII} and @code{iso-8859-1} on -the web are actually aliases for @code{windows-1252}, and an @code{UTF-8} -or @code{UTF-16} BOM takes precedence over any other encoding declaration. -The WHATWG @url{https://encoding.spec.whatwg.org/,Encoding} standard -defines all such details so that implementations do not have to -reverse-engineer each other. - -This module implements the Encoding standard and has encoding labels and -BOM detection, but the actual implementation for encoders and decoders -is Python’s.") - (license license:bsd-3))) - -(define-public python2-webencodings - (package-with-python2 python-webencodings)) - (define-public python-urwid (package (name "python-urwid") @@ -6232,57 +6035,6 @@ (define-public python2-urwid (delete-file "urwid/tests/test_vterm.py")))) (package-arguments python-urwid)))))) -(define-public python-openid - (package - (name "python-openid") - (version "3.0.10") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python3-openid" version)) - (sha256 - (base32 - "1x3nh3fycqfn43jp5j5pb4q4y2jxp4mdka4absaa3bc0078qd758")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (zero? (system* "./admin/runtests"))))))) - (properties `((python2-variant . ,(delay python2-openid)))) - (propagated-inputs - `(("python-defusedxml" ,python-defusedxml))) - (native-inputs - `(("python-psycopg2" ,python-psycopg2) - ("python-django" ,python-django))) - (home-page "https://github.com/necaris/python3-openid") - (synopsis "OpenID support for servers and consumers") - (description "This library provides OpenID authentication for Python, both -for clients and servers.") - (license license:asl2.0))) - -(define-public python2-openid - (package - (name "python2-openid") - (version "2.2.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python-openid" version)) - (sha256 - (base32 - "1vvhxlghjan01snfdc4k7ykd80vkyjgizwgg9bncnin8rqz1ricj")))) - (build-system python-build-system) - (arguments - ;; Python 3 support is in `python3-openid`, a separate package. - `(#:python ,python-2)) - (home-page "https://github.com/openid/python-openid") - (synopsis "OpenID support for servers and consumers") - (description "This library provides OpenID authentication for Python, both -for clients and servers.") - (license license:asl2.0))) - (define-public python-urwidtrees (package (name "python-urwidtrees") @@ -6469,108 +6221,6 @@ (define-public python2-beautifulsoup4 (strip-python2-variant python-beautifulsoup4))) (arguments `(#:python ,python-2)))) -(define-public python-cssutils - (package - (name "python-cssutils") - (version "1.0.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cssutils" version)) - (sha256 - (base32 - "0qwha9x1wml2qmipbcz03gndnlwhzrjdvw9i09si247a90l8p8fq")))) - (build-system python-build-system) - (native-inputs - `(("unzip" ,unzip))) ; for unpacking the source - (arguments - `(#:tests? #f)) ;tests require python-pbr < 1.7.0 - (home-page "http://cthedot.de/cssutils/") - (synopsis - "CSS Cascading Style Sheets library for Python") - (description - "Cssutils is a Python package for parsing and building CSS -Cascading Style Sheets. Currently it provides a DOM only and no rendering -options.") - (license license:lgpl3+))) - -(define-public python2-cssutils - (package-with-python2 python-cssutils)) - -(define-public python-cssselect - (package - (name "python-cssselect") - (version "0.9.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cssselect" version)) - (sha256 - (base32 - "1xg6gbva1yswghiycmgincv6ab4bn7hpm720ndbj40h8xycmnfvi")))) - (build-system python-build-system) - (arguments - ;; tests fail with message - ;; AttributeError: 'module' object has no attribute 'tests' - `(#:tests? #f)) - (home-page - "https://pythonhosted.org/cssselect/") - (synopsis - "CSS3 selector parser and translator to XPath 1.0") - (description - "Cssselect ia a Python module that parses CSS3 Selectors and translates -them to XPath 1.0 expressions. Such expressions can be used in lxml or -another XPath engine to find the matching elements in an XML or HTML document.") - (license license:bsd-3))) - -(define-public python2-cssselect - (package-with-python2 python-cssselect)) - -(define-public python-openid-cla - (package - (name "python-openid-cla") - (version "1.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python-openid-cla" version)) - (sha256 - (base32 - "102hy2qisvjxp5s0v9lvwqi4f2dk0dhns40vjgn008yxc7k0h3cr")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ; No tests. - (home-page "https://github.com/puiterwijk/python-openid-cla/") - (synopsis "Implementation of the OpenID CLA extension for python-openid") - (description "@code{openid-cla} is an implementation of the OpenID -contributor license agreement extension for python-openid.") - (license license:bsd-3))) - -(define-public python2-openid-cla - (package-with-python2 python-openid-cla)) - -(define-public python-openid-teams - (package - (name "python-openid-teams") - (version "1.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python-openid-teams" version)) - (sha256 - (base32 - "05zrh78alav24rxkbqlpbad6d3x2nljk6z6j7kflxf3vdqa7w969")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ; No tests. - (home-page "https://github.com/puiterwijk/python-openid-teams/") - (synopsis "Implementation of the OpenID teams extension for python-openid") - (description - "@code{openid-teams} is an implementation of the OpenID -teams extension for python-openid.") - (license license:bsd-3))) - -(define-public python2-openid-teams - (package-with-python2 python-openid-teams)) - (define-public python-netifaces (package (name "python-netifaces") @@ -6889,75 +6539,6 @@ (define-public python-singledispatch (define-public python2-singledispatch (package-with-python2 python-singledispatch)) -(define-public python-tornado - (package - (name "python-tornado") - (version "4.5.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tornado" version)) - (sha256 - (base32 "1zbkgcdfq81k298awrm8p0xwbwwn2p3nbizdglzfbkskhai082fv")))) - (build-system python-build-system) - (arguments - '(;; FIXME: Two tests error out with: - ;; AssertionError: b'Error in atexit._run_exitfuncs:\nFileNotF[44 chars]ry\n' != b'' - ;; #:phases - ;; (modify-phases %standard-phases - ;; (replace 'check - ;; (lambda _ - ;; ;; 'setup.py test' hits an AssertionError on BSD-specific - ;; ;; "tornado/platform/kqueue.py". This is the supported method: - ;; (zero? (system* "python" "-m" "tornado.test"))))) - #:tests? #f)) - (native-inputs - `(("python-certifi" ,python-certifi))) - (propagated-inputs - `(("python-backports-abc" ,python-backports-abc))) - (home-page "http://www.tornadoweb.org/") - (synopsis "Python web framework and asynchronous networking library") - (description - "Tornado is a Python web framework and asynchronous networking library, -originally developed at FriendFeed. By using non-blocking network I/O, -Tornado can scale to tens of thousands of open connections, making it ideal -for long polling, WebSockets, and other applications that require a long-lived -connection to each user.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-tornado)))))) - -(define-public python2-tornado - (let ((tornado (package-with-python2 (strip-python2-variant python-tornado)))) - (package (inherit tornado) - (propagated-inputs - `(("python2-backport-ssl-match-hostname" - ,python2-backport-ssl-match-hostname) - ("python2-singledispatch" ,python2-singledispatch) - ,@(package-propagated-inputs tornado)))))) - -(define-public python-tornado-http-auth - (package - (name "python-tornado-http-auth") - (version "1.1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tornado-http-auth" version)) - (sha256 - (base32 - "0znrgqd7k2s4ia474xizi6h3061zj4sn5n6cq76bkwl3wwshifn5")))) - (build-system python-build-system) - (propagated-inputs - `(("python-tornado" ,python-tornado))) - (home-page - "https://github.com/gvalkov/tornado-http-auth") - (synopsis - "Digest and basic authentication module for Tornado") - (description - "Provides support for adding authentication to services using the Tornado -web framework, either via the basic or digest authentication schemes.") - (license license:asl2.0))) - ;; the python- version can be removed with python-3.5 (define-public python-backports-abc (package @@ -7449,44 +7030,6 @@ (define-public python-cram (define-public python2-cram (package-with-python2 python-cram)) -(define-public python-terminado - (package - (name "python-terminado") - (version "0.6") - (source - (origin - (method url-fetch) - (uri (pypi-uri "terminado" version)) - (sha256 - (base32 - "09h1kwi86g5mrk14s4pgbhshd602zry29lnpxamcqz864kva22rc")))) - (build-system python-build-system) - (propagated-inputs - `(("python-tornado" ,python-tornado) - ("python-ptyprocess" ,python-ptyprocess))) - (native-inputs - `(("python-nose" ,python-nose))) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (zero? (system* "nosetests"))))))) - (home-page "https://github.com/takluyver/terminado") - (synopsis "Terminals served to term.js using Tornado websockets") - (description "This package provides a Tornado websocket backend for the -term.js Javascript terminal emulator library.") - (license license:bsd-2) - (properties `((python2-variant . ,(delay python2-terminado)))))) - -(define-public python2-terminado - (let ((terminado (package-with-python2 (strip-python2-variant python-terminado)))) - (package (inherit terminado) - (propagated-inputs - `(("python2-backport-ssl-match-hostname" - ,python2-backport-ssl-match-hostname) - ,@(package-propagated-inputs terminado)))))) - (define-public python-straight-plugin (package (name "python-straight-plugin") @@ -7804,30 +7347,6 @@ (define-public python-monotonic (define-public python2-monotonic (package-with-python2 python-monotonic)) -(define-public python-webob - (package - (name "python-webob") - (version "1.5.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "WebOb" version)) - (sha256 - (base32 - "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq")))) - (build-system python-build-system) - (native-inputs - `(("python-nose" ,python-nose))) - (home-page "http://webob.org/") - (synopsis "WSGI request and response object") - (description - "WebOb provides wrappers around the WSGI request environment, and an -object to help create WSGI responses.") - (license license:expat))) - -(define-public python2-webob - (package-with-python2 python-webob)) - (define-public python-xlrd (package (name "python-xlrd") @@ -8813,374 +8332,14 @@ (define-public python-docopt (define-public python2-docopt (package-with-python2 python-docopt)) -(define-public python-zope-event +(define-public python-pythondialog (package - (name "python-zope-event") - (version "4.1.0") + (name "python-pythondialog") + (version "3.4.0") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.event/zope.event-" version ".tar.gz")) - (sha256 - (base32 - "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw")))) - (build-system python-build-system) - (home-page "http://pypi.python.org/pypi/zope.event") - (synopsis "Event publishing system for Python") - (description "Zope.event provides an event publishing API, intended for -use by applications which are unaware of any subscribers to their events. It -is a simple event-dispatching system on which more sophisticated event -dispatching systems can be built.") - (license license:zpl2.1))) - -(define-public python2-zope-event - (package-with-python2 python-zope-event)) - -(define-public python-zope-interface - (package - (name "python-zope-interface") - (version "4.1.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.interface/zope.interface-" version ".tar.gz")) - (sha256 - (base32 - "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if")))) - (build-system python-build-system) - (native-inputs - `(("python-zope-event" ,python-zope-event))) - (home-page "https://github.com/zopefoundation/zope.interface") - (synopsis "Python implementation of the \"design by contract\" -methodology") - (description "Zope.interface provides an implementation of \"object -interfaces\" for Python. Interfaces are a mechanism for labeling objects as -conforming to a given API or contract.") - (license license:zpl2.1))) - -(define-public python2-zope-interface - (package-with-python2 python-zope-interface)) - -(define-public python-zope-exceptions - (package - (name "python-zope-exceptions") - (version "4.0.8") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.exceptions/zope.exceptions-" - version ".tar.gz")) - (sha256 - (base32 - "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; circular dependency with zope.testrunner - (propagated-inputs - `(("python-zope-interface" ,python-zope-interface))) - (home-page "http://cheeseshop.python.org/pypi/zope.exceptions") - (synopsis "Zope exceptions") - (description "Zope.exceptions provides general-purpose exception types -that have uses outside of the Zope framework.") - (license license:zpl2.1))) - -(define-public python2-zope-exceptions - (package-with-python2 python-zope-exceptions)) - -(define-public python-zope-testing - (package - (name "python-zope-testing") - (version "4.5.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.testing/zope.testing-" version ".tar.gz")) - (sha256 - (base32 - "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Remove pre-compiled .pyc files backup files from source. - (for-each delete-file (find-files "." "(\\.pyc|~)$")) - #t)))) - (build-system python-build-system) - (native-inputs - `(("python-zope-exceptions" ,python-zope-exceptions))) - (propagated-inputs - `(("python-zope-interface" ,python-zope-interface))) - (home-page "http://pypi.python.org/pypi/zope.testing") - (synopsis "Zope testing helpers") - (description "Zope.testing provides a number of testing utilities for HTML -forms, HTTP servers, regular expressions, and more.") - (license license:zpl2.1))) - -(define-public python2-zope-testing - (package-with-python2 python-zope-testing)) - -(define-public python-zope-testrunner - (package - (name "python-zope-testrunner") - (version "4.4.9") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.testrunner/zope.testrunner-" - version ".zip")) - (sha256 - (base32 - "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. - (native-inputs - `(("python-six" ,python-six) - ;("python-zope-interface" ,python-zope-interface) - ("python-zope-exceptions" ,python-zope-exceptions) - ("python-zope-testing" ,python-zope-testing) - ("unzip" ,unzip))) - (propagated-inputs - `(("python-zope-interface" ,python-zope-interface))) - (home-page "http://pypi.python.org/pypi/zope.testrunner") - (synopsis "Zope testrunner script") - (description "Zope.testrunner provides a script for running Python -tests.") - (license license:zpl2.1))) - -(define-public python2-zope-testrunner - (let ((base (package-with-python2 python-zope-testrunner))) - (package - (inherit base) - (native-inputs - (append (package-native-inputs base) - `(("python2-subunit" ,python2-subunit) - ("python2-mimeparse" ,python2-mimeparse))))))) - -(define-public python-zope-i18nmessageid - (package - (name "python-zope-i18nmessageid") - (version "4.0.3") - (source - (origin - (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/z" - "/zope.i18nmessageid/zope.i18nmessageid-" - version ".tar.gz")) - (sha256 - (base32 - "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml")))) - (build-system python-build-system) - (home-page "http://pypi.python.org/pypi/zope.i18nmessageid") - (synopsis "Message identifiers for internationalization") - (description "Zope.i18nmessageid provides facilities for declaring -internationalized messages within program source text.") - (license license:zpl2.1))) - -(define-public python2-zope-i18nmessageid - (package-with-python2 python-zope-i18nmessageid)) - -(define-public python-zope-schema - (package - (name "python-zope-schema") - (version "4.4.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.schema/zope.schema-" version ".tar.gz")) - (sha256 - (base32 - "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.event. - (propagated-inputs - `(("python-zope-event" ,python-zope-event) - ("python-zope-exceptions", python-zope-exceptions) - ("python-zope-interface" ,python-zope-interface))) - (native-inputs - `(("python-zope-testing" ,python-zope-testing) - ("python-coverage" ,python-coverage) - ("python-nose" ,python-nose))) - (home-page "http://pypi.python.org/pypi/zope.schema") - (synopsis "Zope data schemas") - (description "Zope.scheme provides extensions to zope.interface for -defining data schemas.") - (license license:zpl2.1))) - -(define-public python2-zope-schema - (package-with-python2 python-zope-schema)) - -(define-public python-zope-configuration - (package - (name "python-zope-configuration") - (version "4.0.3") - (source (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.configuration/zope.configuration-" - version ".tar.gz")) - (sha256 - (base32 - "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. - (propagated-inputs - `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) - ("python-zope-schema" ,python-zope-schema))) - (home-page "http://pypi.python.org/pypi/zope.configuration") - (synopsis "Zope Configuration Markup Language") - (description "Zope.configuration implements ZCML, the Zope Configuration -Markup Language.") - (license license:zpl2.1))) - -(define-public python2-zope-configuration - (package-with-python2 python-zope-configuration)) - -(define-public python-zope-proxy - (package - (name "python-zope-proxy") - (version "4.1.6") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.proxy/zope.proxy-" version ".tar.gz")) - (sha256 - (base32 - "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. - (propagated-inputs - `(("python-zope-interface" ,python-zope-interface))) - (home-page "http://pypi.python.org/pypi/zope.proxy") - (synopsis "Generic, transparent proxies") - (description "Zope.proxy provides generic, transparent proxies for Python. -Proxies are special objects which serve as mostly-transparent wrappers around -another object, intervening in the apparent behavior of the wrapped object -only when necessary to apply the policy (e.g., access checking, location -brokering, etc.) for which the proxy is responsible.") - (license license:zpl2.1))) - -(define-public python2-zope-proxy - (package-with-python2 python-zope-proxy)) - -(define-public python-zope-location - (package - (name "python-zope-location") - (version "4.0.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.location/zope.location-" version ".tar.gz")) - (sha256 - (base32 - "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. - (propagated-inputs - `(("python-zope-proxy" ,python-zope-proxy) - ("python-zope-schema" ,python-zope-schema))) - (home-page "http://pypi.python.org/pypi/zope.location/") - (synopsis "Zope location library") - (description "Zope.location implements the concept of \"locations\" in -Zope3, which are are special objects that have a structural location.") - (license license:zpl2.1))) - -(define-public python2-zope-location - (package-with-python2 python-zope-location)) - -(define-public python-zope-security - (package - (name "python-zope-security") - (version "4.0.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.security/zope.security-" version ".tar.gz")) - (sha256 - (base32 - "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: Tests can't find zope.testrunner. - (propagated-inputs - `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) - ("python-zope-proxy" ,python-zope-proxy) - ("python-zope-schema" ,python-zope-schema))) - (native-inputs - `(("python-six" ,python-six) - ("python-zope-component" ,python-zope-component) - ("python-zope-configuration" ,python-zope-configuration) - ("python-zope-location" ,python-zope-location) - ("python-zope-testrunner" ,python-zope-testrunner) - ("python-zope-testing" ,python-zope-testing))) - (home-page "http://pypi.python.org/pypi/zope.security") - (synopsis "Zope security framework") - (description "Zope.security provides a generic mechanism to implement -security policies on Python objects.") - (license license:zpl2.1))) - -(define-public python2-zope-security - (let ((zope-security (package-with-python2 python-zope-security))) - (package (inherit zope-security) - (propagated-inputs - `(("python2-zope-testrunner" ,python2-zope-testrunner) - ,@(alist-delete - "python-zope-testrunner" - (package-propagated-inputs zope-security))))))) - -(define-public python-zope-component - (package - (name "python-zope-component") - (version "4.3.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "zope.component" version)) - (sha256 - (base32 - "1hlvzwj1kcfz1qms1dzhwsshpsf38z9clmyksb1gh41n8k3kchdv")))) - (build-system python-build-system) - (arguments - ;; Skip tests due to circular dependency with python-zope-security. - '(#:tests? #f)) - (native-inputs - `(("python-zope-testing" ,python-zope-testing))) - (propagated-inputs - `(("python-zope-event" ,python-zope-event) - ("python-zope-interface" ,python-zope-interface) - ("python-zope-i18nmessageid" ,python-zope-i18nmessageid) - ("python-zope-configuration" ,python-zope-configuration))) - (home-page "https://github.com/zopefoundation/zope.component") - (synopsis "Zope Component Architecture") - (description "Zope.component represents the core of the Zope Component -Architecture. Together with the zope.interface package, it provides -facilities for defining, registering and looking up components.") - (license license:zpl2.1))) - -(define-public python2-zope-component - (package-with-python2 python-zope-component)) - -(define-public python-pythondialog - (package - (name "python-pythondialog") - (version "3.4.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pythondialog" version)) + (uri (pypi-uri "pythondialog" version)) (sha256 (base32 "1728ghsran47jczn9bhlnkvk5bvqmmbihabgif5h705b84r1272c")))) @@ -9336,39 +8495,6 @@ (define-public python-configargparse (define-public python2-configargparse (package-with-python2 python-configargparse)) -(define-public python-ndg-httpsclient - (package - (name "python-ndg-httpsclient") - (version "0.4.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "ndg_httpsclient" version)) - (sha256 - (base32 - "1b5qirv46v4dpnmfqviwq42mdwfcby4dxmz0i41wad2337pqf2aq")))) - (build-system python-build-system) - (arguments - '(;; The tests appear to require networking. - #:tests? #f)) - (propagated-inputs - `(("python-pyopenssl" ,python-pyopenssl))) - (synopsis "HTTPS support for Python's httplib and urllib2") - (description "This is a HTTPS client implementation for httplib and urllib2 -based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation -over the default provided with Python and importantly enables full verification -of the SSL peer.") - (home-page "https://github.com/cedadev/ndg_httpsclient/") - (license license:bsd-3))) - -;; python2-openssl requires special care, so package-with-python2 is -;; insufficient. -(define-public python2-ndg-httpsclient - (package (inherit python-ndg-httpsclient) - (name "python2-ndg-httpsclient") - (arguments `(#:python ,python-2)) - (propagated-inputs - `(("python2-pyopenssl" ,python2-pyopenssl))))) - (define-public python-contextlib2 (package (name "python-contextlib2") @@ -9422,29 +8548,6 @@ (define-public python-texttable (define-public python2-texttable (package-with-python2 python-texttable)) -(define-public python-websocket-client - (package - (name "python-websocket-client") - (version "0.37.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "websocket_client" version)) - (sha256 - (base32 - "0h9glp1jll3z76ly3kg08aqgxqk0a68p4zi9yn50353bh5nj92v7")))) - (build-system python-build-system) - (propagated-inputs - `(("python-six" ,python-six))) - (home-page "https://github.com/liris/websocket-client") - (synopsis "WebSocket client for Python") - (description "The Websocket-client module provides the low level APIs for -WebSocket usage in Python programs.") - (license license:lgpl2.1+))) - -(define-public python2-websocket-client - (package-with-python2 python-websocket-client)) - (define-public python-atomicwrites (package (name "python-atomicwrites") @@ -9465,32 +8568,6 @@ (define-public python-atomicwrites (define-public python2-atomicwrites (package-with-python2 python-atomicwrites)) -(define-public python-requests-toolbelt - (package - (name "python-requests-toolbelt") - (version "0.8.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "requests-toolbelt" version)) - (sha256 - (base32 - "1dc7l42i4080r8i4m9fj51jx367lqkai170vrv7wd93gdj9k39gn")))) - (build-system python-build-system) - (native-inputs - `(("python-betamax" ,python-betamax) - ("python-mock" ,python-mock) - ("python-pytest" ,python-pytest))) - (propagated-inputs - `(("python-requests" ,python-requests))) - (synopsis "Extensions to python-requests") - (description "This is a toolbelt of useful classes and functions to be used -with python-requests.") - (home-page "https://github.com/sigmavirus24/requests-toolbelt") - (license license:asl2.0))) - -(define-public python2-requests-toolbelt - (package-with-python2 python-requests-toolbelt)) - (define-public python-click-threading (package (name "python-click-threading") @@ -9895,38 +8972,6 @@ (define-public python-hy (define-public python2-hy (package-with-python2 python-hy)) -(define-public python-rauth - (package - (name "python-rauth") - (version "0.7.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "rauth" version)) - (sha256 - (base32 - "02kv8w8l98ky223avyq7vw7x1f2ya9chrm59r77ylq45qb0xnk2j")))) - (build-system python-build-system) - (arguments - `(#:test-target "check")) - (propagated-inputs - `(("python-requests" ,python-requests))) - (home-page "https://github.com/litl/rauth") - (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly") - (description - "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also -provides service wrappers for convenient connection initialization and -authenticated session objects providing things like keep-alive.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-rauth)))))) - -(define-public python2-rauth - (let ((base (package-with-python2 (strip-python2-variant python-rauth)))) - (package - (inherit base) - (native-inputs `(("python2-unittest2" ,python2-unittest2) - ,@(package-native-inputs base)))))) - (define-public python2-functools32 (package (name "python2-functools32") @@ -10046,42 +9091,6 @@ (define-public python2-promise ("python2-pytest" ,python2-pytest) ,@(package-native-inputs promise)))))) -(define-public python-urllib3 - (package - (name "python-urllib3") - (version "1.18.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "urllib3" version)) - (sha256 - (base32 - "1wb8aqnq53vzh2amrv8kc66f3h6fx217y0q62y6n30a64p2yqmam")))) - (build-system python-build-system) - (arguments `(#:tests? #f)) - (native-inputs - `(;; some packages for tests - ("python-nose" ,python-nose) - ("python-mock" ,python-mock) - ("python-tornado" ,python-tornado))) - (propagated-inputs - `(;; These 5 inputs are used to build urrlib3[secure] - ("python-certifi" ,python-certifi) - ("python-cryptography" ,python-cryptography) ; - ("python-idna" ,python-idna) - ("python-ipaddress" ,python-ipaddress) - ("python-pyopenssl" ,python-pyopenssl))) - (home-page "https://urllib3.readthedocs.org/") - (synopsis "HTTP library with thread-safe connection pooling") - (description - "Urllib3 supports features left out of urllib and urllib2 libraries. It -can reuse the same socket connection for multiple requests, it can POST files, -supports url redirection and retries, and also gzip and deflate decoding.") - (license license:expat))) - -(define-public python2-urllib3 - (package-with-python2 python-urllib3)) - (define-public python-colorama (package (name "python-colorama") @@ -10243,34 +9252,6 @@ (define-public python-botocore (define-public python2-botocore (package-with-python2 python-botocore)) -(define-public awscli - (package - (name "awscli") - (version "1.11.164") - (source - (origin - (method url-fetch) - (uri (pypi-uri name version)) - (sha256 - (base32 - "05r8cw7i7ff6barpmyxxk3i52gzb1xyxwj8isynmiyqlmk3c9r8w")))) - (build-system python-build-system) - (propagated-inputs - `(("python-colorama" ,python-colorama) - ("python-botocore" ,python-botocore) - ("python-s3transfer" ,python-s3transfer) - ("python-docutils" ,python-docutils) - ("python-pyyaml" ,python-pyyaml) - ("python-rsa" ,python-rsa))) - (arguments - ;; FIXME: The 'pypi' release does not contain tests. - '(#:tests? #f)) - (home-page "https://aws.amazon.com/cli/") - (synopsis "Command line client for AWS") - (description "AWS CLI provides a unified command line interface to the -Amazon Web Services (AWS) API.") - (license license:asl2.0))) - (define-public python-hypothesis (package (name "python-hypothesis") @@ -10454,69 +9435,6 @@ (define-public python-waitress (define-public python2-waitress (package-with-python2 python-waitress)) -(define-public python-wsgiproxy2 - (package - (name "python-wsgiproxy2") - (version "0.4.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "WSGIProxy2" version ".zip")) - (sha256 - (base32 - "13kf9bdxrc95y9vriaz0viry3ah11nz4rlrykcfvb8nlqpx3dcm4")))) - (build-system python-build-system) - (arguments - '(;; Wsgiproxy2's test suite requires Restkit, which does not yet fully - ;; support Python 3: - ;; https://github.com/benoitc/restkit/issues/140 - #:tests? #f)) - (native-inputs - `(("unzip" ,unzip) - ("python-nose" ,python-nose) - ("python-coverage" ,python-coverage))) - (propagated-inputs - `(("python-six" ,python-six) - ("python-webob" ,python-webob))) - (home-page - "https://github.com/gawel/WSGIProxy2/") - (synopsis "WSGI Proxy with various http client backends") - (description "WSGI turns HTTP requests into WSGI function calls. -WSGIProxy turns WSGI function calls into HTTP requests. -It also includes code to sign requests and pass private data, -and to spawn subprocesses to handle requests.") - (license license:expat))) - -(define-public python2-wsgiproxy2 - (package-with-python2 python-wsgiproxy2)) - -(define-public python-pastedeploy - (package - (name "python-pastedeploy") - (version "1.5.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "PasteDeploy" version)) - (sha256 - (base32 - "1jz3m4hq8v6hyhfjz9425nd3nvn52cvbfipdcd72krjmla4qz1fm")))) - (build-system python-build-system) - (native-inputs - `(("python-nose" ,python-nose))) - (home-page "http://pythonpaste.org/deploy/") - (synopsis - "Load, configure, and compose WSGI applications and servers") - (description - "This tool provides code to load WSGI applications and servers from URIs; -these URIs can refer to Python Eggs for INI-style configuration files. Paste -Script provides commands to serve applications based on this configuration -file.") - (license license:expat))) - -(define-public python2-pastedeploy - (package-with-python2 python-pastedeploy)) - (define-public python-paste (package (name "python-paste") @@ -10611,52 +9529,6 @@ (define-public python-pyquery (define-public python2-pyquery (package-with-python2 python-pyquery)) -(define-public python-webtest - (package - (name "python-webtest") - (version "2.0.20") - (source - (origin - (method url-fetch) - (uri (pypi-uri "WebTest" version)) - (sha256 - (base32 - "0bv0qhdjakdsdgj4sk21gnpp8xp8bga4x03p6gjb83ihrsb7n4xv")))) - (build-system python-build-system) - (arguments - `(;; Unfortunately we have to disable tests! - ;; This release of WebTest is pinned to python-nose < 1.3, - ;; but older versions of python-nose are plagued with the following - ;; bug(s), which rears its ugly head during test execution: - ;; https://github.com/nose-devs/nose/issues/759 - ;; https://github.com/nose-devs/nose/pull/811 - #:tests? #f)) - ;; Commented out code is no good, but in this case, once tests - ;; are ready to be enabled again, we should put the following - ;; in place: - ;; (native-inputs - ;; `(("python-nose" ,python-nose) ; technially < 1.3, - ;; ; but see above comment - ;; ("python-coverage" ,python-coverage) - ;; ("python-mock" ,python-mock) - ;; ("python-pastedeploy" ,python-pastedeploy) - ;; ("python-wsgiproxy2" ,python-wsgiproxy2) - ;; ("python-pyquery" ,python-pyquery))) - (propagated-inputs - `(("python-waitress" ,python-waitress) - ("python-webob" ,python-webob) - ("python-six" ,python-six) - ("python-beautifulsoup4" ,python-beautifulsoup4))) - (home-page "http://webtest.pythonpaste.org/") - (synopsis "Helper to test WSGI applications") - (description "Webtest allows you to test your Python web applications -without starting an HTTP server. It supports anything that supports the -minimum of WSGI.") - (license license:expat))) - -(define-public python2-webtest - (package-with-python2 python-webtest)) - (define-public python-anyjson (package (name "python-anyjson") @@ -10968,213 +9840,72 @@ (define-public python-psycopg2 (base32 "0rda1j02ds6s28752fhmpwg761sh6jsxi1gpczqkrd28cki1cywv")))) (build-system python-build-system) - (arguments - ;; Tests would require a postgresql database "psycopg2_test" - ;; and a running postgresql database management service. - `(#:tests? #f)) ; TODO re-enable after providing a test-db. - (inputs - `(("postgresql" ,postgresql))) ; libpq - (home-page "http://initd.org/psycopg/") - (synopsis "Python PostgreSQL adapter") - (description - "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API 2.0. ") - (license license:lgpl3+))) - -(define-public python2-psycopg2 - (package-with-python2 python-psycopg2)) - -(define-public python-vobject - (package - (name "python-vobject") - (version "0.9.5") - (source (origin - (method url-fetch) - (uri (pypi-uri "vobject" version)) - (sha256 - (base32 - "0hqjgf3ay1m5w1c0k00g5yfpdz1zni5qnr5rh9b8fg9hjvhwlmhg")))) - (build-system python-build-system) - (arguments - '(;; The test suite relies on some non-portable Windows interfaces. - #:tests? #f)) - (propagated-inputs - `(("python-dateutil" ,python-dateutil) - ("python-pyicu" ,python-pyicu))) - (synopsis "Parse and generate vCard and vCalendar files") - (description "Vobject is intended to be a full featured Python package for -parsing and generating vCard and vCalendar files. Currently, iCalendar files -are supported and well tested. vCard 3.0 files are supported, and all data -should be imported, but only a few components are understood in a sophisticated -way.") - (home-page "http://eventable.github.io/vobject/") - (license license:asl2.0))) - -(define-public python2-vobject - (package-with-python2 python-vobject)) - -(define-public python-munkres - (package - (name "python-munkres") - (version "1.0.8") - (source (origin - (method url-fetch) - (uri (pypi-uri "munkres" version)) - (sha256 - (base32 - "0mbspx4zv8id4x6pim6ybsa1xh96qwpbqj7skbqz4c9c9nf1lpqq")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; no test suite - (home-page "http://software.clapper.org/munkres/") - (synopsis "Implementation of the Munkres algorithm") - (description "The Munkres module provides an implementation of the Munkres -algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm), -useful for solving the Assignment Problem.") - (license license:bsd-3))) - -(define-public python2-munkres - (package-with-python2 python-munkres)) - -(define-public python-flask - (package - (name "python-flask") - (version "0.11.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "Flask" version)) - (sha256 - (base32 - "03kbfll4sj3v5z7r31c7bhfpi11r1np076d4p1k2kg4yzcmkywdl")))) - (build-system python-build-system) - (propagated-inputs - `(("python-itsdangerous" ,python-itsdangerous) - ("python-jinja2" ,python-jinja2) - ("python-click" ,python-click) - ("python-werkzeug" ,python-werkzeug))) - (home-page "https://github.com/mitsuhiko/flask/") - (synopsis "Microframework based on Werkzeug, Jinja2 and good intentions") - (description "Flask is a micro web framework based on the Werkzeug toolkit -and Jinja2 template engine. It is called a micro framework because it does not -presume or force a developer to use a particular tool or library.") - (license license:bsd-3))) - -(define-public python2-flask - (package-with-python2 python-flask)) - -(define-public python-flask-wtf - (package - (name "python-flask-wtf") - (version "0.13.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-WTF" version)) - (sha256 - (base32 - "04l5743j2dici46038sqlzvf0xzpg8rf7s9ld2x24xv7f4idg990")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'check 'drop-failing-test - (lambda _ - ;; FIXME: This file tries resolving an external server, which - ;; fails. Try to patch out the offending section instead of - ;; deleting the whole thing. - (delete-file "tests/test_recaptcha.py") - #t))))) - (propagated-inputs - `(("python-flask-babel" ,python-flask-babel) - ("python-babel" ,python-babel) - ("python-wtforms" ,python-wtforms))) - (native-inputs - `(("python-nose" ,python-nose))) - (home-page "https://github.com/lepture/flask-wtf") - (synopsis "Simple integration of Flask and WTForms") - (description "Flask-WTF integrates Flask and WTForms, including CSRF, file -upload, and reCAPTCHA.") - (license license:bsd-3))) - -(define-public python2-flask-wtf - (package-with-python2 python-flask-wtf)) - -(define-public python-flask-multistatic - (package - (name "python-flask-multistatic") - (version "1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flask-multistatic" version)) - (sha256 - (base32 - "0p4v50rwv64wcd0zlq7rzl4waprwr4hj19s3cgf1isywa7jcisgm")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask))) - (home-page "https://pagure.io/flask-multistatic") - (synopsis "Flask plugin to allow overriding static files") - (description "@code{flask-multistatic} is a flask plugin that adds support -for overriding static files.") - (license license:gpl3+))) + (arguments + ;; Tests would require a postgresql database "psycopg2_test" + ;; and a running postgresql database management service. + `(#:tests? #f)) ; TODO re-enable after providing a test-db. + (inputs + `(("postgresql" ,postgresql))) ; libpq + (home-page "http://initd.org/psycopg/") + (synopsis "Python PostgreSQL adapter") + (description + "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API 2.0. ") + (license license:lgpl3+))) -(define-public python2-flask-multistatic - (package-with-python2 python-flask-multistatic)) +(define-public python2-psycopg2 + (package-with-python2 python-psycopg2)) -(define-public python-cookies +(define-public python-vobject (package - (name "python-cookies") - (version "2.2.1") + (name "python-vobject") + (version "0.9.5") (source (origin (method url-fetch) - (uri (pypi-uri "cookies" version)) + (uri (pypi-uri "vobject" version)) (sha256 (base32 - "13pfndz8vbk4p2a44cfbjsypjarkrall71pgc97glk5fiiw9idnn")))) + "0hqjgf3ay1m5w1c0k00g5yfpdz1zni5qnr5rh9b8fg9hjvhwlmhg")))) (build-system python-build-system) (arguments - `(;; test are broken: https://gitlab.com/sashahart/cookies/issues/3 + '(;; The test suite relies on some non-portable Windows interfaces. #:tests? #f)) - (native-inputs - `(("python-pytest" ,python2-pytest))) - (synopsis "HTTP cookie parser and renderer") - (description "A RFC 6265-compliant HTTP cookie parser and renderer in -Python.") - (home-page "https://gitlab.com/sashahart/cookies") - (license license:expat))) + (propagated-inputs + `(("python-dateutil" ,python-dateutil) + ("python-pyicu" ,python-pyicu))) + (synopsis "Parse and generate vCard and vCalendar files") + (description "Vobject is intended to be a full featured Python package for +parsing and generating vCard and vCalendar files. Currently, iCalendar files +are supported and well tested. vCard 3.0 files are supported, and all data +should be imported, but only a few components are understood in a sophisticated +way.") + (home-page "http://eventable.github.io/vobject/") + (license license:asl2.0))) -(define-public python2-cookies - (package-with-python2 python-cookies)) +(define-public python2-vobject + (package-with-python2 python-vobject)) -(define-public python-responses +(define-public python-munkres (package - (name "python-responses") - (version "0.5.1") + (name "python-munkres") + (version "1.0.8") (source (origin (method url-fetch) - (uri (pypi-uri "responses" version)) + (uri (pypi-uri "munkres" version)) (sha256 (base32 - "1spcfxixyk9k7pk82jm6zqkwk031s95lh8q0mz7539jrb7269bcc")))) + "0mbspx4zv8id4x6pim6ybsa1xh96qwpbqj7skbqz4c9c9nf1lpqq")))) (build-system python-build-system) (arguments - `(;; Test suite is not distributed: - ;; https://github.com/getsentry/responses/issues/38 - #:tests? #f)) - (native-inputs - `(("python-mock" ,python-mock))) - (propagated-inputs - `(("python-requests" ,python-requests) - ("python-cookies" ,python-cookies) - ("python-six" ,python-six))) - (home-page "https://github.com/getsentry/responses") - (synopsis "Utility for mocking out the `requests` Python library") - (description "A utility library for mocking out the `requests` Python -library.") - (license license:asl2.0))) + '(#:tests? #f)) ; no test suite + (home-page "http://software.clapper.org/munkres/") + (synopsis "Implementation of the Munkres algorithm") + (description "The Munkres module provides an implementation of the Munkres +algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm), +useful for solving the Assignment Problem.") + (license license:bsd-3))) -(define-public python2-responses - (package-with-python2 python-responses)) +(define-public python2-munkres + (package-with-python2 python-munkres)) (define-public python-whoosh (package @@ -11846,51 +10577,6 @@ (define-public python-gevent (define-public python2-gevent (package-with-python2 python-gevent)) -(define-public python-geventhttpclient - (package - (name "python-geventhttpclient") - (version "1.3.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "geventhttpclient" version)) - (sha256 - (base32 - "07d0q3wzmml75227r6y6mrl5a0zpf4v9gj0ni5rhbyzmaj4az1xx")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Delete pre-compiled files. - (for-each delete-file (find-files "src/geventhttpclient" - ".*\\.pyc")) - #t)))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'delete-network-tests - (lambda _ - (delete-file "src/geventhttpclient/tests/test_client.py") - #t)) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (zero? (system* "py.test" "src/geventhttpclient/tests" "-v"))))))) - (native-inputs - `(("python-pytest" ,python-pytest))) - (propagated-inputs - `(("python-certifi" ,python-certifi) - ("python-gevent" ,python-gevent) - ("python-six" ,python-six))) - (home-page "https://github.com/gwik/geventhttpclient") - (synopsis "HTTP client library for gevent") - (description "@code{python-geventhttpclient} is a high performance, -concurrent HTTP client library for python using @code{gevent}.") - (license license:expat))) - -(define-public python2-geventhttpclient - (package-with-python2 python-geventhttpclient)) - (define-public python-fastimport (package (name "python-fastimport") @@ -12559,44 +11245,6 @@ (define-public ptpython-2 (inherit base) (name "ptpython2")))) -(define-public python-requests-oauthlib - (package - (name "python-requests-oauthlib") - (version "0.6.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "requests-oauthlib" version)) - (sha256 - (base32 - "0ykff67sjcl227c23g0rxzfx34rr5bf21kwv0z3zmgk0lfmch7hn")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; removes tests that require network access - (add-before 'check 'pre-check - (lambda _ - (delete-file "tests/test_core.py") - #t))))) - (native-inputs - `(("python-requests-mock" ,python-requests-mock) - ("python-mock" ,python-mock))) - (propagated-inputs - `(("python-oauthlib" ,python-oauthlib) - ("python-requests" ,python-requests))) - (home-page - "https://github.com/requests/requests-oauthlib") - (synopsis - "OAuthlib authentication support for Requests") - (description - "Requests-OAuthlib uses the Python Requests and OAuthlib libraries to -provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients.") - (license license:isc))) - -(define-public python2-requests-oauthlib - (package-with-python2 python-requests-oauthlib)) - (define-public python-stem (package (name "python-stem") @@ -12921,36 +11569,6 @@ (define-public python-publicsuffix2 (define-public python2-publicsuffix2 (package-with-python2 python-publicsuffix2)) -(define-public python-url - (package - (name "python-url") - (version "0.2.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "url" version)) - (sha256 - (base32 - "0v879yadcz9qxfl41ak6wkga1kimp9cflla9ddz03hjjvgkqy5ki")))) - (build-system python-build-system) - (propagated-inputs - `(("python-publicsuffix" ,python-publicsuffix))) - (native-inputs - `(("python-coverage" ,python-coverage) - ("python-nose" ,python-nose))) - (arguments - `(#:tests? #f)) ; FIXME: tests fail with "ImportError: No module named 'tests'" - (home-page "https://github.com/seomoz/url-py") - (synopsis "URL Parsing") - (description "Library for parsing urls.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-url)))))) - -(define-public python2-url - (let ((base (package-with-python2 (strip-python2-variant python-url)))) - (package (inherit base) - (propagated-inputs - `(("python2-publicsuffix" ,python2-publicsuffix)))))) - (define-public python-freezegun (package (name "python-freezegun") @@ -13024,50 +11642,6 @@ (define-public python-odfpy (define-public python2-odfpy (package-with-python2 python-odfpy)) -(define-public python-cachecontrol - (package - (name "python-cachecontrol") - (version "0.11.6") - (source - (origin - (method url-fetch) - ;; Pypi does not have tests. - (uri (string-append - "https://github.com/ionrock/cachecontrol/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0yj60d0f69a2l8p7y86k4zhzzm6rnxpq74sfl240pry9l0lfw2vw")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; Drop test that requires internet access. - (delete-file "tests/test_regressions.py") - (setenv "PYTHONPATH" - (string-append (getcwd) "/build/lib:" - (getenv "PYTHONPATH"))) - (zero? (system* "py.test" "-vv"))))))) - (native-inputs - `(("python-pytest" ,python-pytest) - ("python-redis" ,python-redis) - ("python-webtest" ,python-webtest) - ("python-mock" ,python-mock))) - (propagated-inputs - `(("python-requests" ,python-requests) - ("python-lockfile" ,python-lockfile))) - (home-page "https://github.com/ionrock/cachecontrol") - (synopsis "The httplib2 caching algorithms for use with requests") - (description "CacheControl is a port of the caching algorithms in -@code{httplib2} for use with @code{requests} session objects.") - (license license:asl2.0))) - -(define-public python2-cachecontrol - (package-with-python2 python-cachecontrol)) - (define-public python-lit (package (name "python-lit") @@ -13437,96 +12011,6 @@ (define-public python-sphinx-alabaster-theme (define-public python2-sphinx-alabaster-theme (package-with-python2 python-sphinx-alabaster-theme)) -(define-public python-betamax - (package - (name "python-betamax") - (version "0.8.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "betamax" version)) - (sha256 - (base32 - "18f8v5gng3j773jlbbzx4rg1i4y2zw3m2l1zpmbvp8bh5a2q1i42")))) - (build-system python-build-system) - (arguments - '(;; Many tests fail because they require networking. - #:tests? #f)) - (propagated-inputs - `(("python-requests" ,python-requests))) - (home-page "https://github.com/sigmavirus24/betamax") - (synopsis "Record HTTP interactions with python-requests") - (description "Betamax will record your test suite's HTTP interactions and -replay them during future tests. It is designed to work with python-requests.") - (license license:expat))) - -(define-public python2-betamax - (package-with-python2 python-betamax)) - -(define-public python-betamax-matchers - (package - (name "python-betamax-matchers") - (version "0.4.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "betamax-matchers" version)) - (sha256 - (base32 - "07qpwjyq2i2aqhz5iwghnj4pqr2ys5n45v1vmpcfx9r5mhwrsq43")))) - (build-system python-build-system) - (propagated-inputs - `(("python-betamax" ,python-betamax) - ("python-requests-toolbelt" ,python-requests-toolbelt))) - (home-page "https://github.com/sigmavirus24/betamax_matchers") - (synopsis "VCR imitation for python-requests") - (description "@code{betamax-matchers} provides a set of Matchers for -Betamax.") - (license license:asl2.0))) - -(define-public python2-betamax-matchers - (package-with-python2 python-betamax-matchers)) - -(define-public python-s3transfer - (package - (name "python-s3transfer") - (version "0.1.11") - (source (origin - (method url-fetch) - (uri (pypi-uri "s3transfer" version)) - (sha256 - (base32 - "0yfrfnf404cxzn3iswibqjxklsl0b1lwgqiml6pwiqj79a7zbwbn")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; 7 of the 'integration' tests require network access or login - ;; credentials. - (zero? (system* "nosetests" "--exclude=integration"))))))) - (native-inputs - `(("python-docutils" ,python-docutils) - ("python-mock" ,python-mock) - ("python-nose" ,python-nose))) - (propagated-inputs - `(("python-botocore" ,python-botocore))) - (synopsis "Amazon S3 Transfer Manager") - (description "S3transfer is a Python library for managing Amazon S3 -transfers.") - (home-page "https://github.com/boto/s3transfer") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-s3transfer)))))) - -(define-public python2-s3transfer - (let ((base (package-with-python2 (strip-python2-variant python-s3transfer)))) - (package - (inherit base) - (native-inputs - `(("python2-futures" ,python2-futures) - ,@(package-native-inputs base)))))) - (define-public python-setproctitle (package (name "python-setproctitle") @@ -13617,119 +12101,43 @@ (define-public python-validictory (native-inputs `(("python-pytest" ,python-pytest))) (home-page - "https://github.com/jamesturk/validictory") - (synopsis "General purpose Python data validator") - (description "It allows validation of arbitrary Python data structures. - -The schema format is based on the JSON Schema -proposal (http://json-schema.org), so combined with json the library is also -useful as a validator for JSON data.") - (license license:expat))) - -(define-public python2-validictory - (package-with-python2 python-validictory)) - -(define-public python-aniso8601 - (package - (name "python-aniso8601") - (version "1.3.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "aniso8601" version)) - (sha256 - (base32 - "1waj54iv3n3lw1fapbz8a93yjgrybgpc86wif5baxdh1arpj9df3")))) - (build-system python-build-system) - (propagated-inputs - `(("python-dateutil" ,python-dateutil))) - (home-page - "https://bitbucket.org/nielsenb/aniso8601") - (synopsis - "Python library for parsing ISO 8601 strings") - (description - "This package contains a library for parsing ISO 8601 datetime strings.") - (license license:bsd-3))) - -(define-public python2-aniso8601 - (package-with-python2 python-aniso8601)) - -(define-public python-flask-restful - (package - (name "python-flask-restful") - (version "0.3.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-RESTful" version)) - (sha256 - (base32 - "0hjcmdb56b7z4bkw848lxfkyrpnkwzmqn2dgnlv12mwvjpzsxr6c")))) - (build-system python-build-system) - (propagated-inputs - `(("python-aniso8601" ,python-aniso8601) - ("python-flask" ,python-flask) - ("python-pycrypto" ,python-pycrypto) - ("python-pytz" ,python-pytz))) - (native-inputs - `(;; Optional dependency of Flask. Tests need it. - ("python-blinker" ,python-blinker) - ("python-mock" ,python-mock) ; For tests - ("python-nose" ,python-nose) ; For tests - ("python-sphinx" ,python-sphinx))) - (home-page - "https://www.github.com/flask-restful/flask-restful/") - (synopsis - "Flask module for creating REST APIs") - (description - "This package contains a Flask module for creating REST APIs.") - (license license:bsd-3))) + "https://github.com/jamesturk/validictory") + (synopsis "General purpose Python data validator") + (description "It allows validation of arbitrary Python data structures. -(define-public python-flask-basicauth - (package - (name "python-flask-basicauth") - (version "0.2.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-BasicAuth" version)) - (sha256 - (base32 - "1zq1spkjr4sjdnalpp8wl242kdqyk6fhbnhr8hi4r4f0km4bspnz")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask))) - (home-page - "https://github.com/jpvanhal/flask-basicauth") - (synopsis - "HTTP basic access authentication for Flask") - (description - "This package provides HTTP basic access authentication for Flask.") - (license license:bsd-3))) +The schema format is based on the JSON Schema +proposal (http://json-schema.org), so combined with json the library is also +useful as a validator for JSON data.") + (license license:expat))) + +(define-public python2-validictory + (package-with-python2 python-validictory)) -(define-public python-flask-sqlalchemy +(define-public python-aniso8601 (package - (name "python-flask-sqlalchemy") - (version "2.1") + (name "python-aniso8601") + (version "1.3.0") (source (origin (method url-fetch) - (uri (pypi-uri "Flask-SQLAlchemy" version)) + (uri (pypi-uri "aniso8601" version)) (sha256 (base32 - "1i9ps5d5snih9xlqhrvmi3qfiygkmqzxh92n25kj4pf89kj4s965")))) + "1waj54iv3n3lw1fapbz8a93yjgrybgpc86wif5baxdh1arpj9df3")))) (build-system python-build-system) (propagated-inputs - `(("python-flask" ,python-flask) - ("python-sqlalchemy" ,python-sqlalchemy))) + `(("python-dateutil" ,python-dateutil))) (home-page - "https://github.com/mitsuhiko/flask-sqlalchemy") + "https://bitbucket.org/nielsenb/aniso8601") (synopsis - "Module adding SQLAlchemy support to your Flask application") + "Python library for parsing ISO 8601 strings") (description - "This package adds SQLAlchemy support to your Flask application.") + "This package contains a library for parsing ISO 8601 datetime strings.") (license license:bsd-3))) +(define-public python2-aniso8601 + (package-with-python2 python-aniso8601)) + (define-public python-pyev (package (name "python-pyev") @@ -13917,44 +12325,6 @@ (define-public python-rednose (define-public python2-rednose (package-with-python2 python-rednose)) -(define-public python-flask-restplus - (package - (name "python-flask-restplus") - (version "0.9.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flask-restplus" version)) - (sha256 - (base32 - "11his6ii5brpkhld0d5bwzjjw4q3vmplpd6fmgzjrvvklsbk0cf4")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; FIXME: 35/882 tests failing. - ;; #:phases - ;; (modify-phases %standard-phases - ;; (replace 'check - ;; (lambda _ - ;; (zero? (system* "nosetests"))))))) - (propagated-inputs - `(("python-aniso8601" ,python-aniso8601) - ("python-flask" ,python-flask) - ("python-jsonschema" ,python-jsonschema) - ("python-pytz" ,python-pytz) - ("python-six" ,python-six))) - (native-inputs - `(("python-tzlocal" ,python-tzlocal) - ("python-blinker" ,python-blinker) - ("python-nose" ,python-nose) - ("python-rednose" ,python-rednose))) - (home-page "https://github.com/noirbizarre/flask-restplus") - (synopsis "Framework for documented API development with Flask") - (description "This package provides a framework for API development with -the Flask web framework in Python. It is similar to package -@code{python-flask-restful} but supports the @code{python-swagger} -documentation builder.") - (license license:expat))) - (define-public python-sadisplay (package (name "python-sadisplay") @@ -13981,29 +12351,6 @@ (define-public python-sadisplay (define-public python2-sadisplay (package-with-python2 python-sadisplay)) -(define-public python-flask-restful-swagger - (package - (name "python-flask-restful-swagger") - (version "0.19") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flask-restful-swagger" version)) - (sha256 - (base32 - "16msl8hd5xjmj833bpy264v98cpl5hkw5bgl5gf5vgndxbv3rm6v")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask-restful" ,python-flask-restful))) - (home-page "https://github.com/rantav/flask-restful-swagger") - (synopsis "Extract Swagger specs from Flask-Restful projects") - (description "This package lets you extract Swagger API documentation -specs from your Flask-Restful projects.") - (license license:expat))) - -(define-public python2-flask-restful-swagger - (package-with-python2 python-flask-restful-swagger)) - (define-public python-argcomplete (package (name "python-argcomplete") @@ -14674,82 +13021,6 @@ (define-public python2-larch clone, while other processes access the original tree.") (license license:gpl3+))) -(define-public python-htmlmin - (package - (name "python-htmlmin") - (version "0.1.10") - (source - (origin - (method url-fetch) - (uri (pypi-uri "htmlmin" version)) - (sha256 - (base32 - "0qxa93j3p1ak32qh8d9kshqv8v3z0hkc13dwbhp5cn7sn3xmsp6a")))) - (arguments - `(#:tests? #f)) ;htmlmin has no tests - (build-system python-build-system) - (home-page "https://htmlmin.readthedocs.org/en/latest/") - (synopsis "HTML minifier") - (description "@code{htmlmin} is an HTML minifier that just works. -It comes with safe defaults and easily configurable options.") - (license license:bsd-3))) - -(define-public python2-htmlmin - (package-with-python2 python-htmlmin)) - -(define-public python-flask-htmlmin - (package - (name "python-flask-htmlmin") - (version "1.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-HTMLmin" version)) - (sha256 - (base32 - "1n6zlq72kakkw0z2jpq6nh74lfsmxybm4g053pwhc14fbr809348")))) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-htmlmin" ,python-htmlmin))) - (build-system python-build-system) - (home-page "https://github.com/hamidfzm/Flask-HTMLmin") - (synopsis "HTML response minifier for Flask") - (description - "Minify @code{text/html} MIME type responses when using @code{Flask}.") - (license license:bsd-3))) - -(define-public python2-flask-htmlmin - (package-with-python2 python-flask-htmlmin)) - -(define-public python-flask-login - (package - (name "python-flask-login") - (version "0.4.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/maxcountryman/flask-login/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1pdqp7a2gyb7k06xda004x0fi2w66s6kn2i0ndkqndmg12d83f9w")))) - (arguments - ;; Tests fail PEP8 compliance. See: - ;; https://github.com/maxcountryman/flask-login/issues/340 - `(#:tests? #f)) - (build-system python-build-system) - (home-page "https://github.com/maxcountryman/flask-login") - (synopsis "User session management for Flask") - (description - "@code{Flask-Login} provides user session management for Flask. It -handles the common tasks of logging in, logging out, and remembering your -users' sessions over extended periods of time.") - (license license:expat))) - -(define-public python2-flask-login - (package-with-python2 python-flask-login)) - (define-public python-astroid (package (name "python-astroid") @@ -15076,58 +13347,6 @@ (define-public python-fudge (define-public python2-fudge (package-with-python2 python-fudge)) -(define-public python-oauth2client - (package - (name "python-oauth2client") - (version "4.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "oauth2client" version)) - (sha256 - (base32 - "1irqqap2zibysf8dba8sklfqikia579srd0phm5n754ni0h59gl0")))) - (build-system python-build-system) - (arguments - `(#:tests? #f)) - (propagated-inputs - `(("python-httplib2" ,python-httplib2) - ("python-pyasn1" ,python-pyasn1) - ("python-pyasn1-modules" ,python-pyasn1-modules) - ("python-rsa" ,python-rsa) - ("python-six" ,python-six))) - (home-page "http://github.com/google/oauth2client/") - (synopsis "OAuth 2.0 client library") - (description "@code{python-oauth2client} provides an OAuth 2.0 client -library for Python") - (license license:asl2.0))) - -(define-public python-flask-oidc - (package - (name "python-flask-oidc") - (version "1.1.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flask-oidc" version)) - (sha256 - (base32 - "1ay5j0mf174bix7i67hclr95gv16z81fpx0dijvi0gydvdj3ddy2")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-itsdangerous" ,python-itsdangerous) - ("python-oauth2client" ,python-oauth2client) - ("python-six" ,python-six))) - (native-inputs - `(("python-nose" ,python-nose) - ("python-mock" ,python-mock))) - (home-page "https://github.com/puiterwijk/flask-oidc") - (synopsis "OpenID Connect extension for Flask") - (description "@code{python-flask-oidc} provides an OpenID Connect extension -for Flask.") - (license license:bsd-2))) - (define-public python-mwclient (package (name "python-mwclient") @@ -15260,30 +13479,6 @@ (define-public python-utils (define-public python2-utils (package-with-python2 python-utils)) -(define-public python-webassets - (package - (name "python-webassets") - (version "0.12.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "webassets" version)) - (sha256 - (base32 - "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7")))) - (build-system python-build-system) - (native-inputs - `(("python-jinja2" ,python-jinja2) - ("python-mock" ,python-mock) - ("python-nose" ,python-nose) - ("python-pytest" ,python-pytest))) - (home-page "https://github.com/miracle2k/webassets") - (synopsis "Media asset management") - (description "Merges, minifies and compresses Javascript and CSS files, -supporting a variety of different filters, including YUI, jsmin, jspacker or -CSS tidy. Also supports URL rewriting in CSS files.") - (license license:bsd-2))) - (define-public python-sphinx-me (package (name "python-sphinx-me") @@ -15308,26 +13503,6 @@ (define-public python-sphinx-me (define-public python2-sphinx-me (package-with-python2 python-sphinx-me)) -(define-public python-cssmin - (package - (name "python-cssmin") - (version "0.2.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cssmin" version)) - (sha256 - (base32 - "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0")))) - (build-system python-build-system) - (home-page "https://github.com/zacharyvoase/cssmin") - (synopsis "Python port of the YUI CSS Compressor") - (description "Python port of the YUI CSS Compressor.") - (license (list license:expat license:bsd-3)))) - -(define-public python2-cssmin - (package-with-python2 python-cssmin)) - (define-public python-diff-match-patch (package (name "python-diff-match-patch") @@ -15400,38 +13575,6 @@ (define-public python-nosexcover (define-public python2-nosexcover (package-with-python2 python-nosexcover)) -(define-public python-elasticsearch - (package - (name "python-elasticsearch") - (version "1.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "elasticsearch" version)) - (sha256 - (base32 - "1sdw1r05cw7ihnmng8ra9v968fj7bq6sji8i1dikymsnkcpgc69g")))) - (build-system python-build-system) - (native-inputs - `(("python-mock" ,python-mock) - ("python-nosexcover" ,python-nosexcover) - ("python-pyaml" ,python-pyaml) - ("python-requests" ,python-requests))) - (propagated-inputs - `(("urllib3" ,python-urllib3))) - (arguments - ;; tests require the test_elasticsearch module but it is not distributed. - `(#:tests? #f)) - (home-page "https://github.com/elastic/elasticsearch-py") - (synopsis "Low-level client for Elasticsearch") - (description "Official low-level client for Elasticsearch. Its goal is to -provide common ground for all Elasticsearch-related code in Python; because of -this it tries to be opinion-free and very extendable.") - (license license:expat))) - -(define-public python2-elasticsearch - (package-with-python2 python-elasticsearch)) - (define-public python-levenshtein (package (name "python-levenshtein") @@ -15698,65 +13841,6 @@ (define-public python-behave-web-api (define-public python2-behave-web-api (package-with-python2 python-behave-web-api)) -(define-public python-flask-script - (package - (name "python-flask-script") - (version "2.0.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-Script" version)) - (sha256 - (base32 - "0zqh2yq8zk7m9b4xw1ryqmrljkdigfb3hk5155a3b5hkfnn6xxyf")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-argcomplete" ,python-argcomplete) - ("python-werkzeug" ,python-werkzeug))) - (native-inputs - `(("python-pytest" ,python-pytest))) - (home-page - "http://github.com/smurfix/flask-script") - (synopsis "Scripting support for Flask") - (description "The Flask-Script extension provides support for writing -external scripts in Flask. This includes running a development server, -a customised Python shell, scripts to set up your database, cronjobs, -and other command-line tasks that belong outside the web application -itself.") - (license license:bsd-3))) - -(define-public python2-flask-script - (package-with-python2 python-flask-script)) - -(define-public python-flask-migrate - (package - (name "python-flask-migrate") - (version "2.0.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-Migrate" version)) - (sha256 - (base32 - "107x78lkqsnbg92dld3dkagg07jvchp3ib3y0sivc4ipz6n1y7rk")))) - (build-system python-build-system) - (propagated-inputs - `(("python-flask" ,python-flask) - ("python-alembic" ,python-alembic) - ("python-sqlalchemy" ,python-sqlalchemy) - ("python-flask-script" ,python-flask-script) - ("python-flask-sqlalchemy" ,python-flask-sqlalchemy))) - (home-page "http://github.com/miguelgrinberg/flask-migrate/") - (synopsis "SQLAlchemy database migrations for Flask programs using -Alembic") - (description "This package contains SQLAlchemy database migration tools -for Flask programs that are using @code{python-alembic}.") - (license license:expat))) - -(define-public python2-flask-migrate - (package-with-python2 python-flask-migrate)) - (define-public python-packaging (package (name "python-packaging") @@ -15810,46 +13894,6 @@ (define-public python-sql (define-public python2-sql (package-with-python2 python-sql)) -(define-public python-genshi - (package - (name "python-genshi") - (version "0.7") - (source - (origin - (method url-fetch) - (uri (string-append - "https://ftp.edgewall.org/pub/genshi/Genshi-" - version ".tar.gz")) - (patches - (search-patches - ;; The first 4 patches are in the master branch upstream. - ;; See this as a reference https://genshi.edgewall.org/ticket/582 - ;; The last 2 are NOT in any branch. - ;; They were sent as attachments to a ticket opened at - ;; https://genshi.edgewall.org/ticket/602#no1 - "python-genshi-stripping-of-unsafe-script-tags.patch" - "python-genshi-disable-speedups-on-python-3.3.patch" - "python-genshi-isstring-helper.patch" - "python-genshi-add-support-for-python-3.4-AST.patch" - "python-genshi-fix-tests-on-python-3.5.patch" - "python-genshi-buildable-on-python-2.7.patch")) - (sha256 - (base32 - "0lkkbp6fbwzv0zda5iqc21rr7rdldkwh3hfabfjl9i4bwq14858x")))) - (build-system python-build-system) - (home-page "https://genshi.edgewall.org/") - (synopsis "Toolkit for generation of output for the web") - (description "Genshi is a Python library that provides an integrated set -of components for parsing, generating, and processing HTML, XML or other -textual content for output generation on the web.") - (license license:bsd-3))) - -;; The linter here claims that patch file names should start with the package -;; name. But, in this case the patches are inherited from python-genshi with -;; the "python-genshi-" prefix instead of "python2-genshi-". -(define-public python2-genshi - (package-with-python2 python-genshi)) - (define-public python-relatorio (package (name "python-relatorio") @@ -16550,56 +14594,6 @@ (define-public python-xenon (define-public python2-xenon (package-with-python2 python-xenon)) -(define-public python-flask-principal - (package - (name "python-flask-principal") - (version "0.4.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-Principal" version)) - (sha256 - (base32 - "0lwlr5smz8vfm5h9a9i7da3q1c24xqc6vm9jdywdpgxfbi5i7mpm")))) - (build-system python-build-system) - (propagated-inputs - `(("python-blinker" ,python-blinker))) - (native-inputs - `(("python-flask" ,python-flask) - ("python-nose" ,python-nose))) - (home-page "http://packages.python.org/Flask-Principal/") - (synopsis "Identity management for Flask") - (description "@code{flask_principal} is a identity management library for -Flask. It supports managing both authentication and authorization data in a -thread-local variable.") - (license license:expat))) - -(define-public python2-flask-principal - (package-with-python2 python-flask-principal)) - -(define-public python-flask-httpauth - (package - (name "python-flask-httpauth") - (version "3.2.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Flask-HTTPAuth" version)) - (sha256 - (base32 - "13gff5w1mqpzm5nccyg02v3ifb9ifqh5k866cssjhghhg6msfjsz")))) - (build-system python-build-system) - (native-inputs - `(("python-flask" ,python-flask))) - (home-page "http://github.com/miguelgrinberg/flask-httpauth/") - (synopsis "Basic and Digest HTTP authentication for Flask routes") - (description "@code{flask_httpauth} provides Basic and Digest HTTP -authentication for Flask routes.") - (license license:expat))) - -(define-public python2-flask-httpauth - (package-with-python2 python-flask-httpauth)) - (define-public python-pysocks (package (name "python-pysocks") @@ -16644,27 +14638,6 @@ (define-public python-pyaes (define-public python2-pyaes (package-with-python2 python-pyaes)) -(define-public python-uritemplate - (package - (name "python-uritemplate") - (version "3.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "uritemplate" version)) - (sha256 - (base32 - "0781gm9g34wa0asc19dx81ng0nqq07igzv3bbvdqmz13pv7469n0")))) - (build-system python-build-system) - (home-page "https://uritemplate.readthedocs.org") - (synopsis "Library to deal with URI Templates") - (description "@code{uritemplate} provides Python library to deal with URI -Templates.") - (license license:bsd-2))) - -(define-public python2-uritemplate - (package-with-python2 python-uritemplate)) - (define-public python-pydiff (package (name "python-pydiff") diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 2ccfc2cec4..88ba1c3d63 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -41,6 +41,7 @@ (define-module (gnu packages rdf) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages tls) #:use-module (gnu packages xml)) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 98867fd391..34de680a7d 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -52,6 +52,7 @@ (define-module (gnu packages tls) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages texinfo) #:use-module (gnu packages base) #:use-module (srfi srfi-1)) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 85e7e8779e..9562bbfa8d 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -37,6 +37,7 @@ (define-module (gnu packages tor) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages autotools) #:use-module (gnu packages tls) diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm index c9e9e50f84..99245fa0b0 100644 --- a/gnu/packages/tryton.scm +++ b/gnu/packages/tryton.scm @@ -21,6 +21,7 @@ (define-module (gnu packages tryton) #:use-module (gnu packages) #:use-module (gnu packages gtk) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system python)) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 22c48f0c6b..20f20a4040 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -73,6 +73,7 @@ (define-module (gnu packages version-control) #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages readline) #:use-module (gnu packages databases) #:use-module (gnu packages admin) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 0369ac6134..385147c379 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -35,6 +35,7 @@ (define-module (gnu packages web-browsers) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages image) #:use-module (gnu packages tls) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index dc9849eafe..a78f5b6f0d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -92,6 +92,7 @@ (define-module (gnu packages web) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) -- cgit v1.2.3 From 33dc54b08c5b56fbe87229fe05f5c7de8c6f1179 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 18 Nov 2017 11:58:44 +0100 Subject: gnu: Move date/time packages from python.scm to time.scm. * gnu/packages/python.scm (python-pytz, python2-pytz, python-dateutil, python2-dateutil, python-parsedatetime, python2-parsedatetime, python-tzlocal, python-isodate, python2-isodate, python-iso8601, python2-iso8601, python-monotonic, python2-monotonic, python-pyrfc3339, python2-pyrfc3339, python-arrow, python2-arrow, python-aniso8601, python2-aniso8601): Move from here... * gnu/packages/time.scm: ...to here. * gnu/packages/calendar.scm, gnu/packages/check.scm, gnu/packages/django.scm, gnu/packages/ebook.scm, gnu/packages/gnome.scm, gnu/packages/irc.scm, gnu/packages/jrnl.scm, gnu/packages/mail.scm, gnu/packages/openstack.scm, gnu/packages/package-management.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/rdf.scm, gnu/packages/statistics.scm, gnu/packages/tls.scm, gnu/packages/tryton.scm, gnu/packages/version-control.scm: Adjust accordingly. --- gnu/packages/calendar.scm | 1 + gnu/packages/check.scm | 1 + gnu/packages/django.scm | 3 +- gnu/packages/ebook.scm | 1 + gnu/packages/gnome.scm | 1 + gnu/packages/irc.scm | 1 + gnu/packages/jrnl.scm | 3 +- gnu/packages/mail.scm | 1 + gnu/packages/openstack.scm | 1 + gnu/packages/package-management.scm | 1 + gnu/packages/python-crypto.scm | 1 + gnu/packages/python-web.scm | 1 + gnu/packages/python.scm | 254 +--------------------------------- gnu/packages/rdf.scm | 1 + gnu/packages/statistics.scm | 1 + gnu/packages/time.scm | 262 +++++++++++++++++++++++++++++++++++- gnu/packages/tls.scm | 1 + gnu/packages/tryton.scm | 1 + gnu/packages/version-control.scm | 1 + 19 files changed, 280 insertions(+), 257 deletions(-) (limited to 'gnu/packages/version-control.scm') diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 23e2da05ea..159e606a24 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -38,6 +38,7 @@ (define-module (gnu packages calendar) #:use-module (gnu packages icu4c) #:use-module (gnu packages perl) #:use-module (gnu packages python) + #:use-module (gnu packages time) #:use-module (srfi srfi-26)) (define-public libical diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 149a276316..5a926eb596 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -50,6 +50,7 @@ (define-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages python) #:use-module (gnu packages python-web) + #:use-module (gnu packages time) #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 6b71092ac7..bbf231ab53 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -29,7 +29,8 @@ (define-module (gnu packages django) #:use-module (gnu packages databases) #:use-module (gnu packages check) #:use-module (gnu packages python) - #:use-module (gnu packages python-web)) + #:use-module (gnu packages python-web) + #:use-module (gnu packages time)) (define-public python-django (package diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 8cf977cff3..7d34bfafac 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -47,6 +47,7 @@ (define-module (gnu packages ebook) #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages serialization) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages xml) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 33d4c7d8e8..25e0e8fe31 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -122,6 +122,7 @@ (define-module (gnu packages gnome) #:use-module (gnu packages compression) #:use-module (gnu packages spice) #:use-module (gnu packages tex) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages webkit) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 120bdc4371..e1ceb508bb 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -56,6 +56,7 @@ (define-module (gnu packages irc) #:use-module (gnu packages ruby) #:use-module (gnu packages qt) #:use-module (gnu packages tcl) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages web)) diff --git a/gnu/packages/jrnl.scm b/gnu/packages/jrnl.scm index d4c41d5b9e..ec9e20681c 100644 --- a/gnu/packages/jrnl.scm +++ b/gnu/packages/jrnl.scm @@ -25,7 +25,8 @@ (define-module (gnu packages jrnl) #:use-module (guix build-system python) #:use-module (gnu packages check) #:use-module (gnu packages python) - #:use-module (gnu packages python-crypto)) + #:use-module (gnu packages python-crypto) + #:use-module (gnu packages time)) (define-public jrnl (package diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 1e13bb0afd..77d935171a 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -96,6 +96,7 @@ (define-module (gnu packages mail) #:use-module (gnu packages samba) #:use-module (gnu packages screen) #:use-module (gnu packages tcl) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages networking) #:use-module (gnu packages web) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 6745b203ba..31922833b7 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -25,6 +25,7 @@ (define-module (gnu packages openstack) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages ssh) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (guix build-system python) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 9d178aae60..1570992b26 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -58,6 +58,7 @@ (define-module (gnu packages package-management) #:use-module (gnu packages popt) #:use-module (gnu packages gnuzilla) #:use-module (gnu packages cpio) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages ssh) #:use-module (gnu packages vim) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index ebb6e0617f..77409d86d2 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -43,6 +43,7 @@ (define-module (gnu packages python-crypto) #:use-module (gnu packages multiprecision) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 57938d0cfd..12e45b2eff 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -50,6 +50,7 @@ (define-module (gnu packages python-web) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) + #:use-module (gnu packages time) #:use-module (gnu packages xml) #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index fd83cf7e0d..d46119718b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -111,6 +111,7 @@ (define-module (gnu packages python) #:use-module (gnu packages statistics) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages video) @@ -469,31 +470,6 @@ (define-public python-psutil (define-public python2-psutil (package-with-python2 python-psutil)) -(define-public python-pytz - (package - (name "python-pytz") - (version "2017.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pytz" version ".zip")) - (sha256 - (base32 - "12cmd3j46d2gcw08bspvp6s9icfcvx88zjz52n1bli9dyvl5dh7m")))) - (build-system python-build-system) - (native-inputs - `(("unzip" ,unzip))) - (home-page "http://pythonhosted.org/pytz") - (synopsis "Python timezone library") - (description "This library brings the Olson tz database into Python. It -allows accurate and cross platform timezone calculations using Python 2.4 or -higher. It also solves the issue of ambiguous times at the end of daylight -saving time. Almost all of the Olson timezones are supported.") - (license license:expat))) - -(define-public python2-pytz - (package-with-python2 python-pytz)) - (define-public python-clyent (package (name "python-clyent") @@ -1004,59 +980,6 @@ (define-public python-six (define-public python2-six (package-with-python2 python-six)) -(define-public python-dateutil - (package - (name "python-dateutil") - (version "2.6.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python-dateutil" version)) - (sha256 - (base32 - "1lhq0hxjc3cfha101q02ld5ijlpfyjn2w1yh7wvpiy367pgzi8k2")))) - (build-system python-build-system) - (propagated-inputs - `(("python-six" ,python-six))) - (home-page "https://dateutil.readthedocs.io/en/stable/") - (synopsis "Extensions to the standard datetime module") - (description - "The dateutil module provides powerful extensions to the standard -datetime module, available in Python 2.3+.") - (license license:bsd-3))) - -(define-public python2-dateutil - (package-with-python2 python-dateutil)) - -(define-public python-parsedatetime - (package - (name "python-parsedatetime") - (version "2.4") - (source - (origin - (method url-fetch) - (uri (pypi-uri "parsedatetime" version)) - (sha256 - (base32 - "0jxqkjks7z9dn222cqgvskp4wr6d92aglinxq7pd2w4mzdc7r09x")))) - (build-system python-build-system) - (native-inputs - `(("python-nose" ,python-nose) - ("python-pyicu" ,python-pyicu) - ("python-pytest" ,python-pytest) - ("python-pytest-runner" ,python-pytest-runner))) - (propagated-inputs - `(("python-future" ,python-future))) - (home-page "https://github.com/bear/parsedatetime/") - (synopsis - "Parse human-readable date/time text") - (description - "Parse human-readable date/time text.") - (license license:asl2.0))) - -(define-public python2-parsedatetime - (package-with-python2 python-parsedatetime)) - (define-public python-schedule (package (name "python-schedule") @@ -1117,30 +1040,6 @@ (define-public python-pandas (define-public python2-pandas (package-with-python2 python-pandas)) -(define-public python-tzlocal - (package - (name "python-tzlocal") - (version "1.2.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tzlocal" version)) - (sha256 - (base32 - "0paj7vlsb0np8b5sp4bv64wxv7qk2piyp7xg29pkhdjwsbls9fnb")))) - (build-system python-build-system) - (propagated-inputs - `(("python-pytz" ,python-pytz))) - (home-page "https://github.com/regebro/tzlocal") - (synopsis - "Local timezone information for Python") - (description - "Tzlocal returns a tzinfo object with the local timezone information. -This module attempts to fix a glaring hole in pytz, that there is no way to -get the local timezone information, unless you know the zoneinfo name, and -under several distributions that's hard or impossible to figure out.") - (license license:cc0))) - (define-public python2-mechanize (package (name "python2-mechanize") @@ -4564,30 +4463,6 @@ (define-public python2-ipython `(("python2-mock" ,python2-mock) ,@(package-native-inputs ipython)))))) -(define-public python-isodate - (package - (name "python-isodate") - (version "0.5.4") - (source - (origin - (method url-fetch) - (uri (pypi-uri "isodate" version)) - (sha256 - (base32 - "0cafaiwixgpxwh9dsd28qb0dbzsj6xpxjdkyk30ns91ps10mq422")))) - (build-system python-build-system) - (home-page - "http://cheeseshop.python.org/pypi/isodate") - (synopsis - "Python date parser and formatter") - (description - "Python-isodate is a python module for parsing and formatting -ISO 8601 dates, time and duration.") - (license license:bsd-3))) - -(define-public python2-isodate - (package-with-python2 python-isodate)) - (define-public python-urwid (package (name "python-urwid") @@ -5791,55 +5666,6 @@ (define-public python-wrapt (define-public python2-wrapt (package-with-python2 python-wrapt)) -(define-public python-iso8601 - (package - (name "python-iso8601") - (version "0.1.11") - (source - (origin - (method url-fetch) - (uri (pypi-uri "iso8601" version)) - (sha256 - (base32 - "0c7gh3lsdjds262h0v1sqc66l7hqgfwbakn96qrhdbl0i3vm5yz8")))) - (build-system python-build-system) - (native-inputs - `(("python-pytest" ,python-pytest))) - (home-page "https://bitbucket.org/micktwomey/pyiso8601") - (synopsis "Module to parse ISO 8601 dates") - (description - "This module parses the most common forms of ISO 8601 date strings (e.g. -@code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.") - (license license:expat))) - -(define-public python2-iso8601 - (package-with-python2 python-iso8601)) - -(define-public python-monotonic - (package - (name "python-monotonic") - (version "0.3") - (source - (origin - (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/m/monotonic/monotonic-" - version - ".tar.gz")) - (sha256 - (base32 - "0yz0bcbwx8r2c01czzfpbrxddynxyk9k95jj8h6sgcb7xmfvl998")))) - (build-system python-build-system) - (home-page "https://github.com/atdt/monotonic") - (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3") - (description - "This module provides a monotonic() function which returns the value (in -fractional seconds) of a clock which never goes backwards.") - (license license:asl2.0))) - -(define-public python2-monotonic - (package-with-python2 python-monotonic)) - (define-public python-xlrd (package (name "python-xlrd") @@ -6754,31 +6580,6 @@ (define-public python2-pythondialog (base32 "0d8k7lxk50imdyx85lv8j98i4c93a71iwpapnl1506rpkbm9qvd9"))))))) -(define-public python-pyrfc3339 - (package - (name "python-pyrfc3339") - (version "1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pyRFC3339" version)) - (sha256 - (base32 - "0dgm4l9y8jiax5cp6yxjd2i27cq8h33sh81n1wfbmnmqb32cdywd")))) - (build-system python-build-system) - (propagated-inputs - `(("python-pytz" ,python-pytz))) - (native-inputs - `(("python-nose" ,python-nose))) - (home-page "https://github.com/kurtraschke/pyRFC3339") - (synopsis "Python timestamp library") - (description "Python library for generating and parsing RFC 3339-compliant -timestamps.") - (license license:expat))) - -(define-public python2-pyrfc3339 - (package-with-python2 python-pyrfc3339)) - (define-public python-configobj (package (name "python-configobj") @@ -8836,34 +8637,6 @@ (define-public python-chai (define-public python2-chai (package-with-python2 python-chai)) -(define-public python-arrow - (package - (name "python-arrow") - (version "0.10.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "arrow" version)) - (sha256 - (base32 - "08n7q2l69hlainds1byd4lxhwrq7zsw7s640zkqc3bs5jkq0cnc0")))) - (build-system python-build-system) - (native-inputs - `(;; For testing - ("python-chai" ,python-chai) - ("python-simplejson" ,python-simplejson))) - (propagated-inputs - `(("python-dateutil" ,python-dateutil))) - (home-page "https://github.com/crsmithdev/arrow/") - (synopsis "Dates and times for Python") - (description - "Arrow is a Python library to creating, manipulating, formatting and -converting dates, times, and timestamps. It implements and updates the -datetime type.") - (license license:asl2.0))) - -(define-public python2-arrow - (package-with-python2 python-arrow)) - (define-public python-inflection (package (name "python-inflection") @@ -9931,31 +9704,6 @@ (define-public python-validictory (define-public python2-validictory (package-with-python2 python-validictory)) -(define-public python-aniso8601 - (package - (name "python-aniso8601") - (version "1.3.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "aniso8601" version)) - (sha256 - (base32 - "1waj54iv3n3lw1fapbz8a93yjgrybgpc86wif5baxdh1arpj9df3")))) - (build-system python-build-system) - (propagated-inputs - `(("python-dateutil" ,python-dateutil))) - (home-page - "https://bitbucket.org/nielsenb/aniso8601") - (synopsis - "Python library for parsing ISO 8601 strings") - (description - "This package contains a library for parsing ISO 8601 datetime strings.") - (license license:bsd-3))) - -(define-public python2-aniso8601 - (package-with-python2 python-aniso8601)) - (define-public python-pyev (package (name "python-pyev") diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 2fa6475148..5342dbbffb 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -44,6 +44,7 @@ (define-module (gnu packages rdf) #:use-module (gnu packages python) #:use-module (gnu packages python-web) #:use-module (gnu packages qt) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages xml)) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c04975f36c..c1f4426f2f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -57,6 +57,7 @@ (define-module (gnu packages statistics) #:use-module (gnu packages readline) #:use-module (gnu packages ssh) #:use-module (gnu packages texinfo) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages base) #:use-module (gnu packages web) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 8d7594c26f..52d47a1a45 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -1,8 +1,18 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2017 Ludovic Courtès +;;; Copyright © 2013, 2015 Andreas Enge +;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2017 Leo Famulari +;;; Copyright © 2015, 2017 Cyril Roelandt +;;; Copyright © 2016 Sou Bunnbu +;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2016 Danny Milosavljevic +;;; Copyright © 2016 Marius Bakke +;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright © 2017 Ben Woodcroft -;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017 ng0 +;;; Copyright © 2017 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +36,7 @@ (define-module (gnu packages time) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages check) + #:use-module (gnu packages compression) #:use-module (gnu packages python)) (define-public time @@ -73,6 +84,31 @@ (define-public python-pytzdata (define-public python2-tzdata (package-with-python2 python-pytzdata)) +(define-public python-pytz + (package + (name "python-pytz") + (version "2017.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytz" version ".zip")) + (sha256 + (base32 + "12cmd3j46d2gcw08bspvp6s9icfcvx88zjz52n1bli9dyvl5dh7m")))) + (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://pythonhosted.org/pytz") + (synopsis "Python timezone library") + (description "This library brings the Olson tz database into Python. It +allows accurate and cross platform timezone calculations using Python 2.4 or +higher. It also solves the issue of ambiguous times at the end of daylight +saving time. Almost all of the Olson timezones are supported.") + (license expat))) + +(define-public python2-pytz + (package-with-python2 python-pytz)) + (define-public python-pendulum (package (name "python-pendulum") @@ -102,3 +138,225 @@ (define-public python-pendulum (define-public python2-pendulum (package-with-python2 python-pendulum)) + +(define-public python-dateutil + (package + (name "python-dateutil") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-dateutil" version)) + (sha256 + (base32 + "1lhq0hxjc3cfha101q02ld5ijlpfyjn2w1yh7wvpiy367pgzi8k2")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://dateutil.readthedocs.io/en/stable/") + (synopsis "Extensions to the standard datetime module") + (description + "The dateutil module provides powerful extensions to the standard +datetime module, available in Python 2.3+.") + (license bsd-3))) + +(define-public python2-dateutil + (package-with-python2 python-dateutil)) + +(define-public python-parsedatetime + (package + (name "python-parsedatetime") + (version "2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "parsedatetime" version)) + (sha256 + (base32 + "0jxqkjks7z9dn222cqgvskp4wr6d92aglinxq7pd2w4mzdc7r09x")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose) + ("python-pyicu" ,python-pyicu) + ("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (propagated-inputs + `(("python-future" ,python-future))) + (home-page "https://github.com/bear/parsedatetime/") + (synopsis "Parse human-readable date/time text") + (description + "Parse human-readable date/time text.") + (license asl2.0))) + +(define-public python2-parsedatetime + (package-with-python2 python-parsedatetime)) + +(define-public python-tzlocal + (package + (name "python-tzlocal") + (version "1.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tzlocal" version)) + (sha256 + (base32 + "0paj7vlsb0np8b5sp4bv64wxv7qk2piyp7xg29pkhdjwsbls9fnb")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pytz" ,python-pytz))) + (home-page "https://github.com/regebro/tzlocal") + (synopsis "Local timezone information for Python") + (description + "Tzlocal returns a tzinfo object with the local timezone information. +This module attempts to fix a glaring hole in pytz, that there is no way to +get the local timezone information, unless you know the zoneinfo name, and +under several distributions that's hard or impossible to figure out.") + (license cc0))) + +(define-public python-isodate + (package + (name "python-isodate") + (version "0.5.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "isodate" version)) + (sha256 + (base32 + "0cafaiwixgpxwh9dsd28qb0dbzsj6xpxjdkyk30ns91ps10mq422")))) + (build-system python-build-system) + (home-page "http://cheeseshop.python.org/pypi/isodate") + (synopsis "Python date parser and formatter") + (description + "Python-isodate is a python module for parsing and formatting +ISO 8601 dates, time and duration.") + (license bsd-3))) + +(define-public python2-isodate + (package-with-python2 python-isodate)) + +(define-public python-iso8601 + (package + (name "python-iso8601") + (version "0.1.11") + (source + (origin + (method url-fetch) + (uri (pypi-uri "iso8601" version)) + (sha256 + (base32 + "0c7gh3lsdjds262h0v1sqc66l7hqgfwbakn96qrhdbl0i3vm5yz8")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://bitbucket.org/micktwomey/pyiso8601") + (synopsis "Module to parse ISO 8601 dates") + (description + "This module parses the most common forms of ISO 8601 date strings (e.g. +@code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.") + (license expat))) + +(define-public python2-iso8601 + (package-with-python2 python-iso8601)) + +(define-public python-monotonic + (package + (name "python-monotonic") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/m/monotonic/monotonic-" + version + ".tar.gz")) + (sha256 + (base32 + "0yz0bcbwx8r2c01czzfpbrxddynxyk9k95jj8h6sgcb7xmfvl998")))) + (build-system python-build-system) + (home-page "https://github.com/atdt/monotonic") + (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3") + (description + "This module provides a @code{monotonic()} function which returns the +value (in fractional seconds) of a clock which never goes backwards.") + (license asl2.0))) + +(define-public python2-monotonic + (package-with-python2 python-monotonic)) + +(define-public python-pyrfc3339 + (package + (name "python-pyrfc3339") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyRFC3339" version)) + (sha256 + (base32 + "0dgm4l9y8jiax5cp6yxjd2i27cq8h33sh81n1wfbmnmqb32cdywd")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pytz" ,python-pytz))) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "https://github.com/kurtraschke/pyRFC3339") + (synopsis "Python timestamp library") + (description "Python library for generating and parsing RFC 3339-compliant +timestamps.") + (license expat))) + +(define-public python2-pyrfc3339 + (package-with-python2 python-pyrfc3339)) + +(define-public python-arrow + (package + (name "python-arrow") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "arrow" version)) + (sha256 + (base32 + "08n7q2l69hlainds1byd4lxhwrq7zsw7s640zkqc3bs5jkq0cnc0")))) + (build-system python-build-system) + (native-inputs + `(;; For testing + ("python-chai" ,python-chai) + ("python-simplejson" ,python-simplejson))) + (propagated-inputs + `(("python-dateutil" ,python-dateutil))) + (home-page "https://github.com/crsmithdev/arrow/") + (synopsis "Dates and times for Python") + (description + "Arrow is a Python library to creating, manipulating, formatting and +converting dates, times, and timestamps. It implements and updates the +datetime type.") + (license asl2.0))) + +(define-public python2-arrow + (package-with-python2 python-arrow)) + +(define-public python-aniso8601 + (package + (name "python-aniso8601") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aniso8601" version)) + (sha256 + (base32 + "1waj54iv3n3lw1fapbz8a93yjgrybgpc86wif5baxdh1arpj9df3")))) + (build-system python-build-system) + (propagated-inputs + `(("python-dateutil" ,python-dateutil))) + (home-page "https://bitbucket.org/nielsenb/aniso8601") + (synopsis "Python library for parsing ISO 8601 strings") + (description + "This package contains a library for parsing ISO 8601 datetime strings.") + (license bsd-3))) + +(define-public python2-aniso8601 + (package-with-python2 python-aniso8601)) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 433793439d..595524506a 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -56,6 +56,7 @@ (define-module (gnu packages tls) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages texinfo) + #:use-module (gnu packages time) #:use-module (gnu packages base) #:use-module (srfi srfi-1)) diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm index 2e669510e6..aa7af669c8 100644 --- a/gnu/packages/tryton.scm +++ b/gnu/packages/tryton.scm @@ -24,6 +24,7 @@ (define-module (gnu packages tryton) #:use-module (gnu packages gtk) #:use-module (gnu packages python) #:use-module (gnu packages python-web) + #:use-module (gnu packages time) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system python)) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 20f20a4040..9de660f090 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -82,6 +82,7 @@ (define-module (gnu packages version-control) #:use-module (gnu packages compression) #:use-module (gnu packages swig) #:use-module (gnu packages tcl) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages) #:use-module (ice-9 match) -- cgit v1.2.3