From 65fc5bf07dff1eb90b6feb161fb4e37360c6e54d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 22 Oct 2017 18:42:40 +0200 Subject: [PATCH 001/124] gnu: faust-2: Update to 2.1.0. * gnu/packages/audio.scm (faust-2): Update to 2.1.0. [source]: Fetch sources via git. [arguments]: Add phase "fix-permissions". --- gnu/packages/audio.scm | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index aaac1c357e..35b60511bc 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1065,20 +1065,35 @@ PS, and DAB+.") (define-public faust-2 (package (inherit faust) - (version "2.0.a51") + (version "2.1.0") (source (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/faudiostream/faust-" version ".tgz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/grame-cncm/faust.git") + (commit (string-append "v" + (string-map (lambda (c) + (if (char=? c #\.) #\- c)) + version))))) (sha256 (base32 - "1yryjqfqmxs7lxy95hjgmrncvl9kig3rcsmg0v49ghzz7vs7haxf")))) + "06km0ygwxxwgw1lqldccqidxhmjfz8ck0wnbd95qk5sg8sbpc068")))) (build-system gnu-build-system) (arguments (substitute-keyword-arguments (package-arguments faust) ((#:make-flags flags) `(list (string-append "prefix=" (assoc-ref %outputs "out")) - "world")))) + "world")) + ((#:phases phases) + `(modify-phases ,phases + ;; Files appear under $out/share/faust that are read-only. The + ;; install phase tries to overwrite them and fails, so we change + ;; the permissions first. + (add-before 'install 'fix-permissions + (lambda* (#:key outputs #:allow-other-keys) + (for-each (lambda (file) + (chmod file #o644)) + (find-files "architecture/max-msp" ".*")) + #t)))))) (native-inputs `(("llvm" ,llvm-with-rtti) ("which" ,which) From 60e29339d8389e678bb9ca4bd3420ee9ee88bdf2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 21 Oct 2017 23:00:01 +0200 Subject: [PATCH 002/124] gnu: glibc: Fix CVE-2017-15670, CVE-2017-15671. * gnu/packages/patches/glibc-CVE-2017-15670-15671.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/base.scm (glibc/linux)[replacement]: New field. (glibc/fixed): New variable. (glibc-2.24, glibc-2.23, glibc-2.22)[source](patches): Add 'glibc-CVE-2017-15670-15671.patch'. --- gnu/local.mk | 1 + gnu/packages/base.scm | 13 +++++++++ .../patches/glibc-CVE-2017-15670-15671.patch | 27 +++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 gnu/packages/patches/glibc-CVE-2017-15670-15671.patch diff --git a/gnu/local.mk b/gnu/local.mk index a4e3426f55..6b70300fff 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -665,6 +665,7 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-CVE-2017-1000366-pt1.patch \ %D%/packages/patches/glibc-CVE-2017-1000366-pt2.patch \ %D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \ + %D%/packages/patches/glibc-CVE-2017-15670-15671.patch \ %D%/packages/patches/glibc-bootstrap-system.patch \ %D%/packages/patches/glibc-ldd-x86_64.patch \ %D%/packages/patches/glibc-locales.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index bc745351af..9cb628d8d7 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -528,6 +528,7 @@ store.") (package (name "glibc") (version "2.25") + (replacement glibc/fixed) (source (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" @@ -786,6 +787,15 @@ GLIBC/HURD for a Hurd host" (define-syntax glibc (identifier-syntax (glibc-for-target))) +(define glibc/fixed + (package + (inherit glibc) + (source (origin + (inherit (package-source glibc)) + (patches (append + (origin-patches (package-source glibc)) + (search-patches "glibc-CVE-2017-15670-15671.patch"))))))) + ;; Below are old libc versions, which we use mostly to build locale data in ;; the old format (which the new libc cannot cope with.) @@ -805,6 +815,7 @@ GLIBC/HURD for a Hurd host" "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" + "glibc-CVE-2017-15670-15671.patch" "glibc-CVE-2017-1000366-pt1.patch" "glibc-CVE-2017-1000366-pt2.patch" "glibc-CVE-2017-1000366-pt3.patch")))))) @@ -828,6 +839,7 @@ GLIBC/HURD for a Hurd host" "glibc-CVE-2016-3075.patch" "glibc-CVE-2016-3706.patch" "glibc-CVE-2016-4429.patch" + "glibc-CVE-2017-15670-15671.patch" "glibc-CVE-2017-1000366-pt1.patch" "glibc-CVE-2017-1000366-pt2.patch" "glibc-CVE-2017-1000366-pt3.patch")))))) @@ -850,6 +862,7 @@ GLIBC/HURD for a Hurd host" "glibc-CVE-2016-3075.patch" "glibc-CVE-2016-3706.patch" "glibc-CVE-2016-4429.patch" + "glibc-CVE-2017-15670-15671.patch" "glibc-CVE-2017-1000366-pt1.patch" "glibc-CVE-2017-1000366-pt2.patch" "glibc-CVE-2017-1000366-pt3.patch")))) diff --git a/gnu/packages/patches/glibc-CVE-2017-15670-15671.patch b/gnu/packages/patches/glibc-CVE-2017-15670-15671.patch new file mode 100644 index 0000000000..76d688c517 --- /dev/null +++ b/gnu/packages/patches/glibc-CVE-2017-15670-15671.patch @@ -0,0 +1,27 @@ +Fix CVE-2017-15670: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15670 +https://sourceware.org/bugzilla/show_bug.cgi?id=22320 +https://bugzilla.redhat.com/show_bug.cgi?id=1504804 + +And CVE-2017-15671: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15671 +https://sourceware.org/bugzilla/show_bug.cgi?id=22325 +https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2017-15671 + +Copied from upstream: + + +diff --git a/posix/glob.c b/posix/glob.c +--- a/posix/glob.c ++++ b/posix/glob.c +@@ -843,7 +843,7 @@ + *p = '\0'; + } + else +- *((char *) mempcpy (newp, dirname + 1, end_name - dirname)) ++ *((char *) mempcpy (newp, dirname + 1, end_name - dirname - 1)) + = '\0'; + user_name = newp; + } From ef7dd2e2593faa249e940f11f3d859accc87dad1 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 22 Oct 2017 23:32:17 +0200 Subject: [PATCH 003/124] gnu: python-chardet: Fix PyPi download location. This is a followup to a54cb3ce1f114ee1bc26371d9bc4abb0e04001ef. * gnu/packages/python.scm (python-chardet)[source](uri): Use PYPI-URI. --- gnu/packages/python.scm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 108a54f8d0..86bc4875bf 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8623,10 +8623,7 @@ simulation, statistical modeling, machine learning and much more.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/c/chardet/chardet-" - version - ".tar.gz")) + (uri (pypi-uri "chardet" version)) (sha256 (base32 "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4")))) From 78d8b8f36ac8ffd859424b13d7e714eb2d38282a Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:21 +0000 Subject: [PATCH 004/124] gnu: Add ghc-errors. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-errors): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 6864b7df6d..4d8fa2125f 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Danny Milosavljevic ;;; Copyright © 2017 Peter Mikkelsen ;;; Copyright © 2017 Alex Vong +;;; Copyright © 2017 rsiddharth ;;; ;;; This file is part of GNU Guix. ;;; @@ -9005,4 +9006,30 @@ 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") + (version "2.2.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "errors-" version "/" + "errors-" version ".tar.gz")) + (sha256 + (base32 + "13sflhglcm5skwrxb48fw96skdcx7ydiy4zg22200733pxhjncpn")))) + (build-system haskell-build-system) + (inputs + `(("ghc-exceptions" ,ghc-exceptions) + ("ghc-text" ,ghc-text) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-unexceptionalio" ,ghc-unexceptionalio) + ("ghc-safe" ,ghc-safe))) + (home-page "https://github.com/gabriel439/haskell-errors-library") + (synopsis "Error handling library for Haskell") + (description "This library encourages an error-handling style that +directly uses the type system, rather than out-of-band exceptions.") + (license license:bsd-3))) + ;;; haskell.scm ends here From c1274a0b7930bc799710f681a8a0d19d3d7e2ac1 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:22 +0000 Subject: [PATCH 005/124] gnu: Add ghc-vector-th-unbox. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-vector-th-unbox): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 4d8fa2125f..be6b0893f5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9032,4 +9032,28 @@ which allow you to avoid direct usage of conduits.") directly uses the type system, rather than out-of-band exceptions.") (license license:bsd-3))) +(define-public ghc-vector-th-unbox + (package + (name "ghc-vector-th-unbox") + (version "0.2.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "vector-th-unbox-" version "/" + "vector-th-unbox-" version ".tar.gz")) + (sha256 + (base32 + "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy")))) + (build-system haskell-build-system) + (inputs + `(("ghc-vector" ,ghc-vector) + ("ghc-data-default" ,ghc-data-default))) + (home-page "https://github.com/liyang/vector-th-unbox") + (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell") + (description "This Haskell library provides a Template Haskell +deriver for unboxed vectors, given a pair of coercion functions to +and from some existing type with an Unbox instance.") + (license license:bsd-3))) + ;;; haskell.scm ends here From bdd7e3950fba9ab2e49c0bc8be015556563bc4ba Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:23 +0000 Subject: [PATCH 006/124] gnu: Add ghc-erf. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-erf): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index be6b0893f5..3226325025 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9056,4 +9056,25 @@ deriver for unboxed vectors, given a pair of coercion functions to and from some existing type with an Unbox instance.") (license license:bsd-3))) +(define-public ghc-erf + (package + (name "ghc-erf") + (version "2.0.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "erf-" version "/" + "erf-" version ".tar.gz")) + (sha256 + (base32 + "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/erf") + (synopsis "The error function, erf, and related functions for Haskell") + (description "This Haskell library provides a type class for the +error function, erf, and related functions. Instances for Float and +Double.") + (license license:bsd-3))) + ;;; haskell.scm ends here From a51ba897743d28e8599cccf88c1aa86fa07f3dde Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:24 +0000 Subject: [PATCH 007/124] gnu: Add ghc-math-functions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-math-functions): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 3226325025..0cc0d13fec 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9077,4 +9077,35 @@ error function, erf, and related functions. Instances for Float and Double.") (license license:bsd-3))) +(define-public ghc-math-functions + (package + (name "ghc-math-functions") + (version "0.2.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "math-functions-" version "/" + "math-functions-" version ".tar.gz")) + (sha256 + (base32 + "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp")))) + (build-system haskell-build-system) + (inputs + `(("ghc-vector" ,ghc-vector) + ("ghc-vector-th-unbox" ,ghc-vector-th-unbox))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-erf" ,ghc-erf) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (home-page "https://github.com/bos/math-functions") + (synopsis "Special functions and Chebyshev polynomials for Haskell") + (description "This Haskell library provides implementations of +special mathematical functions and Chebyshev polynomials. These +functions are often useful in statistical and numerical computing.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 1a2a247bcece6b2787893b0cd3d93b75be5766af Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:25 +0000 Subject: [PATCH 008/124] gnu: Add ghc-mwc-random. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-mwc-random): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0cc0d13fec..2959b25bf3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9108,4 +9108,43 @@ special mathematical functions and Chebyshev polynomials. These functions are often useful in statistical and numerical computing.") (license license:bsd-3))) +(define-public ghc-mwc-random + (package + (name "ghc-mwc-random") + (version "0.13.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "mwc-random-" version "/" + "mwc-random-" version ".tar.gz")) + (sha256 + (base32 + "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6")))) + (build-system haskell-build-system) + (inputs + `(("ghc-primitive" ,ghc-primitive) + ("ghc-vector" ,ghc-vector) + ("ghc-math-functions" ,ghc-math-functions))) + (arguments + `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails. + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (home-page "https://github.com/bos/mwc-random") + (synopsis "Random number generation library for Haskell") + (description "This Haskell package contains code for generating +high quality random numbers that follow either a uniform or normal +distribution. The generated numbers are suitable for use in +statistical applications. + +The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222) +multiply-with-carry generator, which has a period of 2^{8222} and +fares well in tests of randomness. It is also extremely fast, +between 2 and 3 times faster than the Mersenne Twister.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 30aede1b6f80de11611e2fc45c052d967a474be5 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:26 +0000 Subject: [PATCH 009/124] gnu: Add ghc-vector-algorithms. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-vector-algorithms): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2959b25bf3..c5877859c2 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9147,4 +9147,29 @@ fares well in tests of randomness. It is also extremely fast, between 2 and 3 times faster than the Mersenne Twister.") (license license:bsd-3))) +(define-public ghc-vector-algorithms + (package + (name "ghc-vector-algorithms") + (version "0.7.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "vector-algorithms-" version "/" + "vector-algorithms-" version ".tar.gz")) + (sha256 + (base32 + "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd")))) + (build-system haskell-build-system) + (inputs + `(("ghc-vector" ,ghc-vector) + ("ghc-mtl" ,ghc-mtl) + ("ghc-mwc-random" ,ghc-mwc-random))) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/bos/math-functions") + (synopsis "Algorithms for vector arrays in Haskell") + (description "This Haskell library algorithms for vector arrays.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 897d4f2820dc7c067f44eb89e03ee7198c7add50 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:27 +0000 Subject: [PATCH 010/124] gnu: Add ghc-language-haskell-extract. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-language-haskell-extract): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c5877859c2..d3ac021531 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9172,4 +9172,32 @@ between 2 and 3 times faster than the Mersenne Twister.") (description "This Haskell library algorithms for vector arrays.") (license license:bsd-3))) +(define-public ghc-language-haskell-extract + (package + (name "ghc-language-haskell-extract") + (version "0.2.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "language-haskell-extract-" version "/" + "language-haskell-extract-" version ".tar.gz")) + (sha256 + (base32 + "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl")))) + (build-system haskell-build-system) + (inputs + `(("ghc-regex-posix" ,ghc-regex-posix))) + (home-page "https://github.com/finnsson/template-helper") + (synopsis "Haskell module to automatically extract functions from +the local code") + (description "This package contains helper functions on top of +Template Haskell. + +For example, @code{functionExtractor} extracts all functions after a +regexp-pattern, which can be useful if you wish to extract all functions +beginning with @code{test} (for a test framework) or all functions beginning +with @code{wc} (for a web service).") + (license license:bsd-3))) + ;;; haskell.scm ends here From e0195ea87576bd578d4847fc94d0d2605295e6dc Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:28 +0000 Subject: [PATCH 011/124] gnu: Add ghc-test-framework-th. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-test-framework-th): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d3ac021531..2efd785529 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9200,4 +9200,38 @@ beginning with @code{test} (for a test framework) or all functions beginning 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))) + ;;; haskell.scm ends here From 97b26920a8be853e87f971737137bd671e492993 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:29 +0000 Subject: [PATCH 012/124] gnu: Add ghc-abstract-par. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-abstract-par): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2efd785529..ffc6030099 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9234,4 +9234,27 @@ using Template Haskell") \(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") + (version "0.3.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "abstract-par-" version "/" + "abstract-par-" version ".tar.gz")) + (sha256 + (base32 + "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4")))) + (build-system haskell-build-system) + (home-page "https://github.com/simonmar/monad-par") + (synopsis "Abstract parallelization interface for Haskell") + (description "This Haskell package is an abstract interface +only. It provides a number of type clasess, but not an +implementation. The type classes separate different levels +of @code{Par} functionality. See the @code{Control.Monad.Par.Class} +module for more details.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 59551881b15702cdb3fc01506423ce8634cb83db Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:30 +0000 Subject: [PATCH 013/124] gnu: Add ghc-monad-par-extras. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-monad-par-extras): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ffc6030099..987dffeb6f 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9257,4 +9257,28 @@ of @code{Par} functionality. See the @code{Control.Monad.Par.Class} module for more details.") (license license:bsd-3))) +(define-public ghc-monad-par-extras + (package + (name "ghc-monad-par-extras") + (version "0.3.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "monad-par-extras-" version "/" + "monad-par-extras-" version ".tar.gz")) + (sha256 + (base32 + "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2")))) + (build-system haskell-build-system) + (inputs `(("ghc-abstract-par" ,ghc-abstract-par) + ("ghc-cereal" ,ghc-cereal) + ("ghc-random" ,ghc-random) + ("ghc-mtl" ,ghc-mtl))) + (home-page "https://github.com/simonmar/monad-par") + (synopsis "Combinators and extra features for Par monads for Haskell") + (description "This Haskell package provides additional data structures, +and other added capabilities layered on top of the @code{Par} monad.") + (license license:bsd-3))) + ;;; haskell.scm ends here From f978e2ac2043d35d69b35b36b776aca8b2cae0ac Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:31 +0000 Subject: [PATCH 014/124] gnu: Add ghc-abstract-deque. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-abstract-deque): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 987dffeb6f..0a463fa9a3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9281,4 +9281,41 @@ module for more details.") and other added capabilities layered on top of the @code{Par} monad.") (license license:bsd-3))) +(define-public ghc-abstract-deque + (package + (name "ghc-abstract-deque") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "abstract-deque-" version "/" + "abstract-deque-" version ".tar.gz")) + (sha256 + (base32 + "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9")))) + (build-system haskell-build-system) + (inputs `(("ghc-random" ,ghc-random))) + (home-page "https://github.com/rrnewton/haskell-lockfree/wiki") + (synopsis "Abstract, parameterized interface to mutable Deques for Haskell") + (description "This Haskell package provides an abstract interface to +highly-parameterizable queues/deques. + +Background: There exists a feature space for queues that extends between: + +@itemize +@item Simple, single-ended, non-concurrent, bounded queues + +@item Double-ended, threadsafe, growable queues with important points +inbetween (such as the queues used for work-stealing). +@end itemize + +This package includes an interface for Deques that allows the programmer +to use a single API for all of the above, while using the type-system to +select an efficient implementation given the requirements (using type families). + +This package also includes a simple reference implementation based on +@code{IORef} and @code{Data.Sequence}.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 608bf276d745fdb10c6f5a8dc90acdcd08699d53 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:32 +0000 Subject: [PATCH 015/124] gnu: Add ghc-monad-par. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-monad-par): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0a463fa9a3..199617edbc 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9318,4 +9318,40 @@ This package also includes a simple reference implementation based on @code{IORef} and @code{Data.Sequence}.") (license license:bsd-3))) +(define-public ghc-monad-par + (package + (name "ghc-monad-par") + (version "0.3.4.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "monad-par-" version "/" + "monad-par-" version ".tar.gz")) + (sha256 + (base32 + "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q")))) + (build-system haskell-build-system) + (inputs `(("ghc-abstract-par" ,ghc-abstract-par) + ("ghc-abstract-deque" ,ghc-abstract-deque) + ("ghc-monad-par-extras" ,ghc-monad-par-extras) + ("ghc-mwc-random" ,ghc-mwc-random) + ("ghc-parallel" ,ghc-parallel) + ("ghc-mtl" ,ghc-mtl))) + (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" + ,ghc-test-framework-quickcheck2) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-th" ,ghc-test-framework-th))) + (home-page "https://github.com/simonmar/monad-par") + (synopsis "Haskell library for parallel programming based on a monad") + (description "The @code{Par} monad offers an API for parallel +programming. The library works for parallelising both pure and @code{IO} +computations, although only the pure version is deterministic. The default +implementation provides a work-stealing scheduler and supports forking tasks +that are much lighter weight than IO-threads.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 8184b0f98cc60703aebbacb82b0698efd392dffc Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:33 +0000 Subject: [PATCH 016/124] gnu: ghc-base-orphans: Update to 0.6. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-base-orphans): Update to 0.6. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 199617edbc..490d61453a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4283,7 +4283,7 @@ command line options in Haskell.") (define-public ghc-base-orphans (package (name "ghc-base-orphans") - (version "0.4.4") + (version "0.6") (source (origin (method url-fetch) @@ -4293,7 +4293,7 @@ command line options in Haskell.") ".tar.gz")) (sha256 (base32 - "0hhgpwjvx7jhvlhsygmmf0q5hv2ymijzz4bjilicw99bmv13qcpl")))) + "03mdww5j0gwai7aqlx3m71ldmjcr99jzpkcclzjfclk6a6kjla67")))) (build-system haskell-build-system) (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck) From 0c7172848edebd0b62a4304e1d0abc362ec02fd5 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:34 +0000 Subject: [PATCH 017/124] gnu: Add ghc-statistics. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-statistics): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 490d61453a..b3cbe616be 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9354,4 +9354,63 @@ implementation provides a work-stealing scheduler and supports forking tasks that are much lighter weight than IO-threads.") (license license:bsd-3))) +(define-public ghc-statistics + (package + (name "ghc-statistics") + (version "0.14.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "statistics-" version "/" + "statistics-" version ".tar.gz")) + (sha256 + (base32 + "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-base-orphans" ,ghc-base-orphans) + ("ghc-erf" ,ghc-erf) + ("ghc-math-functions" ,ghc-math-functions) + ("ghc-monad-par" ,ghc-monad-par) + ("ghc-mwc-random" ,ghc-mwc-random) + ("ghc-primitive" ,ghc-primitive) + ("ghc-vector" ,ghc-vector) + ("ghc-vector-algorithms" ,ghc-vector-algorithms) + ("ghc-vector-th-unbox" ,ghc-vector-th-unbox) + ("ghc-vector-binary-instances" ,ghc-vector-binary-instances))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-ieee754", ghc-ieee754) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (arguments + `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails. + (home-page "https://github.com/bos/mwc-random") + (synopsis "Haskell library of statistical types, data, and functions") + (description "This library provides a number of common functions +and types useful in statistics. We focus on high performance, numerical +robustness, and use of good algorithms. Where possible, we provide references +to the statistical literature. + +The library's facilities can be divided into four broad categories: + +@itemize +@item Working with widely used discrete and continuous probability +distributions. (There are dozens of exotic distributions in use; we focus +on the most common.) + +@item Computing with sample data: quantile estimation, kernel density +estimation, histograms, bootstrap methods, significance testing, +and regression and autocorrelation analysis. + +@item Random variate generation under several different distributions. + +@item Common statistical tests for significant differences between samples. +@end itemize") + (license license:bsd-2))) + ;;; haskell.scm ends here From 371ad40c84a4764cfb08d53a555534025aca325e Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:35 +0000 Subject: [PATCH 018/124] gnu: Add ghc-chunked-data. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-chunked-data): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b3cbe616be..5573689ad0 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9413,4 +9413,27 @@ and regression and autocorrelation analysis. @end itemize") (license license:bsd-2))) +(define-public ghc-chunked-data + (package + (name "ghc-chunked-data") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "chunked-data-" version "/" + "chunked-data-" version ".tar.gz")) + (sha256 + (base32 + "0bszq6fijnr4pmadzz89smj7kfmzx0ca3wd9ga8gv0in9jk9vgp1")))) + (build-system haskell-build-system) + (inputs `(("ghc-vector" ,ghc-vector) + ("ghc-semigroups" ,ghc-semigroups))) + (home-page "https://github.com/snoyberg/mono-traversable") + (synopsis "Typeclasses for dealing with various chunked data +representations for Haskell") + (description "This Haskell package was originally present in +classy-prelude.") + (license license:expat))) + ;;; haskell.scm ends here From ac4cb8fd7a94f7ba1892bbca197b5940d4dbe524 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:36 +0000 Subject: [PATCH 019/124] gnu: Add ghc-base-prelude. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-base-prelude): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 5573689ad0..7eb6946627 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9436,4 +9436,37 @@ representations for Haskell") classy-prelude.") (license license:expat))) +(define-public ghc-base-prelude + (package + (name "ghc-base-prelude") + (version "1.2.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "base-prelude-" version "/" + "base-prelude-" version ".tar.gz")) + (sha256 + (base32 + "17hivs7lmsglagdlzxd9q9zsddmgqin2788mpq911zwnb57lj6l1")))) + (build-system haskell-build-system) + (home-page "https://github.com/nikita-volkov/base-prelude") + (synopsis "The most complete prelude formed solely from the Haskell's base +package") + (description "This Haskell package aims to reexport all the non-conflicting +and most general definitions from the \"base\" package. + +This includes APIs for applicatives, arrows, monoids, foldables, traversables, +exceptions, generics, ST, MVars and STM. + +This package will never have any dependencies other than \"base\". + +Versioning policy: + +The versioning policy of this package deviates from PVP in the sense +that its exports in part are transitively determined by the version of \"base\". +Therefore it's recommended for the users of @code{ghc-base-prelude} to specify +the bounds of \"base\" as well.") + (license license:expat))) + ;;; haskell.scm ends here From e329bacb850130d49a1973cdcc6086e7b4257809 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:37 +0000 Subject: [PATCH 020/124] gnu: Add ghc-tuple-th. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-tuple-th): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 7eb6946627..31edf24485 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9469,4 +9469,26 @@ Therefore it's recommended for the users of @code{ghc-base-prelude} to specify the bounds of \"base\" as well.") (license license:expat))) +(define-public ghc-tuple-th + (package + (name "ghc-tuple-th") + (version "0.2.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "tuple-th-" version "/" + "tuple-th-" version ".tar.gz")) + (sha256 + (base32 + "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn")))) + (build-system haskell-build-system) + (home-page "https://github.com/DanielSchuessler/tuple-th") + (synopsis "Generate utility functions for tuples of statically known size +for Haskell") + (description "This Haskell package contains Template Haskell functions for +generating functions similar to those in @code{Data.List} for tuples of +statically known size.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 4562c8c894b16dcea4875c4dea19565de9a4c34c Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:38 +0000 Subject: [PATCH 021/124] gnu: Add ghc-contravariant-extras. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-contravariant-extras): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 31edf24485..23c2d31326 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9491,4 +9491,27 @@ generating functions similar to those in @code{Data.List} for tuples of statically known size.") (license license:bsd-3))) +(define-public ghc-contravariant-extras + (package + (name "ghc-contravariant-extras") + (version "0.3.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "contravariant-extras-" version "/" + "contravariant-extras-" version ".tar.gz")) + (sha256 + (base32 + "1mbrgjybdx8fjdck4ldwi8955w4qnmm0ql56zix7dyn0s7s9spgk")))) + (build-system haskell-build-system) + (inputs `(("ghc-tuple-th" ,ghc-tuple-th) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-base-prelude",ghc-base-prelude))) + (home-page "https://github.com/nikita-volkov/contravariant-extras") + (synopsis "Extras for the @code{ghc-contravariant} Haskell package") + (description "This Haskell package provides extras for the +@code{ghc-contravariant} package.") + (license license:expat))) + ;;; haskell.scm ends here From 87129984cac8b47b5d1be8d1257998611e3e9244 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:39 +0000 Subject: [PATCH 022/124] gnu: Add ghc-monadrandom. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-monadrandom): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 23c2d31326..ac807bee2b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9514,4 +9514,29 @@ statically known size.") @code{ghc-contravariant} package.") (license license:expat))) +(define-public ghc-monadrandom + (package + (name "ghc-monadrandom") + (version "0.4.2.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "MonadRandom-" version "/" + "MonadRandom-" version ".tar.gz")) + (sha256 + (base32 + "1h1nhswrcmhy3mq6vd530p0df51fcnnf4csbwnljar7cf0mb2h6y")))) + (build-system haskell-build-system) + (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-mtl" ,ghc-mtl) + ("ghc-primitive" ,ghc-primitive) + ("ghc-fail" ,ghc-fail) + ("ghc-random" ,ghc-random))) + (home-page "https://github.com/byorgey/MonadRandom") + (synopsis "Random-number generation monad for Haskell") + (description "This Haskell package provides support for computations +which consume random values.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 16d4125e9070f7d4f44a78996a99735f6705a00c Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:40 +0000 Subject: [PATCH 023/124] gnu: Add ghc-either. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-either): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ac807bee2b..bb373e82cc 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9539,4 +9539,33 @@ statically known size.") which consume random values.") (license license:bsd-3))) +(define-public ghc-either + (package + (name "ghc-either") + (version "4.4.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "either-" version "/" + "either-" version ".tar.gz")) + (sha256 + (base32 + "1lrlwqqnm6ibfcydlv5qvvssw7bm0c6yypy0rayjzv1znq7wp1xh")))) + (build-system haskell-build-system) + (inputs `(("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-free" ,ghc-free) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-manodrandom" ,ghc-monadrandom) + ("ghc-mtl" ,ghc-mtl) + ("ghc-mmorph" ,ghc-mmorph) + ("ghc-profunctors" ,ghc-profunctors) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-transformers-base" ,ghc-transformers-base))) + (home-page "https://github.com/ekmett/either") + (synopsis "Provides an either monad transformer for Haskell") + (description "This Haskell package provides an either monad transformer.") + (license license:bsd-3))) ;;; haskell.scm ends here From 933e78045d24ebf76f8b0cb33d16c85efd7c1cac Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:41 +0000 Subject: [PATCH 024/124] gnu: Add ghc-entropy. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-entropy): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index bb373e82cc..3a64aa450e 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9568,4 +9568,25 @@ which consume random values.") (synopsis "Provides an either monad transformer for Haskell") (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))) + ;;; haskell.scm ends here From e2f6116e782aa705161095e0ae792d395dadaea3 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:42 +0000 Subject: [PATCH 025/124] gnu: Add ghc-crypto-api. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-crypto-api): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 3a64aa450e..ad86fc1ce8 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9589,4 +9589,35 @@ which consume random values.") 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))) + ;;; haskell.scm ends here From 83c79ea0f8d64c5df68495ca31f4217b12dce312 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:43 +0000 Subject: [PATCH 026/124] gnu: Add ghc-crypto-api-tests. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-crypto-api-tests): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ad86fc1ce8..675632b581 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9620,4 +9620,32 @@ 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))) + ;;; haskell.scm ends here From f78ed5d56f91b74c71ebb329e6162a40744f1580 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:44 +0000 Subject: [PATCH 027/124] gnu: Add ghc-pretty-hex. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-pretty-hex): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 675632b581..6e69eb65c8 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9648,4 +9648,24 @@ 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") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "pretty-hex-" version "/" + "pretty-hex-" version ".tar.gz")) + (sha256 + (base32 + "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz")))) + (build-system haskell-build-system) + (home-page "https://github.com/GaloisInc/hexdump") + (synopsis "Haskell library for hex dumps of ByteStrings") + (description "This Haskell library generates pretty hex dumps of +ByteStrings in the style of other common *nix hex dump tools.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 8155778f52896211e869ffb469be01107c0651c7 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:45 +0000 Subject: [PATCH 028/124] gnu: Add ghc-puremd5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-puremd5): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 6e69eb65c8..a2dc8bf3b6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9668,4 +9668,34 @@ for common cryptographic algorithms are included.") 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))) + ;;; haskell.scm ends here From caac21006d5b5214c66a5254167002048873e917 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:46 +0000 Subject: [PATCH 029/124] gnu: Add ghc-cryptohash-md5. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-cryptohash-md5): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a2dc8bf3b6..c064cec555 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9698,4 +9698,30 @@ 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))) + ;;; haskell.scm ends here From 0119f17f5deb8886300e656f720a6e536759a542 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:47 +0000 Subject: [PATCH 030/124] gnu: Add ghc-cryptohash-sha1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-cryptohash-sha1): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c064cec555..839d9fc5d8 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9724,4 +9724,36 @@ interface.") (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))) + ;;; haskell.scm ends here From 6eda2635863d087a4cdacaea76ea5cadb8a2327c Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:48 +0000 Subject: [PATCH 031/124] gnu: Add ghc-network-info. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-network-info): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 839d9fc5d8..e3801d20b3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9756,4 +9756,26 @@ 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") + (version "0.2.0.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "network-info-" version "/" + "network-info-" version ".tar.gz")) + (sha256 + (base32 + "0xndvg776241fgjmynxfpy81f1csjmh8dg33yf0c8m71ychz3pzc")))) + (build-system haskell-build-system) + (home-page "https://github.com/jystic/network-info") + (synopsis "Access the local computer's basic network configuration") + (description "This Haskell library provides simple read-only access to the +local computer's networking configuration. It is currently capable of +getting a list of all the network interfaces and their respective +IPv4, IPv6 and MAC addresses.") + (license license:bsd-3))) + ;;; haskell.scm ends here From b999b0092ec3a338a79474b804698f735e175883 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:49 +0000 Subject: [PATCH 032/124] gnu: Add ghc-uuid-types. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-uuid-types): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e3801d20b3..21c6321d27 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9778,4 +9778,34 @@ getting a list of all the network interfaces and their respective IPv4, IPv6 and MAC addresses.") (license license:bsd-3))) +(define-public ghc-uuid-types + (package + (name "ghc-uuid-types") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "uuid-types-" version "/" + "uuid-types-" version ".tar.gz")) + (sha256 + (base32 + "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj")))) + (build-system haskell-build-system) + (inputs `(("ghc-hashable" ,ghc-hashable) + ("ghc-random" ,ghc-random) + ("ghc-text" ,ghc-text))) + (native-inputs `(("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/hvr/uuid") + (synopsis "Haskell type definitions for UUIDs") + (description "This Haskell library contains type definitions for +@dfn{Universally Unique Identifiers} or +@uref{http://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion +functions.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 24535a3d008289d5b30988c7519b9182f04f9de2 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:50 +0000 Subject: [PATCH 033/124] gnu: Add ghc-uuid. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-uuid): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 21c6321d27..3a4bf1d727 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9808,4 +9808,36 @@ IPv4, IPv6 and MAC addresses.") functions.") (license license:bsd-3))) +(define-public ghc-uuid + (package + (name "ghc-uuid") + (version "1.3.13") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "uuid-" version "/" + "uuid-" version ".tar.gz")) + (sha256 + (base32 + "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z")))) + (build-system haskell-build-system) + (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1) + ("ghc-cryptohash-md5" ,ghc-cryptohash-md5) + ("ghc-entropy" ,ghc-entropy) + ("ghc-network-info" ,ghc-network-info) + ("ghc-random" ,ghc-random) + ("ghc-text" ,ghc-text) + ("ghc-uuid-types" ,ghc-uuid-types))) + (native-inputs `(("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/hvr/uuid") + (synopsis "Haskell library to create, compare, parse, and print UUIDs") + (description "This Haskell library provides utilities creating, comparing, +parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 33109c822ae9ff2805d40b458dced8265c643444 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:51 +0000 Subject: [PATCH 034/124] gnu: Add ghc-rebase. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-rebase): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 58 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 3a4bf1d727..d05f6e1441 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9840,4 +9840,62 @@ functions.") parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.") (license license:bsd-3))) +(define-public ghc-rebase + (package + (name "ghc-rebase") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "rebase-" version "/" + "rebase-" version ".tar.gz")) + (sha256 + (base32 + "1qkhnpcc4g2vd6jmbf3b6psqkan6hyawqzrwzqdd931hsb02l6ia")))) + (build-system haskell-build-system) + (inputs `(("ghc-stm" ,ghc-stm) + ("ghc-hashable" ,ghc-hashable) + ("ghc-vector" ,ghc-vector) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-text" ,ghc-text) + ("ghc-scientific" ,ghc-scientific) + ("ghc-uuid" ,ghc-uuid) + ("ghc-dlist" ,ghc-dlist) + ("ghc-void" ,ghc-void) + ("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-profunctors" ,ghc-profunctors) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-contravariant-extras" ,ghc-contravariant-extras) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-mtl" ,ghc-mtl) + ("ghc-either" ,ghc-either) + ("ghc-fail" ,ghc-fail) + ("ghc-base-prelude" ,ghc-base-prelude))) + (home-page "https://github.com/nikita-volkov/rebase") + (synopsis "Progressive alternative to the base package +for Haskell") + (description "This Haskell package is intended for those who are +tired of keeping long lists of dependencies to the same essential libraries +in each package as well as the endless imports of the same APIs all over again. + +It also supports the modern tendencies in the language. + +To solve those problems this package does the following: + +@itemize +@item Reexport the original APIs under the @code{Rebase} namespace. + +@item Export all the possible non-conflicting symbols from the +@code{Rebase.Prelude} module. + +@item Give priority to the modern practices in the conflicting cases. +@end itemize + +The policy behind the package is only to reexport the non-ambiguous and +non-controversial APIs, which the community has obviously settled on. +The package is intended to rapidly evolve with the contribution from +the community, with the missing features being added with pull-requests.") + (license license:expat))) + ;;; haskell.scm ends here From 1896a2526d1db209afb0a8a55a63dc4c1162c539 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:52 +0000 Subject: [PATCH 035/124] gnu: Add ghc-vector-builder. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-vector-builder): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d05f6e1441..977789d3da 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9898,4 +9898,38 @@ The package is intended to rapidly evolve with the contribution from the community, with the missing features being added with pull-requests.") (license license:expat))) +(define-public ghc-vector-builder + (package + (name "ghc-vector-builder") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "vector-builder-" version "/" + "vector-builder-" version ".tar.gz")) + (sha256 + (base32 + "1l6sfgd2s107zkp1qd1w6jdjcbznp31769qf99pxar087f697wvp")))) + (build-system haskell-build-system) + (inputs `(("ghc-vector" ,ghc-vector) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-base-prelude" ,ghc-base-prelude))) + (native-inputs `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck-instances" ,ghc-quickcheck-instances) + ("ghc-rebase" ,ghc-rebase))) + (home-page "https://github.com/nikita-volkov/vector-builder") + (synopsis "Vector builder for Haskell") + (description "This Haskell package provides an API for constructing vectors. +It provides the composable @code{Builder} abstraction, which has instances of the +@code{Monoid} and @code{Semigroup} classes. + +You would first use the @code{Builder} abstraction to specify the structure of +the vector; then you can execute the builder to actually produce the +vector. ") + (license license:expat))) + ;;; haskell.scm ends here From f6094850d0893ad27a513a0381028ce1f5fb93c7 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:53 +0000 Subject: [PATCH 036/124] gnu: Add ghc-foldl. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-foldl): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 977789d3da..e9660431ca 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9932,4 +9932,36 @@ the vector; then you can execute the builder to actually produce the vector. ") (license license:expat))) +(define-public ghc-foldl + (package + (name "ghc-foldl") + (version "1.3.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "foldl-" version "/" + "foldl-" version ".tar.gz")) + (sha256 + (base32 + "1z3xjz4khs2kr3mqkbh7dz4kd6gkdk2r67wjkvrxnmp533aqh90n")))) + (build-system haskell-build-system) + (inputs `(("ghc-mwc-randam" ,ghc-mwc-random) + ("ghc-primitive" ,ghc-primitive) + ("ghc-text" ,ghc-text) + ("ghc-vector" ,ghc-vector) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-hashable" ,ghc-hashable) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-profunctors" ,ghc-profunctors) + ("ghc-comonad" ,ghc-comonad) + ("ghc-vector-builder" ,ghc-vector-builder))) + (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library") + (synopsis "Composable, streaming, and efficient left folds for Haskell") + (description "This Haskell library provides strict left folds that stream +in constant memory, and you can combine folds using @code{Applicative} style +to derive new folds. Derived folds still traverse the container just once +and are often as efficient as hand-written folds.") + (license license:bsd-3))) + ;;; haskell.scm ends here From ed4cc0c5e91a00cc702f0ccfedefdb65225ffbce Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:54 +0000 Subject: [PATCH 037/124] gnu: Add ghc-mono-traversable. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-mono-traversable): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e9660431ca..0d2bd36686 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9964,4 +9964,39 @@ to derive new folds. Derived folds still traverse the container just once and are often as efficient as hand-written folds.") (license license:bsd-3))) +(define-public ghc-mono-traversable + (package + (name "ghc-mono-traversable") + (version "1.0.2.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "mono-traversable-" version "/" + "mono-traversable-" version ".tar.gz")) + (sha256 + (base32 + "0smirpwika7d5a98h20jr9jqg41n7vqfy7k31crmn449qfig9ljf")))) + (build-system haskell-build-system) + (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-hashable" ,ghc-hashable) + ("ghc-text" ,ghc-text) + ("ghc-vector" ,ghc-vector) + ("ghc-vector-algorithms" ,ghc-vector-algorithms) + ("ghc-split" ,ghc-split))) + (native-inputs `(("ghc-hspec" ,ghc-hspec) + ("ghc-hunit",ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-foldl" ,ghc-foldl))) + (home-page "https://github.com/snoyberg/mono-traversable") + (synopsis "Haskell classes for mapping, folding, and traversing monomorphic +containers") + (description "This Haskell package provides Monomorphic variants of the +Functor, Foldable, and Traversable typeclasses. If you understand Haskell's +basic typeclasses, you understand mono-traversable. In addition to what +you are used to, it adds on an IsSequence typeclass and has code for marking +data structures as non-empty.") + (license license:expat))) + ;;; haskell.scm ends here From 7bc18f412b0dbd8fdcbfe8558865f9db4acade74 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:55 +0000 Subject: [PATCH 038/124] gnu: ghc-conduit: Update to 1.2.12.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-conduit): Update to 1.2.12.1. [native-inputs]: Add "ghc-split". Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0d2bd36686..b2fef6f8f6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5919,14 +5919,14 @@ of a JSON value into a @code{Data.Aeson.Value}.") (define-public ghc-conduit (package (name "ghc-conduit") - (version "1.2.5.1") + (version "1.2.12.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "conduit/conduit-" version ".tar.gz")) (sha256 (base32 - "0aq6wswd5dkhdmy7sjhd99mldpq33dqpgbdcwpm94ahvckqxs7v5")))) + "0zl6gflh7y36y2vypjhqx13nhkk5y3h12c1zj7kjfclrmwnvnwh0")))) (build-system haskell-build-system) (inputs `(("ghc-exceptions" ,ghc-exceptions) @@ -5939,7 +5939,8 @@ of a JSON value into a @code{Data.Aeson.Value}.") (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck) ("ghc-hspec" ,ghc-hspec) - ("ghc-safe" ,ghc-safe))) + ("ghc-safe" ,ghc-safe) + ("ghc-split" ,ghc-split))) (home-page "https://github.com/snoyberg/conduit") (synopsis "Streaming data library ") (description From 463c39c33971230262016030f40f9d641eeb3380 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:56 +0000 Subject: [PATCH 039/124] gnu: ghc-conduit: Fix lint error. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-conduit)[description]: Fix lint error. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b2fef6f8f6..7f5cc6415d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5944,11 +5944,11 @@ of a JSON value into a @code{Data.Aeson.Value}.") (home-page "https://github.com/snoyberg/conduit") (synopsis "Streaming data library ") (description - "conduit is a solution to the streaming data problem, allowing for -production, transformation, and consumption of streams of data in constant -memory. It is an alternative to lazy I/O which guarantees deterministic -resource handling, and fits in the same general solution space as -enumerator/iteratee and pipes." ) + "The conduit package is a solution to the streaming data problem, +allowing for production, transformation, and consumption of streams of data +in constant memory. It is an alternative to lazy I/O which guarantees +deterministic resource handling, and fits in the same general solution +space as enumerator/iteratee and pipes.") (license license:expat))) (define-public ghc-logging-facade From 95fb25bf5911cc324ba37098fe8bdbc94e7a3d74 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:57 +0000 Subject: [PATCH 040/124] gnu: Add ghc-conduit-combinators. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-condui-combinators): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 7f5cc6415d..a242d6be06 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -10000,4 +10000,45 @@ you are used to, it adds on an IsSequence typeclass and has code for marking data structures as non-empty.") (license license:expat))) +(define-public ghc-conduit-combinators + (package + (name "ghc-conduit-combinators") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "conduit-combinators-" version "/" + "conduit-combinators-" version ".tar.gz")) + (sha256 + (base32 + "0609miq03lq9visfb2dqqsxghmvgzm24pq39mqby1jnnah6yh8m0")))) + (build-system haskell-build-system) + (inputs `(("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-primitive" ,ghc-primitive) + ("ghc-vector" ,ghc-vector) + ("ghc-text" ,ghc-text) + ("ghc-void" ,ghc-void) + ("ghc-mwc-random" ,ghc-mwc-random) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-base16-bytestring" ,ghc-base16-bytestring) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-chunked-data" ,ghc-chunked-data) + ("ghc-mono-traversable" ,ghc-mono-traversable))) + (native-inputs `(("ghc-hspec" ,ghc-hspec) + ("ghc-silently" ,ghc-silently) + ("ghc-mtl" ,ghc-mtl) + ("ghc-safe" ,ghc-safe) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/snoyberg/mono-traversable") + (synopsis "Commonly used conduit functions, for both chunked and +unchunked data") + (description "This Haskell package provides a replacement for Data.Conduit.List, +as well as a convenient Conduit module.") + (license license:expat))) + ;;; haskell.scm ends here From 3a784700cd554c169d81b3013abb2a451f1e64b1 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Wed, 18 Oct 2017 03:07:58 +0000 Subject: [PATCH 041/124] gnu: Add ghc-aws. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-aws): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 58 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a242d6be06..87e60a8861 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -10041,4 +10041,62 @@ unchunked data") as well as a convenient Conduit module.") (license license:expat))) +(define-public ghc-aws + (package + (name "ghc-aws") + (version "0.17.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "aws-" version "/aws-" version ".tar.gz")) + (sha256 (base32 + "1q4qh58vj8447a4fl88n3nkpdc4yv293qsh02w6zvszd6ch61yh7")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; Tests require AWS credentials. + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-base16-bytestring" ,ghc-base16-bytestring) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-byteable" ,ghc-byteable) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-cereal" ,ghc-cereal) + ("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-cryptohash" ,ghc-cryptohash) + ("ghc-data-default" ,ghc-data-default) + ("ghc-http-conduit" ,ghc-http-conduit) + ("ghc-http-types" ,ghc-http-types) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-mtl" ,ghc-mtl) + ("ghc-network" ,ghc-network) + ("ghc-old-locale" ,ghc-old-locale) + ("ghc-safe" ,ghc-safe) + ("ghc-scientific" ,ghc-scientific) + ("ghc-tagged" ,ghc-tagged) + ("ghc-text" ,ghc-text) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-vector" ,ghc-vector) + ("ghc-xml-conduit" ,ghc-xml-conduit))) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-errors" ,ghc-errors) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-quickcheck-instances" ,ghc-quickcheck-instances) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-conduit-combinators" ,ghc-conduit-combinators))) + (home-page "https://github.com/aristidb/aws") + (synopsis "Amazon Web Services for Haskell") + (description "This package attempts to provide support for using +Amazon Web Services like S3 (storage), SQS (queuing) and others to +Haskell programmers. The ultimate goal is to support all Amazon +Web Services.") + (license license:bsd-3))) + ;;; haskell.scm ends here From ed9b09e4f0795079f7c186c22f3a9501ae27291a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 Oct 2017 15:16:56 -0700 Subject: [PATCH 042/124] gnu: impressive: Fix Python 2/3 dependency mismatch. * gnu/packages/pdf.scm (impressive)[inputs]: Depend on PYTHON2-PYGAME. --- gnu/packages/pdf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 6dbba2c7ec..ceaccddfc7 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -7,7 +7,7 @@ ;;; Coypright © 2016 ng0 ;;; Coypright © 2016 Efraim Flashner ;;; Coypright © 2016, 2017 Marius Bakke -;;; Coypright © 2016 Ludovic Courtès +;;; Coypright © 2016, 2017 Ludovic Courtès ;;; Coypright © 2016 Julien Lepiller ;;; Copyright © 2016 Arun Isaac ;;; Copyright © 2017 Leo Famulari @@ -747,7 +747,7 @@ vector formats.") (build-system python-build-system) ;; TODO: Add dependency on pdftk. - (inputs `(("python-pygame" ,python-pygame) + (inputs `(("python2-pygame" ,python2-pygame) ("python2-pillow" ,python2-pillow) ("sdl" ,sdl) ("xpdf" ,xpdf))) From fc938a277548b928d5271fa084751ba9985836b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 Oct 2017 16:05:26 -0700 Subject: [PATCH 043/124] gnu: lxqt-common: Remove. This package is marked as deprecated upstream. Fixes . * gnu/packages/lxqt.scm (lxqt-common): Remove. --- gnu/packages/lxqt.scm | 56 ------------------------------------------- 1 file changed, 56 deletions(-) diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index a73a875594..a4108f55b2 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -90,62 +90,6 @@ in Qt.") components of the LXQt desktop environment.") (license lgpl2.1+))) - -(define-public lxqt-common - (package - (name "lxqt-common") - (version "0.9.1") - (source - (origin - (method url-fetch) - (uri - (string-append "https://github.com/lxde/" name - "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1vd3zarvl44l3y6wn7kgxcd2f1bygsmk5bcfqwa3568cq3b57aw0")))) - (build-system cmake-build-system) - (arguments - `(#:tests? #f ; no check target - #:phases - (modify-phases %standard-phases - (add-before 'configure 'fix-installation-paths - (lambda _ - ;; The variable LXQT_ETC_XDG_DIR is set in - ;; liblxqt-0.9.0/share/cmake/lxqt/lxqt-config.cmake - ;; to the Qt5 installation directory, followed by "/etc/xdg". - ;; We need to have it point to the current installation - ;; directory instead. - (substitute* '("config/CMakeLists.txt" - "menu/CMakeLists.txt") - (("\\$\\{LXQT_ETC_XDG_DIR\\}") - "${CMAKE_INSTALL_PREFIX}/etc/xdg") - ;; In the same file, LXQT_SHARE_DIR is set to the installation - ;; directory of liblxqt, followed by "/share/lxqt". - (("\\$\\{LXQT_SHARE_DIR\\}") - "${CMAKE_INSTALL_PREFIX}/share/lxqt")) - ;; Replace absolute directories. - (substitute* "autostart/CMakeLists.txt" - (("/etc/xdg") - "${CMAKE_INSTALL_PREFIX}/etc/xdg")) - (substitute* "xsession/CMakeLists.txt" - (("/usr/share") - "${CMAKE_INSTALL_PREFIX}/share"))))))) - (inputs - `(("kwindowsystem" ,kwindowsystem) - ("liblxqt" ,liblxqt) - ("libqtxdg" ,libqtxdg) - ("qtbase" ,qtbase) - ("qttools" ,qttools) - ("qtx11extras" ,qtx11extras))) - (home-page "http://lxqt.org/") - (synopsis "Common files for LXQt") - (description "lxqt-common provides the desktop integration files -(themes, icons, configuration files etc.) for the LXQt -desktop environment.") - (license lgpl2.1+))) - (define-public lxqt-session (package (name "lxqt-session") From bb234ed82527aa16e2190277ae22b5bc2560aaf0 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 19 Oct 2017 16:14:10 -0400 Subject: [PATCH 044/124] gnu: icecat: Add more fixes from upstream mozilla-esr52. * gnu/packages/gnuzilla.scm (icecat)[source]: Add selected fixes from the upstream mozilla-esr52 repository. --- gnu/packages/gnuzilla.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index da74a8dd95..2d607360c2 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -441,7 +441,16 @@ standards.") (mozilla-patch "icecat-bug-1368269.patch" "0cff5e66e0f4" "0jb0wqi7c0ih4441s1908j6gv18v4inh7k2w47h3c9nhz4rgyrw7") (mozilla-patch "icecat-CVE-2017-7793.patch" "6ff3c82962f0" "0bw82034kdmrpznigbavzzsiybzrw8giyf8v0z2cxf6mwl72bf9k") (mozilla-patch "icecat-bug-1400399.patch" "d6f78b1349b7" "0i3gwr2al3xl65yfa3nimvy8dp0jzpx21f6bjw18xwn7zkkh9j54") - (mozilla-patch "icecat-bug-1400721.patch" "285cde398833" "0a1i32zl30wfyw7zkqj595s94n6wdlg5c495m0910pd05pjg3qam"))) + (mozilla-patch "icecat-bug-1400721.patch" "285cde398833" "0a1i32zl30wfyw7zkqj595s94n6wdlg5c495m0910pd05pjg3qam") + (mozilla-patch "icecat-bug-1395138.patch" "98b3988592a6" "03wy173lj6mvmh5q92brf596h8676h0zasgqfnndpvsmsiaih120") + (mozilla-patch "icecat-bug-1369561.patch" "47590f0c274b" "0zsys6dcyhfb4a8k2dhsls7425jg6r1ijlrsn1lc5smwyf62zx5v") + (mozilla-patch "icecat-bug-1375146.patch" "55b435cbbb55" "1gcasaqrxa13a55v05bkxl3d1md829kpfhqiaws83wn08x28l0my") + (mozilla-patch "icecat-bug-1394530.patch" "8549cf2dab3e" "168gs32ncavaj9xn4gwhh9i01cbpnhgx9yn333apsrc1gwknpvsr") + (mozilla-patch "icecat-bug-1400554.patch" "349acf56ff49" "1vwn87rdryfjsn809pl50xmr82q98gz3vz9h6clkd905vbd9rwz7") + (mozilla-patch "icecat-bug-1400003.patch" "3af5bf8bdea0" "07az28dnpxr36j7i3llxkrlkrmg0bwk4f3sm75x1f0r1v5575p3p") + (mozilla-patch "icecat-bug-1407751.patch" "592df6088926" "1gy27idik4b6wcg4szww08cmpcljssja8wql6w1d807h7ni65lr7") + (mozilla-patch "icecat-bug-1261175.patch" "77a2d4610275" "13ysbwflnysj4rs45ibckd621s0vyg1s8dvannlvanvrz1g72zcz") + (mozilla-patch "icecat-bug-1394265.patch" "2b30335d0b95" "0hs5cwickvfw7r5dn7y148jgr2b21hl613qp83k56634d0y64qwp"))) (modules '((guix build utils))) (snippet '(begin From 8e4a976c68b0d805eb8e30615c40322de6d7a7f3 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 23 Oct 2017 00:52:28 -0400 Subject: [PATCH 045/124] gnu: linux-libre@4.4: Update to 4.4.94. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.94. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 66119ca513..8a95af98d4 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -384,8 +384,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.93" - "1llpqkm7vvwi5fm92y4n6qrc89ps7kdfl83s7m38a2yivm3kgzr6" + (make-linux-libre "4.4.94" + "0g63is8d2k1mf1kaljkll79n7gzh4qn0fmrm2r9sab2sq41hch1m" %intel-compatible-systems #:configuration-file kernel-config)) From 1b635caface4fa5eaefae12648be58fbb4a9ad92 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 23 Oct 2017 00:53:03 -0400 Subject: [PATCH 046/124] gnu: linux-libre@4.9: Update to 4.9.58. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.58. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8a95af98d4..5bc73a8009 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -378,8 +378,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.57" - "02ldxzbazdbhvgkwxl6xblkwj75s5cm33fpm77kv394w35jan3by" + (make-linux-libre "4.9.58" + "0f1yxdvzdr1zfkh86i9z0p7ywdlz0blxnd11wbnw763qyk3qydyk" %intel-compatible-systems #:configuration-file kernel-config)) From 2f05dd6b4cd84c6f431da94d47668ed0b34a6e1c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 23 Oct 2017 00:53:38 -0400 Subject: [PATCH 047/124] gnu: linux-libre: Update to 4.13.9. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.13.9. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5bc73a8009..49665e24d3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -368,8 +368,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.13.8") -(define %linux-libre-hash "0qi2n5lczqwq2v0q5zl08ac3x4lixpj1dmb0kza6hsllmx8hbybw") +(define %linux-libre-version "4.13.9") +(define %linux-libre-hash "1ymsdvm4djh7hg2wmn2v11w380i0ss9nkp4slfrgihdvn6yp5gbv") (define-public linux-libre (make-linux-libre %linux-libre-version From 6e644cfdb38b74a83bfc133807b5f503b54e8c73 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 27 Sep 2017 21:33:25 -0400 Subject: [PATCH 048/124] services: base: Add file->udev-rule function. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This function allows passing a file-like object to the udev service. * gnu/services/base.scm (file->udev-rule): New function. * doc/guix.texi (Base Services): Document it. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 119 ++++++++++++++++++++++++++++++++++-------- gnu/services/base.scm | 17 ++++++ 2 files changed, 115 insertions(+), 21 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7d7d556697..2ccba98092 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9790,35 +9790,112 @@ Return a service that runs the Guix build daemon according to @var{config}. @end deffn -@cindex udev-service -@cindex udev-rule -@deffn {Scheme Procedure} udev-service [#:udev @var{udev}] [#:rules @var{'()}] +@deffn {Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}] Run @var{udev}, which populates the @file{/dev} directory dynamically. -Additional udev rules can be provided as a list of files through the -@var{rules} variable. The procedure @var{udev-rule} simplifies the -creation of these rule files. +udev rules can be provided as a list of files through the @var{rules} +variable. The procedures @var{udev-rule} and @var{file->udev-rule} from +@code{(gnu services base)} simplify the creation of such rule files. + +@deffn {Scheme Procedure} udev-rule [@var{file-name} @var{contents}] +Return a udev-rule file named @var{file-name} containing the rules +defined by the @var{contents} literal. In the following example, a rule for a USB device is defined to be -stored in the file @file{90-usb-thing.rules}, and the default -@var{udev-service} is extended with it. The rule runs a script upon -detecting a USB device with a given product identifier. +stored in the file @file{90-usb-thing.rules}. The rule runs a script +upon detecting a USB device with a given product identifier. @example (define %example-udev-rule - (udev-rule "90-usb-thing.rules" - "ACTION==\"add\", SUBSYSTEM==\"usb\", ATTR@{product@}==\"Example\", RUN+=\"/path/to/script\"")) - -(operating-system - ;; @dots{} - (services (modify-services %desktop-services - (udev-service-type config => - (udev-configuration (inherit config) - (rules (append (udev-configuration-rules config) - (list %example-udev-rule)))))))) + (udev-rule + "90-usb-thing.rules" + (string-append "ACTION==\"add\", SUBSYSTEM==\"usb\", " + "ATTR@{product@}==\"Example\", " + "RUN+=\"/path/to/script\""))) @end example @end deffn -@deffn {Scheme Procedure} urandom-seed-service @var{#f} +Here we show how the default @var{udev-service} can be extended with it. + +@example +(operating-system + ;; @dots{} + (services + (modify-services %desktop-services + (udev-service-type config => + (udev-configuration (inherit config) + (rules (append (udev-configuration-rules config) + (list %example-udev-rule)))))))) +@end example + +@deffn {Scheme Procedure} file->udev-rule [@var{file-name} @var{file}] +Return a udev file named @var{file-name} containing the rules defined +within @var{file}, a file-like object. + +The following example showcases how we can use an existing rule file. + +@example +(use-modules (guix download) ;for url-fetch + (guix packages) ;for origin + ;; @dots{}) + +(define %android-udev-rules + (file->udev-rule + "51-android-udev.rules" + (let ((version "20170910")) + (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/M0Rf30/" + "android-udev-rules/" version "/51-android.rules")) + (sha256 + (base32 "0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003")))))) +@end example +@end deffn + +Additionally, Guix package definitions can be included in @var{rules} in +order to extend the udev rules with the definitions found under their +@file{lib/udev/rules.d} sub-directory. In lieu of the previous +@var{file->udev-rule} example, we could have used the +@var{android-udev-rules} package which exists in Guix in the @code{(gnu +packages android)} module. + +The following example shows how to use the @var{android-udev-rules} +package so that the Android tool @command{adb} can detect devices +without root privileges. It also details how to create the +@code{adbusers} group, which is required for the proper functioning of +the rules defined within the @var{android-udev-rules} package. To +create such a group, we must define it both as part of the +@var{supplementary-groups} of our @var{user-account} declaration, as +well as in the @var{groups} field of the @var{operating-system} record. + +@example +(use-modules (gnu packages android) ;for android-udev-rules + (gnu system shadow) ;for user-group + ;; @dots{}) + +(operating-system + ;; @dots{} + (users (cons (user-acount + ;; @dots{} + (supplementary-groups + '("adbusers" ;for adb + "wheel" "netdev" "audio" "video")) + ;; @dots{}))) + + (groups (cons (user-group (system? #t) (name "adbusers")) + %base-groups)) + + ;; @dots{} + + (services + (modify-services %desktop-services + (udev-service-type config => + (udev-configuration (inherit config) + (rules (cons* android-udev-rules + (udev-configuration-rules config)))))))) +@end example +@end deffn + +@deffn {Scheme Procedure} urandom-seed-service Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} when rebooting. @end deffn @@ -9930,7 +10007,7 @@ to add @var{device} to the kernel's entropy pool. The service will fail if @cindex session limits @cindex ulimit @cindex priority -@deffn {Scheme Procedure} pam-limits-service [#:limits @var{limits}] +@deffn {Scheme Procedure} pam-limits-service [#:limits @code{'()}] Return a service that installs a configuration file for the @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 541ca76f14..b605614ab6 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -71,6 +71,7 @@ udev-service-type udev-service udev-rule + file->udev-rule login-configuration login-configuration? @@ -1630,6 +1631,22 @@ item of @var{packages}." (lambda (port) (display #$contents port))))))) +(define (file->udev-rule file-name file) + "Return a directory with a udev rule file FILE-NAME which is a copy of FILE." + (computed-file file-name + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (define rules.d + (string-append #$output "/lib/udev/rules.d")) + + (define file-copy-dest + (string-append rules.d "/" #$file-name)) + + (mkdir-p rules.d) + (copy-file #$file file-copy-dest))))) + (define kvm-udev-rule ;; Return a directory with a udev rule that changes the group of /dev/kvm to ;; "kvm" and makes it #o660. Apparently QEMU-KVM used to ship this rule, From 2890ad332fcdfd4bc92b127d783975437c8b718b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 Oct 2017 18:07:41 +0200 Subject: [PATCH 049/124] build: Factorize module compilation in (guix build compile). * guix/build/compile.scm: New file. * Makefile.am (MODULES): Add it. * build-aux/compile-all.scm: Use it. (warnings, file->module, load-module-file) (%default-optimizations, %lightweight-optimizations) (optimization-options, compile-file*): Remove. : Use 'compile-files'. * guix/build/pull.scm (%default-optimizations) (%lightweight-optimizations, optimization-options): Remove. (build-guix): Rewrite as a call to 'compile-files'. * guix/discovery.scm (file-name->module-name): Export. --- Makefile.am | 1 + build-aux/compile-all.scm | 92 +++------------------ guix/build/compile.scm | 165 ++++++++++++++++++++++++++++++++++++++ guix/build/pull.scm | 105 +++++++----------------- guix/discovery.scm | 4 +- 5 files changed, 209 insertions(+), 158 deletions(-) create mode 100644 guix/build/compile.scm diff --git a/Makefile.am b/Makefile.am index 2855b4efdd..fd6f9729c9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -133,6 +133,7 @@ MODULES = \ guix/build/utils.scm \ guix/build/union.scm \ guix/build/profiles.scm \ + guix/build/compile.scm \ guix/build/pull.scm \ guix/build/rpath.scm \ guix/build/cvs.scm \ diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm index fe25c5d065..2fc3102daa 100644 --- a/build-aux/compile-all.scm +++ b/build-aux/compile-all.scm @@ -17,21 +17,12 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(use-modules (system base target) - (system base message) - (ice-9 match) +(use-modules (ice-9 match) (ice-9 threads) + (guix build compile) (guix build utils)) -(define warnings - ;; FIXME: 'format' is missing because it reports "non-literal format - ;; strings" due to the fact that we use 'G_' instead of '_'. We'll need - ;; help from Guile to solve this. - '(unsupported-warning unbound-variable arity-mismatch - macro-use-before-definition)) ;new in 2.2 - (define host (getenv "host")) - (define srcdir (getenv "srcdir")) (define (relative-file file) @@ -53,62 +44,6 @@ (or (not (file-exists? go)) (file-mtimemodule file) - (let* ((relative (relative-file file)) - (module-path (string-drop-right relative 4))) - (map string->symbol - (string-split module-path #\/)))) - -;;; To work around (FIXME), we want to load all -;;; files to be compiled first. We do this via resolve-interface so that the -;;; top-level of each file (module) is only executed once. -(define (load-module-file file) - (let ((module (file->module file))) - (format #t " LOAD ~a~%" module) - (resolve-interface module))) - -(cond-expand - (guile-2.2 (use-modules (language tree-il optimize) - (language cps optimize))) - (else #f)) - -(define %default-optimizations - ;; Default optimization options (equivalent to -O2 on Guile 2.2). - (cond-expand - (guile-2.2 (append (tree-il-default-optimization-options) - (cps-default-optimization-options))) - (else '()))) - -(define %lightweight-optimizations - ;; Lightweight optimizations (like -O0, but with partial evaluation). - (let loop ((opts %default-optimizations) - (result '())) - (match opts - (() (reverse result)) - ((#:partial-eval? _ rest ...) - (loop rest `(#t #:partial-eval? ,@result))) - ((kw _ rest ...) - (loop rest `(#f ,kw ,@result)))))) - -(define (optimization-options file) - (if (string-contains file "gnu/packages/") - %lightweight-optimizations ;build faster - '())) - -(define (compile-file* file output-mutex) - (let ((go (scm->go file))) - (with-mutex output-mutex - (format #t " GUILEC ~a~%" go) - (force-output)) - (mkdir-p (dirname go)) - (with-fluids ((*current-warning-prefix* "")) - (with-target host - (lambda () - (compile-file file - #:output-file go - #:opts `(#:warnings ,warnings - ,@(optimization-options file)))))))) - ;; Install a SIGINT handler to give unwind handlers in 'compile-file' an ;; opportunity to run upon SIGINT and to remove temporary output files. (sigaction SIGINT @@ -117,16 +52,13 @@ (match (command-line) ((_ . files) - (let ((files (filter file-needs-compilation? files))) - (for-each load-module-file files) - (let ((mutex (make-mutex))) - ;; Make sure compilation related modules are loaded before starting to - ;; compile files in parallel. - (compile #f) - (par-for-each (lambda (file) - (compile-file* file mutex)) - files))))) - -;;; Local Variables: -;;; eval: (put 'with-target 'scheme-indent-function 1) -;;; End: + (compile-files srcdir (getcwd) + (filter file-needs-compilation? files) + #:host host + #:report-load (lambda (file total completed) + (when file + (format #t " LOAD ~a~%" file))) + #:report-compilation (lambda (file total completed) + (when file + (format #t " GUILEC ~a~%" + (scm->go file))))))) diff --git a/guix/build/compile.scm b/guix/build/compile.scm new file mode 100644 index 0000000000..6f15ba5789 --- /dev/null +++ b/guix/build/compile.scm @@ -0,0 +1,165 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2014, 2016, 2017 Ludovic Courtès +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer +;;; +;;; 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 (guix build compile) + #:use-module (ice-9 match) + #:use-module (ice-9 format) + #:use-module (ice-9 threads) + #:use-module (system base target) + #:use-module (system base compile) + #:use-module (system base message) + #:use-module (guix discovery) + #:use-module (guix build utils) + #:export (%default-optimizations + %lightweight-optimizations + compile-files)) + +;;; Commentary: +;;; +;;; Support code to compile Guile code as efficiently as possible (both with +;;; Guile 2.0 and 2.2). +;;; +;;; Code: + +(cond-expand + (guile-2.2 (use-modules (language tree-il optimize) + (language cps optimize))) + (else #f)) + +(define %default-optimizations + ;; Default optimization options (equivalent to -O2 on Guile 2.2). + (cond-expand + (guile-2.2 (append (tree-il-default-optimization-options) + (cps-default-optimization-options))) + (else '()))) + +(define %lightweight-optimizations + ;; Lightweight optimizations (like -O0, but with partial evaluation). + (let loop ((opts %default-optimizations) + (result '())) + (match opts + (() (reverse result)) + ((#:partial-eval? _ rest ...) + (loop rest `(#t #:partial-eval? ,@result))) + ((kw _ rest ...) + (loop rest `(#f ,kw ,@result)))))) + +(define %warnings + ;; FIXME: 'format' is missing because it reports "non-literal format + ;; strings" due to the fact that we use 'G_' instead of '_'. We'll need + ;; help from Guile to solve this. + '(unsupported-warning unbound-variable arity-mismatch + macro-use-before-definition)) ;new in 2.2 + +(define (optimization-options file) + "Return the default set of optimizations options for FILE." + (if (string-contains file "gnu/packages/") + %lightweight-optimizations ;build faster + '())) + +(define (scm->go file) + "Strip the \".scm\" suffix from FILE, and append \".go\"." + (string-append (string-drop-right file 4) ".go")) + +(define* (load-files directory files + #:key + (report-load (const #f)) + (debug-port (%make-void-port "w"))) + "Load FILES, a list of relative file names, from DIRECTORY." + (define total + (length files)) + + (let loop ((files files) + (completed 0)) + (match files + (() + (unless (zero? total) + (report-load #f total completed)) + *unspecified*) + ((file files ...) + (report-load file total completed) + (format debug-port "~%loading '~a'...~%" file) + + (parameterize ((current-warning-port debug-port)) + (resolve-interface (file-name->module-name file))) + + (loop files (+ 1 completed)))))) + +(define-syntax-rule (with-augmented-search-path path item body ...) + "Within the dynamic extent of BODY, augment PATH by adding ITEM to the +front." + (let ((initial-value path)) + (dynamic-wind + (lambda () + (set! path (cons item path))) + (lambda () + body ...) + (lambda () + (set! path initial-value))))) + +(define* (compile-files source-directory build-directory files + #:key + (host %host-type) + (workers (current-processor-count)) + (optimization-options optimization-options) + (warning-options `(#:warnings ,%warnings)) + (report-load (const #f)) + (report-compilation (const #f)) + (debug-port (%make-void-port "w"))) + "Compile FILES, a list of source files taken from SOURCE-DIRECTORY, to +BUILD-DIRECTORY, using up to WORKERS parallel workers. The resulting object +files are for HOST, a GNU triplet such as \"x86_64-linux-gnu\"." + (define progress-lock (make-mutex)) + (define total (length files)) + (define completed 0) + + (define (build file) + (with-mutex progress-lock + (report-compilation file total completed)) + (with-fluids ((*current-warning-prefix* "")) + (with-target host + (lambda () + (compile-file file + #:output-file (string-append build-directory "/" + (scm->go file)) + #:opts (append warning-options + (optimization-options file)))))) + (with-mutex progress-lock + (set! completed (+ 1 completed)))) + + (with-augmented-search-path %load-path source-directory + (with-augmented-search-path %load-compiled-path build-directory + ;; FIXME: To work around , we first load all + ;; of FILES. + (load-files source-directory files + #:report-load report-load + #:debug-port debug-port) + + ;; Make sure compilation related modules are loaded before starting to + ;; compile files in parallel. + (compile #f) + + (n-par-for-each workers build files) + (unless (zero? total) + (report-compilation #f total total))))) + +;;; Local Variables: +;;; eval: (put 'with-augmented-search-path 'scheme-indent-function 2) +;;; eval: (put 'with-target 'scheme-indent-function 1) +;;; End: diff --git a/guix/build/pull.scm b/guix/build/pull.scm index 1ae35ab382..6f7aa27868 100644 --- a/guix/build/pull.scm +++ b/guix/build/pull.scm @@ -20,11 +20,10 @@ (define-module (guix build pull) #:use-module (guix modules) #:use-module (guix build utils) - #:use-module (system base compile) + #:use-module (guix build compile) #:use-module (ice-9 ftw) #:use-module (ice-9 match) #:use-module (ice-9 format) - #:use-module (ice-9 threads) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) @@ -63,34 +62,6 @@ available, false otherwise." (string-prefix? gnu b)) (string (FIXME). - ;; Filter out files depending on Guile-SSH when Guile-SSH is missing. - (let* ((files (filter has-all-its-dependencies? - (all-scheme-files out))) - (total (length files))) - (let loop ((files files) - (completed 0)) - (match files - (() *unspecified*) - ((file . files) - (display #\cr log-port) - (format log-port "loading...\t~5,1f% of ~d files" ;FIXME: i18n - (* 100. (/ completed total)) total) - (force-output log-port) - (format debug-port "~%loading '~a'...~%" file) - ;; Turn "/foo/bar.scm" into (foo bar). - (let* ((relative-file (string-drop file (+ (string-length out) 1))) - (module-path (string-drop-right relative-file 4)) - (module-name (map string->symbol - (string-split module-path #\/)))) - (parameterize ((current-warning-port debug-port)) - (resolve-interface module-name))) - (loop files (+ 1 completed))))) - (newline) - (let ((mutex (make-mutex)) - (completed 0)) - ;; Make sure compilation related modules are loaded before starting to - ;; compile files in parallel. - (compile #f) - (n-par-for-each - (parallel-job-count) - (lambda (file) - (with-mutex mutex - (display #\cr log-port) - (format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n - (* 100. (/ completed total)) total) - (force-output log-port) - (format debug-port "~%compiling '~a'...~%" file)) - (let ((go (string-append (string-drop-right file 4) ".go"))) - (parameterize ((current-warning-port (%make-void-port "w"))) - (compile-file file - #:output-file go - #:opts (optimization-options file)))) - (with-mutex mutex - (set! completed (+ 1 completed)))) - files)))) + ;; Compile the .scm files. Filter out files depending on Guile-SSH when + ;; Guile-SSH is missing. + (let ((files (filter has-all-its-dependencies? + (all-scheme-files out)))) + (compile-files out out files + + #:workers (parallel-job-count) + + ;; Disable warnings. + #:warning-options '() + + #:report-load + (lambda (file total completed) + (display #\cr log-port) + (format log-port + "loading...\t~5,1f% of ~d files" ;FIXME: i18n + (* 100. (/ completed total)) total) + (force-output log-port) + (format debug-port "~%loading '~a'...~%" file)) + + #:report-compilation + (lambda (file total completed) + (display #\cr log-port) + (format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n + (* 100. (/ completed total)) total) + (force-output log-port) + (format debug-port "~%compiling '~a'...~%" file))))) (newline) #t) diff --git a/guix/discovery.scm b/guix/discovery.scm index 2741725b9d..c861614b8a 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -24,7 +24,9 @@ #:use-module (ice-9 match) #:use-module (ice-9 vlist) #:use-module (ice-9 ftw) - #:export (scheme-modules + #:export (file-name->module-name + + scheme-modules fold-modules all-modules fold-module-public-variables)) From 3a9976bfcd13e6554a2458ce1a3b9d7b95043195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 Oct 2017 18:21:47 +0200 Subject: [PATCH 050/124] build: Honor make's '-j' flag. * build-aux/compile-all.scm (parallel-job-count): New procedure. : Pass it to 'compile-files' as #:workers. --- build-aux/compile-all.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm index 2fc3102daa..c7ca5a6f67 100644 --- a/build-aux/compile-all.scm +++ b/build-aux/compile-all.scm @@ -19,6 +19,7 @@ (use-modules (ice-9 match) (ice-9 threads) + (srfi srfi-1) (guix build compile) (guix build utils)) @@ -44,6 +45,39 @@ (or (not (file-exists? go)) (file-mtimenumber count) _ ...) + (if (integer? count) + count + (current-processor-count))) + ((head tail ...) + (if (string-prefix? "-j" head) + (match (string-drop head 2) + ("" + (current-processor-count)) + ((= string->number count) + (if (integer? count) + count + (current-processor-count)))) + (loop tail))))))))) + ;; Install a SIGINT handler to give unwind handlers in 'compile-file' an ;; opportunity to run upon SIGINT and to remove temporary output files. (sigaction SIGINT @@ -54,6 +88,7 @@ ((_ . files) (compile-files srcdir (getcwd) (filter file-needs-compilation? files) + #:workers (parallel-job-count) #:host host #:report-load (lambda (file total completed) (when file From 7a51c78c6e0cd06dd31f3f28cd941fde15eb17d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 Oct 2017 22:16:46 +0200 Subject: [PATCH 051/124] discovery: Move 'file-name->module-name' to (guix modules). * guix/discovery.scm (file-name->module-name): Move to... * guix/modules.scm (file-name->module-name): ... here. * guix/build/compile.scm: Use (guix modules) instead of (guix discovery). --- guix/build/compile.scm | 2 +- guix/discovery.scm | 12 ++---------- guix/modules.scm | 10 ++++++++++ 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/guix/build/compile.scm b/guix/build/compile.scm index 6f15ba5789..ea0c36fa33 100644 --- a/guix/build/compile.scm +++ b/guix/build/compile.scm @@ -24,7 +24,7 @@ #:use-module (system base target) #:use-module (system base compile) #:use-module (system base message) - #:use-module (guix discovery) + #:use-module (guix modules) #:use-module (guix build utils) #:export (%default-optimizations %lightweight-optimizations diff --git a/guix/discovery.scm b/guix/discovery.scm index c861614b8a..7b57579023 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -18,15 +18,14 @@ (define-module (guix discovery) #:use-module (guix ui) + #:use-module (guix modules) #:use-module (guix combinators) #:use-module (guix build syscalls) #:use-module (srfi srfi-1) #:use-module (ice-9 match) #:use-module (ice-9 vlist) #:use-module (ice-9 ftw) - #:export (file-name->module-name - - scheme-modules + #:export (scheme-modules fold-modules all-modules fold-module-public-variables)) @@ -90,13 +89,6 @@ DIRECTORY is not accessible." directory (strerror errno))) '()))))) -(define file-name->module-name - (let ((not-slash (char-set-complement (char-set #\/)))) - (lambda (file) - "Return the module name (a list of symbols) corresponding to FILE." - (map string->symbol - (string-tokenize (string-drop-right file 4) not-slash))))) - (define* (scheme-modules directory #:optional sub-directory) "Return the list of Scheme modules available under DIRECTORY. Optionally, narrow the search to SUB-DIRECTORY." diff --git a/guix/modules.scm b/guix/modules.scm index 19a4acd76c..6c602eda48 100644 --- a/guix/modules.scm +++ b/guix/modules.scm @@ -26,6 +26,9 @@ #:export (missing-dependency-error? missing-dependency-module + file-name->module-name + module-name->file-name + source-module-closure live-module-closure guix-module-name?)) @@ -93,6 +96,13 @@ depends on." (_ '())))))) +(define file-name->module-name + (let ((not-slash (char-set-complement (char-set #\/)))) + (lambda (file) + "Return the module name (a list of symbols) corresponding to FILE." + (map string->symbol + (string-tokenize (string-drop-right file 4) not-slash))))) + (define (module-name->file-name module) "Return the file name for MODULE." (string-append (string-join (map symbol->string module) "/") From dedb512f8f2282f7de3d5b56e7551e486e37840c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Oct 2017 09:57:44 +0200 Subject: [PATCH 052/124] gexp: Add 'file-union'. * gnu/services.scm (file-union): Move to... * guix/gexp.scm (file-union): ... here. New procedure. * doc/guix.texi (G-Expressions): Document it. --- doc/guix.texi | 17 +++++++++++++++++ gnu/services.scm | 20 -------------------- guix/gexp.scm | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 20 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2ccba98092..ce8b977e1b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4990,6 +4990,23 @@ as in: This is the declarative counterpart of @code{text-file*}. @end deffn +@deffn {Scheme Procedure} file-union @var{name} @var{files} +Return a @code{} that builds a directory containing all of @var{files}. +Each item in @var{files} must be a two-element list where the first element is the +file name to use in the new directory, and the second element is a gexp +denoting the target file. Here's an example: + +@example +(file-union "etc" + `(("hosts" ,(plain-file "hosts" + "127.0.0.1 localhost")) + ("bashrc" ,(plain-file "bashrc" + "alias ls='ls --color'")))) +@end example + +This yields an @code{etc} directory containing these two files. +@end deffn + @deffn {Scheme Procedure} file-append @var{obj} @var{suffix} @dots{} Return a file-like object that expands to the concatenation of @var{obj} and @var{suffix}, where @var{obj} is a lowerable object and each diff --git a/gnu/services.scm b/gnu/services.scm index 0bd3620852..bc866eafe3 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -97,7 +97,6 @@ %activation-service etc-service - file-union ;XXX: for lack of a better place directory-union)) ;;; Comment: @@ -388,25 +387,6 @@ boot." (list (service-extension boot-service-type cleanup-gexp))))) -(define* (file-union name files) ;FIXME: Factorize. - "Return a that builds a directory containing all of FILES. -Each item in FILES must be a list where the first element is the file name to -use in the new directory, and the second element is a gexp denoting the target -file." - (computed-file name - #~(begin - (mkdir #$output) - (chdir #$output) - #$@(map (match-lambda - ((target source) - #~(begin - ;; Stat the source to abort early if it - ;; does not exist. - (stat #$source) - - (symlink #$source #$target)))) - files)))) - (define (directory-union name things) "Return a directory that is the union of THINGS." (match things diff --git a/guix/gexp.scm b/guix/gexp.scm index 2622c5cb62..9835599bb8 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -78,6 +78,7 @@ gexp->script text-file* mixed-text-file + file-union imported-files imported-modules compiled-modules @@ -1171,6 +1172,37 @@ This is the declarative counterpart of 'text-file*'." (computed-file name build)) +(define (file-union name files) + "Return a that builds a directory containing all of FILES. +Each item in FILES must be a two-element list where the first element is the +file name to use in the new directory, and the second element is a gexp +denoting the target file. Here's an example: + + (file-union \"etc\" + `((\"hosts\" ,(plain-file \"hosts\" + \"127.0.0.1 localhost\")) + (\"bashrc\" ,(plain-file \"bashrc\" + \"alias ls='ls --color'\")))) + +This yields an 'etc' directory containing these two files." + (computed-file name + (gexp + (begin + (mkdir (ungexp output)) + (chdir (ungexp output)) + (ungexp-splicing + (map (match-lambda + ((target source) + (gexp + (begin + ;; Stat the source to abort early if it does + ;; not exist. + (stat (ungexp source)) + + (symlink (ungexp source) + (ungexp target)))))) + files)))))) + ;;; ;;; Syntactic sugar. From d298c815e638581d466222f3a883b280f019b368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Oct 2017 10:12:53 +0200 Subject: [PATCH 053/124] gexp: Add 'directory-union'. * gnu/services.scm (directory-union): Move to... * guix/gexp.scm (directory-union): ... here. New procedure. * doc/guix.texi (G-Expressions): Document it. --- doc/guix.texi | 11 +++++++++++ gnu/services.scm | 17 +---------------- guix/gexp.scm | 20 ++++++++++++++++++++ 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index ce8b977e1b..d7fabe9599 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5007,6 +5007,17 @@ denoting the target file. Here's an example: This yields an @code{etc} directory containing these two files. @end deffn +@deffn {Scheme Procedure} directory-union @var{name} @var{things} +Return a directory that is the union of @var{things}, where @var{things} is a list of +file-like objects denoting directories. For example: + +@example +(directory-union "guile+emacs" (list guile emacs)) +@end example + +yields a directory that is the union of the @code{guile} and @code{emacs} packages. +@end deffn + @deffn {Scheme Procedure} file-append @var{obj} @var{suffix} @dots{} Return a file-like object that expands to the concatenation of @var{obj} and @var{suffix}, where @var{obj} is a lowerable object and each diff --git a/gnu/services.scm b/gnu/services.scm index bc866eafe3..50be28a382 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -95,9 +95,7 @@ %boot-service %activation-service - etc-service - - directory-union)) + etc-service)) ;;; Comment: ;;; @@ -387,19 +385,6 @@ boot." (list (service-extension boot-service-type cleanup-gexp))))) -(define (directory-union name things) - "Return a directory that is the union of THINGS." - (match things - ((one) - ;; Only one thing; return it. - one) - (_ - (computed-file name - (with-imported-modules '((guix build union)) - #~(begin - (use-modules (guix build union)) - (union-build #$output '#$things))))))) - (define* (activation-service->script service) "Return as a monadic value the activation script for SERVICE, a service of ACTIVATION-SCRIPT-TYPE." diff --git a/guix/gexp.scm b/guix/gexp.scm index 9835599bb8..b9525603ee 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -79,6 +79,7 @@ text-file* mixed-text-file file-union + directory-union imported-files imported-modules compiled-modules @@ -1203,6 +1204,25 @@ This yields an 'etc' directory containing these two files." (ungexp target)))))) files)))))) +(define (directory-union name things) + "Return a directory that is the union of THINGS, where THINGS is a list of +file-like objects denoting directories. For example: + + (directory-union \"guile+emacs\" (list guile emacs)) + +yields a directory that is the union of the 'guile' and 'emacs' packages." + (match things + ((one) + ;; Only one thing; return it. + one) + (_ + (computed-file name + (with-imported-modules '((guix build union)) + (gexp (begin + (use-modules (guix build union)) + (union-build (ungexp output) + '(ungexp things))))))))) + ;;; ;;; Syntactic sugar. From de5308f526bd413ae2d05fcf6103d35d7b3d7203 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 Oct 2017 02:12:58 +0200 Subject: [PATCH 054/124] gnu: Add libnet. * gnu/packages/networking.scm (libnet): New variable. --- gnu/packages/networking.scm | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 265455e5b2..a6c1042978 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -48,6 +48,7 @@ #:use-module (gnu packages adns) #:use-module (gnu packages algebra) #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages code) @@ -55,6 +56,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages dejagnu) + #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) @@ -1494,3 +1496,42 @@ interface and a programmable text output for scripting.") ;; Update the license field when upstream responds. (license (list license:bsd-2 license:expat)))) + +(define-public libnet + (package + (name "libnet") + (version "1.1.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/sam-github/libnet/" + "archive/libnet-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0l4gbzzvr199fzczzricjz7b825i7dlk6sgl5p5alnkcagmq0xys")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "libnet") #t)) + (add-after 'chdir 'bootstrap + (lambda _ (zero? (system* "autoreconf" "-vif")))) + (add-before 'build 'build-doc + (lambda* (#:key make-flags #:allow-other-keys) + (zero? (apply system* "make" "-C" "doc" "doc" + make-flags))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("doxygen" ,doxygen))) + (home-page "https://sourceforge.net/projects/libnet-dev/") + (synopsis "Framework for low-level network packet construction") + (description + "Libnet provides a fairly portable framework for network packet +construction and injection. It features portable packet creation interfaces +at the IP layer and link layer, as well as a host of supplementary +functionality. Using libnet, quick and simple packet assembly applications +can be whipped up with little effort.") + (license license:bsd-2))) From fe420383e16887d404dcd5e61033a74679d6ea06 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 Oct 2017 09:37:04 +0200 Subject: [PATCH 055/124] gnu: Add criu. * gnu/packages/virtualization.scm (criu): New variable. --- gnu/packages/virtualization.scm | 101 +++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 2 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 8fce545dbe..e99efce7a4 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015, 2016, 2017 Mark H Weaver ;;; Copyright © 2016, 2017 Efraim Flashner -;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017 Andy Patterson ;;; @@ -32,6 +32,8 @@ #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages disk) #:use-module (gnu packages dns) + #:use-module (gnu packages docbook) + #:use-module (gnu packages documentation) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -40,9 +42,11 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) + #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages selinux) #:use-module (gnu packages sdl) @@ -55,7 +59,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix download) - #:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.1+)) + #:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.1 lgpl2.1+)) #:use-module (guix packages) #:use-module (guix utils) #:use-module (srfi srfi-1)) @@ -573,3 +577,96 @@ virtual machines through libvirt. It primarily targets KVM VMs, but also manages Xen and LXC (Linux containers). It presents a summary view of running domains, their live performance and resource utilization statistics.") (license gpl2+))) + +(define-public criu + (package + (name "criu") + (version "3.5") + (source (origin + (method url-fetch) + (uri (string-append "http://download.openvz.org/criu/criu-" + version ".tar.bz2")) + (sha256 + (base32 + "1w0ybla7ac0ql0jzh0vxdf2w9amqp88jcg0na3b33r3hq8acry6x")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:tests? #f ; tests require mounting as root + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "LIBDIR=" (assoc-ref %outputs "out") + "/lib")) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + ;; The includes for libnl are located in a sub-directory. + (setenv "C_INCLUDE_PATH" + (string-append (assoc-ref inputs "libnl") + "/include/libnl3:" + (getenv "C_INCLUDE_PATH"))) + ;; Prevent xmlto from failing the install phase. + (substitute* "Documentation/Makefile" + (("XMLTO.*:=.*") + (string-append "XMLTO:=" + (assoc-ref inputs "xmlto") + "/bin/xmlto" + " --skip-validation " + " -x " + (assoc-ref inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl) + "/manpages/docbook.xsl"))) + #t)) + (add-before 'build 'fix-symlink + (lambda* (#:key inputs #:allow-other-keys) + ;; The file 'images/google/protobuf/descriptor.proto' points to + ;; /usr/include/..., which obviously does not exist. + (let* ((file "google/protobuf/descriptor.proto") + (target (string-append "images/" file)) + (source (string-append (assoc-ref inputs "protobuf") + "/include/" file))) + (delete-file target) + (symlink source target) + #t))) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make sure 'crit' runs with the correct PYTHONPATH. + (let* ((out (assoc-ref outputs "out")) + (path (string-append out + "/lib/python" + (string-take (string-take-right + (assoc-ref inputs "python") 5) 3) + "/site-packages:" + (getenv "PYTHONPATH")))) + (wrap-program (string-append out "/bin/crit") + `("PYTHONPATH" ":" prefix (,path)))) + #t))))) + (inputs + `(("protobuf" ,protobuf) + ("python" ,python-2) + ("python2-protobuf" ,python2-protobuf) + ("python2-ipaddr" ,python2-ipaddr) + ("iproute" ,iproute) + ("libaio" ,libaio) + ("libcap" ,libcap) + ("libnet" ,libnet) + ("libnl" ,libnl))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("protobuf-c" ,protobuf-c) + ("asciidoc" ,asciidoc) + ("xmlto" ,xmlto) + ("docbook-xml" ,docbook-xml) + ("docbook-xsl" ,docbook-xsl))) + (home-page "https://criu.org") + (synopsis "Checkpoint and restore in user space") + (description "Using this tool, you can freeze a running application (or +part of it) and checkpoint it to a hard drive as a collection of files. You +can then use the files to restore and run the application from the point it +was frozen at. The distinctive feature of the CRIU project is that it is +mainly implemented in user space.") + ;; The project is licensed under GPLv2; files in the lib/ directory are + ;; LGPLv2.1. + (license (list gpl2 lgpl2.1)))) From 3bf94bc8bcbc7cf259eaddc3c19c82fd34f20c10 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Oct 2017 09:49:53 +0300 Subject: [PATCH 056/124] gnu: criu: Add missing perl input. * gnu/packages/virtualization.scm (criu)[native-inputs]: Add perl. --- gnu/packages/virtualization.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index e99efce7a4..c8ab607028 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -655,6 +655,7 @@ domains, their live performance and resource utilization statistics.") ("libnl" ,libnl))) (native-inputs `(("pkg-config" ,pkg-config) + ("perl" ,perl) ("protobuf-c" ,protobuf-c) ("asciidoc" ,asciidoc) ("xmlto" ,xmlto) From 1ee3079d780d2a9c5bd27980922f6fc7b239a21a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Oct 2017 11:44:04 +0300 Subject: [PATCH 057/124] gnu: cowsay: Run tests after install. * gnu/packages/games.scm (cowsay)[arguments]: Delete 'check phase, add custom 'check phase after install. --- gnu/packages/games.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 6709f02923..61eed39ef0 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -267,7 +267,8 @@ the others like yourself, that want what you have.") (lambda* (#:key outputs #:allow-other-keys) (zero? (system* "sh" "install.sh" (assoc-ref outputs "out"))))) - (replace 'check + (delete 'check) + (add-after 'install 'check (lambda* (#:key outputs #:allow-other-keys) (zero? (system* (string-append (assoc-ref outputs "out") "/bin/cowsay") From ce4dfde0d88521a13143b86ba0e5a7fadc14357f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 20 Oct 2017 02:34:12 +0200 Subject: [PATCH 058/124] gnu: miso: Update to 0.5.4. * gnu/packages/bioinformatics.scm (miso): Update to 0.5.4. --- gnu/packages/bioinformatics.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index bb8a0f8d40..aaf8b613e0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2016 Raoul Bonnal +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -3615,7 +3616,7 @@ assembled metagenomic sequence.") (define-public miso (package (name "miso") - (version "0.5.3") + (version "0.5.4") (source (origin (method url-fetch) (uri (string-append @@ -3623,7 +3624,7 @@ assembled metagenomic sequence.") version ".tar.gz")) (sha256 (base32 - "0x446867az8ir0z8c1vjqffkp0ma37wm4sylixnkhgawllzx8v5w")) + "1z3x0vd8ma7pdrnywj7i3kgwl89sdkwrrn62zl7r5calqaq2hyip")) (modules '((guix build utils))) (snippet '(substitute* "setup.py" From f737d9f2fb71a28749e63de7af234d50c73139df Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 Oct 2017 14:50:45 +0200 Subject: [PATCH 059/124] gnu: python-pytest-django: Use python-pytest@3. * gnu/packages/django.scm (python-pytest-django)[propagated-inputs]: Replace python-pytest with python-pytest-3.0. --- gnu/packages/django.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index c70c074938..f983b1aa10 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 ng0 +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -150,7 +151,7 @@ with arguments to the field constructor.") `(("python-django" ,python-django) ("python-setuptools-scm" ,python-setuptools-scm))) (propagated-inputs - `(("python-pytest" ,python-pytest))) + `(("python-pytest" ,python-pytest-3.0))) (home-page "http://pytest-django.readthedocs.org/") (synopsis "Django plugin for py.test") (description "Pytest-django is a plugin for py.test that provides a set of From 2b1b27990bb7600dcfcc7f5cfffe07c2118fa434 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 Oct 2017 15:21:49 +0200 Subject: [PATCH 060/124] gnu: python-graphene: Disable tests. * gnu/packages/python.scm (python-graphene)[native-inputs]: Remove. [arguments]: Disable #:tests. --- gnu/packages/python.scm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 86bc4875bf..47d5f63b7f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -13168,18 +13168,14 @@ from Facebook.") (base32 "09zhac7igh9ixdz0ay6csy35b40l1jwbf2wrbxmgxwfhy51iy06q")))) (build-system python-build-system) - (native-inputs - `(("python-django-filter" ,python-django-filter) - ("python-mock" ,python-mock) - ("python-psycopg2" ,python-psycopg2) - ("python-pytest-django" ,python-pytest-django) - ("python-sqlalchemy-utils" ,python-sqlalchemy-utils))) (propagated-inputs `(("python-graphql-core" ,python-graphql-core) ("python-graphql-relay" ,python-graphql-relay) ("python-iso8601" ,python-iso8601) ("python-promise" ,python-promise) ("python-six" ,python-six))) + (arguments + `(#:tests? #f)) ; no tests/ in the PyPI tarball (home-page "http://graphene-python.org/") (synopsis "GraphQL Framework for Python") (description From 6a4ad78dd6ec24590c3e26d410b1e995765f8767 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 Oct 2017 15:58:07 +0200 Subject: [PATCH 061/124] gnu: python-graphviz: Update to 0.8.1. * gnu/packages/graphviz.scm (python-graphviz): Update to 0.8.1. --- gnu/packages/graphviz.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index 5f2fcb8602..c71fb74cfb 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Efraim Flashner ;;; Copyright © 2016 Theodoros Foradis ;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -112,13 +113,13 @@ interfaces for other technical domains.") (define-public python-graphviz (package (name "python-graphviz") - (version "0.8") + (version "0.8.1") (source (origin (method url-fetch) (uri (pypi-uri "graphviz" version ".zip")) (sha256 (base32 - "0i738qb32w93hraxzjwkvnxmrfwcalhjd14fdbah9f2mk46p5748")))) + "00rzqsmq25b0say05vix5xivchdvsv83jl2i8pkryqd0nz4bxzvb")))) (build-system python-build-system) (native-inputs `(("unzip" ,unzip))) From afd845368af0c78e22850aaa067d5dc6bebd5f97 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 Oct 2017 15:57:02 +0200 Subject: [PATCH 062/124] gnu: python-peewee: Update to 2.10.2. * gnu/packages/databases.scm (python-peewee): Update to 2.10.2. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 30b1661299..0dd5f53d42 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1582,14 +1582,14 @@ on another machine, accessed via TCP/IP.") (define-public python-peewee (package (name "python-peewee") - (version "2.8.3") + (version "2.10.2") (source (origin (method url-fetch) (uri (pypi-uri "peewee" version)) (sha256 (base32 - "1605bk11s7aap2q4qyba93rx7yfh8b11kk0cqi08z8klx2iar8yd")))) + "10f2mrd5hw6rjklrzaix2lsxlgc8vx3xak54arcy6yd791zhchi3")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; Fails to import test data From 57af0d13b2ff44dd152febfe8b96cd7c859b2844 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 Oct 2017 15:57:30 +0200 Subject: [PATCH 063/124] gnu: python-lmdb: Update to 0.93. * gnu/packages/databases.scm (python-lmdb): Update to 0.93. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 0dd5f53d42..991bb3d692 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1728,13 +1728,13 @@ etc., and an SQL engine for performing simple SQL queries.") (define-public python-lmdb (package (name "python-lmdb") - (version "0.92") + (version "0.93") (source (origin (method url-fetch) (uri (pypi-uri "lmdb" version)) (sha256 (base32 - "01nw6r08jkipx6v92kw49z34wmwikrpvc5j9xawdiyg1n2526wrx")) + "0xdpb298fyl68acadbwv5801wcwfpnhc7sm4bnrq1x4bd5dhhsql")) (modules '((guix build utils))) (snippet ;; Delete bundled lmdb source files. From cc14a90fd3ce34a371175de610f9befcb2dad52b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 23 Oct 2017 14:30:52 +0200 Subject: [PATCH 064/124] gnu: borg: Update to 1.1.1. * gnu/packages/backup.scm (borg): Update to 1.1.1. --- gnu/packages/backup.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 4c5c9c7ae4..9de120bf26 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -463,13 +463,13 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 (base32 - "0vwyg0b4kxb0rspqwhvgi5c78dzimgkydf03wif27a40qhh1235l")) + "0iik5lq349cl87imlwra2pp0j36wjhpn8r1d3778azvvqpyjq2d5")) (modules '((guix build utils))) (snippet '(for-each From 1a6497dee43e7469040a6eb9dab101f6fc764eca Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 21 Oct 2017 21:03:03 +0200 Subject: [PATCH 065/124] gnu: Add python2-libmpsse. * gnu/packages/embedded.scm: Add imports. (python2-libmpsse): New variable. --- gnu/packages/embedded.scm | 65 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index e89f5570b0..033d0032e7 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -42,6 +42,8 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages swig) #:use-module (gnu packages texinfo) #:use-module (srfi srfi-1)) @@ -867,3 +869,66 @@ the Raspberry Pi chip.") (synopsis "GCC for VC4") (description "This package provides @code{gcc} for VideoCore IV, the Raspberry Pi chip.")))) + +(define-public python2-libmpsse + (package + (name "python2-libmpsse") + (version "1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://storage.googleapis.com/" + "google-code-archive-downloads/v2/" + "code.google.com/libmpsse/" + "libmpsse-" version ".tar.gz")) + (sha256 + (base32 + "0jq7nhqq3na8675jnpfcar3pd3dp3adhhc4lw900swkla01a1wh8")))) + (build-system gnu-build-system) + (inputs + `(("libftdi" ,libftdi) + ("python" ,python-2))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("swig" ,swig) + ("which" ,base:which))) + (arguments + `(#:tests? #f ; No tests exist. + #:make-flags + (list (string-append "CFLAGS=-Wall -fPIC -fno-strict-aliasing -g -O2 " + "$(shell pkg-config --cflags libftdi1)")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-environment-up + (lambda* (#:key inputs outputs #:allow-other-keys) + (chdir "src") + (setenv "PYDEV" (string-append (assoc-ref inputs "python") + "/include/python2.7")) + #t)) + (add-after 'unpack 'patch-global-variable + (lambda _ + ;; fast_rw_buf was defined in a header file which was making + ;; the build not reproducible. + (substitute* "src/fast.c" + (("^int fast_build_block_buffer") " + +unsigned char fast_rw_buf[SPI_RW_SIZE + CMD_SIZE]; +int fast_build_block_buffer")) + (substitute* "src/mpsse.h" + (("unsigned char fast_rw_buf.*") " +")) + #t)) + (replace 'install + (lambda* (#:key outputs make-flags #:allow-other-keys #:rest args) + (let* ((out (assoc-ref outputs "out")) + (out-python (string-append out + "/lib/python2.7/site-packages")) + (install (assoc-ref %standard-phases 'install))) + (install #:make-flags (cons (string-append "PYLIB=" out-python) + make-flags)))))))) + (home-page "https://code.google.com/archive/p/libmpsse/") + (synopsis "Python library for MPSSE SPI I2C JTAG adapter by FTDI") + (description "This package provides a library in order to support the +MPSSE (Multi-Protocol Synchronous Serial Engine) adapter by FTDI that can do +SPI, I2C, JTAG.") + (license license:gpl2+))) From 90a127c7ed63c22485f0751f3c24a9072a05c8b8 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 10 Oct 2017 22:41:08 +0200 Subject: [PATCH 066/124] gnu: Add java-hdrhistogram. * gnu/packages/web.scm (java-hdrhistogram): New variable. --- gnu/packages/java.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 45cb16f1f6..901d16eabb 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6020,3 +6020,42 @@ provides low-level abstractions (@code{JsonParser}, @code{JsonGenerator}, @code{JsonFactory}) as well as small number of higher level overrides needed to make data-binding work.") (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing + +(define-public java-hdrhistogram + (package + (name "java-hdrhistogram") + (version "2.1.9") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/HdrHistogram/HdrHistogram/" + "archive/HdrHistogram-" version ".tar.gz")) + (sha256 + (base32 + "1sicbmc3sr42nw93qbkb26q9rn33ag33k6k77phjc3j5h5gjffqv")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-hdrhistogram.jar" + #:source-dir "src/main/java" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-version + (lambda _ + (let* ((version-java "src/main/java/org/HdrHistogram/Version.java") + (template (string-append version-java ".template"))) + (copy-file template version-java) + (substitute* version-java + (("\\$VERSION\\$") ,version) + (("\\$BUILD_TIME\\$") "0")) + #t)))))) + (native-inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core))) + (home-page "https://hdrhistogram.github.io/HdrHistogram") + (synopsis "High dynamic range histogram") + (description "Hdrhistogram allows to create histograms that support +recording and analyzing sampled data value counts across a configurable integer +value range with configurable value precision within the range. Value precision +is expressed as the number of significant digits in the value recording, and +provides control over value quantization behavior across the value range and +the subsequent value resolution at any given level.") + (license license:public-domain))) From 91072287a6b07a9fd6a43c717cc6fcecaa7e77c9 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 23 Oct 2017 21:54:44 +0200 Subject: [PATCH 067/124] gnu: Add java-tomcat. * gnu/packages/web.scm (java-tomcat): New variable. --- gnu/packages/web.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index c7b44fafa1..bc0c606f86 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -52,6 +52,7 @@ #:use-module (guix build-system r) #:use-module (guix build-system trivial) #:use-module (guix build-system python) + #:use-module (guix build-system ant) #:use-module (gnu packages) #:use-module (gnu packages apr) #:use-module (gnu packages check) @@ -5384,3 +5385,54 @@ collection creation and deletion, and locking operations.") "Py-ubjson is a Python module providing an Universal Binary JSON encoder/decoder based on the draft-12 specification for UBJSON.") (license l:asl2.0))) + +(define-public java-tomcat + (package + (name "java-tomcat") + (version "8.5.23") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/tomcat/tomcat-8/v" + version "/src/apache-tomcat-" version "-src.tar.gz")) + (sha256 + (base32 + "1m6b1dikib46kbgz9gf0p6svi00nsw62b9kgjzn6sda151skbbza")))) + (build-system ant-build-system) + (inputs + `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core))) + (native-inputs + `(("java-junit" ,java-junit))) + (arguments + `(#:build-target "package" + #:tests? #f; requires downloading some files. + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'prevent-download + (lambda _ + ;; This directory must exist + (mkdir "downloads") + ;; We patch build.xml so it doesn't download any dependency, because + ;; we already have all of them. + (substitute* "build.xml" + (("download-compile,") "") + (("depends=\"validate\"") "depends=\"build-prepare\"") + ((",download-validate") "")) + #t)) + (add-after 'unpack 'generate-properties + (lambda _ + ;; This could have been passed to make-flags, but getcwd returns + ;; a different directory then. + (with-output-to-file "build.properties" + (lambda _ + (display + (string-append "base.path=" (getcwd) "/downloads\n")))) + #t)) + (replace 'install + (install-jars "output/build/lib"))))) + (home-page "https://tomcat.apache.org") + (synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java +WebSocket") + (description "Apache Tomcat is a free implementation of the Java +Servlet, JavaServer Pages, Java Expression Language and Java WebSocket +technologies.") + (license l:asl2.0))) From 339bef37cd2fce78333ac1c52060c0b03db62aae Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 15 Oct 2017 00:07:09 +0200 Subject: [PATCH 068/124] gnu: Add java-eclipse-jetty-test-helper. * gnu/packages/web.scm (java-eclipse-jetty-test-helper): New variable. --- gnu/packages/web.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index bc0c606f86..b1d267dc49 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5436,3 +5436,54 @@ WebSocket") Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies.") (license l:asl2.0))) + +(define-public java-eclipse-jetty-test-helper + (package + (name "java-eclipse-jetty-test-helper") + (version "4.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/eclipse/jetty.toolchain/" + "archive/jetty-test-helper-" version ".tar.gz")) + (sha256 + (base32 + "1jd6r9wc26fa11si4rn2gvy8ml8q4zw1nr6v04mjp8wvwpgvzwx5")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "eclipse-jetty-test-helper.jar" + #:source-dir "src/main/java" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-test-helper"))) + (add-before 'build 'fix-paths + (lambda _ + ;; TODO: + ;; This file assumes that the build directory is named "target" + ;; but it is not the case with our ant-build-system. Once we have + ;; maven though, we will have to rebuild this package because this + ;; assumption is correct with maven-build-system. + (substitute* + "src/main/java/org/eclipse/jetty/toolchain/test/MavenTestingUtils.java" + (("\"target\"") "\"build\"") + (("\"tests\"") "\"test-classes\"")) + ;; Tests assume we are building with maven, so that the build + ;; directory is named "target", and not "build". + (with-directory-excursion "src/test/java/org/eclipse/jetty/toolchain/test" + (substitute* '("FSTest.java" "OSTest.java" "TestingDirTest.java" + "MavenTestingUtilsTest.java") + (("target/tests") "build/test-classes") + (("\"target") "\"build"))) + #t))))) + (inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-all))) + (home-page "https://www.eclipse.org/jetty/") + (synopsis "Helper classes for jetty tests") + (description "This packages contains helper classes for testing the Jetty +Web Server.") + ;; This program is licensed under both epl and asl. + (license (list l:epl1.0 l:asl2.0)))) From 1f985e4497a8840ff41409c64e4152ea19ec6535 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 23 Oct 2017 20:57:23 +0200 Subject: [PATCH 069/124] gnu: Add java-eclipse-jetty-perf-helper. * gnu/packages/web.scm (java-eclipse-jetty-perf-helper): New variable. --- gnu/packages/web.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index b1d267dc49..ded86c7f41 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5487,3 +5487,21 @@ technologies.") Web Server.") ;; This program is licensed under both epl and asl. (license (list l:epl1.0 l:asl2.0)))) + +(define-public java-eclipse-jetty-perf-helper + (package + (inherit java-eclipse-jetty-test-helper) + (name "java-eclipse-jetty-perf-helper") + (arguments + `(#:jar-name "eclipse-jetty-perf-helper.jar" + #:source-dir "src/main/java" + #:tests? #f; no tests + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-perf-helper") + #t))))) + (inputs + `(("hdrhistogram" ,java-hdrhistogram))))) From 1657d62ae5f77a0a0755689e1995759044b82374 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 10 Oct 2017 23:10:42 +0200 Subject: [PATCH 070/124] gnu: Add java-eclipse-jetty-util. * gnu/packages/web.scm (java-eclipse-jetty-util): New variable. --- gnu/packages/web.scm | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ded86c7f41..cd84d9c150 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5505,3 +5505,48 @@ Web Server.") #t))))) (inputs `(("hdrhistogram" ,java-hdrhistogram))))) + +(define-public java-eclipse-jetty-util + (package + (name "java-eclipse-jetty-util") + (version "9.4.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/eclipse/jetty.project/" + "archive/jetty-" version ".v20170531.tar.gz")) + (sha256 + (base32 + "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "eclipse-jetty-util.jar" + #:source-dir "src/main/java" + #:test-exclude + (list "**/Abstract*.java" + ;; requires network + "**/InetAddressSetTest.java" + ;; Assumes we are using maven + "**/TypeUtilTest.java" + ;; Error on the style of log + "**/StdErrLogTest.java") + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-util") + #t))))) + (inputs + `(("slf4j" ,java-slf4j-api) + ("servlet" ,java-tomcat))) + (native-inputs + `(("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-all) + ("perf-helper" ,java-eclipse-jetty-perf-helper) + ("test-helper" ,java-eclipse-jetty-test-helper))) + (home-page "https://www.eclipse.org/jetty/") + (synopsis "Utility classes for Jetty") + (description "The Jetty Web Server provides an HTTP server and Servlet +container capable of serving static and dynamic content either from a standalone +or embedded instantiation. This package provides utility classes.") + (license (list l:epl1.0 l:asl2.0)))) From 5010671d4d58ff9f7cf8d2d5451f8bff636ede0d Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 10 Oct 2017 23:12:14 +0200 Subject: [PATCH 071/124] gnu: Add java-eclipse-jetty-util-9.2. * gnu/packages/web.scm (java-eclipse-jetty-util-9.2): New variable. --- gnu/packages/web.scm | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index cd84d9c150..dfe02a68f3 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5550,3 +5550,48 @@ Web Server.") container capable of serving static and dynamic content either from a standalone or embedded instantiation. This package provides utility classes.") (license (list l:epl1.0 l:asl2.0)))) + +;; This version is required by maven-wagon +(define-public java-eclipse-jetty-util-9.2 + (package + (inherit java-eclipse-jetty-util) + (version "9.2.22") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/eclipse/jetty.project/" + "archive/jetty-" version ".v20170606.tar.gz")) + (sha256 + (base32 + "1i51qlsd7h06d35kx5rqpzbfadbcszycx1iwr6vz7qc9gf9f29la")))) + (arguments + `(#:jar-name "eclipse-jetty-util.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:test-exclude + (list "**/Abstract*.java" + ;; requires network + "**/InetAddressSetTest.java" + ;; Assumes we are using maven + "**/TypeUtilTest.java" + ;; We don't have an implementation for slf4j + "**/LogTest.java" + ;; Error on the style of log + "**/StdErrLogTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-util") + #t)) + (add-before 'build 'fix-test-sources + (lambda _ + ;; We need to fix issues caused by changes in newer versions of + ;; jetty-test-helper + (let ((src "src/test/java/org/eclipse/jetty/util/resource")) + (substitute* (string-append src "/AbstractFSResourceTest.java") + (("testdir.getDir\\(\\)") "testdir.getPath().toFile()") + (("testdir.getFile\\(\"foo\"\\)") + "testdir.getPathFile(\"foo\").toFile()") + (("testdir.getFile\\(name\\)") + "testdir.getPathFile(name).toFile()"))) + #t))))))) From b510b7f58f27e6bc635e14816cd404fd507e7dc1 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:35:49 +0200 Subject: [PATCH 072/124] gnu: Add java-eclipse-jetty-io. * gnu/packages/web.scm (java-eclipse-jetty-io): New variable. --- gnu/packages/web.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index dfe02a68f3..912ff4e976 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5595,3 +5595,29 @@ or embedded instantiation. This package provides utility classes.") (("testdir.getFile\\(name\\)") "testdir.getPathFile(name).toFile()"))) #t))))))) + +(define-public java-eclipse-jetty-io + (package + (inherit java-eclipse-jetty-util) + (name "java-eclipse-jetty-io") + (arguments + `(#:jar-name "eclipse-jetty-io.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:test-exclude (list "**/Abstract*.java" + ;; Abstract class + "**/EndPointTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-io") + #t))))) + (inputs + `(("slf4j" ,java-slf4j-api) + ("servlet" ,java-tomcat) + ("util" ,java-eclipse-jetty-util))) + (synopsis "Jetty :: IO Utility") + (description "The Jetty Web Server provides an HTTP server and Servlet +container capable of serving static and dynamic content either from a standalone +or embedded instantiation. This package provides IO-related utility classes."))) From b90012fddf81dec30832d6f31e5b7048e9aa1bfe Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:36:23 +0200 Subject: [PATCH 073/124] gnu: Add java-eclipse-jetty-io-9.2. * gnu/packages/web.scm (java-eclipse-jetty-io-9.2): New variable. --- gnu/packages/web.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 912ff4e976..0aa9d9bcb7 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5621,3 +5621,18 @@ or embedded instantiation. This package provides utility classes.") (description "The Jetty Web Server provides an HTTP server and Servlet container capable of serving static and dynamic content either from a standalone or embedded instantiation. This package provides IO-related utility classes."))) + +(define-public java-eclipse-jetty-io-9.2 + (package + (inherit java-eclipse-jetty-io) + (version (package-version java-eclipse-jetty-util-9.2)) + (source (package-source java-eclipse-jetty-util-9.2)) + (inputs + `(("util" ,java-eclipse-jetty-util-9.2) + ,@(package-inputs java-eclipse-jetty-util-9.2))) + (native-inputs + `(("mockito" ,java-mockito-1) + ("cglib" ,java-cglib) + ("objenesis" ,java-objenesis) + ("asm" ,java-asm) + ,@(package-native-inputs java-eclipse-jetty-util-9.2))))) From 4a1376d3fda67e25cbd259ef09d8026a28e697e0 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:37:33 +0200 Subject: [PATCH 074/124] gnu: Add java-eclipse-jetty-http. * gnu/packages/web.scm (java-eclipse-jetty-http): New variable. --- gnu/packages/web.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 0aa9d9bcb7..8059956801 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5636,3 +5636,32 @@ or embedded instantiation. This package provides IO-related utility classes.")) ("objenesis" ,java-objenesis) ("asm" ,java-asm) ,@(package-native-inputs java-eclipse-jetty-util-9.2))))) + +(define-public java-eclipse-jetty-http + (package + (inherit java-eclipse-jetty-util) + (name "java-eclipse-jetty-http") + (arguments + `(#:jar-name "eclipse-jetty-http.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-http") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (mkdir-p "build/classes") + (copy-recursively "src/main/resources/" "build/classes/") + #t))))) + (inputs + `(("slf4j" ,java-slf4j-api) + ("servlet" ,java-tomcat) + ("io" ,java-eclipse-jetty-io) + ("util" ,java-eclipse-jetty-util))) + (synopsis "Jetty :: Http Utility") + (description "The Jetty Web Server provides an HTTP server and Servlet +container capable of serving static and dynamic content either from a standalone +or embedded instantiation. This package provides HTTP-related utility classes."))) From 821869fcf4e7bfd01b2b8c76a2f59b354a8bc9de Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:38:21 +0200 Subject: [PATCH 075/124] gnu: Add java-eclipse-jetty-http-9.2. * gnu/packages/web.scm (java-eclipse-jetty-http-9.2): New variable. --- gnu/packages/web.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 8059956801..16e6911185 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5665,3 +5665,13 @@ or embedded instantiation. This package provides IO-related utility classes.")) (description "The Jetty Web Server provides an HTTP server and Servlet container capable of serving static and dynamic content either from a standalone or embedded instantiation. This package provides HTTP-related utility classes."))) + +(define-public java-eclipse-jetty-http-9.2 + (package + (inherit java-eclipse-jetty-http) + (version (package-version java-eclipse-jetty-util-9.2)) + (source (package-source java-eclipse-jetty-util-9.2)) + (inputs + `(("util" ,java-eclipse-jetty-util-9.2) + ("io" ,java-eclipse-jetty-io-9.2) + ,@(package-inputs java-eclipse-jetty-util-9.2))))) From 4b172061e5b2e27d4641ae7f6d46eac841eeb5d0 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:40:30 +0200 Subject: [PATCH 076/124] gnu: Add java-eclipse-jetty-jmx. * gnu/packages/web.scm (java-eclipse-jetty-jmx): New variable. --- gnu/packages/web.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 16e6911185..ee3c457927 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5675,3 +5675,27 @@ or embedded instantiation. This package provides HTTP-related utility classes." `(("util" ,java-eclipse-jetty-util-9.2) ("io" ,java-eclipse-jetty-io-9.2) ,@(package-inputs java-eclipse-jetty-util-9.2))))) + +(define-public java-eclipse-jetty-jmx + (package + (inherit java-eclipse-jetty-util) + (name "java-eclipse-jetty-jmx") + (arguments + `(#:jar-name "eclipse-jetty-jmx.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:tests? #f; FIXME: requires com.openpojo.validation + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-jmx") + #t))))) + (inputs + `(("slf4j" ,java-slf4j-api) + ("servlet" ,java-tomcat) + ("util" ,java-eclipse-jetty-util))) + (synopsis "Jetty :: JMX Management") + (description "The Jetty Web Server provides an HTTP server and Servlet +container capable of serving static and dynamic content either from a standalone +or embedded instantiation. This package provides the JMX management."))) From 812c712f7a14289fd99c28dfbfb8ed7d6fab53f4 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:41:01 +0200 Subject: [PATCH 077/124] gnu: Add java-eclipse-jetty-jmx-9.2. * gnu/packages/web.scm (java-eclipse-jetty-jmx-9.2): New variable. --- gnu/packages/web.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ee3c457927..37db8ccdd7 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5699,3 +5699,12 @@ or embedded instantiation. This package provides HTTP-related utility classes." (description "The Jetty Web Server provides an HTTP server and Servlet container capable of serving static and dynamic content either from a standalone or embedded instantiation. This package provides the JMX management."))) + +(define-public java-eclipse-jetty-jmx-9.2 + (package + (inherit java-eclipse-jetty-jmx) + (version (package-version java-eclipse-jetty-util-9.2)) + (source (package-source java-eclipse-jetty-util-9.2)) + (inputs + `(("util" ,java-eclipse-jetty-util-9.2) + ,@(package-inputs java-eclipse-jetty-util-9.2))))) From 5d38f7e4e89fe57256c372d0ff38a55362627788 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:45:46 +0200 Subject: [PATCH 078/124] gnu: Add java-eclipse-jetty-server. * gnu/packages/web.scm (java-eclipse-jetty-server): New variable. --- gnu/packages/web.scm | 70 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 37db8ccdd7..bab62eb4d3 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5708,3 +5708,73 @@ or embedded instantiation. This package provides the JMX management."))) (inputs `(("util" ,java-eclipse-jetty-util-9.2) ,@(package-inputs java-eclipse-jetty-util-9.2))))) + +(define java-eclipse-jetty-http-test-classes + (package + (inherit java-eclipse-jetty-util) + (name "java-eclipse-jetty-http-test-classes") + (arguments + `(#:jar-name "eclipse-jetty-http.jar" + #:source-dir "src/test" + #:tests? #f + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-http")))))) + (inputs + `(("slf4j" ,java-slf4j-api) + ("servlet" ,java-tomcat) + ("http" ,java-eclipse-jetty-http) + ("io" ,java-eclipse-jetty-io) + ("util" ,java-eclipse-jetty-util))))) + +(define-public java-eclipse-jetty-server + (package + (inherit java-eclipse-jetty-util) + (name "java-eclipse-jetty-server") + (arguments + `(#:jar-name "eclipse-jetty-server.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:tests? #f; requires a mockito version we don't have + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-server") + #t)) + (add-before 'build 'fix-source + (lambda _ + ;; Explicit casts to prevent build failures + (substitute* "src/main/java/org/eclipse/jetty/server/Request.java" + (("append\\(LazyList") + "append((CharSequence)LazyList")) + (substitute* + "src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java" + (((string-append + "Class<\\? extends EventListener> clazz = _classLoader==null" + "\\?Loader.loadClass\\(ContextHandler.class,className\\):" + "_classLoader.loadClass\\(className\\);")) + (string-append "Class clazz = " + "(Class) " + "(_classLoader==null?Loader.loadClass(" + "ContextHandler.class,className):" + "_classLoader.loadClass(className));"))) + #t))))) + (inputs + `(("slf4j" ,java-slf4j-api) + ("servlet" ,java-tomcat) + ("http" ,java-eclipse-jetty-http) + ("io" ,java-eclipse-jetty-io) + ("jmx" ,java-eclipse-jetty-jmx) + ("util" ,java-eclipse-jetty-util))) + (native-inputs + `(("test-classes" ,java-eclipse-jetty-http-test-classes) + ,@(package-native-inputs java-eclipse-jetty-util))) + (synopsis "Core jetty server artifact") + (description "The Jetty Web Server provides an HTTP server and Servlet +container capable of serving static and dynamic content either from a standalone +or embedded instantiation. This package provides the core jetty server +artifact."))) From e36e2bee4619e812d7a942cec94565aeeda9b37a Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:48:10 +0200 Subject: [PATCH 079/124] gnu: Add java-eclipse-jetty-server-9.2. * gnu/packages/web.scm (java-eclipse-jetty-server-9.2): New variable. --- gnu/packages/web.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index bab62eb4d3..9e0f31cc2b 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5730,6 +5730,15 @@ or embedded instantiation. This package provides the JMX management."))) ("io" ,java-eclipse-jetty-io) ("util" ,java-eclipse-jetty-util))))) +(define java-eclipse-jetty-http-test-classes-9.2 + (package + (inherit java-eclipse-jetty-http-test-classes) + (version (package-version java-eclipse-jetty-util-9.2)) + (source (package-source java-eclipse-jetty-util-9.2)) + (inputs + `(("http" ,java-eclipse-jetty-http-9.2) + ,@(package-inputs java-eclipse-jetty-http-9.2))))) + (define-public java-eclipse-jetty-server (package (inherit java-eclipse-jetty-util) @@ -5778,3 +5787,18 @@ or embedded instantiation. This package provides the JMX management."))) container capable of serving static and dynamic content either from a standalone or embedded instantiation. This package provides the core jetty server artifact."))) + +(define-public java-eclipse-jetty-server-9.2 + (package + (inherit java-eclipse-jetty-server) + (version (package-version java-eclipse-jetty-util-9.2)) + (source (package-source java-eclipse-jetty-util-9.2)) + (inputs + `(("util" ,java-eclipse-jetty-util-9.2) + ("jmx" ,java-eclipse-jetty-jmx-9.2) + ("io" ,java-eclipse-jetty-io-9.2) + ("http" ,java-eclipse-jetty-http-9.2) + ,@(package-inputs java-eclipse-jetty-util-9.2))) + (native-inputs + `(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2) + ,@(package-native-inputs java-eclipse-jetty-util-9.2))))) From 8528e20dff43ded152020a43dc2d1a5ff837e502 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:51:00 +0200 Subject: [PATCH 080/124] gnu: Add java-eclipse-jetty-security. * gnu/packages/web.scm (java-eclipse-jetty-security): New variable. --- gnu/packages/web.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 9e0f31cc2b..0e3a8017be 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5802,3 +5802,32 @@ artifact."))) (native-inputs `(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2) ,@(package-native-inputs java-eclipse-jetty-util-9.2))))) + +(define-public java-eclipse-jetty-security + (package + (inherit java-eclipse-jetty-util) + (name "java-eclipse-jetty-security") + (arguments + `(#:jar-name "eclipse-jetty-security.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-security") + #t))))) + (inputs + `(("slf4j" ,java-slf4j-api) + ("servlet" ,java-tomcat) + ("http" ,java-eclipse-jetty-http) + ("server" ,java-eclipse-jetty-server) + ("util" ,java-eclipse-jetty-util))) + (native-inputs + `(("io" ,java-eclipse-jetty-io) + ,@(package-native-inputs java-eclipse-jetty-util))) + (synopsis "Jetty security infrastructure") + (description "The Jetty Web Server provides an HTTP server and Servlet +container capable of serving static and dynamic content either from a standalone +or embedded instantiation. This package provides the core jetty security +infrastructure"))) From fa2a23a1460140f5ec71df8a83482a928c4d7875 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:51:54 +0200 Subject: [PATCH 081/124] gnu: Add java-eclipse-jetty-security-9.2. * gnu/packages/web.scm (java-eclipse-jetty-security-9.2): New variable. --- gnu/packages/web.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 0e3a8017be..2fbdf86d39 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5831,3 +5831,17 @@ artifact."))) container capable of serving static and dynamic content either from a standalone or embedded instantiation. This package provides the core jetty security infrastructure"))) + +(define-public java-eclipse-jetty-security-9.2 + (package + (inherit java-eclipse-jetty-security) + (version (package-version java-eclipse-jetty-util-9.2)) + (source (package-source java-eclipse-jetty-util-9.2)) + (inputs + `(("util" ,java-eclipse-jetty-util-9.2) + ("http" ,java-eclipse-jetty-http-9.2) + ("server" ,java-eclipse-jetty-server-9.2) + ,@(package-inputs java-eclipse-jetty-util-9.2))) + (native-inputs + `(("io" ,java-eclipse-jetty-io-9.2) + ,@(package-native-inputs java-eclipse-jetty-util-9.2))))) From fb680f88e903c95860ab1dc63c1aa764ddb553cc Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 22:55:57 +0200 Subject: [PATCH 082/124] gnu: Add java-eclipse-jetty-servlet. * gnu/packages/web.scm (java-eclipse-jetty-servlet): New variable. --- gnu/packages/web.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 2fbdf86d39..dad971fa9d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5845,3 +5845,33 @@ infrastructure"))) (native-inputs `(("io" ,java-eclipse-jetty-io-9.2) ,@(package-native-inputs java-eclipse-jetty-util-9.2))))) + +(define-public java-eclipse-jetty-servlet + (package + (inherit java-eclipse-jetty-util) + (name "java-eclipse-jetty-servlet") + (arguments + `(#:jar-name "eclipse-jetty-servlet.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-servlet") + #t))))) + (inputs + `(("slf4j" ,java-slf4j-api) + ("servlet" ,java-tomcat) + ("http" ,java-eclipse-jetty-http) + ("http-test" ,java-eclipse-jetty-http-test-classes) + ("io" ,java-eclipse-jetty-io) + ("jmx" ,java-eclipse-jetty-jmx) + ("security" ,java-eclipse-jetty-security) + ("server" ,java-eclipse-jetty-server) + ("util" ,java-eclipse-jetty-util))) + (synopsis "Jetty Servlet Container") + (description "The Jetty Web Server provides an HTTP server and Servlet +container capable of serving static and dynamic content either from a standalone +or embedded instantiation. This package provides the core jetty servlet +container."))) From 213bb981801f5c001d1066852e855dff253ab008 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 23:00:30 +0200 Subject: [PATCH 083/124] gnu: Add java-eclipse-jetty-servlet-9.2. * gnu/packages/web.scm (java-eclipse-jetty-servlet-9.2): New variable. --- gnu/packages/web.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index dad971fa9d..0e6b95e599 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5875,3 +5875,29 @@ infrastructure"))) container capable of serving static and dynamic content either from a standalone or embedded instantiation. This package provides the core jetty servlet container."))) + +(define-public java-eclipse-jetty-servlet-9.2 + (package + (inherit java-eclipse-jetty-servlet) + (version (package-version java-eclipse-jetty-util-9.2)) + (source (package-source java-eclipse-jetty-util-9.2)) + (arguments + `(#:jar-name "eclipse-jetty-servlet.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:tests? #f; doesn't work + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "jetty-servlet") + #t))))) + (inputs + `(("util" ,java-eclipse-jetty-util-9.2) + ("jmx" ,java-eclipse-jetty-jmx-9.2) + ("io" ,java-eclipse-jetty-io-9.2) + ("http" ,java-eclipse-jetty-http-9.2) + ("security" ,java-eclipse-jetty-security-9.2) + ("http-test" ,java-eclipse-jetty-http-test-classes-9.2) + ("server" ,java-eclipse-jetty-server-9.2) + ,@(package-inputs java-eclipse-jetty-util-9.2))))) From 5d104a27565eea05302c2e3cd8ee2f4f5a8e1260 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 23:06:11 +0200 Subject: [PATCH 084/124] gnu: Add java-aopalliance. * gnu/packages/java.scm (java-aopalliance): New variable. --- gnu/packages/java.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 901d16eabb..07a50c4674 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6059,3 +6059,33 @@ is expressed as the number of significant digits in the value recording, and provides control over value quantization behavior across the value range and the subsequent value resolution at any given level.") (license license:public-domain))) + +(define-public java-aopalliance + (package + (name "java-aopalliance") + (version "1.0") + (source (origin + (method git-fetch) + ;; Note: this git repository is not official, but contains the + ;; source code that is in the CVS repository. Downloading the + ;; tarball from sourceforge is undeterministic, and the cvs download + ;; fails. + (uri (git-reference + (url "https://github.com/hoverruan/aopalliance") + (commit "0d7757ae204e5876f69431421fe9bc2a4f01e8a0"))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "0rsg2b0v3hxlq2yk1i3m2gw3xwq689j3cwx9wbxvqfpdcjbca0qr")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-aopalliance.jar" + #:jdk ,icedtea-8 + #:tests? #f; no tests + #:source-dir "aopalliance/src/main")) + (home-page "http://aopalliance.sourceforge.net") + (synopsis "Aspect-Oriented Programming") + (description "The AOP Alliance project is a joint project between several +software engineering people who are interested in Aspect-Oriented Programming +(AOP) and Java.") + (license license:public-domain))) From 454536e0cef32781109a4d9d72cc4c131d527b97 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 23:09:44 +0200 Subject: [PATCH 085/124] gnu: Add java-javax-inject. * gnu/packages/java.scm (java-javax-inject): New variable. --- gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 07a50c4674..4ef6c98c30 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6089,3 +6089,34 @@ the subsequent value resolution at any given level.") software engineering people who are interested in Aspect-Oriented Programming (AOP) and Java.") (license license:public-domain))) + +(define-public java-javax-inject + (package + (name "java-javax-inject") + (version "tck-1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/javax-inject/javax-inject/" + "archive/javax.inject-" version ".tar.gz")) + (sha256 + (base32 + "1ydrlvh2r7vr1g7lhjwy3w2dggpj9h6pix1lakkkgdywb365n6g0")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-javax-inject.jar" + #:jdk ,icedtea-8 + #:tests? #f)); no tests + (home-page "http://github.com/javax-inject/javax-inject") + (synopsis "JSR-330: Dependency Injection for Java") + (description "This package specifies a means for obtaining objects in such +a way as to maximize reusability, testability and maintainability compared to +traditional approaches such as constructors, factories, and service locators +(e.g., JNDI). This process, known as dependency injection, is beneficial to +most nontrivial applications. + +Many types depend on other types. For example, a @var{Stopwatch} might depend +on a @var{TimeSource}. The types on which a type depends are known as its +dependencies. The process of finding an instance of a dependency to use at run +time is known as resolving the dependency. If no such instance can be found, +the dependency is said to be unsatisfied, and the application is broken.") + (license license:asl2.0))) From 5766984b06a425914dcce9d04e98220ae10ef817 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 23:11:38 +0200 Subject: [PATCH 086/124] gnu: Add java-guice. * gnu/packages/java.scm (java-guice): New variable. --- gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4ef6c98c30..ad7710f036 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -54,6 +54,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) ;alsa + #:use-module (gnu packages web) #:use-module (gnu packages wget) #:use-module (gnu packages pkg-config) #:use-module (gnu packages perl) @@ -6120,3 +6121,33 @@ dependencies. The process of finding an instance of a dependency to use at run time is known as resolving the dependency. If no such instance can be found, the dependency is said to be unsatisfied, and the application is broken.") (license license:asl2.0))) + +(define-public java-guice + (package + (name "java-guice") + (version "4.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/google/guice/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0dwmqjzlavb144ywqqglj3h68hqszkff8ai0a42hyb5il0qh4rbp")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-guice.jar" + #:jdk ,icedtea-8 + #:tests? #f; FIXME: tests are not in a java sub directory + #:source-dir "core/src")) + (inputs + `(("guava" ,java-guava) + ("java-cglib" ,java-cglib) + ("java-aopalliance" ,java-aopalliance) + ("java-javax-inject" ,java-javax-inject) + ("java-asm" ,java-asm))) + (home-page "https://github.com/google/guice") + (synopsis "Lightweight dependency injection framework") + (description "Guice is a lightweight dependency injection framework fo +Java 6 and above.") + (license license:asl2.0))) From ec4e8ad724084a8ba3b62f77821367ff89eeff6d Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 23:12:34 +0200 Subject: [PATCH 087/124] gnu: Add java-guice-servlet. * gnu/packages/java.scm (java-guice-servlet): New variable. --- gnu/packages/java.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ad7710f036..38fc68681a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6151,3 +6151,17 @@ the dependency is said to be unsatisfied, and the application is broken.") (description "Guice is a lightweight dependency injection framework fo Java 6 and above.") (license license:asl2.0))) + +(define-public java-guice-servlet + (package + (inherit java-guice) + (name "java-guice-servlet") + (arguments + `(#:jar-name "guice-servlet.jar" + #:source-dir "extensions/servlet/src/" + #:jdk ,icedtea-8 + #:tests? #f)); FIXME: not in a java subdir + (inputs + `(("guice" ,java-guice) + ("servlet" ,java-tomcat) + ,@(package-inputs java-guice))))) From b12fe1e5170b7a49d8c9c5cd39afe9e267b4614a Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 23:27:43 +0200 Subject: [PATCH 088/124] gnu: Add java-assertj. * gnu/packages/java.scm (java-assertj): New variable. --- gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 38fc68681a..d6e425e24b 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6165,3 +6165,34 @@ Java 6 and above.") `(("guice" ,java-guice) ("servlet" ,java-tomcat) ,@(package-inputs java-guice))))) + +(define-public java-assertj + (package + (name "java-assertj") + (version "3.8.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/joel-costigliola/" + "assertj-core/archive/" + "assertj-core-" version ".tar.gz")) + (sha256 + (base32 + "1kf124fxskf548rklkg86294w2x6ajqrff94rrhyqns31danqkfz")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-assertj.jar" + #:jdk ,icedtea-8 + #:source-dir "src/main/java" + #:tests? #f)); depends on tng-junit which depends on assertj + (inputs + `(("cglib" ,java-cglib) + ("junit" ,java-junit) + ("hamcrest" ,java-hamcrest-core))) + (native-inputs + `(("mockito" ,java-mockito-1))) + (home-page "https://joel-costigliola.github.io/assertj/index.html") + (synopsis "Fluent assertions for java") + (description "AssertJ core is a Java library that provides a fluent +interface for writing assertions. Its main goal is to improve test code +readability and make maintenance of tests easier.") + (license license:asl2.0))) From 6768e0a7a5f7171bf21db61e02c9de4d5776c682 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Oct 2017 23:28:43 +0200 Subject: [PATCH 089/124] gnu: Add java-jboss-javassist. * gnu/packages/java.scm (java-jboss-javassist): New variable. --- gnu/packages/java.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d6e425e24b..ff5f1c9ae6 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6196,3 +6196,38 @@ Java 6 and above.") interface for writing assertions. Its main goal is to improve test code readability and make maintenance of tests easier.") (license license:asl2.0))) + +(define-public java-jboss-javassist + (package + (name "java-jboss-javassist") + (version "3.21.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/jboss-javassist/javassist/" + "archive/rel_" + (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) + "_ga.tar.gz")) + (sha256 + (base32 + "10lpcr3sbf7y6fq6fc2h2ik7rqrivwcy4747bg0kxhwszil3cfmf")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-jboss-javassist.jar" + #:jdk ,icedtea-8 + #:source-dir "src/main" + #:tests? #f; FIXME: requires junit-awtui and junit-swingui from junit3 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'remove-binary + (lambda _ + (delete-file "javassist.jar") + #t))))) + (native-inputs + `(("junit" ,java-junit))) + (home-page "https://github.com/jboss-javassist/javassist") + (synopsis "Java bytecode engineering toolkit") + (description "Javassist (JAVA programming ASSISTant) makes Java bytecode +manipulation simple. It is a class library for editing bytecodes in Java; it +enables Java programs to define a new class at runtime and to modify a class +file when the JVM loads it.") + (license (list license:gpl2 license:cddl1.0)))); either gpl2 only or cddl. From 3b6958021df2d26a56b3ae78cff9f08cd79f06fc Mon Sep 17 00:00:00 2001 From: Petter Date: Mon, 23 Oct 2017 08:23:21 +0200 Subject: [PATCH 090/124] gnu: Add perl-xml-xpathengine. * gnu/packages/xml.scm (perl-xml-xpathengine): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/xml.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index d889e602ed..add9311a82 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2017 Adriano Peluso ;;; Copyright © 2017 Gregor Giesen ;;; Copyright © 2017 Alex Vong +;;; Copyright © 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -1266,3 +1267,28 @@ This framework aids the development of XML systems with minimal effort and reduced errors. It offers full object serialization and deserialization, maintaining each reference encountered.") (license license:asl2.0))) + +(define-public perl-xml-xpathengine + (package + (name "perl-xml-xpathengine") + (version "0.14") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/" + "XML-XPathEngine-" version ".tar.gz")) + (sha256 + (base32 + "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/XML-XPathEngine/") + (synopsis "Re-usable XPath engine for DOM-like trees") + (description + "This module provides an XPath engine, that can be re-used by other +modules/classes that implement trees. + +In order to use the XPath engine, nodes in the user module need to mimick DOM +nodes. The degree of similitude between the user tree and a DOM dictates how +much of the XPath features can be used. A module implementing all of the DOM +should be able to use this module very easily (you might need to add the +@code{cmp} method on nodes in order to get ordered result sets).") + (license license:perl-license))) From 9e1c358139d0029e8a0c6f4be9ce979976bfa07c Mon Sep 17 00:00:00 2001 From: Petter Date: Mon, 23 Oct 2017 08:25:19 +0200 Subject: [PATCH 091/124] gnu: Add perl-tree-xpathengine. * gnu/packages/xml.scm (perl-tree-xpathengine): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/xml.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index add9311a82..f8aea6f90d 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -1292,3 +1292,24 @@ much of the XPath features can be used. A module implementing all of the DOM should be able to use this module very easily (you might need to add the @code{cmp} method on nodes in order to get ordered result sets).") (license license:perl-license))) + +(define-public perl-tree-xpathengine + (package + (name "perl-tree-xpathengine") + (version "0.05") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/" + "Tree-XPathEngine-" version ".tar.gz")) + (sha256 + (base32 + "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Tree-XPathEngine/") + (synopsis "Re-usable XPath engine") + (description + "This module provides an XPath engine, that can be re-used by other +module/classes that implement trees. It is designed to be compatible with +@code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath} +by @code{Tree::XPathEngine}.") + (license license:perl-license))) From b7c591951468723f7a83d581f567136e497d081f Mon Sep 17 00:00:00 2001 From: Petter Date: Mon, 23 Oct 2017 08:49:30 +0200 Subject: [PATCH 092/124] gnu: Add perl-xml-filter-buffertext. * gnu/packages/xml.scm (perl-xml-filter-buffertext): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/xml.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index f8aea6f90d..749ea81c58 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -1313,3 +1313,27 @@ module/classes that implement trees. It is designed to be compatible with @code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath} by @code{Tree::XPathEngine}.") (license license:perl-license))) + +(define-public perl-xml-filter-buffertext + (package + (name "perl-xml-filter-buffertext") + (version "1.01") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/" + "XML-Filter-BufferText-" version ".tar.gz")) + (sha256 + (base32 + "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-xml-sax-base" ,perl-xml-sax-base))) + (home-page "http://search.cpan.org/dist/XML-Filter-BufferText/") + (synopsis "Filter to put all characters() in one event") + (description "This is a very simple filter. One common cause of +grief (and programmer error) is that XML parsers aren't required to provide +character events in one chunk. They can, but are not forced to, and most +don't. This filter does the trivial but oft-repeated task of putting all +characters into a single event.") + (license license:perl-license))) From 33b592eed3b6652a8cb55b9dfcc33b22ab6609cc Mon Sep 17 00:00:00 2001 From: Petter Date: Mon, 23 Oct 2017 08:50:03 +0200 Subject: [PATCH 093/124] gnu: Add perl-xml-sax-writer. * gnu/packages/xml.scm (perl-xml-sax-writer): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/xml.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 749ea81c58..6463399a69 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -1337,3 +1337,28 @@ character events in one chunk. They can, but are not forced to, and most don't. This filter does the trivial but oft-repeated task of putting all characters into a single event.") (license license:perl-license))) + +(define-public perl-xml-sax-writer + (package + (name "perl-xml-sax-writer") + (version "0.57") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PERIGRIN/" + "XML-SAX-Writer-" version ".tar.gz")) + (sha256 + (base32 + "1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-libxml" ,perl-libxml) + ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext) + ("perl-xml-namespacesupport", perl-xml-namespacesupport) + ("perl-xml-sax-base" ,perl-xml-sax-base))) + (home-page "http://search.cpan.org/dist/XML-SAX-Writer/") + (synopsis "SAX2 XML Writer") + (description + "This is an XML writer that understands SAX2. It is based on +@code{XML::Handler::YAWriter}.") + (license license:perl-license))) From 9e88b210f660ae73c1eb39bb16538c5aff0a2bfc Mon Sep 17 00:00:00 2001 From: Petter Date: Mon, 23 Oct 2017 08:51:31 +0200 Subject: [PATCH 094/124] gnu: Add perl-xml-handler-yawriter. * gnu/packages/xml.scm (perl-xml-handler-yawriter): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/xml.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 6463399a69..0c1a9abef5 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -1362,3 +1362,24 @@ characters into a single event.") "This is an XML writer that understands SAX2. It is based on @code{XML::Handler::YAWriter}.") (license license:perl-license))) + +(define-public perl-xml-handler-yawriter + (package + (name "perl-xml-handler-yawriter") + (version "0.23") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/" + "XML-Handler-YAWriter-" version ".tar.gz")) + (sha256 + (base32 + "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-libxml" ,perl-libxml))) + (home-page "http://search.cpan.org/dist/XML-Handler-YAWriter/") + (synopsis "Yet another Perl SAX XML Writer") + (description "YAWriter implements Yet Another @code{XML::Handler::Writer}. +It provides a flexible escaping technique and pretty printing.") + (license license:perl-license))) From efc8f7d03d8c5857467fa14e85d5cdc267af58a7 Mon Sep 17 00:00:00 2001 From: Petter Date: Mon, 23 Oct 2017 09:05:42 +0200 Subject: [PATCH 095/124] gnu: Add perl-lwp-online. * gnu/packages/web.scm (perl-lwp-online): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/web.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 0e6b95e599..686659ad78 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Kei Kebreau +;;; Copyright © 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -2891,6 +2892,35 @@ contains modules that are of more general use and even classes that help you implement simple HTTP servers.") (home-page "http://search.cpan.org/dist/libwww-perl/"))) +(define-public perl-lwp-online + (package + (name "perl-lwp-online") + (version "1.08") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/A/AD/ADAMK/LWP-Online-" + version ".tar.gz")) + (sha256 + (base32 + "176f6vbk1018i0y7xj9d406ndbjgwzan2j9nihxnsahzg2vr2vz2")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-libwww" ,perl-libwww) + ("perl-uri" ,perl-uri))) + (native-inputs + `(("perl-module-install" ,perl-module-install))) + (home-page "http://search.cpan.org/dist/LWP-Online/") + (synopsis "Checks whether your process has access to the web") + (description "This module attempts to answer, as accurately as it can, one +of the nastiest technical questions there is: am I on the internet? + +A host of networking and security issues make this problem very difficult. +There are firewalls, proxies (both well behaved and badly behaved). We might +not have DNS. We might not have a network card at all!") + (license l:perl-license))) + (define-public perl-lwp-mediatypes (package (name "perl-lwp-mediatypes") From 0a9bdd95835b1f8a39de44f1c230504234b0fb82 Mon Sep 17 00:00:00 2001 From: Petter Date: Mon, 23 Oct 2017 10:05:57 +0200 Subject: [PATCH 096/124] gnu: Add tidyp. * gnu/packages/web.scm (tidyp): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/web.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 686659ad78..2791eb05cc 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5931,3 +5931,29 @@ container."))) ("http-test" ,java-eclipse-jetty-http-test-classes-9.2) ("server" ,java-eclipse-jetty-server-9.2) ,@(package-inputs java-eclipse-jetty-util-9.2))))) + +(define-public tidyp + (package + (name "tidyp") + (version "1.04") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/downloads/petdance/tidyp/tidyp-" + version ".tar.gz")) + (sha256 + (base32 + "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10")))) + (build-system gnu-build-system) + ;; ./test-thing.sh tries to run ./testall.sh, which is not included. + (arguments `(#:tests? #f)) + (home-page "http://www.tidyp.com/") + (synopsis "Validate HTML") + (description "Tidyp is a program that can validate your HTML, as well as +modify it to be more clean and standard. tidyp does not validate HTML 5. + +libtidyp is the library on which the program is based. It can be used by any +other program that can interface to it. The Perl module @code{HTML::Tidy} is +based on this library, allowing Perl programmers to easily validate HTML.") + ;; See htmldoc/license.html + (license l:bsd-3))) From 7a04dddd268c1395d5bfc45ab55071b6faf6de79 Mon Sep 17 00:00:00 2001 From: Petter Date: Mon, 23 Oct 2017 23:16:21 +0200 Subject: [PATCH 097/124] gnu: Add perl-html-tidy. * gnu/packages/web.scm (perl-html-tidy): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/web.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 2791eb05cc..9fc47969ae 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5957,3 +5957,41 @@ other program that can interface to it. The Perl module @code{HTML::Tidy} is based on this library, allowing Perl programmers to easily validate HTML.") ;; See htmldoc/license.html (license l:bsd-3))) + +(define-public perl-html-tidy + (package + (name "perl-html-tidy") + (version "1.60") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-" + version ".tar.gz")) + (sha256 + (base32 + "1iyp2fd6j75cn1xvcwl2lxr8qpjxssy2360cyqn6g3kzd1fzdyxw")))) + (build-system perl-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tidyp-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile.PL" + (("^my \\$inc = \"" line) + (string-append line + "-I" (assoc-ref inputs "tidyp") "/include/tidyp ")) + (("-L/usr/lib") + (string-append + "-L" (assoc-ref inputs "tidyp") "/lib"))) + #t))))) + (inputs + `(("perl-libwww" ,perl-libwww) + ("tidyp" ,tidyp))) + (native-inputs + `(("perl-test-exception" ,perl-test-exception))) + (home-page "http://search.cpan.org/dist/HTML-Tidy/") + (synopsis "(X)HTML validation in a Perl object") + (description "@code{HTML::Tidy} is an HTML checker in a handy dandy +object. It's meant as a replacement for @code{HTML::Lint}, which is written +in Perl but is not nearly as capable as @code{HTML::Tidy}.") + (license l:artistic2.0))) From ce33c3af76b0e5c68cc42dddf2b9c4b017386fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Oct 2017 16:33:50 -0700 Subject: [PATCH 098/124] pull: Add (guix build compile) to the mix. Fixes . Reported by Leo Famulari . * build-aux/build-self.scm (build): Add (guix build compile) to #:modules. * guix/build/pull.scm (build-guix): Wrap 'compile-files' call in 'with-directory-excursion'. Strip "./" from FILES when passing it to 'compile-files'. --- build-aux/build-self.scm | 1 + guix/build/pull.scm | 51 +++++++++++++++++++++++----------------- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index 4933e02712..ed8ff5f4ce 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -245,6 +245,7 @@ Please upgrade to an intermediate version first, for instance with: (gexp->derivation "guix-latest" builder #:modules '((guix build pull) (guix build utils) + (guix build compile) ;; Closure of (guix modules). (guix modules) diff --git a/guix/build/pull.scm b/guix/build/pull.scm index 6f7aa27868..588b5feddf 100644 --- a/guix/build/pull.scm +++ b/guix/build/pull.scm @@ -121,31 +121,40 @@ containing the source code. Write any debugging output to DEBUG-PORT." ;; Compile the .scm files. Filter out files depending on Guile-SSH when ;; Guile-SSH is missing. - (let ((files (filter has-all-its-dependencies? - (all-scheme-files out)))) - (compile-files out out files + (with-directory-excursion out + (let ((files (filter has-all-its-dependencies? + (all-scheme-files ".")))) + (compile-files out out - #:workers (parallel-job-count) + ;; XXX: 'compile-files' except ready-to-use relative + ;; file names. + (map (lambda (file) + (if (string-prefix? "./" file) + (string-drop file 2) + file)) + files) - ;; Disable warnings. - #:warning-options '() + #:workers (parallel-job-count) - #:report-load - (lambda (file total completed) - (display #\cr log-port) - (format log-port - "loading...\t~5,1f% of ~d files" ;FIXME: i18n - (* 100. (/ completed total)) total) - (force-output log-port) - (format debug-port "~%loading '~a'...~%" file)) + ;; Disable warnings. + #:warning-options '() - #:report-compilation - (lambda (file total completed) - (display #\cr log-port) - (format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n - (* 100. (/ completed total)) total) - (force-output log-port) - (format debug-port "~%compiling '~a'...~%" file))))) + #:report-load + (lambda (file total completed) + (display #\cr log-port) + (format log-port + "loading...\t~5,1f% of ~d files" ;FIXME: i18n + (* 100. (/ completed total)) total) + (force-output log-port) + (format debug-port "~%loading '~a'...~%" file)) + + #:report-compilation + (lambda (file total completed) + (display #\cr log-port) + (format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n + (* 100. (/ completed total)) total) + (force-output log-port) + (format debug-port "~%compiling '~a'...~%" file)))))) (newline) #t) From 2900665888ef3629e6d58a22129b69f3e62d4763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Oct 2017 16:47:50 -0700 Subject: [PATCH 099/124] pull: Hide compilation warnings. * guix/build/pull.scm (build-guix): Bind 'current-warning-port' to a void port. --- guix/build/pull.scm | 63 +++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/guix/build/pull.scm b/guix/build/pull.scm index 588b5feddf..3573241a7e 100644 --- a/guix/build/pull.scm +++ b/guix/build/pull.scm @@ -119,42 +119,43 @@ containing the source code. Write any debugging output to DEBUG-PORT." (set! %load-path (cons out %load-path)) (set! %load-compiled-path (cons out %load-compiled-path)) - ;; Compile the .scm files. Filter out files depending on Guile-SSH when - ;; Guile-SSH is missing. - (with-directory-excursion out - (let ((files (filter has-all-its-dependencies? - (all-scheme-files ".")))) - (compile-files out out + ;; Compile the .scm files. Hide warnings. + (parameterize ((current-warning-port (%make-void-port "w"))) + (with-directory-excursion out + ;; Filter out files depending on Guile-SSH when Guile-SSH is missing. + (let ((files (filter has-all-its-dependencies? + (all-scheme-files ".")))) + (compile-files out out - ;; XXX: 'compile-files' except ready-to-use relative - ;; file names. - (map (lambda (file) - (if (string-prefix? "./" file) - (string-drop file 2) - file)) - files) + ;; XXX: 'compile-files' except ready-to-use relative + ;; file names. + (map (lambda (file) + (if (string-prefix? "./" file) + (string-drop file 2) + file)) + files) - #:workers (parallel-job-count) + #:workers (parallel-job-count) - ;; Disable warnings. - #:warning-options '() + ;; Disable warnings. + #:warning-options '() - #:report-load - (lambda (file total completed) - (display #\cr log-port) - (format log-port - "loading...\t~5,1f% of ~d files" ;FIXME: i18n - (* 100. (/ completed total)) total) - (force-output log-port) - (format debug-port "~%loading '~a'...~%" file)) + #:report-load + (lambda (file total completed) + (display #\cr log-port) + (format log-port + "loading...\t~5,1f% of ~d files" ;FIXME: i18n + (* 100. (/ completed total)) total) + (force-output log-port) + (format debug-port "~%loading '~a'...~%" file)) - #:report-compilation - (lambda (file total completed) - (display #\cr log-port) - (format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n - (* 100. (/ completed total)) total) - (force-output log-port) - (format debug-port "~%compiling '~a'...~%" file)))))) + #:report-compilation + (lambda (file total completed) + (display #\cr log-port) + (format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n + (* 100. (/ completed total)) total) + (force-output log-port) + (format debug-port "~%compiling '~a'...~%" file))))))) (newline) #t) From 2809a355b6473d947db24a0d80b4d2e8c454d9d7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 22 Oct 2017 03:02:40 +0200 Subject: [PATCH 100/124] gnu: Add papagayo. * gnu/packages/animation.scm (papagayo): New variable. --- gnu/packages/animation.scm | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm index faa0d17230..952d3bab0d 100644 --- a/gnu/packages/animation.scm +++ b/gnu/packages/animation.scm @@ -19,6 +19,7 @@ (define-module (gnu packages animation) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) @@ -34,6 +35,8 @@ #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages qt) #:use-module (gnu packages video)) (define-public etl @@ -185,3 +188,71 @@ be capable of producing feature-film quality animation. It eliminates the need for tweening, preventing the need to hand-draw each frame. This package contains the graphical user interface for synfig.") (license license:gpl3+))) + +(define-public papagayo + (let ((commit "e143684b30e59fe4a554f965cb655d23cbe93ee7") + (revision "1")) + (package + (name "papagayo") + (version (string-append "2.0b1-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LostMoho/Papagayo.git") + (commit commit))) + (sha256 + (base32 + "1p9gffjhbph34jhrvgpg93yha75bf88vkvlnk06x1r9601ph5321")) + (modules '((guix build utils))) + ;; Delete bundled libsndfile sources. + (snippet + '(begin + (delete-file-recursively "libsndfile_1.0.19") + (delete-file-recursively "libsndfile_1.0.25") + #t)))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((libsndfile (assoc-ref inputs "libsndfile"))) + ;; Do not use bundled libsndfile sources + (substitute* "Papagayo.pro" + (("else \\{") + (string-append "\nINCLUDEPATH += " libsndfile + "/include" + "\nLIBS +=" libsndfile + "/lib/libsndfile.so\n" + "win32 {")))) + (zero? (system* "qmake" + (string-append "DESTDIR=" + (assoc-ref outputs "out") + "/bin"))))) + ;; Ensure that all required Qt plugins are found at runtime. + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (qt '("qt" "qtmultimedia"))) + (wrap-program (string-append out "/bin/Papagayo") + `("QT_PLUGIN_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/plugins/")) + qt))) + #t)))))) + (inputs + `(("qt" ,qtbase) + ("qtmultimedia" ,qtmultimedia) + ("libsndfile" ,libsndfile))) + (native-inputs + `(("qttools" ,qttools))) + (home-page "http://www.lostmarble.com/papagayo/") + (synopsis "Lip-syncing for animations") + (description + "Papagayo is a lip-syncing program designed to help you line up +phonemes with the actual recorded sound of actors speaking. Papagayo makes it +easy to lip sync animated characters by making the process very simple – just +type in the words being spoken, then drag the words on top of the sound’s +waveform until they line up with the proper sounds.") + (license license:gpl3+)))) From 306556528e4f1143cd12969f9805067cfdd8f5da Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 22 Oct 2017 11:26:20 +0200 Subject: [PATCH 101/124] gnu: Add sorcer. * gnu/packages/music.scm (sorcer): New variable. --- gnu/packages/music.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index ea1904596e..6aca39cedd 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3296,3 +3296,41 @@ based around a MIDI sequencer that features a rich understanding of music notation and includes basic support for digital audio.") (home-page "http://www.rosegardenmusic.com/") (license license:gpl2))) + +(define-public sorcer + (package + (name "sorcer") + (version "1.1.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/openAVproductions/" + "openAV-Sorcer/archive/release-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "07iyqj28wm0xc4arrq893bm12xjpz65db7ynrlmf6w8krg8wjmd0")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; no tests included + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'build-faust-sources + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "faust" + (delete-file "main.cpp") + (zero? (system* "faust" "-i" + "-a" "lv2synth.cpp" + "-o" "main.cpp" "main.dsp")))))))) + (inputs + `(("boost" ,boost) + ("lv2" ,lv2) + ("ntk" ,ntk))) + (native-inputs + `(("faust" ,faust) + ("pkg-config" ,pkg-config))) + (home-page "http://openavproductions.com/sorcer/") + (synopsis "Wavetable LV2 plugin synth") + (description "Sorcer is a wavetable LV2 plugin synthesizer, targeted at +the electronic or dubstep genre.") + (license license:gpl3+))) From 62d48234e20c732ebefc1b4deb425f590b4241ca Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 24 Oct 2017 07:54:43 +0200 Subject: [PATCH 102/124] gnu: git: Update to 2.14.3. * gnu/packages/version-control.scm (git): Update to 2.14.3. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 8038024b38..8480f74fec 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -124,14 +124,14 @@ as well as the classic centralized workflow.") (name "git") ;; XXX When updating Git, check if the special 'git:src' input to cgit needs ;; to be updated as well. - (version "2.14.2") + (version "2.14.3") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "18f70gfzwqd210806hmf94blcd7yv5h9ka6xqkpd2jhijqwp5sah")))) + "078m0za5gyzcah5iaxdwx663yvdp8byvjc8rpzjzcrr4sl6rcc2k")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -145,7 +145,7 @@ as well as the classic centralized workflow.") (sha256 (base32 - "1z05a7hxxndyby3dbj3gaw91sjwmky5d1yph96jmj0fhx78m1lvd")))))) + "00dh878pwl94p6syh6zgwn7f0zv2bl5xny3pnr390lzxpa9ks3jv")))))) (inputs `(("curl" ,curl) ("expat" ,expat) From fc9a93cbf9d512e29cd23db93c3abe516ecf5f98 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 22 Oct 2017 18:17:58 +0200 Subject: [PATCH 103/124] gnu: claws-mail: Re-enable vcalendar. * gnu/packages/mail.scm (claws-mail): Use module (gnu packages calendar). [inputs]: Add libical. --- gnu/packages/mail.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index acbb68b51b..e9a7283cf2 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -48,6 +48,7 @@ #:use-module (gnu packages backup) #:use-module (gnu packages bash) #:use-module (gnu packages bison) + #:use-module (gnu packages calendar) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) @@ -939,6 +940,7 @@ compresses it.") ("libarchive" ,libarchive) ("libcanberra" ,libcanberra) ("libetpan" ,libetpan) + ("libical" ,libical) ("libnotify" ,libnotify) ("libsm" ,libsm) ("libxml2" ,libxml2) From 91f2daa58dd460482da05e5b4d87a2f170012cbe Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 24 Oct 2017 08:02:11 +0200 Subject: [PATCH 104/124] gnu: curl: Update replacement to 7.56.1 [fixes CVE-2017-1000257]. * gnu/packages/curl.scm (curl-7.56.0): Rename to ... (curl-7.56.1): ... this. Update to 7.56.1. (curl)[replacement]: Adjust accordingly. --- gnu/packages/curl.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 30e03e6c69..2e4a48d1ef 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -43,7 +43,7 @@ (package (name "curl") (version "7.55.1") - (replacement curl-7.56.0) + (replacement curl-7.56.1) (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" @@ -123,10 +123,10 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define-public curl-7.56.0 +(define-public curl-7.56.1 (package (inherit curl) - (version "7.56.0") + (version "7.56.1") (source (origin (method url-fetch) @@ -134,4 +134,4 @@ tunneling, and so on.") version ".tar.xz")) (sha256 (base32 - "0wni3zkw7jyrwgwkqnrkf2x2b7c78wsp7p4z6a246hz9l367nhrj")))))) + "1l9r386qz7l7h4n5lysrf1wq93lyc72a7shgg9b8s5d0ycn2ivcf")))))) From 85f225fbf726a04353bc95309bbc0854b569d879 Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 10:39:25 +0200 Subject: [PATCH 105/124] gnu: Add perl-xml-twig. * gnu/packages/xml.scm (perl-xml-twig): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/xml.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 0c1a9abef5..163743c07d 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -1383,3 +1383,44 @@ characters into a single event.") (description "YAWriter implements Yet Another @code{XML::Handler::Writer}. It provides a flexible escaping technique and pretty printing.") (license license:perl-license))) + +(define-public perl-xml-twig + (package + (name "perl-xml-twig") + (version "3.52") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/" + "XML-Twig-" version ".tar.gz")) + (sha256 + (base32 + "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy")))) + (build-system perl-build-system) + (inputs + `(("expat" ,expat))) + (propagated-inputs + `(("perl-html-tidy" ,perl-html-tidy) + ("perl-html-tree" ,perl-html-tree) + ("perl-io-captureoutput" ,perl-io-captureoutput) + ("perl-io-string" ,perl-io-string) + ("perl-io-stringy" ,perl-io-stringy) + ("perl-libxml" ,perl-libxml) + ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext) + ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter) + ("perl-xml-parser" ,perl-xml-parser) + ("perl-xml-sax-writer" ,perl-xml-sax-writer) + ("perl-xml-simple" ,perl-xml-simple) + ("perl-xml-xpathengine" ,perl-xml-xpathengine) + ("perl-test-pod", perl-test-pod) + ("perl-tree-xpathengine" ,perl-tree-xpathengine))) + (home-page "http://search.cpan.org/dist/XML-Twig/") + (synopsis "Perl module for processing huge XML documents in tree mode") + (description "@code{XML::Twig} is an XML transformation module. Its +strong points: can be used to process huge documents while still being in tree +mode; not bound by DOM or SAX, so it is very perlish and offers a very +comprehensive set of methods; simple to use; DWIMs as much as possible. + +What it doesn't offer: full SAX support (it can export SAX, but only reads +XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM +support.") + (license license:perl-license))) From db4411b42b902c79351aa704ce3949c48f1be29b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Oct 2017 23:48:40 -0400 Subject: [PATCH 106/124] gnu: python-docutils: Update to 0.14. * gnu/packages/python.scm (python-docutils, python2-docutils): Update to 0.14. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 47d5f63b7f..4b080a8341 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3191,14 +3191,14 @@ logging and tracing of the execution.") (define-public python-docutils (package (name "python-docutils") - (version "0.13.1") + (version "0.14") (source (origin (method url-fetch) (uri (pypi-uri "docutils" version)) (sha256 (base32 - "1gkma47i609jfs7dssxn4y9vsz06qi0l5q41nws0zgkpnrghz33i")))) + "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; no setup.py test command From 6ee4fd2ae18523088bf8d703ea78a5729202828e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Oct 2017 00:33:38 -0400 Subject: [PATCH 107/124] gnu: borg: Split up the monolithic man page. * gnu/packages/backup.scm (borg)[arguments]: Rewrite 'install-docs' phase to install one man page per Borg sub-command. --- gnu/packages/backup.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 9de120bf26..55d5ede040 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -519,7 +519,7 @@ detection, and lossless compression.") "and not test_fuse " "and not test_fuse_allow_damaged_files")))))) (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (man (string-append out "/share/man/man1")) (misc (string-append out "/share/borg/misc"))) @@ -527,11 +527,11 @@ detection, and lossless compression.") '("docs/misc/create_chunker-params.txt" "docs/misc/internals-picture.txt" "docs/misc/prune-example.txt")) + (add-installed-pythonpath inputs outputs) (and - (zero? (system* "python3" "setup.py" "build_ext" "--inplace")) - (zero? (system* "make" "-C" "docs" "man")) + (zero? (system* "python3" "setup.py" "build_man")) (begin - (install-file "docs/_build/man/borg.1" man) + (copy-recursively "docs/man" man) #t)))))))) (native-inputs `(("python-cython" ,python-cython) From 5aeb661134913c0a32b6b535a7c7675a6da758f0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 24 Oct 2017 14:17:50 +0200 Subject: [PATCH 108/124] gnu: Add perl-gnupg-interface. * gnu/packages/gnupg.scm (perl-gnupg-interface): New variable. Co-authored-by: Petter --- gnu/packages/gnupg.scm | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index ffad57ef5e..d332158e27 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -5,13 +5,14 @@ ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015, 2016, 2017 Efraim Flashner -;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Christopher Baines ;;; Copyright © 2016 Mike Gerwitz ;;; Copyright © 2016 Troy Sankey ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -850,3 +851,40 @@ them to transform your existing public key into a secret key.") @uref{https://gnupg.org, GnuPG}. It can be used to encrypt, decrypt, and sign files, to verify signatures, and to manage the private and public keys.") (license license:gpl3+))) + +(define-public perl-gnupg-interface + (package + (name "perl-gnupg-interface") + (version "0.52") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AL/ALEXMV/" + "GnuPG-Interface-" version ".tar.gz")) + (sha256 + (base32 + "0dgx8yhdsmhkazcrz14n4flrk1afv7azgl003hl4arxvi1d9yyi4")))) + (build-system perl-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; FIXME: This test fails for unknown reasons + (add-after 'unpack 'delete-broken-test + (lambda _ + (delete-file "t/encrypt_symmetrically.t") + #t))))) + (inputs + `(("gnupg" ,gnupg-1))) + (propagated-inputs + `(("perl-moo" ,perl-moo) + ("perl-moox-handlesvia" ,perl-moox-handlesvia) + ("perl-moox-late" ,perl-moox-late))) + (native-inputs + `(("which" ,which) + ("perl-module-install" ,perl-module-install))) + (home-page "http://search.cpan.org/dist/GnuPG-Interface/") + (synopsis "Perl interface to GnuPG") + (description "@code{GnuPG::Interface} and its associated modules are +designed to provide an object-oriented method for interacting with GnuPG, +being able to perform functions such as but not limited to encrypting, +signing, decryption, verification, and key-listing parsing.") + (license license:perl-license))) From b44ecca69146a3d4025cb51229ca86db201392be Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 18:22:12 +0200 Subject: [PATCH 109/124] gnu: Add perl-archive-extract. * gnu/packages/compression.scm (perl-archive-extract): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/compression.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index f3142d1ddf..a2bf3a1861 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Stefan Reichör +;;; Copyright © 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -1603,3 +1604,24 @@ extract files to standard out). As @command{atool} invokes external programs to handle the archives, not all commands may be supported for a certain type of archives.") (license license:gpl2+))) + +(define-public perl-archive-extract + (package + (name "perl-archive-extract") + (version "0.80") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-" + version ".tar.gz")) + (sha256 + (base32 + "1x15j1q6w6z8hqyqgap0lz4qbq2174wfhksy1fdd653ccbaw5jr5")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Archive-Extract/") + (synopsis "Generic archive extracting mechanism") + (description "It allows you to extract any archive file of the type .tar, +.tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma +without having to worry how it does so, or use different interfaces for each +type by using either Perl modules, or command-line tools on your system.") + (license license:perl-license))) From b6cd89084dc51c48f19d779075306bb143659cfd Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 18:22:50 +0200 Subject: [PATCH 110/124] gnu: Add perl-proc-invokeeditor. * gnu/packages/perl.scm (perl-proc-invokeeditor): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/perl.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 47c35dcf56..3c92b17563 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6059,6 +6059,32 @@ Module::Build project, but has been externalized here for general use.") "Probe-Perl-" version)) (license (package-license perl)))) +(define-public perl-proc-invokeeditor + (package + (name "perl-proc-invokeeditor") + (version "1.13") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MS/MSTEVENS/Proc-InvokeEditor-" + version ".tar.gz")) + (sha256 + (base32 + "0xc1416kvhq904ribpwh2lbxryh41dzl2glzpgr32b68s4fbwbaa")))) + (build-system perl-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-EDITOR + (lambda _ (setenv "EDITOR" "echo") #t))))) + (propagated-inputs + `(("perl-carp-assert" ,perl-carp-assert))) + (home-page "http://search.cpan.org/dist/Proc-InvokeEditor/") + (synopsis "Interface to external editor from Perl") + (description "This module provides the ability to supply some text to an +external text editor, have it edited by the user, and retrieve the results.") + (license (package-license perl)))) + (define-public perl-readonly (package (name "perl-readonly") From 8ae0558aad343a033edd0222cb373ea772cb3b3f Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 18:23:26 +0200 Subject: [PATCH 111/124] gnu: Add perl-sort-naturally. * gnu/packages/perl.scm (perl-sort-naturally): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/perl.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 3c92b17563..357deb37c6 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6320,6 +6320,27 @@ compact.") arrays by one or multiple calculated keys.") (license (package-license perl)))) +(define-public perl-sort-naturally + (package + (name "perl-sort-naturally") + (version "1.03") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-" + version ".tar.gz")) + (sha256 + (base32 + "0ip7q5g8d3lr7ri3ffcbrpk1hzzsiwgsn14k10k7hnjphxf1raza")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Sort-Naturally/") + (synopsis "Sort lexically, but sort numeral parts numerically") + (description "This module exports two functions, @code{nsort} and +@code{ncmp}; they are used in implementing a \"natural sorting\" algorithm. +Under natural sorting, numeric substrings are compared numerically, and other +word-characters are compared lexically.") + (license (package-license perl)))) + (define-public perl-specio (package (name "perl-specio") From a1798ee3c736457ddf18ee614f9a084378e84db3 Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 18:37:33 +0200 Subject: [PATCH 112/124] gnu: Add perl-devel-hide. * gnu/packages/perl.scm (perl-devel-hide): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/perl.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 357deb37c6..a9ccdf7fd9 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2378,6 +2378,29 @@ based memory management, circular references will cause memory leaks.") equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.") (license (package-license perl)))) +(define-public perl-devel-hide + (package + (name "perl-devel-hide") + (version "0.0009") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/Devel-Hide-" + version ".tar.gz")) + (sha256 + (base32 + "1phnzbw58v6551nhv6sg86m72nx9w5j4msh1hg4jvkakkq5w9pki")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "http://search.cpan.org/dist/Devel-Hide/") + (synopsis "Forces the unavailability of specified Perl modules (for testing)") + (description "Given a list of Perl modules/filenames, this module makes +@code{require} and @code{use} statements fail (no matter whether the specified +files/modules are installed or not).") + (license (package-license perl)))) + (define-public perl-devel-lexalias (package (name "perl-devel-lexalias") From fcbc997e03751e39d19005371d66a7ffe117dad5 Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 18:24:17 +0200 Subject: [PATCH 113/124] gnu: Add perl-term-size-perl. * gnu/packages/perl.scm (perl-term-size-perl): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/perl.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index a9ccdf7fd9..fdd69b9516 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6958,6 +6958,25 @@ other terminal related features, including retrieval/modification of the screen size, and retrieval/modification of the control characters.") (license (package-license perl)))) +(define-public perl-term-size-perl + (package + (name "perl-term-size-perl") + (version "0.029") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/" + "Term-Size-Perl-" version ".tar.gz")) + (sha256 + (base32 + "1rvm91bhdlxfwx5zka023p7szf2s7gm16wl27qiivvj66svsl6lc")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Term-Size-Perl/") + (synopsis "Perl extension for retrieving terminal size (Perl version)") + (description "This is yet another implementation of @code{Term::Size}. +Now in pure Perl, with the exception of a C probe run at build time.") + (license (package-license perl)))) + (define-public perl-term-table (package (name "perl-term-table") From cb2f48e7f279014f13e76dc8db77d36111b78b9f Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 18:24:49 +0200 Subject: [PATCH 114/124] gnu: Add perl-term-size-any. * gnu/packages/perl.scm (perl-term-size-any): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/perl.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index fdd69b9516..6e527bf8c2 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6958,6 +6958,31 @@ other terminal related features, including retrieval/modification of the screen size, and retrieval/modification of the control characters.") (license (package-license perl)))) +(define-public perl-term-size-any + (package + (name "perl-term-size-any") + (version "0.002") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/" + "Term-Size-Any-" version ".tar.gz")) + (sha256 + (base32 + "1lnynd8pwjp3g85bl4nav6yigg2lag3sx5da989j7a733bdmzyk4")))) + (build-system perl-build-system) + (native-inputs + `(("perl-devel-hide" ,perl-devel-hide))) + (propagated-inputs + `(("perl-term-size-perl" ,perl-term-size-perl))) + (home-page "http://search.cpan.org/dist/Term-Size-Any/") + (synopsis "Retrieve terminal size") + (description "This is a unified interface to retrieve terminal size. It +loads one module of a list of known alternatives, each implementing some way +to get the desired terminal information. This loaded module will actually do +the job on behalf of @code{Term::Size::Any}.") + (license (package-license perl)))) + (define-public perl-term-size-perl (package (name "perl-term-size-perl") From 237edb6d1f3c9034417983227fe7fdca4a5cee2c Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 18:25:19 +0200 Subject: [PATCH 115/124] gnu: Add perl-test-taint. * gnu/packages/perl.scm (perl-test-taint): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/perl.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 6e527bf8c2..47a1399270 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7896,6 +7896,32 @@ makes fork(2) safe to use in test cases.") "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") From 35aaf4b1bd146f9f0277b9484e05470ec7424738 Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 18:25:49 +0200 Subject: [PATCH 116/124] gnu: Add perl-type-tiny-xs. * gnu/packages/perl.scm (perl-type-tiny-xs): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/perl.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 47a1399270..e1e15bd076 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -8715,6 +8715,27 @@ distributed as part of @code{Type::Tiny} but has since been spun off), and can be used with Moose, Mouse and Moo (or none of the above).") (license (package-license perl)))) +(define-public perl-type-tiny-xs + (package + (name "perl-type-tiny-xs") + (version "0.012") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-" + version ".tar.gz")) + (sha256 + (base32 + "05nbr898cvjjh1wsy55l84zasx65gijdxc6dnn558ihns8zx6gm9")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Type-Tiny-XS/") + (synopsis "Provides an XS boost for some of Type::Tiny's built-in type constraints") + (description "This module is optionally used by @code{Type::Tiny} to +provide faster, C-based implementations of some type constraints. This +package has only core dependencies, and does not depend on @code{Type::Tiny}, +so other data validation frameworks might also consider using it.") + (license perl-license))) + (define-public perl-types-serialiser (package (name "perl-types-serialiser") From 22473f6964096fe5d938b7955275c135252cb002 Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 24 Oct 2017 18:26:57 +0200 Subject: [PATCH 117/124] gnu: Add perl-types-path-tiny. * gnu/packages/perl.scm (perl-types-path-tiny): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/perl.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index e1e15bd076..c392c305a4 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -8736,6 +8736,32 @@ package has only core dependencies, and does not depend on @code{Type::Tiny}, so other data validation frameworks might also consider using it.") (license perl-license))) +(define-public perl-types-path-tiny + (package + (name "perl-types-path-tiny") + (version "0.005") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/" + "Types-Path-Tiny-" version ".tar.gz")) + (sha256 + (base32 + "09nf167ssi4rgj8hhzylwp3zdx61njdpyfri43arcmk9aqn7f0pp")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-file-pushd" ,perl-file-pushd) + ("perl-path-tiny" ,perl-path-tiny) + ("perl-type-tiny" ,perl-type-tiny) + ("perl-exporter-tiny" ,perl-exporter-tiny))) + (home-page "http://search.cpan.org/dist/Types-Path-Tiny/") + (synopsis "Types and coercions for Moose and Moo") + (description "This module provides @code{Path::Tiny} types for Moose, Moo, +etc. It handles two important types of coercion: coercing objects with +overloaded stringification, and coercing to absolute paths. It also can check +to ensure that files or directories exist.") + (license artistic2.0))) + (define-public perl-types-serialiser (package (name "perl-types-serialiser") From 1c37f839fb58283c99bf46be860d66e579d6f555 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 21 Oct 2017 13:00:27 -0400 Subject: [PATCH 118/124] build-system/go: Strip the Go binaries with the native tool. * guix/build/go-build-system.scm (build): Tell the Go linker to strip some symbol tables and debugging information. --- guix/build/go-build-system.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index 7f04e3db8c..d8ccb98138 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -179,6 +179,9 @@ respectively." (zero? (system* "go" "install" "-v" ; print the name of packages as they are compiled "-x" ; print each command as it is invoked + ;; Respectively, strip the symbol table and debug + ;; information, and the DWARF symbol table. + "-ldflags=-s -w" import-path)) (begin (display (string-append "Building '" import-path "' failed.\n" From c10851cf912d60d18d79badbbefe85c2d21081f9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Oct 2017 12:17:32 -0400 Subject: [PATCH 119/124] build-system/go: Parameterize installing the source code. * guix/build-system/go.scm (go-build): Add install-source? key. * guix/build/go-build-system.scm (install-source): Check if install-source? is true. --- guix/build-system/go.scm | 2 ++ guix/build/go-build-system.scm | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm index 43599df6f4..ec447d2a28 100644 --- a/guix/build-system/go.scm +++ b/guix/build-system/go.scm @@ -78,6 +78,7 @@ %standard-phases)) (outputs '("out")) (search-paths '()) + (install-source? #t) (import-path "") (unpack-path "") (tests? #t) @@ -102,6 +103,7 @@ #:outputs %outputs #:search-paths ',(map search-path-specification->sexp search-paths) + #:install-source? ,install-source? #:import-path ,import-path #:unpack-path ,unpack-path #:tests? ,tests? diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index d8ccb98138..72af6ce7b6 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -126,13 +126,14 @@ unset. When SOURCE is a directory, copy it instead of unpacking." (zero? (system* "unzip" "-d" dest source)) (zero? (system* "tar" "-C" dest "-xvf" source)))))) -(define* (install-source #:key outputs #:allow-other-keys) +(define* (install-source #:key install-source? outputs #:allow-other-keys) "Install the source code to the output directory." (let* ((out (assoc-ref outputs "out")) (source "src") (dest (string-append out "/" source))) - (copy-recursively source dest #:keep-mtime? #t) - #t)) + (if install-source? + (copy-recursively source dest #:keep-mtime? #t) + #t))) (define (go-package? name) (string-prefix? "go-" name)) From 1899ef0b838075d82b957a632ce995f4e192849f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Oct 2017 12:18:24 -0400 Subject: [PATCH 120/124] gnu: syncthing: Use install-source? to disable installing the source code. * gnu/packages/syncthing.scm (syncthing): Set #:install-source? #f instead of deleting the install-source phase. --- gnu/packages/syncthing.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index b4bc1e0a8a..0bfa6d9e07 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -41,6 +41,8 @@ (arguments `(#:import-path "github.com/syncthing/syncthing" #:unpack-path "github.com/syncthing" + ;; We don't need to install the source code for end-user applications. + #:install-source? #f #:phases (modify-phases %standard-phases (add-after 'unpack 'delete-bundled-source-code @@ -55,9 +57,6 @@ "src/github.com/syncthing/syncthing/vendor/github.com/cznic") #t)) - ;; We don't need to install the source code for end-user applications. - (delete 'install-source) - (add-before 'build 'increase-test-timeout (lambda _ (substitute* "src/github.com/syncthing/syncthing/build.go" From c330c27f7feea8172fa6881020a1425746bbb6a6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Oct 2017 11:56:37 -0400 Subject: [PATCH 121/124] gnu: syncthing: Split into two outputs. * gnu/packages/syncthing.scm (syncthing)[outputs]: New field. [arguments]: Change the 'install' and 'install-docs' phases to install to the two outputs. --- gnu/packages/syncthing.scm | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 0bfa6d9e07..b23339de12 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -38,6 +38,10 @@ (base32 "07mrvd3vq0p4f550dpq73xg1vpa2h7xxz7vq07sjw0whapknkw9f")))) (build-system go-build-system) + ;; The primary Syncthing executable goes to "out", while the auxiliary + ;; server programs and utility tools go to "utils". This reduces the size + ;; of "out" by ~80 MiB. + (outputs '("out" "utils")) (arguments `(#:import-path "github.com/syncthing/syncthing" #:unpack-path "github.com/syncthing" @@ -74,21 +78,39 @@ (zero? (system* "go" "run" "build.go" "test"))))) (replace 'install - (lambda _ - (copy-recursively "src/github.com/syncthing/syncthing/bin/" - (string-append (assoc-ref %outputs "out") "/bin")) - #t)) + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (utils (assoc-ref outputs "utils")) + (src "src/github.com/syncthing/syncthing/bin/")) + (install-file (string-append src "/syncthing") + (string-append out "/bin")) + (delete-file (string-append src "/syncthing")) + (copy-recursively "src/github.com/syncthing/syncthing/bin/" + (string-append utils "/bin")) + #t))) (add-after 'install 'install-docs (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (man (string-append out "/share/man/man")) + (utils (assoc-ref outputs "utils")) + (man "/share/man") + (man-section (string-append man "/man")) (src "src/github.com/syncthing/syncthing/man/")) + ;; Install all the man pages to "out". (for-each (lambda (file) (install-file file - (string-append man (string-take-right file 1)))) + (string-append out man-section + (string-take-right file 1)))) (find-files src "\\.[1-9]")) + ;; Copy all the man pages to "utils" + (copy-recursively (string-append out man) + (string-append utils man)) + ;; Delete extraneous man pages from "out" and "utils", + ;; respectively. + (delete-file (string-append out man "/man1/stdiscosrv.1")) + (delete-file (string-append out man "/man1/strelaysrv.1")) + (delete-file (string-append utils man "/man1/syncthing.1")) #t)))))) ;; When updating Syncthing, check 'vendor/manifest' in the source ;; distribution to ensure we are using the correct versions of these From 6dcc8239be807d7e96b3425310e0f565ed5218b8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Oct 2017 12:25:45 -0400 Subject: [PATCH 122/124] gnu: icu4c: Fix CVE-2017-14952. * gnu/packages/patches/icu4c-CVE-2017-14952.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/icu4c.scm (icu4c)[replacement]: New field. (icu4c-fixed): New variable. --- gnu/local.mk | 1 + gnu/packages/icu4c.scm | 10 ++++++++++ .../patches/icu4c-CVE-2017-14952.patch | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 gnu/packages/patches/icu4c-CVE-2017-14952.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6b70300fff..d02b250727 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -734,6 +734,7 @@ dist_patch_DATA = \ %D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ %D%/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch \ + %D%/packages/patches/icu4c-CVE-2017-14952.patch \ %D%/packages/patches/icu4c-reset-keyword-list-iterator.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 3461285850..55bc9f2035 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -32,6 +32,7 @@ (define-public icu4c (package (name "icu4c") + (replacement icu4c-fixed) (version "58.2") (source (origin (method url-fetch) @@ -70,6 +71,15 @@ C/C++ part.") (license x11) (home-page "http://site.icu-project.org/"))) +(define icu4c-fixed + (package + (inherit icu4c) + (source (origin + (inherit (package-source icu4c)) + (patches (append + (origin-patches (package-source icu4c)) + (search-patches "icu4c-CVE-2017-14952.patch"))))))) + (define-public java-icu4j (package (name "java-icu4j") diff --git a/gnu/packages/patches/icu4c-CVE-2017-14952.patch b/gnu/packages/patches/icu4c-CVE-2017-14952.patch new file mode 100644 index 0000000000..564f69d01d --- /dev/null +++ b/gnu/packages/patches/icu4c-CVE-2017-14952.patch @@ -0,0 +1,18 @@ +Fix CVE-2017-14952: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14952 + +Patch copied from upstream source repository: + +http://bugs.icu-project.org/trac/changeset/40324/trunk/icu4c/source/i18n/zonemeta.cpp#file0 + +Index: trunk/icu4c/source/i18n/zonemeta.cpp +=================================================================== +--- icu/source/i18n/zonemeta.cpp (revision 40283) ++++ icu/source/i18n/zonemeta.cpp (revision 40324) +@@ -691,5 +691,4 @@ + if (U_FAILURE(status)) { + delete mzMappings; +- deleteOlsonToMetaMappingEntry(entry); + uprv_free(entry); + break; From ae7e24c4210e68b1761dc26bcba20786675ca37d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Oct 2017 13:43:55 -0400 Subject: [PATCH 123/124] gnu: mupdf: Fix CVE-2017-{14685,14686,14687}. * gnu/packages/patches/mupdf-CVE-2017-14685.patch, gnu/packages/patches/mupdf-CVE-2017-14686.patch, gnu/packages/patches/mupdf-CVE-2017-14687.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/pdf.scm (mupdf)[source]: Use them. --- gnu/local.mk | 3 + .../patches/mupdf-CVE-2017-14685.patch | 34 +++++ .../patches/mupdf-CVE-2017-14686.patch | 34 +++++ .../patches/mupdf-CVE-2017-14687.patch | 130 ++++++++++++++++++ gnu/packages/pdf.scm | 3 + 5 files changed, 204 insertions(+) create mode 100644 gnu/packages/patches/mupdf-CVE-2017-14685.patch create mode 100644 gnu/packages/patches/mupdf-CVE-2017-14686.patch create mode 100644 gnu/packages/patches/mupdf-CVE-2017-14687.patch diff --git a/gnu/local.mk b/gnu/local.mk index d02b250727..f2044c9857 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -880,6 +880,9 @@ dist_patch_DATA = \ %D%/packages/patches/mozjs38-version-detection.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \ + %D%/packages/patches/mupdf-CVE-2017-14685.patch \ + %D%/packages/patches/mupdf-CVE-2017-14686.patch \ + %D%/packages/patches/mupdf-CVE-2017-14687.patch \ %D%/packages/patches/mupdf-CVE-2017-15587.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mutt-store-references.patch \ diff --git a/gnu/packages/patches/mupdf-CVE-2017-14685.patch b/gnu/packages/patches/mupdf-CVE-2017-14685.patch new file mode 100644 index 0000000000..3fcce5fedf --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2017-14685.patch @@ -0,0 +1,34 @@ +Fix CVE-2017-14685: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14685 + +Patch copied from upstream source repository: + +https://git.ghostscript.com/?p=mupdf.git;h=ab1a420613dec93c686acbee2c165274e922f82a + +From ab1a420613dec93c686acbee2c165274e922f82a Mon Sep 17 00:00:00 2001 +From: Tor Andersson +Date: Tue, 19 Sep 2017 15:23:04 +0200 +Subject: [PATCH] Fix 698539: Don't use xps font if it could not be loaded. + +xps_load_links_in_glyphs did not cope with font loading failures. +--- + source/xps/xps-link.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/source/xps/xps-link.c b/source/xps/xps-link.c +index c07e0d7..c26a8d9 100644 +--- a/source/xps/xps-link.c ++++ b/source/xps/xps-link.c +@@ -91,6 +91,8 @@ xps_load_links_in_glyphs(fz_context *ctx, xps_document *doc, const fz_matrix *ct + bidi_level = atoi(bidi_level_att); + + font = xps_lookup_font(ctx, doc, base_uri, font_uri_att, style_att); ++ if (!font) ++ return; + text = xps_parse_glyphs_imp(ctx, doc, &local_ctm, font, fz_atof(font_size_att), + fz_atof(origin_x_att), fz_atof(origin_y_att), + is_sideways, bidi_level, indices_att, unicode_att); +-- +2.9.1 + diff --git a/gnu/packages/patches/mupdf-CVE-2017-14686.patch b/gnu/packages/patches/mupdf-CVE-2017-14686.patch new file mode 100644 index 0000000000..e462a6ffeb --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2017-14686.patch @@ -0,0 +1,34 @@ +Fix CVE-2017-14686: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14686 + +Patch copied from upstream source repository: + +https://git.ghostscript.com/?p=mupdf.git;h=0f0fbc07d9be31f5e83ec5328d7311fdfd8328b1 + +From 0f0fbc07d9be31f5e83ec5328d7311fdfd8328b1 Mon Sep 17 00:00:00 2001 +From: Tor Andersson +Date: Tue, 19 Sep 2017 16:33:38 +0200 +Subject: [PATCH] Fix 698540: Check name, comment and meta size field signs. + +--- + source/fitz/unzip.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/source/fitz/unzip.c b/source/fitz/unzip.c +index f2d4f32..0bcce0f 100644 +--- a/source/fitz/unzip.c ++++ b/source/fitz/unzip.c +@@ -141,6 +141,9 @@ static void read_zip_dir_imp(fz_context *ctx, fz_zip_archive *zip, int start_off + (void) fz_read_int32_le(ctx, file); /* ext file atts */ + offset = fz_read_int32_le(ctx, file); + ++ if (namesize < 0 || metasize < 0 || commentsize < 0) ++ fz_throw(ctx, FZ_ERROR_GENERIC, "invalid size in zip entry"); ++ + name = fz_malloc(ctx, namesize + 1); + n = fz_read(ctx, file, (unsigned char*)name, namesize); + if (n < (size_t)namesize) +-- +2.9.1 + diff --git a/gnu/packages/patches/mupdf-CVE-2017-14687.patch b/gnu/packages/patches/mupdf-CVE-2017-14687.patch new file mode 100644 index 0000000000..cdc41df813 --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2017-14687.patch @@ -0,0 +1,130 @@ +Fix CVE-2017-14687: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14687 + +Patch copied from upstream source repository: + +https://git.ghostscript.com/?p=mupdf.git;h=2b16dbd8f73269cb15ca61ece75cf8d2d196ed28 + +From 2b16dbd8f73269cb15ca61ece75cf8d2d196ed28 Mon Sep 17 00:00:00 2001 +From: Tor Andersson +Date: Tue, 19 Sep 2017 17:17:12 +0200 +Subject: [PATCH] Fix 698558: Handle non-tags in tag name comparisons. + +Use fz_xml_is_tag instead of fz_xml_tag && !strcmp idiom. +--- + source/html/css-apply.c | 2 +- + source/svg/svg-run.c | 2 +- + source/xps/xps-common.c | 6 +++--- + source/xps/xps-glyphs.c | 2 +- + source/xps/xps-path.c | 4 ++-- + source/xps/xps-resource.c | 2 +- + 6 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/source/html/css-apply.c b/source/html/css-apply.c +index de55490..6a91df0 100644 +--- a/source/html/css-apply.c ++++ b/source/html/css-apply.c +@@ -328,7 +328,7 @@ match_selector(fz_css_selector *sel, fz_xml *node) + + if (sel->name) + { +- if (strcmp(sel->name, fz_xml_tag(node))) ++ if (!fz_xml_is_tag(node, sel->name)) + return 0; + } + +diff --git a/source/svg/svg-run.c b/source/svg/svg-run.c +index f974c67..5302c64 100644 +--- a/source/svg/svg-run.c ++++ b/source/svg/svg-run.c +@@ -1044,7 +1044,7 @@ svg_run_use(fz_context *ctx, fz_device *dev, svg_document *doc, fz_xml *root, co + fz_xml *linked = fz_tree_lookup(ctx, doc->idmap, xlink_href_att + 1); + if (linked) + { +- if (!strcmp(fz_xml_tag(linked), "symbol")) ++ if (fz_xml_is_tag(linked, "symbol")) + svg_run_use_symbol(ctx, dev, doc, root, linked, &local_state); + else + svg_run_element(ctx, dev, doc, linked, &local_state); +diff --git a/source/xps/xps-common.c b/source/xps/xps-common.c +index cc7fed9..f2f9b93 100644 +--- a/source/xps/xps-common.c ++++ b/source/xps/xps-common.c +@@ -47,7 +47,7 @@ xps_parse_brush(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, const + else if (fz_xml_is_tag(node, "RadialGradientBrush")) + xps_parse_radial_gradient_brush(ctx, doc, ctm, area, base_uri, dict, node); + else +- fz_warn(ctx, "unknown brush tag: %s", fz_xml_tag(node)); ++ fz_warn(ctx, "unknown brush tag"); + } + + void +@@ -85,7 +85,7 @@ xps_begin_opacity(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, cons + if (opacity_att) + opacity = fz_atof(opacity_att); + +- if (opacity_mask_tag && !strcmp(fz_xml_tag(opacity_mask_tag), "SolidColorBrush")) ++ if (fz_xml_is_tag(opacity_mask_tag, "SolidColorBrush")) + { + char *scb_opacity_att = fz_xml_att(opacity_mask_tag, "Opacity"); + char *scb_color_att = fz_xml_att(opacity_mask_tag, "Color"); +@@ -129,7 +129,7 @@ xps_end_opacity(fz_context *ctx, xps_document *doc, char *base_uri, xps_resource + + if (opacity_mask_tag) + { +- if (strcmp(fz_xml_tag(opacity_mask_tag), "SolidColorBrush")) ++ if (!fz_xml_is_tag(opacity_mask_tag, "SolidColorBrush")) + fz_pop_clip(ctx, dev); + } + } +diff --git a/source/xps/xps-glyphs.c b/source/xps/xps-glyphs.c +index 29dc5b3..5b26d78 100644 +--- a/source/xps/xps-glyphs.c ++++ b/source/xps/xps-glyphs.c +@@ -592,7 +592,7 @@ xps_parse_glyphs(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, + + /* If it's a solid color brush fill/stroke do a simple fill */ + +- if (fill_tag && !strcmp(fz_xml_tag(fill_tag), "SolidColorBrush")) ++ if (fz_xml_is_tag(fill_tag, "SolidColorBrush")) + { + fill_opacity_att = fz_xml_att(fill_tag, "Opacity"); + fill_att = fz_xml_att(fill_tag, "Color"); +diff --git a/source/xps/xps-path.c b/source/xps/xps-path.c +index 6faeb0c..021d202 100644 +--- a/source/xps/xps-path.c ++++ b/source/xps/xps-path.c +@@ -879,14 +879,14 @@ xps_parse_path(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, char *b + if (!data_att && !data_tag) + return; + +- if (fill_tag && !strcmp(fz_xml_tag(fill_tag), "SolidColorBrush")) ++ if (fz_xml_is_tag(fill_tag, "SolidColorBrush")) + { + fill_opacity_att = fz_xml_att(fill_tag, "Opacity"); + fill_att = fz_xml_att(fill_tag, "Color"); + fill_tag = NULL; + } + +- if (stroke_tag && !strcmp(fz_xml_tag(stroke_tag), "SolidColorBrush")) ++ if (fz_xml_is_tag(stroke_tag, "SolidColorBrush")) + { + stroke_opacity_att = fz_xml_att(stroke_tag, "Opacity"); + stroke_att = fz_xml_att(stroke_tag, "Color"); +diff --git a/source/xps/xps-resource.c b/source/xps/xps-resource.c +index c2292e6..8e81ab8 100644 +--- a/source/xps/xps-resource.c ++++ b/source/xps/xps-resource.c +@@ -84,7 +84,7 @@ xps_parse_remote_resource_dictionary(fz_context *ctx, xps_document *doc, char *b + if (!xml) + return NULL; + +- if (strcmp(fz_xml_tag(xml), "ResourceDictionary")) ++ if (!fz_xml_is_tag(xml, "ResourceDictionary")) + { + fz_drop_xml(ctx, xml); + fz_throw(ctx, FZ_ERROR_GENERIC, "expected ResourceDictionary element"); +-- +2.9.1 + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index ceaccddfc7..f3df7c1045 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -576,6 +576,9 @@ extracting content or merging files.") (base32 "02phamcchgsmvjnb3ir7r5sssvx9fcrscn297z73b82n1jl79510")) (patches (search-patches "mupdf-build-with-openjpeg-2.1.patch" + "mupdf-CVE-2017-14685.patch" + "mupdf-CVE-2017-14686.patch" + "mupdf-CVE-2017-14687.patch" "mupdf-CVE-2017-15587.patch")) (modules '((guix build utils))) (snippet From 648c896ad3b198a1742c1ee8f66a1922aa98c1d8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 24 Oct 2017 21:26:00 +0300 Subject: [PATCH 124/124] gnu: screen: Update to 4.6.2. * gnu/packages/screen.scm (screen): Update to 4.6.2. --- gnu/packages/screen.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 0a92b73e34..5622d37877 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -38,13 +38,13 @@ (define-public screen (package (name "screen") - (version "4.6.1") + (version "4.6.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/screen/screen-" version ".tar.gz")) (sha256 - (base32 "0r3wpfxnr5kw73b8ndja26jk03nfbks06iyfmgb5aqb2rdkazadb")))) + (base32 "0fps0fsipfbh7c2cnp7rjw9n79j0ysq21mk8hzifa33a1r924s8v")))) (build-system gnu-build-system) (native-inputs `(("makeinfo" ,texinfo)))