From 6d1a5e5ffdbb7d15ffad7918213d96ee8c6e9164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 1 May 2017 15:51:47 +0200 Subject: [PATCH 001/386] refresh: Report packages using the "@" syntax. * guix/scripts/refresh.scm (list-dependents)[full-name]: New procedure. Use 'full-name' instead of 'package-full-name'. * doc/guix.texi (Invoking guix refresh): Adjust example accordingly. --- doc/guix.texi | 2 +- guix/scripts/refresh.scm | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 957ce2bab3..9f63413bbf 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5852,7 +5852,7 @@ an upgrade. More rebuilds might be required under some circumstances. @example $ guix refresh --list-dependent flex Building the following 120 packages would ensure 213 dependent packages are rebuilt: -hop-2.4.0 geiser-0.4 notmuch-0.18 mu-0.9.9.5 cflow-1.4 idutils-4.6 @dots{} +hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{} @end example The command above lists a set of packages that could be built to check diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 4d3c695aaf..c0d589af17 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Alex Kost @@ -315,6 +315,10 @@ WARN? is true and no updater exists for PACKAGE, print a warning." "List all the things that would need to be rebuilt if PACKAGES are changed." ;; Using %BAG-NODE-TYPE is more accurate than using %PACKAGE-NODE-TYPE ;; because it includes implicit dependencies. + (define (full-name package) + (string-append (package-name package) "@" + (package-version package))) + (mlet %store-monad ((edges (node-back-edges %bag-node-type (all-packages)))) (let* ((dependents (node-transitive-edges packages edges)) @@ -327,12 +331,12 @@ WARN? is true and no updater exists for PACKAGE, print a warning." (N_ "No dependents other than itself: ~{~a~}~%" "No dependents other than themselves: ~{~a~^ ~}~%" (length packages)) - (map package-full-name packages))) + (map full-name packages))) ((x) (format (current-output-port) (_ "A single dependent package: ~a~%") - (package-full-name x))) + (full-name x))) (lst (format (current-output-port) (N_ "Building the following package would ensure ~d \ @@ -341,7 +345,7 @@ dependent packages are rebuilt: ~*~{~a~^ ~}~%" dependent packages are rebuilt: ~{~a~^ ~}~%" (length covering)) (length covering) (length dependents) - (map package-full-name covering)))) + (map full-name covering)))) (return #t)))) From e30c2be10da8929e42aafc7770257e84de49ffbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 1 May 2017 15:45:41 +0200 Subject: [PATCH 002/386] packages: Remove support for PACKAGE-VERSION deprecated syntax. This syntax had been deprecated since 2016-02-28. * gnu/packages.scm (%find-package): Remove #:fallback? parameter and handling. * tests/guix-build.sh: Remove test for "time-1.7" syntax. * doc/guix.texi (Invoking guix lint): Update 'guix lint' output in example. --- doc/guix.texi | 6 +++--- gnu/packages.scm | 17 ++--------------- tests/guix-build.sh | 1 - 3 files changed, 5 insertions(+), 19 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 9f63413bbf..9b2fe3fdb8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -16281,9 +16281,9 @@ distribution: @smallexample $ guix lint -c cve -gnu/packages/base.scm:652:2: glibc-2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547 -gnu/packages/gcc.scm:334:2: gcc-4.9.3: probably vulnerable to CVE-2015-5276 -gnu/packages/image.scm:312:2: openjpeg-2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924 +gnu/packages/base.scm:652:2: glibc@@2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547 +gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probably vulnerable to CVE-2015-5276 +gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924 @dots{} @end smallexample diff --git a/gnu/packages.scm b/gnu/packages.scm index 92bab7228a..bec8163b2b 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -306,7 +306,7 @@ return its return value." ;;; Package specification. ;;; -(define* (%find-package spec name version #:key fallback?) +(define* (%find-package spec name version) (match (find-best-packages-by-name name version) ((pkg . pkg*) (unless (null? pkg*) @@ -314,10 +314,6 @@ return its return value." (warning (_ "choosing ~a@~a from ~a~%") (package-name pkg) (package-version pkg) (location->string (package-location pkg)))) - (when fallback? - (warning (_ "deprecated NAME-VERSION syntax; \ -use NAME@VERSION instead~%"))) - (match (package-superseded pkg) ((? package? new) (info (_ "package '~a' has been superseded by '~a'~%") @@ -328,16 +324,7 @@ use NAME@VERSION instead~%"))) (x (if version (leave (_ "~A: package not found for version ~a~%") name version) - (if (not fallback?) - ;; XXX: Fallback to the older specification style with an hyphen - ;; between NAME and VERSION, for backward compatibility. - (call-with-values - (lambda () - (hyphen-separated-name->name+version name)) - (cut %find-package spec <> <> #:fallback? #t)) - - ;; The fallback case didn't find anything either, so bail out. - (leave (_ "~A: unknown package~%") name)))))) + (leave (_ "~A: unknown package~%") name))))) (define (specification->package spec) "Return a package matching SPEC. SPEC may be a package name, or a package diff --git a/tests/guix-build.sh b/tests/guix-build.sh index 9494e7371f..880a582777 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -185,7 +185,6 @@ test "`guix build superseded -d`" = "`guix build bar -d`" # Parsing package names and versions. guix build -n time # PASS guix build -n time@1.7 # PASS, version found -guix build -n time-1.7 # PASS, deprecated version syntax if guix build -n time@3.2; # FAIL, version not found then false; else true; fi if guix build -n something-that-will-never-exist; # FAIL From e93793059d4a15894e407525bdc33fd06e2b104a Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 30 Apr 2017 14:55:47 +0900 Subject: [PATCH 003/386] gnu: python2-urwid: Disable vterm tests. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm (python2-urwid)['delete-test_vterm]: Add phase to delete problematic test modules. Signed-off-by: Ludovic Courtès --- gnu/packages/python.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 164c1f49bc..b715289773 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5509,7 +5509,18 @@ features useful for text console applications.") (license license:lgpl2.1+))) (define-public python2-urwid - (package-with-python2 python-urwid)) + (let ((python2-urwid (package-with-python2 python-urwid))) + (package + (inherit python2-urwid) + (arguments + (append + '(#:phases + (modify-phases %standard-phases + ;; Disable the vterm tests because of non-deterministic failures + ;; with Python 2. See https://github.com/urwid/urwid/issues/230. + (add-after 'unpack 'delete-test_vterm.py + (delete-file "urwid/tests/test_vterm.py")))) + (package-arguments python-urwid)))))) (define-public python-openid (package From dff3189c7d5d95177ff592789e1bcb73a4adcc9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 1 May 2017 17:24:41 +0200 Subject: [PATCH 004/386] publish: Produce a "FileSize" narinfo field when possible. * guix/scripts/publish.scm (narinfo-string): Add #:file-size parameter. Produce a "FileSize" field when COMPRESSION is eq? to '%no-compression' or when FILE-SIZE is true. (bake-narinfo+nar): Pass #:file-size. * tests/publish.scm ("/*.narinfo") ("/*.narinfo with properly encoded '+' sign") ("with cache"): Check for "FileSize". --- guix/scripts/publish.scm | 18 +++++++++++++----- tests/publish.scm | 25 +++++++++++++++++-------- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index 3faff061a7..a589f149d3 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -240,10 +240,12 @@ compression disabled~%")) (define* (narinfo-string store store-path key #:key (compression %no-compression) - (nar-path "nar")) + (nar-path "nar") file-size) "Generate a narinfo key/value string for STORE-PATH; an exception is raised if STORE-PATH is invalid. Produce a URL that corresponds to COMPRESSION. The -narinfo is signed with KEY. NAR-PATH specifies the prefix for nar URLs." +narinfo is signed with KEY. NAR-PATH specifies the prefix for nar URLs. +Optionally, FILE-SIZE can specify the size in bytes of the compressed NAR; it +informs the client of how much needs to be downloaded." (let* ((path-info (query-path-info store store-path)) (compression (actual-compression store-path compression)) (url (encode-and-join-uri-path @@ -257,6 +259,8 @@ narinfo is signed with KEY. NAR-PATH specifies the prefix for nar URLs." (hash (bytevector->nix-base32-string (path-info-hash path-info))) (size (path-info-nar-size path-info)) + (file-size (or file-size + (and (eq? compression %no-compression) size))) (references (string-join (map basename (path-info-references path-info)) " ")) @@ -268,10 +272,13 @@ URL: ~a Compression: ~a NarHash: sha256:~a NarSize: ~d -References: ~a~%" +References: ~a~%~a" store-path url (compression-type compression) - hash size references)) + hash size references + (if file-size + (format #f "FileSize: ~a~%" file-size) + ""))) ;; Do not render a "Deriver" or "System" line if we are rendering ;; info for a derivation. (info (if (not deriver) @@ -465,7 +472,8 @@ requested using POOL." (display (narinfo-string store item (%private-key) #:nar-path nar-path - #:compression compression) + #:compression compression + #:file-size (stat:size (stat nar))) port)))))) ;; XXX: Declare the 'Guix-Compression' HTTP header, which is in fact for diff --git a/tests/publish.scm b/tests/publish.scm index 233b71ce93..6238f37bc1 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -122,13 +122,15 @@ URL: nar/~a Compression: none NarHash: sha256:~a NarSize: ~d -References: ~a~%" +References: ~a +FileSize: ~a~%" %item (basename %item) (bytevector->nix-base32-string (path-info-hash info)) (path-info-nar-size info) - (basename (first (path-info-references info))))) + (basename (first (path-info-references info))) + (path-info-nar-size info))) (signature (base64-encode (string->utf8 (canonical-sexp->string @@ -152,11 +154,13 @@ URL: nar/~a Compression: none NarHash: sha256:~a NarSize: ~d -References: ~%" +References: ~%\ +FileSize: ~a~%" item (uri-encode (basename item)) (bytevector->nix-base32-string (path-info-hash info)) + (path-info-nar-size info) (path-info-nar-size info))) (signature (base64-encode (string->utf8 @@ -323,6 +327,7 @@ References: ~%" ("Compression" . "gzip")) 200 ;nar/gzip/… #t ;Content-Length + #t ;FileSize 200) ;nar/… (call-with-temporary-directory (lambda (cache) @@ -351,10 +356,11 @@ References: ~%" (response (http-get url))) (and (= 404 (response-code response)) (wait-for-file cached) - (let ((body (http-get-port url)) - (compressed (http-get nar-url)) - (uncompressed (http-get (string-append base "nar/" - (basename %item))))) + (let* ((body (http-get-port url)) + (compressed (http-get nar-url)) + (uncompressed (http-get (string-append base "nar/" + (basename %item)))) + (narinfo (recutils->alist body))) (list (file-exists? nar) (filter (lambda (item) (match item @@ -362,10 +368,13 @@ References: ~%" (("StorePath" . _) #t) (("URL" . _) #t) (_ #f))) - (recutils->alist body)) + narinfo) (response-code compressed) (= (response-content-length compressed) (stat:size (stat nar))) + (= (string->number + (assoc-ref narinfo "FileSize")) + (stat:size (stat nar))) (response-code uncompressed))))))))) (test-end "publish") From cfd2ca8244bc7a5c130677718ad2ad75f7316c68 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 1 May 2017 11:41:21 +0200 Subject: [PATCH 005/386] gnu: linux-libre: Update to 4.11. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.11. (%linux-libre-hash): Update hash. Signed-off-by: Leo Famulari --- 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 fb70bf0bb9..c30302cde5 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -353,8 +353,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.10.13") -(define %linux-libre-hash "0sl3w4id3amahv42xg2ac0lqhxn5dih2vm7wyxnfja4c3g4hshn4") +(define %linux-libre-version "4.11") +(define %linux-libre-hash "0j1bzzq9iq5i1zm7gnig8v0clr8wq303kvcdsaifc0r0ggz1mx1n") (define-public linux-libre (make-linux-libre %linux-libre-version From 116ac0582c42468172f1226f814da9eae00855a0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 1 May 2017 13:39:17 -0400 Subject: [PATCH 006/386] gnu: linux-libre@4.4: Update to 4.4.65. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.65. --- 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 c30302cde5..66fb328a3a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -369,8 +369,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.64" - "02fvsklimzgkhsjg3i6mjhf09b4kvgwr2cg2nak5li3fpjmw1y35" + (make-linux-libre "4.4.65" + "03bxjdbmj9zmclb1c11zlblcmhych5d00p93f9vg048paizpk3b3" %intel-compatible-systems #:configuration-file kernel-config)) From 78df8948c8bd52af44da625a83f1aff36b205414 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 30 Apr 2017 05:44:53 -0400 Subject: [PATCH 007/386] gnu: bitcoin-core: Update to 0.14.1. * gnu/packages/finance.scm (bitcoin-core): Update to 0.14.1. --- gnu/packages/finance.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 3c305f4b2a..fb2543bceb 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -49,7 +49,7 @@ (define-public bitcoin-core (package (name "bitcoin-core") - (version "0.14.0") + (version "0.14.1") (source (origin (method url-fetch) (uri @@ -57,7 +57,7 @@ version "/bitcoin-" version ".tar.gz")) (sha256 (base32 - "07k4i9r033dsvkp5ii5g3hykidm8b19c8c0mz1bi8k0dda3d8hyp")))) + "18zrsinlwkj4q5bj2hzswbhswkvd0sdfi6skfwqwwk85gzh064pj")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From 3314396138ce4c3bc21fdf1222f124b7e4509d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Mon, 1 May 2017 12:01:06 +0200 Subject: [PATCH 008/386] licenses: Add new meta-license fsdg-compatible. * guix/licenses.scm (fsdg-compatible): New record with constructor. --- guix/licenses.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/guix/licenses.scm b/guix/licenses.scm index 7b2ac2d311..7a1e2415e6 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2016 Fabian Harfert ;;; Copyright © 2016 Rene Saavedra ;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -75,7 +76,8 @@ zpl2.1 zlib fsf-free - wtfpl2)) + wtfpl2 + fsdg-compatible)) (define-record-type (license name uri comment) @@ -488,4 +490,13 @@ of licenses, approved as free by the FSF. More details can be found at URI." uri comment)) +(define* (fsdg-compatible uri #:optional (comment "")) + "Return a license that does not fit any of the ones above or a collection +of licenses, not necessarily free, but in accordance with FSDG as Non-functional +Data. More details can be found at URI. See also +https://www.gnu.org/distros/free-system-distribution-guidelines.en.html#non-functional-data." + (license "FSDG-compatible" + uri + comment)) + ;;; licenses.scm ends here From d5b091290d9b0afe1f57d469f4fd388ac3b3b917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Fri, 21 Apr 2017 16:32:15 +0200 Subject: [PATCH 009/386] gnu: font-bitstream-vera: Change license to fsdg-compatible. This license is not X11-style because of its clause that makes it non-free. * gnu/packages/fonts.scm (font-bitstream-vera)[license]: Change to fsdg-compatible Bitstream Vera. --- gnu/packages/fonts.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 2452a1c810..1873c76596 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 José Miguel Sánchez García ;;; Copyright © 2017 Alex Griffin +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -239,8 +240,11 @@ provide serif, sans and monospaced variants.") (description "Vera is a sans-serif typeface from Bitstream, Inc. This package provides the TrueType (TTF) files.") (license - (license:x11-style - "http://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts")))) + (license:fsdg-compatible + "https://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts" + "The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself.")))) (define-public font-cantarell (package From 1c4a500aae53b8cd33d1266eb3809b859ae2555d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 1 May 2017 14:24:50 -0400 Subject: [PATCH 010/386] gnu: libsndfile: Fix CVE-2017-{8361,8362,8363,8365}. * gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch, gnu/packages/patches/libsndfile-CVE-2017-8362.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/pulseaudio.scm (libsndfile)[replacement]: New field. (libsndfile/fixed): New variable. --- gnu/local.mk | 2 + .../libsndfile-CVE-2017-8361-8363-8365.patch | 77 +++++++++++++++++++ .../patches/libsndfile-CVE-2017-8362.patch | 61 +++++++++++++++ gnu/packages/pulseaudio.scm | 13 ++++ 4 files changed, 153 insertions(+) create mode 100644 gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch create mode 100644 gnu/packages/patches/libsndfile-CVE-2017-8362.patch diff --git a/gnu/local.mk b/gnu/local.mk index f5574ecd80..52000a2c53 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -719,6 +719,8 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \ + %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ + %D%/packages/patches/libsndfile-CVE-2017-8362.patch \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtheora-config-guess.patch \ diff --git a/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch b/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch new file mode 100644 index 0000000000..5f63231af0 --- /dev/null +++ b/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch @@ -0,0 +1,77 @@ +Fix CVE-2017-{8361,8363,8365}: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8361 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8363 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8365 + +Patch copied from upstream source repository: + +https://github.com/erikd/libsndfile/commit/fd0484aba8e51d16af1e3a880f9b8b857b385eb3 + +From fd0484aba8e51d16af1e3a880f9b8b857b385eb3 Mon Sep 17 00:00:00 2001 +From: Erik de Castro Lopo +Date: Wed, 12 Apr 2017 19:45:30 +1000 +Subject: [PATCH] FLAC: Fix a buffer read overrun + +Buffer read overrun occurs when reading a FLAC file that switches +from 2 channels to one channel mid-stream. Only option is to +abort the read. + +Closes: https://github.com/erikd/libsndfile/issues/230 +--- + src/common.h | 1 + + src/flac.c | 13 +++++++++++++ + src/sndfile.c | 1 + + 3 files changed, 15 insertions(+) + +diff --git a/src/common.h b/src/common.h +index 0bd810c3..e2669b6a 100644 +--- a/src/common.h ++++ b/src/common.h +@@ -725,6 +725,7 @@ enum + SFE_FLAC_INIT_DECODER, + SFE_FLAC_LOST_SYNC, + SFE_FLAC_BAD_SAMPLE_RATE, ++ SFE_FLAC_CHANNEL_COUNT_CHANGED, + SFE_FLAC_UNKOWN_ERROR, + + SFE_WVE_NOT_WVE, +diff --git a/src/flac.c b/src/flac.c +index 84de0e26..986a7b8f 100644 +--- a/src/flac.c ++++ b/src/flac.c +@@ -434,6 +434,19 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_ + + switch (metadata->type) + { case FLAC__METADATA_TYPE_STREAMINFO : ++ if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels) ++ { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n" ++ "Nothing to be but to error out.\n" , ++ psf->sf.channels, metadata->data.stream_info.channels) ; ++ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; ++ return ; ++ } ; ++ ++ if (psf->sf.channels > 0 && psf->sf.samplerate != (int) metadata->data.stream_info.sample_rate) ++ { psf_log_printf (psf, "Warning: FLAC stream changed sample rates from %d to %d.\n" ++ "Carrying on as if nothing happened.", ++ psf->sf.samplerate, metadata->data.stream_info.sample_rate) ; ++ } ; + psf->sf.channels = metadata->data.stream_info.channels ; + psf->sf.samplerate = metadata->data.stream_info.sample_rate ; + psf->sf.frames = metadata->data.stream_info.total_samples ; +diff --git a/src/sndfile.c b/src/sndfile.c +index 41875610..e2a87be8 100644 +--- a/src/sndfile.c ++++ b/src/sndfile.c +@@ -245,6 +245,7 @@ ErrorStruct SndfileErrors [] = + { SFE_FLAC_INIT_DECODER , "Error : problem with initialization of the flac decoder." }, + { SFE_FLAC_LOST_SYNC , "Error : flac decoder lost sync." }, + { SFE_FLAC_BAD_SAMPLE_RATE, "Error : flac does not support this sample rate." }, ++ { SFE_FLAC_CHANNEL_COUNT_CHANGED, "Error : flac channel changed mid stream." }, + { SFE_FLAC_UNKOWN_ERROR , "Error : unknown error in flac decoder." }, + + { SFE_WVE_NOT_WVE , "Error : not a WVE file." }, +-- +2.12.2 + diff --git a/gnu/packages/patches/libsndfile-CVE-2017-8362.patch b/gnu/packages/patches/libsndfile-CVE-2017-8362.patch new file mode 100644 index 0000000000..5fc52a377a --- /dev/null +++ b/gnu/packages/patches/libsndfile-CVE-2017-8362.patch @@ -0,0 +1,61 @@ +Fix CVE-2017-8362: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8362 + +Patch copied from upstream source repository: + +https://github.com/erikd/libsndfile/commit/ef1dbb2df1c0e741486646de40bd638a9c4cd808 + +From ef1dbb2df1c0e741486646de40bd638a9c4cd808 Mon Sep 17 00:00:00 2001 +From: Erik de Castro Lopo +Date: Fri, 14 Apr 2017 15:19:16 +1000 +Subject: [PATCH] src/flac.c: Fix a buffer read overflow + +A file (generated by a fuzzer) which increased the number of channels +from one frame to the next could cause a read beyond the end of the +buffer provided by libFLAC. Only option is to abort the read. + +Closes: https://github.com/erikd/libsndfile/issues/231 +--- + src/flac.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/src/flac.c b/src/flac.c +index 5a4f8c21..e4f9aaa0 100644 +--- a/src/flac.c ++++ b/src/flac.c +@@ -169,6 +169,14 @@ flac_buffer_copy (SF_PRIVATE *psf) + const int32_t* const *buffer = pflac->wbuffer ; + unsigned i = 0, j, offset, channels, len ; + ++ if (psf->sf.channels != (int) frame->header.channels) ++ { psf_log_printf (psf, "Error: FLAC frame changed from %d to %d channels\n" ++ "Nothing to do but to error out.\n" , ++ psf->sf.channels, frame->header.channels) ; ++ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; ++ return 0 ; ++ } ; ++ + /* + ** frame->header.blocksize is variable and we're using a constant blocksize + ** of FLAC__MAX_BLOCK_SIZE. +@@ -202,7 +210,6 @@ flac_buffer_copy (SF_PRIVATE *psf) + return 0 ; + } ; + +- + len = SF_MIN (pflac->len, frame->header.blocksize) ; + + if (pflac->remain % channels != 0) +@@ -436,7 +443,7 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_ + { case FLAC__METADATA_TYPE_STREAMINFO : + if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels) + { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n" +- "Nothing to be but to error out.\n" , ++ "Nothing to do but to error out.\n" , + psf->sf.channels, metadata->data.stream_info.channels) ; + psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; + return ; +-- +2.12.2 + diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index c52f265cc1..92ebe6f3eb 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -45,6 +45,7 @@ (define-public libsndfile (package (name "libsndfile") + (replacement libsndfile/fixed) (version "1.0.28") (source (origin (method url-fetch) @@ -76,6 +77,18 @@ SPARC. Hopefully the design of the library will also make it easy to extend for reading and writing new sound file formats.") (license l:gpl2+))) +(define libsndfile/fixed + (package + (inherit libsndfile) + (source + (origin + (inherit (package-source libsndfile)) + (patches + (append + (origin-patches (package-source libsndfile)) + (search-patches "libsndfile-CVE-2017-8361-8363-8365.patch" + "libsndfile-CVE-2017-8362.patch"))))))) + (define-public libsamplerate (package (name "libsamplerate") ; aka. Secret Rabbit Code (SRC) From dd5bb841bf612e8f93689d11fc6ca670877ed060 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 1 May 2017 17:38:34 -0400 Subject: [PATCH 011/386] Revert "gnu: linux-libre: Update to 4.11." This reverts commit cfd2ca8244bc7a5c130677718ad2ad75f7316c68. --- 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 66fb328a3a..f4bbd98912 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -353,8 +353,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.11") -(define %linux-libre-hash "0j1bzzq9iq5i1zm7gnig8v0clr8wq303kvcdsaifc0r0ggz1mx1n") +(define %linux-libre-version "4.10.13") +(define %linux-libre-hash "0sl3w4id3amahv42xg2ac0lqhxn5dih2vm7wyxnfja4c3g4hshn4") (define-public linux-libre (make-linux-libre %linux-libre-version From e537c917e89a2335af3a120c549e555cf02daccb Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 1 May 2017 20:22:13 +0100 Subject: [PATCH 012/386] gnu: Add python-sockjs-tornado. * gnu/packages/python.scm (python-sockjs-tornado): New variable. Signed-off-by: Marius Bakke --- gnu/packages/python.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b715289773..35b2592783 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4217,6 +4217,38 @@ routines such as routines for numerical integration and optimization.") (package-with-python2 (strip-python2-variant python-scipy))) +(define-public python-sockjs-tornado + (package + (name "python-sockjs-tornado") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sockjs-tornado" version)) + (sha256 + (base32 + "16cff40nniqsyvda1pb2j3b4zwmrw7y2g1vqq78lp20xpmhnwwkd")))) + (build-system python-build-system) + (arguments + `(;; There are no tests, and running the test phase requires missing + ;; dependencies + #:tests? #f)) + (propagated-inputs + `(("python-tornado" ,python-tornado))) + (home-page "http://github.com/mrjoes/sockjs-tornado/") + (synopsis + "SockJS python server implementation on top of Tornado framework") + (description + "SockJS-tornado provides the server side counterpart to a SockJS client +library, through the Tornado framework. + +SockJS provides a low latency, full duplex, cross-domain communication channel +between a web browser and web server.") + (license license:expat))) + +(define-public python2-sockjs-tornado + (package-with-python2 python-sockjs-tornado)) + (define-public python-socksipy-branch (package (name "python-socksipy-branch") From 6fdeb324a049bc9398658ff59ee94d3b88a8e469 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 1 May 2017 20:22:14 +0100 Subject: [PATCH 013/386] gnu: python-tornado: Update to 4.5.1. * gnu/packages/python.scm (python-tornado): Update to 4.5.1. Signed-off-by: Marius Bakke --- 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 35b2592783..e1dfd00547 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6148,13 +6148,13 @@ It is written entirely in Python.") (define-public python-tornado (package (name "python-tornado") - (version "4.3") + (version "4.5.1") (source (origin (method url-fetch) (uri (pypi-uri "tornado" version)) (sha256 - (base32 "1gzgwayl6hmc9jfcl88bni4jcsk2jcca9dn1rvrfsvnijcjx7hn9")))) + (base32 "1zbkgcdfq81k298awrm8p0xwbwwn2p3nbizdglzfbkskhai082fv")))) (build-system python-build-system) (arguments '(;; FIXME: Two tests error out with: From 99aa2dce5d376b6612aab0971985f6320c03ecd2 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 1 May 2017 20:22:15 +0100 Subject: [PATCH 014/386] gnu: Add tailon. * gnu/packages/logging.scm (tailon): New variable. Signed-off-by: Marius Bakke --- gnu/packages/logging.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index d28094c3a8..2523d65f61 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -24,8 +24,10 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages perl) + #:use-module (gnu packages python) #:use-module (gnu packages autotools)) (define-public log4cpp @@ -90,3 +92,27 @@ helper macros. You can log a message by simply streaming things to log at a particular severity level. It allows logging to be controlled from the command line.") (license license:bsd-3))) + +(define-public tailon + (package + (name "tailon") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri name version)) + (sha256 + (base32 + "08clrwpfdxcv2z2b5ardpmim4alahbw4l7631dhw62xhbcf6wjzz")))) + (build-system python-build-system) + (inputs + `(("python-pyyaml" ,python-pyyaml) + ("python-sockjs-tornado" ,python-sockjs-tornado) + ("python-tornado" ,python-tornado))) + (home-page "https://tailon.readthedocs.io/") + (synopsis + "Webapp for looking at and searching through log files") + (description + "Tailon provides a web interface around the tail, grep, awk and sed +commands, displaying the results via a web interface.") + (license license:bsd-3))) From 840b7136138951b7a43a8cda1b16f88a5ce951c2 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Sat, 29 Apr 2017 04:30:48 +1000 Subject: [PATCH 015/386] gnu: Add font-cns11643. * gnu/packages/fonts.scm (font-cns11643): New variable. Signed-off-by: Marius Bakke --- gnu/packages/fonts.scm | 61 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 1873c76596..4d882b3552 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2017 José Miguel Sánchez García ;;; Copyright © 2017 Alex Griffin ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -522,6 +523,66 @@ fonts are intended to support the characters necessary to render or display text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.") (license license:silofl1.1))) +(define-public font-cns11643 + (package + (name "font-cns11643") + (version "98.1.20170405") + (source (origin + (method url-fetch) + (uri "http://www.cns11643.gov.tw/AIDB/Open_Data.zip") + (sha256 + (base32 + "02kb3bwjrra0k2hlr2p8xswd2y0xs6j8d9vm6yrby734h02a40qf")))) + (outputs '("out" "tw-kai" "tw-sung")) + (build-system trivial-build-system) + (native-inputs + `(("unzip" ,unzip))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((font-dir "/share/fonts/truetype/cns11643") + (out (string-append + (assoc-ref %outputs "out") font-dir)) + (tw-kai (string-append + (assoc-ref %outputs "tw-kai") font-dir)) + (tw-sung (string-append + (assoc-ref %outputs "tw-sung") font-dir)) + (unzip (string-append + (assoc-ref %build-inputs "unzip") "/bin/unzip"))) + (system* unzip (assoc-ref %build-inputs "source")) + (chdir "Open_Data/Fonts/") + (install-file "TW-Kai-98_1.ttf" tw-kai) + (install-file "TW-Sung-98_1.ttf" tw-sung) + (install-file "TW-Kai-98_1.ttf" out) + (install-file "TW-Kai-Ext-B-98_1.ttf" out) + (install-file "TW-Kai-Plus-98_1.ttf" out) + (install-file "TW-Sung-98_1.ttf" out) + (install-file "TW-Sung-Ext-B-98_1.ttf" out) + (install-file "TW-Sung-Plus-98_1.ttf" out) + #t)))) + (home-page "http://www.cns11643.gov.tw/AIDB/welcome.do") + (synopsis "CJK TrueType fonts, TW-Kai and TW-Sung") + (description + "@code{CNS 11643} character set (Chinese National Standard, or Chinese +Standard Interchange Code) is the standard character set of the Republic of +China (Taiwan) for Chinese Characters and other Unicode symbols. Contained +are six TrueType fonts based on two script styles, Regular script (Kai), and +Sung/Ming script, each with three variants: + +@itemize +@item @code{CNS 11643} (@code{TW-Kai} and @code{TW-Sung}): Tens of thousands +of CJK characters from frequency tables published by the Taiwanese +Ministry of Education. ISO 10646 and Unicode compatible encoding. +@item @code{Big-5 Plus}: Several thousand frequently used CJK characters +encoded in the user defined area of the Big-5 code. +@item @code{Big-5 Extended}: A Big-5 character set based on the +@code{Big-5 Plus} and @code{CNS 11643} character sets. +@end itemize\n") + (license (license:non-copyleft + "http://data.gov.tw/license")))) ; CC-BY 4.0 compatible + (define-public font-wqy-zenhei (package (name "font-wqy-zenhei") From f3744a01e68aa035cedfb4380c22e17ea83d6baa Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Tue, 2 May 2017 00:39:06 +1000 Subject: [PATCH 016/386] gnu: Add font-cns11643-swjz. * gnu/packages/fonts.scm (font-cns11643-swjz): New variable. Signed-off-by: Marius Bakke --- gnu/packages/fonts.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 4d882b3552..c1f0786df2 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -583,6 +583,44 @@ encoded in the user defined area of the Big-5 code. (license (license:non-copyleft "http://data.gov.tw/license")))) ; CC-BY 4.0 compatible +(define-public font-cns11643-swjz + (package + (name "font-cns11643-swjz") + (version "1") + (source + (origin + (method url-fetch) + (uri "https://www.moedict.tw/fonts/truetype/cns11643/ebas927.ttf") + (sha256 + (base32 + "1qkljldbmb53zp1rcmpsb8rzy67rnsqcjxi549m9743ifk4isl78")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((font-dir (string-append %output + "/share/fonts/truetype/cns11643")) + (source (assoc-ref %build-inputs "source"))) + (mkdir-p font-dir) + (copy-file source + (string-append font-dir "/" "ebas927.ttf")) + #t)))) + (home-page + (string-append "http://www.cns11643.gov.tw/AIDB/download.do" + "?name=%E5%AD%97%E5%9E%8B%E4%B8%8B%E8%BC%89")) + (synopsis "TrueType seal script font") + (description + "@code{Shuowen Jiezi} is a TrueType seal script font based on the ancient +text of the same name published by the Executive Yuan of Taiwan. 6721 glyphs +are included, at Unicode compatible code points corresponding to their modern +variants.") + ;; Original text only available in Chinese. More info at + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26703#11 + (license (license:non-copyleft + "http://www.cns11643.gov.tw/AIDB/copyright.do")))) + (define-public font-wqy-zenhei (package (name "font-wqy-zenhei") From 60c9e80444421c412ae3d0e7b4b224ef0e32947f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 1 May 2017 18:48:13 -0400 Subject: [PATCH 017/386] gnu: linux-libre: Update to 4.11. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.11. (%linux-libre-hash): Update hash. * gnu/packages/aux-files/linux-libre/4.10-i686.conf, gnu/packages/aux-files/linux-libre/4.10-x86_64.conf: Delete files. * gnu/packages/aux-files/linux-libre/4.11-i686.conf, gnu/packages/aux-files/linux-libre/4.11-x86_64.conf: New files. * Makefile.am (AUX_FILES): Adjust accordingly. --- Makefile.am | 4 +- .../{4.10-i686.conf => 4.11-i686.conf} | 197 +++++++++++++----- .../{4.10-x86_64.conf => 4.11-x86_64.conf} | 194 +++++++++++++---- gnu/packages/linux.scm | 4 +- 4 files changed, 305 insertions(+), 94 deletions(-) rename gnu/packages/aux-files/linux-libre/{4.10-i686.conf => 4.11-i686.conf} (98%) rename gnu/packages/aux-files/linux-libre/{4.10-x86_64.conf => 4.11-x86_64.conf} (98%) diff --git a/Makefile.am b/Makefile.am index db4ebe04dc..9484ba75aa 100644 --- a/Makefile.am +++ b/Makefile.am @@ -205,8 +205,8 @@ dist_noinst_DATA = guix/tests.scm guix/tests/http.scm # Auxiliary files for packages. AUX_FILES = \ gnu/packages/aux-files/emacs/guix-emacs.el \ - gnu/packages/aux-files/linux-libre/4.10-i686.conf \ - gnu/packages/aux-files/linux-libre/4.10-x86_64.conf \ + gnu/packages/aux-files/linux-libre/4.11-i686.conf \ + gnu/packages/aux-files/linux-libre/4.11-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.9-i686.conf \ gnu/packages/aux-files/linux-libre/4.9-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.4-i686.conf \ diff --git a/gnu/packages/aux-files/linux-libre/4.10-i686.conf b/gnu/packages/aux-files/linux-libre/4.11-i686.conf similarity index 98% rename from gnu/packages/aux-files/linux-libre/4.10-i686.conf rename to gnu/packages/aux-files/linux-libre/4.11-i686.conf index 8ec475ea01..6234a980ae 100644 --- a/gnu/packages/aux-files/linux-libre/4.10-i686.conf +++ b/gnu/packages/aux-files/linux-libre/4.11-i686.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.10.0-gnu Kernel Configuration +# Linux/x86 4.11.0-gnu Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -38,7 +38,6 @@ CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_32_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y -CONFIG_DEBUG_RODATA=y CONFIG_PGTABLE_LEVELS=3 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y @@ -134,12 +133,11 @@ CONFIG_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y # CONFIG_TREE_RCU_TRACE is not set -# CONFIG_RCU_EXPEDITE_BOOT is not set CONFIG_BUILD_BIN2C=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -CONFIG_NMI_LOG_BUF_SHIFT=13 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CGROUPS=y @@ -155,6 +153,7 @@ CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set CONFIG_CGROUP_PIDS=y +# CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y CONFIG_CPUSETS=y @@ -223,6 +222,7 @@ CONFIG_PCI_QUIRKS=y CONFIG_MEMBARRIER=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set # # Kernel Performance Events And Counters @@ -231,6 +231,7 @@ CONFIG_PERF_EVENTS=y # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_MEMCG_SYSFS_ON is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y @@ -250,7 +251,7 @@ CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y -CONFIG_UPROBES=y +# CONFIG_UPROBES is not set # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y @@ -265,6 +266,7 @@ CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y @@ -287,6 +289,7 @@ CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set +# CONFIG_GCC_PLUGIN_STRUCTLEAK is not set CONFIG_HAVE_CC_STACKPROTECTOR=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set @@ -309,6 +312,12 @@ CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y # CONFIG_CPU_NO_EFFICIENT_FFS is not set # CONFIG_HAVE_ARCH_VMAP_STACK is not set +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y # # GCOV-based kernel profiling @@ -330,6 +339,7 @@ CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y CONFIG_LBDAF=y +CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y @@ -339,6 +349,8 @@ CONFIG_BLK_CMDLINE_PARSER=y CONFIG_BLK_WBT=y # CONFIG_BLK_WBT_SQ is not set CONFIG_BLK_WBT_MQ=y +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set # # Partition Types @@ -365,6 +377,7 @@ CONFIG_EFI_PARTITION=y CONFIG_SYSV68_PARTITION=y CONFIG_CMDLINE_PARTITION=y CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y # # IO Schedulers @@ -377,6 +390,7 @@ CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_MQ_IOSCHED_DEADLINE=m CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y @@ -428,6 +442,7 @@ CONFIG_XEN_DOM0=y CONFIG_XEN_PVHVM=y CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set +CONFIG_XEN_PVH=y CONFIG_KVM_GUEST=y CONFIG_KVM_DEBUG_FS=y # CONFIG_LGUEST_GUEST is not set @@ -720,7 +735,6 @@ CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set @@ -796,6 +810,7 @@ CONFIG_PCIEASPM=y CONFIG_PCIEASPM_DEBUG=y CONFIG_PCIEASPM_DEFAULT=y # CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set # CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y CONFIG_PCIE_DPC=y @@ -825,9 +840,13 @@ CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m CONFIG_HOTPLUG_PCI_SHPC=m # -# PCI host controller drivers +# DesignWare PCI Core Support # # CONFIG_PCIE_DW_PLAT is not set + +# +# PCI host controller drivers +# # CONFIG_ISA_BUS is not set CONFIG_ISA_DMA_API=y CONFIG_ISA=y @@ -895,7 +914,6 @@ CONFIG_BINFMT_MISC=m CONFIG_COREDUMP=y CONFIG_COMPAT_32=y CONFIG_HAVE_ATOMIC_IOMAP=y -CONFIG_PMC_ATOM=y CONFIG_NET=y CONFIG_NET_INGRESS=y CONFIG_NET_EGRESS=y @@ -908,6 +926,7 @@ CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m CONFIG_XFRM=y +CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=m CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set @@ -916,6 +935,8 @@ CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m # CONFIG_NET_KEY_MIGRATE is not set +CONFIG_SMC=m +CONFIG_SMC_DIAG=m CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -944,6 +965,7 @@ CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m +CONFIG_INET_ESP_OFFLOAD=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m @@ -982,6 +1004,7 @@ CONFIG_IPV6_ROUTE_INFO=y # CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m +CONFIG_INET6_ESP_OFFLOAD=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m CONFIG_IPV6_ILA=m @@ -1075,6 +1098,7 @@ CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_SET_RBTREE=m CONFIG_NFT_SET_HASH=m +CONFIG_NFT_SET_BITMAP=m CONFIG_NFT_COUNTER=m CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m @@ -1407,6 +1431,12 @@ CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y +CONFIG_NET_DSA=m +CONFIG_NET_DSA_TAG_BRCM=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_DSA_TAG_QCA=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y @@ -1511,6 +1541,7 @@ CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_SAMPLE=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m @@ -1552,7 +1583,7 @@ CONFIG_NET_MPLS_GSO=m CONFIG_MPLS_ROUTING=m CONFIG_MPLS_IPTUNNEL=m CONFIG_HSR=m -# CONFIG_NET_SWITCHDEV is not set +CONFIG_NET_SWITCHDEV=y CONFIG_NET_L3_MASTER_DEV=y CONFIG_NET_NCSI=y CONFIG_RPS=y @@ -1800,7 +1831,6 @@ CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_RFKILL=y CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m CONFIG_RFKILL_GPIO=m CONFIG_NET_9P=m CONFIG_NET_9P_VIRTIO=m @@ -1855,9 +1885,12 @@ CONFIG_NFC_NXP_NCI_I2C=m CONFIG_NFC_S3FWRN5=m CONFIG_NFC_S3FWRN5_I2C=m CONFIG_NFC_ST95HF=m +CONFIG_PSAMPLE=m +CONFIG_NET_IFE=m CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y CONFIG_NET_DEVLINK=m CONFIG_MAY_USE_DEVLINK=m @@ -2024,7 +2057,6 @@ CONFIG_MTD_NAND_CAFE=m CONFIG_MTD_NAND_CS553X=m CONFIG_MTD_NAND_NANDSIM=m CONFIG_MTD_NAND_PLATFORM=m -CONFIG_MTD_NAND_OXNAS=m CONFIG_MTD_NAND_HISI504=m CONFIG_MTD_NAND_MTK=m CONFIG_MTD_ONENAND=m @@ -2041,6 +2073,8 @@ CONFIG_MTD_QINFO_PROBE=m CONFIG_MTD_SPI_NOR=m CONFIG_MTD_MT81xx_NOR=m CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +CONFIG_SPI_INTEL_SPI=m +CONFIG_SPI_INTEL_SPI_PLATFORM=m CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 @@ -2128,6 +2162,7 @@ CONFIG_ATA_OVER_ETH=m CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=y +# CONFIG_VIRTIO_BLK_SCSI is not set # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_RSXX=m @@ -2191,6 +2226,7 @@ CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m CONFIG_EEPROM_93XX46=m +CONFIG_EEPROM_IDT_89HPESX=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y @@ -2384,6 +2420,7 @@ CONFIG_TCM_QLA2XXX=m # CONFIG_TCM_QLA2XXX_DEBUG is not set CONFIG_SCSI_QLA_ISCSI=m CONFIG_QEDI=m +CONFIG_QEDF=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_SIM710=m @@ -2607,6 +2644,7 @@ CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_IPVLAN=m +CONFIG_IPVTAP=m CONFIG_VXLAN=m CONFIG_GENEVE=m CONFIG_GTP=m @@ -2620,6 +2658,7 @@ CONFIG_RIONET=m CONFIG_RIONET_TX_SIZE=128 CONFIG_RIONET_RX_SIZE=128 CONFIG_TUN=y +CONFIG_TAP=m # CONFIG_TUN_VNET_CROSS_LE is not set CONFIG_VETH=m CONFIG_VIRTIO_NET=y @@ -2681,6 +2720,16 @@ CONFIG_CAIF_VIRTIO=m # # Distributed Switch Architecture drivers # +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_BCM_SF2=m +CONFIG_B53=m +CONFIG_B53_SPI_DRIVER=m +CONFIG_B53_MDIO_DRIVER=m +CONFIG_B53_MMAP_DRIVER=m +CONFIG_B53_SRAB_DRIVER=m +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +CONFIG_NET_DSA_QCA8K=m CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y @@ -2711,6 +2760,7 @@ CONFIG_NI65=m CONFIG_AMD_XGBE=m # CONFIG_AMD_XGBE_DCB is not set CONFIG_AMD_XGBE_HAVE_ECC=y +CONFIG_NET_VENDOR_AQUANTIA=y CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m @@ -2826,6 +2876,10 @@ CONFIG_MLXSW_CORE_HWMON=y CONFIG_MLXSW_CORE_THERMAL=y CONFIG_MLXSW_PCI=m CONFIG_MLXSW_I2C=m +CONFIG_MLXSW_SWITCHIB=m +CONFIG_MLXSW_SWITCHX2=m +CONFIG_MLXSW_SPECTRUM=m +CONFIG_MLXSW_SPECTRUM_DCB=y CONFIG_MLXSW_MINIMAL=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m @@ -2843,8 +2897,8 @@ CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_NETRONOME=y -CONFIG_NFP_NETVF=m -# CONFIG_NFP_NET_DEBUG is not set +CONFIG_NFP=m +# CONFIG_NFP_DEBUG is not set CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=m CONFIG_NE2000=m @@ -2873,6 +2927,7 @@ CONFIG_QED_LL2=y CONFIG_QED_SRIOV=y CONFIG_QEDE=m CONFIG_QED_ISCSI=y +CONFIG_QED_FCOE=y CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_QCOM_EMAC=m CONFIG_NET_VENDOR_REALTEK=y @@ -2888,6 +2943,7 @@ CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_ROCKER=y +CONFIG_ROCKER=m CONFIG_NET_VENDOR_SAMSUNG=y CONFIG_SXGBE_ETH=m CONFIG_NET_VENDOR_SEEQ=y @@ -2921,7 +2977,6 @@ CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m CONFIG_CASSINI=m CONFIG_NIU=m -CONFIG_NET_VENDOR_SYNOPSYS=y CONFIG_NET_VENDOR_TEHUTI=y CONFIG_TEHUTI=m CONFIG_NET_VENDOR_TI=y @@ -3064,6 +3119,7 @@ CONFIG_ATH5K=m CONFIG_ATH5K_PCI=y CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_COMMON_DEBUG=y CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K=m CONFIG_ATH9K_PCI=y @@ -3491,7 +3547,6 @@ CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m CONFIG_NVM=y # CONFIG_NVM_DEBUG is not set -CONFIG_NVM_GENNVM=m CONFIG_NVM_RRPC=m # @@ -3542,6 +3597,7 @@ CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_SAMSUNG=m CONFIG_KEYBOARD_STOWAWAY=m CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_TM2_TOUCHKEY=m CONFIG_KEYBOARD_TWL4030=m CONFIG_KEYBOARD_XTKBD=m CONFIG_KEYBOARD_CROS_EC=m @@ -3652,7 +3708,6 @@ CONFIG_TOUCHSCREEN_MMS114=m CONFIG_TOUCHSCREEN_MELFAS_MIP4=m CONFIG_TOUCHSCREEN_MTOUCH=m CONFIG_TOUCHSCREEN_INEXIO=m -CONFIG_TOUCHSCREEN_INTEL_MID=m CONFIG_TOUCHSCREEN_MK712=m CONFIG_TOUCHSCREEN_HTCPEN=m CONFIG_TOUCHSCREEN_PENMOUNT=m @@ -3703,6 +3758,7 @@ CONFIG_TOUCHSCREEN_SUR40=m CONFIG_TOUCHSCREEN_SURFACE3_SPI=m CONFIG_TOUCHSCREEN_SX8654=m CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_ZET6223=m CONFIG_TOUCHSCREEN_ZFORCE=m CONFIG_TOUCHSCREEN_ROHM_BU21023=m CONFIG_INPUT_MISC=y @@ -3720,7 +3776,6 @@ CONFIG_INPUT_MAX8925_ONKEY=m CONFIG_INPUT_MAX8997_HAPTIC=m CONFIG_INPUT_MC13783_PWRBUTTON=m CONFIG_INPUT_MMA8450=m -CONFIG_INPUT_MPU3050=m CONFIG_INPUT_APANEL=m CONFIG_INPUT_GP2A=m CONFIG_INPUT_GPIO_BEEPER=m @@ -3769,7 +3824,8 @@ CONFIG_RMI4_CORE=m CONFIG_RMI4_I2C=m CONFIG_RMI4_SPI=m CONFIG_RMI4_SMB=m -# CONFIG_RMI4_F03 is not set +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=m CONFIG_RMI4_2D_SENSOR=y CONFIG_RMI4_F11=y CONFIG_RMI4_F12=y @@ -3843,6 +3899,7 @@ CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=m CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=48 CONFIG_SERIAL_8250_RUNTIME_UARTS=32 @@ -3893,6 +3950,8 @@ CONFIG_SERIAL_RP2=m CONFIG_SERIAL_RP2_NR_UARTS=32 CONFIG_SERIAL_FSL_LPUART=m CONFIG_SERIAL_MEN_Z135=m +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_TTY_PRINTK=y CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set @@ -4133,6 +4192,7 @@ CONFIG_PTP_1588_CLOCK=m # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. # CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PTP_1588_CLOCK_KVM=m CONFIG_PINCTRL=y # @@ -4149,6 +4209,7 @@ CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_MERRIFIELD=m CONFIG_PINCTRL_INTEL=m CONFIG_PINCTRL_BROXTON=m +CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_GPIOLIB=y CONFIG_GPIO_ACPI=y @@ -4164,6 +4225,7 @@ CONFIG_GPIO_MAX730X=m CONFIG_GPIO_AMDPT=m CONFIG_GPIO_AXP209=m CONFIG_GPIO_DWAPB=m +CONFIG_GPIO_EXAR=m CONFIG_GPIO_GENERIC_PLATFORM=m CONFIG_GPIO_ICH=m CONFIG_GPIO_LYNXPOINT=y @@ -4234,6 +4296,7 @@ CONFIG_GPIO_INTEL_MID=y CONFIG_GPIO_MERRIFIELD=m CONFIG_GPIO_ML_IOH=m CONFIG_GPIO_PCH=m +CONFIG_GPIO_PCI_IDIO_16=m CONFIG_GPIO_RDC321X=m # @@ -4268,6 +4331,7 @@ CONFIG_W1_MASTER_GPIO=m # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2405=m CONFIG_W1_SLAVE_DS2408=m CONFIG_W1_SLAVE_DS2408_READBACK=y CONFIG_W1_SLAVE_DS2413=m @@ -4299,6 +4363,7 @@ CONFIG_BATTERY_DS2780=m CONFIG_BATTERY_DS2781=m CONFIG_BATTERY_DS2782=m CONFIG_BATTERY_SBS=m +CONFIG_CHARGER_SBS=m CONFIG_BATTERY_BQ27XXX=m CONFIG_BATTERY_BQ27XXX_I2C=m CONFIG_BATTERY_DA9030=m @@ -4312,7 +4377,6 @@ CONFIG_BATTERY_MAX17042=m CONFIG_BATTERY_TWL4030_MADC=m CONFIG_CHARGER_88PM860X=m CONFIG_CHARGER_PCF50633=m -CONFIG_BATTERY_INTEL_MID=m CONFIG_BATTERY_RX51=m CONFIG_CHARGER_ISP1704=m CONFIG_CHARGER_MAX8903=m @@ -4473,6 +4537,7 @@ CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_STTS751=m CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_ADC128D818=m CONFIG_SENSORS_ADS1015=m @@ -4605,6 +4670,7 @@ CONFIG_MACHZ_WDT=m CONFIG_SBC_EPX_C3_WATCHDOG=m CONFIG_INTEL_MEI_WDT=m CONFIG_NI903X_WDT=m +CONFIG_NIC7018_WDT=m CONFIG_MEN_A21_WDT=m CONFIG_XEN_WDT=m @@ -4931,6 +4997,7 @@ CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m +CONFIG_IR_SPI=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m CONFIG_IR_IGORPLUGUSB=m @@ -5016,7 +5083,6 @@ CONFIG_VIDEO_PVRUSB2_DVB=y CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_USBVISION=m CONFIG_VIDEO_STK1160_COMMON=m -CONFIG_VIDEO_STK1160_AC97=y CONFIG_VIDEO_STK1160=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m @@ -5081,6 +5147,7 @@ CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_MXL111SF=m CONFIG_DVB_USB_RTL28XXU=m CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_USB_ZD1301=m CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_SMS_USB_DRV=m @@ -5131,6 +5198,7 @@ CONFIG_VIDEO_ZORAN_AVS6EYES=m # Media capture/analog TV support # CONFIG_VIDEO_IVTV=m +# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set CONFIG_VIDEO_IVTV_ALSA=m CONFIG_VIDEO_FB_IVTV=m CONFIG_VIDEO_HEXIUM_GEMINI=m @@ -5496,6 +5564,7 @@ CONFIG_DVB_RTL2832=m CONFIG_DVB_RTL2832_SDR=m CONFIG_DVB_SI2168=m CONFIG_DVB_AS102_FE=m +CONFIG_DVB_ZD1301_DEMOD=m CONFIG_DVB_GP8PSK_FE=m # @@ -5590,11 +5659,13 @@ CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set +# CONFIG_DRM_DEBUG_MM_SELFTEST is not set CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_TTM=m +CONFIG_DRM_VM=y # # I2C encoder or helper chips @@ -5629,6 +5700,7 @@ CONFIG_DRM_I915_USERPTR=y # # CONFIG_DRM_I915_WERROR is not set # CONFIG_DRM_I915_DEBUG is not set +# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set CONFIG_DRM_VGEM=m CONFIG_DRM_VMWGFX=m CONFIG_DRM_VMWGFX_FBCON=y @@ -5655,7 +5727,9 @@ CONFIG_DRM_BRIDGE=y # CONFIG_DRM_ANALOGIX_ANX78XX=m CONFIG_DRM_HISI_HIBMC=m +# CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_LEGACY is not set +# CONFIG_DRM_LIB_RANDOM is not set # # Frame buffer Devices @@ -5673,6 +5747,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m CONFIG_FB_DEFERRED_IO=y @@ -6091,7 +6166,7 @@ CONFIG_SND_SOC_FSL_ESAI=m CONFIG_SND_SOC_IMX_AUDMUX=m # CONFIG_SND_SOC_IMG is not set CONFIG_SND_MFLD_MACHINE=m -CONFIG_SND_SST_MFLD_PLATFORM=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m CONFIG_SND_SST_IPC=m CONFIG_SND_SST_IPC_PCI=m CONFIG_SND_SST_IPC_ACPI=m @@ -6103,6 +6178,7 @@ CONFIG_SND_SOC_INTEL_HASWELL=m CONFIG_SND_SOC_INTEL_HASWELL_MACH=m CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m +CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m @@ -6151,6 +6227,8 @@ CONFIG_SND_SOC_DA7219=m CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_HDMI_CODEC=m CONFIG_SND_SOC_ES8328=m +CONFIG_SND_SOC_ES8328_I2C=m +CONFIG_SND_SOC_ES8328_SPI=m CONFIG_SND_SOC_GTM601=m CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INNO_RK3036=m @@ -6180,7 +6258,8 @@ CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m CONFIG_SND_SOC_RT5651=m CONFIG_SND_SOC_RT5670=m -# CONFIG_SND_SOC_RT5677_SPI is not set +CONFIG_SND_SOC_RT5677=m +CONFIG_SND_SOC_RT5677_SPI=m CONFIG_SND_SOC_SGTL5000=m CONFIG_SND_SOC_SI476X=m CONFIG_SND_SOC_SIGMADSP=m @@ -6227,11 +6306,14 @@ CONFIG_SND_SOC_WM8962=m CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_NAU8540=m CONFIG_SND_SOC_NAU8810=m CONFIG_SND_SOC_NAU8825=m CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SIMPLE_CARD_UTILS=m CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_X86=y +CONFIG_HDMI_LPE_AUDIO=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m @@ -6492,6 +6574,7 @@ CONFIG_USB_CHIPIDEA=m CONFIG_USB_CHIPIDEA_PCI=m CONFIG_USB_CHIPIDEA_UDC=y CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_ULPI=y CONFIG_USB_ISP1760=m CONFIG_USB_ISP1760_HCD=y CONFIG_USB_ISP1761_UDC=y @@ -6569,6 +6652,7 @@ CONFIG_USB_SERIAL_XSENS_MT=m CONFIG_USB_SERIAL_WISHBONE=m CONFIG_USB_SERIAL_SSU100=m CONFIG_USB_SERIAL_QT2=m +CONFIG_USB_SERIAL_UPD78F0730=m CONFIG_USB_SERIAL_DEBUG=m # @@ -6596,6 +6680,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=m CONFIG_USB_ISIGHTFW=m CONFIG_USB_YUREX=m CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HUB_USB251XB=m CONFIG_USB_HSIC_USB3503=m CONFIG_USB_HSIC_USB4604=m CONFIG_USB_LINK_LAYER_TEST=m @@ -6770,6 +6855,7 @@ CONFIG_MEMSTICK_REALTEK_USB=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_CLASS_FLASH=m +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # # LED drivers @@ -6871,6 +6957,7 @@ CONFIG_INFINIBAND_SRPT=m CONFIG_INFINIBAND_ISER=m CONFIG_INFINIBAND_ISERT=m CONFIG_RDMA_RXE=m +CONFIG_INFINIBAND_BNXT_RE=m CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y @@ -7399,9 +7486,6 @@ CONFIG_STAGING_MEDIA=y CONFIG_I2C_BCM2048=m CONFIG_DVB_CXD2099=m CONFIG_LIRC_STAGING=y -CONFIG_LIRC_BT829=m -CONFIG_LIRC_IMON=m -CONFIG_LIRC_PARALLEL=m CONFIG_LIRC_SASEM=m CONFIG_LIRC_SIR=m CONFIG_LIRC_ZILOG=m @@ -7468,13 +7552,6 @@ CONFIG_AIM_V4L2=m CONFIG_HDM_DIM2=m CONFIG_HDM_I2C=m CONFIG_HDM_USB=m - -# -# Old ISDN4Linux (deprecated) -# -CONFIG_ISDN_DRV_ICN=m -CONFIG_ISDN_DRV_PCBIT=m -CONFIG_ISDN_DRV_ACT2000=m CONFIG_KS7010=m # CONFIG_GREYBUS is not set CONFIG_X86_PLATFORM_DEVICES=y @@ -7529,7 +7606,6 @@ CONFIG_INTEL_HID_EVENT=m CONFIG_INTEL_VBTN=m CONFIG_INTEL_SCU_IPC=y CONFIG_INTEL_SCU_IPC_UTIL=m -CONFIG_GPIO_INTEL_PMIC=y CONFIG_INTEL_MID_POWER_BUTTON=m CONFIG_INTEL_MFLD_THERMAL=m CONFIG_INTEL_IPS=m @@ -7549,6 +7625,8 @@ CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SURFACE_3_BUTTON=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_MLX_CPLD_PLATFORM=m +# CONFIG_SILEAD_DMI is not set +CONFIG_PMC_ATOM=y CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m @@ -7574,13 +7652,6 @@ CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set -# CONFIG_COMMON_CLK_MT2701 is not set -# CONFIG_COMMON_CLK_MT2701_MMSYS is not set -# CONFIG_COMMON_CLK_MT2701_IMGSYS is not set -# CONFIG_COMMON_CLK_MT2701_VDECSYS is not set -# CONFIG_COMMON_CLK_MT2701_HIFSYS is not set -# CONFIG_COMMON_CLK_MT2701_ETHSYS is not set -# CONFIG_COMMON_CLK_MT2701_BDPSYS is not set # # Hardware Spinlock drivers @@ -7633,6 +7704,7 @@ CONFIG_REMOTEPROC=m # # CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y +# CONFIG_SOC_ZTE is not set CONFIG_PM_DEVFREQ=y # @@ -7657,6 +7729,7 @@ CONFIG_EXTCON_ADC_JACK=m CONFIG_EXTCON_ARIZONA=m CONFIG_EXTCON_AXP288=m CONFIG_EXTCON_GPIO=m +CONFIG_EXTCON_INTEL_INT3496=m CONFIG_EXTCON_MAX14577=m CONFIG_EXTCON_MAX3355=m CONFIG_EXTCON_MAX77693=m @@ -7733,10 +7806,12 @@ CONFIG_AXP288_ADC=m CONFIG_CC10001_ADC=m CONFIG_DA9150_GPADC=m CONFIG_HI8435=m +CONFIG_HX711=m CONFIG_INA2XX_ADC=m CONFIG_LP8788_ADC=m CONFIG_LTC2485=m CONFIG_MAX1027=m +CONFIG_MAX11100=m CONFIG_MAX1363=m CONFIG_MCP320X=m CONFIG_MCP3422=m @@ -7752,7 +7827,9 @@ CONFIG_TI_ADC12138=m CONFIG_TI_ADC128S052=m CONFIG_TI_ADC161S626=m CONFIG_TI_ADS1015=m +CONFIG_TI_ADS7950=m CONFIG_TI_AM335X_ADC=m +CONFIG_TI_TLC4541=m CONFIG_TWL4030_MADC=m CONFIG_TWL6030_GPADC=m CONFIG_VIPERBOARD_ADC=m @@ -7852,6 +7929,8 @@ CONFIG_BMG160=m CONFIG_BMG160_I2C=m CONFIG_BMG160_SPI=m CONFIG_HID_SENSOR_GYRO_3D=m +CONFIG_MPU3050=m +CONFIG_MPU3050_I2C=m CONFIG_IIO_ST_GYRO_3AXIS=m CONFIG_IIO_ST_GYRO_I2C_3AXIS=m CONFIG_IIO_ST_GYRO_SPI_3AXIS=m @@ -7893,6 +7972,9 @@ CONFIG_KMX61=m CONFIG_INV_MPU6050_IIO=m CONFIG_INV_MPU6050_I2C=m CONFIG_INV_MPU6050_SPI=m +CONFIG_IIO_ST_LSM6DSX=m +CONFIG_IIO_ST_LSM6DSX_I2C=m +CONFIG_IIO_ST_LSM6DSX_SPI=m CONFIG_IIO_ADIS_LIB=m CONFIG_IIO_ADIS_LIB_BUFFER=y @@ -7969,6 +8051,7 @@ CONFIG_IIO_SYSFS_TRIGGER=m # Digital potentiometers # CONFIG_DS1803=m +CONFIG_MAX5481=m CONFIG_MAX5487=m CONFIG_MCP4131=m CONFIG_MCP4531=m @@ -7986,6 +8069,7 @@ CONFIG_ABP060MG=m CONFIG_BMP280=m CONFIG_BMP280_I2C=m CONFIG_BMP280_SPI=m +CONFIG_IIO_CROS_EC_BARO=m CONFIG_HID_SENSOR_PRESS=m CONFIG_HP03=m CONFIG_MPL115=m @@ -8011,10 +8095,11 @@ CONFIG_ZPA2326_SPI=m CONFIG_AS3935=m # -# Proximity sensors +# Proximity and distance sensors # CONFIG_LIDAR_LITE_V2=m CONFIG_SX9500=m +CONFIG_SRF08=m # # Temperature sensors @@ -8022,6 +8107,7 @@ CONFIG_SX9500=m CONFIG_MAXIM_THERMOCOUPLE=m CONFIG_MLX90614=m CONFIG_TMP006=m +CONFIG_TMP007=m CONFIG_TSYS01=m CONFIG_TSYS02D=m CONFIG_NTB=m @@ -8092,6 +8178,8 @@ CONFIG_PHY_SAMSUNG_USB2=m # CONFIG_PHY_EXYNOS4210_USB2 is not set # CONFIG_PHY_EXYNOS4X12_USB2 is not set # CONFIG_PHY_EXYNOS5250_USB2 is not set +CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_TUSB1210=m CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m @@ -8137,10 +8225,14 @@ CONFIG_INTEL_TH_PTI=m # CONFIG_FPGA=m +# +# FSI support +# +# CONFIG_FSI is not set + # # Firmware Drivers # -# CONFIG_ARM_SCPI_PROTOCOL is not set CONFIG_EDD=y CONFIG_EDD_OFF=y CONFIG_FIRMWARE_MEMMAP=y @@ -8554,6 +8646,7 @@ CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_DEBUG_KERNEL=y # @@ -8563,6 +8656,7 @@ CONFIG_PAGE_EXTENSION=y # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set +# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -8570,6 +8664,7 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_VM is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_MEMORY_INIT is not set CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m @@ -8602,7 +8697,6 @@ CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y CONFIG_SCHED_STACK_END_CHECK=y # CONFIG_DEBUG_TIMEKEEPING is not set -CONFIG_TIMER_STATS=y # # Lock Debugging (spinlocks, mutexes, etc...) @@ -8617,6 +8711,7 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_LOCK_TORTURE_TEST=m +CONFIG_WW_MUTEX_SELFTEST=m CONFIG_STACKTRACE=y # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -8677,8 +8772,8 @@ CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ALL_BRANCHES is not set CONFIG_STACK_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_KPROBE_EVENT=y -CONFIG_UPROBE_EVENT=y +CONFIG_KPROBE_EVENTS=y +# CONFIG_UPROBE_EVENTS is not set CONFIG_BPF_EVENTS=y CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y @@ -8700,6 +8795,7 @@ CONFIG_TRACING_EVENTS_GPIO=y # # CONFIG_LKDTM is not set # CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_SORT is not set # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_RBTREE_TEST=m @@ -8715,6 +8811,7 @@ CONFIG_TEST_BITMAP=m CONFIG_TEST_UUID=m # CONFIG_TEST_RHASHTABLE is not set CONFIG_TEST_HASH=m +CONFIG_TEST_PARMAN=m # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set CONFIG_TEST_LKM=m @@ -8748,10 +8845,7 @@ CONFIG_EARLY_PRINTK_EFI=y # CONFIG_X86_PTDUMP_CORE is not set # CONFIG_X86_PTDUMP is not set # CONFIG_EFI_PGT_DUMP is not set -# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_WX is not set -CONFIG_DEBUG_SET_MODULE_RONX=y -# CONFIG_DEBUG_NX_TEST is not set CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_STRESS is not set @@ -8795,6 +8889,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y CONFIG_HARDENED_USERCOPY=y # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set +# CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 @@ -8816,6 +8911,7 @@ CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y +# CONFIG_SECURITY_APPARMOR_DEBUG is not set # CONFIG_SECURITY_LOADPIN is not set CONFIG_SECURITY_YAMA=y CONFIG_INTEGRITY=y @@ -8897,6 +8993,7 @@ CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_ABLK_HELPER=m CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m +CONFIG_CRYPTO_ENGINE=m # # Authenticated Encryption with Associated Data @@ -8955,6 +9052,7 @@ CONFIG_CRYPTO_WP512=m # Ciphers # CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_TI=m CONFIG_CRYPTO_AES_586=m CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m @@ -9133,6 +9231,8 @@ CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y +# CONFIG_DMA_NOOP_OPS is not set +CONFIG_DMA_VIRT_OPS=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y CONFIG_DQL=y @@ -9157,3 +9257,4 @@ CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_MMIO_FLUSH=y CONFIG_SBITMAP=y +CONFIG_PARMAN=m diff --git a/gnu/packages/aux-files/linux-libre/4.10-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.11-x86_64.conf similarity index 98% rename from gnu/packages/aux-files/linux-libre/4.10-x86_64.conf rename to gnu/packages/aux-files/linux-libre/4.11-x86_64.conf index c5d8fe1da0..d47a5d1226 100644 --- a/gnu/packages/aux-files/linux-libre/4.10-x86_64.conf +++ b/gnu/packages/aux-files/linux-libre/4.11-x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.10.0-gnu Kernel Configuration +# Linux/x86 4.11.0-gnu Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -41,7 +41,6 @@ CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y -CONFIG_DEBUG_RODATA=y CONFIG_PGTABLE_LEVELS=4 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y @@ -139,12 +138,11 @@ CONFIG_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y # CONFIG_TREE_RCU_TRACE is not set -# CONFIG_RCU_EXPEDITE_BOOT is not set CONFIG_BUILD_BIN2C=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -CONFIG_NMI_LOG_BUF_SHIFT=13 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y @@ -164,6 +162,7 @@ CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set CONFIG_CGROUP_PIDS=y +# CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y CONFIG_CPUSETS=y @@ -232,6 +231,7 @@ CONFIG_PCI_QUIRKS=y CONFIG_MEMBARRIER=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set # # Kernel Performance Events And Counters @@ -240,6 +240,7 @@ CONFIG_PERF_EVENTS=y # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_MEMCG_SYSFS_ON is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y @@ -259,7 +260,7 @@ CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y -CONFIG_UPROBES=y +# CONFIG_UPROBES is not set # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y @@ -274,6 +275,7 @@ CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y @@ -297,6 +299,7 @@ CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set +# CONFIG_GCC_PLUGIN_STRUCTLEAK is not set CONFIG_HAVE_CC_STACKPROTECTOR=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set @@ -307,6 +310,7 @@ CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_MODULES_USE_ELF_RELA=y @@ -326,6 +330,12 @@ CONFIG_COMPAT_OLD_SIGACTION=y # CONFIG_CPU_NO_EFFICIENT_FFS is not set CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y # # GCOV-based kernel profiling @@ -346,6 +356,7 @@ CONFIG_MODULE_SRCVERSION_ALL=y # CONFIG_MODULE_COMPRESS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y +CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y @@ -355,6 +366,8 @@ CONFIG_BLK_CMDLINE_PARSER=y CONFIG_BLK_WBT=y # CONFIG_BLK_WBT_SQ is not set CONFIG_BLK_WBT_MQ=y +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set # # Partition Types @@ -382,6 +395,7 @@ CONFIG_SYSV68_PARTITION=y CONFIG_CMDLINE_PARTITION=y CONFIG_BLOCK_COMPAT=y CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y # # IO Schedulers @@ -394,6 +408,7 @@ CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_MQ_IOSCHED_DEADLINE=m CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y @@ -729,7 +744,6 @@ CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set @@ -787,6 +801,7 @@ CONFIG_PCIEASPM=y CONFIG_PCIEASPM_DEBUG=y CONFIG_PCIEASPM_DEFAULT=y # CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set # CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y CONFIG_PCIE_DPC=y @@ -814,9 +829,13 @@ CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m CONFIG_HOTPLUG_PCI_SHPC=m # -# PCI host controller drivers +# DesignWare PCI Core Support # # CONFIG_PCIE_DW_PLAT is not set + +# +# PCI host controller drivers +# # CONFIG_VMD is not set # CONFIG_ISA_BUS is not set CONFIG_ISA_DMA_API=y @@ -878,7 +897,6 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_KEYS_COMPAT=y CONFIG_X86_DEV_DMA_OPS=y -CONFIG_PMC_ATOM=y CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y CONFIG_NET_INGRESS=y @@ -892,6 +910,7 @@ CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m CONFIG_XFRM=y +CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=m CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set @@ -900,6 +919,8 @@ CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m # CONFIG_NET_KEY_MIGRATE is not set +CONFIG_SMC=m +CONFIG_SMC_DIAG=m CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -928,6 +949,7 @@ CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m +CONFIG_INET_ESP_OFFLOAD=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m @@ -966,6 +988,7 @@ CONFIG_IPV6_ROUTE_INFO=y # CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m +CONFIG_INET6_ESP_OFFLOAD=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m CONFIG_IPV6_ILA=m @@ -1059,6 +1082,7 @@ CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_SET_RBTREE=m CONFIG_NFT_SET_HASH=m +CONFIG_NFT_SET_BITMAP=m CONFIG_NFT_COUNTER=m CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m @@ -1391,6 +1415,12 @@ CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y +CONFIG_NET_DSA=m +CONFIG_NET_DSA_TAG_BRCM=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_DSA_TAG_QCA=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y @@ -1491,6 +1521,7 @@ CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_SAMPLE=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m @@ -1532,7 +1563,7 @@ CONFIG_NET_MPLS_GSO=m CONFIG_MPLS_ROUTING=m CONFIG_MPLS_IPTUNNEL=m CONFIG_HSR=m -# CONFIG_NET_SWITCHDEV is not set +CONFIG_NET_SWITCHDEV=y CONFIG_NET_L3_MASTER_DEV=y CONFIG_NET_NCSI=y CONFIG_RPS=y @@ -1774,7 +1805,6 @@ CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_RFKILL=y CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m CONFIG_RFKILL_GPIO=m CONFIG_NET_9P=m CONFIG_NET_9P_VIRTIO=m @@ -1829,9 +1859,12 @@ CONFIG_NFC_NXP_NCI_I2C=m CONFIG_NFC_S3FWRN5=m CONFIG_NFC_S3FWRN5_I2C=m CONFIG_NFC_ST95HF=m +CONFIG_PSAMPLE=m +CONFIG_NET_IFE=m CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y CONFIG_NET_DEVLINK=m CONFIG_MAY_USE_DEVLINK=m CONFIG_HAVE_EBPF_JIT=y @@ -1997,7 +2030,6 @@ CONFIG_MTD_NAND_DOCG4=m CONFIG_MTD_NAND_CAFE=m CONFIG_MTD_NAND_NANDSIM=m CONFIG_MTD_NAND_PLATFORM=m -CONFIG_MTD_NAND_OXNAS=m CONFIG_MTD_NAND_HISI504=m CONFIG_MTD_NAND_MTK=m CONFIG_MTD_ONENAND=m @@ -2014,6 +2046,8 @@ CONFIG_MTD_QINFO_PROBE=m CONFIG_MTD_SPI_NOR=m CONFIG_MTD_MT81xx_NOR=m CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +CONFIG_SPI_INTEL_SPI=m +CONFIG_SPI_INTEL_SPI_PLATFORM=m CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 @@ -2098,6 +2132,7 @@ CONFIG_ATA_OVER_ETH=m CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=y +# CONFIG_VIRTIO_BLK_SCSI is not set # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_RSXX=m @@ -2158,6 +2193,7 @@ CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m CONFIG_EEPROM_93XX46=m +CONFIG_EEPROM_IDT_89HPESX=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y @@ -2355,6 +2391,7 @@ CONFIG_TCM_QLA2XXX=m # CONFIG_TCM_QLA2XXX_DEBUG is not set CONFIG_SCSI_QLA_ISCSI=m CONFIG_QEDI=m +CONFIG_QEDF=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_DC395x=m @@ -2566,6 +2603,7 @@ CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_IPVLAN=m +CONFIG_IPVTAP=m CONFIG_VXLAN=m CONFIG_GENEVE=m CONFIG_GTP=m @@ -2579,6 +2617,7 @@ CONFIG_RIONET=m CONFIG_RIONET_TX_SIZE=128 CONFIG_RIONET_RX_SIZE=128 CONFIG_TUN=y +CONFIG_TAP=m # CONFIG_TUN_VNET_CROSS_LE is not set CONFIG_VETH=m CONFIG_VIRTIO_NET=y @@ -2639,6 +2678,16 @@ CONFIG_CAIF_VIRTIO=m # # Distributed Switch Architecture drivers # +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_BCM_SF2=m +CONFIG_B53=m +CONFIG_B53_SPI_DRIVER=m +CONFIG_B53_MDIO_DRIVER=m +CONFIG_B53_MMAP_DRIVER=m +CONFIG_B53_SRAB_DRIVER=m +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +CONFIG_NET_DSA_QCA8K=m CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y @@ -2665,6 +2714,8 @@ CONFIG_PCMCIA_NMCLAN=m CONFIG_AMD_XGBE=m # CONFIG_AMD_XGBE_DCB is not set CONFIG_AMD_XGBE_HAVE_ECC=y +CONFIG_NET_VENDOR_AQUANTIA=y +CONFIG_AQTION=m CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m @@ -2784,6 +2835,10 @@ CONFIG_MLXSW_CORE_HWMON=y CONFIG_MLXSW_CORE_THERMAL=y CONFIG_MLXSW_PCI=m CONFIG_MLXSW_I2C=m +CONFIG_MLXSW_SWITCHIB=m +CONFIG_MLXSW_SWITCHX2=m +CONFIG_MLXSW_SPECTRUM=m +CONFIG_MLXSW_SPECTRUM_DCB=y CONFIG_MLXSW_MINIMAL=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m @@ -2802,8 +2857,8 @@ CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_NETRONOME=y -CONFIG_NFP_NETVF=m -# CONFIG_NFP_NET_DEBUG is not set +CONFIG_NFP=m +# CONFIG_NFP_DEBUG is not set CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=m CONFIG_NE2K_PCI=m @@ -2829,6 +2884,7 @@ CONFIG_QED_SRIOV=y CONFIG_QEDE=m CONFIG_QED_RDMA=y CONFIG_QED_ISCSI=y +CONFIG_QED_FCOE=y CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_QCOM_EMAC=m CONFIG_NET_VENDOR_REALTEK=y @@ -2844,6 +2900,7 @@ CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_ROCKER=y +CONFIG_ROCKER=m CONFIG_NET_VENDOR_SAMSUNG=y CONFIG_SXGBE_ETH=m CONFIG_NET_VENDOR_SEEQ=y @@ -2876,7 +2933,6 @@ CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m CONFIG_CASSINI=m CONFIG_NIU=m -CONFIG_NET_VENDOR_SYNOPSYS=y CONFIG_NET_VENDOR_TEHUTI=y CONFIG_TEHUTI=m CONFIG_NET_VENDOR_TI=y @@ -3022,6 +3078,7 @@ CONFIG_ATH5K=m CONFIG_ATH5K_PCI=y CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_COMMON_DEBUG=y CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K=m CONFIG_ATH9K_PCI=y @@ -3431,7 +3488,6 @@ CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m CONFIG_NVM=y # CONFIG_NVM_DEBUG is not set -CONFIG_NVM_GENNVM=m CONFIG_NVM_RRPC=m # @@ -3482,6 +3538,7 @@ CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_SAMSUNG=m CONFIG_KEYBOARD_STOWAWAY=m CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_TM2_TOUCHKEY=m CONFIG_KEYBOARD_TWL4030=m CONFIG_KEYBOARD_XTKBD=m CONFIG_KEYBOARD_CROS_EC=m @@ -3638,6 +3695,7 @@ CONFIG_TOUCHSCREEN_SUR40=m CONFIG_TOUCHSCREEN_SURFACE3_SPI=m CONFIG_TOUCHSCREEN_SX8654=m CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_ZET6223=m CONFIG_TOUCHSCREEN_ZFORCE=m CONFIG_TOUCHSCREEN_ROHM_BU21023=m CONFIG_INPUT_MISC=y @@ -3655,7 +3713,6 @@ CONFIG_INPUT_MAX8925_ONKEY=m CONFIG_INPUT_MAX8997_HAPTIC=m CONFIG_INPUT_MC13783_PWRBUTTON=m CONFIG_INPUT_MMA8450=m -CONFIG_INPUT_MPU3050=m CONFIG_INPUT_APANEL=m CONFIG_INPUT_GP2A=m CONFIG_INPUT_GPIO_BEEPER=m @@ -3703,7 +3760,8 @@ CONFIG_RMI4_CORE=m CONFIG_RMI4_I2C=m CONFIG_RMI4_SPI=m CONFIG_RMI4_SMB=m -# CONFIG_RMI4_F03 is not set +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=m CONFIG_RMI4_2D_SENSOR=y CONFIG_RMI4_F11=y CONFIG_RMI4_F12=y @@ -3777,6 +3835,7 @@ CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=m CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=48 CONFIG_SERIAL_8250_RUNTIME_UARTS=32 @@ -3820,6 +3879,8 @@ CONFIG_SERIAL_RP2=m CONFIG_SERIAL_RP2_NR_UARTS=32 CONFIG_SERIAL_FSL_LPUART=m CONFIG_SERIAL_MEN_Z135=m +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_TTY_PRINTK=y CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set @@ -4050,6 +4111,7 @@ CONFIG_PTP_1588_CLOCK=m # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. # +CONFIG_PTP_1588_CLOCK_KVM=m CONFIG_PINCTRL=y # @@ -4065,6 +4127,7 @@ CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m CONFIG_PINCTRL_BROXTON=m +CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_GPIOLIB=y CONFIG_GPIO_ACPI=y @@ -4080,6 +4143,7 @@ CONFIG_GPIO_MAX730X=m CONFIG_GPIO_AMDPT=m CONFIG_GPIO_AXP209=m CONFIG_GPIO_DWAPB=m +CONFIG_GPIO_EXAR=m CONFIG_GPIO_GENERIC_PLATFORM=m CONFIG_GPIO_ICH=m CONFIG_GPIO_LYNXPOINT=y @@ -4139,6 +4203,7 @@ CONFIG_GPIO_WM8994=m # CONFIG_GPIO_AMD8111=m CONFIG_GPIO_ML_IOH=m +CONFIG_GPIO_PCI_IDIO_16=m CONFIG_GPIO_RDC321X=m # @@ -4173,6 +4238,7 @@ CONFIG_W1_MASTER_GPIO=m # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2405=m CONFIG_W1_SLAVE_DS2408=m CONFIG_W1_SLAVE_DS2408_READBACK=y CONFIG_W1_SLAVE_DS2413=m @@ -4204,6 +4270,7 @@ CONFIG_BATTERY_DS2780=m CONFIG_BATTERY_DS2781=m CONFIG_BATTERY_DS2782=m CONFIG_BATTERY_SBS=m +CONFIG_CHARGER_SBS=m CONFIG_BATTERY_BQ27XXX=m CONFIG_BATTERY_BQ27XXX_I2C=m CONFIG_BATTERY_DA9030=m @@ -4377,6 +4444,7 @@ CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_STTS751=m CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_ADC128D818=m CONFIG_SENSORS_ADS1015=m @@ -4503,6 +4571,7 @@ CONFIG_MACHZ_WDT=m CONFIG_SBC_EPX_C3_WATCHDOG=m CONFIG_INTEL_MEI_WDT=m CONFIG_NI903X_WDT=m +CONFIG_NIC7018_WDT=m CONFIG_MEN_A21_WDT=m CONFIG_XEN_WDT=m @@ -4819,6 +4888,7 @@ CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m +CONFIG_IR_SPI=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m CONFIG_IR_IGORPLUGUSB=m @@ -4904,7 +4974,6 @@ CONFIG_VIDEO_PVRUSB2_DVB=y CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_USBVISION=m CONFIG_VIDEO_STK1160_COMMON=m -CONFIG_VIDEO_STK1160_AC97=y CONFIG_VIDEO_STK1160=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m @@ -4969,6 +5038,7 @@ CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_MXL111SF=m CONFIG_DVB_USB_RTL28XXU=m CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_USB_ZD1301=m CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_SMS_USB_DRV=m @@ -5019,6 +5089,7 @@ CONFIG_VIDEO_ZORAN_AVS6EYES=m # Media capture/analog TV support # CONFIG_VIDEO_IVTV=m +# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set CONFIG_VIDEO_IVTV_ALSA=m CONFIG_VIDEO_FB_IVTV=m CONFIG_VIDEO_HEXIUM_GEMINI=m @@ -5369,6 +5440,7 @@ CONFIG_DVB_RTL2832=m CONFIG_DVB_RTL2832_SDR=m CONFIG_DVB_SI2168=m CONFIG_DVB_AS102_FE=m +CONFIG_DVB_ZD1301_DEMOD=m CONFIG_DVB_GP8PSK_FE=m # @@ -5457,11 +5529,13 @@ CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set +# CONFIG_DRM_DEBUG_MM_SELFTEST is not set CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_TTM=m +CONFIG_DRM_VM=y # # I2C encoder or helper chips @@ -5497,6 +5571,7 @@ CONFIG_DRM_I915_USERPTR=y # # CONFIG_DRM_I915_WERROR is not set # CONFIG_DRM_I915_DEBUG is not set +# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set CONFIG_DRM_VGEM=m CONFIG_DRM_VMWGFX=m CONFIG_DRM_VMWGFX_FBCON=y @@ -5523,7 +5598,9 @@ CONFIG_DRM_BRIDGE=y CONFIG_DRM_ANALOGIX_ANX78XX=m CONFIG_HSA_AMD=m CONFIG_DRM_HISI_HIBMC=m +# CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_LEGACY is not set +# CONFIG_DRM_LIB_RANDOM is not set # # Frame buffer Devices @@ -5541,6 +5618,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m CONFIG_FB_DEFERRED_IO=y @@ -5896,7 +5974,7 @@ CONFIG_SND_SOC_FSL_SPDIF=m CONFIG_SND_SOC_FSL_ESAI=m CONFIG_SND_SOC_IMX_AUDMUX=m # CONFIG_SND_SOC_IMG is not set -CONFIG_SND_SST_MFLD_PLATFORM=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m CONFIG_SND_SST_IPC=m CONFIG_SND_SST_IPC_ACPI=m CONFIG_SND_SOC_INTEL_SST=m @@ -5907,6 +5985,7 @@ CONFIG_SND_SOC_INTEL_HASWELL=m CONFIG_SND_SOC_INTEL_HASWELL_MACH=m CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m +CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m @@ -5955,6 +6034,8 @@ CONFIG_SND_SOC_DA7219=m CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_HDMI_CODEC=m CONFIG_SND_SOC_ES8328=m +CONFIG_SND_SOC_ES8328_I2C=m +CONFIG_SND_SOC_ES8328_SPI=m CONFIG_SND_SOC_GTM601=m CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INNO_RK3036=m @@ -5984,7 +6065,8 @@ CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m CONFIG_SND_SOC_RT5651=m CONFIG_SND_SOC_RT5670=m -# CONFIG_SND_SOC_RT5677_SPI is not set +CONFIG_SND_SOC_RT5677=m +CONFIG_SND_SOC_RT5677_SPI=m CONFIG_SND_SOC_SGTL5000=m CONFIG_SND_SOC_SI476X=m CONFIG_SND_SOC_SIGMADSP=m @@ -6030,11 +6112,14 @@ CONFIG_SND_SOC_WM8962=m CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_NAU8540=m CONFIG_SND_SOC_NAU8810=m CONFIG_SND_SOC_NAU8825=m CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SIMPLE_CARD_UTILS=m CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_X86=y +CONFIG_HDMI_LPE_AUDIO=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m @@ -6300,6 +6385,7 @@ CONFIG_USB_CHIPIDEA=m CONFIG_USB_CHIPIDEA_PCI=m CONFIG_USB_CHIPIDEA_UDC=y CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_ULPI=y CONFIG_USB_ISP1760=m CONFIG_USB_ISP1760_HCD=y CONFIG_USB_ISP1761_UDC=y @@ -6377,6 +6463,7 @@ CONFIG_USB_SERIAL_XSENS_MT=m CONFIG_USB_SERIAL_WISHBONE=m CONFIG_USB_SERIAL_SSU100=m CONFIG_USB_SERIAL_QT2=m +CONFIG_USB_SERIAL_UPD78F0730=m CONFIG_USB_SERIAL_DEBUG=m # @@ -6404,6 +6491,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=m CONFIG_USB_ISIGHTFW=m CONFIG_USB_YUREX=m CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HUB_USB251XB=m CONFIG_USB_HSIC_USB3503=m CONFIG_USB_HSIC_USB4604=m CONFIG_USB_LINK_LAYER_TEST=m @@ -6579,6 +6667,7 @@ CONFIG_MEMSTICK_REALTEK_USB=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_CLASS_FLASH=m +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # # LED drivers @@ -6686,6 +6775,7 @@ CONFIG_INFINIBAND_HFI1=m CONFIG_HFI1_VERBS_31BIT_PSN=y # CONFIG_SDMA_VERBOSITY is not set CONFIG_INFINIBAND_QEDR=m +CONFIG_INFINIBAND_BNXT_RE=m CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y @@ -6708,6 +6798,7 @@ CONFIG_EDAC_I5100=m CONFIG_EDAC_I7300=m CONFIG_EDAC_SBRIDGE=m CONFIG_EDAC_SKX=m +CONFIG_EDAC_PND2=m CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y CONFIG_RTC_CLASS=y @@ -7208,9 +7299,6 @@ CONFIG_STAGING_MEDIA=y CONFIG_I2C_BCM2048=m CONFIG_DVB_CXD2099=m CONFIG_LIRC_STAGING=y -CONFIG_LIRC_BT829=m -CONFIG_LIRC_IMON=m -CONFIG_LIRC_PARALLEL=m CONFIG_LIRC_SASEM=m CONFIG_LIRC_SIR=m CONFIG_LIRC_ZILOG=m @@ -7283,10 +7371,6 @@ CONFIG_AIM_V4L2=m CONFIG_HDM_DIM2=m CONFIG_HDM_I2C=m CONFIG_HDM_USB=m - -# -# Old ISDN4Linux (deprecated) -# CONFIG_KS7010=m # CONFIG_GREYBUS is not set CONFIG_X86_PLATFORM_DEVICES=y @@ -7357,6 +7441,9 @@ CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_TELEMETRY=m # CONFIG_MLX_PLATFORM is not set CONFIG_MLX_CPLD_PLATFORM=m +# CONFIG_INTEL_TURBO_MAX_3 is not set +# CONFIG_SILEAD_DMI is not set +CONFIG_PMC_ATOM=y CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m @@ -7382,13 +7469,6 @@ CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set -# CONFIG_COMMON_CLK_MT2701 is not set -# CONFIG_COMMON_CLK_MT2701_MMSYS is not set -# CONFIG_COMMON_CLK_MT2701_IMGSYS is not set -# CONFIG_COMMON_CLK_MT2701_VDECSYS is not set -# CONFIG_COMMON_CLK_MT2701_HIFSYS is not set -# CONFIG_COMMON_CLK_MT2701_ETHSYS is not set -# CONFIG_COMMON_CLK_MT2701_BDPSYS is not set # # Hardware Spinlock drivers @@ -7442,6 +7522,7 @@ CONFIG_REMOTEPROC=m # # CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y +# CONFIG_SOC_ZTE is not set CONFIG_PM_DEVFREQ=y # @@ -7466,6 +7547,7 @@ CONFIG_EXTCON_ADC_JACK=m CONFIG_EXTCON_ARIZONA=m CONFIG_EXTCON_AXP288=m CONFIG_EXTCON_GPIO=m +CONFIG_EXTCON_INTEL_INT3496=m CONFIG_EXTCON_MAX14577=m CONFIG_EXTCON_MAX3355=m CONFIG_EXTCON_MAX77693=m @@ -7542,10 +7624,12 @@ CONFIG_AXP288_ADC=m CONFIG_CC10001_ADC=m CONFIG_DA9150_GPADC=m CONFIG_HI8435=m +CONFIG_HX711=m CONFIG_INA2XX_ADC=m CONFIG_LP8788_ADC=m CONFIG_LTC2485=m CONFIG_MAX1027=m +CONFIG_MAX11100=m CONFIG_MAX1363=m CONFIG_MCP320X=m CONFIG_MCP3422=m @@ -7560,7 +7644,9 @@ CONFIG_TI_ADC12138=m CONFIG_TI_ADC128S052=m CONFIG_TI_ADC161S626=m CONFIG_TI_ADS1015=m +CONFIG_TI_ADS7950=m CONFIG_TI_AM335X_ADC=m +CONFIG_TI_TLC4541=m CONFIG_TWL4030_MADC=m CONFIG_TWL6030_GPADC=m CONFIG_VIPERBOARD_ADC=m @@ -7658,6 +7744,8 @@ CONFIG_BMG160=m CONFIG_BMG160_I2C=m CONFIG_BMG160_SPI=m CONFIG_HID_SENSOR_GYRO_3D=m +CONFIG_MPU3050=m +CONFIG_MPU3050_I2C=m CONFIG_IIO_ST_GYRO_3AXIS=m CONFIG_IIO_ST_GYRO_I2C_3AXIS=m CONFIG_IIO_ST_GYRO_SPI_3AXIS=m @@ -7699,6 +7787,9 @@ CONFIG_KMX61=m CONFIG_INV_MPU6050_IIO=m CONFIG_INV_MPU6050_I2C=m CONFIG_INV_MPU6050_SPI=m +CONFIG_IIO_ST_LSM6DSX=m +CONFIG_IIO_ST_LSM6DSX_I2C=m +CONFIG_IIO_ST_LSM6DSX_SPI=m CONFIG_IIO_ADIS_LIB=m CONFIG_IIO_ADIS_LIB_BUFFER=y @@ -7775,6 +7866,7 @@ CONFIG_IIO_SYSFS_TRIGGER=m # Digital potentiometers # CONFIG_DS1803=m +CONFIG_MAX5481=m CONFIG_MAX5487=m CONFIG_MCP4131=m CONFIG_MCP4531=m @@ -7792,6 +7884,7 @@ CONFIG_ABP060MG=m CONFIG_BMP280=m CONFIG_BMP280_I2C=m CONFIG_BMP280_SPI=m +CONFIG_IIO_CROS_EC_BARO=m CONFIG_HID_SENSOR_PRESS=m CONFIG_HP03=m CONFIG_MPL115=m @@ -7817,10 +7910,11 @@ CONFIG_ZPA2326_SPI=m CONFIG_AS3935=m # -# Proximity sensors +# Proximity and distance sensors # CONFIG_LIDAR_LITE_V2=m CONFIG_SX9500=m +CONFIG_SRF08=m # # Temperature sensors @@ -7828,6 +7922,7 @@ CONFIG_SX9500=m CONFIG_MAXIM_THERMOCOUPLE=m CONFIG_MLX90614=m CONFIG_TMP006=m +CONFIG_TMP007=m CONFIG_TSYS01=m CONFIG_TSYS02D=m CONFIG_NTB=m @@ -7900,6 +7995,8 @@ CONFIG_PHY_SAMSUNG_USB2=m # CONFIG_PHY_EXYNOS4210_USB2 is not set # CONFIG_PHY_EXYNOS4X12_USB2 is not set # CONFIG_PHY_EXYNOS5250_USB2 is not set +CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_TUSB1210=m CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m @@ -7949,10 +8046,14 @@ CONFIG_INTEL_TH_PTI=m # CONFIG_FPGA=m +# +# FSI support +# +# CONFIG_FSI is not set + # # Firmware Drivers # -# CONFIG_ARM_SCPI_PROTOCOL is not set CONFIG_EDD=y CONFIG_EDD_OFF=y CONFIG_FIRMWARE_MEMMAP=y @@ -8370,6 +8471,7 @@ CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_DEBUG_KERNEL=y # @@ -8379,6 +8481,7 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set +# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -8386,6 +8489,7 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_VM is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_MEMORY_INIT is not set CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m @@ -8421,7 +8525,6 @@ CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y CONFIG_SCHED_STACK_END_CHECK=y # CONFIG_DEBUG_TIMEKEEPING is not set -CONFIG_TIMER_STATS=y # # Lock Debugging (spinlocks, mutexes, etc...) @@ -8436,6 +8539,7 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_LOCK_TORTURE_TEST=m +CONFIG_WW_MUTEX_SELFTEST=m CONFIG_STACKTRACE=y # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -8497,8 +8601,8 @@ CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ALL_BRANCHES is not set CONFIG_STACK_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_KPROBE_EVENT=y -CONFIG_UPROBE_EVENT=y +CONFIG_KPROBE_EVENTS=y +# CONFIG_UPROBE_EVENTS is not set CONFIG_BPF_EVENTS=y CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y @@ -8520,6 +8624,7 @@ CONFIG_TRACING_EVENTS_GPIO=y # # CONFIG_LKDTM is not set # CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_SORT is not set # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_RBTREE_TEST=m @@ -8535,6 +8640,7 @@ CONFIG_TEST_BITMAP=m CONFIG_TEST_UUID=m # CONFIG_TEST_RHASHTABLE is not set CONFIG_TEST_HASH=m +CONFIG_TEST_PARMAN=m # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set CONFIG_TEST_LKM=m @@ -8568,10 +8674,7 @@ CONFIG_EARLY_PRINTK_EFI=y # CONFIG_X86_PTDUMP_CORE is not set # CONFIG_X86_PTDUMP is not set # CONFIG_EFI_PGT_DUMP is not set -# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_WX is not set -CONFIG_DEBUG_SET_MODULE_RONX=y -# CONFIG_DEBUG_NX_TEST is not set CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_DEBUG is not set @@ -8616,6 +8719,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y CONFIG_HARDENED_USERCOPY=y # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set +# CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 @@ -8637,6 +8741,7 @@ CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y +# CONFIG_SECURITY_APPARMOR_DEBUG is not set # CONFIG_SECURITY_LOADPIN is not set CONFIG_SECURITY_YAMA=y CONFIG_INTEGRITY=y @@ -8718,6 +8823,7 @@ CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_ABLK_HELPER=m CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m +CONFIG_CRYPTO_ENGINE=m # # Authenticated Encryption with Associated Data @@ -8785,6 +8891,7 @@ CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m # Ciphers # CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_TI=m CONFIG_CRYPTO_AES_X86_64=m CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m @@ -8974,6 +9081,8 @@ CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y +# CONFIG_DMA_NOOP_OPS is not set +CONFIG_DMA_VIRT_OPS=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y CONFIG_DQL=y @@ -8999,3 +9108,4 @@ CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_MMIO_FLUSH=y CONFIG_SBITMAP=y +CONFIG_PARMAN=m diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f4bbd98912..66fb328a3a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -353,8 +353,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.10.13") -(define %linux-libre-hash "0sl3w4id3amahv42xg2ac0lqhxn5dih2vm7wyxnfja4c3g4hshn4") +(define %linux-libre-version "4.11") +(define %linux-libre-hash "0j1bzzq9iq5i1zm7gnig8v0clr8wq303kvcdsaifc0r0ggz1mx1n") (define-public linux-libre (make-linux-libre %linux-libre-version From f3f8d159c3e4b30861bbd3082bc422bb80b5b823 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 1 May 2017 11:55:20 +0200 Subject: [PATCH 018/386] gnu: Add python-oauth2client. * gnu/packages/python.scm (python-oauth2client): New variable. --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e1dfd00547..7fbf44fe97 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14054,3 +14054,29 @@ exception message with a traceback that points to the culprit.") (define-public python2-fudge (package-with-python2 python-fudge)) + +(define-public python-oauth2client + (package + (name "python-oauth2client") + (version "4.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "oauth2client" version)) + (sha256 + (base32 + "1irqqap2zibysf8dba8sklfqikia579srd0phm5n754ni0h59gl0")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs + `(("python-httplib2" ,python-httplib2) + ("python-pyasn1" ,python-pyasn1) + ("python-pyasn1-modules" ,python-pyasn1-modules) + ("python-rsa" ,python-rsa) + ("python-six" ,python-six))) + (home-page "http://github.com/google/oauth2client/") + (synopsis "OAuth 2.0 client library") + (description "@code{python-oauth2client} provides an OAuth 2.0 client +library for Python") + (license license:asl2.0))) From 6e7302e93ba336d9810bbe9c50ee5b2fedf19809 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 1 May 2017 12:01:43 +0200 Subject: [PATCH 019/386] gnu: Add python-flask-oidc. Fixes . * gnu/packages/python.scm (python-flask-oidc): New variable. --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7fbf44fe97..5df679935f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14080,3 +14080,29 @@ exception message with a traceback that points to the culprit.") (description "@code{python-oauth2client} provides an OAuth 2.0 client library for Python") (license license:asl2.0))) + +(define-public python-flask-oidc + (package + (name "python-flask-oidc") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-oidc" version)) + (sha256 + (base32 + "1ay5j0mf174bix7i67hclr95gv16z81fpx0dijvi0gydvdj3ddy2")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-itsdangerous" ,python-itsdangerous) + ("python-oauth2client" ,python-oauth2client) + ("python-six" ,python-six))) + (native-inputs + `(("python-nose" ,python-nose) + ("python-mock" ,python-mock))) + (home-page "https://github.com/puiterwijk/flask-oidc") + (synopsis "OpenID Connect extension for Flask") + (description "@code{python-flask-oidc} provides an OpenID Connect extension +for Flask.") + (license license:bsd-2))) From ee3401d0186f68f91ef4455e8e1df8a477a2c26a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 1 May 2017 22:26:44 -0400 Subject: [PATCH 020/386] 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 | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index d60b53828b..3865cf83b0 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -487,7 +487,21 @@ standards.") (mozilla-patch "icecat-CVE-2017-5459.patch" "5ec6fbedb420" "07flhha4rkjbry5590yr5by36ypb1k33qm3rzkbmw0vk5gyak8dp") (mozilla-patch "icecat-CVE-2017-5465.patch" "2b95de78a92c" "0vvq1fz84yyw7za929x6ki25paivlwd4ng1ddkcb2bw6da6yp12k") (mozilla-patch "icecat-CVE-2017-5466.patch" "a5ec5e70abf1" "1jjviyk6db8iccd7997mwmgs188fsyrzivap3ffjf8m6j4mf9cra") - (mozilla-patch "icecat-bug-1347646.patch" "1b50711a46ce" "1i3505zzgf0mvg2405y2gzq36xc8ic2ga8w6d3n9kqryxj0mc7bh"))) + (mozilla-patch "icecat-bug-1347646.patch" "1b50711a46ce" "1i3505zzgf0mvg2405y2gzq36xc8ic2ga8w6d3n9kqryxj0mc7bh") + (mozilla-patch "icecat-bug-1344558.patch" "4147826407e8" "1hgyq21r4qphlvnhvlwbwy4mb2kjalnmksg4fnqbwcb478vb75z2") + (mozilla-patch "icecat-bug-1340718.patch" "3aae8d906162" "033d0j54z2lmkmkyiwjdqd5ddpi5mz52qb16f8aj85h0d5hz7aq0") + (mozilla-patch "icecat-bug-1322112.patch" "01f58e0bfe9d" "0ghm4y5ayr50klq443ffpa8gjphh8ywbil1phzx0bxmnn5d21gb5") + (mozilla-patch "icecat-bug-1339782.patch" "584b974b9913" "1vbya8vanla7y7g7058193pd5mrds9ps879i7ng91n929n86dfsa") + (mozilla-patch "icecat-bug-1335992.patch" "fe579c64db03" "0cvdsl9kkhmgdii45bqnzxvljvfaj769zai6h9pqw49k6wd5xyqa") + (mozilla-patch "icecat-bug-1330012.patch" "31630bd9db47" "18y86fc1bmpfkz1vx73i620z8h586za40i80mj5507szqian9pdp") + (mozilla-patch "icecat-bug-1343446.patch" "29121ef13331" "1j1wkm8gfri897kmpvncr7dn6nfn864kk4km7dknprvh458wdkws") + (mozilla-patch "icecat-bug-1344265.patch" "405bba2d38b1" "0qdf7d3wrickfga30bz1pky8rpycgr69dc2n858bm30qk7yxhv1x") + (mozilla-patch "icecat-bug-1346392.patch" "955ee0340ab7" "0hghj38qqmh4qpr6c60689za3fl59f56yjajdpxn75hmab7b35r2") + (mozilla-patch "icecat-bug-1356292.patch" "04e42829d115" "1lfvki38k7svlc2abis2nbr4773bwnn7x8gbnc19v6csc93z2ijq") + (mozilla-patch "icecat-bug-1354294-pt1.patch" "9e17e0266d21" "1iwnkaxyx6ph6bsy0y3bllmc63f4322pbm7zllaxrsy443g7iixa") + (mozilla-patch "icecat-bug-1354294-pt2.patch" "3ea0e0752031" "0v2aa78g540lwqsc95cchydg1wjy4c04ldnrcccav3dgqlz14l7v") + (mozilla-patch "icecat-bug-1342366.patch" "fb43f6690a26" "1vnkjpq2bcqwzmjkgyqv8wj0ndrrsyix3qy1rsb5is6pjmi9sbaa") + (mozilla-patch "icecat-bug-1343818.patch" "90f870bbec29" "0mbki955f71n4yr9p0yc7kh5jwq7vs4bs4rhaazdncirbr564hm6"))) (modules '((guix build utils))) (snippet '(begin From bedba064267490f2d9f7ee44e5ec103aacc82611 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 2 May 2017 03:39:23 -0400 Subject: [PATCH 021/386] Add package/inherit. * guix/packages.scm (package/inherit): New public macro. --- guix/packages.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/guix/packages.scm b/guix/packages.scm index 44f2c32fb7..8ead950739 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2017 Mark H Weaver ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2016 Alex Kost ;;; @@ -105,6 +105,7 @@ package-cross-derivation package-output package-grafts + package/inherit transitive-input-references @@ -789,6 +790,16 @@ package and returns its new name after rewrite." (package-mapping rewrite (cut assq <> replacements))) +(define-syntax-rule (package/inherit p overrides ...) + "Like (package (inherit P) OVERRIDES ...), except that the same +transformation is done to the package replacement, if any. P must be a bare +identifier, and will be bound to either P or its replacement when evaluating +OVERRIDES." + (let loop ((p p)) + (package (inherit p) + overrides ... + (replacement (and=> (package-replacement p) loop))))) + ;;; ;;; Package derivations. From 7020a6ab8b8678e148d01814fa8c750743681c4e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 2 May 2017 03:41:24 -0400 Subject: [PATCH 022/386] gnu: ghostscript: Fix grafting of ghostscript/x and ghostscript/cups. * gnu/packages/cups.scm (ghostscript/cups): Use package/inherit. * gnu/packages/ghostscript.scm (ghostscript/x): Use package/inherit. (ghostscript/fixed)[replacement]: Override to #f. --- gnu/packages/cups.scm | 4 ++-- gnu/packages/ghostscript.scm | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index bbdd89ec08..accfe410ba 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,9 +45,8 @@ ;; Delay to avoid module circularity problems. (define ghostscript/cups (delay - (package (inherit ghostscript) + (package/inherit ghostscript (name "ghostscript-with-cups") - (replacement #f) (inputs `(("cups" ,cups-minimal) ,@(package-inputs ghostscript)))))) diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 5340107f99..4e8736cd71 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge -;;; Copyright © 2014, 2015, 2016 Mark H Weaver +;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2013, 2015, 2016 Ludovic Courtès ;;; Copyright © 2017 Alex Vong @@ -209,8 +209,7 @@ output file formats and printers.") (properties '((upstream-name . "gnu-ghostscript"))))) (define-public ghostscript/x - (package (inherit ghostscript) - (replacement #f) + (package/inherit ghostscript (name (string-append (package-name ghostscript) "-with-x")) (inputs `(("libxext" ,libxext) ("libxt" ,libxt) @@ -219,6 +218,7 @@ output file formats and printers.") (define ghostscript/fixed (package (inherit ghostscript) + (replacement #f) (source (origin (inherit (package-source ghostscript)) From e723178a10223166a31af0f4dc5c2fe116b3992d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 1 May 2017 22:05:29 +0200 Subject: [PATCH 023/386] publish: Use a larger zlib buffer for compression with '--cache'. * guix/scripts/publish.scm (bake-narinfo+nar): Pass #:buffer-size to 'call-with-gzip-output-port'. --- guix/scripts/publish.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index a589f149d3..8864c2ef8b 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -455,7 +455,8 @@ requested using POOL." (call-with-gzip-output-port (open-output-file (string-append nar ".tmp")) (lambda (port) (write-file item port)) - #:level (compression-level compression)) + #:level (compression-level compression) + #:buffer-size (* 128 1024)) (rename-file (string-append nar ".tmp") nar)) ('none ;; When compression is disabled, we retrieve files directly from the From 20832afbf2dacf1ce95ebc30cfd3cce96182ec19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 12:16:09 +0200 Subject: [PATCH 024/386] gnu: emacs-emms: Update to 4.3. * gnu/packages/emacs.scm (emms): Update to 4.3. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4d524ece7a..09353f5067 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -890,14 +890,14 @@ provides an optional IDE-like error list.") (define-public emms (package (name "emacs-emms") - (version "4.2") + (version "4.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz")) (sha256 (base32 - "1xa9y64g5z8gfnxk1c2rf3plfjhqn4r6j8dpiygnfs6w4giysn22")) + "0dicgkl8l83n4cah5vk7c242abbwpyzlih451blgw37f3rijs480")) (modules '((guix build utils))) (snippet '(substitute* "Makefile" From 005375f53bb31ead3fd744b7f926a1b41c5a3e26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 12:17:42 +0200 Subject: [PATCH 025/386] gnu: acct: Update to 6.6.3. * gnu/packages/acct.scm (acct): Update to 6.6.3. --- gnu/packages/acct.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/acct.scm b/gnu/packages/acct.scm index b9bc0161e4..c86713cb35 100644 --- a/gnu/packages/acct.scm +++ b/gnu/packages/acct.scm @@ -25,7 +25,7 @@ (define-public acct (package (name "acct") - (version "6.6.2") + (version "6.6.3") (source (origin (method url-fetch) @@ -33,7 +33,7 @@ version ".tar.gz")) (sha256 (base32 - "0081hzkcxw9aslpsakridj15m0wbnkdhm210fzbg021vi4pppm4f")))) + "14x0zklwlg7cc7amlyzffqr8az3fqj1h9dyj0hvl1kpi7cr7kbjy")))) (build-system gnu-build-system) (home-page "https://gnu.org/software/acct/") (synopsis "Standard login and process accounting utilities") From ebc4b6e0cf1b2031a10b0dac0b257afc037930d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 12:18:36 +0200 Subject: [PATCH 026/386] gnu: less: Update to 487. * gnu/packages/less.scm (less): Update to 487. --- gnu/packages/less.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/less.scm b/gnu/packages/less.scm index efdf8ab0c4..0aa4665840 100644 --- a/gnu/packages/less.scm +++ b/gnu/packages/less.scm @@ -26,7 +26,7 @@ (define-public less (package (name "less") - (version "481") + (version "487") (source (origin (method url-fetch) @@ -34,7 +34,7 @@ version ".tar.gz")) (sha256 (base32 - "19fxj0h10y5bhr3a1xa7kqvnwl44db3sdypz8jxl1q79yln8z8rz")))) + "01i7n6jaxwmww3pasy3hg38zc6x7jw0w05mqqvh6caqbrdaq9p7k")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) (home-page "https://www.gnu.org/software/less/") From 5c6b6827e987450d8bcc149d2fa47296b7c8414b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 12:19:55 +0200 Subject: [PATCH 027/386] gnu: libiconv: Update to 1.15. * gnu/packages/base.scm (libiconv): Update to 1.15. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index e896dbe2e1..59a9acd67e 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1140,14 +1140,14 @@ and daylight-saving rules.") (define-public libiconv (package (name "libiconv") - (version "1.14") + (version "1.15") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libiconv/libiconv-" version ".tar.gz")) (sha256 (base32 - "04q6lgl3kglmmhw59igq1n7v3rp1rpkypl366cy1k1yn2znlvckj")) + "0y1ij745r4p48mxq84rax40p10ln7fc7m243p8k8sia519i3dxfc")) (modules '((guix build utils))) (snippet ;; Work around "declared gets" error on glibc systems (fixed by From 915d7792acc4a4be7d063b55a27fafc4f7cc01d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 12:20:12 +0200 Subject: [PATCH 028/386] gnu: ocrad: Update to 0.26. * gnu/packages/ocr.scm (ocrad): Update to 0.26. --- gnu/packages/ocr.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm index ddae1a7f88..2b67ed1908 100644 --- a/gnu/packages/ocr.scm +++ b/gnu/packages/ocr.scm @@ -28,14 +28,14 @@ (define-public ocrad (package (name "ocrad") - (version "0.25") + (version "0.26") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/ocrad/ocrad-" version ".tar.lz")) (sha256 (base32 - "1m2dblgvvjs48rsglfdwq0ib9zk8h9n34xsh67ibrg0g0ffbw477")))) + "0g4fq7maybdnd1471kd05a3f5sb7spa3d26k706rk85sd5wd70y3")))) (build-system gnu-build-system) (native-inputs `(("lzip" ,lzip))) (home-page "https://www.gnu.org/software/ocrad/") From 1fd0fc0db425b14162a40a04356f113b66c4e5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 12:20:41 +0200 Subject: [PATCH 029/386] gnu: parallel: Update to 20170422. * gnu/packages/parallel.scm (parallel): Update to 20170422. --- gnu/packages/parallel.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 0c40fe933e..66b67eac6d 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -45,7 +45,7 @@ (define-public parallel (package (name "parallel") - (version "20170322") + (version "20170422") (source (origin (method url-fetch) @@ -53,7 +53,7 @@ version ".tar.bz2")) (sha256 (base32 - "1xjk6np0gwa6p5j26camwybx1n0vqz0f0bksi593rgw800211y7q")))) + "0afk1q8mqzz02h6imyykgi9gwk5gj08hzs6lwgd65ilj4slkh93s")))) (build-system gnu-build-system) (arguments `(#:phases From 49f9d7f697d19870f01104cdb6a90a32aea87679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 12:21:31 +0200 Subject: [PATCH 030/386] services: nscd: Create /etc/resolv.conf if it does not exist. * gnu/services/base.scm (nscd-activation): Create /etc/resolv.conf if it does not exist yet. --- gnu/services/base.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 67972bf614..a64faa0d18 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1149,7 +1149,14 @@ the tty to run, among other things." #~(begin (use-modules (guix build utils)) (mkdir-p "/var/run/nscd") - (mkdir-p "/var/db/nscd"))) ;for the persistent cache + (mkdir-p "/var/db/nscd") ;for the persistent cache + + ;; In libc 2.25 nscd uses inotify to watch /etc/resolv.conf, but only if + ;; that file exists when it is started. Thus create it here. + (unless (file-exists? "/etc/resolv.conf") + (call-with-output-file "/etc/resolv.conf" + (lambda (port) + (display "# This is a placeholder.\n" port)))))) (define nscd-service-type (service-type (name 'nscd) From 8a2105078b5845e31768da06b360676352b1f3e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 12:28:23 +0200 Subject: [PATCH 031/386] substitute: Validate substitute URLs. Reported by Maxim Cournoyer at . * guix/scripts/substitute.scm (validate-uri): New procedure. (guix-substitute): Use it. --- guix/scripts/substitute.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 748c334e3c..b4e913a880 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -980,6 +980,10 @@ default value." (and number (max 20 (- number 1)))))) 80)) +(define (validate-uri uri) + (unless (string->uri uri) + (leave (_ "~a: invalid URI~%") uri))) + (define (guix-substitute . args) "Implement the build daemon's substituter protocol." (mkdir-p %narinfo-cache-directory) @@ -1001,6 +1005,9 @@ default value." (newline) (force-output (current-output-port)) + ;; Sanity-check %CACHE-URLS so we can provide a meaningful error message. + (for-each validate-uri %cache-urls) + ;; Attempt to install the client's locale, mostly so that messages are ;; suitably translated. (match (or (find-daemon-option "untrusted-locale") From 693f12ce2326f82020e90e58e69cf2b54808c19b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 15:10:05 +0200 Subject: [PATCH 032/386] build: 'check-system' now depends on the bootstrap Guile tarballs. Reported by Chris Marusich . * gnu/local.mk (BOOTSTRAP_GUILE_TARBALLS): New variable. (DISTCLEANFILES): Define as an alias for 'BOOTSTRAP_GUILE_TARBALLS'. * Makefile.am (check-system): Depend on $(BOOTSTRAP_GUILE_TARBALLS). --- Makefile.am | 2 +- gnu/local.mk | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index 9484ba75aa..c75be9c842 100644 --- a/Makefile.am +++ b/Makefile.am @@ -379,7 +379,7 @@ check-local: endif !CAN_RUN_TESTS -check-system: $(GOBJECTS) +check-system: $(GOBJECTS) $(BOOTSTRAP_GUILE_TARBALLS) $(AM_V_at)$(top_builddir)/pre-inst-env \ $(GUILE) --no-auto-compile \ -e '(@@ (run-system-tests) run-system-tests)' \ diff --git a/gnu/local.mk b/gnu/local.mk index 52000a2c53..28ab73aed3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1087,13 +1087,15 @@ nodist_bootstrap_mips64el_linux_DATA = \ set-bootstrap-executable-permissions: chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz} -DISTCLEANFILES = \ +BOOTSTRAP_GUILE_TARBALLS = \ $(nodist_bootstrap_x86_64_linux_DATA) \ $(nodist_bootstrap_i686_linux_DATA) \ $(nodist_bootstrap_armhf_linux_DATA) \ - $(nodist_bootstrap_aarch64_linux_DATA) \ + $(nodist_bootstrap_aarch64_linux_DATA) \ $(nodist_bootstrap_mips64el_linux_DATA) +DISTCLEANFILES = $(BOOTSTRAP_GUILE_TARBALLS) + # Method to download a file from an external source. DOWNLOAD_FILE = \ GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \ From 4aabc8eaa22314b412d8c5517e05085aa1b38498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 15:43:01 +0200 Subject: [PATCH 033/386] build: Install gnu/build/svg.scm. Fixes a regression introduced in commit 960887b2974ff5c3e63f58a1d89cd8d0dcb5e045. * Makefile.am (MODULES_NOT_COMPILED): New variable. (nobase_dist_guilemodule_DATA): Add $(MODULES_NOT_COMPILED). (EXTRA_DIST): Remove gnu/build/svg.scm. * gnu/local.mk (MODULES_NOT_COMPILED): New variable. --- Makefile.am | 9 ++++++--- gnu/local.mk | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index c75be9c842..426f8327d9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -28,6 +28,10 @@ nodist_noinst_SCRIPTS = \ pre-inst-env \ test-env +# Modules that are not compiled but are installed nonetheless, such as +# build-side modules with unusual dependencies. +MODULES_NOT_COMPILED = + include gnu/local.mk MODULES = \ @@ -222,8 +226,8 @@ EXAMPLES = \ GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go) -nobase_dist_guilemodule_DATA = \ - $(MODULES) $(AUX_FILES) $(EXAMPLES) \ +nobase_dist_guilemodule_DATA = \ + $(MODULES) $(MODULES_NOT_COMPILED) $(AUX_FILES) $(EXAMPLES) \ $(MISC_DISTRO_FILES) nobase_nodist_guilemodule_DATA = guix/config.scm nobase_nodist_guileobject_DATA = $(GOBJECTS) @@ -400,7 +404,6 @@ EXTRA_DIST = \ TODO \ CODE-OF-CONDUCT \ .dir-locals.el \ - gnu/build/svg.scm \ build-aux/build-self.scm \ build-aux/compile-all.scm \ build-aux/hydra/evaluate.scm \ diff --git a/gnu/local.mk b/gnu/local.mk index 28ab73aed3..2017868891 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -475,6 +475,9 @@ GNU_SYSTEM_MODULES = \ %D%/tests/ssh.scm \ %D%/tests/web.scm +# Modules that do not need to be compiled. +MODULES_NOT_COMPILED += \ + %D%/build/svg.scm patchdir = $(guilemoduledir)/%D%/packages/patches dist_patch_DATA = \ From 341ccb0f3be175e01876a961b272b9d7ef862fcc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 2 May 2017 22:24:34 +0300 Subject: [PATCH 034/386] gnu: obs: Update to 18.0.2. * gnu/packages/video.scm (obs): Update to 18.0.2. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e3f9f3672d..33ba9ffb90 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1605,7 +1605,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "18.0.1") + (version "18.0.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/jp9000/obs-studio" @@ -1613,7 +1613,7 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "043f8mfdh4ll0hpivpyg3iniirckwsgri0gzamyrba1yhf2c2ibr")))) + "02pbiyvf5x0zh448h5rpmyn33qnsqk694xxlyns83mdi74savyqw")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no tests From 1aecfe176aa57a4698ddbfebf31bafe17bef412c Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 2 May 2017 09:32:05 +0200 Subject: [PATCH 035/386] gnu: python-pytest-cov: Update to 2.4.0. Fixes . * gnu/packages/python.scm (python-pytest-cov): Update to 2.4.0. --- 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 5df679935f..b7981c7bf0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1843,14 +1843,14 @@ and many external plugins.") (define-public python-pytest-cov (package (name "python-pytest-cov") - (version "2.2.1") + (version "2.4.0") (source (origin (method url-fetch) (uri (pypi-uri "pytest-cov" version)) (sha256 (base32 - "1yl4nbhzfgsxqlsyk4clafgp9x11zvgrkprm9i2p3fgkwx9jxcm8")))) + "03c2qc42r4bczyw93gd7n0qi1h1jfhw7fnbhi33c3vp1hs81gm2k")))) (build-system python-build-system) (arguments `(#:phases From 7e16478f182866664d4e6f6737655169b0b346a1 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 2 May 2017 10:18:49 +0200 Subject: [PATCH 036/386] gnu: Add python-mwclient. Fixes . * gnu/packages/python.scm (python-mwclient, python2-mwclient): New variables. --- gnu/packages/python.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b7981c7bf0..4c7aee20c3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14106,3 +14106,37 @@ library for Python") (description "@code{python-flask-oidc} provides an OpenID Connect extension for Flask.") (license license:bsd-2))) + +(define-public python-mwclient + (package + (name "python-mwclient") + (version "0.8.4") + (source + (origin + (method url-fetch) + ;; The PyPI version wouldn't contain tests. + (uri (string-append "https://github.com/mwclient/mwclient/archive/" + "v" version ".tar.gz")) + (sha256 + (base32 + "1jj0yhilkjir00719fc7w133x7hdyhkxhk6xblla4asig45klsfv")))) + (build-system python-build-system) + (propagated-inputs + `(("python-requests" ,python-requests) + ("python-requests-oauthlib" + ,python-requests-oauthlib) + ("python-six" ,python-six))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-pytest-pep8" ,python-pytest-pep8) + ("python-pytest-cache" ,python-pytest-cache) + ("python-pytest-cov" ,python-pytest-cov) + ("python-responses" ,python-responses))) + (home-page "https://github.com/btongminh/mwclient") + (synopsis "MediaWiki API client") + (description "This package provides a MediaWiki API client.") + (license license:expat))) + +(define-public python2-mwclient + (package-with-python2 python-mwclient)) From 8a1bb37817126819eea288a9c6b639288f78b5a7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 2 May 2017 23:35:24 +0200 Subject: [PATCH 037/386] gnu: hdparm: Update to 9.52. * gnu/packages/linux.scm (hdparm): Update to 9.52. --- 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 66fb328a3a..a5a2ea3e0c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2286,14 +2286,14 @@ thanks to the use of namespaces.") (define-public hdparm (package (name "hdparm") - (version "9.51") + (version "9.52") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version ".tar.gz")) (sha256 (base32 - "14ax5lyzhigx58ing7adbfyzisv0fqajbmzphg149rnb3s4xiyhs")))) + "1djgxhfadd865dcrl6dp7dvjxpaisy7mk17mbdbglwg24ga9qhn3")))) (build-system gnu-build-system) (arguments `(#:make-flags (let ((out (assoc-ref %outputs "out"))) From beba0c09b9e637f08b7dbfa8882413871528751f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 2 May 2017 23:35:59 +0200 Subject: [PATCH 038/386] gnu: youtube-dl: Update to 2017.05.01. * gnu/packages/video.scm (youtube-dl): Update to 2017.05.01. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 33ba9ffb90..8609a04862 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -989,7 +989,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.04.28") + (version "2017.05.01") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -997,7 +997,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "0d3mgf8qxb07b7bjf79ppaxhcl4f47q0zjpshp6y2q0lalfskh3j")))) + "0lrflg4h1jiw77jcg2h83kn90ngi5fkqz5wq9amsjvx66hb1bqjq")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion From 756be979cb4adef6caf61b2e8eb2391f2b8c6ea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 21:39:55 +0200 Subject: [PATCH 039/386] licenses: Add CeCILL and CeCILL-B. * guix/licenses.scm (cecill, cecill-b): New variables. --- guix/licenses.scm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/guix/licenses.scm b/guix/licenses.scm index 7a1e2415e6..c6945288fe 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2012, 2013 Nikita Karetnikov ;;; Copyright © 2015 Mark H Weaver @@ -38,7 +38,7 @@ cc0 cc-by2.0 cc-by3.0 cc-by-sa2.0 cc-by-sa3.0 cc-by-sa4.0 cddl1.0 - cecill-c + cecill cecill-b cecill-c artistic2.0 clarified-artistic copyleft-next cpl1.0 @@ -193,7 +193,17 @@ at URI, which may be a file:// URI pointing the package's tree." "http://directory.fsf.org/wiki/License:CDDLv1.0" "https://www.gnu.org/licenses/license-list#CDDL")) -(define cecill-c +(define cecill ;copyleft + (license "CeCILL" + "http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html" + "https://www.gnu.org/licenses/license-list.html#CeCILL")) + +(define cecill-b ;non-copyleft + (license "CeCILL-B" + "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html" + "https://www.gnu.org/licenses/license-list.html#CeCILL")) + +(define cecill-c ;weak copyleft (license "CeCILL-C" "http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html" "https://www.gnu.org/licenses/license-list.html#CeCILL")) From 7b9ac883ea62a816afbfa747c1377dc273c15c20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 21:43:18 +0200 Subject: [PATCH 040/386] download: Continue handshake upon TLS warning alerts. This allows us to download from site such as where the server does not recognize the server name passed via the 'server_name' extension. * guix/build/download.scm (tls-wrap): Catch 'gnutls-error' around 'handshake'. Upon ERROR/WARNING-ALERT-RECEIVED, print a message and call 'handshake'. --- guix/build/download.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/guix/build/download.scm b/guix/build/download.scm index 67a8952599..ce4708a873 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -396,7 +396,21 @@ host name without trailing dot." ;;(set-log-level! 10) ;;(set-log-procedure! log) - (handshake session) + (catch 'gnutls-error + (lambda () + (handshake session)) + (lambda (key err proc . rest) + (cond ((eq? err error/warning-alert-received) + ;; Like Wget, do no stop upon non-fatal alerts such as + ;; 'alert-description/unrecognized-name'. + (format (current-error-port) + "warning: TLS warning alert received: ~a~%" + (alert-description->string (alert-get session))) + (handshake session)) + (else + ;; XXX: We'd use 'gnutls_error_is_fatal' but (gnutls) doesn't + ;; provide a binding for this. + (apply throw key err proc rest))))) ;; Verify the server's certificate if needed. (when verify-certificate? From dcb95c1fc936d74dfdf84b7e59eff66cb99c5a63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 2 May 2017 22:47:36 +0200 Subject: [PATCH 041/386] monads: Add a template and specialization mechanism for monadic procedures. * guix/monads.scm (%templates, %template-instances): New variables. (register-template!, register-template-instance!): New procedures. (template-directory, define-template): New macro. (foldm, sequence, anym): Define using 'define-template'. Avoid replace ellipses with dots. (mapm): Likewise, but do not use 'foldm'. * guix/store.scm: Add 'template-directory' invocation. --- guix/monads.scm | 209 +++++++++++++++++++++++++++++++++++++++++++----- guix/store.scm | 4 + 2 files changed, 194 insertions(+), 19 deletions(-) diff --git a/guix/monads.scm b/guix/monads.scm index 317f85d079..6ae616aca9 100644 --- a/guix/monads.scm +++ b/guix/monads.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +29,8 @@ monad-bind monad-return + template-directory + ;; Syntax. >>= return @@ -92,6 +94,9 @@ ;; The record type, for use at run time. (make-monad b r)) + ;; Instantiate all the templates, specialized for this monad. + (template-directory instantiations name) + (define-syntax name ;; An "inlined record", for use at expansion time. The goal is ;; to allow 'bind' and 'return' to be resolved at expansion @@ -103,6 +108,172 @@ ((_ %return) #'r) (_ #'rtd)))))))))) +;; Expansion- and run-time state of the template directory. This needs to be +;; available at run time (and not just at expansion time) so we can +;; instantiate templates defined in other modules, or use instances defined +;; elsewhere. +(eval-when (load expand eval) + ;; Mapping of syntax objects denoting the template to a pair containing (1) + ;; the syntax object of the parameter over which it is templated, and (2) + ;; the syntax of its body. + (define-once %templates (make-hash-table)) + + (define (register-template! name param body) + (hash-set! %templates name (cons param body))) + + ;; List of template instances, where each entry is a triplet containing the + ;; syntax of the name, the actual parameter for which the template is + ;; specialized, and the syntax object referring to this specialization (the + ;; procedure's identifier.) + (define-once %template-instances '()) + + (define (register-template-instance! name actual instance) + (set! %template-instances + (cons (list name actual instance) %template-instances)))) + +(define-syntax template-directory + (lambda (s) + "This is a \"stateful macro\" to register and lookup templates and +template instances." + (define location + (syntax-source s)) + + (define current-info-port + ;; Port for debugging info. + (const (%make-void-port "w"))) + + (define location-string + (format #f "~a:~a:~a" + (assq-ref location 'filename) + (and=> (assq-ref location 'line) 1+) + (assq-ref location 'column))) + + (define (matching-instance? name actual) + (match-lambda + ((name* instance-param proc) + (and (free-identifier=? name name*) + (or (equal? actual instance-param) + (and (identifier? actual) + (identifier? instance-param) + (free-identifier=? instance-param + actual))) + proc)))) + + (define (instance-identifier name actual) + (define stem + (string-append + " " + (symbol->string (syntax->datum name)) + (if (identifier? actual) + (string-append " " (symbol->string (syntax->datum actual))) + "") + " instance")) + (datum->syntax actual (string->symbol stem))) + + (define (instance-definition name template actual) + (match template + ((formal . body) + (let ((instance (instance-identifier name actual))) + (format (current-info-port) + "~a: info: specializing '~a' for '~a' as '~a'~%" + location-string + (syntax->datum name) (syntax->datum actual) + (syntax->datum instance)) + + (register-template-instance! name actual instance) + + #`(begin + (define #,instance + (let-syntax ((#,formal (identifier-syntax #,actual))) + #,body)) + + ;; Generate code to register the thing at run time. + (register-template-instance! #'#,name #'#,actual + #'#,instance)))))) + + (syntax-case s (register! lookup exists? instantiations) + ((_ register! name param body) + ;; Register NAME as a template on PARAM with the given BODY. + (begin + (register-template! #'name #'param #'body) + + ;; Generate code to register the template at run time. XXX: Because + ;; of this, BODY must not contain ellipses. + #'(register-template! #'name #'param #'body))) + ((_ lookup name actual) + ;; Search for an instance of template NAME for this ACTUAL parameter. + ;; On success, expand to the identifier of the instance; otherwise + ;; expand to #f. + (any (matching-instance? #'name #'actual) %template-instances)) + ((_ exists? name actual) + ;; Likewise, but return a Boolean. + (let ((result (->bool + (any (matching-instance? #'name #'actual) + %template-instances)))) + (unless result + (format (current-warning-port) + "~a: warning: no specialization of template '~a' for '~a'~%" + location-string + (syntax->datum #'name) (syntax->datum #'actual))) + result)) + ((_ instantiations actual) + ;; Expand to the definitions of all the existing templates + ;; specialized for ACTUAL. + #`(begin + #,@(hash-map->list (cut instance-definition <> <> #'actual) + %templates)))))) + +(define-syntax define-template + (lambda (s) + "Define a template, which is a procedure that can be specialized over its +first argument. In our case, the first argument is typically the identifier +of a monad. + +Defining templates for procedures like 'mapm' allows us to make have a +specialized version of those procedures for each monad that we define, such +that calls to: + + (mapm %state-monad proc lst) + +automatically expand to: + + (#{ mapm %state-monad instance}# proc lst) + +Here, #{ mapm %state-monad instance}# is specialized for %state-monad, and +thus it contains inline calls to %state-bind and %state-return. This avoids +repeated calls to 'struct-ref' to get the 'bind' and 'return' procedure of the +monad, and allows 'bind' and 'return' to be inlined, which in turn allows for +more optimizations." + (syntax-case s () + ((_ (name arg0 args ...) body ...) + (with-syntax ((generic-name (datum->syntax + #'name + (symbol-append '#{ %}# + (syntax->datum #'name) + '-generic))) + (original-name #'name)) + #`(begin + (template-directory register! name arg0 + (lambda (args ...) + body ...)) + (define (generic-name arg0 args ...) + ;; The generic instance of NAME, for when no specialization was + ;; found. + body ...) + + (define-syntax name + (lambda (s) + (syntax-case s () + ((_ arg0* args ...) + ;; Expand to either the specialized instance or the + ;; generic instance of template ORIGINAL-NAME. + #'(if (template-directory exists? original-name arg0*) + ((template-directory lookup original-name arg0*) + args ...) + (generic-name arg0* args ...))) + (_ + #'generic-name)))))))))) + (define-syntax-parameter >>= ;; The name 'bind' is already taken, so we choose this (obscure) symbol. (lambda (s) @@ -265,7 +436,7 @@ MONAD---i.e., return a monadic function in MONAD." (with-monad monad (return (apply proc args))))) -(define (foldm monad mproc init lst) +(define-template (foldm monad mproc init lst) "Fold MPROC over LST and return a monadic value seeded by INIT. (foldm %state-monad (lift2 cons %state-monad) '() '(a b c)) @@ -277,33 +448,33 @@ MONAD---i.e., return a monadic function in MONAD." (match lst (() (return result)) - ((head tail ...) + ((head . tail) (>>= (mproc head result) (lambda (result) (loop tail result)))))))) -(define (mapm monad mproc lst) +(define-template (mapm monad mproc lst) "Map MPROC over LST and return a monadic list. (mapm %state-monad (lift1 1+ %state-monad) '(0 1 2)) => (1 2 3) ;monadic " - (mlet monad ((result (foldm monad - (lambda (item result) - (>>= (mproc item) - (lambda (item) - (return (cons item result))))) - '() - lst))) - (return (reverse result)))) + ;; XXX: We don't use 'foldm' because template specialization wouldn't work + ;; in this context. + (with-monad monad + (let mapm ((lst lst) + (result '())) + (match lst + (() + (return (reverse result))) + ((head . tail) + (>>= (mproc head) + (lambda (head) + (mapm tail (cons head result))))))))) -(define-syntax-rule (sequence monad lst) +(define-template (sequence monad lst) "Turn the list of monadic values LST into a monadic list of values, by evaluating each item of LST in sequence." - ;; XXX: Making it a macro is a bit brutal as it leads to a lot of code - ;; duplication. However, it allows >>= and return to be open-coded, which - ;; avoids struct-ref's to MONAD and a few closure allocations when using - ;; %STATE-MONAD. (with-monad monad (let seq ((lstx lst) (result '())) @@ -315,7 +486,7 @@ evaluating each item of LST in sequence." (lambda (item) (seq tail (cons item result))))))))) -(define (anym monad mproc lst) +(define-template (anym monad mproc lst) "Apply MPROC to the list of values LST; return as a monadic value the first value for which MPROC returns a true monadic value or #f. For example: @@ -327,7 +498,7 @@ value for which MPROC returns a true monadic value or #f. For example: (match lst (() (return #f)) - ((head tail ...) + ((head . tail) (>>= (mproc head) (lambda (result) (if result diff --git a/guix/store.scm b/guix/store.scm index 683f071a83..8e7f09678e 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1237,6 +1237,10 @@ be used internally by the daemon's build hook." (define-alias store-return state-return) (define-alias store-bind state-bind) +;; Instantiate templates for %STORE-MONAD since it's syntactically different +;; from %STATE-MONAD. +(template-directory instantiations %store-monad) + (define (preserve-documentation original proc) "Return PROC with documentation taken from ORIGINAL." (set-object-property! proc 'documentation From 2f3108ad036d5d59d0c8247703ba22adb57638e5 Mon Sep 17 00:00:00 2001 From: Petter Date: Tue, 2 May 2017 16:57:52 +0200 Subject: [PATCH 042/386] gnu: Avoid circular dependencies by Perl license. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/licenses.scm (perl-license): New variable. * gnu/packages/bioinformatics.scm: Change (package-license perl) to perl-license. * gnu/packages/compression.scm: Same. * gnu/packages/databases.scm: Same. * gnu/packages/gd.scm: Same. * gnu/packages/language.scm: Same. * gnu/packages/libevent.scm: Same. * gnu/packages/mail.scm: Same. * gnu/packages/messaging.scm: Same. * gnu/packages/ncurses.scm: Same. * gnu/packages/networking.scm: Same. * gnu/packages/photo.scm: Same. * gnu/packages/tcl.scm: Same. * gnu/packages/tex.scm: Same. * gnu/packages/tls.scm: Same. * gnu/packages/web.scm: Same. * gnu/packages/wm.scm: Same. * gnu/packages/xml.scm: Same. * gnu/packages/xorg.scm: Same. * gnu/packages/zip.scm: Same. Signed-off-by: Ludovic Courtès --- gnu/packages/bioinformatics.scm | 2 +- gnu/packages/compression.scm | 6 +- gnu/packages/databases.scm | 24 ++--- gnu/packages/gd.scm | 6 +- gnu/packages/language.scm | 32 +++--- gnu/packages/libevent.scm | 4 +- gnu/packages/mail.scm | 20 ++-- gnu/packages/messaging.scm | 2 +- gnu/packages/ncurses.scm | 2 +- gnu/packages/networking.scm | 8 +- gnu/packages/photo.scm | 2 +- gnu/packages/tcl.scm | 2 +- gnu/packages/tex.scm | 2 +- gnu/packages/tls.scm | 8 +- gnu/packages/web.scm | 166 ++++++++++++++++---------------- gnu/packages/wm.scm | 2 +- gnu/packages/xml.scm | 46 ++++----- gnu/packages/xorg.scm | 4 +- gnu/packages/zip.scm | 2 +- guix/licenses.scm | 8 ++ 20 files changed, 178 insertions(+), 170 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 83a48d0f37..c80084f8ae 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -721,7 +721,7 @@ objects are made from the Sequence objects, Sequence objects have access to Annotation and SeqFeature objects and databases, Blast objects can be converted to Alignment objects, and so on. This means that the objects provide a coordinated and extensible framework to do computational biology.") - (license (package-license perl))))) + (license license:perl-license)))) (define-public python-biopython (package diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 4793755c21..3fc713b22a 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -611,7 +611,7 @@ decompression of some loosely related file formats used by Microsoft.") (synopsis "Low-level interface to bzip2 compression library") (description "This module provides a Perl interface to the bzip2 compression library.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-compress-raw-zlib (package @@ -646,7 +646,7 @@ GZIP_OS_CODE = AUTO_DETECT" (synopsis "Low-level interface to zlib compression library") (description "This module provides a Perl interface to the zlib compression library.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-io-compress (package @@ -668,7 +668,7 @@ compression library.") (synopsis "IO Interface to compressed files/buffers") (description "IO-Compress provides a Perl interface to allow reading and writing of compressed data created with the zlib and bzip2 libraries.") - (license (package-license perl)))) + (license license:perl-license))) (define-public lz4 (package diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index cc08994e29..01488e0d63 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -790,7 +790,7 @@ extremely small.") (synopsis "Database independent interface for Perl") (description "This package provides an database interface for Perl.") (home-page "http://search.cpan.org/dist/DBI") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbix-class (package @@ -844,7 +844,7 @@ still providing access to as many of the capabilities of the database as possible, including retrieving related records from multiple tables in a single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\", \"ORDER BY\" and \"HAVING\" support.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbix-class-cursor-cached (package @@ -869,7 +869,7 @@ single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\", (synopsis "Cursor with built-in caching support") (description "DBIx::Class::Cursor::Cached provides a cursor class with built-in caching support.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbix-class-introspectablem2m (package @@ -894,7 +894,7 @@ relationships are actually just a collection of convenience methods installed to bridge two relationships. This DBIx::Class component can be used to store all relevant information about these non-relationships so they can later be introspected and examined.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbix-class-schema-loader (package @@ -949,7 +949,7 @@ introspected and examined.") (description "DBIx::Class::Schema::Loader automates the definition of a DBIx::Class::Schema by scanning database table definitions and setting up the columns, primary keys, unique constraints and relationships.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbd-pg (package @@ -973,7 +973,7 @@ columns, primary keys, unique constraints and relationships.") (synopsis "DBI PostgreSQL interface") (description "This package provides a PostgreSQL driver for the Perl5 @dfn{Database Interface} (DBI).") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbd-mysql (package @@ -997,7 +997,7 @@ columns, primary keys, unique constraints and relationships.") (synopsis "DBI MySQL interface") (description "This package provides a MySQL driver for the Perl5 @dfn{Database Interface} (DBI).") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbd-sqlite (package @@ -1019,7 +1019,7 @@ columns, primary keys, unique constraints and relationships.") the entire thing in the distribution. So in order to get a fast transaction capable RDBMS working for your Perl project you simply have to install this module, and nothing else.") - (license (package-license perl)) + (license license:perl-license) (home-page "http://search.cpan.org/~ishigaki/DBD-SQLite/lib/DBD/SQLite.pm"))) (define-public perl-sql-abstract @@ -1052,7 +1052,7 @@ been modified to make the SQL easier to generate from Perl data structures. The underlying idea is for this module to do what you mean, based on the data structures you provide it, so that you don't have to modify your code every time your data changes.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-sql-splitstatement (package @@ -1078,7 +1078,7 @@ time your data changes.") (synopsis "Split SQL code into atomic statements") (description "This module tries to split any SQL code, even including non-standard extensions, into the atomic statements it is composed of.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-sql-tokenizer (package @@ -1098,7 +1098,7 @@ non-standard extensions, into the atomic statements it is composed of.") (description "SQL::Tokenizer is a tokenizer for SQL queries. It does not claim to be a parser or query verifier. It just creates sane tokens from a valid SQL query.") - (license (package-license perl)))) + (license license:perl-license))) (define-public unixodbc (package @@ -1301,7 +1301,7 @@ trees (LSM), for sustained throughput under random insert workloads.") "Perl5 access to Berkeley DB version 1.x") (description "The DB::File module provides Perl bindings to the Berkeley DB version 1.x.") - (license (package-license perl)))) + (license license:perl-license))) (define-public lmdb (package diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index 62c8fd8588..aac0f9664c 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -32,7 +32,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) - #:use-module ((guix licenses) #:select (non-copyleft))) + #:use-module ((guix licenses) #:select (non-copyleft perl-license))) (define-public gd (package @@ -139,7 +139,7 @@ most common applications of GD involve website development.") (description "GD.pm is an autoloadable interface module for libgd, a popular library for creating and manipulating PNG files. With this library you can create PNG images on the fly or modify existing files.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-gd-securityimage (package @@ -166,4 +166,4 @@ security (captcha) images. The final output is the actual graphic data, the mime type of the graphic, and the created random string. The module also has some \"styles\" that are used to create the background (or foreground) of the image.") - (license (package-license perl)))) + (license perl-license))) diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index e7b42290fc..ee0c5c0d89 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -22,7 +22,7 @@ #:use-module (gnu packages web) #:use-module (guix packages) #:use-module (guix build-system perl) - #:use-module ((guix licenses) #:select (gpl2 gpl3)) + #:use-module ((guix licenses) #:select (gpl2 gpl3 perl-license)) #:use-module (guix download)) (define-public perl-lingua-en-findnumber @@ -45,7 +45,7 @@ (description "This module provides a regular expression for finding numbers in English text. It also provides functions for extracting and manipulating such numbers.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-inflect (package @@ -68,7 +68,7 @@ manipulating such numbers.") words. Plural forms of all nouns, most verbs, and some adjectives are provided. Where appropriate, \"classical\" variants (for example: \"brother\" -> \"brethren\", \"dogma\" -> \"dogmata\", etc.) are also provided.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-inflect-number (package @@ -90,7 +90,7 @@ provided. Where appropriate, \"classical\" variants (for example: \"brother\" (description "This module extends the functionality of Lingua::EN::Inflect with three new functions for determining plurality of a word and forcefully converting a word to singular or plural.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-inflect-phrase (package @@ -117,7 +117,7 @@ converting a word to singular or plural.") (synopsis "Inflect short English phrases") (description "This module attempts to pluralize or singularize short English phrases.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-number-isordinal (package @@ -141,7 +141,7 @@ English phrases.") (synopsis "Detect if English number is ordinal or cardinal") (description "This module will tell you if a number, either in words or as digits, is a cardinal or ordinal number.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-tagger (package @@ -190,7 +190,7 @@ using a set of regular expressions.") (synopsis "Convert English text to numbers") (description "This module converts English text into numbers. It supports both ordinal and cardinal numbers, negative numbers, and very large numbers.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-pt-stemmer (package @@ -210,7 +210,7 @@ both ordinal and cardinal numbers, negative numbers, and very large numbers.") (description "This module implements a Portuguese stemming algorithm proposed in the paper A Stemming Algorithm for the Portuguese Language by Moreira, V. and Huyck, C.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem (package @@ -240,7 +240,7 @@ Moreira, V. and Huyck, C.") (synopsis "Stemming of words in various languages") (description "This routine applies stemming algorithms to its parameters, returning the stemmed words as appropriate to the selected locale.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem-fr (package @@ -259,7 +259,7 @@ returning the stemmed words as appropriate to the selected locale.") (synopsis "Porter's stemming algorithm for French") (description "This module uses a modified version of the Porter Stemming Algorithm to return a stemmed French word.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem-it (package @@ -278,7 +278,7 @@ Algorithm to return a stemmed French word.") (synopsis "Porter's stemming algorithm for Italian") (description "This module applies the Porter Stemming Algorithm to its parameters, returning the stemmed Italian word.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem-ru (package @@ -297,7 +297,7 @@ parameters, returning the stemmed Italian word.") (synopsis "Porter's stemming algorithm for Russian") (description "This module applies the Porter Stemming Algorithm to its parameters, returning the stemmed Russian (KOI8-R only) word.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem-snowball-da (package @@ -337,7 +337,7 @@ Lingua::Stem::Snowball::Se.") (synopsis "Porters stemming algorithm for Norwegian") (description "Lingua::Stem::Snowball::No is a perl port of the norwegian stemmer at http://snowball.tartarus.org.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-snowball-swedish (package @@ -357,7 +357,7 @@ stemmer at http://snowball.tartarus.org.") (synopsis "Porters stemming algorithm for Swedish") (description "Lingua::Stem::Snowball::Se is a perl port of the swedish stemmer at http://snowball.sourceforge.net.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-string-toidentifier-en (package @@ -383,7 +383,7 @@ converting an arbitrary string into a readable representation using the ASCII subset of \"\\w\" for use as an identifier in a computer program. The intent is to make unique identifier names from which the content of the original string can be easily inferred by a human just by reading the identifier.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-text-german (package @@ -402,4 +402,4 @@ string can be easily inferred by a human just by reading the identifier.") (synopsis "German grundform reduction") (description "This module is a rather incomplete implementation of work done by Gudrun Putze-Meier.") - (license (package-license perl)))) + (license perl-license))) diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 5d769aaf47..c903352bbc 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -192,7 +192,7 @@ Currently supported event loops are EV, Event, Glib/Gtk2, Tk, Qt, @code{Event::Lib}, Irssi, @code{IO::Async} and POE (and thus also WxWidgets and Prima). It also comes with a very fast Pure Perl event loop that does not rely on XS.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-ev (package @@ -233,4 +233,4 @@ not rely on XS.") "This module provides an interface to @code{libev}, a high performance full-featured event loop. It can be used through the @code{AnyEvent} module and still be faster than other event loops currently supported in Perl.") - (license (package-license perl)))) + (license perl-license))) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a10c3bcbf9..014c77d911 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -104,7 +104,7 @@ #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ non-copyleft (expat . license:expat) bsd-3 public-domain bsd-4 isc (openssl . license:openssl) - bsd-2 x11-style agpl3 asl2.0)) + bsd-2 x11-style agpl3 asl2.0 perl-license)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -1277,7 +1277,7 @@ mailboxes. Currently Maildir and IMAP are supported types.") (synopsis "Interface to mail representations") (description "Email::Abstract provides module writers with the ability to write simple, representation-independent mail handling code.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-address (package @@ -1297,7 +1297,7 @@ write simple, representation-independent mail handling code.") (description "Email::Address implements a regex-based RFC 2822 parser that locates email addresses in strings and returns a list of Email::Address objects found. Alternatively you may construct objects manually.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-date-format (package @@ -1316,7 +1316,7 @@ objects found. Alternatively you may construct objects manually.") (synopsis "Produce RFC 2822 date strings") (description "Email::Date::Format provides a means for generating an RFC 2822 compliant datetime string.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-messageid (package @@ -1335,7 +1335,7 @@ objects found. Alternatively you may construct objects manually.") (synopsis "Generate world unique message-ids") (description "Email::MessageID generates recommended message-ids to identify a message uniquely.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-mime (package @@ -1363,7 +1363,7 @@ identify a message uniquely.") handle MIME encoded messages. It takes a message as a string, splits it up into its constituent parts, and allows you access to various parts of the message. Headers are decoded from MIME encoding.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-mime-contenttype (package @@ -1384,7 +1384,7 @@ message. Headers are decoded from MIME encoding.") (synopsis "Parse MIME Content-Type headers") (description "Email::MIME::ContentType parses a MIME Content-Type header.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-mime-encodings (package @@ -1404,7 +1404,7 @@ header.") (home-page "http://search.cpan.org/dist/Email-MIME-Encodings") (synopsis "Unified interface to MIME encoding and decoding") (description "This module wraps MIME::Base64 and MIME::QuotedPrint.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-sender (package @@ -1436,7 +1436,7 @@ header.") (synopsis "Perl library for sending email") (description "Email::Sender replaces the old and sometimes problematic Email::Send library.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-simple (package @@ -1457,7 +1457,7 @@ Email::Send library.") (synopsis "Parsing of RFC 2822 messages") (description "Email::Simple provides simple parsing of RFC 2822 message format and headers.") - (license (package-license perl)))) + (license perl-license))) (define-public libesmtp (package diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 59e2b23d32..9e45b7ad0f 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1001,7 +1001,7 @@ for @uref{https://torproject.org,tor} router) and many more.") (synopsis "Perl implementation of PSYC protocol") (home-page "http://perlpsyc.psyc.eu/") (license (list license:gpl2 - (package-license perl) + license:perl-license ;; contrib/irssi-psyc.pl: license:public-domain ;; bin/psycplay states AGPL with no version: diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index a494679651..44a79e7186 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -252,7 +252,7 @@ curses widgets, such as dialog boxes.") (description "@code{Curses} is the interface between Perl and the curses library of your system.") - (license (package-license perl)))) + (license perl-license))) (define-public stfl (package diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 3182443c19..ea01bb7cec 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -739,7 +739,7 @@ definitions and structure manipulators for Perl.") "Programmable DNS resolver class for offline emulation of DNS") (description "Net::DNS::Resolver::Programmable is a programmable DNS resolver for offline emulation of DNS.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-netaddr-ip (package @@ -772,7 +772,7 @@ offline emulation of DNS.") (synopsis "Manages IPv4 and IPv6 addresses and subnets") (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-net-patricia (package @@ -846,7 +846,7 @@ offline emulation of DNS.") "Look up location and network information by IP Address in Perl") (description "The Perl module 'Geo::IP'. It looks up location and network information by IP Address.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-io-socket-inet6 (package @@ -876,7 +876,7 @@ information by IP Address.") "Perl object interface for AF_INET/AF_INET6 domain sockets") (description "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain sockets in Perl.") - (license (package-license perl)))) + (license license:perl-license))) (define-public proxychains-ng (package diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index c782ecf47f..fff19551a1 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -192,7 +192,7 @@ MTP, and much more.") (description "This package provides the @code{exiftool} command and the @code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images and a wide variety of other metadata.") - (license (package-license perl)))) + (license license:perl-license))) (define-public libpano13 (package diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index adad55e2da..de888891c4 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -220,7 +220,7 @@ interfaces (GUIs) in the Tcl language.") ;; those of the orignal Tix4.1.3 or Tk8.4.* sources. See the files ;; pTk/license.terms, pTk/license.html_lib, and pTk/Tix.license for ;; details of this license." - (license (package-license perl)))) + (license perl-license))) (define-public tcllib (package diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 46c578f14b..7839e16b27 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -428,7 +428,7 @@ and processing BibTeX files. @code{Text::BibTeX} gives you access to the data at many different levels: you may work with BibTeX entries as simple field to string mappings, or get at the original form of the data as a list of simple values (strings, macros, or numbers) pasted together.") - (license (package-license perl)))) + (license license:perl-license))) (define-public biber (package diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 50e9de4806..f90ff5c497 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -634,7 +634,7 @@ web pages on SSL servers (for symmetry, the same API is offered for accessing http servers, too), an sslcat() function for writing your own clients, and finally access to the SSL api of the SSLeay/OpenSSL package so you can write servers or clients for more complicated applications.") - (license (package-license perl)) + (license license:perl-license) (home-page "http://search.cpan.org/~mikem/Net-SSLeay-1.66/"))) (define-public perl-crypt-openssl-rsa @@ -663,7 +663,7 @@ servers or clients for more complicated applications.") "RSA encoding and decoding, using the openSSL libraries") (description "Crypt::OpenSSL::RSA does RSA encoding and decoding (using the OpenSSL libraries).") - (license (package-license perl)))) + (license license:perl-license))) (define perl-crypt-arguments `(#:phases (modify-phases %standard-phases @@ -699,7 +699,7 @@ OpenSSL libraries).") (description "Crypt::OpenSSL::Bignum provides multiprecision integer arithmetic in Perl.") ;; At your option either gpl1+ or the Artistic License - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-crypt-openssl-random (package @@ -724,7 +724,7 @@ arithmetic in Perl.") "OpenSSL/LibreSSL pseudo-random number generator access") (description "Crypt::OpenSSL::Random is a OpenSSL/LibreSSL pseudo-random number generator") - (license (package-license perl)))) + (license license:perl-license))) (define-public acme-client (package diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 487366b4a5..8abd4309dd 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -301,7 +301,7 @@ servers that may need it).") (description "Starman is a PSGI perl web server that has unique features such as high performance, preforking, signal support, superdaemon awareness, and UNIX socket support.") - (license (package-license perl)))) + (license l:perl-license))) (define-public jansson (package @@ -979,7 +979,7 @@ language known as SASS.") (synopsis "Compile a log format string to perl-code") (description "This module provides methods to compile a log format string to perl-code, for faster generation of access_log lines.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-authen-sasl (package @@ -1000,7 +1000,7 @@ to perl-code, for faster generation of access_log lines.") (home-page "http://search.cpan.org/dist/Authen-SASL") (synopsis "SASL authentication framework") (description "Authen::SASL provides an SASL authentication framework.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-action-renderview (package @@ -1026,7 +1026,7 @@ to perl-code, for faster generation of access_log lines.") (synopsis "Sensible default Catalyst action") (description "This Catalyst action implements a sensible default end action, which will forward to the first available view.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-action-rest (package @@ -1061,7 +1061,7 @@ REST requests. It takes a normal Catalyst action, and changes the dispatch to append an underscore and method name. First it will try dispatching to an action with the generated name, and failing that it will try to dispatch to a regular method.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-authentication-store-dbix-class (package @@ -1096,7 +1096,7 @@ regular method.") (description "The Catalyst::Authentication::Store::DBIx::Class class provides access to authentication information stored in a database via DBIx::Class.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-component-instancepercontext (package @@ -1120,7 +1120,7 @@ DBIx::Class.") (synopsis "Create only one instance of Moose component per context") (description "Catalyst::Component::InstancePerContext returns a new instance of a component on each request.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-devel (package @@ -1162,7 +1162,7 @@ to run them. Catalyst-Devel includes the Catalyst::Helper system, which autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install extension for Catalyst; and requirements for a variety of development-related modules.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-dispatchtype-regex (package @@ -1192,7 +1192,7 @@ core. It is recommend that you use Chained methods or other techniques instead. As part of the refactoring, the dispatch priority of Regex vs Regexp vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by when the dispatch type is first seen in your application.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-model-dbic-schema (package @@ -1237,7 +1237,7 @@ when the dispatch type is first seen in your application.") (synopsis "DBIx::Class::Schema Model Class") (description "This is a Catalyst Model for DBIx::Class::Schema-based Models.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-accesslog (package @@ -1262,7 +1262,7 @@ Models.") (description "This Catalyst plugin enables you to create \"access logs\" from within a Catalyst application instead of requiring a webserver to do it for you. It will work even with Catalyst debug logging turned off.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-authentication (package @@ -1296,7 +1296,7 @@ for you. It will work even with Catalyst debug logging turned off.") Catalyst apps. It is the basis for both authentication (checking the user is who they claim to be), and authorization (allowing the user to do what the system authorises them to do).") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-authorization-roles (package @@ -1325,7 +1325,7 @@ system authorises them to do).") (synopsis "Role-based authorization for Catalyst") (description "Catalyst::Plugin::Authorization::Roles provides role-based authorization for Catalyst based on Catalyst::Plugin::Authentication.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-captcha (package @@ -1349,7 +1349,7 @@ authorization for Catalyst based on Catalyst::Plugin::Authentication.") (synopsis "Captchas for Catalyst") (description "This plugin creates and validates Captcha images for Catalyst.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-configloader (package @@ -1377,7 +1377,7 @@ Catalyst.") (description "This module will attempt to load find and load configuration files of various types. Currently it supports YAML, JSON, XML, INI and Perl formats.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-session (package @@ -1408,7 +1408,7 @@ formats.") (synopsis "Catalyst generic session plugin") (description "This plugin links the two pieces required for session management in web applications together: the state, and the store.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-session-state-cookie (package @@ -1437,7 +1437,7 @@ management in web applications together: the state, and the store.") ID needs to be stored on the client, and the session data needs to be stored on the server. This plugin stores the session ID on the client using the cookie mechanism.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-session-store-fastmmap (package @@ -1467,7 +1467,7 @@ cookie mechanism.") (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session storage plugin for Catalyst that uses an mmap'ed file to act as a shared memory interprocess cache. It is based on Cache::FastMmap.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-stacktrace (package @@ -1492,7 +1492,7 @@ memory interprocess cache. It is based on Cache::FastMmap.") including a stack trace of your application up to the point where the error occurred. Each stack frame is displayed along with the package name, line number, file name, and code context surrounding the line number.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-static-simple (package @@ -1522,7 +1522,7 @@ looking at the file extension in the URL (such as .css or .png or .js). The plugin uses the lightweight MIME::Types module to map file extensions to IANA-registered MIME types, and will serve your static files with the correct MIME type directly to the browser, without being processed through Catalyst.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-runtime (package @@ -1587,7 +1587,7 @@ MIME type directly to the browser, without being processed through Catalyst.") It is designed to make it easy to manage the various tasks you need to do to run an application on the web, either by doing them itself, or by letting you \"plug in\" existing Perl modules that do what you need.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-traitfor-request-proxybase (package @@ -1618,7 +1618,7 @@ run an application on the web, either by doing them itself, or by letting you flexibility in your application's deployment configurations when deployed behind a proxy. Using this module, the request base ($c->req->base) is replaced with the contents of the X-Request-Base header.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-view-download (package @@ -1644,7 +1644,7 @@ replaced with the contents of the X-Request-Base header.") (description "The purpose of this module is to provide a method for downloading data into many supportable formats. For example, downloading a table based report in a variety of formats (CSV, HTML, etc.).") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-view-json (package @@ -1669,7 +1669,7 @@ table based report in a variety of formats (CSV, HTML, etc.).") (synopsis "Catalyst JSON view") (description "Catalyst::View::JSON is a Catalyst View handler that returns stash data in JSON format.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-view-tt (package @@ -1696,7 +1696,7 @@ stash data in JSON format.") (synopsis "Template View Class") (description "This module is a Catalyst view class for the Template Toolkit.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalystx-component-traits (package @@ -1729,7 +1729,7 @@ Catalyst component base class that reads the optional \"traits\" parameter from app and component config and instantiates the component subclass with those traits using \"new_with_traits\" in MooseX::Traits from MooseX::Traits::Pluggable.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalystx-roleapplicator (package @@ -1752,7 +1752,7 @@ MooseX::Traits::Pluggable.") (synopsis "Apply roles to Catalyst classes") (description "CatalystX::RoleApplicator applies roles to Catalyst application classes.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalystx-script-server-starman (package @@ -1779,7 +1779,7 @@ application classes.") (synopsis "Catalyst development server with Starman") (description "This module provides a Catalyst extension to replace the development server with Starman.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-cgi (package @@ -1807,7 +1807,7 @@ processing and preparing HTTP requests and responses. Major features include processing form submissions, file uploads, reading and writing cookies, query string generation and manipulation, and processing and preparing HTTP headers.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-cgi-simple (package @@ -1830,7 +1830,7 @@ headers.") (description "CGI::Simple provides a relatively lightweight drop in replacement for CGI.pm. It shares an identical OO interface to CGI.pm for parameter parsing, file upload, cookie handling and header generation.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-cgi-struct (package @@ -1875,7 +1875,7 @@ inputs, in a manner reminiscent of how PHP does.") (synopsis "Date conversion routines") (description "This module provides functions that deal with the date formats used by the HTTP protocol.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-digest-md5-file (package @@ -1896,7 +1896,7 @@ formats used by the HTTP protocol.") (synopsis "MD5 sums for files and urls") (description "Digest::MD5::File is a Perl extension for getting MD5 sums for files and urls.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-encode-locale (package @@ -1911,7 +1911,7 @@ for files and urls.") (base32 "1h8fvcdg3n20c2yp7107yhdkkx78534s9hnvn7ps8hpmf4ks0vqp")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl locale encoding determination") (description "The POSIX locale system is used to specify both the language @@ -1949,7 +1949,7 @@ with Encode::decode(locale => $string).") (description "@code{Feed::Find} implements feed auto-discovery for finding syndication feeds, given a URI. It will discover the following feed formats: RSS 0.91, RSS 1.0, RSS 2.0, Atom.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-file-listing (package @@ -1966,7 +1966,7 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom.") (build-system perl-build-system) (propagated-inputs `(("perl-http-date" ,perl-http-date))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl directory listing parser") (description "The File::Listing module exports a single function called parse_dir(), @@ -2028,7 +2028,7 @@ Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.") (synopsis "Perl extension providing access to the GSSAPIv2 library") (description "This is a Perl extension for using GSSAPI C bindings as described in RFC 2744.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-element-extended (package @@ -2050,7 +2050,7 @@ described in RFC 2744.") (description "HTML::Element::Extended is a Perl extension for manipulating a table composed of HTML::Element style components.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-form (package @@ -2075,7 +2075,7 @@ composed of HTML::Element style components.") (synopsis "Perl class representing an HTML form element") (description "Objects of the HTML::Form class represents a single HTML
...
instance.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-lint (package @@ -2121,7 +2121,7 @@ syntactic legitmacy.") (description "HTML::TableExtract is a Perl module for extracting the content contained in tables within an HTML document, either as text or encoded element trees.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-tree (package @@ -2147,7 +2147,7 @@ in tables within an HTML document, either as text or encoded element trees.") (synopsis "Work with HTML in a DOM-like tree structure") (description "This distribution contains a suite of modules for representing, creating, and extracting information from HTML syntax trees.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-parser (package @@ -2165,7 +2165,7 @@ representing, creating, and extracting information from HTML syntax trees.") (inputs `(("perl-html-tagset" ,perl-html-tagset) ("perl-http-message" ,perl-http-message))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl HTML parser class") (description "Objects of the HTML::Parser class will recognize markup and separate @@ -2187,7 +2187,7 @@ are invoked.") (base32 "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl data tables useful in parsing HTML") (description "The HTML::Tagset module contains several data tables useful in various @@ -2218,7 +2218,7 @@ It extends standard HTML with a few new HTML-esque tags: @code{}, these new tags is called a template. Using this module you fill in the values for the variables, loops and branches declared in the template. This allows you to separate design from the data.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-body (package @@ -2243,7 +2243,7 @@ you to separate design from the data.") (description "HTTP::Body parses chunks of HTTP POST data and supports application/octet-stream, application/json, application/x-www-form-urlencoded, and multipart/form-data.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-cookiejar (package @@ -2287,7 +2287,7 @@ jar in conformance with RFC 6265 .") (build-system perl-build-system) (propagated-inputs `(("perl-http-message" ,perl-http-message))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl HTTP cookie jars") (description "The HTTP::Cookies class is for objects that represent a cookie jar, @@ -2311,7 +2311,7 @@ object knows about.") (propagated-inputs `(("perl-http-message" ,perl-http-message) ("perl-lwp-mediatypes" ,perl-lwp-mediatypes))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl simple http server class") (description "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen @@ -2332,7 +2332,7 @@ IO::Socket::INET, so you can perform socket operations directly on it too.") (base32 "0cz357kafhhzw7w59iyi0wvhw7rlh5g1lh38230ckw7rl0fr9fg8")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl date conversion routines") (description "The HTTP::Date module provides functions that deal with date formats @@ -2358,7 +2358,7 @@ used by the HTTP protocol (and then some more).") ("perl-io-html" ,perl-io-html) ("perl-lwp-mediatypes" ,perl-lwp-mediatypes) ("perl-uri" ,perl-uri))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl HTTP style message") (description "An HTTP::Message object contains some headers and a content body.") @@ -2379,7 +2379,7 @@ used by the HTTP protocol (and then some more).") (build-system perl-build-system) (propagated-inputs `(("perl-http-message" ,perl-http-message))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl http content negotiation") (description "The HTTP::Negotiate module provides a complete implementation of the @@ -2412,7 +2412,7 @@ fields in the request.") received and returns a 'hint' as to what is required, or returns the HTTP::Request when a complete request has been read. HTTP/1.1 chunking is supported.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-parser-xs (package @@ -2431,7 +2431,7 @@ supported.") (synopsis "Fast HTTP request parser") (description "HTTP::Parser::XS is a fast, primitive HTTP request/response parser.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-request-ascgi (package @@ -2453,7 +2453,7 @@ parser.") (synopsis "Set up a CGI environment from an HTTP::Request") (description "This module provides a convenient way to set up a CGI environment from an HTTP::Request.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-server-simple (package @@ -2479,7 +2479,7 @@ environment from an HTTP::Request.") (description "HTTP::Server::Simple is a simple standalone HTTP daemon with no non-core module dependencies. It can be used for building a standalone http-based UI to your existing tools.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-tiny (package @@ -2505,7 +2505,7 @@ http-based UI to your existing tools.") (description "This is a very simple HTTP/1.1 client, designed for doing simple requests without the overhead of a large framework like LWP::UserAgent. It supports proxies and redirection. It also correctly resumes after EINTR.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-io-html (package @@ -2520,7 +2520,7 @@ It supports proxies and redirection. It also correctly resumes after EINTR.") (base32 "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl module to open an HTML file with automatic charset detection") (description "IO::HTML provides an easy way to open a file containing HTML while @@ -2546,7 +2546,7 @@ algorithm specified in section 8.2.2.1 of the draft standard.") (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6") (description "This module provides a protocol-independent way to use IPv4 and IPv6 sockets, intended as a replacement for IO::Socket::INET.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-io-socket-ssl (package @@ -2573,7 +2573,7 @@ necessary functionality into the familiar IO::Socket interface and providing secure defaults whenever possible. This way existing applications can be made SSL-aware without much effort, at least if you do blocking I/O and don't use select or poll.") - (license (package-license perl)) + (license l:perl-license) (home-page "https://github.com/noxxi/p5-io-socket-ssl"))) (define-public perl-libwww @@ -2601,7 +2601,7 @@ select or poll.") ("perl-net-http" ,perl-net-http) ("perl-uri" ,perl-uri) ("perl-www-robotrules" ,perl-www-robotrules))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl modules for the WWW") (description "The libwww-perl collection is a set of Perl modules which provides a @@ -2625,7 +2625,7 @@ help you implement simple HTTP servers.") (base32 "0xmnblp962qy02akah30sji8bxrqcyqlff2w95l199ghql60ny8q")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl module to guess the media type for a file or a URL") (description "The LWP::MediaTypes module provides functions for handling media (also @@ -2657,7 +2657,7 @@ exists it is used instead.") (synopsis "HTTPS support for LWP::UserAgent") (description "The LWP::Protocol::https module provides support for using https schemed URLs with LWP.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-lwp-useragent-determined (package @@ -2680,7 +2680,7 @@ https schemed URLs with LWP.") except that when you use it to get a web page but run into a possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds and retry a few times.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-net-amazon-s3 (package @@ -2723,7 +2723,7 @@ and retry a few times.") (home-page "http://search.cpan.org/dist/Net-Amazon-S3") (synopsis "Perl interface to Amazon S3") (description "This module provides a Perlish interface to Amazon S3.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-net-http (package @@ -2741,7 +2741,7 @@ and retry a few times.") (propagated-inputs `(("perl-io-socket-ssl" ,perl-io-socket-ssl) ("perl-uri" ,perl-uri))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl low-level HTTP connection (client)") (description "The Net::HTTP class is a low-level HTTP client. An instance of the @@ -2775,7 +2775,7 @@ children (Net::Server::PreForkSimple), or as a managed preforking server which maintains the number of children based on server load (Net::Server::PreFork). In all but the inetd type, the server provides the ability to connect to one or to multiple server ports.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-net-smtp-ssl (package @@ -2795,7 +2795,7 @@ or to multiple server ports.") (home-page "http://search.cpan.org/dist/Net-SMTP-SSL") (synopsis "SSL support for Net::SMTP") (description "SSL support for Net::SMTP.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack (package @@ -2833,7 +2833,7 @@ or to multiple server ports.") contains middleware components, a reference server, and utilities for Web application frameworks. Plack is like Ruby's Rack or Python's Paste for WSGI.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-middleware-fixmissingbodyinredirect (package @@ -2858,7 +2858,7 @@ WSGI.") (synopsis "Plack::Middleware which sets body for redirect response") (description "This module sets the body in redirect response, if it's not already set.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-middleware-methodoverride (package @@ -2884,7 +2884,7 @@ already set.") something else: by adding either a header named X-HTTP-Method-Override to the request, or a query parameter named x-tunneled-method to the URI, the client can say what method it actually meant.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-middleware-removeredundantbody (package @@ -2907,7 +2907,7 @@ can say what method it actually meant.") (synopsis "Plack::Middleware which removes body for HTTP response") (description "This module removes the body in an HTTP response if it's not required.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-middleware-reverseproxy (package @@ -2930,7 +2930,7 @@ required.") (description "Plack::Middleware::ReverseProxy resets some HTTP headers, which are changed by reverse-proxy. You can specify the reverse proxy address and stop fake requests using 'enable_if' directive in your app.psgi.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-test-externalserver (package @@ -2952,7 +2952,7 @@ and stop fake requests using 'enable_if' directive in your app.psgi.") (description "This module allows your to run your Plack::Test tests against an external server instead of just against a local application through either mocked HTTP or a locally spawned server.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-test-tcp (package @@ -2973,7 +2973,7 @@ either mocked HTTP or a locally spawned server.") (home-page "http://search.cpan.org/dist/Test-TCP") (synopsis "Testing TCP programs") (description "Test::TCP is test utilities for TCP/IP programs.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-test-www-mechanize (package @@ -3038,7 +3038,7 @@ WWW::Mechanize that incorporates features for web application testing.") (description "The Test::WWW::Mechanize::Catalyst module meshes the Test::WWW:Mechanize module and the Catalyst web application framework to allow testing of Catalyst applications without needing to start up a web server.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-test-www-mechanize-psgi (package @@ -3065,7 +3065,7 @@ from web application framework code. Test::WWW::Mechanize is a subclass of WWW::Mechanize that incorporates features for web application testing. The Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI applications.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-uri (package @@ -3079,7 +3079,7 @@ applications.") (base32 "05a1ck1bhvqkkk690xhsxf7276dnagk96qkh2jy4prrrgw6wm3lw")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl Uniform Resource Identifiers (absolute and relative)") (description "The URI module implements the URI class. Objects of this class @@ -3110,7 +3110,7 @@ and updated by RFC 2732.") (description "@code{URI::Fetch} is a smart client for fetching HTTP pages, notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth- and time-saving way.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-uri-find (package @@ -3135,7 +3135,7 @@ and time-saving way.") considers a URI) in plain text. It only finds URIs which include a scheme (http:// or the like), for something a bit less strict, consider URI::Find::Schemeless. For a command-line interface, urifind is provided.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-uri-ws (package @@ -3156,7 +3156,7 @@ URI::Find::Schemeless. For a command-line interface, urifind is provided.") (synopsis "WebSocket support for URI package") (description "With this module, the URI package provides the same set of methods for WebSocket URIs as it does for HTTP URIs.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-uri-template (package @@ -3180,7 +3180,7 @@ methods for WebSocket URIs as it does for HTTP URIs.") (synopsis "Object for handling URI templates") (description "This perl module provides a wrapper around URI templates as described in RFC 6570.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-www-curl (package @@ -3203,7 +3203,7 @@ RFC 6570.") (description "This is a Perl extension interface for the libcurl file downloading library.") - (license (package-license perl)) + (license l:perl-license) (home-page "http://search.cpan.org/~szbalint/WWW-Curl-4.17/lib/WWW/Curl.pm"))) (define-public perl-www-mechanize @@ -3233,7 +3233,7 @@ library.") (synopsis "Web browsing in a Perl object") (description "WWW::Mechanize is a Perl module for stateful programmatic web browsing, used for automating interaction with websites.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-www-opensearch (package @@ -3261,7 +3261,7 @@ web browsing, used for automating interaction with websites.") (description "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch, http://opensearch.a9.com} compatible search engines.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-www-robotrules (package @@ -3278,7 +3278,7 @@ http://opensearch.a9.com} compatible search engines.") (build-system perl-build-system) (propagated-inputs `(("perl-uri" ,perl-uri))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl database of robots.txt-derived permissions") (description "The WWW::RobotRules module parses /robots.txt files as specified in diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index d758f264a1..3cf74c4ca8 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -243,7 +243,7 @@ developers.") based IPC interface it provides (if enabled in the configuration file). You can then subscribe to events or send messages and receive their replies.") ;; Can be used with either license. - (license (list license:gpl3+ (package-license perl))))) + (license (list license:gpl3+ license:perl-license)))) (define-public python-i3-py (package diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 0ceae029bc..f4b68ba6a7 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -189,7 +189,7 @@ There are two base classes. @code{Graph::Reader} is the base class for classes which read a graph file and create an instance of the Graph class. @code{Graph::Writer} is the base class for classes which take an instance of the @code{Graph} class and write it out in a specific file format.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-atom (package @@ -221,7 +221,7 @@ the @code{Graph} class and write it out in a specific file format.") (description "Atom is a syndication, API, and archiving format for weblogs and other data. @code{XML::Atom} implements the feed format as well as a client for the API.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-descent (package @@ -249,7 +249,7 @@ the @code{Graph} class and write it out in a specific file format.") XML grammar is recursive - so it's nice to be able to write recursive parsers for it. @code{XML::Descent} allows such parsers to be created.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-parser (package @@ -269,7 +269,7 @@ parsers for it. @code{XML::Descent} allows such parsers to be created.") (list (string-append "EXPATLIBPATH=" expat "/lib") (string-append "EXPATINCPATH=" expat "/include"))))) (inputs `(("expat" ,expat))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl bindings to the Expat XML parsing library") (description "This module provides ways to parse XML documents. It is built on top of @@ -303,7 +303,7 @@ to @code{XML::Parser} in much the same way that Gisle Aas' @code{HTML::TokeParser} provides a procedural interface to @code{HTML::Parser}. @code{XML::TokeParser} splits its XML input up into \"tokens\", each corresponding to an @code{XML::Parser} event.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-libxml (package @@ -320,7 +320,7 @@ corresponding to an @code{XML::Parser} event.") (build-system perl-build-system) (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl SAX parser using XML::Parser") (description "XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser @@ -351,7 +351,7 @@ module.") library which provides interfaces for parsing and manipulating XML files. This module allows Perl programmers to make use of the highly capable validating XML parser and the high performance DOM implementation.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-libxml-simple (package @@ -373,7 +373,7 @@ XML parser and the high performance DOM implementation.") (description "This package provides the same API as @code{XML::Simple} but is based on @code{XML::LibXML}.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-libxslt (package @@ -396,7 +396,7 @@ XML parser and the high performance DOM implementation.") (synopsis "Perl bindings to GNOME libxslt library") (description "This Perl module is an interface to the GNOME project's libxslt library.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-namespacesupport (package @@ -417,7 +417,7 @@ libxslt library.") names (unames) from within any application that may need them. It also helps maintain a prefix to namespace URI map, and provides a number of basic checks.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-rss (package @@ -452,7 +452,7 @@ checks.") RDF Site Summary (RSS) files. This distribution also contains many examples that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and 1.0 version, and more.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-sax (package @@ -486,7 +486,7 @@ that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and (synopsis "Perl API for XML") (description "XML::SAX consists of several framework classes for using and building Perl SAX2 XML parsers, filters, and drivers.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-sax-base (package @@ -508,7 +508,7 @@ PerlSAX drivers and filters. It's default behaviour is to pass the input directly to the output unchanged. It can be useful to use this module as a base class so you don't have to, for example, implement the characters() callback.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-simple (package @@ -526,7 +526,7 @@ callback.") (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser) ("perl-xml-sax" ,perl-xml-sax))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl module for easy reading/writing of XML files") (description "The XML::Simple module provides a simple API layer on top of an @@ -549,7 +549,7 @@ parser modules).") (build-system perl-build-system) (inputs `(("perl-xml-parser" ,perl-xml-parser))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl regular expressions for XML tokens") (description "XML::RegExp contains regular expressions for the following XML tokens: @@ -575,7 +575,7 @@ EntityRef, CharRef, Reference, Name, NmToken, and AttValue.") ("perl-libxml" ,perl-libxml) ("perl-xml-parser" ,perl-xml-parser) ("perl-xml-regexp" ,perl-xml-regexp))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl module for building DOM Level 1 compliant document structures") (description @@ -607,7 +607,7 @@ that conforms to the API of the Document Object Model.") "The @code{XML::Compile} module suite has extensive regression testing. This module provide functions which simplify writing tests for @code{XML::Compile} related distributions.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-compile (package @@ -632,7 +632,7 @@ This module provide functions which simplify writing tests for "@code{XML::Compile} can be used to translate a Perl data-structure into XML or XML into a Perl data-structure, both directions under rigid control by a schema.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-compile-cache (package @@ -655,7 +655,7 @@ a schema.") (synopsis "Cache compiled XML translators") (description "This package provides methods to cache compiled XML translators.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-compile-soap (package @@ -683,7 +683,7 @@ a schema.") implementation is @url{SOAP1.1, http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often used.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-compile-wsdl11 (package @@ -709,7 +709,7 @@ used.") messages to be send and received over SOAP connections. This involves encoding of the message to be send into XML, sending the message to the server, collect the answer, and finally decoding the XML to Perl.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-feed (package @@ -748,7 +748,7 @@ server, collect the answer, and finally decoding the XML to Perl.") Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI. @code{XML::Feed} supports the following syndication feed formats: RSS 0.91, RSS 1.0, RSS 2.0, Atom") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-xpath (package @@ -772,7 +772,7 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom") "This module aims to comply exactly to the @url{XPath specification, https://www.w3.org/TR/xpath} and yet allow extensions to be added in the form of functions.") - (license (package-license perl)))) + (license license:perl-license))) (define-public pugixml (package diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 3c9195b1bf..0bc38692e6 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5720,7 +5720,7 @@ programs that cannot use the window system directly.") "These bindings wrap @code{libxcb} (a C library to speak with X11, in many cases better than @code{Xlib}), and provides an object oriented interface to its methods (using @code{Mouse}).") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-x11-protocol (package @@ -5748,7 +5748,7 @@ perl programs to display windows and graphics on X11 servers.") ;; distribution, has another, less restrictive copying policy, as do some ;; of the extension modules in the directory Protocol/Ext: see those files ;; for details)." - (license (package-license perl)))) + (license license:perl-license))) (define-public xcompmgr (package diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm index 2cf30d6e32..7097ada1ae 100644 --- a/gnu/packages/zip.scm +++ b/gnu/packages/zip.scm @@ -171,4 +171,4 @@ recreates the stored directory structure by default.") (description "The Archive::Zip module allows a Perl program to create, manipulate, read, and write Zip archive files.") (home-page "http://search.cpan.org/~adamk/Archive-Zip-1.30/") - (license (package-license perl)))) + (license license:perl-license))) diff --git a/guix/licenses.scm b/guix/licenses.scm index c6945288fe..a95f89a7bf 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Rene Saavedra ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +63,7 @@ ncsa nmap openldap2.8 openssl + perl-license psfl public-domain qpl repoze @@ -407,6 +409,12 @@ at URI, which may be a file:// URI pointing the package's tree." "https://www.gnu.org/licenses/license-list#newOpenLDAP")) ;; lists OpenLDAPv2.7, which is virtually identical +(define perl-license + ;; The license of Perl, GPLv1+ or Artistic (we ignore the latter here). + ;; We define this alias to avoid circular dependencies introduced by the use + ;; of the '(package-license perl)' idiom. + gpl1+) + (define psfl (license "Python Software Foundation License" "http://docs.python.org/license.html" From 06110559bbc1a73544b197dab4cde2439aad4c66 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 2 May 2017 22:32:09 +0200 Subject: [PATCH 043/386] gnu: build: file-systems: Add ISO-9660. Fixes . * gnu/build/file-systems.scm (iso9660-superblock?, read-iso9660-primary-volume-descriptor, read-iso9660-superblock, iso9660-superblock-uuid, iso9660-uuid->string, iso9660-superblock-volume-name): New variables. (%partition-label-readers): Add iso9660. (%partition-uuid-readers): Add iso9660. --- gnu/build/file-systems.scm | 65 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 0cb84b8aad..47aa77dd3e 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -228,6 +228,63 @@ Trailing spaces are trimmed." (1 'errors-corrected) (_ 'fatal-error))) + +;;; +;;; ISO9660 file systems. +;;; + +;; . + +(define (iso9660-superblock? sblock) + "Return #t when SBLOCK is a iso9660 superblock." + (bytevector=? (sub-bytevector sblock 1 6) + ;; Note: "\x01" is the volume descriptor format version + (string->utf8 "CD001\x01"))) + +(define (read-iso9660-primary-volume-descriptor device offset) + "Find and read the first primary volume descriptor, starting at OFFSET. + Return #f if not found." + (let* ((sblock (read-superblock device offset 2048 iso9660-superblock?)) + (type-code (if sblock (array-ref sblock 0) 255))) + (match type-code + (255 #f) ; Volume Descriptor Set Terminator. + (1 sblock) ; Primary Volume Descriptor + (_ (read-iso9660-primary-volume-descriptor device (+ offset 2048)))))) + +(define (read-iso9660-superblock device) + "Return the raw contents of DEVICE's iso9660 superblock as a bytevector, or +#f if DEVICE does not contain a iso9660 file system." + ;; Start reading at sector 16. + (read-iso9660-primary-volume-descriptor device (* 2048 16))) + +(define (iso9660-superblock-uuid sblock) + "Return the modification time of a iso9660 superblock SBLOCK as a bytevector." + ;; Drops GMT offset for compatibility with Grub, blkid and /dev/disk/by-uuid. + ;; Compare Grub: "2014-12-02-19-30-23-00". + ;; Compare blkid result: "2014-12-02-19-30-23-00". + ;; Compare /dev/disk/by-uuid entry: "2014-12-02-19-30-23-00". + (sub-bytevector sblock 830 16)) + +(define (iso9660-uuid->string uuid) + "Given an UUID bytevector, return its timestamp string." + (define (digits->string bytes) + (latin1->string bytes (lambda (c) #f))) + (let* ((year (sub-bytevector uuid 0 4)) + (month (sub-bytevector uuid 4 2)) + (day (sub-bytevector uuid 6 2)) + (hour (sub-bytevector uuid 8 2)) + (minute (sub-bytevector uuid 10 2)) + (second (sub-bytevector uuid 12 2)) + (hundredths (sub-bytevector uuid 14 2)) + (parts (list year month day hour minute second hundredths))) + (string-append (string-join (map digits->string parts))))) + +(define (iso9660-superblock-volume-name sblock) + "Return the volume name of SBLOCK as a string. The volume name is an ASCII +string. Trailing spaces are trimmed." + (string-trim-right (latin1->string (sub-bytevector sblock 40 32) + (lambda (c) #f)) #\space)) + ;;; ;;; LUKS encrypted devices. @@ -340,7 +397,9 @@ partition field reader that returned a value." (_ #f))) (define %partition-label-readers - (list (partition-field-reader read-ext2-superblock + (list (partition-field-reader read-iso9660-superblock + iso9660-superblock-volume-name) + (partition-field-reader read-ext2-superblock ext2-superblock-volume-name) (partition-field-reader read-btrfs-superblock btrfs-superblock-volume-name) @@ -348,7 +407,9 @@ partition field reader that returned a value." fat32-superblock-volume-name))) (define %partition-uuid-readers - (list (partition-field-reader read-ext2-superblock + (list (partition-field-reader read-iso9660-superblock + iso9660-superblock-uuid) + (partition-field-reader read-ext2-superblock ext2-superblock-uuid) (partition-field-reader read-btrfs-superblock btrfs-superblock-uuid) From 14dbab425a1bf728bcca777ae626b498a2a54977 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 2 May 2017 23:57:38 -0400 Subject: [PATCH 044/386] gnu: imagemagick: Update to 6.9.8-4. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.8-4. --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 6423f91f46..48902bbfd0 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -46,14 +46,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.8-3") + (version "6.9.8-4") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "05hk841f5fw1hh7pfmpznlwcdr68ijk3s3zwqv0g009xh17q1max")))) + "04fb0x8zc9z11127wsnxlzg0jcgs4xwlx8fxy4jac2y3mmmlzhm6")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") From 4b13e28a8d336d693ed0392b660e48d6847a8bcf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 3 May 2017 07:33:35 +0300 Subject: [PATCH 045/386] gnu: Add gfortran@6. * gnu/packages/gcc.scm (gfortran@6): New variable. --- gnu/packages/gcc.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 00e2fa7d66..b083a6d69d 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -523,6 +523,10 @@ as the 'native-search-paths' field." (custom-gcc gcc-5 "gfortran" '("fortran") %generic-search-paths)) +(define-public gfortran-6 + (custom-gcc gcc-6 "gfortran" '("fortran") + %generic-search-paths)) + (define-public gfortran ;; Note: Update this when GCC changes! We cannot use ;; (custom-gcc gcc "fortran" …) because that would lead to a package object From 5e03b122cf295d24e01861ca942505d47f9aa59e Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 28 Apr 2017 17:09:53 +0200 Subject: [PATCH 046/386] services: herd: Make %shepherd-socket-file a parameter and export it. * gnu/services/herd.scm (%shepherd-socket-file): Make it an exported parameter. (open-connection): Adapt. --- gnu/services/herd.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index 03bfbf1d78..f8d60a4802 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,7 +24,9 @@ #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (ice-9 match) - #:export (shepherd-error? + #:export (%shepherd-socket-file + + shepherd-error? service-not-found-error? service-not-found-error-service action-not-found-error? @@ -58,9 +61,9 @@ ;;; Code: (define %shepherd-socket-file - "/var/run/shepherd/socket") + (make-parameter "/var/run/shepherd/socket")) -(define* (open-connection #:optional (file %shepherd-socket-file)) +(define* (open-connection #:optional (file (%shepherd-socket-file))) "Open a connection to the daemon, using the Unix-domain socket at FILE, and return the socket." ;; The protocol is sexp-based and UTF-8-encoded. From 723f0ce79745e346ac45cbbc8aed7bcbe32075c9 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 3 May 2017 12:04:39 +0200 Subject: [PATCH 047/386] gnu: connman: Update to 1.34. * gnu/packages/connman.scm (connman): Update to 1.34. --- gnu/packages/connman.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm index 5e00ffb4ee..b3d62d6f6f 100644 --- a/gnu/packages/connman.scm +++ b/gnu/packages/connman.scm @@ -41,7 +41,7 @@ (define-public connman (package (name "connman") - (version "1.33") + (version "1.34") (source (origin (method url-fetch) @@ -49,7 +49,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "187mknq2i907gf8dz0i79359gn1qc9mryvqkcgb280d7dw1ld2dw")))) + "07n71wcy1c4cc01ca4dl9k1jpdqr5nsyr33dqf7k87wwfa681859")))) (build-system gnu-build-system) (arguments `(#:configure-flags From 0c5658df966c93ec37750e8be94e89889db31979 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 3 May 2017 16:35:37 +0300 Subject: [PATCH 048/386] gnu: Add gcc@7. * gnu/packages/gcc.scm (gcc@7): New variable. --- gnu/packages/gcc.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index b083a6d69d..39e1aee2ec 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -399,6 +399,19 @@ Go. It also includes runtime support libraries for these languages.") "17xjz30jb65hcf714vn9gcxvrrji8j20xm7n33qg1ywhyzryfsph")) (patches (search-patches "gcc-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch")))))) +(define-public gcc-7 + (package + (inherit gcc-6) + (version "7.1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.bz2")) + (sha256 + (base32 + "05xwps0ci7wgxh50askpa2r9p8518qxdgh6ad7pnyk7n6p13d0ca")) + (patches (search-patches "gcc-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")))))) ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions and the gfortran definition From 1c7a78f157062c796f6779da645be6212d6cd592 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 27 Apr 2017 15:43:22 +0200 Subject: [PATCH 049/386] gnu: Add mes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mes.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/mes.scm | 74 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 gnu/packages/mes.scm diff --git a/gnu/local.mk b/gnu/local.mk index 2017868891..4c6e8af16c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -256,6 +256,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/maths.scm \ %D%/packages/mc.scm \ %D%/packages/mcrypt.scm \ + %D%/packages/mes.scm \ %D%/packages/messaging.scm \ %D%/packages/mingw.scm \ %D%/packages/mg.scm \ diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm new file mode 100644 index 0000000000..aaa00f78a6 --- /dev/null +++ b/gnu/packages/mes.scm @@ -0,0 +1,74 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Jan Nieuwenhuizen +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages mes) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages commencement) + #:use-module (gnu packages cross-base) + #:use-module (gnu packages gcc) + #:use-module (gnu packages guile) + #:use-module (gnu packages package-management) + #:use-module (gnu packages perl) + #:use-module (guix build-system gnu) + #:use-module (guix git-download) + #:use-module (guix licenses) + #:use-module (guix packages)) + +(define-public mes + (let ((commit "a437c173b9da1949ad966fd50dd4f26e522a910a") + (revision "0") + (triplet "i686-unknown-linux-gnu")) + (package + (name "mes") + (version (string-append "0.5-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/janneke/mes") + (commit commit))) + (file-name (string-append name "-" version)) + ;; TODO: Unbundle nyacc. + (sha256 + (base32 "1ynr0hc0k15307sgzv09k3y5rvy46h0wbh7zcblx1f9v7y8k90zv")))) + (build-system gnu-build-system) + (supported-systems '("x86_64-linux")) + (native-inputs + `(("guile" ,guile-2.2) + ;; Use cross-compiler rather than #:system "i686-linux" to get + ;; MesCC 64 bit .go files installed ready for use with Guile. + ("i686-linux-binutils" ,(cross-binutils triplet)) + ("i686-linux-gcc" ,(let ((triplet triplet)) (cross-gcc triplet))) + ("perl" ,perl))) ;build-aux/gitlog-to-changelog + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'generate-changelog + (lambda _ + (with-output-to-file "ChangeLog" + (lambda () + (display "Please run + build-aux/gitlog-to-changelog --srcdir= > ChangeLog\n"))) + #t))))) + (synopsis "Maxwell Equations of Software") + (description + "Mes aims to create full source bootstrapping for GuixSD. It +consists of a mutual self-hosting [close to Guile-] Scheme interpreter +prototype in C and a Nyacc-based C compiler in [Guile] Scheme.") + (home-page "https://gitlab.com/janneke/mes") + (license gpl3+)))) From 69daee23af49aeafcb1d250c90860f9253da719e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 3 May 2017 15:57:02 +0200 Subject: [PATCH 050/386] ui: Rename '_' to 'G_'. This avoids collisions with '_' when the latter is used as a 'match' pattern for instance. See . * guix/ui.scm: Rename '_' to 'G_'. * po/guix/Makevars (XGETTEXT_OPTIONS): Adjust accordingly. * build-aux/compile-all.scm (warnings): Remove 'format'. * gnu/packages.scm, gnu/services.scm, gnu/services/shepherd.scm, gnu/system.scm, gnu/system/shadow.scm, guix/gnupg.scm, guix/http-client.scm, guix/import/cpan.scm, guix/import/elpa.scm, guix/import/pypi.scm, guix/nar.scm, guix/scripts.scm, guix/scripts/archive.scm, guix/scripts/authenticate.scm, guix/scripts/build.scm, guix/scripts/challenge.scm, guix/scripts/container.scm, guix/scripts/container/exec.scm, guix/scripts/copy.scm, guix/scripts/download.scm, guix/scripts/edit.scm, guix/scripts/environment.scm, guix/scripts/gc.scm, guix/scripts/graph.scm, guix/scripts/hash.scm, guix/scripts/import.scm, guix/scripts/import/cpan.scm, guix/scripts/import/cran.scm, guix/scripts/import/crate.scm, guix/scripts/import/elpa.scm, guix/scripts/import/gem.scm, guix/scripts/import/gnu.scm, guix/scripts/import/hackage.scm, guix/scripts/import/nix.scm, guix/scripts/import/pypi.scm, guix/scripts/import/stackage.scm, guix/scripts/lint.scm, guix/scripts/offload.scm, guix/scripts/pack.scm, guix/scripts/package.scm, guix/scripts/perform-download.scm, guix/scripts/publish.scm, guix/scripts/pull.scm, guix/scripts/refresh.scm, guix/scripts/size.scm, guix/scripts/substitute.scm, guix/scripts/system.scm, guix/ssh.scm, guix/upstream.scm: Use 'G_' instead of '_'. Most of this change was obtained by running: "sed -i -e's/(_ "/(G_ "/g' `find -name \*.scm`". --- build-aux/compile-all.scm | 5 +- gnu/packages.scm | 18 ++--- gnu/services.scm | 10 +-- gnu/services/shepherd.scm | 4 +- gnu/system.scm | 8 +-- gnu/system/shadow.scm | 4 +- guix/gnupg.scm | 2 +- guix/http-client.scm | 4 +- guix/import/cpan.scm | 2 +- guix/import/elpa.scm | 4 +- guix/import/pypi.scm | 6 +- guix/nar.scm | 4 +- guix/scripts.scm | 4 +- guix/scripts/archive.scm | 46 ++++++------ guix/scripts/authenticate.scm | 12 ++-- guix/scripts/build.scm | 84 +++++++++++----------- guix/scripts/challenge.scm | 24 +++---- guix/scripts/container.scm | 14 ++-- guix/scripts/container/exec.scm | 16 ++--- guix/scripts/copy.scm | 16 ++--- guix/scripts/download.scm | 24 +++---- guix/scripts/edit.scm | 14 ++-- guix/scripts/environment.scm | 42 +++++------ guix/scripts/gc.scm | 44 ++++++------ guix/scripts/graph.scm | 30 ++++---- guix/scripts/hash.scm | 20 +++--- guix/scripts/import.scm | 14 ++-- guix/scripts/import/cpan.scm | 14 ++-- guix/scripts/import/cran.scm | 16 ++--- guix/scripts/import/crate.scm | 14 ++-- guix/scripts/import/elpa.scm | 16 ++--- guix/scripts/import/gem.scm | 14 ++-- guix/scripts/import/gnu.scm | 14 ++-- guix/scripts/import/hackage.scm | 24 +++---- guix/scripts/import/nix.scm | 10 +-- guix/scripts/import/pypi.scm | 14 ++-- guix/scripts/import/stackage.scm | 18 ++--- guix/scripts/lint.scm | 110 ++++++++++++++-------------- guix/scripts/offload.scm | 48 ++++++------- guix/scripts/pack.scm | 26 +++---- guix/scripts/package.scm | 78 ++++++++++---------- guix/scripts/perform-download.scm | 8 +-- guix/scripts/publish.scm | 46 ++++++------ guix/scripts/pull.scm | 26 +++---- guix/scripts/refresh.scm | 50 ++++++------- guix/scripts/size.scm | 22 +++--- guix/scripts/substitute.scm | 66 ++++++++--------- guix/scripts/system.scm | 116 +++++++++++++++--------------- guix/ssh.scm | 8 +-- guix/ui.scm | 116 +++++++++++++++--------------- guix/upstream.scm | 8 +-- po/guix/Makevars | 2 +- 52 files changed, 681 insertions(+), 678 deletions(-) diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm index d077d75229..147bb80196 100644 --- a/build-aux/compile-all.scm +++ b/build-aux/compile-all.scm @@ -24,7 +24,10 @@ (guix build utils)) (define warnings - '(unsupported-warning format unbound-variable arity-mismatch)) + ;; 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)) (define host (getenv "host")) diff --git a/gnu/packages.scm b/gnu/packages.scm index bec8163b2b..08f1340612 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -89,7 +89,7 @@ "Search the patch FILE-NAME. Raise an error if not found." (or (search-path (%patch-path) file-name) (raise (condition - (&message (message (format #f (_ "~a: patch not found") + (&message (message (format #f (G_ "~a: patch not found") file-name))))))) (define-syntax-rule (search-patches file-name ...) @@ -105,7 +105,7 @@ found." (raise (condition (&message (message - (format #f (_ "could not find bootstrap binary '~a' \ + (format #f (G_ "could not find bootstrap binary '~a' \ for system '~a'") file-name system))))))) @@ -157,7 +157,7 @@ returned list is sorted in alphabetical order." result) (const #f) ; skip (lambda (path stat errno result) - (warning (_ "cannot access `~a': ~a~%") + (warning (G_ "cannot access `~a': ~a~%") path (strerror errno)) result) '() @@ -310,21 +310,21 @@ return its return value." (match (find-best-packages-by-name name version) ((pkg . pkg*) (unless (null? pkg*) - (warning (_ "ambiguous package specification `~a'~%") spec) - (warning (_ "choosing ~a@~a from ~a~%") + (warning (G_ "ambiguous package specification `~a'~%") spec) + (warning (G_ "choosing ~a@~a from ~a~%") (package-name pkg) (package-version pkg) (location->string (package-location pkg)))) (match (package-superseded pkg) ((? package? new) - (info (_ "package '~a' has been superseded by '~a'~%") + (info (G_ "package '~a' has been superseded by '~a'~%") (package-name pkg) (package-name new)) new) (#f pkg))) (x (if version - (leave (_ "~A: package not found for version ~a~%") name version) - (leave (_ "~A: unknown package~%") name))))) + (leave (G_ "~A: package not found for version ~a~%") name version) + (leave (G_ "~A: unknown package~%") name))))) (define (specification->package spec) "Return a package matching SPEC. SPEC may be a package name, or a package @@ -352,6 +352,6 @@ version; if SPEC does not specify an output, return OUTPUT." (package (if (member sub-drv (package-outputs package)) (values package sub-drv) - (leave (_ "package `~a' lacks output `~a'~%") + (leave (G_ "package `~a' lacks output `~a'~%") (package-full-name package) sub-drv)))))) diff --git a/gnu/services.scm b/gnu/services.scm index b1b53fd18b..5c314748da 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -183,7 +183,7 @@ TYPE does not have a default value, an error is raised." (condition (&missing-value-service-error (type type) (location location)) (&message - (message (format #f (_ "~a: no value specified \ + (message (format #f (G_ "~a: no value specified \ for service of type '~a'") (location->string location) (service-type-name type))))))) @@ -624,7 +624,7 @@ kernel." (target-type target-type)) (&message (message - (format #f (_ "no target of type '~a' for service ~s") + (format #f (G_ "no target of type '~a' for service ~s") (service-type-name target-type) service)))))) (x @@ -635,7 +635,7 @@ kernel." (&message (message (format #f - (_ "more than one target service of type '~a'") + (G_ "more than one target service of type '~a'") (service-type-name target-type)))))))))) (fold add-edge edges (service-type-extensions (service-kind service)))) @@ -686,7 +686,7 @@ TARGET-TYPE; return the root service adjusted accordingly." (service #f) (target-type target-type)) (&message - (message (format #f (_ "service of type '~a' not found") + (message (format #f (G_ "service of type '~a' not found") (service-type-name target-type))))))) (x (raise @@ -696,7 +696,7 @@ TARGET-TYPE; return the root service adjusted accordingly." (&message (message (format #f - (_ "more than one target service of type '~a'") + (G_ "more than one target service of type '~a'") (service-type-name target-type))))))))) ;;; services.scm ends here. diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 5831220541..7281746ab2 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -163,7 +163,7 @@ assertion failure." (raise (condition (&message (message - (format #f (_ "service '~a' provided more than once") + (format #f (G_ "service '~a' provided more than once") symbol))))))) (for-each assert-unique (shepherd-service-provision service)) @@ -178,7 +178,7 @@ assertion failure." (raise (condition (&message (message - (format #f (_ "service '~a' requires '~a', \ + (format #f (G_ "service '~a' requires '~a', \ which is not provided by any service") (match (shepherd-service-provision service) ((head . _) head) diff --git a/gnu/system.scm b/gnu/system.scm index 44190bdfc6..a35a416cb0 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -522,7 +522,7 @@ This is for backward-compatibility of fields that used to be strings and are now file-like objects.." (match thing ((? string?) - (warning (_ "using a string for file '~a' is deprecated; \ + (warning (G_ "using a string for file '~a' is deprecated; \ use 'plain-file' instead~%") file-name) (plain-file file-name thing)) @@ -538,7 +538,7 @@ and are now file-like objects." (with-monad %store-monad (match thing ((? procedure?) - (warning (_ "using a monadic value for '~a' is deprecated; \ + (warning (G_ "using a monadic value for '~a' is deprecated; \ use 'plain-file' instead~%") file-name) thing) @@ -680,7 +680,7 @@ hardware-related operations as necessary when booting a Linux container." (#f (raise (condition (&message - (message (format #f (_ "~a: invalid locale name") name)))))) + (message (format #f (G_ "~a: invalid locale name") name)))))) (def def))) (define (operating-system-locale-directory os) @@ -862,7 +862,7 @@ this file is the reconstruction of GRUB menu entries for old configurations." (_ ;the old format "/"))))) (x ;unsupported format - (warning (_ "unrecognized boot parameters for '~a'~%") + (warning (G_ "unrecognized boot parameters for '~a'~%") system) #f))) diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index 1acfcc4866..b30ef8e390 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -220,7 +220,7 @@ set debug-file-directory ~/.guix-profile/lib/debug\n"))) (raise (condition (&message (message - (format #f (_ "supplementary group '~a' \ + (format #f (G_ "supplementary group '~a' \ of user '~a' is undeclared") group (user-account-name user)))))))) @@ -230,7 +230,7 @@ of user '~a' is undeclared") (raise (condition (&message (message - (format #f (_ "primary group '~a' \ + (format #f (G_ "primary group '~a' \ of user '~a' is undeclared") (user-account-group user) (user-account-name user))))))) diff --git a/guix/gnupg.scm b/guix/gnupg.scm index ef8f9000dc..ac0ed5ab2d 100644 --- a/guix/gnupg.scm +++ b/guix/gnupg.scm @@ -166,7 +166,7 @@ and 'interactive' (default)." (define (receive?) (let ((answer - (begin (format #t (_ "~a~a~%") + (begin (format #t (G_ "~a~a~%") "Would you like to download this key " "and add it to your keyring?") (read-line)))) diff --git a/guix/http-client.scm b/guix/http-client.scm index 6874c51db6..3c5441c38c 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -262,7 +262,7 @@ Raise an '&http-get-error' condition if downloading fails." 302) ; found (redirection) (let ((uri (resolve-uri-reference (response-location resp) uri))) (close-port port) - (format #t (_ "following redirection to `~a'...~%") + (format #t (G_ "following redirection to `~a'...~%") (uri->string uri)) (loop uri))) (else @@ -274,7 +274,7 @@ Raise an '&http-get-error' condition if downloading fails." (message (format #f - (_ "~a: HTTP download failed: ~a (~s)") + (G_ "~a: HTTP download failed: ~a (~s)") (uri->string uri) code (response-reason-phrase resp)))))))))))) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index b19d56ddcf..32c5c310e1 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -288,7 +288,7 @@ META." ;; Warn about inputs that are part of perl's core (unless (null? core-inputs) (for-each (lambda (module) - (warning (_ "input '~a' of ~a is in Perl core~%") + (warning (G_ "input '~a' of ~a is in Perl core~%") module (package-name package))) core-inputs))) (let ((version (cpan-version meta)) diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm index b1003304d0..858eea88e2 100644 --- a/guix/import/elpa.scm +++ b/guix/import/elpa.scm @@ -82,7 +82,7 @@ NAMES (strings)." ;; Use a relatively small TTL for the archive itself. (parameterize ((%http-cache-ttl (* 6 3600))) (call-with-downloaded-file url read)) - (leave (_ "~A: currently not supported~%") repo)))) + (leave (G_ "~A: currently not supported~%") repo)))) (define* (call-with-downloaded-file url proc #:optional (error-thunk #f)) "Fetch URL, store the content in a temporary file and call PROC with that @@ -94,7 +94,7 @@ return its value or leave if it's false." (lambda (key . args) (if error-thunk (error-thunk) - (leave (_ "~A: download failed~%") url))))) + (leave (G_ "~A: download failed~%") url))))) (define (is-elpa-package? name elpa-pkg-spec) "Return true if the string NAME corresponds to the name of the package diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 1e433e3fb3..4f9518f2eb 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -132,7 +132,7 @@ extracted in the current directory, and will be deleted." (string-drop-right basename 8)) (else (begin - (warning (_ "Unsupported archive format: \ + (warning (G_ "Unsupported archive format: \ cannot determine package dependencies")) #f))))) @@ -215,7 +215,7 @@ cannot determine package dependencies")) (delete-file req-file) (rmdir dirname))) (begin - (warning (_ "'tar xf' failed with exit code ~a\n") + (warning (G_ "'tar xf' failed with exit code ~a\n") exit-code) '()))) '()))) @@ -279,7 +279,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (and package (guard (c ((missing-source-error? c) (let ((package (missing-source-error-package c))) - (leave (_ "no source release for pypi package ~a ~a~%") + (leave (G_ "no source release for pypi package ~a ~a~%") (assoc-ref* package "info" "name") (assoc-ref* package "info" "version"))))) (let ((name (assoc-ref* package "info" "name")) diff --git a/guix/nar.scm b/guix/nar.scm index 739d3d3a57..9b4c608238 100644 --- a/guix/nar.scm +++ b/guix/nar.scm @@ -208,7 +208,7 @@ s-expression")) (hash (get-hash)) (has-sig? (= 1 (read-int port)))) (format log-port - (_ "importing file or directory '~a'...~%") + (G_ "importing file or directory '~a'...~%") file) ;; The signature may contain characters that are meant to be @@ -219,7 +219,7 @@ s-expression")) (begin (assert-valid-signature sig hash file) (format log-port - (_ "found valid signature for '~a'~%") + (G_ "found valid signature for '~a'~%") file) (finalize-store-file temp file #:references refs diff --git a/guix/scripts.scm b/guix/scripts.scm index bbee50bc3d..da35e71ac2 100644 --- a/guix/scripts.scm +++ b/guix/scripts.scm @@ -50,7 +50,7 @@ reporting." operand-proc seeds)) (lambda (key proc msg args . rest) ;; XXX: MSG is not i18n'd. - (leave (_ "invalid argument: ~a~%") + (leave (G_ "invalid argument: ~a~%") (apply format #f msg args))))) (define (environment-build-options) @@ -76,7 +76,7 @@ parameter of 'args-fold'." ;; Actual parsing takes place here. (apply args-fold* args options (lambda (opt name arg . rest) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) argument-handler seeds)) diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index 8137455a9d..5ea19784dc 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -58,41 +58,41 @@ (verbosity . 0))) (define (show-help) - (display (_ "Usage: guix archive [OPTION]... PACKAGE... + (display (G_ "Usage: guix archive [OPTION]... PACKAGE... Export/import one or more packages from/to the store.\n")) - (display (_ " + (display (G_ " --export export the specified files/packages to stdout")) - (display (_ " + (display (G_ " -r, --recursive combined with '--export', include dependencies")) - (display (_ " + (display (G_ " --import import from the archive passed on stdin")) - (display (_ " + (display (G_ " --missing print the files from stdin that are missing")) - (display (_ " + (display (G_ " -x, --extract=DIR extract the archive on stdin to DIR")) (newline) - (display (_ " + (display (G_ " --generate-key[=PARAMETERS] generate a key pair with the given parameters")) - (display (_ " + (display (G_ " --authorize authorize imports signed by the public key on stdin")) (newline) - (display (_ " + (display (G_ " -e, --expression=EXPR build the package or derivation EXPR evaluates to")) - (display (_ " + (display (G_ " -S, --source build the packages' source derivations")) - (display (_ " + (display (G_ " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) - (display (_ " + (display (G_ " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"")) (newline) (show-build-options-help) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -140,7 +140,7 @@ Export/import one or more packages from/to the store.\n")) (or arg %key-generation-parameters)))) (alist-cons 'generate-key params result))) (lambda (key proc err) - (leave (_ "invalid key generation parameters: ~a: ~a~%") + (leave (G_ "invalid key generation parameters: ~a: ~a~%") (error-source err) (error-string err)))))) (option '("authorize") #f #f @@ -179,7 +179,7 @@ derivation of a package." (let ((source (package-source p))) (if source (package-source-derivation store source) - (leave (_ "package `~a' has no source~%") + (leave (G_ "package `~a' has no source~%") (package-name p)))) (package-derivation store p system))) ((? procedure? proc) @@ -248,25 +248,25 @@ resulting archive to the standard output port." (build-derivations store drv)) (export-paths store files (current-output-port) #:recursive? (assoc-ref opts 'export-recursive?)) - (leave (_ "unable to export the given packages~%"))))) + (leave (G_ "unable to export the given packages~%"))))) (define (generate-key-pair parameters) "Generate a key pair with PARAMETERS, a canonical sexp, and store it in the right place." (when (or (file-exists? %public-key-file) (file-exists? %private-key-file)) - (leave (_ "key pair exists under '~a'; remove it first~%") + (leave (G_ "key pair exists under '~a'; remove it first~%") (dirname %public-key-file))) (format (current-error-port) - (_ "Please wait while gathering entropy to generate the key pair; + (G_ "Please wait while gathering entropy to generate the key pair; this may take time...~%")) (let* ((pair (catch 'gcry-error (lambda () (generate-key parameters)) (lambda (key proc err) - (leave (_ "key generation failed: ~a: ~a~%") + (leave (G_ "key generation failed: ~a: ~a~%") (error-source err) (error-string err))))) (public (find-sexp-token pair 'public-key)) @@ -293,13 +293,13 @@ the input port." (lambda () (string->canonical-sexp (read-string (current-input-port)))) (lambda (key proc err) - (leave (_ "failed to read public key: ~a: ~a~%") + (leave (G_ "failed to read public key: ~a: ~a~%") (error-source err) (error-string err))))) (let ((key (read-key)) (acl (current-acl))) (unless (eq? 'public-key (canonical-sexp-nth-data key 0)) - (leave (_ "s-expression does not denote a public key~%"))) + (leave (G_ "s-expression does not denote a public key~%"))) ;; Add KEY to the ACL and write that. (let ((acl (public-keys->acl (cons key (acl->public-keys acl))))) @@ -345,5 +345,5 @@ the input port." (restore-file (current-input-port) target))) (else (leave - (_ "either '--export' or '--import' \ + (G_ "either '--export' or '--import' \ must be specified~%")))))))))))) diff --git a/guix/scripts/authenticate.scm b/guix/scripts/authenticate.scm index d9a312f1da..8b19dc871b 100644 --- a/guix/scripts/authenticate.scm +++ b/guix/scripts/authenticate.scm @@ -56,7 +56,7 @@ both the hash and the actual signature." ".pub") read-canonical-sexp) (leave - (_ "cannot find public key for secret key '~a'~%") + (G_ "cannot find public key for secret key '~a'~%") key-file))) (data (read-hash-data port (key-type public-key))) (signature (signature-sexp data secret-key public-key))) @@ -76,11 +76,11 @@ to stdout upon success." (let ((hash (hash-data->bytevector data))) (display (bytevector->base16-string hash)) #t) ; success - (leave (_ "error: invalid signature: ~a~%") + (leave (G_ "error: invalid signature: ~a~%") (canonical-sexp->string signature))) - (leave (_ "error: unauthorized public key: ~a~%") + (leave (G_ "error: unauthorized public key: ~a~%") (canonical-sexp->string subject))) - (leave (_ "error: corrupt signature data: ~a~%") + (leave (G_ "error: corrupt signature data: ~a~%") (canonical-sexp->string signature))))) @@ -118,12 +118,12 @@ to stdout upon success." (("rsautl" "-verify" "-inkey" _ "-pubin") (validate-signature (current-input-port))) (("--help") - (display (_ "Usage: guix authenticate OPTION... + (display (G_ "Usage: guix authenticate OPTION... Sign or verify the signature on the given file. This tool is meant to be used internally by 'guix-daemon'.\n"))) (("--version") (show-version-and-exit "guix authenticate")) (else - (leave (_ "wrong arguments")))))) + (leave (G_ "wrong arguments")))))) ;;; authenticate.scm ends here diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 6bb1f72eb9..558e8e7719 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -121,7 +121,7 @@ found. Return #f if no build log was found." 0 paths)))) (lambda args - (leave (_ "failed to create GC root `~a': ~a~%") + (leave (G_ "failed to create GC root `~a': ~a~%") root (strerror (system-error-errno args))))))) (define register-root* @@ -203,7 +203,7 @@ could not be found." (proc (specification->package old) (specification->package new))) (x - (leave (_ "invalid replacement specification: ~s~%") spec)))) + (leave (G_ "invalid replacement specification: ~s~%") spec)))) specs)) (define (transform-package-inputs replacement-specs) @@ -260,13 +260,13 @@ current 'gnutls' package, after which version 3.5.4 is grafted onto them." (parser 'with-graft))))) (define (show-transformation-options-help) - (display (_ " + (display (G_ " --with-source=SOURCE use SOURCE when building the corresponding package")) - (display (_ " + (display (G_ " --with-input=PACKAGE=REPLACEMENT replace dependency PACKAGE by REPLACEMENT")) - (display (_ " + (display (G_ " --with-graft=PACKAGE=REPLACEMENT graft REPLACEMENT on packages that refer to PACKAGE"))) @@ -291,7 +291,7 @@ derivation, etc.), applies the transformations specified by OPTS." (((name . transform) obj) (let ((new (transform store obj))) (when (eq? new obj) - (warning (_ "transformation '~a' had no effect on ~a~%") + (warning (G_ "transformation '~a' had no effect on ~a~%") name (if (package? obj) (package-full-name obj) @@ -309,37 +309,37 @@ derivation, etc.), applies the transformations specified by OPTS." "Display on the current output port help about the standard command-line options handled by 'set-build-options-from-command-line', and listed in '%standard-build-options'." - (display (_ " + (display (G_ " -L, --load-path=DIR prepend DIR to the package module search path")) - (display (_ " + (display (G_ " -K, --keep-failed keep build tree of failed builds")) - (display (_ " + (display (G_ " -k, --keep-going keep going when some of the derivations fail")) - (display (_ " + (display (G_ " -n, --dry-run do not build the derivations")) - (display (_ " + (display (G_ " --fallback fall back to building when the substituter fails")) - (display (_ " + (display (G_ " --no-substitutes build instead of resorting to pre-built substitutes")) - (display (_ " + (display (G_ " --substitute-urls=URLS fetch substitute from URLS if they are authorized")) - (display (_ " + (display (G_ " --no-grafts do not graft packages")) - (display (_ " + (display (G_ " --no-build-hook do not attempt to offload builds via the build hook")) - (display (_ " + (display (G_ " --max-silent-time=SECONDS mark the build as failed after SECONDS of silence")) - (display (_ " + (display (G_ " --timeout=SECONDS mark the build as failed after SECONDS of activity")) - (display (_ " + (display (G_ " --verbosity=LEVEL use the given verbosity LEVEL")) - (display (_ " + (display (G_ " --rounds=N build N times in a row to detect non-determinism")) - (display (_ " + (display (G_ " -c, --cores=N allow the use of up to N CPU cores for the build")) - (display (_ " + (display (G_ " -M, --max-jobs=N allow at most N build jobs"))) (define (set-build-options-from-command-line store opts) @@ -445,14 +445,14 @@ options handled by 'set-build-options-from-command-line', and listed in (let ((c (false-if-exception (string->number arg)))) (if c (apply values (alist-cons 'cores c result) rest) - (leave (_ "not a number: '~a' option argument: ~a~%") + (leave (G_ "not a number: '~a' option argument: ~a~%") name arg))))) (option '(#\M "max-jobs") #t #f (lambda (opt name arg result . rest) (let ((c (false-if-exception (string->number arg)))) (if c (apply values (alist-cons 'max-jobs c result) rest) - (leave (_ "not a number: '~a' option argument: ~a~%") + (leave (G_ "not a number: '~a' option argument: ~a~%") name arg))))))) @@ -471,43 +471,43 @@ options handled by 'set-build-options-from-command-line', and listed in (verbosity . 0))) (define (show-help) - (display (_ "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION... + (display (G_ "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION... Build the given PACKAGE-OR-DERIVATION and return their output paths.\n")) - (display (_ " + (display (G_ " -e, --expression=EXPR build the package or derivation EXPR evaluates to")) - (display (_ " + (display (G_ " -f, --file=FILE build the package or derivation that the code within FILE evaluates to")) - (display (_ " + (display (G_ " -S, --source build the packages' source derivations")) - (display (_ " + (display (G_ " --sources[=TYPE] build source derivations; TYPE may optionally be one of \"package\", \"all\" (default), or \"transitive\"")) - (display (_ " + (display (G_ " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) - (display (_ " + (display (G_ " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"")) - (display (_ " + (display (G_ " -d, --derivations return the derivation paths of the given packages")) - (display (_ " + (display (G_ " --check rebuild items to check for non-determinism issues")) - (display (_ " + (display (G_ " --repair repair the specified items")) - (display (_ " + (display (G_ " -r, --root=FILE make FILE a symlink to the result, and register it as a garbage collector root")) - (display (_ " + (display (G_ " -q, --quiet do not show the build log")) - (display (_ " + (display (G_ " --log-file return the log file names for the given derivations")) (newline) (show-build-options-help) (newline) (show-transformation-options-help) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -534,7 +534,7 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n")) ("transitive" (alist-cons 'source package-transitive-sources result)) (else - (leave (_ "invalid argument: '~a' option argument: ~a, ~ + (leave (G_ "invalid argument: '~a' option argument: ~a, ~ must be one of 'package', 'all', or 'transitive'~%") name arg))))) (option '("check") #f #f @@ -587,7 +587,7 @@ must be one of 'package', 'all', or 'transitive'~%") build---packages, gexps, derivations, and so on." (define (validate-type x) (unless (or (package? x) (derivation? x) (gexp? x) (procedure? x)) - (leave (_ "~s: not something we can build~%") x))) + (leave (G_ "~s: not something we can build~%") x))) (define (ensure-list x) (let ((lst (match x @@ -641,7 +641,7 @@ build." (match (package-source p) (#f (format (current-error-port) - (_ "~a: warning: \ + (G_ "~a: warning: \ package '~a' has no source~%") (location->string (package-location p)) (package-name p)) @@ -675,7 +675,7 @@ needed." (log-url store file #:base-urls urls)))) (if log (format #t "~a~%" log) - (leave (_ "no build log for '~a'~%") file)))) + (leave (G_ "no build log for '~a'~%") file)))) ;;; diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm index 815bb789c3..681394f9cf 100644 --- a/guix/scripts/challenge.scm +++ b/guix/scripts/challenge.scm @@ -188,10 +188,10 @@ object. When VERBOSE?, display matches in addition to mismatches and inconclusive reports." (define (report-hashes item local narinfos) (if local - (report (_ " local hash: ~a~%") (hash->string local)) - (report (_ " no local build for '~a'~%") item)) + (report (G_ " local hash: ~a~%") (hash->string local)) + (report (G_ " no local build for '~a'~%") item)) (for-each (lambda (narinfo) - (report (_ " ~50a: ~a~%") + (report (G_ " ~50a: ~a~%") (uri->string (narinfo-uri narinfo)) (hash->string (narinfo-hash->sha256 (narinfo-hash narinfo))))) @@ -199,15 +199,15 @@ inconclusive reports." (match comparison-report (($ item 'mismatch local (narinfos ...)) - (report (_ "~a contents differ:~%") item) + (report (G_ "~a contents differ:~%") item) (report-hashes item local narinfos)) (($ item 'inconclusive #f narinfos) - (warning (_ "could not challenge '~a': no local build~%") item)) + (warning (G_ "could not challenge '~a': no local build~%") item)) (($ item 'inconclusive locals ()) - (warning (_ "could not challenge '~a': no substitutes~%") item)) + (warning (G_ "could not challenge '~a': no substitutes~%") item)) (($ item 'match local (narinfos ...)) (when verbose? - (report (_ "~a contents match:~%") item) + (report (G_ "~a contents match:~%") item) (report-hashes item local narinfos))))) @@ -216,17 +216,17 @@ inconclusive reports." ;;; (define (show-help) - (display (_ "Usage: guix challenge [PACKAGE...] + (display (G_ "Usage: guix challenge [PACKAGE...] Challenge the substitutes for PACKAGE... provided by one or more servers.\n")) - (display (_ " + (display (G_ " --substitute-urls=URLS compare build results with those at URLS")) - (display (_ " + (display (G_ " -v, --verbose show details about successful comparisons")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) diff --git a/guix/scripts/container.scm b/guix/scripts/container.scm index cd9f345b68..10aed2be75 100644 --- a/guix/scripts/container.scm +++ b/guix/scripts/container.scm @@ -22,17 +22,17 @@ #:export (guix-container)) (define (show-help) - (display (_ "Usage: guix container ACTION ARGS... + (display (G_ "Usage: guix container ACTION ARGS... Build and manipulate Linux containers.\n")) (newline) - (display (_ "The valid values for ACTION are:\n")) + (display (G_ "The valid values for ACTION are:\n")) (newline) - (display (_ "\ + (display (G_ "\ exec execute a command inside of an existing container\n")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -50,7 +50,7 @@ Build and manipulate Linux containers.\n")) (match args (() (format (current-error-port) - (_ "guix container: missing action~%"))) + (G_ "guix container: missing action~%"))) ((or ("-h") ("--help")) (show-help) (exit 0)) @@ -60,4 +60,4 @@ Build and manipulate Linux containers.\n")) (if (member action %actions) (apply (resolve-action action) args) (format (current-error-port) - (_ "guix container: invalid action~%"))))))) + (G_ "guix container: invalid action~%"))))))) diff --git a/guix/scripts/container/exec.scm b/guix/scripts/container/exec.scm index d6d267daff..d598f5cac4 100644 --- a/guix/scripts/container/exec.scm +++ b/guix/scripts/container/exec.scm @@ -37,12 +37,12 @@ (show-version-and-exit "guix container exec"))))) (define (show-help) - (display (_ "Usage: guix container exec PID COMMAND [ARGS...] + (display (G_ "Usage: guix container exec PID COMMAND [ARGS...] Execute COMMMAND within the container process PID.\n")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -66,7 +66,7 @@ and the other containing arguments for the command to be executed." (define (guix-container-exec . args) (define (handle-argument arg result) (if (assoc-ref result 'pid) - (leave (_ "~a: extraneous argument~%") arg) + (leave (G_ "~a: extraneous argument~%") arg) (alist-cons 'pid (string->number* arg) result))) (with-error-handling @@ -84,13 +84,13 @@ and the other containing arguments for the command to be executed." '("TERM")))) (unless pid - (leave (_ "no pid specified~%"))) + (leave (G_ "no pid specified~%"))) (when (null? command) - (leave (_ "no command specified~%"))) + (leave (G_ "no command specified~%"))) (unless (file-exists? (string-append "/proc/" (number->string pid))) - (leave (_ "no such process ~d~%") pid)) + (leave (G_ "no such process ~d~%") pid)) (let ((result (container-excursion pid (lambda () @@ -102,4 +102,4 @@ and the other containing arguments for the command to be executed." environment) (apply execlp program program program-args))))))) (unless (zero? result) - (leave (_ "exec failed with status ~d~%") result))))))) + (leave (G_ "exec failed with status ~d~%") result))))))) diff --git a/guix/scripts/copy.scm b/guix/scripts/copy.scm index bc225044fb..45f7cbbad5 100644 --- a/guix/scripts/copy.scm +++ b/guix/scripts/copy.scm @@ -56,9 +56,9 @@ number (or #f) corresponding to SPEC." ((? integer? port) (values user host port)) (x - (leave (_ "~a: invalid TCP port number~%") port)))) + (leave (G_ "~a: invalid TCP port number~%") port)))) (x - (leave (_ "~a: invalid SSH specification~%") spec)))) + (leave (G_ "~a: invalid SSH specification~%") spec)))) (define (send-to-remote-host target opts) "Send ITEMS to TARGET. ITEMS is a list of store items or package names; for ; @@ -109,18 +109,18 @@ package names, build the underlying packages before sending them." ;;; (define (show-help) - (display (_ "Usage: guix copy [OPTION]... ITEMS... + (display (G_ "Usage: guix copy [OPTION]... ITEMS... Copy ITEMS to or from the specified host over SSH.\n")) - (display (_ " + (display (G_ " --to=HOST send ITEMS to HOST")) - (display (_ " + (display (G_ " --from=HOST receive ITEMS from HOST")) (newline) (show-build-options-help) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -165,4 +165,4 @@ Copy ITEMS to or from the specified host over SSH.\n")) (target (assoc-ref opts 'destination))) (cond (target (send-to-remote-host target opts)) (source (retrieve-from-remote-host source opts)) - (else (leave (_ "use '--to' or '--from'~%"))))))) + (else (leave (G_ "use '--to' or '--from'~%"))))))) diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm index 1ddfd648cd..bb3dc76741 100644 --- a/guix/scripts/download.scm +++ b/guix/scripts/download.scm @@ -64,23 +64,23 @@ (download-proc . ,download-to-store*))) (define (show-help) - (display (_ "Usage: guix download [OPTION] URL + (display (G_ "Usage: guix download [OPTION] URL Download the file at URL to the store or to the given file, and print its file name and the hash of its contents. Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex' and 'hexadecimal' can be used as well).\n")) - (format #t (_ " + (format #t (G_ " -f, --format=FMT write the hash in the given format")) - (format #t (_ " + (format #t (G_ " --no-check-certificate do not validate the certificate of HTTPS servers ")) - (format #f (_ " + (format #f (G_ " -o, --output=FILE download to FILE")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -98,7 +98,7 @@ Supported formats: 'nix-base32' (default), 'base32', and 'base16' ((or "base16" "hex" "hexadecimal") bytevector->base16-string) (x - (leave (_ "unsupported hash format: ~a~%") arg)))) + (leave (G_ "unsupported hash format: ~a~%") arg)))) (alist-cons 'format fmt-proc (alist-delete 'format result)))) @@ -130,10 +130,10 @@ Supported formats: 'nix-base32' (default), 'base32', and 'base16' ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (when (assq 'argument result) - (leave (_ "~A: extraneous argument~%") arg)) + (leave (G_ "~A: extraneous argument~%") arg)) (alist-cons 'argument arg result)) %default-options)) @@ -141,9 +141,9 @@ Supported formats: 'nix-base32' (default), 'base32', and 'base16' (with-error-handling (let* ((opts (parse-options)) (arg (or (assq-ref opts 'argument) - (leave (_ "no download URI was specified~%")))) + (leave (G_ "no download URI was specified~%")))) (uri (or (string->uri arg) - (leave (_ "~a: failed to parse URI~%") + (leave (G_ "~a: failed to parse URI~%") arg))) (fetch (assq-ref opts 'download-proc)) (path (parameterize ((current-terminal-columns @@ -153,7 +153,7 @@ Supported formats: 'nix-base32' (default), 'base32', and 'base16' (assq-ref opts 'verify-certificate?)))) (hash (call-with-input-file (or path - (leave (_ "~a: download failed~%") + (leave (G_ "~a: download failed~%") arg)) port-sha256)) (fmt (assq-ref opts 'format))) diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm index 555796a69c..8b2b61d76a 100644 --- a/guix/scripts/edit.scm +++ b/guix/scripts/edit.scm @@ -38,12 +38,12 @@ (show-version-and-exit "guix edit"))))) (define (show-help) - (display (_ "Usage: guix edit PACKAGE... + (display (G_ "Usage: guix edit PACKAGE... Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -59,7 +59,7 @@ Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n")) (let ((absolute-file-name (search-path path file))) (unless absolute-file-name ;; Shouldn't happen unless somebody fiddled with the 'location' field. - (leave (_ "file '~a' not found in search path ~s~%") + (leave (G_ "file '~a' not found in search path ~s~%") file path)) absolute-file-name)) @@ -78,7 +78,7 @@ line." ;; Return the list of package names. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) cons '())) @@ -87,7 +87,7 @@ line." (packages (map specification->package specs))) (for-each (lambda (package) (unless (package-location package) - (leave (_ "source location of package '~a' is unknown~%") + (leave (G_ "source location of package '~a' is unknown~%") (package-full-name package)))) packages) @@ -100,5 +100,5 @@ line." (exit (system (string-join (cons (%editor) file-names)))))) (lambda args (let ((errno (system-error-errno args))) - (leave (_ "failed to launch '~a': ~a~%") + (leave (G_ "failed to launch '~a': ~a~%") (%editor) (strerror errno)))))))) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 5a6abd00fb..0b2b964bf7 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -132,45 +132,45 @@ and an output string." (package->bag package))))) (define (show-help) - (display (_ "Usage: guix environment [OPTION]... PACKAGE... [-- COMMAND...] + (display (G_ "Usage: guix environment [OPTION]... PACKAGE... [-- COMMAND...] Build an environment that includes the dependencies of PACKAGE and execute COMMAND or an interactive shell in that environment.\n")) - (display (_ " + (display (G_ " -e, --expression=EXPR create environment for the package that EXPR evaluates to")) - (display (_ " + (display (G_ " -l, --load=FILE create environment for the package that the code within FILE evaluates to")) - (display (_ " + (display (G_ " --ad-hoc include all specified packages in the environment instead of only their inputs")) - (display (_ " + (display (G_ " --pure unset existing environment variables")) - (display (_ " + (display (G_ " --search-paths display needed environment variable definitions")) - (display (_ " + (display (G_ " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) - (display (_ " + (display (G_ " -r, --root=FILE make FILE a symlink to the result, and register it as a garbage collector root")) - (display (_ " + (display (G_ " -C, --container run command within an isolated container")) - (display (_ " + (display (G_ " -N, --network allow containers to access the network")) - (display (_ " + (display (G_ " --share=SPEC for containers, share writable host file system according to SPEC")) - (display (_ " + (display (G_ " --expose=SPEC for containers, expose read-only host file system according to SPEC")) - (display (_ " + (display (G_ " --bootstrap use bootstrap binaries to build the environment")) (newline) (show-build-options-help) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -501,16 +501,16 @@ Otherwise, return the derivation for the Bash package." "Check if containers can be created and exit with an informative error message if any test fails." (unless (user-namespace-supported?) - (report-error (_ "cannot create container: user namespaces unavailable\n")) - (leave (_ "is your kernel version < 3.10?\n"))) + (report-error (G_ "cannot create container: user namespaces unavailable\n")) + (leave (G_ "is your kernel version < 3.10?\n"))) (unless (unprivileged-user-namespace-supported?) - (report-error (_ "cannot create container: unprivileged user cannot create user namespaces\n")) - (leave (_ "please set /proc/sys/kernel/unprivileged_userns_clone to \"1\"\n"))) + (report-error (G_ "cannot create container: unprivileged user cannot create user namespaces\n")) + (leave (G_ "please set /proc/sys/kernel/unprivileged_userns_clone to \"1\"\n"))) (unless (setgroups-supported?) - (report-error (_ "cannot create container: /proc/self/setgroups does not exist\n")) - (leave (_ "is your kernel version < 3.19?\n")))) + (report-error (G_ "cannot create container: /proc/self/setgroups does not exist\n")) + (leave (G_ "is your kernel version < 3.19?\n")))) (define (register-gc-root target root) "Make ROOT an indirect root to TARGET. This is procedure is idempotent." diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm index bdfee4308c..221467a108 100644 --- a/guix/scripts/gc.scm +++ b/guix/scripts/gc.scm @@ -39,41 +39,41 @@ `((action . collect-garbage))) (define (show-help) - (display (_ "Usage: guix gc [OPTION]... PATHS... + (display (G_ "Usage: guix gc [OPTION]... PATHS... Invoke the garbage collector.\n")) - (display (_ " + (display (G_ " -C, --collect-garbage[=MIN] collect at least MIN bytes of garbage")) - (display (_ " + (display (G_ " -F, --free-space=FREE attempt to reach FREE available space in the store")) - (display (_ " + (display (G_ " -d, --delete attempt to delete PATHS")) - (display (_ " + (display (G_ " --optimize optimize the store by deduplicating identical files")) - (display (_ " + (display (G_ " --list-dead list dead paths")) - (display (_ " + (display (G_ " --list-live list live paths")) (newline) - (display (_ " + (display (G_ " --references list the references of PATHS")) - (display (_ " + (display (G_ " -R, --requisites list the requisites of PATHS")) - (display (_ " + (display (G_ " --referrers list the referrers of PATHS")) (newline) - (display (_ " + (display (G_ " --verify[=OPTS] verify the integrity of the store; OPTS is a comma-separated combination of 'repair' and 'contents'")) - (display (_ " + (display (G_ " --list-failures list cached build failures")) - (display (_ " + (display (G_ " --clear-failures remove PATHS from the set of cached failures")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -97,7 +97,7 @@ Invoke the garbage collector.\n")) (let ((amount (size->number arg))) (if arg (alist-cons 'min-freed amount result) - (leave (_ "invalid amount of storage: ~a~%") + (leave (G_ "invalid amount of storage: ~a~%") arg)))) (#f result))))) (option '(#\F "free-space") #t #f @@ -161,7 +161,7 @@ Invoke the garbage collector.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -188,10 +188,10 @@ Invoke the garbage collector.\n")) (free (* (file-system-block-size fs) (file-system-blocks-available fs)))) (if (> free space) - (info (_ "already ~h bytes available on ~a, nothing to do~%") + (info (G_ "already ~h bytes available on ~a, nothing to do~%") free (%store-prefix)) (let ((to-free (- space free))) - (info (_ "freeing ~h bytes~%") to-free) + (info (G_ "freeing ~h bytes~%") to-free) (collect-garbage store to-free))))) (with-error-handling @@ -203,7 +203,7 @@ Invoke the garbage collector.\n")) opts))) (define (assert-no-extra-arguments) (unless (null? paths) - (leave (_ "extraneous arguments: ~{~a ~}~%") paths))) + (leave (G_ "extraneous arguments: ~{~a ~}~%") paths))) (define (list-relatives relatives) (for-each (compose (lambda (path) @@ -223,10 +223,10 @@ Invoke the garbage collector.\n")) (ensure-free-space store free-space)) (min-freed (let-values (((paths freed) (collect-garbage store min-freed))) - (info (_ "freed ~h bytes~%") freed))) + (info (G_ "freed ~h bytes~%") freed))) (else (let-values (((paths freed) (collect-garbage store))) - (info (_ "freed ~h bytes~%") freed)))))) + (info (G_ "freed ~h bytes~%") freed)))))) ((delete) (delete-paths store (map direct-store-path paths))) ((list-references) diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index 9804d41929..0af1fa3ad3 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -81,7 +81,7 @@ name." (raise (condition (&message - (message (format #f (_ "~a: invalid argument (package name expected)") + (message (format #f (G_ "~a: invalid argument (package name expected)") x)))))))) (define nodes-from-package @@ -305,7 +305,7 @@ substitutes." ((info) (values (substitutable-references info) store)) (() - (leave (_ "references for '~a' are not known~%") + (leave (G_ "references for '~a' are not known~%") item))))) (values (references store item) store)))) @@ -355,18 +355,18 @@ substitutes." (or (find (lambda (type) (string=? (node-type-name type) name)) %node-types) - (leave (_ "~a: unknown node type~%") name))) + (leave (G_ "~a: unknown node type~%") name))) (define (lookup-backend name) "Return the graph backend called NAME. Raise an error if it is not found." (or (find (lambda (backend) (string=? (graph-backend-name backend) name)) %graph-backends) - (leave (_ "~a: unknown backend~%") name))) + (leave (G_ "~a: unknown backend~%") name))) (define (list-node-types) "Print the available node types along with their synopsis." - (display (_ "The available node types are:\n")) + (display (G_ "The available node types are:\n")) (newline) (for-each (lambda (type) (format #t " - ~a: ~a~%" @@ -376,7 +376,7 @@ substitutes." (define (list-backends) "Print the available backends along with their synopsis." - (display (_ "The available backend types are:\n")) + (display (G_ "The available backend types are:\n")) (newline) (for-each (lambda (backend) (format #t " - ~a: ~a~%" @@ -420,22 +420,22 @@ substitutes." (define (show-help) ;; TRANSLATORS: Here 'dot' is the name of a program; it must not be ;; translated. - (display (_ "Usage: guix graph PACKAGE... + (display (G_ "Usage: guix graph PACKAGE... Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n")) - (display (_ " + (display (G_ " -b, --backend=TYPE produce a graph with the given backend TYPE")) - (display (_ " + (display (G_ " --list-backends list the available graph backends")) - (display (_ " + (display (G_ " -t, --type=TYPE represent nodes of the given TYPE")) - (display (_ " + (display (G_ " --list-types list the available graph types")) - (display (_ " + (display (G_ " -e, --expression=EXPR consider the package EXPR evaluates to")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -453,7 +453,7 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n")) (with-error-handling (let* ((opts (args-fold* args %options (lambda (opt name arg . rest) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm index a048b53461..1fa6bb8d1f 100644 --- a/guix/scripts/hash.scm +++ b/guix/scripts/hash.scm @@ -44,21 +44,21 @@ `((format . ,bytevector->nix-base32-string))) (define (show-help) - (display (_ "Usage: guix hash [OPTION] FILE + (display (G_ "Usage: guix hash [OPTION] FILE Return the cryptographic hash of FILE. Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex' and 'hexadecimal' can be used as well).\n")) - (format #t (_ " + (format #t (G_ " -x, --exclude-vcs exclude version control directories")) - (format #t (_ " + (format #t (G_ " -f, --format=FMT write the hash in the given format")) - (format #t (_ " + (format #t (G_ " -r, --recursive compute the hash on FILE recursively")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -79,7 +79,7 @@ and 'hexadecimal' can be used as well).\n")) ((or "base16" "hex" "hexadecimal") bytevector->base16-string) (x - (leave (_ "unsupported hash format: ~a~%") + (leave (G_ "unsupported hash format: ~a~%") arg)))) (alist-cons 'format fmt-proc @@ -106,7 +106,7 @@ and 'hexadecimal' can be used as well).\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "unrecognized option: ~a~%") + (leave (G_ "unrecognized option: ~a~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) @@ -152,7 +152,7 @@ and 'hexadecimal' can be used as well).\n")) (lambda () (format #t "~a~%" (fmt (file-hash file)))) (lambda args - (leave (_ "~a~%") + (leave (G_ "~a~%") (strerror (system-error-errno args)))))) (x - (leave (_ "wrong number of arguments~%")))))) + (leave (G_ "wrong number of arguments~%")))))) diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index 8c2f705738..203cda8049 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -83,15 +83,15 @@ rather than \\n." (module-ref module proc))) (define (show-help) - (display (_ "Usage: guix import IMPORTER ARGS ... + (display (G_ "Usage: guix import IMPORTER ARGS ... Run IMPORTER with ARGS.\n")) (newline) - (display (_ "IMPORTER must be one of the importers listed below:\n")) + (display (G_ "IMPORTER must be one of the importers listed below:\n")) (newline) (format #t "~{ ~a~%~}" importers) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -100,7 +100,7 @@ Run IMPORTER with ARGS.\n")) (match args (() (format (current-error-port) - (_ "guix import: missing importer name~%"))) + (G_ "guix import: missing importer name~%"))) ((or ("-h") ("--help")) (show-help) (exit 0)) @@ -120,5 +120,5 @@ Run IMPORTER with ARGS.\n")) (newline)) expressions)) (x - (leave (_ "'~a' import failed~%") importer)))) - (leave (_ "~a: invalid importer~%") importer))))) + (leave (G_ "'~a' import failed~%") importer)))) + (leave (G_ "~a: invalid importer~%") importer))))) diff --git a/guix/scripts/import/cpan.scm b/guix/scripts/import/cpan.scm index 3d470f684d..77ffe1f38e 100644 --- a/guix/scripts/import/cpan.scm +++ b/guix/scripts/import/cpan.scm @@ -38,11 +38,11 @@ '()) (define (show-help) - (display (_ "Usage: guix import cpan PACKAGE-NAME + (display (G_ "Usage: guix import cpan PACKAGE-NAME Import and convert the CPAN package for PACKAGE-NAME.\n")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -68,7 +68,7 @@ Import and convert the CPAN package for PACKAGE-NAME.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -83,10 +83,10 @@ Import and convert the CPAN package for PACKAGE-NAME.\n")) ((package-name) (let ((sexp (cpan->guix-package package-name))) (unless sexp - (leave (_ "failed to download meta-data for package '~a'~%") + (leave (G_ "failed to download meta-data for package '~a'~%") package-name)) sexp)) (() - (leave (_ "too few arguments~%"))) + (leave (G_ "too few arguments~%"))) ((many ...) - (leave (_ "too many arguments~%")))))) + (leave (G_ "too many arguments~%")))))) diff --git a/guix/scripts/import/cran.scm b/guix/scripts/import/cran.scm index c9a9eab762..d65c644c05 100644 --- a/guix/scripts/import/cran.scm +++ b/guix/scripts/import/cran.scm @@ -40,13 +40,13 @@ '()) (define (show-help) - (display (_ "Usage: guix import cran PACKAGE-NAME + (display (G_ "Usage: guix import cran PACKAGE-NAME Import and convert the CRAN package for PACKAGE-NAME.\n")) - (display (_ " + (display (G_ " -a, --archive=ARCHIVE specify the archive repository")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -79,7 +79,7 @@ Import and convert the CRAN package for PACKAGE-NAME.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -105,10 +105,10 @@ Import and convert the CRAN package for PACKAGE-NAME.\n")) (let ((sexp (cran->guix-package package-name (or (assoc-ref opts 'repo) 'cran)))) (unless sexp - (leave (_ "failed to download description for package '~a'~%") + (leave (G_ "failed to download description for package '~a'~%") package-name)) sexp))) (() - (leave (_ "too few arguments~%"))) + (leave (G_ "too few arguments~%"))) ((many ...) - (leave (_ "too many arguments~%")))))) + (leave (G_ "too many arguments~%")))))) diff --git a/guix/scripts/import/crate.scm b/guix/scripts/import/crate.scm index 4337a0b623..cab9a4397b 100644 --- a/guix/scripts/import/crate.scm +++ b/guix/scripts/import/crate.scm @@ -40,11 +40,11 @@ '()) (define (show-help) - (display (_ "Usage: guix import crate PACKAGE-NAME + (display (G_ "Usage: guix import crate PACKAGE-NAME Import and convert the crate.io package for PACKAGE-NAME.\n")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -70,7 +70,7 @@ Import and convert the crate.io package for PACKAGE-NAME.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -85,10 +85,10 @@ Import and convert the crate.io package for PACKAGE-NAME.\n")) ((package-name) (let ((sexp (crate->guix-package package-name))) (unless sexp - (leave (_ "failed to download meta-data for package '~a'~%") + (leave (G_ "failed to download meta-data for package '~a'~%") package-name)) sexp)) (() - (leave (_ "too few arguments~%"))) + (leave (G_ "too few arguments~%"))) ((many ...) - (leave (_ "too many arguments~%")))))) + (leave (G_ "too many arguments~%")))))) diff --git a/guix/scripts/import/elpa.scm b/guix/scripts/import/elpa.scm index b22a7c4c23..34eb16485e 100644 --- a/guix/scripts/import/elpa.scm +++ b/guix/scripts/import/elpa.scm @@ -38,13 +38,13 @@ '((repo . gnu))) (define (show-help) - (display (_ "Usage: guix import elpa PACKAGE-NAME + (display (G_ "Usage: guix import elpa PACKAGE-NAME Import the latest package named PACKAGE-NAME from an ELPA repository.\n")) - (display (_ " + (display (G_ " -a, --archive=ARCHIVE specify the archive repository")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -74,7 +74,7 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -89,11 +89,11 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n")) ((package-name) (let ((sexp (elpa->guix-package package-name (assoc-ref opts 'repo)))) (unless sexp - (leave (_ "failed to download package '~a'~%") package-name)) + (leave (G_ "failed to download package '~a'~%") package-name)) sexp)) (() - (leave (_ "too few arguments~%"))) + (leave (G_ "too few arguments~%"))) ((many ...) - (leave (_ "too many arguments~%")))))) + (leave (G_ "too many arguments~%")))))) ;;; elpa.scm ends here diff --git a/guix/scripts/import/gem.scm b/guix/scripts/import/gem.scm index a5dd2a7822..349a0a072a 100644 --- a/guix/scripts/import/gem.scm +++ b/guix/scripts/import/gem.scm @@ -38,11 +38,11 @@ '()) (define (show-help) - (display (_ "Usage: guix import gem PACKAGE-NAME + (display (G_ "Usage: guix import gem PACKAGE-NAME Import and convert the RubyGems package for PACKAGE-NAME.\n")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -68,7 +68,7 @@ Import and convert the RubyGems package for PACKAGE-NAME.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -83,10 +83,10 @@ Import and convert the RubyGems package for PACKAGE-NAME.\n")) ((package-name) (let ((sexp (gem->guix-package package-name))) (unless sexp - (leave (_ "failed to download meta-data for package '~a'~%") + (leave (G_ "failed to download meta-data for package '~a'~%") package-name)) sexp)) (() - (leave (_ "too few arguments~%"))) + (leave (G_ "too few arguments~%"))) ((many ...) - (leave (_ "too many arguments~%")))))) + (leave (G_ "too many arguments~%")))))) diff --git a/guix/scripts/import/gnu.scm b/guix/scripts/import/gnu.scm index 66861f5837..ae98370037 100644 --- a/guix/scripts/import/gnu.scm +++ b/guix/scripts/import/gnu.scm @@ -37,18 +37,18 @@ '((key-download . interactive))) (define (show-help) - (display (_ "Usage: guix import gnu [OPTION...] PACKAGE + (display (G_ "Usage: guix import gnu [OPTION...] PACKAGE Return a package declaration template for PACKAGE, a GNU package.\n")) ;; '--key-download' taken from (guix scripts refresh). - (display (_ " + (display (G_ " --key-download=POLICY handle missing OpenPGP keys according to POLICY: 'always', 'never', and 'interactive', which is also used when 'key-download' is not specified")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -69,7 +69,7 @@ Return a package declaration template for PACKAGE, a GNU package.\n")) (alist-cons 'key-download (string->symbol arg) result)) (x - (leave (_ "unsupported policy: ~a~%") + (leave (G_ "unsupported policy: ~a~%") arg))))) %standard-import-options)) @@ -83,7 +83,7 @@ Return a package declaration template for PACKAGE, a GNU package.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -100,6 +100,6 @@ Return a package declaration template for PACKAGE, a GNU package.\n")) (gnu->guix-package name #:key-download (assoc-ref opts 'key-download)))) (x - (leave (_ "wrong number of arguments~%")))))) + (leave (G_ "wrong number of arguments~%")))))) ;;; gnu.scm ends here diff --git a/guix/scripts/import/hackage.scm b/guix/scripts/import/hackage.scm index f2c20026b6..969f637846 100644 --- a/guix/scripts/import/hackage.scm +++ b/guix/scripts/import/hackage.scm @@ -44,23 +44,23 @@ (cabal-environment . ,`(("impl" . ,ghc-default-version))))) (define (show-help) - (display (_ "Usage: guix import hackage PACKAGE-NAME + (display (G_ "Usage: guix import hackage PACKAGE-NAME Import and convert the Hackage package for PACKAGE-NAME. If PACKAGE-NAME includes a suffix constituted by a at-sign followed by a numerical version (as used with Guix packages), then a definition for the specified version of the package will be generated. If no version suffix is pecified, then the generated package definition will correspond to the latest available version.\n")) - (display (_ " + (display (G_ " -e ALIST, --cabal-environment=ALIST specify environment for Cabal evaluation")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -s, --stdin read from standard input")) - (display (_ " + (display (G_ " -t, --no-test-dependencies don't include test-only dependencies")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -101,7 +101,7 @@ version.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -130,18 +130,18 @@ version.\n")) (() (run-importer "stdin" opts (lambda () - (leave (_ "failed to import cabal file \ + (leave (G_ "failed to import cabal file \ from standard input~%"))))) ((many ...) - (leave (_ "too many arguments~%")))) + (leave (G_ "too many arguments~%")))) (match args ((package-name) (run-importer package-name opts (lambda () - (leave (_ "failed to download cabal file \ + (leave (G_ "failed to download cabal file \ for package '~a'~%") package-name)))) (() - (leave (_ "too few arguments~%"))) + (leave (G_ "too few arguments~%"))) ((many ...) - (leave (_ "too many arguments~%"))))))) + (leave (G_ "too many arguments~%"))))))) diff --git a/guix/scripts/import/nix.scm b/guix/scripts/import/nix.scm index 05e6e4b85d..45ca7e3fcf 100644 --- a/guix/scripts/import/nix.scm +++ b/guix/scripts/import/nix.scm @@ -38,11 +38,11 @@ '()) (define (show-help) - (display (_ "Usage: guix import nix NIXPKGS ATTRIBUTE + (display (G_ "Usage: guix import nix NIXPKGS ATTRIBUTE Import and convert the Nix expression ATTRIBUTE of NIXPKGS.\n")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -68,7 +68,7 @@ Import and convert the Nix expression ATTRIBUTE of NIXPKGS.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -87,4 +87,4 @@ Import and convert the Nix expression ATTRIBUTE of NIXPKGS.\n")) (location-file loc) (location-line loc)) expr)) (x - (leave (_ "wrong number of arguments~%")))))) + (leave (G_ "wrong number of arguments~%")))))) diff --git a/guix/scripts/import/pypi.scm b/guix/scripts/import/pypi.scm index 7166b014eb..59a925a3ca 100644 --- a/guix/scripts/import/pypi.scm +++ b/guix/scripts/import/pypi.scm @@ -38,11 +38,11 @@ '()) (define (show-help) - (display (_ "Usage: guix import pypi PACKAGE-NAME + (display (G_ "Usage: guix import pypi PACKAGE-NAME Import and convert the PyPI package for PACKAGE-NAME.\n")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -68,7 +68,7 @@ Import and convert the PyPI package for PACKAGE-NAME.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -83,10 +83,10 @@ Import and convert the PyPI package for PACKAGE-NAME.\n")) ((package-name) (let ((sexp (pypi->guix-package package-name))) (unless sexp - (leave (_ "failed to download meta-data for package '~a'~%") + (leave (G_ "failed to download meta-data for package '~a'~%") package-name)) sexp)) (() - (leave (_ "too few arguments~%"))) + (leave (G_ "too few arguments~%"))) ((many ...) - (leave (_ "too many arguments~%")))))) + (leave (G_ "too many arguments~%")))))) diff --git a/guix/scripts/import/stackage.scm b/guix/scripts/import/stackage.scm index f91b496d24..e6676e93e8 100644 --- a/guix/scripts/import/stackage.scm +++ b/guix/scripts/import/stackage.scm @@ -40,16 +40,16 @@ (include-test-dependencies? . #t))) (define (show-help) - (display (_ "Usage: guix import stackage PACKAGE-NAME + (display (G_ "Usage: guix import stackage PACKAGE-NAME Import and convert the LTS Stackage package for PACKAGE-NAME.\n")) - (display (_ " + (display (G_ " -r VERSION, --lts-version=VERSION specify the LTS version to use")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -t, --no-test-dependencies don't include test-only dependencies")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -85,7 +85,7 @@ Import and convert the LTS Stackage package for PACKAGE-NAME.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) @@ -105,12 +105,12 @@ Import and convert the LTS Stackage package for PACKAGE-NAME.\n")) (assoc-ref opts 'include-test-dependencies?) #:lts-version (assoc-ref opts 'lts-version)))) (unless sexp - (leave (_ "failed to download cabal file for package '~a'~%") + (leave (G_ "failed to download cabal file for package '~a'~%") package-name)) sexp))) (() - (leave (_ "too few arguments~%"))) + (leave (G_ "too few arguments~%"))) ((many ...) - (leave (_ "too many arguments~%")))))) + (leave (G_ "too many arguments~%")))))) ;;; stackage.scm ends here diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 9e3e2ad95a..f2720f669e 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -132,11 +132,11 @@ monad." (define (list-checkers-and-exit) ;; Print information about all available checkers and exit. - (format #t (_ "Available checkers:~%")) + (format #t (G_ "Available checkers:~%")) (for-each (lambda (checker) (format #t "- ~a: ~a~%" (lint-checker-name checker) - (_ (lint-checker-description checker)))) + (G_ (lint-checker-description checker)))) %checkers) (exit 0)) @@ -156,7 +156,7 @@ monad." (define (check-not-empty description) (when (string-null? description) (emit-warning package - (_ "description should not be empty") + (G_ "description should not be empty") 'description))) (define (check-texinfo-markup description) @@ -166,7 +166,7 @@ markup is valid return a plain-text version of DESCRIPTION, otherwise #f." (lambda () (texi->plain-text description)) (lambda (keys . args) (emit-warning package - (_ "Texinfo markup in description is invalid") + (G_ "Texinfo markup in description is invalid") 'description) #f))) @@ -176,7 +176,7 @@ http://www.gnu.org/prep/standards/html_node/Trademarks.html." (match (string-index description (char-set #\™ #\®)) ((and (? number?) index) (emit-warning package - (format #f (_ "description should not contain ~ + (format #f (G_ "description should not contain ~ trademark sign '~a' at ~d") (string-ref description index) index) 'description)) @@ -189,14 +189,14 @@ trademark sign '~a' at ~d") ;; TRANSLATORS: '@code' is Texinfo markup and must be kept ;; as is. - (_ "use @code or similar ornament instead of quotes") + (G_ "use @code or similar ornament instead of quotes") 'description))) (define (check-proper-start description) (unless (or (properly-starts-sentence? description) (string-prefix-ci? (package-name package) description)) (emit-warning package - (_ "description should start with an upper-case letter or digit") + (G_ "description should start with an upper-case letter or digit") 'description))) (define (check-end-of-sentence-space description) @@ -212,7 +212,7 @@ trademark sign '~a' at ~d") r (cons (match:start m) r))))))) (unless (null? infractions) (emit-warning package - (format #f (_ "sentences in description should be followed ~ + (format #f (G_ "sentences in description should be followed ~ by two spaces; possible infraction~p at ~{~a~^, ~}") (length infractions) infractions) @@ -230,7 +230,7 @@ by two spaces; possible infraction~p at ~{~a~^, ~}") (and=> (check-texinfo-markup description) check-proper-start)) (emit-warning package - (format #f (_ "invalid description: ~s") description) + (format #f (G_ "invalid description: ~s") description) 'description)))) (define (package-input-intersection inputs-to-check input-names) @@ -274,7 +274,7 @@ of a package, and INPUT-NAMES, a list of package specifications such as (for-each (lambda (input) (emit-warning package - (format #f (_ "'~a' should probably be a native input") + (format #f (G_ "'~a' should probably be a native input") input) 'inputs-to-check)) (package-input-intersection inputs input-names)))) @@ -290,7 +290,7 @@ of a package, and INPUT-NAMES, a list of package specifications such as (emit-warning package (format #f - (_ "'~a' should probably not be an input at all") + (G_ "'~a' should probably not be an input at all") input))) (package-input-intersection (package-direct-inputs package) input-names)))) @@ -307,7 +307,7 @@ line." (define (check-not-empty synopsis) (when (string-null? synopsis) (emit-warning package - (_ "synopsis should not be empty") + (G_ "synopsis should not be empty") 'synopsis))) (define (check-final-period synopsis) @@ -315,7 +315,7 @@ line." (when (and (string-suffix? "." synopsis) (not (string-suffix? "etc." synopsis))) (emit-warning package - (_ "no period allowed at the end of the synopsis") + (G_ "no period allowed at the end of the synopsis") 'synopsis))) (define check-start-article @@ -327,27 +327,27 @@ line." (when (or (string-prefix-ci? "A " synopsis) (string-prefix-ci? "An " synopsis)) (emit-warning package - (_ "no article allowed at the beginning of \ + (G_ "no article allowed at the beginning of \ the synopsis") 'synopsis))))) (define (check-synopsis-length synopsis) (when (>= (string-length synopsis) 80) (emit-warning package - (_ "synopsis should be less than 80 characters long") + (G_ "synopsis should be less than 80 characters long") 'synopsis))) (define (check-proper-start synopsis) (unless (properly-starts-sentence? synopsis) (emit-warning package - (_ "synopsis should start with an upper-case letter or digit") + (G_ "synopsis should start with an upper-case letter or digit") 'synopsis))) (define (check-start-with-package-name synopsis) (when (and (regexp-exec (package-name-regexp package) synopsis) (not (starts-with-abbreviation? synopsis))) (emit-warning package - (_ "synopsis should not start with the package name") + (G_ "synopsis should not start with the package name") 'synopsis))) (define (check-texinfo-markup synopsis) @@ -357,7 +357,7 @@ markup is valid return a plain-text version of SYNOPSIS, otherwise #f." (lambda () (texi->plain-text synopsis)) (lambda (keys . args) (emit-warning package - (_ "Texinfo markup in synopsis is invalid") + (G_ "Texinfo markup in synopsis is invalid") 'synopsis) #f))) @@ -376,7 +376,7 @@ markup is valid return a plain-text version of SYNOPSIS, otherwise #f." (proc synopsis)) checks)) (invalid - (emit-warning package (format #f (_ "invalid synopsis: ~s") invalid) + (emit-warning package (format #f (G_ "invalid synopsis: ~s") invalid) 'synopsis)))) (define* (probe-uri uri #:key timeout) @@ -476,7 +476,7 @@ warning for PACKAGE mentionning the FIELD." (begin (emit-warning package (format #f - (_ "URI ~a returned \ + (G_ "URI ~a returned \ suspiciously small file (~a bytes)") (uri->string uri) length)) @@ -485,7 +485,7 @@ suspiciously small file (~a bytes)") (begin (emit-warning package (format #f - (_ "URI ~a not reachable: ~a (~s)") + (G_ "URI ~a not reachable: ~a (~s)") (uri->string uri) (response-code argument) (response-reason-phrase argument)) @@ -497,14 +497,14 @@ suspiciously small file (~a bytes)") (('error port command code message) (emit-warning package (format #f - (_ "URI ~a not reachable: ~a (~s)") + (G_ "URI ~a not reachable: ~a (~s)") (uri->string uri) code (string-trim-both message))) #f))) ((getaddrinfo-error) (emit-warning package (format #f - (_ "URI ~a domain not found: ~a") + (G_ "URI ~a domain not found: ~a") (uri->string uri) (gai-strerror (car argument))) field) @@ -512,7 +512,7 @@ suspiciously small file (~a bytes)") ((system-error) (emit-warning package (format #f - (_ "URI ~a unreachable: ~a") + (G_ "URI ~a unreachable: ~a") (uri->string uri) (strerror (system-error-errno @@ -521,7 +521,7 @@ suspiciously small file (~a bytes)") #f) ((tls-certificate-error) (emit-warning package - (format #f (_ "TLS certificate error: ~a") + (format #f (G_ "TLS certificate error: ~a") (tls-certificate-error-string argument)))) ((invalid-http-response gnutls-error) ;; Probably a misbehaving server; ignore. @@ -542,10 +542,10 @@ suspiciously small file (~a bytes)") (unless (or (string-contains (package-name package) "bootstrap") (string=? (package-name package) "ld-wrapper")) (emit-warning package - (_ "invalid value for home page") + (G_ "invalid value for home page") 'home-page))) (else - (emit-warning package (format #f (_ "invalid home page URL: ~s") + (emit-warning package (format #f (G_ "invalid home page URL: ~s") (package-home-page package)) 'home-page))))) @@ -565,7 +565,7 @@ patch could not be found." '())) (emit-warning package - (_ "file names of patches should start with the package name") + (G_ "file names of patches should start with the package name") 'patch-file-names)))) (define (escape-quotes str) @@ -603,7 +603,7 @@ descriptions maintained upstream." (or (not (string? downstream)) (not (string=? upstream downstream)))) (format (guix-warning-port) - (_ "~a: ~a: proposed synopsis: ~s~%") + (G_ "~a: ~a: proposed synopsis: ~s~%") (location->string loc) (package-full-name package) upstream))) @@ -616,7 +616,7 @@ descriptions maintained upstream." (not (string=? (fill-paragraph upstream 100) (fill-paragraph downstream 100))))) (format (guix-warning-port) - (_ "~a: ~a: proposed description:~% \"~a\"~%") + (G_ "~a: ~a: proposed description:~% \"~a\"~%") (location->string loc) (package-full-name package) (fill-paragraph (escape-quotes upstream) 77 7))))))) @@ -658,7 +658,7 @@ descriptions maintained upstream." ;; where *all* the URIs are unreachable. (unless success? (emit-warning package - (_ "all the source URIs are unreachable:") + (G_ "all the source URIs are unreachable:") 'source) (for-each (lambda (warning) (display warning (guix-warning-port))) @@ -681,7 +681,7 @@ descriptions maintained upstream." (let ((origin (package-source package))) (unless (or (not origin) (origin-file-name-valid? origin)) (emit-warning package - (_ "the source file name should contain the package name") + (G_ "the source file name should contain the package name") 'source)))) (define (check-mirror-url package) @@ -697,7 +697,7 @@ descriptions maintained upstream." (loop rest)) (prefix (emit-warning package - (format #f (_ "URL should be \ + (format #f (G_ "URL should be \ 'mirror://~a/~a'") mirror-id (string-drop uri (string-length prefix))) @@ -715,11 +715,11 @@ descriptions maintained upstream." (lambda () (guard (c ((nix-protocol-error? c) (emit-warning package - (format #f (_ "failed to create derivation: ~a") + (format #f (G_ "failed to create derivation: ~a") (nix-protocol-error-message c)))) ((message-condition? c) (emit-warning package - (format #f (_ "failed to create derivation: ~a") + (format #f (G_ "failed to create derivation: ~a") (condition-message c))))) (with-store store ;; Disable grafts since it can entail rebuilds. @@ -733,7 +733,7 @@ descriptions maintained upstream." (package-derivation store replacement #:graft? #f)))))) (lambda args (emit-warning package - (format #f (_ "failed to create derivation: ~s~%") + (format #f (G_ "failed to create derivation: ~s~%") args))))) (define (check-license package) @@ -743,7 +743,7 @@ descriptions maintained upstream." ((? license?) ...)) #t) (x - (emit-warning package (_ "invalid license field") + (emit-warning package (G_ "invalid license field") 'license)))) (define (patch-file-name patch) @@ -760,26 +760,26 @@ be determined." or HTTP errors. This allows network-less operation and makes problems with the NIST server non-fatal.." (guard (c ((http-get-error? c) - (warning (_ "failed to retrieve CVE vulnerabilities \ + (warning (G_ "failed to retrieve CVE vulnerabilities \ from ~s: ~a (~s)~%") (uri->string (http-get-error-uri c)) (http-get-error-code c) (http-get-error-reason c)) - (warning (_ "assuming no CVE vulnerabilities~%")) + (warning (G_ "assuming no CVE vulnerabilities~%")) '())) (catch #t (lambda () (current-vulnerabilities)) (match-lambda* (('getaddrinfo-error errcode) - (warning (_ "failed to lookup NIST host: ~a~%") + (warning (G_ "failed to lookup NIST host: ~a~%") (gai-strerror errcode)) - (warning (_ "assuming no CVE vulnerabilities~%")) + (warning (G_ "assuming no CVE vulnerabilities~%")) '()) (('tls-certificate-error args ...) - (warning (_ "TLS certificate error: ~a") + (warning (G_ "TLS certificate error: ~a") (tls-certificate-error-string args)) - (warning (_ "assuming no CVE vulnerabilities~%")) + (warning (G_ "assuming no CVE vulnerabilities~%")) '()) (args (apply throw args)))))) @@ -817,7 +817,7 @@ from ~s: ~a (~s)~%") vulnerabilities))) (unless (null? unpatched) (emit-warning package - (format #f (_ "probably vulnerable to ~a") + (format #f (G_ "probably vulnerable to ~a") (string-join (map vulnerability-id unpatched) ", "))))))))) @@ -832,7 +832,7 @@ from ~s: ~a (~s)~%") (#f #t) (index (emit-warning package - (format #f (_ "tabulation on line ~a, column ~a") + (format #f (G_ "tabulation on line ~a, column ~a") line-number index))))) (define (report-trailing-white-space package line line-number) @@ -841,7 +841,7 @@ from ~s: ~a (~s)~%") (string=? line (string #\page))) (emit-warning package (format #f - (_ "trailing white space on line ~a") + (G_ "trailing white space on line ~a") line-number)))) (define (report-long-line package line line-number) @@ -851,7 +851,7 @@ from ~s: ~a (~s)~%") ;; much noise. (when (> (string-length line) 90) (emit-warning package - (format #f (_ "line ~a is way too long (~a characters)") + (format #f (G_ "line ~a is way too long (~a characters)") line-number (string-length line))))) (define %hanging-paren-rx @@ -862,7 +862,7 @@ from ~s: ~a (~s)~%") (when (regexp-exec %hanging-paren-rx line) (emit-warning package (format #f - (_ "line ~a: parentheses feel lonely, \ + (G_ "line ~a: parentheses feel lonely, \ move to the previous or next line") line-number)))) @@ -1001,17 +1001,17 @@ or a list thereof") '()) (define (show-help) - (display (_ "Usage: guix lint [OPTION]... [PACKAGE]... + (display (G_ "Usage: guix lint [OPTION]... [PACKAGE]... Run a set of checkers on the specified package; if none is specified, run the checkers on all packages.\n")) - (display (_ " + (display (G_ " -c, --checkers=CHECKER1,CHECKER2... only run the specified checkers")) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -l, --list-checkers display the list of available lint checkers")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -1029,7 +1029,7 @@ run the checkers on all packages.\n")) (unless (memq c (map lint-checker-name %checkers)) - (leave (_ "~a: invalid checker~%") c))) + (leave (G_ "~a: invalid checker~%") c))) names) (alist-cons 'checkers (filter (lambda (checker) @@ -1058,7 +1058,7 @@ run the checkers on all packages.\n")) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index acdfb81698..74c0c5484c 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -130,14 +130,14 @@ determined." ;; Silently ignore missing file since this is a common case. (if (= ENOENT err) '() - (leave (_ "failed to open machine file '~a': ~a~%") + (leave (G_ "failed to open machine file '~a': ~a~%") file (strerror err))))) (('syntax-error proc message properties form . rest) (let ((loc (source-properties->location properties))) - (leave (_ "~a: ~a~%") + (leave (G_ "~a: ~a~%") (location->string loc) message))) (x - (leave (_ "failed to load machine file '~a': ~s~%") + (leave (G_ "failed to load machine file '~a': ~s~%") file args)))))) (define (host-key->type+key host-key) @@ -161,7 +161,7 @@ can interpret meaningfully." (private-key-from-file file)) (lambda (key proc str . rest) (raise (condition - (&message (message (format #f (_ "failed to load SSH \ + (&message (message (format #f (G_ "failed to load SSH \ private key from '~a': ~a") file str)))))))) @@ -204,7 +204,7 @@ private key from '~a': ~a") (string=? (public-key->string server) key)) ;; Key mismatch: something's wrong. XXX: It could be that the server ;; provided its Ed25519 key when we where expecting its RSA key. - (leave (_ "server at '~a' returned host key '~a' of type '~a' \ + (leave (G_ "server at '~a' returned host key '~a' of type '~a' \ instead of '~a' of type '~a'~%") (build-machine-name machine) (public-key->string server) (get-key-type server) @@ -213,13 +213,13 @@ instead of '~a' of type '~a'~%") (let ((auth (userauth-public-key! session private))) (unless (eq? 'success auth) (disconnect! session) - (leave (_ "SSH public key authentication failed for '~a': ~a~%") + (leave (G_ "SSH public key authentication failed for '~a': ~a~%") (build-machine-name machine) (get-error session)))) session) (x ;; Connection failed or timeout expired. - (leave (_ "failed to connect to '~a': ~a~%") + (leave (G_ "failed to connect to '~a': ~a~%") (build-machine-name machine) (get-error session)))))) @@ -346,7 +346,7 @@ MACHINE." (guard (c ((nix-protocol-error? c) (format (current-error-port) - (_ "derivation '~a' offloaded to '~a' failed: ~a~%") + (G_ "derivation '~a' offloaded to '~a' failed: ~a~%") (derivation-file-name drv) (build-machine-name machine) (nix-protocol-error-message c)) @@ -530,11 +530,11 @@ allowed on MACHINE. Return +∞ if MACHINE is unreachable." "Bail out if NODE is not running Guile." (match (node-guile-version node) (#f - (leave (_ "Guile could not be started on '~a'~%") + (leave (G_ "Guile could not be started on '~a'~%") name)) ((? string? version) ;; Note: The version string already contains the word "Guile". - (info (_ "'~a' is running ~a~%") + (info (G_ "'~a' is running ~a~%") name (node-guile-version node))))) (define (assert-node-has-guix node name) @@ -546,10 +546,10 @@ allowed on MACHINE. Return +∞ if MACHINE is unreachable." (add-text-to-store store "test" "Hello, build machine!")))) ((? string? str) - (info (_ "Guix is usable on '~a' (test returned ~s)~%") + (info (G_ "Guix is usable on '~a' (test returned ~s)~%") name str)) (x - (leave (_ "failed to use Guix module on '~a' (test returned ~s)~%") + (leave (G_ "failed to use Guix module on '~a' (test returned ~s)~%") name x)))) (define %random-state @@ -570,9 +570,9 @@ allowed on MACHINE. Return +∞ if MACHINE is unreachable." (send-files local (list item) remote)) (if (valid-path? remote item) - (info (_ "'~a' successfully imported '~a'~%") + (info (G_ "'~a' successfully imported '~a'~%") name item) - (leave (_ "'~a' was not properly imported on '~a'~%") + (leave (G_ "'~a' was not properly imported on '~a'~%") item name)))))) (define (assert-node-can-export node name daemon-socket) @@ -583,9 +583,9 @@ allowed on MACHINE. Return +∞ if MACHINE is unreachable." (with-store store (if (and (retrieve-files store (list item) remote) (valid-path? store item)) - (info (_ "successfully imported '~a' from '~a'~%") + (info (G_ "successfully imported '~a' from '~a'~%") item name) - (leave (_ "failed to import '~a' from '~a'~%") + (leave (G_ "failed to import '~a' from '~a'~%") item name))))) (define (check-machine-availability machine-file pred) @@ -600,7 +600,7 @@ machine." (let ((machines (filter pred (delete-duplicates (build-machines machine-file) build-machine=?)))) - (info (_ "testing ~a build machines defined in '~a'...~%") + (info (G_ "testing ~a build machines defined in '~a'...~%") (length machines) machine-file) (let* ((names (map build-machine-name machines)) (sockets (map build-machine-daemon-socket machines)) @@ -633,8 +633,8 @@ machine." ;; We rely on protocol-level compression from libssh to optimize large data ;; transfers. Warn if it's missing. (unless (zlib-support?) - (warning (_ "Guile-SSH lacks zlib support")) - (warning (_ "data transfers will *not* be compressed!"))) + (warning (G_ "Guile-SSH lacks zlib support")) + (warning (G_ "data transfers will *not* be compressed!"))) (match args ((system max-silent-time print-build-trace? build-timeout) @@ -659,7 +659,7 @@ machine." #:max-silent-time max-silent-time #:build-timeout build-timeout)))) (else - (leave (_ "invalid request line: ~s~%") line))) + (leave (G_ "invalid request line: ~s~%") line))) (loop (read-line))))))) (("test" rest ...) (with-error-handling @@ -671,20 +671,20 @@ machine." build-machine-name))) ((file) (values file (const #t))) (() (values %machine-file (const #t))) - (x (leave (_ "wrong number of arguments~%")))))) + (x (leave (G_ "wrong number of arguments~%")))))) (check-machine-availability (or file %machine-file) pred)))) (("--version") (show-version-and-exit "guix offload")) (("--help") - (format #t (_ "Usage: guix offload SYSTEM PRINT-BUILD-TRACE + (format #t (G_ "Usage: guix offload SYSTEM PRINT-BUILD-TRACE Process build offload requests written on the standard input, possibly offloading builds to the machines listed in '~a'.~%") %machine-file) - (display (_ " + (display (G_ " This tool is meant to be used internally by 'guix-daemon'.\n")) (show-bug-report-information)) (x - (leave (_ "invalid arguments: ~{~s ~}~%") x)))) + (leave (G_ "invalid arguments: ~{~s ~}~%") x)))) ;;; Local Variables: ;;; eval: (put 'with-machine-lock 'scheme-indent-function 2) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 165e4ccf2a..1595be1f52 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -71,7 +71,7 @@ found." (($ name*) (string=? name* name))) %compressors) - (leave (_ "~a: compressor not found~%") name))) + (leave (G_ "~a: compressor not found~%") name))) (define* (self-contained-tarball name profile #:key target @@ -307,7 +307,7 @@ the image." `((,source -> ,target) ,@symlinks) (alist-delete 'symlinks result eq?)))) (x - (leave (_ "~a: invalid symlink specification~%") + (leave (G_ "~a: invalid symlink specification~%") arg))))) (option '("localstatedir") #f #f (lambda (opt name arg result) @@ -317,30 +317,30 @@ the image." %standard-build-options))) (define (show-help) - (display (_ "Usage: guix pack [OPTION]... PACKAGE... + (display (G_ "Usage: guix pack [OPTION]... PACKAGE... Create a bundle of PACKAGE.\n")) (show-build-options-help) (newline) (show-transformation-options-help) (newline) - (display (_ " + (display (G_ " -f, --format=FORMAT build a pack in the given FORMAT")) - (display (_ " + (display (G_ " -e, --expression=EXPR consider the package EXPR evaluates to")) - (display (_ " + (display (G_ " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) - (display (_ " + (display (G_ " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"")) - (display (_ " + (display (G_ " -C, --compression=TOOL compress using TOOL--e.g., \"lzip\"")) - (display (_ " + (display (G_ " -S, --symlink=SPEC create symlinks to the profile according to SPEC")) - (display (_ " + (display (G_ " --localstatedir include /var/guix in the resulting pack")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -379,7 +379,7 @@ Create a bundle of PACKAGE.\n")) (build-image (match (assq-ref %formats pack-format) ((? procedure? proc) proc) (#f - (leave (_ "~a: unknown pack format") + (leave (G_ "~a: unknown pack format") format)))) (localstatedir? (assoc-ref opts 'localstatedir?))) (with-store store diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 6be9d00aec..92676c2228 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -104,7 +104,7 @@ indirectly, or PROFILE." (define (rtfm) (format (current-error-port) - (_ "Try \"info '(guix) Invoking guix package'\" for \ + (G_ "Try \"info '(guix) Invoking guix package'\" for \ more information.~%")) (exit 1)) @@ -126,21 +126,21 @@ more information.~%")) ;; parent directory is root-owned and we're running ;; unprivileged. (format (current-error-port) - (_ "error: while creating directory `~a': ~a~%") + (G_ "error: while creating directory `~a': ~a~%") %profile-directory (strerror (system-error-errno args))) (format (current-error-port) - (_ "Please create the `~a' directory, with you as the owner.~%") + (G_ "Please create the `~a' directory, with you as the owner.~%") %profile-directory) (rtfm)))) ;; Bail out if it's not owned by the user. (unless (or (not s) (= (stat:uid s) (getuid))) (format (current-error-port) - (_ "error: directory `~a' is not owned by you~%") + (G_ "error: directory `~a' is not owned by you~%") %profile-directory) (format (current-error-port) - (_ "Please change the owner of `~a' to user ~s.~%") + (G_ "Please change the owner of `~a' to user ~s.~%") %profile-directory (or (getenv "USER") (getenv "LOGNAME") (getuid))) @@ -175,17 +175,17 @@ denote ranges as interpreted by 'matching-generations'." => (lambda (numbers) (when (memv current numbers) - (warning (_ "not removing generation ~a, which is current~%") + (warning (G_ "not removing generation ~a, which is current~%") current)) ;; Make sure we don't inadvertently remove the current ;; generation. (let ((numbers (delv current numbers))) (when (null-list? numbers) - (leave (_ "no matching generation~%"))) + (leave (G_ "no matching generation~%"))) (delete-generations store profile numbers)))) (else - (leave (_ "invalid syntax: ~a~%") pattern))))) + (leave (G_ "invalid syntax: ~a~%") pattern))))) (define* (build-and-use-profile store profile manifest #:key @@ -211,7 +211,7 @@ specified in MANIFEST, a manifest object." (dry-run? #t) ((and (file-exists? profile) (and=> (readlink* profile) (cut string=? prof <>))) - (format (current-error-port) (_ "nothing to be done~%"))) + (format (current-error-port) (G_ "nothing to be done~%"))) (else (let* ((number (generation-number profile)) @@ -269,7 +269,7 @@ synopsis or description matches all of REGEXPS." "Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a ." (define (supersede old new) - (info (_ "package '~a' has been superseded by '~a'~%") + (info (G_ "package '~a' has been superseded by '~a'~%") (manifest-entry-name old) (package-name new)) (manifest-transaction-install-entry (package->manifest-entry new (manifest-entry-output old)) @@ -341,7 +341,7 @@ ENTRIES, a list of manifest entries, in the context of PROFILE." (settings (search-path-environment-variables entries profiles #:kind kind))) (unless (null? settings) - (format #t (_ "The following environment variable definitions may be needed:~%")) + (format #t (G_ "The following environment variable definitions may be needed:~%")) (format #t "~{ ~a~%~}" settings)))) @@ -357,68 +357,68 @@ ENTRIES, a list of manifest entries, in the context of PROFILE." (substitutes? . #t))) (define (show-help) - (display (_ "Usage: guix package [OPTION]... + (display (G_ "Usage: guix package [OPTION]... Install, remove, or upgrade packages in a single transaction.\n")) - (display (_ " + (display (G_ " -i, --install PACKAGE ... install PACKAGEs")) - (display (_ " + (display (G_ " -e, --install-from-expression=EXP install the package EXP evaluates to")) - (display (_ " + (display (G_ " -f, --install-from-file=FILE install the package that the code within FILE evaluates to")) - (display (_ " + (display (G_ " -r, --remove PACKAGE ... remove PACKAGEs")) - (display (_ " + (display (G_ " -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP")) - (display (_ " + (display (G_ " -m, --manifest=FILE create a new profile generation with the manifest from FILE")) - (display (_ " + (display (G_ " --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP")) - (display (_ " + (display (G_ " --roll-back roll back to the previous generation")) - (display (_ " + (display (G_ " --search-paths[=KIND] display needed environment variable definitions")) - (display (_ " + (display (G_ " -l, --list-generations[=PATTERN] list generations matching PATTERN")) - (display (_ " + (display (G_ " -d, --delete-generations[=PATTERN] delete generations matching PATTERN")) - (display (_ " + (display (G_ " -S, --switch-generation=PATTERN switch to a generation matching PATTERN")) - (display (_ " + (display (G_ " -p, --profile=PROFILE use PROFILE instead of the user's default profile")) (newline) - (display (_ " + (display (G_ " --bootstrap use the bootstrap Guile to build the profile")) - (display (_ " + (display (G_ " --verbose produce verbose output")) (newline) - (display (_ " + (display (G_ " -s, --search=REGEXP search in synopsis and description using REGEXP")) - (display (_ " + (display (G_ " -I, --list-installed[=REGEXP] list installed packages matching REGEXP")) - (display (_ " + (display (G_ " -A, --list-available[=REGEXP] list available packages matching REGEXP")) - (display (_ " + (display (G_ " --show=PACKAGE show details about PACKAGE")) (newline) (show-build-options-help) (newline) (show-transformation-options-help) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -504,7 +504,7 @@ Install, remove, or upgrade packages in a single transaction.\n")) (#f 'exact) (x - (leave (_ "~a: unsupported \ + (leave (G_ "~a: unsupported \ kind of search path~%") x))))) (values (cons `(query search-paths ,kind) @@ -697,7 +697,7 @@ processed, #f otherwise." (list-generation display-profile-content (car numbers)) (diff-profiles profile numbers))))) (else - (leave (_ "invalid syntax: ~a~%") + (leave (G_ "invalid syntax: ~a~%") pattern))) #t) @@ -788,7 +788,7 @@ processed, #f otherwise." (let ((number (relative-generation-spec->number profile spec))) (if number (switch-to-generation* profile number) - (leave (_ "cannot switch to generation '~a'~%") spec))))) + (leave (G_ "cannot switch to generation '~a'~%") spec))))) (define* (delete-generations-action store profile pattern opts #:key dry-run?) @@ -804,9 +804,9 @@ processed, #f otherwise." (bootstrap? (assoc-ref opts 'bootstrap?)) (substitutes? (assoc-ref opts 'substitutes?))) (if dry-run? - (format #t (_ "would install new manifest from '~a' with ~d entries~%") + (format #t (G_ "would install new manifest from '~a' with ~d entries~%") file (length (manifest-entries manifest))) - (format #t (_ "installing new manifest from '~a' with ~d entries~%") + (format #t (G_ "installing new manifest from '~a' with ~d entries~%") file (length (manifest-entries manifest)))) (build-and-use-profile store profile manifest #:bootstrap? bootstrap? @@ -877,7 +877,7 @@ processed, #f otherwise." ;; Process non-option argument ARG by calling back ARG-HANDLER. (if arg-handler (arg-handler arg result) - (leave (_ "~A: extraneous argument~%") arg))) + (leave (G_ "~A: extraneous argument~%") arg))) (let ((opts (parse-command-line args %options (list %default-options #f) #:argument-handler handle-argument))) diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm index 59ade0a8c1..aee506af46 100644 --- a/guix/scripts/perform-download.scm +++ b/guix/scripts/perform-download.scm @@ -54,7 +54,7 @@ actual output is different from that when we're doing a 'bmCheck' or (mirrors "mirrors") (content-addressed-mirrors "content-addressed-mirrors")) (unless url - (leave (_ "~a: missing URL~%") (derivation-file-name drv))) + (leave (G_ "~a: missing URL~%") (derivation-file-name drv))) (let* ((output (or output output*)) (url (call-with-input-string url read)) @@ -62,7 +62,7 @@ actual output is different from that when we're doing a 'bmCheck' or (algo (derivation-output-hash-algo drv-output)) (hash (derivation-output-hash drv-output))) (unless (and algo hash) - (leave (_ "~a is not a fixed-output derivation~%") + (leave (G_ "~a is not a fixed-output derivation~%") (derivation-file-name drv))) ;; We're invoked by the daemon, which gives us write access to OUTPUT. @@ -86,7 +86,7 @@ actual output is different from that when we're doing a 'bmCheck' or (define (assert-low-privileges) (when (zero? (getuid)) - (leave (_ "refusing to run with elevated privileges (UID ~a)~%") + (leave (G_ "refusing to run with elevated privileges (UID ~a)~%") (getuid)))) (define (guix-perform-download . args) @@ -115,7 +115,7 @@ of GnuTLS over HTTPS, before we have built GnuTLS. See (show-version-and-exit)) (x (leave - (_ "fixed-output derivation and output file name expected~%")))))) + (G_ "fixed-output derivation and output file name expected~%")))))) ;; Local Variables: ;; eval: (put 'derivation-let 'scheme-indent-function 2) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index 8864c2ef8b..efaa549676 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -64,35 +64,35 @@ guix-publish)) (define (show-help) - (format #t (_ "Usage: guix publish [OPTION]... + (format #t (G_ "Usage: guix publish [OPTION]... Publish ~a over HTTP.\n") %store-directory) - (display (_ " + (display (G_ " -p, --port=PORT listen on PORT")) - (display (_ " + (display (G_ " --listen=HOST listen on the network interface for HOST")) - (display (_ " + (display (G_ " -u, --user=USER change privileges to USER as soon as possible")) - (display (_ " + (display (G_ " -C, --compression[=LEVEL] compress archives at LEVEL")) - (display (_ " + (display (G_ " -c, --cache=DIRECTORY cache published items to DIRECTORY")) - (display (_ " + (display (G_ " --workers=N use N workers to bake items")) - (display (_ " + (display (G_ " --ttl=TTL announce narinfos can be cached for TTL seconds")) - (display (_ " + (display (G_ " --nar-path=PATH use PATH as the prefix for nar URLs")) - (display (_ " + (display (G_ " --public-key=FILE use FILE as the public key for signatures")) - (display (_ " + (display (G_ " --private-key=FILE use FILE as the private key for signatures")) - (display (_ " + (display (G_ " -r, --repl[=PORT] spawn REPL server on PORT")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -103,7 +103,7 @@ Publish ~a over HTTP.\n") %store-directory) (lambda () (getaddrinfo host)) (lambda (key error) - (leave (_ "lookup of host '~a' failed: ~a~%") + (leave (G_ "lookup of host '~a' failed: ~a~%") host (gai-strerror error))))) ;; Nar compression parameters. @@ -148,7 +148,7 @@ if ITEM is already compressed." (alist-cons 'address (addrinfo:addr info) result)) (() - (leave (_ "lookup of host '~a' returned nothing") + (leave (G_ "lookup of host '~a' returned nothing") name))))) (option '(#\C "compression") #f #t (lambda (opt name arg result) @@ -161,7 +161,7 @@ if ITEM is already compressed." (compression 'gzip level) result) (begin - (warning (_ "zlib support is missing; \ + (warning (G_ "zlib support is missing; \ compression disabled~%")) result)))))) (option '(#\c "cache") #t #f @@ -175,7 +175,7 @@ compression disabled~%")) (lambda (opt name arg result) (let ((duration (string->duration arg))) (unless duration - (leave (_ "~a: invalid duration~%") arg)) + (leave (G_ "~a: invalid duration~%") arg)) (alist-cons 'narinfo-ttl (time-second duration) result)))) (option '("nar-path") #t #f @@ -796,7 +796,7 @@ blocking." (setgid (passwd:gid user)) (setuid (passwd:uid user)))) (lambda (key proc message args . rest) - (leave (_ "user '~a' not found: ~a~%") + (leave (G_ "user '~a' not found: ~a~%") user (apply format #f message args))))) @@ -808,9 +808,9 @@ blocking." (with-error-handling (let* ((opts (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) - (leave (_ "~A: extraneous argument~%") arg)) + (leave (G_ "~A: extraneous argument~%") arg)) %default-options)) (user (assoc-ref opts 'user)) (port (assoc-ref opts 'port)) @@ -837,12 +837,12 @@ blocking." (gather-user-privileges user)) (when (zero? (getuid)) - (warning (_ "server running as root; \ + (warning (G_ "server running as root; \ consider using the '--user' option!~%"))) (parameterize ((%public-key public-key) (%private-key private-key)) - (format #t (_ "publishing ~a on ~a, port ~d~%") + (format #t (G_ "publishing ~a on ~a, port ~d~%") %store-directory (inet-ntop (sockaddr:fam address) (sockaddr:addr address)) (sockaddr:port address)) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 8e31ad620c..82fcaa248c 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -75,18 +75,18 @@ `((tarball-url . ,%snapshot-url))) (define (show-help) - (display (_ "Usage: guix pull [OPTION]... + (display (G_ "Usage: guix pull [OPTION]... Download and deploy the latest version of Guix.\n")) - (display (_ " + (display (G_ " --verbose produce verbose output")) - (display (_ " + (display (G_ " --url=URL download the Guix tarball from URL")) - (display (_ " + (display (G_ " --bootstrap use the bootstrap Guile to build the new Guix")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -153,7 +153,7 @@ store file name." (mbegin %store-monad (what-to-build (list tar gzip)) (built-derivations (list tar gzip)) - (format #t (_ "unpacking '~a'...~%") tarball) + (format #t (G_ "unpacking '~a'...~%") tarball) (let ((source (temporary-directory))) (with-directory-excursion source @@ -205,24 +205,24 @@ contained therein." (if (and (file-exists? latest) (string=? (readlink latest) source-dir)) (begin - (display (_ "Guix already up to date\n")) + (display (G_ "Guix already up to date\n")) (return #t)) (begin (switch-symlinks latest source-dir) (format #t - (_ "updated ~a successfully deployed under `~a'~%") + (G_ "updated ~a successfully deployed under `~a'~%") %guix-package-name latest) (return #t)))) - (leave (_ "failed to update Guix, check the build log~%"))))) + (leave (G_ "failed to update Guix, check the build log~%"))))) (define (guix-pull . args) (define (parse-options) ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) - (leave (_ "~A: unexpected argument~%") arg)) + (leave (G_ "~A: unexpected argument~%") arg)) %default-options)) (define (use-le-certs? url) @@ -245,7 +245,7 @@ contained therein." (fetch-tarball store url))) (fetch-tarball store url)))) (unless tarball - (leave (_ "failed to download up-to-date source, exiting\n"))) + (leave (G_ "failed to download up-to-date source, exiting\n"))) (parameterize ((%guile-for-build (package-derivation store (if (assoc-ref opts 'bootstrap?) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index c0d589af17..645572f182 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -76,7 +76,7 @@ (alist-cons 'select (string->symbol arg) result)) (x - (leave (_ "~a: invalid selection; expected `core' or `non-core'~%") + (leave (G_ "~a: invalid selection; expected `core' or `non-core'~%") arg))))) (option '(#\t "type") #t #f (lambda (opt name arg result) @@ -107,7 +107,7 @@ (alist-cons 'key-download (string->symbol arg) result)) (x - (leave (_ "unsupported policy: ~a~%") + (leave (G_ "unsupported policy: ~a~%") arg))))) (option '(#\h "help") #f #f @@ -119,41 +119,41 @@ (show-version-and-exit "guix refresh"))))) (define (show-help) - (display (_ "Usage: guix refresh [OPTION]... [PACKAGE]... + (display (G_ "Usage: guix refresh [OPTION]... [PACKAGE]... Update package definitions to match the latest upstream version. When PACKAGE... is given, update only the specified packages. Otherwise update all the packages of the distribution, or the subset thereof specified with `--select'.\n")) - (display (_ " + (display (G_ " -e, --expression=EXPR consider the package EXPR evaluates to")) - (display (_ " + (display (G_ " -u, --update update source files in place")) - (display (_ " + (display (G_ " -s, --select=SUBSET select all the packages in SUBSET, one of `core' or `non-core'")) - (display (_ " + (display (G_ " -t, --type=UPDATER,... restrict to updates from the specified updaters (e.g., 'gnu')")) - (display (_ " + (display (G_ " -L, --list-updaters list available updaters and exit")) - (display (_ " + (display (G_ " -l, --list-dependent list top-level dependent packages that would need to be rebuilt as a result of upgrading PACKAGE...")) (newline) - (display (_ " + (display (G_ " --key-server=HOST use HOST as the OpenPGP key server")) - (display (_ " + (display (G_ " --gpg=COMMAND use COMMAND as the GnuPG 2.x command")) - (display (_ " + (display (G_ " --key-download=POLICY handle missing OpenPGP keys according to POLICY: 'always', 'never', and 'interactive', which is also used when 'key-download' is not specified")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -218,11 +218,11 @@ unavailable optional dependencies such as Guile-JSON." (or (find (lambda (updater) (eq? name (upstream-updater-name updater))) %updaters) - (leave (_ "~a: no such updater~%") name))) + (leave (G_ "~a: no such updater~%") name))) (define (list-updaters-and-exit) "Display available updaters and exit." - (format #t (_ "Available updaters:~%")) + (format #t (G_ "Available updaters:~%")) (newline) (let* ((packages (fold-packages cons '())) @@ -234,22 +234,22 @@ unavailable optional dependencies such as Guile-JSON." ;; TRANSLATORS: The parenthetical expression here is rendered ;; like "(42% coverage)" and denotes the fraction of packages ;; covered by the given updater. - (format #t (_ " - ~a: ~a (~2,1f% coverage)~%") + (format #t (G_ " - ~a: ~a (~2,1f% coverage)~%") (upstream-updater-name updater) - (_ (upstream-updater-description updater)) + (G_ (upstream-updater-description updater)) (* 100. (/ matches total))) (+ covered matches))) 0 %updaters)) (newline) - (format #t (_ "~2,1f% of the packages are covered by these updaters.~%") + (format #t (G_ "~2,1f% of the packages are covered by these updaters.~%") (* 100. (/ covered total)))) (exit 0)) (define (warn-no-updater package) (format (current-error-port) - (_ "~a: warning: no updater for ~a~%") + (G_ "~a: warning: no updater for ~a~%") (location->string (package-location package)) (package-name package))) @@ -270,14 +270,14 @@ warn about packages that have no matching updater." (if (and=> tarball file-exists?) (begin (format (current-error-port) - (_ "~a: ~a: updating from version ~a to version ~a...~%") + (G_ "~a: ~a: updating from version ~a to version ~a...~%") (location->string loc) (package-name package) (package-version package) version) (let ((hash (call-with-input-file tarball port-sha256))) (update-package-source package version hash))) - (warning (_ "~a: version ~a could not be \ + (warning (G_ "~a: version ~a could not be \ downloaded and authenticated; not updating~%") (package-name package) version)))) (when warn? @@ -293,7 +293,7 @@ WARN? is true and no updater exists for PACKAGE, print a warning." (let ((loc (or (package-field-location package 'version) (package-location package)))) (format (current-error-port) - (_ "~a: ~a would be upgraded from ~a to ~a~%") + (G_ "~a: ~a would be upgraded from ~a to ~a~%") (location->string loc) (package-name package) (package-version package) (upstream-source-version source))))) @@ -335,7 +335,7 @@ WARN? is true and no updater exists for PACKAGE, print a warning." ((x) (format (current-output-port) - (_ "A single dependent package: ~a~%") + (G_ "A single dependent package: ~a~%") (full-name x))) (lst (format (current-output-port) @@ -358,7 +358,7 @@ dependent packages are rebuilt: ~{~a~^ ~}~%" ;; Return the alist of option values. (args-fold* args %options (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) + (leave (G_ "~A: unrecognized option~%") name)) (lambda (arg result) (alist-cons 'argument arg result)) %default-options)) diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index f612dae700..52f7cdd972 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -74,7 +74,7 @@ if ITEM is not in the store." ;; The nar size is an approximation, but a good one. (return (substitutable-nar-size info))) (() - (leave (_ "no available substitute information for '~a'~%") + (leave (G_ "no available substitute information for '~a'~%") item))))))) (define* (display-profile profile #:optional (port (current-output-port))) @@ -82,7 +82,7 @@ if ITEM is not in the store." (define MiB (expt 2 20)) (format port "~64a ~8a ~a\n" - (_ "store item") (_ "total") (_ "self")) + (G_ "store item") (G_ "total") (G_ "self")) (let ((whole (reduce + 0 (map profile-self-size profile)))) (for-each (match-lambda (($ name self total) @@ -94,7 +94,7 @@ if ITEM is not in the store." ((($ name1 self1 total1) ($ name2 self2 total2)) (> total1 total2))))) - (format port (_ "total: ~,1f MiB~%") (/ whole MiB 1.)))) + (format port (G_ "total: ~,1f MiB~%") (/ whole MiB 1.)))) (define display-profile* (lift display-profile %store-monad)) @@ -208,7 +208,7 @@ the name of a PNG file." ;; TRANSLATORS: This is the title of a graph, meaning that the graph ;; represents a profile of the store (the "store" being the place where ;; packages are stored.) - (make-page-map (_ "store profile") data + (make-page-map (G_ "store profile") data #:write-to-png file)) @@ -217,19 +217,19 @@ the name of a PNG file." ;;; (define (show-help) - (display (_ "Usage: guix size [OPTION]... PACKAGE + (display (G_ "Usage: guix size [OPTION]... PACKAGE Report the size of PACKAGE and its dependencies.\n")) - (display (_ " + (display (G_ " --substitute-urls=URLS fetch substitute from URLS if they are authorized")) - (display (_ " + (display (G_ " -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"")) - (display (_ " + (display (G_ " -m, --map-file=FILE write to FILE a graphical map of disk usage")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -278,7 +278,7 @@ Report the size of PACKAGE and its dependencies.\n")) (urls (assoc-ref opts 'substitute-urls))) (match files (() - (leave (_ "missing store item argument\n"))) + (leave (G_ "missing store item argument\n"))) ((files ..1) (leave-on-EPIPE ;; Turn off grafts because (1) hydra.gnu.org does not serve grafted diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index b4e913a880..53162b3f9a 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -111,7 +111,7 @@ (and (and=> (getenv "GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES") (cut string-ci=? <> "yes")) (begin - (warning (_ "authentication and authorization of substitutes \ + (warning (G_ "authentication and authorization of substitutes \ disabled!~%")) #t))) @@ -186,7 +186,7 @@ provide." (values port (stat:size (stat port))))) ((http https) (guard (c ((http-get-error? c) - (leave (_ "download from '~a' failed: ~a, ~s~%") + (leave (G_ "download from '~a' failed: ~a, ~s~%") (uri->string (http-get-error-uri c)) (http-get-error-code c) (http-get-error-reason c)))) @@ -199,9 +199,9 @@ provide." %fetch-timeout 0) (begin - (warning (_ "while fetching ~a: server is somewhat slow~%") + (warning (G_ "while fetching ~a: server is somewhat slow~%") (uri->string uri)) - (warning (_ "try `--no-substitutes' if the problem persists~%")) + (warning (G_ "try `--no-substitutes' if the problem persists~%")) ;; Before Guile v2.0.9-39-gfe51c7b, EINTR was reported to the user, ;; and thus PORT had to be closed and re-opened. This is not the @@ -219,7 +219,7 @@ provide." (http-fetch uri #:text? #f #:port port #:verify-certificate? #f)))))) (else - (leave (_ "unsupported substitute URI scheme: ~a~%") + (leave (G_ "unsupported substitute URI scheme: ~a~%") (uri->string uri))))) (define-record-type @@ -254,12 +254,12 @@ failure, return #f and #f." #:verify-certificate? #f #:timeout %fetch-timeout))) (guard (c ((http-get-error? c) - (warning (_ "while fetching '~a': ~a (~s)~%") + (warning (G_ "while fetching '~a': ~a (~s)~%") (uri->string (http-get-error-uri c)) (http-get-error-code c) (http-get-error-reason c)) (close-connection port) - (warning (_ "ignoring substitute server at '~s'~%") url) + (warning (G_ "ignoring substitute server at '~s'~%") url) (values #f #f))) (values (read-cache-info (http-fetch uri #:verify-certificate? #f @@ -309,11 +309,11 @@ Otherwise return #f." ((version host-name sig) (let ((maybe-number (string->number version))) (cond ((not (number? maybe-number)) - (leave (_ "signature version must be a number: ~s~%") + (leave (G_ "signature version must be a number: ~s~%") version)) ;; Currently, there are no other versions. ((not (= 1 maybe-number)) - (leave (_ "unsupported signature version: ~a~%") + (leave (G_ "unsupported signature version: ~a~%") maybe-number)) (else (let ((signature (utf8->string (base64-decode sig)))) @@ -321,11 +321,11 @@ Otherwise return #f." (lambda () (string->canonical-sexp signature)) (lambda (key proc err) - (leave (_ "signature is not a valid \ + (leave (G_ "signature is not a valid \ s-expression: ~s~%") signature)))))))) (x - (leave (_ "invalid format of the signature field: ~a~%") x)))) + (leave (G_ "invalid format of the signature field: ~a~%") x)))) (define (narinfo-maker str cache-url) "Return a narinfo constructor for narinfos originating from CACHE-URL. STR @@ -360,13 +360,13 @@ NARINFO, doesn't match HASH, a bytevector containing the hash of NARINFO." (signature-case (signature hash acl) (valid-signature #t) (invalid-signature - (leave (_ "invalid signature for '~a'~%") uri)) + (leave (G_ "invalid signature for '~a'~%") uri)) (hash-mismatch - (leave (_ "hash mismatch for '~a'~%") uri)) + (leave (G_ "hash mismatch for '~a'~%") uri)) (unauthorized-key - (leave (_ "'~a' is signed with an unauthorized key~%") uri)) + (leave (G_ "'~a' is signed with an unauthorized key~%") uri)) (corrupt-signature - (leave (_ "signature on '~a' is corrupt~%") uri))))) + (leave (G_ "signature on '~a' is corrupt~%") uri))))) (define* (read-narinfo port #:optional url #:key size) @@ -404,17 +404,17 @@ or is signed by an unauthorized key." (if (not hash) (if %allow-unauthenticated-substitutes? narinfo - (leave (_ "substitute at '~a' lacks a signature~%") + (leave (G_ "substitute at '~a' lacks a signature~%") (uri->string (narinfo-uri narinfo)))) (let ((signature (narinfo-signature narinfo))) (unless %allow-unauthenticated-substitutes? (assert-valid-signature narinfo signature hash acl) (when verbose? (format (current-error-port) - (_ "Found valid signature for ~a~%") + (G_ "Found valid signature for ~a~%") (narinfo-path narinfo)) (format (current-error-port) - (_ "From ~a~%") + (G_ "From ~a~%") (uri->string (narinfo-uri narinfo))))) narinfo)))) @@ -448,7 +448,7 @@ entry is stored in a sub-directory specific to CACHE-URL." ;; "/gnu/store/foo". Gracefully handle that. (match (store-path-hash-part path) (#f - (leave (_ "'~a' does not name a store item~%") path)) + (leave (G_ "'~a' does not name a store item~%") path)) ((? string? hash-part) (string-append %narinfo-cache-directory "/" (bytevector->base32-string (sha256 (string->utf8 cache-url))) @@ -596,7 +596,7 @@ if file doesn't exist, and the narinfo otherwise." (display #\cr (current-error-port)) (force-output (current-error-port)) (format (current-error-port) - (_ "updating list of substitutes from '~a'... ~5,1f%") + (G_ "updating list of substitutes from '~a'... ~5,1f%") url (* 100. (/ done (length paths)))) (set! done (+ 1 done))))) @@ -651,7 +651,7 @@ if file doesn't exist, and the narinfo otherwise." paths))) (filter-map (cut narinfo-from-file <> url) files))) (else - (leave (_ "~s: unsupported server URI scheme~%") + (leave (G_ "~s: unsupported server URI scheme~%") (if uri (uri-scheme uri) url))))) (let-values (((cache-info port) @@ -661,7 +661,7 @@ if file doesn't exist, and the narinfo otherwise." (%store-prefix)) (do-fetch (string->uri url) port) ;reuse PORT (begin - (warning (_ "'~a' uses different store '~a'; ignoring it~%") + (warning (G_ "'~a' uses different store '~a'; ignoring it~%") url (cache-info-store-directory cache-info)) (close-connection port) #f))))) @@ -781,12 +781,12 @@ PORT. REPORT-PROGRESS is a two-argument procedure such as that returned by (lambda () exp ...) (match-lambda* (('getaddrinfo-error error) - (leave (_ "host name lookup error: ~a~%") + (leave (G_ "host name lookup error: ~a~%") (gai-strerror error))) (('gnutls-error error proc . rest) (let ((error->string (module-ref (resolve-interface '(gnutls)) 'error->string))) - (leave (_ "TLS error in procedure '~a': ~a~%") + (leave (G_ "TLS error in procedure '~a': ~a~%") proc (error->string error)))) (args (apply throw args))))))) @@ -797,19 +797,19 @@ PORT. REPORT-PROGRESS is a two-argument procedure such as that returned by ;;; (define (show-help) - (display (_ "Usage: guix substitute [OPTION]... + (display (G_ "Usage: guix substitute [OPTION]... Internal tool to substitute a pre-built binary to a local build.\n")) - (display (_ " + (display (G_ " --query report on the availability of substitutes for the store file names passed on the standard input")) - (display (_ " + (display (G_ " --substitute STORE-FILE DESTINATION download STORE-FILE and store it as a Nar in file DESTINATION")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -875,7 +875,7 @@ DESTINATION as a nar file. Verify the substitute against ACL." ;; TRANSLATORS: The second part of this message looks like ;; "(4.1MiB installed)"; it shows the size of the package once ;; installed. - (_ "Downloading ~a~:[~*~; (~a installed)~]...~%") + (G_ "Downloading ~a~:[~*~; (~a installed)~]...~%") (uri->string uri) ;; Use the Nar size as an estimate of the installed size. (narinfo-size narinfo) @@ -932,7 +932,7 @@ DESTINATION as a nar file. Verify the substitute against ACL." (let ((acl (acl->public-keys (current-acl)))) (when (or (null? acl) (singleton? acl)) - (warning (_ "ACL for archive imports seems to be uninitialized, \ + (warning (G_ "ACL for archive imports seems to be uninitialized, \ substitutes may be unavailable\n"))))) (define (daemon-options) @@ -982,7 +982,7 @@ default value." (define (validate-uri uri) (unless (string->uri uri) - (leave (_ "~a: invalid URI~%") uri))) + (leave (G_ "~a: invalid URI~%") uri))) (define (guix-substitute . args) "Implement the build daemon's substituter protocol." @@ -1040,7 +1040,7 @@ default value." (("--help") (show-help)) (opts - (leave (_ "~a: unrecognized options~%") opts)))))) + (leave (G_ "~a: unrecognized options~%") opts)))))) ;;; Local Variables: ;;; eval: (put 'with-timeout 'scheme-indent-function 1) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 8fabdb5c14..18abfc43a8 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -130,7 +130,7 @@ BODY..., and restore them." #:prefix target #:state-directory state #:references refs) - (leave (_ "failed to register '~a' under '~a'~%") + (leave (G_ "failed to register '~a' under '~a'~%") item target)) (return #t)))) @@ -163,7 +163,7 @@ TARGET, and register them." (munless (false-if-exception (install-grub grub.cfg device target)) (delete-file temp-gc-root) - (leave (_ "failed to install GRUB on device '~a'~%") device)) + (leave (G_ "failed to install GRUB on device '~a'~%") device)) ;; Register GRUB.CFG as a GC root so that its dependencies (background ;; image, font, etc.) are not reclaimed. @@ -181,7 +181,7 @@ When GRUB? is true, install GRUB on DEVICE, using GRUB.CFG." (with-monad %store-monad (if (string=? target "/") (begin - (warning (_ "initializing the current root file system~%")) + (warning (G_ "initializing the current root file system~%")) (return #t)) (begin ;; Make sure the target store exists. @@ -195,7 +195,7 @@ When GRUB? is true, install GRUB on DEVICE, using GRUB.CFG." ;; . (if (zero? (geteuid)) (chown target 0 0) - (warning (_ "not running as 'root', so \ + (warning (G_ "not running as 'root', so \ the ownership of '~a' may be incorrect!~%") target)) @@ -236,21 +236,21 @@ expression in %STORE-MONAD." (values (run-with-store store (begin mbody ...)) store))) (lambda (key proc format-string format-args errno . rest) - (warning (_ "while talking to shepherd: ~a~%") + (warning (G_ "while talking to shepherd: ~a~%") (apply format #f format-string format-args)) (values #f store))))) (define (report-shepherd-error error) "Report ERROR, a '&shepherd-error' error condition object." (cond ((service-not-found-error? error) - (report-error (_ "service '~a' could not be found~%") + (report-error (G_ "service '~a' could not be found~%") (service-not-found-error-service error))) ((action-not-found-error? error) - (report-error (_ "service '~a' does not have an action '~a'~%") + (report-error (G_ "service '~a' does not have an action '~a'~%") (action-not-found-error-service error) (action-not-found-error-action error))) ((action-exception-error? error) - (report-error (_ "exception caught while executing '~a' \ + (report-error (G_ "exception caught while executing '~a' \ on service '~a':~%") (action-exception-error-action error) (action-exception-error-service error)) @@ -258,10 +258,10 @@ on service '~a':~%") (action-exception-error-key error) (action-exception-error-arguments error))) ((unknown-shepherd-error? error) - (report-error (_ "something went wrong: ~s~%") + (report-error (G_ "something went wrong: ~s~%") (unknown-shepherd-error-sexp error))) ((shepherd-error? error) - (report-error (_ "shepherd error~%"))) + (report-error (G_ "shepherd error~%"))) ((not error) ;not an error #t))) @@ -278,7 +278,7 @@ unload." to-unload)))) (#f (with-monad %store-monad - (warning (_ "failed to obtain list of shepherd services~%")) + (warning (G_ "failed to obtain list of shepherd services~%")) (return #f))))) (define (upgrade-shepherd-services os) @@ -298,7 +298,7 @@ bring the system down." (call-with-service-upgrade-info new-services (lambda (to-load to-unload) (for-each (lambda (unload) - (info (_ "unloading service '~a'...~%") unload) + (info (G_ "unloading service '~a'...~%") unload) (unload-service unload)) to-unload) @@ -306,7 +306,7 @@ bring the system down." (munless (null? to-load) (let ((to-load-names (map shepherd-service-canonical-name to-load)) (to-start (filter shepherd-service-auto-start? to-load))) - (info (_ "loading new services:~{ ~a~}...~%") to-load-names) + (info (G_ "loading new services:~{ ~a~}...~%") to-load-names) (mlet %store-monad ((files (mapm %store-monad shepherd-service-file to-load))) ;; Here we assume that FILES are exactly those that were computed @@ -330,7 +330,7 @@ it atomically, and then run OS's activation script." (switch-symlinks generation system) (switch-symlinks profile generation) - (format #t (_ "activating system...~%")) + (format #t (G_ "activating system...~%")) ;; The activation script may change $PATH, among others, so protect ;; against that. @@ -441,7 +441,7 @@ generation as its default entry. STORE is an open connection to the store." (begin (reinstall-grub store number) (switch-to-generation* %system-profile number)) - (leave (_ "cannot switch to system generation '~a'~%") spec)))) + (leave (G_ "cannot switch to system generation '~a'~%") spec)))) (define (reinstall-grub store number) "Re-install grub for existing system profile generation NUMBER. STORE is an @@ -475,7 +475,7 @@ open connection to the store." (switch-symlinks temp-gc-root grub.cfg-path) (unless (false-if-exception (install-grub-config grub.cfg-path "/")) (delete-file temp-gc-root) - (leave (_ "failed to re-install GRUB configuration file: '~a'~%") + (leave (G_ "failed to re-install GRUB configuration file: '~a'~%") grub.cfg-path)) (rename-file temp-gc-root gc-root)))) @@ -542,12 +542,12 @@ list of services." root)) (kernel (boot-parameters-kernel params))) (display-generation profile number) - (format #t (_ " file name: ~a~%") generation) - (format #t (_ " canonical file name: ~a~%") (readlink* generation)) + (format #t (G_ " file name: ~a~%") generation) + (format #t (G_ " canonical file name: ~a~%") (readlink* generation)) ;; TRANSLATORS: Please preserve the two-space indentation. - (format #t (_ " label: ~a~%") label) - (format #t (_ " root device: ~a~%") root-device) - (format #t (_ " kernel: ~a~%") kernel)))) + (format #t (G_ " label: ~a~%") label) + (format #t (G_ " root device: ~a~%") root-device) + (format #t (G_ " kernel: ~a~%") kernel)))) (define* (list-generations pattern #:optional (profile %system-profile)) "Display in a human-readable format all the system generations matching @@ -565,7 +565,7 @@ PATTERN, a string. When PATTERN is #f, display all the system generations." (leave-on-EPIPE (for-each display-system-generation numbers))))) (else - (leave (_ "invalid syntax: ~a~%") pattern)))) + (leave (G_ "invalid syntax: ~a~%") pattern)))) ;;; @@ -604,9 +604,9 @@ PATTERN, a string. When PATTERN is #f, display all the system generations." (string-append (config-directory) "/latest")) (unless (file-exists? latest) - (warning (_ "~a not found: 'guix pull' was never run~%") latest) - (warning (_ "Consider running 'guix pull' before 'reconfigure'.~%")) - (warning (_ "Failing to do that may downgrade your system!~%")))) + (warning (G_ "~a not found: 'guix pull' was never run~%") latest) + (warning (G_ "Consider running 'guix pull' before 'reconfigure'.~%")) + (warning (G_ "Failing to do that may downgrade your system!~%")))) (define* (perform-action action os #:key bootloader? dry-run? derivations-only? @@ -681,7 +681,7 @@ output when building a system derivation, such as a disk image." device "/")))) ((init) (newline) - (format #t (_ "initializing operating system under '~a'...~%") + (format #t (G_ "initializing operating system under '~a'...~%") target) (install sys (canonicalize-path target) #:grub? bootloader? @@ -725,61 +725,61 @@ output when building a system derivation, such as a disk image." ;;; (define (show-help) - (display (_ "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE] + (display (G_ "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE] Build the operating system declared in FILE according to ACTION. Some ACTIONS support additional ARGS.\n")) (newline) - (display (_ "The valid values for ACTION are:\n")) + (display (G_ "The valid values for ACTION are:\n")) (newline) - (display (_ "\ + (display (G_ "\ reconfigure switch to a new operating system configuration\n")) - (display (_ "\ + (display (G_ "\ roll-back switch to the previous operating system configuration\n")) - (display (_ "\ + (display (G_ "\ switch-generation switch to an existing operating system configuration\n")) - (display (_ "\ + (display (G_ "\ list-generations list the system generations\n")) - (display (_ "\ + (display (G_ "\ build build the operating system without installing anything\n")) - (display (_ "\ + (display (G_ "\ container build a container that shares the host's store\n")) - (display (_ "\ + (display (G_ "\ vm build a virtual machine image that shares the host's store\n")) - (display (_ "\ + (display (G_ "\ vm-image build a freestanding virtual machine image\n")) - (display (_ "\ + (display (G_ "\ disk-image build a disk image, suitable for a USB stick\n")) - (display (_ "\ + (display (G_ "\ init initialize a root file system to run GNU\n")) - (display (_ "\ + (display (G_ "\ extension-graph emit the service extension graph in Dot format\n")) - (display (_ "\ + (display (G_ "\ shepherd-graph emit the graph of shepherd services in Dot format\n")) (show-build-options-help) - (display (_ " + (display (G_ " -d, --derivation return the derivation of the given system")) - (display (_ " + (display (G_ " --on-error=STRATEGY apply STRATEGY when an error occurs while reading FILE")) - (display (_ " + (display (G_ " --image-size=SIZE for 'vm-image', produce an image of SIZE")) - (display (_ " + (display (G_ " --no-bootloader for 'init', do not install a bootloader")) - (display (_ " + (display (G_ " --share=SPEC for 'vm', share host file system according to SPEC")) - (display (_ " + (display (G_ " -r, --root=FILE for 'vm', 'vm-image', 'disk-image', 'container', and 'build', make FILE a symlink to the result, and register it as a garbage collector root")) - (display (_ " + (display (G_ " --expose=SPEC for 'vm', expose host file system according to SPEC")) - (display (_ " + (display (G_ " --full-boot for 'vm', make a full boot sequence")) (newline) - (display (_ " + (display (G_ " -h, --help display this help and exit")) - (display (_ " + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -862,7 +862,7 @@ resulting from command-line parsing." (os (if file (load* file %user-module #:on-error (assoc-ref opts 'on-error)) - (leave (_ "no configuration file specified~%")))) + (leave (G_ "no configuration file specified~%")))) (dry? (assoc-ref opts 'dry-run?)) (bootloader? (assoc-ref opts 'install-bootloader?)) @@ -912,21 +912,21 @@ argument list and OPTS is the option alist." (let ((pattern (match args (() "") ((pattern) pattern) - (x (leave (_ "wrong number of arguments~%")))))) + (x (leave (G_ "wrong number of arguments~%")))))) (list-generations pattern))) ;; The following commands need to use the store, but they do not need an ;; operating system configuration file. ((switch-generation) (let ((pattern (match args ((pattern) pattern) - (x (leave (_ "wrong number of arguments~%")))))) + (x (leave (G_ "wrong number of arguments~%")))))) (with-store store (set-build-options-from-command-line store opts) (switch-to-system-generation store pattern)))) ((roll-back) (let ((pattern (match args (() "") - (x (leave (_ "wrong number of arguments~%")))))) + (x (leave (G_ "wrong number of arguments~%")))))) (with-store store (set-build-options-from-command-line store opts) (roll-back-system store)))) @@ -945,7 +945,7 @@ argument list and OPTS is the option alist." extension-graph shepherd-graph list-generations roll-back switch-generation) (alist-cons 'action action result)) - (else (leave (_ "~a: unknown action~%") action)))))) + (else (leave (G_ "~a: unknown action~%") action)))))) (define (match-pair car) ;; Return a procedure that matches a pair with CAR. @@ -960,14 +960,14 @@ argument list and OPTS is the option alist." (count (length args)) (action (assoc-ref opts 'action))) (define (fail) - (leave (_ "wrong number of arguments for action '~a'~%") + (leave (G_ "wrong number of arguments for action '~a'~%") action)) (unless action (format (current-error-port) - (_ "guix system: missing command name~%")) + (G_ "guix system: missing command name~%")) (format (current-error-port) - (_ "Try 'guix system --help' for more information.~%")) + (G_ "Try 'guix system --help' for more information.~%")) (exit 1)) (case action diff --git a/guix/ssh.scm b/guix/ssh.scm index 59fd002dc7..4fb145230d 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -18,7 +18,7 @@ (define-module (guix ssh) #:use-module (guix store) - #:use-module ((guix ui) #:select (_ N_)) + #:use-module ((guix ui) #:select (G_ N_)) #:use-module (ssh session) #:use-module (ssh auth) #:use-module (ssh key) @@ -80,13 +80,13 @@ Throw an error on failure." (disconnect! session) (raise (condition (&message - (message (format #f (_ "SSH authentication failed for '~a': ~a~%") + (message (format #f (G_ "SSH authentication failed for '~a': ~a~%") host (get-error session))))))))) (x ;; Connection failed or timeout expired. (raise (condition (&message - (message (format #f (_ "SSH connection to '~a' failed: ~a~%") + (message (format #f (G_ "SSH connection to '~a' failed: ~a~%") host (get-error session)))))))))) (define* (remote-daemon-channel session @@ -269,7 +269,7 @@ LOCAL. When RECURSIVE? is true, retrieve the closure of FILES." (&message (message (format #f - (_ "failed to retrieve store items from '~a'") + (G_ "failed to retrieve store items from '~a'") (remote-store-host remote))))))) (let ((result (import-paths local port))) diff --git a/guix/ui.scm b/guix/ui.scm index ae59718747..e551d48c33 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -55,7 +55,7 @@ #:use-module (texinfo) #:use-module (texinfo plain-text) #:use-module (texinfo string-utils) - #:export (_ + #:export (G_ N_ P_ report-error @@ -117,7 +117,7 @@ ;; Text domain for package synopses and descriptions. "guix-packages") -(define _ (cut gettext <> %gettext-domain)) +(define G_ (cut gettext <> %gettext-domain)) (define N_ (cut ngettext <> <> <> %gettext-domain)) (define (P_ msgid) @@ -140,7 +140,7 @@ messages." (syntax-case x () ((name (underscore fmt) args (... ...)) (and (string? (syntax->datum #'fmt)) - (free-identifier=? #'underscore #'_)) + (free-identifier=? #'underscore #'G_)) (with-syntax ((fmt* (augmented-format-string #'fmt)) (prefix (datum->syntax x prefix))) #'(format (guix-warning-port) (gettext fmt*) @@ -238,7 +238,7 @@ messages." (case on-error ((debug) (newline) - (display (_ "entering debugger; type ',bt' for a backtrace\n")) + (display (G_ "entering debugger; type ',bt' for a backtrace\n")) (start-repl #:debug (make-debug (stack->vector stack) 0 (error-string frame args) #f))) @@ -254,19 +254,19 @@ ARGS is the list of arguments received by the 'throw' handler." (match args (('system-error . rest) (let ((err (system-error-errno args))) - (report-error (_ "failed to load '~a': ~a~%") file (strerror err)))) + (report-error (G_ "failed to load '~a': ~a~%") file (strerror err)))) (('syntax-error proc message properties form . rest) (let ((loc (source-properties->location properties))) - (format (current-error-port) (_ "~a: error: ~a~%") + (format (current-error-port) (G_ "~a: error: ~a~%") (location->string loc) message))) (('srfi-34 obj) (if (message-condition? obj) - (report-error (_ "~a~%") + (report-error (G_ "~a~%") (gettext (condition-message obj) %gettext-domain)) - (report-error (_ "exception thrown: ~s~%") obj))) + (report-error (G_ "exception thrown: ~s~%") obj))) ((error args ...) - (report-error (_ "failed to load '~a':~%") file) + (report-error (G_ "failed to load '~a':~%") file) (apply display-error frame (current-error-port) args)))) (define (warn-about-load-error file args) ;FIXME: factorize with ↑ @@ -275,20 +275,20 @@ exiting. ARGS is the list of arguments received by the 'throw' handler." (match args (('system-error . rest) (let ((err (system-error-errno args))) - (warning (_ "failed to load '~a': ~a~%") file (strerror err)))) + (warning (G_ "failed to load '~a': ~a~%") file (strerror err)))) (('syntax-error proc message properties form . rest) (let ((loc (source-properties->location properties))) - (format (current-error-port) (_ "~a: warning: ~a~%") + (format (current-error-port) (G_ "~a: warning: ~a~%") (location->string loc) message))) (('srfi-34 obj) (if (message-condition? obj) - (warning (_ "failed to load '~a': ~a~%") + (warning (G_ "failed to load '~a': ~a~%") file (gettext (condition-message obj) %gettext-domain)) - (warning (_ "failed to load '~a': exception thrown: ~s~%") + (warning (G_ "failed to load '~a': exception thrown: ~s~%") file obj))) ((error args ...) - (warning (_ "failed to load '~a':~%") file) + (warning (G_ "failed to load '~a':~%") file) (apply display-error #f (current-error-port) args)))) (define (install-locale) @@ -297,7 +297,7 @@ exiting. ARGS is the list of arguments received by the 'throw' handler." (lambda _ (setlocale LC_ALL "")) (lambda args - (warning (_ "failed to install locale: ~a~%") + (warning (G_ "failed to install locale: ~a~%") (strerror (system-error-errno args)))))) (define (initialize-guix) @@ -320,9 +320,9 @@ exiting. ARGS is the list of arguments received by the 'throw' handler." ;; TRANSLATORS: Translate "(C)" to the copyright symbol ;; (C-in-a-circle), if this symbol is available in the user's ;; locale. Otherwise, do not translate "(C)"; leave it as-is. */ - (_ "(C)") - (_ "the Guix authors\n")) - (display (_"\ + (G_ "(C)") + (G_ "the Guix authors\n")) + (display (G_"\ License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. @@ -334,11 +334,11 @@ There is NO WARRANTY, to the extent permitted by law. ;; package. Please add another line saying "Report translation bugs to ;; ...\n" with the address for translation bugs (typically your translation ;; team's web or email address). - (format #t (_ " + (format #t (G_ " Report bugs to: ~a.") %guix-bug-report-address) - (format #t (_ " + (format #t (G_ " ~a home page: <~a>") %guix-package-name %guix-home-page-url) - (display (_ " + (display (G_ " General help using GNU software: ")) (newline)) @@ -383,13 +383,13 @@ nicely." (lambda () (apply make-regexp regexp flags)) (lambda (key proc message . rest) - (leave (_ "'~a' is not a valid regular expression: ~a~%") + (leave (G_ "'~a' is not a valid regular expression: ~a~%") regexp message)))) (define (string->number* str) "Like `string->number', but error out with an error message on failure." (or (string->number str) - (leave (_ "~a: invalid number~%") str))) + (leave (G_ "~a: invalid number~%") str))) (define (size->number str) "Convert STR, a storage measurement representation such as \"1024\" or @@ -406,7 +406,7 @@ interpreted." str)) (num (string->number numstr))) (unless num - (leave (_ "invalid number: ~a~%") numstr)) + (leave (G_ "invalid number: ~a~%") numstr)) ((compose inexact->exact round) (* num @@ -429,7 +429,7 @@ interpreted." ("YB" (expt 10 24)) ("" 1) (x - (leave (_ "unknown unit: ~a~%") unit))))))) + (leave (G_ "unknown unit: ~a~%") unit))))))) (define (call-with-error-handling thunk) "Call THUNK within a user-friendly error handler." @@ -446,62 +446,62 @@ interpreted." (file (location-file location)) (line (location-line location)) (column (location-column location))) - (leave (_ "~a:~a:~a: package `~a' has an invalid input: ~s~%") + (leave (G_ "~a:~a:~a: package `~a' has an invalid input: ~s~%") file line column (package-full-name package) input))) ((package-cross-build-system-error? c) (let* ((package (package-error-package c)) (loc (package-location package)) (system (package-build-system package))) - (leave (_ "~a: ~a: build system `~a' does not support cross builds~%") + (leave (G_ "~a: ~a: build system `~a' does not support cross builds~%") (location->string loc) (package-full-name package) (build-system-name system)))) ((gexp-input-error? c) (let ((input (package-error-invalid-input c))) - (leave (_ "~s: invalid G-expression input~%") + (leave (G_ "~s: invalid G-expression input~%") (gexp-error-invalid-input c)))) ((profile-not-found-error? c) - (leave (_ "profile '~a' does not exist~%") + (leave (G_ "profile '~a' does not exist~%") (profile-error-profile c))) ((missing-generation-error? c) - (leave (_ "generation ~a of profile '~a' does not exist~%") + (leave (G_ "generation ~a of profile '~a' does not exist~%") (missing-generation-error-generation c) (profile-error-profile c))) ((nar-error? c) (let ((file (nar-error-file c)) (port (nar-error-port c))) (if file - (leave (_ "corrupt input while restoring '~a' from ~s~%") + (leave (G_ "corrupt input while restoring '~a' from ~s~%") file (or (port-filename* port) port)) - (leave (_ "corrupt input while restoring archive from ~s~%") + (leave (G_ "corrupt input while restoring archive from ~s~%") (or (port-filename* port) port))))) ((nix-connection-error? c) - (leave (_ "failed to connect to `~a': ~a~%") + (leave (G_ "failed to connect to `~a': ~a~%") (nix-connection-error-file c) (strerror (nix-connection-error-code c)))) ((nix-protocol-error? c) ;; FIXME: Server-provided error messages aren't i18n'd. - (leave (_ "build failed: ~a~%") + (leave (G_ "build failed: ~a~%") (nix-protocol-error-message c))) ((derivation-missing-output-error? c) - (leave (_ "reference to invalid output '~a' of derivation '~a'~%") + (leave (G_ "reference to invalid output '~a' of derivation '~a'~%") (derivation-missing-output c) (derivation-file-name (derivation-error-derivation c)))) ((file-search-error? c) - (leave (_ "file '~a' could not be found in these \ + (leave (G_ "file '~a' could not be found in these \ directories:~{ ~a~}~%") (file-search-error-file-name c) (file-search-error-search-path c))) ((message-condition? c) ;; Normally '&message' error conditions have an i18n'd message. - (leave (_ "~a~%") + (leave (G_ "~a~%") (gettext (condition-message c) %gettext-domain)))) ;; Catch EPIPE and the likes. (catch 'system-error thunk (lambda (key proc format-string format-args . rest) - (leave (_ "~a: ~a~%") proc + (leave (G_ "~a: ~a~%") proc (apply format #f format-string format-args)))))) (define-syntax-rule (leave-on-EPIPE exp ...) @@ -536,22 +536,22 @@ similar." (lambda () (call-with-input-string str read)) (lambda args - (leave (_ "failed to read expression ~s: ~s~%") + (leave (G_ "failed to read expression ~s: ~s~%") str args))))) (catch #t (lambda () (eval exp (force %guix-user-module))) (lambda args - (report-error (_ "failed to evaluate expression '~a':~%") exp) + (report-error (G_ "failed to evaluate expression '~a':~%") exp) (match args (('syntax-error proc message properties form . rest) - (report-error (_ "syntax error: ~a~%") message)) + (report-error (G_ "syntax error: ~a~%") message)) (('srfi-34 obj) (if (message-condition? obj) - (report-error (_ "~a~%") + (report-error (G_ "~a~%") (gettext (condition-message obj) %gettext-domain)) - (report-error (_ "exception thrown: ~s~%") obj))) + (report-error (G_ "exception thrown: ~s~%") obj))) ((error args ...) (apply display-error #f (current-error-port) args)) (what? #f)) @@ -563,7 +563,7 @@ error." (match (read/eval str) ((? package? p) p) (x - (leave (_ "expression ~s does not evaluate to a package~%") + (leave (G_ "expression ~s does not evaluate to a package~%") str)))) (define (show-derivation-outputs derivation) @@ -771,7 +771,7 @@ replacement if PORT is not Unicode-capable." (define (location->string loc) "Return a human-friendly, GNU-standard representation of LOC." (match loc - (#f (_ "")) + (#f (G_ "")) (($ file line column) (format #f "~a:~a:~a" file line column)))) @@ -790,7 +790,7 @@ exists. Honor the XDG specs, (lambda args (let ((err (system-error-errno args))) ;; ERR is necessarily different from EEXIST. - (leave (_ "failed to create configuration directory `~a': ~a~%") + (leave (G_ "failed to create configuration directory `~a': ~a~%") dir (strerror err))))))) (define* (fill-paragraph str width #:optional (column 0)) @@ -921,7 +921,7 @@ WIDTH columns." (dependencies->recutils (filter package? inputs))))) (format port "location: ~a~%" (or (and=> (package-location p) location->string) - (_ "unknown"))) + (G_ "unknown"))) ;; Note: Starting from version 1.6 or recutils, hyphens are not allowed in ;; field identifiers. @@ -935,7 +935,7 @@ WIDTH columns." ((? license? license) (license-name license)) (x - (_ "unknown")))) + (G_ "unknown")))) (format port "synopsis: ~a~%" (string-map (match-lambda (#\newline #\space) @@ -1093,7 +1093,7 @@ DURATION-RELATION with the current time." (define (display-generation profile number) "Display a one-line summary of generation NUMBER of PROFILE." (unless (zero? number) - (let ((header (format #f (_ "Generation ~a\t~a") number + (let ((header (format #f (G_ "Generation ~a\t~a") number (date->string (time-utc->date (generation-time profile number)) @@ -1103,7 +1103,7 @@ DURATION-RELATION with the current time." ;; TRANSLATORS: The word "current" here is an adjective for ;; "Generation", as in "current generation". Use the appropriate ;; gender where applicable. - (format #t (_ "~a\t(current)~%") header) + (format #t (G_ "~a\t(current)~%") header) (format #t "~a~%" header))))) (define (display-profile-content-diff profile gen1 gen2) @@ -1146,7 +1146,7 @@ way." (profile-manifest (generation-file-name profile number)))))) (define (display-generation-change previous current) - (format #t (_ "switched from generation ~a to ~a~%") previous current)) + (format #t (G_ "switched from generation ~a to ~a~%") previous current)) (define (roll-back* store profile) "Like 'roll-back', but display what is happening." @@ -1162,7 +1162,7 @@ way." (define (delete-generation* store profile generation) "Like 'delete-generation', but display what is going on." - (format #t (_ "deleting ~a~%") + (format #t (G_ "deleting ~a~%") (generation-file-name profile generation)) (delete-generation store profile generation)) @@ -1193,7 +1193,7 @@ optionally contain a version number and an output name, as in these examples: (define (show-guix-usage) (format (current-error-port) - (_ "Try `guix --help' for more information.~%")) + (G_ "Try `guix --help' for more information.~%")) (exit 1)) (define (command-files) @@ -1221,10 +1221,10 @@ optionally contain a version number and an output name, as in these examples: (member command '("substitute" "authenticate" "offload" "perform-download"))) - (format #t (_ "Usage: guix COMMAND ARGS... + (format #t (G_ "Usage: guix COMMAND ARGS... Run COMMAND with ARGS.\n")) (newline) - (format #t (_ "COMMAND must be one of the sub-commands listed below:\n")) + (format #t (G_ "COMMAND must be one of the sub-commands listed below:\n")) (newline) ;; TODO: Display a synopsis of each command. (format #t "~{ ~a~%~}" (sort (remove internal? (commands)) @@ -1244,7 +1244,7 @@ found." (resolve-interface `(guix scripts ,command))) (lambda - (format (current-error-port) - (_ "guix: ~a: command not found~%") command) + (G_ "guix: ~a: command not found~%") command) (show-guix-usage)))) (let ((command-main (module-ref module @@ -1263,7 +1263,7 @@ and signal handling has already been set up." (match args (() (format (current-error-port) - (_ "guix: missing command name~%")) + (G_ "guix: missing command name~%")) (show-guix-usage)) ((or ("-h") ("--help")) (show-guix-help)) @@ -1271,7 +1271,7 @@ and signal handling has already been set up." (show-version-and-exit "guix")) (((? option? o) args ...) (format (current-error-port) - (_ "guix: unrecognized option '~a'~%") o) + (G_ "guix: unrecognized option '~a'~%") o) (show-guix-usage)) (("help" command) (apply run-guix-command (string->symbol command) diff --git a/guix/upstream.scm b/guix/upstream.scm index a47a52be3f..5083e6b805 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -209,9 +209,9 @@ values: 'interactive' (default), 'always', and 'never'." (if ret tarball (begin - (warning (_ "signature verification failed for `~a'~%") + (warning (G_ "signature verification failed for `~a'~%") url) - (warning (_ "(could be because the public key is not in your keyring)~%")) + (warning (G_ "(could be because the public key is not in your keyring)~%")) #f)))))) (define (find2 pred lst1 lst2) @@ -290,12 +290,12 @@ if an update was made, and #f otherwise." old-version version old-hash hash)) version) (begin - (warning (_ "~a: could not locate source file") + (warning (G_ "~a: could not locate source file") (location-file loc)) #f))) (begin (format (current-error-port) - (_ "~a: ~a: no `version' field in source; skipping~%") + (G_ "~a: ~a: no `version' field in source; skipping~%") (location->string (package-location package)) name))))) diff --git a/po/guix/Makevars b/po/guix/Makevars index 8ec7d8aed6..6e301b68ef 100644 --- a/po/guix/Makevars +++ b/po/guix/Makevars @@ -10,7 +10,7 @@ top_builddir = ../.. # we use 'n_' instead of the more usual 'N_' for no-ops. XGETTEXT_OPTIONS = \ --from-code=UTF-8 \ - --keyword=_ --keyword=N_:1,2 \ + --keyword=G_ --keyword=N_:1,2 \ --keyword=message \ --keyword=description \ --keyword=n_ From cef3f14644d86391a6e9a814dca4bfd500bc064f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 3 May 2017 17:22:33 +0200 Subject: [PATCH 051/386] gnu: tlp: Install all files. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/linux.scm (tlp)[arguments]: Add ‘fix-installation’ phase so the installation no longer aborts half-way, and use ‘zero?’ in the install phase so this cannot go undetected again. --- gnu/packages/linux.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a5a2ea3e0c..9db8be94a8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3658,7 +3658,7 @@ Light is the successor of lightscript.") (arguments `(#:phases (modify-phases %standard-phases - (delete 'configure) + (delete 'configure) ; no configure script (add-before 'build 'setenv (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -3673,10 +3673,14 @@ Light is the successor of lightscript.") (setenv "TLP_SHCPL" (string-append out "/share/bash-completion/completions")) (setenv "TLP_MAN" (string-append out "/share/man"))))) - (delete 'check) + (delete 'check) ; no tests + (add-before 'install 'fix-installation + (lambda _ + ;; Stop the Makefile from trying to create system directories. + (substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#")))) (replace 'install (lambda _ - (system "make install-tlp install-man"))) + (zero? (system* "make" "install-tlp" "install-man")))) (add-after 'install 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((bin (string-append (assoc-ref outputs "out") "/bin")) From 2ed12d3fb0fa5a532e5640e26665988372ce5d14 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 3 May 2017 21:58:02 +0300 Subject: [PATCH 052/386] gnu: libressl: Update to 2.5.4. * gnu/packages/tls.scm (libressl): Update to 2.5.4. [home-page]: Use https. --- gnu/packages/tls.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index f90ff5c497..e9510e3ddb 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016, 2017 Leo Famulari -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Hartmut Goebel ;;; @@ -431,7 +431,7 @@ required structures.") (define-public libressl (package (name "libressl") - (version "2.5.3") + (version "2.5.4") (source (origin (method url-fetch) @@ -440,7 +440,7 @@ required structures.") version ".tar.gz")) (sha256 (base32 - "0c4awq45cl757fv7f7f75i5i0ibc6v7ns13n7xvfak7chv2lrqql")))) + "1ykf6dqlbafafhbdfmcj19pjj1z6wmsq0rmyqga1i0xv5x95nyhh")))) (build-system gnu-build-system) (arguments ;; Do as if 'getentropy' was missing since older Linux kernels lack it @@ -458,7 +458,7 @@ required structures.") (search-path-specification (variable "SSL_CERT_FILE") (files '("etc/ssl/certs/ca-certificates.crt"))))) - (home-page "http://www.libressl.org/") + (home-page "https://www.libressl.org/") (synopsis "SSL/TLS implementation") (description "LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014, with the goals of modernizing the codebase, improving From 90027924b708c721971db453f9ec37932972a79b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 3 May 2017 22:13:16 +0300 Subject: [PATCH 053/386] gnu: Add gfortran@7. * gnu/packages/gcc.scm (gfortran@7): New variable. --- gnu/packages/gcc.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 39e1aee2ec..5d1a4ea754 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -540,6 +540,10 @@ as the 'native-search-paths' field." (custom-gcc gcc-6 "gfortran" '("fortran") %generic-search-paths)) +(define-public gfortran-7 + (custom-gcc gcc-7 "gfortran" '("fortran") + %generic-search-paths)) + (define-public gfortran ;; Note: Update this when GCC changes! We cannot use ;; (custom-gcc gcc "fortran" …) because that would lead to a package object From 21b99aade1bcaa3393bb1028324bd22265b3bf34 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 27 Apr 2017 15:52:48 +0530 Subject: [PATCH 054/386] gnu: Add emacs-gnuplot. * gnu/packages/emacs.scm (emacs-gnuplot): New variable. --- gnu/packages/emacs.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 09353f5067..74f0ff8b59 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4519,3 +4519,45 @@ It should enable you to implement low-level X11 applications.") (description "EXWM is a full-featured tiling X window manager for Emacs built on top of XELB.") (license license:gpl3+))) + +(define-public emacs-gnuplot + (package + (name "emacs-gnuplot") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/bruceravel/gnuplot-mode/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i")))) + (build-system gnu-build-system) + (native-inputs `(("emacs" ,emacs-minimal))) + (arguments + (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d" + "/gnuplot-" version))) + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-utils)) + #:configure-flags + (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs") + "/bin/emacs") + (string-append "--with-lispdir=" %output ,elisp-dir)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'generate-autoloads + (lambda* (#:key outputs #:allow-other-keys) + (emacs-generate-autoloads + "gnuplot" + (string-append (assoc-ref outputs "out") ,elisp-dir)) + #t)))))) + (home-page "https://github.com/bruceravel/gnuplot-mode") + (synopsis "Emacs major mode for interacting with gnuplot") + (description "@code{emacs-gnuplot} is an emacs major mode for interacting +with gnuplot.") + (license license:gpl2+))) From db88b5a85791d309e58cdd3e1f0ce5ecf8f2ce9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Sun, 30 Apr 2017 16:56:18 +0200 Subject: [PATCH 055/386] gnu: gitolite: Avoid references to the store in authorized_keys. * gnu/packages/version-control.scm (gitolite)[arguments]: Substitute '$glshell' with 'gitolite-shell' in ssh-authkeys. --- gnu/packages/version-control.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index e0770dc589..1cad0f2850 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -628,7 +628,13 @@ also walk each side of a merge and test those changes individually.") ;; invokes Perl. (substitute* (find-files "." ".*") ((" perl -") - (string-append " " perl " -")))))) + (string-append " " perl " -"))) + + ;; Avoid references to the store in authorized_keys. + ;; This works because gitolite-shell is in the PATH. + (substitute* "src/triggers/post-compile/ssh-authkeys" + (("\\$glshell \\$user") + "gitolite-shell $user"))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((output (assoc-ref outputs "out")) From 0ea45ef4226a0b70bee5c2fad700e9e188dfa88f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Wed, 3 May 2017 22:07:16 +0200 Subject: [PATCH 056/386] gnu: Add missing copyright line. * gnu/packages/version-control.scm: Add missing copyright line for commit db88b5a. --- gnu/packages/version-control.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 1cad0f2850..05df61d724 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Vasile Dumitrascu +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; From 1dc0a66591f4fb37fc0df2aec6d3b0b7e2046c70 Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 26 Apr 2017 11:10:01 +0000 Subject: [PATCH 057/386] gnu: Add fish-guix. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/shells.scm (fish-guix): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/shells.scm | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 012f272ca4..5f57619e02 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright © 2016 Stefan Reichör ;;; Copyright © 2017 Ricardo Wurmus -;;; Copyright © 2017 ng0 +;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Leo Famulari ;;; ;;; This file is part of GNU Guix. @@ -147,6 +147,32 @@ highlighting.") (home-page "https://fishshell.com/") (license gpl2))) +(define-public fish-guix + (package + (name "fish-guix") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://dist.pragmatique.xyz/fish-guix/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0xi0j9lvzh43lrj82gz52n2cjln0i0pgayngrg4hy5w4449biy0z")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No checks. + #:make-flags (list + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script. + (home-page "https://pragmatique.noblogs.org/software/fish-guix/downloads/") + (synopsis "Fish completions for Guix") + (description + "Fish-guix provides completions for Guix for users of the fish shell.") + (license public-domain))) + (define-public rc (package (name "rc") From cd903ef7871170d3c4eced45418459d293ef48a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 3 May 2017 23:03:20 +0200 Subject: [PATCH 058/386] Add (guix discovery). * guix/discovery.scm, tests/discovery.scm: New files. * gnu/packages.scm (scheme-files, file-name->module-name) (scheme-modules, all-package-modules): Remove. (fold-packages): Rewrite in terms of 'fold-module-public-variables'. * gnu/tests.scm: Use (guix discovery). * Makefile.am (MODULES): Add guix/discovery.scm. (SCM_TESTS): Add tests/discovery.scm. --- Makefile.am | 2 + gnu/packages.scm | 93 +++---------------------------- gnu/tests.scm | 2 +- guix/discovery.scm | 131 ++++++++++++++++++++++++++++++++++++++++++++ tests/discovery.scm | 52 ++++++++++++++++++ 5 files changed, 194 insertions(+), 86 deletions(-) create mode 100644 guix/discovery.scm create mode 100644 tests/discovery.scm diff --git a/Makefile.am b/Makefile.am index 426f8327d9..c6d8de68bc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -50,6 +50,7 @@ MODULES = \ guix/sets.scm \ guix/modules.scm \ guix/download.scm \ + guix/discovery.scm \ guix/git-download.scm \ guix/hg-download.scm \ guix/monads.scm \ @@ -279,6 +280,7 @@ SCM_TESTS = \ tests/records.scm \ tests/upstream.scm \ tests/combinators.scm \ + tests/discovery.scm \ tests/utils.scm \ tests/build-utils.scm \ tests/packages.scm \ diff --git a/gnu/packages.scm b/gnu/packages.scm index 08f1340612..57907155fb 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -24,12 +24,11 @@ #:use-module (guix packages) #:use-module (guix ui) #:use-module (guix utils) + #:use-module (guix discovery) #:use-module (guix memoization) - #:use-module (guix combinators) #:use-module ((guix build utils) #:select ((package-name->name+version . hyphen-separated-name->name+version))) - #:use-module (ice-9 ftw) #:use-module (ice-9 vlist) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -48,7 +47,6 @@ %package-module-path fold-packages - scheme-modules ;XXX: for lack of a better place find-packages-by-name find-best-packages-by-name @@ -140,92 +138,17 @@ for system '~a'") directory)) %load-path))) -(define* (scheme-files directory) - "Return the list of Scheme files found under DIRECTORY, recursively. The -returned list is sorted in alphabetical order." - - ;; Sort entries so that 'fold-packages' works in a deterministic fashion - ;; regardless of details of the underlying file system. - (sort (file-system-fold (const #t) ; enter? - (lambda (path stat result) ; leaf - (if (string-suffix? ".scm" path) - (cons path result) - result)) - (lambda (path stat result) ; down - result) - (lambda (path stat result) ; up - result) - (const #f) ; skip - (lambda (path stat errno result) - (warning (G_ "cannot access `~a': ~a~%") - path (strerror errno)) - result) - '() - directory - stat) - stringmodule-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." - (define prefix-len - (string-length directory)) - - (filter-map (lambda (file) - (let* ((file (substring file prefix-len)) - (module (file-name->module-name file))) - (catch #t - (lambda () - (resolve-interface module)) - (lambda args - ;; Report the error, but keep going. - (warn-about-load-error module args) - #f)))) - (scheme-files (if sub-directory - (string-append directory "/" sub-directory) - directory)))) - -(define* (all-package-modules #:optional (path (%package-module-path))) - "Return the list of package modules found in PATH, a list of directories to -search." - (fold-right (lambda (spec result) - (match spec - ((? string? directory) - (append (scheme-modules directory) result)) - ((directory . sub-directory) - (append (scheme-modules directory sub-directory) - result)))) - '() - path)) - (define (fold-packages proc init) "Call (PROC PACKAGE RESULT) for each available package, using INIT as the initial value of RESULT. It is guaranteed to never traverse the same package twice." - (identity ; discard second return value - (fold2 (lambda (module result seen) - (fold2 (lambda (var result seen) - (if (and (package? var) - (not (vhash-assq var seen)) - (not (hidden-package? var))) - (values (proc var result) - (vhash-consq var #t seen)) - (values result seen))) - result - seen - (module-map (lambda (sym var) - (false-if-exception (variable-ref var))) - module))) - init - vlist-null - (all-package-modules)))) + (fold-module-public-variables (lambda (object result) + (if (and (package? object) + (not (hidden-package? object))) + (proc object result) + result)) + init + (all-modules (%package-module-path)))) (define find-packages-by-name (let ((packages (delay diff --git a/gnu/tests.scm b/gnu/tests.scm index e84d1ebb20..0df6e5a2ef 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -27,7 +27,7 @@ #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services shepherd) - #:use-module ((gnu packages) #:select (scheme-modules)) + #:use-module ((guix discovery) #:select (scheme-modules)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9 gnu) #:use-module (ice-9 match) diff --git a/guix/discovery.scm b/guix/discovery.scm new file mode 100644 index 0000000000..319ba7c872 --- /dev/null +++ b/guix/discovery.scm @@ -0,0 +1,131 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; +;;; 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 discovery) + #:use-module (guix ui) + #:use-module (guix combinators) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match) + #:use-module (ice-9 vlist) + #:use-module (ice-9 ftw) + #:export (scheme-modules + fold-modules + all-modules + fold-module-public-variables)) + +;;; Commentary: +;;; +;;; This module provides tools to discover Guile modules and the variables +;;; they export. +;;; +;;; Code: + +(define* (scheme-files directory) + "Return the list of Scheme files found under DIRECTORY, recursively. The +returned list is sorted in alphabetical order." + + ;; Sort entries so that 'fold-packages' works in a deterministic fashion + ;; regardless of details of the underlying file system. + (sort (file-system-fold (const #t) ;enter? + (lambda (path stat result) ;leaf + (if (string-suffix? ".scm" path) + (cons path result) + result)) + (lambda (path stat result) ;down + result) + (lambda (path stat result) ;up + result) + (const #f) ;skip + (lambda (path stat errno result) + (unless (= ENOENT errno) + (warning (G_ "cannot access `~a': ~a~%") + path (strerror errno))) + result) + '() + directory + stat) + stringmodule-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." + (define prefix-len + (string-length directory)) + + (filter-map (lambda (file) + (let* ((file (substring file prefix-len)) + (module (file-name->module-name file))) + (catch #t + (lambda () + (resolve-interface module)) + (lambda args + ;; Report the error, but keep going. + (warn-about-load-error module args) + #f)))) + (scheme-files (if sub-directory + (string-append directory "/" sub-directory) + directory)))) + +(define (fold-modules proc init path) + "Fold over all the Scheme modules present in PATH, a list of directories. +Call (PROC MODULE RESULT) for each module that is found." + (fold (lambda (spec result) + (match spec + ((? string? directory) + (fold proc result (scheme-modules directory))) + ((directory . sub-directory) + (fold proc result + (scheme-modules directory sub-directory))))) + '() + path)) + +(define (all-modules path) + "Return the list of package modules found in PATH, a list of directories to +search. Entries in PATH can be directory names (strings) or (DIRECTORY +. SUB-DIRECTORY) pairs, in which case modules are searched for beneath +SUB-DIRECTORY." + (fold-modules cons '() path)) + +(define (fold-module-public-variables proc init modules) + "Call (PROC OBJECT RESULT) for each variable exported by one of MODULES, +using INIT as the initial value of RESULT. It is guaranteed to never traverse +the same object twice." + (identity ; discard second return value + (fold2 (lambda (module result seen) + (fold2 (lambda (var result seen) + (if (not (vhash-assq var seen)) + (values (proc var result) + (vhash-consq var #t seen)) + (values result seen))) + result + seen + (module-map (lambda (sym var) + (false-if-exception (variable-ref var))) + module))) + init + vlist-null + modules))) + +;;; discovery.scm ends here diff --git a/tests/discovery.scm b/tests/discovery.scm new file mode 100644 index 0000000000..b838731e16 --- /dev/null +++ b/tests/discovery.scm @@ -0,0 +1,52 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès +;;; +;;; 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 (test-discovery) + #:use-module (guix discovery) + #:use-module (guix build-system) + #:use-module (srfi srfi-64) + #:use-module (ice-9 match)) + +(define %top-srcdir + (dirname (search-path %load-path "guix.scm"))) + +(test-begin "discovery") + +(test-assert "scheme-modules" + (match (map module-name (scheme-modules %top-srcdir "guix/import")) + ((('guix 'import _ ...) ..1) + #t))) + +(test-assert "all-modules" + (match (map module-name + (all-modules `((,%top-srcdir . "guix/build-system")))) + ((('guix 'build-system names) ..1) + names))) + +(test-assert "fold-module-public-variables" + (let ((modules (all-modules `((,%top-srcdir . "guix/build-system"))))) + (match (fold-module-public-variables (lambda (obj result) + (if (build-system? obj) + (cons obj result) + result)) + '() + modules) + (((? build-system? bs) ..1) + bs)))) + +(test-end "discovery") From 634088a56532e256e676e1979eac8271b333fd35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 3 May 2017 23:21:06 +0200 Subject: [PATCH 059/386] refresh: Use (guix discovery). * guix/scripts/refresh.scm (maybe-updater, list-updaters): Remove. (importer-modules): New procedure. (%updaters): Define using 'fold-module-public-variables'. Turn into a promise and adjust users. --- guix/scripts/refresh.scm | 76 +++++++++------------------------------- 1 file changed, 17 insertions(+), 59 deletions(-) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 645572f182..f85d6e5101 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -28,18 +28,10 @@ #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix upstream) + #:use-module (guix discovery) #:use-module (guix graph) #:use-module (guix scripts graph) #:use-module (guix monads) - #:use-module ((guix gnu-maintenance) - #:select (%gnu-updater - %gnome-updater - %kde-updater - %xorg-updater - %kernel.org-updater)) - #:use-module (guix import elpa) - #:use-module (guix import cran) - #:use-module (guix import hackage) #:use-module (guix gnupg) #:use-module (gnu packages) #:use-module ((gnu packages commencement) #:select (%final-inputs)) @@ -163,61 +155,27 @@ specified with `--select'.\n")) ;;; Updates. ;;; -(define-syntax maybe-updater - ;; Helper macro for 'list-updaters'. - (syntax-rules (=>) - ((_ ((module => updater) rest ...) result) - (maybe-updater (rest ...) - (let ((iface (false-if-exception - (resolve-interface 'module))) - (tail result)) - (if iface - (cons (module-ref iface 'updater) tail) - tail)))) - ((_ (updater rest ...) result) - (maybe-updater (rest ...) - (cons updater result))) - ((_ () result) - (reverse result)))) - -(define-syntax-rule (list-updaters updaters ...) - "Expand to '(list UPDATERS ...)' but only the subset of UPDATERS that are -either unconditional, or have their requirement met. - -A conditional updater has this form: - - ((SOME MODULE) => UPDATER) - -meaning that UPDATER is added to the list if and only if (SOME MODULE) could -be resolved at run time. - -This is a way to discard at macro expansion time updaters that depend on -unavailable optional dependencies such as Guile-JSON." - (maybe-updater (updaters ...) '())) +(define (importer-modules) + "Return the list of importer modules." + (cons (resolve-interface '(guix gnu-maintenance)) + (all-modules (map (lambda (entry) + `(,entry . "guix/import")) + %load-path)))) (define %updaters - ;; List of "updaters" used by default. They are consulted in this order. - (list-updaters %gnu-updater - %gnome-updater - %kde-updater - %xorg-updater - %kernel.org-updater - %elpa-updater - %cran-updater - %bioconductor-updater - ((guix import stackage) => %stackage-updater) - %hackage-updater - ((guix import cpan) => %cpan-updater) - ((guix import pypi) => %pypi-updater) - ((guix import gem) => %gem-updater) - ((guix import github) => %github-updater) - ((guix import crate) => %crate-updater))) + ;; The list of publically-known updaters. + (delay (fold-module-public-variables (lambda (obj result) + (if (upstream-updater? obj) + (cons obj result) + result)) + '() + (importer-modules)))) (define (lookup-updater-by-name name) "Return the updater called NAME." (or (find (lambda (updater) (eq? name (upstream-updater-name updater))) - %updaters) + (force %updaters)) (leave (G_ "~a: no such updater~%") name))) (define (list-updaters-and-exit) @@ -240,7 +198,7 @@ unavailable optional dependencies such as Guile-JSON." (* 100. (/ matches total))) (+ covered matches))) 0 - %updaters)) + (force %updaters))) (newline) (format #t (G_ "~2,1f% of the packages are covered by these updaters.~%") @@ -372,7 +330,7 @@ dependent packages are rebuilt: ~{~a~^ ~}~%" opts) (() ;; Use the default updaters. - %updaters) + (force %updaters)) (lists (concatenate lists)))) From fc06b15e86d40549dc30097621a2c7c6bcd69f2e Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Wed, 29 Mar 2017 11:43:55 +0200 Subject: [PATCH 060/386] doc: Add 'Debugging Build Failures' node. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Debugging Build Failures): New node. Co-authored-by: Ludovic Courtès --- doc/guix.texi | 85 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 9b2fe3fdb8..0054022fb9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -34,7 +34,8 @@ Copyright @copyright{} 2017 Clément Lassieur@* Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo Zancanaro@* -Copyright @copyright{} 2017 Thomas Danckaert +Copyright @copyright{} 2017 Thomas Danckaert@* +Copyright @copyright{} 2017 humanitiesNerd Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -2879,7 +2880,8 @@ unavailable to the build process, possibly leading to a build failure. Once a package definition is in place, the package may actually be built using the @code{guix build} command-line -tool (@pxref{Invoking guix build}). You can easily jump back to the +tool (@pxref{Invoking guix build}), troubleshooting any build failures +you encounter (@pxref{Debugging Build Failures}). You can easily jump back to the package definition using the @command{guix edit} command (@pxref{Invoking guix edit}). @xref{Packaging Guidelines}, for @@ -4832,6 +4834,7 @@ described in the subsections below. * Common Build Options:: Build options for most commands. * Package Transformation Options:: Creating variants of packages. * Additional Build Options:: Options specific to 'guix build'. +* Debugging Build Failures:: Real life packaging experience @end menu @node Common Build Options @@ -4857,6 +4860,8 @@ the command-line tools. Keep the build tree of failed builds. Thus, if a build fails, its build tree is kept under @file{/tmp}, in a directory whose name is shown at the end of the build log. This is useful when debugging build issues. +@xref{Debugging Build Failures}, for tips and tricks on how to debug +build issues. @item --keep-going @itemx -k @@ -5244,6 +5249,82 @@ https://hydra.gnu.org/log/@dots{}-gdb-7.10 You can freely access a huge library of build logs! @end table +@node Debugging Build Failures +@subsection Debugging Build Failures + +@cindex build failures, debugging +When defining a new package (@pxref{Defining Packages}), you will +probably find yourself spending some time debugging and tweaking the +build until it succeeds. To do that, you need to operate the build +commands yourself in an environment as close as possible to the one the +build daemon uses. + +To that end, the first thing to do is to use the @option{--keep-failed} +or @option{-K} option of @command{guix build}, which will keep the +failed build tree in @file{/tmp} or whatever directory you specified as +@code{TMPDIR} (@pxref{Invoking guix build, @code{--keep-failed}}). + +From there on, you can @command{cd} to the failed build tree and source +the @file{environment-variables} file, which contains all the +environment variable definitions that were in place when the build +failed. So let's say you're debugging a build failure in package +@code{foo}; a typical session would look like this: + +@example +$ guix build foo -K +@dots{} @i{build fails} +$ cd /tmp/guix-build-foo.drv-0 +$ source ./environment-variables +$ cd foo-1.2 +@end example + +Now, you can invoke commands as if you were the daemon (almost) and +troubleshoot your build process. + +Sometimes it happens that, for example, a package's tests pass when you +run them manually but they fail when the daemon runs them. This can +happen because the daemon runs builds in containers where, unlike in our +environment above, network access is missing, @file{/bin/sh} does not +exist, etc. (@pxref{Build Environment Setup}). + +In such cases, you may need to run inspect the build process from within +a container similar to the one the build daemon creates: + +@example +$ guix build -K foo +@dots{} +$ cd /tmp/guix-build-foo.drv-0 +$ guix environment -C foo --ad-hoc strace gdb +[env]# source ./environment-variables +[env]# cd foo-1.2 +@end example + +Here, @command{guix environment -C} creates a container and spawns a new +shell in it (@pxref{Invoking guix environment}). The @command{--ad-hoc +strace gdb} part adds the @command{strace} and @command{gdb} commands to +the container, which would may find handy while debugging. + +To get closer to a container like that used by the build daemon, we can +remove @file{/bin/sh}: + +@example +[env]# rm /bin/sh +@end example + +(Don't worry, this is harmless: this is all happening in the throw-away +container created by @command{guix environment}.) + +The @command{strace} command is probably not in the search path, but we +can run: + +@example +[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check +@end example + +In this way, not only you will have reproduced the environment variables +the daemon uses, you will also be running the build process in a container +similar to the one the daemon uses. + @node Invoking guix edit @section Invoking @command{guix edit} From ecc7aa893d80513e851ced164f09c34a7f919b3e Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Tue, 2 May 2017 14:34:28 +0200 Subject: [PATCH 061/386] gnu: bind: Update to 9.11.1. * gnu/packages/dns.scm (bind): Update to 9.11.1. [license]: Change isc to mpl2.0. Signed-off-by: Leo Famulari --- gnu/packages/dns.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index c0279565d8..871f034cb6 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 ng0 ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2016 Marius Bakke +;;; Copyright © 2017 Vasile Dumitrascu ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,7 +91,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public bind (package (name "bind") - (version "9.10.4-P8") + (version "9.11.1") (source (origin (method url-fetch) (uri (string-append @@ -98,7 +99,7 @@ and BOOTP/TFTP for network booting of diskless machines.") version ".tar.gz")) (sha256 (base32 - "1sv6fp5gznjj1kmx9q8wr2c6js10wqckgy25sqj83bbf8smmdlvx")))) + "1chhphaa4lmfxj9daqsxph5ng4h3qq51jx21rj2i6an8ynah0192")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs @@ -149,7 +150,7 @@ high-volume and high-reliability applications. The name BIND stands for \"Berkeley Internet Name Domain\", because the software originated in the early 1980s at the University of California at Berkeley.") (home-page "https://www.isc.org/downloads/bind") - (license (list license:isc)))) + (license (list license:mpl2.0)))) (define-public dnscrypt-proxy (package From 481a042b4471970fee7e0b244ccdf8a832fd71b2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 3 May 2017 19:12:46 -0400 Subject: [PATCH 062/386] gnu: dmenu: Update to 4.7. * gnu/packages/suckless.scm (dmenu): Update to 4.7. --- gnu/packages/suckless.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index a87e665d2b..3fcc02db70 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -137,14 +137,14 @@ optimising the environment for the application in use and the task performed.") (define-public dmenu (package (name "dmenu") - (version "4.6") + (version "4.7") (source (origin (method url-fetch) (uri (string-append "http://dl.suckless.org/tools/dmenu-" version ".tar.gz")) (sha256 (base32 - "1cwnvamqqlgczvd5dv5rsgqbhv8kp0ddjnhmavb3q732i8028yja")))) + "1fgph549i0yw62x02jhfc8qmqk2rnzcnm46bxq6jig1cvkw3amm7")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests From e54ae862d29d9e6be6aad37020ee3ee497f26e04 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 2 May 2017 02:40:58 -0400 Subject: [PATCH 063/386] gnu: msgpack: Update to 1.4.2. * gnu/packages/serialization.scm (msgpack): Update to 1.4.2. --- gnu/packages/serialization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 5908f50d68..dfdec902c9 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -92,7 +92,7 @@ such as compact binary encodings, XML, or JSON.") (define-public msgpack (package (name "msgpack") - (version "1.4.1") + (version "1.4.2") (source (origin (method url-fetch) @@ -108,7 +108,7 @@ such as compact binary encodings, XML, or JSON.") (close-output-port p)))) (sha256 (base32 - "0bpjfh9vz0n2k93mph3x15clmigkgs223xfn8h12ymrh5gsi5ica")))) + "18hzmyfg3mvnp7ab03nqdzzvqagkl42gygjpi4zv4i7aca2dmwf0")))) (build-system gnu-build-system) (native-inputs `(("googletest" ,googletest) From b5236121065abe32a88f8f0644ceb505f5cf1d18 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 2 May 2017 02:40:44 -0400 Subject: [PATCH 064/386] gnu: libmpack: Update to 1.0.5. * gnu/packages/serialization.scm (libmpack): Update to 1.0.5. --- gnu/packages/serialization.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index dfdec902c9..602b44b0ec 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -136,14 +136,15 @@ serialization.") (define-public libmpack (package (name "libmpack") - (version "1.0.3") + (version "1.0.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/tarruda/libmpack/" "archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "08kfdl55yf66xk57aqsbf8n45f2jsw2v7qwnaan08ciim77j3sv5")))) + (base32 + "0ml922gv8y99lbldqb9ykpjndla0hlprdjyl79yskkhwv2ai7sac")))) (build-system gnu-build-system) (arguments `(#:test-target "test" From 55a797999a61dad1ad15df6a214434cda8efc9b8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 2 May 2017 02:34:51 -0400 Subject: [PATCH 065/386] gnu: capnproto: Update to 0.6.0. * gnu/packages/serialization.scm (capnproto): Update to 0.6.0. --- gnu/packages/serialization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 602b44b0ec..7110491fa6 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -265,7 +265,7 @@ it a convenient format to store user input files.") (define-public capnproto (package (name "capnproto") - (version "0.5.3.1") + (version "0.6.0") (source (origin (method url-fetch) (uri (string-append @@ -273,7 +273,7 @@ it a convenient format to store user input files.") version ".tar.gz")) (sha256 (base32 - "06wi4fcxx58nc7pr2xga20hn11psk56b0yhna5bx2pw90mlcbd84")))) + "0gpp1cxsb9nfd7qkjjykzknx03y0z0n4bq5q0fmxci7w38ci22g5")))) (build-system gnu-build-system) (arguments `(#:phases From 74067fedce8a4fd15b51114a52130a9ec6199082 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 3 May 2017 21:38:57 +0200 Subject: [PATCH 066/386] environment: Correct typo. * guix/scripts/environment.scm (create-environment): Fix typo. --- guix/scripts/environment.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 0b2b964bf7..af69e2b730 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -72,7 +72,7 @@ as 'HOME' and 'USER' are left untouched." (define (create-environment profile paths pure?) "Set the environment variables specified by PATHS for PROFILE. When PURE? is #t, unset the variables in the current environment. Otherwise, augment -existing enviroment variables with additional search paths." +existing environment variables with additional search paths." (when pure? (purify-environment)) (for-each (match-lambda ((($ variable _ separator) . value) From f4129cdd6a3c9ab01e16020dcd1c3708365bba23 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 4 May 2017 12:47:23 +0200 Subject: [PATCH 067/386] gnu: man-pages: Update to 4.11. * gnu/packages/man.scm (man-pages): Update to 4.11. --- gnu/packages/man.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index a2e435e999..2cc685deed 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -134,7 +134,7 @@ the traditional flat-text whatis databases.") (define-public man-pages (package (name "man-pages") - (version "4.10") + (version "4.11") (source (origin (method url-fetch) (uri @@ -147,7 +147,7 @@ the traditional flat-text whatis databases.") "man-pages-" version ".tar.xz"))) (sha256 (base32 - "1yk3ibmbc1wamw798lqw8lh203xnrjddy8wdk5d3hifmj71xz5bk")))) + "097m0gsbaz0gf9ir4lmph3h5jj6wmydk1rglfz82dysybx4q1pmd")))) (build-system gnu-build-system) (arguments '(#:phases (alist-delete 'configure %standard-phases) From e8e1ace0394dd979a1ad5459ebb5b9247f7ff1d7 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 3 May 2017 17:10:22 +0200 Subject: [PATCH 068/386] gnu: guile-bytestructures: Install sld files. * gnu/packages/guile.scm (guile-bytestructures): Build and install sld files in r7 repository. It fixes this kind of errors while using guile-bytestructures: ice-9/psyntax.scm:3245:33: ice-9/psyntax.scm:3245:33: Syntax error: /gnu/store/ny9mp091yw51ylv1q59z25z5vdw8bi56-profile/share/guile/site/2.2/bytestructures/guile/base.scm:8:19: include-from-path: file not found in path in subform "bytestructures/r7/base.exports.sld" of (include-from-path "bytestructures/r7/base.exports.sld") --- gnu/packages/guile.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 32d67794e8..c2f31fc8a1 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1471,6 +1471,8 @@ is no support for parsing block and inline level HTML.") effective)) (source (assoc-ref %build-inputs "source")) (doc (string-append out "/share/doc/scheme-bytestructures")) + (sld-files (with-directory-excursion source + (find-files "bytestructures/r7" "\\.exports.sld$"))) (scm-files (filter (lambda (path) (not (string-prefix? "bytestructures/r7" path))) (with-directory-excursion source @@ -1502,7 +1504,7 @@ is no support for parsing block and inline level HTML.") file)) (error (format #f "Failed to compile ~s to ~s!" file go-file))))) - scm-files) + (append sld-files scm-files)) ;; Also copy over the README. (install-file "README.md" doc) From 6ba4eca234470c2151755b071e8a06c9e4e49b1b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 4 May 2017 14:18:38 +0200 Subject: [PATCH 069/386] gnu: llvm-3.5: Fix build of clang-3.5. * gnu/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch: New file * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/llvm.scm (llvm-3.5)[source]: Add patch. --- gnu/local.mk | 1 + gnu/packages/llvm.scm | 2 ++ .../llvm-3.5-fix-clang-build-with-gcc5.patch | 35 +++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 gnu/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4c6e8af16c..ce7ecc36cf 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -768,6 +768,7 @@ dist_patch_DATA = \ %D%/packages/patches/libxt-guix-search-paths.patch \ %D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/lirc-localstatedir.patch \ + %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ %D%/packages/patches/llvm-for-extempore.patch \ %D%/packages/patches/lm-sensors-hwmon-attrs.patch \ %D%/packages/patches/lua-CVE-2014-5461.patch \ diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 04a2b39af9..52a78467a8 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -268,6 +268,8 @@ code analysis tools.") (method url-fetch) (uri (string-append "http://llvm.org/releases/" version "/llvm-" version ".src.tar.xz")) + (patches + (search-patches "llvm-3.5-fix-clang-build-with-gcc5.patch")) (sha256 (base32 "0xf5q17kkxsrm2gsi93h4pwlv663kji73r2g4asb97klsmb626a4")))))) diff --git a/gnu/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch b/gnu/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch new file mode 100644 index 0000000000..faa8252c43 --- /dev/null +++ b/gnu/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch @@ -0,0 +1,35 @@ +This patch was downloaded from https://sft.its.cern.ch/jira/browse/ROOT-7047. +It fixes the build of clang 3.5 with GCC 5. File paths have been adjusted. + +From 00f3ed6eee41da871799ad0fd19153c7682d61fe Mon Sep 17 00:00:00 2001 +From: Alexander Klimov +Date: Mon, 26 Jan 2015 18:45:23 +0200 +Subject: [PATCH] [ADT/IntrusiveRefCntPtr] Give friend access to + IntrusiveRefCntPtr so the relevant move constructor can + access 'Obj'. + +From LLVM upstream: +Author: Argyrios Kyrtzidis +Date: Tue Sep 23 06:06:43 2014 +0000 +git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218295 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + interpreter/llvm/src/include/llvm/ADT/IntrusiveRefCntPtr.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/llvm/ADT/IntrusiveRefCntPtr.h b/include/llvm/ADT/IntrusiveRefCntPtr.h +index f9df378..c859c98 100644 +--- a/include/llvm/ADT/IntrusiveRefCntPtr.h ++++ b/include/llvm/ADT/IntrusiveRefCntPtr.h +@@ -197,6 +197,9 @@ public: + private: + void retain() { if (Obj) IntrusiveRefCntPtrInfo::retain(Obj); } + void release() { if (Obj) IntrusiveRefCntPtrInfo::release(Obj); } ++ ++ template ++ friend class IntrusiveRefCntPtr; + }; + + template +-- +1.7.10.4 + From 7ec309af909add2791638d7e712e95c6dd24e723 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 4 May 2017 17:06:53 +0200 Subject: [PATCH 070/386] gnu: lua-libmpack: Update to new upstream source. Inheriting the source from libmpack no longer works, because upstream has moved the Lua bindings to a separate repository. This is a follow-up to commit b5236121065abe32a88f8f0644ceb505f5cf1d18. * gnu/packages/serialization.scm (lua-libmpack)[source]: Use new upstream source. [arguments]: Adjust make flags and build phases. [native-inputs]: Add package sources of libmpack. [home-page]: Use new home page URL. --- gnu/packages/serialization.scm | 35 +++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 7110491fa6..8e355223d6 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -165,6 +165,14 @@ that implements both the msgpack and msgpack-rpc specifications.") (define-public lua-libmpack (package (inherit libmpack) (name "lua-libmpack") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/libmpack/libmpack-lua/" + "archive/" (package-version libmpack) ".tar.gz")) + (file-name (string-append name "-" (package-version libmpack) ".tar.gz")) + (sha256 + (base32 + "153zrrbyxhf71dgzjjhrk56rfwk3nisslpgcqyg44v8fnz1xpk6i")))) (build-system gnu-build-system) (arguments `(;; FIXME: tests require "busted", which is not yet available in Guix. @@ -174,26 +182,35 @@ that implements both the msgpack and msgpack-rpc specifications.") (let* ((lua-version ,(package-version lua)) (lua-major+minor ,(version-major+minor (package-version lua)))) (list "CC=gcc" + "FETCH=echo" ; don't fetch anything from the web + "UNTGZ=echo" ; and don't try to unpack it "USE_SYSTEM_LUA=yes" - (string-append "LUA_VERSION=" lua-version) - (string-append "LUA_VERSION_MAJ_MIN=" lua-major+minor) + (string-append "MPACK_LUA_VERSION=" lua-version) + (string-append "MPACK_LUA_VERSION_NOPATCH=" lua-major+minor) (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "LUA_CMOD_INSTALLDIR=" (assoc-ref %outputs "out") - "/lib/lua/" lua-major+minor) - ;; This is unnecessary as of upstream commit 02886c13ff8a2, - ;; which is not part of the current release. - "CFLAGS=-DLUA_C89_NUMBERS -fPIC")) + "/lib/lua/" lua-major+minor))) #:phases (modify-phases %standard-phases (delete 'configure) - (add-after 'unpack 'chdir - (lambda _ (chdir "binding/lua") #t))))) + (add-after 'unpack 'unpack-mpack-sources + (lambda* (#:key inputs #:allow-other-keys) + ;; This is broken because mpack-src is not a file, but all + ;; prerequisites are added to the inputs of the gcc invocation. + (substitute* "Makefile" + (("\\$\\(MPACK\\): mpack-src") "$(MPACK): ")) + (mkdir-p "mpack-src") + (zero? (system* "tar" "-C" "mpack-src" + "--strip-components=1" + "-xvf" (assoc-ref inputs "libmpack")))))))) (inputs `(("lua" ,lua))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("libmpack" ,(package-source libmpack)))) + (home-page "https://github.com/libmpack/libmpack-lua") (synopsis "Lua bindings for the libmpack binary serialization library"))) (define-public lua5.2-libmpack From 0cdc3343ad0c5b1d8c4055662a47ae8e147373f4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 4 May 2017 17:09:16 +0200 Subject: [PATCH 071/386] gnu: lua5.2-libmpack: Fix make flags. This is a follow-up to commit. b5236121065abe32a88f8f0644ceb505f5cf1d18. * gnu/packages/serialization.scm (lua5.2-libmpack)[arguments]: Adjust make flags. --- gnu/packages/serialization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 8e355223d6..a6b5270199 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -223,8 +223,8 @@ that implements both the msgpack and msgpack-rpc specifications.") (lua-major+minor ,(version-major+minor (package-version lua-5.2)))) (list "CC=gcc" "USE_SYSTEM_LUA=yes" - (string-append "LUA_VERSION=" lua-version) - (string-append "LUA_VERSION_MAJ_MIN=" lua-major+minor) + (string-append "MPACK_LUA_VERSION=" lua-version) + (string-append "MPACK_LUA_VERSION_NOPATCH=" lua-major+minor) (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "LUA_CMOD_INSTALLDIR=" From 3e961de4347ce175a5417f37acfe3c6e29f1bc3d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 4 May 2017 17:34:54 +0200 Subject: [PATCH 072/386] gnu: neovim: Update to 0.2.0. * gnu/packages/vim.scm (neovim): Update to 0.2.0. --- gnu/packages/vim.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 44ae52202c..5ceb7c8315 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -515,7 +515,7 @@ and powerline symbols, etc.") (define-public neovim (package (name "neovim") - (version "0.1.7") + (version "0.2.0") (source (origin (method url-fetch) @@ -524,7 +524,7 @@ and powerline symbols, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0zjbpc4rhv5bcr353xqnbrc36zjvn7qvh8xf6s7n1bdi3788by6q")))) + "1db27zm6cldm1aw0570vii1bxc16a34x8lissl1h9rizsbwn7qkj")))) (build-system cmake-build-system) (arguments `(#:modules ((srfi srfi-26) From 8eb55df48835d08e7b522ac060fa56832172f05e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 4 May 2017 11:36:58 +0200 Subject: [PATCH 073/386] nls: Mark (guix discovery) as translatable. This is a followup to cd903ef7871170d3c4eced45418459d293ef48a7. * po/guix/POTFILES.in: Add 'guix/discovery.scm'. --- po/guix/POTFILES.in | 1 + 1 file changed, 1 insertion(+) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index bc78c3e303..6ec3e8d405 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -7,6 +7,7 @@ gnu/services/shepherd.scm gnu/system/shadow.scm guix/scripts.scm guix/scripts/build.scm +guix/discovery.scm guix/scripts/download.scm guix/scripts/package.scm guix/scripts/gc.scm From 67d84d6335ae84ac7c217061570e6b968060073c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 4 May 2017 11:43:01 +0200 Subject: [PATCH 074/386] tests: Use 'fold-module-public-variables' for discovery. * gnu/tests.scm (fold-system-tests): Write in terms of 'fold-module-public-variables'. --- gnu/tests.scm | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/gnu/tests.scm b/gnu/tests.scm index 0df6e5a2ef..810711ab91 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -27,7 +27,7 @@ #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services shepherd) - #:use-module ((guix discovery) #:select (scheme-modules)) + #:use-module (guix discovery) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9 gnu) #:use-module (ice-9 match) @@ -263,17 +263,12 @@ the system under test." (define (fold-system-tests proc seed) "Invoke PROC on each system test, passing it the test and the previous result." - (fold (lambda (module result) - (fold (lambda (thing result) - (if (system-test? thing) - (proc thing result) - result)) - result - (module-map (lambda (sym var) - (false-if-exception (variable-ref var))) - module))) - '() - (test-modules))) + (fold-module-public-variables (lambda (obj result) + (if (system-test? obj) + (cons obj result) + result)) + '() + (test-modules))) (define (all-system-tests) "Return the list of system tests." From d7ecab74eeaf412ec850efbeb3001cfc6edfe51c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 4 May 2017 14:21:35 +0200 Subject: [PATCH 075/386] gnu: Add gcc-toolchain@7. * gnu/packages/commencement.scm (gcc-toolchain-7): New variable. --- gnu/packages/commencement.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 4fa34c93b1..1b41feac1f 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1025,4 +1025,7 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.") (define-public gcc-toolchain-6 (gcc-toolchain gcc-6)) +(define-public gcc-toolchain-7 + (gcc-toolchain gcc-7)) + ;;; commencement.scm ends here From 4032dd81d520666375e72914b5946620cac009a7 Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 3 May 2017 23:36:16 +0000 Subject: [PATCH 076/386] gnu: fish-guix: Adjust the home-page. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/shells.scm (fish-guix)[home-page]: Use the correct website. Signed-off-by: Ludovic Courtès --- gnu/packages/shells.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 5f57619e02..d87d58e5c6 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -167,7 +167,7 @@ highlighting.") #:phases (modify-phases %standard-phases (delete 'configure)))) ; No configure script. - (home-page "https://pragmatique.noblogs.org/software/fish-guix/downloads/") + (home-page "https://pragmatique.xyz/software/fish-guix.html") (synopsis "Fish completions for Guix") (description "Fish-guix provides completions for Guix for users of the fish shell.") From cd041b268e9af4918a696f9f6f2b04e51a2d0599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 4 May 2017 16:40:00 +0200 Subject: [PATCH 077/386] store: Add store path computation procedures. * guix/derivations.scm (compressed-hash, store-path) (output-path, fixed-output-path): Move to... * guix/store.scm: ... here. --- guix/derivations.scm | 52 ---------------------------------------- guix/store.scm | 57 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 56 insertions(+), 53 deletions(-) diff --git a/guix/derivations.scm b/guix/derivations.scm index d5e0f453e2..9aaab05ecb 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -76,7 +76,6 @@ derivation-name derivation-output-names fixed-output-derivation? - fixed-output-path offloadable-derivation? substitutable-derivation? substitution-oracle @@ -614,20 +613,6 @@ list of name/path pairs of its outputs." ;;; Derivation primitive. ;;; -(define (compressed-hash bv size) ; `compressHash' - "Given the hash stored in BV, return a compressed version thereof that fits -in SIZE bytes." - (define new (make-bytevector size 0)) - (define old-size (bytevector-length bv)) - (let loop ((i 0)) - (if (= i old-size) - new - (let* ((j (modulo i size)) - (o (bytevector-u8-ref new j))) - (bytevector-u8-set! new j - (logxor o (bytevector-u8-ref bv i))) - (loop (+ 1 i)))))) - (define derivation-path->base16-hash (mlambda (file) "Return a string containing the base16 representation of the hash of the @@ -674,43 +659,6 @@ derivation at FILE." ;; character. (sha256 (derivation->bytevector drv))))))) -(define (store-path type hash name) ; makeStorePath - "Return the store path for NAME/HASH/TYPE." - (let* ((s (string-append type ":sha256:" - (bytevector->base16-string hash) ":" - (%store-prefix) ":" name)) - (h (sha256 (string->utf8 s))) - (c (compressed-hash h 20))) - (string-append (%store-prefix) "/" - (bytevector->nix-base32-string c) "-" - name))) - -(define (output-path output hash name) ; makeOutputPath - "Return an output path for OUTPUT (the name of the output as a string) of -the derivation called NAME with hash HASH." - (store-path (string-append "output:" output) hash - (if (string=? output "out") - name - (string-append name "-" output)))) - -(define* (fixed-output-path name hash - #:key - (output "out") - (hash-algo 'sha256) - (recursive? #t)) - "Return an output path for the fixed output OUTPUT defined by HASH of type -HASH-ALGO, of the derivation NAME. RECURSIVE? has the same meaning as for -'add-to-store'." - (if (and recursive? (eq? hash-algo 'sha256)) - (store-path "source" hash name) - (let ((tag (string-append "fixed:" output ":" - (if recursive? "r:" "") - (symbol->string hash-algo) ":" - (bytevector->base16-string hash) ":"))) - (store-path (string-append "output:" output) - (sha256 (string->utf8 tag)) - name)))) - (define* (derivation store name builder args #:key (system (%current-system)) (env-vars '()) diff --git a/guix/store.scm b/guix/store.scm index 8e7f09678e..ee47703a55 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -23,7 +23,8 @@ #:use-module (guix serialization) #:use-module (guix monads) #:use-module (guix base16) - #:autoload (guix base32) (bytevector->base32-string) + #:use-module (guix base32) + #:use-module (guix hash) #:autoload (guix build syscalls) (terminal-columns) #:use-module (rnrs bytevectors) #:use-module (ice-9 binary-ports) @@ -133,6 +134,9 @@ interned-file %store-prefix + store-path + output-path + fixed-output-path store-path? direct-store-path? derivation-path? @@ -1347,6 +1351,57 @@ connection, and return the result." ;; Absolute path to the Nix store. (make-parameter %store-directory)) +(define (compressed-hash bv size) ; `compressHash' + "Given the hash stored in BV, return a compressed version thereof that fits +in SIZE bytes." + (define new (make-bytevector size 0)) + (define old-size (bytevector-length bv)) + (let loop ((i 0)) + (if (= i old-size) + new + (let* ((j (modulo i size)) + (o (bytevector-u8-ref new j))) + (bytevector-u8-set! new j + (logxor o (bytevector-u8-ref bv i))) + (loop (+ 1 i)))))) + +(define (store-path type hash name) ; makeStorePath + "Return the store path for NAME/HASH/TYPE." + (let* ((s (string-append type ":sha256:" + (bytevector->base16-string hash) ":" + (%store-prefix) ":" name)) + (h (sha256 (string->utf8 s))) + (c (compressed-hash h 20))) + (string-append (%store-prefix) "/" + (bytevector->nix-base32-string c) "-" + name))) + +(define (output-path output hash name) ; makeOutputPath + "Return an output path for OUTPUT (the name of the output as a string) of +the derivation called NAME with hash HASH." + (store-path (string-append "output:" output) hash + (if (string=? output "out") + name + (string-append name "-" output)))) + +(define* (fixed-output-path name hash + #:key + (output "out") + (hash-algo 'sha256) + (recursive? #t)) + "Return an output path for the fixed output OUTPUT defined by HASH of type +HASH-ALGO, of the derivation NAME. RECURSIVE? has the same meaning as for +'add-to-store'." + (if (and recursive? (eq? hash-algo 'sha256)) + (store-path "source" hash name) + (let ((tag (string-append "fixed:" output ":" + (if recursive? "r:" "") + (symbol->string hash-algo) ":" + (bytevector->base16-string hash) ":"))) + (store-path (string-append "output:" output) + (sha256 (string->utf8 tag)) + name)))) + (define (store-path? path) "Return #t if PATH is a store path." ;; This is a lightweight check, compared to using a regexp, but this has to From 396d12faea2dcfeae2572818b55a00d90b4bd213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 4 May 2017 16:41:30 +0200 Subject: [PATCH 078/386] store: Use 'write-bytevector' instead of hand-coded equivalent. * guix/store.scm (process-stderr): Use 'write-bytevector' in the %STDERR-READ case. --- guix/store.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index ee47703a55..b71c47b9bb 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -581,9 +581,7 @@ encoding conversion errors." (let* ((max-len (read-int p)) (data (make-bytevector max-len)) (len (get-bytevector-n! user-port data 0 max-len))) - (write-int len p) - (put-bytevector p data 0 len) - (write-padding len p) + (write-bytevector data p) #f)) ((= k %stderr-next) ;; Log a string. Build logs are usually UTF-8-encoded, but they From 49e6b0d95107ff4c9fe6478f6dc1f7601a8bdd3b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 4 May 2017 22:24:20 +0300 Subject: [PATCH 079/386] gnu: qca: Update to 2.1.3. * gnu/packages/kde.scm (qca): Update to 2.1.3. [home-page]: Use new home-page. --- gnu/packages/kde.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 9d8507030b..b481bb98db 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. @@ -308,7 +308,7 @@ with a ksysguardd daemon, which may also run on a remote system.") (define-public qca (package (name "qca") - (version "2.1.1") + (version "2.1.3") (source (origin (method url-fetch) @@ -316,14 +316,14 @@ with a ksysguardd daemon, which may also run on a remote system.") "/src/qca-" version ".tar.xz")) (sha256 (base32 - "10z9icq28fww4qbzwra8d9z55ywbv74qk68nhiqfrydm21wkxplm")))) + "0lz3n652z208daxypdcxiybl0a9fnn6ida0q7fh5f42269mdhgq0")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("openssl" ,openssl) ("qtbase" ,qtbase))) - (home-page "http://delta.affinix.com/qca/") + (home-page "https://userbase.kde.org/QCA") (synopsis "Libraries for the Qt Cryptographic Architecture") (description "The Qt Cryptographic Architecture (QCA) provides a straightforward and cross-platform API for a range of cryptographic features, From 8ca0c88a894c685b624757e38ee7663534f03460 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 28 Apr 2017 15:52:21 +0300 Subject: [PATCH 080/386] doc: Add references to Emacs-Guix manual. * doc/htmlxref.cnf: Add links to the real manual. * doc/contributing.texi (Formatting Code): Add reference to it. * doc/guix.texi (Package Management): Likewise. --- doc/contributing.texi | 5 ++++- doc/guix.texi | 12 +++++++----- doc/htmlxref.cnf | 4 +++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/doc/contributing.texi b/doc/contributing.texi index bbc93424b4..8465745ee9 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -248,7 +248,10 @@ please do read it. Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules. These are defined in the -@file{.dir-locals.el} file, which Emacs automatically uses. +@file{.dir-locals.el} file, which Emacs automatically uses. Also note +that Emacs-Guix provides @code{guix-devel-mode} mode that indents and +highlights Guix code properly (@pxref{Development,,, emacs-guix, The +Emacs-Guix Reference Manual}). @cindex indentation, of code @cindex formatting, of code diff --git a/doc/guix.texi b/doc/guix.texi index 0054022fb9..79942d7cd1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1430,11 +1430,13 @@ remove software packages, without having to know about their build procedures or dependencies. Guix also goes beyond this obvious set of features. -This chapter describes the main features of Guix, as well as the package -management tools it provides. Along with the command-line interface -described below (@pxref{Invoking guix package, @code{guix package}}), -you may also use Emacs Interface, after installing @code{emacs-guix} -package (run @kbd{M-x guix-help} command to start with it): +This chapter describes the main features of Guix, as well as the +package management tools it provides. Along with the command-line +interface described below (@pxref{Invoking guix package, @code{guix +package}}), you may also use Emacs Interface (@pxref{Top,,, +emacs-guix, The Emacs-Guix Reference Manual}), after installing +@code{emacs-guix} package (run @kbd{M-x guix-help} command to start +with it): @example guix package -i emacs-guix diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf index 93e214fcc5..78f427bd07 100644 --- a/doc/htmlxref.cnf +++ b/doc/htmlxref.cnf @@ -219,7 +219,9 @@ emacs node ${EMACS}/html_node/emacs/ easejs mono ${GS}/easejs/manual/easejs.html easejs node ${GS}/easejs/manual/ -emacs-guix mono https://notabug.org/alezost/emacs-guix +EMACS_GUIX = https://alezost.github.io/guix.el/manual/latest +emacs-guix mono ${EMACS_GUIX}/emacs-guix.html +emacs-guix node ${EMACS_GUIX}/html_node/index.html emacs-muse node ${GS}/emacs-muse/manual/muse.html emacs-muse node ${GS}/emacs-muse/manual/html_node/ From 97658183eda6e196bd16bed02838d321b45aee70 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 28 Apr 2017 16:07:33 +0300 Subject: [PATCH 081/386] etc: indent-code.el: Define source tree by "indent-code.el". * etc/indent-code.el.in: Set default directory by "indent-code.el" itself, otherwise it works only when called from the top directory of the guix source tree. --- etc/indent-code.el.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/indent-code.el.in b/etc/indent-code.el.in index 68ad72c562..6102b5d1ab 100755 --- a/etc/indent-code.el.in +++ b/etc/indent-code.el.in @@ -26,10 +26,10 @@ ;;; Code: -;; Load Scheme indentation rules from the current directory. +;; Load Scheme indentation rules from ".dir-locals.el". (with-temp-buffer (scheme-mode) - (let ((default-directory (file-name-as-directory ".")) + (let ((default-directory (file-name-as-directory load-file-name)) (enable-local-variables :all)) (hack-dir-local-variables) (hack-local-variables-apply))) From da99126ca2fc2959189ca7901c328c19cd80ae82 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 28 Apr 2017 15:53:51 +0300 Subject: [PATCH 082/386] dir-locals.el: Add 'modify-phases' keywords. * .dir-locals.el: Add indentation rules for 'replace', 'add-before' and 'add-after'. --- .dir-locals.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.dir-locals.el b/.dir-locals.el index a2d1eb8160..4aaeae95c9 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -23,7 +23,13 @@ (eval . (put 'guard 'scheme-indent-function 1)) (eval . (put 'lambda* 'scheme-indent-function 1)) (eval . (put 'substitute* 'scheme-indent-function 1)) + + ;; 'modify-phases' and its keywords. (eval . (put 'modify-phases 'scheme-indent-function 1)) + (eval . (put 'replace 'scheme-indent-function 1)) + (eval . (put 'add-before 'scheme-indent-function 2)) + (eval . (put 'add-after 'scheme-indent-function 2)) + (eval . (put 'modify-services 'scheme-indent-function 1)) (eval . (put 'with-directory-excursion 'scheme-indent-function 1)) (eval . (put 'package 'scheme-indent-function 0)) From 1d1ddf26d5c11aa732ccad4808d4c2d3424ff944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 4 May 2017 21:41:39 +0200 Subject: [PATCH 083/386] build: Remove 'sync-descriptions' target. This target predates 'guix lint'. Nowadays it makes little sense to run it upon 'make dist'. * Makefile.am (sync-descriptions): Remove. (dist-hook, .PHONY): Remove reference to 'sync-descriptions'. --- Makefile.am | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index c6d8de68bc..64d8d31cfe 100644 --- a/Makefile.am +++ b/Makefile.am @@ -510,15 +510,11 @@ guix-binary.%.tar.xz: cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@" -dist-hook: sync-descriptions gen-ChangeLog gen-AUTHORS +dist-hook: gen-ChangeLog gen-AUTHORS dist-hook: assert-no-store-file-names distcheck-hook: assert-binaries-available assert-final-inputs-self-contained -sync-descriptions: - $(AM_V_at)GUIX_PACKAGE_PATH= \ - $(top_builddir)/pre-inst-env guix lint --checkers=gnu-description - gen-ChangeLog: $(AM_V_GEN)if test -d .git; then \ $(top_srcdir)/build-aux/gitlog-to-changelog \ @@ -566,7 +562,7 @@ hydra-jobs.scm: $(GOBJECTS) "$(top_srcdir)/build-aux/hydra/gnu-system.scm" > "$@.tmp" $(AM_V_at)mv "$@.tmp" "$@" -.PHONY: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go make-go +.PHONY: gen-ChangeLog gen-AUTHORS clean-go make-go .PHONY: assert-no-store-file-names assert-binaries-available .PHONY: assert-final-inputs-self-contained From e6860b5e7f8ded96c1769dcff27dffb97587e3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 4 May 2017 21:54:13 +0200 Subject: [PATCH 084/386] build: Use Gnulib's 'git-version-gen'. * Makefile.am (EXTRA_DIST, BUILT_SOURCES): Add $(top_srcdir)/.version. ($(top_srcdir)/.version, gen-tarball-version): New targets. (dist-hook): Depend on 'gen-tarball-version'. (.PHONY): Add 'gen-tarball-version'. * build-aux/git-version-gen: New file, from Gnulib v0.1-1312-ga87d5e5c6. * configure.ac: Use it in 'AC_INIT'. Use 'https' for the URL. --- .gitignore | 1 + Makefile.am | 13 ++- build-aux/git-version-gen | 226 ++++++++++++++++++++++++++++++++++++++ configure.ac | 6 +- 4 files changed, 242 insertions(+), 4 deletions(-) create mode 100755 build-aux/git-version-gen diff --git a/.gitignore b/.gitignore index 1fc22d7e93..cff056a9d7 100644 --- a/.gitignore +++ b/.gitignore @@ -125,3 +125,4 @@ tmp /doc/os-config-lightweight-desktop.texi /nix/scripts/download /etc/indent-code.el +/.version diff --git a/Makefile.am b/Makefile.am index 64d8d31cfe..8fe9e350cc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -510,11 +510,19 @@ guix-binary.%.tar.xz: cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@" -dist-hook: gen-ChangeLog gen-AUTHORS +dist-hook: gen-ChangeLog gen-AUTHORS gen-tarball-version dist-hook: assert-no-store-file-names distcheck-hook: assert-binaries-available assert-final-inputs-self-contained +EXTRA_DIST += $(top_srcdir)/.version +BUILT_SOURCES += $(top_srcdir)/.version +$(top_srcdir)/.version: + echo $(VERSION) > "$@-t" && mv "$@-t" "$@" + +gen-tarball-version: + echo $(VERSION) > "$(distdir)/.tarball-version" + gen-ChangeLog: $(AM_V_GEN)if test -d .git; then \ $(top_srcdir)/build-aux/gitlog-to-changelog \ @@ -562,9 +570,10 @@ hydra-jobs.scm: $(GOBJECTS) "$(top_srcdir)/build-aux/hydra/gnu-system.scm" > "$@.tmp" $(AM_V_at)mv "$@.tmp" "$@" -.PHONY: gen-ChangeLog gen-AUTHORS clean-go make-go +.PHONY: gen-ChangeLog gen-AUTHORS gen-tarball-version .PHONY: assert-no-store-file-names assert-binaries-available .PHONY: assert-final-inputs-self-contained +.PHONY: clean-go make-go ## -------------- ## ## Silent rules. ## diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen new file mode 100755 index 0000000000..079849d5e5 --- /dev/null +++ b/build-aux/git-version-gen @@ -0,0 +1,226 @@ +#!/bin/sh +# Print a version string. +scriptversion=2017-01-09.19; # UTC + +# Copyright (C) 2007-2017 Free Software Foundation, Inc. +# +# This program 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. +# +# This program 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 this program. If not, see . + +# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/. +# It may be run two ways: +# - from a git repository in which the "git describe" command below +# produces useful output (thus requiring at least one signed tag) +# - from a non-git-repo directory containing a .tarball-version file, which +# presumes this script is invoked like "./git-version-gen .tarball-version". + +# In order to use intra-version strings in your project, you will need two +# separate generated version string files: +# +# .tarball-version - present only in a distribution tarball, and not in +# a checked-out repository. Created with contents that were learned at +# the last time autoconf was run, and used by git-version-gen. Must not +# be present in either $(srcdir) or $(builddir) for git-version-gen to +# give accurate answers during normal development with a checked out tree, +# but must be present in a tarball when there is no version control system. +# Therefore, it cannot be used in any dependencies. GNUmakefile has +# hooks to force a reconfigure at distribution time to get the value +# correct, without penalizing normal development with extra reconfigures. +# +# .version - present in a checked-out repository and in a distribution +# tarball. Usable in dependencies, particularly for files that don't +# want to depend on config.h but do want to track version changes. +# Delete this file prior to any autoconf run where you want to rebuild +# files to pick up a version string change; and leave it stale to +# minimize rebuild time after unrelated changes to configure sources. +# +# As with any generated file in a VC'd directory, you should add +# /.version to .gitignore, so that you don't accidentally commit it. +# .tarball-version is never generated in a VC'd directory, so needn't +# be listed there. +# +# Use the following line in your configure.ac, so that $(VERSION) will +# automatically be up-to-date each time configure is run (and note that +# since configure.ac no longer includes a version string, Makefile rules +# should not depend on configure.ac for version updates). +# +# AC_INIT([GNU project], +# m4_esyscmd([build-aux/git-version-gen .tarball-version]), +# [bug-project@example]) +# +# Then use the following lines in your Makefile.am, so that .version +# will be present for dependencies, and so that .version and +# .tarball-version will exist in distribution tarballs. +# +# EXTRA_DIST = $(top_srcdir)/.version +# BUILT_SOURCES = $(top_srcdir)/.version +# $(top_srcdir)/.version: +# echo $(VERSION) > $@-t && mv $@-t $@ +# dist-hook: +# echo $(VERSION) > $(distdir)/.tarball-version + + +me=$0 + +version="git-version-gen $scriptversion + +Copyright 2011 Free Software Foundation, Inc. +There is NO warranty. You may redistribute this software +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING." + +usage="\ +Usage: $me [OPTION]... \$srcdir/.tarball-version [TAG-NORMALIZATION-SED-SCRIPT] +Print a version string. + +Options: + + --prefix PREFIX prefix of git tags (default 'v') + --fallback VERSION + fallback version to use if \"git --version\" fails + + --help display this help and exit + --version output version information and exit + +Running without arguments will suffice in most cases." + +prefix=v +fallback= + +while test $# -gt 0; do + case $1 in + --help) echo "$usage"; exit 0;; + --version) echo "$version"; exit 0;; + --prefix) shift; prefix=${1?};; + --fallback) shift; fallback=${1?};; + -*) + echo "$0: Unknown option '$1'." >&2 + echo "$0: Try '--help' for more information." >&2 + exit 1;; + *) + if test "x$tarball_version_file" = x; then + tarball_version_file="$1" + elif test "x$tag_sed_script" = x; then + tag_sed_script="$1" + else + echo "$0: extra non-option argument '$1'." >&2 + exit 1 + fi;; + esac + shift +done + +if test "x$tarball_version_file" = x; then + echo "$usage" + exit 1 +fi + +tag_sed_script="${tag_sed_script:-s/x/x/}" + +nl=' +' + +# Avoid meddling by environment variable of the same name. +v= +v_from_git= + +# First see if there is a tarball-only version file. +# then try "git describe", then default. +if test -f $tarball_version_file +then + v=`cat $tarball_version_file` || v= + case $v in + *$nl*) v= ;; # reject multi-line output + [0-9]*) ;; + *) v= ;; + esac + test "x$v" = x \ + && echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2 +fi + +if test "x$v" != x +then + : # use $v +# Otherwise, if there is at least one git commit involving the working +# directory, and "git describe" output looks sensible, use that to +# derive a version string. +elif test "`git log -1 --pretty=format:x . 2>&1`" = x \ + && v=`git describe --abbrev=4 --match="$prefix*" HEAD 2>/dev/null \ + || git describe --abbrev=4 HEAD 2>/dev/null` \ + && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \ + && case $v in + $prefix[0-9]*) ;; + *) (exit 1) ;; + esac +then + # Is this a new git that lists number of commits since the last + # tag or the previous older version that did not? + # Newer: v6.10-77-g0f8faeb + # Older: v6.10-g0f8faeb + case $v in + *-*-*) : git describe is okay three part flavor ;; + *-*) + : git describe is older two part flavor + # Recreate the number of commits and rewrite such that the + # result is the same as if we were using the newer version + # of git describe. + vtag=`echo "$v" | sed 's/-.*//'` + commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \ + || { commit_list=failed; + echo "$0: WARNING: git rev-list failed" 1>&2; } + numcommits=`echo "$commit_list" | wc -l` + v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`; + test "$commit_list" = failed && v=UNKNOWN + ;; + esac + + # Change the first '-' to a '.', so version-comparing tools work properly. + # Remove the "g" in git describe's output string, to save a byte. + v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; + v_from_git=1 +elif test "x$fallback" = x || git --version >/dev/null 2>&1; then + v=UNKNOWN +else + v=$fallback +fi + +v=`echo "$v" |sed "s/^$prefix//"` + +# Test whether to append the "-dirty" suffix only if the version +# string we're using came from git. I.e., skip the test if it's "UNKNOWN" +# or if it came from .tarball-version. +if test "x$v_from_git" != x; then + # Don't declare a version "dirty" merely because a timestamp has changed. + git update-index --refresh > /dev/null 2>&1 + + dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty= + case "$dirty" in + '') ;; + *) # Append the suffix only if there isn't one already. + case $v in + *-dirty) ;; + *) v="$v-dirty" ;; + esac ;; + esac +fi + +# Omit the trailing newline, so that m4_esyscmd can use the result directly. +printf %s "$v" + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/configure.ac b/configure.ac index 2b4620c44b..dc3d8f377f 100644 --- a/configure.ac +++ b/configure.ac @@ -2,8 +2,10 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.68) -AC_INIT([GNU Guix], [0.12.0], [bug-guix@gnu.org], [guix], - [http://www.gnu.org/software/guix/]) +AC_INIT([GNU Guix], + [m4_esyscmd([build-aux/git-version-gen .tarball-version])], + [bug-guix@gnu.org], [guix], + [https://www.gnu.org/software/guix/]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([1.12 gnu silent-rules subdir-objects \ From e9491fb5cae510de538f940ea8318b3a33a8bd8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 4 May 2017 23:30:04 +0200 Subject: [PATCH 085/386] gnu: guix: The variable for the last release is now 'guix-release'. * gnu/packages/package-management.scm (guix-0.12.0): Rename to... (guix-release): ... this. Adjust users. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index a931a0e269..660c039bdd 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -68,7 +68,7 @@ arch "-linux" "/20131110/guile-2.0.9.tar.xz")))) -(define-public guix-0.12.0 +(define-public guix-release (package (name "guix") (version "0.12.0") @@ -236,7 +236,7 @@ the Nix package manager.") ;; Note: use a very short commit id; with a longer one, the limit on ;; hash-bang lines would be exceeded while running the tests. (let ((commit "25a49294caf2386e65fc1b12a2508324be0b1cc2")) - (package (inherit guix-0.12.0) + (package (inherit guix-release) (version (string-append "0.12.0-9." (string-take commit 4))) (source (origin (method git-fetch) @@ -250,7 +250,7 @@ the Nix package manager.") "0p4rh0629j89v4ka5dsp70a1xrfhg7sxjjq54p68vw7x5dkann4a")) (file-name (string-append "guix-" version "-checkout")))) (arguments - (substitute-keyword-arguments (package-arguments guix-0.12.0) + (substitute-keyword-arguments (package-arguments guix-release) ((#:configure-flags flags) ;; Set 'DOT_USER_PROGRAM' to the empty string so we don't keep a ;; reference to Graphviz, whose closure is pretty big (too big for From 7d3373a063ecca77b3468ee4c5396cf4179adffb Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 1 May 2017 02:06:27 -0400 Subject: [PATCH 086/386] gnu: openssh: groff is a native-input. * gnu/packages/ssh.scm (openssh)[inputs]: Move groff ... [native-inputs]: ... here. --- gnu/packages/ssh.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 135083ad22..2a190a57d8 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -135,8 +135,8 @@ a server that supports the SSH-2 protocol.") (sha256 (base32 "1w7rb5gbrikxdkp8w7zxnci4549gk4bw1lml01s59w5rzb2y6ilq")))) (build-system gnu-build-system) - (inputs `(("groff" ,groff) - ("openssl" ,openssl) + (native-inputs `(("groff" ,groff))) + (inputs `(("openssl" ,openssl) ("pam" ,linux-pam) ("mit-krb5" ,mit-krb5) ("zlib" ,zlib) From f9ff014bf623071b9343265e8a5aa994a10ec9d4 Mon Sep 17 00:00:00 2001 From: Petter Date: Sun, 23 Apr 2017 13:46:41 +0200 Subject: [PATCH 087/386] gnu: Add cool-retro-term. * gnu/packages/terminals.scm (cool-retro-term): New variable. * gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch, gnu/packages/patches/cool-retro-term-fix-array-size.patch, gnu/packages/patches/cool-retro-term-memory-leak-1.patch, gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch: New patches. * gnu/local.mk (dist_patch_DATA): Add them. Co-authored-by: Eric Bavier --- gnu/local.mk | 4 + ...-retro-term-dont-check-uninit-member.patch | 33 +++ .../cool-retro-term-fix-array-size.patch | 25 +++ .../cool-retro-term-memory-leak-1.patch | 32 +++ ...ool-retro-term-remove-non-free-fonts.patch | 205 ++++++++++++++++++ gnu/packages/terminals.scm | 110 ++++++++++ 6 files changed, 409 insertions(+) create mode 100644 gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch create mode 100644 gnu/packages/patches/cool-retro-term-fix-array-size.patch create mode 100644 gnu/packages/patches/cool-retro-term-memory-leak-1.patch create mode 100644 gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch diff --git a/gnu/local.mk b/gnu/local.mk index ce7ecc36cf..61f2534e91 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -529,6 +529,10 @@ dist_patch_DATA = \ %D%/packages/patches/clx-remove-demo.patch \ %D%/packages/patches/cmake-fix-tests.patch \ %D%/packages/patches/coda-use-system-libs.patch \ + %D%/packages/patches/cool-retro-term-dont-check-uninit-member.patch \ + %D%/packages/patches/cool-retro-term-fix-array-size.patch \ + %D%/packages/patches/cool-retro-term-memory-leak-1.patch \ + %D%/packages/patches/cool-retro-term-remove-non-free-fonts.patch \ %D%/packages/patches/coreutils-cut-huge-range-test.patch \ %D%/packages/patches/coreutils-fix-cross-compilation.patch \ %D%/packages/patches/cpio-CVE-2016-2037.patch \ diff --git a/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch b/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch new file mode 100644 index 0000000000..c6e1d27315 --- /dev/null +++ b/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch @@ -0,0 +1,33 @@ +From 126a97d1f22f7d784d392b2b7d5aadf0a4e18c0d Mon Sep 17 00:00:00 2001 +From: Petter +Date: Thu, 27 Apr 2017 20:28:02 +0200 +Subject: [PATCH] Avoid checking uninitialized member + simplify condition + +--- + qmltermwidget/lib/TerminalDisplay.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/qmltermwidget/lib/TerminalDisplay.cpp b/qmltermwidget/lib/TerminalDisplay.cpp +index 189a609..36d2cd2 100644 +--- a/qmltermwidget/lib/TerminalDisplay.cpp ++++ b/qmltermwidget/lib/TerminalDisplay.cpp +@@ -325,6 +325,7 @@ TerminalDisplay::TerminalDisplay(QQuickItem *parent) + ,_terminalSizeHint(false) + ,_terminalSizeStartup(true) + ,_bidiEnabled(false) ++,_mouseMarks(false) + ,_actSel(0) + ,_wordSelectionMode(false) + ,_lineSelectionMode(false) +@@ -1846,7 +1847,7 @@ void TerminalDisplay::mousePressEvent(QMouseEvent* ev) + } + else if ( ev->button() == Qt::MidButton ) + { +- if ( _mouseMarks || (!_mouseMarks && (ev->modifiers() & Qt::ShiftModifier)) ) ++ if ( _mouseMarks || (ev->modifiers() & Qt::ShiftModifier) ) + emitSelection(true,ev->modifiers() & Qt::ControlModifier); + else + emit mouseSignal( 1, charColumn +1, charLine +1 +_scrollBar->value() -_scrollBar->maximum() , 0); +-- +2.12.2 + diff --git a/gnu/packages/patches/cool-retro-term-fix-array-size.patch b/gnu/packages/patches/cool-retro-term-fix-array-size.patch new file mode 100644 index 0000000000..04a2a27971 --- /dev/null +++ b/gnu/packages/patches/cool-retro-term-fix-array-size.patch @@ -0,0 +1,25 @@ +From c91d7ae5dbb00c8392a9f93283dc56c3e296cccd Mon Sep 17 00:00:00 2001 +From: Petter +Date: Thu, 27 Apr 2017 20:19:21 +0200 +Subject: [PATCH] Fix size of the array passed to memset() + +--- + qmltermwidget/lib/History.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/qmltermwidget/lib/History.cpp b/qmltermwidget/lib/History.cpp +index 0f9c13f..ab6f7be 100644 +--- a/qmltermwidget/lib/History.cpp ++++ b/qmltermwidget/lib/History.cpp +@@ -515,7 +515,7 @@ void HistoryScrollBlockArray::addCells(const Character a[], int count) + // put cells in block's data + assert((count * sizeof(Character)) < ENTRIES); + +- memset(b->data, 0, ENTRIES); ++ memset(b->data, 0, sizeof(b->data)); + + memcpy(b->data, a, count * sizeof(Character)); + b->size = count * sizeof(Character); +-- +2.12.2 + diff --git a/gnu/packages/patches/cool-retro-term-memory-leak-1.patch b/gnu/packages/patches/cool-retro-term-memory-leak-1.patch new file mode 100644 index 0000000000..f3fbac17de --- /dev/null +++ b/gnu/packages/patches/cool-retro-term-memory-leak-1.patch @@ -0,0 +1,32 @@ +From 08628fda19128b75248548357e416bc373f14f91 Mon Sep 17 00:00:00 2001 +From: Yen Chi Hsuan +Date: Sat, 18 Mar 2017 02:50:34 +0800 +Subject: [PATCH] Fix memory leak in hotspot (URLs & emails) detection + +--- + qmltermwidget/lib/Filter.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/qmltermwidget/lib/Filter.cpp b/qmltermwidget/lib/Filter.cpp +index 5ca7bee..2e8d2fb 100644 +--- a/qmltermwidget/lib/Filter.cpp ++++ b/qmltermwidget/lib/Filter.cpp +@@ -26,6 +26,7 @@ + // Qt + #include + #include ++#include + #include + #include + #include +@@ -194,6 +195,7 @@ Filter::~Filter() + } + void Filter::reset() + { ++ qDeleteAll(_hotspotList); + _hotspots.clear(); + _hotspotList.clear(); + } +-- +2.12.2 + diff --git a/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch b/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch new file mode 100644 index 0000000000..7a033df413 --- /dev/null +++ b/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch @@ -0,0 +1,205 @@ +From 96ceffdfdcedd3ae33c46b11357aa2518e0a6152 Mon Sep 17 00:00:00 2001 +From: Petter +Date: Thu, 27 Apr 2017 18:55:10 +0200 +Subject: [PATCH] Remove non-free fonts from settings menu + +--- a/app/qml/ApplicationSettings.qml ++++ b/app/qml/ApplicationSettings.qml +@@ -409,7 +409,7 @@ + obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.45,"staticNoise":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}' + builtin: true + } +- ListElement{ ++ /*ListElement{ + text: "Default Scanlines" + obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#00ff5b","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.14,"jitter":0.11,"burnIn":0.4,"staticNoise":0.05,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}' + builtin: true +@@ -433,7 +433,7 @@ + text: "IBM Dos" + obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.07,"contrast":0.85,"fontName":"IBM_DOS","fontColor":"#ffffff","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.13,"horizontalSync":0,"jitter":0.16,"burnIn":0.3,"staticNoise":0.03,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":1,"saturationColor":0,"rbgShift":0.35,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}' + builtin: true +- } ++ }*/ + ListElement{ + text: "IBM 3278" + obj_string: '{"ambientLight":0.1,"backgroundColor":"#000000","bloom":0.15,"brightness":0.5,"flickering":0,"contrast":0.85,"fontName":"IBM_3278","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0,"horizontalSync":0,"jitter":0,"burnIn":0.6,"staticNoise":0,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}' +diff --git a/app/qml/FontPixels.qml b/app/qml/FontPixels.qml +index 6ff85da..6f0d0ba 100644 +--- a/app/qml/FontPixels.qml ++++ b/app/qml/FontPixels.qml +@@ -32,7 +32,7 @@ QtObject{ + property bool lowResolutionFont: true + + property ListModel fontlist: ListModel{ +- ListElement{ ++ /*ListElement{ + name: "COMMODORE_PET" + text: "Commodore PET (1977)" + source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf" +@@ -40,7 +40,7 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.8 +- } ++ }*/ + ListElement{ + name: "PROGGY_TINY" + text: "Proggy Tiny (Modern)" +@@ -68,7 +68,7 @@ QtObject{ + baseScaling: 3.0 + fontWidth: 1.0 + } +- ListElement{ ++ /*ListElement{ + name: "APPLE_II" + text: "Apple ][ (1977)" + source: "fonts/1977-apple2/PrintChar21.ttf" +@@ -76,8 +76,8 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.9 +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "ATARI_400" + text: "Atari 400-800 (1979)" + source: "fonts/1979-atari-400-800/ATARI400800_original.TTF" +@@ -85,8 +85,8 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.8 +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "COMMODORE_64" + text: "Commodore 64 (1982)" + source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf" +@@ -94,6 +94,6 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.8 +- } ++ }*/ + } + } +diff --git a/app/qml/FontScanlines.qml b/app/qml/FontScanlines.qml +index eebf00b..410d7b6 100644 +--- a/app/qml/FontScanlines.qml ++++ b/app/qml/FontScanlines.qml +@@ -32,7 +32,7 @@ QtObject{ + property bool lowResolutionFont: true + + property ListModel fontlist: ListModel{ +- ListElement{ ++ /*ListElement{ + name: "COMMODORE_PET" + text: "Commodore PET (1977)" + source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf" +@@ -40,7 +40,7 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.7 +- } ++ }*/ + ListElement{ + name: "PROGGY_TINY" + text: "Proggy Tiny (Modern)" +@@ -68,7 +68,7 @@ QtObject{ + baseScaling: 3.0 + fontWidth: 1.0 + } +- ListElement{ ++ /*ListElement{ + name: "APPLE_II" + text: "Apple ][ (1977)" + source: "fonts/1977-apple2/PrintChar21.ttf" +@@ -76,8 +76,8 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.8 +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "ATARI_400" + text: "Atari 400-800 (1979)" + source: "fonts/1979-atari-400-800/ATARI400800_original.TTF" +@@ -85,8 +85,8 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.7 +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "COMMODORE_64" + text: "Commodore 64 (1982)" + source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf" +@@ -94,6 +94,6 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.7 +- } ++ }*/ + } + } +diff --git a/app/qml/Fonts.qml b/app/qml/Fonts.qml +index ad20844..882808a 100644 +--- a/app/qml/Fonts.qml ++++ b/app/qml/Fonts.qml +@@ -80,7 +80,7 @@ + fontWidth: 1.0 + lowResolutionFont: true + } +- ListElement{ ++ /*ListElement{ + name: "COMMODORE_PET_SCALED" + text: "Commodore PET (1977)" + source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf" +@@ -89,7 +89,7 @@ + baseScaling: 3.5 + fontWidth: 0.7 + lowResolutionFont: true +- } ++ }*/ + ListElement{ + name: "PROGGY_TINY_SCALED" + text: "Proggy Tiny (Modern)" +@@ -100,7 +100,7 @@ + fontWidth: 0.9 + lowResolutionFont: true + } +- ListElement{ ++ /*ListElement{ + name: "APPLE_II_SCALED" + text: "Apple ][ (1977)" + source: "fonts/1977-apple2/PrintChar21.ttf" +@@ -149,7 +149,7 @@ + baseScaling: 2.0 + fontWidth: 1.0 + lowResolutionFont: true +- } ++ }*/ + ListElement{ + name: "HERMIT" + text: "HD: Hermit (Modern)" +@@ -177,7 +177,7 @@ + fontWidth: 1.0 + lowResolutionFont: false + } +- ListElement{ ++ /*ListElement{ + name: "MONACO" + text: "HD: Monaco (Modern)" + source: "fonts/modern-monaco/monaco.ttf" +@@ -185,7 +185,7 @@ + pixelSize: 30 + fontWidth: 1.0 + lowResolutionFont: false +- } ++ }*/ + ListElement{ + name: "INCONSOLATA" + text: "HD: Inconsolata (Modern)" diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 979278a53b..a8007586c9 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016, 2017 José Miguel Sánchez García ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,6 +32,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) + #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) @@ -49,6 +51,7 @@ #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages docbook) + #:use-module (gnu packages qt) #:use-module (srfi srfi-26)) (define-public tilda @@ -433,3 +436,110 @@ its embedding program should provide it to draw on its behalf. It avoids calling @code{malloc} during normal running state, allowing it to be used in embedded kernel situations.") (license license:expat))) + +(define-public cool-retro-term + (let ((commit "e48719fa44e5307df71dbd0fad234f8a6a53f863") + (revision "1")) + (package + (name "cool-retro-term") + (version (string-append "1.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (file-name (string-append name "-" version "-checkout")) + (uri (git-reference + (url (string-append "https://github.com/Swordfish90/" name)) + (commit commit) + (recursive? #t))) + (sha256 + (base32 "1sgqbirninkvgwchr35zgn5vzqvsmrf3cp7lqady1xgrawb8lsz3")) + (patches + (search-patches "cool-retro-term-remove-non-free-fonts.patch" + "cool-retro-term-fix-array-size.patch" + "cool-retro-term-dont-check-uninit-member.patch" + "cool-retro-term-memory-leak-1.patch")) + (modules '((guix build utils))) + (snippet + '(for-each (lambda (font) + (delete-file-recursively + (string-append "app/qml/fonts/" font)) + (substitute* '("app/qml/resources.qrc") + (((string-append "fonts/" font ".*")) + ""))) + '(;"1971-ibm-3278" ; BSD 3-clause + "1977-apple2" ; Non-Free + "1977-commodore-pet" ; Non-Free + "1979-atari-400-800" ; Non-Free + "1982-commodore64" ; Non-Free + "1985-atari-st" ; ? + "1985-ibm-pc-vga" ; Unclear + ;"modern-fixedsys-excelsior" ; Redistributable + ;"modern-hermit" ; SIL + ;"modern-inconsolata"; SIL + ;"modern-pro-font-win-tweaked" ; X11 + ;"modern-proggy-tiny"; X11 + ;"modern-terminus" ; SIL + "modern-monaco"))))) ; Apple non-free + (build-system gnu-build-system) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtgraphicaleffects" ,qtgraphicaleffects) + ("qtquickcontrols" ,qtquickcontrols))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share"))) + (substitute* '("qmltermwidget/qmltermwidget.pro") + (("INSTALL_DIR = \\$\\$\\[QT_INSTALL_QML\\]") + (string-append "INSTALL_DIR = " out "/qml"))) + (substitute* '("app/app.pro") + (("target.path \\+= /usr") + (string-append "target.path += " out)) + (("icon32.path = /usr/share") + (string-append "icon32.path = " share)) + (("icon64.path = /usr/share") + (string-append "icon64.path = " share)) + (("icon128.path = /usr/share") + (string-append "icon128.path = " share)) + (("icon256.path = /usr/share") + (string-append "icon256.path = " share))) + (zero? (system* "qmake"))))) + (add-before 'install 'fix-Makefiles + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (substitute* '("Makefile") + (("\\$\\(INSTALL_ROOT\\)/usr") out))))) + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (qml "/qml")) + (wrap-program (string-append out "/bin/cool-retro-term") + `("QML2_IMPORT_PATH" ":" prefix + (,(string-append out qml) + ,(string-append + (assoc-ref inputs "qtdeclarative") qml) + ,(string-append + (assoc-ref inputs "qtgraphicaleffects") qml) + ,(string-append + (assoc-ref inputs "qtquickcontrols") qml))))))) + (add-after 'install 'add-alternate-name + (lambda* (#:key outputs #:allow-other-keys) + (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (symlink (string-append bin "/cool-retro-term") + (string-append bin "/crt")))))))) + (synopsis "Terminal emulator") + (description + "Cool-retro-term (crt) is a terminal emulator which mimics the look and +feel of the old cathode ray tube (CRT) screens. It has been designed to be +eye-candy, customizable, and reasonably lightweight.") + (home-page "https://github.com/Swordfish90/cool-retro-term") + (license (list + license:gpl2+ ; qmltermwidget + license:gpl3+ ; cool-retro-term + ;; Fonts + license:silofl1.1 + license:x11 + license:bsd-3))))) From a501a6616841972f229def887241076936a46893 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 5 May 2017 00:12:39 -0400 Subject: [PATCH 088/386] gnu: linux-libre@4.4: Update to 4.4.66. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.66. --- 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 9db8be94a8..4a1cf2160a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -369,8 +369,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.65" - "03bxjdbmj9zmclb1c11zlblcmhych5d00p93f9vg048paizpk3b3" + (make-linux-libre "4.4.66" + "16lw0cjrq5ma23hwrrx5hmycpkzb0gqmwdn8jbfqgd8s88qp6zl7" %intel-compatible-systems #:configuration-file kernel-config)) From 95011cb6a533435e298f18aa48df998aee2e6fac Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 5 May 2017 00:13:33 -0400 Subject: [PATCH 089/386] gnu: linux-libre@4.9: Update to 4.9.26. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.26. --- 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 4a1cf2160a..da4579ca77 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -363,8 +363,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.25" - "15vcphpz40n75jwhbpbwiqvgxsdn05n6nbfg5cksyy24f9fpd35k" + (make-linux-libre "4.9.26" + "0s4al203v77bwhk787vr95wx4ivw1aqhw8qw4d36b5m28whh6a69" %intel-compatible-systems #:configuration-file kernel-config)) From 291a905f2b7827cc91cbd4185be7d6b189d245cb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 08:18:09 +0200 Subject: [PATCH 090/386] gnu: synthv1: Update to 0.8.2. * gnu/packages/music.scm (synthv1): Update to 0.8.2. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index adce8a864f..06b6417d3d 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -983,7 +983,7 @@ users to select LV2 plugins and run them with jalv.") (define-public synthv1 (package (name "synthv1") - (version "0.8.1") + (version "0.8.2") (source (origin (method url-fetch) (uri @@ -991,7 +991,7 @@ users to select LV2 plugins and run them with jalv.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "0rzkr8mgy28j5kg56qqrdm05ml2wlm651yk27c2mn5ql7v92gdx3")))) + "0lmblhk0728bxi7cixc2j9p6gisicy6alybga9vwmg453snrsybr")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. From 1b11601369d70762e44c27501314160fc4422fe4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 08:58:34 +0200 Subject: [PATCH 091/386] gnu: drumkv1: Update to 0.8.2. * gnu/packages/music.scm (drumkv1): Update to 0.8.2. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 06b6417d3d..c66b3fb028 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1014,7 +1014,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.8.1") + (version "0.8.2") (source (origin (method url-fetch) (uri @@ -1022,7 +1022,7 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "0l6kjb1q9vslwy56836a0c65mf8z8ycam5vzz3k4qvd8g74bs1zq")))) + "0lf9x99gmmk64xq73lcwpwqznh8s79qy2fjjjzzw6sbw99w8qyz4")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. From ab7ec90f4824fb579989579c1d3691329a4f738a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 08:58:57 +0200 Subject: [PATCH 092/386] gnu: samplv1: Update to 0.8.2. * gnu/packages/music.scm (samplv1): Update to 0.8.2. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index c66b3fb028..4a433b8dbc 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1048,7 +1048,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.8.1") + (version "0.8.2") (source (origin (method url-fetch) (uri @@ -1056,7 +1056,7 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "15rp9d1jbb56idyrnn9cqi1i7a70z1a1qdyz7ryn0bla0ghjnich")))) + "11mxn3ff9g0x1rl4jl5rngmwlb8dmkbzsjhxb8gqhmlpfj24wl7l")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. From 1538bc33cd6ac07d9d22bb6a7990c4422c827e43 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 09:20:38 +0200 Subject: [PATCH 093/386] gnu: qjackctl: Update to 0.4.5. * gnu/packages/audio.scm (qjackctl): Update to 0.4.5. --- gnu/packages/audio.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 5b2d971953..0f1a0d1a17 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1868,16 +1868,14 @@ and ALSA.") (define-public qjackctl (package (name "qjackctl") - (version "0.4.4") + (version "0.4.5") (source (origin (method url-fetch) - (uri - (string-append - "mirror://sourceforge/qjackctl/qjackctl/" - version "/qjackctl-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" + version "/qjackctl-" version ".tar.gz")) (sha256 (base32 - "19bbljb3iz5ss4s5fmra1dxabg2fnp61sa51d63zsm56xkvv47ak")))) + "1dsavjfzz5bpzc80mvfs940w9f9f47cf4r9cqxnaqrl4xilsa3f5")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no check target From 5ffa7cb1f3eff505e5c06a79a6ddef9ec158f8b2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 09:21:14 +0200 Subject: [PATCH 094/386] gnu: qjackctl: Build with JACK 1. We build all packages with JACK 1. It is compatible with JACK 2, which users may install to get additional features. * gnu/packages/audio.scm (qjackctl)[inputs]: Replace "jack-2" with "jack-1". --- gnu/packages/audio.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 0f1a0d1a17..8e328d8f7e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1880,7 +1880,7 @@ and ALSA.") (arguments '(#:tests? #f)) ; no check target (inputs - `(("jack-2" ,jack-2) + `(("jack" ,jack-1) ("qtbase" ,qtbase) ("qtx11extras" ,qtx11extras))) (native-inputs From e13fff2cf40be07e5e946149b197c4ec86302f52 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 09:23:27 +0200 Subject: [PATCH 095/386] gnu: qsynth: Update to 0.4.4. * gnu/packages/audio.scm (qsynth): Update to 0.4.4. --- gnu/packages/audio.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 8e328d8f7e..497f20538d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2473,14 +2473,15 @@ interface.") (define-public qsynth (package (name "qsynth") - (version "0.4.3") + (version "0.4.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version "/qsynth-" version ".tar.gz")) (sha256 - (base32 "1j5hm99fjrnaw8wbmlh4qixkv3rw5dl429mp1ag7js2ydrx0j9yy")))) + (base32 + "0qhfnikx3xcllkvs60kj6vcf2rwwzh31y41qkk6kwfhzgd219y8f")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" phase From eaace76c0c115c2b5bf27a48790f4f9fafd88513 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 09:28:54 +0200 Subject: [PATCH 096/386] gnu: jalv-select: Update to 0.8. * gnu/packages/music.scm (jalv-select): Update to 0.8. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 4a433b8dbc..775d802875 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -943,14 +943,14 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (define-public jalv-select (package (name "jalv-select") - (version "0.7") + (version "0.8") (source (origin (method url-fetch) (uri (string-append "https://github.com/brummer10/jalv_select/" "archive/V" version ".tar.gz")) (sha256 (base32 - "01y93l5c1f8za04a0y4b3v0nhsm1lhj6rny9xpdgd7jz6sl6w581")))) + "0zraagwr681b5s3qifxf399c7q93jz23c8sr42gmff9zqnvxc75q")))) (build-system gnu-build-system) (arguments `(#:make-flags From f5e0ff0f45f66cfec10d57dd23ab90a9392a7664 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 09:43:34 +0200 Subject: [PATCH 097/386] gnu: gxtuner: Update to 2.4. * gnu/packages/music.scm (gxtuner): Update to 2.4. [inputs]: Replace gtk+-2 with gtk+. --- gnu/packages/music.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 775d802875..3efbd9113c 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1866,7 +1866,7 @@ and hold, etc.") (define-public gxtuner (package (name "gxtuner") - (version "2.3") + (version "2.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/brummer10/gxtuner/" @@ -1874,7 +1874,7 @@ and hold, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1abpxiydn4c9wssz6895hnad9ipkcy3rkgzbnanvwb46nm44x6if")))) + "1hn5qjac7qd00v0sp7ijhhc3sb26ks9bni06nngivva21h61xrjr")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -1886,7 +1886,7 @@ and hold, etc.") (modify-phases %standard-phases (delete 'configure)))) (inputs - `(("gtk+" ,gtk+-2) + `(("gtk+" ,gtk+) ("jack" ,jack-1) ("fftwf" ,fftwf) ("cairo" ,cairo) From ad7f6e5f0d618bafc4430b77f6d85892a7762818 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 09:47:43 +0200 Subject: [PATCH 098/386] gnu: jalv-select: Fix regular expression. * gnu/packages/music.scm (jalv-select)[arguments]: Fix substitution to find the available jalv executables. --- gnu/packages/music.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 3efbd9113c..850eef35bc 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -961,7 +961,7 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (add-after 'unpack 'ignore-PATH (lambda* (#:key inputs #:allow-other-keys) (substitute* "jalv.select.cpp" - (("echo \\$PATH | tr ':' '\\\n' | xargs ls") + (("echo \\$PATH.*tr ':'.*xargs ls") (string-append "ls -1 " (assoc-ref inputs "jalv") "/bin"))) (substitute* "jalv.select.h" (("gtkmm.h") "gtkmm-2.4/gtkmm.h")) From 5c97ce1ea9378ee01688ede3837ab6a76964da9a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 13:25:56 +0200 Subject: [PATCH 099/386] gnu: abiword: Update to 3.0.2. * gnu/packages/patches/abiword-explictly-cast-bools.patch: Update patch. * gnu/packages/patches/abiword-black-drawing-with-gtk322.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/abiword.scm (abiword): Update to 3.0.2. [source]: Remove outdated snippet; add new patch. [arguments]: Pass CXXFLAGS. --- gnu/local.mk | 1 + gnu/packages/abiword.scm | 18 +++---- .../abiword-black-drawing-with-gtk322.patch | 49 +++++++++++++++++++ .../abiword-explictly-cast-bools.patch | 14 +++--- 4 files changed, 65 insertions(+), 17 deletions(-) create mode 100644 gnu/packages/patches/abiword-black-drawing-with-gtk322.patch diff --git a/gnu/local.mk b/gnu/local.mk index 61f2534e91..97c291d27a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -487,6 +487,7 @@ dist_patch_DATA = \ %D%/packages/patches/a2ps-CVE-2014-0466.patch \ %D%/packages/patches/abiword-explictly-cast-bools.patch \ %D%/packages/patches/abiword-wmf-version-lookup-fix.patch \ + %D%/packages/patches/abiword-black-drawing-with-gtk322.patch \ %D%/packages/patches/acl-hurd-path-max.patch \ %D%/packages/patches/aegis-constness-error.patch \ %D%/packages/patches/aegis-perl-tempdir1.patch \ diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index 514ac0ceb5..30c2411df3 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Marek Benc ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,7 +45,7 @@ (define-public abiword (package (name "abiword") - (version "3.0.1") + (version "3.0.2") (source (origin (method url-fetch) @@ -52,16 +53,11 @@ (string-append "http://abisource.org/downloads/" name "/" version "/source/" name "-" version ".tar.gz")) (sha256 - (base32 "1ik591rx15nn3n1297cwykl8wvrlgj78i528id9wbidgy3xzd570")) - (modules '((guix build utils))) - (snippet - ;; Ensure reproducibility. - '(substitute* "src/wp/main/xp/abi_ver.cpp" - (("__DATE__") "\"2017\"") - (("__TIME__") "\"00:00\""))) + (base32 "08imry821g81apdwym3gcs4nss0l9j5blqk31j5rv602zmcd9gxg")) (patches (search-patches "abiword-wmf-version-lookup-fix.patch" - "abiword-explictly-cast-bools.patch")))) + "abiword-explictly-cast-bools.patch" + "abiword-black-drawing-with-gtk322.patch")))) (build-system glib-or-gtk-build-system) (arguments ;; NOTE: rsvg is disabled, since Abiword @@ -84,7 +80,9 @@ ;; assertion 'G_IS_OBJECT (object)' failed ;; Manually starting the X server before the test phase did not help ;; the tests to pass. - #:tests? #f)) + #:tests? #f + #:make-flags + (list "CXXFLAGS=-std=c++11"))) (inputs `(("boost" ,boost) ("enchant" ,enchant) diff --git a/gnu/packages/patches/abiword-black-drawing-with-gtk322.patch b/gnu/packages/patches/abiword-black-drawing-with-gtk322.patch new file mode 100644 index 0000000000..88a5ca4c38 --- /dev/null +++ b/gnu/packages/patches/abiword-black-drawing-with-gtk322.patch @@ -0,0 +1,49 @@ +commit 2ee38d1881aeea27bb49acc450631d813d1f28ba +Author: Hubert Figuière +Date: Wed Dec 7 09:44:01 2016 -0500 + + Bug 13815 - draw event should return TRUE + + This fix the black drawing regression witj Gtk3.22 + +diff --git a/src/af/xap/gtk/xap_UnixFrameImpl.cpp b/src/af/xap/gtk/xap_UnixFrameImpl.cpp +index 780000e..10f8e00 100644 +--- a/src/af/xap/gtk/xap_UnixFrameImpl.cpp ++++ b/src/af/xap/gtk/xap_UnixFrameImpl.cpp +@@ -1208,9 +1208,9 @@ gint XAP_UnixFrameImpl::_fe::delete_event(GtkWidget * w, GdkEvent * /*event*/, g + } + + #if GTK_CHECK_VERSION(3,0,0) +-gint XAP_UnixFrameImpl::_fe::draw(GtkWidget * w, cairo_t * cr) ++gboolean XAP_UnixFrameImpl::_fe::draw(GtkWidget * w, cairo_t * cr) + #else +-gint XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent) ++gboolean XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent) + #endif + { + XAP_UnixFrameImpl * pUnixFrameImpl = static_cast(g_object_get_data(G_OBJECT(w), "user_data")); +@@ -1243,7 +1243,7 @@ gint XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent) + pView->draw(&rClip); + #endif + } +- return FALSE; ++ return TRUE; + } + + static bool bScrollWait = false; +diff --git a/src/af/xap/gtk/xap_UnixFrameImpl.h b/src/af/xap/gtk/xap_UnixFrameImpl.h +index 30ee5d8..a0ff57f 100644 +--- a/src/af/xap/gtk/xap_UnixFrameImpl.h ++++ b/src/af/xap/gtk/xap_UnixFrameImpl.h +@@ -152,9 +152,9 @@ protected: + static gint key_release_event(GtkWidget* w, GdkEventKey* e); + static gint delete_event(GtkWidget * w, GdkEvent * /*event*/, gpointer /*data*/); + #if GTK_CHECK_VERSION(3,0,0) +- static gint draw(GtkWidget * w, cairo_t * cr); ++ static gboolean draw(GtkWidget * w, cairo_t * cr); + #else +- static gint expose(GtkWidget * w, GdkEventExpose* pExposeEvent); ++ static gboolean expose(GtkWidget * w, GdkEventExpose* pExposeEvent); + #endif + static gint do_ZoomUpdate( gpointer /* xap_UnixFrame * */ p); + static void vScrollChanged(GtkAdjustment * w, gpointer /*data*/); diff --git a/gnu/packages/patches/abiword-explictly-cast-bools.patch b/gnu/packages/patches/abiword-explictly-cast-bools.patch index 7927a180ba..97ae6653c2 100644 --- a/gnu/packages/patches/abiword-explictly-cast-bools.patch +++ b/gnu/packages/patches/abiword-explictly-cast-bools.patch @@ -2,18 +2,18 @@ As of JPEG-9, the type 'boolean' is an enumeration, but since glib defines TRUE and FALSE as numeric constants and this is C++, they need to be explicitly casted. ---- a/src/af/util/xp/ut_jpeg.cpp 2009-07-08 19:33:53.000000000 +0200 -+++ b/src/af/util/xp/ut_jpeg.cpp 2014-09-06 19:55:55.876997404 +0200 -@@ -102,7 +102,7 @@ +--- a/src/af/util/xp/ut_jpeg.cpp ++++ b/src/af/util/xp/ut_jpeg.cpp +@@ -102,7 +102,7 @@ static boolean _jpegFillInputBuffer (j_decompress_ptr cinfo) src->pub.next_input_byte = src->sourceBuf->getPointer (src->pos); src->pub.bytes_in_buffer = src->sourceBuf->getLength (); - -- return TRUE; + +- return 1; // boolean is a libjpeg type that is an int. + return (boolean)TRUE; } /* -@@ -161,7 +161,7 @@ +@@ -161,7 +161,7 @@ bool UT_JPEG_getDimensions(const UT_ByteBuf* pBB, UT_sint32& iImageWidth, /* set the data source */ _JPEG_ByteBufSrc (&cinfo, pBB); @@ -22,7 +22,7 @@ casted. jpeg_start_decompress(&cinfo); iImageWidth = cinfo.output_width; iImageHeight = cinfo.output_height; -@@ -189,7 +189,7 @@ +@@ -189,7 +189,7 @@ bool UT_JPEG_getRGBData(const UT_ByteBuf* pBB, UT_Byte* pDest, UT_sint32 iDestRo /* set the data source */ _JPEG_ByteBufSrc (&cinfo, pBB); From 6bd7d164a7c531c0e35ec689ded3bd47bb37c652 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 5 May 2017 14:18:31 +0200 Subject: [PATCH 100/386] gnu: zstd: Update to 1.2.0. * gnu/packages/compression.scm (zstd): Update to 1.2.0. --- gnu/packages/compression.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 3fc713b22a..11db2a66f7 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1180,7 +1180,7 @@ RAR archives.") (define-public zstd (package (name "zstd") - (version "1.1.4") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/zstd/archive/v" @@ -1188,7 +1188,7 @@ RAR archives.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1yxr1y83gphljxaqhwvxbldy1ivx81x93rngiv5l94rmdrc2pbka")) + "1yyb8z03z9rw74k1d9dygcqxhx76717xq29agz57d0k3lf9lazja")) (modules '((guix build utils))) (snippet ;; Remove non-free source files. From b067ad3e49833f82bc14ed3a33b33f017b0a981f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 14:53:51 +0200 Subject: [PATCH 101/386] gnu: aide: Update to 0.16. * gnu/packages/admin.scm (aide): Update to 0.16. [inputs]: Add pcre. --- gnu/packages/admin.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 8f4a4cd41e..e0c3d1f6a8 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -84,14 +84,14 @@ (define-public aide (package (name "aide") - (version "0.15.1") + (version "0.16") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/aide/aide/" version "/aide-" version ".tar.gz")) (sha256 (base32 - "1vsrc0s62kv1i84skm6k6zy868gayjck268qwj38rpspc8c5qgih")))) + "0ibkv4z2gk14fn014kq13rp2ysiq6nn2cflv2q5i7zf466hm6758")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) @@ -100,6 +100,7 @@ `(("libgcrypt" ,libgcrypt) ("libgpg-error" ,libgpg-error) ("libmhash" ,libmhash) + ("pcre" ,pcre) ("zlib" ,zlib))) (synopsis "File and directory integrity checker") (description From 3339abfeffe0539e18233331ee5f00cb373b2d12 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 14:59:38 +0200 Subject: [PATCH 102/386] gnu: ansible: Update to 2.3.0.0. * gnu/packages/admin.scm (ansible): Update to 2.3.0.0. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index e0c3d1f6a8..9feacb1e8b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1353,14 +1353,14 @@ of supported upstream metrics systems simultaneously.") (define-public ansible (package (name "ansible") - (version "2.2.1.0") + (version "2.3.0.0") (source (origin (method url-fetch) (uri (pypi-uri "ansible" version)) (sha256 (base32 - "0gz9i30pdmkchi936ijy873k8di6fmf3v5rv551hxyf0hjkjx8b3")))) + "0n54h8g6a6hcp41sasvjqa4yz1pwd8mshbwlcghj0sjnrl3kk7r9")))) (build-system python-build-system) (native-inputs `(("python2-pycrypto" ,python2-pycrypto) From 40fad1c24ce60076e26f6dc8096e4716d31d90c3 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Apr 2017 14:37:07 +0200 Subject: [PATCH 103/386] system: Factorize operating-system-boot-parameters-file. * gnu/system.scm (operating-system-boot-parameters): New variable. (operating-system-boot-parameters-file): Modify. --- gnu/system.scm | 64 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 21 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index a35a416cb0..cb7c1b0cec 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -769,27 +769,49 @@ device in a ." ((label) (file-system-device fs)) (else #f))) -(define (operating-system-boot-parameters-file os) - "Return a file that describes the boot parameters of OS. The primary use of -this file is the reconstruction of GRUB menu entries for old configurations." - (mlet %store-monad ((initrd (operating-system-initrd-file os)) - (root -> (operating-system-root-file-system os)) - (store -> (operating-system-store-file-system os)) - (label -> (kernel->boot-label - (operating-system-kernel os)))) - (gexp->file "parameters" - #~(boot-parameters - (version 0) - (label #$label) - (root-device #$(file-system-device root)) - (kernel #$(operating-system-kernel-file os)) - (kernel-arguments - #$(operating-system-user-kernel-arguments os)) - (initrd #$initrd) - (store - (device #$(fs->boot-device store)) - (mount-point #$(file-system-mount-point store)))) - #:set-load-path? #f))) +(define (operating-system-boot-parameters os system root-device) + "Return a monadic record that describes the boot parameters of OS. +SYSTEM is optional. If given, adds kernel arguments for that system to ." + (mlet* %store-monad + ((initrd (operating-system-initrd-file os)) + (store -> (operating-system-store-file-system os)) + (label -> (kernel->boot-label (operating-system-kernel os)))) + (return (boot-parameters + (label label) + (root-device root-device) + (kernel (operating-system-kernel-file os)) + (kernel-arguments + (operating-system-user-kernel-arguments os)) + (initrd initrd) + (store-device (fs->boot-device store)) + (store-mount-point (file-system-mount-point store)))))) + +(define* (operating-system-boot-parameters-file os #:optional (system.drv #f)) + "Return a file that describes the boot parameters of OS. The primary use of +this file is the reconstruction of GRUB menu entries for old configurations. +SYSTEM.DRV is optional. If given, adds kernel arguments for that system to the +returned file (since the returned file is then usually stored into the +content-addressed \"system\" directory, it's usually not a good idea +to give it because the content hash would change by the content hash +being stored into the \"parameters\" file)." + (mlet* %store-monad ((root -> (operating-system-root-file-system os)) + (device -> (file-system-device root)) + (params (operating-system-boot-parameters os + system.drv + device))) + (gexp->file "parameters" + #~(boot-parameters + (version 0) + (label #$(boot-parameters-label params)) + (root-device #$(boot-parameters-root-device params)) + (kernel #$(boot-parameters-kernel params)) + (kernel-arguments + #$(boot-parameters-kernel-arguments params)) + (initrd #$(boot-parameters-initrd params)) + (store + (device #$(boot-parameters-store-device params)) + (mount-point #$(boot-parameters-store-mount-point params)))) + #:set-load-path? #f))) ;;; From 33f0aa88155ee0718f21e7de24eb539cb9872217 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Apr 2017 14:37:08 +0200 Subject: [PATCH 104/386] system: Introduce operating-system-kernel-arguments and use it. * gnu/system.scm (bootable-kernel-arguments): New variable. (operating-system-kernel-arguments): New variable. (operating-system-bootcfg): Use operating-system-kernel-arguments. (operating-system-boot-parameters): Use operating-system-kernel-arguments. --- gnu/system.scm | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index cb7c1b0cec..37a05b270b 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -73,7 +73,7 @@ operating-system-hosts-file operating-system-kernel operating-system-kernel-file - operating-system-user-kernel-arguments + operating-system-kernel-arguments operating-system-initrd operating-system-users operating-system-groups @@ -122,6 +122,14 @@ ;;; ;;; Code: +(define (bootable-kernel-arguments kernel-arguments system.drv root-device) + "Prepend extra arguments to KERNEL-ARGUMENTS that allow SYSTEM.DRV to be +booted from ROOT-DEVICE" + (cons* (string-append "--root=" root-device) + #~(string-append "--system=" #$system.drv) + #~(string-append "--load=" #$system.drv "/boot") + kernel-arguments)) + ;; System-wide configuration. ;; TODO: Add per-field docstrings/stexi. (define-record-type* operating-system @@ -182,6 +190,13 @@ (sudoers-file operating-system-sudoers-file ; file-like (default %sudoers-specification))) +(define (operating-system-kernel-arguments os system.drv root-device) + "Return all the kernel arguments, including the ones not specified +directly by the user." + (bootable-kernel-arguments (operating-system-user-kernel-arguments os) + system.drv + root-device)) + ;;; ;;; Services. @@ -756,7 +771,9 @@ populate the \"old entries\" menu." #~(string-append "--system=" #$system) #~(string-append "--load=" #$system "/boot") - (operating-system-user-kernel-arguments os))) + (operating-system-kernel-arguments os + system + root-device))) (initrd initrd))))) (grub-configuration-file (operating-system-bootloader os) entries #:old-entries old-entries))) @@ -781,7 +798,9 @@ SYSTEM is optional. If given, adds kernel arguments for that system to boot-device store)) (store-mount-point (file-system-mount-point store)))))) From 9530e73b496fefe65dcb936825b6beda79f7fdf2 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Apr 2017 14:37:09 +0200 Subject: [PATCH 105/386] system: Introduce read-boot-parameters-file. * gnu/system.scm (read-boot-parameters): Remove export. (read-boot-parameters-file): New variable. Export it. * guix/scripts/system.scm (profile-boot-parameters): Use read-boot-parameters-file. (profile-grub-entries): Use read-boot-parameters-file. (reinstall-grub): Use read-boot-parameters-file. (display-system-generation): Use read-boot-parameters-file. --- gnu/system.scm | 22 +++++++++++++++++++++- guix/scripts/system.scm | 14 ++++---------- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index 37a05b270b..f213379f03 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -109,7 +109,7 @@ boot-parameters-kernel boot-parameters-kernel-arguments boot-parameters-initrd - read-boot-parameters + read-boot-parameters-file local-host-aliases %setuid-programs @@ -907,4 +907,24 @@ being stored into the \"parameters\" file)." system) #f))) +(define (read-boot-parameters-file system) + "Read boot parameters from SYSTEM's (system or generation) \"parameters\" +file and returns the corresponding object or #f if the +format is unrecognized. +The object has its kernel-arguments extended in order to make it bootable." + (let* ((file (string-append system "/parameters")) + (params (call-with-input-file file read-boot-parameters)) + (root (boot-parameters-root-device params)) + (root-device (if (bytevector? root) + (uuid->string root) + root)) + (kernel-arguments (boot-parameters-kernel-arguments params))) + (if params + (boot-parameters + (inherit params) + (kernel-arguments (bootable-kernel-arguments kernel-arguments + system + root-device))) + #f))) + ;;; system.scm ends here diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 18abfc43a8..9b77b03746 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -369,9 +369,7 @@ it atomically, and then run OS's activation script." NUMBERS, which is a list of generation numbers." (define (system->boot-parameters system number time) (unless-file-not-found - (let* ((file (string-append system "/parameters")) - (params (call-with-input-file file - read-boot-parameters))) + (let* ((params (read-boot-parameters-file system))) params))) (let* ((systems (map (cut generation-file-name profile <>) numbers)) @@ -387,9 +385,7 @@ NUMBERS, which is a list of generation numbers." NUMBERS, which is a list of generation numbers." (define (system->grub-entry system number time) (unless-file-not-found - (let* ((file (string-append system "/parameters")) - (params (call-with-input-file file - read-boot-parameters)) + (let* ((params (read-boot-parameters-file system)) (label (boot-parameters-label params)) (root (boot-parameters-root-device params)) (root-device (if (bytevector? root) @@ -447,9 +443,8 @@ generation as its default entry. STORE is an open connection to the store." "Re-install grub for existing system profile generation NUMBER. STORE is an open connection to the store." (let* ((generation (generation-file-name %system-profile number)) - (file (string-append generation "/parameters")) (params (unless-file-not-found - (call-with-input-file file read-boot-parameters))) + (read-boot-parameters-file generation))) (root-device (boot-parameters-root-device params)) ;; We don't currently keep track of past menu entries' details. The ;; default values will allow the system to boot, even if they differ @@ -533,8 +528,7 @@ list of services." "Display a summary of system generation NUMBER in a human-readable format." (unless (zero? number) (let* ((generation (generation-file-name profile number)) - (param-file (string-append generation "/parameters")) - (params (call-with-input-file param-file read-boot-parameters)) + (params (read-boot-parameters-file generation)) (label (boot-parameters-label params)) (root (boot-parameters-root-device params)) (root-device (if (bytevector? root) From 0315abe608007f1fed96cdcae21b6a83902b25e6 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Apr 2017 14:37:10 +0200 Subject: [PATCH 106/386] scripts: Make boot-parameters label include generation number and time. * guix/scripts/system.scm (system->boot-parameters): Make label include generation number and time. --- guix/scripts/system.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 9b77b03746..88368f8f9e 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -369,8 +369,13 @@ it atomically, and then run OS's activation script." NUMBERS, which is a list of generation numbers." (define (system->boot-parameters system number time) (unless-file-not-found - (let* ((params (read-boot-parameters-file system))) - params))) + (let* ((params (read-boot-parameters-file system)) + (label (boot-parameters-label params))) + (boot-parameters + (inherit params) + (label (string-append label " (#" + (number->string number) ", " + (seconds->string time) ")")))))) (let* ((systems (map (cut generation-file-name profile <>) numbers)) (times (map (lambda (system) From 83071b052a0585f7166245b7ba793436e104f8fe Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Apr 2017 14:37:11 +0200 Subject: [PATCH 107/386] system: vm: Use operating-system-kernel-arguments. * gnu/system/vm.scm (system-qemu-image/shared-store-script): Use operating-system-kernel-arguments. --- gnu/system/vm.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 4f915c4f95..2c8b954c80 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -490,11 +490,8 @@ it is mostly useful when FULL-BOOT? is true." #:full-boot? full-boot? #:disk-image-size disk-image-size))) (define kernel-arguments - #~(list "--root=/dev/vda1" - (string-append "--system=" #$os-drv) - (string-append "--load=" #$os-drv "/boot") - #$@(if graphic? #~() #~("console=ttyS0")) - #+@(operating-system-user-kernel-arguments os))) + #~(list #$@(if graphic? #~() #~("console=ttyS0")) + #+@(operating-system-kernel-arguments os os-drv "/dev/vda1"))) (define qemu-exec #~(list (string-append #$qemu "/bin/" #$(qemu-command (%current-system))) From 370ae085b5107a0928fd744a987fb4070bdf6a00 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Apr 2017 14:37:12 +0200 Subject: [PATCH 108/386] system: Use operating-system-boot-parameters directly. * gnu/system.scm (operating-system-bootcfg): Use operating-system-boot-parameters directly. --- gnu/system.scm | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index f213379f03..38b936787f 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -750,33 +750,13 @@ populate the \"old entries\" menu." (mlet* %store-monad ((system (operating-system-derivation os)) (root-fs -> (operating-system-root-file-system os)) - (store-fs -> (operating-system-store-file-system os)) - (label -> (kernel->boot-label (operating-system-kernel os))) - (kernel -> (operating-system-kernel-file os)) - (initrd (operating-system-initrd-file os)) (root-device -> (if (eq? 'uuid (file-system-title root-fs)) (uuid->string (file-system-device root-fs)) (file-system-device root-fs))) - (entries -> (list (menu-entry - (label label) - - ;; The device where the kernel and initrd live. - (device (fs->boot-device store-fs)) - (device-mount-point - (file-system-mount-point store-fs)) - - (linux kernel) - (linux-arguments - (cons* (string-append "--root=" root-device) - #~(string-append "--system=" #$system) - #~(string-append "--load=" #$system - "/boot") - (operating-system-kernel-arguments os - system - root-device))) - (initrd initrd))))) - (grub-configuration-file (operating-system-bootloader os) entries - #:old-entries old-entries))) + (entry (operating-system-boot-parameters os system root-device))) + (grub-configuration-file (operating-system-bootloader os) + (list entry) + #:old-entries old-entries))) (define (fs->boot-device fs) "Given FS, a object, return a value suitable for use as the From bf8b09169c7d8ae48ac99ea237b82867ee9aa885 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Apr 2017 14:37:13 +0200 Subject: [PATCH 109/386] system: grub: Use boot-parameters instead of menu-entry where possible. * gnu/system/grub.scm (boot-parameters->menu-entry): New variable. (grub-configuration-file): Use boot-parameters instead of menu-entry where possible. * guix/scripts/system.scm (profile-boot-parameters): Update docstring. (reinstall-grub): Use profile-boot-parameters. (perform-action): Use profile-boot-parameters. --- gnu/system/grub.scm | 14 ++++++++++++-- guix/scripts/system.scm | 8 ++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index cde4b9e23a..d2fa984ec7 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -267,6 +267,16 @@ code." (#f #~(format #f "search --file --set ~a" #$file))))) +(define (boot-parameters->menu-entry conf) + "Convert a instance to a corresponding ." + (menu-entry + (label (boot-parameters-label conf)) + (device (boot-parameters-store-device conf)) + (device-mount-point (boot-parameters-store-mount-point conf)) + (linux (boot-parameters-kernel conf)) + (linux-arguments (boot-parameters-kernel-arguments conf)) + (initrd (boot-parameters-initrd conf)))) + (define* (grub-configuration-file config entries #:key (system (%current-system)) @@ -276,7 +286,7 @@ code." object. OLD-ENTRIES is taken to be a list of menu entries corresponding to old generations of the system." (define all-entries - (append entries + (append (map boot-parameters->menu-entry entries) (grub-configuration-menu-entries config))) (define entry->gexp @@ -323,7 +333,7 @@ set timeout=~a~%" #$@(if (pair? old-entries) #~((format port " submenu \"GNU system, old configurations...\" {~%") - #$@(map entry->gexp old-entries) + #$@(map entry->gexp (map boot-parameters->menu-entry old-entries)) (format port "}~%")) #~())))) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 88368f8f9e..5845992b4d 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -365,7 +365,7 @@ it atomically, and then run OS's activation script." (define* (profile-boot-parameters #:optional (profile %system-profile) (numbers (generation-numbers profile))) - "Return a list of 'menu-entry' for the generations of PROFILE specified by + "Return a list of 'boot-parameters' for the generations of PROFILE specified by NUMBERS, which is a list of generation numbers." (define (system->boot-parameters system number time) (unless-file-not-found @@ -456,9 +456,9 @@ open connection to the store." ;; from the actual past values for this generation's entry. (grub-config (grub-configuration (device root-device))) ;; Make the specified system generation the default entry. - (entries (profile-grub-entries %system-profile (list number))) + (entries (profile-boot-parameters %system-profile (list number))) (old-generations (delv number (generation-numbers %system-profile))) - (old-entries (profile-grub-entries %system-profile old-generations)) + (old-entries (profile-boot-parameters %system-profile old-generations)) (grub.cfg (run-with-store store (grub-configuration-file grub-config entries @@ -642,7 +642,7 @@ output when building a system derivation, such as a disk image." (operating-system-bootcfg os (if (eq? 'init action) '() - (profile-grub-entries))))) + (profile-boot-parameters))))) ;; For 'init' and 'reconfigure', always build GRUB.CFG, even if ;; --no-grub is passed, because GRUB.CFG because we then use it as a GC From 7e3f7acbe0885fd8a6e509fd0c309d1f4d9d3097 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 21 Apr 2017 14:37:14 +0200 Subject: [PATCH 110/386] scripts: Remove profile-grub-entries. * guix/scripts/system.scm (profile-grub-entries): Delete variable. --- guix/scripts/system.scm | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 5845992b4d..2872bcae6b 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -384,43 +384,6 @@ NUMBERS, which is a list of generation numbers." systems))) (filter-map system->boot-parameters systems numbers times))) -(define* (profile-grub-entries #:optional (profile %system-profile) - (numbers (generation-numbers profile))) - "Return a list of 'menu-entry' for the generations of PROFILE specified by -NUMBERS, which is a list of generation numbers." - (define (system->grub-entry system number time) - (unless-file-not-found - (let* ((params (read-boot-parameters-file system)) - (label (boot-parameters-label params)) - (root (boot-parameters-root-device params)) - (root-device (if (bytevector? root) - (uuid->string root) - root)) - (kernel (boot-parameters-kernel params)) - (kernel-arguments (boot-parameters-kernel-arguments params)) - (initrd (boot-parameters-initrd params))) - (menu-entry - (label (string-append label " (#" - (number->string number) ", " - (seconds->string time) ")")) - (device (boot-parameters-store-device params)) - (device-mount-point (boot-parameters-store-mount-point params)) - (linux kernel) - (linux-arguments - (cons* (string-append "--root=" root-device) - (string-append "--system=" system) - (string-append "--load=" system "/boot") - kernel-arguments)) - (initrd initrd))))) - - (let* ((systems (map (cut generation-file-name profile <>) - numbers)) - (times (map (lambda (system) - (unless-file-not-found - (stat:mtime (lstat system)))) - systems))) - (filter-map system->grub-entry systems numbers times))) - ;;; ;;; Roll-back. From 360874dd1c1aafddd82e389b9da09f69bddb2a20 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 5 May 2017 08:42:34 +0200 Subject: [PATCH 111/386] system: Clarify that SYSTEM is either a derivation or #f. * gnu/system.scm (operating-system-boot-parameters): Clarify that SYSTEM is either a derivation or #f. --- gnu/system.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index 38b936787f..189a13262f 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -766,9 +766,10 @@ device in a ." ((label) (file-system-device fs)) (else #f))) -(define (operating-system-boot-parameters os system root-device) - "Return a monadic record that describes the boot parameters of OS. -SYSTEM is optional. If given, adds kernel arguments for that system to ." +(define (operating-system-boot-parameters os system.drv root-device) + "Return a monadic record that describes the boot parameters +of OS. SYSTEM.DRV is either a derivation or #f. If it's a derivation, adds +kernel arguments for that derivation to ." (mlet* %store-monad ((initrd (operating-system-initrd-file os)) (store -> (operating-system-store-file-system os)) @@ -778,9 +779,9 @@ SYSTEM is optional. If given, adds kernel arguments for that system to boot-device store)) (store-mount-point (file-system-mount-point store)))))) From 310da3b544f096868b733829840a3b0c024ededb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 17:23:50 +0200 Subject: [PATCH 112/386] gnu: ant: Update to 1.9.9. * gnu/packages/java.scm (ant): Update to 1.9.9. --- gnu/packages/java.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1d18a0b066..ad1ccac83e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -287,14 +287,16 @@ designs.") (define-public ant (package (name "ant") - (version "1.9.6") + ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x + ;; series requires Java 8. + (version "1.9.9") (source (origin (method url-fetch) (uri (string-append "mirror://apache/ant/source/apache-ant-" version "-src.tar.gz")) (sha256 (base32 - "1396wflczyxjxl603dhxjvd559f289lha9y2f04f71c7hapjl3am")))) + "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target From f9082e7d8817fec9e24b048b69a122a6a12fab7e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 5 May 2017 16:56:57 +0200 Subject: [PATCH 113/386] gnu: xf86-input-libinput: Update to 0.25.1. * gnu/packages/xorg.scm (xf86-input-libinput): Update to 0.25.1. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 0bc38692e6..990e27d5d4 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2393,7 +2393,7 @@ including most mice, keyboards, tablets and touchscreens.") (define-public xf86-input-libinput (package (name "xf86-input-libinput") - (version "0.25.0") + (version "0.25.1") (source (origin (method url-fetch) (uri (string-append @@ -2401,7 +2401,7 @@ including most mice, keyboards, tablets and touchscreens.") name "-" version ".tar.bz2")) (sha256 (base32 - "0vsmijamfzf6vcljrr0am2qcz33zl2l0lj2mzmbwgrm7ixjx2zxv")))) + "1q67hjd67ni1nq7kgxdrrdgkyhzaqvvn2vlnsiiq9w4y3icpv7s8")))) (build-system gnu-build-system) (arguments '(#:configure-flags From d2b18f1211631e812e0a06ceb8ffcd5d42d89915 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 5 May 2017 17:03:20 +0200 Subject: [PATCH 114/386] gnu: nano: Update to 2.8.2. * gnu/packages/nano.scm (nano): Update to 2.8.2. [source]: Use '.xz' tarball. --- gnu/packages/nano.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 15cf7cf609..f0344d7481 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -29,15 +29,15 @@ (define-public nano (package (name "nano") - (version "2.8.1") + (version "2.8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/nano/nano-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "042rbhhkiw6nvwklm8zmmdlhjr8gdhdp486hafwrn1pwnpd511m4")))) + "1q5rxkvsv974085xrd2k11ffazadabcb9cnpfra0shmj71xqlgh2")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) From a70b784708fb5e1b78430aa793d89ca04bc641a8 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 5 May 2017 11:01:50 +0200 Subject: [PATCH 115/386] guix: git: Add new module. * guix/git.scm: New file. * configure.ac: Check for (guile git). * Makefile.am: Build guix/git.scm if (guile git) is available. --- Makefile.am | 7 +++ configure.ac | 4 ++ guix/git.scm | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 134 insertions(+) create mode 100644 guix/git.scm diff --git a/Makefile.am b/Makefile.am index 8fe9e350cc..76e5d99c7a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -197,6 +197,13 @@ MODULES += \ endif HAVE_GUILE_SSH +if HAVE_GUILE_GIT + +MODULES += \ + guix/git.scm + +endif HAVE_GUILE_GIT + if BUILD_DAEMON_OFFLOAD MODULES += \ diff --git a/configure.ac b/configure.ac index dc3d8f377f..c937e948d3 100644 --- a/configure.ac +++ b/configure.ac @@ -104,6 +104,10 @@ dnl Guile-JSON is used in various places. GUILE_MODULE_AVAILABLE([have_guile_json], [(json)]) AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"]) +dnl Check for Guile-Git. +GUILE_MODULE_AVAILABLE([have_guile_git], [(git)]) +AM_CONDITIONAL([HAVE_GUILE_GIT], [test "x$have_guile_git" = "xyes"]) + dnl Make sure we have a full-fledged Guile. GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads]) diff --git a/guix/git.scm b/guix/git.scm new file mode 100644 index 0000000000..17a6784aef --- /dev/null +++ b/guix/git.scm @@ -0,0 +1,123 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Mathieu Othacehe +;;; +;;; 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 git) + #:use-module (git) + #:use-module (git object) + #:use-module (guix base32) + #:use-module (guix hash) + #:use-module (guix build utils) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (rnrs bytevectors) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:export (%repository-cache-directory + latest-repository-commit)) + +(define %repository-cache-directory + (make-parameter "/var/cache/guix/checkouts")) + +(define-syntax-rule (with-libgit2 thunk ...) + (dynamic-wind + (lambda () + (libgit2-init!)) + (lambda () + thunk ...) + (lambda () + (libgit2-shutdown)))) + +(define* (url-cache-directory url + #:optional (cache-directory + (%repository-cache-directory))) + "Return the directory associated to URL in %repository-cache-directory." + (string-append + cache-directory "/" + (bytevector->base32-string (sha256 (string->utf8 url))))) + +(define (clone* url directory) + "Clone git repository at URL into DIRECTORY. Upon failure, +make sure no empty directory is left behind." + (with-throw-handler #t + (lambda () + (mkdir-p directory) + (clone url directory)) + (lambda _ + (false-if-exception (rmdir directory))))) + +(define (repository->head-sha1 repo) + "Return the sha1 of the HEAD commit in REPOSITORY as a string." + (let ((oid (reference-target (repository-head repo)))) + (oid->string (commit-id (commit-lookup repo oid))))) + +(define (url+commit->name url sha1) + "Return the string \"-\" where REPO-NAME is the name of +the git repository, extracted from URL and SHA1:7 the seven first digits +of SHA1 string." + (string-append + (string-replace-substring + (last (string-split url #\/)) ".git" "") + "-" (string-take sha1 7))) + +(define* (copy-to-store store cache-directory #:key url repository) + "Copy items in cache-directory to store. URL and REPOSITORY are used +to forge store directory name." + (let* ((commit (repository->head-sha1 repository)) + (name (url+commit->name url commit))) + (values (add-to-store store name #t "sha256" cache-directory) commit))) + +(define (switch-to-ref repository ref) + "Switch to REPOSITORY's branch, commit or tag specified by REF." + (let* ((oid (match ref + (('branch . branch) + (reference-target + (branch-lookup repository branch BRANCH-REMOTE))) + (('commit . commit) + (string->oid commit)) + (('tag . tag) + (reference-name->oid repository + (string-append "refs/tags/" tag))))) + (obj (object-lookup repository oid))) + (reset repository obj RESET_HARD))) + +(define* (latest-repository-commit store url + #:key + (cache-directory + (%repository-cache-directory)) + (ref '(branch . "origin/master"))) + "Return two values: the content of the git repository at URL copied into a +store directory and the sha1 of the top level commit in this directory. The +reference to be checkout, once the repository is fetched, is specified by REF. +REF is pair whose key is [branch | commit | tag] and value the associated +data, respectively [ | | ]. + +Git repositories are kept in the cache directory specified by +%repository-cache-directory parameter." + (with-libgit2 + (let* ((cache-dir (url-cache-directory url cache-directory)) + (cache-exists? (openable-repository? cache-dir)) + (repository (if cache-exists? + (repository-open cache-dir) + (clone* url cache-dir)))) + ;; Only fetch remote if it has not been cloned just before. + (when cache-exists? + (remote-fetch (remote-lookup repository "origin"))) + (switch-to-ref repository ref) + (copy-to-store store cache-dir + #:url url + #:repository repository)))) From 784618562ed21b4f42836faa9159441a9b0b9605 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 5 May 2017 21:48:41 +0300 Subject: [PATCH 116/386] gnu: emacs-guix: Update to 0.3.1. * gnu/packages/emacs.scm (emacs-guix): Update to 0.3.1. [home-page]: Update. --- gnu/packages/emacs.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 74f0ff8b59..d9914ff5f3 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1406,7 +1406,7 @@ type, for example: packages, buffers, files, etc.") (define-public emacs-guix (package (name "emacs-guix") - (version "0.3") + (version "0.3.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/alezost/guix.el" @@ -1414,7 +1414,7 @@ type, for example: packages, buffers, files, etc.") "/emacs-guix-" version ".tar.gz")) (sha256 (base32 - "1327zp140c7acckk0ajl88cgwr0lk9j3mb67nsq2janxrkwmj6br")))) + "0s7s90rfba8ccbilbvmbcwn4qp4m0jv9y58xq8avm39cygmjgyxz")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1453,7 +1453,7 @@ type, for example: packages, buffers, files, etc.") ("dash" ,emacs-dash) ("bui" ,emacs-bui) ("magit-popup" ,emacs-magit-popup))) - (home-page "https://github.com/alezost/guix.el") + (home-page "https://alezost.github.io/guix.el/") (synopsis "Emacs interface for GNU Guix") (description "Emacs-Guix provides a visual interface, tools and features for the GNU From 65df7d4fe4140586d3bdcfbb8cfecfc4fd8d2b2e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 4 May 2017 21:04:33 -0400 Subject: [PATCH 117/386] gnu: rpcbind: Update to 0.2.4. * gnu/packages/onc-rpc.scm (rpcbind): Update to 0.2.4. --- gnu/packages/onc-rpc.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index 5f67823a40..31e2388f0a 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2017 Ludovic Courtès ;;; Copyright © 2016 John Darrington +;;; Copyright © 2017 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,7 +67,7 @@ IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).") (define-public rpcbind (package (name "rpcbind") - (version "0.2.3") + (version "0.2.4") (source (origin (method url-fetch) @@ -75,7 +76,7 @@ IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).") name "-" version ".tar.bz2")) (sha256 (base32 - "0yyjzv4161rqxrgjcijkrawnk55rb96ha0pav48s03l2klx855wq")))) + "0rjc867mdacag4yqvs827wqhkh27135rp9asj06ixhf71m9rljh7")))) (build-system gnu-build-system) (arguments `(#:configure-flags From 2beb879b4befa553677c8f6562305664186c7614 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 4 May 2017 21:05:44 -0400 Subject: [PATCH 118/386] gnu: libtirpc: Update to 1.0.1. * gnu/packages/onc-rpc.scm (libtirpc): Update to 1.0.1. --- gnu/packages/onc-rpc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index 31e2388f0a..c852f9a4a8 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -29,7 +29,7 @@ (define-public libtirpc (package (name "libtirpc") - (version "0.2.4") + (version "1.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/libtirpc/libtirpc/" @@ -37,7 +37,7 @@ version ".tar.bz2")) (sha256 (base32 - "18a337wa4amf0k21wnimp3yzs5l3cxqndz4x3x8bm993zhfy5hs5")))) + "17mqrdgsgp9m92pmq7bvr119svdg753prqqxmg4cnz5y657rfmji")))) (build-system gnu-build-system) (arguments `(#:phases From c39a54f431cc6ae61a09f8b06f3593939dd14c9b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 4 May 2017 21:26:03 -0400 Subject: [PATCH 119/386] gnu: rpcbind, libtirpc: Fix CVE-2017-8779. * gnu/packages/patches/libtirpc-CVE-2017-8779.patch, gnu/packages/patches/rpcbind-CVE-2017-8779.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/onc-rpc.scm (rpcbind, libtirpc)[source]: Use them. --- gnu/local.mk | 2 + gnu/packages/onc-rpc.scm | 3 + .../patches/libtirpc-CVE-2017-8779.patch | 263 ++++++++++++++++++ .../patches/rpcbind-CVE-2017-8779.patch | 29 ++ 4 files changed, 297 insertions(+) create mode 100644 gnu/packages/patches/libtirpc-CVE-2017-8779.patch create mode 100644 gnu/packages/patches/rpcbind-CVE-2017-8779.patch diff --git a/gnu/local.mk b/gnu/local.mk index 97c291d27a..03412c65fb 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -749,6 +749,7 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-invalid-read.patch \ %D%/packages/patches/libtiff-null-dereference.patch \ %D%/packages/patches/libtiff-tiffcp-underflow.patch \ + %D%/packages/patches/libtirpc-CVE-2017-8779.patch \ %D%/packages/patches/libtorrent-rasterbar-boost-compat.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunwind-CVE-2015-3239.patch \ @@ -929,6 +930,7 @@ dist_patch_DATA = \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/readline-7.0-mingw.patch \ %D%/packages/patches/ripperx-missing-file.patch \ + %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rpm-CVE-2014-8118.patch \ %D%/packages/patches/rsem-makefile.patch \ %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \ diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index c852f9a4a8..a76ac36eab 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -22,6 +22,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (gnu packages) #:use-module (gnu packages kerberos) #:use-module (gnu packages pkg-config) #:use-module (guix build-system gnu)) @@ -35,6 +36,7 @@ (uri (string-append "mirror://sourceforge/libtirpc/libtirpc/" version "/libtirpc-" version ".tar.bz2")) + (patches (search-patches "libtirpc-CVE-2017-8779.patch")) (sha256 (base32 "17mqrdgsgp9m92pmq7bvr119svdg753prqqxmg4cnz5y657rfmji")))) @@ -74,6 +76,7 @@ IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).") (uri (string-append "mirror://sourceforge/" name "/" name "/" version "/" name "-" version ".tar.bz2")) + (patches (search-patches "rpcbind-CVE-2017-8779.patch")) (sha256 (base32 "0rjc867mdacag4yqvs827wqhkh27135rp9asj06ixhf71m9rljh7")))) diff --git a/gnu/packages/patches/libtirpc-CVE-2017-8779.patch b/gnu/packages/patches/libtirpc-CVE-2017-8779.patch new file mode 100644 index 0000000000..742e64df25 --- /dev/null +++ b/gnu/packages/patches/libtirpc-CVE-2017-8779.patch @@ -0,0 +1,263 @@ +Fix CVE-2017-8779: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8779 + +Patch copied from the bug reporter's 3rd-party repository: + +https://github.com/guidovranken/rpcbomb/blob/master/libtirpc_patch.txt + +diff --git a/src/rpc_generic.c b/src/rpc_generic.c +index 2f09a8f..589cbd5 100644 +--- a/src/rpc_generic.c ++++ b/src/rpc_generic.c +@@ -615,6 +615,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf) + + switch (af) { + case AF_INET: ++ if (nbuf->len < sizeof(*sin)) { ++ return NULL; ++ } + sin = nbuf->buf; + if (inet_ntop(af, &sin->sin_addr, namebuf, sizeof namebuf) + == NULL) +@@ -626,6 +629,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf) + break; + #ifdef INET6 + case AF_INET6: ++ if (nbuf->len < sizeof(*sin6)) { ++ return NULL; ++ } + sin6 = nbuf->buf; + if (inet_ntop(af, &sin6->sin6_addr, namebuf6, sizeof namebuf6) + == NULL) +@@ -667,6 +673,8 @@ __rpc_uaddr2taddr_af(int af, const char *uaddr) + + port = 0; + sin = NULL; ++ if (uaddr == NULL) ++ return NULL; + addrstr = strdup(uaddr); + if (addrstr == NULL) + return NULL; +diff --git a/src/rpcb_prot.c b/src/rpcb_prot.c +index 43fd385..a923c8e 100644 +--- a/src/rpcb_prot.c ++++ b/src/rpcb_prot.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include "rpc_com.h" + + bool_t + xdr_rpcb(xdrs, objp) +@@ -53,13 +54,13 @@ xdr_rpcb(xdrs, objp) + if (!xdr_u_int32_t(xdrs, &objp->r_vers)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_netid, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_addr, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_addr, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_owner, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_owner, RPC_MAXDATASIZE)) { + return (FALSE); + } + return (TRUE); +@@ -159,19 +160,19 @@ xdr_rpcb_entry(xdrs, objp) + XDR *xdrs; + rpcb_entry *objp; + { +- if (!xdr_string(xdrs, &objp->r_maddr, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_maddr, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_nc_netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_nc_netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_u_int32_t(xdrs, &objp->r_nc_semantics)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_nc_protofmly, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_nc_protofmly, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_nc_proto, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_nc_proto, RPC_MAXDATASIZE)) { + return (FALSE); + } + return (TRUE); +@@ -292,7 +293,7 @@ xdr_rpcb_rmtcallres(xdrs, p) + bool_t dummy; + struct r_rpcb_rmtcallres *objp = (struct r_rpcb_rmtcallres *)(void *)p; + +- if (!xdr_string(xdrs, &objp->addr, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->addr, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_u_int(xdrs, &objp->results.results_len)) { +@@ -312,6 +313,11 @@ xdr_netbuf(xdrs, objp) + if (!xdr_u_int32_t(xdrs, (u_int32_t *) &objp->maxlen)) { + return (FALSE); + } ++ ++ if (objp->maxlen > RPC_MAXDATASIZE) { ++ return (FALSE); ++ } ++ + dummy = xdr_bytes(xdrs, (char **)&(objp->buf), + (u_int *)&(objp->len), objp->maxlen); + return (dummy); +diff --git a/src/rpcb_st_xdr.c b/src/rpcb_st_xdr.c +index 08db745..28e6a48 100644 +--- a/src/rpcb_st_xdr.c ++++ b/src/rpcb_st_xdr.c +@@ -37,6 +37,7 @@ + + + #include ++#include "rpc_com.h" + + /* Link list of all the stats about getport and getaddr */ + +@@ -58,7 +59,7 @@ xdr_rpcbs_addrlist(xdrs, objp) + if (!xdr_int(xdrs, &objp->failure)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + +@@ -109,7 +110,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) + IXDR_PUT_INT32(buf, objp->failure); + IXDR_PUT_INT32(buf, objp->indirect); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_pointer(xdrs, (char **)&objp->next, +@@ -147,7 +148,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) + objp->failure = (int)IXDR_GET_INT32(buf); + objp->indirect = (int)IXDR_GET_INT32(buf); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_pointer(xdrs, (char **)&objp->next, +@@ -175,7 +176,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) + if (!xdr_int(xdrs, &objp->indirect)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_pointer(xdrs, (char **)&objp->next, +diff --git a/src/xdr.c b/src/xdr.c +index f3fb9ad..b9a1558 100644 +--- a/src/xdr.c ++++ b/src/xdr.c +@@ -42,8 +42,10 @@ + #include + #include + ++#include + #include + #include ++#include + + typedef quad_t longlong_t; /* ANSI long long type */ + typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */ +@@ -53,7 +55,6 @@ typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */ + */ + #define XDR_FALSE ((long) 0) + #define XDR_TRUE ((long) 1) +-#define LASTUNSIGNED ((u_int) 0-1) + + /* + * for unit alignment +@@ -629,6 +630,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) + { + char *sp = *cpp; /* sp is the actual string pointer */ + u_int nodesize; ++ bool_t ret, allocated = FALSE; + + /* + * first deal with the length since xdr bytes are counted +@@ -652,6 +654,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) + } + if (sp == NULL) { + *cpp = sp = mem_alloc(nodesize); ++ allocated = TRUE; + } + if (sp == NULL) { + warnx("xdr_bytes: out of memory"); +@@ -660,7 +663,14 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) + /* FALLTHROUGH */ + + case XDR_ENCODE: +- return (xdr_opaque(xdrs, sp, nodesize)); ++ ret = xdr_opaque(xdrs, sp, nodesize); ++ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { ++ if (allocated == TRUE) { ++ free(sp); ++ *cpp = NULL; ++ } ++ } ++ return (ret); + + case XDR_FREE: + if (sp != NULL) { +@@ -754,6 +764,7 @@ xdr_string(xdrs, cpp, maxsize) + char *sp = *cpp; /* sp is the actual string pointer */ + u_int size; + u_int nodesize; ++ bool_t ret, allocated = FALSE; + + /* + * first deal with the length since xdr strings are counted-strings +@@ -793,8 +804,10 @@ xdr_string(xdrs, cpp, maxsize) + switch (xdrs->x_op) { + + case XDR_DECODE: +- if (sp == NULL) ++ if (sp == NULL) { + *cpp = sp = mem_alloc(nodesize); ++ allocated = TRUE; ++ } + if (sp == NULL) { + warnx("xdr_string: out of memory"); + return (FALSE); +@@ -803,7 +816,14 @@ xdr_string(xdrs, cpp, maxsize) + /* FALLTHROUGH */ + + case XDR_ENCODE: +- return (xdr_opaque(xdrs, sp, size)); ++ ret = xdr_opaque(xdrs, sp, size); ++ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { ++ if (allocated == TRUE) { ++ free(sp); ++ *cpp = NULL; ++ } ++ } ++ return (ret); + + case XDR_FREE: + mem_free(sp, nodesize); +@@ -823,7 +843,7 @@ xdr_wrapstring(xdrs, cpp) + XDR *xdrs; + char **cpp; + { +- return xdr_string(xdrs, cpp, LASTUNSIGNED); ++ return xdr_string(xdrs, cpp, RPC_MAXDATASIZE); + } + + /* diff --git a/gnu/packages/patches/rpcbind-CVE-2017-8779.patch b/gnu/packages/patches/rpcbind-CVE-2017-8779.patch new file mode 100644 index 0000000000..6ca93ff12b --- /dev/null +++ b/gnu/packages/patches/rpcbind-CVE-2017-8779.patch @@ -0,0 +1,29 @@ +Fix CVE-2017-8779: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8779 + +Patch copied from the bug reporter's 3rd-party repository: + +https://github.com/guidovranken/rpcbomb/blob/master/rpcbind_patch.txt + +diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c +index 5862c26..e11f61b 100644 +--- a/src/rpcb_svc_com.c ++++ b/src/rpcb_svc_com.c +@@ -48,6 +48,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -432,7 +433,7 @@ rpcbproc_taddr2uaddr_com(void *arg, struct svc_req *rqstp /*__unused*/, + static bool_t + xdr_encap_parms(XDR *xdrs, struct encap_parms *epp) + { +- return (xdr_bytes(xdrs, &(epp->args), (u_int *) &(epp->arglen), ~0)); ++ return (xdr_bytes(xdrs, &(epp->args), (u_int *) &(epp->arglen), RPC_MAXDATASIZE)); + } + + /* From cc3bc027ebbc924cc60fdcd8e7c8572bd0adf90c Mon Sep 17 00:00:00 2001 From: rennes Date: Tue, 2 May 2017 22:46:56 -0500 Subject: [PATCH 120/386] gnu: gnome-shell: Fix CVE-2017-8288. * gnu/packages/patches/gnome-shell-CVE-2017-8288.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gnome.scm (gnome-shell)[source]: Use it. Co-authored-by: Leo Famulari --- gnu/local.mk | 1 + gnu/packages/gnome.scm | 3 +- .../patches/gnome-shell-CVE-2017-8288.patch | 54 +++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gnome-shell-CVE-2017-8288.patch diff --git a/gnu/local.mk b/gnu/local.mk index 03412c65fb..558239f7a9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -627,6 +627,7 @@ dist_patch_DATA = \ %D%/packages/patches/glog-gcc-5-demangling.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ + %D%/packages/patches/gnome-shell-CVE-2017-8288.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index be11442ede..ef67961ab8 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2015, 2016, 2017 Mark H Weaver ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016 Efraim Flashner -;;; Copyright © 2016 Rene Saavedra +;;; Copyright © 2016, 2017 Rene Saavedra ;;; Copyright © 2016 Jochem Raat ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2016 Jan Nieuwenhuizen @@ -5000,6 +5000,7 @@ properties, screen resolution, and other GNOME parameters.") (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) + (patches (search-patches "gnome-shell-CVE-2017-8288.patch")) (sha256 (base32 "16smvjfrpyfphv479hjky5261hgl4kli4q86bcb2b8xdcav4w3yq")))) diff --git a/gnu/packages/patches/gnome-shell-CVE-2017-8288.patch b/gnu/packages/patches/gnome-shell-CVE-2017-8288.patch new file mode 100644 index 0000000000..5d8e31563f --- /dev/null +++ b/gnu/packages/patches/gnome-shell-CVE-2017-8288.patch @@ -0,0 +1,54 @@ +Fix CVE-2017-8288: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8288 +http://seclists.org/oss-sec/2017/q2/136 + +Patch copied from upstream source repository: + +https://git.gnome.org/browse/gnome-shell/commit/?id=ff425d1db7082e2755d2a405af53861552acf2a1 + +From ff425d1db7082e2755d2a405af53861552acf2a1 Mon Sep 17 00:00:00 2001 +From: Emilio Pozuelo Monfort +Date: Tue, 25 Apr 2017 17:27:42 +0200 +Subject: extensionSystem: handle reloading broken extensions + +Some extensions out there may fail to reload. When that happens, +we need to catch any exceptions so that we don't leave things in +a broken state that could lead to leaving extensions enabled in +the screen shield. + +https://bugzilla.gnome.org/show_bug.cgi?id=781728 +--- + js/ui/extensionSystem.js | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js +index a4dc29e..fc352b8 100644 +--- a/js/ui/extensionSystem.js ++++ b/js/ui/extensionSystem.js +@@ -282,12 +282,20 @@ function _onVersionValidationChanged() { + // temporarily disable them all + enabledExtensions = []; + for (let uuid in ExtensionUtils.extensions) +- reloadExtension(ExtensionUtils.extensions[uuid]); ++ try { ++ reloadExtension(ExtensionUtils.extensions[uuid]); ++ } catch(e) { ++ logExtensionError(uuid, e); ++ } + enabledExtensions = getEnabledExtensions(); + + if (Main.sessionMode.allowExtensions) { + enabledExtensions.forEach(function(uuid) { +- enableExtension(uuid); ++ try { ++ enableExtension(uuid); ++ } catch(e) { ++ logExtensionError(uuid, e); ++ } + }); + } + } +-- +cgit v0.12 + From 6cf8e576e9525bd6118fc95ba351974e807c973d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 4 May 2017 21:44:13 -0400 Subject: [PATCH 121/386] gnu: mariadb: Update to 10.1.23 [security fixes]. Fixes CVE-2017-{3302,3313,3308,3309,3453,3456,3464 }. * gnu/packages/databases.scm (mariadb): Update to 10.1.23. [arguments]: Disable features that depend on libarchive. --- gnu/packages/databases.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 01488e0d63..19ae1ecedc 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -372,7 +372,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.1.22") + (version "10.1.23") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.org/f/" @@ -380,11 +380,20 @@ Language.") name "-" version ".tar.gz")) (sha256 (base32 - "1kk674mx2bf22yivvzv1al5gdg9kyxar47m282bylb6kg8p5gc5w")))) + "1gq08dj9skr0gli1nj7a8wl92w8lmmqy0sbxvkmy79dz4i713n2l")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DBUILD_CONFIG=mysql_release" + ;; Linking with libarchive fails, like this: + + ;; ld: /gnu/store/...-libarchive-3.2.2/lib/libarchive.a(archive_entry.o): + ;; relocation R_X86_64_32 against `.bss' can not be used when + ;; making a shared object; recompile with -fPIC + + ;; For now, disable the features that that use libarchive (xtrabackup). + "-DWITH_LIBARCHIVE=OFF" + "-DDEFAULT_CHARSET=utf8" "-DDEFAULT_COLLATION=utf8_general_ci" "-DMYSQL_DATADIR=/var/lib/mysql" From d7dcaf8a3171bdd0f7c4ce1e887af15d5ded4df8 Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Fri, 5 May 2017 19:43:09 +0200 Subject: [PATCH 122/386] gnu: emacs-org: Update to 20170502. * gnu/packages/emacs.scm (emacs-org): Update to 20170502. Signed-off-by: Arun Isaac --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index d9914ff5f3..9028ed0eda 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3574,14 +3574,14 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "20170210") + (version "20170502") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "15415wh3w8d4c8hd7qfrfdjnjb1zppmrkg8cdp7hw2ilyr90c0bn")))) + "12inz804j55ycprb2m3ay54d1bhwhjssmn5nrfm7cfklyhfsy27s")))) (build-system emacs-build-system) (home-page "http://orgmode.org/") (synopsis "Outline-based notes management and organizer") From 99c1554c9ba1fd22d7dfdeba221088a3849ee27b Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 5 May 2017 19:40:31 +0530 Subject: [PATCH 123/386] gnu: Add linuxdcpp. * gnu/packages/direct-connect.scm (linuxdcpp): New variable. --- gnu/local.mk | 1 + gnu/packages/direct-connect.scm | 82 +++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 gnu/packages/direct-connect.scm diff --git a/gnu/local.mk b/gnu/local.mk index 558239f7a9..c93dca64c5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -107,6 +107,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/dejagnu.scm \ %D%/packages/dico.scm \ %D%/packages/dictionaries.scm \ + %D%/packages/direct-connect.scm \ %D%/packages/disk.scm \ %D%/packages/display-managers.scm \ %D%/packages/django.scm \ diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm new file mode 100644 index 0000000000..6796bf3bc8 --- /dev/null +++ b/gnu/packages/direct-connect.scm @@ -0,0 +1,82 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Arun Isaac +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages direct-connect) + #:use-module (guix build-system python) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (gnu packages boost) + #:use-module (gnu packages compression) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control)) + +(define-public linuxdcpp + (package + (name "linuxdcpp") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://launchpad.net/linuxdcpp/1.1/1.1.0/+download/linuxdcpp-" + version ".tar.bz2")) + (sha256 + (base32 + "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:tests? #f ; no tests + #:phases + ;; TODO: Add scons-build-system and use it here. + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p out) + (zero? (system* "scons" (string-append "PREFIX=" out) + "-j" (number->string (parallel-job-count))))))) + (replace 'install + (lambda _ + (zero? (system* "scons" "install"))))))) + (inputs + `(("boost" ,boost) + ("bzip2" ,bzip2) + ("gtk+" ,gtk+-2) + ("libglade" ,libglade) + ("libnotify" ,libnotify) + ("openssl" ,openssl))) + (native-inputs + `(("bazaar" ,bazaar) + ("gettext-minimal" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("scons" ,scons))) + (home-page "https://launchpad.net/linuxdcpp/") + (synopsis "Direct Connect client") + (description "LinuxDC++ is a Direct Connect (DC) client. Direct Connect +is a peer-to-peer file-sharing protocol. Clients connect to a central hub +where they can chat or share files with one another. Users can view other +users' list of shared files or search the hub for files.") + (license license:gpl2+))) From 40d728a87d4b6993437ed33dbe2dcb47363ae7c0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 5 May 2017 20:08:29 -0400 Subject: [PATCH 124/386] Revert "guix: git: Add new module." This reverts commit a70b784708fb5e1b78430aa793d89ca04bc641a8. Commit a70b784708f caused `guix pull` to fail: ERROR: In procedure scm-error: ERROR: no code for module (git) --- Makefile.am | 7 --- configure.ac | 4 -- guix/git.scm | 123 --------------------------------------------------- 3 files changed, 134 deletions(-) delete mode 100644 guix/git.scm diff --git a/Makefile.am b/Makefile.am index 76e5d99c7a..8fe9e350cc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -197,13 +197,6 @@ MODULES += \ endif HAVE_GUILE_SSH -if HAVE_GUILE_GIT - -MODULES += \ - guix/git.scm - -endif HAVE_GUILE_GIT - if BUILD_DAEMON_OFFLOAD MODULES += \ diff --git a/configure.ac b/configure.ac index c937e948d3..dc3d8f377f 100644 --- a/configure.ac +++ b/configure.ac @@ -104,10 +104,6 @@ dnl Guile-JSON is used in various places. GUILE_MODULE_AVAILABLE([have_guile_json], [(json)]) AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"]) -dnl Check for Guile-Git. -GUILE_MODULE_AVAILABLE([have_guile_git], [(git)]) -AM_CONDITIONAL([HAVE_GUILE_GIT], [test "x$have_guile_git" = "xyes"]) - dnl Make sure we have a full-fledged Guile. GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads]) diff --git a/guix/git.scm b/guix/git.scm deleted file mode 100644 index 17a6784aef..0000000000 --- a/guix/git.scm +++ /dev/null @@ -1,123 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Mathieu Othacehe -;;; -;;; 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 git) - #:use-module (git) - #:use-module (git object) - #:use-module (guix base32) - #:use-module (guix hash) - #:use-module (guix build utils) - #:use-module (guix store) - #:use-module (guix utils) - #:use-module (rnrs bytevectors) - #:use-module (ice-9 match) - #:use-module (srfi srfi-1) - #:export (%repository-cache-directory - latest-repository-commit)) - -(define %repository-cache-directory - (make-parameter "/var/cache/guix/checkouts")) - -(define-syntax-rule (with-libgit2 thunk ...) - (dynamic-wind - (lambda () - (libgit2-init!)) - (lambda () - thunk ...) - (lambda () - (libgit2-shutdown)))) - -(define* (url-cache-directory url - #:optional (cache-directory - (%repository-cache-directory))) - "Return the directory associated to URL in %repository-cache-directory." - (string-append - cache-directory "/" - (bytevector->base32-string (sha256 (string->utf8 url))))) - -(define (clone* url directory) - "Clone git repository at URL into DIRECTORY. Upon failure, -make sure no empty directory is left behind." - (with-throw-handler #t - (lambda () - (mkdir-p directory) - (clone url directory)) - (lambda _ - (false-if-exception (rmdir directory))))) - -(define (repository->head-sha1 repo) - "Return the sha1 of the HEAD commit in REPOSITORY as a string." - (let ((oid (reference-target (repository-head repo)))) - (oid->string (commit-id (commit-lookup repo oid))))) - -(define (url+commit->name url sha1) - "Return the string \"-\" where REPO-NAME is the name of -the git repository, extracted from URL and SHA1:7 the seven first digits -of SHA1 string." - (string-append - (string-replace-substring - (last (string-split url #\/)) ".git" "") - "-" (string-take sha1 7))) - -(define* (copy-to-store store cache-directory #:key url repository) - "Copy items in cache-directory to store. URL and REPOSITORY are used -to forge store directory name." - (let* ((commit (repository->head-sha1 repository)) - (name (url+commit->name url commit))) - (values (add-to-store store name #t "sha256" cache-directory) commit))) - -(define (switch-to-ref repository ref) - "Switch to REPOSITORY's branch, commit or tag specified by REF." - (let* ((oid (match ref - (('branch . branch) - (reference-target - (branch-lookup repository branch BRANCH-REMOTE))) - (('commit . commit) - (string->oid commit)) - (('tag . tag) - (reference-name->oid repository - (string-append "refs/tags/" tag))))) - (obj (object-lookup repository oid))) - (reset repository obj RESET_HARD))) - -(define* (latest-repository-commit store url - #:key - (cache-directory - (%repository-cache-directory)) - (ref '(branch . "origin/master"))) - "Return two values: the content of the git repository at URL copied into a -store directory and the sha1 of the top level commit in this directory. The -reference to be checkout, once the repository is fetched, is specified by REF. -REF is pair whose key is [branch | commit | tag] and value the associated -data, respectively [ | | ]. - -Git repositories are kept in the cache directory specified by -%repository-cache-directory parameter." - (with-libgit2 - (let* ((cache-dir (url-cache-directory url cache-directory)) - (cache-exists? (openable-repository? cache-dir)) - (repository (if cache-exists? - (repository-open cache-dir) - (clone* url cache-dir)))) - ;; Only fetch remote if it has not been cloned just before. - (when cache-exists? - (remote-fetch (remote-lookup repository "origin"))) - (switch-to-ref repository ref) - (copy-to-store store cache-dir - #:url url - #:repository repository)))) From 860f73c699a5a22036b67b63a5a2a3e0901a354f Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 6 May 2017 03:05:11 +0530 Subject: [PATCH 125/386] gnu: Add emacs-transpose-frame. * gnu/packages/emacs.scm (emacs-transpose-frame): New variable. --- gnu/packages/emacs.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9028ed0eda..fac04e2c9c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4561,3 +4561,22 @@ built on top of XELB.") (description "@code{emacs-gnuplot} is an emacs major mode for interacting with gnuplot.") (license license:gpl2+))) + +(define-public emacs-transpose-frame + (package + (name "emacs-transpose-frame") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el") + (sha256 + (base32 + "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/TransposeFrame") + (synopsis "Transpose window arrangement in current frame") + (description "@code{emacs-transpose-frame} provides some interactive +functions which allows users to transpose windows arrangement in currently +selected frame.") + (license license:bsd-2))) From fe0915cf24a2bd2edd2b7d38d4ba85998e486f20 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 1 May 2017 15:44:31 +0200 Subject: [PATCH 126/386] doc: Document (list package output) syntax in operanting-system-packages. * doc/guix.texi (Globally-Visible Packages): Document (PACKAGE OUTPUT) syntax. --- doc/guix.texi | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 79942d7cd1..4446909ed6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7761,7 +7761,19 @@ provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, etc. The example above adds tcpdump to those, taken from the @code{(gnu -packages admin)} module (@pxref{Package Modules}). +packages admin)} module (@pxref{Package Modules}). The +@code{(list package output)} syntax can be used to add a specific output +of a package: + +@lisp +(use-modules (gnu packages)) +(use-modules (gnu packages dns)) + +(operating-system + ;; ... + (packages (cons (list bind "utils") + %base-packages))) +@end lisp @findex specification->package Referring to packages by variable name, like @var{tcpdump} above, has From cae491ab02e6e666f7108c1c851d845f7711bfa8 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 21 Apr 2017 21:30:03 +0200 Subject: [PATCH 127/386] gnu: Add lugaru. * gnu/packages/games.scm (lugaru): New variable. --- gnu/packages/games.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b31bb93db9..9d554af418 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3941,3 +3941,43 @@ fabulous Orb of Zot.") license:expat license:zlib license:asl2.0)))) + +(define-public lugaru + (package + (name "lugaru") + (version "1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/osslugaru/lugaru/downloads/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "15zgcshy22q51rm72zi6y9z7qlgnz5iw3gczjdlir4bqmxy4gspk")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DSYSTEM_INSTALL=ON") + ;; no test target + #:tests? #f)) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("sdl2" ,sdl2) + ("glu" ,glu) + ("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("openal" ,openal) + ("vorbis" ,libvorbis) + ("zlib" ,zlib))) + (home-page "https://osslugaru.gitlab.io") + (synopsis "Cross-platform third-person action game") + (description "Lugaru is a third-person action game. The main character, +Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills. +In his quest to find those responsible for slaughtering his village, he uncovers +a far-reaching conspiracy involving the corrupt leaders of the rabbit republic +and the starving wolves from a nearby den. Turner takes it upon himself to +fight against their plot and save his fellow rabbits from slavery.") + (license (list license:gpl2+ ; code + ;; assets: + license:cc-by-sa3.0 + license:cc-by-sa4.0)))) From 09270a97d9297e8acf6d9ff224dd1d58e2a4498e Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 30 Apr 2017 19:21:46 +0200 Subject: [PATCH 128/386] gnu: hexchat: Update to 2.12.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (hexchat): Update to 2.12.4. [source]: Remove incorrectly bootstrapped files. [native-inputs]: Add autoconf, autoconf-archive, automake, libtool, pkg-config. [arguments]: Add ‘bootstrap’ phase. --- gnu/packages/messaging.scm | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 9e45b7ad0f..6bd626d78c 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 Mark H Weaver -;;; Copyright © 2014 Julien Lepiller +;;; Copyright © 2014, 2017 Julien Lepiller ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus @@ -166,17 +166,35 @@ identi.ca and status.net).") (define-public hexchat (package (name "hexchat") - (version "2.12.2") + (version "2.12.4") (source (origin (method url-fetch) (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-" version ".tar.xz")) (sha256 (base32 - "1xnclfbrgbkqndxygi5f27q00jd7yy54jbd1061jmhxa6wzpibbd")))) + "0ficrx56knz5y297qb0x5y02339yvyv734z7kpcx1ixvb0qr2dgs")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete dangling symlinks to a non-existent ‘/usr’. + (with-directory-excursion "m4" + (for-each (lambda (f) (delete-file f)) + '("intltool.m4" "libtool.m4" "lt~obsolete.m4" + "ltoptions.m4" "ltsugar.m4" "ltversion.m4"))) + (delete-file-recursively "build-aux") + (delete-file "po/Makefile.in.in") + ;; This file is still required for autoreconf. + (copy-file (string-append (assoc-ref inputs "intltool") + "/share/intltool/Makefile.in.in") + "po/Makefile.in.in"))))) (build-system gnu-build-system) - (native-inputs `(("pkg-config" ,pkg-config) - ("intltool" ,intltool))) + (native-inputs `(("autoconf" ,autoconf) + ("autoconf-archive" ,autoconf-archive) + ("automake" ,automake) + ("intltool" ,intltool) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) (inputs `(("dbus-glib" ,dbus-glib) ("dbus" ,dbus) ("enchant" ,enchant) @@ -190,6 +208,13 @@ identi.ca and status.net).") ("luajit" ,luajit) ("perl-xml-parser" ,perl-xml-parser) ("python-2" ,python-2))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Release 2.12.4 wasn't properly bootstrapped. Later ones might be! + (add-after 'unpack 'bootstrap + (lambda* (#:key inputs #:allow-other-keys) + (zero? (system* "autoreconf" "-fiv"))))))) (synopsis "Graphical IRC Client") (description "HexChat lets you connect to multiple IRC networks at once. The main From 4606f3a3efd6a5a01152b3fdf727216bdd3d3b8c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 May 2017 17:24:35 +0200 Subject: [PATCH 129/386] gnu: Add lightdm. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/display-managers.scm (lightdm): New variable. Co-authored-by: 宋文武 --- gnu/packages/display-managers.scm | 81 +++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 0a70fd737b..1c3acd15aa 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -2,6 +2,8 @@ ;;; Copyright © 2013 Joshua Grant ;;; Copyright © 2014 Ludovic Courtès ;;; Copyright © 2014 Andreas Enge +;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,17 +25,22 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gl) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg)) @@ -186,6 +193,80 @@ create smooth, animated user interfaces.") ;; QML files are MIT licensed and images are CC BY 3.0. (license (list license:gpl2+ license:expat license:cc-by3.0)))) +(define-public lightdm + (package + (name "lightdm") + (version "1.22.0") + (source (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/lightdm/" + (version-major+minor version) "/" + version "/+download/lightdm-" + version ".tar.xz")) + (sha256 + (base32 + "0a5bvfl2h7r873al6q7c819h0kg564k9fh51rl6489z6lyvazfg4")))) + (build-system gnu-build-system) + (arguments + '(#:parallel-tests? #f ; fails when run in parallel + #:configure-flags + (list "--localstatedir=/var") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda _ + (substitute* "src/shared-data-manager.c" + (("/bin/rm") (which "rm"))) + (substitute* '("data/users.conf" + "common/user-list.c") + (("/bin/false") (which "false")) + (("/usr/sbin/nologin") (which "nologin"))) + (substitute* "src/seat.c" + (("/bin/sh") (which "sh"))) + #t)) + (add-after 'unpack 'disable-broken-tests + (lambda _ + (substitute* "tests/Makefile.in" + (("test-sessions-gobject ") "") + ((" test-sessions-python ") " ")) + #t)) + (add-before 'check 'pre-check + ;; Run test-suite under a dbus session. + (lambda* (#:key inputs #:allow-other-keys) + (wrap-program "tests/src/test-python-greeter" + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))) + `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))) + + ;; Avoid printing locale warnings, which trip up the text + ;; matching tests. + (unsetenv "LC_ALL") + #t))))) + (inputs + `(("audit" ,audit) + ("linux-pam" ,linux-pam) + ("util-linux" ,util-linux) ; for sbin/nologin + ("libgcrypt" ,libgcrypt) + ("libxcb" ,libxcb))) + (native-inputs + `(("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("itstool" ,itstool) + ("intltool" ,intltool) + ;; For tests + ("dbus" ,dbus) + ("python" ,python-2) + ("python-pygobject" ,python2-pygobject))) + ;; Required by liblightdm-gobject-1.pc. + (propagated-inputs + `(("glib" ,glib) + ("libx11" ,libx11) + ("libxklavier" ,libxklavier))) + (home-page "https://www.freedesktop.org/wiki/Software/LightDM/") + (synopsis "Lightweight display manager") + (description "The Light Display Manager (LightDM) is a cross-desktop +display manager which supports different greeters.") + (license license:gpl3+))) + (define-public slim (package (name "slim") From 2337067778c3057440e223076aa8263a87a633a1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 6 May 2017 08:33:53 +0200 Subject: [PATCH 130/386] gnu: augeas: Update to 1.8.0. * gnu/packages/augeas.scm (augeas): Update to 1.8.0. --- gnu/packages/augeas.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/augeas.scm b/gnu/packages/augeas.scm index 95b96ca25c..9b320810ca 100644 --- a/gnu/packages/augeas.scm +++ b/gnu/packages/augeas.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,14 +30,14 @@ (define-public augeas (package (name "augeas") - (version "1.4.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "http://download.augeas.net/augeas-" version ".tar.gz")) (sha256 (base32 - "0c2vncn0afmgwggnqa5s5z7m3zbcc66bi8v9m1h9w0i9q9xax7v5")))) + "1iac5lwi1q10r343ii9v5p2fdplvh06yv9svsi8zz6cd2c2fjp2i")))) (build-system gnu-build-system) ;; Marked as "required" in augeas.pc (propagated-inputs From eba9ecd4d25adcb7e8bb7d0d62a8eb4fc41402f2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 6 May 2017 08:34:18 +0200 Subject: [PATCH 131/386] gnu: minixml: Update to 2.10. * gnu/packages/xml.scm (minixml): Update to 2.10. [home-page]: Update to new home page. --- gnu/packages/xml.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index f4b68ba6a7..7801c6cdb7 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -895,18 +895,19 @@ Libxml2).") (define-public minixml (package (name "minixml") - (version "2.9") + (version "2.10") (source (origin (method url-fetch) - (uri (string-append "http://www.msweet.org/files/project3/mxml-" - version ".tar.gz")) + (uri (string-append "https://github.com/michaelrsweet/mxml/" + "releases/download/release-" version + "/mxml-" version ".tar.gz")) (sha256 (base32 - "14pzhlfidj5v1qbxy7a59yn4jz9pnjrs2zwalz228jsq7ijm9vfd")))) + "14bqfq4lymhb31snz6wsvzhlavy0573v1nki1lbngiyxcj5zazr6")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ;no "check" target - (home-page "http://www.minixml.org/") + (home-page "https://michaelrsweet.github.io/mxml") (synopsis "Small XML parsing library") (description "Mini-XML is a small C library to read and write XML files and strings in From e981ca3665d6ae552509aed3372535fb00230108 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 6 May 2017 08:56:39 +0200 Subject: [PATCH 132/386] gnu: pcb: Update to 4.0.0. * gnu/packages/engineering.scm (pcb): Update to 4.0.0. [arguments]: Add pre-check phase to start Xvfb for tests. [native-inputs]: Add imagemagick, gerbv, ghostscript, and xorg-server for tests. --- gnu/packages/engineering.scm | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 20efe11a24..362860e17d 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 David Thompson @@ -53,6 +53,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages linux) ;FIXME: for pcb #:use-module (gnu packages m4) #:use-module (gnu packages maths) @@ -173,15 +174,14 @@ utilities.") (define-public pcb (package (name "pcb") - (version "20140316") + (version "4.0.0") (source (origin (method url-fetch) - (uri (string-append - "http://ftp.geda-project.org/pcb/pcb-" version "/pcb-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/pcb/pcb/pcb-" version + "/pcb-" version ".tar.gz")) (sha256 (base32 - "0l6944hq79qsyp60i5ai02xwyp8l47q7xdm3js0jfkpf72ag7i42")))) + "1i6sk8g8h9avms142wl07yv20m1cm4c3fq3v6hybrhdxs2n17plf")))) (build-system gnu-build-system) (arguments `(#:phases @@ -200,7 +200,13 @@ utilities.") (path (string-append (assoc-ref inputs "udev") "/lib"))) (wrap-program (string-append out "/bin/pcb") `("LD_LIBRARY_PATH" ":" prefix (,path))))) - %standard-phases)))) + (alist-cons-before + 'check 'pre-check + (lambda _ + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + #t) + %standard-phases))))) (inputs `(("dbus" ,dbus) ("mesa" ,mesa) @@ -216,7 +222,12 @@ utilities.") `(("pkg-config" ,pkg-config) ("intltool" ,intltool) ("bison" ,bison) - ("flex" ,flex))) + ("flex" ,flex) + ;; For tests + ("imagemagick" ,imagemagick) + ("gerbv" ,gerbv) + ("ghostscript" ,ghostscript) + ("xvfb" ,xorg-server))) (home-page "http://pcb.geda-project.org/") (synopsis "Design printed circuit board layouts") (description From a041d56ebba4f94d8248dcb85fbba1fa4ee8f4a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 6 May 2017 17:38:39 +0800 Subject: [PATCH 133/386] gnu: nix: Update to 1.11.9. * gnu/packages/package-management.scm (nix): Update to 1.11.9. --- gnu/packages/package-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 660c039bdd..d5248a3047 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -310,14 +310,14 @@ out) and returning a package that uses that as its 'source'." (define-public nix (package (name "nix") - (version "1.11.6") + (version "1.11.9") (source (origin (method url-fetch) (uri (string-append "http://nixos.org/releases/nix/nix-" version "/nix-" version ".tar.xz")) (sha256 (base32 - "18xjg7cfvqzhsmvir6xmw95jxvl2w7icphbbll462xbnj9ddaag7")))) + "1qg7qrfr60dysmyfg3ijgani71l23p1kqadhjs8kz11pgwkkx50f")))) (build-system gnu-build-system) ;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also ;; need '--localstatedir=/var'. But then! The thing would use /var/nix From c0326ebcb5825fbb5ffc59df40db36aef0a7d47a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 6 May 2017 18:12:38 +0800 Subject: [PATCH 134/386] gnu: Add lightdm-gtk-greeter. * gnu/packages/display-managers.scm (lightdm-gtk-greeter): New variable. --- gnu/packages/display-managers.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 1c3acd15aa..869d6239ef 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) + #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux) @@ -43,6 +44,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xfce) #:use-module (gnu packages xorg)) (define-public greenisland @@ -267,6 +269,33 @@ create smooth, animated user interfaces.") display manager which supports different greeters.") (license license:gpl3+))) +(define-public lightdm-gtk-greeter + (package + (name "lightdm-gtk-greeter") + (version "2.0.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://launchpad.net/lightdm-gtk-greeter/" + (version-major+minor version) "/" version + "/+download/lightdm-gtk-greeter-" version ".tar.gz")) + (sha256 + (base32 + "1436sdm83xqhxyr1rzqxhsl8if2xmidlvb341xcv6dv83lyxkrlf")))) + (build-system gnu-build-system) + (native-inputs + `(("exo" ,exo) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (inputs + `(("lightdm" ,lightdm) + ("gtk+" ,gtk+))) + (synopsis "GTK+ greeter for LightDM") + (home-page "https://launchpad.net/lightdm-gtk-greeter") + (description "This package provides a LightDM greeter implementation using +GTK+, lets you select a desktop session and log in to it.") + (license license:gpl3+))) + (define-public slim (package (name "slim") From a34242eedc4073435f399a5336f227f175e9577f Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sat, 6 May 2017 00:41:44 -0400 Subject: [PATCH 135/386] gnu: Add emacs-key-chord. * gnu/packages/emacs.scm (emacs-key-chord): New variable. Signed-off-by: Arun Isaac --- gnu/packages/emacs.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index fac04e2c9c..7e39c2a234 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4580,3 +4580,22 @@ with gnuplot.") functions which allows users to transpose windows arrangement in currently selected frame.") (license license:bsd-2))) + +(define-public emacs-key-chord + (package + (name "emacs-key-chord") + (version "0.6") + (source + (origin + (method url-fetch) + (uri "https://www.emacswiki.org/emacs/download/key-chord.el") + (sha256 + (base32 + "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/key-chord.el") + (synopsis "Map pairs of simultaneously pressed keys to Emacs commands") + (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a +mode for binding key chords to commands. A key chord is defined as two keys +pressed simultaneously or a single key quickly pressed twice.") + (license license:gpl2+))) From 5c4ea872247e38371ed9f9c3509ce566eee907b1 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Sat, 6 May 2017 10:59:25 +0000 Subject: [PATCH 136/386] gnu: erlang: Update to 19.3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/erlang.scm (erlang): Update to 19.3. Signed-off-by: Ludovic Courtès --- gnu/packages/erlang.scm | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 39da7e939b..07f117e283 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Steve Sprang ;;; Copyright © 2016 Leo Famulari -;;; Copyright © 2016 Pjotr Prins +;;; Copyright © 2016, 2017 Pjotr Prins ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,8 +34,7 @@ (define-public erlang (package (name "erlang") - ;; When updating, remember to update the hash of erlang-manpages! - (version "19.0") + (version "19.3") (source (origin (method url-fetch) ;; The tarball from http://erlang.org/download contains many @@ -46,7 +45,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1dxyz6x1yfv33fd0xfry2ihylkyfa2d655q1vxvbz8dflyd64yqh")))) + "1b47jh549yywyp8fbs8a8j4ydr3zn982navzyqvlms6rg8vwb0pw")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) @@ -61,7 +60,7 @@ version ".tar.gz")) (sha256 (base32 - "07j0l7ary936hil38xr3hvfw6j74pshkyyi98kc9cassbbcdd8y7")))))) + "0p6r3n3y7lbhv38sw8f2vi1xlmc137gyspk9ap086w1nszyjy6gq")))))) (inputs `(("ncurses" ,ncurses) ("openssl" ,openssl) @@ -162,9 +161,8 @@ (zero? (system* "tar" "xvf" manpages)) (rename-file "COPYRIGHT" (string-append share "/misc/erlang/COPYRIGHT")) - ;; Delete superfluous files. - (for-each delete-file '("PR.template" - "README")))))))))) + ;; Delete superfluous file. + (delete-file "PR.template"))))))))) (home-page "http://erlang.org/") (synopsis "The Erlang programming language") (description From 28a671ed23f82ce7966c04e988a276b38dd8c1e0 Mon Sep 17 00:00:00 2001 From: ng0 Date: Sat, 6 May 2017 00:12:58 +0000 Subject: [PATCH 137/386] gnu: fish: Reference 'groff' to fix output of 'fish --help'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/shells.scm (fish)[inputs-inputs]: Add 'groff'. [arguments]: Add 'nroff' substitution in 'embed-store-paths' phase. Signed-off-by: Ludovic Courtès --- gnu/packages/shells.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index d87d58e5c6..4e684e8c81 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -31,6 +31,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages documentation) + #:use-module (gnu packages groff) #:use-module (gnu packages libedit) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) @@ -116,6 +117,7 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") (inputs `(("bc" ,bc) ("ncurses" ,ncurses) + ("groff" ,groff) ;for 'fish --help' ("pcre2" ,pcre2) ;don't use the bundled PCRE2 ("python" ,python-wrapper))) ;for fish_config and manpage completions (arguments @@ -133,6 +135,8 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") "/bin/bc"))) (substitute* "share/functions/fish_update_completions.fish" (("python") (which "python"))) + (substitute* "share/functions/__fish_print_help.fish" + (("nroff") (which "nroff"))) #t))))) (synopsis "The friendly interactive shell") (description From b468f8e0c926aafa1fff0bc8dae08e8b7acec89c Mon Sep 17 00:00:00 2001 From: ng0 Date: Sat, 25 Feb 2017 12:24:56 +0000 Subject: [PATCH 138/386] gnu: limnoria: Update to 20170330. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/irc.scm (limnoria): Update to 20170330. Signed-off-by: Ludovic Courtès --- gnu/packages/irc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 4c8c7809be..b86a82e24a 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -300,14 +300,14 @@ using a mouse. It is customizable and extensible with plugins and scripts.") (define-public limnoria (package (name "limnoria") - (version "2017.01.10") + (version "2017.03.30") (source (origin (method url-fetch) (uri (pypi-uri "limnoria" version)) (sha256 (base32 - "0va7iiwkrd5miibpaphfm2jlfsmaazbqb8izkmlnlzkqnskhz1ff")))) + "1q0y6iglg1cbhimgjz3afws51as3shy6rd61dck7jfm25y8pi6g8")))) (build-system python-build-system) (inputs `(("python-pytz" ,python-pytz) From 7610c3ca5540a7d0946e15a765b35f8bf068316e Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 30 Apr 2017 14:27:12 -0400 Subject: [PATCH 139/386] gnu: Move qutebrowser to web-browsers.scm. * gnu/packages/web.scm: Move qutebrowser... * gnu/packages/web-browsers.scm: ...here. --- gnu/packages/web-browsers.scm | 68 ++++++++++++++++++++++++++++++++++- gnu/packages/web.scm | 62 -------------------------------- 2 files changed, 67 insertions(+), 63 deletions(-) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 3ff69611bf..07b61dd25e 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Kei Kebreau +;;; Copyright © 2017 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,15 +22,19 @@ #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu packages compression) + #:use-module (gnu packages documentation) #:use-module (gnu packages fltk) #:use-module (gnu packages fontutils) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages qt) #:use-module (gnu packages image) #:use-module (gnu packages tls) #:use-module (gnu packages xorg) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (guix build-system python)) (define-public dillo (package @@ -61,3 +66,64 @@ older or slower computers and embedded systems.") (home-page "http://www.dillo.org") (license license:gpl3+))) + +(define-public qutebrowser + (package + (name "qutebrowser") + (version "0.10.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/The-Compiler/" + "qutebrowser/releases/download/v" version "/" + "qutebrowser-" version ".tar.gz")) + (sha256 + (base32 + "05qryn56w2pbqhir4pl99idx7apx2xqw9f8wmbrhj59b1xgr3x2p")))) + (build-system python-build-system) + (native-inputs + `(("asciidoc" ,asciidoc))) + (inputs + `(("python-colorama" ,python-colorama) + ("python-cssutils" ,python-cssutils) + ("python-jinja2" ,python-jinja2) + ("python-markupsafe" ,python-markupsafe) + ("python-pygments" ,python-pygments) + ("python-pypeg2" ,python-pypeg2) + ("python-pyyaml" ,python-pyyaml) + ("python-pyqt" ,python-pyqt) + ("qtwebkit" ,qtwebkit))) + (arguments + `(#:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-more + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (app (string-append out "/share/applications")) + (hicolor (string-append out "/share/icons/hicolor"))) + (system* "a2x" "-f" "manpage" "doc/qutebrowser.1.asciidoc") + (install-file "doc/qutebrowser.1" + (string-append out "/share/man/man1")) + + (for-each + (lambda (i) + (let ((src (format #f "icons/qutebrowser-~dx~d.png" i i)) + (dest (format #f "~a/~dx~d/apps/qutebrowser.png" + hicolor i i))) + (mkdir-p (dirname dest)) + (copy-file src dest))) + '(16 24 32 48 64 128 256 512)) + (install-file "icons/qutebrowser.svg" + (string-append hicolor "/scalable/apps")) + + (substitute* "qutebrowser.desktop" + (("Exec=qutebrowser") + (string-append "Exec=" out "/bin/qutebrowser"))) + (install-file "qutebrowser.desktop" app) + #t)))))) + (home-page "https://qutebrowser.org/") + (synopsis "Minimal, keyboard-focused, vim-like web browser") + (description "qutebrowser is a keyboard-focused browser with a minimal +GUI. It is based on PyQt5 and QtWebKit.") + (license license:gpl3+))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 8abd4309dd..9c2074d86a 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -80,7 +80,6 @@ #:use-module (gnu packages python) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages qt) #:use-module (gnu packages valgrind) #:use-module (gnu packages xml) #:use-module (gnu packages curl) @@ -4492,64 +4491,3 @@ functions of Tidy.") Features include the ability to stop SQL injections, XSS and CSRF attacks and exploit attempts.") (license l:gpl2))) - -(define-public qutebrowser - (package - (name "qutebrowser") - (version "0.10.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/The-Compiler/" - "qutebrowser/releases/download/v" version "/" - "qutebrowser-" version ".tar.gz")) - (sha256 - (base32 - "05qryn56w2pbqhir4pl99idx7apx2xqw9f8wmbrhj59b1xgr3x2p")))) - (build-system python-build-system) - (native-inputs - `(("asciidoc" ,asciidoc))) - (inputs - `(("python-colorama" ,python-colorama) - ("python-cssutils" ,python-cssutils) - ("python-jinja2" ,python-jinja2) - ("python-markupsafe" ,python-markupsafe) - ("python-pygments" ,python-pygments) - ("python-pypeg2" ,python-pypeg2) - ("python-pyyaml" ,python-pyyaml) - ("python-pyqt" ,python-pyqt) - ("qtwebkit" ,qtwebkit))) - (arguments - `(#:tests? #f ;no tests - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-more - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (app (string-append out "/share/applications")) - (hicolor (string-append out "/share/icons/hicolor"))) - (system* "a2x" "-f" "manpage" "doc/qutebrowser.1.asciidoc") - (install-file "doc/qutebrowser.1" - (string-append out "/share/man/man1")) - - (for-each - (lambda (i) - (let ((src (format #f "icons/qutebrowser-~dx~d.png" i i)) - (dest (format #f "~a/~dx~d/apps/qutebrowser.png" - hicolor i i))) - (mkdir-p (dirname dest)) - (copy-file src dest))) - '(16 24 32 48 64 128 256 512)) - (install-file "icons/qutebrowser.svg" - (string-append hicolor "/scalable/apps")) - - (substitute* "qutebrowser.desktop" - (("Exec=qutebrowser") - (string-append "Exec=" out "/bin/qutebrowser"))) - (install-file "qutebrowser.desktop" app) - #t)))))) - (home-page "https://qutebrowser.org/") - (synopsis "Minimal, keyboard-focused, vim-like web browser") - (description "qutebrowser is a keyboard-focused browser with a minimal -GUI. It is based on PyQt5 and QtWebKit.") - (license l:gpl3+))) From a993add16092fbe041e4f5ca48c00cd55e43640c Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 6 May 2017 11:14:53 +0530 Subject: [PATCH 140/386] gnu: Add emacs-evil-surround. * gnu/packages/emacs.scm (emacs-evil-surround): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 7e39c2a234..47fe0cc845 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4599,3 +4599,26 @@ selected frame.") mode for binding key chords to commands. A key chord is defined as two keys pressed simultaneously or a single key quickly pressed twice.") (license license:gpl2+))) + +(define-public emacs-evil-surround + (package + (name "emacs-evil-surround") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/timcharper/evil-surround/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-evil" ,emacs-evil))) + (home-page "https://github.com/timcharper/evil-surround") + (synopsis "Easily modify surrounding parantheses and quotes") + (description "@code{emacs-evil-surround} allows easy deletion, change and +addition of surrounding pairs, such as parantheses and quotes, in evil mode.") + (license license:gpl3+))) From 17139eff16abb9f607bf8fdbf36b1410a314c41d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 5 May 2017 22:22:05 -0400 Subject: [PATCH 141/386] gnu: certbot, python-acme: Update to 0.14.0. * gnu/packages/tls.scm (certbot, python-acme, python2-acme): Update to 0.14.0. --- gnu/packages/tls.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index e9510e3ddb..1516fb8527 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -474,13 +474,13 @@ security, and applying best practice development processes.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.13.0") + (version "0.14.0") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "05cqadwzgfcianw3v0qxwja65dxnzw429f7dk8w0mnh21pib72bl")))) + "0hrmh28rrc0fsiw6nqfwbkwb1s4nkl54x50c0g0xlnp86752nzff")))) (build-system python-build-system) (arguments @@ -540,7 +540,7 @@ security, and applying best practice development processes.") (uri (pypi-uri name version)) (sha256 (base32 - "1wq0khcf4ixda71cgfd9rkqqzx6j8hp8ha0cssvjzjnsgrsdffpn")))) + "0hbp3njss01a0d3brvcfzja0w0j9plwrv6l70jsfvnhy3rrd7bcq")))) (build-system python-build-system) (arguments `(#:python ,python-2 From 2f0ad2a4232549a3bbb43565fa3b82a6c85e59a8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 6 May 2017 15:52:22 -0400 Subject: [PATCH 142/386] Revert "gnu: hexchat: Update to 2.12.4." This reverts commit 09270a97d9297e8acf6d9ff224dd1d58e2a4498e. The source derivation failed to build with: /gnu/store/19lkrck1844idbcfq6ajzr0akmr8rshj-hexchat-2.12.4.tar.xz-builder:1:2293: In procedure #: /gnu/store/19lkrck1844idbcfq6ajzr0akmr8rshj-hexchat-2.12.4.tar.xz-builder:1:2293: In procedure module-lookup: Unbound variable: inputs --- gnu/packages/messaging.scm | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 6bd626d78c..9e45b7ad0f 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 Mark H Weaver -;;; Copyright © 2014, 2017 Julien Lepiller +;;; Copyright © 2014 Julien Lepiller ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus @@ -166,35 +166,17 @@ identi.ca and status.net).") (define-public hexchat (package (name "hexchat") - (version "2.12.4") + (version "2.12.2") (source (origin (method url-fetch) (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-" version ".tar.xz")) (sha256 (base32 - "0ficrx56knz5y297qb0x5y02339yvyv734z7kpcx1ixvb0qr2dgs")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Delete dangling symlinks to a non-existent ‘/usr’. - (with-directory-excursion "m4" - (for-each (lambda (f) (delete-file f)) - '("intltool.m4" "libtool.m4" "lt~obsolete.m4" - "ltoptions.m4" "ltsugar.m4" "ltversion.m4"))) - (delete-file-recursively "build-aux") - (delete-file "po/Makefile.in.in") - ;; This file is still required for autoreconf. - (copy-file (string-append (assoc-ref inputs "intltool") - "/share/intltool/Makefile.in.in") - "po/Makefile.in.in"))))) + "1xnclfbrgbkqndxygi5f27q00jd7yy54jbd1061jmhxa6wzpibbd")))) (build-system gnu-build-system) - (native-inputs `(("autoconf" ,autoconf) - ("autoconf-archive" ,autoconf-archive) - ("automake" ,automake) - ("intltool" ,intltool) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) + (native-inputs `(("pkg-config" ,pkg-config) + ("intltool" ,intltool))) (inputs `(("dbus-glib" ,dbus-glib) ("dbus" ,dbus) ("enchant" ,enchant) @@ -208,13 +190,6 @@ identi.ca and status.net).") ("luajit" ,luajit) ("perl-xml-parser" ,perl-xml-parser) ("python-2" ,python-2))) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; Release 2.12.4 wasn't properly bootstrapped. Later ones might be! - (add-after 'unpack 'bootstrap - (lambda* (#:key inputs #:allow-other-keys) - (zero? (system* "autoreconf" "-fiv"))))))) (synopsis "Graphical IRC Client") (description "HexChat lets you connect to multiple IRC networks at once. The main From 5ed48cedc0c747dd49153aef223942d68b79deef Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 6 May 2017 22:02:18 +0200 Subject: [PATCH 143/386] gnu: cppcheck: Update to 1.78. * gnu/packages/check.scm (cppcheck): Update to 1.78. --- gnu/packages/check.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 372f1c4fea..ea91200a65 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 Lukas Gradl +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -180,13 +181,13 @@ format.") (define-public cppcheck (package (name "cppcheck") - (version "1.77") + (version "1.78") (source (origin (method url-fetch) (uri (string-append "https://github.com/danmar/cppcheck/archive/" version ".tar.gz")) (sha256 - (base32 "1fn26p0xvfrdbhxjhy6aqhkk63n3fvrdb2ygcn9wg4vaandhmbkn")) + (base32 "1dnizw0rfj6faqgnmg8qh6njr9q89j8brhba7qmx2i47vl0qj11i")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (home-page "http://cppcheck.sourceforge.net") From 74b86713788ab7cb8fcd9808dba22580c792ccee Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 30 Apr 2017 19:21:46 +0200 Subject: [PATCH 144/386] gnu: hexchat: Update to 2.12.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (hexchat): Update to 2.12.4. [source]: Remove incorrectly bootstrapped files. [native-inputs]: Add autoconf, autoconf-archive, automake, libtool, pkg-config. [arguments]: Add ‘bootstrap’ phase. Co-authored-by: Tobias Geerinckx-Rice --- gnu/packages/messaging.scm | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 9e45b7ad0f..89df0970d6 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 Mark H Weaver -;;; Copyright © 2014 Julien Lepiller +;;; Copyright © 2014, 2017 Julien Lepiller ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus @@ -166,17 +166,31 @@ identi.ca and status.net).") (define-public hexchat (package (name "hexchat") - (version "2.12.2") + (version "2.12.4") (source (origin (method url-fetch) (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-" version ".tar.xz")) (sha256 (base32 - "1xnclfbrgbkqndxygi5f27q00jd7yy54jbd1061jmhxa6wzpibbd")))) + "0ficrx56knz5y297qb0x5y02339yvyv734z7kpcx1ixvb0qr2dgs")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete dangling symlinks to a non-existent ‘/usr’. + (with-directory-excursion "m4" + (for-each (lambda (f) (delete-file f)) + '("intltool.m4" "libtool.m4" "lt~obsolete.m4" + "ltoptions.m4" "ltsugar.m4" "ltversion.m4"))) + (delete-file-recursively "build-aux") + (delete-file "po/Makefile.in.in"))))) (build-system gnu-build-system) - (native-inputs `(("pkg-config" ,pkg-config) - ("intltool" ,intltool))) + (native-inputs `(("autoconf" ,autoconf) + ("autoconf-archive" ,autoconf-archive) + ("automake" ,automake) + ("intltool" ,intltool) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) (inputs `(("dbus-glib" ,dbus-glib) ("dbus" ,dbus) ("enchant" ,enchant) @@ -190,6 +204,17 @@ identi.ca and status.net).") ("luajit" ,luajit) ("perl-xml-parser" ,perl-xml-parser) ("python-2" ,python-2))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Release 2.12.4 wasn't properly bootstrapped. Later ones might be! + (add-after 'unpack 'bootstrap + (lambda* (#:key inputs #:allow-other-keys) + ;; This file is still required for autoreconf. + (copy-file (string-append (assoc-ref inputs "intltool") + "/share/intltool/Makefile.in.in") + "po/Makefile.in.in") + (zero? (system* "autoreconf" "-fiv"))))))) (synopsis "Graphical IRC Client") (description "HexChat lets you connect to multiple IRC networks at once. The main From 950d51c9d9a5107c5dac279da7d2e431134b5f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 5 May 2017 15:32:16 +0200 Subject: [PATCH 145/386] store: Use 'TCP_NODELAY' when connecting to a daemon over PF_INET. * guix/store.scm (open-inet-socket): Add 'cond-expand' form to define 'TCP_NODELAY' when needed. Add call to 'setsockopt' after 'connect'. --- guix/store.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/guix/store.scm b/guix/store.scm index b71c47b9bb..c94dfea959 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -382,6 +382,11 @@ (define (open-inet-socket host port) "Connect to the Unix-domain socket at HOST:PORT and return it. Raise a '&nix-connection-error' upon error." + ;; Define 'TCP_NODELAY' on Guile 2.0. The value is the same on all GNU + ;; systems. + (cond-expand (guile-2.2 #t) + (else (define TCP_NODELAY 1))) + (let ((sock (with-fluids ((%default-port-encoding #f)) ;; This trick allows use of the `scm_c_read' optimization. (socket PF_UNIX SOCK_STREAM 0)))) @@ -402,6 +407,10 @@ (catch 'system-error (lambda () (connect s (addrinfo:addr ai)) + + ;; Setting this option makes a dramatic difference because it + ;; avoids the "ACK delay" on our RPC messages. + (setsockopt s IPPROTO_TCP TCP_NODELAY 1) s) (lambda args ;; Connection failed, so try one of the other addresses. From 994a14947988e7f833d2c2625ac3069c92359567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 6 May 2017 00:25:00 +0200 Subject: [PATCH 146/386] gnu: guix: Remove the stable-release 'guix' package. * gnu/packages/package-management.scm (guix-release): Remove. (guix-devel): Rename to... (guix): ... this. Incorporate fields from former 'guix-release'. (guix-devel): New variable. --- gnu/packages/package-management.scm | 368 ++++++++++++++-------------- 1 file changed, 179 insertions(+), 189 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index d5248a3047..0c69cda0b5 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -68,207 +68,197 @@ arch "-linux" "/20131110/guile-2.0.9.tar.xz")))) -(define-public guix-release - (package - (name "guix") - (version "0.12.0") - (source (origin - (method url-fetch) - (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-" - version ".tar.gz")) - (sha256 - (base32 - "1jgy5mlygmhxdqhrp6vr8w83ndcm5mk64xfravr8l2d7hq8y40b2")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags (list - "--localstatedir=/var" - "--sysconfdir=/etc" - (string-append "--with-bash-completion-dir=" - (assoc-ref %outputs "out") - "/etc/bash_completion.d") - (string-append "--with-libgcrypt-prefix=" - (assoc-ref %build-inputs - "libgcrypt"))) - #:parallel-tests? #f ;work around +(define-public guix + ;; Latest version of Guix, which may or may not correspond to a release. + (let ((version "0.12.0") + (commit "25a49294caf2386e65fc1b12a2508324be0b1cc2") + (revision 9)) + (package + (name "guix") - #:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 popen) - (ice-9 rdelim)) - - #:phases (modify-phases %standard-phases - (add-before - 'configure 'copy-bootstrap-guile - (lambda* (#:key system inputs #:allow-other-keys) - (define (boot-guile-version arch) - (cond ((string=? "armhf" arch) "2.0.11") - ((string=? "aarch64" arch) "2.0.14") - (else "2.0.9"))) - - (define (copy arch) - (let ((guile (assoc-ref inputs - (string-append "boot-guile/" - arch))) - (target (string-append "gnu/packages/bootstrap/" - arch "-linux/" - "/guile-" - (boot-guile-version arch) - ".tar.xz"))) - (mkdir-p (dirname target)) ;XXX: eventually unneeded - (copy-file guile target))) - - (copy "i686") - (copy "x86_64") - (copy "mips64el") - (copy "armhf") - (copy "aarch64") - #t)) - (add-after - 'unpack 'disable-container-tests - ;; XXX FIXME: These tests fail within the build container. - (lambda _ - (substitute* "tests/syscalls.scm" - (("^\\(test-(assert|equal) \"(clone|setns|pivot-root)\"" all) - (string-append "(test-skip 1)\n" all))) - (substitute* "tests/containers.scm" - (("^\\(test-(assert|equal)" all) - (string-append "(test-skip 1)\n" all))) - (when (file-exists? "tests/guix-environment-container.sh") - (substitute* "tests/guix-environment-container.sh" - (("guix environment --version") - "exit 77\n"))) - #t)) - (add-before 'check 'set-SHELL - (lambda _ - ;; 'guix environment' tests rely on 'SHELL' having a - ;; correct value, so set it. - (setenv "SHELL" (which "sh")) - #t)) - (add-after 'install 'wrap-program - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Make sure the 'guix' command finds GnuTLS and - ;; Guile-JSON automatically. - (let* ((out (assoc-ref outputs "out")) - (guile (assoc-ref inputs "guile")) - (json (assoc-ref inputs "guile-json")) - (ssh (assoc-ref inputs "guile-ssh")) - (gnutls (assoc-ref inputs "gnutls")) - (effective - (read-line - (open-pipe* OPEN_READ - (string-append guile "/bin/guile") - "-c" "(display (effective-version))"))) - (path (string-append - json "/share/guile/site/" effective ":" - ssh "/share/guile/site/" effective ":" - gnutls "/share/guile/site/" effective))) - - (wrap-program (string-append out "/bin/guix") - `("GUILE_LOAD_PATH" ":" prefix (,path)) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,path))) - - #t)))))) - (native-inputs `(("pkg-config" ,pkg-config) - - ;; XXX: Keep the development inputs here even though - ;; they're unnecessary, just so that 'guix environment - ;; guix' always contains them. - ("autoconf" ,(autoconf-wrapper)) - ("automake" ,automake) - ("gettext" ,gettext-minimal) - ("texinfo" ,texinfo) - ("graphviz" ,graphviz) - ("help2man" ,help2man))) - (inputs - (let ((boot-guile (lambda (arch hash) - (origin - (method url-fetch) - (uri (boot-guile-uri arch)) - (sha256 hash))))) - `(("bzip2" ,bzip2) - ("gzip" ,gzip) - ("zlib" ,zlib) ;for 'guix publish' - - ("sqlite" ,sqlite) - ("libgcrypt" ,libgcrypt) - ("guile" ,guile-2.0) - - ("boot-guile/i686" - ,(boot-guile "i686" - (base32 - "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp"))) - ("boot-guile/x86_64" - ,(boot-guile "x86_64" - (base32 - "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3"))) - ("boot-guile/mips64el" - ,(boot-guile "mips64el" - (base32 - "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr"))) - ("boot-guile/armhf" - ,(boot-guile "armhf" - (base32 - "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))) - ("boot-guile/aarch64" - ,(boot-guile "aarch64" - (base32 - "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r")))))) - (propagated-inputs - `(("gnutls" ,gnutls) ;for 'guix download' & co. - ("guile-json" ,guile-json) - ("guile-ssh" ,guile-ssh))) - - (home-page "https://www.gnu.org/software/guix/") - (synopsis "Functional package manager for installed software packages and versions") - (description - "GNU Guix is a functional package manager for the GNU system, and is -also a distribution thereof. It includes a virtual machine image. Besides -the usual package management features, it also supports transactional -upgrades and roll-backs, per-user profiles, and much more. It is based on -the Nix package manager.") - (license gpl3+) - (properties '((ftp-server . "alpha.gnu.org"))))) - -(define guix-devel - ;; Development version of Guix. - ;; - ;; Note: use a very short commit id; with a longer one, the limit on - ;; hash-bang lines would be exceeded while running the tests. - (let ((commit "25a49294caf2386e65fc1b12a2508324be0b1cc2")) - (package (inherit guix-release) - (version (string-append "0.12.0-9." (string-take commit 4))) + ;; Note: use a very short commit id; with a longer one, the limit on + ;; hash-bang lines would be exceeded while running the tests. + (version (if (zero? revision) + version + (string-append version "-" + (number->string revision) + "." (string-take commit 4)))) (source (origin (method git-fetch) (uri (git-reference - ;; "git://git.sv.gnu.org/guix.git" temporarily - ;; unavailable (XXX). - (url "http://git.savannah.gnu.org/r/guix.git") + (url "https://git.savannah.gnu.org/r/guix.git") (commit commit))) (sha256 (base32 "0p4rh0629j89v4ka5dsp70a1xrfhg7sxjjq54p68vw7x5dkann4a")) (file-name (string-append "guix-" version "-checkout")))) + (build-system gnu-build-system) (arguments - (substitute-keyword-arguments (package-arguments guix-release) - ((#:configure-flags flags) - ;; Set 'DOT_USER_PROGRAM' to the empty string so we don't keep a - ;; reference to Graphviz, whose closure is pretty big (too big for - ;; the GuixSD installation image.) - `(cons "ac_cv_path_DOT_USER_PROGRAM=dot" ,flags)) - ((#:phases phases) - `(modify-phases ,phases - (add-after - 'unpack 'bootstrap - (lambda _ - ;; Make sure 'msgmerge' can modify the PO files. - (for-each (lambda (po) - (chmod po #o666)) - (find-files "." "\\.po$")) + `(#:configure-flags (list + "--localstatedir=/var" + "--sysconfdir=/etc" + (string-append "--with-bash-completion-dir=" + (assoc-ref %outputs "out") + "/etc/bash_completion.d") + (string-append "--with-libgcrypt-prefix=" + (assoc-ref %build-inputs + "libgcrypt")) - (zero? (system* "sh" "bootstrap"))))))))))) + ;; Set 'DOT_USER_PROGRAM' to the empty string so + ;; we don't keep a reference to Graphviz, whose + ;; closure is pretty big (too big for the GuixSD + ;; installation image.) + "ac_cv_path_DOT_USER_PROGRAM=dot") + #:parallel-tests? #f ;work around -(define-public guix guix-devel) + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 popen) + (ice-9 rdelim)) + + #:phases (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + ;; Make sure 'msgmerge' can modify the PO files. + (for-each (lambda (po) + (chmod po #o666)) + (find-files "." "\\.po$")) + + (zero? (system* "sh" "bootstrap")))) + (add-before + 'configure 'copy-bootstrap-guile + (lambda* (#:key system inputs #:allow-other-keys) + (define (boot-guile-version arch) + (cond ((string=? "armhf" arch) "2.0.11") + ((string=? "aarch64" arch) "2.0.14") + (else "2.0.9"))) + + (define (copy arch) + (let ((guile (assoc-ref inputs + (string-append "boot-guile/" + arch))) + (target (string-append "gnu/packages/bootstrap/" + arch "-linux/" + "/guile-" + (boot-guile-version arch) + ".tar.xz"))) + (mkdir-p (dirname target)) ;XXX: eventually unneeded + (copy-file guile target))) + + (copy "i686") + (copy "x86_64") + (copy "mips64el") + (copy "armhf") + (copy "aarch64") + #t)) + (add-after + 'unpack 'disable-container-tests + ;; XXX FIXME: These tests fail within the build container. + (lambda _ + (substitute* "tests/syscalls.scm" + (("^\\(test-(assert|equal) \"(clone|setns|pivot-root)\"" all) + (string-append "(test-skip 1)\n" all))) + (substitute* "tests/containers.scm" + (("^\\(test-(assert|equal)" all) + (string-append "(test-skip 1)\n" all))) + (when (file-exists? "tests/guix-environment-container.sh") + (substitute* "tests/guix-environment-container.sh" + (("guix environment --version") + "exit 77\n"))) + #t)) + (add-before 'check 'set-SHELL + (lambda _ + ;; 'guix environment' tests rely on 'SHELL' having a + ;; correct value, so set it. + (setenv "SHELL" (which "sh")) + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make sure the 'guix' command finds GnuTLS and + ;; Guile-JSON automatically. + (let* ((out (assoc-ref outputs "out")) + (guile (assoc-ref inputs "guile")) + (json (assoc-ref inputs "guile-json")) + (ssh (assoc-ref inputs "guile-ssh")) + (gnutls (assoc-ref inputs "gnutls")) + (effective + (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (path (string-append + json "/share/guile/site/" effective ":" + ssh "/share/guile/site/" effective ":" + gnutls "/share/guile/site/" effective))) + + (wrap-program (string-append out "/bin/guix") + `("GUILE_LOAD_PATH" ":" prefix (,path)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,path))) + + #t)))))) + (native-inputs `(("pkg-config" ,pkg-config) + + ;; XXX: Keep the development inputs here even though + ;; they're unnecessary, just so that 'guix environment + ;; guix' always contains them. + ("autoconf" ,(autoconf-wrapper)) + ("automake" ,automake) + ("gettext" ,gettext-minimal) + ("texinfo" ,texinfo) + ("graphviz" ,graphviz) + ("help2man" ,help2man))) + (inputs + (let ((boot-guile (lambda (arch hash) + (origin + (method url-fetch) + (uri (boot-guile-uri arch)) + (sha256 hash))))) + `(("bzip2" ,bzip2) + ("gzip" ,gzip) + ("zlib" ,zlib) ;for 'guix publish' + + ("sqlite" ,sqlite) + ("libgcrypt" ,libgcrypt) + ("guile" ,guile-2.0) + + ("boot-guile/i686" + ,(boot-guile "i686" + (base32 + "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp"))) + ("boot-guile/x86_64" + ,(boot-guile "x86_64" + (base32 + "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3"))) + ("boot-guile/mips64el" + ,(boot-guile "mips64el" + (base32 + "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr"))) + ("boot-guile/armhf" + ,(boot-guile "armhf" + (base32 + "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))) + ("boot-guile/aarch64" + ,(boot-guile "aarch64" + (base32 + "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r")))))) + (propagated-inputs + `(("gnutls" ,gnutls) ;for 'guix download' & co. + ("guile-json" ,guile-json) + ("guile-ssh" ,guile-ssh))) + + (home-page "https://www.gnu.org/software/guix/") + (synopsis "Functional package manager for installed software packages and versions") + (description + "GNU Guix is a functional package manager for the GNU system, and is +also a distribution thereof. It includes a virtual machine image. Besides +the usual package management features, it also supports transactional +upgrades and roll-backs, per-user profiles, and much more. It is based on +the Nix package manager.") + (license gpl3+) + (properties '((ftp-server . "alpha.gnu.org")))))) + +;; Alias for backward compatibility. +(define-public guix-devel guix) (define (source-file? file stat) "Return true if FILE is likely a source file, false if it is a typical From 94fa8d76163bd08e6f680dc300b551f36415687e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 6 May 2017 22:59:05 +0200 Subject: [PATCH 147/386] maint: Add 'update-guix-package' target. * build-aux/update-guix-package.scm: New file. * Makefile.am (EXTRA_DIST): Add it. (update-guix-package): New target. (.PHONY): Add it. * gnu/packages/package-management.scm (guix): Mention it. --- Makefile.am | 8 ++ build-aux/update-guix-package.scm | 135 ++++++++++++++++++++++++++++ gnu/packages/package-management.scm | 2 + 3 files changed, 145 insertions(+) create mode 100644 build-aux/update-guix-package.scm diff --git a/Makefile.am b/Makefile.am index 8fe9e350cc..ee8fa1f14f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -416,6 +416,7 @@ EXTRA_DIST = \ build-aux/download.scm \ build-aux/generate-authors.scm \ build-aux/test-driver.scm \ + build-aux/update-guix-package.scm \ build-aux/run-system-tests.scm \ d3.v3.js \ graph.js \ @@ -539,6 +540,12 @@ gen-AUTHORS: "$(top_srcdir)" "$(distdir)/AUTHORS"; \ fi +update-guix-package: + git rev-parse HEAD + $(top_builddir)/pre-inst-env "$(GUILE)" \ + $(top_srcdir)/build-aux/update-guix-package.scm \ + "`git rev-parse HEAD`" + # Make sure we're not shipping a file that embeds a local /gnu/store file name. assert-no-store-file-names: $(AM_V_at)if grep -r --exclude=*.texi --exclude=*.info \ @@ -574,6 +581,7 @@ hydra-jobs.scm: $(GOBJECTS) .PHONY: assert-no-store-file-names assert-binaries-available .PHONY: assert-final-inputs-self-contained .PHONY: clean-go make-go +.PHONY: update-guix-package ## -------------- ## ## Silent rules. ## diff --git a/build-aux/update-guix-package.scm b/build-aux/update-guix-package.scm new file mode 100644 index 0000000000..d45c183914 --- /dev/null +++ b/build-aux/update-guix-package.scm @@ -0,0 +1,135 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès +;;; +;;; 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 . + +;;; Commentary: +;;; +;;; This scripts updates the definition of the 'guix' package in Guix for the +;;; current commit. It requires Git to be installed. +;;; +;;; Code: + +(use-modules (guix) + (guix git-download) + (guix upstream) + (guix utils) + (guix base32) + (guix build utils) + (gnu packages package-management) + (ice-9 match)) + +(define %top-srcdir + (string-append (current-source-directory) "/..")) + +(define version-controlled? + (git-predicate %top-srcdir)) + +(define (package-definition-location) + "Return the source properties of the definition of the 'guix' package." + (call-with-input-file (location-file (package-location guix)) + (lambda (port) + (let loop () + (match (read port) + ((? eof-object?) + (error "definition of 'guix' package could not be found" + (port-filename port))) + (('define-public 'guix value) + (source-properties value)) + (_ + (loop))))))) + +(define* (update-definition commit hash + #:key version old-hash) + "Return a one-argument procedure that takes a string, the definition of the +'guix' package, and returns a string, the update definition for VERSION, +COMMIT." + (define (linear-offset str line column) + ;; Return the offset in characters to reach LINE and COLUMN (both + ;; zero-indexed) in STR. + (call-with-input-string str + (lambda (port) + (let loop ((offset 0)) + (cond ((and (= (port-column port) column) + (= (port-line port) line)) + offset) + ((eof-object? (read-char port)) + (error "line and column not reached!" + str)) + (else + (loop (+ 1 offset)))))))) + + (define (update-hash str) + ;; Replace OLD-HASH with HASH in STR. + (string-replace-substring str + (bytevector->nix-base32-string old-hash) + (bytevector->nix-base32-string hash))) + + (lambda (str) + (match (call-with-input-string str read) + (('let (('version old-version) + ('commit old-commit) + ('revision old-revision)) + defn) + (let* ((location (source-properties defn)) + (line (assq-ref location 'line)) + (column 0) + (offset (linear-offset str line column))) + (string-append (format #f "(let ((version \"~a\") + (commit \"~a\") + (revision ~a))\n" + (or version old-version) + commit + (if (and version + (not (string=? version old-version))) + 0 + (+ 1 old-revision))) + (string-drop (update-hash str) offset)))) + (exp + (error "'guix' package definition is not as expected" exp))))) + + +(define (main . args) + (match args + ((commit version) + (with-store store + (let* ((source (add-to-store store + "guix-checkout" ;dummy name + #t "sha256" %top-srcdir + #:select? version-controlled?)) + (hash (query-path-hash store source)) + (location (package-definition-location)) + (old-hash (origin-sha256 (package-source guix)))) + (edit-expression location + (update-definition commit hash + #:old-hash old-hash + #:version version)) + + ;; Re-add SOURCE to the store, but this time under the real name used + ;; in the 'origin'. This allows us to build the package without + ;; having to make a real checkout; thus, it also works when working + ;; on a private branch. + (reload-module + (resolve-module '(gnu packages package-management))) + (pk source + (add-to-store store + (origin-file-name (package-source guix)) + #t "sha256" source))))) + ((commit) + ;; Automatically deduce the version and revision numbers. + (main commit #f)))) + +(apply main (cdr (command-line))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 0c69cda0b5..467613ef94 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -70,6 +70,8 @@ (define-public guix ;; Latest version of Guix, which may or may not correspond to a release. + ;; Note: the 'update-guix-package.scm' script expects this definition to + ;; start precisely like this. (let ((version "0.12.0") (commit "25a49294caf2386e65fc1b12a2508324be0b1cc2") (revision 9)) From 7f4da8ff6b382dce49954f272afc219b1ad4db20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 6 May 2017 23:27:33 +0200 Subject: [PATCH 148/386] maint: Add 'time-monotonic' bug workaround in build-aux/hydra/evaluate.scm. * build-aux/hydra/evaluate.scm: Add 'time-monotonic' workaround for Guile 2.2. --- build-aux/hydra/evaluate.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/build-aux/hydra/evaluate.scm b/build-aux/hydra/evaluate.scm index ab10253f31..cc6a4b9492 100644 --- a/build-aux/hydra/evaluate.scm +++ b/build-aux/hydra/evaluate.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +32,13 @@ (beautify-user-module! m) m)) +(cond-expand + (guile-2.2 + ;; Guile 2.2.2 has a bug whereby 'time-monotonic' objects have seconds and + ;; nanoseconds swapped (fixed in Guile commit 886ac3e). Work around it. + (define time-monotonic time-tai)) + (else #t)) + (define (call-with-time thunk kont) "Call THUNK and pass KONT the elapsed time followed by THUNK's return values." From 33349e91f967883513a68ec824ab68e78aee528d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 6 May 2017 23:42:47 +0200 Subject: [PATCH 149/386] build: Use 'guix pack -K' for the 'guix-binary*.tar.xz' targets. * Makefile.am (guix-binary.%.tar.xz): Add -K flag for 'guix pack'. --- Makefile.am | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index ee8fa1f14f..e035045468 100644 --- a/Makefile.am +++ b/Makefile.am @@ -504,10 +504,10 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \ # The self-contained tarball. Add 'glibc-utf8-locales' along with glibc just # so 'etc/profile' defines 'GUIX_LOCPATH' pointing to a valid set of locales. guix-binary.%.tar.xz: - $(AM_V_GEN)GUIX_PACKAGE_PATH= \ - tarball=`$(top_builddir)/pre-inst-env guix pack -C xz \ - -s "$*" --localstatedir guix glibc-utf8-locales \ - -e '(@@ (gnu packages commencement) glibc-final)'` ; \ + $(AM_V_GEN)GUIX_PACKAGE_PATH= \ + tarball=`$(top_builddir)/pre-inst-env guix pack -K -C xz \ + -s "$*" --localstatedir guix glibc-utf8-locales \ + -e '(@@ (gnu packages commencement) glibc-final)'` ; \ cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@" From 1a0adad83f804d1d7190af7accb58284e4c69e3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 7 May 2017 00:16:01 +0200 Subject: [PATCH 150/386] tests: Corrupt archive import test is robust against different store prefixes. * tests/store.scm ("import corrupt path"): Set 'index' to #x70. --- tests/store.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/store.scm b/tests/store.scm index 3eb8b7be5a..45aeb329b0 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -758,8 +758,9 @@ (cut export-paths %store (list file) <>)))) (delete-paths %store (list file)) - ;; Flip a bit in the stream's payload. - (let* ((index (quotient (bytevector-length dump) 4)) + ;; Flip a bit in the stream's payload. INDEX here falls in the middle of + ;; the file contents in DUMP, regardless of the store prefix. + (let* ((index #x70) (byte (bytevector-u8-ref dump index))) (bytevector-u8-set! dump index (logxor #xff byte))) From 0d74a8fde6d24ffb7391e525e13a3608410c3fcd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 May 2017 00:50:06 +0200 Subject: [PATCH 151/386] gnu: youtube-dl: Update to 2017.05.07. * gnu/packages/video.scm (youtube-dl): Update to 2017.05.07. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8609a04862..e7af81e728 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -989,7 +989,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.05.01") + (version "2017.05.07") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -997,7 +997,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "0lrflg4h1jiw77jcg2h83kn90ngi5fkqz5wq9amsjvx66hb1bqjq")))) + "1q3b9xkbk1lmy1wxm1jcnmaj70sdksqbc8zsqxz6b6z4nmv8qc25")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion From 2d51ed9e04e79c32bb7a50013bc7ab0e55e5a55f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 May 2017 02:27:07 +0200 Subject: [PATCH 152/386] gnu: meson: Update to 0.40.1. * gnu/packages/build-tools.scm (meson): Update to 0.40.1. --- gnu/packages/build-tools.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 0f6a10bbc7..66f46433f9 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -69,7 +69,7 @@ makes a few sacrifices to acquire fast full and incremental build times.") (define-public meson (package (name "meson") - (version "0.39.1") + (version "0.40.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -77,7 +77,7 @@ makes a few sacrifices to acquire fast full and incremental build times.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1jwgd6sl7zl7h16id3405gwk6vlkk86ggwrp0k47njwkxmryq8d4")))) + "0yl6iryh89nn6hzhwv7kg16ki1chh9h0x1yk1y130h87iq42a35r")))) (build-system python-build-system) (inputs `(("ninja", ninja))) (home-page "https://mesonbuild.com/") From f930ef5c019832d3f8e0f824035bb631cebc80fa Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 May 2017 02:24:37 +0200 Subject: [PATCH 153/386] gnu: speedtest-cli: Update to 1.0.6. * gnu/packages/networking.scm (speedtest-cli): Update to 1.0.6. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index ea01bb7cec..f0d5bb75bf 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1143,7 +1143,7 @@ networks.") (define-public speedtest-cli (package (name "speedtest-cli") - (version "1.0.5") + (version "1.0.6") (source (origin (method url-fetch) @@ -1152,7 +1152,7 @@ networks.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0y1888492kl21dz69vd526189c5aal3q790jawdb2wph42cz0cq8")))) + "1alambi1ljng6j04k7pq58jqwd0wh1q9630f17nl34ljabji5lwy")))) (build-system python-build-system) (home-page "https://github.com/sivel/speedtest-cli") (synopsis "Internet bandwidth tester") From 0fd8e6d39f3d1ac818795e1cddf65da27a505be4 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 6 May 2017 21:09:48 -0400 Subject: [PATCH 154/386] gnu: icecat: Update to 52.1.0-gnu1. Add fixes from upstream ESR 52.1.1. * gnu/packages/gnuzilla.scm (icecat): Update to 52.1.0-gnu1. Remove patches that are included in the new release. In the snippet, don't try to remove dom/devicestorage, which has since been removed upstream. Add selected fixes from upstream mozilla-esr52, up to the ESR 52.1.1 release. * gnu/packages/patches/icecat-bug-1299500-pt10.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/gnuzilla.scm | 197 +- .../patches/icecat-bug-1299500-pt10.patch | 1639 ----------------- 3 files changed, 29 insertions(+), 1808 deletions(-) delete mode 100644 gnu/packages/patches/icecat-bug-1299500-pt10.patch diff --git a/gnu/local.mk b/gnu/local.mk index c93dca64c5..c17fc18a13 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -671,7 +671,6 @@ dist_patch_DATA = \ %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ - %D%/packages/patches/icecat-bug-1299500-pt10.patch \ %D%/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch \ %D%/packages/patches/icu4c-reset-keyword-list-iterator.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 3865cf83b0..9309237bd7 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -323,7 +323,7 @@ standards.") (define-public icecat (package (name "icecat") - (version "52.0.2-gnu1") + (version "52.1.0-gnu1") (source (origin (method url-fetch) @@ -332,176 +332,38 @@ standards.") "/" name "-" version ".tar.bz2")) (sha256 (base32 - "0asaba04y6rwc7nx898p89jdxkbnsb3dxjvpdi8xb1rbgyms80c9")) + "1wr4bc5806xzyqpi6m4rjaf61za6ylpx4g0kfk95c6yw9yhg5vqb")) (patches (list (search-patch "icecat-avoid-bundled-libraries.patch") - (mozilla-patch "icecat-CVE-2017-5443.patch" "6daaaff9f1f6" "0jvb6y5fiwr13fyx58k49n81kv6h03vcch502g57y6nsx2wsqng6") - (mozilla-patch "icecat-bug-1319087.patch" "82297fcc6f19" "02qcbg2r2smswgnwj7fs5bcrr3rlqbpsh2nmcbsjyblp5fk1ag36") - (mozilla-patch "icecat-CVE-2017-5429-pt01.patch" "dd526ebe7e58" "1rj0pz6iql59zrynz48njcfg8i0v55bjdndplss9wl37lfydl7ca") - (mozilla-patch "icecat-CVE-2017-5447-pt1.patch" "3bc981f85a17" "0am9k3mii2r05lp6xpizxp356mb8xrbqs9kmx0wx5wyy08wjzmks") - (mozilla-patch "icecat-CVE-2017-5447-pt2.patch" "4f752b0e5920" "183s5dwzd57b299grvyvn139fsp9am0smd3yb4shw8g0iwzz61nf") - (mozilla-patch "icecat-CVE-2017-5449.patch" "1714eda3de9b" "0ncngdpzvffvpw4c1mi0dda5l02lwyil4rnq3i6salnwlrq9x32z") - (mozilla-patch "icecat-CVE-2017-5455.patch" "b10922304d81" "0rglbavb8rx7hl53ksgypazz27263b1yn97gznpdsq89zhirfw3m") - (mozilla-patch "icecat-CVE-2017-5446.patch" "d98de46f8f27" "040agykr4w4wsbi0xm3rrrjxk48iwz8l1hn11vfv45nzsx2f1hzq") - ;; The next patch is for CVE-2017-5436 in the bundled graphite2. - ;; TODO: apply additional fixes from our system graphite2 to the - ;; bundled copy, or upgrade it in place. - (mozilla-patch "icecat-CVE-2017-5436.patch" "e6132f638311" "07w9pijx42psgmkj2i6i87lf30gl0yyb5caz6wz7fm8phi8wwy9p") - (mozilla-patch "icecat-bug-1342395.patch" "0e0e8abe2153" "1xlnq2fd50kf0rz9dibz5vlaa9zj2pifjvky2fdykcan62xz75hy") - (mozilla-patch "icecat-bug-1342841.patch" "623afac083f8" "1pv86j0dxdmi7g3rx4zqplz4gxq5lfyzpdssq83naypcxic6zafb") - (mozilla-patch "icecat-bug-1344644.patch" "cac0735c228f" "0695f0hvxnzgcirgxx3axn5nhkywqxjcvnrlhg7jwfann4mnbsfn") - (mozilla-patch "icecat-bug-1322660.patch" "9d6d60e64255" "0ds74ilhyc9qkkjgkm0xk7ay3926971rzwfh2avhhkfargn7idib") - (mozilla-patch "icecat-bug-1343330.patch" "6f23bd449bc7" "1igz6yhx803hygf7cii8bchx7bfw1niq8s0nc5l9i5rb8ml2b7f0") - (mozilla-patch "icecat-bug-1346961.patch" "3a2dc54cf986" "0dfp3s7d43zx3svajbkhvi73b71hhr7vrc9yz0iz37pykg40c4hn") - (mozilla-patch "icecat-bug-1318070.patch" "a68d6d9b87d0" "1yqgkgv7i0xy5dm0pgg1cbav4qglsdk8brzcjcpfz65bmn1pqrhh") - (mozilla-patch "icecat-CVE-2017-5448.patch" "6684a3c7f834" "0agyynvcjk28d7l2l4cqz67ddg9xw7ymiirb0npabd1si9zj27xb") - (mozilla-patch "icecat-bug-1336345.patch" "590416f46ec8" "1q2svqjd735rickr9i3kdkd0la6ikdphhmzr19h1r84nrl6a87ia") - (mozilla-patch "icecat-bug-1336356.patch" "00ba83ac39be" "1h6qsfv4r9mlc2ihjm9kmzi76aijdnnyx1g2r30ia87xha106pnk") - (mozilla-patch "icecat-bug-1342363.patch" "10285b4a6b71" "0l2ww19y6qbarcp9brjgbpf4vi3k38r6ak8is5736vqz0c17dim0") - (mozilla-patch "icecat-bug-1343787.patch" "28287b7f0938" "1w85s9rqh0dyfx6qn5plypbypz9casig03b6yiy9bpiq7ckrxz56") - (mozilla-patch "icecat-bug-1292803.patch" "adbf7b59a405" "1l1p0b5rc05czk6kr3k3k99m1fkwphj2jrd092gdbib8q4m4cvzv") - (mozilla-patch "icecat-bug-1313869.patch" "eba25396310b" "1ws0dr0kwclzbc2m0sihd3aqvbbg57ycia0fg6y294k6qipcxv38") - (mozilla-patch "icecat-bug-1141756-pt1.patch" "f7c262517722" "0r1zzbxf47q5w8vcy402yin105ngam3csb2q7h7n8axm97307ykp") - (mozilla-patch "icecat-bug-1141756-pt2.patch" "420396d5e26d" "0yv1pmpydzkirfwrxrgbw98dm4a9a4s0izha0wabrp4lb3655jv5") - (mozilla-patch "icecat-bug-1343210.patch" "ed9521749d6f" "1j2zzi00qyqjgh15ingvl6f88zlk4imp31m5jmf7w5f9jqi5ly3k") - (mozilla-patch "icecat-bug-1342442.patch" "775b6f85ef81" "00h9dgds7jv9n4cznj5qhh8liaf1b3wvnlqc2z7a3kj07ijllwzb") - (mozilla-patch "icecat-bug-1344527.patch" "d4612b14c907" "1n3a0mp351a7xgvshm6688gh89hg0xci3y621zs2pyqsfm114366") - (mozilla-patch "icecat-CVE-2017-5442.patch" "5f1aa2336998" "1y2marhrglc66vchd6z0jdmhg0pmkxp1cwim63bp9l6pj7lxyjma") - (mozilla-patch "icecat-CVE-2017-5430-pt01.patch" "512604631b23" "171nzxr4av4818d0fyg9hcsdxkai61sghl45xnsr2al34l28wsw3") - (mozilla-patch "icecat-CVE-2017-5430-pt02.patch" "16772200ad6f" "087j16rcbs5kgvpa096kd6jarwwwfrhwph54wzjn671wr1vnsvvd") - (mozilla-patch "icecat-CVE-2017-5441.patch" "c744e9d57250" "0m70157lczf17hxb2pabsl3grhcjqallbdfpsd58q8q6fk99k6x3") - (mozilla-patch "icecat-CVE-2017-5433.patch" "b4fc7a4cb5e0" "12q6mr5prpgqg5xnrww09qjm3jx2amb8zig62cd46ba8n9z2j9ab") - (mozilla-patch "icecat-CVE-2017-5429-pt02.patch" "21eac0b4fd2f" "1a6v0hwcc26gnlxygplc11dfzc8bykhh44j4gsz88kl5c5jqhlk9") - (mozilla-patch "icecat-CVE-2017-5432.patch" "62df7046e959" "1qvxbpkf87g4vnl8hxqvwb1ydrpkqq3rbkivr8q4029rvgalf4rf") - (mozilla-patch "icecat-bug-1350599.patch" "f6a978b2fcec" "0rkbbmw52mxgrmn1xny4jkn3slwb5jsqs4yr07ffhz7r801jy9iz") - (mozilla-patch "icecat-bug-1332839.patch" "2ad0f87f5dba" "04458jidri521hgf3r63pl736zz4gmgv6b8spa32anfb7gryj8fy") - (mozilla-patch "icecat-bug-1337548.patch" "29a1ad09a6ec" "0pld81bpc34w6g2ara54sx30msas55kwzr537pvxxc002lpvzs57") - (mozilla-patch "icecat-CVE-2017-5430-pt03.patch" "5dec7534760f" "1xh0y7srl7nznb6szpfiykd6r1ibyxrdvasc36w0chqjdmq7xr32") - (mozilla-patch "icecat-bug-1343851.patch" "e104d53316d7" "1yhv3qvzzi3kr881ji1dnm8ydnr3snh2vzl3c4vdzmvrjx8q5rcb") - (mozilla-patch "icecat-bug-1345222.patch" "864644fadcb0" "0qpplxyfn87bigzdkwlrhj9isd5gfafhjgqfckb239a09wwrblf3") - (mozilla-patch "icecat-bug-1348584.patch" "7cee9ad555af" "0856bpa3n71a3y5m4gilcdb9ghb60p545xkv9zbr245r20mj32ds") - (mozilla-patch "icecat-bug-1346720.patch" "6a597a9cd494" "091a5sanw3w3gl0jcmf8d60m59vwbh5v36vnar20m0hl7xrv4v7p") - (mozilla-patch "icecat-CVE-2017-5430-pt04.patch" "09693629803f" "18fhmsghq0232mhh8j10cy0a4979nmkbh43jlcyrg3l63l7795k4") - (mozilla-patch "icecat-CVE-2017-5430-pt05.patch" "2b8268ea97a9" "0l0f54krxdmqbgldikwjncxvn6irihcljldd3z039himrvplisjg") - (mozilla-patch "icecat-bug-1347700-pt1.patch" "ee706896916c" "0m85x80y98c154hyis08kcy81kbw3v34na1v862vxzs939d3mc0n") - (mozilla-patch "icecat-bug-1347700-pt2.patch" "08ecc2d92f81" "1s6411ccifw9l22hhmf32nhm8r5hbclnhy7jm2n228sqfr4h971g") - (mozilla-patch "icecat-bug-1337682.patch" "15af6a323161" "1nxbwd0574gscnkxfyhzv3yqvxiccb2d0rmba9vi6i62646l2pd5") - (mozilla-patch "icecat-CVE-2017-5451.patch" "d91260f0069a" "15w4rzz51hps2fr8djf5z1rzdwxshclk936mxv5anx1skkwms0y8") - (mozilla-patch "icecat-CVE-2017-5444.patch" "7740cf7e121b" "1706mx4zmnib336p2wmfp9ncyl66lk2da82f28xvcw262mg1c8lw") - (mozilla-patch "icecat-bug-1347164-pt1.patch" "b35a6d6dcdca" "077r0pns58fw3xd3qnbhib4q21vvw0aynpa8iyn1pycg8mppmd0f") - (mozilla-patch "icecat-bug-1347164-pt2.patch" "a42fc05969b9" "1ijq8ccsk5k56h77sv5kqv48w7csj3vbakzq98awgbvypzfdyhss") - (mozilla-patch "icecat-bug-1347164-pt3.patch" "f78ac1ac0a37" "0kj6jq482cqwyngy1kmb69zpq35xah8h33kml8i4l7andiyaq3zm") - (mozilla-patch "icecat-bug-1347164-pt4.patch" "795a3d48a775" "18lw99hmrr93k95hk6v6bx5rcf22aa902x2yf5p6wxdqg56nc0zp") - (mozilla-patch "icecat-bug-1338699.patch" "94ce63191069" "0rdivablincah3gbgl4wzjmqlraazivmr8bhqxdpy8dk0a6fvv4s") - (mozilla-patch "icecat-bug-1342301.patch" "e640e758a7cd" "17f36vvf82n6shlaip7ji8qsy9861f9a5r79h000p3wb3bb7lbfs") - (mozilla-patch "icecat-bug-1342170.patch" "df7ed78b7c0a" "1kq256i66hcm2k9d37i5ws354ksv3bbglmscdjv2v5f7wg3y967v") - (mozilla-patch "icecat-bug-1342634.patch" "d72e56823bbb" "0c186d77lyyg0hjxw15d44rybw6yr5aw8g9m3311xfdn5wiygijb") - (mozilla-patch "icecat-bug-1348796-pt1.patch" "cef01720769e" "0h57372lxanjs5zw9b3vwr2x36yz9gj73swyg50aqp13j4rcbpmy") - (mozilla-patch "icecat-bug-1348796-pt2.patch" "7d3584b75f20" "1a4hvpsvn39832g54hsxhqs24cq8v4nd69jqskkgc1ybs09ncmr3") - (mozilla-patch "icecat-bug-1192800.patch" "e56b0938ea0f" "1hlbxhjzj65s6p2v6f66zdfb3gw5yx77msgq5idsv9jip2w88mpq") - (mozilla-patch "icecat-bug-1309438.patch" "1f30d97563c8" "0rvq729fg9j959ha9qvw5wv7r6vw70qvpy7ynifgqhgrpa749n70") - (mozilla-patch "icecat-bug-1315332.patch" "66495c8d9459" "0vzlx8i0cidpymm6ar07h3yk63fxf64f0b2vb0pihd72h0jzd5s9") - (mozilla-patch "icecat-bug-1346439.patch" "a9fcc2dc324a" "13991jijwa84yczkmc212s23w269r8b1a4yiygqgwaily29l1dc5") - (mozilla-patch "icecat-CVE-2017-5469.patch" "3dcc5f5c2df4" "0b36m6rgxc05h39l6wkzi6dlmq9brcigk7xjrifs4786f0z564hz") - (mozilla-patch "icecat-CVE-2017-5430-pt06.patch" "ac0ca89b5a6b" "1646y9y2wmq8pxb081x3076dq9ana7hh5fxwbsnn17v5wqhi8gfb") - (mozilla-patch "icecat-CVE-2017-5467.patch" "6ed26e6c1a09" "0r1n1dwb4l8xwlns0aifyka6mldb6cy2crhh2qkap64cpj3bzl9s") - (mozilla-patch "icecat-CVE-2017-5439.patch" "2fde528ca7b6" "0iv0sjhnh7br0z3pcpk346wbj162ynacfk3p9309hg6kr1cd92fp") - (mozilla-patch "icecat-CVE-2017-5440.patch" "d88bd03d1234" "1pls63djh4w5023ag3fwjk79cpx816ilgajl5l1qlqyacl8c0v4p") - (mozilla-patch "icecat-bug-1349987.patch" "3282e8f6a121" "1dyc84h7v0l9gndmbiwfqk33f703zr3fv96mwbn58msdf20ma9l2") - (mozilla-patch "icecat-CVE-2017-5434.patch" "ee0a7b55e470" "01vs4p56p0ii0fvmg0kn7gaz6gwf2kwmv6v4pa6v68hwxx1phaag") - (mozilla-patch "icecat-CVE-2017-5430-pt07.patch" "a4e1e04c88ee" "0q07qwzxf2iisrhknjbn1zksv2rr6qzzh6w8ibzlj1sqbdg3h852") - (mozilla-patch "icecat-bug-1335043.patch" "a49419f75b9c" "0pkh5yimnj3p1sd2g9vndgcn11zdx6yhpa88s8vk7fqbs8gf1fz3") - (mozilla-patch "icecat-bug-1299500-pt01.patch" "5fdd36b4400a" "1gdrsbf03wf9v90f1bd2sp9ac38a9lzpzfrv8l8f7gvy70acjxmb") - (mozilla-patch "icecat-bug-1299500-pt02.patch" "34776df5ce44" "15mlf59ii0rk97j8mlf3wz1q0w28ma5mll47dvci6cv3dziai9f1") - (mozilla-patch "icecat-bug-1299500-pt03.patch" "26189af0f504" "1wh1s2xd1w03zi5jdaagk6j5i8v9xsm9360xmv446wdraygkqbci") - (mozilla-patch "icecat-bug-1299500-pt04.patch" "798a8fe17e7b" "0vlalanffq3paa7zab003v1d377x5pvcsy8nc8fr5pdlvi622jll") - (mozilla-patch "icecat-bug-1299500-pt05.patch" "daf2e4f2bd5c" "1rxbjbyr1a6dxjb0qj6900g3kqjphir40pis4qcfl8q811y18jwk") - (mozilla-patch "icecat-bug-1299500-pt06.patch" "1187091c3134" "0r8zz4zbglxg6sl0ybz9lyq1c5w2nqp0xcn2d3rz9bvyj8byqc7m") - (mozilla-patch "icecat-bug-1299500-pt07.patch" "a908f2c2fe30" "1fvwy3fxfrdi9y8hmf4f9aa72i0g6s55s8cp0w22gllsl1f6gvyf") - (mozilla-patch "icecat-bug-1299500-pt08.patch" "e95a26cf7a42" "0pd0kcn7dqd1gy1si85as5zzc96v7vq0v8n3g3gjzms5rdnk085l") - (mozilla-patch "icecat-bug-1299500-pt09.patch" "d63f3b14e571" "0cqd7dal6prsrj7bn2d699idbq4fzjry9vqlbmm9dkyn5683sdy1") - (search-patch "icecat-bug-1299500-pt10.patch") ; Adapted for GNU IceCat, based on: - ;"08f2bc167ae8" "07d1i23ffvi74a5558bb0645vbrap6qlrpcwfyb7dm3llbfnfycy") - (mozilla-patch "icecat-bug-1299500-pt11.patch" "263f27805689" "0nczkvyvlpdjif3xfvj7g2mfz6j06w99x2sblqfmqq6mwrlavpq0") - (mozilla-patch "icecat-CVE-2017-5456.patch" "538e0b382cc2" "0wq2ywn4a7i4ypcx03hl23a4xx3lavz7y505m9kw43fx15r4070r") - (mozilla-patch "icecat-bug-1280079.patch" "6fbcb6a4b91e" "0qcwz9js1bwlnwyv3vhkm0hvahd043lm2bijqsmm0jy20dbslga4") - (mozilla-patch "icecat-CVE-2017-5435.patch" "a362e1205ba4" "127i4ybfb4dk5axp4dxcl7ag7zyx7b517myvs6q4yd8981d1jjd3") - (mozilla-patch "icecat-bug-1341960.patch" "b24ce30e8cfa" "0a521wn8hbaliawmxs21b8wc1gkha8iih62j4zyrfg5rm7ff6p6s") - (mozilla-patch "icecat-CVE-2017-5454.patch" "ac40d4a4e414" "0dnzz95vpq32bsh6hajk4hrcrxwd4w6m7kayl2iziryny86jgak2") - (mozilla-patch "icecat-CVE-2017-5429-pt03.patch" "e469af8e9ccc" "0yn8zqakr9yw0jvysxyc8if09kqf4fr5rq4p9qdkb1p81p4dpmp5") - (mozilla-patch "icecat-bug-1351094.patch" "4c1383e76adc" "0wdldx88qabyhrwnnii44pggmfgqylzxy6ckwzgq86r2yipi4rsq") - (mozilla-patch "icecat-bug-1336527.patch" "b9f53baeabb3" "0y1l641ffbr4i85p0wc1ir6bcsy6h94bchbfc7ppxfijva4fjgvd") - (mozilla-patch "icecat-bug-1345716.patch" "2569af645a98" "1d6lx85ij90j6q6ixwp0h3w7y424yvkz0njsi0my727akbli5rsn") - (mozilla-patch "icecat-bug-1208957.patch" "2b68880d8f6b" "1pl0vkv7clyjchi9kg4995z82sr8xv7cbz1kvsg1v66md6pmp4s4") - (mozilla-patch "icecat-bug-1208957.patch" "bc646835442b" "0f29r5yvlb5w84nvvn6j9r9dq5314jgygjmsna3grzigpkb88gyj") - (mozilla-patch "icecat-bug-1347944.patch" "47cb652ddc25" "0n7871958zwndwz53xvzwjv41v5ar1vxaam8kzr5dkbqmprddimx") - (mozilla-patch "icecat-bug-1347632.patch" "7d8f7a52a108" "0gkbkzkz989j7pk3ia1rfvyjg3si8hnnadwkb2rw13qjxdzhx2zn") - (mozilla-patch "icecat-CVE-2017-5438.patch" "154c93b9435b" "00f8lr5s8h68392bb45zi0xfgqrgfkdxbzwdypp10d89784fvjvd") - (mozilla-patch "icecat-bug-1347486.patch" "15dbaf157058" "1mwgfnx1zsvhp0pgmc8577yw6lnf7g3ikdfj0r21fgffrn76bp69") - (mozilla-patch "icecat-bug-1218437.patch" "e13692bfd5f5" "10jrbs26m8l1vchw6svssrb5h8p82acrcmkx92ybvv4qbaq2bcl0") - (mozilla-patch "icecat-bug-1345853.patch" "5fa27dc4c4a3" "1sqqa4hir2bsnnwnlr34has62kpncmw6l9mylwprd09fxmzzgrd7") - (mozilla-patch "icecat-CVE-2017-5429-pt04.patch" "00c051cd38c7" "1d4aa4nqyjc01mg3jvdjjp7z05c2qhdjj85dhdrd9c18gfiyv4fi") - (mozilla-patch "icecat-bug-1349921.patch" "c6897adc4037" "0acvcdy8awdmpz84243jzf82agrm73wqa198fjbns1p1v3s425z2") - (mozilla-patch "icecat-bug-1338623.patch" "edcafd42dd52" "1xqgjy7a62jsyz1b5mibrcnd7zpb4gdaas0a6z5dwfvz52j4xa16") - (mozilla-patch "icecat-bug-1294799.patch" "0617b074ec3d" "19h7dj44shvdzzj87svpv5q97cikxyxhiwfzf9rnqj1b7fw0xrdh") - (mozilla-patch "icecat-bug-1345049.patch" "88466b911357" "16pgd13mw9a0snyhq6vxmjc7kr9mikvhazkgbc6vpykwi0i0z85b") - (mozilla-patch "icecat-bug-1339999.patch" "b7cb8f8b0877" "0zv1kxcva699ahb9s36l4d9mlrkm0b7hmh6g1422j6iijn136vxb") - (mozilla-patch "icecat-bug-1350868.patch" "ddd6c44790c0" "182ii4wsz2vdd1q4dszd5hka8i2n0ghmqk7l39bd02d3zfibhhvc") - (mozilla-patch "icecat-bug-1342360.patch" "416681a239ef" "0ngs8xgmdhz9ag4dlrqhr0vmanqxr9q2vf16jpm3cimyc06zjxz4") - (mozilla-patch "icecat-CVE-2017-5429-pt05.patch" "a76e626ae6db" "0zn2j8fmhp7502kx1jhrvh85vsys5x6x6gw3v4gl0h8px354v6yw") - (mozilla-patch "icecat-CVE-2017-5429-pt06.patch" "0ce4196ab86e" "0isczy8261qz2zsdxax4j51gypz0gi39q7nfwxg88sl81kc5vym8") - (mozilla-patch "icecat-CVE-2017-5429-pt07.patch" "39da731d80ed" "0vswnv1hqa7r8iz6y5ja7i6w3cyq5xrcd66c1q29ac6n4gn7x338") - (mozilla-patch "icecat-CVE-2017-5430-pt08.patch" "1b148cf9c545" "0ilrib0c2c7mfycpz2hq3vrfdf6sf8lcdbfjk6r4xyxv54vh3lwk") - (mozilla-patch "icecat-bug-1325841.patch" "74e9f13c554f" "0glzcgjsy71y78zaccn33w8djs96i6dd3gafyzkihnkpfddd5cij") - (mozilla-patch "icecat-CVE-2017-5445.patch" "d7d87adfe186" "02p705si2j69ya8n5a916x58nycs07ja0sfpxrwl16f4n2plc91h") - (mozilla-patch "icecat-bug-1346424.patch" "5ede402f494f" "0kbx8yn8ppv7099ic6nhw32f7h42pnwk6dpvb179ilw90ah902q7") - (mozilla-patch "icecat-CVE-2017-5430-pt09.patch" "da44c5cfab2e" "16i4dz5sfkhh3a0khrcf8zn5w20rkf4aqwygjj3cp4qhdh7wnr75") - (mozilla-patch "icecat-CVE-2017-5430-pt10.patch" "0f966927bd55" "07pkhc6l6ylwrzgfm7i1galrvjawqqrhvhk6jcw4b30sfhi0bxq1") - (mozilla-patch "icecat-CVE-2017-5429-pt08.patch" "f0f591f82cc0" "18p091503vpfpp4l3d7hkqj78zavv6qj1lynhlfx67zdp3xqcf8r") - (mozilla-patch "icecat-CVE-2017-5464.patch" "1852dc0beba4" "1zdnkrsqjfv1q2jhj4829ypiwyg78n4jv54yn3b74vwcf5zvzx8m") - (mozilla-patch "icecat-bug-1083140.patch" "6913f0537208" "0vaf61ryp0bzkz6l1w73alhglibbgm0jcgccxvvm43ni67pcxqbq") - ;; The patch commented out below updates the bundled tzdata, - ;; but we can't use it because it contains a GIT binary patch. - ;; TODO: Consider updating the bundled tzdata, or unbundling it. - ;; (mozilla-patch "icecat-bug-1343493.patch" "35496444b380" "1wa79az7121xw078cgpczxavrqy0fsp4ib2nb69giha6acxcaqas") - (mozilla-patch "icecat-CVE-2017-5430-pt11.patch" "64495dfa29db" "0m7vklnwnaf7sw97m87bm4lb9pjmlh1vvrbaf1931db8nhd6m737") - (mozilla-patch "icecat-bug-1350783.patch" "26cd34db3c14" "15vq3lrilg3n9j80cdjmk7xib2iq5gcx9ypq8xs7f5ya9ibasqlx") - (mozilla-patch "icecat-CVE-2017-5429-pt09.patch" "6cd77a0d7ac0" "0kxlbl5m3gffxqrv7ky3swsbyg1ykj0wjhlfl9amsb4g8gra3zkj") - (mozilla-patch "icecat-CVE-2017-5460-pt1.patch" "a803be74843c" "1ywwakzjkfr714i9pfn152n86c6rp427chzdys8phdkcvp5d5p45") - (mozilla-patch "icecat-CVE-2017-5460-pt2.patch" "73762c1392ae" "18jy9ccqvn6l6hznvq5xsqm1pc7i81svc2grgv21wfwg9sd6zwwh") - (mozilla-patch "icecat-bug-1337392-pt1.patch" "4ab6d5c43036" "07pygzngssra9wnmqqrs24d6gc5kfh20fkzvpcasxh4f2hi21z9b") - (mozilla-patch "icecat-bug-1337392-pt2.patch" "13f2d85da9a7" "1iwfz7dp5i93bhjspy4kyz0vqrl8x8ndg5kxdyzwb1b339xim9qy") - (mozilla-patch "icecat-CVE-2017-5429-pt10.patch" "7a30cddfcd54" "1773pijh6gi086l930cn1a0k7kvy7f3cnirfblw98sq7h9qfyy33") - (mozilla-patch "icecat-bug-1345873-pt1.patch" "75cea353ad78" "14cig2y7d3p033hx3096gxzlqwgddq8d0ig0g3l8p1b0xwvvyryl") - (mozilla-patch "icecat-bug-1345873-pt2.patch" "b08ef5a82f89" "0afz01jv850x09df85d7ycqkcdlafi4w2xi5k155lk2b92w8lhpj") - (mozilla-patch "icecat-bug-1340163.patch" "f3f2a995a239" "1ydsj4ja475jscalkw6ggdxgbsp5l2mam5109k0y7c98abzqraxk") - (mozilla-patch "icecat-bug-1348174-pt1.patch" "330904d6f0dc" "19wnp4d8481w86xkk78n7c7wrr99rq6cq3v09hd8am4n0mzwzaja") - (mozilla-patch "icecat-bug-1348174-pt2.patch" "c61b99483c4b" "0mjsahi8ly24415ri2sylas6g0kb8wawi095idqiq019c3r7q9cq") - (mozilla-patch "icecat-bug-1348601.patch" "1848bd238064" "1f5kadhn6w1rs26sdrcc3mq0zzlmmsm6ymqhshkzn57nrj6akm7b") - (mozilla-patch "icecat-bug-1345991.patch" "2008a4b89d9a" "07fkg9r2rxbk362ckv2h8inhd2dadvzigshm6zsjfjs2fyzp95hp") - (mozilla-patch "icecat-bug-1344498-pt1.patch" "9acd0103d67f" "1f0j667g05h9ydmc924cs8mzif1n7s56wixsgnyqc3s231dswhml") - (mozilla-patch "icecat-bug-1344498-pt2.patch" "49aadb25b1ec" "0s618m802b1x5pyqh5mj1azaxch7ggxq9503b7mwhg90vz8qw7ki") - (mozilla-patch "icecat-bug-1344205.patch" "34b453085dc0" "02h1bh24f9i5sm3my07m2q58cpzqfhagwwv11l9fidxcm9dmzmrd") - (mozilla-patch "icecat-bug-1349862.patch" "864ff0c36b6b" "1i3wmigv982x9hzkfg25jhyvkynmar69x6cj6r4g9zkk5f5ypdh5") - (mozilla-patch "icecat-CVE-2017-5459.patch" "5ec6fbedb420" "07flhha4rkjbry5590yr5by36ypb1k33qm3rzkbmw0vk5gyak8dp") - (mozilla-patch "icecat-CVE-2017-5465.patch" "2b95de78a92c" "0vvq1fz84yyw7za929x6ki25paivlwd4ng1ddkcb2bw6da6yp12k") - (mozilla-patch "icecat-CVE-2017-5466.patch" "a5ec5e70abf1" "1jjviyk6db8iccd7997mwmgs188fsyrzivap3ffjf8m6j4mf9cra") - (mozilla-patch "icecat-bug-1347646.patch" "1b50711a46ce" "1i3505zzgf0mvg2405y2gzq36xc8ic2ga8w6d3n9kqryxj0mc7bh") - (mozilla-patch "icecat-bug-1344558.patch" "4147826407e8" "1hgyq21r4qphlvnhvlwbwy4mb2kjalnmksg4fnqbwcb478vb75z2") - (mozilla-patch "icecat-bug-1340718.patch" "3aae8d906162" "033d0j54z2lmkmkyiwjdqd5ddpi5mz52qb16f8aj85h0d5hz7aq0") - (mozilla-patch "icecat-bug-1322112.patch" "01f58e0bfe9d" "0ghm4y5ayr50klq443ffpa8gjphh8ywbil1phzx0bxmnn5d21gb5") - (mozilla-patch "icecat-bug-1339782.patch" "584b974b9913" "1vbya8vanla7y7g7058193pd5mrds9ps879i7ng91n929n86dfsa") - (mozilla-patch "icecat-bug-1335992.patch" "fe579c64db03" "0cvdsl9kkhmgdii45bqnzxvljvfaj769zai6h9pqw49k6wd5xyqa") - (mozilla-patch "icecat-bug-1330012.patch" "31630bd9db47" "18y86fc1bmpfkz1vx73i620z8h586za40i80mj5507szqian9pdp") - (mozilla-patch "icecat-bug-1343446.patch" "29121ef13331" "1j1wkm8gfri897kmpvncr7dn6nfn864kk4km7dknprvh458wdkws") - (mozilla-patch "icecat-bug-1344265.patch" "405bba2d38b1" "0qdf7d3wrickfga30bz1pky8rpycgr69dc2n858bm30qk7yxhv1x") - (mozilla-patch "icecat-bug-1346392.patch" "955ee0340ab7" "0hghj38qqmh4qpr6c60689za3fl59f56yjajdpxn75hmab7b35r2") - (mozilla-patch "icecat-bug-1356292.patch" "04e42829d115" "1lfvki38k7svlc2abis2nbr4773bwnn7x8gbnc19v6csc93z2ijq") - (mozilla-patch "icecat-bug-1354294-pt1.patch" "9e17e0266d21" "1iwnkaxyx6ph6bsy0y3bllmc63f4322pbm7zllaxrsy443g7iixa") - (mozilla-patch "icecat-bug-1354294-pt2.patch" "3ea0e0752031" "0v2aa78g540lwqsc95cchydg1wjy4c04ldnrcccav3dgqlz14l7v") (mozilla-patch "icecat-bug-1342366.patch" "fb43f6690a26" "1vnkjpq2bcqwzmjkgyqv8wj0ndrrsyix3qy1rsb5is6pjmi9sbaa") - (mozilla-patch "icecat-bug-1343818.patch" "90f870bbec29" "0mbki955f71n4yr9p0yc7kh5jwq7vs4bs4rhaazdncirbr564hm6"))) + (mozilla-patch "icecat-bug-1343818.patch" "90f870bbec29" "0mbki955f71n4yr9p0yc7kh5jwq7vs4bs4rhaazdncirbr564hm6") + (mozilla-patch "icecat-bug-1348454.patch" "c1cd8a02669f" "1wf0107763rw45kxkak7478vlax06ay7076cbm7ysxl7vijbr52w") + (mozilla-patch "icecat-bug-1297111.patch" "2553531f83b9" "0ibf59pa8czdyhc25sas6zhh2gf1k8vr8fklis2b1ms3n1qnzrha") + (mozilla-patch "icecat-bug-1355873.patch" "9ee455ddcd68" "0d38hi4556635g9ag805vfyffdgfsp4a8v3d9ldffdp99ypv2ixj") + (mozilla-patch "icecat-bug-1348424-pt1.patch" "6472c7006a73" "1fgydas23fzj49n4g43133bgjn98b2h38bii4knl7z7pm3fs2wws") + (mozilla-patch "icecat-bug-1348424-pt2.patch" "0d5a26b29816" "03mkghl9i83jk1axr8bvw8la6shbggkabf23if8a9vi5jdv8182x") + (mozilla-patch "icecat-bug-1357092.patch" "e78c943af07f" "0r830k6hja8z9rjk2nqjg8zfzr0wjcnic8rddh7jmc1inr1w3crm") + (mozilla-patch "icecat-bug-1352093.patch" "d7c06f2d0d13" "1ahyns5v37w91bilvb3pa8kkdzkkn3fcxmi49jr5bycjlawljrm4") + (mozilla-patch "icecat-bug-1349595.patch" "9071c7d4cc9c" "12128sf8s3zwv2w16kfl5jry9d6ky7hvps2006184rg23p32aj6n") + (mozilla-patch "icecat-bug-1336979.patch" "8bbc7b586d68" "0c13imyp1nq18in3yb1zcyi41b69svh4fn8msyj0c2lhbf8qnqcw") + (mozilla-patch "icecat-bug-1352556.patch" "6d80ca63ff8b" "0s893fn6v0p323lcnl4cbkg1zd7gs1p0bw76ki6cmiapkn63gs13") + (mozilla-patch "icecat-bug-1359547.patch" "43d7b98d8743" "1dhgy1jkvn3c4k27hbv8p16w7l09b8hd4w9zzpk8dpn4h78ncs3h") + (mozilla-patch "icecat-CVE-2017-5031.patch" "bd4fcdee9a06" "0xz1r342023a0bsllhjbzn6v75lpqznwacqyikb7q8i4hxkxh78a") + (mozilla-patch "icecat-bug-1346499.patch" "747fd6c81983" "00iscyn4wr69205ppiaghlnd32845f5lcsl303v0fcdd4d1v04vc") + (mozilla-patch "icecat-bug-1334443-pt1.patch" "16201e8478df" "1k91xaai25vn1svkaldnsd2s8br3fgvnk5l54k3n3lk3m5vj55hv") + (mozilla-patch "icecat-bug-1334443-pt2.patch" "f100e5cf3bcb" "1cgbbbnkrd3ydfw99rhnpqdp5zq65537mg8sa1s9ajxkjjd1dkwj") + (mozilla-patch "icecat-bug-1354810.patch" "e579ef6e8d11" "0cmrh8dl85lzjxpbni08xbs8qq15sljnpg70a7rsl0jdbgih3mdx") + (mozilla-patch "icecat-bug-1356755.patch" "4a3fce67b52d" "126i9nwxsb3sjwb7dvhafacq86glnhx7r7jjv0h9v21s1w0kx4wj") + (mozilla-patch "icecat-bug-1273265.patch" "7902fea300b8" "1jkrl8hdycsi17dd1m1vvl6gm1skhpf10q2m29zwfr8l40fd6a3q") + (mozilla-patch "icecat-bug-1353204.patch" "b5a21502aeff" "13rbrhvr37w95av9d4hkgi913nq0j6k2iijydylvprcn18cwibp0") + (mozilla-patch "icecat-bug-1028195.patch" "69a5ca2bf867" "0q8cgi6837ikpg7gsvywmzhq0i102845apcbrd6mw0205qqsnw5c") + (mozilla-patch "icecat-bug-1347835.patch" "bc635f45af37" "1fny422l6yc80901x6swybr8nk0in1wxfgy97ky4bdkcqlnmzpqv") + (mozilla-patch "icecat-bug-1241066.patch" "b922ca70cce5" "09hcf9rm7ng3vj5y267w0c9h6pqinnz8gjlkwx1337xh43mdvqjv") + (mozilla-patch "icecat-bug-1346012.patch" "1ce6d0652921" "163ji64a86h682frh1jq016w1mjf8g24r8cni0irsdmiihis7zxc") + (mozilla-patch "icecat-bug-1324140.patch" "8886f9cd5dd3" "0byabs9md8r3pc4r67sv2759427n1za0gfayln40nx47n2p52kmg") + (mozilla-patch "icecat-bug-1342552.patch" "ad995e90916b" "02nq9sg675p26z99nr2pykbz51hi2phf0gmrb1bjpq9pjbll7gsa") + (mozilla-patch "icecat-bug-1355039.patch" "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd"))) (modules '((guix build utils))) (snippet '(begin @@ -533,7 +395,6 @@ standards.") ;; ;; TODO: Use system graphite2. ;; - "dom/devicestorage" ; Removed in ESR 52.1, awkward to patch out "modules/freetype2" "modules/zlib" "modules/libbz2" diff --git a/gnu/packages/patches/icecat-bug-1299500-pt10.patch b/gnu/packages/patches/icecat-bug-1299500-pt10.patch deleted file mode 100644 index 406738b8a5..0000000000 --- a/gnu/packages/patches/icecat-bug-1299500-pt10.patch +++ /dev/null @@ -1,1639 +0,0 @@ -Based on the following HG changeset, but adapted to GNU IceCat and -also assumes that the dom/devicestorage subtree is deleted by our -snippet. Note that the other parts of this patchset are downloaded -directly from the upstream mozilla-esr52 mercurial repository. - -# HG changeset patch -# User Andrea Marchesini -# Date 1489000545 -3600 -# Node ID 08f2bc167ae82a6f86e427283d8b972ba794b846 -# Parent d63f3b14e5718b62c0adad2eab81b785250f3d4a -Bug 1299500 - Get rid of DeviceStorage API - part 10 - DeviceStorage, r=ehsan, r=billm, a=jcristau - -diff --git a/dom/bindings/Bindings.conf b/dom/bindings/Bindings.conf ---- a/dom/bindings/Bindings.conf -+++ b/dom/bindings/Bindings.conf -@@ -228,21 +228,16 @@ DOMInterfaces = { - 'DeviceAcceleration': { - 'headerFile': 'mozilla/dom/DeviceMotionEvent.h', - }, - - 'DeviceRotationRate': { - 'headerFile': 'mozilla/dom/DeviceMotionEvent.h', - }, - --'DeviceStorage': { -- 'nativeType': 'nsDOMDeviceStorage', -- 'headerFile': 'DeviceStorage.h', --}, -- - 'Document': { - 'nativeType': 'nsIDocument', - 'binaryNames': { - 'documentURI': 'documentURIFromJS', - 'URL': 'documentURIFromJS' - } - }, - -diff --git a/dom/filesystem/DeviceStorageFileSystem.cpp b/dom/filesystem/DeviceStorageFileSystem.cpp ---- a/dom/filesystem/DeviceStorageFileSystem.cpp -+++ b/dom/filesystem/DeviceStorageFileSystem.cpp -@@ -1,26 +1,24 @@ - /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ - /* vim: set ts=8 sts=2 et sw=2 tw=80: */ - /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - - #include "mozilla/dom/DeviceStorageFileSystem.h" - --#include "DeviceStorage.h" - #include "mozilla/Preferences.h" - #include "mozilla/dom/Directory.h" - #include "mozilla/dom/File.h" - #include "mozilla/dom/FileSystemUtils.h" - #include "mozilla/ipc/BackgroundParent.h" - #include "mozilla/Unused.h" - #include "nsCOMPtr.h" - #include "nsDebug.h" --#include "nsDeviceStorage.h" - #include "nsIFile.h" - #include "nsPIDOMWindow.h" - #include "nsGlobalWindow.h" - - using namespace mozilla::ipc; - - namespace mozilla { - namespace dom { -@@ -37,44 +35,16 @@ DeviceStorageFileSystem::DeviceStorageFi - if (mozilla::Preferences::GetBool("device.storage.prompt.testing", false)) { - mPermissionCheckType = ePermissionCheckNotRequired; - } else { - mPermissionCheckType = ePermissionCheckRequired; - } - } else { - AssertIsOnBackgroundThread(); - } -- -- // Get the permission name required to access the file system. -- DebugOnly rv = -- DeviceStorageTypeChecker::GetPermissionForType(mStorageType, mPermission); -- NS_WARNING_ASSERTION(NS_SUCCEEDED(rv), "GetPermissionForType failed"); -- -- // Get the local path of the file system root. -- nsCOMPtr rootFile; -- DeviceStorageFile::GetRootDirectoryForType(aStorageType, -- aStorageName, -- getter_AddRefs(rootFile)); -- -- Unused << -- NS_WARN_IF(!rootFile || -- NS_FAILED(rootFile->GetPath(mLocalOrDeviceStorageRootPath))); -- -- if (!XRE_IsParentProcess()) { -- return; -- } -- -- // DeviceStorageTypeChecker is a singleton object and must be initialized on -- // the main thread. We initialize it here so that we can use it on the worker -- // thread. -- if (NS_IsMainThread()) { -- DebugOnly typeChecker = -- DeviceStorageTypeChecker::CreateOrGet(); -- MOZ_ASSERT(typeChecker); -- } - } - - DeviceStorageFileSystem::~DeviceStorageFileSystem() - { - AssertIsOnOwningThread(); - } - - already_AddRefed -diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp ---- a/dom/ipc/ContentChild.cpp -+++ b/dom/ipc/ContentChild.cpp -@@ -168,44 +168,41 @@ - #include "mozilla/X11Util.h" - #endif - - #ifdef ACCESSIBILITY - #include "nsAccessibilityService.h" - #endif - - #include "mozilla/dom/File.h" --#include "mozilla/dom/devicestorage/DeviceStorageRequestChild.h" - #include "mozilla/dom/PPresentationChild.h" - #include "mozilla/dom/PresentationIPCService.h" - #include "mozilla/ipc/InputStreamUtils.h" - - #ifdef MOZ_WEBSPEECH - #include "mozilla/dom/PSpeechSynthesisChild.h" - #endif - - #include "ProcessUtils.h" - #include "URIUtils.h" - #include "nsContentUtils.h" - #include "nsIPrincipal.h" --#include "nsDeviceStorage.h" - #include "DomainPolicy.h" - #include "mozilla/dom/ipc/StructuredCloneData.h" - #include "mozilla/dom/time/DateCacheCleaner.h" - #include "mozilla/net/NeckoMessageUtils.h" - #include "mozilla/widget/PuppetBidiKeyboard.h" - #include "mozilla/RemoteSpellCheckEngineChild.h" - #include "GMPServiceChild.h" - #include "gfxPlatform.h" - #include "nscore.h" // for NS_FREE_PERMANENT_DATA - #include "VRManagerChild.h" - - using namespace mozilla; - using namespace mozilla::docshell; --using namespace mozilla::dom::devicestorage; - using namespace mozilla::dom::ipc; - using namespace mozilla::dom::workers; - using namespace mozilla::media; - using namespace mozilla::embedding; - using namespace mozilla::gmp; - using namespace mozilla::hal_sandbox; - using namespace mozilla::ipc; - using namespace mozilla::layers; -@@ -1806,29 +1803,16 @@ ContentChild::GetCPOWManager() - } - - bool - ContentChild::RecvPTestShellConstructor(PTestShellChild* actor) - { - return true; - } - --PDeviceStorageRequestChild* --ContentChild::AllocPDeviceStorageRequestChild(const DeviceStorageParams& aParams) --{ -- return new DeviceStorageRequestChild(); --} -- --bool --ContentChild::DeallocPDeviceStorageRequestChild(PDeviceStorageRequestChild* aDeviceStorage) --{ -- delete aDeviceStorage; -- return true; --} -- - PNeckoChild* - ContentChild::AllocPNeckoChild() - { - return new NeckoChild(); - } - - bool - ContentChild::DeallocPNeckoChild(PNeckoChild* necko) -@@ -2531,38 +2515,16 @@ ContentChild::RecvVolumes(nsTArrayRecvVolumesFromParent(aVolumes); - } - #endif - return true; - } - - bool --ContentChild::RecvFilePathUpdate(const nsString& aStorageType, -- const nsString& aStorageName, -- const nsString& aPath, -- const nsCString& aReason) --{ -- if (nsDOMDeviceStorage::InstanceCount() == 0) { -- // No device storage instances in this process. Don't try and -- // and create a DeviceStorageFile since it will fail. -- -- return true; -- } -- -- RefPtr dsf = new DeviceStorageFile(aStorageType, aStorageName, aPath); -- -- nsString reason; -- CopyASCIItoUTF16(aReason, reason); -- nsCOMPtr obs = mozilla::services::GetObserverService(); -- obs->NotifyObservers(dsf, "file-watcher-update", reason.get()); -- return true; --} -- --bool - ContentChild::RecvFileSystemUpdate(const nsString& aFsName, - const nsString& aVolumeName, - const int32_t& aState, - const int32_t& aMountGeneration, - const bool& aIsMediaPresent, - const bool& aIsSharing, - const bool& aIsFormatting, - const bool& aIsFake, -diff --git a/dom/ipc/ContentChild.h b/dom/ipc/ContentChild.h ---- a/dom/ipc/ContentChild.h -+++ b/dom/ipc/ContentChild.h -@@ -193,22 +193,16 @@ public: - const IPCTabContext& aContext, - const uint32_t& aChromeFlags, - const ContentParentId& aCpID, - const bool& aIsForApp, - const bool& aIsForBrowser) override; - - virtual bool DeallocPBrowserChild(PBrowserChild*) override; - -- virtual PDeviceStorageRequestChild* -- AllocPDeviceStorageRequestChild(const DeviceStorageParams&) override; -- -- virtual bool -- DeallocPDeviceStorageRequestChild(PDeviceStorageRequestChild*) override; -- - virtual PBlobChild* - AllocPBlobChild(const BlobConstructorParams& aParams) override; - - virtual bool DeallocPBlobChild(PBlobChild* aActor) override; - - virtual PCrashReporterChild* - AllocPCrashReporterChild(const mozilla::dom::NativeThreadId& id, - const uint32_t& processType) override; -@@ -436,21 +430,16 @@ public: - - virtual bool - RecvInitBlobURLs(nsTArray&& aRegistations) override; - - virtual bool RecvLastPrivateDocShellDestroyed() override; - - virtual bool RecvVolumes(InfallibleTArray&& aVolumes) override; - -- virtual bool RecvFilePathUpdate(const nsString& aStorageType, -- const nsString& aStorageName, -- const nsString& aPath, -- const nsCString& aReason) override; -- - virtual bool RecvFileSystemUpdate(const nsString& aFsName, - const nsString& aVolumeName, - const int32_t& aState, - const int32_t& aMountGeneration, - const bool& aIsMediaPresent, - const bool& aIsSharing, - const bool& aIsFormatting, - const bool& aIsFake, -diff --git a/dom/ipc/ContentParent.cpp b/dom/ipc/ContentParent.cpp ---- a/dom/ipc/ContentParent.cpp -+++ b/dom/ipc/ContentParent.cpp -@@ -23,17 +23,16 @@ - - #include "chrome/common/process_watcher.h" - - #include "mozilla/a11y/PDocAccessible.h" - #include "AppProcessChecker.h" - #include "AudioChannelService.h" - #include "BlobParent.h" - #include "CrashReporterParent.h" --#include "DeviceStorageStatics.h" - #include "GMPServiceParent.h" - #include "HandlerServiceParent.h" - #include "IHistory.h" - #include "imgIContainer.h" - #include "mozIApplication.h" - #if defined(XP_WIN) && defined(ACCESSIBILITY) - #include "mozilla/a11y/AccessibleWrap.h" - #endif -@@ -50,17 +49,16 @@ - #include "mozilla/dom/GetFilesHelper.h" - #include "mozilla/dom/GeolocationBinding.h" - #include "mozilla/dom/Notification.h" - #include "mozilla/dom/PContentBridgeParent.h" - #include "mozilla/dom/PContentPermissionRequestParent.h" - #include "mozilla/dom/PCycleCollectWithLogsParent.h" - #include "mozilla/dom/PMemoryReportRequestParent.h" - #include "mozilla/dom/ServiceWorkerRegistrar.h" --#include "mozilla/dom/devicestorage/DeviceStorageRequestParent.h" - #include "mozilla/dom/power/PowerManagerService.h" - #include "mozilla/dom/Permissions.h" - #include "mozilla/dom/PresentationParent.h" - #include "mozilla/dom/PPresentationParent.h" - #include "mozilla/dom/PushNotifier.h" - #include "mozilla/dom/FlyWebPublishedServerIPC.h" - #include "mozilla/dom/quota/QuotaManagerService.h" - #include "mozilla/dom/time/DateCacheCleaner.h" -@@ -272,17 +270,16 @@ using base::ChildPrivileges; - using base::KillProcess; - #ifdef MOZ_ENABLE_PROFILER_SPS - using mozilla::ProfileGatherer; - #endif - - #ifdef MOZ_CRASHREPORTER - using namespace CrashReporter; - #endif --using namespace mozilla::dom::devicestorage; - using namespace mozilla::dom::power; - using namespace mozilla::media; - using namespace mozilla::embedding; - using namespace mozilla::gfx; - using namespace mozilla::gmp; - using namespace mozilla::hal; - using namespace mozilla::ipc; - using namespace mozilla::layers; -@@ -2775,22 +2772,16 @@ ContentParent::Observe(nsISupports* aSub - Unused << SendCycleCollect(); - } - else if (!strcmp(aTopic, "child-mmu-request")){ - Unused << SendMinimizeMemoryUsage(); - } - else if (!strcmp(aTopic, "last-pb-context-exited")) { - Unused << SendLastPrivateDocShellDestroyed(); - } -- else if (!strcmp(aTopic, "file-watcher-update")) { -- nsCString creason; -- CopyUTF16toUTF8(aData, creason); -- DeviceStorageFile* file = static_cast(aSubject); -- Unused << SendFilePathUpdate(file->mStorageType, file->mStorageName, file->mPath, creason); -- } - #ifdef MOZ_WIDGET_GONK - else if(!strcmp(aTopic, NS_VOLUME_STATE_CHANGED)) { - nsCOMPtr vol = do_QueryInterface(aSubject); - if (!vol) { - return NS_ERROR_NOT_AVAILABLE; - } - - nsString volName; -@@ -3021,35 +3012,16 @@ ContentParent::AllocPBrowserParent(const - } - - bool - ContentParent::DeallocPBrowserParent(PBrowserParent* frame) - { - return nsIContentParent::DeallocPBrowserParent(frame); - } - --PDeviceStorageRequestParent* --ContentParent::AllocPDeviceStorageRequestParent(const DeviceStorageParams& aParams) --{ -- RefPtr result = new DeviceStorageRequestParent(aParams); -- if (!result->EnsureRequiredPermissions(this)) { -- return nullptr; -- } -- result->Dispatch(); -- return result.forget().take(); --} -- --bool --ContentParent::DeallocPDeviceStorageRequestParent(PDeviceStorageRequestParent* doomed) --{ -- DeviceStorageRequestParent *parent = static_cast(doomed); -- NS_RELEASE(parent); -- return true; --} -- - PBlobParent* - ContentParent::AllocPBlobParent(const BlobConstructorParams& aParams) - { - return nsIContentParent::AllocPBlobParent(aParams); - } - - bool - ContentParent::DeallocPBlobParent(PBlobParent* aActor) -@@ -3871,35 +3843,16 @@ ContentParent::RecvAsyncMessage(const ns - InfallibleTArray&& aCpows, - const IPC::Principal& aPrincipal, - const ClonedMessageData& aData) - { - return nsIContentParent::RecvAsyncMessage(aMsg, Move(aCpows), aPrincipal, - aData); - } - --bool --ContentParent::RecvFilePathUpdateNotify(const nsString& aType, -- const nsString& aStorageName, -- const nsString& aFilePath, -- const nsCString& aReason) --{ -- RefPtr dsf = new DeviceStorageFile(aType, -- aStorageName, -- aFilePath); -- -- nsCOMPtr obs = mozilla::services::GetObserverService(); -- if (!obs) { -- return false; -- } -- obs->NotifyObservers(dsf, "file-watcher-update", -- NS_ConvertASCIItoUTF16(aReason).get()); -- return true; --} -- - static int32_t - AddGeolocationListener(nsIDOMGeoPositionCallback* watcher, - nsIDOMGeoPositionErrorCallback* errorCallBack, - bool highAccuracy) - { - nsCOMPtr geo = do_GetService("@mozilla.org/geolocation;1"); - if (!geo) { - return -1; -@@ -4943,35 +4896,16 @@ ContentParent::RecvBeginDriverCrashGuard - bool - ContentParent::RecvEndDriverCrashGuard(const uint32_t& aGuardType) - { - mDriverCrashGuard = nullptr; - return true; - } - - bool --ContentParent::RecvGetDeviceStorageLocation(const nsString& aType, -- nsString* aPath) --{ --#ifdef MOZ_WIDGET_ANDROID -- mozilla::AndroidBridge::GetExternalPublicDirectory(aType, *aPath); -- return true; --#else -- return false; --#endif --} -- --bool --ContentParent::RecvGetDeviceStorageLocations(DeviceStorageLocationInfo* info) --{ -- DeviceStorageStatics::GetDeviceStorageLocationsForIPC(info); -- return true; --} -- --bool - ContentParent::RecvGetAndroidSystemInfo(AndroidSystemInfo* aInfo) - { - #ifdef MOZ_WIDGET_ANDROID - nsSystemInfo::GetAndroidSystemInfo(aInfo); - return true; - #else - MOZ_CRASH("wrong platform!"); - return false; -diff --git a/dom/ipc/ContentParent.h b/dom/ipc/ContentParent.h ---- a/dom/ipc/ContentParent.h -+++ b/dom/ipc/ContentParent.h -@@ -726,22 +726,16 @@ private: - const IPCTabContext& aContext, - const uint32_t& aChromeFlags, - const ContentParentId& aCpId, - const bool& aIsForApp, - const bool& aIsForBrowser) override; - - virtual bool DeallocPBrowserParent(PBrowserParent* frame) override; - -- virtual PDeviceStorageRequestParent* -- AllocPDeviceStorageRequestParent(const DeviceStorageParams&) override; -- -- virtual bool -- DeallocPDeviceStorageRequestParent(PDeviceStorageRequestParent*) override; -- - virtual PBlobParent* - AllocPBlobParent(const BlobConstructorParams& aParams) override; - - virtual bool DeallocPBlobParent(PBlobParent* aActor) override; - - virtual bool - RecvPBlobConstructor(PBlobParent* aActor, - const BlobConstructorParams& params) override; -@@ -927,21 +921,16 @@ private: - const IPC::Principal& aPrincipal, - nsTArray* aRetvals) override; - - virtual bool RecvAsyncMessage(const nsString& aMsg, - InfallibleTArray&& aCpows, - const IPC::Principal& aPrincipal, - const ClonedMessageData& aData) override; - -- virtual bool RecvFilePathUpdateNotify(const nsString& aType, -- const nsString& aStorageName, -- const nsString& aFilePath, -- const nsCString& aReason) override; -- - virtual bool RecvAddGeolocationListener(const IPC::Principal& aPrincipal, - const bool& aHighAccuracy) override; - virtual bool RecvRemoveGeolocationListener() override; - - virtual bool RecvSetGeolocationHigherAccuracy(const bool& aEnable) override; - - virtual bool RecvConsoleMessage(const nsString& aMessage) override; - -@@ -1047,21 +1036,16 @@ private: - const uint32_t& aDropEffect) override; - - virtual bool RecvProfile(const nsCString& aProfile) override; - - virtual bool RecvGetGraphicsDeviceInitData(ContentDeviceData* aOut) override; - - void StartProfiler(nsIProfilerStartParams* aParams); - -- virtual bool RecvGetDeviceStorageLocation(const nsString& aType, -- nsString* aPath) override; -- -- virtual bool RecvGetDeviceStorageLocations(DeviceStorageLocationInfo* info) override; -- - virtual bool RecvGetAndroidSystemInfo(AndroidSystemInfo* aInfo) override; - - virtual bool RecvNotifyBenchmarkResult(const nsString& aCodecName, - const uint32_t& aDecodeFPS) override; - - virtual bool RecvNotifyPushObservers(const nsCString& aScope, - const IPC::Principal& aPrincipal, - const nsString& aMessageId) override; -diff --git a/dom/ipc/PContent.ipdl b/dom/ipc/PContent.ipdl ---- a/dom/ipc/PContent.ipdl -+++ b/dom/ipc/PContent.ipdl -@@ -10,17 +10,16 @@ include protocol PBrowser; - include protocol PCompositorBridge; - include protocol PContentBridge; - include protocol PContentPermissionRequest; - include protocol PCycleCollectWithLogs; - include protocol PCrashReporter; - include protocol PPSMContentDownloader; - include protocol PExternalHelperApp; - include protocol PHandlerService; --include protocol PDeviceStorageRequest; - include protocol PFileDescriptorSet; - include protocol PHal; - include protocol PHeapSnapshotTempFileHelper; - include protocol PProcessHangMonitor; - include protocol PImageBridge; - include protocol PMedia; - include protocol PMemoryReportRequest; - include protocol PNecko; -@@ -111,130 +110,16 @@ struct FontListEntry { - nsCString filepath; - uint16_t weight; - int16_t stretch; - uint8_t italic; - uint8_t index; - bool isHidden; - }; - --struct DeviceStorageFreeSpaceParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageUsedSpaceParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageAvailableParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageStatusParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageFormatParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageMountParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageUnmountParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageAddParams --{ -- nsString type; -- nsString storageName; -- nsString relpath; -- PBlob blob; --}; -- --struct DeviceStorageAppendParams --{ -- nsString type; -- nsString storageName; -- nsString relpath; -- PBlob blob; --}; -- --struct DeviceStorageCreateFdParams --{ -- nsString type; -- nsString storageName; -- nsString relpath; --}; -- --struct DeviceStorageGetParams --{ -- nsString type; -- nsString storageName; -- nsString rootDir; -- nsString relpath; --}; -- --struct DeviceStorageDeleteParams --{ -- nsString type; -- nsString storageName; -- nsString relpath; --}; -- --struct DeviceStorageEnumerationParams --{ -- nsString type; -- nsString storageName; -- nsString rootdir; -- uint64_t since; --}; -- --union DeviceStorageParams --{ -- DeviceStorageAddParams; -- DeviceStorageAppendParams; -- DeviceStorageCreateFdParams; -- DeviceStorageGetParams; -- DeviceStorageDeleteParams; -- DeviceStorageEnumerationParams; -- DeviceStorageFreeSpaceParams; -- DeviceStorageUsedSpaceParams; -- DeviceStorageAvailableParams; -- DeviceStorageStatusParams; -- DeviceStorageFormatParams; -- DeviceStorageMountParams; -- DeviceStorageUnmountParams; --}; -- --struct DeviceStorageLocationInfo { -- nsString music; -- nsString pictures; -- nsString videos; -- nsString sdcard; -- nsString apps; -- nsString crashes; --}; -- - union PrefValue { - nsCString; - int32_t; - bool; - }; - - union MaybePrefValue { - PrefValue; -@@ -355,17 +240,16 @@ nested(upto inside_cpow) sync protocol P - parent opens PGMPService; - child opens PBackground; - - manages PBlob; - manages PBrowser; - manages PContentPermissionRequest; - manages PCrashReporter; - manages PCycleCollectWithLogs; -- manages PDeviceStorageRequest; - manages PPSMContentDownloader; - manages PExternalHelperApp; - manages PFileDescriptorSet; - manages PHal; - manages PHandlerService; - manages PHeapSnapshotTempFileHelper; - manages PMedia; - manages PMemoryReportRequest; -@@ -538,19 +422,16 @@ child: - /** - * Send BlobURLRegistrationData to child process. - */ - async InitBlobURLs(BlobURLRegistrationData[] registrations); - - // Notify child that last-pb-context-exited notification was observed - async LastPrivateDocShellDestroyed(); - -- async FilePathUpdate(nsString storageType, nsString storageName, nsString filepath, -- nsCString reasons); -- - // Note: Any changes to this structure should also be changed in - // VolumeInfo above. - async FileSystemUpdate(nsString fsName, nsString mountPoint, int32_t fsState, - int32_t mountGeneration, bool isMediaPresent, - bool isSharing, bool isFormatting, bool isFake, - bool isUnmounting, bool isRemovable, bool isHotSwappable); - - // Notify volume is removed. -@@ -738,17 +619,16 @@ parent: - * process. |newPluginEpoch| is the current epoch in the chrome process. If - * |pluginEpoch == newPluginEpoch|, then |plugins| will be left empty. - */ - sync FindPlugins(uint32_t pluginEpoch) returns (nsresult aResult, PluginTag[] plugins, uint32_t newPluginEpoch); - - async PJavaScript(); - - async PRemoteSpellcheckEngine(); -- async PDeviceStorageRequest(DeviceStorageParams params); - - sync PCrashReporter(NativeThreadId tid, uint32_t processType); - - /** - * Is this token compatible with the provided version? - * - * |version| The offered version to test - * Returns |True| if the offered version is compatible -@@ -921,21 +801,16 @@ parent: - async FirstIdle(); - - async AudioChannelServiceStatus(bool aActiveTelephonyChannel, - bool aContentOrNormalChannel, - bool aAnyActiveChannel); - - async AudioChannelChangeDefVolChannel(int32_t aChannel, bool aHidden); - -- async FilePathUpdateNotify(nsString aType, -- nsString aStorageName, -- nsString aFilepath, -- nsCString aReason); -- - // called by the child (test code only) to propagate volume changes to the parent - async CreateFakeVolume(nsString fsName, nsString mountPoint); - async SetFakeVolumeState(nsString fsName, int32_t fsState); - async RemoveFakeVolume(nsString fsName); - - sync KeywordToURI(nsCString keyword) - returns (nsString providerName, OptionalInputStreamParams postData, OptionalURIParams uri); - -@@ -1108,22 +983,16 @@ parent: - float aFullZoom) - returns (nsresult rv, - bool windowOpened, - FrameScriptInfo[] frameScripts, - nsCString urlToLoad, - TextureFactoryIdentifier textureFactoryIdentifier, - uint64_t layersId); - -- sync GetDeviceStorageLocation(nsString type) -- returns (nsString path); -- -- sync GetDeviceStorageLocations() -- returns (DeviceStorageLocationInfo info); -- - sync GetAndroidSystemInfo() - returns (AndroidSystemInfo info); - - /** - * Tells the parent to ungrab the pointer on the default display. - * - * This is for GTK platforms where we have to ensure the pointer ungrab happens in the - * chrome process as that's the process that receives the pointer event. -diff --git a/dom/ipc/moz.build b/dom/ipc/moz.build ---- a/dom/ipc/moz.build -+++ b/dom/ipc/moz.build -@@ -120,17 +120,16 @@ if CONFIG['MOZ_CONTENT_SANDBOX'] and CON - 'mozsandbox', - ] - - LOCAL_INCLUDES += [ - '/caps', - '/chrome', - '/docshell/base', - '/dom/base', -- '/dom/devicestorage', - '/dom/events', - '/dom/filesystem', - '/dom/geolocation', - '/dom/media/webspeech/synth/ipc', - '/dom/security', - '/dom/storage', - '/dom/workers', - '/embedding/components/printingui/ipc', -diff --git a/dom/moz.build b/dom/moz.build ---- a/dom/moz.build -+++ b/dom/moz.build -@@ -42,17 +42,16 @@ DIRS += [ - 'base', - 'archivereader', - 'bindings', - 'battery', - 'browser-element', - 'cache', - 'canvas', - 'crypto', -- 'devicestorage', - 'encoding', - 'events', - 'fetch', - 'filehandle', - 'filesystem', - 'flyweb', - 'gamepad', - 'geolocation', -diff --git a/dom/webidl/DeviceStorage.webidl b/dom/webidl/DeviceStorage.webidl -deleted file mode 100644 ---- a/dom/webidl/DeviceStorage.webidl -+++ /dev/null -@@ -1,95 +0,0 @@ --/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ --/* This Source Code Form is subject to the terms of the Mozilla Public -- * License, v. 2.0. If a copy of the MPL was not distributed with this -- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -- --dictionary DeviceStorageEnumerationParameters { -- Date since; --}; -- --[Pref="device.storage.enabled"] --interface DeviceStorage : EventTarget { -- attribute EventHandler onchange; -- -- [Throws] -- DOMRequest? add(Blob? aBlob); -- [Throws] -- DOMRequest? addNamed(Blob? aBlob, DOMString aName); -- -- /** -- * Append data to a given file. -- * If the file doesn't exist, a "NotFoundError" event will be dispatched. -- * In the same time, it is a request.onerror case. -- * If the file exists, it will be opened with the following permission: -- * "PR_WRONLY|PR_CREATE_FILE|PR_APPEND". -- * The function will return null when blob file is null and other unexpected situations. -- * @parameter aBlob: A Blob object representing the data to append -- * @parameter aName: A string representing the full name (path + file name) of the file -- * to append data to. -- */ -- [Throws] -- DOMRequest? appendNamed(Blob? aBlob, DOMString aName); -- -- [Throws] -- DOMRequest get(DOMString aName); -- [Throws] -- DOMRequest getEditable(DOMString aName); -- [Throws] -- DOMRequest delete(DOMString aName); -- -- [Throws] -- DOMCursor enumerate(optional DeviceStorageEnumerationParameters options); -- [Throws] -- DOMCursor enumerate(DOMString path, -- optional DeviceStorageEnumerationParameters options); -- [Throws] -- DOMCursor enumerateEditable(optional DeviceStorageEnumerationParameters options); -- [Throws] -- DOMCursor enumerateEditable(DOMString path, -- optional DeviceStorageEnumerationParameters options); -- -- [Throws] -- DOMRequest freeSpace(); -- [Throws] -- DOMRequest usedSpace(); -- [Throws] -- DOMRequest available(); -- [Throws] -- DOMRequest storageStatus(); -- [Throws] -- DOMRequest format(); -- [Throws] -- DOMRequest mount(); -- [Throws] -- DOMRequest unmount(); -- -- // Note that the storageName is just a name (like sdcard), and doesn't -- // include any path information. -- readonly attribute DOMString storageName; -- -- // Indicates if the storage area denoted by storageName is capable of -- // being mounted and unmounted. -- readonly attribute boolean canBeMounted; -- -- // Indicates if the storage area denoted by storageName is capable of -- // being shared and unshared. -- readonly attribute boolean canBeShared; -- -- // Indicates if the storage area denoted by storageName is capable of -- // being formatted. -- readonly attribute boolean canBeFormatted; -- -- // Determines if this storage area is the one which will be used by default -- // for storing new files. -- readonly attribute boolean default; -- -- // Indicates if the storage area denoted by storageName is removable -- readonly attribute boolean isRemovable; -- -- // True if the storage area is close to being full -- readonly attribute boolean lowDiskSpace; -- -- [NewObject] -- // XXXbz what type does this really return? -- Promise getRoot(); --}; -diff --git a/dom/webidl/moz.build b/dom/webidl/moz.build ---- a/dom/webidl/moz.build -+++ b/dom/webidl/moz.build -@@ -104,17 +104,16 @@ WEBIDL_FILES = [ - 'DataTransfer.webidl', - 'DataTransferItem.webidl', - 'DataTransferItemList.webidl', - 'DecoderDoctorNotification.webidl', - 'DedicatedWorkerGlobalScope.webidl', - 'DelayNode.webidl', - 'DesktopNotification.webidl', - 'DeviceMotionEvent.webidl', -- 'DeviceStorage.webidl', - 'Directory.webidl', - 'Document.webidl', - 'DocumentFragment.webidl', - 'DocumentTimeline.webidl', - 'DocumentType.webidl', - 'DOMCursor.webidl', - 'DOMError.webidl', - 'DOMException.webidl', -diff --git a/layout/build/nsLayoutStatics.cpp b/layout/build/nsLayoutStatics.cpp ---- a/layout/build/nsLayoutStatics.cpp -+++ b/layout/build/nsLayoutStatics.cpp -@@ -122,17 +122,16 @@ using namespace mozilla::system; - #include "mozilla/dom/CustomElementRegistry.h" - #include "mozilla/dom/time/DateCacheCleaner.h" - #include "mozilla/EventDispatcher.h" - #include "mozilla/IMEStateManager.h" - #include "mozilla/dom/HTMLVideoElement.h" - #include "TouchManager.h" - #include "MediaDecoder.h" - #include "MediaPrefs.h" --#include "mozilla/dom/devicestorage/DeviceStorageStatics.h" - #include "mozilla/ServoBindings.h" - #include "mozilla/StaticPresData.h" - #include "mozilla/dom/WebIDLGlobalNameHash.h" - - using namespace mozilla; - using namespace mozilla::net; - using namespace mozilla::dom; - using namespace mozilla::dom::ipc; -@@ -303,18 +302,16 @@ nsLayoutStatics::Initialize() - nsStyleContext::Initialize(); - mozilla::LayerAnimationInfo::Initialize(); - #endif - - MediaDecoder::InitStatics(); - - PromiseDebugging::Init(); - -- mozilla::dom::devicestorage::DeviceStorageStatics::Initialize(); -- - mozilla::dom::WebCryptoThreadPool::Initialize(); - - // NB: We initialize servo in nsAppRunner.cpp, because we need to do it after - // creating the hidden DOM window to support some current stylo hacks. We - // should move initialization back here once those go away. - - #ifndef MOZ_WIDGET_ANDROID - // On Android, we instantiate it when constructing AndroidBridge. -diff --git a/mobile/android/components/ContentPermissionPrompt.js b/mobile/android/components/ContentPermissionPrompt.js ---- a/mobile/android/components/ContentPermissionPrompt.js -+++ b/mobile/android/components/ContentPermissionPrompt.js -@@ -8,20 +8,16 @@ const Cu = Components.utils; - const Cc = Components.classes; - - Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - Cu.import("resource://gre/modules/Services.jsm"); - - const kEntities = { - "contacts": "contacts", - "desktop-notification": "desktopNotification2", -- "device-storage:music": "deviceStorageMusic", -- "device-storage:pictures": "deviceStoragePictures", -- "device-storage:sdcard": "deviceStorageSdcard", -- "device-storage:videos": "deviceStorageVideos", - "geolocation": "geolocation", - "flyweb-publish-server": "flyWebPublishServer", - }; - - // For these types, prompt for permission if action is unknown. - const PROMPT_FOR_UNKNOWN = [ - "desktop-notification", - "geolocation", -diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java ---- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java -+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java -@@ -2198,54 +2198,16 @@ public class GeckoAppShell - return null; - } - - @WrapForJNI - private static String connectionGetMimeType(URLConnection connection) { - return connection.getContentType(); - } - -- /** -- * Retrieve the absolute path of an external storage directory. -- * -- * @param type The type of directory to return -- * @return Absolute path of the specified directory or null on failure -- */ -- @WrapForJNI(calledFrom = "gecko") -- private static String getExternalPublicDirectory(final String type) { -- final String state = Environment.getExternalStorageState(); -- if (!Environment.MEDIA_MOUNTED.equals(state) && -- !Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { -- // External storage is not available. -- return null; -- } -- -- if ("sdcard".equals(type)) { -- // SD card has a separate path. -- return Environment.getExternalStorageDirectory().getAbsolutePath(); -- } -- -- final String systemType; -- if ("downloads".equals(type)) { -- systemType = Environment.DIRECTORY_DOWNLOADS; -- } else if ("pictures".equals(type)) { -- systemType = Environment.DIRECTORY_PICTURES; -- } else if ("videos".equals(type)) { -- systemType = Environment.DIRECTORY_MOVIES; -- } else if ("music".equals(type)) { -- systemType = Environment.DIRECTORY_MUSIC; -- } else if ("apps".equals(type)) { -- File appInternalStorageDirectory = getApplicationContext().getFilesDir(); -- return new File(appInternalStorageDirectory, "mozilla").getAbsolutePath(); -- } else { -- return null; -- } -- return Environment.getExternalStoragePublicDirectory(systemType).getAbsolutePath(); -- } -- - @WrapForJNI(calledFrom = "gecko") - private static int getMaxTouchPoints() { - PackageManager pm = getApplicationContext().getPackageManager(); - if (pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND)) { - // at least, 5+ fingers. - return 5; - } else if (pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT)) { - // at least, 2+ fingers. -diff --git a/netwerk/test/mochitests/signed_web_packaged_app.sjs b/netwerk/test/mochitests/signed_web_packaged_app.sjs ---- a/netwerk/test/mochitests/signed_web_packaged_app.sjs -+++ b/netwerk/test/mochitests/signed_web_packaged_app.sjs -@@ -35,19 +35,16 @@ Content-Type: application/x-web-app-mani - "src": "scripts/library.js", - "integrity": "TN2ByXZiaBiBCvS4MeZ02UyNi44vED+KjdjLInUl4o8=" - } - ], - "moz-permissions": [ - { - "systemXHR": { - "description": "Needed to download stuff" -- }, -- "devicestorage:pictures": { -- "description": "Need to load pictures" - } - } - ], - "package-identifier": "09bc9714-7ab6-4320-9d20-fde4c237522c", - "description": "A great app!" - }\r - --NKWXJUAFXB\r - Content-Location: page2.html\r -diff --git a/toolkit/components/jsdownloads/src/DownloadIntegration.jsm b/toolkit/components/jsdownloads/src/DownloadIntegration.jsm ---- a/toolkit/components/jsdownloads/src/DownloadIntegration.jsm -+++ b/toolkit/components/jsdownloads/src/DownloadIntegration.jsm -@@ -268,53 +268,16 @@ this.DownloadIntegration = { - // Add the view used for detecting changes to downloads to be persisted. - // We must do this after the list of persistent downloads has been loaded, - // even if the load operation failed. We wait for a complete initialization - // so other callers cannot modify the list without being detected. The - // DownloadAutoSaveView is kept alive by the underlying DownloadList. - yield new DownloadAutoSaveView(list, this._store).initialize(); - }), - --#ifdef MOZ_WIDGET_GONK -- /** -- * Finds the default download directory which can be either in the -- * internal storage or on the sdcard. -- * -- * @return {Promise} -- * @resolves The downloads directory string path. -- */ -- _getDefaultDownloadDirectory: Task.async(function* () { -- let directoryPath; -- let win = Services.wm.getMostRecentWindow("navigator:browser"); -- let storages = win.navigator.getDeviceStorages("sdcard"); -- let preferredStorageName; -- // Use the first one or the default storage. -- storages.forEach((aStorage) => { -- if (aStorage.default || !preferredStorageName) { -- preferredStorageName = aStorage.storageName; -- } -- }); -- -- // Now get the path for this storage area. -- if (preferredStorageName) { -- let volume = volumeService.getVolumeByName(preferredStorageName); -- if (volume && volume.state === Ci.nsIVolume.STATE_MOUNTED){ -- directoryPath = OS.Path.join(volume.mountPoint, "downloads"); -- yield OS.File.makeDir(directoryPath, { ignoreExisting: true }); -- } -- } -- if (directoryPath) { -- return directoryPath; -- } else { -- throw new Components.Exception("No suitable storage for downloads.", -- Cr.NS_ERROR_FILE_UNRECOGNIZED_PATH); -- } -- }), --#endif -- - /** - * Determines if a Download object from the list of persistent downloads - * should be saved into a file, so that it can be restored across sessions. - * - * This function allows filtering out downloads that the host application is - * not interested in persisting across sessions, for example downloads that - * finished successfully. - * -@@ -377,18 +340,16 @@ this.DownloadIntegration = { - #ifdef MOZ_WIDGET_ANDROID - // Android doesn't have a $HOME directory, and by default we only have - // write access to /data/data/org.mozilla.{$APP} and /sdcard - directoryPath = gEnvironment.get("DOWNLOADS_DIRECTORY"); - if (!directoryPath) { - throw new Components.Exception("DOWNLOADS_DIRECTORY is not set.", - Cr.NS_ERROR_FILE_UNRECOGNIZED_PATH); - } --#elifdef MOZ_WIDGET_GONK -- directoryPath = this._getDefaultDownloadDirectory(); - #else - // For Linux, use XDG download dir, with a fallback to Home/Downloads - // if the XDG user dirs are disabled. - try { - directoryPath = this._getDirectory("DfltDwnld"); - } catch(e) { - directoryPath = yield this._createDownloadsDirectory("Home"); - } -@@ -405,19 +366,16 @@ this.DownloadIntegration = { - /** - * Returns the user downloads directory asynchronously. - * - * @return {Promise} - * @resolves The downloads directory string path. - */ - getPreferredDownloadsDirectory: Task.async(function* () { - let directoryPath = null; --#ifdef MOZ_WIDGET_GONK -- directoryPath = this._getDefaultDownloadDirectory(); --#else - let prefValue = 1; - - try { - prefValue = Services.prefs.getIntPref("browser.download.folderList"); - } catch(e) {} - - switch(prefValue) { - case 0: // Desktop -@@ -435,17 +393,16 @@ this.DownloadIntegration = { - } catch(ex) { - // Either the preference isn't set or the directory cannot be created. - directoryPath = yield this.getSystemDownloadsDirectory(); - } - break; - default: - directoryPath = yield this.getSystemDownloadsDirectory(); - } --#endif - return directoryPath; - }), - - /** - * Returns the temporary downloads directory asynchronously. - * - * @return {Promise} - * @resolves The downloads directory string path. -diff --git a/toolkit/components/jsdownloads/src/DownloadPlatform.cpp b/toolkit/components/jsdownloads/src/DownloadPlatform.cpp ---- a/toolkit/components/jsdownloads/src/DownloadPlatform.cpp -+++ b/toolkit/components/jsdownloads/src/DownloadPlatform.cpp -@@ -185,28 +185,16 @@ nsresult DownloadPlatform::DownloadDone( - if (sourceCFURL) { - ::CFRelease(sourceCFURL); - } - if (referrerCFURL) { - ::CFRelease(referrerCFURL); - } - } - #endif -- if (mozilla::Preferences::GetBool("device.storage.enabled", true)) { -- // Tell DeviceStorage that a new file may have been added. -- nsCOMPtr obs = mozilla::services::GetObserverService(); -- nsCOMPtr pathString -- = do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID); -- if (obs && pathString) { -- if (NS_SUCCEEDED(pathString->SetData(path))) { -- (void)obs->NotifyObservers(pathString, "download-watcher-notify", -- u"modified"); -- } -- } -- } - } - - #endif - - return NS_OK; - } - - nsresult DownloadPlatform::MapUrlToZone(const nsAString& aURL, -diff --git a/toolkit/components/jsdownloads/test/unit/common_test_Download.js b/toolkit/components/jsdownloads/test/unit/common_test_Download.js ---- a/toolkit/components/jsdownloads/test/unit/common_test_Download.js -+++ b/toolkit/components/jsdownloads/test/unit/common_test_Download.js -@@ -2315,103 +2315,16 @@ add_task(function* test_toSerializable_s - let download2 = yield Downloads.createDownload(reserialized); - - do_check_eq(download1.startTime.constructor.name, "Date"); - do_check_eq(download2.startTime.constructor.name, "Date"); - do_check_eq(download1.startTime.toJSON(), download2.startTime.toJSON()); - }); - - /** -- * This test will call the platform specific operations within -- * DownloadPlatform::DownloadDone. While there is no test to verify the -- * specific behaviours, this at least ensures that there is no error or crash. -- */ --add_task(function* test_platform_integration() --{ -- let downloadFiles = []; -- let oldDeviceStorageEnabled = false; -- try { -- oldDeviceStorageEnabled = Services.prefs.getBoolPref("device.storage.enabled"); -- } catch (e) { -- // This happens if the pref doesn't exist. -- } -- let downloadWatcherNotified = false; -- let observer = { -- observe: function(subject, topic, data) { -- do_check_eq(topic, "download-watcher-notify"); -- do_check_eq(data, "modified"); -- downloadWatcherNotified = true; -- } -- } -- Services.obs.addObserver(observer, "download-watcher-notify", false); -- Services.prefs.setBoolPref("device.storage.enabled", true); -- let downloadDoneCalled = false; -- let monitorFn = base => ({ -- __proto__: base, -- downloadDone() { -- return super.downloadDone(...arguments).then(() => { -- downloadDoneCalled = true; -- }); -- }, -- }); -- Integration.downloads.register(monitorFn); -- DownloadIntegration.allowDirectories = true; -- function cleanup() { -- for (let file of downloadFiles) { -- file.remove(true); -- } -- Services.obs.removeObserver(observer, "download-watcher-notify"); -- Services.prefs.setBoolPref("device.storage.enabled", oldDeviceStorageEnabled); -- Integration.downloads.unregister(monitorFn); -- DownloadIntegration.allowDirectories = false; -- } -- -- for (let isPrivate of [false, true]) { -- downloadDoneCalled = false; -- -- // Some platform specific operations only operate on files outside the -- // temporary directory or in the Downloads directory (such as setting -- // the Windows searchable attribute, and the Mac Downloads icon bouncing), -- // so use the system Downloads directory for the target file. -- let targetFilePath = yield DownloadIntegration.getSystemDownloadsDirectory(); -- targetFilePath = OS.Path.join(targetFilePath, -- "test" + (Math.floor(Math.random() * 1000000))); -- let targetFile = new FileUtils.File(targetFilePath); -- downloadFiles.push(targetFile); -- -- let download; -- if (gUseLegacySaver) { -- download = yield promiseStartLegacyDownload(httpUrl("source.txt"), -- { isPrivate, targetFile }); -- } -- else { -- download = yield Downloads.createDownload({ -- source: { url: httpUrl("source.txt"), isPrivate }, -- target: targetFile, -- }); -- download.start().catch(() => {}); -- } -- -- // Wait for the whenSucceeded promise to be resolved first. -- // downloadDone should be called before the whenSucceeded promise is resolved. -- yield download.whenSucceeded().then(function () { -- do_check_true(downloadDoneCalled); -- do_check_true(downloadWatcherNotified); -- }); -- -- // Then, wait for the promise returned by "start" to be resolved. -- yield promiseDownloadStopped(download); -- -- yield promiseVerifyTarget(download.target, TEST_DATA_SHORT); -- } -- -- cleanup(); --}); -- --/** - * Checks that downloads are added to browsing history when they start. - */ - add_task(function* test_history() - { - mustInterruptResponses(); - - // We will wait for the visit to be notified during the download. - yield PlacesTestUtils.clearHistory(); -diff --git a/toolkit/content/devicestorage.properties b/toolkit/content/devicestorage.properties -deleted file mode 100644 ---- a/toolkit/content/devicestorage.properties -+++ /dev/null -@@ -1,4 +0,0 @@ --# Extensions we recognize for DeviceStorage storage areas --pictures=*.jpe; *.jpg; *.jpeg; *.gif; *.png; *.bmp; --music=*.mp3; *.oga; *.ogg; *.m4a; *.m4b; *.m4p; *.m4r; *.3gp; *.3gpp; *.mp4; *.m3u; *.pls; *.opus; *.amr; *.wav; *.lcka; *.mka; *.flac; --videos=*.mp4; *.mpeg; *.mpg; *.ogv; *.ogx; *.webm; *.3gp; *.3gpp; *.3g2; *.ogg; *.m4v; *.ts; *.m2ts; *.avi; *.divx; *.mkv; -diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn ---- a/toolkit/content/jar.mn -+++ b/toolkit/content/jar.mn -@@ -40,17 +40,16 @@ toolkit.jar: - content/global/browser-content.js - * content/global/buildconfig.html - content/global/contentAreaUtils.js - #ifndef MOZ_ICECATMOBILE - content/global/customizeToolbar.css - content/global/customizeToolbar.js - content/global/customizeToolbar.xul - #endif -- content/global/devicestorage.properties - #ifndef MOZ_ICECATMOBILE - content/global/editMenuOverlay.js - * content/global/editMenuOverlay.xul - content/global/finddialog.js - * content/global/finddialog.xul - content/global/findUtils.js - #endif - content/global/filepicker.properties -@@ -113,9 +112,9 @@ toolkit.jar: - content/global/bindings/videocontrols.css (widgets/videocontrols.css) - * content/global/bindings/wizard.xml (widgets/wizard.xml) - #ifdef XP_MACOSX - content/global/macWindowMenu.js - #endif - content/global/svg/svgBindings.xml (/layout/svg/resources/content/svgBindings.xml) - content/global/gmp-sources/eme-adobe.json (gmp-sources/eme-adobe.json) - content/global/gmp-sources/openh264.json (gmp-sources/openh264.json) -- content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) -\ No newline at end of file -+ content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) -diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp ---- a/uriloader/exthandler/nsExternalHelperAppService.cpp -+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp -@@ -101,20 +101,16 @@ - - #ifdef MOZ_WIDGET_ANDROID - #include "IceCatMobileJNIWrappers.h" - #endif - - #include "mozilla/Preferences.h" - #include "mozilla/ipc/URIUtils.h" - --#ifdef MOZ_WIDGET_GONK --#include "nsDeviceStorage.h" --#endif -- - using namespace mozilla; - using namespace mozilla::ipc; - - // Download Folder location constants - #define NS_PREF_DOWNLOAD_DIR "browser.download.dir" - #define NS_PREF_DOWNLOAD_FOLDERLIST "browser.download.folderList" - enum { - NS_FOLDER_VALUE_DESKTOP = 0 -@@ -321,65 +317,16 @@ static nsresult GetDownloadDirectory(nsI - } - - if (!dir) { - // If not, we default to the OS X default download location. - nsresult rv = NS_GetSpecialDirectory(NS_OSX_DEFAULT_DOWNLOAD_DIR, - getter_AddRefs(dir)); - NS_ENSURE_SUCCESS(rv, rv); - } --#elif defined(MOZ_WIDGET_GONK) -- // On Gonk, store the files on the sdcard in the downloads directory. -- // We need to check with the volume manager which storage point is -- // available. -- -- // Pick the default storage in case multiple (internal and external) ones -- // are available. -- nsString storageName; -- nsDOMDeviceStorage::GetDefaultStorageName(NS_LITERAL_STRING("sdcard"), -- storageName); -- -- RefPtr dsf( -- new DeviceStorageFile(NS_LITERAL_STRING("sdcard"), -- storageName, -- NS_LITERAL_STRING("downloads"))); -- NS_ENSURE_TRUE(dsf->mFile, NS_ERROR_FILE_ACCESS_DENIED); -- -- // If we're not checking for availability we're done. -- if (aSkipChecks) { -- dsf->mFile.forget(_directory); -- return NS_OK; -- } -- -- // Check device storage status before continuing. -- nsString storageStatus; -- dsf->GetStatus(storageStatus); -- -- // If we get an "unavailable" status, it means the sd card is not present. -- // We'll also catch internal errors by looking for an empty string and assume -- // the SD card isn't present when this occurs. -- if (storageStatus.EqualsLiteral("unavailable") || -- storageStatus.IsEmpty()) { -- return NS_ERROR_FILE_NOT_FOUND; -- } -- -- // If we get a status other than 'available' here it means the card is busy -- // because it's mounted via USB or it is being formatted. -- if (!storageStatus.EqualsLiteral("available")) { -- return NS_ERROR_FILE_ACCESS_DENIED; -- } -- -- bool alreadyThere; -- nsresult rv = dsf->mFile->Exists(&alreadyThere); -- NS_ENSURE_SUCCESS(rv, rv); -- if (!alreadyThere) { -- rv = dsf->mFile->Create(nsIFile::DIRECTORY_TYPE, 0770); -- NS_ENSURE_SUCCESS(rv, rv); -- } -- dir = dsf->mFile; - #elif defined(ANDROID) - // We ask Java for the temporary download directory. The directory will be - // different depending on whether we have the permission to write to the - // public download directory or not. - // In the case where we do not have the permission we will start the - // download to the app cache directory and later move it to the final - // destination after prompting for the permission. - jni::String::LocalRef downloadDir; -diff --git a/widget/android/AndroidBridge.cpp b/widget/android/AndroidBridge.cpp ---- a/widget/android/AndroidBridge.cpp -+++ b/widget/android/AndroidBridge.cpp -@@ -1119,42 +1119,8 @@ nsresult AndroidBridge::InputStreamRead( - - if (read <= 0) { - *aRead = 0; - return NS_OK; - } - *aRead = read; - return NS_OK; - } -- --nsresult AndroidBridge::GetExternalPublicDirectory(const nsAString& aType, nsAString& aPath) { -- if (XRE_IsContentProcess()) { -- nsString key(aType); -- nsAutoString path; -- if (AndroidBridge::sStoragePaths.Get(key, &path)) { -- aPath = path; -- return NS_OK; -- } -- -- // Lazily get the value from the parent. -- dom::ContentChild* child = dom::ContentChild::GetSingleton(); -- if (child) { -- nsAutoString type(aType); -- child->SendGetDeviceStorageLocation(type, &path); -- if (!path.IsEmpty()) { -- AndroidBridge::sStoragePaths.Put(key, path); -- aPath = path; -- return NS_OK; -- } -- } -- -- ALOG_BRIDGE("AndroidBridge::GetExternalPublicDirectory no cache for %s", -- NS_ConvertUTF16toUTF8(aType).get()); -- return NS_ERROR_NOT_AVAILABLE; -- } -- -- auto path = GeckoAppShell::GetExternalPublicDirectory(aType); -- if (!path) { -- return NS_ERROR_NOT_AVAILABLE; -- } -- aPath = path->ToString(); -- return NS_OK; --} -diff --git a/widget/android/AndroidBridge.h b/widget/android/AndroidBridge.h ---- a/widget/android/AndroidBridge.h -+++ b/widget/android/AndroidBridge.h -@@ -197,18 +197,16 @@ public: - static jmethodID GetStaticMethodID(JNIEnv* env, jclass jClass, const char* methodName, const char* methodType); - - static jni::Object::LocalRef ChannelCreate(jni::Object::Param); - - static void InputStreamClose(jni::Object::Param obj); - static uint32_t InputStreamAvailable(jni::Object::Param obj); - static nsresult InputStreamRead(jni::Object::Param obj, char *aBuf, uint32_t aCount, uint32_t *aRead); - -- static nsresult GetExternalPublicDirectory(const nsAString& aType, nsAString& aPath); -- - protected: - static nsDataHashtable sStoragePaths; - - static AndroidBridge* sBridge; - - AndroidBridge(); - ~AndroidBridge(); - -diff --git a/widget/android/GeneratedJNIWrappers.cpp b/widget/android/GeneratedJNIWrappers.cpp ---- a/widget/android/GeneratedJNIWrappers.cpp -+++ b/widget/android/GeneratedJNIWrappers.cpp -@@ -274,24 +274,16 @@ auto GeckoAppShell::GetExceptionStackTra - constexpr char GeckoAppShell::GetExtensionFromMimeType_t::name[]; - constexpr char GeckoAppShell::GetExtensionFromMimeType_t::signature[]; - - auto GeckoAppShell::GetExtensionFromMimeType(mozilla::jni::String::Param a0) -> mozilla::jni::String::LocalRef - { - return mozilla::jni::Method::Call(GeckoAppShell::Context(), nullptr, a0); - } - --constexpr char GeckoAppShell::GetExternalPublicDirectory_t::name[]; --constexpr char GeckoAppShell::GetExternalPublicDirectory_t::signature[]; -- --auto GeckoAppShell::GetExternalPublicDirectory(mozilla::jni::String::Param a0) -> mozilla::jni::String::LocalRef --{ -- return mozilla::jni::Method::Call(GeckoAppShell::Context(), nullptr, a0); --} -- - constexpr char GeckoAppShell::GetHWDecoderCapability_t::name[]; - constexpr char GeckoAppShell::GetHWDecoderCapability_t::signature[]; - - auto GeckoAppShell::GetHWDecoderCapability() -> bool - { - return mozilla::jni::Method::Call(GeckoAppShell::Context(), nullptr); - } - -diff --git a/widget/android/GeneratedJNIWrappers.h b/widget/android/GeneratedJNIWrappers.h ---- a/widget/android/GeneratedJNIWrappers.h -+++ b/widget/android/GeneratedJNIWrappers.h -@@ -724,36 +724,16 @@ public: - static const mozilla::jni::CallingThread callingThread = - mozilla::jni::CallingThread::GECKO; - static const mozilla::jni::DispatchTarget dispatchTarget = - mozilla::jni::DispatchTarget::CURRENT; - }; - - static auto GetExtensionFromMimeType(mozilla::jni::String::Param) -> mozilla::jni::String::LocalRef; - -- struct GetExternalPublicDirectory_t { -- typedef GeckoAppShell Owner; -- typedef mozilla::jni::String::LocalRef ReturnType; -- typedef mozilla::jni::String::Param SetterType; -- typedef mozilla::jni::Args< -- mozilla::jni::String::Param> Args; -- static constexpr char name[] = "getExternalPublicDirectory"; -- static constexpr char signature[] = -- "(Ljava/lang/String;)Ljava/lang/String;"; -- static const bool isStatic = true; -- static const mozilla::jni::ExceptionMode exceptionMode = -- mozilla::jni::ExceptionMode::ABORT; -- static const mozilla::jni::CallingThread callingThread = -- mozilla::jni::CallingThread::GECKO; -- static const mozilla::jni::DispatchTarget dispatchTarget = -- mozilla::jni::DispatchTarget::CURRENT; -- }; -- -- static auto GetExternalPublicDirectory(mozilla::jni::String::Param) -> mozilla::jni::String::LocalRef; -- - struct GetHWDecoderCapability_t { - typedef GeckoAppShell Owner; - typedef bool ReturnType; - typedef bool SetterType; - typedef mozilla::jni::Args<> Args; - static constexpr char name[] = "getHWDecoderCapability"; - static constexpr char signature[] = - "()Z"; -diff --git a/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp b/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp ---- a/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp -+++ b/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp -@@ -155,17 +155,16 @@ - #include "mozilla/dom/CSSValueBinding.h" - #include "mozilla/dom/CSSValueListBinding.h" - #include "mozilla/dom/CustomEventBinding.h" - #ifdef MOZ_WEBRTC - #include "mozilla/dom/DataChannelBinding.h" - #endif - #include "mozilla/dom/DataContainerEventBinding.h" - #include "mozilla/dom/DataTransferBinding.h" --#include "mozilla/dom/DeviceStorageBinding.h" - #include "mozilla/dom/DOMCursorBinding.h" - #include "mozilla/dom/DOMExceptionBinding.h" - #include "mozilla/dom/DOMParserBinding.h" - #include "mozilla/dom/DOMRequestBinding.h" - #include "mozilla/dom/DocumentBinding.h" - #include "mozilla/dom/DocumentFragmentBinding.h" - #include "mozilla/dom/DocumentTypeBinding.h" - #include "mozilla/dom/DocumentBinding.h" - From 8e815c5b6903a545c46b674c1cd1cc3180f835db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 7 May 2017 11:30:24 +0200 Subject: [PATCH 155/386] system: Define before first use. Fixes . Reported by Mark H Weaver . * gnu/system.scm (, read-boot-parameters) (read-boot-parameters-file): Move before first use of the 'boot-parameters' macro. --- gnu/system.scm | 189 ++++++++++++++++++++++++------------------------- 1 file changed, 94 insertions(+), 95 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index 189a13262f..748e3f7e9a 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -199,6 +199,100 @@ directly by the user." ;;; +;;; Boot parameters +;;; + +(define-record-type* + boot-parameters make-boot-parameters boot-parameters? + (label boot-parameters-label) + ;; Because we will use the 'store-device' to create the GRUB search command, + ;; the 'store-device' has slightly different semantics than 'root-device'. + ;; The 'store-device' can be a file system uuid, a file system label, or #f, + ;; but it cannot be a device path such as "/dev/sda3", since GRUB would not + ;; understand that. The 'root-device', on the other hand, corresponds + ;; exactly to the device field of the object representing the + ;; OS's root file system, so it might be a device path like "/dev/sda3". + (root-device boot-parameters-root-device) + (store-device boot-parameters-store-device) + (store-mount-point boot-parameters-store-mount-point) + (kernel boot-parameters-kernel) + (kernel-arguments boot-parameters-kernel-arguments) + (initrd boot-parameters-initrd)) + +(define (read-boot-parameters port) + "Read boot parameters from PORT and return the corresponding + object or #f if the format is unrecognized." + (match (read port) + (('boot-parameters ('version 0) + ('label label) ('root-device root) + ('kernel linux) + rest ...) + (boot-parameters + (label label) + (root-device root) + + ;; In the past, we would store the directory name of the kernel instead + ;; of the absolute file name of its image. Detect that and correct it. + (kernel (if (string=? linux (direct-store-path linux)) + (string-append linux "/" + (system-linux-image-file-name)) + linux)) + + (kernel-arguments + (match (assq 'kernel-arguments rest) + ((_ args) args) + (#f '()))) ;the old format + + (initrd + (match (assq 'initrd rest) + (('initrd ('string-append directory file)) ;the old format + (string-append directory file)) + (('initrd (? string? file)) + file))) + + (store-device + (match (assq 'store rest) + (('store ('device device) _ ...) + device) + (_ ;the old format + ;; Root might be a device path like "/dev/sda1", which is not a + ;; suitable GRUB device identifier. + (if (string-prefix? "/" root) + #f + root)))) + + (store-mount-point + (match (assq 'store rest) + (('store ('device _) ('mount-point mount-point) _ ...) + mount-point) + (_ ;the old format + "/"))))) + (x ;unsupported format + (warning (G_ "unrecognized boot parameters for '~a'~%") + system) + #f))) + +(define (read-boot-parameters-file system) + "Read boot parameters from SYSTEM's (system or generation) \"parameters\" +file and returns the corresponding object or #f if the +format is unrecognized. +The object has its kernel-arguments extended in order to make it bootable." + (let* ((file (string-append system "/parameters")) + (params (call-with-input-file file read-boot-parameters)) + (root (boot-parameters-root-device params)) + (root-device (if (bytevector? root) + (uuid->string root) + root)) + (kernel-arguments (boot-parameters-kernel-arguments params))) + (if params + (boot-parameters + (inherit params) + (kernel-arguments (bootable-kernel-arguments kernel-arguments + system + root-device))) + #f))) + +;;; ;;; Services. ;;; @@ -813,99 +907,4 @@ being stored into the \"parameters\" file)." (mount-point #$(boot-parameters-store-mount-point params)))) #:set-load-path? #f))) - -;;; -;;; Boot parameters -;;; - -(define-record-type* - boot-parameters make-boot-parameters boot-parameters? - (label boot-parameters-label) - ;; Because we will use the 'store-device' to create the GRUB search command, - ;; the 'store-device' has slightly different semantics than 'root-device'. - ;; The 'store-device' can be a file system uuid, a file system label, or #f, - ;; but it cannot be a device path such as "/dev/sda3", since GRUB would not - ;; understand that. The 'root-device', on the other hand, corresponds - ;; exactly to the device field of the object representing the - ;; OS's root file system, so it might be a device path like "/dev/sda3". - (root-device boot-parameters-root-device) - (store-device boot-parameters-store-device) - (store-mount-point boot-parameters-store-mount-point) - (kernel boot-parameters-kernel) - (kernel-arguments boot-parameters-kernel-arguments) - (initrd boot-parameters-initrd)) - -(define (read-boot-parameters port) - "Read boot parameters from PORT and return the corresponding - object or #f if the format is unrecognized." - (match (read port) - (('boot-parameters ('version 0) - ('label label) ('root-device root) - ('kernel linux) - rest ...) - (boot-parameters - (label label) - (root-device root) - - ;; In the past, we would store the directory name of the kernel instead - ;; of the absolute file name of its image. Detect that and correct it. - (kernel (if (string=? linux (direct-store-path linux)) - (string-append linux "/" - (system-linux-image-file-name)) - linux)) - - (kernel-arguments - (match (assq 'kernel-arguments rest) - ((_ args) args) - (#f '()))) ;the old format - - (initrd - (match (assq 'initrd rest) - (('initrd ('string-append directory file)) ;the old format - (string-append directory file)) - (('initrd (? string? file)) - file))) - - (store-device - (match (assq 'store rest) - (('store ('device device) _ ...) - device) - (_ ;the old format - ;; Root might be a device path like "/dev/sda1", which is not a - ;; suitable GRUB device identifier. - (if (string-prefix? "/" root) - #f - root)))) - - (store-mount-point - (match (assq 'store rest) - (('store ('device _) ('mount-point mount-point) _ ...) - mount-point) - (_ ;the old format - "/"))))) - (x ;unsupported format - (warning (G_ "unrecognized boot parameters for '~a'~%") - system) - #f))) - -(define (read-boot-parameters-file system) - "Read boot parameters from SYSTEM's (system or generation) \"parameters\" -file and returns the corresponding object or #f if the -format is unrecognized. -The object has its kernel-arguments extended in order to make it bootable." - (let* ((file (string-append system "/parameters")) - (params (call-with-input-file file read-boot-parameters)) - (root (boot-parameters-root-device params)) - (root-device (if (bytevector? root) - (uuid->string root) - root)) - (kernel-arguments (boot-parameters-kernel-arguments params))) - (if params - (boot-parameters - (inherit params) - (kernel-arguments (bootable-kernel-arguments kernel-arguments - system - root-device))) - #f))) - ;;; system.scm ends here From 484f7a886219ed6d7633c6ee71fc802d677d14ed Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sat, 6 May 2017 10:45:57 -0400 Subject: [PATCH 156/386] gnu: libtiff: Add fixes several security flaws. Fixes CVE-2017-{7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602}. * gnu/packages/patches/libtiff-CVE-2017-7593.patch, gnu/packages/patches/libtiff-CVE-2017-7594.patch, gnu/packages/patches/libtiff-multiple-UBSAN-crashes.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/image.scm (libtiff)[replacement]: New field. (libtiff/fixed): New variable. --- gnu/local.mk | 3 + gnu/packages/image.scm | 16 +- .../patches/libtiff-CVE-2017-7593.patch | 113 +++++ .../patches/libtiff-CVE-2017-7594.patch | 54 +++ .../libtiff-multiple-UBSAN-crashes.patch | 449 ++++++++++++++++++ 5 files changed, 634 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libtiff-CVE-2017-7593.patch create mode 100644 gnu/packages/patches/libtiff-CVE-2017-7594.patch create mode 100644 gnu/packages/patches/libtiff-multiple-UBSAN-crashes.patch diff --git a/gnu/local.mk b/gnu/local.mk index c17fc18a13..ce7fb68416 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -738,6 +738,9 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-CVE-2016-10093.patch \ %D%/packages/patches/libtiff-CVE-2016-10094.patch \ %D%/packages/patches/libtiff-CVE-2017-5225.patch \ + %D%/packages/patches/libtiff-CVE-2017-7593.patch \ + %D%/packages/patches/libtiff-CVE-2017-7594.patch \ + %D%/packages/patches/libtiff-multiple-UBSAN-crashes.patch \ %D%/packages/patches/libtiff-assertion-failure.patch \ %D%/packages/patches/libtiff-divide-by-zero-ojpeg.patch \ %D%/packages/patches/libtiff-divide-by-zero-tiffcp.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 2027395ca6..1a1108563d 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2016 Arun Isaac -;;; Copyright © 2016 Kei Kebreau +;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. @@ -299,6 +299,7 @@ extracting icontainer icon files.") (define-public libtiff (package (name "libtiff") + (replacement libtiff/fixed) (version "4.0.7") (source (origin (method url-fetch) @@ -347,6 +348,19 @@ collection of tools for doing simple manipulations of TIFF images.") "See COPYRIGHT in the distribution.")) (home-page "http://www.simplesystems.org/libtiff/"))) +(define libtiff/fixed + (package + (inherit libtiff) + (source + (origin + (inherit (package-source libtiff)) + (patches + (append + (origin-patches (package-source libtiff)) + (search-patches "libtiff-CVE-2017-7593.patch" + "libtiff-CVE-2017-7594.patch" + "libtiff-multiple-UBSAN-crashes.patch"))))))) + (define-public libwmf (package (name "libwmf") diff --git a/gnu/packages/patches/libtiff-CVE-2017-7593.patch b/gnu/packages/patches/libtiff-CVE-2017-7593.patch new file mode 100644 index 0000000000..496efb73b9 --- /dev/null +++ b/gnu/packages/patches/libtiff-CVE-2017-7593.patch @@ -0,0 +1,113 @@ +Fixes CVE-2017-7593 (Potential uninitialized-memory access from tif_rawdata): + +http://bugzilla.maptools.org/show_bug.cgi?id=2651 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7593 +https://security-tracker.debian.org/tracker/CVE-2017-7593 + +2017-01-11 Even Rouault + + * libtiff/tiffio.h, tif_unix.c, tif_win32.c, tif_vms.c: add + _TIFFcalloc() + + * libtiff/tif_read.c: TIFFReadBufferSetup(): use _TIFFcalloc() to zero + initialize tif_rawdata. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2651 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1208; previous revision: 1.1207 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_read.c,v <-- libtiff/tif_read.c +new revision: 1.53; previous revision: 1.52 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_unix.c,v <-- libtiff/tif_unix.c +new revision: 1.28; previous revision: 1.27 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_vms.c,v <-- libtiff/tif_vms.c +new revision: 1.14; previous revision: 1.13 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_win32.c,v <-- libtiff/tif_win32.c +new revision: 1.42; previous revision: 1.41 +/cvs/maptools/cvsroot/libtiff/libtiff/tiffio.h,v <-- libtiff/tiffio.h +new revision: 1.94; previous revision: 1.93 + +diff -ru tiff-4.0.7/libtiff/tiffio.h tiff-4.0.7.new/libtiff/tiffio.h +--- tiff-4.0.7/libtiff/tiffio.h 1969-12-31 19:00:00.000000000 -0500 ++++ tiff-4.0.7.new/libtiff/tiffio.h 2017-05-05 19:08:03.772999790 -0400 +@@ -1,4 +1,4 @@ +-/* $Id: tiffio.h,v 1.92 2016-01-23 21:20:34 erouault Exp $ */ ++/* $Id: tiffio.h,v 1.94 2017-01-11 19:02:49 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -293,6 +293,7 @@ + */ + + extern void* _TIFFmalloc(tmsize_t s); ++extern void* _TIFFcalloc(tmsize_t nmemb, tmsize_t siz); + extern void* _TIFFrealloc(void* p, tmsize_t s); + extern void _TIFFmemset(void* p, int v, tmsize_t c); + extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); +diff -ru tiff-4.0.7/libtiff/tif_read.c tiff-4.0.7.new/libtiff/tif_read.c +--- tiff-4.0.7/libtiff/tif_read.c 2017-05-05 19:04:09.740966642 -0400 ++++ tiff-4.0.7.new/libtiff/tif_read.c 2017-05-05 18:59:11.070709441 -0400 +@@ -1,4 +1,4 @@ +-/* $Id: tif_read.c,v 1.50 2016-12-02 21:56:56 erouault Exp $ */ ++/* $Id: tif_read.c,v 1.53 2017-01-11 19:02:49 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -976,7 +976,9 @@ + "Invalid buffer size"); + return (0); + } +- tif->tif_rawdata = (uint8*) _TIFFmalloc(tif->tif_rawdatasize); ++ /* Initialize to zero to avoid uninitialized buffers in case of */ ++ /* short reads (http://bugzilla.maptools.org/show_bug.cgi?id=2651) */ ++ tif->tif_rawdata = (uint8*) _TIFFcalloc(1, tif->tif_rawdatasize); + tif->tif_flags |= TIFF_MYBUFFER; + } + if (tif->tif_rawdata == NULL) { +diff -ru tiff-4.0.7/libtiff/tif_unix.c tiff-4.0.7.new/libtiff/tif_unix.c +--- tiff-4.0.7/libtiff/tif_unix.c 1969-12-31 19:00:00.000000000 -0500 ++++ tiff-4.0.7.new/libtiff/tif_unix.c 2017-05-05 19:10:48.302645187 -0400 +@@ -1,4 +1,4 @@ +-/* $Id: tif_unix.c,v 1.27 2015-08-19 02:31:04 bfriesen Exp $ */ ++/* $Id: tif_unix.c,v 1.28 2017-01-11 19:02:49 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -316,6 +316,14 @@ + return (malloc((size_t) s)); + } + ++void* _TIFFcalloc(tmsize_t nmemb, tmsize_t siz) ++{ ++ if( nmemb == 0 || siz == 0 ) ++ return ((void *) NULL); ++ ++ return calloc((size_t) nmemb, (size_t)siz); ++} ++ + void + _TIFFfree(void* p) + { +diff -ru tiff-4.0.7/libtiff/tif_win32.c tiff-4.0.7.new/libtiff/tif_win32.c +--- tiff-4.0.7/libtiff/tif_win32.c 1969-12-31 19:00:00.000000000 -0500 ++++ tiff-4.0.7.new/libtiff/tif_win32.c 2017-05-05 19:13:06.903399627 -0400 +@@ -1,4 +1,4 @@ +-/* $Id: tif_win32.c,v 1.41 2015-08-23 20:12:44 bfriesen Exp $ */ ++/* $Id: tif_win32.c,v 1.42 2017-01-11 19:02:49 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -360,6 +360,14 @@ + return (malloc((size_t) s)); + } + ++void* _TIFFcalloc(tmsize_t nmemb, tmsize_t siz) ++{ ++ if( nmemb == 0 || siz == 0 ) ++ return ((void *) NULL); ++ ++ return calloc((size_t) nmemb, (size_t)siz); ++} ++ + void + _TIFFfree(void* p) + { diff --git a/gnu/packages/patches/libtiff-CVE-2017-7594.patch b/gnu/packages/patches/libtiff-CVE-2017-7594.patch new file mode 100644 index 0000000000..d17997d447 --- /dev/null +++ b/gnu/packages/patches/libtiff-CVE-2017-7594.patch @@ -0,0 +1,54 @@ +Fixes CVE-2017-7594 (Direct leak in tif_ojpeg.c): + +http://bugzilla.maptools.org/show_bug.cgi?id=2659 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7594 +https://security-tracker.debian.org/tracker/CVE-2017-7594 + +2017-01-12 Even Rouault + + * libtiff/tif_ojpeg.c: fix leak in OJPEGReadHeaderInfoSecTablesAcTable + when read fails. + Patch by Nicolás Peña. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2659 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1212; previous revision: 1.1211 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_ojpeg.c,v <-- libtiff/tif_ojpeg.c +new revision: 1.67; previous revision: 1.66 + +Index: libtiff/libtiff/tif_ojpeg.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_ojpeg.c,v +retrieving revision 1.67 +retrieving revision 1.68 +diff -u -r1.67 -r1.68 +--- libtiff/libtiff/tif_ojpeg.c 12 Jan 2017 17:43:26 -0000 1.67 ++++ libtiff/libtiff/tif_ojpeg.c 12 Jan 2017 19:23:20 -0000 1.68 +@@ -1,4 +1,4 @@ +-/* $Id: tif_ojpeg.c,v 1.66 2016-12-03 11:15:18 erouault Exp $ */ ++/* $Id: tif_ojpeg.c,v 1.68 2017-01-12 19:23:20 erouault Exp $ */ + + /* WARNING: The type of JPEG encapsulation defined by the TIFF Version 6.0 + specification is now totally obsolete and deprecated for new applications and +@@ -1790,7 +1790,10 @@ + TIFFSeekFile(tif,sp->qtable_offset[m],SEEK_SET); + p=(uint32)TIFFReadFile(tif,&ob[sizeof(uint32)+5],64); + if (p!=64) ++ { ++ _TIFFfree(ob); + return(0); ++ } + sp->qtable[m]=ob; + sp->sof_tq[m]=m; + } +@@ -1854,7 +1857,10 @@ + rb[sizeof(uint32)+5+n]=o[n]; + p=(uint32)TIFFReadFile(tif,&(rb[sizeof(uint32)+21]),q); + if (p!=q) ++ { ++ _TIFFfree(rb); + return(0); ++ } + sp->dctable[m]=rb; + sp->sos_tda[m]=(m<<4); + } diff --git a/gnu/packages/patches/libtiff-multiple-UBSAN-crashes.patch b/gnu/packages/patches/libtiff-multiple-UBSAN-crashes.patch new file mode 100644 index 0000000000..2f4509f386 --- /dev/null +++ b/gnu/packages/patches/libtiff-multiple-UBSAN-crashes.patch @@ -0,0 +1,449 @@ +Fixes CVE-2017-{7595,7596,7597,7598,7599,7600,7601,7602}: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7595 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7596 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7597 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7598 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7599 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7600 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7601 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7602 + +2017-01-11 Even Rouault + + * libtiff/tif_dir.c, tif_dirread.c, tif_dirwrite.c: implement various + clampings + of double to other data types to avoid undefined behaviour if the + output range + isn't big enough to hold the input value. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2643 + http://bugzilla.maptools.org/show_bug.cgi?id=2642 + http://bugzilla.maptools.org/show_bug.cgi?id=2646 + http://bugzilla.maptools.org/show_bug.cgi?id=2647 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1204; previous revision: 1.1203 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_dir.c,v <-- libtiff/tif_dir.c +new revision: 1.129; previous revision: 1.128 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_dirread.c,v <-- libtiff/tif_dirread.c +new revision: 1.207; previous revision: 1.206 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_dirwrite.c,v <-- libtiff/tif_dirwrite.c +new revision: 1.85; previous revision: 1.84 + +2017-01-11 Even Rouault + + * libtiff/tif_dirread.c: avoid division by floating point 0 in + TIFFReadDirEntryCheckedRational() and + TIFFReadDirEntryCheckedSrational(), + and return 0 in that case (instead of infinity as before presumably) + Apparently some sanitizers do not like those divisions by zero. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2644 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1203; previous revision: 1.1202 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_dirread.c,v <-- libtiff/tif_dirread.c +new revision: 1.206; previous revision: 1.205 + +2017-01-11 Even Rouault + + * libtiff/tif_jpeg.c: validate BitsPerSample in JPEGSetupEncode() to + avoid undefined behaviour caused by invalid shift exponent. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2648 + + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1205; previous revision: 1.1204 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_jpeg.c,v <-- libtiff/tif_jpeg.c +new revision: 1.126; previous revision: 1.125 + +2017-01-11 Even Rouault + + * libtiff/tif_read.c: avoid potential undefined behaviour on signed + integer addition in TIFFReadRawStrip1() in isMapped() case. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2650 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1206; previous revision: 1.1205 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_read.c,v <-- libtiff/tif_read.c +new revision: 1.51; previous revision: 1.50 + +Index: libtiff/libtiff/tif_dir.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dir.c,v +retrieving revision 1.128 +retrieving revision 1.129 +diff -u -r1.128 -r1.129 +--- libtiff/libtiff/tif_dir.c 3 Dec 2016 15:30:31 -0000 1.128 ++++ libtiff/libtiff/tif_dir.c 11 Jan 2017 16:09:02 -0000 1.129 +@@ -1,4 +1,4 @@ +-/* $Id: tif_dir.c,v 1.128 2016-12-03 15:30:31 erouault Exp $ */ ++/* $Id: tif_dir.c,v 1.129 2017-01-11 16:09:02 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -31,6 +31,7 @@ + * (and also some miscellaneous stuff) + */ + #include "tiffiop.h" ++#include + + /* + * These are used in the backwards compatibility code... +@@ -154,6 +155,15 @@ + return (0); + } + ++static float TIFFClampDoubleToFloat( double val ) ++{ ++ if( val > FLT_MAX ) ++ return FLT_MAX; ++ if( val < -FLT_MAX ) ++ return -FLT_MAX; ++ return (float)val; ++} ++ + static int + _TIFFVSetField(TIFF* tif, uint32 tag, va_list ap) + { +@@ -312,13 +322,13 @@ + dblval = va_arg(ap, double); + if( dblval < 0 ) + goto badvaluedouble; +- td->td_xresolution = (float) dblval; ++ td->td_xresolution = TIFFClampDoubleToFloat( dblval ); + break; + case TIFFTAG_YRESOLUTION: + dblval = va_arg(ap, double); + if( dblval < 0 ) + goto badvaluedouble; +- td->td_yresolution = (float) dblval; ++ td->td_yresolution = TIFFClampDoubleToFloat( dblval ); + break; + case TIFFTAG_PLANARCONFIG: + v = (uint16) va_arg(ap, uint16_vap); +@@ -327,10 +337,10 @@ + td->td_planarconfig = (uint16) v; + break; + case TIFFTAG_XPOSITION: +- td->td_xposition = (float) va_arg(ap, double); ++ td->td_xposition = TIFFClampDoubleToFloat( va_arg(ap, double) ); + break; + case TIFFTAG_YPOSITION: +- td->td_yposition = (float) va_arg(ap, double); ++ td->td_yposition = TIFFClampDoubleToFloat( va_arg(ap, double) ); + break; + case TIFFTAG_RESOLUTIONUNIT: + v = (uint16) va_arg(ap, uint16_vap); +Index: libtiff/libtiff/tif_dirread.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dirread.c,v +retrieving revision 1.206 +retrieving revision 1.207 +diff -u -r1.206 -r1.207 +--- libtiff/libtiff/tif_dirread.c 11 Jan 2017 13:28:01 -0000 1.206 ++++ libtiff/libtiff/tif_dirread.c 11 Jan 2017 16:09:02 -0000 1.207 +@@ -1,4 +1,4 @@ +-/* $Id: tif_dirread.c,v 1.205 2016-12-03 11:02:15 erouault Exp $ */ ++/* $Id: tif_dirread.c,v 1.207 2017-01-11 16:09:02 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -40,6 +40,7 @@ + */ + + #include "tiffiop.h" ++#include + + #define IGNORE 0 /* tag placeholder used below */ + #define FAILED_FII ((uint32) -1) +@@ -2406,7 +2407,14 @@ + ma=(double*)origdata; + mb=data; + for (n=0; n FLT_MAX ) ++ val = FLT_MAX; ++ else if( val < -FLT_MAX ) ++ val = -FLT_MAX; ++ *mb++=(float)val; ++ } + } + break; + } +Index: libtiff/libtiff/tif_dirwrite.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dirwrite.c,v +retrieving revision 1.84 +retrieving revision 1.85 +diff -u -r1.84 -r1.85 +--- libtiff/libtiff/tif_dirwrite.c 11 Jan 2017 12:51:59 -0000 1.84 ++++ libtiff/libtiff/tif_dirwrite.c 11 Jan 2017 16:09:02 -0000 1.85 +@@ -1,4 +1,4 @@ +-/* $Id: tif_dirwrite.c,v 1.83 2016-10-25 21:35:15 erouault Exp $ */ ++/* $Id: tif_dirwrite.c,v 1.85 2017-01-11 16:09:02 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -30,6 +30,7 @@ + * Directory Write Support Routines. + */ + #include "tiffiop.h" ++#include + + #ifdef HAVE_IEEEFP + #define TIFFCvtNativeToIEEEFloat(tif, n, fp) +@@ -939,6 +940,69 @@ + return(0); + } + ++static float TIFFClampDoubleToFloat( double val ) ++{ ++ if( val > FLT_MAX ) ++ return FLT_MAX; ++ if( val < -FLT_MAX ) ++ return -FLT_MAX; ++ return (float)val; ++} ++ ++static int8 TIFFClampDoubleToInt8( double val ) ++{ ++ if( val > 127 ) ++ return 127; ++ if( val < -128 || val != val ) ++ return -128; ++ return (int8)val; ++} ++ ++static int16 TIFFClampDoubleToInt16( double val ) ++{ ++ if( val > 32767 ) ++ return 32767; ++ if( val < -32768 || val != val ) ++ return -32768; ++ return (int16)val; ++} ++ ++static int32 TIFFClampDoubleToInt32( double val ) ++{ ++ if( val > 0x7FFFFFFF ) ++ return 0x7FFFFFFF; ++ if( val < -0x7FFFFFFF-1 || val != val ) ++ return -0x7FFFFFFF-1; ++ return (int32)val; ++} ++ ++static uint8 TIFFClampDoubleToUInt8( double val ) ++{ ++ if( val < 0 ) ++ return 0; ++ if( val > 255 || val != val ) ++ return 255; ++ return (uint8)val; ++} ++ ++static uint16 TIFFClampDoubleToUInt16( double val ) ++{ ++ if( val < 0 ) ++ return 0; ++ if( val > 65535 || val != val ) ++ return 65535; ++ return (uint16)val; ++} ++ ++static uint32 TIFFClampDoubleToUInt32( double val ) ++{ ++ if( val < 0 ) ++ return 0; ++ if( val > 0xFFFFFFFFU || val != val ) ++ return 0xFFFFFFFFU; ++ return (uint32)val; ++} ++ + static int + TIFFWriteDirectoryTagSampleformatArray(TIFF* tif, uint32* ndir, TIFFDirEntry* dir, uint16 tag, uint32 count, double* value) + { +@@ -959,7 +1023,7 @@ + if (tif->tif_dir.td_bitspersample<=32) + { + for (i = 0; i < count; ++i) +- ((float*)conv)[i] = (float)value[i]; ++ ((float*)conv)[i] = TIFFClampDoubleToFloat(value[i]); + ok = TIFFWriteDirectoryTagFloatArray(tif,ndir,dir,tag,count,(float*)conv); + } + else +@@ -971,19 +1035,19 @@ + if (tif->tif_dir.td_bitspersample<=8) + { + for (i = 0; i < count; ++i) +- ((int8*)conv)[i] = (int8)value[i]; ++ ((int8*)conv)[i] = TIFFClampDoubleToInt8(value[i]); + ok = TIFFWriteDirectoryTagSbyteArray(tif,ndir,dir,tag,count,(int8*)conv); + } + else if (tif->tif_dir.td_bitspersample<=16) + { + for (i = 0; i < count; ++i) +- ((int16*)conv)[i] = (int16)value[i]; ++ ((int16*)conv)[i] = TIFFClampDoubleToInt16(value[i]); + ok = TIFFWriteDirectoryTagSshortArray(tif,ndir,dir,tag,count,(int16*)conv); + } + else + { + for (i = 0; i < count; ++i) +- ((int32*)conv)[i] = (int32)value[i]; ++ ((int32*)conv)[i] = TIFFClampDoubleToInt32(value[i]); + ok = TIFFWriteDirectoryTagSlongArray(tif,ndir,dir,tag,count,(int32*)conv); + } + break; +@@ -991,19 +1055,19 @@ + if (tif->tif_dir.td_bitspersample<=8) + { + for (i = 0; i < count; ++i) +- ((uint8*)conv)[i] = (uint8)value[i]; ++ ((uint8*)conv)[i] = TIFFClampDoubleToUInt8(value[i]); + ok = TIFFWriteDirectoryTagByteArray(tif,ndir,dir,tag,count,(uint8*)conv); + } + else if (tif->tif_dir.td_bitspersample<=16) + { + for (i = 0; i < count; ++i) +- ((uint16*)conv)[i] = (uint16)value[i]; ++ ((uint16*)conv)[i] = TIFFClampDoubleToUInt16(value[i]); + ok = TIFFWriteDirectoryTagShortArray(tif,ndir,dir,tag,count,(uint16*)conv); + } + else + { + for (i = 0; i < count; ++i) +- ((uint32*)conv)[i] = (uint32)value[i]; ++ ((uint32*)conv)[i] = TIFFClampDoubleToUInt32(value[i]); + ok = TIFFWriteDirectoryTagLongArray(tif,ndir,dir,tag,count,(uint32*)conv); + } + break; +@@ -2102,7 +2102,7 @@ + m[0]=0; + m[1]=1; + } +- else if (value==(double)(uint32)value) ++ else if (value <= 0xFFFFFFFFU && value==(double)(uint32)value) + { + m[0]=(uint32)value; + m[1]=1; +@@ -2148,12 +2217,13 @@ + } + for (na=value, nb=m, nc=0; nc= 0 && *na <= (float)0xFFFFFFFFU && ++ *na==(float)(uint32)(*na)) + { + nb[0]=(uint32)(*na); + nb[1]=1; +Index: libtiff/libtiff/tif_dirread.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dirread.c,v +retrieving revision 1.205 +retrieving revision 1.206 +diff -u -r1.205 -r1.206 +--- libtiff/libtiff/tif_dirread.c 3 Dec 2016 11:02:15 -0000 1.205 ++++ libtiff/libtiff/tif_dirread.c 11 Jan 2017 13:28:01 -0000 1.206 +@@ -2872,7 +2872,10 @@ + m.l = direntry->tdir_offset.toff_long8; + if (tif->tif_flags&TIFF_SWAB) + TIFFSwabArrayOfLong(m.i,2); +- if (m.i[0]==0) ++ /* Not completely sure what we should do when m.i[1]==0, but some */ ++ /* sanitizers do not like division by 0.0: */ ++ /* http://bugzilla.maptools.org/show_bug.cgi?id=2644 */ ++ if (m.i[0]==0 || m.i[1]==0) + *value=0.0; + else + *value=(double)m.i[0]/(double)m.i[1]; +@@ -2900,7 +2903,10 @@ + m.l=direntry->tdir_offset.toff_long8; + if (tif->tif_flags&TIFF_SWAB) + TIFFSwabArrayOfLong(m.i,2); +- if ((int32)m.i[0]==0) ++ /* Not completely sure what we should do when m.i[1]==0, but some */ ++ /* sanitizers do not like division by 0.0: */ ++ /* http://bugzilla.maptools.org/show_bug.cgi?id=2644 */ ++ if ((int32)m.i[0]==0 || m.i[1]==0) + *value=0.0; + else + *value=(double)((int32)m.i[0])/(double)m.i[1]; +Index: libtiff/libtiff/tif_jpeg.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_jpeg.c,v +retrieving revision 1.125 +retrieving revision 1.126 +diff -u -r1.125 -r1.126 +--- libtiff/libtiff/tif_jpeg.c 11 Jan 2017 12:15:01 -0000 1.125 ++++ libtiff/libtiff/tif_jpeg.c 11 Jan 2017 16:13:50 -0000 1.126 +@@ -1,4 +1,4 @@ +-/* $Id: tif_jpeg.c,v 1.123 2016-01-23 21:20:34 erouault Exp $ */ ++/* $Id: tif_jpeg.c,v 1.126 2017-01-11 16:13:50 erouault Exp $ */ + + /* + * Copyright (c) 1994-1997 Sam Leffler +@@ -1632,6 +1632,13 @@ + "Invalig horizontal/vertical sampling value"); + return (0); + } ++ if( td->td_bitspersample > 16 ) ++ { ++ TIFFErrorExt(tif->tif_clientdata, module, ++ "BitsPerSample %d not allowed for JPEG", ++ td->td_bitspersample); ++ return (0); ++ } + + /* + * A ReferenceBlackWhite field *must* be present since the +Index: libtiff/libtiff/tif_read.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_read.c,v +retrieving revision 1.50 +retrieving revision 1.51 +diff -u -r1.50 -r1.51 +--- libtiff/libtiff/tif_read.c 2 Dec 2016 21:56:56 -0000 1.50 ++++ libtiff/libtiff/tif_read.c 11 Jan 2017 16:33:34 -0000 1.51 +@@ -420,16 +420,25 @@ + return ((tmsize_t)(-1)); + } + } else { +- tmsize_t ma,mb; ++ tmsize_t ma; + tmsize_t n; +- ma=(tmsize_t)td->td_stripoffset[strip]; +- mb=ma+size; +- if ((td->td_stripoffset[strip] > (uint64)TIFF_TMSIZE_T_MAX)||(ma>tif->tif_size)) +- n=0; +- else if ((mbtif->tif_size)) +- n=tif->tif_size-ma; +- else +- n=size; ++ if ((td->td_stripoffset[strip] > (uint64)TIFF_TMSIZE_T_MAX)|| ++ ((ma=(tmsize_t)td->td_stripoffset[strip])>tif->tif_size)) ++ { ++ n=0; ++ } ++ else if( ma > TIFF_TMSIZE_T_MAX - size ) ++ { ++ n=0; ++ } ++ else ++ { ++ tmsize_t mb=ma+size; ++ if (mb>tif->tif_size) ++ n=tif->tif_size-ma; ++ else ++ n=size; ++ } + if (n!=size) { + #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__)) + TIFFErrorExt(tif->tif_clientdata, module, From 7a4a64e99e65e96a4dc3e65ae691b4c80b7642e8 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 7 May 2017 17:32:37 +0200 Subject: [PATCH 157/386] gnu: re2: Add missing '#:modules' imports. Fixes . * gnu/packages/regex.scm (re2): Add missing '#:modules' imports. Signed-off-by: Danny Milosavljevic --- gnu/packages/regex.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm index 492f1d9fb3..04e4abac73 100644 --- a/gnu/packages/regex.scm +++ b/gnu/packages/regex.scm @@ -41,7 +41,10 @@ "14i9pf9ap8h48j1584ifsq7c7a884cr1s4r7zvpcb9x1xr9232wh")))) (build-system gnu-build-system) (arguments - `(#:test-target "test" + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:test-target "test" ;; There is no configure step, but the Makefile respects a prefix. ;; As ./configure does not know anything about the target CXX ;; we need to specify TARGET-g++ explicitly. From 4da18166282e72680155f7fd638553027af1ed58 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sat, 6 May 2017 23:24:08 +0100 Subject: [PATCH 158/386] gnu: serf: Add missing '#:modules' imports. Fixes . * gnu/packages/web.scm (serf): Add missing '#:modules' imports. Signed-off-by: Danny Milosavljevic --- gnu/packages/web.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 9c2074d86a..19a28553dc 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -829,7 +829,10 @@ from streaming URLs. It is a command-line wrapper for the libquvi library.") ;;("gss" ,gss) ("zlib" ,zlib))) (arguments - `(#:phases + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases ;; TODO: Add scons-build-system and use it here. (modify-phases %standard-phases (delete 'configure) From ba2260dbbc5a3c915e2cbd54d93f2f3af2a864c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 7 May 2017 18:05:14 +0200 Subject: [PATCH 159/386] git-download: Fix 'git-predicate' file membership. Previously, it the predicate would return #t for "m4/ChangeLog" if "ChangeLog" (in the top-level directory) was in FILES. This commit fixes the ambiguity. * guix/git-download.scm (git-predicate): Add 'inodes' variable. Use it to determine file membership. --- guix/git-download.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/guix/git-download.scm b/guix/git-download.scm index 5d86ab2b62..9f6d20ee38 100644 --- a/guix/git-download.scm +++ b/guix/git-download.scm @@ -145,6 +145,10 @@ absolute file name and STAT is the result of 'lstat'." (reverse lines)) (line (loop (cons line lines)))))) + (inodes (map (lambda (file) + (let ((stat (lstat file))) + (cons (stat:dev stat) (stat:ino stat)))) + files)) (status (close-pipe pipe))) (and (zero? status) (lambda (file stat) @@ -155,8 +159,10 @@ absolute file name and STAT is the result of 'lstat'." (any (lambda (f) (parent-directory? f file)) files)) ((or 'regular 'symlink) - (any (lambda (f) (string-suffix? f file)) - files)) + ;; Comparing file names is always tricky business so we rely on + ;; inode numbers instead + (member (cons (stat:dev stat) (stat:ino stat)) + inodes)) (_ #f)))))) From fddee154b6358dbcd0f4b3da748f0a5a24ae9bfa Mon Sep 17 00:00:00 2001 From: ng0 Date: Sat, 6 May 2017 14:00:34 +0000 Subject: [PATCH 160/386] gnu: lchat: Update to 0.0.0-2.25d90f4. * gnu/packages/suckless.scm (lchat): Update to 0.0.0-2.25d90f4. Signed-off-by: Leo Famulari --- gnu/packages/suckless.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 3fcc02db70..1d3d1d367f 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2015 Amirouche Boubekki ;;; Copyright © 2016 Al McElrath -;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2015 Dmitry Bogatov ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2016 Eric Bavier @@ -681,8 +681,8 @@ as -1, to be used instead of U+FFFD. ;; No release tarballs so far. (define-public lchat - (let ((revision "1") - (commit "bbde23732f8c7769b982f0c1bda9b99fbf93f932")) + (let ((revision "2") + (commit "25d90f4630b45e2b609d2e3daecb32cf5ff065fd")) (package (name "lchat") (version (string-append "0.0.0-" revision "." (string-take commit 7))) @@ -695,7 +695,7 @@ as -1, to be used instead of U+FFFD. (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "00q3rc0aa5416jvjvrj71x1wnr0331kxhvjjs7pyxgnq4xf36k63")))) + "0dvljyq3m7rxxkqv7rkmijak6vj8i4db3iq2z988bvf76chz268b")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests From ce949c10e50da6b385938c929c257c5ca421d651 Mon Sep 17 00:00:00 2001 From: Muriithi Frederick Muriuki Date: Sun, 7 May 2017 05:29:41 +0300 Subject: [PATCH 161/386] gnu: Add python-httpbin * gnu/packages/web.scm (python-httpbin, python2-httpbin): New variables. Signed-off-by: Leo Famulari --- gnu/packages/web.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 19a28553dc..935f80210b 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4494,3 +4494,32 @@ functions of Tidy.") Features include the ability to stop SQL injections, XSS and CSRF attacks and exploit attempts.") (license l:gpl2))) + +(define-public python-httpbin + (package + (name "python-httpbin") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "httpbin" version)) + (sha256 + (base32 + "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr")))) + (build-system python-build-system) + (propagated-inputs + `(("python-decorator" ,python-decorator) + ("python-flask" ,python-flask) + ("python-itsdangerous" ,python-itsdangerous) + ("python-markupsafe" ,python-markupsafe) + ("python-six" ,python-six))) + (home-page "https://github.com/Runscope/httpbin") + (synopsis "HTTP request and response service") + (description "Testing an HTTP Library can become difficult sometimes. +@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the +response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are +JSON-encoded.") + (license l:isc))) + +(define-public python2-httpbin + (package-with-python2 python-httpbin)) From 86ab11205ed2b5c925ed9c8328736a433b0d933c Mon Sep 17 00:00:00 2001 From: Muriithi Frederick Muriuki Date: Sun, 7 May 2017 05:29:42 +0300 Subject: [PATCH 162/386] gnu: Add python-pytest-httpbin * gnu/packages/web.scm (python-pytest-httpbin, python2-pytest-httbin): New variables. Signed-off-by: Leo Famulari --- gnu/packages/web.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 935f80210b..efaa1b5742 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4523,3 +4523,32 @@ JSON-encoded.") (define-public python2-httpbin (package-with-python2 python-httpbin)) + +(define-public python-pytest-httpbin + (package + (name "python-pytest-httpbin") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-httpbin" version)) + (sha256 + (base32 + "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-httpbin" ,python-httpbin) + ("python-pytest" ,python-pytest))) + (home-page + "https://github.com/kevin1024/pytest-httpbin") + (synopsis + "Test your HTTP library against a local copy of httpbin") + (description + "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected +into your tests. It automatically starts up a HTTP server in a separate thread running +@code{httpbin} and provides your test with the URL in the fixture.") + (license l:expat))) + +(define-public python2-pytest-httpbin + (package-with-python2 python-pytest-httpbin)) From 37f46a4bc51886c0d0df797bfbb13a50fe647567 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 7 May 2017 17:13:38 -0400 Subject: [PATCH 163/386] gnu: pcre2: Fix CVE-2017-8786. * gnu/packages/patches/pcre2-CVE-2017-8786.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/pcre.scm (pcre2)[source]: Use it. --- gnu/local.mk | 1 + .../patches/pcre2-CVE-2017-8786.patch | 155 ++++++++++++++++++ gnu/packages/pcre.scm | 3 +- 3 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/pcre2-CVE-2017-8786.patch diff --git a/gnu/local.mk b/gnu/local.mk index ce7fb68416..dcf9b14cec 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -859,6 +859,7 @@ dist_patch_DATA = \ %D%/packages/patches/patch-hurd-path-max.patch \ %D%/packages/patches/pcre-CVE-2017-7186.patch \ %D%/packages/patches/pcre2-CVE-2017-7186.patch \ + %D%/packages/patches/pcre2-CVE-2017-8786.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-deterministic-ordering.patch \ %D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \ diff --git a/gnu/packages/patches/pcre2-CVE-2017-8786.patch b/gnu/packages/patches/pcre2-CVE-2017-8786.patch new file mode 100644 index 0000000000..6071d58f07 --- /dev/null +++ b/gnu/packages/patches/pcre2-CVE-2017-8786.patch @@ -0,0 +1,155 @@ +Fix CVE-2017-8786: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8786 +https://bugs.exim.org/show_bug.cgi?id=2079 +https://blogs.gentoo.org/ago/2017/04/29/libpcre-heap-based-buffer-overflow-write-in-pcre2test-c/ + +Patch copied from upstream source repository: + +https://vcs.pcre.org/pcre2?view=revision&revision=696 +https://vcs.pcre.org/pcre2?view=revision&revision=697 + +--- trunk/doc/pcre2api.3 2017/03/21 16:48:40 695 ++++ trunk/doc/pcre2api.3 2017/03/21 17:46:21 696 +@@ -1,4 +1,4 @@ +-.TH PCRE2API 3 "24 December 2016" "PCRE2 10.23" ++.TH PCRE2API 3 "21 March 2017" "PCRE2 10.30" + .SH NAME + PCRE2 - Perl-compatible regular expressions (revised API) + .sp +@@ -2633,8 +2633,8 @@ + A text message for an error code from any PCRE2 function (compile, match, or + auxiliary) can be obtained by calling \fBpcre2_get_error_message()\fP. The code + is passed as the first argument, with the remaining two arguments specifying a +-code unit buffer and its length, into which the text message is placed. Note +-that the message is returned in code units of the appropriate width for the ++code unit buffer and its length in code units, into which the text message is ++placed. The message is returned in code units of the appropriate width for the + library that is being used. + .P + The returned message is terminated with a trailing zero, and the function +@@ -3321,6 +3321,6 @@ + .rs + .sp + .nf +-Last updated: 23 December 2016 +-Copyright (c) 1997-2016 University of Cambridge. ++Last updated: 21 March 2017 ++Copyright (c) 1997-2017 University of Cambridge. + .fi +--- trunk/src/pcre2_error.c 2017/03/21 16:48:40 695 ++++ trunk/src/pcre2_error.c 2017/03/21 17:46:21 696 +@@ -271,7 +271,7 @@ + Arguments: + enumber error number + buffer where to put the message (zero terminated) +- size size of the buffer ++ size size of the buffer in code units + + Returns: length of message if all is well + negative on error +--- trunk/src/pcre2test.c 2017/03/21 17:46:21 696 ++++ trunk/src/pcre2test.c 2017/03/21 18:36:13 697 +@@ -1017,9 +1017,9 @@ + if (test_mode == PCRE8_MODE) \ + r = pcre2_get_error_message_8(a,G(b,8),G(G(b,8),_size)); \ + else if (test_mode == PCRE16_MODE) \ +- r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size)); \ ++ r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size/2)); \ + else \ +- r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size)) ++ r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size/4)) + + #define PCRE2_GET_OVECTOR_COUNT(a,b) \ + if (test_mode == PCRE8_MODE) \ +@@ -1399,6 +1399,9 @@ + + /* ----- Common macros for two-mode cases ----- */ + ++#define BYTEONE (BITONE/8) ++#define BYTETWO (BITTWO/8) ++ + #define CASTFLD(t,a,b) \ + ((test_mode == G(G(PCRE,BITONE),_MODE))? (t)(G(a,BITONE)->b) : \ + (t)(G(a,BITTWO)->b)) +@@ -1481,9 +1484,9 @@ + + #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ + if (test_mode == G(G(PCRE,BITONE),_MODE)) \ +- r = G(pcre2_get_error_message_,BITONE)(a,G(b,BITONE),G(G(b,BITONE),_size)); \ ++ r = G(pcre2_get_error_message_,BITONE)(a,G(b,BITONE),G(G(b,BITONE),_size/BYTEONE)); \ + else \ +- r = G(pcre2_get_error_message_,BITTWO)(a,G(b,BITTWO),G(G(b,BITTWO),_size)) ++ r = G(pcre2_get_error_message_,BITTWO)(a,G(b,BITTWO),G(G(b,BITTWO),_size/BYTETWO)) + + #define PCRE2_GET_OVECTOR_COUNT(a,b) \ + if (test_mode == G(G(PCRE,BITONE),_MODE)) \ +@@ -1904,7 +1907,7 @@ + #define PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j) \ + a = pcre2_dfa_match_16(G(b,16),(PCRE2_SPTR16)c,d,e,f,G(g,16),h,i,j) + #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ +- r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size)) ++ r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size/2)) + #define PCRE2_GET_OVECTOR_COUNT(a,b) a = pcre2_get_ovector_count_16(G(b,16)) + #define PCRE2_GET_STARTCHAR(a,b) a = pcre2_get_startchar_16(G(b,16)) + #define PCRE2_JIT_COMPILE(r,a,b) r = pcre2_jit_compile_16(G(a,16),b) +@@ -2000,7 +2003,7 @@ + #define PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j) \ + a = pcre2_dfa_match_32(G(b,32),(PCRE2_SPTR32)c,d,e,f,G(g,32),h,i,j) + #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ +- r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size)) ++ r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size/4)) + #define PCRE2_GET_OVECTOR_COUNT(a,b) a = pcre2_get_ovector_count_32(G(b,32)) + #define PCRE2_GET_STARTCHAR(a,b) a = pcre2_get_startchar_32(G(b,32)) + #define PCRE2_JIT_COMPILE(r,a,b) r = pcre2_jit_compile_32(G(a,32),b) +--- trunk/src/pcre2test.c 2017/03/21 16:48:40 695 ++++ trunk/src/pcre2test.c 2017/03/21 17:46:21 696 +@@ -2889,7 +2889,7 @@ + { + if (pbuffer32 != NULL) free(pbuffer32); + pbuffer32_size = 4*len + 4; +- if (pbuffer32_size < 256) pbuffer32_size = 256; ++ if (pbuffer32_size < 512) pbuffer32_size = 512; + pbuffer32 = (uint32_t *)malloc(pbuffer32_size); + if (pbuffer32 == NULL) + { +@@ -7600,7 +7600,8 @@ + int errcode; + char *endptr; + +-/* Ensure the relevant non-8-bit buffer is available. */ ++/* Ensure the relevant non-8-bit buffer is available. Ensure that it is at ++least 128 code units, because it is used for retrieving error messages. */ + + #ifdef SUPPORT_PCRE2_16 + if (test_mode == PCRE16_MODE) +@@ -7620,7 +7621,7 @@ + #ifdef SUPPORT_PCRE2_32 + if (test_mode == PCRE32_MODE) + { +- pbuffer32_size = 256; ++ pbuffer32_size = 512; + pbuffer32 = (uint32_t *)malloc(pbuffer32_size); + if (pbuffer32 == NULL) + { +--- trunk/testdata/testinput2 2017/03/21 16:48:40 695 ++++ trunk/testdata/testinput2 2017/03/21 17:46:21 696 +@@ -5017,4 +5017,6 @@ + + /(? Date: Sun, 7 May 2017 17:19:40 -0400 Subject: [PATCH 164/386] gnu: pcre2: Fix build configuration for pcre2. * gnu/packages/pcre.scm (pcre2)[arguments]: Remove unknown configure flag '--enable-unicode-properties' and adapt other flags for pcre2. --- gnu/packages/pcre.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index b632b9f488..58beab0a96 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -100,10 +100,9 @@ POSIX regular expression API.") ("zlib" ,zlib))) (arguments `(#:configure-flags '("--enable-unicode" - "--enable-pcregrep-libz" - "--enable-pcregrep-libbz2" - "--enable-pcretest-libreadline" - "--enable-unicode-properties" + "--enable-pcre2grep-libz" + "--enable-pcre2grep-libbz2" + "--enable-pcre2test-libreadline" "--enable-pcre2-16" "--enable-pcre2-32" "--enable-jit") From 4b7917f2f3669e5ef34b4c2ef723fd596177f163 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 00:22:30 +0200 Subject: [PATCH 165/386] gnu: guix: Update snapshot. * gnu/packages/package-management.scm (guix): Update to ba2260d. [version]: Take 7 characters from COMMIT. [arguments]: Pass 'ac_cv_guix_test_root' to #:configure-flags. --- gnu/packages/package-management.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 467613ef94..1d201f1893 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -73,18 +73,16 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.12.0") - (commit "25a49294caf2386e65fc1b12a2508324be0b1cc2") - (revision 9)) + (commit "ba2260dbbc5a3c915e2cbd54d93f2f3af2a864c3") + (revision 10)) (package (name "guix") - ;; Note: use a very short commit id; with a longer one, the limit on - ;; hash-bang lines would be exceeded while running the tests. (version (if (zero? revision) version (string-append version "-" (number->string revision) - "." (string-take commit 4)))) + "." (string-take commit 7)))) (source (origin (method git-fetch) (uri (git-reference @@ -92,7 +90,7 @@ (commit commit))) (sha256 (base32 - "0p4rh0629j89v4ka5dsp70a1xrfhg7sxjjq54p68vw7x5dkann4a")) + "0nkwbblsnl7kv2n8jf8c6rl3a7dynaqxizhhni18vbnmvza35c79")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -110,7 +108,12 @@ ;; we don't keep a reference to Graphviz, whose ;; closure is pretty big (too big for the GuixSD ;; installation image.) - "ac_cv_path_DOT_USER_PROGRAM=dot") + "ac_cv_path_DOT_USER_PROGRAM=dot" + + ;; To avoid problems with the length of shebangs, + ;; choose a fixed-width and short directory name + ;; for tests. + "ac_cv_guix_test_root=/tmp/guix-tests") #:parallel-tests? #f ;work around #:modules ((guix build gnu-build-system) From 151960e4361c451f4268148a50e3c6b5accd61a6 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Sat, 6 May 2017 12:19:44 +0000 Subject: [PATCH 166/386] gnu: elixir: Update to 1.4.2. * gnu/packages/elixir.scm (elixir): Update to 1.4.2. * gnu/packages/patches/elixir-disable-failing-tests.patch: Adjust. Signed-off-by: Leo Famulari --- gnu/packages/elixir.scm | 11 +- .../elixir-disable-failing-tests.patch | 145 ++++++++++-------- 2 files changed, 90 insertions(+), 66 deletions(-) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 4e430b323f..7425b49a43 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Leo Famulari -;;; Copyright © 2016 Pjotr Prins +;;; Copyright © 2016, 2017 Pjotr Prins ;;; Copyright © 2016 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. @@ -30,7 +30,7 @@ (define-public elixir (package (name "elixir") - (version "1.3.2") + (version "1.4.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/elixir-lang/elixir" @@ -38,9 +38,10 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0jsc6kl7f74yszcypdv3w3vhyc9qfqav8nwc41in082m0vpfy95y")) - ;; FIXME: Some tests had to be disabled as they fail in the - ;; build environment. Common failures are: + "0gsmgx4h6rvxilcbsx2z6yirm6g2g5bsxdvr0608ng4bsv22wknb")) + ;; FIXME: 27 tests (out of 4K) had to be disabled as + ;; they fail in the build environment. Common failures + ;; are: ;; - Mix.Shell.cmd() fails with error 130 ;; - The git_repo fixture cannot be found ;; - Communication with spawned processes fails with EPIPE diff --git a/gnu/packages/patches/elixir-disable-failing-tests.patch b/gnu/packages/patches/elixir-disable-failing-tests.patch index 0c67562f8d..547598b292 100644 --- a/gnu/packages/patches/elixir-disable-failing-tests.patch +++ b/gnu/packages/patches/elixir-disable-failing-tests.patch @@ -16,7 +16,7 @@ index 3ffd56c..1232d19 100644 @@ -39,6 +39,7 @@ end defmodule Kernel.CLI.OptionParsingTest do use ExUnit.Case, async: true - + + @tag :skip test "properly parses paths" do root = fixture_path("../../..") |> to_charlist @@ -24,7 +24,7 @@ index 3ffd56c..1232d19 100644 @@ -57,6 +58,7 @@ end defmodule Kernel.CLI.AtExitTest do use ExUnit.Case, async: true - + + @tag :skip test "invokes at_exit callbacks" do assert elixir(fixture_path("at_exit.exs") |> to_charlist) == @@ -32,7 +32,7 @@ index 3ffd56c..1232d19 100644 @@ -66,6 +68,7 @@ end defmodule Kernel.CLI.ErrorTest do use ExUnit.Case, async: true - + + @tag :skip test "properly format errors" do assert :string.str('** (throw) 1', elixir('-e "throw 1"')) == 0 @@ -40,7 +40,7 @@ index 3ffd56c..1232d19 100644 @@ -86,6 +89,7 @@ defmodule Kernel.CLI.CompileTest do {:ok, [tmp_dir_path: tmp_dir_path, beam_file_path: beam_file_path, fixture: fixture]} end - + + @tag :skip test "compiles code", context do assert elixirc('#{context[:fixture]} -o #{context[:tmp_dir_path]}') == '' @@ -48,7 +48,7 @@ index 3ffd56c..1232d19 100644 @@ -96,6 +100,7 @@ defmodule Kernel.CLI.CompileTest do Code.delete_path context[:tmp_dir_path] end - + + @tag :skip test "fails on missing patterns", context do output = elixirc('#{context[:fixture]} non_existing.ex -o #{context[:tmp_dir_path]}') @@ -56,11 +56,11 @@ index 3ffd56c..1232d19 100644 @@ -103,6 +108,7 @@ defmodule Kernel.CLI.CompileTest do refute File.exists?(context[:beam_file_path]), "expected the sample to not be compiled" end - + + @tag :skip test "fails on missing write access to .beam file", context do compilation_args = '#{context[:fixture]} -o #{context[:tmp_dir_path]}' - + diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs index 801d852..40fc5bc 100644 --- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs @@ -68,19 +68,19 @@ index 801d852..40fc5bc 100644 @@ -60,16 +60,19 @@ defmodule Kernel.DialyzerTest do assert_dialyze_no_warnings! context end - + + @tag :skip test "no warnings on rewrites", context do copy_beam! context, Dialyzer.Rewrite assert_dialyze_no_warnings! context end - + + @tag :skip test "no warnings on raise", context do copy_beam! context, Dialyzer.Raise assert_dialyze_no_warnings! context end - + + @tag :skip test "no warnings on macrocallback", context do copy_beam! context, Dialyzer.Macrocallback @@ -94,7 +94,7 @@ index aafa559..0f9c178 100644 assert System.endianness == System.compiled_endianness end - -+ ++ + @tag :skip test "argv/0" do list = elixir('-e "IO.inspect System.argv" -- -o opt arg1 arg2 --long-opt 10') @@ -106,7 +106,7 @@ index fff3351..d6ed1b3 100644 @@ -244,6 +244,7 @@ defmodule Mix.DepTest do end end - + + @tag :skip test "remote converger" do deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"}, @@ -114,39 +114,12 @@ index fff3351..d6ed1b3 100644 @@ -301,6 +302,7 @@ defmodule Mix.DepTest do end end - + + @tag :skip test "remote converger is not invoked if deps diverge" do deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"}, {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo"), only: :test}] -diff --git a/lib/mix/test/mix/rebar_test.exs b/lib/mix/test/mix/rebar_test.exs -index d2dd098..12cef15 100644 ---- a/lib/mix/test/mix/rebar_test.exs -+++ b/lib/mix/test/mix/rebar_test.exs -@@ -120,6 +120,7 @@ defmodule Mix.RebarTest do - assert Enum.all?(deps, &(&1.manager == :rebar3)) - end - -+ @tag :skip - test "Rebar overrides" do - Mix.Project.push(RebarOverrideAsDep) - -@@ -150,6 +151,7 @@ defmodule Mix.RebarTest do - end - end - -+ @tag :skip - test "get and compile dependencies for Rebar" do - Mix.Project.push(RebarAsDep) - -@@ -180,6 +182,7 @@ defmodule Mix.RebarTest do - end - end - -+ @tag :skip - test "get and compile dependencies for rebar3" do - Mix.Project.push(Rebar3AsDep) - + diff --git a/lib/mix/test/mix/shell/io_test.exs b/lib/mix/test/mix/shell/io_test.exs index 9bfb6b4..d982ef3 100644 --- a/lib/mix/test/mix/shell/io_test.exs @@ -154,11 +127,11 @@ index 9bfb6b4..d982ef3 100644 @@ -29,6 +29,7 @@ defmodule Mix.Shell.IOTest do assert capture_io("", fn -> refute yes?("Ok?") end) end - + + @tag :skip test "runs a given command" do assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == "hello\n" - + diff --git a/lib/mix/test/mix/shell/quiet_test.exs b/lib/mix/test/mix/shell/quiet_test.exs index 626429b..99fab35 100644 --- a/lib/mix/test/mix/shell/quiet_test.exs @@ -166,11 +139,11 @@ index 626429b..99fab35 100644 @@ -29,6 +29,7 @@ defmodule Mix.Shell.QuietTest do assert capture_io("", fn -> refute yes?("Ok?") end) end - + + @tag :skip test "runs a given command" do assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == "" - + diff --git a/lib/mix/test/mix/tasks/cmd_test.exs b/lib/mix/test/mix/tasks/cmd_test.exs index db4bf06..4d441f7 100644 --- a/lib/mix/test/mix/tasks/cmd_test.exs @@ -178,7 +151,7 @@ index db4bf06..4d441f7 100644 @@ -3,6 +3,7 @@ Code.require_file "../../test_helper.exs", __DIR__ defmodule Mix.Tasks.CmdTest do use MixTest.Case - + + @tag :skip test "runs the command for each app" do in_fixture "umbrella_dep/deps/umbrella", fn -> @@ -190,19 +163,19 @@ index 4f09ff3..c371997 100644 @@ -29,6 +29,7 @@ defmodule Mix.Tasks.Deps.TreeTest do end end - + + @tag :skip test "shows the dependency tree", context do Mix.Project.push ConvergedDepsApp - + @@ -109,6 +110,7 @@ defmodule Mix.Tasks.Deps.TreeTest do end end - + + @tag :skip test "shows the dependency tree in DOT graph format", context do Mix.Project.push ConvergedDepsApp - + diff --git a/lib/mix/test/mix/tasks/deps_test.exs b/lib/mix/test/mix/tasks/deps_test.exs index b061777..cc45cf8 100644 --- a/lib/mix/test/mix/tasks/deps_test.exs @@ -210,43 +183,43 @@ index b061777..cc45cf8 100644 @@ -96,6 +96,7 @@ end end - + + @tag :skip test "prints list of dependencies and their lock status" do Mix.Project.push DepsApp - + @@ -409,6 +409,7 @@ defmodule Mix.Tasks.DepsTest do end end - + + @tag :skip test "fails on diverged dependencies by requirement" do Mix.Project.push ConvergedDepsApp - + @@ -440,6 +441,7 @@ defmodule Mix.Tasks.DepsTest do end end - + + @tag :skip test "fails on diverged dependencies even when optional" do Mix.Project.push ConvergedDepsApp - + @@ -469,6 +471,7 @@ defmodule Mix.Tasks.DepsTest do end end - + + @tag :skip test "works with converged dependencies" do Mix.Project.push ConvergedDepsApp - + @@ -491,6 +494,7 @@ defmodule Mix.Tasks.DepsTest do purge [GitRepo, GitRepo.Mixfile] end - + + @tag :skip test "works with overridden dependencies" do Mix.Project.push OverriddenDepsApp - + diff --git a/lib/mix/test/mix/umbrella_test.exs b/lib/mix/test/mix/umbrella_test.exs index 69f9428..406668a 100644 --- a/lib/mix/test/mix/umbrella_test.exs @@ -254,8 +227,58 @@ index 69f9428..406668a 100644 @@ -98,6 +98,7 @@ defmodule Mix.UmbrellaTest do end end - + + @tag :skip test "loads umbrella child dependencies in all environments" do in_fixture "umbrella_dep/deps/umbrella", fn -> Mix.Project.in_project :umbrella, ".", fn _ -> + +diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs +index 792222c..e90beb9 100644 +--- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs ++++ b/lib/elixir/test/elixir/kernel/dialyzer_test.exs +@@ -54,6 +54,7 @@ defmodule Kernel.DialyzerTest do + {:ok, [outdir: dir, dialyzer: dialyzer]} + end + ++ @tag :skip + test "no warnings on valid remote calls", context do + copy_beam! context, Dialyzer.RemoteCall + assert_dialyze_no_warnings! context +@@ -78,11 +79,13 @@ defmodule Kernel.DialyzerTest do + assert_dialyze_no_warnings! context + end + ++ @tag :skip + test "no warnings on struct update", context do + copy_beam! context, Dialyzer.StructUpdate + assert_dialyze_no_warnings! context + end + ++ @tag :skip + test "no warnings on protocol calls with opaque types", context do + copy_beam! context, Dialyzer.ProtocolOpaque + copy_beam! context, Dialyzer.ProtocolOpaque.Entity +@@ -90,6 +93,7 @@ defmodule Kernel.DialyzerTest do + assert_dialyze_no_warnings! context + end + ++ @tag :skip + test "no warnings on and/2 and or/2", context do + copy_beam! context, Dialyzer.BooleanCheck + assert_dialyze_no_warnings! context + +diff --git a/Makefile b/Makefile +index 2fc4f9a..aef8366 100644 +--- a/Makefile ++++ b/Makefile +@@ -201,7 +201,7 @@ $(TEST_EBIN)/%.beam: $(TEST_ERL)/%.erl + $(Q) mkdir -p $(TEST_EBIN) + $(Q) $(ERLC) -o $(TEST_EBIN) $< + +-test_elixir: test_stdlib test_ex_unit test_logger test_mix test_eex test_iex ++test_elixir: test_stdlib test_ex_unit test_logger test_eex test_iex + + test_stdlib: compile + @ echo "==> elixir (exunit)" + From 3586a3e9a9b0c71b11c47ff63279b2e8a24b5704 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 21 Apr 2017 15:03:53 -0400 Subject: [PATCH 167/386] gnu: grub: Update to 2.0.2. * gnu/packages/bootloaders.scm (grub): Update to 2.0.2. [source]: Fetch source using the GNU mirror and use upstream file-name. --- gnu/packages/bootloaders.scm | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 98afc6a7c1..4bea418618 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -63,17 +63,13 @@ (define-public grub (package (name "grub") - (version "2.02rc1") + (version "2.02") (source (origin (method url-fetch) - (uri (string-append - "ftp://alpha.gnu.org/gnu/grub/grub-" - "2.02~rc1" - ".tar.xz")) - (file-name (string-append name "-" version ".tar.xz")) + (uri (string-append "mirror://gnu/grub/grub-" version ".tar.xz")) (sha256 (base32 - "0y02v19x9sb5jvj740f604vvi5j1rx8pily1jk0l64bdp7lkjlj4")))) + "03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases From f9f67fcb0f198e95cff5a14ad332bccc2ffc3221 Mon Sep 17 00:00:00 2001 From: Adriana Peluso Date: Fri, 28 Apr 2017 18:34:56 +0200 Subject: [PATCH 168/386] gnu: Fix attributions for Adriano Peluso. * gnu/packages/emacs.scm, gnu/packages/perl.scm, gnu/packages/python.scm, gnu/packages/xml.scm: Update copyright attributions for Adriano Peluso. Signed-off-by: Leo Famulari --- gnu/packages/emacs.scm | 2 +- gnu/packages/perl.scm | 2 +- gnu/packages/python.scm | 2 +- gnu/packages/xml.scm | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 47fe0cc845..0526ed0942 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016, 2017 Chris Marusich ;;; Copyright © 2015, 2016 Christopher Allan Webber -;;; Copyright © 2016 humanitiesNerd +;;; Copyright © 2016 Adriano Peluso ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 David Thompson ;;; Copyright © 2016 Matthew Jordan diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 3eb7815f28..812d7548cf 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2017 Raoul J.P. Bonnal ;;; Copyright © 2017 Marius Bakke -;;; Copyright © 2017 humanitiesNerd +;;; Copyright © 2017 Adriano Peluso ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4c7aee20c3..60d3868e96 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -36,7 +36,7 @@ ;;; Copyright © 2016, 2017 Thomas Danckaert ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Frederick M. Muriithi -;;; Copyright © 2017 humanitiesNerd +;;; Copyright © 2017 Adriano Peluso ;;; Copyright © 2017 Ben Sturmfels ;;; ;;; This file is part of GNU Guix. diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 7801c6cdb7..79210d44d0 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright © 2016, 2017 Marius Bakke -;;; Copyright © 2017 humanitiesNerd +;;; Copyright © 2017 Adriano Peluso ;;; ;;; This file is part of GNU Guix. ;;; From 087efec496b91e3763be2e11e208d4a8f4ef3d43 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 8 May 2017 15:42:34 +0200 Subject: [PATCH 169/386] system: Remove circular dependency between (gnu system) and (gnu system grub). Followup to 8e815c5b6903a545c46b674c1cd1cc3180f835db. * gnu/system.scm: Remove (gnu system grub) import. (operating-system-bootcfg): Refer to (gnu system grub) within the procedure. --- gnu/system.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index 748e3f7e9a..baba0b5dfc 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -48,7 +48,6 @@ #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu services base) - #:use-module (gnu system grub) #:use-module (gnu system shadow) #:use-module (gnu system nss) #:use-module (gnu system locale) @@ -848,7 +847,7 @@ populate the \"old entries\" menu." (uuid->string (file-system-device root-fs)) (file-system-device root-fs))) (entry (operating-system-boot-parameters os system root-device))) - (grub-configuration-file (operating-system-bootloader os) + ((@@ (gnu system grub) grub-configuration-file) (operating-system-bootloader os) (list entry) #:old-entries old-entries))) From 1d248adb32a0b97637083c83f3af70966050dd1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 11:47:28 +0200 Subject: [PATCH 170/386] gnu: perl-net-dns-resolver-programmable: Shorten patch file name. This avoids a warning from GNU tar upon "make dist" about file names that are too long for POSIX tar. * gnu/packages/patches/perl-net-dns-resolver-programmable-Fix-broken-interface.patch: Rename to... * gnu/packages/patches/perl-net-dns-resolver-programmable-fix.patch: ... this. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/networking.scm (perl-net-dns-resolver-programmable)[source]: Likewise. --- gnu/local.mk | 2 +- gnu/packages/networking.scm | 3 +-- ...face.patch => perl-net-dns-resolver-programmable-fix.patch} | 0 3 files changed, 2 insertions(+), 3 deletions(-) rename gnu/packages/patches/{perl-net-dns-resolver-programmable-Fix-broken-interface.patch => perl-net-dns-resolver-programmable-fix.patch} (100%) diff --git a/gnu/local.mk b/gnu/local.mk index dcf9b14cec..55abf5c888 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -867,7 +867,7 @@ dist_patch_DATA = \ %D%/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch \ %D%/packages/patches/perl-net-amazon-s3-moose-warning.patch \ %D%/packages/patches/perl-net-ssleay-disable-ede-test.patch \ - %D%/packages/patches/perl-net-dns-resolver-programmable-Fix-broken-interface.patch \ + %D%/packages/patches/perl-net-dns-resolver-programmable-fix.patch \ %D%/packages/patches/perl-no-sys-dirs.patch \ %D%/packages/patches/perl-module-pluggable-search.patch \ %D%/packages/patches/perl-reproducible-build-date.patch \ diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index f0d5bb75bf..94152226da 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -727,8 +727,7 @@ definitions and structure manipulators for Perl.") (base32 "1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d")) (patches - (search-patches - "perl-net-dns-resolver-programmable-Fix-broken-interface.patch")))) + (search-patches "perl-net-dns-resolver-programmable-fix.patch")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) diff --git a/gnu/packages/patches/perl-net-dns-resolver-programmable-Fix-broken-interface.patch b/gnu/packages/patches/perl-net-dns-resolver-programmable-fix.patch similarity index 100% rename from gnu/packages/patches/perl-net-dns-resolver-programmable-Fix-broken-interface.patch rename to gnu/packages/patches/perl-net-dns-resolver-programmable-fix.patch From c8ba269c26c85c5eae6bf5be9add881111c18a22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 14:24:09 +0200 Subject: [PATCH 171/386] maint: Use 'G_' in build-aux/ scripts. This is a followup to 69daee23af49aeafcb1d250c90860f9253da719e. * build-aux/check-final-inputs-self-contained.scm (assert-valid-substitute): Use 'G_' instead of '_'. --- build-aux/check-final-inputs-self-contained.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build-aux/check-final-inputs-self-contained.scm b/build-aux/check-final-inputs-self-contained.scm index dc44c4b636..dfb6a72f24 100644 --- a/build-aux/check-final-inputs-self-contained.scm +++ b/build-aux/check-final-inputs-self-contained.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,7 +57,7 @@ if it does." (let ((references (substitutable-references substitute))) (when (any (cut string-contains <> "boot") references) - (leave (_ "'~a' refers to bootstrap inputs: ~s~%") + (leave (G_ "'~a' refers to bootstrap inputs: ~s~%") (substitutable-path substitute) references)))) (define (test-final-inputs store system) @@ -71,7 +71,7 @@ refer to the bootstrap tools." (string=? (substitutable-path substitute) dir)) available) - (leave (_ "~a (system: ~a) has no substitute~%") + (leave (G_ "~a (system: ~a) has no substitute~%") dir system))) inputs) From ddce2d3aaea804604a32e6c4b70d78e6cc033df3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 14:56:36 +0200 Subject: [PATCH 172/386] maint: "distcheck" inherits the test root directory. * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add 'ac_cv_guix_test_root'. --- Makefile.am | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index e035045468..6cc179f95f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -493,13 +493,17 @@ endif BUILD_DAEMON ACLOCAL_AMFLAGS = -I m4 # Pass an explicit '--localstatedir' so that configure does not error out if -# it finds an existing installation with a different localstatedir. +# it finds an existing installation with a different localstatedir. Inherit +# 'ac_cv_guix_test_root' so that "make check" in $(distdir) does not have to +# repopulate the whole store, and to make sure $(GUIX_TEST_ROOT) is short +# enough for shebangs. AM_DISTCHECK_CONFIGURE_FLAGS = \ --localstatedir="$$dc_install_base/var" \ --with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)" \ --with-libgcrypt-libdir="$(LIBGCRYPT_LIBDIR)" \ --with-nix-prefix="$(NIX_PREFIX)" \ - --enable-daemon + --enable-daemon \ + ac_cv_guix_test_root="$(GUIX_TEST_ROOT)" # The self-contained tarball. Add 'glibc-utf8-locales' along with glibc just # so 'etc/profile' defines 'GUIX_LOCPATH' pointing to a valid set of locales. From c298fb133acbdc17e05a79c10ab9a9e214368264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 15:07:52 +0200 Subject: [PATCH 173/386] services: nscd: Adjust activation snippet for /etc/resolv.conf symlinks. Fixes . Reported by Mark H Weaver . * gnu/services/base.scm (nscd-activation): Use 'lstat' instead of 'file-exists?'. --- gnu/services/base.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index a64faa0d18..c244174fd3 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1152,8 +1152,10 @@ the tty to run, among other things." (mkdir-p "/var/db/nscd") ;for the persistent cache ;; In libc 2.25 nscd uses inotify to watch /etc/resolv.conf, but only if - ;; that file exists when it is started. Thus create it here. - (unless (file-exists? "/etc/resolv.conf") + ;; that file exists when it is started. Thus create it here. Note: on + ;; some systems, such as when NetworkManager is used, /etc/resolv.conf + ;; is a symlink, hence 'lstat'. + (unless (false-if-exception (lstat "/etc/resolv.conf")) (call-with-output-file "/etc/resolv.conf" (lambda (port) (display "# This is a placeholder.\n" port)))))) From d9a0bd4c699f5699e085e2be32d0a5e44030e2b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 15:25:06 +0200 Subject: [PATCH 174/386] maint: Add bayfront.guixsd.org signing key. * bayfront.guixsd.org.pub: New file. * Makefile.am (dist_pkgdata_DATA): Add it. --- Makefile.am | 6 ++++-- bayfront.guixsd.org.pub | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 bayfront.guixsd.org.pub diff --git a/Makefile.am b/Makefile.am index 6cc179f95f..f6a8f6613d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -391,8 +391,10 @@ check-system: $(GOBJECTS) $(BOOTSTRAP_GUILE_TARBALLS) -e '(@@ (run-system-tests) run-system-tests)' \ $(top_srcdir)/build-aux/run-system-tests.scm -# Public key used to sign substitutes from hydra.gnu.org. -dist_pkgdata_DATA = hydra.gnu.org.pub +# Public key used to sign substitutes from hydra.gnu.org & co. +dist_pkgdata_DATA = \ + hydra.gnu.org.pub \ + bayfront.guixsd.org.pub # Bash completion file. dist_bashcompletion_DATA = etc/completion/bash/guix diff --git a/bayfront.guixsd.org.pub b/bayfront.guixsd.org.pub new file mode 100644 index 0000000000..f156a37b08 --- /dev/null +++ b/bayfront.guixsd.org.pub @@ -0,0 +1,6 @@ +(public-key + (ecc + (curve Ed25519) + (q #8D156F295D24B0D9A86FA5741A840FF2D24F60F7B6C4134814AD55625971B394#) + ) + ) From 8872fc0e094c758a183fe95f45807727884ac15a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 15:36:01 +0200 Subject: [PATCH 175/386] maint: 'check-available-binaries' forces use of the official servers. * build-aux/check-available-binaries.scm: Pass #:substitute-urls to 'set-build-options'. --- build-aux/check-available-binaries.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build-aux/check-available-binaries.scm b/build-aux/check-available-binaries.scm index 0060a8669e..c9bc5ca4cf 100644 --- a/build-aux/check-available-binaries.scm +++ b/build-aux/check-available-binaries.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,7 +41,9 @@ '("mips64el-linux-gnuabi64"))) (total (append native cross))) - (set-build-options store #:use-substitutes? #t) + (set-build-options store + #:use-substitutes? #t + #:substitute-urls %default-substitute-urls) (let* ((total (map derivation->output-path total)) (available (substitutable-paths store total)) (missing (lset-difference string=? total available))) From a7e5944e9c50ab7efa6efc6e1a3accdc814d268b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 15:41:32 +0200 Subject: [PATCH 176/386] maint: Check whether binaries cross-built to "arm-linux-gnueabihf" are available. * build-aux/check-available-binaries.scm: Add "arm-linux-gnueabihf" as a cross target. --- build-aux/check-available-binaries.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build-aux/check-available-binaries.scm b/build-aux/check-available-binaries.scm index c9bc5ca4cf..b832d99935 100644 --- a/build-aux/check-available-binaries.scm +++ b/build-aux/check-available-binaries.scm @@ -38,7 +38,8 @@ %hydra-supported-systems)) (cross (map (cut package-cross-derivation store %bootstrap-tarballs <>) - '("mips64el-linux-gnuabi64"))) + '("mips64el-linux-gnu" + "arm-linux-gnueabihf"))) (total (append native cross))) (set-build-options store From 29f381bac72d207e8bf0a2c73c82d7a77b45b597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Fri, 14 Apr 2017 13:52:43 +0200 Subject: [PATCH 177/386] gnu: Add mozjs-38 (Mozilla SpiderMonkey 38). * gnu/packages/gnuzilla.scm (mozjs-38): New variable. * gnu/packages/patches/mozjs38-pkg-config-version.patch, gnu/packages/patches/mozjs38-shell-version.patch, gnu/packages/patches/mozjs38-tracelogger.patch, gnu/packages/patches/mozjs38-version-detection.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. Co-authored-by: ng0 --- gnu/local.mk | 4 + gnu/packages/gnuzilla.scm | 90 ++- .../patches/mozjs38-pkg-config-version.patch | 24 + .../patches/mozjs38-shell-version.patch | 67 ++ .../patches/mozjs38-tracelogger.patch | 608 ++++++++++++++++++ .../patches/mozjs38-version-detection.patch | 180 ++++++ 6 files changed, 972 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/mozjs38-pkg-config-version.patch create mode 100644 gnu/packages/patches/mozjs38-shell-version.patch create mode 100644 gnu/packages/patches/mozjs38-tracelogger.patch create mode 100644 gnu/packages/patches/mozjs38-version-detection.patch diff --git a/gnu/local.mk b/gnu/local.mk index 55abf5c888..cc2d35e436 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -811,6 +811,10 @@ dist_patch_DATA = \ %D%/packages/patches/module-init-tools-moduledir.patch \ %D%/packages/patches/mozjs17-aarch64-support.patch \ %D%/packages/patches/mozjs24-aarch64-support.patch \ + %D%/packages/patches/mozjs38-pkg-config-version.patch \ + %D%/packages/patches/mozjs38-shell-version.patch \ + %D%/packages/patches/mozjs38-tracelogger.patch \ + %D%/packages/patches/mozjs38-version-detection.patch \ %D%/packages/patches/multiqc-fix-git-subprocess-error.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 9309237bd7..d9901fd0fb 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,7 +58,8 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages video) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages zip)) + #:use-module (gnu packages zip) + #:use-module (gnu packages readline)) (define-public mozjs (package @@ -159,6 +161,92 @@ in C/C++.") `(("libffi" ,libffi) ("zlib" ,zlib))))) +(define-public mozjs-38 + (package + (inherit mozjs) + (name "mozjs") + (version "38.2.1.rc0") + (source (origin + (method url-fetch) + (uri (string-append + "https://people.mozilla.org/~sstangl/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "0p4bmbpgkfsj54xschcny0a118jdrdgg0q29rwxigg3lh5slr681")) + (patches + (search-patches + ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1269317 for + ;; GCC 6 compatibility. + + "mozjs38-version-detection.patch" ; for 0ad + "mozjs38-tracelogger.patch" + + ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1339931. + "mozjs38-pkg-config-version.patch" + "mozjs38-shell-version.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix incompatibility with sed 4.4. + (substitute* "js/src/configure" + (("\\^\\[:space:\\]") "^[[:space:]]")) + + ;; The headers are symlinks to files that are in /tmp, so they + ;; end up broken. Copy them instead. + (substitute* + "python/mozbuild/mozbuild/backend/recursivemake.py" + (("\\['dist_include'\\].add_symlink") + "['dist_include'].add_copy")) + + ;; Remove bundled libraries. + (for-each delete-file-recursively + '("intl" + "js/src/ctypes/libffi" + "js/src/ctypes/libffi-patches" + "modules/zlib")) + #t)))) + (arguments + `(;; XXX: parallel build fails, lacking: + ;; mkdir -p "system_wrapper_js/" + #:parallel-build? #f + ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1008470. + #:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (chdir "js/src") + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (zero? (system* "./configure" + (string-append "--prefix=" out) + "--enable-ctypes" + "--enable-gcgenerational" + "--enable-optimize" + "--enable-pie" + "--enable-readline" + "--enable-shared-js" + "--enable-system-ffi" + "--enable-threadsafe" + "--enable-xterm-updates" + "--with-system-icu" + "--with-system-nspr" + "--with-system-zlib" + + ;; Intl API requires bundled ICU. + "--without-intl-api")))))))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python-2" ,python-2))) + (inputs + `(("libffi" ,libffi) + ("readline" ,readline) + ("icu4c" ,icu4c) + ("zlib" ,zlib))))) + (define-public nspr (package (name "nspr") diff --git a/gnu/packages/patches/mozjs38-pkg-config-version.patch b/gnu/packages/patches/mozjs38-pkg-config-version.patch new file mode 100644 index 0000000000..49ff6f6f8d --- /dev/null +++ b/gnu/packages/patches/mozjs38-pkg-config-version.patch @@ -0,0 +1,24 @@ +Taken from https://bug1339931.bmoattachments.org/attachment.cgi?id=8837770. + +Add major version to pkg-config filename. +Author: Rico Tzschichholz +Forwarded: no +Last-Update: 2015-05-04 + +Index: b/js/src/Makefile.in +=================================================================== +--- a/js/src/Makefile.in ++++ b/js/src/Makefile.in +@@ -214,10 +214,10 @@ + $(JS_CONFIG_NAME): js-config + cp $^ $@ + +-$(LIBRARY_NAME).pc: js.pc ++$(JS_LIBRARY_NAME).pc: js.pc + cp $^ $@ + +-install:: $(LIBRARY_NAME).pc ++install:: $(JS_LIBRARY_NAME).pc + $(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig + + install:: js-config.h diff --git a/gnu/packages/patches/mozjs38-shell-version.patch b/gnu/packages/patches/mozjs38-shell-version.patch new file mode 100644 index 0000000000..e7d3d19c85 --- /dev/null +++ b/gnu/packages/patches/mozjs38-shell-version.patch @@ -0,0 +1,67 @@ +Taken from https://bug1339931.bmoattachments.org/attachment.cgi?id=8837771. + +# HG changeset patch +# Parent 4732a0e5d22bc7e5c1f1ace7a182d537d9cc2c6a +Add major version to shell and js-config filenames. +Author: Rico Tzschichholz +Forwarded: no +Last-Update: 2014-10-29 + +--- +diff --git a/js/src/configure b/js/src/configure +--- a/js/src/configure ++++ b/js/src/configure +@@ -1696,8 +1696,13 @@ + MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"` + IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'` + ++if test -n "$JS_STANDALONE"; then ++JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION ++JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config ++else + JS_SHELL_NAME=js + JS_CONFIG_NAME=js-config ++fi + + + if test -n "$IS_ALPHA"; then + +diff --git a/js/src/configure.in b/js/src/configure.in +--- a/js/src/configure.in ++++ b/js/src/configure.in +@@ -234,16 +234,13 @@ MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSI + MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"` + IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'` + +-dnl XXX in a temporary bid to avoid developer anger at renaming files +-dnl XXX before "js" symlinks exist, don't change names. +-dnl +-dnl if test -n "$JS_STANDALONE"; then +-dnl JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION +-dnl JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config +-dnl else ++if test -n "$JS_STANDALONE"; then ++JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION ++JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config ++else + JS_SHELL_NAME=js + JS_CONFIG_NAME=js-config +-dnl fi ++fi + + changequote([,]) + if test -n "$IS_ALPHA"; then + +diff -r 80a9e64d75f5 js/src/Makefile.in +--- a/js/src/Makefile.in Wed Jun 25 15:11:42 2014 +0200 ++++ b/js/src/Makefile.in Sat Jul 05 14:08:38 2014 +0200 +@@ -273,6 +273,9 @@ + SCRIPTS = $(JS_CONFIG_NAME) + SDK_BINARY = $(JS_CONFIG_NAME) + ++$(JS_CONFIG_NAME): js-config ++ cp $^ $@ ++ + $(JS_LIBRARY_NAME).pc: js.pc + cp $^ $@ + diff --git a/gnu/packages/patches/mozjs38-tracelogger.patch b/gnu/packages/patches/mozjs38-tracelogger.patch new file mode 100644 index 0000000000..0375ec36cc --- /dev/null +++ b/gnu/packages/patches/mozjs38-tracelogger.patch @@ -0,0 +1,608 @@ +Squashed version of several commits to fix the tracelogger. + +Taken from +https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-fix-tracelogger.patch. + +# === Fix the SM38 tracelogger === +# This patch is a squashed version of several patches that were adapted +# to fix failing hunks. +# +# Applied in the following order, they are: +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223767 +# Assertion failure: i < size_, at js/src/vm/TraceLoggingTypes.h:210 +# Also fix stop-information to make reduce.py work correctly. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227914 +# Limit the memory tracelogger can take. +# This causes tracelogger to flush data to the disk regularly and prevents out of +# memory issues if a lot of data gets logged. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1155618 +# Fix tracelogger destructor that touches possibly uninitialised hash table. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223636 +# Don't treat extraTextId as containing only extra ids. +# This fixes an assertion failure: id == nextTextId at js/src/vm/TraceLoggingGraph.cpp +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227028 +# Fix when to keep the payload of a TraceLogger event. +# This fixes an assertion failure: textId < uint32_t(1 << 31) at js/src/vm/TraceLoggingGraph.h +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1266649 +# Handle failing to add to pointermap gracefully. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1280648 +# Don't cache based on pointers to movable GC things. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1224123 +# Fix the use of LastEntryId in tracelogger.h. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1231170 +# Use size in debugger instead of the current id to track last logged item. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1221844 +# Move TraceLogger_Invalidation to LOG_ITEM. +# Add some debug checks to logTimestamp. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1255766 +# Also mark resizing of memory. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1259403 +# Only increase capacity by multiples of 2. +# Always make sure there are 3 free slots for events. +# === + +diff --git a/js/src/jit-test/tests/tracelogger/bug1231170.js b/js/src/jit-test/tests/tracelogger/bug1231170.js +new file mode 100644 +index 0000000..023e93e +--- /dev/null ++++ b/js/src/jit-test/tests/tracelogger/bug1231170.js +@@ -0,0 +1,3 @@ ++var du = new Debugger(); ++if (typeof du.drainTraceLogger === "function") ++ du.drainTraceLogger(); +diff --git a/js/src/jit-test/tests/tracelogger/bug1266649.js b/js/src/jit-test/tests/tracelogger/bug1266649.js +new file mode 100644 +index 0000000..81ae7ad +--- /dev/null ++++ b/js/src/jit-test/tests/tracelogger/bug1266649.js +@@ -0,0 +1,10 @@ ++ ++var du = new Debugger(); ++if (typeof du.setupTraceLogger === "function" && ++ typeof oomTest === 'function') ++{ ++ du.setupTraceLogger({ ++ Scripts: true ++ }) ++ oomTest(() => function(){}); ++} +diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp +index 93e2fda..09049d6 100644 +--- a/js/src/jit/Ion.cpp ++++ b/js/src/jit/Ion.cpp +@@ -1055,6 +1055,8 @@ IonScript::Destroy(FreeOp* fop, IonScript* script) + + script->destroyCaches(); + script->unlinkFromRuntime(fop); ++ // Frees the potential event we have set. ++ script->traceLoggerScriptEvent_ = TraceLoggerEvent(); + fop->free_(script); + } + +diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp +index 26262fd..af7f313 100644 +--- a/js/src/vm/Debugger.cpp ++++ b/js/src/vm/Debugger.cpp +@@ -369,10 +369,10 @@ Debugger::Debugger(JSContext* cx, NativeObject* dbg) + objects(cx), + environments(cx), + #ifdef NIGHTLY_BUILD +- traceLoggerLastDrainedId(0), ++ traceLoggerLastDrainedSize(0), + traceLoggerLastDrainedIteration(0), + #endif +- traceLoggerScriptedCallsLastDrainedId(0), ++ traceLoggerScriptedCallsLastDrainedSize(0), + traceLoggerScriptedCallsLastDrainedIteration(0) + { + assertSameCompartment(cx, dbg); +@@ -3907,9 +3907,9 @@ Debugger::drainTraceLogger(JSContext* cx, unsigned argc, Value* vp) + size_t num; + TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime()); + bool lostEvents = logger->lostEvents(dbg->traceLoggerLastDrainedIteration, +- dbg->traceLoggerLastDrainedId); ++ dbg->traceLoggerLastDrainedSize); + EventEntry* events = logger->getEventsStartingAt(&dbg->traceLoggerLastDrainedIteration, +- &dbg->traceLoggerLastDrainedId, ++ &dbg->traceLoggerLastDrainedSize, + &num); + + RootedObject array(cx, NewDenseEmptyArray(cx)); +@@ -4002,10 +4002,10 @@ Debugger::drainTraceLoggerScriptCalls(JSContext* cx, unsigned argc, Value* vp) + size_t num; + TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime()); + bool lostEvents = logger->lostEvents(dbg->traceLoggerScriptedCallsLastDrainedIteration, +- dbg->traceLoggerScriptedCallsLastDrainedId); ++ dbg->traceLoggerScriptedCallsLastDrainedSize); + EventEntry* events = logger->getEventsStartingAt( + &dbg->traceLoggerScriptedCallsLastDrainedIteration, +- &dbg->traceLoggerScriptedCallsLastDrainedId, ++ &dbg->traceLoggerScriptedCallsLastDrainedSize, + &num); + + RootedObject array(cx, NewDenseEmptyArray(cx)); +diff --git a/js/src/vm/Debugger.h b/js/src/vm/Debugger.h +index 8cac36a..c92d685 100644 +--- a/js/src/vm/Debugger.h ++++ b/js/src/vm/Debugger.h +@@ -314,10 +314,10 @@ class Debugger : private mozilla::LinkedListElement + * lost events. + */ + #ifdef NIGHTLY_BUILD +- uint32_t traceLoggerLastDrainedId; ++ uint32_t traceLoggerLastDrainedSize; + uint32_t traceLoggerLastDrainedIteration; + #endif +- uint32_t traceLoggerScriptedCallsLastDrainedId; ++ uint32_t traceLoggerScriptedCallsLastDrainedSize; + uint32_t traceLoggerScriptedCallsLastDrainedIteration; + + class FrameRange; +diff --git a/js/src/vm/TraceLogging.cpp b/js/src/vm/TraceLogging.cpp +index 6715b36..9766a6f 100644 +--- a/js/src/vm/TraceLogging.cpp ++++ b/js/src/vm/TraceLogging.cpp +@@ -131,7 +131,7 @@ TraceLoggerThread::init() + { + if (!pointerMap.init()) + return false; +- if (!extraTextId.init()) ++ if (!textIdPayloads.init()) + return false; + if (!events.init()) + return false; +@@ -185,10 +185,10 @@ TraceLoggerThread::~TraceLoggerThread() + graph = nullptr; + } + +- for (TextIdHashMap::Range r = extraTextId.all(); !r.empty(); r.popFront()) +- js_delete(r.front().value()); +- extraTextId.finish(); +- pointerMap.finish(); ++ if (textIdPayloads.initialized()) { ++ for (TextIdHashMap::Range r = textIdPayloads.all(); !r.empty(); r.popFront()) ++ js_delete(r.front().value()); ++ } + } + + bool +@@ -287,7 +287,7 @@ TraceLoggerThread::eventText(uint32_t id) + if (id < TraceLogger_Last) + return TLTextIdString(static_cast(id)); + +- TextIdHashMap::Ptr p = extraTextId.lookup(id); ++ TextIdHashMap::Ptr p = textIdPayloads.lookup(id); + MOZ_ASSERT(p); + + return p->value()->string(); +@@ -341,13 +341,15 @@ TraceLoggerThread::extractScriptDetails(uint32_t textId, const char** filename, + TraceLoggerEventPayload* + TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId textId) + { +- TextIdHashMap::AddPtr p = extraTextId.lookupForAdd(textId); +- if (p) ++ TextIdHashMap::AddPtr p = textIdPayloads.lookupForAdd(textId); ++ if (p) { ++ MOZ_ASSERT(p->value()->textId() == textId); // Sanity check. + return p->value(); ++ } + + TraceLoggerEventPayload* payload = js_new(textId, (char*)nullptr); + +- if (!extraTextId.add(p, textId, payload)) ++ if (!textIdPayloads.add(p, textId, payload)) + return nullptr; + + return payload; +@@ -357,8 +359,10 @@ TraceLoggerEventPayload* + TraceLoggerThread::getOrCreateEventPayload(const char* text) + { + PointerHashMap::AddPtr p = pointerMap.lookupForAdd((const void*)text); +- if (p) ++ if (p) { ++ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check. + return p->value(); ++ } + + size_t len = strlen(text); + char* str = js_pod_malloc(len + 1); +@@ -369,7 +373,7 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text) + MOZ_ASSERT(ret == len); + MOZ_ASSERT(strlen(str) == len); + +- uint32_t textId = extraTextId.count() + TraceLogger_Last; ++ uint32_t textId = nextTextId; + + TraceLoggerEventPayload* payload = js_new(textId, str); + if (!payload) { +@@ -377,17 +381,19 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text) + return nullptr; + } + +- if (!extraTextId.putNew(textId, payload)) { ++ if (!textIdPayloads.putNew(textId, payload)) { + js_delete(payload); + return nullptr; + } + +- if (!pointerMap.add(p, text, payload)) +- return nullptr; +- + if (graph.get()) + graph->addTextId(textId, str); + ++ nextTextId++; ++ ++ if (!pointerMap.add(p, text, payload)) ++ return nullptr; ++ + return payload; + } + +@@ -407,9 +413,14 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f + if (!traceLoggerState->isTextIdEnabled(type)) + return getOrCreateEventPayload(type); + +- PointerHashMap::AddPtr p = pointerMap.lookupForAdd(ptr); +- if (p) +- return p->value(); ++ PointerHashMap::AddPtr p; ++ if (ptr) { ++ p = pointerMap.lookupForAdd(ptr); ++ if (p) { ++ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check. ++ return p->value(); ++ } ++ } + + // Compute the length of the string to create. + size_t lenFilename = strlen(filename); +@@ -428,24 +439,28 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f + MOZ_ASSERT(ret == len); + MOZ_ASSERT(strlen(str) == len); + +- uint32_t textId = extraTextId.count() + TraceLogger_Last; ++ uint32_t textId = nextTextId; + TraceLoggerEventPayload* payload = js_new(textId, str); + if (!payload) { + js_free(str); + return nullptr; + } + +- if (!extraTextId.putNew(textId, payload)) { ++ if (!textIdPayloads.putNew(textId, payload)) { + js_delete(payload); + return nullptr; + } + +- if (!pointerMap.add(p, ptr, payload)) +- return nullptr; +- + if (graph.get()) + graph->addTextId(textId, str); + ++ nextTextId++; ++ ++ if (ptr) { ++ if (!pointerMap.add(p, ptr, payload)) ++ return nullptr; ++ } ++ + return payload; + } + +@@ -453,14 +468,14 @@ TraceLoggerEventPayload* + TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, JSScript* script) + { + return getOrCreateEventPayload(type, script->filename(), script->lineno(), script->column(), +- script); ++ nullptr); + } + + TraceLoggerEventPayload* + TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, + const JS::ReadOnlyCompileOptions& script) + { +- return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, &script); ++ return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, nullptr); + } + + void +@@ -485,7 +500,7 @@ TraceLoggerThread::startEvent(uint32_t id) + if (!traceLoggerState->isTextIdEnabled(id)) + return; + +- logTimestamp(id); ++ log(id); + } + + void +@@ -510,7 +525,7 @@ TraceLoggerThread::stopEvent(uint32_t id) + if (!traceLoggerState->isTextIdEnabled(id)) + return; + +- logTimestamp(TraceLogger_Stop); ++ log(TraceLogger_Stop); + } + + void +@@ -522,23 +537,57 @@ TraceLoggerThread::logTimestamp(TraceLoggerTextId id) + void + TraceLoggerThread::logTimestamp(uint32_t id) + { ++ MOZ_ASSERT(id > TraceLogger_LastTreeItem && id < TraceLogger_Last); ++ log(id); ++} ++ ++void ++TraceLoggerThread::log(uint32_t id) ++{ + if (enabled == 0) + return; + + MOZ_ASSERT(traceLoggerState); +- if (!events.ensureSpaceBeforeAdd()) { ++ ++ // We request for 3 items to add, since if we don't have enough room ++ // we record the time it took to make more place. To log this information ++ // we need 2 extra free entries. ++ if (!events.hasSpaceForAdd(3)) { + uint64_t start = rdtsc() - traceLoggerState->startupTime; + +- if (graph.get()) +- graph->log(events); ++ if (!events.ensureSpaceBeforeAdd(3)) { ++ if (graph.get()) ++ graph->log(events); ++ ++ iteration_++; ++ events.clear(); ++ ++ // Remove the item in the pointerMap for which the payloads ++ // have no uses anymore ++ for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) { ++ if (e.front().value()->uses() != 0) ++ continue; ++ ++ TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId()); ++ MOZ_ASSERT(p); ++ textIdPayloads.remove(p); ++ ++ e.removeFront(); ++ } + +- iteration_++; +- events.clear(); ++ // Free all payloads that have no uses anymore. ++ for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) { ++ if (e.front().value()->uses() == 0) { ++ js_delete(e.front().value()); ++ e.removeFront(); ++ } ++ } ++ } + + // Log the time it took to flush the events as being from the + // Tracelogger. + if (graph.get()) { +- MOZ_ASSERT(events.capacity() > 2); ++ MOZ_ASSERT(events.hasSpaceForAdd(2)); + EventEntry& entryStart = events.pushUninitialized(); + entryStart.time = start; + entryStart.textId = TraceLogger_Internal; +@@ -548,13 +597,6 @@ TraceLoggerThread::logTimestamp(uint32_t id) + entryStop.textId = TraceLogger_Stop; + } + +- // Free all TextEvents that have no uses anymore. +- for (TextIdHashMap::Enum e(extraTextId); !e.empty(); e.popFront()) { +- if (e.front().value()->uses() == 0) { +- js_delete(e.front().value()); +- e.removeFront(); +- } +- } + } + + uint64_t time = rdtsc() - traceLoggerState->startupTime; +@@ -956,3 +998,16 @@ TraceLoggerEvent::~TraceLoggerEvent() + if (payload_) + payload_->release(); + } ++ ++TraceLoggerEvent& ++TraceLoggerEvent::operator=(const TraceLoggerEvent& other) ++{ ++ if (hasPayload()) ++ payload()->release(); ++ if (other.hasPayload()) ++ other.payload()->use(); ++ ++ payload_ = other.payload_; ++ ++ return *this; ++} +diff --git a/js/src/vm/TraceLogging.h b/js/src/vm/TraceLogging.h +index a124dcb..91a1eb0 100644 +--- a/js/src/vm/TraceLogging.h ++++ b/js/src/vm/TraceLogging.h +@@ -110,6 +110,9 @@ class TraceLoggerEvent { + bool hasPayload() const { + return !!payload_; + } ++ ++ TraceLoggerEvent& operator=(const TraceLoggerEvent& other); ++ TraceLoggerEvent(const TraceLoggerEvent& event) = delete; + }; + + /** +@@ -130,6 +133,10 @@ class TraceLoggerEventPayload { + uses_(0) + { } + ++ ~TraceLoggerEventPayload() { ++ MOZ_ASSERT(uses_ == 0); ++ } ++ + uint32_t textId() { + return textId_; + } +@@ -166,7 +173,8 @@ class TraceLoggerThread + mozilla::UniquePtr graph; + + PointerHashMap pointerMap; +- TextIdHashMap extraTextId; ++ TextIdHashMap textIdPayloads; ++ uint32_t nextTextId; + + ContinuousSpace events; + +@@ -181,6 +189,7 @@ class TraceLoggerThread + : enabled(0), + failed(false), + graph(), ++ nextTextId(TraceLogger_Last), + iteration_(0), + top(nullptr) + { } +@@ -195,22 +204,22 @@ class TraceLoggerThread + bool enable(JSContext* cx); + bool disable(); + +- // Given the previous iteration and lastEntryId, return an array of events ++ // Given the previous iteration and size, return an array of events + // (there could be lost events). At the same time update the iteration and +- // lastEntry and gives back how many events there are. +- EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastEntryId, size_t* num) { ++ // size and gives back how many events there are. ++ EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastSize, size_t* num) { + EventEntry* start; + if (iteration_ == *lastIteration) { +- MOZ_ASSERT(events.lastEntryId() >= *lastEntryId); +- *num = events.lastEntryId() - *lastEntryId; +- start = events.data() + *lastEntryId + 1; ++ MOZ_ASSERT(*lastSize <= events.size()); ++ *num = events.size() - *lastSize; ++ start = events.data() + *lastSize; + } else { +- *num = events.lastEntryId() + 1; ++ *num = events.size(); + start = events.data(); + } + + *lastIteration = iteration_; +- *lastEntryId = events.lastEntryId(); ++ *lastSize = events.size(); + return start; + } + +@@ -220,16 +229,16 @@ class TraceLoggerThread + const char** lineno, size_t* lineno_len, const char** colno, + size_t* colno_len); + +- bool lostEvents(uint32_t lastIteration, uint32_t lastEntryId) { ++ bool lostEvents(uint32_t lastIteration, uint32_t lastSize) { + // If still logging in the same iteration, there are no lost events. + if (lastIteration == iteration_) { +- MOZ_ASSERT(lastEntryId <= events.lastEntryId()); ++ MOZ_ASSERT(lastSize <= events.size()); + return false; + } + +- // When proceeded to the next iteration and lastEntryId points to +- // the maximum capacity there are no logs that are lost. +- if (lastIteration + 1 == iteration_ && lastEntryId == events.capacity()) ++ // If we are in a consecutive iteration we are only sure we didn't lose any events, ++ // when the lastSize equals the maximum size 'events' can get. ++ if (lastIteration == iteration_ - 1 && lastSize == events.maxSize()) + return false; + + return true; +@@ -268,6 +277,7 @@ class TraceLoggerThread + void stopEvent(uint32_t id); + private: + void stopEvent(); ++ void log(uint32_t id); + + public: + static unsigned offsetOfEnabled() { +diff --git a/js/src/vm/TraceLoggingGraph.cpp b/js/src/vm/TraceLoggingGraph.cpp +index d1b7f2e..a4eb273 100644 +--- a/js/src/vm/TraceLoggingGraph.cpp ++++ b/js/src/vm/TraceLoggingGraph.cpp +@@ -276,7 +276,7 @@ TraceLoggerGraph::flush() + if (bytesWritten < tree.size()) + return false; + +- treeOffset += tree.lastEntryId(); ++ treeOffset += tree.size(); + tree.clear(); + } + +@@ -359,7 +359,7 @@ TraceLoggerGraph::startEventInternal(uint32_t id, uint64_t timestamp) + + if (parent.lastChildId() == 0) { + MOZ_ASSERT(!entry.hasChildren()); +- MOZ_ASSERT(parent.treeId() == tree.lastEntryId() + treeOffset); ++ MOZ_ASSERT(parent.treeId() == treeOffset + tree.size() - 1); + + if (!updateHasChildren(parent.treeId())) + return false; +diff --git a/js/src/vm/TraceLoggingTypes.h b/js/src/vm/TraceLoggingTypes.h +index f1c9d0c..10b76d6 100644 +--- a/js/src/vm/TraceLoggingTypes.h ++++ b/js/src/vm/TraceLoggingTypes.h +@@ -21,7 +21,6 @@ + _(Internal) \ + _(Interpreter) \ + _(InlinedScripts) \ +- _(Invalidation) \ + _(IonCompilation) \ + _(IonCompilationPaused) \ + _(IonLinking) \ +@@ -60,6 +59,7 @@ + + #define TRACELOGGER_LOG_ITEMS(_) \ + _(Bailout) \ ++ _(Invalidation) \ + _(Disable) \ + _(Enable) \ + _(Stop) +@@ -130,6 +130,9 @@ class ContinuousSpace { + uint32_t size_; + uint32_t capacity_; + ++ // The maximum amount of ram memory a continuous space structure can take (in bytes). ++ static const uint32_t LIMIT = 200 * 1024 * 1024; ++ + public: + ContinuousSpace () + : data_(nullptr) +@@ -151,6 +154,10 @@ class ContinuousSpace { + data_ = nullptr; + } + ++ static uint32_t maxSize() { ++ return LIMIT / sizeof(T); ++ } ++ + T* data() { + return data_; + } +@@ -187,11 +194,14 @@ class ContinuousSpace { + if (hasSpaceForAdd(count)) + return true; + ++ // Limit the size of a continuous buffer. ++ if (size_ + count > maxSize()) ++ return false; ++ + uint32_t nCapacity = capacity_ * 2; +- if (size_ + count > nCapacity) +- nCapacity = size_ + count; +- T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T)); ++ nCapacity = (nCapacity < maxSize()) ? nCapacity : maxSize(); + ++ T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T)); + if (!entries) + return false; + diff --git a/gnu/packages/patches/mozjs38-version-detection.patch b/gnu/packages/patches/mozjs38-version-detection.patch new file mode 100644 index 0000000000..ec2d264ccc --- /dev/null +++ b/gnu/packages/patches/mozjs38-version-detection.patch @@ -0,0 +1,180 @@ +Taken from +https://trac.wildfiregames.com/export/18656/ps/trunk/libraries/source/spidermonkey/FixVersionDetectionConfigure.diff. + +Fixes a version detection issue in 0ad. See +https://lists.gnu.org/archive/html/guix-devel/2017-01/msg00625.html. + +diff --git a/js/src/configure b/js/src/configure +--- a/js/src/configure ++++ b/js/src/configure +@@ -1662,70 +1662,6 @@ esac + + fi + +-MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir` +-MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion` +-MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion` +- +-cat >> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> $CONFIG_STATUS <> $CONFIG_STATUS < Date: Fri, 14 Apr 2017 00:37:40 +0200 Subject: [PATCH 178/386] gnu: Add 0ad. * gnu/packages/games.scm (0ad, 0ad-data): New variables. Co-authored-by: ng0 --- gnu/packages/games.scm | 187 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 9d554af418..b47a661935 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 nee +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,6 +53,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix svn-download) + #:use-module (guix gexp) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) @@ -120,6 +122,10 @@ #:use-module (gnu packages wxwidgets) #:use-module (gnu packages bison) #:use-module (gnu packages flex) + #:use-module (gnu packages cmake) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages networking) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) #:use-module (guix build-system python) @@ -3981,3 +3987,184 @@ fight against their plot and save his fellow rabbits from slavery.") ;; assets: license:cc-by-sa3.0 license:cc-by-sa4.0)))) + +(define-public 0ad-data + (package + (name "0ad-data") + (version "0.0.21-alpha") + (source + (origin + (method url-fetch) + (uri (string-append "http://releases.wildfiregames.com/0ad-" + version "-unix-data.tar.xz")) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "15xadyrpvq27lm9p1ny7bcmmv56m16h3xadbkdx69gfkzxc3razk")) + (modules '((guix build utils))) + (snippet + #~(begin + (for-each + (lambda (name) + (let* ((dir (string-append "binaries/data/mods/" name)) + (file (string-append dir "/" name ".zip")) + (unzip #$(file-append unzip "/bin/unzip"))) + (system* unzip "-d" dir file) + (delete-file file))) + '("mod" "public")) + #t)))) + (build-system trivial-build-system) + (native-inputs `(("tar" ,tar) + ("xz" ,xz))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((out (assoc-ref %outputs "out")) + (source (assoc-ref %build-inputs "source")) + (tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar")) + (xz-path (string-append (assoc-ref %build-inputs "xz") "/bin"))) + (setenv "PATH" xz-path) + (mkdir out) + (zero? (system* tar "xvf" source "-C" out "--strip=3")))))) + (synopsis "Data files for 0ad") + (description "0ad-data provides the data files required by the game 0ad.") + (home-page "https://play0ad.com") + (license (list (license:fsdg-compatible + "http://tavmjong.free.fr/FONTS/ArevCopyright.txt" + (license:license-comment + (package-license font-bitstream-vera))) + (package-license font-bitstream-vera) + license:cc-by-sa3.0 + license:expat + license:gfl1.0 + license:gpl2+ + license:gpl3+)))) + +(define-public 0ad + (package + (name "0ad") + (version "0.0.21-alpha") + (source + (origin + (method url-fetch) + (uri (string-append "http://releases.wildfiregames.com/0ad-" + version "-unix-build.tar.xz")) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "1kw3hqnr737ipx4f03khz3hvsh3ha7r8iy9njppk2faa53j27gln")) + ;; A snippet here would cause a build failure because of timestamps + ;; reset. See https://bugs.gnu.org/26734. + )) + (inputs + `(("0ad-data" ,0ad-data) + ("curl" ,curl) + ("enet" ,enet) + ("gloox" ,gloox) + ("icu4c" ,icu4c) + ("libpng" ,libpng) + ("libvorbis" ,libvorbis) + ("libxcursor" ,libxcursor) + ("libxml2" ,libxml2) + ("miniupnpc" ,miniupnpc) + ("mozjs-38" ,mozjs-38) + ("openal" ,openal) + ("sdl2" ,sdl2) + ("wxwidgets" ,wxwidgets) + ("zlib" ,zlib))) + (native-inputs + `(("boost" ,boost) + ("cmake" ,cmake) + ("mesa" ,mesa) + ("pkg-config" ,pkg-config) + ("python-2" ,python-2))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-bundles + (lambda _ + (delete-file-recursively "libraries/source/spidermonkey") + #t)) + (add-after 'unpack 'fix-x11-includes + (lambda _ + (substitute* "source/lib/sysdep/os/unix/x/x.cpp" + (("") "")) + (substitute* "source/lib/sysdep/os/unix/x/x.cpp" + (("") "")) + (substitute* "source/lib/sysdep/os/unix/x/x.cpp" + (("") "")) + #t)) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((jobs (number->string (parallel-job-count))) + (out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (data (string-append out "/share/0ad"))) + (setenv "JOBS" (string-append "-j" jobs)) + (setenv "CC" "gcc") + (with-directory-excursion "build/workspaces" + (zero? (system* "./update-workspaces.sh" + (string-append "--libdir=" lib) + (string-append "--datadir=" data) + "--minimal-flags" + ;; TODO: "--with-system-nvtt" + "--with-system-mozjs38")))))) + (add-before 'build 'chdir + (lambda _ + (chdir "build/workspaces/gcc") + #t)) + (delete 'check) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (chdir "../../../binaries") + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (data (string-append out "/share/0ad")) + (applications (string-append out "/share/applications")) + (pixmaps (string-append out "/share/pixmaps")) + (0ad-data (assoc-ref inputs "0ad-data"))) + ;; data + (copy-recursively "data" data) + (for-each (lambda (file) + (symlink (string-append 0ad-data "/" file) + (string-append data "/" file))) + '("config" "mods/mod" "mods/public" "tools")) + ;; libraries + (for-each (lambda (file) + (install-file file lib)) + (find-files "system" "\\.so$")) + ;; binaries + (install-file "system/pyrogenesis" bin) + (with-directory-excursion bin + (symlink "pyrogenesis" "0ad")) + ;; resources + (with-directory-excursion "../build/resources" + (install-file "0ad.desktop" applications) + (install-file "0ad.png" pixmaps)) + #t))) + (add-after 'install 'check + (lambda _ + (with-directory-excursion "system" + (zero? (system* "./test")))))))) + (home-page "https://play0ad.com") + (synopsis "3D real-time strategy game of ancient warfare") + (description "0 A.D. is a real-time strategy (RTS) game of ancient +warfare. It's a historically-based war/economy game that allows players to +relive or rewrite the history of twelve ancient civilizations, each depicted +at their peak of economic growth and military prowess. + +0ad needs a window manager that supports 'Extended Window Manager Hints'.") + (license (list license:bsd-2 + license:bsd-3 + license:expat + license:gpl2+ + license:ibmpl1.0 + license:isc + license:lgpl2.1 + license:lgpl3 + license:mpl2.0 + license:zlib)))) From 65584b91c7029e93e6fd207f08c958206f1dcfc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Mon, 8 May 2017 17:10:15 +0200 Subject: [PATCH 179/386] build: Add doc/guix.html to .gitignore. * .gitignore: Add entry for the above directory which is created by 'make html'. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index cff056a9d7..5086ae22b6 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,7 @@ /doc/guix.cps /doc/guix.fn /doc/guix.fns +/doc/guix.html /doc/guix.info /doc/guix.info-[0-9] /doc/guix.ky From 8bdc36d4bd5d38a5e595c9c51e61bad4caf291e0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 8 May 2017 12:21:30 -0400 Subject: [PATCH 180/386] gnu: Move links to web-browsers.scm. * gnu/packages/links.scm: Remove file and move links... * gnu/packages/web-browsers.scm: ...here. * gnu/local.mk (GNU_SYSTEM_MODULES): Remove links.scm. --- gnu/local.mk | 1 - gnu/packages/links.scm | 81 ----------------------------------- gnu/packages/web-browsers.scm | 54 +++++++++++++++++++++++ 3 files changed, 54 insertions(+), 82 deletions(-) delete mode 100644 gnu/packages/links.scm diff --git a/gnu/local.mk b/gnu/local.mk index cc2d35e436..1922bb46ce 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -233,7 +233,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/libunwind.scm \ %D%/packages/libupnp.scm \ %D%/packages/lighting.scm \ - %D%/packages/links.scm \ %D%/packages/linux.scm \ %D%/packages/lirc.scm \ %D%/packages/lisp.scm \ diff --git a/gnu/packages/links.scm b/gnu/packages/links.scm deleted file mode 100644 index 145ed761ee..0000000000 --- a/gnu/packages/links.scm +++ /dev/null @@ -1,81 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 John Darrington -;;; Copyright © 2015, 2016 Efraim Flashner -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (gnu packages links) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (gnu packages) - #:use-module (gnu packages compression) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages image) - #:use-module (gnu packages libevent) - #:use-module (gnu packages tls) - #:use-module (gnu packages xorg) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public links - (package - (name "links") - (version "2.14") - (source (origin - (method url-fetch) - (uri (string-append "http://links.twibright.com/download/" - name "-" version ".tar.bz2")) - (sha256 - (base32 "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; The tarball uses a very old version of autconf. It doesn't - ;; understand extra flags like `--enable-fast-install', so - ;; we need to invoke it with just what it understands. - (let ((out (assoc-ref outputs "out"))) - ;; 'configure' doesn't understand '--host'. - ,@(if (%current-target-system) - `((setenv "CHOST" ,(%current-target-system))) - '()) - (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out) - "--enable-graphics")))))))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("zlib" ,zlib) - ("openssl" ,openssl) - ("libjpeg" ,libjpeg) - ("libtiff" ,libtiff) - ("libevent" ,libevent) - ("libpng" ,libpng) - ("libxt" ,libxt))) - (synopsis "Text and graphics mode web browser") - (description "Links is a graphics and text mode web browser, with many -features including, tables, builtin image display, bookmarks, SSL and more.") - (home-page "http://links.twibright.com") - ;; The distribution contains a copy of GPLv2 - ;; However, the copyright notices simply say: - ;; "This file is a part of the Links program, released under GPL." - ;; Therefore, under the provisions of Section 9, we can choose - ;; any version ever published by the FSF. - ;; One file (https.c) contains an exception permitting - ;; linking of the program with openssl. - (license license:gpl1+))) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 07b61dd25e..4cbd5fbe06 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -1,4 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 John Darrington +;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2017 Eric Bavier ;;; @@ -25,6 +27,7 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages fltk) #:use-module (gnu packages fontutils) + #:use-module (gnu packages libevent) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -67,6 +70,57 @@ older or slower computers and embedded systems.") (home-page "http://www.dillo.org") (license license:gpl3+))) +(define-public links + (package + (name "links") + (version "2.14") + (source (origin + (method url-fetch) + (uri (string-append "http://links.twibright.com/download/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; The tarball uses a very old version of autconf. It doesn't + ;; understand extra flags like `--enable-fast-install', so + ;; we need to invoke it with just what it understands. + (let ((out (assoc-ref outputs "out"))) + ;; 'configure' doesn't understand '--host'. + ,@(if (%current-target-system) + `((setenv "CHOST" ,(%current-target-system))) + '()) + (setenv "CONFIG_SHELL" (which "bash")) + (zero? + (system* "./configure" + (string-append "--prefix=" out) + "--enable-graphics")))))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("zlib" ,zlib) + ("openssl" ,openssl) + ("libjpeg" ,libjpeg) + ("libtiff" ,libtiff) + ("libevent" ,libevent) + ("libpng" ,libpng) + ("libxt" ,libxt))) + (synopsis "Text and graphics mode web browser") + (description "Links is a graphics and text mode web browser, with many +features including, tables, builtin image display, bookmarks, SSL and more.") + (home-page "http://links.twibright.com") + ;; The distribution contains a copy of GPLv2 + ;; However, the copyright notices simply say: + ;; "This file is a part of the Links program, released under GPL." + ;; Therefore, under the provisions of Section 9, we can choose + ;; any version ever published by the FSF. + ;; One file (https.c) contains an exception permitting + ;; linking of the program with openssl. + (license license:gpl1+))) + (define-public qutebrowser (package (name "qutebrowser") From c5196ac7ee668a65c0cfda25ce354b826b15435c Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 8 May 2017 15:16:24 -0400 Subject: [PATCH 181/386] gnu: Move lynx to web-browsers.scm. * gnu/packages/lynx.scm: Remove file and move lynx... * gnu/packages/web-browsers.scm: ...here. * gnu/packages/man.scm (define-module): Remove unused module import of (gnu packages lynx). * gnu/packages/ocaml.scm (define-module): Adjust module import to use (gnu packages web-browsers). * gnu/local.mk (GNU_SYSTEM_MODULES): Remove lynx.scm. --- gnu/local.mk | 1 - gnu/packages/lynx.scm | 91 ----------------------------------- gnu/packages/man.scm | 1 - gnu/packages/ocaml.scm | 2 +- gnu/packages/web-browsers.scm | 62 ++++++++++++++++++++++++ 5 files changed, 63 insertions(+), 94 deletions(-) delete mode 100644 gnu/packages/lynx.scm diff --git a/gnu/local.mk b/gnu/local.mk index 1922bb46ce..af37e67647 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -244,7 +244,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/lua.scm \ %D%/packages/lxde.scm \ %D%/packages/lxqt.scm \ - %D%/packages/lynx.scm \ %D%/packages/m4.scm \ %D%/packages/machine-learning.scm \ %D%/packages/man.scm \ diff --git a/gnu/packages/lynx.scm b/gnu/packages/lynx.scm deleted file mode 100644 index b212dca388..0000000000 --- a/gnu/packages/lynx.scm +++ /dev/null @@ -1,91 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Mark H Weaver -;;; Copyright © 2016 Kei Kebreau -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (gnu packages lynx) - #:use-module ((guix licenses) #:select (gpl2)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages perl) - #:use-module (gnu packages ncurses) - #:use-module (gnu packages libidn) - #:use-module (gnu packages gnupg) - #:use-module (gnu packages tls) - #:use-module (gnu packages zip) - #:use-module (gnu packages compression)) - -(define-public lynx - (package - (name "lynx") - (version "2.8.9dev.11") - (source (origin - (method url-fetch) - (uri (string-append - "http://invisible-mirror.net/archives/lynx/tarballs" - "/lynx" version ".tar.bz2")) - (sha256 - (base32 - "1cqm1i7d209brkrpzaqqf2x951ra3l67dw8x9yg10vz7rpr9441a")))) - (build-system gnu-build-system) - (native-inputs `(("pkg-config" ,pkg-config) - ("perl" ,perl))) - (inputs `(("ncurses" ,ncurses) - ("libidn" ,libidn) - ("gnutls" ,gnutls) - ("libgcrypt" ,libgcrypt) - ("unzip" ,unzip) - ("zlib" ,zlib) - ("gzip" ,gzip) - ("bzip2" ,bzip2))) - (arguments - `(#:configure-flags - (let ((gnutls (assoc-ref %build-inputs "gnutls"))) - `("--with-pkg-config" - "--with-screen=ncurses" - "--with-zlib" - "--with-bzlib" - ,(string-append "--with-gnutls=" gnutls) - ;; "--with-socks5" ; XXX TODO - "--enable-widec" - "--enable-ascii-ctypes" - "--enable-local-docs" - "--enable-htmlized-cfg" - "--enable-gzip-help" - "--enable-nls" - "--enable-ipv6")) - #:tests? #f ; no check target - #:phases (alist-replace - 'install - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" "install-full" make-flags))) - %standard-phases))) - (synopsis "Text Web Browser") - (description - "Lynx is a fully-featured World Wide Web (WWW) client for users running -cursor-addressable, character-cell display devices. It will display Hypertext -Markup Language (HTML) documents containing links to files on the local -system, as well as files on remote systems running http, gopher, ftp, wais, -nntp, finger, or cso/ph/qi servers. Lynx can be used to access information on -the WWW, or to build information systems intended primarily for local -access.") - (home-page "http://lynx.isc.org/") - (license gpl2))) - -;;; lynx.scm ends here diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 2cc685deed..8319a7e41b 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -30,7 +30,6 @@ #:use-module (gnu packages gawk) #:use-module (gnu packages groff) #:use-module (gnu packages less) - #:use-module (gnu packages lynx) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages linux)) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 0c21a74da6..e5e599358e 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -37,7 +37,6 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages libevent) - #:use-module (gnu packages lynx) #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) @@ -50,6 +49,7 @@ #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) + #:use-module (gnu packages web-browsers) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (guix build-system gnu) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 4cbd5fbe06..a10b1367ef 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington +;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2017 Eric Bavier @@ -27,7 +28,10 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages fltk) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gnupg) #:use-module (gnu packages libevent) + #:use-module (gnu packages libidn) + #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -35,6 +39,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages tls) #:use-module (gnu packages xorg) + #:use-module (gnu packages zip) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) @@ -121,6 +126,63 @@ features including, tables, builtin image display, bookmarks, SSL and more.") ;; linking of the program with openssl. (license license:gpl1+))) +(define-public lynx + (package + (name "lynx") + (version "2.8.9dev.11") + (source (origin + (method url-fetch) + (uri (string-append + "http://invisible-mirror.net/archives/lynx/tarballs" + "/lynx" version ".tar.bz2")) + (sha256 + (base32 + "1cqm1i7d209brkrpzaqqf2x951ra3l67dw8x9yg10vz7rpr9441a")))) + (build-system gnu-build-system) + (native-inputs `(("pkg-config" ,pkg-config) + ("perl" ,perl))) + (inputs `(("ncurses" ,ncurses) + ("libidn" ,libidn) + ("gnutls" ,gnutls) + ("libgcrypt" ,libgcrypt) + ("unzip" ,unzip) + ("zlib" ,zlib) + ("gzip" ,gzip) + ("bzip2" ,bzip2))) + (arguments + `(#:configure-flags + (let ((gnutls (assoc-ref %build-inputs "gnutls"))) + `("--with-pkg-config" + "--with-screen=ncurses" + "--with-zlib" + "--with-bzlib" + ,(string-append "--with-gnutls=" gnutls) + ;; "--with-socks5" ; XXX TODO + "--enable-widec" + "--enable-ascii-ctypes" + "--enable-local-docs" + "--enable-htmlized-cfg" + "--enable-gzip-help" + "--enable-nls" + "--enable-ipv6")) + #:tests? #f ; no check target + #:phases (alist-replace + 'install + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (zero? (apply system* "make" "install-full" make-flags))) + %standard-phases))) + (synopsis "Text Web Browser") + (description + "Lynx is a fully-featured World Wide Web (WWW) client for users running +cursor-addressable, character-cell display devices. It will display Hypertext +Markup Language (HTML) documents containing links to files on the local +system, as well as files on remote systems running http, gopher, ftp, wais, +nntp, finger, or cso/ph/qi servers. Lynx can be used to access information on +the WWW, or to build information systems intended primarily for local +access.") + (home-page "http://lynx.isc.org/") + (license license:gpl2))) + (define-public qutebrowser (package (name "qutebrowser") From f000828575d6fe16e774162051d29b9ed025414d Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 8 May 2017 22:16:55 +0200 Subject: [PATCH 182/386] system: Remove circular dependency between (gnu system) and (gnu system grub). Followup to 087efec496b91e3763be2e11e208d4a8f4ef3d43. * gnu/system.scm: (operating-system-bootcfg): Refer to (gnu system grub) by module-ref. --- gnu/system.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index baba0b5dfc..9fc6cc5e76 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -847,9 +847,11 @@ populate the \"old entries\" menu." (uuid->string (file-system-device root-fs)) (file-system-device root-fs))) (entry (operating-system-boot-parameters os system root-device))) - ((@@ (gnu system grub) grub-configuration-file) (operating-system-bootloader os) - (list entry) - #:old-entries old-entries))) + ((module-ref (resolve-interface '(gnu system grub)) + 'grub-configuration-file) + (operating-system-bootloader os) + (list entry) + #:old-entries old-entries))) (define (fs->boot-device fs) "Given FS, a object, return a value suitable for use as the From e586257b550918fefaab3970f2c314d6285f54ab Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 8 May 2017 12:21:02 +0200 Subject: [PATCH 183/386] system: Allow root to run "su" without password. * gnu/system/pam.scm (unix-pam-service): Add pam-entry for "pam_rootok.so" to auth field when ALLOW-ROOT? is #T. (base-pam-services): Allow root to run "su" without authentication. --- gnu/system/pam.scm | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/gnu/system/pam.scm b/gnu/system/pam.scm index 4546c1a73a..eedf933946 100644 --- a/gnu/system/pam.scm +++ b/gnu/system/pam.scm @@ -204,21 +204,27 @@ dumped in /etc/pam.d/NAME, where NAME is the name of SERVICE." (env (pam-entry ; to honor /etc/environment. (control "required") (module "pam_env.so")))) - (lambda* (name #:key allow-empty-passwords? motd) + (lambda* (name #:key allow-empty-passwords? (allow-root? #f) motd) "Return a standard Unix-style PAM service for NAME. When -ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords. When MOTD is true, it -should be a file-like object used as the message-of-the-day." +ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords. When ALLOW-ROOT? is +true, allow root to run the command without authentication. When MOTD is +true, it should be a file-like object used as the message-of-the-day." ;; See . (let ((name* name)) (pam-service (name name*) (account (list unix)) - (auth (list (if allow-empty-passwords? - (pam-entry - (control "required") - (module "pam_unix.so") - (arguments '("nullok"))) - unix))) + (auth (append (if allow-root? + (list (pam-entry + (control "sufficient") + (module "pam_rootok.so"))) + '()) + (list (if allow-empty-passwords? + (pam-entry + (control "required") + (module "pam_unix.so") + (arguments '("nullok"))) + unix)))) (password (list (pam-entry (control "required") (module "pam_unix.so") @@ -256,7 +262,12 @@ authenticate to run COMMAND." ;; These programs are setuid-root. (map (cut unix-pam-service <> #:allow-empty-passwords? allow-empty-passwords?) - '("su" "passwd" "sudo")) + '("passwd" "sudo")) + ;; This is setuid-root, as well. Allow root to run "su" without + ;; authenticating. + (list (unix-pam-service "su" + #:allow-empty-passwords? allow-empty-passwords? + #:allow-root? #t)) ;; These programs are not setuid-root, and we want root to be able ;; to run them without having to authenticate (notably because From 6e75ea481b9ff8cf65e9c5bd206bb611e1ef906f Mon Sep 17 00:00:00 2001 From: "Ethan R. Jones" Date: Mon, 8 May 2017 16:14:21 -0400 Subject: [PATCH 184/386] gnu: Add neofetch. * gnu/packages/admin.scm (neofetch): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/admin.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 9feacb1e8b..ff0431999d 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright © 2016 John Darrington ;;; Copyright © 2017 Ben Sturmfels +;;; Copyright © 2017 Ethan R. Jones ;;; ;;; This file is part of GNU Guix. ;;; @@ -2088,3 +2089,44 @@ It is similar to Capistrano, except it's implemented in Python and doesn't expect you to be deploying Rails applications. Fabric is a simple, Pythonic tool for remote execution and deployment.") (license license:bsd-2))) + +(define-public neofetch + (package + (name "neofetch") + (version "3.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/dylanaraps/neofetch/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rgznkl7a5q7lnc6zxlwvinq20b7k46n949l1hiwifarv0jgwynv")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; there are no tests + #:make-flags + (list (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-target-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("\\$\\(DESTDIR\\)/etc/") + "$(PREFIX)/etc/")) + (substitute* "neofetch" + (("\"/etc/neofetch") + (string-append "\"" out "/etc/neofetch")) + (("\"/usr/share/neofetch") + (string-append "\"" out "/usr/share/neofetch")))) + #t)) + (delete 'configure)))) + (home-page "https://github.com/dylanaraps/neofetch") + (synopsis "System info script") + (description "Neofetch is a CLI system information tool written in Bash. +Neofetch displays information about your system next to an image, your OS +logo, or any ASCII file of your choice. The main purpose of Neofetch is to be +used in screenshots to show other users what operating system or distribution +you are running, what theme or icon set you are using, etc.") + (license license:expat))) From 4d8fd825a8adc528bc31501cec32ea4d11edcde8 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sat, 22 Apr 2017 20:36:36 -0400 Subject: [PATCH 185/386] gnu: Add gnustep-make. * gnu/packages/gnustep.scm (gnustep-make): New variable. --- gnu/packages/gnustep.scm | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index e2ee4748ff..51541170ae 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès -;;; Copyright © 2016 Kei Kebreau +;;; Copyright © 2016, 2017 Kei Kebreau ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,7 +23,9 @@ #:use-module (guix build-system gnu) #:use-module (guix licenses) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages xorg) + #:use-module (gnu packages libffcall) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages texinfo) @@ -31,7 +33,33 @@ #:use-module (gnu packages glib) #:use-module (gnu packages fontutils) #:use-module (gnu packages image) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xml)) + +(define-public gnustep-make + (package + (name "gnustep-make") + (version "2.7.0") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.gnustep.org/pub/gnustep/core/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1khiygfkz0zhh9b5nybn40g0xnnjxchk24n49hff1bwanszir84h")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f)) ; no check target + (native-inputs + `(("which" ,which))) + (home-page "http://gnustep.org") + (synopsis "GNUstep make package") + (description "The makefile package is a simple, powerful and extensible way +to write makefiles for a GNUstep-based project. It allows the user to write a +project without having to deal with the complex issues associated with +configuration, building, installation, and packaging. It also allows the user +to easily create cross-compiled binaries.") + (license gpl3+))) (define-public windowmaker (package From 76f429ad9b669a0c72faf16b0be158ab040d4da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 17:20:12 +0200 Subject: [PATCH 186/386] system: grub: Use the native Guile-Cairo and Guile-SVG. * gnu/system/grub.scm (svg->png): Use 'ungexp-native' aka. #+ when referring to GUILE-CAIRO, GUILE-SVG, and SVG. --- gnu/system/grub.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index d2fa984ec7..58096429fe 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -144,15 +144,15 @@ denoting a file name." (with-imported-modules '((gnu build svg)) #~(begin ;; We need these two libraries. - (add-to-load-path (string-append #$guile-rsvg + (add-to-load-path (string-append #+guile-rsvg "/share/guile/site/" (effective-version))) - (add-to-load-path (string-append #$guile-cairo + (add-to-load-path (string-append #+guile-cairo "/share/guile/site/" (effective-version))) (use-modules (gnu build svg)) - (svg->png #$svg #$output + (svg->png #+svg #$output #:width #$width #:height #$height))))) From ff39342c2225bbe4cdc0397fc081327e27de091f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 May 2017 17:43:32 +0200 Subject: [PATCH 187/386] gnu: guile2.2-ssh: Update snapshot. * gnu/packages/ssh.scm (guile2.2-ssh): Update to commit ca717e9. [source]: Change URL to upstream's. --- gnu/packages/ssh.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 2a190a57d8..2e4f057667 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -267,10 +267,9 @@ libssh library.") (license license:gpl3+))) (define-public guile2.2-ssh - ;; This is a snapshot of a unofficial copy of Guile-SSH, which hopefully - ;; reflects the upcoming release well enough. - (let ((commit "926a0843626f89e3db02d01a6b01cc1f0d9cefcf") - (revision "0")) + ;; Snapshot of Guile-SSH that works with Guile 2.2. + (let ((commit "ca717e9d1ffd172c4f20fdd6c7caba050f1f2ba9") + (revision "1")) (package (inherit guile-ssh) (name "guile2.2-ssh") @@ -278,12 +277,12 @@ libssh library.") (source (origin (method git-fetch) (uri (git-reference - (url "https://notabug.org/civodul/guile-ssh/") + (url (package-home-page guile-ssh)) (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "0hf28macq8d1w05g0xy2lw1s5vzmcrixh7m43x7qvvdd31c998ip")))) + "1r7f10z6pc6sgbaqnrcccklqydnxi68nybz700skfn3ln5jlbygi")))) (inputs `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-inputs guile-ssh))))))) From 334dce145122683e576ca4cb6c68c360d4aada7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 May 2017 00:15:54 +0200 Subject: [PATCH 188/386] maint: Add 'release' target. Suggested by Jan Nieuwenhuizen. * Makefile.am (releasedir, PACKAGE_FULL_TARNAME, SOURCE_TARBALLS) (SUPPORTED_SYSTEMS, BINARY_TARBALLS, GUIXSD_SUPPORTED_SYSTEMS) (GUIXSD_IMAGE_BASE, GUIXSD_INSTALLATION_IMAGE_SIZE): New variables. (release): New target. (.PHONY): Add it. --- Makefile.am | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index f6a8f6613d..f574f5f09c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -546,6 +546,83 @@ gen-AUTHORS: "$(top_srcdir)" "$(distdir)/AUTHORS"; \ fi + +# +# Release management. +# + +releasedir = release-$(PACKAGE_VERSION) + +PACKAGE_FULL_TARNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) + +# List of source tarballs produced. This must be kept in sync with the +# 'dist-' options of 'AM_INIT_AUTOMAKE' in 'configure.ac'. +SOURCE_TARBALLS = \ + $(foreach ext,tar.gz,$(PACKAGE_FULL_TARNAME).$(ext)) + +# Systems supported by Guix. +SUPPORTED_SYSTEMS = x86_64-linux i686-linux armhf-linux + +# Guix binary tarballs. +BINARY_TARBALLS = \ + $(foreach system,$(SUPPORTED_SYSTEMS),guix-binary.$(system).tar.xz) + +# Systems supported by GuixSD. +GUIXSD_SUPPORTED_SYSTEMS = x86_64-linux #i686-linux + +# Prefix of the GuixSD installation image file name. +GUIXSD_IMAGE_BASE = guixsd-usb-install-$(PACKAGE_VERSION) + +# Size of the installation image (for x86_64 typically). +GUIXSD_INSTALLATION_IMAGE_SIZE ?= 950MiB + +# The release process works in several phases: +# +# 0. We assume the developer created a 'vX.Y' tag. +# 1. Build the source tarball. +# 2. Update the 'guix' package so that it corresponds to the 'vX.Y' tag. +# 3. Build the binary tarballs for that 'guix' package. +# 4. Update the 'guix' package again. +# 5. Build the GuixSD installation images. The images will run 'guix' +# corresponding to 'vX.Y' + 1 commit, and they will install 'vX.Y'. +# +# This 'release' target takes care of everything and copies the resulting +# files to $(releasedir). +release: distcheck + $(MKDIR_P) "$(releasedir)" + rm -f "$(releasedir)"/* + mv $(SOURCE_TARBALLS) "$(releasedir)" + cd po; git checkout . + $(top_builddir)/pre-inst-env "$(GUILE)" \ + $(top_srcdir)/build-aux/update-guix-package.scm \ + "`git rev-parse HEAD`" "$(PACKAGE_VERSION)" + git add $(top_srcdir)/gnu/packages/package-management.scm + git commit -m "gnu: guix: Update to $(PACKAGE_VERSION)." + rm -f $(BINARY_TARBALLS) + $(MAKE) $(BINARY_TARBALLS) + for system in $(SUPPORTED_SYSTEMS) ; do \ + mv "guix-binary.$$system.tar.xz" \ + "$(releasedir)/guix-binary-$(PACKAGE_VERSION).$$system.tar.xz" ; \ + done + $(top_builddir)/pre-inst-env "$(GUILE)" \ + $(top_srcdir)/build-aux/update-guix-package.scm \ + "`git rev-parse HEAD`" + git add $(top_srcdir)/gnu/packages/package-management.scm + git commit -m "gnu: guix: Update to `git rev-parse HEAD | cut -c1-7`." + for system in $(GUIXSD_SUPPORTED_SYSTEMS) ; do \ + image=`$(top_builddir)/pre-inst-env \ + guix system disk-image \ + --image-size=$(GUIXSD_INSTALLATION_IMAGE_SIZE) \ + gnu/system/install.scm` ; \ + if [ ! -f "$$image" ] ; then \ + echo "failed to produced GuixSD installation image for $$system" >&2 ; \ + exit 1 ; \ + fi ; \ + xz < "$$image" > "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz.tmp" ; \ + mv "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz.tmp" \ + "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz" ; \ + done + update-guix-package: git rev-parse HEAD $(top_builddir)/pre-inst-env "$(GUILE)" \ @@ -587,7 +664,7 @@ hydra-jobs.scm: $(GOBJECTS) .PHONY: assert-no-store-file-names assert-binaries-available .PHONY: assert-final-inputs-self-contained .PHONY: clean-go make-go -.PHONY: update-guix-package +.PHONY: update-guix-package release ## -------------- ## ## Silent rules. ## From a472f0d0752366a702515c28b1184b564fabf366 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 4 May 2017 21:17:07 -0400 Subject: [PATCH 189/386] gnu: nfs-utils: Update to 2.1.1. * gnu/packages/nfs.scm (nfs-utils): Update to 2.1.1. [inputs]: Remove gss. --- gnu/packages/nfs.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm index f18fe6cb51..03ac841e49 100644 --- a/gnu/packages/nfs.scm +++ b/gnu/packages/nfs.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 John Darrington +;;; Copyright © 2017 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,7 +21,6 @@ #:use-module (gnu packages) #:use-module (gnu packages linux) #:use-module (gnu packages databases) - #:use-module (gnu packages gsasl) #:use-module (gnu packages libevent) #:use-module (gnu packages kerberos) #:use-module (gnu packages onc-rpc) @@ -41,7 +41,7 @@ (define-public nfs-utils (package (name "nfs-utils") - (version "1.3.4") + (version "2.1.1") (source (origin (method url-fetch) (uri (string-append @@ -49,7 +49,7 @@ "/nfs-utils-" version ".tar.xz")) (sha256 (base32 - "0xarqhwy757vazv9gqhyrgxsrx083yhvkkih01jh83fqm305naml")))) + "1vqrqzhg9nh2wj1icp7k8v9dibgnn521b45np79nnkmqf16bbbhg")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -98,7 +98,6 @@ ("libnfsidmap" ,libnfsidmap) ("sqlite" ,sqlite) ("lvm2" ,lvm2) - ("gss" ,gss) ("util-linux" ,util-linux) ("mit-krb5" ,mit-krb5) ("libtirpc" ,libtirpc))) From d14b8dbb748c064e0d43506c17c80cad61665510 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 7 May 2017 16:33:06 -0400 Subject: [PATCH 190/386] gnu: nfs-utils: Adjust indentation. * gnu/packages/nfs.scm (nfs-utils): Re-indent. --- gnu/packages/nfs.scm | 70 ++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm index 03ac841e49..28751c4004 100644 --- a/gnu/packages/nfs.scm +++ b/gnu/packages/nfs.scm @@ -57,43 +57,43 @@ ,(string-append "--with-start-statd=" (assoc-ref %outputs "out") "/sbin/start-statd") ,(string-append "--with-krb5=" (assoc-ref %build-inputs "mit-krb5"))) - #:phases (modify-phases %standard-phases - (add-before - 'configure 'adjust-command-file-names - (lambda _ - ;; Remove assumptions of FHS from start-statd script - (substitute* `("utils/statd/start-statd") - (("^PATH=.*") "") - (("^flock") - (string-append - (assoc-ref %build-inputs "util-linux") - "/bin/flock")) - (("^exec rpc.statd") - (string-append "exec " - (assoc-ref %outputs "out") "/sbin/rpc.statd"))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'adjust-command-file-names + (lambda _ + ;; Remove assumptions of FHS from start-statd script + (substitute* `("utils/statd/start-statd") + (("^PATH=.*") "") + (("^flock") + (string-append + (assoc-ref %build-inputs "util-linux") + "/bin/flock")) + (("^exec rpc.statd") + (string-append "exec " + (assoc-ref %outputs "out") "/sbin/rpc.statd"))) - ;; This hook tries to write to /var - ;; That needs to be done by a service too. - (substitute* `("Makefile.in") - (("^install-data-hook:") - "install-data-hook-disabled-for-guix:")) + ;; This hook tries to write to /var + ;; That needs to be done by a service too. + (substitute* `("Makefile.in") + (("^install-data-hook:") + "install-data-hook-disabled-for-guix:")) - ;; Replace some hard coded paths. - (substitute* `("utils/nfsd/nfssvc.c") - (("/bin/mount") - (string-append - (assoc-ref %build-inputs "util-linux") - "/bin/mount"))) - (substitute* `("utils/statd/statd.c") - (("/usr/sbin/") - (string-append (assoc-ref %outputs "out") "/sbin/"))) - (substitute* `("utils/osd_login/Makefile.in" - "utils/mount/Makefile.in" - "utils/nfsdcltrack/Makefile.in") - (("^sbindir = /sbin") - (string-append "sbindir = " - (assoc-ref %outputs "out") "/sbin"))) - #t))))) + ;; Replace some hard coded paths. + (substitute* `("utils/nfsd/nfssvc.c") + (("/bin/mount") + (string-append + (assoc-ref %build-inputs "util-linux") + "/bin/mount"))) + (substitute* `("utils/statd/statd.c") + (("/usr/sbin/") + (string-append (assoc-ref %outputs "out") "/sbin/"))) + (substitute* `("utils/osd_login/Makefile.in" + "utils/mount/Makefile.in" + "utils/nfsdcltrack/Makefile.in") + (("^sbindir = /sbin") + (string-append "sbindir = " + (assoc-ref %outputs "out") "/sbin"))) + #t))))) (inputs `(("libevent" ,libevent) ("libnfsidmap" ,libnfsidmap) ("sqlite" ,sqlite) From 9034dc8f2a81d5f645548edfaa43f7698062105b Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 8 May 2017 14:58:07 -0400 Subject: [PATCH 191/386] gnu: libarchive: Replace with 3.3.1 [security fixes]. Fixes CVE-2016-{10209,10350} and CVE-2017-5601. * gnu/packages/backup.scm (libarchive)[replacement]: New field. (libarchive-3.3.1): New variable. --- gnu/packages/backup.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index f9c0a22a0d..d5cb5783ab 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Arun Isaac +;;; Copyright © 2017 Kei Kebreau ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,6 +187,7 @@ backups (called chunks) to allow easy burning to CD/DVD.") (define-public libarchive (package (name "libarchive") + (replacement libarchive-3.3.1) (version "3.2.2") (source (origin @@ -241,6 +243,20 @@ archive. In particular, note that there is currently no built-in support for random access nor for in-place modification.") (license license:bsd-2))) +(define libarchive-3.3.1 + (package + (inherit libarchive) + (name "libarchive") + (version "3.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://libarchive.org/downloads/libarchive-" + version ".tar.gz")) + (sha256 + (base32 + "1rr40hxlm9vy5z2zb5w7pyfkgd1a4s061qapm83s19accb8mpji9")))))) + (define-public rdup (package (name "rdup") From 59898500dda7901d5e467754f2522f883fbf68ba Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 9 May 2017 08:51:24 +0300 Subject: [PATCH 192/386] gnu: wxwidgets: Fix building on aarch64-linux. * gnu/packages/wxwidgets.scm (wxwidgets)[arguments]: On aarch64-linux us a '--build' configure-flag to work around ancient autotools. --- gnu/packages/wxwidgets.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 077195cca7..329920d7c1 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Theodoros Foradis ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2017 Rene Saavedra +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -70,12 +71,16 @@ (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:configure-flags + `(#:configure-flags '("--with-regex" "--with-libmspack" "--with-sdl" "--enable-webview" "--enable-webkit" - "--enable-webviewwebkit") + "--enable-webviewwebkit" + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--build=aarch64-unknown-linux-gnu") + '())) #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) From aa1c3a0000793873ef31f33f8aa90f5ae1ab8b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 May 2017 10:42:43 +0200 Subject: [PATCH 193/386] maint: update-guix-package: Protect the checkout from GC. * build-aux/update-guix-package.scm (main): Define 'root', and call 'add-indirect-root' to protect SOURCE from GC. --- build-aux/update-guix-package.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/build-aux/update-guix-package.scm b/build-aux/update-guix-package.scm index d45c183914..9598872dfd 100644 --- a/build-aux/update-guix-package.scm +++ b/build-aux/update-guix-package.scm @@ -124,10 +124,19 @@ COMMIT." ;; on a private branch. (reload-module (resolve-module '(gnu packages package-management))) - (pk source - (add-to-store store - (origin-file-name (package-source guix)) - #t "sha256" source))))) + + (let* ((source (add-to-store store + (origin-file-name (package-source guix)) + #t "sha256" source)) + (root (store-path-package-name source))) + + ;; Add an indirect GC root for SOURCE in the current directory. + (false-if-exception (delete-file root)) + (symlink source root) + (add-indirect-root store root) + + (format #t "source code for commit ~a: ~a (GC root: ~a)~%" + commit source root))))) ((commit) ;; Automatically deduce the version and revision numbers. (main commit #f)))) From 2a3962660ab877556518c0093aae5c8da7f3bb9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 May 2017 12:51:30 +0200 Subject: [PATCH 194/386] maint: Tweak the 'release' target. * Makefile.am (SUPPORTED_SYSTEMS, GUIXSD_SUPPORTED_SYSTEMS): Use "?=" instead of "=". (release): Do "git checkout ." in po/ early on. Abort upon uncommitted changes. Print a message at the end. --- Makefile.am | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index f574f5f09c..3d91617b0d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -561,14 +561,14 @@ SOURCE_TARBALLS = \ $(foreach ext,tar.gz,$(PACKAGE_FULL_TARNAME).$(ext)) # Systems supported by Guix. -SUPPORTED_SYSTEMS = x86_64-linux i686-linux armhf-linux +SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux # Guix binary tarballs. BINARY_TARBALLS = \ $(foreach system,$(SUPPORTED_SYSTEMS),guix-binary.$(system).tar.xz) # Systems supported by GuixSD. -GUIXSD_SUPPORTED_SYSTEMS = x86_64-linux #i686-linux +GUIXSD_SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux # Prefix of the GuixSD installation image file name. GUIXSD_IMAGE_BASE = guixsd-usb-install-$(PACKAGE_VERSION) @@ -589,10 +589,14 @@ GUIXSD_INSTALLATION_IMAGE_SIZE ?= 950MiB # This 'release' target takes care of everything and copies the resulting # files to $(releasedir). release: distcheck + cd po; git checkout . + @if ! git diff-index --quiet HEAD; then \ + echo "There are uncommitted changes; stopping." >&2 ; \ + exit 1 ; \ + fi $(MKDIR_P) "$(releasedir)" rm -f "$(releasedir)"/* mv $(SOURCE_TARBALLS) "$(releasedir)" - cd po; git checkout . $(top_builddir)/pre-inst-env "$(GUILE)" \ $(top_srcdir)/build-aux/update-guix-package.scm \ "`git rev-parse HEAD`" "$(PACKAGE_VERSION)" @@ -622,6 +626,9 @@ release: distcheck mv "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz.tmp" \ "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz" ; \ done + @echo + @echo "Congratulations! All the release files are now in $(releasedir)." + @echo update-guix-package: git rev-parse HEAD From a3b10217192a6b52863211dcb77f8ef69928c10b Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 8 May 2017 20:47:41 -0400 Subject: [PATCH 195/386] gnu: Add libgme. * gnu/packages/music.scm (libgme): New variable. --- gnu/packages/music.scm | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 850eef35bc..3002d27a6e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -582,6 +582,50 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite interface. It is implemented as a frontend to @code{klick}.") (license license:gpl2+))) +(define-public libgme + (package + (name "libgme") + (version "0.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/mpyne/game-music-emu/" + "downloads/game-music-emu-" version + ".tar.bz2")) + (sha256 + (base32 + "08fk7zddpn7v93d0fa7fcypx7hvgwx9b5psj9l6m8b87k2hbw4fw")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f)) ; no check target + (home-page "https://bitbucket.org/mpyne/game-music-emu") + (synopsis "Video game music file playback library") + (description + "Game-music-emu is a collection of video game music file emulators that +support the following formats and systems: +@table @code +@item AY +ZX Spectrum/Asmtrad CPC +@item GBS +Nintendo Game Boy +@item GYM +Sega Genesis/Mega Drive +@item HES +NEC TurboGrafx-16/PC Engine +@item KSS +MSX Home Computer/other Z80 systems (doesn't support FM sound) +@item NSF/NSFE +Nintendo NES/Famicom (with VRC 6, Namco 106, and FME-7 sound) +@item SAP +Atari systems using POKEY sound chip +@item SPC +Super Nintendo/Super Famicom +@item VGM/VGZ +Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro +@end table") + (license (list license:lgpl2.1+ + ;; demo and player directories are under the Expat license + license:expat)))) + (define-public lilypond (package (name "lilypond") From 3369de907a0ec0030fd87e6cc9189f962d5dc5e2 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Mon, 8 May 2017 20:55:47 +0100 Subject: [PATCH 196/386] gnu: zip: Add missing '#:modules' imports. Fixes . * gnu/packages/zip.scm (zip): Add missing '#:modules' imports. Signed-off-by: Danny Milosavljevic --- gnu/packages/zip.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm index 7097ada1ae..8feb4fea21 100644 --- a/gnu/packages/zip.scm +++ b/gnu/packages/zip.scm @@ -48,6 +48,9 @@ (list "-f" "unix/Makefile" (string-append "prefix=" out) (string-append "MANDIR=" out "/share/man/man1"))) + #:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) #:phases (modify-phases %standard-phases (replace 'build From 1d698a8ba6b3e21d4975f9c14f1a10ce7e9d9ea4 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Mon, 8 May 2017 20:55:48 +0100 Subject: [PATCH 197/386] gnu: go-1.4: Add missing '#:modules' imports. Fixes . * gnu/packages/golang.scm (go-1.4): Add missing '#:modules' imports. Signed-off-by: Danny Milosavljevic --- gnu/packages/golang.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 90a809eb27..13c5529f9d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -63,7 +63,8 @@ (arguments `(#:modules ((ice-9 match) (guix build gnu-build-system) - (guix build utils)) + (guix build utils) + (srfi srfi-1)) #:tests? #f ; Tests are run by the all.bash script. #:phases (modify-phases %standard-phases From f0b7dc7edea730e9648b58cc0e651678a843e490 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Mon, 8 May 2017 20:55:49 +0100 Subject: [PATCH 198/386] gnu: sbcl: Add missing '#:modules' imports. Fixes . * gnu/packages/lisp.scm (sbcl): Add missing '#:modules' imports. Signed-off-by: Danny Milosavljevic --- gnu/packages/lisp.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 43d9c9c9fc..57d0191b70 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -283,7 +283,10 @@ an interpreter, a compiler, a debugger, and much more.") ("texlive" ,texlive) ("texinfo" ,texinfo))) (arguments - '(#:phases + '(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases (modify-phases %standard-phases (delete 'configure) (add-before 'build 'patch-unix-tool-paths From 4902d3c4e0376974356481f222583580b49f39e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 May 2017 15:45:04 +0200 Subject: [PATCH 199/386] pull: Honor the standard build options. Reported by Niall Dooley in . * guix/scripts/pull.scm (%options): Add --dry-run and all of %STANDARD-BUILD-OPTIONS. (show-help): Add call to 'show-build-options-help'. (%default-options): Add 'system', 'substitutes?', 'graft?', 'max-silent-time', and 'verbosity'. (guix-pull)[parse-options]: Remove. Use 'parse-command-line' instead. Honor --dry-run. --- doc/guix.texi | 6 ++- guix/scripts/pull.scm | 103 ++++++++++++++++++++++-------------------- 2 files changed, 59 insertions(+), 50 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 4446909ed6..22dc8b3f90 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2390,13 +2390,13 @@ For example, to download and deploy version 0.12.0 of Guix from the canonical Git repo: @example -guix pull --url=http://git.savannah.gnu.org/cgit/guix.git/snapshot/v0.12.0.tar.gz +guix pull --url=https://git.savannah.gnu.org/cgit/guix.git/snapshot/v0.12.0.tar.gz @end example It can also be used to deploy arbitrary Git revisions: @example -guix pull --url=http://git.savannah.gnu.org/cgit/guix.git/snapshot/74d862e8a.tar.gz +guix pull --url=https://git.savannah.gnu.org/cgit/guix.git/snapshot/74d862e8a.tar.gz @end example @item --bootstrap @@ -2404,6 +2404,8 @@ Use the bootstrap Guile to build the latest Guix. This option is only useful to Guix developers. @end table +In addition, @command{guix pull} supports all the common build options +(@pxref{Common Build Options}). @node Invoking guix pack @section Invoking @command{guix pack} diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 82fcaa248c..5ab95628b4 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. @@ -28,6 +28,7 @@ #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix monads) + #:use-module (guix scripts build) #:use-module ((guix build utils) #:select (with-directory-excursion delete-file-recursively)) #:use-module ((guix build download) @@ -72,7 +73,12 @@ (define %default-options ;; Alist of default option values. - `((tarball-url . ,%snapshot-url))) + `((tarball-url . ,%snapshot-url) + (system . ,(%current-system)) + (substitutes? . #t) + (graft? . #t) + (max-silent-time . 3600) + (verbosity . 0))) (define (show-help) (display (G_ "Usage: guix pull [OPTION]... @@ -84,6 +90,7 @@ Download and deploy the latest version of Guix.\n")) (display (G_ " --bootstrap use the bootstrap Guile to build the new Guix")) (newline) + (show-build-options-help) (display (G_ " -h, --help display this help and exit")) (display (G_ " @@ -93,24 +100,29 @@ Download and deploy the latest version of Guix.\n")) (define %options ;; Specifications of the command-line options. - (list (option '("verbose") #f #f - (lambda (opt name arg result) - (alist-cons 'verbose? #t result))) - (option '("url") #t #f - (lambda (opt name arg result) - (alist-cons 'tarball-url arg - (alist-delete 'tarball-url result)))) - (option '("bootstrap") #f #f - (lambda (opt name arg result) - (alist-cons 'bootstrap? #t result))) + (cons* (option '("verbose") #f #f + (lambda (opt name arg result) + (alist-cons 'verbose? #t result))) + (option '("url") #t #f + (lambda (opt name arg result) + (alist-cons 'tarball-url arg + (alist-delete 'tarball-url result)))) + (option '(#\n "dry-run") #f #f + (lambda (opt name arg result) + (alist-cons 'dry-run? #t (alist-cons 'graft? #f result)))) + (option '("bootstrap") #f #f + (lambda (opt name arg result) + (alist-cons 'bootstrap? #t result))) - (option '(#\h "help") #f #f - (lambda args - (show-help) - (exit 0))) - (option '(#\V "version") #f #f - (lambda args - (show-version-and-exit "guix pull"))))) + (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix pull"))) + + %standard-build-options)) (define what-to-build (store-lift show-what-to-build)) @@ -215,16 +227,8 @@ contained therein." (return #t)))) (leave (G_ "failed to update Guix, check the build log~%"))))) + (define (guix-pull . args) - (define (parse-options) - ;; Return the alist of option values. - (args-fold* args %options - (lambda (opt name arg result) - (leave (G_ "~A: unrecognized option~%") name)) - (lambda (arg result) - (leave (G_ "~A: unexpected argument~%") arg)) - %default-options)) - (define (use-le-certs? url) (string-prefix? "https://git.savannah.gnu.org/" url)) @@ -232,28 +236,31 @@ contained therein." (download-to-store store url "guix-latest.tar.gz")) (with-error-handling - (let* ((opts (parse-options)) + (let* ((opts (parse-command-line args %options + (list %default-options))) (store (open-connection)) (url (assoc-ref opts 'tarball-url))) - (let ((tarball - (if (use-le-certs? url) - (let* ((drv (package-derivation store le-certs)) - (certs (string-append (derivation->output-path drv) - "/etc/ssl/certs"))) - (build-derivations store (list drv)) - (parameterize ((%x509-certificate-directory certs)) - (fetch-tarball store url))) - (fetch-tarball store url)))) - (unless tarball - (leave (G_ "failed to download up-to-date source, exiting\n"))) - (parameterize ((%guile-for-build - (package-derivation store - (if (assoc-ref opts 'bootstrap?) - %bootstrap-guile - (canonical-package guile-2.0))))) - (run-with-store store - (build-and-install tarball (config-directory) - #:verbose? (assoc-ref opts 'verbose?)))))))) + (set-build-options-from-command-line store opts) + (unless (assoc-ref opts 'dry-run?) ;XXX: not very useful + (let ((tarball + (if (use-le-certs? url) + (let* ((drv (package-derivation store le-certs)) + (certs (string-append (derivation->output-path drv) + "/etc/ssl/certs"))) + (build-derivations store (list drv)) + (parameterize ((%x509-certificate-directory certs)) + (fetch-tarball store url))) + (fetch-tarball store url)))) + (unless tarball + (leave (G_ "failed to download up-to-date source, exiting\n"))) + (parameterize ((%guile-for-build + (package-derivation store + (if (assoc-ref opts 'bootstrap?) + %bootstrap-guile + (canonical-package guile-2.0))))) + (run-with-store store + (build-and-install tarball (config-directory) + #:verbose? (assoc-ref opts 'verbose?))))))))) ;; Local Variables: ;; eval: (put 'with-PATH 'scheme-indent-function 1) From 402e98c524a44f9b8c8e5da86f68ffbd854c6669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 May 2017 15:48:23 +0200 Subject: [PATCH 200/386] pull: Use 'with-store'. * guix/scripts/pull.scm (guix-pull): Remove call to 'open-connection'. Use 'with-store' instead. --- guix/scripts/pull.scm | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 5ab95628b4..58b87d4df4 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -238,29 +238,29 @@ contained therein." (with-error-handling (let* ((opts (parse-command-line args %options (list %default-options))) - (store (open-connection)) (url (assoc-ref opts 'tarball-url))) - (set-build-options-from-command-line store opts) (unless (assoc-ref opts 'dry-run?) ;XXX: not very useful - (let ((tarball - (if (use-le-certs? url) - (let* ((drv (package-derivation store le-certs)) - (certs (string-append (derivation->output-path drv) - "/etc/ssl/certs"))) - (build-derivations store (list drv)) - (parameterize ((%x509-certificate-directory certs)) - (fetch-tarball store url))) - (fetch-tarball store url)))) - (unless tarball - (leave (G_ "failed to download up-to-date source, exiting\n"))) - (parameterize ((%guile-for-build - (package-derivation store - (if (assoc-ref opts 'bootstrap?) - %bootstrap-guile - (canonical-package guile-2.0))))) - (run-with-store store - (build-and-install tarball (config-directory) - #:verbose? (assoc-ref opts 'verbose?))))))))) + (with-store store + (set-build-options-from-command-line store opts) + (let ((tarball + (if (use-le-certs? url) + (let* ((drv (package-derivation store le-certs)) + (certs (string-append (derivation->output-path drv) + "/etc/ssl/certs"))) + (build-derivations store (list drv)) + (parameterize ((%x509-certificate-directory certs)) + (fetch-tarball store url))) + (fetch-tarball store url)))) + (unless tarball + (leave (G_ "failed to download up-to-date source, exiting\n"))) + (parameterize ((%guile-for-build + (package-derivation store + (if (assoc-ref opts 'bootstrap?) + %bootstrap-guile + (canonical-package guile-2.0))))) + (run-with-store store + (build-and-install tarball (config-directory) + #:verbose? (assoc-ref opts 'verbose?)))))))))) ;; Local Variables: ;; eval: (put 'with-PATH 'scheme-indent-function 1) From 75c260ba5ae7baec44d2b5bf6ae57734eeebcd2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 May 2017 16:06:11 +0200 Subject: [PATCH 201/386] gnu: guile-ssh: Update to 0.11.0. * gnu/packages/ssh.scm (guile-ssh): Update to 0.11.0. [source]: Add 'modules' and 'snippet'. (guile2.2-ssh)[version, source]: Remove. --- gnu/packages/ssh.scm | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 2e4f057667..4590f3561c 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -213,7 +213,7 @@ Additionally, various channel-specific options can be negotiated.") (define-public guile-ssh (package (name "guile-ssh") - (version "0.10.2") + (version "0.11.0") (home-page "https://github.com/artyom-poptsov/guile-ssh") (source (origin ;; ftp://memory-heap.org/software/guile-ssh/guile-ssh-VERSION.tar.gz @@ -225,7 +225,16 @@ Additionally, various channel-specific options can be negotiated.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0pkiq3fm15pr4w1r420rrwwfmi4jz492r6l6vzjk6v73xlyfyfl3")))) + "0r261i8kc3avbmbwgyzak2vnqwssjlgz37g2y2fwm80w9bmn2m7j")) + (modules '((guix build utils))) + (snippet + ;; 'configure.ac' mistakenly tries to link files from examples/ + ;; that are not instantiated yet. Work around it. + '(substitute* "configure.ac" + (("AC_CONFIG_LINKS\\(\\[examples/([^:]+):.*" _ file) + (string-append "AC_CONFIG_FILES([examples/" file + "], [chmod +x examples/" + file "])\n")))))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -267,24 +276,11 @@ libssh library.") (license license:gpl3+))) (define-public guile2.2-ssh - ;; Snapshot of Guile-SSH that works with Guile 2.2. - (let ((commit "ca717e9d1ffd172c4f20fdd6c7caba050f1f2ba9") - (revision "1")) - (package - (inherit guile-ssh) - (name "guile2.2-ssh") - (version (string-append "0.10.2." revision "." (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url (package-home-page guile-ssh)) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1r7f10z6pc6sgbaqnrcccklqydnxi68nybz700skfn3ln5jlbygi")))) - (inputs `(("guile" ,guile-2.2) - ,@(alist-delete "guile" (package-inputs guile-ssh))))))) + (package + (inherit guile-ssh) + (name "guile2.2-ssh") + (inputs `(("guile" ,guile-2.2) + ,@(alist-delete "guile" (package-inputs guile-ssh)))))) (define-public corkscrew (package From 838ba73d6e49bd2b1f2d4ed9329b65cc4e8c1f54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 May 2017 17:04:02 +0200 Subject: [PATCH 202/386] pull: Build with the matching Guile major version. Previously, 'guix pull' would always build with Guile 2.0. Now it builds with the Guile that matches (effective-version). * build-aux/build-self.scm (false-if-wrong-guile) (package-for-current-guile): New procedures. (guile-json, guile-ssh): Use it. (guile-for-build): New procedure. (build): Use (effective-version) instead of the hard-coded "/2.0". Add (guix modules) closure to #:modules argument. Pass \#:guile-for-build argument to 'gexp->derivation'. * guix/build/pull.scm (depends-on-guile-ssh?, all-scheme-files): New procedures. (build-guix): Show the output of (version). Use the above procedures. Filter out files that match 'depends-on-guile-ssh?' when (ssh session) is missing. --- build-aux/build-self.scm | 88 ++++++++++++++++++++++++++++++++-------- guix/build/pull.scm | 44 ++++++++++++++------ 2 files changed, 103 insertions(+), 29 deletions(-) diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index cc702490df..a1335fea1d 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2016 Ludovic Courtès +;;; Copyright © 2014, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +22,7 @@ #:use-module (guix config) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) + #:use-module (ice-9 match) #:export (build)) ;;; Commentary: @@ -58,11 +59,43 @@ (define xz (first (find-best-packages-by-name "xz" #f))) +(define (false-if-wrong-guile package) + "Return #f if PACKAGE depends on the \"wrong\" major version of Guile (e.g., +2.0 instead of 2.2), otherwise return PACKAGE." + (let ((guile (any (match-lambda + ((label (? package? dep) _ ...) + (and (string=? (package-name dep) "guile") + dep))) + (package-direct-inputs package)))) + (and (or (not guile) + (string-prefix? (effective-version) + (package-version guile))) + package))) + +(define (package-for-current-guile . names) + "Return the package with one of the given NAMES that depends on the current +Guile major version (2.0 or 2.2), or #f if none of the packages matches." + (let loop ((names names)) + (match names + (() + #f) + ((name rest ...) + (match (find-best-packages-by-name name #f) + (() + (loop rest)) + ((first _ ...) + (or (false-if-wrong-guile first) + (loop rest)))))))) + (define guile-json - (first (find-best-packages-by-name "guile-json" #f))) + (package-for-current-guile "guile-json" + "guile2.2-json" + "guile2.0-json")) (define guile-ssh - (first (find-best-packages-by-name "guile-ssh" #f))) + (package-for-current-guile "guile-ssh" + "guile2.2-ssh" + "guile2.0-ssh")) ;; The actual build procedure. @@ -80,6 +113,17 @@ person's version identifier." ;; XXX: Replace with a Git commit id. (date->string (current-date 0) "~Y~m~d.~H")) +(define (guile-for-build) + "Return a derivation for Guile 2.0 or 2.2, whichever matches the currently +running Guile." + (package->derivation (cond-expand + (guile-2.2 + (canonical-package + (specification->package "guile@2.2"))) + (else + (canonical-package + (specification->package "guile@2.0")))))) + ;; The procedure below is our return value. (define* (build source #:key verbose? (version (date-version-string)) @@ -104,15 +148,19 @@ files." #~(begin (use-modules (guix build pull)) - (let ((json (string-append #$guile-json "/share/guile/site/2.0"))) + (let ((json (string-append #$guile-json "/share/guile/site/" + #$(effective-version)))) (set! %load-path - (cons* json - (string-append #$guile-ssh "/share/guile/site/2.0") - %load-path)) + (cons* json + (string-append #$guile-ssh "/share/guile/site/" + #$(effective-version)) + %load-path)) (set! %load-compiled-path - (cons* json - (string-append #$guile-ssh "/lib/guile/2.0/site-ccache") - %load-compiled-path))) + (cons* json + (string-append #$guile-ssh "/lib/guile/" + #$(effective-version) + "/site-ccache") + %load-compiled-path))) ;; XXX: The 'guile-ssh' package prior to Guix commit 92b7258 was ;; broken: libguile-ssh could not be found. Work around that. @@ -146,13 +194,21 @@ files." (current-error-port) (%make-void-port "w"))))) - (gexp->derivation "guix-latest" builder - #:modules '((guix build pull) - (guix build utils)) + (mlet %store-monad ((guile (guile-for-build))) + (gexp->derivation "guix-latest" builder + #:modules '((guix build pull) + (guix build utils) - ;; Arrange so that our own (guix build …) modules are - ;; used. - #:module-path (list (top-source-directory)))) + ;; Closure of (guix modules). + (guix modules) + (guix memoization) + (guix sets)) + + ;; Arrange so that our own (guix build …) modules are + ;; used. + #:module-path (list (top-source-directory)) + + #:guile-for-build guile))) ;; This file is loaded by 'guix pull'; return it the build procedure. build diff --git a/guix/build/pull.scm b/guix/build/pull.scm index 6034e93cbf..6825e74092 100644 --- a/guix/build/pull.scm +++ b/guix/build/pull.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; ;;; This file is part of GNU Guix. @@ -18,6 +18,7 @@ ;;; along with GNU Guix. If not, see . (define-module (guix build pull) + #:use-module (guix modules) #:use-module (guix build utils) #:use-module (system base compile) #:use-module (ice-9 ftw) @@ -35,6 +36,27 @@ ;;; ;;; Code: +(define (depends-on-guile-ssh? file) + "Return true if FILE is a Scheme source file that depends, directly or +indirectly, on Guile-SSH." + (find (match-lambda + (('ssh _ ...) #t) + (_ #f)) + (source-module-closure file #:select? (const #t)))) + +(define (all-scheme-files directory) + "Return a sorted list of Scheme files found in DIRECTORY." + ;; Load guix/ modules before gnu/ modules to get somewhat steadier + ;; progress reporting. + (sort (filter (cut string-suffix? ".scm" <>) + (find-files directory "\\.scm")) + (let ((guix (string-append directory "/guix")) + (gnu (string-append directory "/gnu"))) + (lambda (a b) + (or (and (string-prefix? guix a) + (string-prefix? gnu b)) + (string (FIXME). - (let* ((files - ;; Load guix/ modules before gnu/ modules to get somewhat steadier - ;; progress reporting. - (sort (filter (cut string-suffix? ".scm" <>) - (find-files out "\\.scm")) - (let ((guix (string-append out "/guix")) - (gnu (string-append out "/gnu"))) - (lambda (a b) - (or (and (string-prefix? guix a) - (string-prefix? gnu b)) - (string Date: Tue, 9 May 2017 17:34:54 +0200 Subject: [PATCH 203/386] pull: Build package modules without optimizations on Guile 2.2. * guix/build/pull.scm (%default-optimizations) (%lightweight-optimizations): New variables. (optimization-options): New procedure. Taken from build-aux/compile-all.scm. (build-guix): Pass it to 'compile-file'. --- guix/build/pull.scm | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/guix/build/pull.scm b/guix/build/pull.scm index 6825e74092..d2e0404b14 100644 --- a/guix/build/pull.scm +++ b/guix/build/pull.scm @@ -57,6 +57,35 @@ indirectly, on Guile-SSH." (string-prefix? gnu b)) (string Date: Tue, 9 May 2017 17:59:26 +0200 Subject: [PATCH 204/386] gnu: guix: Build with Guile 2.2. * gnu/packages/package-management.scm (guix)[inputs]: Change GUILE-2.0 to GUILE-2.2. [propagated-inputs]: Likewise, use GNUTLS/GUILE-2.2, GUILE2.2-JSON, and GUILE2.2-SSH. --- gnu/packages/package-management.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 1d201f1893..627501e9b1 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -224,7 +224,7 @@ ("sqlite" ,sqlite) ("libgcrypt" ,libgcrypt) - ("guile" ,guile-2.0) + ("guile" ,guile-2.2) ("boot-guile/i686" ,(boot-guile "i686" @@ -247,9 +247,9 @@ (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r")))))) (propagated-inputs - `(("gnutls" ,gnutls) ;for 'guix download' & co. - ("guile-json" ,guile-json) - ("guile-ssh" ,guile-ssh))) + `(("gnutls" ,gnutls/guile-2.2) ;for 'guix download' & co. + ("guile-json" ,guile2.2-json) + ("guile-ssh" ,guile2.2-ssh))) (home-page "https://www.gnu.org/software/guix/") (synopsis "Functional package manager for installed software packages and versions") From a979eea9c2132d35cba30e7fcd4184ec159310a6 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 8 May 2017 16:37:53 +0200 Subject: [PATCH 205/386] gnu: libetpan: Update to 1.8 [fixes CVE-2017-8825]. * gnu/packages/mail.scm (libetpan): Update to 1.8. [license]: Change to bsd-3. Signed-off-by: Leo Famulari --- gnu/packages/mail.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 014c77d911..39d394140b 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -837,14 +837,14 @@ useful features.") (define-public libetpan (package (name "libetpan") - (version "1.7.2") + (version "1.8") (source (origin (method url-fetch) (uri (string-append "https://github.com/dinhviethoa/" name "/archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "081ixgj3skglq9i7v0jb835lmfx21zi4i5b7997igwr0lj174y9j")))) + (base32 "1sxnaglp5hb0z78sgnfzva4x8m4flqhicvm1dz0krkxdmfsafrsf")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,(autoconf-wrapper)) ("automake" ,automake) @@ -875,7 +875,7 @@ useful features.") framework for different kinds of mail access: IMAP, SMTP, POP and NNTP. It provides an API for C language. It's the low-level API used by MailCore and MailCore 2.") - (license (non-copyleft "file://COPYING")))) + (license bsd-3))) (define-public compface (package From 1d438b03bc0cb42b9a477fbe7d9538f57c8d3972 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 8 May 2017 14:34:53 -0400 Subject: [PATCH 206/386] gnu: gstreamer: Update to 1.12.0. * gnu/packages/gstreamer.scm (gstreamer, gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav, python-gst): Update to 1.12.0. --- gnu/packages/gstreamer.scm | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index c284a8d2b3..5c3b3c5f3b 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -98,7 +98,7 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.10.4") + (version "1.12.0") (source (origin (method url-fetch) @@ -107,7 +107,7 @@ arrays of data.") version ".tar.xz")) (sha256 (base32 - "062jidnw17hkpva6ddygp80gyasyigfkpm1y7w56rk56a2pzbhjh")))) + "00j3zwm22582fwyzh316mnh6ghicv4ya93yk52kz4avx57wfxm8l")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -146,7 +146,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.10.4") + (version "1.12.0") (source (origin (method url-fetch) @@ -154,7 +154,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "1dsyjf6rncsbg4rfj40cvf1wwpjj9h3j3c7bh4zp7jylnfv4blpn")))) + "0k9nckvzk2hhhg7w4gzmd7is0lbswdmrkwmcgblvdf2lgy3wcprl")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -201,7 +201,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.10.4") + (version "1.12.0") (source (origin (method url-fetch) @@ -210,7 +210,7 @@ for the GStreamer multimedia library.") name "-" version ".tar.xz")) (sha256 (base32 - "0zjdwxn83sp9wjp9rxjbyk8kf284g9av7l2v6rjldi586hacd1la")))) + "1g1f6xyj0f06nmsl01xhr32x2rwyb857yjkrig1013iknx6p67ca")))) (build-system gnu-build-system) (inputs `(("aalib" ,aalib) @@ -266,14 +266,14 @@ developers consider to have good quality code and correct functionality.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.10.4") + (version "1.12.0") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0rk9rlzf2b0hjw5hwbadz53yh4ls7vm3w3cshsa3n8isdd8axp93")))) + "0d45zgdnflwpwvlb1fmgj35yfds9m1g46mhppvlsh5dky7zkrdqi")))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments @@ -343,7 +343,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.10.4") + (version "1.12.0") (source (origin (method url-fetch) @@ -351,7 +351,7 @@ par compared to the rest.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0ngsiwcsz3jd08id4mc0qiy2q1n7h2kkvdnh3r1vm725m1ycg1k3")))) + "1mhasi20kvi9p72kh4qyfzync509wqqkk8fp2xxyhgp88r8bls2y")))) (build-system gnu-build-system) (inputs `(("gst-plugins-base" ,gst-plugins-base) @@ -382,7 +382,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") (define-public gst-libav (package (name "gst-libav") - (version "1.10.4") + (version "1.12.0") (source (origin (method url-fetch) (uri (string-append @@ -390,7 +390,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") name "-" version ".tar.xz")) (sha256 (base32 - "12r68ri03mgbbwsxyn6yklgfsq32rwvyq83zw0aq7m73fp5gx83c")))) + "1i2h0ymh9jy0rnkcan2rdsdfq7l02rmp33g712q81s9fcizlgl9r")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-system-libav") @@ -420,7 +420,7 @@ compression formats through the use of the libav library.") (define-public python-gst (package (name "python-gst") - (version "1.10.4") + (version "1.12.0") (source (origin (method url-fetch) (uri (string-append @@ -428,7 +428,7 @@ compression formats through the use of the libav library.") "gst-python-" version ".tar.xz")) (sha256 (base32 - "04l2hvvz9b0f3nyds1k3yfk5di8a91fpr6maj19c11mwp1s82l2r")))) + "01wwbn6z3771ad55ljl9gs6irrs9a8p186zrgrkmzs91kxmxwcxy")))) (build-system gnu-build-system) (arguments ;; XXX: Factorize python-sitedir with python-build-system. From 2f8b9c4648ef7b52e0bbae040914b007f565f877 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 7 May 2017 19:23:56 +0200 Subject: [PATCH 207/386] gnu: Add pngcrunch. * gnu/packages/image.scm (pngcrunch): New variable. --- gnu/packages/image.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 1a1108563d..de8043d236 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2016 Arun Isaac ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2017 ng0 +;;; Copyright © 2017 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -155,6 +156,41 @@ APNG patch provides APNG support to libpng.") (sha256 (base32 "1n2lrzjkm5jhfg2bs10q398lkwbbx742fi27zgdgx0x23zhj0ihg")))))) +(define-public pngcrunch + (package + (name "pngcrunch") + (version "1.8.11") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/pmt/pngcrush/" + version "/pngcrush-" version ".tar.xz")) + (sha256 (base32 + "1c7m316i91jp3h1dj1ppppdv6zilm2njk1wrpqy2zj0fcll06lwd")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags '("-f" "Makefile-nolib") + #:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "Makefile-nolib" + (("^(PNG(INC|LIB) = )/usr/local/" line vardef) + (string-append vardef (assoc-ref inputs "libpng") "/")) + (("^(Z(INC|LIB) = )/usr/local/" line vardef) + (string-append vardef (assoc-ref inputs "zlib") "/")) + ;; The Makefile is written by hand and not using $PREFIX + (("\\$\\(DESTDIR\\)/usr/") + (string-append (assoc-ref outputs "out") "/")))))))) + (inputs + `(("libpng" ,libpng) + ("zlib" , zlib))) + (home-page "https://pmt.sourceforge.net/pngcrush") + (synopsis "Utility to compress PNG files") + (description "pngcrusqh is an optimizer for PNG (Portable Network Graphics) +files. It can compress them as much as 40% losslessly.") + (license license:zlib))) + (define-public libjpeg (package (name "libjpeg") From 49393691d75a3334d3abb8e54f4e08ce47734f03 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 7 May 2017 20:45:39 +0200 Subject: [PATCH 208/386] gnu: Add f3. * gnu/packages/disk.scm (f3): New variable. --- gnu/packages/disk.scm | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 93895278d6..a087141a87 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016, 2017 Marius Bakke +;;; Copyright © 2017 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -337,3 +338,46 @@ project to detect and manipulate partition tables. Optional file system tools permit managing file systems not included in libparted.") ;; The home page says GPLv2, but the source code says GPLv2+. (license license:gpl2+))) + + +(define-public f3 + (package + (name "f3") + (version "6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/AltraMayor/f3/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1mgbzc1swvgil45md1336j0aqkmkhwmpxical0ln5g09b2qxsanp")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'fix-makefile + (lambda _ + (substitute* "Makefile" + ;; Install without setting owner and group + (("\\$\\(INSTALL\\) -oroot -groot ") "$(INSTALL) ") + ;; also build and install experimental tools + (("^all: ") "all: $(EXPERIMENTAL_TARGETS) ") + (("^install: ") "install-all: ") + (("^install-experimental: ") "install: install-all ")) + #t))))) + (inputs + `(("eudev" ,eudev) + ("parted" ,parted))) + (home-page "http://oss.digirati.com.br/f3/") + (synopsis "Test real capacity of flash memory cards and such.") + (description "F3 (Fight Flash Fraud or Fight Fake Flash) tests the full +capacity of a flash card (flash drive, flash disk, pendrive). F3 writes to +the card and then checks if can read it. It will assure you haven't been sold +a card with a smaller capacity than stated.") + (license license:gpl3+))) From 975104d857e953ceeebea72ef9dbb5d73bec8585 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 5 May 2017 17:21:35 +0200 Subject: [PATCH 209/386] gnu: kodi: Update to 18.0_alpha-4-b8ad238. * gnu/packages/kodi.scm (kodi): Update to 18.0_alpha-4-b8ad238. --- gnu/packages/kodi.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index e3ab8f6dc0..260ca947bd 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -239,8 +239,8 @@ generator library for C++.") (define-public kodi ;; We package the git version because the current released ;; version was cut while the cmake transition was in turmoil. - (let ((commit "749c61e01082acec745bb82888caa1dd1eaa0677") - (revision "3")) + (let ((commit "b8ad238aa8010063eaf7d608d139002a50075e8d") + (revision "4")) (package (name "kodi") (version (string-append "18.0_alpha-" revision "-" (string-take commit 7))) @@ -252,7 +252,7 @@ generator library for C++.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0mg22sbxvkhvd1b13xmv96k0b3lnrmjh3cd0cl0gjh17ip2v1y9k")) + "192agb8lpbajljbnnpn7y1pk2c6bvqbcpqhlgq4pja4pdf664xzg")) (snippet '(begin (use-modules (guix build utils)) From f8ff364ab77a92951b54eedb0c985f5b498206e0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 8 May 2017 12:22:19 +0200 Subject: [PATCH 210/386] gnu: re2: Update to 2017-05-01. * gnu/packages/regex.scm (re2): Update to 2017-05-01. --- gnu/packages/regex.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm index 04e4abac73..2b32aa3381 100644 --- a/gnu/packages/regex.scm +++ b/gnu/packages/regex.scm @@ -28,7 +28,7 @@ (define-public re2 (package (name "re2") - (version "2017-04-01") + (version "2017-05-01") (source (origin (method url-fetch) (uri @@ -38,7 +38,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "14i9pf9ap8h48j1584ifsq7c7a884cr1s4r7zvpcb9x1xr9232wh")))) + "19glvic4ipd122yhcavf7ifg7ms5k61398vq7gyb90wggf2w0z9k")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) From 83a895310936dc43344ee305a1f11df79d4a4cc4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 8 May 2017 12:19:55 +0200 Subject: [PATCH 211/386] gnu: dnscrypt-proxy: Update to 1.9.5. * gnu/packages/dns.scm (dnscrypt-proxy): Update to 1.9.5. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 871f034cb6..1fb552de15 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -155,7 +155,7 @@ high-volume and high-reliability applications. The name BIND stands for (define-public dnscrypt-proxy (package (name "dnscrypt-proxy") - (version "1.9.4") + (version "1.9.5") (source (origin (method url-fetch) (uri (string-append @@ -163,7 +163,7 @@ high-volume and high-reliability applications. The name BIND stands for "dnscrypt-proxy-" version ".tar.bz2")) (sha256 (base32 - "07piwsjczamwvdpv1585kg4awqakip51bwsm8nqi6bljww4agx7x")) + "1dhvklr4dg2vlw108n11xbamacaryyg3dbrg629b76lp7685p7z8")) (modules '((guix build utils))) (snippet ;; Delete bundled libltdl. XXX: This package also bundles From b4f8edb799f7cfc587d70f7e709b01454c0dbedc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 May 2017 23:58:26 +0200 Subject: [PATCH 212/386] gnu: emacs-guix: Use Guile 2.2. This is a followup to 7561881f2a5d2dc463c24713745eca03e67044bf. * gnu/packages/emacs.scm (emacs-guix): Switch to GUILE-2.2. --- gnu/packages/emacs.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 0526ed0942..f4cdd64b8a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1446,7 +1446,7 @@ type, for example: packages, buffers, files, etc.") `(("pkg-config" ,pkg-config) ("emacs" ,emacs-minimal))) (inputs - `(("guile" ,guile-2.0) + `(("guile" ,guile-2.2) ("guix" ,guix))) (propagated-inputs `(("geiser" ,geiser) From 8775fc10c61f493c9363ca288402f5f764b6d949 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 9 May 2017 13:02:12 -0400 Subject: [PATCH 213/386] gnu: lxterminal: Fix CVE-2016-10369. * gnu/packages/patches/lxterminal-CVE-2016-10369.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/lxde.scm (lxterminal)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/lxde.scm | 1 + .../patches/lxterminal-CVE-2016-10369.patch | 37 +++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 gnu/packages/patches/lxterminal-CVE-2016-10369.patch diff --git a/gnu/local.mk b/gnu/local.mk index af37e67647..0d8daf766a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -790,6 +790,7 @@ dist_patch_DATA = \ %D%/packages/patches/luminance-hdr-qt-printer.patch \ %D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/lxsession-use-gapplication.patch \ + %D%/packages/patches/lxterminal-CVE-2016-10369.patch \ %D%/packages/patches/lz4-fix-test-failures.patch \ %D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/mars-install.patch \ diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index 1164ba8cbb..cc1156ae60 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -162,6 +162,7 @@ toolkit. It allows users to monitor and control of running processes.") (uri (string-append "mirror://sourceforge/lxde/LXTerminal" "%20%28terminal%20emulator%29/LXTerminal%20" version "/" name "-" version ".tar.xz")) + (patches (search-patches "lxterminal-CVE-2016-10369.patch")) (sha256 (base32 "1yf76s15zvfw0h42b0ay1slpq47khgjmcry8ki2z812zar9lchia")))) diff --git a/gnu/packages/patches/lxterminal-CVE-2016-10369.patch b/gnu/packages/patches/lxterminal-CVE-2016-10369.patch new file mode 100644 index 0000000000..809eef08da --- /dev/null +++ b/gnu/packages/patches/lxterminal-CVE-2016-10369.patch @@ -0,0 +1,37 @@ +Fix CVE-2016-10369: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10369 + +Patch copied from upstream source repository: + +https://git.lxde.org/gitweb/?p=lxde/lxterminal.git;a=commit;h=f99163c6ff8b2f57c5f37b1ce5d62cf7450d4648 + +From f99163c6ff8b2f57c5f37b1ce5d62cf7450d4648 Mon Sep 17 00:00:00 2001 +From: Yao Wei +Date: Mon, 8 May 2017 00:47:55 +0800 +Subject: [PATCH] fix: use g_get_user_runtime_dir for socket directory + +This bug is pointed out by stackexchange user that putting socket file in +/tmp is a potential risk. Putting the socket dir in user directory could +mitigate the risk. +--- + src/unixsocket.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/unixsocket.c b/src/unixsocket.c +index 4c660ac..f88284c 100644 +--- a/src/unixsocket.c ++++ b/src/unixsocket.c +@@ -140,7 +140,8 @@ gboolean lxterminal_socket_initialize(LXTermWindow * lxtermwin, gint argc, gchar + * This function returns TRUE if this process should keep running and FALSE if it should exit. */ + + /* Formulate the path for the Unix domain socket. */ +- gchar * socket_path = g_strdup_printf("/tmp/.lxterminal-socket%s-%s", gdk_display_get_name(gdk_display_get_default()), g_get_user_name()); ++ gchar * socket_path = g_strdup_printf("%s/.lxterminal-socket-%s", g_get_user_runtime_dir(), gdk_display_get_name(gdk_display_get_default())); ++ printf("%s\n", socket_path); + + /* Create socket. */ + int fd = socket(PF_UNIX, SOCK_STREAM, 0); +-- +2.1.4 + From c5d2c69785a8ab4f3d1cf194a275bce4fee809e4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 9 May 2017 23:30:31 -0400 Subject: [PATCH 214/386] gnu: git: Update to 2.13.0. * gnu/packages/version-control.scm (git): Update to 2.13.0. --- 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 05df61d724..52dbcd4eca 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -117,14 +117,14 @@ as well as the classic centralized workflow.") (define-public git (package (name "git") - (version "2.12.2") + (version "2.13.0") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0jlccxx7l4c76h830y8lhrxr4kqksrxqlnmj3xb8sqbfa0irw6nj")))) + "0n0j36rapw31zb0sabap88ffncv8jg3nwc4miyim64ilyav2mgsb")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -137,7 +137,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "0n4mgw5mbrr1hm0y7xgwixf9p6gy61m6qm67ldagpxxhwq2dmlby")))))) + "1jcp5bjam0cqzc41bvd3qwzv2f35zdajr8icxb89q29b5v3gj544")))))) (inputs `(("curl" ,curl) ("expat" ,expat) From c90c1ba85a8f09b290f10ef4f71a6980f982cd89 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 10 May 2017 01:12:35 -0400 Subject: [PATCH 215/386] gnu: linux-libre@4.4: Update to 4.4.67. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.67. --- 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 da4579ca77..16fb2ff355 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -369,8 +369,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.66" - "16lw0cjrq5ma23hwrrx5hmycpkzb0gqmwdn8jbfqgd8s88qp6zl7" + (make-linux-libre "4.4.67" + "1nadmrd26llc17ipig7bx7rf2gwns94g86a3ilcvgdk17hq5riss" %intel-compatible-systems #:configuration-file kernel-config)) From 180bd4a8368273b469ce4cd605328a8dd698e208 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 10 May 2017 01:13:35 -0400 Subject: [PATCH 216/386] gnu: linux-libre@4.9: Update to 4.9.27. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.27. --- 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 16fb2ff355..9d3ca66e82 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -363,8 +363,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.26" - "0s4al203v77bwhk787vr95wx4ivw1aqhw8qw4d36b5m28whh6a69" + (make-linux-libre "4.9.27" + "1b39zijjkv21kya359y4g88w5ff110v95pvc4wfvc83dvik9hny5" %intel-compatible-systems #:configuration-file kernel-config)) From 28a1041fa5b6896e16c6f7c1c2b77763c540de7a Mon Sep 17 00:00:00 2001 From: Catonano Date: Wed, 10 May 2017 08:36:40 +0200 Subject: [PATCH 217/386] gnu: Add guile-miniadapton. * gnu/packages/guile.scm (guile-miniadapton): New variable. --- gnu/packages/guile.scm | 69 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index c2f31fc8a1..c7f3b8241a 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -32,6 +32,7 @@ (define-module (gnu packages guile) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) + #:use-module (gnu packages admin) ;;for tree #:use-module (gnu packages aspell) #:use-module (gnu packages bash) #:use-module (gnu packages bdw-gc) @@ -794,6 +795,74 @@ See http://minikanren.org/ for more on miniKanren generally.") (define-public guile2.2-minikanren (package-for-guile-2.2 guile-minikanren)) +(define-public guile-miniadapton + (let ((commit "1b5749422304567c96ac5367f2221dda9eff5880") + (revision "1")) + (package + (name "guile-miniadapton") + (version (string-append "0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fisherdj/miniAdapton.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build utils) + (ice-9 popen) + (ice-9 rdelim) + (srfi srfi-1) + (guix build gnu-build-system)) + #:tests? #f ; there is no test target + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((cwd (getcwd)) + (scm-files (find-files "." "\\.scm$")) + (effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (module-dir (string-append (assoc-ref outputs "out") + "/share/guile/site/" + effective))) + + ;; Make installation directories. + (mkdir-p module-dir) + + (setenv "GUILE_AUTO_COMPILE" "0") + + ;; Compile .scm files and install. + (every (lambda (file) + (let ((go-file (string-append module-dir "/" + (basename file ".scm") ".go"))) + ;; Install source module. + (install-file file module-dir) + ;; Compile and install module. + (zero? (system* "guild" "compile" "-L" cwd + "-o" go-file file)))) + scm-files))))))) + (inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/fisherdj/miniAdapton") + (synopsis "Minimal implementation of incremental computation in Guile +Scheme") + (description "This package provides a complete Scheme implementation of +miniAdapton, which implements the core functionality of the Adapton system for +incremental computation (also known as self-adjusting computation). Like +Adapton, miniAdapton allows programmers to safely combine mutation and +memoization. miniAdapton is built on top of an even simpler system, +microAdapton. Both miniAdapton and microAdapton are designed to be easy to +understand, extend, and port to host languages other than Scheme.") + (license license:expat)))) + (define-public guile-irregex (package (name "guile-irregex") From ded5966585cc75da53ad7bfb266f9b861aa71ed3 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Fri, 21 Apr 2017 15:54:20 +0200 Subject: [PATCH 218/386] gnu: Add cdrtools. * gnu/packages/cdrom.scm (cdrtools): New variable. * gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/cdrom.scm | 59 +- .../cdrtools-3.01-mkisofs-isoinfo.patch | 514 ++++++++++++++++++ 3 files changed, 573 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0d8daf766a..33e1c775fd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -517,6 +517,7 @@ dist_patch_DATA = \ %D%/packages/patches/calibre-drop-unrar.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ + %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \ %D%/packages/patches/ceph-disable-cpu-optimizations.patch \ %D%/packages/patches/ceph-disable-unittest-throttle.patch \ %D%/packages/patches/ceph-skip-collect-sys-info-test.patch \ diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 7e86753abe..c0ba337da1 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -26,7 +26,7 @@ (define-module (gnu packages cdrom) #:use-module (guix download) #:use-module (guix packages) - #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+)) + #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+ cddl1.0)) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) @@ -197,6 +197,63 @@ extra-robust data verification, synchronization, error handling and scratch reconstruction capability.") (license gpl2))) ; libraries under lgpl2.1 +(define-public cdrtools + (package + (name "cdrtools") + (version "3.01") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/cdrtools/cdrtools-" version ".tar.bz2")) + (sha256 + (base32 + "03w6ypsmwwy4d7vh6zgwpc60v541vc5ywp8bdb758hbc4yv2wa7d")) + (patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch")))) + (build-system gnu-build-system) + ;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia. + (inputs + `(("linux-headers" ,linux-libre-headers))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'set-linux-headers + (lambda _ + (substitute* "autoconf/configure" + (("/usr/src/linux") + (assoc-ref %build-inputs "linux-headers"))) + #t)) + (add-before 'build 'substitute-dirs + (lambda _ + (substitute* (append (find-files "DEFAULTS" "^Defaults\\.") + (find-files "DEFAULTS_ENG" "^Defaults\\.") + (find-files "TEMPLATES" "^Defaults\\.")) + (("/opt/schily") (assoc-ref %outputs "out"))) + #t)) + (replace 'build + (lambda _ + (zero? + (system* "make" "CONFIG_SHELL=sh" "CCOM=gcc" "RM=rm")))) + (replace 'install + (lambda _ + (zero? + (system* "make" + "RM=rm" "LN=ln" "SYMLINK=ln -s" + (string-append "INS_BASE=" (assoc-ref %outputs "out")) + (string-append "INS_RBASE=" (assoc-ref %outputs "out")) + "install" ))))) + #:tests? #f)) ; no tests + (synopsis "Command line utilities to manipulate and burn CD/DVD/BD images") + (description "cdrtools is a collection of command line utilities to create +CD's, DVD's or Blue Ray discs. The most important components are +@command{cdrecord}, a burning program, @command{cdda2wav}, a CD audio ripper +which uses libparanoia, and @command{mkisofs}, which can create various disc +images.") + (home-page "http://cdrtools.sourceforge.net/private/cdrecord.html") + + ;; mkisofs is GPL, the other programs are CDDL. + (license (list cddl1.0 gpl2)))) + (define-public dvdisaster (package (name "dvdisaster") diff --git a/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch b/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch new file mode 100644 index 0000000000..9c817d4198 --- /dev/null +++ b/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch @@ -0,0 +1,514 @@ +Patch for version 3.01, taken from upstream at +https://sourceforge.net/projects/cdrtools/files/cdrtools-3.01-fix-20151126-mkisofs-isoinfo.patch + +--- cdrtools-3.01.orig/mkisofs/diag/isoinfo.c 2015-07-22 20:36:45.000000000 +0000 ++++ cdrtools-3.01/mkisofs/diag/isoinfo.c 2015-11-17 19:35:40.000000000 +0000 +@@ -1,8 +1,8 @@ +-/* @(#)isoinfo.c 1.95 15/07/22 joerg */ ++/* @(#)isoinfo.c 1.100 15/11/17 joerg */ + #include + #ifndef lint + static UConst char sccsid[] = +- "@(#)isoinfo.c 1.95 15/07/22 joerg"; ++ "@(#)isoinfo.c 1.100 15/11/17 joerg"; + #endif + /* + * File isodump.c - dump iso9660 directory information. +@@ -148,8 +148,10 @@ LOCAL char er_id[256]; + LOCAL int su_version = 0; + LOCAL int rr_version = 0; + LOCAL int aa_version = 0; ++LOCAL int cl_extent = 0; + LOCAL int ucs_level = 0; + LOCAL BOOL iso9660_inodes = FALSE; ++LOCAL uid_t myuid; + + #ifdef USE_FIND + LOCAL findn_t *find_node; /* syntaxtree from find_parse() */ +@@ -208,6 +210,9 @@ LOCAL void extract __PR((char *rootname + LOCAL void extract_file __PR((int f, + struct iso_directory_record * idr, + char *fname)); ++LOCAL void parse_cl_dir __PR((struct iso_directory_record *idr, ++ int extent)); ++LOCAL BOOL parse_de __PR((struct iso_directory_record *idr)); + LOCAL void parse_dir __PR((char * rootname, int extent, int len)); + LOCAL void usage __PR((int excode)); + EXPORT int main __PR((int argc, char *argv[])); +@@ -459,7 +464,6 @@ parse_rr(pnt, len, cont_flag) + int slen; + int xlen; + int ncount; +- int cl_extent; + int pl_extent; + int cont_extent, cont_offset, cont_size; + int flag1, flag2; +@@ -469,7 +473,7 @@ parse_rr(pnt, len, cont_flag) + + symlinkname[0] = 0; + +- cont_extent = cont_offset = cont_size = 0; ++ cl_extent = cont_extent = cont_offset = cont_size = 0; + + ncount = 0; + flag1 = -1; +@@ -714,6 +718,7 @@ struct todo + }; + + LOCAL struct todo *todo_idr = NULL; ++LOCAL struct todo **todo_pp = &todo_idr; + + LOCAL char *months[12] = {"Jan", "Feb", "Mar", "Apr", + "May", "Jun", "Jul", +@@ -962,8 +967,14 @@ static BOOL isfirst = TRUE; + close(f); + return; + setmode: +- fchmodat(AT_FDCWD, fname, fstat_buf.st_mode, AT_SYMLINK_NOFOLLOW); + fchownat(AT_FDCWD, fname, fstat_buf.st_uid, fstat_buf.st_gid, AT_SYMLINK_NOFOLLOW); ++ if (myuid != 0 && S_ISDIR(fstat_buf.st_mode)) { ++ /* ++ * Temporary hack until we have a dirstack like star. ++ */ ++ fstat_buf.st_mode |= S_IWUSR; ++ } ++ fchmodat(AT_FDCWD, fname, fstat_buf.st_mode, AT_SYMLINK_NOFOLLOW); + times[0].tv_sec = fstat_buf.st_atime; + times[0].tv_nsec = stat_ansecs(&fstat_buf); + times[1].tv_sec = fstat_buf.st_mtime; +@@ -1001,6 +1012,143 @@ extract_file(f, idr, fname) + } + } + ++ ++LOCAL void ++parse_cl_dir(idr, extent) ++ struct iso_directory_record *idr; ++ int extent; ++{ ++ char cl_name_buf[256*3]; ++ ++ strlcpy(cl_name_buf, name_buf, sizeof (cl_name_buf)); ++#ifdef USE_SCG ++ readsecs(extent - sector_offset, idr, 1); ++#else ++ lseek(fileno(infile), ((off_t)(extent - sector_offset)) << 11, SEEK_SET); ++ read(fileno(infile), idr, 2048); ++#endif ++ ++ if (parse_de(idr) && use_rock) ++ dump_rr(idr); ++ strlcpy(name_buf, cl_name_buf, sizeof (name_buf)); ++} ++ ++LOCAL BOOL ++parse_de(idr) ++ struct iso_directory_record *idr; ++{ ++ unsigned char uc; ++ ++ if (idr->length[0] == 0) ++ return (FALSE); ++ memset(&fstat_buf, 0, sizeof (fstat_buf)); ++ found_rr = 0; ++ name_buf[0] = xname[0] = 0; ++ fstat_buf.st_size = (off_t)(unsigned)isonum_733((unsigned char *)idr->size); ++ if (idr->flags[0] & 2) ++ fstat_buf.st_mode |= S_IFDIR; ++ else ++ fstat_buf.st_mode |= S_IFREG; ++ if (idr->name_len[0] == 1 && idr->name[0] == 0) ++ strcpy(name_buf, "."); ++ else if (idr->name_len[0] == 1 && idr->name[0] == 1) ++ strcpy(name_buf, ".."); ++ else { ++ switch (ucs_level) { ++ case 3: ++ case 2: ++ case 1: ++ /* ++ * Unicode name. Convert as best we can. ++ */ ++ { ++ int j; ++ name_buf[0] = '\0'; ++#ifdef USE_ICONV ++ if (use_iconv(unls)) { ++ int u; ++ char *to = name_buf; ++ ++ for (j = 0, u = 0; j < (int)idr->name_len[0] / 2; j++) { ++ char *ibuf = (char *)&idr->name[j*2]; ++ size_t isize = 2; /* UCS-2 character size */ ++ size_t osize = 4; ++ ++ if (iconv(unls->sic_uni2cd, (__IC_CONST char **)&ibuf, &isize, ++ (char **)&to, &osize) == -1) { ++ int err = geterrno(); ++ ++ if ((err == EINVAL || err == EILSEQ) && ++ osize == 4) { ++ *to = '_'; ++ u += 1; ++ to++; ++ } ++ } else { ++ u += 4 - osize; ++ to = &name_buf[u]; ++ } ++ } ++ j = u; ++ } else ++#endif ++ for (j = 0; j < (int)idr->name_len[0] / 2; j++) { ++ UInt16_t unichar; ++ ++ unichar = (idr->name[j*2] & 0xFF) * 256 + ++ (idr->name[j*2+1] & 0xFF); ++ ++ /* ++ * Get the backconverted char ++ */ ++ if (unls) ++ uc = sic_uni2c(unls, unichar); ++ else ++ uc = unichar > 255 ? '_' : unichar; ++ ++ name_buf[j] = uc ? uc : '_'; ++ } ++ name_buf[j] = '\0'; ++ } ++ break; ++ case 0: ++ /* ++ * Normal non-Unicode name. ++ */ ++ strncpy(name_buf, idr->name, idr->name_len[0]); ++ name_buf[idr->name_len[0]] = 0; ++ break; ++ default: ++ /* ++ * Don't know how to do these yet. Maybe they are the same ++ * as one of the above. ++ */ ++ exit(1); ++ } ++ } ++ memcpy(date_buf, idr->date, 9); ++ /* ++ * Always first set up time stamps and file modes from ++ * ISO-9660. This is used as a fallback in case that ++ * there is no related Rock Ridge based data. ++ */ ++ fstat_buf.st_atime = ++ fstat_buf.st_mtime = ++ fstat_buf.st_ctime = iso9660_time(date_buf, NULL, FALSE); ++ fstat_buf.st_mode |= S_IRUSR|S_IXUSR | ++ S_IRGRP|S_IXGRP | ++ S_IROTH|S_IXOTH; ++ fstat_buf.st_nlink = 1; ++ fstat_buf.st_ino = 0; ++ fstat_buf.st_uid = 0; ++ fstat_buf.st_gid = 0; ++ if (iso9660_inodes) { ++ fstat_buf.st_ino = (unsigned long) ++ isonum_733((unsigned char *)idr->extent); ++ } ++ return (TRUE); ++} ++ + LOCAL void + parse_dir(rootname, extent, len) + char *rootname; +@@ -1012,12 +1160,13 @@ parse_dir(rootname, extent, len) + struct iso_directory_record * idr; + struct iso_directory_record didr; + struct stat dstat; +- unsigned char uc; ++ unsigned char cl_buffer[2048]; + unsigned char flags = 0; + Llong size = 0; + int sextent = 0; + int rlen; + int blen; ++ int rr_flags = 0; + static char *n = 0; + static int nlen = 0; + +@@ -1039,115 +1188,23 @@ static int nlen = 0; + i = 0; + while (1 == 1) { + idr = (struct iso_directory_record *) &buffer[i]; +- if (idr->length[0] == 0) break; +- memset(&fstat_buf, 0, sizeof (fstat_buf)); +- found_rr = 0; +- name_buf[0] = xname[0] = 0; +- fstat_buf.st_size = (off_t)(unsigned)isonum_733((unsigned char *)idr->size); +- if (idr->flags[0] & 2) +- fstat_buf.st_mode |= S_IFDIR; +- else +- fstat_buf.st_mode |= S_IFREG; +- if (idr->name_len[0] == 1 && idr->name[0] == 0) +- strcpy(name_buf, "."); +- else if (idr->name_len[0] == 1 && idr->name[0] == 1) +- strcpy(name_buf, ".."); +- else { +- switch (ucs_level) { +- case 3: +- case 2: +- case 1: +- /* +- * Unicode name. Convert as best we can. +- */ +- { +- int j; +- +- name_buf[0] = '\0'; +-#ifdef USE_ICONV +- if (use_iconv(unls)) { +- int u; +- char *to = name_buf; +- +- for (j = 0, u = 0; j < (int)idr->name_len[0] / 2; j++) { +- char *ibuf = (char *)&idr->name[j*2]; +- size_t isize = 2; /* UCS-2 character size */ +- size_t osize = 4; +- +- if (iconv(unls->sic_uni2cd, (__IC_CONST char **)&ibuf, &isize, +- (char **)&to, &osize) == -1) { +- int err = geterrno(); +- +- if ((err == EINVAL || err == EILSEQ) && +- osize == 4) { +- *to = '_'; +- u += 1; +- to++; +- } +- } else { +- u += 4 - osize; +- to = &name_buf[u]; +- } +- } +- j = u; +- } else +-#endif +- for (j = 0; j < (int)idr->name_len[0] / 2; j++) { +- UInt16_t unichar; +- +- unichar = (idr->name[j*2] & 0xFF) * 256 + +- (idr->name[j*2+1] & 0xFF); +- +- /* +- * Get the backconverted char +- */ +- if (unls) +- uc = sic_uni2c(unls, unichar); +- else +- uc = unichar > 255 ? '_' : unichar; ++ if (idr->length[0] == 0) ++ break; ++ parse_de(idr); ++ if (use_rock) { ++ rr_flags = dump_rr(idr); + +- name_buf[j] = uc ? uc : '_'; +- } +- name_buf[j] = '\0'; +- } +- break; +- case 0: ++ if (rr_flags & RR_FLAG_CL) { + /* +- * Normal non-Unicode name. ++ * Need to reparse the child link ++ * but note that we parse "CL/." ++ * so we get no usable file name. + */ +- strncpy(name_buf, idr->name, idr->name_len[0]); +- name_buf[idr->name_len[0]] = 0; +- break; +- default: +- /* +- * Don't know how to do these yet. Maybe they are the same +- * as one of the above. +- */ +- exit(1); +- } ++ idr = (struct iso_directory_record *) cl_buffer; ++ parse_cl_dir(idr, cl_extent); ++ } else if (rr_flags & RR_FLAG_RE) ++ goto cont; /* skip rr_moved */ + } +- memcpy(date_buf, idr->date, 9); +- /* +- * Always first set up time stamps and file modes from +- * ISO-9660. This is used as a fallback in case that +- * there is no related Rock Ridge based data. +- */ +- fstat_buf.st_atime = +- fstat_buf.st_mtime = +- fstat_buf.st_ctime = iso9660_time(date_buf, NULL, FALSE); +- fstat_buf.st_mode |= S_IRUSR|S_IXUSR | +- S_IRGRP|S_IXGRP | +- S_IROTH|S_IXOTH; +- fstat_buf.st_nlink = 1; +- fstat_buf.st_ino = 0; +- fstat_buf.st_uid = 0; +- fstat_buf.st_gid = 0; +- if (iso9660_inodes) { +- fstat_buf.st_ino = (unsigned long) +- isonum_733((unsigned char *)idr->extent); +- } +- if (use_rock) +- dump_rr(idr); + if (Xtract && + (idr->flags[0] & 2) != 0 && + idr->name_len[0] == 1 && +@@ -1170,30 +1227,30 @@ static int nlen = 0; + n[rlen] = '\0'; + + if ((idr->flags[0] & 2) != 0 && +- (idr->name_len[0] != 1 || ++ ((rr_flags & RR_FLAG_CL) || ++ idr->name_len[0] != 1 || + (idr->name[0] != 0 && idr->name[0] != 1))) { + /* + * This is a plain directory (neither "xxx/." + * nor "xxx/.."). + * Add this directory to the todo list. + */ +- td = todo_idr; +- if (td != NULL) { +- while (td->next != NULL) +- td = td->next; +- td->next = (struct todo *) malloc(sizeof (*td)); +- td = td->next; +- } else { +- todo_idr = td = (struct todo *) malloc(sizeof (*td)); +- } ++ td = (struct todo *) malloc(sizeof (*td)); ++ if (td == NULL) ++ comerr(_("No memory.\n")); + td->next = NULL; + td->extent = isonum_733((unsigned char *)idr->extent); + td->length = isonum_733((unsigned char *)idr->size); + td->name = (char *) malloc(strlen(rootname) + + strlen(name_buf) + 2); ++ if (td->name == NULL) ++ comerr(_("No memory.\n")); + strcpy(td->name, rootname); + strcat(td->name, name_buf); + strcat(td->name, "/"); ++ ++ *todo_pp = td; ++ todo_pp = &td->next; + } else { + if (xtract && strcmp(xtract, n) == 0) { + extract_file(STDOUT_FILENO, idr, "stdout"); +@@ -1253,6 +1310,7 @@ static int nlen = 0; + if ((idr->flags[0] & ISO_MULTIEXTENT) == 0) + size = 0; + } ++ cont: + i += buffer[i]; + if (i > 2048 - offsetof(struct iso_directory_record, name[0])) break; + } +@@ -1381,12 +1439,13 @@ main(argc, argv) + usage(0); + if (prvers) { + printf(_("isoinfo %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 1999-2015 %s\n"), +- VERSION, ++ "3.02a02", + HOST_CPU, HOST_VENDOR, HOST_OS, + _("Eric Youngdale"), + _("Joerg Schilling")); + exit(0); + } ++ myuid = getuid(); + #ifdef USE_FIND + if (do_find) { + finda_t fa; +--- cdrtools-3.01.orig/mkisofs/udf.c 2013-04-24 20:45:18.000000000 +0000 ++++ cdrtools-3.01/mkisofs/udf.c 2015-11-25 22:07:30.000000000 +0000 +@@ -1,15 +1,15 @@ +-/* @(#)udf.c 1.42 13/04/24 Copyright 2001-2013 J. Schilling */ ++/* @(#)udf.c 1.43 15/11/25 Copyright 2001-2015 J. Schilling */ + #include + #ifndef lint + static UConst char sccsid[] = +- "@(#)udf.c 1.42 13/04/24 Copyright 2001-2013 J. Schilling"; ++ "@(#)udf.c 1.43 15/11/25 Copyright 2001-2015 J. Schilling"; + #endif + /* + * udf.c - UDF support for mkisofs + * + * Written by Ben Rudiak-Gould (2001). + * +- * Copyright 2001-2013 J. Schilling. ++ * Copyright 2001-2015 J. Schilling. + */ + /* + * This program is free software; you can redistribute it and/or modify +@@ -98,7 +98,7 @@ static UConst char sccsid[] = + extern int use_sparcboot; + + extern struct directory *root; +-extern time_t begun; ++extern struct timeval tv_begun; + + static unsigned lba_main_seq; + static unsigned lba_main_seq_copy; +@@ -110,7 +110,7 @@ static unsigned lba_end_anchor_vol_desc; + static unsigned num_udf_files; + static unsigned num_udf_directories; + +-static unsigned volume_set_id[2]; ++static unsigned volume_set_id[2] = { 0, 0 }; + + #define UDF_MAIN_SEQ_LENGTH (16) + #define UDF_INTEG_SEQ_LENGTH (2) +@@ -723,7 +723,7 @@ set_primary_vol_desc(buf, lba) + /*pvd->volume_abstract;*/ + /*pvd->volume_copyright_notice;*/ + /*pvd->application_ident;*/ +- set_timestamp_from_time_t(&pvd->recording_date_and_time, begun); ++ set_timestamp_from_time_t(&pvd->recording_date_and_time, tv_begun.tv_sec); + set_impl_ident(&pvd->impl_ident); + set_tag(&pvd->desc_tag, UDF_TAGID_PRIMARY_VOLUME_DESC, lba, 512); + } +@@ -831,7 +831,7 @@ set_logical_vol_integrity_desc(buf, lba) + udf_logical_volume_integrity_desc *lvid = + (udf_logical_volume_integrity_desc *)buf; + +- set_timestamp_from_time_t(&lvid->recording_date, begun); ++ set_timestamp_from_time_t(&lvid->recording_date, tv_begun.tv_sec); + set32(&lvid->integrity_type, UDF_INTEGRITY_TYPE_CLOSE); + /*lvid->next_integrity_extent;*/ + set64(&lvid->logical_volume_contents_use.unique_id, +@@ -859,7 +859,7 @@ set_file_set_desc(buf, rba) + { + udf_file_set_desc *fsd = (udf_file_set_desc *)buf; + +- set_timestamp_from_time_t(&fsd->recording_date_and_time, begun); ++ set_timestamp_from_time_t(&fsd->recording_date_and_time, tv_begun.tv_sec); + set16(&fsd->interchange_level, 3); + set16(&fsd->maximum_interchange_level, 3); + set32(&fsd->character_set_list, 1); +@@ -1986,8 +1986,10 @@ udf_main_seq_write(out) + * volume_set_id needs to be set to a (64-bit) "unique" number. + * This will have to do for now. + */ +- volume_set_id[0] = begun; +- volume_set_id[1] = (unsigned)clock(); /* XXX Maybe non-portable */ ++ if (volume_set_id[0] == 0) { ++ volume_set_id[0] = tv_begun.tv_sec; ++ volume_set_id[1] = (unsigned)tv_begun.tv_usec; ++ } + + memset(buf, 0, sizeof (buf)); + set_primary_vol_desc(buf, last_extent_written++); +--- cdrtools-3.01.orig/mkisofs/mkisofs.c 2015-01-01 14:19:51.000000000 +0000 ++++ cdrtools-3.01/mkisofs/mkisofs.c +@@ -69 +69 @@ int path_ind; +-char version_string[] = VERSION; ++char version_string[] = "3.01-fix-20151126"; From 76e98457347207459417f46c2f542b6a9f03fb7f Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 20 Apr 2017 17:58:24 +0200 Subject: [PATCH 219/386] gnu: Add dvd+rw-tools. * gnu/packages/cdrom.scm (dvd+rw-tools): New variable. * gnu/packages/patches/dvd+rw-tools-add-include.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/cdrom.scm | 43 +++++++++++++++++++ .../patches/dvd+rw-tools-add-include.patch | 14 ++++++ 3 files changed, 58 insertions(+) create mode 100644 gnu/packages/patches/dvd+rw-tools-add-include.patch diff --git a/gnu/local.mk b/gnu/local.mk index 33e1c775fd..e7c670793c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -552,6 +552,7 @@ dist_patch_DATA = \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ %D%/packages/patches/doxygen-test.patch \ + %D%/packages/patches/dvd+rw-tools-add-include.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-disable-failing-tests.patch \ %D%/packages/patches/einstein-build.patch \ diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index c0ba337da1..759375e45d 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 John Darrington +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,6 +42,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages glib) #:use-module (gnu packages man) + #:use-module (gnu packages m4) #:use-module (gnu packages mp3) #:use-module (gnu packages ncurses) #:use-module (gnu packages elf) @@ -254,6 +256,47 @@ images.") ;; mkisofs is GPL, the other programs are CDDL. (license (list cddl1.0 gpl2)))) +(define-public dvd+rw-tools + (package + (name "dvd+rw-tools") + (version "7.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-" + version ".tar.gz")) + (sha256 + (base32 + "1jkjvvnjcyxpql97xjjx0kwvy70kxpiznr2zpjy2hhci5s10zmpq")) + (patches (search-patches "dvd+rw-tools-add-include.patch")))) + (build-system gnu-build-system) + (inputs + `(("cdrtools" ,cdrtools))) + (native-inputs + `(("m4" ,m4))) + (arguments + `(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ (setenv "prefix" (assoc-ref %outputs "out")) #t)) + (add-before 'build 'embed-mkisofs + (lambda* (#:key inputs #:allow-other-keys) + ;; We use sed --in-place because substitute* cannot handle the + ;; character encoding used by growisofs.c. + (zero? (system* "sed" "-i" "-e" + (string-append + "s,\"mkisofs\"," + "\"" (which "mkisofs") "\",") + "growisofs.c"))))))) + (home-page "http://fy.chalmers.se/~appro/linux/DVD+RW/") + (synopsis "DVD and Blu-ray Disc burning tools") + (description "dvd+rw-tools, mostly known for its command +@command{growisofs}, is a collection of DVD and Blu-ray Disc burning tools. +It requires another program, such as @command{mkisofs}, @command{genisoimage}, +or @command{xorrisofs} to create ISO 9660 images.") + (license gpl2))) + (define-public dvdisaster (package (name "dvdisaster") diff --git a/gnu/packages/patches/dvd+rw-tools-add-include.patch b/gnu/packages/patches/dvd+rw-tools-add-include.patch new file mode 100644 index 0000000000..800f8f30ba --- /dev/null +++ b/gnu/packages/patches/dvd+rw-tools-add-include.patch @@ -0,0 +1,14 @@ +Without , INT_MAX is not defined. + +diff --git a/transport.hxx b/transport.hxx +index 35a57a7..838add6 100644 +--- a/transport.hxx ++++ b/transport.hxx +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + #include + #include From ce426deb8a4b6132919200ea956f10c4269c9550 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Tue, 25 Apr 2017 18:01:40 +0200 Subject: [PATCH 220/386] gnu: brasero: Embed growisofs store item. * gnu/packages/gnome.scm (brasero)[arguments]: Add phase 'embed-growisofs. [inputs]: Add dvd+rw-tools. --- gnu/packages/gnome.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index ef67961ab8..cec8baebfe 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -150,7 +150,14 @@ "/share/gir-1.0") (string-append "--with-typelibdir=" (assoc-ref %outputs "out") - "/lib/girepository-1.0")))) + "/lib/girepository-1.0")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'embed-growisofs + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "plugins/growisofs/burn-growisofs.c" + (("\"growisofs") (string-append "\"" (which "growisofs")))) + #t ))))) (propagated-inputs `(("hicolor-icon-theme" ,hicolor-icon-theme))) (native-inputs @@ -159,7 +166,8 @@ ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config))) (inputs - `(("glib" ,glib) + `(("dvd+rw-tools" ,dvd+rw-tools) + ("glib" ,glib) ("gnome-doc-utils" ,gnome-doc-utils) ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) From b5b20bda17acfce8802e067f1ca015c65f4d3cf8 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 20 Apr 2017 18:15:03 +0200 Subject: [PATCH 221/386] gnu: Add dvdauthor. * gnu/packages/video.scm (dvdauthor): New variable. --- gnu/packages/video.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e7af81e728..dde4041449 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2017 Feng Shu ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Chris Marusich +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -75,6 +76,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages m4) @@ -1193,6 +1195,33 @@ authentication and descrambling (if an external libdvdcss library is installed).") (license license:gpl2+))) +(define-public dvdauthor + (package + (name "dvdauthor") + (version "0.7.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/dvdauthor/dvdauthor-" + version ".tar.gz")) + (sha256 + (base32 + "1drfc47hikfzc9d7hjk34rw10iqw01d2vwmn91pv73ppx4nsj81h")))) + (build-system gnu-build-system) + (inputs + `(("libdvdread" ,libdvdread) + ("libpng" ,libpng) + ("imagemagick" ,imagemagick) + ("libxml2" ,libxml2) + ("freetype" ,freetype))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "Generates a DVD-Video movie from a MPEG-2 stream") + (description "@command{dvdauthor} will generate a DVD-Video movie from a +MPEG-2 stream containing VOB packets.") + (home-page "http://dvdauthor.sourceforge.net") + (license license:gpl3+))) + (define-public libdvdnav (package (name "libdvdnav") From 1d5b3f432efa59ea7604380ca3fd0f8771ae3ecf Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 20 Apr 2017 18:33:07 +0200 Subject: [PATCH 222/386] gnu: Add wxwidgets-3.1. * gnu/packages/wxwidgets.scm (wxwidgets-3.1): New variable. --- gnu/packages/wxwidgets.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 329920d7c1..cf4329a6ce 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python) #:use-module (guix build utils) + #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages databases) @@ -102,6 +104,27 @@ and many other languages.") (package-inputs wxwidgets)))) (name "wxwidgets-gtk2"))) +;; Development version of wxWidgets, required to build against gstreamer-1.x. +;; This can be removed when wxWidgets is updated to the next stable version. +(define-public wxwidgets-3.1 + (package (inherit wxwidgets) + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/wxWidgets/wxWidgets/archive/v" + version ".tar.gz")) + (file-name (string-append "wxwidgets-" version ".tar.gz")) + (sha256 + (base32 "1yan5ysjwh6a7xw82sfjd1xn0nsy1dn2s0cx9ac7cw19191blc3y")))) + (inputs `(("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ,@(package-inputs wxwidgets))) + (arguments + (substitute-keyword-arguments (package-arguments wxwidgets) + ((#:configure-flags flags) + `(cons "--enable-mediactrl" ,flags)))))) + (define-public python2-wxpython (package (name "python2-wxpython") From a689185df3f6dea13d603874c070c944f4ad862d Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 20 Apr 2017 18:40:25 +0200 Subject: [PATCH 223/386] gnu: Add wxsvg. * gnu/packages/wxwidgets.scm (wxsvg): New variable. --- gnu/packages/wxwidgets.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index cf4329a6ce..5610a0f3b2 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -37,6 +37,8 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages photo) + #:use-module (gnu packages video) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages sdl) @@ -195,3 +197,33 @@ and many other languages.") (description "@code{wxpython} provides Python 2 bindings for wxWidgets.") (home-page "http://wxpython.org/") (license (package-license wxwidgets)))) + +(define-public wxsvg + (package + (name "wxsvg") + (version "1.5.11") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/wxsvg/wxsvg/" + version "/wxsvg-" version ".tar.bz2")) + (sha256 + (base32 + "0m3ff8mjiq4hvy8rmxyc9fkpf24xwxhvr3a6jmvr2q5zc41xhz7x")))) + (build-system glib-or-gtk-build-system) + (inputs + `(("wxwidgets" ,wxwidgets-3.1) + ("cairo" ,cairo) + ("pango" ,pango) + ("libexif" ,libexif) + ("ffmpeg" ,ffmpeg))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "C++ library to create, manipulate and render SVG files") + (description "wxSVG is a C++ library to create, manipulate and render +@dfn{Scalable Vector Graphics} (SVG) files with the wxWidgets toolkit.") + (home-page "http://wxsvg.sourceforge.net") + + ;; wxSVG is licenced under the "wxWindows library licence", which is + ;; the LGPL2.0+, with a few extra permissions. + (license (list l:lgpl2.0+ (l:fsf-free "file://COPYING"))))) From 52cb22cd5a352c2193189401f3bed5ef1d5de026 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 20 Apr 2017 18:53:22 +0200 Subject: [PATCH 224/386] gnu: Add dvdstyler. * gnu/packages/cdrom.scm (dvdstyler): New variable. --- gnu/packages/cdrom.scm | 73 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 759375e45d..15329b3109 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -37,8 +37,12 @@ #:use-module (gnu packages audio) #:use-module (gnu packages bison) #:use-module (gnu packages compression) + #:use-module (gnu packages zip) #:use-module (gnu packages flex) + #:use-module (gnu packages fontutils) #:use-module (gnu packages gettext) + #:use-module (gnu packages docbook) + #:use-module (gnu packages xml) #:use-module (gnu packages gtk) #:use-module (gnu packages glib) #:use-module (gnu packages man) @@ -46,11 +50,16 @@ #:use-module (gnu packages mp3) #:use-module (gnu packages ncurses) #:use-module (gnu packages elf) + #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) #:use-module (gnu packages readline) #:use-module (gnu packages base) #:use-module (gnu packages perl) #:use-module (gnu packages python) + #:use-module (gnu packages image) + #:use-module (gnu packages photo) + #:use-module (gnu packages video) #:use-module (gnu packages wget) #:use-module (gnu packages xiph)) @@ -338,6 +347,70 @@ depend on the file system of the medium. The maximum error correction capacity is user-selectable.") (license gpl2+))) +(define-public dvdstyler + (package + (name "dvdstyler") + (version "3.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/dvdstyler/dvdstyler/" + version "/DVDStyler-" version ".tar.bz2")) + (sha256 + (base32 + "1j432kszmwmsd3nz398h5514dbm5vsrn4rr3iil72ckjj1h3i00q")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list (string-append "XMLTO=" + (assoc-ref %build-inputs "xmlto") + "/bin/xmlto" + " --searchpath " + (assoc-ref %build-inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-1.79.1/htmlhelp:" + (assoc-ref %build-inputs "docbook-xml") + "/xml/dtd/docbook")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") "/bin/dvdstyler") + `("PATH" ":" prefix + (,(string-join + (map (lambda (in) (string-append (assoc-ref inputs in) "/bin")) + '("cdrtools" "dvdauthor" "dvd+rw-tools" "ffmpeg")) + ":")))) + #t))) + #:tests? #f)) ; No tests. + (inputs ; TODO package bundled wxvillalib + `(("wxwidgets" ,wxwidgets-3.1) + ("wssvg" ,wxsvg) + ("dbus" ,dbus) + ("cdrtools" ,cdrtools) + ("dvd+rw-tools" ,dvd+rw-tools) + ("dvdauthor" ,dvdauthor) + ("eudev" ,eudev) + ("fontconfig" ,fontconfig) + ("libexif" ,libexif) + ("libjpeg" ,libjpeg) + ("ffmpeg" ,ffmpeg))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("flex" ,flex) + ("python" ,python-2) + ("xmlto" ,xmlto) + ("gettext" ,gnu-gettext) + ("docbook-xml" ,docbook-xml) + ("docbook-xsl" ,docbook-xsl) + ("zip" ,zip))) + (synopsis "DVD authoring application") + (description "DVDStyler is a DVD authoring application which allows users +to burn video files in many formats to DVD discs, complete with individually +designed menus. It can be used to create professional-looking DVD's with +custom buttons, backgrounds and animations, from within a user-friendly +graphical interface.") + (home-page "https://www.dvdstyler.org") + (license gpl2))) + (define-public libcue (package (name "libcue") From 39a01619caa5ec7456376dc448ac8640ae538f8a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 10 May 2017 08:36:25 +0300 Subject: [PATCH 225/386] gnu: efl: Update to 1.18.5. * gnu/packages/enlightenment.scm (efl): Update to 1.18.5. [home-page]: Update. --- gnu/packages/enlightenment.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index b9a55333df..8a3d88e62a 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -57,7 +57,7 @@ (define-public efl (package (name "efl") - (version "1.18.4") + (version "1.18.5") (source (origin (method url-fetch) (uri (string-append @@ -65,7 +65,7 @@ version ".tar.xz")) (sha256 (base32 - "09c0ajszjarcs6d62zlgnf1aha2f921mfr0gxg6nwza36xzc1srr")))) + "0wxz00cijynamm0sx4ss4hp89zyz5y6zliv5zd905jn4nak2mw2n")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -133,7 +133,7 @@ "--with-opengl=es" "--enable-egl" "--enable-harfbuzz"))) - (home-page "https://www.enlightenment.org") + (home-page "https://www.enlightenment.org/about-efl") (synopsis "Enlightenment Foundation Libraries") (description "Enlightenment Foundation Libraries is a set of libraries developed From 5e569afbf299783153e51c23ec66c65b7d32a8cf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 10 May 2017 09:06:46 +0300 Subject: [PATCH 226/386] gnu: enlightenment: Update to 0.21.7. * gnu/packages/enlightenment.scm (enlightenment): Update to 0.21.7. [home-page]: Update. --- gnu/packages/enlightenment.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 8a3d88e62a..165ca50ce1 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -197,7 +197,7 @@ Libraries with some extra bells and whistles.") (define-public enlightenment (package (name "enlightenment") - (version "0.21.6") + (version "0.21.7") (source (origin (method url-fetch) (uri @@ -205,7 +205,7 @@ Libraries with some extra bells and whistles.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0gan3c8jbvhcmvb2fpbprr3m6db0afg1dnrb87nbqb399nsi81zd")))) + "1xvngjdsa0p901vfhrh2qpa50k32hwwhc8bgi16a9b5d9byzfhvn")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-mount-eeze"))) @@ -221,7 +221,7 @@ Libraries with some extra bells and whistles.") ("libxext" ,libxext) ("linux-pam" ,linux-pam) ("xcb-util-keysyms" ,xcb-util-keysyms))) - (home-page "https://www.enlightenment.org") + (home-page "https://www.enlightenment.org/about-enlightenment") (synopsis "Lightweight desktop environment") (description "Enlightenment is resource friendly desktop environment with integrated From f66f7b92bd7963337da0cdf647f694f5cd86ea71 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 10 May 2017 01:30:01 -0400 Subject: [PATCH 227/386] gnu: webkitgtk: Update to 2.16.2. * gnu/packages/webkit.scm (webkitgtk): Update to 2.16.2. --- gnu/packages/webkit.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index de431d0a02..e343f40cab 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -53,14 +53,14 @@ (define-public webkitgtk (package (name "webkitgtk") - (version "2.16.1") + (version "2.16.2") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "0i99kmv4dvb9m2sd36kig4j6d59pxmq47ih3nxayd31j68r3i4pb")))) + "0lpj14cfr8p0ys6z1ych0zcwxbc86asvgs7v3qa72azb0ai8kxjy")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no tests From 2406766e79264139ae75d006da2e09258c32e1b7 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sun, 7 May 2017 15:18:02 +0530 Subject: [PATCH 228/386] gnu: Add emacs-evil-commentary. * gnu/packages/emacs.scm (emacs-evil-commentary): New variable. --- gnu/packages/emacs.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f4cdd64b8a..41fc240e19 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4622,3 +4622,27 @@ pressed simultaneously or a single key quickly pressed twice.") (description "@code{emacs-evil-surround} allows easy deletion, change and addition of surrounding pairs, such as parantheses and quotes, in evil mode.") (license license:gpl3+))) + +(define-public emacs-evil-commentary + (package + (name "emacs-evil-commentary") + (version "2.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/linktohack/evil-commentary/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-evil" ,emacs-evil))) + (home-page "https://github.com/linktohack/evil-commentary") + (synopsis "Comment out code in evil mode") + (description "@code{emacs-evil-commentary} adds keybindings to easily +comment out lines of code in evil mode. It provides @code{gcc} to comment out +lines, and @code{gc} to comment out the target of a motion.") + (license license:gpl3+))) From 584da12dc71da745edb13bf748e832b77a0193d7 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 10 May 2017 15:34:59 +0200 Subject: [PATCH 229/386] gnu: Add LLVM, CLANG 3.9.1. * gnu/packages/llvm.scm (llvm-3.9.1): New variable. * gnu/packages/llvm.scm (clang-3.9.1): New variable. * gnu/packages/llvm.scm (clang-runtime-3.9.1): New variable. --- gnu/packages/llvm.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 52a78467a8..4702a342a0 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015, 2017 Ludovic Courtès ;;; Copyright © 2016 Dennis Mungai ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2017 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -218,6 +219,29 @@ code analysis tools.") "1prc72xmkgx8wrzmrr337776676nhsp1qd3mw2bvb22bzdnq7lsc" #:patches '("clang-3.8-libc-search-path.patch"))) +(define-public llvm-3.9.1 + (package (inherit llvm) + (name "llvm") + (version "3.9.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://llvm.org/releases/" + version "/llvm-" version ".src.tar.xz")) + (sha256 + (base32 + "1vi9sf7rx1q04wj479rsvxayb6z740iaz3qniwp266fgp5a07n8z")))))) + +(define-public clang-runtime-3.9.1 + (clang-runtime-from-llvm + llvm-3.9.1 + "16gc2gdmp5c800qvydrdhsp0bzb97s8wrakl6i8a4lgslnqnf2fk")) + +(define-public clang-3.9.1 + (clang-from-llvm llvm-3.9.1 clang-runtime-3.9.1 + "0qsyyb40iwifhhlx9a3drf8z6ni6zwyk3bvh0kx2gs6yjsxwxi76" + #:patches '())) + (define-public llvm-3.7 (package (inherit llvm) (version "3.7.1") From a62a16a4d38bc702da4fb9725fe7e1715ada2c4c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 May 2017 09:29:31 -0500 Subject: [PATCH 230/386] gnu: guile-sjson: Update to 0.2.1. * gnu/packages/guile.scm (guile-sjson): Update to 0.2.1. --- gnu/packages/guile.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index c7f3b8241a..8766e33081 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1838,14 +1838,14 @@ HTML (via SXML) or any other format for rendering.") (define-public guile-sjson (package (name "guile-sjson") - (version "0.2") + (version "0.2.1") (source (origin (method url-fetch) (uri (string-append "https://dustycloud.org/misc/sjson-" version ".tar.gz")) (sha256 (base32 - "09hnh2brc7ihh8dv4g5hdmdj8rs8p9l3pmlgafkx145grdg7wprx")))) + "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3")))) (build-system gnu-build-system) (arguments '(#:phases From 62ec02bf21a88330d5b9defef1152d6ec1e8541f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 10 May 2017 14:30:44 +0200 Subject: [PATCH 231/386] gnu: lvm2: Update to 2.02.171. * gnu/packages/linux.scm (lvm2, lvm2-static): Update to 2.02.171. [home-page]: Use HTTPS. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 9d3ca66e82..7a7eb6dfbf 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1820,14 +1820,14 @@ time.") (define-public lvm2 (package (name "lvm2") - (version "2.02.168") + (version "2.02.171") (source (origin (method url-fetch) (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2." version ".tgz")) (sha256 (base32 - "03b62hcsj9z37ckd8c21wwpm07s9zblq7grfh58yzcs1vp6x38r3")) + "0r4r9fsvpj9hjmf0zz7h4prz12r6y16jhjhsvk1sbfpsl88sf5dq")) (modules '((guix build utils))) (snippet '(begin @@ -1883,7 +1883,7 @@ time.") ;; The tests use 'mknod', which requires root access. #:tests? #f)) - (home-page "http://sourceware.org/lvm2/") + (home-page "https://sourceware.org/lvm2/") (synopsis "Logical volume management for Linux") (description "LVM2 is the logical volume management tool set for Linux-based systems. From 55acb372e38051399de52589407ca8cf7d04398d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 10 May 2017 15:47:29 +0200 Subject: [PATCH 232/386] gnu: e2fsprogs: Use 'modify-phases' syntax. * gnu/packages/linux.scm (e2fsprogs)[arguments]<#:phases>: Use 'modify-phases'. --- gnu/packages/linux.scm | 54 +++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7a7eb6dfbf..0495f045f4 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -695,34 +695,34 @@ slabtop, and skill.") (assoc-ref %outputs "out") "/lib")) - #:phases (alist-cons-before - 'configure 'patch-shells - (lambda _ - (substitute* "configure" - (("/bin/sh (.*)parse-types.sh" _ dir) - (string-append (which "sh") " " dir - "parse-types.sh"))) - (substitute* (find-files "." "^Makefile.in$") - (("#!/bin/sh") - (string-append "#!" (which "sh"))))) - (alist-cons-after - 'install 'install-libs - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) - (and (zero? (system* "make" "install-libs")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-shells + (lambda _ + (substitute* "configure" + (("/bin/sh (.*)parse-types.sh" _ dir) + (string-append (which "sh") " " dir + "parse-types.sh"))) + (substitute* (find-files "." "^Makefile.in$") + (("#!/bin/sh") + (string-append "#!" (which "sh")))) + #t)) + (add-after 'install 'install-libs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + (and (zero? (system* "make" "install-libs")) - ;; Make the .a writable so that 'strip' works. - ;; Failing to do that, due to debug symbols, we - ;; retain a reference to the final - ;; linux-libre-headers, which refer to the - ;; bootstrap binaries. - (let ((archives (find-files lib "\\.a$"))) - (for-each (lambda (file) - (chmod file #o666)) - archives) - #t)))) - %standard-phases)) + ;; Make the .a writable so that 'strip' works. + ;; Failing to do that, due to debug symbols, we + ;; retain a reference to the final + ;; linux-libre-headers, which refer to the + ;; bootstrap binaries. + (let ((archives (find-files lib "\\.a$"))) + (for-each (lambda (file) + (chmod file #o666)) + archives) + #t)))))) ;; FIXME: Tests work by comparing the stdout/stderr of programs, that ;; they fail because we get an extra line that says "Can't check if From b047a86b6ce9f953034df1198ad73dcd223aaa3f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 10 May 2017 15:48:38 +0200 Subject: [PATCH 233/386] gnu: e2fsprogs: Update to 1.43.4. * gnu/packages/linux.scm (e2fsprogs, e2fsprogs/static, e2fsck/static): Update to 1.43.4. [source]: Remove obsolete gzip substitution. Move '/bin/sh' substitution to ... [arguments] ... here. Move LDFLAGS from #:make-flags to #:configure-flags. Enable parallel build. --- gnu/packages/linux.scm | 48 ++++++++++++++++-------------------------- 1 file changed, 18 insertions(+), 30 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 0495f045f4..eb7c5d14ae 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -646,7 +646,7 @@ slabtop, and skill.") (define-public e2fsprogs (package (name "e2fsprogs") - (version "1.42.13") + (version "1.43.4") (source (origin (method url-fetch) (uri (string-append @@ -655,45 +655,30 @@ slabtop, and skill.") name "-" version ".tar.xz")) (sha256 (base32 - "1ix0b83zgw5n0p2grh2961c6796m92yr2jqc2sbr23x3lfsp8r71")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "MCONFIG.in" - (("INSTALL_SYMLINK = /bin/sh") - "INSTALL_SYMLINK = sh")) - - ;; Do not include a timestamp in libext2fs.info.gz. - (substitute* "doc/Makefile.in" - (("gzip -9") - "gzip -9n")))))) + "092absr4vrlqrkdf9nwh4ykj40ab6hhwrkdr6sjsccd54c8z5csl")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (native-inputs `(("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) ;for the libext2fs Info manual (arguments - '(;; Parallel building reliably yields a failure like this: - ;; "make[2]: *** No rule to make target '../lib/libss.so', needed by - ;; 'debugfs'. Stop." - #:parallel-build? #f - ;; util-linux is the preferred source for some of the libraries and + '(;; util-linux is the preferred source for some of the libraries and ;; commands, so disable them (see, e.g., ;; .) - #:configure-flags '("--disable-libblkid" - "--disable-libuuid" "--disable-uuidd" - "--disable-fsck" + #:configure-flags (list "--disable-libblkid" + "--disable-libuuid" "--disable-uuidd" + "--disable-fsck" - ;; Use symlinks instead of hard links for - ;; 'fsck.extN' etc. This makes the resulting nar - ;; smaller and is preserved across copies. - "--enable-symlink-install" + ;; Use symlinks instead of hard links for + ;; 'fsck.extN' etc. This makes the resulting nar + ;; smaller and is preserved across copies. + "--enable-symlink-install" - ;; Install libext2fs et al. - "--enable-elf-shlibs") + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib") - #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") - "/lib")) + ;; Install libext2fs et al. + "--enable-elf-shlibs") #:phases (modify-phases %standard-phases @@ -703,6 +688,9 @@ slabtop, and skill.") (("/bin/sh (.*)parse-types.sh" _ dir) (string-append (which "sh") " " dir "parse-types.sh"))) + (substitute* "MCONFIG.in" + (("INSTALL_SYMLINK = /bin/sh") + "INSTALL_SYMLINK = sh")) (substitute* (find-files "." "^Makefile.in$") (("#!/bin/sh") (string-append "#!" (which "sh")))) From 75f796bb73a4cb4a06955fac19ef9af6f126988d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 10 May 2017 16:17:21 +0200 Subject: [PATCH 234/386] gnu: e2fsprogs: Enable tests. * gnu/packages/linux.scm (e2fsprogs)[native-inputs]: Add PERL and PROCPS. [arguments]<#:tests?>: Remove. --- gnu/packages/linux.scm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index eb7c5d14ae..61c960bfbe 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -659,7 +659,11 @@ slabtop, and skill.") (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (native-inputs `(("pkg-config" ,pkg-config) - ("texinfo" ,texinfo))) ;for the libext2fs Info manual + ("texinfo" ,texinfo) ;for the libext2fs Info manual + + ;; For tests. + ("perl" ,perl) + ("procps" ,procps))) (arguments '(;; util-linux is the preferred source for some of the libraries and ;; commands, so disable them (see, e.g., @@ -710,12 +714,7 @@ slabtop, and skill.") (for-each (lambda (file) (chmod file #o666)) archives) - #t)))))) - - ;; FIXME: Tests work by comparing the stdout/stderr of programs, that - ;; they fail because we get an extra line that says "Can't check if - ;; file system is mounted due to missing mtab file". - #:tests? #f)) + #t)))))))) (home-page "http://e2fsprogs.sourceforge.net/") (synopsis "Creating and checking ext2/ext3/ext4 file systems") (description From 8df64f7384263764a3c1bcfdb783c8188570cce7 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 9 Sep 2016 16:51:01 +0200 Subject: [PATCH 235/386] ant-build-system: Allow specifying source directory. * guix/build-system/ant.scm (ant-build), guix/build/ant-build-system.scm (default-build.xml): Add parameter source-dir. * guix/build/ant-build-system.scm (configure): Pass source-dir on to default-build.xml. * doc/guix.texi (Build Systems): Document it. Co-authored-by: Ricardo Wurmus --- doc/guix.texi | 3 ++- guix/build-system/ant.scm | 2 ++ guix/build/ant-build-system.scm | 10 ++++++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 22dc8b3f90..81aa957c6d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3327,7 +3327,8 @@ parameters, respectively. When the original package does not provide a suitable Ant build file, the parameter @code{#:jar-name} can be used to generate a minimal Ant build file @file{build.xml} with tasks to build the specified jar -archive. +archive. In this case the parameter @code{#:source-dir} can be used to +specify the source sub-directory, defaulting to ``src''. The parameter @code{#:build-target} can be used to specify the Ant task that should be run during the @code{build} phase. By default the diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm index 550f92bc7f..a309a0c86b 100644 --- a/guix/build-system/ant.scm +++ b/guix/build-system/ant.scm @@ -98,6 +98,7 @@ (make-flags ''()) (build-target "jar") (jar-name #f) + (source-dir "src") (phases '(@ (guix build ant-build-system) %standard-phases)) (outputs '("out")) @@ -126,6 +127,7 @@ #:test-target ,test-target #:build-target ,build-target #:jar-name ,jar-name + #:source-dir ,source-dir #:phases ,phases #:outputs %outputs #:search-paths ',(map search-path-specification->sexp diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index 00a4a46d81..8ec7a94869 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -35,7 +35,8 @@ ;; ;; Code: -(define (default-build.xml jar-name prefix) +(define* (default-build.xml jar-name prefix #:optional + (source-dir ".")) "Create a simple build.xml with standard targets for Ant." (call-with-output-file "build.xml" (lambda (port) @@ -58,7 +59,7 @@ (target (@ (name "compile")) (mkdir (@ (dir "${classes.dir}"))) (javac (@ (includeantruntime "false") - (srcdir "src") + (srcdir ,source-dir) (destdir "${classes.dir}") (classpath (@ (refid "classpath")))))) @@ -98,11 +99,12 @@ to the default GNU unpack strategy." ((assq-ref gnu:%standard-phases 'unpack) #:source source))) (define* (configure #:key inputs outputs (jar-name #f) - #:allow-other-keys) + (source-dir "src") #:allow-other-keys) (when jar-name (default-build.xml jar-name (string-append (assoc-ref outputs "out") - "/share/java"))) + "/share/java") + source-dir)) (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) (setenv "CLASSPATH" (generate-classpath inputs))) From 52a791f50ffe460e2985dc356f08789d2d6f9f12 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 17 Oct 2016 19:32:14 +0200 Subject: [PATCH 236/386] ant-build-system: Add default "check" target. * guix/build-system/ant.scm (ant-build): Change default test target to "check"; add "test-dir" argument. * guix/build/ant-build-system.scm (default-build.xml): Add "test-dir" argument; add ant targets "compile-tests" and "check". (configure): Add "test-dir" argument; pass it to "default-build.xml". --- guix/build-system/ant.scm | 4 +++- guix/build/ant-build-system.scm | 40 ++++++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm index a309a0c86b..bf2f3b4115 100644 --- a/guix/build-system/ant.scm +++ b/guix/build-system/ant.scm @@ -93,12 +93,13 @@ (define* (ant-build store name inputs #:key (tests? #t) - (test-target "tests") + (test-target "check") (configure-flags ''()) (make-flags ''()) (build-target "jar") (jar-name #f) (source-dir "src") + (test-dir "src/test") (phases '(@ (guix build ant-build-system) %standard-phases)) (outputs '("out")) @@ -128,6 +129,7 @@ #:build-target ,build-target #:jar-name ,jar-name #:source-dir ,source-dir + #:test-dir ,test-dir #:phases ,phases #:outputs %outputs #:search-paths ',(map search-path-specification->sexp diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index 8ec7a94869..4042630a10 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -36,7 +36,7 @@ ;; Code: (define* (default-build.xml jar-name prefix #:optional - (source-dir ".")) + (source-dir ".") (test-dir "./test")) "Create a simple build.xml with standard targets for Ant." (call-with-output-file "build.xml" (lambda (port) @@ -48,6 +48,10 @@ (value "${basedir}/build/jar"))) (property (@ (name "dist.dir") (value ,prefix))) + (property (@ (name "test.home") + (value ,test-dir))) + (property (@ (name "test.classes.dir") + (value "${basedir}/build/test-classes"))) ;; respect the CLASSPATH environment variable (property (@ (name "build.sysclasspath") @@ -63,6 +67,35 @@ (destdir "${classes.dir}") (classpath (@ (refid "classpath")))))) + (target (@ (name "compile-tests")) + (mkdir (@ (dir "${test.classes.dir}"))) + (javac (@ (includeantruntime "false") + (srcdir ,test-dir) + (destdir "${test.classes.dir}")) + (classpath + (pathelement (@ (path "${env.CLASSPATH}"))) + (pathelement (@ (location "${classes.dir}"))) + (pathelement (@ (location "${test.classes.dir}")))))) + + (target (@ (name "check") + (depends "compile-tests")) + (mkdir (@ (dir "${test.home}/test-reports"))) + (junit (@ (printsummary "true") + (showoutput "true") + (fork "yes") + (haltonfailure "yes")) + (classpath + (pathelement (@ (path "${env.CLASSPATH}"))) + (pathelement (@ (location "${test.home}/resources"))) + (pathelement (@ (location "${classes.dir}"))) + (pathelement (@ (location "${test.classes.dir}")))) + (formatter (@ (type "plain") + (usefile "true"))) + (batchtest (@ (fork "yes") + (todir "${test.home}/test-reports")) + (fileset (@ (dir "${test.home}/java")) + (include (@ (name "**/*Test.java" ))))))) + (target (@ (name "jar") (depends "compile")) (mkdir (@ (dir "${jar.dir}"))) @@ -99,12 +132,13 @@ to the default GNU unpack strategy." ((assq-ref gnu:%standard-phases 'unpack) #:source source))) (define* (configure #:key inputs outputs (jar-name #f) - (source-dir "src") #:allow-other-keys) + (source-dir "src") + (test-dir "src/test") #:allow-other-keys) (when jar-name (default-build.xml jar-name (string-append (assoc-ref outputs "out") "/share/java") - source-dir)) + source-dir test-dir)) (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) (setenv "CLASSPATH" (generate-classpath inputs))) From 59135f0d7e52657bff8bc9f8b0a9133ee671f777 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 9 Sep 2016 16:51:03 +0200 Subject: [PATCH 237/386] guix: Add java-utils. * guix/build/java-utils.scm: New file. * guix/build-system/ant.scm: Use it. * Makefile.am (MODULES): Add it. Co-authored-by: Ricardo Wurmus --- Makefile.am | 1 + guix/build-system/ant.scm | 2 ++ guix/build/java-utils.scm | 55 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 guix/build/java-utils.scm diff --git a/Makefile.am b/Makefile.am index 3d91617b0d..d85b671bb4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -124,6 +124,7 @@ MODULES = \ guix/build/syscalls.scm \ guix/build/gremlin.scm \ guix/build/emacs-utils.scm \ + guix/build/java-utils.scm \ guix/build/lisp-utils.scm \ guix/build/graft.scm \ guix/build/bournish.scm \ diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm index bf2f3b4115..228b4e60d2 100644 --- a/guix/build-system/ant.scm +++ b/guix/build-system/ant.scm @@ -39,6 +39,7 @@ (define %ant-build-system-modules ;; Build-side modules imported by default. `((guix build ant-build-system) + (guix build java-utils) (guix build syscalls) ,@%gnu-build-system-modules)) @@ -108,6 +109,7 @@ (guile #f) (imported-modules %ant-build-system-modules) (modules '((guix build ant-build-system) + (guix build java-utils) (guix build utils)))) "Build SOURCE with INPUTS." (define builder diff --git a/guix/build/java-utils.scm b/guix/build/java-utils.scm new file mode 100644 index 0000000000..402d377bf8 --- /dev/null +++ b/guix/build/java-utils.scm @@ -0,0 +1,55 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2016 Ricardo Wurmus +;;; +;;; 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 java-utils) + #:use-module (guix build utils) + #:export (ant-build-javadoc + install-jars + install-javadoc)) + +;; Copied from haskell-build-system.scm +(define (package-name-version store-dir) + "Given a store directory STORE-DIR return 'name-version' of the package." + (let* ((base (basename store-dir))) + (string-drop base (+ 1 (string-index base #\-))))) + +(define* (ant-build-javadoc #:key (target "javadoc") (make-flags '()) + #:allow-other-keys) + (zero? (apply system* `("ant" ,target ,@make-flags)))) + +(define* (install-jars jar-directory) + "Install jar files from JAR-DIRECTORY to the default target directory. This +is used in case the build.xml does not include an install target." + (lambda* (#:key outputs #:allow-other-keys) + (let ((share (string-append (assoc-ref outputs "out") + "/share/java"))) + (for-each (lambda (f) (install-file f share)) + (find-files jar-directory "\\.jar$")) + #t))) + +(define* (install-javadoc apidoc-directory) + "Install the APIDOC-DIRECTORY to the target directory. This is used to +install javadocs when this is not done by the install target." + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (docs (string-append (or (assoc-ref outputs "doc") out) + "/share/doc/" (package-name-version out) "/"))) + (mkdir-p docs) + (copy-recursively apidoc-directory docs) + #t))) From 9fb20d01c536f4a1b728f5ec8b63715f73bea249 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 18 Oct 2016 09:54:46 +0200 Subject: [PATCH 238/386] gnu: Add java-plexus-utils. * gnu/packages/java.scm (java-plexus-utils): New variable. Co-authored-by: Hartmut Goebel --- gnu/packages/java.scm | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ad1ccac83e..49b953d267 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1180,3 +1180,55 @@ testing frameworks, mocking libraries and UI validation rules.") JUnit provides assertions for testing expected results, test fixtures for sharing common test data, and test runners for running tests.") (license license:epl1.0))) + +(define-public java-plexus-utils + (package + (name "java-plexus-utils") + (version "3.0.24") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/codehaus-plexus/" + "plexus-utils/archive/plexus-utils-" + version ".tar.gz")) + (sha256 + (base32 + "1mlwpc6fms24slygv5yvi6fi9hcha2fh0v73p5znpi78bg36i2js")))) + (build-system ant-build-system) + ;; FIXME: The default build.xml does not include a target to install + ;; javadoc files. + (arguments + `(#:jar-name "plexus-utils.jar" + #:source-dir "src/main" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-reference-to-/bin-and-/usr + (lambda _ + (substitute* "src/main/java/org/codehaus/plexus/util/\ +cli/shell/BourneShell.java" + (("/bin/sh") (which "sh")) + (("/usr/") (getcwd))) + #t)) + (add-after 'unpack 'fix-or-disable-broken-tests + (lambda _ + (with-directory-excursion "src/test/java/org/codehaus/plexus/util" + (substitute* '("cli/CommandlineTest.java" + "cli/shell/BourneShellTest.java") + (("/bin/sh") (which "sh")) + (("/bin/echo") (which "echo"))) + + ;; This test depends on MavenProjectStub, but we don't have + ;; a package for Maven. + (delete-file "introspection/ReflectionValueExtractorTest.java") + + ;; FIXME: The command line tests fail, maybe because they use + ;; absolute paths. + (delete-file "cli/CommandlineTest.java")) + #t))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://codehaus-plexus.github.io/plexus-utils/") + (synopsis "Common utilities for the Plexus framework") + (description "This package provides various Java utility classes for the +Plexus framework to ease working with strings, files, command lines, XML and +more.") + (license license:asl2.0))) From 1e555562a757c48feae5f0004447f4dc64987807 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 9 Sep 2016 16:51:05 +0200 Subject: [PATCH 239/386] gnu: Add java-plexus-interpolation. * gnu/packages/java.scm (java-plexus-interplation): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/java.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 49b953d267..fb01480586 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1232,3 +1232,33 @@ cli/shell/BourneShell.java" Plexus framework to ease working with strings, files, command lines, XML and more.") (license license:asl2.0))) + +(define-public java-plexus-interpolation + (package + (name "java-plexus-interpolation") + (version "1.23") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/codehaus-plexus/" + "plexus-interpolation/archive/" + "plexus-interpolation-" version ".tar.gz")) + (sha256 + (base32 + "1w79ljwk42ymrgy8kqxq4l82pgdj6287gabpfnpkyzbrnclsnfrp")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "plexus-interpolation.jar" + #:source-dir "src/main")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://codehaus-plexus.github.io/plexus-interpolation/") + (synopsis "Java components for interpolating ${} strings and the like") + (description "Plexus interpolator is a modular, flexible interpolation +framework for the expression language style commonly seen in Maven, Plexus, +and other related projects. + +It has its foundation in the @code{org.codehaus.plexus.utils.interpolation} +package within @code{plexus-utils}, but has been separated in order to allow +these two libraries to vary independently of one another.") + (license license:asl2.0))) From 8f8ed9aadddcc54dba15a8fa97a173ccd1bc61b3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 11:50:17 +0100 Subject: [PATCH 240/386] gnu: Add java-asm. * gnu/packages/java.scm (java-asm): New variable. --- gnu/packages/java.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index fb01480586..c52d52295b 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1262,3 +1262,46 @@ It has its foundation in the @code{org.codehaus.plexus.utils.interpolation} package within @code{plexus-utils}, but has been separated in order to allow these two libraries to vary independently of one another.") (license license:asl2.0))) + +(define-public java-asm + (package + (name "java-asm") + (version "5.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.forge.ow2.org/asm/" + "asm-" version ".tar.gz")) + (sha256 + (base32 + "0kxvmv5275rnjl7jv0442k3wjnq03ngkb7sghs78avf45pzm4qgr")))) + (build-system ant-build-system) + (arguments + `(#:build-target "compile" + ;; The tests require an old version of Janino, which no longer compiles + ;; with the JDK7. + #:tests? #f + ;; We don't need these extra ant tasks, but the build system asks us to + ;; provide a path anyway. + #:make-flags (list (string-append "-Dobjectweb.ant.tasks.path=foo")) + #:phases + (modify-phases %standard-phases + (add-before 'install 'build-jars + (lambda* (#:key make-flags #:allow-other-keys) + ;; We cannot use the "jar" target because it depends on a couple + ;; of unpackaged, complicated tools. + (mkdir "dist") + (zero? (system* "jar" + "-cf" (string-append "dist/asm-" ,version ".jar") + "-C" "output/build/tmp" ".")))) + (replace 'install + (install-jars "dist"))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://asm.ow2.org/") + (synopsis "Very small and fast Java bytecode manipulation framework") + (description "ASM is an all purpose Java bytecode manipulation and +analysis framework. It can be used to modify existing classes or dynamically +generate classes, directly in binary form. The provided common +transformations and analysis algorithms allow to easily assemble custom +complex transformations and code analysis tools.") + (license license:bsd-3))) From 607fe24ad45e0b967373abdfad534dd3d5f2feb2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 12:18:32 +0100 Subject: [PATCH 241/386] gnu: Add java-cglib. * gnu/packages/java.scm (java-cglib): New variable. --- gnu/packages/java.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c52d52295b..b8b2b5e17f 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1305,3 +1305,37 @@ generate classes, directly in binary form. The provided common transformations and analysis algorithms allow to easily assemble custom complex transformations and code analysis tools.") (license license:bsd-3))) + +(define-public java-cglib + (package + (name "java-cglib") + (version "3.2.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/cglib/cglib/archive/RELEASE_" + (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version) + ".tar.gz")) + (file-name (string-append "cglib-" version ".tar.gz")) + (sha256 + (base32 + "162dvd4fln76ai8prfharf66pn6r56p3sxx683j5vdyccrd5hi1q")))) + (build-system ant-build-system) + (arguments + `(;; FIXME: tests fail because junit runs + ;; "net.sf.cglib.transform.AbstractTransformTest", which does not seem + ;; to describe a test at all. + #:tests? #f + #:jar-name "cglib.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "cglib") #t))))) + (inputs + `(("java-asm" ,java-asm) + ("java-junit" ,java-junit))) + (home-page "https://github.com/cglib/cglib/") + (synopsis "Java byte code generation library") + (description "The byte code generation library CGLIB is a high level API +to generate and transform Java byte code.") + (license license:asl2.0))) From 33e34bfef8dea364e06965431a20ce666ad6bcae Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 12:21:30 +0100 Subject: [PATCH 242/386] gnu: Add java-objenesis. * gnu/packages/java.scm (java-objenesis): New variable. --- gnu/packages/java.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b8b2b5e17f..6e8e1d58c0 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1339,3 +1339,32 @@ complex transformations and code analysis tools.") (description "The byte code generation library CGLIB is a high level API to generate and transform Java byte code.") (license license:asl2.0))) + +(define-public java-objenesis + (package + (name "java-objenesis") + (version "2.5.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/easymock/objenesis/" + "archive/" version ".tar.gz")) + (file-name (string-append "objenesis-" version ".tar.gz")) + (sha256 + (base32 + "1va5qz1i2wawwavhnxfzxnfgrcaflz9p1pg03irrjh4nd3rz8wh6")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "objenesis.jar" + #:source-dir "main/src/" + #:test-dir "main/src/test/")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://objenesis.org/") + (synopsis "Bypass the constructor when creating an object") + (description "Objenesis is a small Java library that serves one purpose: +to instantiate a new object of a particular class. It is common to see +restrictions in libraries stating that classes must require a default +constructor. Objenesis aims to overcome these restrictions by bypassing the +constructor on object instantiation.") + (license license:asl2.0))) From ae5898767bcb44efcce5ae8021b2df5cd22104c4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 12:22:27 +0100 Subject: [PATCH 243/386] gnu: Add java-easymock. * gnu/packages/java.scm (java-easymock): New variable. --- gnu/packages/java.scm | 61 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 6e8e1d58c0..7c8283cbe9 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1368,3 +1368,64 @@ restrictions in libraries stating that classes must require a default constructor. Objenesis aims to overcome these restrictions by bypassing the constructor on object instantiation.") (license license:asl2.0))) + +(define-public java-easymock + (package + (name "java-easymock") + (version "3.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/easymock/easymock/" + "archive/easymock-" version ".tar.gz")) + (sha256 + (base32 + "1yzg0kv256ndr57gpav46cyv4a1ns5sj722l50zpxk3j6sk9hnmi")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "easymock.jar" + #:source-dir "core/src/main" + #:test-dir "core/src/test" + #:phases + (modify-phases %standard-phases + ;; FIXME: Android support requires the following packages to be + ;; available: com.google.dexmaker.stock.ProxyBuilder + (add-after 'unpack 'delete-android-support + (lambda _ + (with-directory-excursion "core/src/main/java/org/easymock/internal" + (substitute* "MocksControl.java" + (("AndroidSupport.isAndroid\\(\\)") "false") + (("return classProxyFactory = new AndroidClassProxyFactory\\(\\);") "")) + (delete-file "AndroidClassProxyFactory.java")) + #t)) + (add-after 'unpack 'delete-broken-tests + (lambda _ + (with-directory-excursion "core/src/test/java/org/easymock" + ;; This test depends on dexmaker. + (delete-file "tests2/ClassExtensionHelperTest.java") + + ;; This is not a test. + (delete-file "tests/BaseEasyMockRunnerTest.java") + + ;; This test should be executed with a different runner... + (delete-file "tests2/EasyMockAnnotationsTest.java") + ;; ...but deleting it means that we also have to delete these + ;; dependent files. + (delete-file "tests2/EasyMockRunnerTest.java") + (delete-file "tests2/EasyMockRuleTest.java") + + ;; This test fails because the file "easymock.properties" does + ;; not exist. + (delete-file "tests2/EasyMockPropertiesTest.java")) + #t))))) + (inputs + `(("java-asm" ,java-asm) + ("java-cglib" ,java-cglib) + ("java-objenesis" ,java-objenesis))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://easymock.org") + (synopsis "Java library providing mock objects for unit tests") + (description "EasyMock is a Java library that provides an easy way to use +mock objects in unit testing.") + (license license:asl2.0))) From 7aa370231dfb696f14f240554877850a466456a0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 12:22:52 +0100 Subject: [PATCH 244/386] gnu: Add java-jopt-simple. * gnu/packages/java.scm (java-jopt-simple): New variable. --- gnu/packages/java.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7c8283cbe9..feb1d99234 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1429,3 +1429,31 @@ constructor on object instantiation.") (description "EasyMock is a Java library that provides an easy way to use mock objects in unit testing.") (license license:asl2.0))) + +(define-public java-jopt-simple + (package + (name "java-jopt-simple") + (version "5.0.3") + (source (origin + (method url-fetch) + (uri (string-append "http://repo1.maven.org/maven2/" + "net/sf/jopt-simple/jopt-simple/" + version "/jopt-simple-" + version "-sources.jar")) + (sha256 + (base32 + "1v8bzmwmw6qq20gm42xyay6vrd567dra4vqwhgjnqqjz1gs9f8qa")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; there are no tests + #:jar-name "jopt-simple.jar")) + (home-page "https://pholser.github.io/jopt-simple/") + (synopsis "Java library for parsing command line options") + (description "JOpt Simple is a Java library for parsing command line +options, such as those you might pass to an invocation of @code{javac}. In +the interest of striving for simplicity, as closely as possible JOpt Simple +attempts to honor the command line option syntaxes of POSIX @code{getopt} and +GNU @code{getopt_long}. It also aims to make option parser configuration and +retrieval of options and their arguments simple and expressive, without being +overly clever.") + (license license:expat))) From a8d3cb62abb2f9760d2144412ef557ea3b1ebfc8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 15:32:41 +0100 Subject: [PATCH 245/386] gnu: java-hamcrest-core: Install all jars without version suffix. * gnu/packages/java.scm (java-hamcrest-core)[arguments]: Install all three jars and strip the version suffix. --- gnu/packages/java.scm | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index feb1d99234..eae1c85616 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1082,6 +1082,9 @@ an Ant task that extends the built-in @code{jar} task.") (build-system ant-build-system) (arguments `(#:tests? #f ; Tests require junit + #:modules ((guix build ant-build-system) + (guix build utils) + (srfi srfi-1)) #:make-flags (list (string-append "-Dversion=" ,version)) #:build-target "core" #:phases @@ -1133,10 +1136,23 @@ private Method[] allMethods = getSortedMethods();"))))) #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (install-file (string-append "build/hamcrest-core-" - ,version ".jar") - (string-append (assoc-ref outputs "out") - "/share/java"))))))) + (let* ((target (string-append (assoc-ref outputs "out") + "/share/java/")) + (version-suffix ,(string-append "-" version ".jar")) + (install-without-version-suffix + (lambda (jar) + (copy-file jar + (string-append target + (basename jar version-suffix) + ".jar"))))) + (mkdir-p target) + (for-each + install-without-version-suffix + (find-files "build" + (lambda (name _) + (and (string-suffix? ".jar" name) + (not (string-suffix? "-sources.jar" name))))))) + #t))))) (native-inputs `(("java-qdox-1.12" ,java-qdox-1.12) ("java-jarjar" ,java-jarjar))) From 840969e8294b281e3460bd35e95a6e5bb9befeca Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 12:23:37 +0100 Subject: [PATCH 246/386] gnu: Add java-commons-math3. * gnu/packages/java.scm (java-commons-math3): New variable. --- gnu/packages/java.scm | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index eae1c85616..587f85df71 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1473,3 +1473,47 @@ GNU @code{getopt_long}. It also aims to make option parser configuration and retrieval of options and their arguments simple and expressive, without being overly clever.") (license license:expat))) + +(define-public java-commons-math3 + (package + (name "java-commons-math3") + (version "3.6.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/math/source/" + "commons-math3-" version "-src.tar.gz")) + (sha256 + (base32 + "19l6yp44qc5g7wg816nbn5z3zq3xxzwimvbm4a8pczgvpi4i85s6")))) + (build-system ant-build-system) + (arguments + `(#:build-target "jar" + #:test-target "test" + #:make-flags + (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-core")) + (junit (assoc-ref %build-inputs "java-junit"))) + (list (string-append "-Djunit.jar=" junit "/share/java/junit.jar") + (string-append "-Dhamcrest.jar=" hamcrest + "/share/java/hamcrest-core.jar"))) + #:phases + (modify-phases %standard-phases + ;; We want to build the jar in the build phase and run the tests + ;; later in a separate phase. + (add-after 'unpack 'untangle-targets + (lambda _ + (substitute* "build.xml" + (("name=\"jar\" depends=\"test\"") + "name=\"jar\" depends=\"compile\"")) + #t)) + ;; There is no install target. + (replace 'install + (install-jars "target"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/math/") + (synopsis "Apache Commons mathematics library") + (description "Commons Math is a library of lightweight, self-contained +mathematics and statistics components addressing the most common problems not +available in the Java programming language or Commons Lang.") + (license license:asl2.0))) From 62c9bfaaffe7ed5705219192a7b5eb0aab59b720 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 12:24:01 +0100 Subject: [PATCH 247/386] gnu: Add java-jmh. * gnu/packages/java.scm (java-jmh): New variable. --- gnu/packages/java.scm | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 587f85df71..619295904f 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -23,6 +23,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix hg-download) #:use-module (guix utils) #:use-module (guix build-system ant) #:use-module (guix build-system gnu) @@ -1517,3 +1518,48 @@ overly clever.") mathematics and statistics components addressing the most common problems not available in the Java programming language or Commons Lang.") (license license:asl2.0))) + +(define-public java-jmh + (package + (name "java-jmh") + (version "1.17.5") + (source (origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/code-tools/jmh/") + (changeset version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1fxyxhg9famwcg1prc4cgwb5wzyxqavn3cjm5vz8605xz7x5k084")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jmh-core.jar" + #:source-dir "jmh-core/src/main" + #:test-dir "jmh-core/src/test" + #:phases + (modify-phases %standard-phases + ;; This seems to be a bug in the JDK. It may not be necessary in + ;; future versions of the JDK. + (add-after 'unpack 'fix-bug + (lambda _ + (with-directory-excursion + "jmh-core/src/main/java/org/openjdk/jmh/runner/options" + (substitute* '("IntegerValueConverter.java" + "ThreadsValueConverter.java") + (("public Class valueType") + "public Class valueType"))) + #t))))) + (inputs + `(("java-jopt-simple" ,java-jopt-simple) + ("java-commons-math3" ,java-commons-math3))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://openjdk.java.net/projects/code-tools/jmh/") + (synopsis "Benchmark harness for the JVM") + (description "JMH is a Java harness for building, running, and analysing +nano/micro/milli/macro benchmarks written in Java and other languages +targetting the JVM.") + ;; GPLv2 only + (license license:gpl2))) From 56ebb4e90dc6827e295a556caa8661cf0fbad9c7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 2 Mar 2017 12:24:49 +0100 Subject: [PATCH 248/386] gnu: Add java-commons-collections4. * gnu/packages/java.scm (java-commons-collections4): New variable. --- gnu/packages/java.scm | 60 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 619295904f..c6fa1348c9 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1563,3 +1563,63 @@ nano/micro/milli/macro benchmarks written in Java and other languages targetting the JVM.") ;; GPLv2 only (license license:gpl2))) + +(define-public java-commons-collections4 + (package + (name "java-commons-collections4") + (version "4.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/collections/source/" + "commons-collections4-" version "-src.tar.gz")) + (sha256 + (base32 + "1krfhvggympq4avk7gh6qafzf6b9ip6r1m4lmacikyx04039m0wl")))) + (build-system ant-build-system) + (arguments + `(#:test-target "test" + #:make-flags + (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-core")) + (junit (assoc-ref %build-inputs "java-junit")) + (easymock (assoc-ref %build-inputs "java-easymock"))) + (list (string-append "-Djunit.jar=" junit "/share/java/junit.jar") + (string-append "-Dhamcrest.jar=" hamcrest + "/share/java/hamcrest-core.jar") + (string-append "-Deasymock.jar=" easymock + "/share/java/easymock.jar"))) + #:phases + (modify-phases %standard-phases + (replace 'install + (install-jars "target"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-easymock" ,java-easymock))) + (home-page "http://commons.apache.org/collections/") + (synopsis "Collections framework") + (description "The Java Collections Framework is the recognised standard +for collection handling in Java. Commons-Collections seek to build upon the +JDK classes by providing new interfaces, implementations and utilities. There +are many features, including: + +@itemize +@item @code{Bag} interface for collections that have a number of copies of + each object +@item @code{BidiMap} interface for maps that can be looked up from value to + key as well and key to value +@item @code{MapIterator} interface to provide simple and quick iteration over + maps +@item Transforming decorators that alter each object as it is added to the + collection +@item Composite collections that make multiple collections look like one +@item Ordered maps and sets that retain the order elements are added in, + including an LRU based map +@item Reference map that allows keys and/or values to be garbage collected + under close control +@item Many comparator implementations +@item Many iterator implementations +@item Adapter classes from array and enumerations to collections +@item Utilities to test or create typical set-theory properties of collections + such as union, intersection, and closure. +@end itemize\n") + (license license:asl2.0))) From 6af63e657c43cb57d2ee85a61bdb55962e82e907 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 9 Sep 2016 16:51:09 +0200 Subject: [PATCH 249/386] gnu: Add java-commons-io. * gnu/packages/java.scm (java-commons-io): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/java.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c6fa1348c9..035bd1ab58 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1623,3 +1623,37 @@ are many features, including: such as union, intersection, and closure. @end itemize\n") (license license:asl2.0))) + +(define-public java-commons-io + (package + (name "java-commons-io") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/io/source/" + "commons-io-" version "-src.tar.gz")) + (sha256 + (base32 + "0q5y41jrcjvx9hzs47x5kdhnasdy6rm4bzqd2jxl02w717m7a7v3")))) + (build-system ant-build-system) + (outputs '("out" "doc")) + (arguments + `(#:test-target "test" + #:make-flags + (list (string-append "-Djunit.jar=" + (assoc-ref %build-inputs "java-junit") + "/share/java/junit.jar")) + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (replace 'install (install-jars "target")) + (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/io/") + (synopsis "Common useful IO related classes") + (description "Commons-IO contains utility classes, stream implementations, +file filters and endian classes.") + (license license:asl2.0))) From d631b5f358080d740f3986feb80790a411497403 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 9 Sep 2016 16:51:10 +0200 Subject: [PATCH 250/386] gnu: Add java-commons-lang. * gnu/packages/java.scm (java-commons-lang): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/java.scm | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 035bd1ab58..4f9a135882 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1657,3 +1657,58 @@ are many features, including: (description "Commons-IO contains utility classes, stream implementations, file filters and endian classes.") (license license:asl2.0))) + +(define-public java-commons-lang + (package + (name "java-commons-lang") + (version "2.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/lang/source/" + "commons-lang-" version "-src.tar.gz")) + (sha256 + (base32 "1mxwagqadzx1b2al7i0z1v0r235aj2njdyijf02szq0vhmqrfiq5")))) + (build-system ant-build-system) + (outputs '("out" "doc")) + (arguments + `(#:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (add-before 'check 'disable-failing-test + (lambda _ + ;; Disable a failing test + (substitute* "src/test/java/org/apache/commons/lang/\ +time/FastDateFormatTest.java" + (("public void testFormat\\(\\)") + "public void disabled_testFormat()")) + #t)) + (replace 'install (install-jars "target")) + (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://commons.apache.org/lang/") + (synopsis "Extension of the java.lang package") + (description "The Commons Lang components contains a set of Java classes +that provide helper methods for standard Java classes, especially those found +in the @code{java.lang} package in the Sun JDK. The following classes are +included: + +@itemize +@item StringUtils - Helper for @code{java.lang.String}. +@item CharSetUtils - Methods for dealing with @code{CharSets}, which are sets + of characters such as @code{[a-z]} and @code{[abcdez]}. +@item RandomStringUtils - Helper for creating randomised strings. +@item NumberUtils - Helper for @code{java.lang.Number} and its subclasses. +@item NumberRange - A range of numbers with an upper and lower bound. +@item ObjectUtils - Helper for @code{java.lang.Object}. +@item SerializationUtils - Helper for serializing objects. +@item SystemUtils - Utility class defining the Java system properties. +@item NestedException package - A sub-package for the creation of nested + exceptions. +@item Enum package - A sub-package for the creation of enumerated types. +@item Builder package - A sub-package for the creation of @code{equals}, + @code{hashCode}, @code{compareTo} and @code{toString} methods. +@end itemize\n") + (license license:asl2.0))) From 82e18864610f5f1108716bed3ff4c50e4916e374 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 9 Sep 2016 16:51:11 +0200 Subject: [PATCH 251/386] gnu: Add java-commons-lang3. * gnu/packages/java.scm (java-commons-lang3): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/java.scm | 63 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4f9a135882..0182016580 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1712,3 +1712,66 @@ included: @code{hashCode}, @code{compareTo} and @code{toString} methods. @end itemize\n") (license license:asl2.0))) + +(define-public java-commons-lang3 + (package + (name "java-commons-lang3") + (version "3.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/lang/source/" + "commons-lang3-" version "-src.tar.gz")) + (sha256 + (base32 "0xpshb9spjhplq5a7mr0y1bgfw8190ik4xj8f569xidfcki1d6kg")))) + (build-system ant-build-system) + (outputs '("out" "doc")) + (arguments + `(#:test-target "test" + #:make-flags + (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-all")) + (junit (assoc-ref %build-inputs "java-junit")) + (easymock (assoc-ref %build-inputs "java-easymock")) + (io (assoc-ref %build-inputs "java-commons-io"))) + (list (string-append "-Djunit.jar=" junit "/share/java/junit.jar") + (string-append "-Dhamcrest.jar=" hamcrest + "/share/java/hamcrest-all.jar") + (string-append "-Dcommons-io.jar=" io + "/share/java/commons-io-" + ,(package-version java-commons-io) + "-SNAPSHOT.jar") + (string-append "-Deasymock.jar=" easymock + "/share/java/easymock.jar"))) + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (replace 'install (install-jars "target")) + (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-commons-io" ,java-commons-io) + ("java-hamcrest-all" ,java-hamcrest-all) + ("java-easymock" ,java-easymock))) + (home-page "http://commons.apache.org/lang/") + (synopsis "Extension of the java.lang package") + (description "The Commons Lang components contains a set of Java classes +that provide helper methods for standard Java classes, especially those found +in the @code{java.lang} package. The following classes are included: + +@itemize +@item StringUtils - Helper for @code{java.lang.String}. +@item CharSetUtils - Methods for dealing with @code{CharSets}, which are sets of + characters such as @code{[a-z]} and @code{[abcdez]}. +@item RandomStringUtils - Helper for creating randomised strings. +@item NumberUtils - Helper for @code{java.lang.Number} and its subclasses. +@item NumberRange - A range of numbers with an upper and lower bound. +@item ObjectUtils - Helper for @code{java.lang.Object}. +@item SerializationUtils - Helper for serializing objects. +@item SystemUtils - Utility class defining the Java system properties. +@item NestedException package - A sub-package for the creation of nested + exceptions. +@item Enum package - A sub-package for the creation of enumerated types. +@item Builder package - A sub-package for the creation of @code{equals}, + @code{hashCode}, @code{compareTo} and @code{toString} methods. +@end itemize\n") + (license license:asl2.0))) From 1c188f4e18a8e1fa7c5afa4f921e2aa1956b6285 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 9 Sep 2016 16:51:06 +0200 Subject: [PATCH 252/386] gnu: Add java-commons-cli. * gnu/packages/java.scm (java-commons-cli): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/java.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 0182016580..54cba92e72 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1775,3 +1775,40 @@ in the @code{java.lang} package. The following classes are included: @code{hashCode}, @code{compareTo} and @code{toString} methods. @end itemize\n") (license license:asl2.0))) + +(define-public java-commons-cli + (package + (name "java-commons-cli") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/cli/source/" + "commons-cli-" version "-src.tar.gz")) + (sha256 + (base32 + "1fkjn552i12vp3xxk21ws4p70fi0lyjm004vzxsdaz7gdpgyxxyl")))) + (build-system ant-build-system) + ;; TODO: javadoc + (arguments + `(#:jar-name "commons-cli.jar")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/cli/") + (synopsis "Command line arguments and options parsing library") + (description "The Apache Commons CLI library provides an API for parsing +command line options passed to programs. It is also able to print help +messages detailing the options available for a command line tool. + +Commons CLI supports different types of options: + +@itemize +@item POSIX like options (ie. tar -zxvf foo.tar.gz) +@item GNU like long options (ie. du --human-readable --max-depth=1) +@item Java like properties (ie. java -Djava.awt.headless=true Foo) +@item Short options with value attached (ie. gcc -O2 foo.c) +@item long options with single hyphen (ie. ant -projecthelp) +@end itemize + +This is a part of the Apache Commons Project.") + (license license:asl2.0))) From 0a8519bc11013ec15954b372cb9bf078e5700d28 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 9 Sep 2016 16:51:07 +0200 Subject: [PATCH 253/386] gnu: Add java-commons-codec. * gnu/packages/java.scm (java-commons-codec): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/java.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 54cba92e72..a69d0996e2 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1812,3 +1812,44 @@ Commons CLI supports different types of options: This is a part of the Apache Commons Project.") (license license:asl2.0))) + +(define-public java-commons-codec + (package + (name "java-commons-codec") + (version "1.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/codec/source/" + "commons-codec-" version "-src.tar.gz")) + (sha256 + (base32 + "1w9qg30y4s0x8gnmr2fgj4lyplfn788jqxbcz27lf5kbr6n8xr65")))) + (build-system ant-build-system) + (outputs '("out" "doc")) + (arguments + `(#:test-target "test" + #:make-flags + (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-core")) + (junit (assoc-ref %build-inputs "java-junit"))) + (list (string-append "-Djunit.jar=" junit "/share/java/junit.jar") + (string-append "-Dhamcrest.jar=" hamcrest + "/share/java/hamcrest-core.jar") + ;; Do not append version to jar. + "-Dfinal.name=commons-codec")) + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (replace 'install (install-jars "dist")) + (add-after 'install 'install-doc (install-javadoc "dist/docs/api"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/codec/") + (synopsis "Common encoders and decoders such as Base64, Hex, Phonetic and URLs") + (description "The codec package contains simple encoder and decoders for +various formats such as Base64 and Hexadecimal. In addition to these widely +used encoders and decoders, the codec package also maintains a collection of +phonetic encoding utilities. + +This is a part of the Apache Commons Project.") + (license license:asl2.0))) From 7d91c1b9a0e36b18b8c05159dd454e9c0d7574b6 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 9 Sep 2016 16:51:08 +0200 Subject: [PATCH 254/386] gnu: Add java-commons-daemon. * gnu/packages/java.scm (java-commons-daemon): New variable. Co-authored-by: Ricardo Wurmus --- gnu/packages/java.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a69d0996e2..88d7c028d8 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1853,3 +1853,37 @@ phonetic encoding utilities. This is a part of the Apache Commons Project.") (license license:asl2.0))) + +(define-public java-commons-daemon + (package + (name "java-commons-daemon") + (version "1.0.15") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/daemon/source/" + "commons-daemon-" version "-src.tar.gz")) + (sha256 + (base32 + "0ci46kq8jpz084ccwq0mmkahcgsmh20ziclp2jf5i0djqv95gvhi")))) + (build-system ant-build-system) + (arguments + `(#:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (replace 'install (install-jars "dist")) + (add-after 'install 'install-doc (install-javadoc "dist/docs/api"))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://commons.apache.org/daemon/") + (synopsis "Library to launch Java applications as daemons") + (description "The Daemon package from Apache Commons can be used to +implement Java applications which can be launched as daemons. For example the +program will be notified about a shutdown so that it can perform cleanup tasks +before its process of execution is destroyed by the operation system. + +This package contains the Java library. You will also need the actual binary +for your architecture which is provided by the jsvc package. + +This is a part of the Apache Commons Project.") + (license license:asl2.0))) From f12ad6c768bc74cbe335bccae5761a5067d68130 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 3 Mar 2017 16:13:36 +0100 Subject: [PATCH 255/386] gnu: Add java-jmock-1. * gnu/packages/java.scm (java-jmock-1): New variable. --- gnu/packages/java.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 88d7c028d8..ba5632b465 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1447,6 +1447,42 @@ constructor on object instantiation.") mock objects in unit testing.") (license license:asl2.0))) +(define-public java-jmock-1 + (package + (name "java-jmock") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/jmock-developers/" + "jmock-library/archive/" version ".tar.gz")) + (file-name (string-append "jmock-" version ".tar.gz")) + (sha256 + (base32 + "0xmrlhq0fszldkbv281k9463mv496143vvmqwpxp62yzjvdkx9w0")))) + (build-system ant-build-system) + (arguments + `(#:build-target "jars" + #:test-target "run.tests" + #:phases + (modify-phases %standard-phases + (replace 'install (install-jars "build"))))) + (home-page "http://www.jmock.org") + (synopsis "Mock object library for test-driven development") + (description "JMock is a library that supports test-driven development of +Java code with mock objects. Mock objects help you design and test the +interactions between the objects in your programs. + +The jMock library + +@itemize +@item makes it quick and easy to define mock objects +@item lets you precisely specify the interactions between + your objects, reducing the brittleness of your tests +@item plugs into your favourite test framework +@item is easy to extend. +@end itemize\n") + (license license:bsd-3))) + (define-public java-jopt-simple (package (name "java-jopt-simple") From fae0b4ca119a8a9cb8db8772576fb5b4feb98dcf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 3 Mar 2017 16:12:59 +0100 Subject: [PATCH 256/386] gnu: java-hamcrest-core: Declare test target. * gnu/packages/java.scm (java-hamcrest-core)[arguments]: Add value for test-target. --- gnu/packages/java.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ba5632b465..d0f552931c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1087,6 +1087,7 @@ an Ant task that extends the built-in @code{jar} task.") (guix build utils) (srfi srfi-1)) #:make-flags (list (string-append "-Dversion=" ,version)) + #:test-target "unit-test" #:build-target "core" #:phases (modify-phases %standard-phases From 91a9c65c7bae73d999ccc2288833e909ce4a0871 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 10 May 2017 19:46:55 +0200 Subject: [PATCH 257/386] gnu: Add darktable. * gnu/packages/photo.scm (darktable): New variable. --- gnu/packages/photo.scm | 74 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index fff19551a1..b68aea9d7b 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -32,18 +32,24 @@ #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages databases) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) + #:use-module (gnu packages gnome) #:use-module (gnu packages glib) #:use-module (gnu packages graphics) + #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages libusb) + #:use-module (gnu packages llvm) #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) + #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages tex) #:use-module (gnu packages web) @@ -300,3 +306,71 @@ photographic equipment.") ;; licensed GPL3, and the database is license CC-BY-SA 3.0. See the ;; README.md file for this clarification. (license (list license:lgpl3 license:gpl3 license:cc-by-sa3.0)))) + +(define-public darktable + (package + (name "darktable") + (version "2.2.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/darktable-org/darktable/releases/" + "download/release-" + version "/darktable-" version ".tar.xz")) + (sha256 + (base32 + "1n7rddkxwcifc3kcdlnar9w562xv4h78fqkkn27jihqzp3b4am5x")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; There are no tests. + #:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib") + #:make-flags + (list + (string-append "CPATH=" (assoc-ref %build-inputs "ilmbase") + "/include/OpenEXR:" (or (getenv "CPATH") ""))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-ldflags + (lambda* (#:key outputs #:allow-other-keys) + (setenv "LDFLAGS" + (string-append + "-Wl,-rpath=" + (assoc-ref outputs "out") "/lib/darktable")) + #t))))) + (native-inputs + `(("llvm" ,llvm-3.9.1) + ("clang" ,clang-3.9.1))) + (inputs + `(("libxslt" ,libxslt) + ("libxml2" ,libxml2) + ("pugixml" ,pugixml) + ("gtk+" ,gtk+) + ("sqlite" ,sqlite) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("cairo" ,cairo) + ("lcms" ,lcms) + ("exiv2" ,exiv2) + ("libtiff" ,libtiff) + ("curl" ,curl) + ("libgphoto2" ,libgphoto2) + ("dbus-glib" ,dbus-glib) + ("openexr" ,openexr) + ("ilmbase" ,ilmbase) + ("libsoup" ,libsoup) + ("python-jsonschema" ,python-jsonschema) + ("intltool" ,intltool) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("libwebp" ,libwebp) + ("lensfun" ,lensfun) + ("librsvg" ,librsvg) + ("json-glib" ,json-glib) + ("freeimage" ,freeimage))) + (home-page "https://www.darktable.org") + (synopsis "Virtual lighttable and darkroom for photographers") + (description "Darktable is a photography workflow application and RAW +developer. It manages your digital negatives in a database, lets you view +them through a zoomable lighttable and enables you to develop raw images +and enhance them.") + (license license:gpl3+))) From 439c59da525cb3d52a52dfc02ee12d072a43a4f4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 3 Mar 2017 16:14:06 +0100 Subject: [PATCH 258/386] gnu: Add java-hamcrest-all. * gnu/packages/java.scm (java-hamcrest-all): 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 d0f552931c..c2b81556fe 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1484,6 +1484,45 @@ The jMock library @end itemize\n") (license license:bsd-3))) +(define-public java-hamcrest-all + (package (inherit java-hamcrest-core) + (name "java-hamcrest-all") + (arguments + (substitute-keyword-arguments (package-arguments java-hamcrest-core) + ;; FIXME: a unit test fails because org.hamcrest.SelfDescribing is not + ;; found, although it is part of the hamcrest-core library that has + ;; just been built. + ;; + ;; Fixing this one test is insufficient, though, and upstream confirmed + ;; that the latest hamcrest release fails its unit tests when built + ;; with Java 7. See https://github.com/hamcrest/JavaHamcrest/issues/30 + ((#:tests? _) #f) + ((#:build-target _) "bigjar") + ((#:phases phases) + `(modify-phases ,phases + ;; Some build targets override the classpath, so we need to patch + ;; the build.xml to ensure that required dependencies are on the + ;; classpath. + (add-after 'unpack 'patch-classpath-for-integration + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build.xml" + ((" build/hamcrest-library-\\$\\{version\\}.jar" line) + (string-join + (cons line + (append + (find-files (assoc-ref inputs "java-hamcrest-core") "\\.jar$") + (find-files (assoc-ref inputs "java-junit") "\\.jar$") + (find-files (assoc-ref inputs "java-jmock") "\\.jar$") + (find-files (assoc-ref inputs "java-easymock") "\\.jar$"))) + ";"))) + #t)))))) + (inputs + `(("java-junit" ,java-junit) + ("java-jmock" ,java-jmock-1) + ("java-easymock" ,java-easymock) + ("java-hamcrest-core" ,java-hamcrest-core) + ,@(package-inputs java-hamcrest-core))))) + (define-public java-jopt-simple (package (name "java-jopt-simple") From 0d4a0d60f17ff20522fcb05dc0dd002951e8b1b7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 14:52:34 +0100 Subject: [PATCH 259/386] gnu: Add java-jsr305. * gnu/packages/java.scm (java-jsr305): New variable. --- gnu/packages/java.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c2b81556fe..32a7804e72 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1852,6 +1852,29 @@ in the @code{java.lang} package. The following classes are included: @end itemize\n") (license license:asl2.0))) +(define-public java-jsr305 + (package + (name "java-jsr305") + (version "3.0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "com/google/code/findbugs/" + "jsr305/" version "/jsr305-" + version "-sources.jar")) + (sha256 + (base32 + "1rh6jin9v7jqpq3kf1swl868l8i94r636n03pzpsmgr8v0lh9j2n")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "jsr305.jar")) + (home-page "http://findbugs.sourceforge.net/") + (synopsis "Annotations for the static analyzer called findbugs") + (description "This package provides annotations for the findbugs package. +It provides packages in the @code{javax.annotations} namespace.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") From 4f3e47ea82e72cedeb1fef51534f380105fdaf1e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:50:44 +0100 Subject: [PATCH 260/386] gnu: Add java-guava. * gnu/packages/java.scm (java-guava): New variable. --- gnu/packages/java.scm | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 32a7804e72..62f6b55263 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1875,6 +1875,58 @@ in the @code{java.lang} package. The following classes are included: It provides packages in the @code{javax.annotations} namespace.") (license license:asl2.0))) +(define-public java-guava + (package + (name "java-guava") + ;; This is the last release of Guava that can be built with Java 7. + (version "20.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/google/guava/" + "releases/download/v" version + "/guava-" version "-sources.jar")) + (sha256 + (base32 + "1gawrs5gi6j5hcfxdgpnfli75vb9pfi4sn09pnc8xacr669yajwr")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "guava.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'trim-sources + (lambda _ + (with-directory-excursion "src/com/google/common" + ;; Remove annotations to avoid extra dependencies: + ;; * "j2objc" annotations are used when converting Java to + ;; Objective C; + ;; * "errorprone" annotations catch common Java mistakes at + ;; compile time; + ;; * "IgnoreJRERequirement" is used for Android. + (substitute* (find-files "." "\\.java$") + (("import com.google.j2objc.*") "") + (("import com.google.errorprone.annotation.*") "") + (("import org.codehaus.mojo.animal_sniffer.*") "") + (("@CanIgnoreReturnValue") "") + (("@LazyInit") "") + (("@WeakOuter") "") + (("@RetainedWith") "") + (("@Weak") "") + (("@ForOverride") "") + (("@J2ObjCIncompatible") "") + (("@IgnoreJRERequirement") ""))) + #t))))) + (inputs + `(("java-jsr305" ,java-jsr305))) + (home-page "https://github.com/google/guava") + (synopsis "Google core libraries for Java") + (description "Guava is a set of core libraries that includes new +collection types (such as multimap and multiset), immutable collections, a +graph library, functional types, an in-memory cache, and APIs/utilities for +concurrency, I/O, hashing, primitives, reflection, string processing, and much +more!") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") From af8f8281db99fb4cde06f24a84caea32b0821c79 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Mar 2017 19:51:18 +0100 Subject: [PATCH 261/386] gnu: Add java-commons-logging-minimal. * gnu/packages/java.scm (java-commons-logging-minimal): New variable. --- gnu/packages/java.scm | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 62f6b55263..c14b5e7d8d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1927,6 +1927,53 @@ concurrency, I/O, hashing, primitives, reflection, string processing, and much more!") (license license:asl2.0))) +;; The java-commons-logging package provides adapters to many different +;; logging frameworks. To avoid an excessive dependency graph we try to build +;; it with only a minimal set of adapters. +(define-public java-commons-logging-minimal + (package + (name "java-commons-logging-minimal") + (version "1.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/logging/source/" + "commons-logging-" version "-src.tar.gz")) + (sha256 + (base32 + "10bwcy5w8d7y39n0krlwhnp8ds3kj5zhmzj0zxnkw0qdlsjmsrj9")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; avoid dependency on logging frameworks + #:jar-name "commons-logging-minimal.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-adapters-and-tests + (lambda _ + ;; Delete all adapters except for NoOpLog, SimpleLog, and + ;; LogFactoryImpl. NoOpLog is required to build; LogFactoryImpl + ;; is used by applications; SimpleLog is the only actually usable + ;; implementation that does not depend on another logging + ;; framework. + (for-each + (lambda (file) + (delete-file (string-append + "src/main/java/org/apache/commons/logging/impl/" file))) + (list "Jdk13LumberjackLogger.java" + "WeakHashtable.java" + "Log4JLogger.java" + "ServletContextCleaner.java" + "Jdk14Logger.java" + "AvalonLogger.java" + "LogKitLogger.java")) + (delete-file-recursively "src/test") + #t))))) + (home-page "http://commons.apache.org/logging/") + (synopsis "Common API for logging implementations") + (description "The Logging package is a thin bridge between different +logging implementations. A library that uses the commons-logging API can be +used with any logging implementation at runtime.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") From 30d2397f73d6fa9e77eed70ec6df8afd3b9f5f5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 10 May 2017 15:25:07 +0200 Subject: [PATCH 262/386] ui: 'string->duration' correctly handles hours. * guix/ui.scm (string->duration): Add missing '=>' for hours. * tests/ui.scm ("duration, 2 hours"): New test. --- guix/ui.scm | 1 + tests/ui.scm | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/guix/ui.scm b/guix/ui.scm index e551d48c33..e7cb40927b 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1008,6 +1008,7 @@ following patterns: \"1d\", \"1w\", \"1m\"." (make-time time-duration 0 (string->number (match:substring match 1))))) ((string-match "^([0-9]+)h$" str) + => (lambda (match) (hours->duration 1 match))) ((string-match "^([0-9]+)d$" str) diff --git a/tests/ui.scm b/tests/ui.scm index cfe417d497..1e98e3534b 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -189,6 +189,10 @@ Second line" 24)) (string->duration "1m") (string->duration "30d")) +(test-equal "duration, 2 hours" + 7200 + (time-second (string->duration "2h"))) + (test-equal "duration, 1 second" (make-time time-duration 0 1) (string->duration "1s")) From 7fd952e05203d975fcb6cdabd2f742ade1b31b66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 10 May 2017 15:25:59 +0200 Subject: [PATCH 263/386] scripts: Warn about old distro. Fixes . Suggested by Mark H Weaver . * guix/scripts.scm (%distro-age-warning): New variable. (warn-about-old-distro): New procedure. * guix/scripts/package.scm (process-actions): Call 'warn-about-old-distro'. * guix/scripts/system.scm (process-action): Likewise. --- guix/scripts.scm | 49 ++++++++++++++++++++++++++++++++++++++-- guix/scripts/package.scm | 2 ++ guix/scripts/system.scm | 2 ++ 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/guix/scripts.scm b/guix/scripts.scm index da35e71ac2..8c8c8ef9c9 100644 --- a/guix/scripts.scm +++ b/guix/scripts.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2014 Deck Pickard ;;; Copyright © 2015, 2016 Alex Kost ;;; @@ -27,13 +27,16 @@ #:use-module (guix packages) #:use-module (guix derivations) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-19) #:use-module (srfi srfi-37) #:use-module (ice-9 match) #:export (args-fold* parse-command-line maybe-build build-package - build-package-source)) + build-package-source + %distro-age-warning + warn-about-old-distro)) ;;; Commentary: ;;; @@ -136,4 +139,46 @@ Show what and how will/would be built." #:dry-run? dry-run?) (return (show-derivation-outputs derivation)))))) +(define %distro-age-warning + ;; The age (in seconds) above which we warn that the distro is too old. + (make-parameter (match (and=> (getenv "GUIX_DISTRO_AGE_WARNING") + string->duration) + (#f (* 7 24 3600)) + (age (time-second age))))) + +(define* (warn-about-old-distro #:optional (old (%distro-age-warning)) + #:key (suggested-command + "guix package -u")) + "Emit a warning if Guix is older than OLD seconds." + (let-syntax ((false-if-not-found + (syntax-rules () + ((_ exp) + (catch 'system-error + (lambda () + exp) + (lambda args + (if (= ENOENT (system-error-errno args)) + #f + (apply throw args)))))))) + (define (seconds->days seconds) + (round (/ seconds (* 3600 24)))) + + (define age + (match (false-if-not-found + (lstat (string-append (config-directory) "/latest"))) + (#f #f) + (stat (- (time-second (current-time time-utc)) + (stat:mtime stat))))) + + (when (and age (>= age old)) + (warning (N_ "Your Guix installation is ~a days old.\n" + "Your Guix installation is ~a day old.\n" + (seconds->days age)) + (seconds->days age))) + (when (or (not age) (>= age old)) + (warning (G_ "Consider running 'guix pull' followed by +'~a' to get up-to-date packages and security updates.\n") + suggested-command) + (newline (guix-warning-port))))) + ;;; scripts.scm ends here diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 92676c2228..1f3f49fc6f 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -859,6 +859,8 @@ processed, #f otherwise." (manifest-transaction-install step2))))) (new (manifest-perform-transaction manifest step3))) + (warn-about-old-distro) + (unless (manifest-transaction-null? step3) (show-manifest-transaction store manifest step3 #:dry-run? dry-run?) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 2872bcae6b..9c09767508 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -847,6 +847,8 @@ resulting from command-line parsing." ((shepherd-graph) (export-shepherd-graph os (current-output-port))) (else + (warn-about-old-distro #:suggested-command + "guix system reconfigure") (perform-action action os #:dry-run? dry? #:derivations-only? (assoc-ref opts From 99bde93b8392e5761f06a5b68b78dd433cacf096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 10 May 2017 15:58:22 +0200 Subject: [PATCH 264/386] gnu: guile-sqlite3: Switch to Guile 2.2. * gnu/packages/guile.scm (guile-sqlite3)[version]: Set revision to 1. [inputs]: Use GUILE-2.2 instead of GUILE-2.0. --- gnu/packages/guile.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 8766e33081..286aa42e7d 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1034,7 +1034,7 @@ Guile's foreign function interface.") (let ((commit "607721fe1174a299e45d457acacf94eefb964071")) (package (name "guile-sqlite3") - (version (string-append "0.0-0." (string-take commit 7))) + (version (string-append "0.0-1." (string-take commit 7))) ;; XXX: This used to be available read-only at ;; but it @@ -1062,7 +1062,7 @@ Guile's foreign function interface.") ("automake" ,automake) ("pkg-config" ,pkg-config))) (inputs - `(("guile" ,guile-2.0) + `(("guile" ,guile-2.2) ("sqlite" ,sqlite))) (arguments '(#:phases (modify-phases %standard-phases From 0d43b12d1dc7c5bf0d86c71de140bff37025c7c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 10 May 2017 17:03:49 +0200 Subject: [PATCH 265/386] gnu: cuirass: Update snapshot; switch to Guile 2.2. * gnu/packages/ci.scm (cuirass): Update to commit 870e8d6. Increment REVISION. [source]: Change URL to git.savannah.gnu.org. [arguments]: Add #:modules. In 'wrap-program' phase, get the Guile effective version and honor it. [inputs]: Use GUILE-2.2 instead of GUILE-2.0 and GUILE2.2-JSON instead of GUILE-JSON. [home-page]: Set to the Guix home page. --- gnu/packages/ci.scm | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index ae91464a18..06a06dc65c 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -187,23 +187,28 @@ their dependencies.") (license l:gpl3+)))) (define-public cuirass - (let ((commit "8c811abb3174b44601b8996a1fe1718f37d7bd14") - (revision "5")) + (let ((commit "870e8d6ad3415ac61c52e57095fcc6164023a0fc") + (revision "6")) (package (name "cuirass") (version (string-append "0.0.1-" revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference - (url "https://notabug.org/mthl/cuirass") + (url "https://git.savannah.gnu.org/git/guix/guix-cuirass.git") (commit commit))) (file-name (string-append name "-" version)) (sha256 (base32 - "0kz2ys01xlmxagsfr9qf3p212vm31wfl76rvxa7ii5804aidlz5n")))) + "0lp5a5p42k7lml15lbmmd7az9i0gw5kips3sh3awd2z79h0w2knw")))) (build-system gnu-build-system) (arguments - '(#:phases + '(#:modules ((guix build utils) + (guix build gnu-build-system) + (ice-9 rdelim) + (ice-9 popen)) + + #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-repo-tests (λ _ @@ -221,9 +226,17 @@ their dependencies.") (sqlite (assoc-ref inputs "guile-sqlite3")) (git (assoc-ref inputs "git")) (guix (assoc-ref inputs "guix")) - (mods (string-append json "/share/guile/site/2.0:" - sqlite "/share/guile/site/2.0:" - guix "/share/guile/site/2.0"))) + (guile (assoc-ref %build-inputs "guile")) + (effective (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (mods (string-append json "/share/guile/site/" + effective ":" + sqlite "/share/guile/site/" + effective ":" + guix "/share/guile/site/" + effective))) ;; Make sure 'cuirass' can find the 'git' and 'evaluate' ;; commands, as well as the relevant Guile modules. (wrap-program (string-append out "/bin/cuirass") @@ -233,8 +246,8 @@ their dependencies.") `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,mods))) #t)))))) (inputs - `(("guile" ,guile-2.0) - ("guile-json" ,guile-json) + `(("guile" ,guile-2.2) + ("guile-json" ,guile2.2-json) ("guile-sqlite3" ,guile-sqlite3) ("guix" ,guix) ("git" ,git))) @@ -247,5 +260,5 @@ their dependencies.") (description "Cuirass is a continuous integration tool using GNU Guix. It is intended as a replacement for Hydra.") - (home-page "https://notabug.org/mthl/cuirass") + (home-page "https://www.gnu.org/software/guix/") (license l:gpl3+)))) From ec43671780af0a0e3944e4adbd116479de1eb01e Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Mon, 2 Jan 2017 17:18:59 +1000 Subject: [PATCH 266/386] gnu: Add ocaml-4.01. * gnu/packages/ocaml.scm (ocaml-4.01): New variable. --- gnu/packages/ocaml.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index e5e599358e..ba90071a56 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016, 2017 Julien Lepiller +;;; Copyright © 2017 Ben Woodcroft ;;; ;;; This file is part of GNU Guix. ;;; @@ -212,6 +213,36 @@ functional, imperative and object-oriented styles of programming.") ;; distributed under lgpl2.0. (license (list license:qpl license:lgpl2.0)))) +(define-public ocaml-4.01 + (package + (inherit ocaml) + (version "4.01.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://caml.inria.fr/pub/distrib/ocaml-" + (version-major+minor version) + "/ocaml-" version ".tar.xz")) + (sha256 + (base32 + "03d7ida94s1gpr3gadf4jyhmh5rrszd5s4m4z59daaib25rvfyv7")))) + (arguments + (substitute-keyword-arguments (package-arguments ocaml) + ((#:phases phases) + `(modify-phases ,phases + (replace 'build + (lambda _ + ;; Specifying '-j' at all causes the build to fail. + (zero? (system* "make" "world.opt")))) + (replace 'check + (lambda _ + (with-directory-excursion "testsuite" + (zero? (system* + "make" + "all" + (string-append + "TOPDIR=" (getcwd) "/..")))))))))))) + (define-public opam (package (name "opam") From fa01cb52260dc09d3bf6acc72d8a390554dd6d53 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Mon, 2 Jan 2017 22:29:28 +1000 Subject: [PATCH 267/386] gnu: Add ocaml4.01-findlib. * gnu/packages/ocaml.scm (ocaml4.01-findlib): New variable. --- gnu/packages/ocaml.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index ba90071a56..c7c473a4cc 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -838,6 +838,14 @@ compilation and linkage, there are new frontends of the various OCaml compilers that can directly deal with packages.") (license license:x11))) +(define-public ocaml4.01-findlib + (package + (inherit ocaml-findlib) + (name "ocaml4.01-findlib") + (native-inputs + `(("m4" ,m4) + ("ocaml" ,ocaml-4.01))))) + ;; note that some tests may hang for no obvious reason. (define-public ocaml-ounit (package From c6cfec42b089ee7d5663b2193eea33d3de49dad2 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Mon, 2 Jan 2017 22:23:34 +1000 Subject: [PATCH 268/386] build-system: Add package-with-ocaml4.01. * guix/build-system/ocaml.scm (default-ocaml4.01, default-ocaml4.01-findlib, package-with-explicit-ocaml, package-with-ocaml4.01, strip-ocaml4.01-variant): New variables. --- guix/build-system/ocaml.scm | 76 ++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm index f4f57b5ad5..34a22ecffa 100644 --- a/guix/build-system/ocaml.scm +++ b/guix/build-system/ocaml.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Julien Lepiller +;;; Copyright © 2017 Ben Woodcroft ;;; ;;; This file is part of GNU Guix. ;;; @@ -15,7 +16,6 @@ ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . - (define-module (guix build-system ocaml) #:use-module (guix store) #:use-module (guix utils) @@ -25,7 +25,10 @@ #:use-module (guix build-system gnu) #:use-module (guix packages) #:use-module (ice-9 match) + #:use-module (srfi srfi-1) #:export (%ocaml-build-system-modules + package-with-ocaml4.01 + strip-ocaml4.01-variant ocaml-build ocaml-build-system)) @@ -71,6 +74,77 @@ (let ((module (resolve-interface '(gnu packages ocaml)))) (module-ref module 'ocaml-findlib))) +(define (default-ocaml4.01) + (let ((ocaml (resolve-interface '(gnu packages ocaml)))) + (module-ref ocaml 'ocaml-4.01))) + +(define (default-ocaml4.01-findlib) + (let ((module (resolve-interface '(gnu packages ocaml)))) + (module-ref module 'ocaml4.01-findlib))) + +(define* (package-with-explicit-ocaml ocaml findlib old-prefix new-prefix + #:key variant-property) + "Return a procedure of one argument, P. The procedure creates a package +with the same fields as P, which is assumed to use OCAML-BUILD-SYSTEM, such +that it is compiled with OCAML and FINDLIB instead. The inputs are changed +recursively accordingly. If the name of P starts with OLD-PREFIX, this is +replaced by NEW-PREFIX; otherwise, NEW-PREFIX is prepended to the name. + +When VARIANT-PROPERTY is present, it is used as a key to search for +pre-defined variants of this transformation recorded in the 'properties' field +of packages. The property value must be the promise of a package. This is a +convenient way for package writers to force the transformation to use +pre-defined variants." + (define package-variant + (if variant-property + (lambda (package) + (assq-ref (package-properties package) + variant-property)) + (const #f))) + + (define (transform p) + (cond + ;; If VARIANT-PROPERTY is present, use that. + ((package-variant p) + => force) + + ;; Otherwise build the new package object graph. + ((eq? (package-build-system p) ocaml-build-system) + (package + (inherit p) + (location (package-location p)) + (name (let ((name (package-name p))) + (string-append new-prefix + (if (string-prefix? old-prefix name) + (substring name + (string-length old-prefix)) + name)))) + (arguments + (let ((ocaml (if (promise? ocaml) (force ocaml) ocaml)) + (findlib (if (promise? findlib) (force findlib) findlib))) + (ensure-keyword-arguments (package-arguments p) + `(#:ocaml ,ocaml + #:findlib ,findlib)))))) + (else p))) + + (define (cut? p) + (or (not (eq? (package-build-system p) ocaml-build-system)) + (package-variant p))) + + (package-mapping transform cut?)) + +(define package-with-ocaml4.01 + (package-with-explicit-ocaml (delay (default-ocaml4.01)) + (delay (default-ocaml4.01-findlib)) + "ocaml-" "ocaml4.01-" + #:variant-property 'ocaml4.01-variant)) + +(define (strip-ocaml4.01-variant p) + "Remove the 'ocaml4.01-variant' property from P." + (package + (inherit p) + (properties (alist-delete 'ocaml4.01-variant (package-properties p))))) + (define* (lower name #:key source inputs native-inputs outputs system target (ocaml (default-ocaml)) From 1345231cc21725e9866edb1b4c2366a038d4b5f3 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 18 Mar 2017 08:59:01 +1000 Subject: [PATCH 269/386] gnu: Add ocaml4.01-bisect. * gnu/packages/ocaml.scm (ocaml4.01-bisect): New variable. (ocaml-bisect)[properties]: New field. --- gnu/packages/ocaml.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index c7c473a4cc..b3fee16627 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -59,7 +59,8 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix svn-download) - #:use-module (guix utils)) + #:use-module (guix utils) + #:use-module (srfi srfi-1)) ;; A shortcut for files from ocaml forge. Downloaded files are computed from ;; their number, not their name. @@ -1126,8 +1127,22 @@ a camlp4-based tool that allows to instrument your application before running tests. After application execution, it is possible to generate a report in HTML format that is the replica of the application source code annotated with code coverage information.") + (properties `((ocaml4.01-variant . ,(delay ocaml4.01-bisect)))) (license license:gpl3+))) +(define-public ocaml4.01-bisect + (let ((base (package-with-ocaml4.01 (strip-ocaml4.01-variant ocaml-bisect)))) + (package + (inherit base) + (arguments + `(#:ocaml ,ocaml-4.01 + ;; Camlp4 is included with OCaml 4.01, so do not include it as a + ;; separate input. + ,@(strip-keyword-arguments '(#:make-flags) (package-arguments base)))) + (native-inputs `(,@(alist-delete "camlp4" (package-native-inputs base)))) + (propagated-inputs + `(,@(alist-delete "camlp4" (package-propagated-inputs base))))))) + (define-public ocaml-bitstring (package (name "ocaml-bitstring") From 17bd460f023abc2ea9d5b36fffa032ff56ee02a6 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 18 Mar 2017 07:10:55 +1000 Subject: [PATCH 270/386] gnu: Add ocaml4.01-sqlite3. * gnu/packages/ocaml.scm: (ocaml4.01-sqlite3): New variable. --- gnu/packages/ocaml.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index b3fee16627..c69b3073d7 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -1321,6 +1321,9 @@ coexistence with the old (version 2) SQLite and its OCaml wrapper @code{ocaml-sqlite}.") (license license:expat))) +(define-public ocaml4.01-sqlite3 + (package-with-ocaml4.01 ocaml-sqlite3)) + (define-public ocaml-csv (package (name "ocaml-csv") From 3dc671e147028e5bf27d73b3800993483c6a98dc Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 18 Mar 2017 07:14:17 +1000 Subject: [PATCH 271/386] gnu: Add ocaml4.01-csv. * gnu/packages/ocaml.scm (ocaml4.01-csv): New variable. --- gnu/packages/ocaml.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index c69b3073d7..e636e4eb79 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -1348,6 +1348,9 @@ read and write files in this format as well as some convenience functions to manipulate such data.") (license (package-license camlp4)))) +(define-public ocaml4.01-csv + (package-with-ocaml4.01 ocaml-csv)) + (define-public ocaml-mtime (package (name "ocaml-mtime") From 7adaab9fe713a8696772e46a8bad632f397bdd83 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 18 Mar 2017 07:15:58 +1000 Subject: [PATCH 272/386] gnu: Add ocaml4.01-gsl. * gnu/packages/maths.scm (ocaml4.01-gsl): New variable. --- gnu/packages/maths.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 4e70bd8d1c..88a46f8e9b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -311,6 +311,9 @@ numbers.") the OCaml language.") (license license:gpl3+))) +(define-public ocaml4.01-gsl + (package-with-ocaml4.01 ocaml-gsl)) + (define-public glpk (package (name "glpk") From b32208e7b5275ea2d17b8ba9de1a5137d5a30f9b Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 18 Mar 2017 07:17:07 +1000 Subject: [PATCH 273/386] gnu: Add ocaml4.01-mcl. * gnu/packages/machine-learning.scm (ocaml4.01-mcl): New variable. --- gnu/packages/machine-learning.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 58ae81d207..d39e77d978 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -274,6 +274,9 @@ networks) based on simulation of (stochastic) flow in graphs.") algorithm.") (license license:gpl3))) +(define-public ocaml4.01-mcl + (package-with-ocaml4.01 ocaml-mcl)) + (define-public randomjungle (package (name "randomjungle") From 6824387a4fb46a595006cfb17bcbb3311df6a9cd Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Fri, 6 Jan 2017 22:15:12 +1000 Subject: [PATCH 274/386] gnu: Add ocaml4.01-camlzip. * gnu/packages/ocaml.scm (ocaml4.01-camlzip): New variable. --- gnu/packages/ocaml.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index e636e4eb79..ddc828095d 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -914,6 +914,24 @@ JAR format. It provides functions for reading from and writing to compressed files in these formats.") (license license:lgpl2.1+))) +(define-public ocaml4.01-camlzip + (let ((base (package-with-ocaml4.01 camlzip))) + (package + (inherit base) + (name "ocaml4.01-camlzip") + ;; Version 1.05 is the last version to support OCaml 4.01.0. + (version "1.05") + (source + (origin + (method url-fetch) + (uri + (string-append + "http://forge.ocamlcore.org/frs/download.php/1037/camlzip-" + version ".tar.gz")) + (sha256 + (base32 + "0syh72jk9s0qwjmmfrkqchaj98m020ii082jn38pwnmb6v3p02wk"))))))) + (define-public ocamlmod (package (name "ocamlmod") From 0274521a19385fa784a32f783377ef291d6f9eed Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Fri, 6 Jan 2017 22:17:34 +1000 Subject: [PATCH 275/386] gnu: Add ocaml4.01-qtest. * gnu/packages/ocaml.scm (ocaml4.01-qtest): New variable. --- gnu/packages/ocaml.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index ddc828095d..7f4e2ed6f6 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -1082,6 +1082,9 @@ qcheck library. The possibilities range from trivial tests -- extremely simple to use -- to sophisticated random generation of test cases.") (license license:lgpl3+))) +(define-public ocaml4.01-qtest + (package-with-ocaml4.01 ocaml-qtest)) + (define-public ocaml-stringext (package (name "ocaml-stringext") From abd593c71a20f255fa11cdd04e6ad207529c7cca Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Fri, 6 Jan 2017 22:34:01 +1000 Subject: [PATCH 276/386] gnu: Add ocaml4.01-ounit. * gnu/packages/ocaml.scm (ocaml4.01-ounit): New variable. --- gnu/packages/ocaml.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 7f4e2ed6f6..9ac8975afb 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -872,6 +872,9 @@ compilers that can directly deal with packages.") other XUnit testing frameworks.") (license license:expat))) +(define-public ocaml4.01-ounit + (package-with-ocaml4.01 ocaml-ounit)) + (define-public camlzip (package (name "camlzip") From 9bf9b3c05f1989b4a5cb4bc9e743f59ea767a9b6 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 4 Feb 2017 12:15:39 +1000 Subject: [PATCH 277/386] gnu: Add ocaml4.01-xmlm. * gnu/packages/ocaml.scm (ocaml4.01-xmlm): New variable. --- gnu/packages/ocaml.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 9ac8975afb..a876504797 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -1764,6 +1764,9 @@ format. It can process XML documents without a complete in-memory representation of the data.") (license license:isc))) +(define-public ocaml4.01-xmlm + (package-with-ocaml4.01 ocaml-xmlm)) + (define-public ocaml-ulex (package (name "ocaml-ulex") From de59e24abe9b35054b5de4389244625cdf8a4527 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 4 Feb 2017 12:16:50 +1000 Subject: [PATCH 278/386] gnu: Add ocaml4.01-batteries. * gnu/packages/ocaml.scm (ocaml4.01-batteries): New variable. --- gnu/packages/ocaml.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index a876504797..b9f1d53cf6 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2032,6 +2032,9 @@ every compliant installation of OCaml and organize these libraries into a hierarchy of modules.") (license license:lgpl2.1+))) +(define-public ocaml4.01-batteries + (package-with-ocaml4.01 ocaml-batteries)) + (define-public ocaml-pcre (package (name "ocaml-pcre") From ad0ae297d4b5af5b7eaf29956a190a91c39f9eb2 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 4 Feb 2017 15:23:45 +1000 Subject: [PATCH 279/386] gnu: Add taxtastic. * gnu/packages/bioinformatics.scm (taxtastic): New variable. --- gnu/packages/bioinformatics.scm | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index c80084f8ae..36b9087e4a 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -5268,6 +5268,42 @@ between experiments, StringTie's output can be processed either by the Cuffdiff or Ballgown programs.") (license license:artistic2.0))) +(define-public taxtastic + (package + (name "taxtastic") + (version "0.5.7") + ;; Versions after 0.5.4 do not appear to be distributed on PyPI so we + ;; download the package from GitHub. + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/fhcrc/taxtastic/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1s0h5y1lds1c40jhir5585ffm6yjyn8h5aqimpgv64rhqhfv56xx")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "python" "-m" "unittest" "discover" "-v"))))))) + (propagated-inputs + `(("python-sqlalchemy" ,python2-sqlalchemy) + ("python-decorator" ,python2-decorator) + ("python-biopython" ,python2-biopython) + ("python-pandas" ,python2-pandas))) + (home-page "https://github.com/fhcrc/taxtastic") + (synopsis "Tools for taxonomic naming and annotation") + (description + "Taxtastic is software written in python used to build and maintain +reference packages i.e. collections of reference trees, reference alignments, +profiles, and associated taxonomic information.") + (license license:gpl3+))) + (define-public vcftools (package (name "vcftools") From c033f5d6b5b565c43588d25b7b47d177f0c0933c Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 4 Feb 2017 15:25:29 +1000 Subject: [PATCH 280/386] gnu: Add pplacer. * gnu/packages/bioinformatics.scm (pplacer, pplacer-scripts): New variables. --- gnu/packages/bioinformatics.scm | 125 ++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 36b9087e4a..6ef8690e48 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -33,6 +33,7 @@ #:use-module (guix build-system ant) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system ocaml) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system r) @@ -71,6 +72,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) + #:use-module (gnu packages ocaml) #:use-module (gnu packages pcre) #:use-module (gnu packages parallel) #:use-module (gnu packages pdf) @@ -3627,6 +3629,129 @@ interrupted by stop codons. OrfM finds and prints these ORFs.") (home-page "https://github.com/wwood/OrfM") (license license:lgpl3+))) +(define-public pplacer + (let ((commit "g807f6f3")) + (package + (name "pplacer") + ;; The commit should be updated with each version change. + (version "1.1.alpha19") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/matsen/pplacer/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0z1lnd2s8sh6kpzg106wzbh2szw7h0hvq8syd5a6wv4rmyyz6x0f")))) + (build-system ocaml-build-system) + (arguments + `(#:ocaml ,ocaml-4.01 + #:findlib ,ocaml4.01-findlib + #:modules ((guix build ocaml-build-system) + (guix build utils) + (ice-9 ftw)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'replace-bundled-cddlib + (lambda* (#:key inputs #:allow-other-keys) + (let* ((cddlib-src (assoc-ref inputs "cddlib-src")) + (local-dir "cddlib_guix")) + (mkdir local-dir) + (with-directory-excursion local-dir + (system* "tar" "xvf" cddlib-src)) + (let ((cddlib-src-folder + (string-append local-dir "/" + (list-ref (scandir local-dir) 2) + "/lib-src"))) + (for-each + (lambda (file) + (copy-file file + (string-append "cdd_src/" (basename file)))) + (find-files cddlib-src-folder ".*[ch]$"))) + #t))) + (add-after 'unpack 'fix-makefile + (lambda _ + ;; Remove system calls to 'git'. + (substitute* "Makefile" + (("^DESCRIPT:=pplacer-.*") + (string-append + "DESCRIPT:=pplacer-$(shell uname)-v" ,version "\n"))) + (substitute* "myocamlbuild.ml" + (("git describe --tags --long .*\\\" with") + (string-append + "echo -n v" ,version "-" ,commit "\" with"))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (copy-recursively "bin" bin)) + #t))))) + (native-inputs + `(("zlib" ,zlib) + ("gsl" ,gsl) + ("ocaml-ounit" ,ocaml4.01-ounit) + ("ocaml-batteries" ,ocaml4.01-batteries) + ("ocaml-camlzip" ,ocaml4.01-camlzip) + ("ocaml-csv" ,ocaml4.01-csv) + ("ocaml-sqlite3" ,ocaml4.01-sqlite3) + ("ocaml-xmlm" ,ocaml4.01-xmlm) + ("ocaml-mcl" ,ocaml4.01-mcl) + ("ocaml-gsl" ,ocaml4.01-gsl) + ("cddlib-src" ,(package-source cddlib)))) + (propagated-inputs + `(("pplacer-scripts" ,pplacer-scripts))) + (synopsis "Phylogenetic placement of biological sequences") + (description + "Pplacer places query sequences on a fixed reference phylogenetic tree +to maximize phylogenetic likelihood or posterior probability according to a +reference alignment. Pplacer is designed to be fast, to give useful +information about uncertainty, and to offer advanced visualization and +downstream analysis.") + (home-page "http://matsen.fhcrc.org/pplacer") + (license license:gpl3)))) + +;; This package is installed alongside 'pplacer'. It is a separate package so +;; that it can use the python-build-system for the scripts that are +;; distributed alongside the main OCaml binaries. +(define pplacer-scripts + (package + (inherit pplacer) + (name "pplacer-scripts") + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-scripts-dir + (lambda _ (chdir "scripts"))) + (replace 'check + (lambda _ + (zero? (system* "python" "-m" "unittest" "discover" "-v")))) + (add-after 'install 'wrap-executables + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (let ((path (string-append + (assoc-ref inputs "hmmer") "/bin:" + (assoc-ref inputs "infernal") "/bin"))) + (display path) + (wrap-program (string-append bin "/refpkg_align.py") + `("PATH" ":" prefix (,path)))) + (let ((path (string-append + (assoc-ref inputs "hmmer") "/bin"))) + (wrap-program (string-append bin "/hrefpkg_query.py") + `("PATH" ":" prefix (,path))))) + #t))))) + (inputs + `(("infernal" ,infernal) + ("hmmer" ,hmmer))) + (propagated-inputs + `(("python-biopython" ,python2-biopython) + ("taxtastic" ,taxtastic))) + (synopsis "Pplacer Python scripts"))) + (define-public python2-pbcore (package (name "python2-pbcore") From bc0e6c9312f5f755e1ccd7d8c43b58974e6f7d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 10 May 2017 23:28:04 +0200 Subject: [PATCH 281/386] scripts: Fix singular/plural message mismatch. * guix/scripts.scm (warn-about-old-distro): Swap singular and plural forms in 'N_' call. --- guix/scripts.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/scripts.scm b/guix/scripts.scm index 8c8c8ef9c9..d5c53dea1b 100644 --- a/guix/scripts.scm +++ b/guix/scripts.scm @@ -171,8 +171,8 @@ Show what and how will/would be built." (stat:mtime stat))))) (when (and age (>= age old)) - (warning (N_ "Your Guix installation is ~a days old.\n" - "Your Guix installation is ~a day old.\n" + (warning (N_ "Your Guix installation is ~a day old.\n" + "Your Guix installation is ~a days old.\n" (seconds->days age)) (seconds->days age))) (when (or (not age) (>= age old)) From 45f8e7f75e5401eb05bf98383ee169f6b7f06851 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 10 May 2017 12:27:42 -0400 Subject: [PATCH 282/386] gnu: Add python-sge-pygame. * gnu/packages/game-development.scm (python-sge-pygame, python2-sge-pygame): New variables. --- gnu/packages/game-development.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 41d85aac87..75ab59b1b3 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -187,6 +187,33 @@ and network communications. A very thin client library can be embedded to provide connectivity for client applications written in any language.") (license license:gpl3+))) +(define-public python-sge-pygame + (package + (name "python-sge-pygame") + (version "1.4.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sge-pygame" version)) + (sha256 + (base32 + "1qhrcja1igqkjjn1w425ni5f41mijdq5dpq0ymkhl29xxrf8hnx8")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pygame" ,python-pygame) + ("python-six" ,python-six))) + (home-page "http://stellarengine.nongnu.org") + (synopsis "2D game engine for Python") + (description + "The SGE Game Engine (\"SGE\", pronounced like \"Sage\") is a +general-purpose 2D game engine. It takes care of several details fro you so +you can focus on the game itself. This makes more rapid game development +possible, and it also makes the SGE easy to learn.") + (license license:lgpl3+))) + +(define-public python2-sge-pygame + (package-with-python2 python-sge-pygame)) + (define-public tiled (package (name "tiled") From 1b775fd1df9e4c4f96e9acdf5485d04a74730153 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 10 May 2017 13:18:11 -0400 Subject: [PATCH 283/386] gnu: Add python-tmx. * gnu/packages/game-development.scm (python-tmx, python2-tmx): New variables. --- gnu/packages/game-development.scm | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 75ab59b1b3..da3a850fed 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -214,6 +214,41 @@ possible, and it also makes the SGE easy to learn.") (define-public python2-sge-pygame (package-with-python2 python-sge-pygame)) +(define-public python-tmx + (package + (name "python-tmx") + (version "1.9.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/python-tmx/tmx-" + version ".tar.gz")) + (sha256 + (base32 + "1is107sx3lr09dqjiyn10xqhyv5x54c2ryhys9mb9j3mxjbm227l")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "http://python-tmx.nongnu.org") + (synopsis "Python library for the @code{Tiled} TMX format") + (description + "Python TMX reads and writes the @code{Tiled} TMX format in a simple way. +This is useful for map editors or generic level editors, and it's also useful +for using a map editor or generic level editor like Tiled to edit your game's +levels.") + (license (list license:asl2.0 + ;; Documentation (only available in the source tarball) is + ;; under the CC0 license. + license:cc0)))) + +(define-public python2-tmx + (let ((python2-tmx (package-with-python2 python-tmx))) + (package + (inherit python2-tmx) + (propagated-inputs + `(("python2-pathlib" ,python2-pathlib) + ,@(package-propagated-inputs python2-tmx)))))) + (define-public tiled (package (name "tiled") From 68ab3e6c9a913c73075bc6f24fc23dce9d102b09 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 10 May 2017 21:57:39 -0400 Subject: [PATCH 284/386] gnu: python-icalendar: Update to 3.11.4. * gnu/packages/python.scm (python-icalendar): Update to 3.11.4. --- 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 60d3868e96..e58768225c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8893,13 +8893,13 @@ processes across test runs.") (define-public python-icalendar (package (name "python-icalendar") - (version "3.11.3") + (version "3.11.4") (source (origin (method url-fetch) (uri (pypi-uri "icalendar" version)) (sha256 (base32 - "086jslw8cg2hni79j267p1dy6d27m7q5hi39ni2clh9waqbdf5v3")))) + "0ix3xxykz8hs8mx4f2063djawmd888y3vsl75fbvbfqvg67v35jn")))) (build-system python-build-system) (propagated-inputs `(("python-dateutil" ,python-dateutil) From c18594dd95f98624b09b51ef5f8aea0a0d4d1743 Mon Sep 17 00:00:00 2001 From: "Ethan R. Jones" Date: Wed, 10 May 2017 22:41:37 -0400 Subject: [PATCH 285/386] gnu: libpwquality: Update source and home-page URLs. * gnu/packages/password-utils.scm (libpwquality)[source]: Update URL. [home-page]: Update URL. Signed-off-by: Leo Famulari --- gnu/packages/password-utils.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 9daacd871e..f6af6a6519 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -197,8 +197,9 @@ passwords that could be guessed by crack by filtering them out, at source.") (source (origin (method url-fetch) (uri (list - (string-append "https://fedorahosted.org/releases/l/i/" - name "/" name "-" version ".tar.bz2") + (string-append "https://github.com/" name "/" name + "/releases/download/" name "-" version + "/" name "-" version ".tar.bz2") (string-append "https://launchpad.net/libpwquality/trunk/" version "/+download/" name "-" version ".tar.bz2"))) @@ -212,7 +213,7 @@ passwords that could be guessed by crack by filtering them out, at source.") (inputs `(("cracklib" ,cracklib))) (synopsis "Password quality checker") - (home-page "https://fedorahosted.org/libpwquality/") + (home-page "https://github.com/libpwquality/libpwquality") (description "Libpwquality is a library for password quality checking and generation of random passwords that pass the checks.") From 779669abfd68489b7b3c9efe0ff5af5e672a390c Mon Sep 17 00:00:00 2001 From: "Ethan R. Jones" Date: Wed, 10 May 2017 22:41:38 -0400 Subject: [PATCH 286/386] gnu: font-liberation: Update source and homepage URLs. * gnu/packages/fonts.scm (font-liberation)[source]: Update URL. [home-page]: Update URL. Signed-off-by: Leo Famulari --- gnu/packages/fonts.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index c1f0786df2..03a1f6f796 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -321,7 +321,7 @@ sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.") (version "2.00.1") (source (origin (method url-fetch) - (uri (string-append "https://fedorahosted.org/releases/l/i/" + (uri (string-append "https://releases.pagure.org/" "liberation-fonts/liberation-fonts-ttf-" version ".tar.gz")) (sha256 @@ -355,7 +355,7 @@ sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.") `(("source" ,source) ("tar" ,tar) ("gzip" ,gzip))) - (home-page "https://fedorahosted.org/liberation-fonts/") + (home-page "https://pagure.io/liberation-fonts/") (synopsis "Fonts compatible with Arial, Times New Roman, and Courier New") (description From 4929a0617a118068cc43819f6b7dd85eafadbf61 Mon Sep 17 00:00:00 2001 From: "Ethan R. Jones" Date: Wed, 10 May 2017 22:41:40 -0400 Subject: [PATCH 287/386] gnu: libaio: Remove dead source URL. * gnu/packages/linux.scm (libaio)[source]: Remove fedorahosted.org URL. Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 61c960bfbe..61aaf53329 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2686,9 +2686,7 @@ Linux Device Mapper multipathing driver: (method url-fetch) (uri (list (string-append "mirror://debian/pool/main/liba/libaio/" - name "_" version ".orig.tar.gz") - (string-append "https://fedorahosted.org/releases/l/i/libaio/" - name "-" version ".tar.gz"))) + name "_" version ".orig.tar.gz"))) (sha256 (base32 "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0")))) From 5ee684ff2f1eadf292cac572e9e02aef5d2cdd35 Mon Sep 17 00:00:00 2001 From: "Ethan R. Jones" Date: Wed, 10 May 2017 23:18:37 -0400 Subject: [PATCH 288/386] gnu: python2-dogtail: Update home-page URL. * gnu/packages/python.scm (python2-dogtail)[home-page]: Update URL. Signed-off-by: Leo Famulari --- gnu/packages/python.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e58768225c..b7c77e3c0c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1353,7 +1353,8 @@ Python 3.3+.") (build-system python-build-system) (arguments `(#:python ,python-2 #:tests? #f)) ; invalid command "test" - (home-page "https://fedorahosted.org/dogtail/") + ;; Currently no offical homepage. + (home-page "https://pypi.python.org/pypi/dogtail/") (synopsis "GUI test tool and automation framework written in Python") (description "Dogtail is a GUI test tool and automation framework written in Python. From cb542830a23926a3df321b37d9e2aa914ea7b8c0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 10 May 2017 23:19:55 -0400 Subject: [PATCH 289/386] gnu: python-kitchen: Update home-page URL. * gnu/packages/python.scm (python-kitchen, python2-kitchen)[home-page]: Update URL. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b7c77e3c0c..8c14e951b5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2642,7 +2642,7 @@ version numbers.") (build-system python-build-system) (propagated-inputs `(("python-chardet" ,python-chardet))) - (home-page "https://fedorahosted.org/kitchen") + (home-page "https://github.com/fedora-infra/kitchen") (synopsis "Python API for snippets") (description "@code{kitchen} module provides a python API for all sorts of little useful snippets of code that everybody ends up writing for their projects From 86db4486b27389000b93e94a699fc9dafe1eba0a Mon Sep 17 00:00:00 2001 From: ng0 Date: Sat, 15 Apr 2017 17:46:42 +0000 Subject: [PATCH 290/386] gnu: Add vim-syntastic. * gnu/packages/vim.scm (vim-syntastic): New variable. Signed-off-by: Leo Famulari --- gnu/packages/vim.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 5ceb7c8315..bb2bf3efb7 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -512,6 +512,48 @@ and powerline symbols, etc.") (home-page "https://github.com/vim-airline/vim-airline-themes") (license license:expat)))) +(define-public vim-syntastic + (package + (name "vim-syntastic") + (version "3.8.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/vim-syntastic/syntastic/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0wsnd9bsp5x6yiw96h1bnd1vyxdkh130hb82kyyxydgsplx92ima")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (doc (string-append vimfiles "/doc")) + (plugin (string-append vimfiles "/plugin")) + (autoload (string-append vimfiles "/autoload")) + (syntax-checkers (string-append vimfiles "/syntax_checkers"))) + (copy-recursively "doc" doc) + (copy-recursively "autoload" autoload) + (copy-recursively "plugin" plugin) + (copy-recursively "syntax_checkers" syntax-checkers) + #t)))))) + (synopsis "Syntax checking plugin for Vim") + (description + "Vim-syntastic is a syntax checking plugin for Vim. It runs files through +external syntax checkers and displays any resulting errors to the user. This +can be done on demand, or automatically as files are saved. If syntax errors +are detected, the user is notified.") + (home-page "https://github.com/vim-syntastic/syntastic") + (license license:wtfpl2))) + (define-public neovim (package (name "neovim") From bc84735d1434a92d64f9b6d764b2dc034246697b Mon Sep 17 00:00:00 2001 From: ng0 Date: Sat, 15 Apr 2017 17:46:43 +0000 Subject: [PATCH 291/386] gnu: Add neovim-syntastic. * gnu/packages/vim.scm (neovim-syntastic): New variable. Signed-off-by: Leo Famulari --- gnu/packages/vim.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index bb2bf3efb7..697c7dedc7 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -554,6 +554,36 @@ are detected, the user is notified.") (home-page "https://github.com/vim-syntastic/syntastic") (license license:wtfpl2))) +(define-public neovim-syntastic + (package + (inherit vim-syntastic) + (name "neovim-syntastic") + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/nvim/site")) + (doc (string-append vimfiles "/doc")) + (plugin (string-append vimfiles "/plugin")) + (autoload (string-append vimfiles "/autoload")) + (syntax-checkers (string-append vimfiles "/syntax_checkers"))) + (copy-recursively "doc" doc) + (copy-recursively "autoload" autoload) + (copy-recursively "plugin" plugin) + (copy-recursively "syntax_checkers" syntax-checkers) + #t)))))) + (synopsis "Syntax checking plugin for Neovim") + (description + "Vim-syntastic is a syntax checking plugin for Neovim. It runs files through +external syntax checkers and displays any resulting errors to the user. This +can be done on demand, or automatically as files are saved. If syntax errors +are detected, the user is notified."))) + (define-public neovim (package (name "neovim") From c0ad28087c408ffb7e9a7f2e3174f78b5beea0c6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 11 May 2017 00:08:01 -0400 Subject: [PATCH 292/386] gnu: elfutils: Update to 0.169. * gnu/packages/elf.scm (elfutils): Update to 0.169. --- gnu/packages/elf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 8180f55359..c81976a479 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -32,14 +32,14 @@ (define-public elfutils (package (name "elfutils") - (version "0.168") + (version "0.169") (source (origin (method url-fetch) (uri (string-append "https://sourceware.org/elfutils/ftp/" version "/elfutils-" version ".tar.bz2")) (sha256 (base32 - "0xn2fbgda1i703csfs35frvm7l068ybmay4ssrykqdx17f4hg3dq")) + "1hiv1yqig3292dwqhrwsxwk3qjalxp5fpl8yphwbfwh8ng3zl4ll")) (patches (search-patches "elfutils-tests-ptrace.patch")))) (build-system gnu-build-system) From fed55021250c4ccba5a559f8c752d9f30eaf9114 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 11 May 2017 01:14:56 -0400 Subject: [PATCH 293/386] gnu: git@2.10: Update to 2.10.3 [fixes CVE-2017-8386]. * gnu/packages/version-control.scm (git@2.10): Update to 2.10.3. --- gnu/packages/version-control.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 52dbcd4eca..cd684c04e7 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -315,14 +315,14 @@ everything from small to very large projects with speed and efficiency.") (define-public git@2.10 (package (inherit git) - (version "2.10.2") + (version "2.10.3") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0wc64dzcxrzgi6kwcljz6y3cwm3ajdgf6aws7g58azbhvl1jk04l")))))) + "02mb7yi49algsya3hnkcxdslwb6p1bi7c732z1g8kzq4hs838m7z")))))) (define-public libgit2 (package From 70cb7610ca7de51da6ad7f84ff3c02258ec4e95f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 11 May 2017 13:19:36 +0300 Subject: [PATCH 294/386] gnu: libffcall: Update to 1.12. * gnu/packages/libffcall.scm (libffcall): Update to 1.12. [source]: Source code is now stored in git. --- gnu/packages/libffcall.scm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/gnu/packages/libffcall.scm b/gnu/packages/libffcall.scm index 6ff40c8a10..e4babfed2c 100644 --- a/gnu/packages/libffcall.scm +++ b/gnu/packages/libffcall.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Joshua S. Grant ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,27 +20,27 @@ (define-module (gnu packages libffcall) #:use-module ((guix licenses) #:prefix l:) + #:use-module (guix utils) ; string-replace-substring #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix cvs-download) + #:use-module (guix git-download) #:use-module (guix build-system gnu)) (define-public libffcall (package (name "libffcall") - (version "1.10+cvs-2015-01-15") + (version "1.12") (source (origin - (method cvs-fetch) - (uri (cvs-reference - (root-directory - ":pserver:anonymous@cvs.savannah.gnu.org:/sources/libffcall") - (module "ffcall") - (revision "2015-01-15"))) + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/r/libffcall.git") + (commit (string-append + "ffcall-" (string-replace-substring version "." "-"))))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1lwdskc2w4rr98x9flr2726lmj4190l16r0izg7gqxy50801wwgd")))) + "0p7gg5k4ifcqpmrmdfmr2r4x909cn35g87iff539p6i8891fdfxf")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f)) (synopsis "Foreign function calls from interpreters") From 5899fafbfefcd7682aec8f2caaaad3add678a3c4 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Thu, 11 May 2017 16:17:49 +0200 Subject: [PATCH 295/386] graph: Add Cypher backend. * guix/graph.scm (%cypher-backend): New variable. * doc/guix.texi: Add documentation for the Cypher backend of 'guix graph'. --- doc/guix.texi | 4 +++- guix/graph.scm | 32 +++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 81aa957c6d..a5b787510b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6197,7 +6197,9 @@ provides a visual representation of the DAG. By default, @uref{http://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz. It can also emit an HTML page with embedded JavaScript code to display a ``chord diagram'' -in a Web browser, using the @uref{https://d3js.org/, d3.js} library. +in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or +emit Cypher queries to construct a graph in a graph database supporting +the @uref{http://www.opencypher.org/, openCypher} query language. The general syntax is: @example diff --git a/guix/graph.scm b/guix/graph.scm index 7af2cd3b80..d7fd5f3e4b 100644 --- a/guix/graph.scm +++ b/guix/graph.scm @@ -229,6 +229,35 @@ nodeArray.push(nodes[\"~a\"]);~%" emit-d3js-prologue emit-d3js-epilogue emit-d3js-node emit-d3js-edge)) + + +;;; +;;; Cypher export. +;;; + +(define (emit-cypher-prologue name port) + (format port "")) + +(define (emit-cypher-epilogue port) + (format port "")) + +(define (emit-cypher-node id label port) + (format port "MERGE (p:Package { id: ~s }) SET p.name = ~s;~%" + id label )) + +(define (emit-cypher-edge id1 id2 port) + (format port "MERGE (a:Package { id: ~s });~%" id1) + (format port "MERGE (b:Package { id: ~s });~%" id2) + (format port "MATCH (a:Package { id: ~s }), (b:Package { id: ~s }) CREATE UNIQUE (a)-[:NEEDS]->(b);~%" + id1 id2)) + +(define %cypher-backend + (graph-backend "cypher" + "Generate Cypher queries." + emit-cypher-prologue emit-cypher-epilogue + emit-cypher-node emit-cypher-edge)) + + ;;; ;;; Shared. @@ -236,7 +265,8 @@ nodeArray.push(nodes[\"~a\"]);~%" (define %graph-backends (list %graphviz-backend - %d3js-backend)) + %d3js-backend + %cypher-backend)) (define* (export-graph sinks port #:key From 24b21720f7c3a368efc32017c126e107a5d76f52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 11 May 2017 10:23:27 +0200 Subject: [PATCH 296/386] publish: Advertise a short TTL for "baking" 404s. * guix/scripts/publish.scm (not-found): Add #:phrase and #:ttl parameters and honor them. * tests/publish.scm ("with cache"): Check the 'cache-control' header on of the 404 response. --- guix/scripts/publish.scm | 15 +++++++++++---- tests/publish.scm | 7 +++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index efaa549676..8da75cb825 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -300,10 +300,15 @@ References: ~a~%~a" (canonical-sexp->string (signed-string info))))) (format #f "~aSignature: 1;~a;~a~%" info (gethostname) signature))) -(define (not-found request) +(define* (not-found request + #:key (phrase "Resource not found") + ttl) "Render 404 response for REQUEST." - (values (build-response #:code 404) - (string-append "Resource not found: " + (values (build-response #:code 404 + #:headers (if ttl + `((cache-control (max-age . ,ttl))) + '())) + (string-append phrase ": " (uri-path (request-uri request))))) (define (render-nix-cache-info) @@ -434,7 +439,9 @@ requested using POOL." (file-expiration-time ttl) #:delete-entry delete-entry #:cleanup-period ttl)))) - (not-found request)) + (not-found request + #:phrase "We're baking it" + #:ttl 300)) ;should be available within 5m (else (not-found request))))) diff --git a/tests/publish.scm b/tests/publish.scm index 6238f37bc1..268c324551 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -355,6 +355,13 @@ FileSize: ~a~%" (basename %item) ".nar")) (response (http-get url))) (and (= 404 (response-code response)) + + ;; We should get an explicitly short TTL for 404 in this case + ;; because it's going to become 200 shortly. + (match (assq-ref (response-headers response) 'cache-control) + ((('max-age . ttl)) + (< ttl 3600))) + (wait-for-file cached) (let* ((body (http-get-port url)) (compressed (http-get nar-url)) From 5db5dff53d255eb0738de4b44717a4b148fb8294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 11 May 2017 10:24:49 +0200 Subject: [PATCH 297/386] substitute: Honor 'Cache-Control' on 404 responses. * guix/scripts/substitute.scm (cached-narinfo): When VALUE is #f, use the TTL that is read instead of %NARINFO-NEGATIVE-TTL. (cached-narinfo-expiration-time): Likewise. --- guix/scripts/substitute.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 53162b3f9a..73d4f6e2eb 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -472,9 +472,9 @@ for PATH." (match (read p) (('narinfo ('version 2) ('cache-uri cache-uri) - ('date date) ('ttl _) ('value #f)) + ('date date) ('ttl ttl) ('value #f)) ;; A cached negative lookup. - (if (obsolete? date now %narinfo-negative-ttl) + (if (obsolete? date now ttl) (values #f #f) (values #t #f))) (('narinfo ('version 2) @@ -722,7 +722,7 @@ was found." (match (read port) (('narinfo ('version 2) ('cache-uri uri) ('date date) ('ttl ttl) ('value #f)) - (+ date %narinfo-negative-ttl)) + (+ date ttl)) (('narinfo ('version 2) ('cache-uri uri) ('date date) ('ttl ttl) ('value value)) (+ date ttl)) From 77abe3f091b4eaa7e75ec338fefc9c70531b708f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 11 May 2017 14:36:12 +0200 Subject: [PATCH 298/386] gnu: hwloc: Update to 1.11.7. * gnu/packages/mpi.scm (hwloc): Update to 1.11.7. --- gnu/packages/mpi.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 68937a26f5..3de49ddeeb 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Eric Bavier -;;; Copyright © 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2016 Andreas Enge ;;; @@ -41,7 +41,7 @@ (define-public hwloc (package (name "hwloc") - (version "1.11.2") + (version "1.11.7") (source (origin (method url-fetch) (uri (string-append "https://www.open-mpi.org/software/hwloc/v" @@ -49,7 +49,7 @@ "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "1y7c3ysiin0rw0sj6dbxkvjg92j4by36rykvf0vmh91q2rmrn0lc")))) + "0acph1mf7588hfx8ds26ncr6nw5fd9x92adm11fwin7f93i10sdb")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) From 62b28c0e7b4b20e22c24cd5ba09ce439b73dd236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 11 May 2017 17:48:58 +0200 Subject: [PATCH 299/386] gnu: Add PRoot. * gnu/packages/linux.scm (proot): New variable. * gnu/packages/patches/proot-test-fhs.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/linux.scm | 103 ++++++++++++++++++++++ gnu/packages/patches/proot-test-fhs.patch | 98 ++++++++++++++++++++ 3 files changed, 202 insertions(+) create mode 100644 gnu/packages/patches/proot-test-fhs.patch diff --git a/gnu/local.mk b/gnu/local.mk index e7c670793c..5c48e1ba46 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -894,6 +894,7 @@ dist_patch_DATA = \ %D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/procmail-ambiguous-getline-debian.patch \ %D%/packages/patches/procmail-CVE-2014-3618.patch \ + %D%/packages/patches/proot-test-fhs.patch \ %D%/packages/patches/pt-scotch-build-parallelism.patch \ %D%/packages/patches/pulseaudio-fix-mult-test.patch \ %D%/packages/patches/pulseaudio-longer-test-timeout.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 61aaf53329..94464d592a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -80,6 +80,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages rrdtool) + #:use-module (gnu packages samba) #:use-module (gnu packages slang) #:use-module (gnu packages storage) #:use-module (gnu packages texinfo) @@ -3782,3 +3783,105 @@ programming interface to the in-kernel nf_tables subsystem. The library libnftnl has been previously known as libnftables. This library is currently used by nftables.") (license license:gpl2+))) + +(define-public proot + (package + (name "proot") + (version "5.1.0") + (home-page "https://github.com/proot-me/PRoot") + (source (origin + (method url-fetch) + (uri (string-append home-page "/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "11h30i83vdhc3khlj6hrh3a21sbmmz8nhfv09vkf6b9bcs1biz2h")) + (patches (search-patches "proot-test-fhs.patch")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags '("-C" "src") + + #:phases (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'set-shell-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "src" "\\.[ch]$") + (("\"/bin/sh\"") + (string-append "\"" + (assoc-ref inputs "bash") + "/bin/sh\""))) + #t)) + (add-before 'check 'fix-fhs-assumptions-in-tests + (lambda _ + (substitute* "tests/test-c6b77b77.mk" + (("/bin/bash") (which "bash")) + (("/usr/bin/test") (which "test"))) + (substitute* '("tests/test-16573e73.c") + (("/bin/([a-z-]+)" _ program) + (which program))) + + (substitute* (find-files "tests" "\\.sh$") + ;; Some of the tests try to "bind-mount" /bin/true. + (("-b /bin/true:") + (string-append "-b " (which "true") ":")) + ;; Likewise for /bin. + (("-b /bin:") "-b /gnu:") + ;; Others try to run /bin/sh. + (("/bin/sh") (which "sh")) + ;; Others assume /etc/fstab exists. + (("/etc/fstab") "/etc/passwd")) + + (substitute* "tests/GNUmakefile" + (("-b /bin:") "-b /gnu:")) + + ;; XXX: This test fails in an obscure corner case, just + ;; skip it. + (delete-file "tests/test-kkkkkkkk.c") + + #t)) + (replace 'check + (lambda _ + (let ((n (parallel-job-count))) + ;; For some reason we get lots of segfaults with + ;; seccomp support (x86_64, Linux-libre 4.11.0). + (setenv "PROOT_NO_SECCOMP" "1") + + ;; Most of the tests expect "/bin" to be in $PATH so + ;; they can run things that live in $ROOTFS/bin. + (setenv "PATH" + (string-append (getenv "PATH") ":/bin")) + + (zero? (system* "make" "check" "-C" "tests" + ;;"V=1" + "-j" (number->string n)))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; The 'install' rule does nearly nothing. + (let ((out (assoc-ref outputs "out"))) + (and (zero? + ;; TODO: 'make install-care' (does not even + ;; build currently.) + (system* "make" "-C" "src" "install" + (string-append "PREFIX=" out))) + (begin + (install-file "doc/proot/man.1" + (string-append out "/share" + "/man/man1")) + #t)))))))) + (native-inputs `(("which" ,which) + + ;; For 'mcookie', used by some of the tests. + ("util-linux" ,util-linux))) + (inputs `(("talloc" ,talloc))) + (synopsis "Unprivileged chroot, bind mount, and binfmt_misc") + (description + "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind}, +and @code{binfmt_misc}. This means that users don't need any privileges or +setup to do things like using an arbitrary directory as the new root +filesystem, making files accessible somewhere else in the file system +hierarchy, or executing programs built for another CPU architecture +transparently through QEMU user-mode. Also, developers can use PRoot as a +generic process instrumentation engine thanks to its extension mechanism. +Technically PRoot relies on @code{ptrace}, an unprivileged system-call +available in the kernel Linux.") + (license license:gpl2+))) diff --git a/gnu/packages/patches/proot-test-fhs.patch b/gnu/packages/patches/proot-test-fhs.patch new file mode 100644 index 0000000000..d3896addd6 --- /dev/null +++ b/gnu/packages/patches/proot-test-fhs.patch @@ -0,0 +1,98 @@ +The test suite of PRoot makes many FHS assumptions, such as assuming +that /bin, /bin/true, and /usr exist. This patch fixes these assumptions. + +--- source/tests/GNUmakefile 2017-05-11 15:26:36.899115484 +0200 ++++ source/tests/GNUmakefile 2017-05-11 15:26:46.143063166 +0200 +@@ -121,7 +121,7 @@ $(ROOTFS_DIR): + setup: $(ROOTFS_BIN) + + $(ROOTFS)/bin/abs-true: +- @ln -fs /bin/true $@ ++ @ln -fs `which true` $@ + + $(ROOTFS)/bin/rel-true: + @ln -fs ./true $@ + +--- source/tests/test-d2175fc3.sh 2017-05-11 15:36:53.727617010 +0200 ++++ source/tests/test-d2175fc3.sh 2017-05-11 15:37:10.155523637 +0200 +@@ -2,8 +2,8 @@ if [ ! -x ${ROOTFS}/bin/readlink ] || [ + exit 125; + fi + +-${PROOT} -r ${ROOTFS} /bin/readlink /bin/abs-true | grep '^/bin/true$' ++${PROOT} -r ${ROOTFS} /bin/readlink /bin/abs-true | grep "`which true`" + ${PROOT} -r ${ROOTFS} /bin/readlink /bin/rel-true | grep '^\./true$' + +-${PROOT} -b /:/host-rootfs -r ${ROOTFS} /bin/readlink /bin/abs-true | grep '^/bin/true$' ++${PROOT} -b /:/host-rootfs -r ${ROOTFS} /bin/readlink /bin/abs-true | grep "`which true`" + ${PROOT} -b /:/host-rootfs -r ${ROOTFS} /bin/readlink /bin/rel-true | grep '^./true$' + +--- source/tests/test-d1be631a.sh 2017-05-11 15:41:36.458008715 +0200 ++++ source/tests/test-d1be631a.sh 2017-05-11 15:41:38.921994686 +0200 +@@ -1,4 +1,4 @@ +-if [ -z `which mknod`] || [ `id -u` -eq 0 ]; then ++if [ -z `which mknod` ] || [ `id -u` -eq 0 ]; then + exit 125; + fi + +--- source/tests/test-5bed7141.c 2017-05-11 15:34:23.088472743 +0200 ++++ source/tests/test-5bed7141.c 2017-05-11 15:34:27.052450235 +0200 +@@ -80,7 +80,7 @@ int main(int argc, char *argv[]) + exit(EXIT_FAILURE); + + case 0: /* child */ +- status = chdir("/usr"); ++ status = chdir("/gnu"); + if (status < 0) { + perror("chdir"); + exit(EXIT_FAILURE); + +--- a/tests/test-092c5e26.sh ++++ b/tests/test-092c5e26.sh +@@ -24,7 +24,7 @@ fi + + unset LD_LIBRARY_PATH + +-env PROOT_FORCE_FOREIGN_BINARY=1 PATH=/tmp:/bin:/usr/bin ${PROOT} -r ${ROOTFS} -q echo ${TMP} | grep "^-U LD_LIBRARY_PATH ${EXTRA}-0 /bin/argv0 /bin/argv0 ${TMP_ABS}$" ++env PROOT_FORCE_FOREIGN_BINARY=1 PATH=/tmp:/bin:/usr/bin:$(dirname $(which echo)) ${PROOT} -r ${ROOTFS} -q echo ${TMP} | grep "^-U LD_LIBRARY_PATH ${EXTRA}-0 /bin/argv0 /bin/argv0 ${TMP_ABS}$" + env PROOT_FORCE_FOREIGN_BINARY=1 ${PROOT} -r ${ROOTFS} -q echo ${TMP_ABS} | grep "^-U LD_LIBRARY_PATH ${EXTRA}-0 /bin/argv0 /bin/argv0 ${TMP_ABS}$" + + cat > ${ROOTFS}/${TMP_ABS} < Date: Fri, 12 May 2017 00:15:32 +0530 Subject: [PATCH 300/386] gnu: emacs-smartparens: Update to 1.10.1. * gnu/packages/emacs.scm (emacs-smartparens): Update to 1.10.1. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 41fc240e19..6e095caadd 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2584,7 +2584,7 @@ dark background.") (define-public emacs-smartparens (package (name "emacs-smartparens") - (version "1.9.0") + (version "1.10.1") (source (origin (method url-fetch) (uri (string-append @@ -2593,7 +2593,7 @@ dark background.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "12065r7h1s9v8lnq5mk3654dkw4cq60ky8aniqq5n2ivv6qd2d4q")))) + "1nwsi6fbbxjq3r22r6knmx71la3g0lmwfb95i9q4k138gn0m2l3i")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash))) (home-page "https://github.com/Fuco1/smartparens") From 2d4deb5d2107b2844b1f663fd54702bbd3c8b985 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 11 May 2017 21:30:35 +0200 Subject: [PATCH 301/386] gnu: lvm2: Fix static build after 62ec02bf21. Fixes . * gnu/packages/patches/lvm2-static-link.patch: Link with -lm. --- gnu/packages/patches/lvm2-static-link.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/patches/lvm2-static-link.patch b/gnu/packages/patches/lvm2-static-link.patch index b4b1dd92e1..6adf6891bb 100644 --- a/gnu/packages/patches/lvm2-static-link.patch +++ b/gnu/packages/patches/lvm2-static-link.patch @@ -1,5 +1,5 @@ Fix static linking of 'lvm.static', which indirectly depend on libpthread -via libdevmapper.a. +and libm via libdevmapper.a. --- LVM2.2.02.166/tools/Makefile.in 2016-11-22 21:31:15.521045149 +0100 +++ LVM2.2.02.166/tools/Makefile.in 2016-11-22 21:31:24.085082767 +0100 @@ -8,7 +8,7 @@ via libdevmapper.a. lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \ - $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) -+ $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) $(PTHREAD_LIBS) ++ $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) $(PTHREAD_LIBS) $(M_LIBS) liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o cat $(top_builddir)/lib/liblvm-internal.a > $@ From 047160f2f1620d33b8de362cbbd6ee0bb52d93c0 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 12:14:06 +0200 Subject: [PATCH 302/386] gnu: python-pytest-runner: Update to 2.11.1. * gnu/packages/python.scm (python-pytest-runner) (python2-pytest-runner): Update to 2.11.1. --- 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 8c14e951b5..2e6af1cfec 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1880,14 +1880,14 @@ supports coverage of subprocesses.") (define-public python-pytest-runner (package (name "python-pytest-runner") - (version "2.6.2") + (version "2.11.1") (source (origin (method url-fetch) (uri (pypi-uri "pytest-runner" version)) (sha256 (base32 - "1nwcqx0l3fv52kv8526wy8ypzghbq96c96di318d98d3wh7a8xg7")))) + "1cw978kqqcq916b9gfns1qjqvg33c5ail5jhw9054dsynkm32flq")))) (build-system python-build-system) (arguments `(#:phases From 59a972885c831ad0f6043a7d000ff40b28f690a8 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 21:20:09 +0200 Subject: [PATCH 303/386] gnu: Add python-pytest-warnings. * gnu/packages/python.scm (python-pytest-warnings, python2-pytest-warnings): New variables. --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2e6af1cfec..6228f643ca 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14141,3 +14141,27 @@ for Flask.") (define-public python2-mwclient (package-with-python2 python-mwclient)) + +(define-public python-pytest-warnings + (package + (name "python-pytest-warnings") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-warnings" version)) + (sha256 + (base32 + "0gf2dpahpl5igb7jh1sr9acj3z3gp7zahqdqb69nk6wx01c8kc1g")))) + (build-system python-build-system) + (propagated-inputs + `(("pytest" ,python-pytest-3.0))) + (home-page "https://github.com/fschulze/pytest-warnings") + (synopsis "Pytest plugin to list Python warnings in pytest report") + (description + "Python-pytest-warnings is a pytest plugin to list Python warnings in +pytest report.") + (license license:expat))) + +(define-public python2-pytest-warnings + (package-with-python2 python-pytest-warnings)) From 2d6e56baa78345ea90bfee9f75e311f13e397e6e Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 22:14:02 +0200 Subject: [PATCH 304/386] gnu: Add python-pytest-catchlog. * gnu/packages/python.scm (python-pytest-catchlog, python2-pytest-catchlog): New variables. --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6228f643ca..2ddc25d232 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14165,3 +14165,29 @@ pytest report.") (define-public python2-pytest-warnings (package-with-python2 python-pytest-warnings)) + +(define-public python-pytest-catchlog + (package + (name "python-pytest-catchlog") + (version "1.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-catchlog" version ".zip")) + (sha256 + (base32 + "1w7wxh27sbqwm4jgwrjr9c2gy384aca5jzw9c0wzhl0pmk2mvqab")))) + (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) + (propagated-inputs + `(("pytest" ,python-pytest-3.0))) + (home-page "https://github.com/eisensheng/pytest-catchlog") + (synopsis "Pytest plugin to catch log messages") + (description + "Python-pytest-catchlog is a pytest plugin to catch log messages. This is +a fork of pytest-capturelog.") + (license license:expat))) + +(define-public python2-pytest-catchlog + (package-with-python2 python-pytest-catchlog)) From 75805449cfbcf41c530a4faaa7d8d69933aa6b40 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 12:31:55 +0200 Subject: [PATCH 305/386] gnu: Add python-utils. * gnu/packages/python.scm (python-utils, python2-utils): New variables. --- gnu/packages/python.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2ddc25d232..a2560916d7 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14191,3 +14191,28 @@ a fork of pytest-capturelog.") (define-public python2-pytest-catchlog (package-with-python2 python-pytest-catchlog)) + +(define-public python-utils + (package + (name "python-utils") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "python-utils" version)) + (sha256 + (base32 + "1mcsy6q5am4ya72rgkpb6kax6vv7c93cfkkas89xnpa4sj9zf28p")))) + (build-system python-build-system) + (native-inputs + `(("pytest-runner" ,python-pytest-runner) + ("pytest" ,python-pytest) + ("six" ,python-six))) + (home-page "https://github.com/WoLpH/python-utils") + (synopsis "Convenient utilities not included with the standard Python install") + (description + "Python Utils is a collection of small Python functions and classes which +make common patterns shorter and easier.") + (license license:bsd-2))) + +(define-public python2-utils + (package-with-python2 python-utils)) From 709a5a9365ac6115d9f8ddd29502f78f70649497 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 13:19:25 +0200 Subject: [PATCH 306/386] gnu: Add python-webassets. * gnu/packages/python.scm (python-webassets, python2-webassets): New variables. --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a2560916d7..6ee3163c6f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14216,3 +14216,27 @@ make common patterns shorter and easier.") (define-public python2-utils (package-with-python2 python-utils)) + +(define-public python-webassets + (package + (name "python-webassets") + (version "0.12.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "webassets" version)) + (sha256 + (base32 + "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7")))) + (build-system python-build-system) + (native-inputs + `(("python-jinja2" ,python-jinja2) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-pytest" ,python-pytest))) + (home-page "https://github.com/miracle2k/webassets") + (synopsis "Media asset management") + (description "Merges, minifies and compresses Javascript and CSS files, +supporting a variety of different filters, including YUI, jsmin, jspacker or +CSS tidy. Also supports URL rewriting in CSS files.") + (license license:bsd-2))) From 4c066b727c4765a066213a7f1399629e89119721 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 13:22:46 +0200 Subject: [PATCH 307/386] gnu: Add python-sphinx-me. * gnu/packages/python.scm (python-sphinx-me, python2-sphinx-me): New variables. --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6ee3163c6f..e3402f0803 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14240,3 +14240,27 @@ make common patterns shorter and easier.") supporting a variety of different filters, including YUI, jsmin, jspacker or CSS tidy. Also supports URL rewriting in CSS files.") (license license:bsd-2))) + +(define-public python-sphinx-me + (package + (name "python-sphinx-me") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sphinx-me" version)) + (sha256 + (base32 + "06jzgp213zihnvpcy2y5jy3ykid3apc2ncp2pg6a2g05lhiziglq")))) + (build-system python-build-system) + (home-page "https://github.com/stephenmcd/sphinx-me") + (synopsis "Create a Sphinx documentation shell") + (description + "Create a Sphinx documentation shell for your project and include the +README file as the documentation index. It handles extracting the required +meta data such as the project name, author and version from your project for +use in your Sphinx docs.") + (license license:bsd-2))) + +(define-public python2-sphinx-me + (package-with-python2 python-sphinx-me)) From eed206cb8a0d8f610c89b1fc6e3bacf24e91ebe1 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 13:25:01 +0200 Subject: [PATCH 308/386] gnu: python-rq: Update to 0.7.1. * gnu/packages/python.scm (python-rq, python2-rq): Update to 0.7.1. [source]: Use pypi-uri. --- gnu/packages/python.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e3402f0803..b329d972a4 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3376,15 +3376,13 @@ mining and data analysis.") (define-public python-rq (package (name "python-rq") - (version "0.5.2") + (version "0.7.1") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/r/rq/rq-" - version ".tar.gz")) + (uri (pypi-uri "rq" version)) (sha256 - (base32 "0b0z5hn8wkfg300hx7816csgv3bcfamlr29fi3yzgqmpqxwj3fix")))) + (base32 "0gaq5pnh0zy46r8jvygi0ifbvz3pq6i7xla78ijcgjw0x77qzsdh")))) (build-system python-build-system) (propagated-inputs `(("python-click" ,python-click) From 03ded2fd3be2b6fbff13df58643edf29601badf4 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 13:27:33 +0200 Subject: [PATCH 309/386] gnu: Add python-cssmin. * gnu/packages/python.scm (python-cssmin, python2-cssmin): New variables. --- gnu/packages/python.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b329d972a4..13eeefed1e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14262,3 +14262,23 @@ use in your Sphinx docs.") (define-public python2-sphinx-me (package-with-python2 python-sphinx-me)) + +(define-public python-cssmin + (package + (name "python-cssmin") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cssmin" version)) + (sha256 + (base32 + "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0")))) + (build-system python-build-system) + (home-page "https://github.com/zacharyvoase/cssmin") + (synopsis "Python port of the YUI CSS Compressor") + (description "Python port of the YUI CSS Compressor.") + (license (list license:expat license:bsd-3)))) + +(define-public python2-cssmin + (package-with-python2 python-cssmin)) From 186d4f8d08b8c25ceddcc1caf03a9cf1323110db Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 13:34:24 +0200 Subject: [PATCH 310/386] gnu: Add python-diff-match-patch. * gnu/packages/python.scm (python-diff-match-patch, python2-diff-match-patch): New variables. --- gnu/packages/python.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 13eeefed1e..d6470dbe92 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14282,3 +14282,24 @@ use in your Sphinx docs.") (define-public python2-cssmin (package-with-python2 python-cssmin)) + +(define-public python-diff-match-patch + (package + (name "python-diff-match-patch") + (version "20121119") + (source + (origin + (method url-fetch) + (uri (pypi-uri "diff-match-patch" version)) + (sha256 + (base32 + "0k1f3v8nbidcmmrk65m7h8v41jqi37653za9fcs96y7jzc8mdflx")))) + (build-system python-build-system) + (home-page "https://code.google.com/p/google-diff-match-patch") + (synopsis "Synchronize plain text") + (description "Diff Match and Patch libraries offer robust algorithms to +perform the operations required for synchronizing plain text.") + (license license:asl2.0))) + +(define-public python2-diff-match-patch + (package-with-python2 python-diff-match-patch)) From d15a47911adde0a2f684d30df594d4b0ace8367b Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 13:39:13 +0200 Subject: [PATCH 311/386] gnu: Add python-dirsync. * gnu/packages/python.scm (python-dirsync, python2-dirsync): New variables. --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d6470dbe92..817e058f99 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14303,3 +14303,27 @@ perform the operations required for synchronizing plain text.") (define-public python2-diff-match-patch (package-with-python2 python-diff-match-patch)) + +(define-public python-dirsync + (package + (name "python-dirsync") + (version "2.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "dirsync" version ".zip")) + (sha256 + (base32 + "1hcdvmkwd5512zbxpin0k7bx5bkgzy3swjx7d0kj1y45af6r75v2")))) + (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) + (propagated-inputs + `(("six" ,python-six))) + (home-page "https://bitbucket.org/tkhyn/dirsync") + (synopsis "Advanced directory tree synchronisation tool") + (description "Advanced directory tree synchronisation tool.") + (license license:expat))) + +(define-public python2-dirsync + (package-with-python2 python-dirsync)) From 1b16f1ecb19924899cf8d9831f6ebfd57143aec4 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 14:00:09 +0200 Subject: [PATCH 312/386] gnu: Add python-nosexcover. * gnu/packages/python.scm (python-nosexcover, python2-nosexcover): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 817e058f99..2f2da39aac 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14327,3 +14327,30 @@ perform the operations required for synchronizing plain text.") (define-public python2-dirsync (package-with-python2 python-dirsync)) + +(define-public python-nosexcover + (package + (name "python-nosexcover") + (version "1.0.11") + (source (origin + (method url-fetch) + (uri (pypi-uri "nosexcover" version)) + (sha256 + (base32 + "10xqr12qv62k2flxwqhh8cr00cjhn7sfjrm6p35gd1x5bmjkr319")))) + (build-system python-build-system) + (propagated-inputs + `(("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) + (home-page "http://github.com/cmheisel/nose-xcover") + (synopsis "Extends nose.plugins.cover to add Cobertura-style XML reports") + (description "Nose-xcover is a companion to the built-in +@code{nose.plugins.cover}. This plugin will write out an XML coverage report +to a file named coverage.xml. + +It will honor all the options you pass to the Nose coverage plugin, +especially -cover-package.") + (license license:expat))) + +(define-public python2-nosexcover + (package-with-python2 python-nosexcover)) From afdfbb1dca302bbf958f039871da566aaf5947ac Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 14:33:57 +0200 Subject: [PATCH 313/386] gnu: Add python-elasticsearch. * gnu/packages/python.scm (python-elasticsearch, python2-elasticsearch): New variables. --- gnu/packages/python.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2f2da39aac..b30fd1aabc 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14354,3 +14354,35 @@ especially -cover-package.") (define-public python2-nosexcover (package-with-python2 python-nosexcover)) + +(define-public python-elasticsearch + (package + (name "python-elasticsearch") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "elasticsearch" version)) + (sha256 + (base32 + "1sdw1r05cw7ihnmng8ra9v968fj7bq6sji8i1dikymsnkcpgc69g")))) + (build-system python-build-system) + (native-inputs + `(("python-mock" ,python-mock) + ("python-nosexcover" ,python-nosexcover) + ("python-pyaml" ,python-pyaml) + ("python-requests" ,python-requests))) + (propagated-inputs + `(("urllib3" ,python-urllib3))) + (arguments + ;; tests require the test_elasticsearch module but it is not distributed. + `(#:tests? #f)) + (home-page "https://github.com/elastic/elasticsearch-py") + (synopsis "Low-level client for Elasticsearch") + (description "Official low-level client for Elasticsearch. Its goal is to +provide common ground for all Elasticsearch-related code in Python; because of +this it tries to be opinion-free and very extendable.") + (license license:expat))) + +(define-public python2-elasticsearch + (package-with-python2 python-elasticsearch)) From e139c7a742aa40c891bc04b70fdd6c8669c1ea7b Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 14:35:27 +0200 Subject: [PATCH 314/386] gnu: python-dateutil: Update to 2.6.0. * gnu/packages/python.scm (python-dateutil, python2-dateutil): Update to 2.6.0. --- 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 b30fd1aabc..3503eccd92 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1108,14 +1108,14 @@ Python file, so it can be easily copied into your project.") (define-public python-dateutil (package (name "python-dateutil") - (version "2.5.3") + (version "2.6.0") (source (origin (method url-fetch) (uri (pypi-uri "python-dateutil" version)) (sha256 (base32 - "1v9j9fmf8g911yg6k01xa2db6dx3wv73zkk7fncsj7vagjqgs20l")))) + "1lhq0hxjc3cfha101q02ld5ijlpfyjn2w1yh7wvpiy367pgzi8k2")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) From a17ccbbb12eddda9aeb43ec8e004d716c15af4da Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 14:44:38 +0200 Subject: [PATCH 315/386] gnu: Add python-levenshtein. * gnu/packages/python.scm (python-levenshtein, python2-levenshtein): New variables. --- gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3503eccd92..79615862f2 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14386,3 +14386,31 @@ this it tries to be opinion-free and very extendable.") (define-public python2-elasticsearch (package-with-python2 python-elasticsearch)) + +(define-public python-levenshtein + (package + (name "python-levenshtein") + (version "0.12.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-Levenshtein" version)) + (sha256 + (base32 + "1c9ybqcja31nghfcc8xxbbz9h60s9qi12b9hr4jyl69xbvg12fh3")))) + (build-system python-build-system) + (home-page "https://github.com/ztane/python-Levenshtein") + (synopsis "Fast computation of Levenshtein distance and string similarity") + (description + "The Levenshtein Python C extension module contains functions for fast computation of +@enumerate +@item Levenshtein (edit) distance, and edit operations +@item string similarity +@item approximate median strings, and generally string averaging +@item string sequence and set similarity +@end enumerate +It supports both normal and Unicode strings.") + (license license:gpl2+))) + +(define-public python2-levenshtein + (package-with-python2 python-levenshtein)) From 38a370d2bca0502d41186327a5478d542418739e Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 14:47:22 +0200 Subject: [PATCH 316/386] gnu: Add python-scandir. * gnu/packages/python.scm (python-scandir, python2-scandir): New variables. --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 79615862f2..4b87a3b3e1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14414,3 +14414,27 @@ It supports both normal and Unicode strings.") (define-public python2-levenshtein (package-with-python2 python-levenshtein)) + +(define-public python-scandir + (package + (name "python-scandir") + (version "1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "scandir" version)) + (sha256 + (base32 "0yjrgp0mxp3d8bjkq2m1ac2ys8n76wykksvgyjrnil9gr3fx7a5d")))) + (build-system python-build-system) + (home-page "https://github.com/benhoyt/scandir") + (synopsis "Directory iteration function") + (description + "Directory iteration function like os.listdir(), except that instead of +returning a list of bare filenames, it yields DirEntry objects that include +file type and stat information along with the name. Using scandir() increases +the speed of os.walk() by 2-20 times (depending on the platform and file +system) by avoiding unnecessary calls to os.stat() in most cases.") + (license license:bsd-3))) + +(define-public python2-scandir + (package-with-python2 python-scandir)) From 18c2546078896a5e47f7b7a0a2a63a184b424bfe Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 14:52:16 +0200 Subject: [PATCH 317/386] gnu: Add python2-stemming. * gnu/packages/python.scm (python2-stemming): New variable. --- gnu/packages/python.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4b87a3b3e1..c09242cb72 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14438,3 +14438,26 @@ system) by avoiding unnecessary calls to os.stat() in most cases.") (define-public python2-scandir (package-with-python2 python-scandir)) + +(define-public python2-stemming + (package + (name "python2-stemming") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "stemming" version)) + (sha256 + (base32 "0ldwa24gnnxhniv0fhygkpc2mwgd93q10ag8rvzayv6hw418frsr")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (home-page "https://bitbucket.org/mchaput/stemming/overview") + (synopsis "Python implementations of various stemming algorithms") + (description + "Python implementations of the Porter, Porter2, Paice-Husk, and Lovins +stemming algorithms for English. These implementations are straightforward and +efficient, unlike some Python versions of the same algorithms available on the +Web. This package is an extraction of the stemming code included in the Whoosh +search engine.") + (license license:public-domain))) From 54153b85c7d7cc8671f06d973a6791a150063163 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 22:32:33 +0200 Subject: [PATCH 318/386] gnu: Add python-factory-boy. * gnu/packages/python.scm (python-factory-boy, python2-factory-boy): New variables. --- gnu/packages/python.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c09242cb72..3daf5c4298 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14461,3 +14461,35 @@ efficient, unlike some Python versions of the same algorithms available on the Web. This package is an extraction of the stemming code included in the Whoosh search engine.") (license license:public-domain))) + +(define-public python-factory-boy + (package + (name "python-factory-boy") + (version "2.8.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "factory_boy" version)) + (sha256 + (base32 "1fvin6san5xsjh2c4y18caj2lnmwxlylyqm8mh1yc6rp38wlwr56")))) + (build-system python-build-system) + (arguments + ;; Tests are not included in the tarball. + `(#:tests? #f)) + (propagated-inputs + `(("faker" ,python-faker))) + (home-page "https://github.com/benhoyt/scandir") + (synopsis "Versatile test fixtures replacement") + (description + "Factory_boy is a fixtures replacement based on thoughtbot’s factory_girl. + +As a fixtures replacement tool, it aims to replace static, hard to maintain +fixtures with easy-to-use factories for complex object. + +Instead of building an exhaustive test setup with every possible combination +of corner cases, factory_boy allows you to use objects customized for the +current test, while only declaring the test-specific fields") + (license license:expat))) + +(define-public python2-factory-boy + (package-with-python2 python-factory-boy)) From 5f25fd69df4f9f2a507fb1d122d56a1f674b852f Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 17:19:27 +0200 Subject: [PATCH 319/386] gnu: Add python-translate-toolkit. * gnu/packages/python.scm (python-translate-toolkit, python2-translate-toolkit): New variables. --- gnu/packages/python.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3daf5c4298..916b00565d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14493,3 +14493,43 @@ current test, while only declaring the test-specific fields") (define-public python2-factory-boy (package-with-python2 python-factory-boy)) + +(define-public python-translate-toolkit + (package + (name "python-translate-toolkit") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "translate-toolkit" version ".tar.bz2")) + (sha256 + (base32 "1vlkwrg83vb17jc36pmwh2b7jphwf390lz0jw8hakcg16qhwypvq")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-sphinx" ,python-sphinx))) + (propagated-inputs + `(("python-babel" ,python-babel) + ("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-chardet" ,python-chardet) + ("python-diff-match-patch" ,python-diff-match-patch) + ("python-levenshtein" ,python-levenshtein) + ("python-lxml" ,python-lxml) + ("python-six" ,python-six) + ("python-vobject" ,python-vobject) + ("python-pyyaml" ,python-pyyaml))) + (arguments + ;; TODO: tests are not run, because they end with + ;; TypeError: parse() missing 2 required positional arguments: 'tree' and + ;; 'parse_funcs' + ;; during test setup. + `(#:tests? #f)) + (home-page "http://toolkit.translatehouse.org") + (synopsis "Tools and API for translation and localization engineering") + (description + "Tools and API for translation and localization engineering. It contains +several utilities, as well as an API for building localization tools.") + (license license:gpl2+))) + +(define-public python2-translate-toolkit + (package-with-python2 python-translate-toolkit)) From 3b08d1a6126e0d07fc4ee35220693491402c5cf9 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 17:24:16 +0200 Subject: [PATCH 320/386] gnu: Add python-mysqlclient. * gnu/packages/python.scm (python-mysqlclient, python2-mysqlclient): New variables. --- gnu/packages/python.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 916b00565d..503e653644 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14533,3 +14533,38 @@ several utilities, as well as an API for building localization tools.") (define-public python2-translate-toolkit (package-with-python2 python-translate-toolkit)) + +(define-public python-mysqlclient + (package + (name "python-mysqlclient") + (version "1.3.10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "mysqlclient" version)) + (sha256 + (base32 + "0qkj570x4rbsblji6frvsvp2v1ap32dqzj1lq62zp9515ffsyaj5")))) + (build-system python-build-system) + (native-inputs + `(("mariadb" ,mariadb) + ("nose" ,python-nose) + ("mock" ,python-mock) + ("py.test" ,python-pytest))) + (inputs + `(("mysql" ,mysql) + ("libz" ,zlib) + ("openssl" ,openssl))) + (home-page "https://github.com/PyMySQL/mysqlclient-python") + (synopsis "MySQLdb is an interface to the popular MySQL database server for Python") + (description "MySQLdb is an interface to the popular MySQL database server +for Python. The design goals are: +@enumerate +@item Compliance with Python database API version 2.0 [PEP-0249], +@item Thread-safety, +@item Thread-friendliness (threads will not block each other). +@end enumerate") + (license license:gpl2))) + +(define-public python2-mysqlclient + (package-with-python2 python-mysqlclient)) From 01c64cb83fa98d7d1c33100a4bff37884599f274 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 18:16:07 +0200 Subject: [PATCH 321/386] gnu: Add python-django-assets. * gnu/packages/django.scm (python-django-assets, python2-django-assets): New variables. --- gnu/packages/django.scm | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 2038473f52..dad777bdf7 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -245,3 +245,49 @@ templatetags and a full test suite.") (define-public python2-django-gravatar2 (package-with-python2 python-django-gravatar2)) + +(define-public python-django-assets + (package + (name "python-django-assets") + (version "0.12") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-assets" version)) + (sha256 + (base32 + "0y0007fvkn1rdlj2g0y6k1cnkx53kxab3g8i85i0rd58k335p365")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda _ + (begin + ;; https://github.com/miracle2k/django-assets/issues/87 + (substitute* "tests/__init__.py" + (("settings.configure.*") + (string-append + "settings.configure(\n" + "INSTALLED_APPS=['django_assets', " + "'django.contrib.staticfiles'],\n" + "TEMPLATES=[{'BACKEND': " + "'django.template.backends.django.DjangoTemplates'}],\n" + ")\n"))) + ;; These tests fail + (substitute* "tests/test_django.py" + (("TestLoader") "NoTestLoader")))))))) + (native-inputs + `(("python-nose" ,python-nose))) + (propagated-inputs + `(("python-django" ,python-django) + ("python-webassets" ,python-webassets))) + (home-page "https://github.com/miracle2k/django-assets") + (synopsis "Asset management for Django") + (description + "Asset management for Django, to compress and merge CSS and Javascript +files. Integrates the webassets library with Django, adding support for +merging, minifying and compiling CSS and Javascript files.") + (license license:bsd-2))) + +(define-public python2-django-assets + (package-with-python2 python-django-assets)) From 6c17e963b0cd4095912a90b73b4bc19cb35f2bf2 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 18:18:30 +0200 Subject: [PATCH 322/386] gnu: Add python-django-jsonfield. * gnu/packages/django.scm (python-django-jsonfield, python2-django-jsonfield): New variables. --- gnu/packages/django.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index dad777bdf7..3a4116ba81 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -291,3 +291,34 @@ merging, minifying and compiling CSS and Javascript files.") (define-public python2-django-assets (package-with-python2 python-django-assets)) + +(define-public python-django-jsonfield + (package + (name "python-django-jsonfield") + (version "1.0.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "jsonfield" version)) + (sha256 + (base32 + "19x4lak0hg9c20r7mvf27w7i8r6i4sg2g0ypmlmp2665fnk76zvy")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda _ + (substitute* "jsonfield/tests.py" + (("django.forms.util") "django.forms.utils"))))))) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/bradjasper/django-jsonfield") + (synopsis "Store validated JSON in your model") + (description + "Django-jsonfield is a reusable Django field that allows you to store +validated JSON in your model. It silently takes care of serialization. To +use, simply add the field to one of your models.") + (license license:expat))) + +(define-public python2-django-jsonfield + (package-with-python2 python-django-jsonfield)) From a326384be44edf1bf1b081f21a7db2b904859f41 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 18:28:37 +0200 Subject: [PATCH 323/386] gnu: Add python-dj-database-url. * gnu/packages/django.scm (python-dj-database-url, python2-dj-database-url): New variables. --- gnu/packages/django.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 3a4116ba81..3477895d3d 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -322,3 +322,28 @@ use, simply add the field to one of your models.") (define-public python2-django-jsonfield (package-with-python2 python-django-jsonfield)) + +(define-public python-dj-database-url + (package + (name "python-dj-database-url") + (version "0.4.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "dj-database-url" version)) + (sha256 + (base32 + "024zbkc5rli4hia9lz9g8kf1zxhb2gwawj5abf67i7gf8n22v0x6")))) + (build-system python-build-system) + (home-page "https://github.com/kennethreitz/dj-database-url") + (synopsis "Use Database URLs in your Django Application") + (description + "This simple Django utility allows you to utilize the 12factor inspired +DATABASE_URL environment variable to configure your Django application. + +The dj_database_url.config method returns a Django database connection +dictionary, populated with all the data specified in your URL. There is also a +conn_max_age argument to easily enable Django’s connection pool.") + (license license:bsd-2))) + +(define-public python2-dj-database-url + (package-with-python2 python-dj-database-url)) From afbfe564977300133e3a48bdedb4cb37a57121d8 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 23 Apr 2017 13:31:08 +0200 Subject: [PATCH 324/386] gnu: Add python-django-bulk-update. * gnu/packages/django.scm (python-django-bulk-update, python2-django-bulk-update): New variables. --- gnu/packages/django.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 3477895d3d..6190c85330 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -347,3 +347,33 @@ conn_max_age argument to easily enable Django’s connection pool.") (define-public python2-dj-database-url (package-with-python2 python-dj-database-url)) + +(define-public python-django-bulk-update + (package + (name "python-django-bulk-update") + (version "1.1.10") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-bulk-update" version)) + (sha256 + (base32 + "0mbng9m7swfc0dnidipbzlxfhlfjrv755dlnha5s4m9mgdxb1fhc")))) + (build-system python-build-system) + (arguments + ;; tests don't support django 1.10, but the module seems to work. + `(#:tests? #f)) + (native-inputs + `(("six" ,python-six) + ("jsonfield" ,python-django-jsonfield) + ("python-dj-database-url" ,python-dj-database-url))) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/aykut/django-bulk-update") + (synopsis "Simple bulk update over Django ORM or with helper function") + (description + "Simple bulk update over Django ORM or with helper function. This +project aims to bulk update given objects using one query over Django ORM.") + (license license:expat))) + +(define-public python2-django-bulk-update + (package-with-python2 python-django-bulk-update)) From 03a34e87b8a1e808792c93f3af52e32479353838 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 18:51:24 +0200 Subject: [PATCH 325/386] gnu: Add python-django-contact-form. * gnu/packages/django.scm (python-django-contact-form, python2-django-contact-form): New variables. --- gnu/packages/django.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 6190c85330..c1deac89b9 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -377,3 +377,38 @@ project aims to bulk update given objects using one query over Django ORM.") (define-public python2-django-bulk-update (package-with-python2 python-django-bulk-update)) + +(define-public python-django-contact-form + (package + (name "python-django-contact-form") + (version "1.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-contact-form" version)) + (sha256 + (base32 + "0az590y56k5ahv4sixrkn54d3a8ig2q2z9pl6s3m4f533mx2gj17")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; the next version will need "make test" + (and (zero? (system* "flake8" "contact_form")) + (zero? (system* "coverage" "run" "contact_form/runtests.py")) + (zero? (system* "coverage" "report" "-m" "--fail-under" "0")))))))) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-flake8" ,python-flake8))) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/ubernostrum/django-contact-form") + (synopsis "Contact form for Django") + (description + "This application provides simple, extensible contact-form functionality +for Django sites.") + (license license:bsd-3))) + +(define-public python2-django-contact-form + (package-with-python2 python-django-contact-form)) From 659692c0c31bd91abbfe778e798c481b24292900 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 19:01:33 +0200 Subject: [PATCH 326/386] gnu: Add python-django-contrib-comments. * gnu/packages/django.scm (python-django-contrib-comments, python2-django-contrib-comments): New variables. --- gnu/packages/django.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index c1deac89b9..260a689fca 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -412,3 +412,28 @@ for Django sites.") (define-public python2-django-contact-form (package-with-python2 python-django-contact-form)) + +(define-public python-django-contrib-comments + (package + (name "python-django-contrib-comments") + (version "1.8.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-contrib-comments" version)) + (sha256 + (base32 + "0bxsgw8jrkhg6r5s0z6ksfi4w8yknaqb1s9acmxd9pm3pnsnp5kx")))) + (build-system python-build-system) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/django/django-contrib-comments") + (synopsis "Comments framework") + (description + "Django used to include a comments framework; since Django 1.6 it's been +separated to a separate project. This is that project. This framework can be +used to attach comments to any model, so you can use it for comments on blog +entries, photos, book chapters, or anything else.") + (license license:bsd-3))) + +(define-public python2-django-contrib-comments + (package-with-python2 python-django-contrib-comments)) From 932462536bfe9947eee205514ee52f1b05165f2b Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 19:08:11 +0200 Subject: [PATCH 327/386] gnu: Add python-django-overextends. * gnu/packages/django.scm (python-django-overextends, python2-django-overextends): New variables. --- gnu/packages/django.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 260a689fca..129aa25806 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -437,3 +437,37 @@ entries, photos, book chapters, or anything else.") (define-public python2-django-contrib-comments (package-with-python2 python-django-contrib-comments)) + +(define-public python-django-overextends + (package + (name "python-django-overextends") + (version "0.4.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-overextends" version)) + (sha256 + (base32 + "0qc2pcf3i56pmfxh2jw7k3pgljd8xzficmkl2541n7bkcbngqfzm")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "./test_project/manage.py" "test"))))))) + (propagated-inputs + `(("python-django" ,python-django))) + (native-inputs + `(("sphinx-me" ,python-sphinx-me))) + (home-page "https://github.com/stephenmcd/django-overextends") + (synopsis "Circular template inheritance") + (description + "A Django reusable app providing the overextends template tag, a drop-in +replacement for Django's extends tag, which allows you to use circular template +inheritance. The primary use-case for overextends is to simultaneously +override and extend templates from other reusable apps, in your own Django +project.") + (license license:bsd-2))) + +(define-public python2-django-overextends + (package-with-python2 python-django-overextends)) From c009e934512acf82aa2e3a7bda7765039afe4d9a Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 19:11:48 +0200 Subject: [PATCH 328/386] gnu: Add python-hiredis. * gnu/packages/python.scm (python-hiredis, python2-hiredis): New variables. --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 503e653644..bee94b42e2 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14568,3 +14568,27 @@ for Python. The design goals are: (define-public python2-mysqlclient (package-with-python2 python-mysqlclient)) + +(define-public python-hiredis + (package + (name "python-hiredis") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "hiredis" version)) + (sha256 + (base32 + "1dfm2k9l9zar9nw9fwmm74zrgraxdxs04vx9li56fjcf289qx5fa")))) + (build-system python-build-system) + (arguments + ;; no tests + `(#:tests? #f)) + (home-page "https://github.com/redis/hiredis-py") + (synopsis "Python extension that wraps protocol parsing code in hiredis") + (description "Python-hiredis is a python extension that wraps protocol +parsing code in hiredis. It primarily speeds up parsing of multi bulk replies.") + (license license:bsd-3))) + +(define-public python2-hiredis + (package-with-python2 python-hiredis)) From 91154d4a40321dc1fa3cdd53cad407af539261be Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 23 Apr 2017 16:37:02 +0200 Subject: [PATCH 329/386] gnu: Add python-fakeredis. * gnu/packages/python.scm (python-fakeredis, python2-fakeredis): New variables. --- gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index bee94b42e2..4082632679 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14592,3 +14592,31 @@ parsing code in hiredis. It primarily speeds up parsing of multi bulk replies." (define-public python2-hiredis (package-with-python2 python-hiredis)) + +(define-public python-fakeredis + (package + (name "python-fakeredis") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fakeredis" version)) + (sha256 + (base32 + "0zncahj3byyasyfx9i7k991ph0n0lq8v3a21pqri5qxn9564bk9r")))) + (build-system python-build-system) + (arguments + ;; no tests + `(#:tests? #f)) + (home-page "https://github.com/jamesls/fakeredis") + (synopsis "Fake implementation of redis API for testing purposes") + (description "Fakeredis is a pure python implementation of the redis-py +python client that simulates talking to a redis server. This was created for a +single purpose: to write unittests. Setting up redis is not hard, but many time + you want to write unittests that do not talk to an external server (such as +redis). This module now allows tests to simply use this module as a reasonable +substitute for redis.") + (license license:bsd-3))) + +(define-public python2-fakeredis + (package-with-python2 python-fakeredis)) From b939953b9a415d450dd8d3906114e67bf7ecad5c Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 23 Apr 2017 16:54:53 +0200 Subject: [PATCH 330/386] gnu: Add python-django-redis. * gnu/packages/django.scm (python-django-redis, python2-django-redis): New variables. --- gnu/packages/django.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 129aa25806..eeccfcc2fa 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -25,6 +25,7 @@ #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages databases) #:use-module (gnu packages python)) (define-public python-django @@ -471,3 +472,40 @@ project.") (define-public python2-django-overextends (package-with-python2 python-django-overextends)) + +(define-public python-django-redis + (package + (name "python-django-redis") + (version "4.7.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-redis" version)) + (sha256 + (base32 + "0yyyxv8n9l9dhs893jsqwg2cxqkkc79g719n9dzzzqgkzialv1c1")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (and (zero? (system* "redis-server" "--daemonize" "yes")) + (with-directory-excursion "tests" + (zero? (system* "python" "runtests.py"))))))))) + (native-inputs + `(("python-fakeredis" ,python-fakeredis) + ("python-hiredis" ,python-hiredis) + ("python-mock" ,python-mock) + ("python-msgpack" ,python-msgpack) + ("redis" ,redis))) + (propagated-inputs + `(("python-django" ,python-django) + ("python-redis" ,python-redis))) + (home-page "https://github.com/niwibe/django-redis") + (synopsis "Full featured redis cache backend for Django") + (description + "Full featured redis cache backend for Django.") + (license license:bsd-3))) + +(define-public python2-django-redis + (package-with-python2 python-django-redis)) From cb9b6095dc656948fb7d0391d7c3936e38074b95 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 19:14:03 +0200 Subject: [PATCH 331/386] gnu: Add python-django-rq. * gnu/packages/django.scm (python-django-rq, python2-django-rq): New variables. --- gnu/packages/django.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index eeccfcc2fa..de2d7db88b 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -509,3 +509,39 @@ project.") (define-public python2-django-redis (package-with-python2 python-django-redis)) + +(define-public python-django-rq + (package + (name "python-django-rq") + (version "0.9.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-rq" version)) + (sha256 + (base32 + "04v8ilfdp10bk31fxgh4cn083gsn5m06342cnpm5d10nd8hc0vky")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (and (zero? (system* "redis-server" "--daemonize" "yes")) + (zero? (system* "django-admin.py" "test" "django_rq" + "--settings=django_rq.test_settings" + "--pythonpath=")))))))) + (native-inputs + `(("redis" ,redis))) + (propagated-inputs + `(("python-django" ,python-django) + ("python-rq" ,python-rq))) + (home-page "https://github.com/ui/django-rq") + (synopsis "Django integration with RQ") + (description + "Django integration with RQ, a Redis based Python queuing library. +Django-RQ is a simple app that allows you to configure your queues in django's +settings.py and easily use them in your project.") + (license license:expat))) + +(define-public python2-django-rq + (package-with-python2 python-django-rq)) From b0395dd68e0bfca3a1f672d29128b8dc520e203e Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 19:18:02 +0200 Subject: [PATCH 332/386] gnu: Add python-django-sortedm2m. * gnu/packages/django.scm (python-django-sortedm2m, python2-django-sortedm2m): New variables. --- gnu/packages/django.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index de2d7db88b..bf78cd0784 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -545,3 +545,30 @@ settings.py and easily use them in your project.") (define-public python2-django-rq (package-with-python2 python-django-rq)) + +(define-public python-django-sortedm2m + (package + (name "python-django-sortedm2m") + (version "1.3.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-sortedm2m" version)) + (sha256 + (base32 + "0axf765i7b3c2s83nlph47asi8s071dhq8l7y382v1pw785s22vi")))) + (build-system python-build-system) + (arguments + ;; no tests. + `(#:tests? #f)) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/gregmuellegger/django-sortedm2m") + (synopsis "Drop-in replacement for django's own ManyToManyField") + (description + "Sortedm2m is a drop-in replacement for django's own ManyToManyField. +The provided SortedManyToManyField behaves like the original one but remembers +the order of added relations.") + (license license:bsd-3))) + +(define-public python2-django-sortedm2m + (package-with-python2 python-django-sortedm2m)) From 9f4a3059615350aee66f2fd19887505b1a50fe78 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 19:18:46 +0200 Subject: [PATCH 333/386] gnu: Add python-django-appconf. * gnu/packages/django.scm (python-django-appconf, python2-django-appconf): New variables. --- gnu/packages/django.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index bf78cd0784..0a6a7e4256 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -572,3 +572,29 @@ the order of added relations.") (define-public python2-django-sortedm2m (package-with-python2 python-django-sortedm2m)) + +(define-public python-django-appconf + (package + (name "python-django-appconf") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-appconf" version)) + (sha256 + (base32 + "0qdjdx35g66xjsc50v0c5h3kg6njs8df33mbjx6j4k1vd3m9lkba")))) + (build-system python-build-system) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/django-compressor/django-appconf") + (synopsis "Handle configuration defaults of packaged Django apps") + (description + "This app precedes Django's own AppConfig classes that act as \"objects +[to] store metadata for an application\" inside Django's app loading mechanism. +In other words, they solve a related but different use case than +django-appconf and can't easily be used as a replacement. The similarity in +name is purely coincidental.") + (license license:bsd-3))) + +(define-public python2-django-appconf + (package-with-python2 python-django-appconf)) From f77d82f105b6c2e560e2ee3e5049a5d9a314f0c4 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 19:19:19 +0200 Subject: [PATCH 334/386] gnu: Add python-django-statici18n. * gnu/packages/django.scm (python-django-statici18n, python2-django-statici18n): New variables. --- gnu/packages/django.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 0a6a7e4256..fe93573030 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -598,3 +598,27 @@ name is purely coincidental.") (define-public python2-django-appconf (package-with-python2 python-django-appconf)) + +(define-public python-django-statici18n + (package + (name "python-django-statici18n") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-statici18n" version)) + (sha256 + (base32 + "0alcf4g1nv69njhq5k3qw4mfl2k6dc18bik5nk0g1mnp3m8zyz7k")))) + (build-system python-build-system) + (propagated-inputs + `(("python-django" ,python-django) + ("django-appconf" ,python-django-appconf))) + (home-page "https://github.com/zyegfryed/django-statici18n") + (synopsis "Generate JavaScript catalog to static files") + (description + "A Django app that provides helper for generating JavaScript catalog to +static files.") + (license license:bsd-3))) + +(define-public python2-django-statici18n + (package-with-python2 python-django-statici18n)) From 919d4ad079790894a4fc010ff6c0c88c16b3e6d3 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 21:46:03 +0200 Subject: [PATCH 335/386] gnu: python-pytest-django: Update to 3.1.2. * gnu/packages/django.scm (python-pytest-django, python2-pytest-django): Update to 3.1.2. --- gnu/packages/django.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index fe93573030..523506010d 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -129,13 +129,13 @@ with arguments to the field constructor.") (define-public python-pytest-django (package (name "python-pytest-django") - (version "2.9.1") + (version "3.1.2") (source (origin (method url-fetch) (uri (pypi-uri "pytest-django" version)) (sha256 (base32 - "1mmc7zsz3dlhs6sx4sppkj1vgshabi362r1a8b8wpj1qfximpqcb")))) + "02932m2sr8x22m4az8syr8g835g4ak77varrnw71n6xakmdcr303")))) (build-system python-build-system) (arguments `(#:tests? #f ; FIXME: How to run tests? @@ -144,7 +144,7 @@ with arguments to the field constructor.") (add-after 'unpack 'patch-setuppy (lambda _ (substitute* "setup.py" - (("setuptools_scm==1.8.0") "setuptools_scm")) + (("setuptools_scm==1.11.1") "setuptools_scm")) #t))))) (native-inputs `(("python-django" ,python-django) From f048db5aac1c75470c823fd9b504451b14a04680 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 21:09:47 +0200 Subject: [PATCH 336/386] gnu: Fix python2-django-allauth. * gnu/packages/python.scm (python-openid)[properties]: Use python2-variant. --- gnu/packages/python.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4082632679..dc7adf24ed 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5571,6 +5571,7 @@ features useful for text console applications.") (replace 'check (lambda _ (zero? (system* "./admin/runtests"))))))) + (properties `((python2-variant . ,(delay python2-openid)))) (propagated-inputs `(("python-defusedxml" ,python-defusedxml))) (native-inputs From 2601171ee0e4eea252bf4a2160e25ef455092b69 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 22 Apr 2017 23:11:07 +0200 Subject: [PATCH 337/386] gnu: Add pootle. * gnu/packages/django.scm (pootle): New variable. --- gnu/packages/django.scm | 72 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 523506010d..356586e1bc 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -622,3 +622,75 @@ static files.") (define-public python2-django-statici18n (package-with-python2 python-django-statici18n)) + +(define-public pootle + (package + (name "pootle") + (version "2.8.0rc5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Pootle" version ".tar.bz2")) + (sha256 + (base32 + "0m6qcpkcy22dk3ad5y2k8851kqg2w6vrkywgy4vabwbacd7r1mvn")))) + (build-system python-build-system) + (arguments + `(; pootle supports only python2. + #:python ,python-2 + ;; tests are not run and fail with "pytest_pootle/data/po/.tmp: No such + ;; file or directory". If we create this directory, + ;; pytest_pootle/data/po/terminology.po is missing. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-requirements + (lambda _ + (substitute* "Pootle.egg-info/requires.txt" + (("1.7.3") "1.8.0") + (("2.0.0") "2.1.0")) + (substitute* "requirements/tests.txt" + (("==3.0.6") ">=3.0.6")) + (substitute* "requirements/base.txt" + (("1.7.3") "1.8.0") + (("2.0.0") "2.1.0"))))))) + (propagated-inputs + `(("django-allauth" ,python2-django-allauth) + ("django-assets" ,python2-django-assets) + ("django-bulk-update" ,python2-django-bulk-update) + ("django-contact-form" ,python2-django-contact-form) + ("django-contrib-comments" ,python2-django-contrib-comments) + ("django-overextends" ,python2-django-overextends) + ("django-redis" ,python2-django-redis) + ("django-rq" ,python2-django-rq) + ("django-sortedm2m" ,python2-django-sortedm2m) + ("django-statici18n" ,python2-django-statici18n) + ("babel" ,python2-babel) + ("cssmin" ,python2-cssmin) + ("diff-match-patch" ,python2-diff-match-patch) + ("dirsync" ,python2-dirsync) + ("elasticsearch" ,python2-elasticsearch) + ("jsonfield" ,python2-django-jsonfield) + ("lxml" ,python2-lxml) + ("dateutil" ,python2-dateutil) + ("levenshtein" ,python2-levenshtein) + ("mysqlclient" ,python2-mysqlclient) + ("psycopg2" ,python2-psycopg2) + ("pytz" ,python2-pytz) + ("rq" ,python2-rq) + ("scandir" ,python2-scandir) + ("stemming" ,python2-stemming) + ("translate-toolkit" ,python2-translate-toolkit))) + (native-inputs + `(("python2-pytest-warnings" ,python2-pytest-warnings) + ("python2-pytest-django" ,python2-pytest-django) + ("python2-pytest-catchlog" ,python2-pytest-catchlog) + ("python2-pytest-cov" ,python2-pytest-cov) + ("python2-factory-boy" ,python2-factory-boy))) + (home-page "http://pootle.translatehouse.org/") + (synopsis "Community localization server") + (description + "Pootle is an online translation and localization tool. It works to +lower the barrier of entry, providing tools to enable teams to work towards +higher quality while welcoming newcomers.") + (license license:gpl3+))) From 9f68e74a482c7246fbdd3ad3e6145767cdf58f22 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 13 Apr 2017 20:03:54 +0200 Subject: [PATCH 338/386] gnu: Add antlr2. * gnu/packages/java.scm (antlr2): New variable. --- gnu/packages/java.scm | 77 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c14b5e7d8d..9e14818643 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Roel Janssen ;;; Copyright © 2017 Carlo Zancanaro +;;; Copyright © 2017 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -2085,3 +2086,79 @@ for your architecture which is provided by the jsvc package. This is a part of the Apache Commons Project.") (license license:asl2.0))) + +(define-public antlr2 + (package + (name "antlr2") + (version "2.7.7") + (source (origin + (method url-fetch) + (uri (string-append "http://www.antlr2.org/download/antlr-" + version ".tar.gz")) + (sha256 + (base32 + "1ffvcwdw73id0dk6pj2mlxjvbg0662qacx4ylayqcxgg381fnfl5")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file "antlr.jar") + (substitute* "lib/cpp/antlr/CharScanner.hpp" + (("#include ") + (string-append + "#include \n" + "#define EOF (-1)\n" + "#include "))) + (substitute* "configure" + (("/bin/sh") "sh")))))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'strip-jar-timestamps + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (jar1 (string-append out "/lib/antlr.jar")) + (jar2 (string-append out "/share/antlr-2.7.7/antlr.jar"))) + ;; XXX: copied from (guix build ant-build-system) + (define (strip-jar jar dir) + (let ((manifest (string-append dir "/META-INF/MANIFEST.MF"))) + (mkdir-p dir) + (and (with-directory-excursion dir + (zero? (system* "jar" "xf" jar))) + (delete-file jar) + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files dir #:directories? #t)) + (with-directory-excursion dir + (let* ((files (find-files "." ".*" #:directories? #t))) + (unless (zero? (apply system* + `("zip" "-X" ,jar ,manifest + ,@files))) + (error "'zip' failed")))) + (utime jar 0 0) + #t))) + (strip-jar jar1 "temp1") + (strip-jar jar2 "temp2")))) + (add-after 'configure 'fix-bin-ls + (lambda _ + (for-each (lambda (file) + (substitute* file + (("/bin/ls") "ls"))) + (find-files "." "Makefile"))))))) + (native-inputs + `(("which" ,which) + ("zip" ,zip) + ("java" ,icedtea "jdk"))) + (inputs + `(("java" ,icedtea))) + (home-page "http://www.antlr2.org") + (synopsis "Framework for constructing recognizers, compilers, and translators") + (description "ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) +is a language tool that provides a framework for constructing recognizers, +compilers, and translators from grammatical descriptions containing Java, C#, +C++, or Python actions. ANTLR provides excellent support for tree construction, +tree walking, and translation.") + (license license:public-domain))) From a0f15effceea0ef0558efa011d9f78472b4fdbac Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 13 Apr 2017 20:13:14 +0200 Subject: [PATCH 339/386] gnu: Add stringtemplate3. * gnu/packages/java.scm (stringtemplate3): New variable. --- gnu/packages/java.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 9e14818643..2f33cfdc2d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2162,3 +2162,41 @@ compilers, and translators from grammatical descriptions containing Java, C#, C++, or Python actions. ANTLR provides excellent support for tree construction, tree walking, and translation.") (license license:public-domain))) + +(define-public stringtemplate3 + (package + (name "stringtemplate3") + (version "3.2.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/website-st4/raw/" + "gh-pages/download/stringtemplate-" + version ".tar.gz")) + (sha256 + (base32 + "086yj68np1vqhkj7483diz3km6s6y4gmwqswa7524a0ca6vxn2is")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "stringtemplate-3.2.1.jar" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-grammar + (lambda _ + (let ((dir "src/org/antlr/stringtemplate/language/")) + (for-each (lambda (file) + (display file) + (newline) + (system* "antlr" "-o" dir (string-append dir file))) + '("template.g" "angle.bracket.template.g" "action.g" + "eval.g" "group.g" "interface.g")))))))) + (native-inputs + `(("antlr" ,antlr2))) + (home-page "http://www.stringtemplate.org") + (synopsis "Template engine to generate formatted text output") + (description "StringTemplate is a java template engine (with ports for C#, +Objective-C, JavaScript, Scala) for generating source code, web pages, emails, +or any other formatted text output. StringTemplate is particularly good at +code generators, multiple site skins, and internationalization / localization. +StringTemplate also powers ANTLR.") + (license license:bsd-3))) From 4ad8aed77f40ad35c8370a74666e3449034b546f Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 13 Apr 2017 21:57:33 +0200 Subject: [PATCH 340/386] gnu: Add antlr3 and stringtemplate4. * gnu/packages/java.scm (antlr3, stringtemplate4): New variables. --- gnu/packages/java.scm | 337 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 337 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 2f33cfdc2d..13e261438d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2200,3 +2200,340 @@ or any other formatted text output. StringTemplate is particularly good at code generators, multiple site skins, and internationalization / localization. StringTemplate also powers ANTLR.") (license license:bsd-3))) + +;; antlr3 is partially written using antlr3 grammar files. It also depends on +;; ST4 (stringtemplate4), which is also partially written using antlr3 grammar +;; files and uses antlr3 at runtime. The latest version requires a recent version +;; of antlr3 at runtime. +;; Fortunately, ST4 4.0.6 can be built with an older antlr3, and we use antlr3.3. +;; This version of ST4 is sufficient for the latest antlr3. +;; We use ST4 4.0.6 to build a boostrap antlr3 (latest version), and build +;; the latest ST4 with it. Then we build our final antlr3 that will be linked +;; against the latest ST4. +;; antlr3.3 still depends on antlr3 to generate some files, so we use an +;; even older version, antlr3.1, to generate them. Fortunately antlr3.1 uses +;; only grammar files with the antlr2 syntax. +;; So we build antlr3.1 -> antlr3.3 -> ST4.0.6 -> antlr3-bootstrap -> ST4 -> antlr3. + +(define-public stringtemplate4 + (package + (name "stringtemplate4") + (version "4.0.8") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/stringtemplate4/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1pri8hqa95rfdkjy55icl5q1m09zwp5k67ib14abas39s4v3w087")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f + #:jar-name (string-append ,name "-" ,version ".jar") + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-grammar + (lambda* (#:key inputs #:allow-other-keys) + (chdir "src/org/stringtemplate/v4/compiler/") + (for-each (lambda (file) + (display file) + (newline) + (system* "antlr3" file)) + '("STParser.g" "Group.g" "CodeGenerator.g")) + (chdir "../../../../..")))))) + (inputs + `(("antlr3" ,antlr3-bootstrap) + ("antlr2" ,antlr2) + ("stringtemplate" ,stringtemplate3))) + (home-page "http://www.stringtemplate.org") + (synopsis "Template engine to generate formatted text output") + (description "StringTemplate is a java template engine (with ports for C#, +Objective-C, JavaScript, Scala) for generating source code, web pages, emails, +or any other formatted text output. StringTemplate is particularly good at +code generators, multiple site skins, and internationalization / localization. +StringTemplate also powers ANTLR.") + (license license:bsd-3))) + +(define stringtemplate4-4.0.6 + (package + (inherit stringtemplate4) + (name "stringtemplate4") + (version "4.0.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/stringtemplate4/archive/ST-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0hjmh1ahdsh3w825i67mli9l4nncc4l6hdbf9ma91jvlj590sljp")))) + (inputs + `(("antlr3" ,antlr3-3.3) + ("antlr2" ,antlr2) + ("stringtemplate" ,stringtemplate3))))) + +(define-public antlr3 + (package + (name "antlr3") + (version "3.5.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/antlr3/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "07zff5frmjd53rnqdx31h0pmswz1lv0p2lp28cspfszh25ysz6sj")))) + (build-system ant-build-system) + (arguments + `(#:jar-name (string-append ,name "-" ,version ".jar") + #:source-dir "tool/src/main/java:runtime/Java/src/main/java:tool/src/main/antlr3" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'bin-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((jar (string-append (assoc-ref outputs "out") "/share/java")) + (bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (with-output-to-file (string-append bin "/antlr3") + (lambda _ + (display + (string-append "#!" (which "sh") "\n" + "java -cp " jar "/" ,name "-" ,version ".jar:" + (string-concatenate + (find-files (assoc-ref inputs "stringtemplate") + ".*\\.jar")) + ":" + (string-concatenate + (find-files (assoc-ref inputs "stringtemplate4") + ".*\\.jar")) + ":" + (string-concatenate + (find-files (string-append + (assoc-ref inputs "antlr") + "/lib") + ".*\\.jar")) + " org.antlr.Tool $*")))) + (chmod (string-append bin "/antlr3") #o755)))) + (add-before 'build 'generate-grammar + (lambda _ + (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/") + (for-each (lambda (file) + (display file) + (newline) + (system* "antlr3" file)) + '("ANTLR.g" "ANTLRTreePrinter.g" "ActionAnalysis.g" + "AssignTokenTypesWalker.g" + "ActionTranslator.g" "TreeToNFAConverter.g" + "ANTLRv3.g" "ANTLRv3Tree.g" "LeftRecursiveRuleWalker.g" + "CodeGenTreeWalker.g" "DefineGrammarItemsWalker.g")) + (substitute* "ANTLRParser.java" + (("public Object getTree") "public GrammarAST getTree")) + (substitute* "ANTLRv3Parser.java" + (("public Object getTree") "public CommonTree getTree")) + (chdir "../../../../../java") + (system* "antlr" "-o" "org/antlr/tool" + "org/antlr/tool/serialize.g") + (substitute* "org/antlr/tool/LeftRecursiveRuleAnalyzer.java" + (("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*; +import org.antlr.grammar.v3.ANTLRTreePrinter;")) + (substitute* "org/antlr/tool/ErrorManager.java" + (("case NO_SUCH_ATTRIBUTE_PASS_THROUGH:") "")) + (chdir "../../../.."))) + (add-before 'build 'fix-build-xml + (lambda _ + (substitute* "build.xml" + ((" + + + + + + + + + + + + + + + + + + + + + Date: Thu, 11 May 2017 22:38:48 +0200 Subject: [PATCH 341/386] gnu: lxde-common: Provide 'startlxde' with the 'lxsession' file name. Fixes . * gnu/packages/lxde.scm (lxde-common)[arguments, inputs]: New fields. --- gnu/packages/lxde.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index cc1156ae60..bf70bd6013 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -289,11 +289,26 @@ menu spec-compliant desktop menus for LXDE.") (base32 "0mj84fa3f4ak1jjslrwc2q3ci9zxrxpciggviza9bjb0168brn8w")))) (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'set-lxsession + (lambda* (#:key inputs #:allow-other-keys) + ;; Set the right file name for 'lxsession'. + (let ((lxsession (assoc-ref inputs "lxsession"))) + (substitute* "startlxde.in" + (("^exec .*/bin/lxsession") + (string-append "exec " lxsession + "/bin/lxsession"))) + #t)))))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) ("lxmenu-data" ,lxmenu-data) ("lxde-icon-theme" ,lxde-icon-theme))) + (inputs + `(("lxsession" ,lxsession) + ;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop' + )) (synopsis "Common files of the LXDE Desktop") (description "Lxde-common provides common files of the LXDE Desktop.") From a3ac1bc285d6d6b7e2202937416ed055cfcdc35f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 11 May 2017 23:05:59 +0200 Subject: [PATCH 342/386] nls: Update 'fr' translation. --- po/guix/fr.po | 1085 +++++++++++++++++++++++++++++-------------------- 1 file changed, 648 insertions(+), 437 deletions(-) diff --git a/po/guix/fr.po b/po/guix/fr.po index 990b83926f..b566d58c0b 100644 --- a/po/guix/fr.po +++ b/po/guix/fr.po @@ -2,7 +2,7 @@ # Copyright (C) 2016 Free Software Foundation, Inc. # This file is distributed under the same license as the guix package. # Rémy Chevalier , 2013, 2014. -# Frédéric Marchal , 2016 +# Frédéric Marchal , 2017 # # Note de Frédéric Marchal: Le nom « shepherd » est le nom d'un démon (voir # https://www.gnu.org/software/shepherd/). Je ne l'ai pas traduit dans les @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: guix 0.12.0\n" +"Project-Id-Version: guix 0.13.0\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2016-12-18 15:32+0100\n" -"PO-Revision-Date: 2016-12-19 07:40+0100\n" +"POT-Creation-Date: 2017-05-10 23:29+0200\n" +"PO-Revision-Date: 2017-05-11 19:11+0200\n" "Last-Translator: Frédéric Marchal \n" "Language-Team: French \n" "Language: fr\n" @@ -23,140 +23,146 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: gnu/packages.scm:79 +#: gnu/packages.scm:90 #, scheme-format msgid "~a: patch not found" msgstr "~a: correctif introuvable" -#: gnu/packages.scm:95 +#: gnu/packages.scm:106 #, scheme-format msgid "could not find bootstrap binary '~a' for system '~a'" msgstr "impossible de trouver le binaire d'initialisation « ~a » pour le système « ~a »" -#: gnu/packages.scm:147 -#, scheme-format -msgid "cannot access `~a': ~a~%" -msgstr "impossible d'accéder à « ~a »: ~a~%" - -#: gnu/packages.scm:301 +#: gnu/packages.scm:236 #, scheme-format msgid "ambiguous package specification `~a'~%" msgstr "spécification du paquet « ~a » ambiguë~%" -#: gnu/packages.scm:302 +#: gnu/packages.scm:237 #, scheme-format -msgid "choosing ~a from ~a~%" -msgstr "choix de ~a parmi ~a~%" +msgid "choosing ~a@~a from ~a~%" +msgstr "choix de ~a@~a parmi ~a~%" -#: gnu/packages.scm:306 -#, scheme-format -msgid "deprecated NAME-VERSION syntax; use NAME@VERSION instead~%" -msgstr "syntaxe NOM-VERSION dépréciée. Utilisez plutôt NOM@VERSION~%" - -#: gnu/packages.scm:311 guix/scripts/package.scm:272 +#: gnu/packages.scm:242 guix/scripts/package.scm:272 #, scheme-format msgid "package '~a' has been superseded by '~a'~%" msgstr "le paquet « ~a » a été remplacé par « ~a »~%" -#: gnu/packages.scm:318 +#: gnu/packages.scm:249 #, scheme-format msgid "~A: package not found for version ~a~%" msgstr "~A: paquet introuvable pour la version ~a~%" -#: gnu/packages.scm:328 +#: gnu/packages.scm:250 #, scheme-format msgid "~A: unknown package~%" msgstr "~A: paquet inconnu~%" -#: gnu/packages.scm:356 +#: gnu/packages.scm:278 #, scheme-format msgid "package `~a' lacks output `~a'~%" msgstr "le paquet « ~a » requiert la sortie « ~a »~%" -#: gnu/services.scm:542 +#: gnu/services.scm:186 +#, scheme-format +msgid "~a: no value specified for service of type '~a'" +msgstr "~a: aucune valeur spécifiée pour le service de type « ~a »" + +#: gnu/services.scm:627 #, scheme-format msgid "no target of type '~a' for service ~s" msgstr "pas de cible de type « ~a » pour le service ~s" -#: gnu/services.scm:553 gnu/services.scm:614 +#: gnu/services.scm:638 gnu/services.scm:699 #, scheme-format msgid "more than one target service of type '~a'" msgstr "plus d'un service cible de type « ~a »" -#: gnu/services.scm:604 +#: gnu/services.scm:689 #, scheme-format msgid "service of type '~a' not found" msgstr "service de type « ~a » pas trouvé" -#: gnu/system.scm:522 -#, scheme-format -msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" -msgstr "l'utilisation d'une chaîne pour le fichier « ~a » est dépréciée. Utilisez plutôt « plain-file »~%" - -#: gnu/system.scm:538 -#, scheme-format -msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" -msgstr "l'utilisation d'une valeur monadic pour « ~a » est dépréciée. Utilisez plutôt « plain-file »~%" - -#: gnu/system.scm:680 -#, scheme-format -msgid "~a: invalid locale name" -msgstr "~a: nom d'environnement linguistique non valide" - -#: gnu/system.scm:860 -msgid "/" -msgstr "/" - -#: gnu/system.scm:862 +#: gnu/system.scm:270 #, scheme-format msgid "unrecognized boot parameters for '~a'~%" msgstr "paramètres de démarrage non reconnus pour « ~a »~%" -#: gnu/services/shepherd.scm:165 +#: gnu/system.scm:633 +#, scheme-format +msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" +msgstr "l'utilisation d'une chaîne pour le fichier « ~a » est dépréciée. Utilisez plutôt « plain-file »~%" + +#: gnu/system.scm:649 +#, scheme-format +msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" +msgstr "l'utilisation d'une valeur monadic pour « ~a » est dépréciée. Utilisez plutôt « plain-file »~%" + +#: gnu/system.scm:791 +#, scheme-format +msgid "~a: invalid locale name" +msgstr "~a: nom d'environnement linguistique non valide" + +#: gnu/services/shepherd.scm:166 #, scheme-format msgid "service '~a' provided more than once" msgstr "service « ~a » fourni plus d'une fois" -#: gnu/services/shepherd.scm:180 +#: gnu/services/shepherd.scm:181 #, scheme-format msgid "service '~a' requires '~a', which is not provided by any service" msgstr "le service « ~a » requiert « ~a » qui n'est fourni pas aucun service" -#: gnu/system/shadow.scm:220 +#: gnu/system/shadow.scm:223 #, scheme-format msgid "supplementary group '~a' of user '~a' is undeclared" msgstr "le groupe supplémentaire « ~a » de l'utilisateur « ~a » n'est pas déclaré" -#: gnu/system/shadow.scm:230 +#: gnu/system/shadow.scm:233 #, scheme-format msgid "primary group '~a' of user '~a' is undeclared" msgstr "le groupe primaire « ~a » de l'utilisateur « ~a » n'est pas déclaré" -#: guix/scripts.scm:53 +#: guix/scripts.scm:56 #, scheme-format msgid "invalid argument: ~a~%" msgstr "argument non valide: ~a~%" -#: guix/scripts.scm:79 guix/scripts/download.scm:133 guix/scripts/gc.scm:164 +#: guix/scripts.scm:82 guix/scripts/download.scm:133 guix/scripts/gc.scm:164 #: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:77 -#: guix/scripts/pull.scm:219 guix/scripts/lint.scm:1042 -#: guix/scripts/publish.scm:556 guix/scripts/edit.scm:81 -#: guix/scripts/graph.scm:436 +#: guix/scripts/lint.scm:1061 guix/scripts/publish.scm:811 +#: guix/scripts/edit.scm:81 guix/scripts/graph.scm:456 #, scheme-format msgid "~A: unrecognized option~%" msgstr "~A: option non reconnue~%" -#: guix/scripts/build.scm:121 +#: guix/scripts.scm:174 +#, scheme-format +msgid "Your Guix installation is ~a day old.\n" +msgid_plural "Your Guix installation is ~a days old.\n" +msgstr[0] "Votre installation Guix est vieille de ~a jour.\n" +msgstr[1] "Votre installation Guix est vieille de ~a jours.\n" + +#: guix/scripts.scm:179 +#, scheme-format +msgid "" +"Consider running 'guix pull' followed by\n" +"'~a' to get up-to-date packages and security updates.\n" +msgstr "" +"Envisagez d'exécuter « guix pull » suivi de\n" +"« ~a » pour obtenir des paquets à jour et des mises à jour de sécurité.\n" + +#: guix/scripts/build.scm:124 #, scheme-format msgid "failed to create GC root `~a': ~a~%" msgstr "impossible de créer la racine du GC « ~a »: ~a~%" -#: guix/scripts/build.scm:196 +#: guix/scripts/build.scm:206 #, scheme-format msgid "invalid replacement specification: ~s~%" msgstr "spécification de remplacement invalide: ~s~%" -#: guix/scripts/build.scm:253 +#: guix/scripts/build.scm:263 msgid "" "\n" " --with-source=SOURCE\n" @@ -166,7 +172,7 @@ msgstr "" " --with-source=SOURCE\n" " utiliser la SOURCE donnée pour compiler le paquet correspondant" -#: guix/scripts/build.scm:256 +#: guix/scripts/build.scm:266 msgid "" "\n" " --with-input=PACKAGE=REPLACEMENT\n" @@ -176,7 +182,7 @@ msgstr "" " --with-input=PAQUET=REMPLACEMENT\n" " remplacer le paquet de dépendance PAQUET par REMPLACEMENT" -#: guix/scripts/build.scm:259 +#: guix/scripts/build.scm:269 msgid "" "\n" " --with-graft=PACKAGE=REPLACEMENT\n" @@ -186,12 +192,12 @@ msgstr "" " --with-graft=PAQUET=REMPLACEMENT\n" " greffer le paquet REMPLACEMENT sur les paquets qui font référence à PAQUET" -#: guix/scripts/build.scm:284 +#: guix/scripts/build.scm:294 #, scheme-format msgid "transformation '~a' had no effect on ~a~%" msgstr "la transformation « ~a » n'a pas d'effet sur ~a~%" -#: guix/scripts/build.scm:302 +#: guix/scripts/build.scm:312 msgid "" "\n" " -L, --load-path=DIR prepend DIR to the package module search path" @@ -199,7 +205,7 @@ msgstr "" "\n" " -L, --load-path=REP préfixer le chemin de recherche par REP " -#: guix/scripts/build.scm:304 +#: guix/scripts/build.scm:314 msgid "" "\n" " -K, --keep-failed keep build tree of failed builds" @@ -207,7 +213,7 @@ msgstr "" "\n" " -K, --keep-failed garder l'arbre de compilation pour les compilations ayant échoué" -#: guix/scripts/build.scm:306 +#: guix/scripts/build.scm:316 msgid "" "\n" " -k, --keep-going keep going when some of the derivations fail" @@ -215,7 +221,7 @@ msgstr "" "\n" " -k, --keep-going continuer si certaines dérivations échouent" -#: guix/scripts/build.scm:308 +#: guix/scripts/build.scm:318 msgid "" "\n" " -n, --dry-run do not build the derivations" @@ -223,7 +229,7 @@ msgstr "" "\n" " -n, --dry-run ne pas compiler les dérivations" -#: guix/scripts/build.scm:310 +#: guix/scripts/build.scm:320 msgid "" "\n" " --fallback fall back to building when the substituter fails" @@ -231,7 +237,7 @@ msgstr "" "\n" " --fallback revenir à la compilation quand le substitut échoue" -#: guix/scripts/build.scm:312 +#: guix/scripts/build.scm:322 msgid "" "\n" " --no-substitutes build instead of resorting to pre-built substitutes" @@ -239,7 +245,7 @@ msgstr "" "\n" " --no-substitutes compiler plutôt que recourir à des substituts pré-compilés" -#: guix/scripts/build.scm:314 guix/scripts/size.scm:220 +#: guix/scripts/build.scm:324 guix/scripts/size.scm:222 msgid "" "\n" " --substitute-urls=URLS\n" @@ -249,7 +255,7 @@ msgstr "" " --substitute-urls=URLS\n" " récupérer les substituts depuis les URLS si elles sont autorisées" -#: guix/scripts/build.scm:317 +#: guix/scripts/build.scm:327 msgid "" "\n" " --no-grafts do not graft packages" @@ -257,7 +263,7 @@ msgstr "" "\n" " --no-grafts ne pas greffer les paquets" -#: guix/scripts/build.scm:319 +#: guix/scripts/build.scm:329 msgid "" "\n" " --no-build-hook do not attempt to offload builds via the build hook" @@ -265,7 +271,7 @@ msgstr "" "\n" " --no-build-hook ne pas essayer de décharger les compilations via le hook de compilation" -#: guix/scripts/build.scm:321 +#: guix/scripts/build.scm:331 msgid "" "\n" " --max-silent-time=SECONDS\n" @@ -275,7 +281,7 @@ msgstr "" " --max-silent-time=N\n" " marquer la compilation comme ayant échouée après N secondes de silence" -#: guix/scripts/build.scm:324 +#: guix/scripts/build.scm:334 msgid "" "\n" " --timeout=SECONDS mark the build as failed after SECONDS of activity" @@ -283,7 +289,7 @@ msgstr "" "\n" " --timeout=N marquer la compilation comme ayant échouée après N secondes d'activité" -#: guix/scripts/build.scm:326 +#: guix/scripts/build.scm:336 msgid "" "\n" " --verbosity=LEVEL use the given verbosity LEVEL" @@ -291,7 +297,7 @@ msgstr "" "\n" " --verbosity=NIVEAU utiliser le NIVEAU de verbosité donné" -#: guix/scripts/build.scm:328 +#: guix/scripts/build.scm:338 msgid "" "\n" " --rounds=N build N times in a row to detect non-determinism" @@ -299,7 +305,7 @@ msgstr "" "\n" " --rounds=N compiler N fois de suite pour détecter les non déterminismes" -#: guix/scripts/build.scm:330 +#: guix/scripts/build.scm:340 msgid "" "\n" " -c, --cores=N allow the use of up to N CPU cores for the build" @@ -307,7 +313,7 @@ msgstr "" "\n" " -c, --cores=N utiliser jusqu'à N cœurs CPU pour la compilation" -#: guix/scripts/build.scm:332 +#: guix/scripts/build.scm:342 msgid "" "\n" " -M, --max-jobs=N allow at most N build jobs" @@ -315,12 +321,12 @@ msgstr "" "\n" " -M, --max-jobs=N autoriser au plus N tâches de compilation" -#: guix/scripts/build.scm:438 guix/scripts/build.scm:445 +#: guix/scripts/build.scm:448 guix/scripts/build.scm:455 #, scheme-format msgid "not a number: '~a' option argument: ~a~%" msgstr "pas un nombre: argument d'option « ~a »: ~a~%" -#: guix/scripts/build.scm:465 +#: guix/scripts/build.scm:474 msgid "" "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" @@ -328,7 +334,7 @@ msgstr "" "Usage: guix build [OPTION]... PAQUET-OU-DERIVATION...\n" "Compiler le PAQUET-OU-DERIVATION donné et retourner leur chemin de sortie.\n" -#: guix/scripts/build.scm:467 +#: guix/scripts/build.scm:476 msgid "" "\n" " -e, --expression=EXPR build the package or derivation EXPR evaluates to" @@ -336,7 +342,7 @@ msgstr "" "\n" " -e, --expression=EXPR compiler le paquet ou la dérivation évalué par EXPR" -#: guix/scripts/build.scm:469 +#: guix/scripts/build.scm:478 msgid "" "\n" " -f, --file=FILE build the package or derivation that the code within\n" @@ -346,7 +352,7 @@ msgstr "" " -f, --file=FICHIER compiler le paquet ou la dérivation qui est évaluée\n" " par le code dans FICHIER" -#: guix/scripts/build.scm:472 +#: guix/scripts/build.scm:481 msgid "" "\n" " -S, --source build the packages' source derivations" @@ -354,7 +360,7 @@ msgstr "" "\n" " -S, --source compiler les dérivations de source du paquet" -#: guix/scripts/build.scm:474 +#: guix/scripts/build.scm:483 msgid "" "\n" " --sources[=TYPE] build source derivations; TYPE may optionally be one\n" @@ -364,7 +370,7 @@ msgstr "" " --sources[=TYPE] compiler les dérivations sources. TYPE peut optionnellement\n" " être « package », « all » (défaut) ou « transitive »" -#: guix/scripts/build.scm:477 +#: guix/scripts/build.scm:486 guix/scripts/pack.scm:330 msgid "" "\n" " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" @@ -372,7 +378,7 @@ msgstr "" "\n" " -s, --system=SYSTÈME essayer de compiler pour le SYSTÈME donné, par exemple « i686-linux »" -#: guix/scripts/build.scm:479 +#: guix/scripts/build.scm:488 guix/scripts/pack.scm:332 msgid "" "\n" " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" @@ -380,7 +386,7 @@ msgstr "" "\n" " --target=TRIPLET effectuer une compilation croisée pour TRIPLET, par exemple « armel-linux-gnu »" -#: guix/scripts/build.scm:481 +#: guix/scripts/build.scm:490 msgid "" "\n" " -d, --derivations return the derivation paths of the given packages" @@ -388,7 +394,7 @@ msgstr "" "\n" " -d, --derivations retourner les chemins de dérivation pour les paquets donnés" -#: guix/scripts/build.scm:483 +#: guix/scripts/build.scm:492 msgid "" "\n" " --check rebuild items to check for non-determinism issues" @@ -396,7 +402,15 @@ msgstr "" "\n" " --check recompiler les éléments pour détecter des problèmes de non déterminisme" -#: guix/scripts/build.scm:485 +#: guix/scripts/build.scm:494 +msgid "" +"\n" +" --repair repair the specified items" +msgstr "" +"\n" +" --repair réparer les éléments spécifiés" + +#: guix/scripts/build.scm:496 msgid "" "\n" " -r, --root=FILE make FILE a symlink to the result, and register it\n" @@ -406,7 +420,7 @@ msgstr "" " -r, --root=FICHIER faire de FICHIER un lien symbolique pointant sur le résultat\n" " et l'enregistrer en tant que racine du garbage collector" -#: guix/scripts/build.scm:488 +#: guix/scripts/build.scm:499 msgid "" "\n" " -q, --quiet do not show the build log" @@ -414,7 +428,7 @@ msgstr "" "\n" " -q, --quiet ne pas montrer le journal de compilation" -#: guix/scripts/build.scm:490 +#: guix/scripts/build.scm:501 msgid "" "\n" " --log-file return the log file names for the given derivations" @@ -422,14 +436,15 @@ msgstr "" "\n" " --log-file retourner les fichiers de journalisation pour les dérivations données" -#: guix/scripts/build.scm:497 guix/scripts/download.scm:81 +#: guix/scripts/build.scm:508 guix/scripts/download.scm:81 #: guix/scripts/package.scm:419 guix/scripts/gc.scm:74 -#: guix/scripts/hash.scm:59 guix/scripts/import.scm:91 -#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:83 -#: guix/scripts/substitute.scm:836 guix/scripts/system.scm:748 -#: guix/scripts/lint.scm:991 guix/scripts/publish.scm:74 -#: guix/scripts/edit.scm:44 guix/scripts/size.scm:228 -#: guix/scripts/graph.scm:416 guix/scripts/challenge.scm:182 +#: guix/scripts/hash.scm:59 guix/scripts/import.scm:92 +#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:94 +#: guix/scripts/substitute.scm:810 guix/scripts/system.scm:742 +#: guix/scripts/lint.scm:1010 guix/scripts/publish.scm:93 +#: guix/scripts/edit.scm:44 guix/scripts/size.scm:230 +#: guix/scripts/graph.scm:436 guix/scripts/challenge.scm:227 +#: guix/scripts/copy.scm:121 guix/scripts/pack.scm:341 #: guix/scripts/container.scm:33 guix/scripts/container/exec.scm:43 msgid "" "\n" @@ -438,14 +453,15 @@ msgstr "" "\n" " -h, --help afficher cette aide et quitter" -#: guix/scripts/build.scm:499 guix/scripts/download.scm:83 +#: guix/scripts/build.scm:510 guix/scripts/download.scm:83 #: guix/scripts/package.scm:421 guix/scripts/gc.scm:76 -#: guix/scripts/hash.scm:61 guix/scripts/import.scm:93 -#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:85 -#: guix/scripts/substitute.scm:838 guix/scripts/system.scm:750 -#: guix/scripts/lint.scm:995 guix/scripts/publish.scm:76 -#: guix/scripts/edit.scm:46 guix/scripts/size.scm:230 -#: guix/scripts/graph.scm:418 guix/scripts/challenge.scm:184 +#: guix/scripts/hash.scm:61 guix/scripts/import.scm:94 +#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:96 +#: guix/scripts/substitute.scm:812 guix/scripts/system.scm:744 +#: guix/scripts/lint.scm:1014 guix/scripts/publish.scm:95 +#: guix/scripts/edit.scm:46 guix/scripts/size.scm:232 +#: guix/scripts/graph.scm:438 guix/scripts/challenge.scm:229 +#: guix/scripts/copy.scm:123 guix/scripts/pack.scm:343 #: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:45 msgid "" "\n" @@ -454,7 +470,7 @@ msgstr "" "\n" " -V, --version afficher les informations sur la version et quitter" -#: guix/scripts/build.scm:526 +#: guix/scripts/build.scm:537 #, scheme-format msgid "" "invalid argument: '~a' option argument: ~a, ~\n" @@ -463,21 +479,26 @@ msgstr "" "argument invalide: argument en option « ~a »: ~a, ~\n" "doit être « package », « all » ou « transitive »~%" -#: guix/scripts/build.scm:573 +#: guix/scripts/build.scm:590 #, scheme-format msgid "~s: not something we can build~%" msgstr "~s: pas quelque chose qu'on sait compiler~%" -#: guix/scripts/build.scm:627 +#: guix/scripts/build.scm:644 #, scheme-format msgid "~a: warning: package '~a' has no source~%" msgstr "~a: attention: le paquet « ~a » n'a pas de source~%" -#: guix/scripts/build.scm:661 +#: guix/scripts/build.scm:678 #, scheme-format msgid "no build log for '~a'~%" msgstr "aucun journal de compilation pour « ~a »~%" +#: guix/discovery.scm:56 +#, scheme-format +msgid "cannot access `~a': ~a~%" +msgstr "impossible d'accéder à « ~a »: ~a~%" + #: guix/scripts/download.scm:67 msgid "" "Usage: guix download [OPTION] URL\n" @@ -526,8 +547,8 @@ msgstr "" msgid "unsupported hash format: ~a~%" msgstr "format d'empreinte non supporté: ~a~%" -#: guix/scripts/download.scm:136 guix/scripts/package.scm:879 -#: guix/scripts/publish.scm:558 +#: guix/scripts/download.scm:136 guix/scripts/package.scm:882 +#: guix/scripts/publish.scm:813 #, scheme-format msgid "~A: extraneous argument~%" msgstr "~A: argument superflu~%" @@ -582,8 +603,8 @@ msgstr "la génération ~a n'est pas supprimée car elle est actuelle~%" msgid "no matching generation~%" msgstr "aucune génération correspondante~%" -#: guix/scripts/package.scm:188 guix/scripts/package.scm:699 -#: guix/scripts/system.scm:549 +#: guix/scripts/package.scm:188 guix/scripts/package.scm:700 +#: guix/scripts/system.scm:530 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "syntaxe non valide: ~a~%" @@ -745,7 +766,7 @@ msgstr "" "\n" " --bootstrap utiliser le programme d'amorçage Guile pour compiler le profil" -#: guix/scripts/package.scm:401 guix/scripts/pull.scm:76 +#: guix/scripts/package.scm:401 guix/scripts/pull.scm:86 msgid "" "\n" " --verbose produce verbose output" @@ -794,17 +815,17 @@ msgstr "" msgid "~a: unsupported kind of search path~%" msgstr "~a: type de chemin de recherche non supporté~%" -#: guix/scripts/package.scm:790 +#: guix/scripts/package.scm:791 #, scheme-format msgid "cannot switch to generation '~a'~%" msgstr "impossible de passer à la génération « ~a »~%" -#: guix/scripts/package.scm:806 +#: guix/scripts/package.scm:807 #, scheme-format msgid "would install new manifest from '~a' with ~d entries~%" msgstr "installerait le nouveau manifeste depuis « ~a » avec ~d entrées~%" -#: guix/scripts/package.scm:808 +#: guix/scripts/package.scm:809 #, scheme-format msgid "installing new manifest from '~a' with ~d entries~%" msgstr "installation du nouveau manifeste depuis « ~a » avec ~d entrées~%" @@ -976,18 +997,18 @@ msgstr "" msgid "unrecognized option: ~a~%" msgstr "option non reconnue: ~a~%" -#: guix/scripts/hash.scm:152 guix/ui.scm:478 +#: guix/scripts/hash.scm:155 guix/ui.scm:264 guix/ui.scm:498 guix/ui.scm:551 #, scheme-format msgid "~a~%" msgstr "~a~%" -#: guix/scripts/hash.scm:155 guix/scripts/system.scm:879 +#: guix/scripts/hash.scm:158 guix/scripts/system.scm:879 #: guix/scripts/system.scm:886 guix/scripts/system.scm:893 #, scheme-format msgid "wrong number of arguments~%" msgstr "nombre d'arguments incorrect~%" -#: guix/scripts/import.scm:85 +#: guix/scripts/import.scm:86 msgid "" "Usage: guix import IMPORTER ARGS ...\n" "Run IMPORTER with ARGS.\n" @@ -995,21 +1016,21 @@ msgstr "" "Usage: guix import IMPORTEUR ARGS...\n" "Lancer IMPORTATEUR avec ARGS.\n" -#: guix/scripts/import.scm:88 +#: guix/scripts/import.scm:89 msgid "IMPORTER must be one of the importers listed below:\n" msgstr "IMPORTATEUR doit être un des importateurs listés ci-dessous:\n" -#: guix/scripts/import.scm:102 +#: guix/scripts/import.scm:103 #, scheme-format msgid "guix import: missing importer name~%" msgstr "guix import: nom d'importateur manquant~%" -#: guix/scripts/import.scm:122 +#: guix/scripts/import.scm:123 #, scheme-format msgid "'~a' import failed~%" msgstr "l'importateur « ~a » a échoué~%" -#: guix/scripts/import.scm:123 +#: guix/scripts/import.scm:124 #, scheme-format msgid "~a: invalid importer~%" msgstr "~a: importateur non valide~%" @@ -1082,7 +1103,7 @@ msgstr "" msgid "failed to download package '~a'~%" msgstr "échec lors du téléchargement du paquet « ~a »~%" -#: guix/scripts/pull.scm:74 +#: guix/scripts/pull.scm:84 msgid "" "Usage: guix pull [OPTION]...\n" "Download and deploy the latest version of Guix.\n" @@ -1090,7 +1111,7 @@ msgstr "" "Usage: guix pull [OPTION]...\n" "Télécharger et déployer la dernière version de Guix.\n" -#: guix/scripts/pull.scm:78 +#: guix/scripts/pull.scm:88 msgid "" "\n" " --url=URL download the Guix tarball from URL" @@ -1098,7 +1119,7 @@ msgstr "" "\n" " --url=URL télécharger le tarball de Guix depuis URL" -#: guix/scripts/pull.scm:80 +#: guix/scripts/pull.scm:90 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the new Guix" @@ -1106,163 +1127,158 @@ msgstr "" "\n" " --bootstrap utiliser le programme d'amorçage Guile pour compiler le nouveau Guix" -#: guix/scripts/pull.scm:134 +#: guix/scripts/pull.scm:150 msgid "tarball did not produce a single source directory" msgstr "la tarball n'a produit aucun répertoire source" -#: guix/scripts/pull.scm:152 +#: guix/scripts/pull.scm:168 #, scheme-format msgid "unpacking '~a'...~%" msgstr "dépaquetage « ~a »...~%" -#: guix/scripts/pull.scm:161 +#: guix/scripts/pull.scm:177 msgid "failed to unpack source code" msgstr "échec du dépaquetage du code source" -#: guix/scripts/pull.scm:204 +#: guix/scripts/pull.scm:220 msgid "Guix already up to date\n" msgstr "Guix est déjà à jour\n" -#: guix/scripts/pull.scm:209 +#: guix/scripts/pull.scm:225 #, scheme-format msgid "updated ~a successfully deployed under `~a'~%" msgstr "~a a été mis à jour et déployé avec succès sous « ~a »~%" -#: guix/scripts/pull.scm:212 +#: guix/scripts/pull.scm:228 #, scheme-format msgid "failed to update Guix, check the build log~%" msgstr "échec de la mise à jour de Guix; consultez le journal de compilation~%" -#: guix/scripts/pull.scm:221 -#, scheme-format -msgid "~A: unexpected argument~%" -msgstr "~A: argument inattendu~%" - -#: guix/scripts/pull.scm:230 +#: guix/scripts/pull.scm:255 msgid "failed to download up-to-date source, exiting\n" msgstr "impossible de télécharger une source à jour; fin\n" -#: guix/scripts/substitute.scm:112 +#: guix/scripts/substitute.scm:114 #, scheme-format msgid "authentication and authorization of substitutes disabled!~%" msgstr "authentification et autorisation des substituts désactivées !~%" -#: guix/scripts/substitute.scm:187 +#: guix/scripts/substitute.scm:189 #, scheme-format msgid "download from '~a' failed: ~a, ~s~%" msgstr "le téléchargement depuis « ~a » a échoué: ~a, ~s~%" -#: guix/scripts/substitute.scm:200 +#: guix/scripts/substitute.scm:202 #, scheme-format msgid "while fetching ~a: server is somewhat slow~%" msgstr "pendant la récupération de ~a: le serveur est plutôt lent~%" -#: guix/scripts/substitute.scm:202 +#: guix/scripts/substitute.scm:204 #, scheme-format msgid "try `--no-substitutes' if the problem persists~%" msgstr "essayez l'option « --no-substitutes » si le problème persiste~%" -#: guix/scripts/substitute.scm:220 +#: guix/scripts/substitute.scm:222 #, scheme-format msgid "unsupported substitute URI scheme: ~a~%" msgstr "schéma de substitution URI non supporté: ~a~%" -#: guix/scripts/substitute.scm:254 +#: guix/scripts/substitute.scm:257 #, scheme-format msgid "while fetching '~a': ~a (~s)~%" msgstr "pendant la récupération de « ~a »: ~a (~s)~%" -#: guix/scripts/substitute.scm:259 +#: guix/scripts/substitute.scm:262 #, scheme-format msgid "ignoring substitute server at '~s'~%" msgstr "ignore le serveur de substitution à « ~s »~%" -#: guix/scripts/substitute.scm:309 +#: guix/scripts/substitute.scm:312 #, scheme-format msgid "signature version must be a number: ~s~%" msgstr "la version de la signature doit être un nombre: ~s~%" -#: guix/scripts/substitute.scm:313 +#: guix/scripts/substitute.scm:316 #, scheme-format msgid "unsupported signature version: ~a~%" msgstr "version de signature non supportée: ~a~%" -#: guix/scripts/substitute.scm:321 +#: guix/scripts/substitute.scm:324 #, scheme-format msgid "signature is not a valid s-expression: ~s~%" msgstr "la signature n'est pas une s-expression valide: ~s~%" -#: guix/scripts/substitute.scm:325 +#: guix/scripts/substitute.scm:328 #, scheme-format msgid "invalid format of the signature field: ~a~%" msgstr "format invalide du champ de signature: ~a~%" -#: guix/scripts/substitute.scm:360 +#: guix/scripts/substitute.scm:363 #, scheme-format msgid "invalid signature for '~a'~%" msgstr "signature non valide pour « ~a »~%" -#: guix/scripts/substitute.scm:362 +#: guix/scripts/substitute.scm:365 #, scheme-format msgid "hash mismatch for '~a'~%" msgstr "l'empreinte ne correspond pas pour « ~a »~%" -#: guix/scripts/substitute.scm:364 +#: guix/scripts/substitute.scm:367 #, scheme-format msgid "'~a' is signed with an unauthorized key~%" msgstr "« ~a » est signé avec une clé non autorisée~%" -#: guix/scripts/substitute.scm:366 +#: guix/scripts/substitute.scm:369 #, scheme-format msgid "signature on '~a' is corrupt~%" msgstr "la signature de « ~a » est corrompue~%" -#: guix/scripts/substitute.scm:404 +#: guix/scripts/substitute.scm:407 #, scheme-format msgid "substitute at '~a' lacks a signature~%" msgstr "le substitut à « ~a » n'a pas de signature~%" -#: guix/scripts/substitute.scm:411 +#: guix/scripts/substitute.scm:414 #, scheme-format msgid "Found valid signature for ~a~%" msgstr "Signature valide trouvée pour ~a~%" -#: guix/scripts/substitute.scm:414 +#: guix/scripts/substitute.scm:417 #, scheme-format msgid "From ~a~%" msgstr "De ~a~%" -#: guix/scripts/substitute.scm:454 +#: guix/scripts/substitute.scm:451 #, scheme-format msgid "'~a' does not name a store item~%" msgstr "« ~a » ne nomme pas un élément du stockage~%" -#: guix/scripts/substitute.scm:600 +#: guix/scripts/substitute.scm:599 #, scheme-format msgid "updating list of substitutes from '~a'... ~5,1f%" msgstr "mise à jour de la liste des substituts depuis « ~a »... ~5,1f%" -#: guix/scripts/substitute.scm:655 +#: guix/scripts/substitute.scm:654 #, scheme-format msgid "~s: unsupported server URI scheme~%" msgstr "~s: schéma de URI serveur non supporté~%" -#: guix/scripts/substitute.scm:665 +#: guix/scripts/substitute.scm:664 #, scheme-format msgid "'~a' uses different store '~a'; ignoring it~%" msgstr "« ~a » utilise un stockage « ~a » différent. Il est ignoré~%" -#: guix/scripts/substitute.scm:810 +#: guix/scripts/substitute.scm:784 #, scheme-format msgid "host name lookup error: ~a~%" msgstr "erreur lors de la consultation du nom d'hôte: ~a~%" -#: guix/scripts/substitute.scm:815 +#: guix/scripts/substitute.scm:789 #, scheme-format msgid "TLS error in procedure '~a': ~a~%" msgstr "erreur TLS dans la procédure « ~a »: ~a~%" -#: guix/scripts/substitute.scm:826 +#: guix/scripts/substitute.scm:800 msgid "" "Usage: guix substitute [OPTION]...\n" "Internal tool to substitute a pre-built binary to a local build.\n" @@ -1270,7 +1286,7 @@ msgstr "" "Usage: guix substitute [OPTION]...\n" "Outil interne pour substituer un binaire pré-compilé à une compilation locale.\n" -#: guix/scripts/substitute.scm:828 +#: guix/scripts/substitute.scm:802 msgid "" "\n" " --query report on the availability of substitutes for the\n" @@ -1281,7 +1297,7 @@ msgstr "" " noms de fichiers de dépôt passés sur l'entrée\n" " standard" -#: guix/scripts/substitute.scm:831 +#: guix/scripts/substitute.scm:805 msgid "" "\n" " --substitute STORE-FILE DESTINATION\n" @@ -1296,16 +1312,21 @@ msgstr "" #. TRANSLATORS: The second part of this message looks like #. "(4.1MiB installed)"; it shows the size of the package once #. installed. -#: guix/scripts/substitute.scm:904 +#: guix/scripts/substitute.scm:878 #, scheme-format msgid "Downloading ~a~:[~*~; (~a installed)~]...~%" msgstr "Téléchargement de ~a~:[~*~; (~a installé)~]...~%" -#: guix/scripts/substitute.scm:961 +#: guix/scripts/substitute.scm:935 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" msgstr "l'ACL pour l'import d'archives ne semble pas initialisée ; les substituts pourraient être indisponibles\n" -#: guix/scripts/substitute.scm:1057 +#: guix/scripts/substitute.scm:985 +#, scheme-format +msgid "~a: invalid URI~%" +msgstr "~a: URI invalide~%" + +#: guix/scripts/substitute.scm:1043 #, scheme-format msgid "~a: unrecognized options~%" msgstr "~a: options non reconnues~%" @@ -1344,141 +1365,141 @@ msgstr "" msgid "wrong arguments" msgstr "mauvais arguments" -#: guix/scripts/system.scm:109 +#: guix/scripts/system.scm:133 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "impossible d'enregistrer « ~a » sous « ~a »~%" -#: guix/scripts/system.scm:142 +#: guix/scripts/system.scm:166 #, scheme-format msgid "failed to install GRUB on device '~a'~%" msgstr "échec de l'installation de GRUB sur le périphérique « ~a »~%" -#: guix/scripts/system.scm:160 +#: guix/scripts/system.scm:184 #, scheme-format msgid "initializing the current root file system~%" msgstr "initialisation du système de fichier racine courant~%" -#: guix/scripts/system.scm:174 +#: guix/scripts/system.scm:198 #, scheme-format msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" msgstr "n'est pas exécuté en tant que « root » donc le propriétaire de « ~a » pourrait être incorrect !~%" -#: guix/scripts/system.scm:238 +#: guix/scripts/system.scm:239 #, scheme-format msgid "while talking to shepherd: ~a~%" msgstr "en parlant à shepherd: ~a~%" -#: guix/scripts/system.scm:245 +#: guix/scripts/system.scm:246 #, scheme-format msgid "service '~a' could not be found~%" msgstr "service: « ~a » introuvable~%" -#: guix/scripts/system.scm:248 +#: guix/scripts/system.scm:249 #, scheme-format msgid "service '~a' does not have an action '~a'~%" msgstr "le service « ~a » n'a pas d'action « ~a »~%" -#: guix/scripts/system.scm:252 +#: guix/scripts/system.scm:253 #, scheme-format msgid "exception caught while executing '~a' on service '~a':~%" msgstr "exception interceptée pendant l'exécution de « ~a » sur le service « ~a »:~%" -#: guix/scripts/system.scm:260 +#: guix/scripts/system.scm:261 #, scheme-format msgid "something went wrong: ~s~%" msgstr "quelque chose s'est mal passé: ~s~%" -#: guix/scripts/system.scm:263 +#: guix/scripts/system.scm:264 #, scheme-format msgid "shepherd error~%" msgstr "erreur de shepherd~%" -#: guix/scripts/system.scm:280 +#: guix/scripts/system.scm:281 #, scheme-format msgid "failed to obtain list of shepherd services~%" msgstr "erreur en essayant d'obtenir la liste des services de shepherd~%" -#: guix/scripts/system.scm:300 +#: guix/scripts/system.scm:301 #, scheme-format msgid "unloading service '~a'...~%" msgstr "déchargement du service « ~a »...~%" -#: guix/scripts/system.scm:308 +#: guix/scripts/system.scm:309 #, scheme-format msgid "loading new services:~{ ~a~}...~%" msgstr "Chargement des nouveaux services:~{ ~a~}...~%" -#: guix/scripts/system.scm:332 +#: guix/scripts/system.scm:333 #, scheme-format msgid "activating system...~%" msgstr "activation du système...~%" -#: guix/scripts/system.scm:425 +#: guix/scripts/system.scm:408 #, scheme-format msgid "cannot switch to system generation '~a'~%" msgstr "impossible de passer à la génération « ~a » du système~%" -#: guix/scripts/system.scm:459 +#: guix/scripts/system.scm:441 #, scheme-format msgid "failed to re-install GRUB configuration file: '~a'~%" msgstr "échec à la ré-installation du fichier de configuration de GRUB: « ~a »~%" -#: guix/scripts/system.scm:489 +#: guix/scripts/system.scm:471 msgid "the DAG of services" msgstr "le graphe orienté acyclique (DAG) des services" -#: guix/scripts/system.scm:502 +#: guix/scripts/system.scm:484 msgid "the dependency graph of shepherd services" msgstr "le graphique des dépendances des services de shepherd" -#: guix/scripts/system.scm:526 +#: guix/scripts/system.scm:507 #, scheme-format msgid " file name: ~a~%" msgstr " nom de fichier: ~a~%" -#: guix/scripts/system.scm:527 +#: guix/scripts/system.scm:508 #, scheme-format msgid " canonical file name: ~a~%" msgstr " nom de fichier canonique: ~a~%" #. TRANSLATORS: Please preserve the two-space indentation. -#: guix/scripts/system.scm:529 +#: guix/scripts/system.scm:510 #, scheme-format msgid " label: ~a~%" msgstr " étiquette: ~a~%" -#: guix/scripts/system.scm:530 +#: guix/scripts/system.scm:511 #, scheme-format msgid " root device: ~a~%" msgstr " périphérique racine: ~a~%" -#: guix/scripts/system.scm:531 +#: guix/scripts/system.scm:512 #, scheme-format msgid " kernel: ~a~%" msgstr " noyau: ~a~%" -#: guix/scripts/system.scm:588 +#: guix/scripts/system.scm:569 #, scheme-format msgid "~a not found: 'guix pull' was never run~%" msgstr "~a pas trouvé: « guix pull » n'a jamais été exécuté~%" -#: guix/scripts/system.scm:589 +#: guix/scripts/system.scm:570 #, scheme-format msgid "Consider running 'guix pull' before 'reconfigure'.~%" msgstr "Envisagez d'exécuter « guix pull » avant « reconfigure ».~%" -#: guix/scripts/system.scm:590 +#: guix/scripts/system.scm:571 #, scheme-format msgid "Failing to do that may downgrade your system!~%" msgstr "Si vous ne le faites pas, votre système pourrait être amené à une version inférieure !~%" -#: guix/scripts/system.scm:661 +#: guix/scripts/system.scm:646 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "initialisation du système d'exploitation sous « ~a »...~%" -#: guix/scripts/system.scm:700 +#: guix/scripts/system.scm:690 msgid "" "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n" "Build the operating system declared in FILE according to ACTION.\n" @@ -1488,59 +1509,59 @@ msgstr "" "Compiler le système d'exploitation déclaré dans FICHER en suivant ACTION.\n" "Certaines ACTIONS supportent des ARGUMENTS supplémentaires.\n" -#: guix/scripts/system.scm:704 guix/scripts/container.scm:28 +#: guix/scripts/system.scm:694 guix/scripts/container.scm:28 msgid "The valid values for ACTION are:\n" msgstr "Les valeurs possibles pour ACTION sont:\n" -#: guix/scripts/system.scm:706 +#: guix/scripts/system.scm:696 msgid " reconfigure switch to a new operating system configuration\n" msgstr " reconfigure basculer vers une nouvelle configuration du système d'exploitation\n" -#: guix/scripts/system.scm:708 +#: guix/scripts/system.scm:698 msgid " roll-back switch to the previous operating system configuration\n" msgstr " roll-back basculer vers la configuration du système d'exploitation précédente\n" -#: guix/scripts/system.scm:710 +#: guix/scripts/system.scm:700 msgid " switch-generation switch to an existing operating system configuration\n" msgstr " switch-generation basculer vers une configuration du système d'exploitation existante\n" -#: guix/scripts/system.scm:712 +#: guix/scripts/system.scm:702 msgid " list-generations list the system generations\n" msgstr " list-generations lister les générations du système\n" -#: guix/scripts/system.scm:714 +#: guix/scripts/system.scm:704 msgid " build build the operating system without installing anything\n" msgstr " build compiler le système d'exploitation sans rien installer\n" -#: guix/scripts/system.scm:716 +#: guix/scripts/system.scm:706 msgid " container build a container that shares the host's store\n" msgstr " container compiler un conteneur qui partage le stockage de l'hôte\n" -#: guix/scripts/system.scm:718 +#: guix/scripts/system.scm:708 msgid " vm build a virtual machine image that shares the host's store\n" msgstr " vm compiler une machine virtuelle partageant le dépôt de l'hôte\n" -#: guix/scripts/system.scm:720 +#: guix/scripts/system.scm:710 msgid " vm-image build a freestanding virtual machine image\n" msgstr " vm-image compiler une image autonome de machine virtuelle\n" -#: guix/scripts/system.scm:722 +#: guix/scripts/system.scm:712 msgid " disk-image build a disk image, suitable for a USB stick\n" msgstr " disk-image compiler une image disque adaptée pour une clé USB\n" -#: guix/scripts/system.scm:724 +#: guix/scripts/system.scm:714 msgid " init initialize a root file system to run GNU\n" msgstr " init initialiser un système de fichier racine pour lancer GNU.\n" -#: guix/scripts/system.scm:726 +#: guix/scripts/system.scm:716 msgid " extension-graph emit the service extension graph in Dot format\n" msgstr " extension-graph produire le graphique d'extension de service au format Dot\n" -#: guix/scripts/system.scm:728 +#: guix/scripts/system.scm:718 msgid " shepherd-graph emit the graph of shepherd services in Dot format\n" msgstr " shepherd-graph produire le graphique des services de shepherd au format Dot\n" -#: guix/scripts/system.scm:732 +#: guix/scripts/system.scm:722 msgid "" "\n" " -d, --derivation return the derivation of the given system" @@ -1548,7 +1569,7 @@ msgstr "" "\n" " -d, --derivation retourner les dérivations pour le système donné" -#: guix/scripts/system.scm:734 +#: guix/scripts/system.scm:724 msgid "" "\n" " --on-error=STRATEGY\n" @@ -1558,7 +1579,7 @@ msgstr "" " --on-error=STRATÉGIE\n" " appliquer la STRATÉGIE quand une erreur survient en lisant le FICHIER" -#: guix/scripts/system.scm:737 +#: guix/scripts/system.scm:727 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -1567,15 +1588,15 @@ msgstr "" " --image-size=TAILLE\n" " pour « vm-image », produire une image de TAILLE" -#: guix/scripts/system.scm:739 +#: guix/scripts/system.scm:729 msgid "" "\n" -" --no-grub for 'init', do not install GRUB" +" --no-bootloader for 'init', do not install a bootloader" msgstr "" "\n" -" --no-grub pour « init », ne pas installer GRUB" +" --no-bootloader pour « init », ne pas installer un chargeur de démarrage" -#: guix/scripts/system.scm:741 +#: guix/scripts/system.scm:731 msgid "" "\n" " --share=SPEC for 'vm', share host file system according to SPEC" @@ -1584,7 +1605,20 @@ msgstr "" " --share=SPEC pour « vm », partager le système de fichiers hôte selon\n" " SPEC" -#: guix/scripts/system.scm:743 +#: guix/scripts/system.scm:733 +msgid "" +"\n" +" -r, --root=FILE for 'vm', 'vm-image', 'disk-image', 'container',\n" +" and 'build', make FILE a symlink to the result, and\n" +" register it as a garbage collector root" +msgstr "" +"\n" +" -r, --root=FICHIER pour « vm », « vm-image », « disk-image », « container »\n" +" et « build », faire de FICHIER un lien symbolique pointant\n" +" sur le résultat et l'enregistrer en tant que racine du\n" +" ramasse-miettes" + +#: guix/scripts/system.scm:737 msgid "" "\n" " --expose=SPEC for 'vm', expose host file system according to SPEC" @@ -1593,7 +1627,7 @@ msgstr "" " --expose=SPEC pour « vm », exposer le système de fichiers hôte selon\n" " SPEC" -#: guix/scripts/system.scm:745 +#: guix/scripts/system.scm:739 msgid "" "\n" " --full-boot for 'vm', make a full boot sequence" @@ -1601,7 +1635,7 @@ msgstr "" "\n" " --full-boot pour « vm », accomplir une séquence complète de démarrage" -#: guix/scripts/system.scm:830 +#: guix/scripts/system.scm:827 #, scheme-format msgid "no configuration file specified~%" msgstr "aucun fichier de configuration spécifié~%" @@ -1626,20 +1660,20 @@ msgstr "système guix: nom de commande manquant~%" msgid "Try 'guix system --help' for more information.~%" msgstr "Essayez « guix system --help » pour plus d'informations.~%" -#: guix/scripts/lint.scm:133 +#: guix/scripts/lint.scm:135 #, scheme-format msgid "Available checkers:~%" msgstr "Vérificateurs disponibles:~%" -#: guix/scripts/lint.scm:157 +#: guix/scripts/lint.scm:159 msgid "description should not be empty" msgstr "la description ne devrait pas être vide" -#: guix/scripts/lint.scm:167 +#: guix/scripts/lint.scm:169 msgid "Texinfo markup in description is invalid" msgstr "l'utilisation de balises Texinfo dans la description est invalide" -#: guix/scripts/lint.scm:177 +#: guix/scripts/lint.scm:179 #, scheme-format msgid "" "description should not contain ~\n" @@ -1650,15 +1684,15 @@ msgstr "" #. TRANSLATORS: '@code' is Texinfo markup and must be kept #. as is. -#: guix/scripts/lint.scm:190 +#: guix/scripts/lint.scm:192 msgid "use @code or similar ornament instead of quotes" msgstr "utiliser @code ou une décoration similaire au lieu des guillemets" -#: guix/scripts/lint.scm:197 +#: guix/scripts/lint.scm:199 msgid "description should start with an upper-case letter or digit" msgstr "La description devrait commencer par une majuscule ou un chiffre" -#: guix/scripts/lint.scm:213 +#: guix/scripts/lint.scm:215 #, scheme-format msgid "" "sentences in description should be followed ~\n" @@ -1667,225 +1701,229 @@ msgstr "" "les phrases dans la description devraient être suivies ~\n" "par deux espaces. Infraction probable~p à ~{~a~^, ~}" -#: guix/scripts/lint.scm:231 +#: guix/scripts/lint.scm:233 #, scheme-format msgid "invalid description: ~s" msgstr "description invalide: ~s" -#: guix/scripts/lint.scm:256 +#: guix/scripts/lint.scm:277 #, scheme-format msgid "'~a' should probably be a native input" msgstr "« ~a » devrait sans doute être une entrée native" -#: guix/scripts/lint.scm:280 +#: guix/scripts/lint.scm:293 #, scheme-format msgid "'~a' should probably not be an input at all" msgstr "« ~a » ne devrait probablement pas être une entrée du tout" -#: guix/scripts/lint.scm:306 +#: guix/scripts/lint.scm:310 msgid "synopsis should not be empty" msgstr "le synopsis ne devrait pas être vide" -#: guix/scripts/lint.scm:314 +#: guix/scripts/lint.scm:318 msgid "no period allowed at the end of the synopsis" msgstr "un point n'est pas autorisé à la fin du synopsis" -#: guix/scripts/lint.scm:326 +#: guix/scripts/lint.scm:330 msgid "no article allowed at the beginning of the synopsis" msgstr "les articles ne sont pas permis au début du synopsis" -#: guix/scripts/lint.scm:333 +#: guix/scripts/lint.scm:337 msgid "synopsis should be less than 80 characters long" msgstr "le synopsis devrait être plus court que 80 caractères" -#: guix/scripts/lint.scm:339 +#: guix/scripts/lint.scm:343 msgid "synopsis should start with an upper-case letter or digit" msgstr "le synopsis devrait commencer par une majuscule ou un chiffre" -#: guix/scripts/lint.scm:346 +#: guix/scripts/lint.scm:350 msgid "synopsis should not start with the package name" msgstr "le synopsis ne devrait pas commencer par un nom de paquet" #: guix/scripts/lint.scm:360 +msgid "Texinfo markup in synopsis is invalid" +msgstr "la balise Texinfo dans le synopsis est invalide" + +#: guix/scripts/lint.scm:379 #, scheme-format msgid "invalid synopsis: ~s" msgstr "synopsis non valide: ~s" -#: guix/scripts/lint.scm:459 +#: guix/scripts/lint.scm:479 #, scheme-format msgid "URI ~a returned suspiciously small file (~a bytes)" msgstr "l'URI ~a a renvoyé un fichier étrangement petit (~a octets)" -#: guix/scripts/lint.scm:468 guix/scripts/lint.scm:480 +#: guix/scripts/lint.scm:488 guix/scripts/lint.scm:500 #, scheme-format msgid "URI ~a not reachable: ~a (~s)" msgstr "l'URI ~a n'a pu être atteinte: ~a (~s)" -#: guix/scripts/lint.scm:487 +#: guix/scripts/lint.scm:507 #, scheme-format msgid "URI ~a domain not found: ~a" msgstr "le domaine de l'URI ~a pas trouvé: ~a" -#: guix/scripts/lint.scm:495 +#: guix/scripts/lint.scm:515 #, scheme-format msgid "URI ~a unreachable: ~a" msgstr "l'URI ~a n'a pu être atteinte: ~a" -#: guix/scripts/lint.scm:504 guix/scripts/lint.scm:761 +#: guix/scripts/lint.scm:524 guix/scripts/lint.scm:780 #, scheme-format msgid "TLS certificate error: ~a" msgstr "erreur de certificat TLS: ~a" -#: guix/scripts/lint.scm:525 +#: guix/scripts/lint.scm:545 msgid "invalid value for home page" msgstr "valeur invalide pour la page d'accueil" -#: guix/scripts/lint.scm:528 +#: guix/scripts/lint.scm:548 #, scheme-format msgid "invalid home page URL: ~s" msgstr "URL de la page d'accueil invalide: ~s" -#: guix/scripts/lint.scm:548 +#: guix/scripts/lint.scm:568 msgid "file names of patches should start with the package name" msgstr "les noms de fichiers des correctifs devraient commencer par le nom du paquet" -#: guix/scripts/lint.scm:587 +#: guix/scripts/lint.scm:606 #, scheme-format msgid "~a: ~a: proposed synopsis: ~s~%" msgstr "~a: ~a: synopsis proposé: ~s~%" -#: guix/scripts/lint.scm:600 +#: guix/scripts/lint.scm:619 #, scheme-format msgid "~a: ~a: proposed description:~% \"~a\"~%" msgstr "~a: ~a: description proposée:~% « ~a »~%" -#: guix/scripts/lint.scm:642 +#: guix/scripts/lint.scm:661 msgid "all the source URIs are unreachable:" msgstr "toutes les URI sources sont inatteignables:" -#: guix/scripts/lint.scm:665 +#: guix/scripts/lint.scm:684 msgid "the source file name should contain the package name" msgstr "le nom du fichier source devrait contenir le nom du paquet" -#: guix/scripts/lint.scm:681 +#: guix/scripts/lint.scm:700 #, scheme-format msgid "URL should be 'mirror://~a/~a'" msgstr "l'URL devrait être « mirror://~a/~a »" -#: guix/scripts/lint.scm:699 guix/scripts/lint.scm:703 +#: guix/scripts/lint.scm:718 guix/scripts/lint.scm:722 #, scheme-format msgid "failed to create derivation: ~a" msgstr "échec à la création de la dérivation: ~a" -#: guix/scripts/lint.scm:717 +#: guix/scripts/lint.scm:736 #, scheme-format msgid "failed to create derivation: ~s~%" msgstr "échec à la création de la dérivation: ~s~%" -#: guix/scripts/lint.scm:727 +#: guix/scripts/lint.scm:746 msgid "invalid license field" msgstr "champ de licence invalide" -#: guix/scripts/lint.scm:744 +#: guix/scripts/lint.scm:763 #, scheme-format msgid "failed to retrieve CVE vulnerabilities from ~s: ~a (~s)~%" msgstr "échec de récupération des vulnérabilités CVE depuis ~s: ~a (~s)~%" -#: guix/scripts/lint.scm:749 guix/scripts/lint.scm:758 -#: guix/scripts/lint.scm:763 +#: guix/scripts/lint.scm:768 guix/scripts/lint.scm:777 +#: guix/scripts/lint.scm:782 #, scheme-format msgid "assuming no CVE vulnerabilities~%" msgstr "on suppose qu'il n'y a pas de vulnérabilités CVE~%" -#: guix/scripts/lint.scm:756 +#: guix/scripts/lint.scm:775 #, scheme-format msgid "failed to lookup NIST host: ~a~%" msgstr "impossible de trouver l'hôte NIST: ~a~%" -#: guix/scripts/lint.scm:801 +#: guix/scripts/lint.scm:820 #, scheme-format msgid "probably vulnerable to ~a" msgstr "probablement vulnérable à ~a" -#: guix/scripts/lint.scm:816 +#: guix/scripts/lint.scm:835 #, scheme-format msgid "tabulation on line ~a, column ~a" msgstr "tabulation à la ligne ~a, colonne ~a" -#: guix/scripts/lint.scm:825 +#: guix/scripts/lint.scm:844 #, scheme-format msgid "trailing white space on line ~a" msgstr "espace à la fin de la ligne ~a" -#: guix/scripts/lint.scm:835 +#: guix/scripts/lint.scm:854 #, scheme-format msgid "line ~a is way too long (~a characters)" msgstr "la ligne ~a est beaucoup trop longue (~a caractères)" -#: guix/scripts/lint.scm:846 +#: guix/scripts/lint.scm:865 #, scheme-format msgid "line ~a: parentheses feel lonely, move to the previous or next line" msgstr "ligne ~a: des parenthèses se sentent seules. À déplacer à la ligne suivante ou précédente" -#: guix/scripts/lint.scm:901 +#: guix/scripts/lint.scm:920 msgid "Validate package descriptions" msgstr "Valider des descriptions de paquets" -#: guix/scripts/lint.scm:905 +#: guix/scripts/lint.scm:924 msgid "Validate synopsis & description of GNU packages" msgstr "Valider le synopsis et la description de paquets GNU" -#: guix/scripts/lint.scm:909 +#: guix/scripts/lint.scm:928 msgid "Identify inputs that should be native inputs" msgstr "Identifier les entrées qui devraient être natives" -#: guix/scripts/lint.scm:913 +#: guix/scripts/lint.scm:932 msgid "Identify inputs that should be inputs at all" msgstr "Identifier les entrées qui devraient être des entrées" -#: guix/scripts/lint.scm:917 +#: guix/scripts/lint.scm:936 msgid "Validate file names and availability of patches" msgstr "Valider les noms de fichiers et la disponibilité de correctifs" -#: guix/scripts/lint.scm:921 +#: guix/scripts/lint.scm:940 msgid "Validate home-page URLs" msgstr "Valider les URL des pages d'accueil" #. TRANSLATORS: is the name of a data type and must not be #. translated. -#: guix/scripts/lint.scm:927 +#: guix/scripts/lint.scm:946 msgid "Make sure the 'license' field is a or a list thereof" msgstr "Assurez vous que le champ « licence » est une ou une telle liste" -#: guix/scripts/lint.scm:932 +#: guix/scripts/lint.scm:951 msgid "Validate source URLs" msgstr "Valider les URL sources" -#: guix/scripts/lint.scm:936 +#: guix/scripts/lint.scm:955 msgid "Suggest 'mirror://' URLs" msgstr "Suggérer les URLs « mirror:// »" -#: guix/scripts/lint.scm:940 +#: guix/scripts/lint.scm:959 msgid "Validate file names of sources" msgstr "Valider les noms des fichiers des sources" -#: guix/scripts/lint.scm:944 +#: guix/scripts/lint.scm:963 msgid "Report failure to compile a package to a derivation" msgstr "Signaler l'échec de la compilation d'un paquet d'une dérivation" -#: guix/scripts/lint.scm:948 +#: guix/scripts/lint.scm:967 msgid "Validate package synopses" msgstr "Valider les synopsis des paquets" -#: guix/scripts/lint.scm:952 +#: guix/scripts/lint.scm:971 msgid "Check the Common Vulnerabilities and Exposures (CVE) database" msgstr "Vérifier la base de données des vulnérabilités et failles connues (CVE)" -#: guix/scripts/lint.scm:957 +#: guix/scripts/lint.scm:976 msgid "Look for formatting issues in the source" msgstr "Rechercher des problèmes de format dans la source" -#: guix/scripts/lint.scm:985 +#: guix/scripts/lint.scm:1004 msgid "" "Usage: guix lint [OPTION]... [PACKAGE]...\n" "Run a set of checkers on the specified package; if none is specified,\n" @@ -1895,7 +1933,7 @@ msgstr "" "Lancer un ensemble de vérificateurs sur le paquet spécifié; si aucun n'est spécifié,\n" "lancer les vérificateurs sur tous les paquets.\n" -#: guix/scripts/lint.scm:988 +#: guix/scripts/lint.scm:1007 msgid "" "\n" " -c, --checkers=CHECKER1,CHECKER2...\n" @@ -1905,7 +1943,7 @@ msgstr "" " -c, --checkers=CHECKER1,CHECKER2...\n" " lancer uniquement les vérificateurs spécifiés" -#: guix/scripts/lint.scm:993 +#: guix/scripts/lint.scm:1012 msgid "" "\n" " -l, --list-checkers display the list of available lint checkers" @@ -1913,12 +1951,12 @@ msgstr "" "\n" " -l, --list-checkers afficher la liste des vérificateurs disponibles" -#: guix/scripts/lint.scm:1013 +#: guix/scripts/lint.scm:1032 #, scheme-format msgid "~a: invalid checker~%" msgstr "~a: vérificateur non valide~%" -#: guix/scripts/publish.scm:58 +#: guix/scripts/publish.scm:67 #, scheme-format msgid "" "Usage: guix publish [OPTION]...\n" @@ -1927,7 +1965,7 @@ msgstr "" "Usage: guix publish [OPTION]...\n" "Diffuser ~a via HTTP.\n" -#: guix/scripts/publish.scm:60 +#: guix/scripts/publish.scm:69 msgid "" "\n" " -p, --port=PORT listen on PORT" @@ -1935,7 +1973,7 @@ msgstr "" "\n" " -p, --port=PORT écouter sur le PORT" -#: guix/scripts/publish.scm:62 +#: guix/scripts/publish.scm:71 msgid "" "\n" " --listen=HOST listen on the network interface for HOST" @@ -1943,7 +1981,7 @@ msgstr "" "\n" " --listen=HÔTE écouter sur l'interface réseau HÔTE" -#: guix/scripts/publish.scm:64 +#: guix/scripts/publish.scm:73 msgid "" "\n" " -u, --user=USER change privileges to USER as soon as possible" @@ -1953,7 +1991,7 @@ msgstr "" " changer les privilèges de UTILISATEUR aussi vite\n" " que possible" -#: guix/scripts/publish.scm:66 +#: guix/scripts/publish.scm:75 msgid "" "\n" " -C, --compression[=LEVEL]\n" @@ -1963,7 +2001,23 @@ msgstr "" " -C, --compression[=NIVEAU]\n" " compresser les archives au NIVEAU" -#: guix/scripts/publish.scm:69 +#: guix/scripts/publish.scm:78 +msgid "" +"\n" +" -c, --cache=DIRECTORY cache published items to DIRECTORY" +msgstr "" +"\n" +" -c, --cache=RÉPERTOIRE mettre les éléments publiés en cache dans le RÉPERTOIRE" + +#: guix/scripts/publish.scm:80 +msgid "" +"\n" +" --workers=N use N workers to bake items" +msgstr "" +"\n" +" --workers=N utiliser N travailleurs pour préparer les éléments" + +#: guix/scripts/publish.scm:82 msgid "" "\n" " --ttl=TTL announce narinfos can be cached for TTL seconds" @@ -1972,7 +2026,31 @@ msgstr "" " --ttl=TTL les annonces narinfos peuvent être mises en cache\n" " pendant TTL secondes" -#: guix/scripts/publish.scm:71 +#: guix/scripts/publish.scm:84 +msgid "" +"\n" +" --nar-path=PATH use PATH as the prefix for nar URLs" +msgstr "" +"\n" +" --nar-path=CHEMIN utiliser le CHEMIN comme préfixe pour les URL nar" + +#: guix/scripts/publish.scm:86 +msgid "" +"\n" +" --public-key=FILE use FILE as the public key for signatures" +msgstr "" +"\n" +" --public-key=FICHIER utiliser le FICHIER comme clé publique pour les signatures" + +#: guix/scripts/publish.scm:88 +msgid "" +"\n" +" --private-key=FILE use FILE as the private key for signatures" +msgstr "" +"\n" +" --private-key=FICHIER utiliser le FICHIER comme clé privée pour les signatures" + +#: guix/scripts/publish.scm:90 msgid "" "\n" " -r, --repl[=PORT] spawn REPL server on PORT" @@ -1980,37 +2058,37 @@ msgstr "" "\n" " -r, --repl[=PORT] créer le serveur REPL sur le PORT" -#: guix/scripts/publish.scm:87 +#: guix/scripts/publish.scm:106 #, scheme-format msgid "lookup of host '~a' failed: ~a~%" msgstr "la recherche de l'hôte « ~a » a échoué: ~a~%" -#: guix/scripts/publish.scm:125 +#: guix/scripts/publish.scm:151 #, scheme-format msgid "lookup of host '~a' returned nothing" msgstr "la recherche de l'hôte « ~a » n'a rien retourné" -#: guix/scripts/publish.scm:138 +#: guix/scripts/publish.scm:164 #, scheme-format msgid "zlib support is missing; compression disabled~%" msgstr "le support zlib est manquant. La compression est désactivée~%" -#: guix/scripts/publish.scm:145 +#: guix/scripts/publish.scm:178 #, scheme-format msgid "~a: invalid duration~%" msgstr "~a: durée non valide~%" -#: guix/scripts/publish.scm:544 +#: guix/scripts/publish.scm:799 #, scheme-format msgid "user '~a' not found: ~a~%" msgstr "utilisateur « ~a » pas trouvé: ~a~%" -#: guix/scripts/publish.scm:581 +#: guix/scripts/publish.scm:840 #, scheme-format msgid "server running as root; consider using the '--user' option!~%" msgstr "le serveur tourne en tant que root. Envisagez d'utiliser l'option « --user » !~%" -#: guix/scripts/publish.scm:583 +#: guix/scripts/publish.scm:845 #, scheme-format msgid "publishing ~a on ~a, port ~d~%" msgstr "diffusion de ~a sur ~a, port ~d~%" @@ -2055,7 +2133,7 @@ msgstr "total" msgid "self" msgstr "lui-même" -#: guix/scripts/size.scm:96 +#: guix/scripts/size.scm:97 #, scheme-format msgid "total: ~,1f MiB~%" msgstr "total: ~,1f MiB~%" @@ -2063,11 +2141,11 @@ msgstr "total: ~,1f MiB~%" #. TRANSLATORS: This is the title of a graph, meaning that the graph #. represents a profile of the store (the "store" being the place where #. packages are stored.) -#: guix/scripts/size.scm:209 +#: guix/scripts/size.scm:211 msgid "store profile" msgstr "profil stockage" -#: guix/scripts/size.scm:218 +#: guix/scripts/size.scm:220 msgid "" "Usage: guix size [OPTION]... PACKAGE\n" "Report the size of PACKAGE and its dependencies.\n" @@ -2075,7 +2153,7 @@ msgstr "" "Usage: guix size [OPTION]... PAQUET\n" "Rapporter la taille du PAQUET et de ses dépendances.\n" -#: guix/scripts/size.scm:223 +#: guix/scripts/size.scm:225 msgid "" "\n" " -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"" @@ -2083,7 +2161,7 @@ msgstr "" "\n" " -s, --system=SYSTÈME prend en compte les paquets pour le SYSTÈME, par exemple « i686-linux »" -#: guix/scripts/size.scm:225 +#: guix/scripts/size.scm:227 msgid "" "\n" " -m, --map-file=FILE write to FILE a graphical map of disk usage" @@ -2091,77 +2169,81 @@ msgstr "" "\n" " -m, --map-file=FICHIER écrit dans le FICHIER une carte graphique de l'utilisation du disque" -#: guix/scripts/size.scm:279 +#: guix/scripts/size.scm:281 msgid "missing store item argument\n" msgstr "argument d'élément de stockage manquant\n" -#: guix/scripts/graph.scm:83 +#: guix/scripts/graph.scm:84 #, scheme-format msgid "~a: invalid argument (package name expected)" msgstr "~a: argument invalide (nom de paquet attendu)" -#: guix/scripts/graph.scm:94 +#: guix/scripts/graph.scm:95 msgid "the DAG of packages, excluding implicit inputs" msgstr "le DAG des paquets en excluant les entrées implicites" -#: guix/scripts/graph.scm:151 +#: guix/scripts/graph.scm:121 +msgid "the reverse DAG of packages" +msgstr "le graphe orienté acyclique (DAG) inversé des paquets" + +#: guix/scripts/graph.scm:171 msgid "the DAG of packages, including implicit inputs" msgstr "le DAG des paquets en incluant les entrées implicites" -#: guix/scripts/graph.scm:161 +#: guix/scripts/graph.scm:181 msgid "the DAG of packages and origins, including implicit inputs" msgstr "le DAG des paquets et origines en incluant les entrées implicites" -#: guix/scripts/graph.scm:192 +#: guix/scripts/graph.scm:211 msgid "same as 'bag', but without the bootstrap nodes" msgstr "comme « bag » mais sans les nÅ“uds d'amorçage" -#: guix/scripts/graph.scm:238 +#: guix/scripts/graph.scm:257 msgid "the DAG of derivations" msgstr "le DAG des dérivations" -#: guix/scripts/graph.scm:250 +#: guix/scripts/graph.scm:269 msgid "unsupported argument for derivation graph" msgstr "argument non supporté pour le graphe de dérivation" -#: guix/scripts/graph.scm:276 +#: guix/scripts/graph.scm:295 msgid "unsupported argument for this type of graph" msgstr "argument non supporté pour ce type de graphe" -#: guix/scripts/graph.scm:289 +#: guix/scripts/graph.scm:308 #, scheme-format msgid "references for '~a' are not known~%" msgstr "les références pour « ~a » sont inconnues~%" -#: guix/scripts/graph.scm:296 +#: guix/scripts/graph.scm:315 msgid "the DAG of run-time dependencies (store references)" msgstr "le DAG des dépendances à l'exécution (stockage des références)" -#: guix/scripts/graph.scm:312 +#: guix/scripts/graph.scm:331 msgid "the DAG of referrers in the store" msgstr "le graphe orienté acyclique (DAG) des référents dans le stockage" -#: guix/scripts/graph.scm:338 +#: guix/scripts/graph.scm:358 #, scheme-format msgid "~a: unknown node type~%" msgstr "~a: type de nÅ“ud inconnu~%" -#: guix/scripts/graph.scm:345 +#: guix/scripts/graph.scm:365 #, scheme-format msgid "~a: unknown backend~%" msgstr "~a: moteur de graphe inconnu~%" -#: guix/scripts/graph.scm:349 +#: guix/scripts/graph.scm:369 msgid "The available node types are:\n" msgstr "Les types de nÅ“uds disponibles sont:\n" -#: guix/scripts/graph.scm:359 +#: guix/scripts/graph.scm:379 msgid "The available backend types are:\n" msgstr "Les types de moteurs de graphes disponibles sont:\n" #. TRANSLATORS: Here 'dot' is the name of a program; it must not be #. translated. -#: guix/scripts/graph.scm:403 +#: guix/scripts/graph.scm:423 msgid "" "Usage: guix graph PACKAGE...\n" "Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n" @@ -2169,7 +2251,7 @@ msgstr "" "Usage: guix graph PAQUET...\n" "Produit une représentation Graphviz (dot) des dépendances de PAQUET...\n" -#: guix/scripts/graph.scm:405 +#: guix/scripts/graph.scm:425 msgid "" "\n" " -b, --backend=TYPE produce a graph with the given backend TYPE" @@ -2177,7 +2259,7 @@ msgstr "" "\n" " -t, --backend=TYPE produire un graphe avec le TYPE de moteur donné" -#: guix/scripts/graph.scm:407 +#: guix/scripts/graph.scm:427 msgid "" "\n" " --list-backends list the available graph backends" @@ -2185,7 +2267,7 @@ msgstr "" "\n" " --list-backends lister les types de moteurs de graphes disponibles" -#: guix/scripts/graph.scm:409 +#: guix/scripts/graph.scm:429 msgid "" "\n" " -t, --type=TYPE represent nodes of the given TYPE" @@ -2193,7 +2275,7 @@ msgstr "" "\n" " -t, --type=TYPE représenter les nÅ“uds du TYPE donné" -#: guix/scripts/graph.scm:411 +#: guix/scripts/graph.scm:431 msgid "" "\n" " --list-types list the available graph types" @@ -2201,7 +2283,7 @@ msgstr "" "\n" " --list-types lister les types de graphes disponibles" -#: guix/scripts/graph.scm:413 +#: guix/scripts/graph.scm:433 guix/scripts/pack.scm:328 msgid "" "\n" " -e, --expression=EXPR consider the package EXPR evaluates to" @@ -2209,42 +2291,42 @@ msgstr "" "\n" " -e, --expression=EXPR considère le paquet évalué par EXPR" -#: guix/scripts/challenge.scm:105 -#, scheme-format -msgid "~a: no substitute at '~a'~%" -msgstr "~a: pas de substitut à « ~a »~%" - -#: guix/scripts/challenge.scm:121 -#, scheme-format -msgid "no substitutes for '~a'~%" -msgstr "pas de substitut pour « ~a »~%" - -#: guix/scripts/challenge.scm:138 guix/scripts/challenge.scm:158 -#, scheme-format -msgid "no local build for '~a'~%" -msgstr "aucune compilation locale pour « ~a »~%" - -#: guix/scripts/challenge.scm:155 -#, scheme-format -msgid "~a contents differ:~%" -msgstr "le contenu de ~a diffère:~%" - -#: guix/scripts/challenge.scm:157 +#: guix/scripts/challenge.scm:191 #, scheme-format msgid " local hash: ~a~%" msgstr " hachage local: ~a~%" -#: guix/scripts/challenge.scm:162 +#: guix/scripts/challenge.scm:192 +#, scheme-format +msgid " no local build for '~a'~%" +msgstr " aucune compilation locale pour « ~a »~%" + +#: guix/scripts/challenge.scm:194 #, scheme-format msgid " ~50a: ~a~%" msgstr " ~50a: ~a~%" -#: guix/scripts/challenge.scm:166 +#: guix/scripts/challenge.scm:202 #, scheme-format -msgid " ~50a: unavailable~%" -msgstr " ~50a: non disponible~%" +msgid "~a contents differ:~%" +msgstr "le contenu de ~a diffère:~%" -#: guix/scripts/challenge.scm:176 +#: guix/scripts/challenge.scm:205 +#, scheme-format +msgid "could not challenge '~a': no local build~%" +msgstr "impossible de mettre « ~a » au défi: aucune construction locale~%" + +#: guix/scripts/challenge.scm:207 +#, scheme-format +msgid "could not challenge '~a': no substitutes~%" +msgstr "impossible de mettre « ~a » au défi: aucune substitution~%" + +#: guix/scripts/challenge.scm:210 +#, scheme-format +msgid "~a contents match:~%" +msgstr "le contenu de ~a correspond:~%" + +#: guix/scripts/challenge.scm:219 msgid "" "Usage: guix challenge [PACKAGE...]\n" "Challenge the substitutes for PACKAGE... provided by one or more servers.\n" @@ -2252,7 +2334,7 @@ msgstr "" "Usage: guix challenge [PAQUET...]\n" "Contrôle les substituts du PAQUET... fourni par un ou plusieurs serveurs.\n" -#: guix/scripts/challenge.scm:178 +#: guix/scripts/challenge.scm:221 msgid "" "\n" " --substitute-urls=URLS\n" @@ -2262,23 +2344,125 @@ msgstr "" " --substitute-urls=URLS\n" " comparer les résultats de compilation avec ceux aux URLS" -#: guix/gnu-maintenance.scm:555 +#: guix/scripts/challenge.scm:224 +msgid "" +"\n" +" -v, --verbose show details about successful comparisons" +msgstr "" +"\n" +" -v, --verbose montrer les détails des comparaisons réussies" + +#: guix/scripts/copy.scm:59 +#, scheme-format +msgid "~a: invalid TCP port number~%" +msgstr "~a: numéro de port TCP invalide~%" + +#: guix/scripts/copy.scm:61 +#, scheme-format +msgid "~a: invalid SSH specification~%" +msgstr "~a: spécification SSH invalide~%" + +#: guix/scripts/copy.scm:112 +msgid "" +"Usage: guix copy [OPTION]... ITEMS...\n" +"Copy ITEMS to or from the specified host over SSH.\n" +msgstr "" +"Usage: guix copy [OPTION]... ÉLÉMENTS...\n" +"Copier les ÉLÉMENTS vers ou depuis l'hôte spécifié en SSH.\n" + +#: guix/scripts/copy.scm:114 +msgid "" +"\n" +" --to=HOST send ITEMS to HOST" +msgstr "" +"\n" +" --to=HÔTE envoyer les ÉLÉMENTS vers l'HÔTE" + +#: guix/scripts/copy.scm:116 +msgid "" +"\n" +" --from=HOST receive ITEMS from HOST" +msgstr "" +"\n" +" --from=HÔTE recevoir les ÉLÉMENTS depuis l'HÔTE" + +#: guix/scripts/copy.scm:168 +#, scheme-format +msgid "use '--to' or '--from'~%" +msgstr "utilisez « --to » ou « --from »~%" + +#: guix/scripts/pack.scm:74 +#, scheme-format +msgid "~a: compressor not found~%" +msgstr "~a: compresseur introuvable~%" + +#: guix/scripts/pack.scm:310 +#, scheme-format +msgid "~a: invalid symlink specification~%" +msgstr "~a: spécification de lien symbolique invalide~%" + +#: guix/scripts/pack.scm:320 +msgid "" +"Usage: guix pack [OPTION]... PACKAGE...\n" +"Create a bundle of PACKAGE.\n" +msgstr "" +"Usage: guix pack [OPTION]... PAQUET...\n" +"Créer un paquet de PAQUET.\n" + +#: guix/scripts/pack.scm:326 +msgid "" +"\n" +" -f, --format=FORMAT build a pack in the given FORMAT" +msgstr "" +"\n" +" -f, --format=FORMAT créer un paquet dans le FORMAT donné" + +#: guix/scripts/pack.scm:334 +msgid "" +"\n" +" -C, --compression=TOOL compress using TOOL--e.g., \"lzip\"" +msgstr "" +"\n" +" -C, --compression=OUTIL compresser en utilisant l'OUTIL, par ex, « lzip »" + +#: guix/scripts/pack.scm:336 +msgid "" +"\n" +" -S, --symlink=SPEC create symlinks to the profile according to SPEC" +msgstr "" +"\n" +" -S, --symlink=SPEC créer des liens symboliques vers le profil selon la SPEC" + +#: guix/scripts/pack.scm:338 +msgid "" +"\n" +" --localstatedir include /var/guix in the resulting pack" +msgstr "" +"\n" +" --localstatedir inclure /var/guix dans le paquet résultant" + +#: guix/scripts/pack.scm:382 +#, scheme-format +msgid "~a: unknown pack format" +msgstr "~a: format de paquet inconnu" + +#: guix/gnu-maintenance.scm:562 msgid "Updater for GNU packages" msgstr "Logiciel de mise à jour des paquets GNU" -#: guix/gnu-maintenance.scm:562 +#: guix/gnu-maintenance.scm:569 msgid "Updater for GNOME packages" msgstr "Logiciel de mise à jour des paquets GNOME" -#: guix/gnu-maintenance.scm:569 +#: guix/gnu-maintenance.scm:576 msgid "Updater for KDE packages" msgstr "Logiciel de mise à jour des paquets KDE" -#: guix/gnu-maintenance.scm:576 +#: guix/gnu-maintenance.scm:583 msgid "Updater for X.org packages" msgstr "Logiciel de mise à jour des paquets X.org" -#: guix/gnu-maintenance.scm:583 +#: guix/gnu-maintenance.scm:590 msgid "Updater for packages hosted on kernel.org" msgstr "Logiciel de mise à jour des paquets hébergés sur kernel.org" @@ -2317,22 +2501,22 @@ msgstr "" msgid "~a: extraneous argument~%" msgstr "~a: argument superflu~%" -#: guix/scripts/container/exec.scm:80 +#: guix/scripts/container/exec.scm:87 #, scheme-format msgid "no pid specified~%" msgstr "aucun pid spécifié~%" -#: guix/scripts/container/exec.scm:83 +#: guix/scripts/container/exec.scm:90 #, scheme-format msgid "no command specified~%" msgstr "aucune commande spécifiée~%" -#: guix/scripts/container/exec.scm:86 +#: guix/scripts/container/exec.scm:93 #, scheme-format msgid "no such process ~d~%" msgstr "aucun processus ~d~%" -#: guix/scripts/container/exec.scm:94 +#: guix/scripts/container/exec.scm:105 #, scheme-format msgid "exec failed with status ~d~%" msgstr "exec a échoué avec le statut ~d~%" @@ -2347,10 +2531,6 @@ msgstr "la vérification de la signature a échoué pour « ~a »~%" msgid "(could be because the public key is not in your keyring)~%" msgstr "(il est possible que la clé publique ne soit pas dans dans votre trousseau)~%" -#: guix/upstream.scm:246 -msgid "gz" -msgstr "gz" - #: guix/upstream.scm:293 #, scheme-format msgid "~a: could not locate source file" @@ -2361,53 +2541,62 @@ msgstr "~a: le fichier source est introuvable" msgid "~a: ~a: no `version' field in source; skipping~%" msgstr "~a: ~a: aucun champ « version » dans la source; ignoré~%" -#: guix/ui.scm:239 +#: guix/ui.scm:241 msgid "entering debugger; type ',bt' for a backtrace\n" msgstr "entrée dans le débogueur; tapez « ,bt » pour la trace inverse\n" -#: guix/ui.scm:255 guix/ui.scm:272 +#: guix/ui.scm:257 guix/ui.scm:278 guix/ui.scm:285 #, scheme-format msgid "failed to load '~a': ~a~%" msgstr "impossible de charger « ~a »: ~a~%" -#: guix/ui.scm:258 +#: guix/ui.scm:260 #, scheme-format msgid "~a: error: ~a~%" msgstr "~a: erreur: ~a~%" -#: guix/ui.scm:261 guix/ui.scm:530 +#: guix/ui.scm:267 guix/ui.scm:554 #, scheme-format msgid "exception thrown: ~s~%" msgstr "exception générée: ~s~%" -#: guix/ui.scm:263 guix/ui.scm:281 +#: guix/ui.scm:269 guix/ui.scm:291 #, scheme-format msgid "failed to load '~a':~%" msgstr "échec lors du chargement de « ~a »:~%" -#: guix/ui.scm:275 +#: guix/ui.scm:281 #, scheme-format msgid "~a: warning: ~a~%" msgstr "~a: avertissement: ~a~%" -#: guix/ui.scm:278 +#: guix/ui.scm:288 #, scheme-format msgid "failed to load '~a': exception thrown: ~s~%" msgstr "échec lors du chargement de « ~a »: exception générée: ~s~%" -#: guix/ui.scm:290 +#: guix/ui.scm:300 #, scheme-format msgid "failed to install locale: ~a~%" msgstr "impossible d'installer l'environnement linguistique: ~a~%" -#: guix/ui.scm:309 +#. TRANSLATORS: Translate "(C)" to the copyright symbol +#. (C-in-a-circle), if this symbol is available in the user's +#. locale. Otherwise, do not translate "(C)"; leave it as-is. */ +#: guix/ui.scm:323 +msgid "(C)" +msgstr "©" + +#: guix/ui.scm:324 +msgid "the Guix authors\n" +msgstr "les auteurs de Guix\n" + +#: guix/ui.scm:325 msgid "" -"Copyright (C) 2016 the Guix authors\n" "License GPLv3+: GNU GPL version 3 or later \n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -"Copyright (C) 2016 les auteurs de Guix\n" "Licence GPLv3+: GNU GPL version 3 ou ultérieure \n" "Ceci est un logiciel libre: vous êtes libre de le modifier et de le redistribuer.\n" "Il n'y a AUCUNE GARANTIE, dans les limites permises par la loi.\n" @@ -2416,7 +2605,7 @@ msgstr "" #. package. Please add another line saying "Report translation bugs to #. ...\n" with the address for translation bugs (typically your translation #. team's web or email address). -#: guix/ui.scm:321 +#: guix/ui.scm:337 #, scheme-format msgid "" "\n" @@ -2426,7 +2615,7 @@ msgstr "" "Signalez toute anomalie à : ~a.\n" "Signalez toute erreur de traduction à : traduc@traduc.org" -#: guix/ui.scm:323 +#: guix/ui.scm:339 #, scheme-format msgid "" "\n" @@ -2435,7 +2624,7 @@ msgstr "" "\n" "~a page d'accueil: <~a>" -#: guix/ui.scm:325 +#: guix/ui.scm:341 msgid "" "\n" "General help using GNU software: " @@ -2443,199 +2632,204 @@ msgstr "" "\n" "Aide générale sur l'utilisation des logiciels GNU: " -#: guix/ui.scm:370 +#: guix/ui.scm:386 #, scheme-format msgid "'~a' is not a valid regular expression: ~a~%" msgstr "« ~a » n'est pas une expression rationnelle valide: ~a~%" -#: guix/ui.scm:376 +#: guix/ui.scm:392 #, scheme-format msgid "~a: invalid number~%" msgstr "~a: nombre non valide~%" -#: guix/ui.scm:393 +#: guix/ui.scm:409 #, scheme-format msgid "invalid number: ~a~%" msgstr "nombre non valide: ~a~%" -#: guix/ui.scm:416 +#: guix/ui.scm:432 #, scheme-format msgid "unknown unit: ~a~%" msgstr "unité inconnue: ~a~%" -#: guix/ui.scm:433 +#: guix/ui.scm:449 #, scheme-format msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" msgstr "~a:~a:~a: le paquet « ~a » a une entrée non valide: ~s~%" -#: guix/ui.scm:440 +#: guix/ui.scm:456 #, scheme-format msgid "~a: ~a: build system `~a' does not support cross builds~%" msgstr "~a: ~a: le système de compilation « ~a » ne supporte pas la compilation croisée~%" -#: guix/ui.scm:445 +#: guix/ui.scm:462 +#, scheme-format +msgid "~s: invalid G-expression input~%" +msgstr "~s: entrée G-expression invalide~%" + +#: guix/ui.scm:465 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "le profile « ~a » n'existe pas~%" -#: guix/ui.scm:448 +#: guix/ui.scm:468 #, scheme-format msgid "generation ~a of profile '~a' does not exist~%" msgstr "la génération ~a du profile « ~a » n'existe pas~%" -#: guix/ui.scm:455 +#: guix/ui.scm:475 #, scheme-format msgid "corrupt input while restoring '~a' from ~s~%" msgstr "entrée corrompue en restaurant « ~a » depuis ~s~%" -#: guix/ui.scm:457 +#: guix/ui.scm:477 #, scheme-format msgid "corrupt input while restoring archive from ~s~%" msgstr "entrée corrompue en restaurant l'archive depuis ~s~%" -#: guix/ui.scm:460 +#: guix/ui.scm:480 #, scheme-format msgid "failed to connect to `~a': ~a~%" msgstr "impossible de se connecter à « ~a »: ~a~%" -#: guix/ui.scm:465 +#: guix/ui.scm:485 #, scheme-format msgid "build failed: ~a~%" msgstr "la compilation a échoué: ~a~%" -#: guix/ui.scm:468 +#: guix/ui.scm:488 #, scheme-format msgid "reference to invalid output '~a' of derivation '~a'~%" msgstr "référence à la sortie invalide « ~a » de la dérivation « ~a »~%" -#: guix/ui.scm:472 +#: guix/ui.scm:492 #, scheme-format msgid "file '~a' could not be found in these directories:~{ ~a~}~%" msgstr "le fichier « ~a » n'a pas été trouvé dans ces répertoires:~{ ~a~}~%" -#: guix/ui.scm:484 +#: guix/ui.scm:504 #, scheme-format msgid "~a: ~a~%" msgstr "~a: ~a~%" -#: guix/ui.scm:519 +#: guix/ui.scm:539 #, scheme-format msgid "failed to read expression ~s: ~s~%" msgstr "impossible de lire l'expression ~s: ~s~%" -#: guix/ui.scm:525 +#: guix/ui.scm:545 #, scheme-format msgid "failed to evaluate expression '~a':~%" msgstr "impossible d'évaluer l'expression « ~a »:~%" -#: guix/ui.scm:528 +#: guix/ui.scm:548 #, scheme-format msgid "syntax error: ~a~%" msgstr "erreur de syntaxe: ~a~%" -#: guix/ui.scm:542 +#: guix/ui.scm:566 #, scheme-format msgid "expression ~s does not evaluate to a package~%" msgstr "l'expression ~s ne correspond à aucun paquet~%" -#: guix/ui.scm:604 +#: guix/ui.scm:628 #, scheme-format msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" msgstr[0] "~:[La dérivation suivante serait compilée:~%~{ ~a~%~}~;~]" msgstr[1] "~:[Les dérivations suivantes seraient compilées:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:609 +#: guix/ui.scm:633 #, scheme-format msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Le fichier suivant serait téléchargé:~%~{ ~a~%~}~;~]" msgstr[1] "~:[Les fichiers suivants seraient téléchargés:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:615 +#: guix/ui.scm:639 #, scheme-format msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" msgstr[0] "~:[La dérivation suivante sera compilée:~%~{ ~a~%~}~;~]" msgstr[1] "~:[Les dérivations suivantes seront compilées:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:620 +#: guix/ui.scm:644 #, scheme-format msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Le fichier suivant sera téléchargé:~%~{ ~a~%~}~;~]" msgstr[1] "~:[Les fichiers suivants seront téléchargés:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:675 +#: guix/ui.scm:700 #, scheme-format msgid "The following package would be removed:~%~{~a~%~}~%" msgid_plural "The following packages would be removed:~%~{~a~%~}~%" msgstr[0] "Le paquet suivant serait supprimé:~%~{~a~%~}~%" msgstr[1] "Les paquets suivants seraient supprimés:~%~{~a~%~}~%" -#: guix/ui.scm:680 +#: guix/ui.scm:705 #, scheme-format msgid "The following package will be removed:~%~{~a~%~}~%" msgid_plural "The following packages will be removed:~%~{~a~%~}~%" msgstr[0] "Le paquet suivant sera supprimé:~%~{~a~%~}~%" msgstr[1] "Les paquets suivants seront supprimés:~%~{~a~%~}~%" -#: guix/ui.scm:693 +#: guix/ui.scm:718 #, scheme-format msgid "The following package would be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" msgstr[0] "Le paquet suivant serait mis à une version inférieure:~%~{~a~%~}~%" msgstr[1] "Les paquets suivants seraient mis à des versions inférieures:~%~{~a~%~}~%" -#: guix/ui.scm:698 +#: guix/ui.scm:723 #, scheme-format msgid "The following package will be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" msgstr[0] "Le paquet suivant sera mis à une version inférieure:~%~{~a~%~}~%" msgstr[1] "Les paquets suivants seront mis à des versions inférieures:~%~{~a~%~}~%" -#: guix/ui.scm:711 +#: guix/ui.scm:736 #, scheme-format msgid "The following package would be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" msgstr[0] "Le paquet suivant serait mis à jour:~%~{~a~%~}~%" msgstr[1] "Les paquets suivants seraient mis à jour:~%~{~a~%~}~%" -#: guix/ui.scm:716 +#: guix/ui.scm:741 #, scheme-format msgid "The following package will be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" msgstr[0] "Le paquet suivant sera mis à jour:~%~{~a~%~}~%" msgstr[1] "Les paquets suivants seront mis à jour:~%~{~a~%~}~%" -#: guix/ui.scm:727 +#: guix/ui.scm:752 #, scheme-format msgid "The following package would be installed:~%~{~a~%~}~%" msgid_plural "The following packages would be installed:~%~{~a~%~}~%" msgstr[0] "Le paquet suivant serait installé:~%~{~a~%~}~%" msgstr[1] "Les paquets suivants seraient installés:~%~{~a~%~}~%" -#: guix/ui.scm:732 +#: guix/ui.scm:757 #, scheme-format msgid "The following package will be installed:~%~{~a~%~}~%" msgid_plural "The following packages will be installed:~%~{~a~%~}~%" msgstr[0] "Le paquet suivant sera installé:~%~{~a~%~}~%" msgstr[1] "Les paquets suivants seront installés:~%~{~a~%~}~%" -#: guix/ui.scm:749 +#: guix/ui.scm:774 msgid "" msgstr "" -#: guix/ui.scm:768 +#: guix/ui.scm:793 #, scheme-format msgid "failed to create configuration directory `~a': ~a~%" msgstr "impossible de créer le répertoire de configuration « ~a »: ~a~%" -#: guix/ui.scm:891 guix/ui.scm:905 +#: guix/ui.scm:924 guix/ui.scm:938 msgid "unknown" msgstr "inconnu" -#: guix/ui.scm:1063 +#: guix/ui.scm:1097 #, scheme-format msgid "Generation ~a\t~a" msgstr "Génération ~a\t~a" @@ -2643,27 +2837,27 @@ msgstr "Génération ~a\t~a" #. TRANSLATORS: The word "current" here is an adjective for #. "Generation", as in "current generation". Use the appropriate #. gender where applicable. -#: guix/ui.scm:1073 +#: guix/ui.scm:1107 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(actuel)~%" -#: guix/ui.scm:1116 +#: guix/ui.scm:1150 #, scheme-format msgid "switched from generation ~a to ~a~%" msgstr "passé de la génération ~a à ~a~%" -#: guix/ui.scm:1132 +#: guix/ui.scm:1166 #, scheme-format msgid "deleting ~a~%" msgstr "suppression de ~a~%" -#: guix/ui.scm:1163 +#: guix/ui.scm:1197 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Essayez « guix --help » pour plus d'informations.~%" -#: guix/ui.scm:1191 +#: guix/ui.scm:1225 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -2671,33 +2865,34 @@ msgstr "" "Usage: guix COMMANDE ARGS...\n" "Lance la COMMANDE avec les arguments ARGS.\n" -#: guix/ui.scm:1194 +#: guix/ui.scm:1228 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "COMMANDE doit être une des sous-commandes listées ci-dessous:\n" -#: guix/ui.scm:1214 +#: guix/ui.scm:1248 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: commande introuvable~%" -#: guix/ui.scm:1233 +#: guix/ui.scm:1267 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: nom de commande manquant~%" -#: guix/ui.scm:1241 +#: guix/ui.scm:1275 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: option « ~a » non reconnue ~%" -#: guix/http-client.scm:270 +#: guix/http-client.scm:265 #, scheme-format msgid "following redirection to `~a'...~%" msgstr "redirection vers « ~a »...~%" -#: guix/http-client.scm:279 -msgid "download failed" -msgstr "le téléchargement a échoué" +#: guix/http-client.scm:277 +#, scheme-format +msgid "~a: HTTP download failed: ~a (~s)" +msgstr "~a: le téléchargement HTTP a échoué: ~a (~s)" #: guix/nar.scm:155 msgid "signature is not a valid s-expression" @@ -2849,25 +3044,41 @@ msgstr "écoute sur SOCKET pour des connexions" msgid "produce debugging output" msgstr "produit une sortie de déboguage" -#: nix/nix-daemon/guix-daemon.cc:201 -#, c-format -msgid "error: %s: invalid number of rounds\n" -msgstr "erreur: %s: nombre de tours invalide\n" +#~ msgid "deprecated NAME-VERSION syntax; use NAME@VERSION instead~%" +#~ msgstr "syntaxe NOM-VERSION dépréciée. Utilisez plutôt NOM@VERSION~%" -#: nix/nix-daemon/guix-daemon.cc:220 nix/nix-daemon/guix-daemon.cc:396 -#, c-format -msgid "error: %s\n" -msgstr "erreur: %s\n" +#~ msgid "/" +#~ msgstr "/" -#: nix/nix-daemon/guix-daemon.cc:281 -#, c-format -msgid "error: libgcrypt version mismatch\n" -msgstr "erreur: désaccord de version de libgcrypt\n" +#~ msgid "~A: unexpected argument~%" +#~ msgstr "~A: argument inattendu~%" -#: nix/nix-daemon/guix-daemon.cc:372 -#, c-format -msgid "warning: daemon is running as root, so using `--build-users-group' is highly recommended\n" -msgstr "avertissement: le daemon fonctionne en tant que root, l'utilisation de « --build-users-group » est fortement recommandée\n" +#~ msgid "~a: no substitute at '~a'~%" +#~ msgstr "~a: pas de substitut à « ~a »~%" + +#~ msgid "no substitutes for '~a'~%" +#~ msgstr "pas de substitut pour « ~a »~%" + +#~ msgid " ~50a: unavailable~%" +#~ msgstr " ~50a: non disponible~%" + +#~ msgid "gz" +#~ msgstr "gz" + +#~ msgid "download failed" +#~ msgstr "le téléchargement a échoué" + +#~ msgid "error: %s: invalid number of rounds\n" +#~ msgstr "erreur: %s: nombre de tours invalide\n" + +#~ msgid "error: %s\n" +#~ msgstr "erreur: %s\n" + +#~ msgid "error: libgcrypt version mismatch\n" +#~ msgstr "erreur: désaccord de version de libgcrypt\n" + +#~ msgid "warning: daemon is running as root, so using `--build-users-group' is highly recommended\n" +#~ msgstr "avertissement: le daemon fonctionne en tant que root, l'utilisation de « --build-users-group » est fortement recommandée\n" #~ msgid "unsupported argument for reference graph" #~ msgstr "argument non supporté pour le graphe de référence" From 2253477e6f33224473451641573d78d430e7ecdf Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 11 May 2017 23:46:46 +0200 Subject: [PATCH 343/386] gnu: cryptsetup-static: Fix FTBFS with lvm2-static@2.02.171. * gnu/packages/cryptsetup.scm (cryptsetup-static)[arguments]<#:configure-flags>: Add "-lm" to LIBS. --- gnu/packages/cryptsetup.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cryptsetup.scm b/gnu/packages/cryptsetup.scm index 900b004a50..97d35f6693 100644 --- a/gnu/packages/cryptsetup.scm +++ b/gnu/packages/cryptsetup.scm @@ -81,8 +81,8 @@ files). This assumes LIBRARY uses Libtool." '(#:configure-flags '("--disable-shared" "--enable-static-cryptsetup" - ;; 'libdevmapper.a' pulls in libpthread and libudev. - "LIBS=-ludev -pthread") + ;; 'libdevmapper.a' pulls in libpthread, libudev and libm. + "LIBS=-ludev -pthread -lm") #:allowed-references () ;this should be self-contained From d231fe0a9b6354e281c916e3d91207f1648534e1 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 12 May 2017 00:32:41 +0200 Subject: [PATCH 344/386] gnu: miniupnpc: Fix CVE-2017-8798. * gnu/packages/patches/miniupnpc-CVE-2017-8798.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/upnp.scm (miniupnpc)[source]: Use it. --- gnu/local.mk | 1 + .../patches/miniupnpc-CVE-2017-8798.patch | 55 +++++++++++++++++++ gnu/packages/upnp.scm | 1 + 3 files changed, 57 insertions(+) create mode 100644 gnu/packages/patches/miniupnpc-CVE-2017-8798.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5c48e1ba46..b7800a4205 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -807,6 +807,7 @@ dist_patch_DATA = \ %D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch \ %D%/packages/patches/metabat-remove-compilation-date.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ + %D%/packages/patches/miniupnpc-CVE-2017-8798.patch \ %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \ %D%/packages/patches/mpc123-initialize-ao.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \ diff --git a/gnu/packages/patches/miniupnpc-CVE-2017-8798.patch b/gnu/packages/patches/miniupnpc-CVE-2017-8798.patch new file mode 100644 index 0000000000..24eed60af9 --- /dev/null +++ b/gnu/packages/patches/miniupnpc-CVE-2017-8798.patch @@ -0,0 +1,55 @@ +Fix CVE-2017-8798. + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8798 +http://seclists.org/oss-sec/2017/q2/247 + +Patch copied from upstream source repository, with Changelog entry removed: + +https://github.com/miniupnp/miniupnp/commit/f0f1f4b22d6a98536377a1bb07e7c20e4703d229 + +diff --git a/miniwget.c b/miniwget.c +index 37cb47b..1eda57c 100644 +--- a/miniwget.c ++++ b/miniwget.c +@@ -284,11 +284,12 @@ getHTTPResponse(int s, int * size, int * status_code) + goto end_of_stream; + } + } +- bytestocopy = ((int)chunksize < (n - i))?chunksize:(unsigned int)(n - i); ++ /* it is guaranteed that (n >= i) */ ++ bytestocopy = (chunksize < (unsigned int)(n - i))?chunksize:(unsigned int)(n - i); + if((content_buf_used + bytestocopy) > content_buf_len) + { + char * tmp; +- if(content_length >= (int)(content_buf_used + bytestocopy)) { ++ if((content_length >= 0) && ((unsigned int)content_length >= (content_buf_used + bytestocopy))) { + content_buf_len = content_length; + } else { + content_buf_len = content_buf_used + bytestocopy; +@@ -313,14 +314,15 @@ getHTTPResponse(int s, int * size, int * status_code) + { + /* not chunked */ + if(content_length > 0 +- && (int)(content_buf_used + n) > content_length) { ++ && (content_buf_used + n) > (unsigned int)content_length) { + /* skipping additional bytes */ + n = content_length - content_buf_used; + } + if(content_buf_used + n > content_buf_len) + { + char * tmp; +- if(content_length >= (int)(content_buf_used + n)) { ++ if(content_length >= 0 ++ && (unsigned int)content_length >= (content_buf_used + n)) { + content_buf_len = content_length; + } else { + content_buf_len = content_buf_used + n; +@@ -340,7 +342,7 @@ getHTTPResponse(int s, int * size, int * status_code) + } + } + /* use the Content-Length header value if available */ +- if(content_length > 0 && (int)content_buf_used >= content_length) ++ if(content_length > 0 && content_buf_used >= (unsigned int)content_length) + { + #ifdef DEBUG + printf("End of HTTP content\n"); diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index a3a6e848fb..645e9a6573 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -34,6 +34,7 @@ (method url-fetch) (uri (string-append "https://miniupnp.tuxfamily.org/files/" name "-" version ".tar.gz")) + (patches (search-patches "miniupnpc-CVE-2017-8798.patch")) (sha256 (base32 "0n11m2wq812zms5b21h8ihw1kbyaihj9nqjiida0hskf4dmw4m13")))) (build-system gnu-build-system) From 864704212f4af3fba2ade784f9ac175bb685d53f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Sat, 6 May 2017 10:30:22 +0200 Subject: [PATCH 345/386] gnu: emacs-ag: Propagate the-silver-searcher. This allows emacs-ag to be used on remote systems. * gnu/packages/emacs.scm (emacs-ag)[inputs]: Remove. Move THE-SILVER-SEARCHER to... [propagated-inputs]: ... here. [arguments]: Remove 'patch-exec-paths' phase. --- gnu/packages/emacs.scm | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 6e095caadd..21120b3314 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1125,13 +1125,6 @@ than @code{electric-indent-mode}.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'install 'patch-exec-paths - (lambda* (#:key inputs #:allow-other-keys) - (emacs-substitute-variables "ag.el" - ("ag-executable" - (string-append (assoc-ref inputs "the-silver-searcher") - "/bin/ag"))) - #t)) (add-before 'install 'make-info (lambda _ (with-directory-excursion "docs" @@ -1142,14 +1135,14 @@ than @code{electric-indent-mode}.") (info (string-append out "/share/info"))) (install-file "docs/_build/texinfo/agel.info" info) #t)))))) - (inputs - `(("the-silver-searcher" ,the-silver-searcher))) (native-inputs `(("python-sphinx" ,python-sphinx) ("texinfo" ,texinfo))) (propagated-inputs `(("dash" ,emacs-dash) - ("s" ,emacs-s))) + ("s" ,emacs-s) + ;; We need to use 'ag' as the executable on remote systems. + ("the-silver-searcher" ,the-silver-searcher))) (home-page "https://github.com/Wilfred/ag.el") (synopsis "Front-end for ag (the-silver-searcher) for Emacs") (description "This package provides the ability to use the silver From 602db62c7c746f777cda62aff9e5450d041f488f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 May 2017 11:53:08 +0200 Subject: [PATCH 346/386] gnu: talloc: Add static variant. * gnu/packages/samba.scm (talloc/static): New variable. --- gnu/packages/samba.scm | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 5bcd5980a1..623ef93a4e 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2015 Ludovic Courtès +;;; Copyright © 2013, 2015, 2017 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira @@ -25,6 +25,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix licenses) + #:use-module (guix utils) #:use-module (gnu packages acl) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) @@ -252,6 +253,44 @@ Desktops into Active Directory environments using the winbind daemon.") destructors. It is the core memory allocator used in Samba.") (license gpl3+))) ;; The bundled "replace" library uses LGPL3. +(define-public talloc/static + (package + (inherit talloc) + (name "talloc-static") + (synopsis + "Hierarchical, reference counted memory pool system (static library)") + (arguments + (substitute-keyword-arguments (package-arguments talloc) + ((#:phases phases) + ;; Since Waf, the build system talloc uses, apparently does not + ;; support building static libraries from a ./configure flag, roll our + ;; own build process. No need to be ashamed, we're not the only ones + ;; doing that: + ;; . + ;; :-) + `(modify-phases ,phases + (replace 'build + (lambda _ + (letrec-syntax ((shell (syntax-rules () + ((_ (command ...) rest ...) + (and (zero? (system* command ...)) + (shell rest ...))) + ((_) + #t)))) + (shell ("gcc" "-c" "-Ibin/default" "-I" "lib/replace" + "-I." "-Wall" "-g" "talloc.c") + ("ar" "rc" "libtalloc.a" "talloc.o"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (include (string-append out "/include"))) + (mkdir-p lib) + (install-file "libtalloc.a" lib) + (install-file "talloc.h" include) + #t))) + (delete 'check))))))) ;XXX: tests rely on Python modules + (define-public tevent (package (name "tevent") From b9048a14b197fc8b5d1ce9fe7732329c4dd47451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 May 2017 11:55:14 +0200 Subject: [PATCH 347/386] gnu: proot: Add statically-linked variant. * gnu/packages/linux.scm (proot-static): New variable. --- gnu/packages/linux.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 94464d592a..3c6ea77682 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3885,3 +3885,25 @@ generic process instrumentation engine thanks to its extension mechanism. Technically PRoot relies on @code{ptrace}, an unprivileged system-call available in the kernel Linux.") (license license:gpl2+))) + +(define-public proot-static + (package + (inherit proot) + (name "proot-static") + (synopsis + "Unprivileged chroot, bind mount, and binfmt_misc (statically linked)") + (inputs `(("talloc" ,talloc/static))) + (arguments + (substitute-keyword-arguments (package-arguments proot) + ((#:make-flags flags) + `(cons "LDFLAGS = -ltalloc -static -static-libgcc" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'strip 'remove-store-references + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + (remove-store-references "bin/proot") + #t)))))) + ((#:allowed-references _ '("out")) + '("out")))))) From aa9c221f741d59ae88bfa1ce24663b8e4384e091 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 12 May 2017 00:50:38 +0200 Subject: [PATCH 348/386] gnu: psmisc: Update to 22.21. * gnu/packages/linux.scm (psmisc): Update to 22.21. [home-page]: Update. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 3c6ea77682..9cdd45c029 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -468,7 +468,7 @@ at login. Local and dynamic reconfiguration are its key features.") (define-public psmisc (package (name "psmisc") - (version "22.20") + (version "22.21") (source (origin (method url-fetch) @@ -476,10 +476,10 @@ at login. Local and dynamic reconfiguration are its key features.") version ".tar.gz")) (sha256 (base32 - "052mfraykmxnavpi8s78aljx8w87hyvpx8mvzsgpjsjz73i28wmi")))) + "0nhlm1vrrwn4a845p6y4nnnb4liq70n74zbdd5dq844jc6nkqclp")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) - (home-page "http://psmisc.sourceforge.net/") + (home-page "https://gitlab.com/psmisc/psmisc") (synopsis "Small utilities that use the proc file system") (description From 0ed81d04762bcec0cb4d06e6d9a301c9504caf2f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 12 May 2017 00:53:51 +0200 Subject: [PATCH 349/386] gnu: kbd: Set home page to kbd-project.org. * gnu/packages/linux.scm (kbd)[home-page]: Update. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 9cdd45c029..7bb26c72f5 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1685,7 +1685,7 @@ system.") ("bzip2" ,bzip2) ("pam" ,linux-pam))) (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "ftp://ftp.kernel.org/pub/linux/utils/kbd/") + (home-page "http://kbd-project.org/") (synopsis "Linux keyboard utilities and keyboard maps") (description "This package contains keytable files and keyboard utilities compatible From ae836e513e366744aa57fcb0104ffc95e47080ad Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 12 May 2017 13:47:26 +0200 Subject: [PATCH 350/386] gnu: cryptsetup: Update to 1.7.5. * gnu/packages/cryptsetup.scm (cryptsetup): Update to 1.7.5. --- gnu/packages/cryptsetup.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cryptsetup.scm b/gnu/packages/cryptsetup.scm index 97d35f6693..9df26edc77 100644 --- a/gnu/packages/cryptsetup.scm +++ b/gnu/packages/cryptsetup.scm @@ -32,7 +32,7 @@ (define-public cryptsetup (package (name "cryptsetup") - (version "1.7.4") + (version "1.7.5") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/cryptsetup/v" @@ -40,7 +40,7 @@ "/" name "-" version ".tar.xz")) (sha256 (base32 - "05m0ric8anrkl62smk8rafgi30j9jrxw20qzss9gnf4sywz8kkvw")))) + "1gail831j826lmpdx2gsc83lp3br6wfnwh3vqwxaa1nn1lfwsc1b")))) (build-system gnu-build-system) (inputs `(("libgcrypt" ,libgcrypt) From d7b344c5cde517e5b50be5f9cd2d5d07621cb8b1 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 12 May 2017 15:00:59 +0200 Subject: [PATCH 351/386] gnu: rocksdb: Disable tests on 32-bit systems. * gnu/packages/databases.scm (rocksdb)[arguments]: Make #:tests? conditional. Delete unnecessary 'build' phase. Move portability environment variable before check phase. --- gnu/packages/databases.scm | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 19ae1ecedc..29554e95a8 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -586,9 +586,15 @@ types are supported, as is encryption.") #t)))) (build-system gnu-build-system) (arguments - '(#:make-flags (list "CC=gcc" + `(#:make-flags (list "CC=gcc" (string-append "INSTALL_PATH=" (assoc-ref %outputs "out"))) + ;; Many tests fail on 32-bit platforms. There are multiple reports about + ;; this upstream, but it's not going to be supported any time soon. + #:tests? (let ((system ,(or (%current-target-system) + (%current-system)))) + (or (string-prefix? "x86_64-linux" system) + (string-prefix? "aarch64-linux" system))) #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-Makefile @@ -601,6 +607,13 @@ types are supported, as is encryption.") (("#!/bin/sh") (string-append "#!" (which "sh")))) #t)) (delete 'configure) + ;; The default target is only needed for tests and built on demand. + (delete 'build) + (add-before 'check 'disable-optimizations + (lambda _ + ;; Prevent the build from passing '-march=native' to the compiler. + (setenv "PORTABLE" "1") + #t)) (add-before 'check 'disable-failing-tests (lambda _ (substitute* "Makefile" @@ -617,8 +630,6 @@ types are supported, as is encryption.") ;; targets for release builds so we build them here for clarity. ;; TODO: Add debug output. (lambda* (#:key (make-flags '()) #:allow-other-keys) - ;; Prevent the build from adding machine-specific optimizations. - (setenv "PORTABLE" "1") (zero? (apply system* "make" "shared_lib" make-flags))))))) (native-inputs `(("parallel" ,parallel) From ace41d5071b62b49a3bf1cbff00155fa6c85d54d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 12 May 2017 15:18:35 +0200 Subject: [PATCH 352/386] gnu: openvpn: Update to 2.4.2 [fixes CVE-2017-7478, CVE-2017-7479]. * gnu/packages/vpn.scm (openvpn): Update to 2.4.2. --- gnu/packages/vpn.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index efb46f73d4..98d8bd115d 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -153,7 +153,7 @@ and probably others.") (define-public openvpn (package (name "openvpn") - (version "2.4.0") + (version "2.4.2") (source (origin (method url-fetch) (uri (string-append @@ -161,7 +161,7 @@ and probably others.") version ".tar.xz")) (sha256 (base32 - "0zpqnbhjaifdalyxwmvk5kcyd7cpxbcigbn7967nbsyvl54vl8vg")))) + "1ydzy5i7yaifz0v1ivrckksvm0nkkx5sia3g5y5b1xkx9cw4yp6z")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-iproute2=yes"))) From ffed9eabcc1dd368d28f89728b2b901a180f5e19 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 24 Apr 2017 00:41:49 +0200 Subject: [PATCH 353/386] gnu: Add lierolibre. * gnu/packages/patches/lierolibre-check-unaligned-access.patch, gnu/packages/patches/lierolibre-is-free-software.patch, gnu/packages/patches/lierolibre-remove-arch-warning.patch, gnu/packages/patches/lierolibre-try-building-other-arch.patch, gnu/packages/patches/lierolibre-newer-libconfig.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/games.scm (lierolibre): New variable. --- gnu/local.mk | 5 + gnu/packages/games.scm | 65 ++++++ .../lierolibre-check-unaligned-access.patch | 30 +++ .../patches/lierolibre-is-free-software.patch | 38 ++++ .../patches/lierolibre-newer-libconfig.patch | 190 ++++++++++++++++++ .../lierolibre-remove-arch-warning.patch | 30 +++ .../lierolibre-try-building-other-arch.patch | 56 ++++++ 7 files changed, 414 insertions(+) create mode 100644 gnu/packages/patches/lierolibre-check-unaligned-access.patch create mode 100644 gnu/packages/patches/lierolibre-is-free-software.patch create mode 100644 gnu/packages/patches/lierolibre-newer-libconfig.patch create mode 100644 gnu/packages/patches/lierolibre-remove-arch-warning.patch create mode 100644 gnu/packages/patches/lierolibre-try-building-other-arch.patch diff --git a/gnu/local.mk b/gnu/local.mk index b7800a4205..8599e6d3a0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -776,6 +776,11 @@ dist_patch_DATA = \ %D%/packages/patches/libxslt-generated-ids.patch \ %D%/packages/patches/libxslt-CVE-2016-4738.patch \ %D%/packages/patches/libxt-guix-search-paths.patch \ + %D%/packages/patches/lierolibre-check-unaligned-access.patch \ + %D%/packages/patches/lierolibre-is-free-software.patch \ + %D%/packages/patches/lierolibre-newer-libconfig.patch \ + %D%/packages/patches/lierolibre-remove-arch-warning.patch \ + %D%/packages/patches/lierolibre-try-building-other-arch.patch \ %D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b47a661935..3517f06acf 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 nee ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,6 +91,7 @@ #:use-module (gnu packages ocaml) #:use-module (gnu packages python) #:use-module (gnu packages readline) + #:use-module (gnu packages textutils) #:use-module (gnu packages xorg) #:use-module (gnu packages pkg-config) #:use-module (gnu packages databases) @@ -2693,6 +2695,69 @@ your way through an underground cave system in search of the Grue. Can you capture it and get out alive?") (license license:agpl3+))) +(define-public lierolibre + (package + (name "lierolibre") + (version "0.5") + (source (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/lierolibre/trunk/" + version "/+download/lierolibre-" + version ".tar.xz")) + (sha256 + (base32 + "1cf1gvsn4qq190lrf9k5bpjnqwlcfw7pajvdnh7z5r4jqw0rsbl9")) + (patches + (search-patches "lierolibre-check-unaligned-access.patch" + "lierolibre-try-building-other-arch.patch" + "lierolibre-remove-arch-warning.patch" + "lierolibre-newer-libconfig.patch" + "lierolibre-is-free-software.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete pre-compiled files. + (delete-file "data/LIERO.CHR") + (delete-file "data/LIERO.SND") + #t)))) + (build-system gnu-build-system) + (native-inputs + `(("imagemagick" ,imagemagick) + ("pkg-config" ,pkg-config) + ("util-linux" ,util-linux) + ("sox" ,sox))) + (inputs + `(("boost" ,boost) + ("libconfig" ,libconfig) + ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer))) + ("zlib" ,zlib))) + (home-page "https://gitlab.com/lierolibre/lierolibre") + (synopsis "Old-school earthworm action game") + (description + "lierolibre is an earthworm action game where you fight another player +(or the computer) underground using a wide array of weapons. + +Features: +@itemize +@item 2 worms, 40 weapons, great playability, two game modes: Kill'em All +and Game of Tag, plus AI-players without true intelligence! +@item Dat nostalgia. +@item Extensions via a hidden F1 menu: +@itemize +@item Replays +@item Game controller support +@item Powerlevel palettes +@end itemize +@item Ability to write game variables to plain text files. +@item Ability to load game variables from both EXE and plain text files. +@item Scripts to extract and repack graphics, sounds and levels. +@end itemize + +To switch between different window sizes, use F6, F7 and F8, to switch to +fullscreen, use F5 or Alt+Enter.") + ;; Code mainly BSD-2, some parts under Boost 1.0. All assets are WTFPL2. + (license (list license:bsd-2 license:boost1.0 license:wtfpl2)))) + (define-public warzone2100 (package (name "warzone2100") diff --git a/gnu/packages/patches/lierolibre-check-unaligned-access.patch b/gnu/packages/patches/lierolibre-check-unaligned-access.patch new file mode 100644 index 0000000000..b720c9eb3b --- /dev/null +++ b/gnu/packages/patches/lierolibre-check-unaligned-access.patch @@ -0,0 +1,30 @@ +Patch copied from Debian: + +https://anonscm.debian.org/cgit/pkg-games/lierolibre.git/tree/debian/patches/0001-Use-unaligned-access-define-over-checking-arch.patch?id=82910748906855f6e6bfe30b3f077e8c793ae424 + +From 396f19b6b7743d394307f70f0c0108419824437b Mon Sep 17 00:00:00 2001 +From: Martin Erik Werner +Date: Sun, 28 Jun 2015 16:31:34 +0200 +Subject: [PATCH 1/3] Use unaligned access define over checking arch + +This todo item seems like it done, and just needed implementing... +--- + io/encoding.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gvl/io/encoding.hpp b/src/gvl/io/encoding.hpp +index c491677..89bb612 100644 +--- a/src/gvl/io/encoding.hpp ++++ b/src/gvl/io/encoding.hpp +@@ -374,7 +374,7 @@ struct octet_stream_writer + // inlining of the common case + if(std::size_t(end_ - cur_) >= len) + { +-#if GVL_X86 || GVL_X86_64 // TODO: A define that says whether unaligned access is allowed ++#if GVL_UNALIGNED_ACCESS + if(len < 64) // TODO: Tweak this limit + { + while(len > 4) +-- +2.4.6 + diff --git a/gnu/packages/patches/lierolibre-is-free-software.patch b/gnu/packages/patches/lierolibre-is-free-software.patch new file mode 100644 index 0000000000..626a24dd8c --- /dev/null +++ b/gnu/packages/patches/lierolibre-is-free-software.patch @@ -0,0 +1,38 @@ +Remove outdated license text. See COPYING and the description +at http://liero.be/ for more information. + +--- a/data/LIEROENG.TXT ++++ b/data/LIEROENG.TXT +@@ -11,14 +11,6 @@ + ----------------------------------------------------------------------------- + + GENERAL STUFF +- +- Liero is freeware. What that means is that you don't have to pay +- for it and using it has not been restricted in any way. You may +- distribute it to anyone and anyhow WITHOUT ANY CHANGES MADE TO IT'S +- CONTAINMENTS. +- +- The source code of this game is not distributed freely (neither +- commercially). So if you thought that maybe you could... forget it. + + Liero is a wormgame with weapons for 2 players. The object of the + game is definately what you think it is. Liero is excellent for +--- a/data/LIERO.TXT ++++ b/data/LIERO.TXT +@@ -12,15 +12,6 @@ + + YLEISTŽ + +- Liero on freeware, mik„ tarkoittaa ett„ sen k„yt”st„ ei tarvitse +- maksaa mit„„n eik„ k„ytt”„ ole rajoitettu mitenk„„n. Lieroa saa +- kopioida kelle tahansa ja miten tahansa SISŽLT™Ž MITENKŽŽN +- MUUTTAMATTA. +- +- Todettakoon t„ss„ ett„ Lieron l„hdekoodi ei ole vapaassa (sen +- enenp„„ kuin kaupallisessakaan) jakelussa. Joten jos ajattelit +- ett„... niin j„t„ ajatukset sikseen. +- + Liero on kahden pelattava aseellinen matosimulaatiopeli. Pelin + p„„m„„r„n„ on ep„ilem„tt„ se mit„ luuletkin. Liero sopii + erinomaisen hyvin aggressioiden purkuun ja kaverin rokitt„miseen diff --git a/gnu/packages/patches/lierolibre-newer-libconfig.patch b/gnu/packages/patches/lierolibre-newer-libconfig.patch new file mode 100644 index 0000000000..662d0f90fa --- /dev/null +++ b/gnu/packages/patches/lierolibre-newer-libconfig.patch @@ -0,0 +1,190 @@ +Fix compatibility with newer libconfig. + +Patch copied from upstream source repository: + +https://gitlab.com/lierolibre/lierolibre/commit/b27e3604aa6bfbfcc50db1000b394d06c87ae2f2 + +diff --git a/src/common.cpp b/src/common.cpp +index 2d6ada5..4942b05 100644 +--- a/src/common.cpp ++++ b/src/common.cpp +@@ -162,7 +162,7 @@ void Texts::loadFromCFG(std::string cfgFilePath) + const libconfig::Setting &sgmodes = texts["gameModes"]; + for(int i = 0; i < 4; ++i) + { +- gameModes[i] = (char const*)sgmodes["gameModes" + to_string(i)]; ++ gameModes[i] = (char const*)sgmodes[("gameModes" + to_string(i)).c_str()]; + } + + const libconfig::Setting &sgmspec = texts["gameModeSpec"]; +@@ -181,13 +181,13 @@ void Texts::loadFromCFG(std::string cfgFilePath) + const libconfig::Setting &swstates = texts["weapStates"]; + for(int i = 0; i < 3; ++i) + { +- weapStates[i] = (char const*)swstates["weapStates" + to_string(i)]; ++ weapStates[i] = (char const*)swstates[("weapStates" + to_string(i)).c_str()]; + } + + const libconfig::Setting &sknames = texts["keyNames"]; + for(int i = 1; i < 177; ++i) // First key starts at 1 + { +- keyNames[i] = (char const*)sknames["keyNames" + to_string(i)]; ++ keyNames[i] = (char const*)sknames[("keyNames" + to_string(i)).c_str()]; + } + + selWeap = (char const*)texts["selWeap"]; +@@ -315,8 +315,8 @@ void Common::loadPaletteFromCFG(std::string cfgFilePath) + const libconfig::Setting &scanim = palette["colorAnim"]; + for(int i = 0; i < 4; ++i) + { +- colorAnim[i].from = (int)scanim["colorAnim" + to_string(i) + "from"]; +- colorAnim[i].to = (int)scanim["colorAnim" + to_string(i) + "to"]; ++ colorAnim[i].from = (int)scanim[("colorAnim" + to_string(i) + "from").c_str()]; ++ colorAnim[i].to = (int)scanim[("colorAnim" + to_string(i) + "to").c_str()]; + } + } + +@@ -383,7 +383,7 @@ void Common::loadMaterialsFromCFG(std::string cfgFilePath) + + for(int i = 0; i < 256; ++i) + { +- const libconfig::Setting &smflags = smaterials["flags" + to_string(i)]; ++ const libconfig::Setting &smflags = smaterials[("flags" + to_string(i)).c_str()]; + materials[i].flags = smflags; + } + } +diff --git a/src/configCompat.cpp b/src/configCompat.cpp +index 1aeb262..a72c40f 100644 +--- a/src/configCompat.cpp ++++ b/src/configCompat.cpp +@@ -160,19 +160,19 @@ void Common::loadConstantsFromCFGVer0(string cfgFilePath) + const Setting &vconstants = constants["Values"]; + for(int i = 0; i < MaxC; ++i) + { +- C[i] = (int)vconstants[valueConstantsNamesCFGVer0[i]]; ++ C[i] = (int)vconstants[valueConstantsNamesCFGVer0[i].c_str()]; + } + + const Setting &sconstants = constants["Strings"]; + for(int i = 0; i < MaxS; ++i) + { +- S[i]= (char const*)sconstants[stringConstantsNamesCFGVer0[i]]; ++ S[i]= (char const*)sconstants[stringConstantsNamesCFGVer0[i].c_str()]; + } + + const Setting &hconstants = constants["Hacks"]; + for(int i = 0; i < MaxH; ++i) + { +- H[i] = (bool)hconstants[hackConstantsNamesVer0[i]]; ++ H[i] = (bool)hconstants[hackConstantsNamesVer0[i].c_str()]; + } + } + +diff --git a/src/configHelper.cpp b/src/configHelper.cpp +index fcd1f3f..a63bddc 100644 +--- a/src/configHelper.cpp ++++ b/src/configHelper.cpp +@@ -54,15 +54,11 @@ template Uint8 ConfigHelper::getValue(const Setting & + + template Uint8 ConfigHelper::getValue(const Setting &node, char const* index); + +-template Uint8 ConfigHelper::getValue(const Setting &node, string index); +- + // Non-const + template Uint8 ConfigHelper::getValue(Setting &node, int index); + + template Uint8 ConfigHelper::getValue(Setting &node, char const* index); + +-template Uint8 ConfigHelper::getValue(Setting &node, string index); +- + + // Since we still need specialisation per value type (Setting::Type), + // no need to templateify these +@@ -72,7 +68,7 @@ void ConfigHelper::put(Setting &node, string variable, string value) + { + node.add(variable, Setting::TypeString) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -83,7 +79,7 @@ void ConfigHelper::put(Setting &node, string variable, int value) + { + node.add(variable, Setting::TypeInt) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -94,7 +90,7 @@ void ConfigHelper::put(Setting &node, string variable, Uint8 value) + { + node.add(variable, Setting::TypeInt) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -105,7 +101,7 @@ void ConfigHelper::put(Setting &node, string variable, bool value) + { + node.add(variable, Setting::TypeBoolean) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -135,6 +131,6 @@ Setting& ConfigHelper::getSubgroup(Setting &node, string groupName) + { + node.add(groupName, Setting::TypeGroup); + } +- return node[groupName]; ++ return node[groupName.c_str()]; + } + +diff --git a/src/constants.cpp b/src/constants.cpp +index 7fced6a..cf7bbfc 100644 +--- a/src/constants.cpp ++++ b/src/constants.cpp +@@ -523,19 +523,19 @@ void Common::loadConstantsFromCFG(std::string cfgFilePath) + const libconfig::Setting &vconstants = constants["Values"]; + for(int i = 0; i < MaxC; ++i) + { +- C[i] = (int)vconstants[valueConstantsNames[i]]; ++ C[i] = (int)vconstants[valueConstantsNames[i].c_str()]; + } + + const libconfig::Setting &sconstants = constants["Strings"]; + for(int i = 0; i < MaxS; ++i) + { +- S[i]= (char const*)sconstants[stringConstantsNames[i]]; ++ S[i]= (char const*)sconstants[stringConstantsNames[i].c_str()]; + } + + const libconfig::Setting &hconstants = constants["Hacks"]; + for(int i = 0; i < MaxH; ++i) + { +- H[i] = (bool)hconstants[hackConstantsNames[i]]; ++ H[i] = (bool)hconstants[hackConstantsNames[i].c_str()]; + } + } + +diff --git a/src/gfx/palette.cpp b/src/gfx/palette.cpp +index 3fd08c4..3d3bf22 100644 +--- a/src/gfx/palette.cpp ++++ b/src/gfx/palette.cpp +@@ -124,9 +124,9 @@ void Palette::readFromCFG(std::string cfgFilePath) + + for(int i = 0; i < 256; ++i) + { +- entries[i].r = cfgHelp.getValue(spentries, "entries" + to_string(i) + "r"); +- entries[i].g = cfgHelp.getValue(spentries, "entries" + to_string(i) + "g"); +- entries[i].b = cfgHelp.getValue(spentries, "entries" + to_string(i) + "b"); ++ entries[i].r = cfgHelp.getValue(spentries, ("entries" + to_string(i) + "r").c_str()); ++ entries[i].g = cfgHelp.getValue(spentries, ("entries" + to_string(i) + "g").c_str()); ++ entries[i].b = cfgHelp.getValue(spentries, ("entries" + to_string(i) + "b").c_str()); + } + } + diff --git a/gnu/packages/patches/lierolibre-remove-arch-warning.patch b/gnu/packages/patches/lierolibre-remove-arch-warning.patch new file mode 100644 index 0000000000..ca92b72546 --- /dev/null +++ b/gnu/packages/patches/lierolibre-remove-arch-warning.patch @@ -0,0 +1,30 @@ +Copied from Debian: + +https://anonscm.debian.org/cgit/pkg-games/lierolibre.git/tree/debian/patches/0003-Remove-unknown-arch-warning.patch?id=82910748906855f6e6bfe30b3f077e8c793ae424 + +From a9592533eeabed075b13d11c64f63f503dc13343 Mon Sep 17 00:00:00 2001 +From: Martin Erik Werner +Date: Sun, 28 Jun 2015 19:31:30 +0200 +Subject: [PATCH 3/3] Remove unknown arch warning + +The warning was just excessivley spammy, remove it. +--- + support/platform.h | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/gvl/support/platform.h b/src/gvl/support/platform.h +index 1857b7c..ff6a7d2 100644 +--- a/src/gvl/support/platform.h ++++ b/src/gvl/support/platform.h +@@ -87,8 +87,6 @@ + # define GVL_X86_64 1 + # elif defined(__i386__) || defined(_M_IX86) || defined(i386) || defined(i486) || defined(intel) || defined(x86) || defined(i86pc) + # define GVL_X86 1 +-# else +-# warning "Unknown architecture, please add it" + # endif + #endif + +-- +2.4.6 + diff --git a/gnu/packages/patches/lierolibre-try-building-other-arch.patch b/gnu/packages/patches/lierolibre-try-building-other-arch.patch new file mode 100644 index 0000000000..a40dfe6110 --- /dev/null +++ b/gnu/packages/patches/lierolibre-try-building-other-arch.patch @@ -0,0 +1,56 @@ +Copied from Debian: + +https://anonscm.debian.org/cgit/pkg-games/lierolibre.git/tree/debian/patches/0001-Use-unaligned-access-define-over-checking-arch.patch?id=82910748906855f6e6bfe30b3f077e8c793ae424 + +From a70691fb003cae1a33f06d682269285f9baa2dd9 Mon Sep 17 00:00:00 2001 +From: Martin Erik Werner +Date: Sun, 28 Jun 2015 19:00:23 +0200 +Subject: [PATCH 2/3] At least try building for other archs than x86* + +Allow attempting to build for other architectures than x86 and x86_64, +whether or not the build will succeed or produce sane output is another +question... It emits plenty of warnings about it now though... + +Configuration of the FPU controller is disabled on all but x86*, and the +uninformed hope and prayer is that defaults will be fine without messing +with them. +--- + math/ieee.cpp | 2 ++ + support/platform.h | 4 ++-- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/gvl/math/ieee.cpp b/src/gvl/math/ieee.cpp +index 8b740d4..e0803d2 100644 +--- a/src/gvl/math/ieee.cpp ++++ b/src/gvl/math/ieee.cpp +@@ -54,6 +54,8 @@ void gvl_init_ieee() + { + #if GVL_MSVCPP + // Nothing needs to be done, TODO: we should however check that the x87 state is right ++#elif !GVL_X86 && !GVL_X86_64 ++// No idea what to do, but run with defaults and pray it doesn't mess things up + #elif GVL_GCC && GVL_WIN32 + unsigned int const flags = _RC_NEAR | _PC_53 | _EM_INVALID | _EM_DENORMAL | _EM_ZERODIVIDE | _EM_OVERFLOW | _EM_UNDERFLOW | _EM_INEXACT; + _control87(flags, _MCW_EM | _MCW_PC | _MCW_RC); +diff --git a/src/gvl/support/platform.h b/src/gvl/support/platform.h +index 86dcaa6..1857b7c 100644 +--- a/src/gvl/support/platform.h ++++ b/src/gvl/support/platform.h +@@ -88,12 +88,12 @@ + # elif defined(__i386__) || defined(_M_IX86) || defined(i386) || defined(i486) || defined(intel) || defined(x86) || defined(i86pc) + # define GVL_X86 1 + # else +-# error "Unknown architecture, please add it" ++# warning "Unknown architecture, please add it" + # endif + #endif + + #if !GVL_LITTLE_ENDIAN && !GVL_BIG_ENDIAN +-# if GVL_X86 || GVL_X86_64 ++# if GVL_X86 || GVL_X86_64 || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN + # define GVL_LITTLE_ENDIAN 1 + # else + # define GVL_BIG_ENDIAN 1 +-- +2.4.6 + From 9bd42f1dc371836cc4335250db08ab29bff07ae2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 12 May 2017 19:27:11 +0200 Subject: [PATCH 354/386] gnu: postgresql: Update to 9.6.3 [fixes CVE-2017-{7484,7485,7486}]. * gnu/packages/databases.scm (postgresql): Update to 9.6.3. --- 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 29554e95a8..26706b8275 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -449,14 +449,14 @@ as a drop-in replacement of MySQL.") (define-public postgresql (package (name "postgresql") - (version "9.6.2") + (version "9.6.3") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "1jahzqqw5inyvmacic2ihhj5f8z50lapci2fwws91h719ccbb1q1")))) + "1imrjp4vfslxj5rrvphcrrk21zv8kqw3gacmwradixh1d5rv6i8n")))) (build-system gnu-build-system) (arguments `(#:phases From 2088513214cc6d03bcb303a951d2df14ec6b57b5 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 12 May 2017 18:40:45 +0200 Subject: [PATCH 355/386] gnu: reptry: Fix build. * gnu/packages/patches/reptyr-fix-gcc-7.patch: New file. * gnu/local.mk (dist_patch_DATA): Add new patch. * gnu/packages/screen.scm (reptyr): Use patch. --- gnu/local.mk | 1 + gnu/packages/patches/reptyr-fix-gcc-7.patch | 38 +++++++++++++++++++++ gnu/packages/screen.scm | 3 ++ 3 files changed, 42 insertions(+) create mode 100644 gnu/packages/patches/reptyr-fix-gcc-7.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8599e6d3a0..28a283ab70 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -946,6 +946,7 @@ dist_patch_DATA = \ %D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/readline-7.0-mingw.patch \ + %D%/packages/patches/reptyr-fix-gcc-7.patch \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rpm-CVE-2014-8118.patch \ diff --git a/gnu/packages/patches/reptyr-fix-gcc-7.patch b/gnu/packages/patches/reptyr-fix-gcc-7.patch new file mode 100644 index 0000000000..5e0e581218 --- /dev/null +++ b/gnu/packages/patches/reptyr-fix-gcc-7.patch @@ -0,0 +1,38 @@ +This patch allows reptyr to build with gcc 7. It is taken from reptyr mainline patches +fa0d63f and b45fd92. + +https://github.com/nelhage/reptyr/commit/fa0d63ff8c488be15976e5353580b565e85586a1 +https://github.com/nelhage/reptyr/commit/b45fd9238958fcf2d8f3d6fc23e6d491febea2ac + +Patch by Nelson Elhage . + +diff --git a/attach.c b/attach.c +index bd8ef8c..8d9cbf8 100644 +--- a/attach.c ++++ b/attach.c +@@ -389,8 +389,11 @@ int setup_steal_socket(struct steal_pty_state *steal) { + return errno; + + steal->addr_un.sun_family = AF_UNIX; +- snprintf(steal->addr_un.sun_path, sizeof(steal->addr_un.sun_path), +- "%s/reptyr.sock", steal->tmpdir); ++ if (snprintf(steal->addr_un.sun_path, sizeof(steal->addr_un.sun_path), ++ "%s/reptyr.sock", steal->tmpdir) >= sizeof(steal->addr_un.sun_path)) { ++ error("tmpdir path too long!"); ++ return ENAMETOOLONG; ++ } + + if ((steal->sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) + return errno; +diff --git a/platform/linux/linux.h b/platform/linux/linux.h +index 9e6b78a..3ec5a99 100644 +--- a/platform/linux/linux.h ++++ b/platform/linux/linux.h +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 1bdfcd0110..49584662b1 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Alex Griffin +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -155,6 +156,8 @@ window manager as well as the Tmux terminal multiplexer.") (method url-fetch) (uri (string-append "https://github.com/nelhage/reptyr/archive" "/reptyr-" version ".tar.gz")) + ;; XXX: To be removed on next reptyr release. + (patches (search-patches "reptyr-fix-gcc-7.patch")) (sha256 (base32 "07pfl0rkgm8m3f3jy8r9l2yvnhf8lgllpsk3mh57mhzdxq8fagf7")))) From d5094c81156b587a3403a1881a4952f6d19b2076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 May 2017 22:05:23 +0200 Subject: [PATCH 356/386] tests: Strengthen GC root test. * gnu/tests/base.scm (run-basic-test)["/run/current-system is a GC root"]: Check for a specific return value, 'success!. --- gnu/tests/base.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 6ce5ab3de1..8fb978dde1 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -296,7 +296,8 @@ info --version") (setlocale LC_ALL before)) marionette)) - (test-assert "/run/current-system is a GC root" + (test-eq "/run/current-system is a GC root" + 'success! (marionette-eval '(begin ;; Make sure the (guix …) modules are found. (eval-when (expand load eval) @@ -317,7 +318,8 @@ info --version") (let ((system (readlink "/run/current-system"))) (guard (c ((nix-protocol-error? c) - (file-exists? system))) + (and (file-exists? system) + 'success!))) (with-store store (delete-paths store (list system)) #f)))) From e2f9832f454a63884aebd2d8bf85829012b58f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 May 2017 22:07:52 +0200 Subject: [PATCH 357/386] =?UTF-8?q?tests:=20"basic"=20test=20loads=20(guix?= =?UTF-8?q?=20=E2=80=A6)=20modules=20from=20the=20right=20place.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a followup to 7561881f2a5d2dc463c24713745eca03e67044bf. * gnu/tests/base.scm (run-basic-test)["/run/current-system is a GC root"]: Remove 'set!' statements, add 'add-to-load-path' statement for GUIX. --- gnu/tests/base.scm | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 8fb978dde1..37aab8ef67 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -31,6 +31,7 @@ #:use-module (gnu services networking) #:use-module (gnu packages imagemagick) #:use-module (gnu packages ocr) + #:use-module (gnu packages package-management) #:use-module (guix gexp) #:use-module (guix store) #:use-module (guix monads) @@ -300,19 +301,13 @@ info --version") 'success! (marionette-eval '(begin ;; Make sure the (guix …) modules are found. - (eval-when (expand load eval) - (set! %load-path - (cons - (string-append - "/run/current-system/profile/share/guile/site/" - (effective-version)) - %load-path)) - (set! %load-compiled-path - (cons - (string-append - "/run/current-system/profile/share/guile/site/" - (effective-version)) - %load-compiled-path))) + ;; + ;; XXX: Currently shepherd and marionette run + ;; on Guile 2.0 whereas Guix is on 2.2. Yet + ;; we should be able to load the 2.0 Scheme + ;; files since it's pure Scheme. + (add-to-load-path + #+(file-append guix "/share/guile/site/2.2")) (use-modules (srfi srfi-34) (guix store)) From 0be9b4a9c18502ddd9fc56612e076121958be2ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 May 2017 22:22:32 +0200 Subject: [PATCH 358/386] doc: Update "Limitations". * doc/guix.texi (Limitations): Mention LXDE; increase the package count; reword sentence about services. --- doc/guix.texi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a5b787510b..5227ad4ba0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7206,15 +7206,15 @@ get a feel of what that means.) Support for the Logical Volume Manager (LVM) is missing. @item -Few system services are currently supported out-of-the-box -(@pxref{Services}). +More and more system services are provided (@pxref{Services}), but some +may be missing. @item -More than 5,000 packages are available, but you may +More than 5,300 packages are available, but you may occasionally find that a useful package is missing. @item -GNOME, Xfce, and Enlightenment are available (@pxref{Desktop Services}), +GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop Services}), as well as a number of X11 window managers. However, some graphical applications may be missing, as well as KDE. @end itemize From e06ca952ed150c50109b1a29cd0e3645a80023a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 May 2017 22:39:33 +0200 Subject: [PATCH 359/386] scripts: Do not create the config directory. This fixes runs of 'guix package' and 'guix system' tests in environments where $HOME is read-only. * guix/ui.scm (config-directory): Add #:ensure? parameter and honor it. * guix/scripts.scm (warn-about-old-distro): Pass #:ensure? #f to 'config-directory'. --- guix/scripts.scm | 3 ++- guix/ui.scm | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/guix/scripts.scm b/guix/scripts.scm index d5c53dea1b..9ff7f25548 100644 --- a/guix/scripts.scm +++ b/guix/scripts.scm @@ -165,7 +165,8 @@ Show what and how will/would be built." (define age (match (false-if-not-found - (lstat (string-append (config-directory) "/latest"))) + (lstat (string-append (config-directory #:ensure? #f) + "/latest"))) (#f #f) (stat (- (time-second (current-time time-utc)) (stat:mtime stat))))) diff --git a/guix/ui.scm b/guix/ui.scm index e7cb40927b..edd04daa81 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -775,9 +775,9 @@ replacement if PORT is not Unicode-capable." (($ file line column) (format #f "~a:~a:~a" file line column)))) -(define (config-directory) +(define* (config-directory #:key (ensure? #t)) "Return the name of the configuration directory, after making sure that it -exists. Honor the XDG specs, +exists if ENSURE? is true. Honor the XDG specs, ." (let ((dir (and=> (or (getenv "XDG_CONFIG_HOME") (and=> (getenv "HOME") @@ -785,7 +785,8 @@ exists. Honor the XDG specs, (cut string-append <> "/guix")))) (catch 'system-error (lambda () - (mkdir-p dir) + (when ensure? + (mkdir-p dir)) dir) (lambda args (let ((err (system-error-errno args))) From 3312fda09deca3c44076627c504234d1501a87d6 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 11 May 2017 21:51:54 +0000 Subject: [PATCH 360/386] gnu: Add e3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/text-editors.scm (e3): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/text-editors.scm | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 920868b52d..98df48119a 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Carlo Zancanaro ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2017 Feng Shu +;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) + #:use-module (gnu packages assembly) #:use-module (gnu packages boost) #:use-module (gnu packages documentation) #:use-module (gnu packages gcc) @@ -189,3 +191,39 @@ development focuses on keeping weight down to a minimum, only the most essential features are implemented in the editor. Leafpad is simple to use, is easily compiled, requires few libraries, and starts up quickly. ") (license license:gpl2+))) + +(define-public e3 + (package + (name "e3") + (version "2.82") + (source (origin + (method url-fetch) + (uri (string-append "https://sites.google.com/site/e3editor/Home/" + "e3-" version ".tgz")) + (sha256 + (base32 + "0919kadkas020maqq37852isnzp053q2fnws2zh3mz81d1jiviak")) + (modules '((guix build utils))) + + ;; Remove pre-built binaries. + (snippet '(delete-file-recursively "bin")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:make-flags (list (string-append "PREFIX=" + (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("nasm" ,nasm))) + (home-page "https://sites.google.com/site/e3editor/") + (synopsis "Tiny text editor written in assembly") + (description + "e3 is a micro text editor with an executable code size between 3800 and +35000 bytes. Except for ``syntax highlighting'', the e3 binary supports all +of the basic functions one expects plus built in arithmetic calculations. +UTF-8 coding of unicode characters is supported as well. e3 can use +Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on +16, 32, and 64-bit CPUs.") + (supported-systems '("x86_64-linux" "i686-linux")) + (license license:gpl2+))) From a23e0a9f87fc89ad54acc21c0553cabe978274ff Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 12 May 2017 21:25:57 -0400 Subject: [PATCH 361/386] gnu: gimp: Update to 2.8.22 [fixes CVE-2007-3126]. * gnu/packages/gimp.scm (gimp): Update to 2.8.22. --- gnu/packages/gimp.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 15eb5bc084..362e2047fa 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -126,7 +126,7 @@ buffers.") (define-public gimp (package (name "gimp") - (version "2.8.18") + (version "2.8.22") (source (origin (method url-fetch) (uri (string-append "http://download.gimp.org/pub/gimp/v" @@ -134,10 +134,10 @@ buffers.") "/gimp-" version ".tar.bz2")) (sha256 (base32 - "0halh6sl3d2j9gahyabj6h6r3yyldcy7sfb4qrfazpkqqr3j5p9r")))) + "12k3lp938qdc9cqj29scg55f3bb8iav2fysd29w0s49bqmfa71wi")))) (build-system gnu-build-system) (outputs '("out" - "doc")) ;8 MiB of gtk-doc HTML + "doc")) ;5 MiB of gtk-doc HTML (arguments '(#:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") From 4e4e0185251e0660d625cc2b1243160b92e94faa Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 8 May 2017 22:03:37 +0300 Subject: [PATCH 362/386] system: Export 'read-boot-parameters'. This partially reverts commit 9530e73b496fefe65dcb936825b6beda79f7fdf2. * gnu/system.scm: Export 'read-boot-parameters' for backward compatibility. --- gnu/system.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/system.scm b/gnu/system.scm index 9fc6cc5e76..f9a0da9a75 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -108,6 +108,7 @@ boot-parameters-kernel boot-parameters-kernel-arguments boot-parameters-initrd + read-boot-parameters read-boot-parameters-file local-host-aliases From 498abb3ed1d7dcda3ffac15832eb1e25d08e9162 Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 3 May 2017 23:36:17 +0000 Subject: [PATCH 363/386] .gitignore: Ignore Emacs auto-save files. * .gitignore: Add entries for temporary files created by Emacs. Co-authored-by: Alex Kost --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 5086ae22b6..09dbde82fc 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ *.tar.xz *.tmp *~ +.#* +\#*\# ,* /ABOUT-NLS /INSTALL From a5e8f5972cb0d69684bb3f81220a6408815f7fe0 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Thu, 4 May 2017 11:50:32 +0200 Subject: [PATCH 364/386] gnu: python-termcolor: Fix uri. * gnu/packages/python.scm (python-termcolor): Remove "python-" from pypi uri. This was causing guix refresh to fail on this package. --- gnu/packages/python.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index dc7adf24ed..57a67de416 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2017 Frederick M. Muriithi ;;; Copyright © 2017 Adriano Peluso ;;; Copyright © 2017 Ben Sturmfels +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -7489,7 +7490,7 @@ a hash value.") (source (origin (method url-fetch) - (uri (pypi-uri "python-termcolor" version)) + (uri (pypi-uri "termcolor" version)) (sha256 (base32 "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x")))) From db427602d8f993ee0025fa68d1af274aa8d69ab9 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Thu, 4 May 2017 11:52:33 +0200 Subject: [PATCH 365/386] import: cran: Robustify cran-package?. * guix/import/cran.scm (package->upstream-name): Return #f if url start and end index could not be determined. (cran-package?): Check if the upstream-name can be extracted from given package. * tests/cran.scm: Add "r-minimal is not a cran package" to make sure that r-minimal is not detected as a cran package. This fixes a failure of guix refresh on r-minimal because no upsteam-name can be determined from ".../R-version.tar.gz" uri. --- guix/import/cran.scm | 6 +++++- tests/cran.scm | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/guix/import/cran.scm b/guix/import/cran.scm index be34a75c8d..a94051655c 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -374,7 +375,7 @@ dependencies." (start (string-rindex url #\/))) ;; The URL ends on ;; (string-append "/" name "_" version ".tar.gz") - (substring url (+ start 1) end))) + (and start end (substring url (+ start 1) end)))) (_ #f))) (_ #f))))) @@ -415,6 +416,9 @@ dependencies." (define (cran-package? package) "Return true if PACKAGE is an R package from CRAN." (and (string-prefix? "r-" (package-name package)) + ;; Check if the upstream name can be extracted from package uri. + (package->upstream-name package) + ;; Check if package uri(s) are prefixed by "mirror://cran". (match (and=> (package-source package) origin-uri) ((? string? uri) (string-prefix? "mirror://cran" uri)) diff --git a/tests/cran.scm b/tests/cran.scm index c162d45d8a..d785ec5db1 100644 --- a/tests/cran.scm +++ b/tests/cran.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,6 +18,7 @@ ;;; along with GNU Guix. If not, see . (define-module (test-cran) + #:use-module (gnu packages statistics) #:use-module (guix import cran) #:use-module (guix tests) #:use-module (srfi srfi-1) @@ -86,6 +88,10 @@ Date/Publication: 2015-07-14 14:15:16 '() ((@@ (guix import cran) listify) simple-alist "BadList")) +(test-equal "r-mininal is not a cran package" + #f + ((@@ (guix import cran) cran-package?) r-minimal)) + (test-assert "description->package" ;; Replace network resources with sample data. (mock ((guix build download) url-fetch From 22fc581db3a4985d1f8c6fd6b9763392c638c35b Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Thu, 4 May 2017 11:57:50 +0200 Subject: [PATCH 366/386] import: pypi: Robustify latest-release. * guix/import/pypi.scm (latest-release): Check if pypi-fetch has failed. If so return #f, else construct the . --- guix/import/pypi.scm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 4f9518f2eb..9c72e73314 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 David Thompson ;;; Copyright © 2015 Cyril Roelandt ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -322,15 +323,17 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (define (latest-release package) "Return an for the latest release of PACKAGE." - (guard (c ((missing-source-error? c) #f)) - (let* ((pypi-name (guix-package->pypi-name package)) - (metadata (pypi-fetch pypi-name)) - (version (assoc-ref* metadata "info" "version")) - (url (assoc-ref (latest-source-release metadata) "url"))) - (upstream-source - (package (package-name package)) - (version version) - (urls (list url)))))) + (let* ((pypi-name (guix-package->pypi-name package)) + (pypi-package (pypi-fetch pypi-name))) + (and pypi-package + (guard (c ((missing-source-error? c) #f)) + (let* ((metadata pypi-package) + (version (assoc-ref* metadata "info" "version")) + (url (assoc-ref (latest-source-release metadata) "url"))) + (upstream-source + (package (package-name package)) + (version version) + (urls (list url)))))))) (define %pypi-updater (upstream-updater From 6669a93284436908587f18bec0b46a4c7e0ecaa5 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 13 May 2017 10:48:25 +0530 Subject: [PATCH 367/386] gnu: emacs-goto-chg: Set source file-name. * gnu/packages/emacs.scm (emacs-goto-chg)[source]: Add file-name field. --- gnu/packages/emacs.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 21120b3314..8608c39078 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3488,6 +3488,7 @@ extensions.") (method url-fetch) ;; There is no versioned source. (uri "https://www.emacswiki.org/emacs/download/goto-chg.el") + (file-name (string-append "goto-chg-" version ".el")) (sha256 (base32 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij")))) From 8a421ddb2948e778416f0586891c52d412c0d608 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 13 May 2017 10:49:54 +0530 Subject: [PATCH 368/386] gnu: emacs-transpose-frame: Set source file-name. * gnu/packages/emacs.scm (emacs-transpose-frame)[source]: Add file-name field. --- gnu/packages/emacs.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 8608c39078..1d688f8cc9 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4564,6 +4564,7 @@ with gnuplot.") (origin (method url-fetch) (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el") + (file-name (string-append "transpose-frame-" version ".el")) (sha256 (base32 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4")))) From a742becd6caec6f9b03c423ccfbb510c0976db1a Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 13 May 2017 10:50:31 +0530 Subject: [PATCH 369/386] gnu: emacs-key-chord: Set source file-name. * gnu/packages/emacs.scm (emacs-key-chord)[source]: Add file-name field. --- gnu/packages/emacs.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 1d688f8cc9..8f966d0576 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4584,6 +4584,7 @@ selected frame.") (origin (method url-fetch) (uri "https://www.emacswiki.org/emacs/download/key-chord.el") + (file-name (string-append "key-chord-" version ".el")) (sha256 (base32 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg")))) From 4cd1d1c12e341a37aeb948bde97a59cacb37609c Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Sat, 8 Apr 2017 17:26:15 +0200 Subject: [PATCH 370/386] gnu: php: Remove '--enable-threads' configure option. * gnu/packages/php.scm (php): Remove '--enable-threads' configure option, as it is no longer recognized in PHP 7. --- gnu/packages/php.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index a40568eacc..eeff2cee84 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -130,8 +130,7 @@ "--enable-inifile" "--enable-mbstring" "--enable-pcntl" - "--enable-sockets" - "--enable-threads")) + "--enable-sockets")) #:phases (modify-phases %standard-phases (add-after 'unpack 'do-not-record-build-flags From 0e40b75506bf189d44d633fae5d3fe2cc13d62f6 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Sat, 8 Apr 2017 17:31:51 +0200 Subject: [PATCH 371/386] gnu: php: Add '--with-mysqli' configure option. * gnu/packages/php.scm: Add '--with-mysqli' configure option. --- gnu/packages/php.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index eeff2cee84..ab277ed973 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -119,6 +119,7 @@ ;; extension of php. "--with-iconv" "--with-openssl" + "--with-mysqli" ; Required for, e.g. wordpress "--with-pdo-mysql" "--with-zlib" "--enable-calendar" From c7d1b061f5e3fb33085e8dc06431517da5f4abfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 13 May 2017 15:24:38 +0200 Subject: [PATCH 372/386] bournish: 'ls' lists directory contents. Suggested by Ricardo Wurmus. * guix/build/bournish.scm (ls-command-implementation): When FILE is a directory, list its contents rather than FILE itself. --- guix/build/bournish.scm | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/guix/build/bournish.scm b/guix/build/bournish.scm index e948cd03d3..7aa1f8ca00 100644 --- a/guix/build/bournish.scm +++ b/guix/build/bournish.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Ricardo Wurmus ;;; @@ -81,16 +81,30 @@ characters." (() (display-tabulated (scandir "."))) (files - (let ((files (filter (lambda (file) - (catch 'system-error - (lambda () - (lstat file)) - (lambda args - (let ((errno (system-error-errno args))) - (format (current-error-port) "~a: ~a~%" - file (strerror errno)) - #f)))) - files))) + (let ((files (append-map (lambda (file) + (catch 'system-error + (lambda () + (match (stat:type (lstat file)) + ('directory + ;; Like GNU ls, list the contents of + ;; FILE rather than FILE itself. + (match (scandir file + (match-lambda + ((or "." "..") #f) + (_ #t))) + (#f + (list file)) + ((files ...) + (map (cut string-append file "/" <>) + files)))) + (_ + (list file)))) + (lambda args + (let ((errno (system-error-errno args))) + (format (current-error-port) "~a: ~a~%" + file (strerror errno)) + '())))) + files))) (display-tabulated files))))) (define (ls-command . files) From 1812205cf56011293cdd3c8d522e4154c8e617dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 13 May 2017 15:41:57 +0200 Subject: [PATCH 373/386] bournish: 'ls' adjusts the column width depending on the entries. * guix/build/bournish.scm (display-tabulated): Remove #:columns and #:column-width parameters. Add #:terminal-width and #:column-gap. Compute COLUMN-WIDTH and COLUMNS. --- guix/build/bournish.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/guix/build/bournish.scm b/guix/build/bournish.scm index 7aa1f8ca00..247a687d80 100644 --- a/guix/build/bournish.scm +++ b/guix/build/bournish.scm @@ -48,11 +48,19 @@ refers to." str)) (define* (display-tabulated lst - #:key (columns 3) - (column-width (/ 78 columns))) - "Display the list of string LST in COLUMNS columns of COLUMN-WIDTH -characters." + #:key + (terminal-width 80) + (column-gap 2)) + "Display the list of string LST in as many columns as needed given +TERMINAL-WIDTH. Use COLUMN-GAP spaces between two subsequent columns." (define len (length lst)) + (define column-width + ;; The width of a column. Assume all the columns have the same width + ;; (GNU ls is smarter than that.) + (+ column-gap (reduce max 0 (map string-length lst)))) + (define columns + (max 1 + (quotient terminal-width column-width))) (define pad (if (zero? (modulo len columns)) 0 From 99d406c92d075219f8a53c59a9f1a10f1f6aaaa0 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 11 May 2017 23:23:30 +0530 Subject: [PATCH 374/386] gnu: Add emacs-ansi. * gnu/packages/emacs.scm (emacs-ansi): New variable. --- gnu/packages/emacs.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 8f966d0576..ccd70db41e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4642,3 +4642,30 @@ addition of surrounding pairs, such as parantheses and quotes, in evil mode.") comment out lines of code in evil mode. It provides @code{gcc} to comment out lines, and @code{gc} to comment out the target of a motion.") (license license:gpl3+))) + +;; Tests for emacs-ansi have a circular dependency with ert-runner, and +;; therefore cannot be run +(define-public emacs-ansi + (package + (name "emacs-ansi") + (version "0.4.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/rejeep/ansi.el/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/rejeep/ansi.el") + (synopsis "Convert strings to ANSI") + (description "@code{emacs-ansi} defines functions that turns simple +strings to ANSI strings. Turning a string into an ANSI string can be to add +color to a text, add color in the background of a text or adding a style, such +as bold, underscore or italic.") + (license license:gpl3+))) From 605ecbcb2a09289eece1e25de562d04d3c425019 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 11 May 2017 23:24:43 +0530 Subject: [PATCH 375/386] gnu: Add emacs-commander. * gnu/packages/emacs.scm (emacs-commander): New variable. --- gnu/packages/emacs.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ccd70db41e..aef4aa5947 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4669,3 +4669,29 @@ strings to ANSI strings. Turning a string into an ANSI string can be to add color to a text, add color in the background of a text or adding a style, such as bold, underscore or italic.") (license license:gpl3+))) + +;; Tests for emacs-commander have a circular dependency with ert-runner, and +;; therefore cannot be run +(define-public emacs-commander + (package + (name "emacs-commander") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/rejeep/commander.el/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/rejeep/commander.el") + (synopsis "Emacs command line parser") + (description "@code{emacs-commander} provides command line parsing for +Emacs.") + (license license:gpl3+))) From 87449013656ba6507bfb4ba58a4a4ff12c784751 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 11 May 2017 23:25:27 +0530 Subject: [PATCH 376/386] gnu: Add ert-runner. * gnu/packages/emacs.scm (ert-runner): New variable. --- gnu/packages/emacs.scm | 64 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index aef4aa5947..f3b23bb6f4 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -92,7 +92,8 @@ #:use-module (gnu packages gd) #:use-module (gnu packages fontutils) #:use-module (guix utils) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match)) (define-public emacs (package @@ -4695,3 +4696,64 @@ as bold, underscore or italic.") (description "@code{emacs-commander} provides command line parsing for Emacs.") (license license:gpl3+))) + +;; Tests for ert-runner have a circular dependency with ecukes, and therefore +;; cannot be run +(define-public ert-runner + (let ((dependencies + `(("emacs-ansi" ,emacs-ansi) + ("emacs-commander" ,emacs-commander) + ("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-s" ,emacs-s) + ("emacs-shut-up" ,emacs-shut-up)))) + (package + (name "ert-runner") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp")))) + (build-system emacs-build-system) + (inputs dependencies) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "bin/ert-runner" + (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)") + (string-append "ERT_RUNNER=\"" out + "/share/emacs/site-lisp/guix.d/" + ,name "-" ,version))) + (install-file "bin/ert-runner" (string-append out "/bin")) + (wrap-program (string-append out "/bin/ert-runner") + (list "EMACSLOADPATH" ":" '= + (append + ,(match dependencies + (((labels packages) ...) + `(map (lambda (label package version) + (string-append (assoc-ref inputs label) + "/share/emacs/site-lisp/guix.d/" + (string-drop package 6) + "-" version)) + ',labels + ',(map package-name packages) + ',(map package-version packages)))) + ;; empty element to include the default load path as + ;; determined by emacs' standard initialization + ;; procedure + (list "")))) + #t)))))) + (home-page "https://github.com/rejeep/ert-runner.el") + (synopsis "Opinionated Ert testing workflow") + (description "@code{ert-runner} is a tool for Emacs projects tested +using ERT. It assumes a certain test structure setup and can therefore make +running tests easier.") + (license license:gpl3+)))) From 92d9cfef6bb2bb2000434636d80eaea6b7eb36e0 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 11 May 2017 23:28:53 +0530 Subject: [PATCH 377/386] gnu: emacs-clojure-mode: Enable tests. * gnu/packages/emacs.scm (emacs-clojure-mode)[arguments]: Add 'check' phase. [native-inputs]: Add emacs-dash, emacs-s and ert-runner. --- gnu/packages/emacs.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f3b23bb6f4..3d9e83713e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2876,6 +2876,16 @@ S-expression.") (base32 "117mvjqh4nm8mvmwmmvy4qmkdg23ldlzk08y91g8b8ac8kxwqg81")))) (build-system emacs-build-system) + (native-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s) + ("ert-runner" ,ert-runner))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'check + (lambda _ + (zero? (system* "ert-runner"))))))) (home-page "https://github.com/clojure-emacs/clojure-mode") (synopsis "Major mode for Clojure code") (description From a76ca052d6e772164586bb1b4b2b8c69af783666 Mon Sep 17 00:00:00 2001 From: "Ethan R. Jones" Date: Sat, 13 May 2017 01:00:43 -0400 Subject: [PATCH 378/386] gnu: Add nnn. * gnu/packages/admin.scm (nnn): New variable. Signed-off-by: Marius Bakke --- gnu/packages/admin.scm | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ff0431999d..ef7bff10f3 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2130,3 +2130,53 @@ logo, or any ASCII file of your choice. The main purpose of Neofetch is to be used in screenshots to show other users what operating system or distribution you are running, what theme or icon set you are using, etc.") (license license:expat))) + +(define-public nnn + (package + (name "nnn") + (version "1.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/jarun/nnn/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1hww4385f81lyy30fx2rb4wchfi79dpgl7yylnfxvf27a4h2mkhm")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses) + ("readline" ,readline))) + (arguments + '(#:tests? #f ; no tests + #:phases + ;; We do not provide `ncurses.h' within an `ncursesw' + ;; sub-directory, so patch the source accordingly. See + ;; . + ;; Thanks to gtypist maintainer. + (modify-phases %standard-phases + (add-after 'unpack 'patch-curses-lib + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("-lncursesw") + "-lncurses")) + (substitute* "nnn.c" + (("ncursesw\\/curses.h") + "ncurses.h"))) + #t)) + (delete 'configure)) + #:make-flags + (list + (string-append "PREFIX=" + (assoc-ref %outputs "out")) + (string-append "-Wl,-rpath=" + %output "/lib") + "CC=gcc"))) + (home-page "https://github.com/jarun/nnn") + (synopsis "Terminal file browser") + (description "@command{nnn} is a fork of @command{noice}, a blazing-fast +lightweight terminal file browser with easy keyboard shortcuts for +navigation, opening files and running tasks. There is no config file and +mime associations are hard-coded. The incredible user-friendliness and speed +make it a perfect utility on modern distros.") + (license license:bsd-2))) From 2252f087d4bd450ab41a71379320467887edfc0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 13 May 2017 21:49:01 +0200 Subject: [PATCH 379/386] gnu: guile-json: Rename "guile2.2-json" to "guile-json". * gnu/packages/guile.scm (guile-json)[native-inputs]: Change GUILE-2.0 to GUILE-2.2. (guile2.2-json): Define using 'deprecated-package'. (guile2.0-json): New variable. * gnu/packages/bioinformatics.scm (rcas-web)[inputs]: Update accordingly. * gnu/packages/ci.scm (cuirass)[inputs]: Likewise. * gnu/packages/package-management.scm (guix)[inputs]: Likewise. --- gnu/packages/bioinformatics.scm | 2 +- gnu/packages/ci.scm | 2 +- gnu/packages/guile.scm | 7 +++++-- gnu/packages/package-management.scm | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 6ef8690e48..9f5d8141d8 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7891,7 +7891,7 @@ library implementing most of the pipeline's features.") `(("r-minimal" ,r-minimal) ("r-rcas" ,r-rcas) ("guile-next" ,guile-2.2) - ("guile-json" ,guile2.2-json) + ("guile-json" ,guile-json) ("guile-redis" ,guile2.2-redis))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index 06a06dc65c..c26d02f175 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -247,7 +247,7 @@ their dependencies.") #t)))))) (inputs `(("guile" ,guile-2.2) - ("guile-json" ,guile2.2-json) + ("guile-json" ,guile-json) ("guile-sqlite3" ,guile-sqlite3) ("guix" ,guix) ("git" ,git))) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 286aa42e7d..5b85a61c12 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -691,7 +691,7 @@ for Guile\".") (("moddir =.*/share/guile/site" all) (string-append all "/@GUILE_EFFECTIVE_VERSION@"))))))) (build-system gnu-build-system) - (native-inputs `(("guile" ,guile-2.0))) + (native-inputs `(("guile" ,guile-2.2))) (home-page "http://savannah.nongnu.org/projects/guile-json/") (synopsis "JSON module for Guile") (description @@ -707,7 +707,10 @@ specification. These are the main features: (license license:lgpl3+))) (define-public guile2.2-json - (package-for-guile-2.2 guile-json)) + (deprecated-package "guile2.2-json" guile-json)) + +(define-public guile2.0-json + (package-for-guile-2.0 guile-json)) (define-public guile-minikanren (package diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 627501e9b1..3e0449a853 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -248,7 +248,7 @@ "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r")))))) (propagated-inputs `(("gnutls" ,gnutls/guile-2.2) ;for 'guix download' & co. - ("guile-json" ,guile2.2-json) + ("guile-json" ,guile-json) ("guile-ssh" ,guile2.2-ssh))) (home-page "https://www.gnu.org/software/guix/") From 4d8806c3d662c74e6d48d0f0d6ce423fce9a3a08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 13 May 2017 21:53:53 +0200 Subject: [PATCH 380/386] gnu: guile-ssh: Rename "guile2.2-ssh" to "guile-ssh". * gnu/packages/ssh.scm (guile-ssh)[inputs]: Change GUILE-2.0 to GUILE-2.2. (guile2.2-ssh): Define using 'deprecated-package'. (guile2.0-ssh): New variable. * gnu/packages/package-management.scm (guix)[propagated-inputs]: Adjust accordingly. --- gnu/packages/package-management.scm | 2 +- gnu/packages/ssh.scm | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 3e0449a853..8ebf6b0578 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -249,7 +249,7 @@ (propagated-inputs `(("gnutls" ,gnutls/guile-2.2) ;for 'guix download' & co. ("guile-json" ,guile-json) - ("guile-ssh" ,guile2.2-ssh))) + ("guile-ssh" ,guile-ssh))) (home-page "https://www.gnu.org/software/guix/") (synopsis "Functional package manager for installed software packages and versions") diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 4590f3561c..1fd395049a 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -265,7 +265,7 @@ Additionally, various channel-specific options can be negotiated.") ("texinfo" ,texinfo) ("pkg-config" ,pkg-config) ("which" ,which))) - (inputs `(("guile" ,guile-2.0) + (inputs `(("guile" ,guile-2.2) ("libssh" ,libssh) ("libgcrypt" ,libgcrypt))) (synopsis "Guile bindings to libssh") @@ -276,10 +276,13 @@ libssh library.") (license license:gpl3+))) (define-public guile2.2-ssh + (deprecated-package "guile2.2-ssh" guile-ssh)) + +(define-public guile2.0-ssh (package (inherit guile-ssh) - (name "guile2.2-ssh") - (inputs `(("guile" ,guile-2.2) + (name "guile2.0-ssh") + (inputs `(("guile" ,guile-2.0) ,@(alist-delete "guile" (package-inputs guile-ssh)))))) (define-public corkscrew From 916b5eba0d5d1a80b5b67669506417ef9fefafb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 13 May 2017 22:24:51 +0200 Subject: [PATCH 381/386] doc: Document the branching and rebuild scheduling strategy. * doc/contributing.texi (Submitting Patches): Document the branching scheme. --- doc/contributing.texi | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/doc/contributing.texi b/doc/contributing.texi index 8465745ee9..925c584e42 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -345,9 +345,30 @@ For important changes, check that dependent package (if applicable) are not affected by the change; @code{guix refresh --list-dependent @var{package}} will help you do that (@pxref{Invoking guix refresh}). -Packages with roughly 100 dependents or more usually have to be -committed to a separate branch. That branch can then be built -separately by our build farm, and later merged into @code{master} once +@c See . +@cindex branching strategy +@cindex rebuild scheduling strategy +Depending on the number of dependent packages and thus the amount of +rebuilding induced, commits go to different branches, along these lines: + +@table @asis +@item 300 dependent packages or less +@code{master} branch (non-disruptive changes). + +@item between 300 and 1,200 dependent packages +@code{staging} branch (non-disruptive changes). This branch is intended +to be merged in @code{master} every 3 weeks or so. Topical changes +(e.g., an update of the GNOME stack) can instead go to a specific branch +(say, @code{gnome-updates}). + +@item more than 1,200 dependent packages +@code{core-updates} branch (may include major and potentially disruptive +changes). This branch is intended to be merged in @code{master} every +2.5 months or so. +@end table + +All these branches are tracked by our build farm +and merged into @code{master} once everything has been successfully built. This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available. From a88f2c33d6a9c148f9d03a539108b11a5062affd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 8 May 2017 03:37:14 +0200 Subject: [PATCH 382/386] gnu: pv: Use HTTPS. * gnu/packages/pv.scm (pv)[source, home-page]: Use HTTPS. --- gnu/packages/pv.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pv.scm b/gnu/packages/pv.scm index 9328da3533..59a0853a0e 100644 --- a/gnu/packages/pv.scm +++ b/gnu/packages/pv.scm @@ -29,13 +29,13 @@ (source (origin (method url-fetch) - (uri (string-append "http://www.ivarch.com/programs/sources/pv-" + (uri (string-append "https://www.ivarch.com/programs/sources/pv-" version ".tar.bz2")) (sha256 (base32 "13gg6r84pkvznpd1l11qw1jw9yna40gkgpni256khyx21m785khf")))) (build-system gnu-build-system) - (home-page "http://www.ivarch.com/programs/pv.shtml") + (home-page "https://www.ivarch.com/programs/pv.shtml") (synopsis "Pipeline progress indicator") (description "pv (Pipe Viewer) is a terminal-based tool for monitoring the progress From b6b281a5ba17b4c774590f68738a77993e7fbabd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 14 May 2017 15:06:26 +0200 Subject: [PATCH 383/386] gnu: weechat: Update to 1.8. * gnu/packages/irc.scm (weechat): Update to 1.8. --- gnu/packages/irc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index b86a82e24a..30e14a0914 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -142,14 +142,14 @@ SILC and ICB protocols via plugins.") (define-public weechat (package (name "weechat") - (version "1.7.1") + (version "1.8") (source (origin (method url-fetch) (uri (string-append "https://weechat.org/files/src/weechat-" version ".tar.xz")) (sha256 (base32 - "0c0waxrxq2v0r7981y1ajh9k78jfl223smwrj4v9c5z27iwh8ziz")) + "05z0qmlmdm0zgkzhi6cy6snxdz37h1n5z2s460df76akjr7capxn")) (patches (search-patches "weechat-python.patch")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) From dfd248648f59af374bf2c74403f0e561464f6afe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 14 May 2017 11:46:08 +0200 Subject: [PATCH 384/386] build: 'assert-no-store-file-names' depends on ChangeLog. This fixes a bug whereby "make distcheck -j4" might invoke 'assert-no-store-file-names' when the temporary $(distdir)/cl-t exists (and contains store file names), before $(distdir)/ChangeLog has been created. * Makefile.am (assert-no-store-file-names): Depend on $(distdir)/ChangeLog. (dist-hook): Depend on $(distdir)/ChangeLog instead of 'gen-ChangeLog'. (gen-ChangeLog): Add $(distdir)/ChangeLog left of the colon. --- Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index d85b671bb4..4b5a29a72d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -518,7 +518,7 @@ guix-binary.%.tar.xz: cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@" -dist-hook: gen-ChangeLog gen-AUTHORS gen-tarball-version +dist-hook: $(distdir)/ChangeLog gen-AUTHORS gen-tarball-version dist-hook: assert-no-store-file-names distcheck-hook: assert-binaries-available assert-final-inputs-self-contained @@ -531,7 +531,7 @@ $(top_srcdir)/.version: gen-tarball-version: echo $(VERSION) > "$(distdir)/.tarball-version" -gen-ChangeLog: +gen-ChangeLog $(distdir)/ChangeLog: $(AM_V_GEN)if test -d .git; then \ $(top_srcdir)/build-aux/gitlog-to-changelog \ > $(distdir)/cl-t; \ @@ -638,7 +638,7 @@ update-guix-package: "`git rev-parse HEAD`" # Make sure we're not shipping a file that embeds a local /gnu/store file name. -assert-no-store-file-names: +assert-no-store-file-names: $(distdir)/ChangeLog $(AM_V_at)if grep -r --exclude=*.texi --exclude=*.info \ --exclude=*.info-[0-9] --exclude=*.dot \ --exclude=*.eps --exclude-dir=bootstrap \ From c65d05b5ac6da768ffae1038f02a810f79dca83c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 14 May 2017 12:23:55 +0200 Subject: [PATCH 385/386] maint: Do not update PO files upon "make dist". This works around a non-determinstic build failure when doing "make distcheck -j4". * po/guix/Makevars (DIST_DEPENDS_ON_UPDATE_PO): New variable. * po/packages/Makevars (DIST_DEPENDS_ON_UPDATE_PO): New variable. --- po/guix/Makevars | 5 +++++ po/packages/Makevars | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/po/guix/Makevars b/po/guix/Makevars index 6e301b68ef..adbc8e246c 100644 --- a/po/guix/Makevars +++ b/po/guix/Makevars @@ -20,3 +20,8 @@ COPYRIGHT_HOLDER = Ludovic Courtès MSGID_BUGS_ADDRESS = ludo@gnu.org EXTRA_LOCALE_CATEGORIES = + +# Disable PO update upon "make dist", which sometimes fails when doing +# "make distcheck -j4". +# See . +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po/packages/Makevars b/po/packages/Makevars index 1b4689b7c3..c29f3d306c 100644 --- a/po/packages/Makevars +++ b/po/packages/Makevars @@ -17,3 +17,8 @@ COPYRIGHT_HOLDER = Ludovic Courtès MSGID_BUGS_ADDRESS = ludo@gnu.org EXTRA_LOCALE_CATEGORIES = + +# Disable PO update upon "make dist", which sometimes fails when doing +# "make distcheck -j4". +# See . +DIST_DEPENDS_ON_UPDATE_PO = no From 4be014128e1c422f37b56f9a6b3420b4e85c4302 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 14 May 2017 11:35:05 +0200 Subject: [PATCH 386/386] gnu: Add Nyacc. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mes.scm (nyacc): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/mes.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index aaa00f78a6..84d6f8ff78 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -26,10 +26,33 @@ #:use-module (gnu packages package-management) #:use-module (gnu packages perl) #:use-module (guix build-system gnu) + #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix licenses) #:use-module (guix packages)) +(define-public nyacc + (package + (name "nyacc") + (version "0.78.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/nyacc/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0xrnl2hl9rpl50n8cihvclcd951zj640fj5kpi3d6ihwcqjcdi0a")))) + (build-system gnu-build-system) + (native-inputs + `(("guile" ,guile-2.2))) + (synopsis "LALR(1) Parser Generator in Guile") + (description + "NYACC is an LALR(1) parser generator implemented in Guile. +The syntax and nomenclature should be considered not stable. It comes with +extensive examples, including parsers for the Javascript and C99 languages.") + (home-page "https://savannah.nongnu.org/projects/nyacc") + (license (list gpl3+ lgpl3+)))) + (define-public mes (let ((commit "a437c173b9da1949ad966fd50dd4f26e522a910a") (revision "0")