From 4138e782dcfea675ebc2347cbd4ea9abeb9dff36 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 3 Sep 2017 10:56:25 +0100 Subject: [PATCH 001/333] vm: Remove redundant conditional in system-disk-image. * gnu/system/vm.scm (system-disk-image): Remove redundant conditional for #:file-system-type when calling qemu-image. --- gnu/system/vm.scm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 4494af0031..b3da118765 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -403,10 +403,7 @@ to USB sticks meant to be read-only." (operating-system-bootloader os)) #:disk-image-size disk-image-size #:disk-image-format "raw" - #:file-system-type (if (string=? "iso9660" - file-system-type) - "ext4" - file-system-type) + #:file-system-type file-system-type #:file-system-label root-label #:copy-inputs? #t #:register-closures? #t From 26361de404c48a3378fc828eaa36d23dfacca3f1 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 22 Aug 2017 20:47:12 +0100 Subject: [PATCH 002/333] gnu: Add emacs-minitest. * gnu/packages/emacs.scm (emacs-minitest): New variable. --- gnu/packages/emacs.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index b23363796a..265b8d0aef 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1629,6 +1629,36 @@ display and behaviour is easily customisable.") of files under Git version control from within Emacs.") (license license:gpl3+))) +(define-public emacs-minitest + (package + (name "emacs-minitest") + (version "0.8.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/arthurnn/minitest-emacs/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1dsb7kzvs1x6g4sgqmq73jqacb7wzm0wfkiq5m9dqdzq8mppgiqs")))) + (build-system emacs-build-system) + (arguments + '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include) + #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f))) + (home-page "https://github.com/arthurnn/minitest-emacs") + (synopsis "Emacs minitest mode") + (description + "The minitest mode provides commands to run the tests for the current +file or line, as well as rerunning the previous tests, or all the tests for a +project. + +This package also includes relevant snippets for yasnippet.") + (license license:expat))) + (define-public emacs-el-mock (package (name "emacs-el-mock") From a913d9d9269b91b2b95d72e291c2dc62e163de7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 4 Sep 2017 23:52:12 +0200 Subject: [PATCH 003/333] gnu: emacs-tiny: Fix typo. * gnu/packages/emacs.scm (emacs-tiny)[description]: Fix typo. --- 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 265b8d0aef..5d9fd728a5 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -5551,7 +5551,7 @@ It supports dired buffers and opens them in tree mode at destination.") (synopsis "Quickly generate linear ranges in Emacs") (description "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}. -It iss meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp +It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp proficiency is an advantage, since you can transform your numeric range with an elisp expression.") (license license:gpl3+))) From b8b0f536a4f9a26c1d4002ca54048db6d5e58760 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 4 Sep 2017 20:38:29 -0400 Subject: [PATCH 004/333] gnu: libidn2: Replace with 2.0.4 [security fixes]. * gnu/packages/libidn.scm (libidn2)[replacement]: New field. (libidn2-2.0.4): New variable. --- gnu/packages/libidn.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gnu/packages/libidn.scm b/gnu/packages/libidn.scm index fc91fe263e..dfb1be6c4f 100644 --- a/gnu/packages/libidn.scm +++ b/gnu/packages/libidn.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012 Andreas Enge ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,6 +56,7 @@ Java libraries.") (package (name "libidn2") (version "2.0.2") + (replacement libidn2-2.0.4) (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libidn/" name "-" version @@ -76,3 +78,16 @@ library.") ;; The command-line tool 'idn2' is GPL3+, while the library is dual-licensed ;; GPL2+ or LGPL3+. (license (list gpl2+ gpl3+ lgpl3+)))) + +(define-public libidn2-2.0.4 + (package + (inherit libidn2) + (name "libidn2") + (version "2.0.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/libidn/" name "-" version + ".tar.lz")) + (sha256 + (base32 + "00f2fyw5kwr9is3cdn5h9arzxp0lnvg0z9bb9zyfs0dq81gaqim4")))))) From b3fee5c141753b7fba367f7bdf16054729e6f02e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 5 Sep 2017 00:22:19 +0200 Subject: [PATCH 005/333] gnu: Use HTTPS for libvirt.org. * gnu/packages/virtualization.scm (libvirt, python-libvirt)[home-page]: Use HTTPS. --- gnu/packages/virtualization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 32d10dcf82..be94844c57 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -426,7 +426,7 @@ to integrate other virtualization mechanisms if needed.") ("intltool" ,intltool) ("glib" ,glib "bin") ("vala" ,vala))) - (home-page "http://libvirt.org") + (home-page "https://libvirt.org") (synopsis "GLib wrapper around libvirt") (description "libvirt-glib wraps the libvirt library to provide a high-level object-oriented API better suited for glib-based applications, via @@ -469,7 +469,7 @@ three libraries: (native-inputs `(("pkg-config" ,pkg-config) ("python-nose" ,python-nose))) - (home-page "http://libvirt.org") + (home-page "https://libvirt.org") (synopsis "Python bindings to libvirt") (description "This package provides Python bindings to the libvirt virtualization library.") From 864f2f0ef0a28baf6c772152dfba1773eb1b14c5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 5 Sep 2017 00:21:25 +0200 Subject: [PATCH 006/333] gnu: python-libvirt: Update to 3.7.0. * gnu/packages/virtualization.scm (python-libvirt): Update to 3.7.0. --- gnu/packages/virtualization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index be94844c57..b0a6ca1312 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -443,13 +443,13 @@ three libraries: (define-public python-libvirt (package (name "python-libvirt") - (version "3.4.0") + (version "3.7.0") (source (origin (method url-fetch) (uri (pypi-uri "libvirt-python" version)) (sha256 (base32 - "04dma3979171p9yf0cg7m03shk038hc9vyfm9lb8z60qyn0pg9xg")))) + "0vy0ai8z88yhzqfk1n08z1gda5flrqxcw9lg1012b3zg125qljhy")))) (build-system python-build-system) (arguments `(#:phases From 2f110b32a4465d7e15f4f5ea8d55171b96143790 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 4 Sep 2017 22:11:27 +0200 Subject: [PATCH 007/333] gnu: libvirt: Update to 3.7.0. * gnu/packages/virtualization.scm (libvirt): Update to 3.7.0. [native-inputs]: Add libxslt for xsltproc. --- gnu/packages/virtualization.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index b0a6ca1312..49cfbfe2db 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -311,14 +311,14 @@ manage system or application containers.") (define-public libvirt (package (name "libvirt") - (version "3.6.0") + (version "3.7.0") (source (origin (method url-fetch) (uri (string-append "https://libvirt.org/sources/libvirt-" version ".tar.xz")) (sha256 (base32 - "0gcyql5dp6j370kvik9hjhxirrg89m7l1q52yq0g75h7jpv9fb1s")))) + "1fk75cdzg59y9hnfdpdwv83fsc1yffy3lac4ch19zygfkqhcnysf")))) (build-system gnu-build-system) (arguments `(;; FAIL: virshtest @@ -383,7 +383,8 @@ manage system or application containers.") ("iproute" ,iproute) ("iptables" ,iptables))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("xsltproc" ,libxslt) + ("pkg-config" ,pkg-config))) (home-page "https://libvirt.org") (synopsis "Simple API for virtualization") (description "Libvirt is a C toolkit to interact with the virtualization From b8fb94d5b85015f7358f4d6cce6ebbbe5031122e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 5 Sep 2017 00:24:54 +0200 Subject: [PATCH 008/333] gnu: libvirt: Make selected inputs native-inputs. * gnu/packages/virtualization.scm (libvirt)[inputs]: Move perl, polkit, and python from here... [native-inputs]: ...to here. --- gnu/packages/virtualization.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 49cfbfe2db..6cb4331b1f 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -365,7 +365,6 @@ manage system or application containers.") ("gnutls" ,gnutls) ("dbus" ,dbus) ("qemu" ,qemu) - ("polkit" ,polkit) ("libpcap" ,libpcap) ("libnl" ,libnl) ("libuuid" ,util-linux) @@ -373,8 +372,6 @@ manage system or application containers.") ("curl" ,curl) ("openssl" ,openssl) ("cyrus-sasl" ,cyrus-sasl) - ("perl" ,perl) - ("python" ,python-2) ("libyajl" ,libyajl) ("audit" ,audit) ("dmidecode" ,dmidecode) @@ -384,7 +381,10 @@ manage system or application containers.") ("iptables" ,iptables))) (native-inputs `(("xsltproc" ,libxslt) - ("pkg-config" ,pkg-config))) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("polkit" ,polkit) + ("python" ,python-2))) (home-page "https://libvirt.org") (synopsis "Simple API for virtualization") (description "Libvirt is a C toolkit to interact with the virtualization From c0ac72e18c8a53f7173e7f8b24f2e7aaf743c97e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 5 Sep 2017 05:44:27 +0200 Subject: [PATCH 009/333] gnu: epiphany: Update to 3.24.4. * gnu/packages/gnome.scm (epiphany): Update to 3.24.4. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5c94ceb036..281f4bd360 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4087,7 +4087,7 @@ a secret password store, an adblocker, and a modern UI.") (define-public epiphany (package (name "epiphany") - (version "3.24.3") + (version "3.24.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4095,7 +4095,7 @@ a secret password store, an adblocker, and a modern UI.") name "-" version ".tar.xz")) (sha256 (base32 - "0m51cclpnb7lxk8w526rriyb2bi3aj17fbcvikhkg7qd65v1dxgy")))) + "1jg59s98aljf603w24r5a3cr4fw6z88gc0warqy1946iprjgdw0m")))) (build-system glib-or-gtk-build-system) (arguments ;; FIXME: tests run under Xvfb, but fail with: From 325c039c1da3f7686d8b1456427eea8fdca92d05 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 5 Sep 2017 11:02:03 +0200 Subject: [PATCH 010/333] gnu: Add r-sparql. * gnu/packages/bioinformatics.scm (r-sparql): New variable. --- gnu/packages/bioinformatics.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5e8eef4e1c..bf8eb2e697 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6137,6 +6137,29 @@ data. It is derived from the UCSC hg19 genome and based on the \"knownGene\" track. The database is exposed as a @code{TxDb} object.") (license license:artistic2.0))) +(define-public r-sparql + (package + (name "r-sparql") + (version "1.16") + (source (origin + (method url-fetch) + (uri (cran-uri "SPARQL" version)) + (sha256 + (base32 + "0gak1q06yyhdmcxb2n3v0h9gr1vqd0viqji52wpw211qp6r6dcrc")))) + (properties `((upstream-name . "SPARQL"))) + (build-system r-build-system) + (propagated-inputs + `(("r-rcurl" ,r-rcurl) + ("r-xml" ,r-xml))) + (home-page "http://cran.r-project.org/web/packages/SPARQL") + (synopsis "SPARQL client for R") + (description "This package provides an interface to use SPARQL to pose +SELECT or UPDATE queries to an end-point.") + ;; The only license indication is found in the DESCRIPTION file, + ;; which states GPL-3. So we cannot assume GPLv3+. + (license license:gpl3))) + (define-public vsearch (package (name "vsearch") From 31b7f0c0fc7df81b9b6279065e52f80bad70ca48 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 5 Sep 2017 16:08:53 +0200 Subject: [PATCH 011/333] gnu: r-gdtools: Update to 0.1.6. * gnu/packages/statistics.scm (r-gdtools): Update to 0.1.6. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index df2d56212e..cc2304175a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1060,14 +1060,14 @@ aesthetic attributes.") (define-public r-gdtools (package (name "r-gdtools") - (version "0.1.5") + (version "0.1.6") (source (origin (method url-fetch) (uri (cran-uri "gdtools" version)) (sha256 (base32 - "09y9x09gri33ghhrvjjnj5k5rk0kdpsk3wq02cln8gmywd6728vk")))) + "103wnc8sq0iwcnj4j14hd420d2dqdyf13s3f25icsznrlyzdkhf5")))) (build-system r-build-system) (native-inputs `(("r-rcpp" ,r-rcpp) From 8036caa75a5ef2c702f6d90a8978a7cfacfd1f9a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 5 Sep 2017 16:09:17 +0200 Subject: [PATCH 012/333] gnu: r-tidyr: Update to 0.7.1. * gnu/packages/statistics.scm (r-tidyr): Update to 0.7.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index cc2304175a..40f783d890 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3586,14 +3586,14 @@ selection.") (define-public r-tidyr (package (name "r-tidyr") - (version "0.7.0") + (version "0.7.1") (source (origin (method url-fetch) (uri (cran-uri "tidyr" version)) (sha256 (base32 - "1lg0amx5hs37ajwjxz7ya50q4s28jcdj51kzl10s1x4l1akp7xls")))) + "18fii18f967xaw6swn0w744sncx37rfq6gd8d9dccrpyf8647hmr")))) (build-system r-build-system) (propagated-inputs `(("r-dplyr" ,r-dplyr) From fa67d5654176b4b815832eaf259188e1486c65ab Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 25 Jul 2017 10:15:58 +0200 Subject: [PATCH 013/333] gnu: elogind: Update to 232.3. * gnu/packages/freedesktop.scm (elogind): Update to 232.3. [home-page]: Use new upstream home page. [arguments]: Disable tests, add new required configure flags; add build phase "autogen". [native-inputs]: Add autoconf, automake, libtool, and python. --- gnu/packages/freedesktop.scm | 50 ++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index f99f9771e3..378a8f919e 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -204,14 +204,14 @@ the freedesktop.org XDG Base Directory specification.") (define-public elogind (package (name "elogind") - (version "219.14") + (version "232.3") (source (origin (method url-fetch) - (uri (string-append "https://wingolog.org/pub/" name "/" - name "-" version ".tar.xz")) + (uri (string-append "https://github.com/elogind/elogind/" + "archive/v" version ".tar.gz")) (sha256 (base32 - "1jckc4wx199n1q4r4fv43ibjs6nlq91s39w9r78ilk1z383m1hcx")) + "1g3bqzw5dhd5zaivqgbi13n5zy219qmkrk6vmbhfprs8qvyn843f")) (modules '((guix build utils))) (snippet '(begin @@ -222,25 +222,41 @@ the freedesktop.org XDG Base Directory specification.") (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid")))))) (build-system gnu-build-system) (arguments - `(#:configure-flags + `(#:tests? #f ;FIXME: "make check" in the "po" directory fails. + #:configure-flags (list (string-append "--with-libcap=" (assoc-ref %build-inputs "libcap")) (string-append "--with-udevrulesdir=" (assoc-ref %outputs "out") - "/lib/udev/rules.d")) + "/lib/udev/rules.d") + (string-append "--with-rootprefix=" + (assoc-ref %outputs "out")) + ;; These are needed to ensure that lto linking works. + "RANLIB=gcc-ranlib" + "AR=gcc-ar" + "NM=gcc-nm") #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent") - #:phases (modify-phases %standard-phases - (add-before 'build 'fix-service-file - (lambda* (#:key outputs #:allow-other-keys) - ;; Fix the file name of the 'elogind' binary in the D-Bus - ;; '.service' file. - (substitute* "src/login/org.freedesktop.login1.service" - (("^Exec=.*") - (string-append "Exec=" (assoc-ref %outputs "out") - "/libexec/elogind/elogind\n")))))))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'autogen + (lambda _ + (and (zero? (system* "intltoolize" "--force" "--automake")) + (zero? (system* "autoreconf" "-vif"))))) + (add-before 'build 'fix-service-file + (lambda* (#:key outputs #:allow-other-keys) + ;; Fix the file name of the 'elogind' binary in the D-Bus + ;; '.service' file. + (substitute* "src/login/org.freedesktop.login1.service" + (("^Exec=.*") + (string-append "Exec=" (assoc-ref %outputs "out") + "/libexec/elogind/elogind\n")))))))) (native-inputs - `(("intltool" ,intltool) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("intltool" ,intltool) ("gettext" ,gettext-minimal) + ("python" ,python) ("docbook-xsl" ,docbook-xsl) ("docbook-xml" ,docbook-xml) ("xsltproc" ,libxslt) @@ -260,7 +276,7 @@ the freedesktop.org XDG Base Directory specification.") ("dbus" ,dbus) ("eudev" ,eudev) ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes - (home-page "https://github.com/wingo/elogind") + (home-page "https://github.com/elogind/elogind") (synopsis "User, seat, and session management service") (description "Elogind is the systemd project's \"logind\" service, extracted out as a separate project. Elogind integrates with PAM to provide From b100a704955432b6287b62add3bd3e9ccd94f002 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Tue, 5 Sep 2017 19:39:22 +0200 Subject: [PATCH 014/333] guix: Fix Guile current-processor-count deprecation warnings. When current-processor-count is used without (ice-9 threads) being used, Guile complains with the following warning: Import (ice-9 threads) to have access to `current-processor-count'. * guix/store.scm: Use (ice-9 threads). --- guix/store.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/guix/store.scm b/guix/store.scm index 2563d26fa0..00d1e26fc4 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -40,6 +40,7 @@ #:use-module (ice-9 regex) #:use-module (ice-9 vlist) #:use-module (ice-9 popen) + #:use-module (ice-9 threads) #:use-module (web uri) #:export (%daemon-socket-uri %gc-roots-directory From 0cae36b5e5bd88eefea30b122acd41290a966980 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 5 Sep 2017 21:25:24 +0300 Subject: [PATCH 015/333] gnu: libmediainfo: Adjust build phases. * gnu/packages/video.scm (libmediainfo)[arguments]: Change to the build directory before running autogen. --- gnu/packages/video.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 3924e93f96..ab755347d3 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2250,10 +2250,11 @@ practically any type of media.") #:phases ;; build scripts not in root of archive (modify-phases %standard-phases - (add-before 'configure 'pre-configure + (add-after 'unpack 'change-to-build-dir (lambda _ - (chdir "Project/GNU/Library"))) - (add-after 'unpack 'autogen + (chdir "Project/GNU/Library") + #t)) + (add-after 'change-to-build-dir 'autogen (lambda _ (zero? (system* "sh" "autogen.sh"))))))) (home-page "https://mediaarea.net/en/MediaInfo") From 514c2f480643c3481498b4a3ad32d6e6351260ff Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 5 Sep 2017 12:56:00 -0400 Subject: [PATCH 016/333] gnu: tcpdump: Fix CVE-2017-[11541,11542,11543]. * gnu/packages/patches/tcpdump-CVE-2017-11541.patch, gnu/packages/patches/tcpdump-CVE-2017-11542.patch gnu/packages/patches/tcpdump-CVE-2017-11543.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/admin.scm (tcpdump)[source]: Use them. --- gnu/local.mk | 3 + gnu/packages/admin.scm | 3 + .../patches/tcpdump-CVE-2017-11541.patch | 47 +++++++++++ .../patches/tcpdump-CVE-2017-11542.patch | 37 +++++++++ .../patches/tcpdump-CVE-2017-11543.patch | 79 +++++++++++++++++++ 5 files changed, 169 insertions(+) create mode 100644 gnu/packages/patches/tcpdump-CVE-2017-11541.patch create mode 100644 gnu/packages/patches/tcpdump-CVE-2017-11542.patch create mode 100644 gnu/packages/patches/tcpdump-CVE-2017-11543.patch diff --git a/gnu/local.mk b/gnu/local.mk index 643a88db81..edfecc7783 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1031,6 +1031,9 @@ dist_patch_DATA = \ %D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tcl-mkindex-deterministic.patch \ %D%/packages/patches/tclxml-3.2-install.patch \ + %D%/packages/patches/tcpdump-CVE-2017-11541.patch \ + %D%/packages/patches/tcpdump-CVE-2017-11542.patch \ + %D%/packages/patches/tcpdump-CVE-2017-11543.patch \ %D%/packages/patches/tcsh-fix-autotest.patch \ %D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \ %D%/packages/patches/teensy-loader-cli-help.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ea71de6f57..f047bcaef3 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -666,6 +666,9 @@ network statistics collection, security monitoring, network debugging, etc.") (method url-fetch) (uri (string-append "http://www.tcpdump.org/release/tcpdump-" version ".tar.gz")) + (patches (search-patches "tcpdump-CVE-2017-11541.patch" + "tcpdump-CVE-2017-11542.patch" + "tcpdump-CVE-2017-11543.patch")) (sha256 (base32 "1wyqbg7bkmgqyslf1ns0xx9fcqi66hvcfm9nf77rl15jvvs8qi7r")))) diff --git a/gnu/packages/patches/tcpdump-CVE-2017-11541.patch b/gnu/packages/patches/tcpdump-CVE-2017-11541.patch new file mode 100644 index 0000000000..a9fc632dc2 --- /dev/null +++ b/gnu/packages/patches/tcpdump-CVE-2017-11541.patch @@ -0,0 +1,47 @@ +Fix CVE-2017-11541 + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11541 + +Patch copied from upstream source repository: + +https://github.com/the-tcpdump-group/tcpdump/commit/21d702a136c5c16882e368af7c173df728242280 + +From 21d702a136c5c16882e368af7c173df728242280 Mon Sep 17 00:00:00 2001 +From: Guy Harris +Date: Tue, 7 Feb 2017 11:40:36 -0800 +Subject: [PATCH] CVE-2017-11541: In safeputs(), check the length before + checking for a NUL terminator. + +safeputs() doesn't do packet bounds checking of its own; it assumes that +the caller has checked the availability in the packet data of all maxlen +bytes of data. This means we should check that we're within the +specified limit before looking at the byte. + +This fixes a buffer over-read discovered by Kamil Frankowicz. + +Add a test using the capture file supplied by the reporter(s). +--- + tests/TESTLIST | 1 + + tests/hoobr_safeputs.out | 2 ++ + tests/hoobr_safeputs.pcap | Bin 0 -> 88 bytes + util-print.c | 2 +- + 4 files changed, 4 insertions(+), 1 deletion(-) + create mode 100644 tests/hoobr_safeputs.out + create mode 100644 tests/hoobr_safeputs.pcap + +diff --git a/util-print.c b/util-print.c +index 394e7d59..ec3e8de8 100644 +--- a/util-print.c ++++ b/util-print.c +@@ -904,7 +904,7 @@ safeputs(netdissect_options *ndo, + { + u_int idx = 0; + +- while (*s && idx < maxlen) { ++ while (idx < maxlen && *s) { + safeputchar(ndo, *s); + idx++; + s++; +-- +2.14.1 + diff --git a/gnu/packages/patches/tcpdump-CVE-2017-11542.patch b/gnu/packages/patches/tcpdump-CVE-2017-11542.patch new file mode 100644 index 0000000000..24849d5187 --- /dev/null +++ b/gnu/packages/patches/tcpdump-CVE-2017-11542.patch @@ -0,0 +1,37 @@ +Fix CVE-2017-11542: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11542 + +Patch copied from upstream source repository: + +https://github.com/the-tcpdump-group/tcpdump/commit/bed48062a64fca524156d7684af19f5b4a116fae + +From bed48062a64fca524156d7684af19f5b4a116fae Mon Sep 17 00:00:00 2001 +From: Guy Harris +Date: Tue, 7 Feb 2017 11:10:04 -0800 +Subject: [PATCH] CVE-2017-11542/PIMv1: Add a bounds check. + +This fixes a buffer over-read discovered by Kamil Frankowicz. + +Add a test using the capture file supplied by the reporter(s). +--- + print-pim.c | 1 + + tests/TESTLIST | 1 + + tests/hoobr_pimv1.out | 25 +++++++++++++++++++++++++ + tests/hoobr_pimv1.pcap | Bin 0 -> 3321 bytes + 4 files changed, 27 insertions(+) + create mode 100644 tests/hoobr_pimv1.out + create mode 100644 tests/hoobr_pimv1.pcap + +diff --git a/print-pim.c b/print-pim.c +index 25525953..ed880ae7 100644 +--- a/print-pim.c ++++ b/print-pim.c +@@ -306,6 +306,7 @@ pimv1_print(netdissect_options *ndo, + pimv1_join_prune_print(ndo, &bp[8], len - 8); + break; + } ++ ND_TCHECK(bp[4]); + if ((bp[4] >> 4) != 1) + ND_PRINT((ndo, " [v%d]", bp[4] >> 4)); + return; diff --git a/gnu/packages/patches/tcpdump-CVE-2017-11543.patch b/gnu/packages/patches/tcpdump-CVE-2017-11543.patch new file mode 100644 index 0000000000..c973503983 --- /dev/null +++ b/gnu/packages/patches/tcpdump-CVE-2017-11543.patch @@ -0,0 +1,79 @@ +Fix CVE-2017-11543: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11543 + +Patch copied from upstream source repository: + +https://github.com/the-tcpdump-group/tcpdump/commit/7039327875525278d17edee59720e29a3e76b7b3 + +From 7039327875525278d17edee59720e29a3e76b7b3 Mon Sep 17 00:00:00 2001 +From: Guy Harris +Date: Fri, 17 Mar 2017 12:49:04 -0700 +Subject: [PATCH] CVE-2017-11543/Make sure the SLIP direction octet is valid. + +Report if it's not, and don't use it as an out-of-bounds index into an +array. + +This fixes a buffer overflow discovered by Wilfried Kirsch. + +Add a test using the capture file supplied by the reporter(s), modified +so the capture file won't be rejected as an invalid capture. +--- + print-sl.c | 25 +++++++++++++++++++++++-- + tests/TESTLIST | 3 +++ + tests/slip-bad-direction.out | 1 + + tests/slip-bad-direction.pcap | Bin 0 -> 79 bytes + 4 files changed, 27 insertions(+), 2 deletions(-) + create mode 100644 tests/slip-bad-direction.out + create mode 100644 tests/slip-bad-direction.pcap + +diff --git a/print-sl.c b/print-sl.c +index 3fd7e898..a02077b3 100644 +--- a/print-sl.c ++++ b/print-sl.c +@@ -131,8 +131,21 @@ sliplink_print(netdissect_options *ndo, + u_int hlen; + + dir = p[SLX_DIR]; +- ND_PRINT((ndo, dir == SLIPDIR_IN ? "I " : "O ")); ++ switch (dir) { + ++ case SLIPDIR_IN: ++ ND_PRINT((ndo, "I ")); ++ break; ++ ++ case SLIPDIR_OUT: ++ ND_PRINT((ndo, "O ")); ++ break; ++ ++ default: ++ ND_PRINT((ndo, "Invalid direction %d ", dir)); ++ dir = -1; ++ break; ++ } + if (ndo->ndo_nflag) { + /* XXX just dump the header */ + register int i; +@@ -155,13 +168,21 @@ sliplink_print(netdissect_options *ndo, + * has restored the IP header copy to IPPROTO_TCP. + */ + lastconn = ((const struct ip *)&p[SLX_CHDR])->ip_p; ++ ND_PRINT((ndo, "utcp %d: ", lastconn)); ++ if (dir == -1) { ++ /* Direction is bogus, don't use it */ ++ return; ++ } + hlen = IP_HL(ip); + hlen += TH_OFF((const struct tcphdr *)&((const int *)ip)[hlen]); + lastlen[dir][lastconn] = length - (hlen << 2); +- ND_PRINT((ndo, "utcp %d: ", lastconn)); + break; + + default: ++ if (dir == -1) { ++ /* Direction is bogus, don't use it */ ++ return; ++ } + if (p[SLX_CHDR] & TYPE_COMPRESSED_TCP) { + compressed_sl_print(ndo, &p[SLX_CHDR], ip, + length, dir); From a4c1e99ed95c5032f8e6201fb7bcf1692f9c92c8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 6 Nov 2016 18:01:54 +0100 Subject: [PATCH 017/333] =?UTF-8?q?build:=20Negate=20=E2=80=98--disable-da?= =?UTF-8?q?emon=E2=80=99=20help=20string.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a follow-up to commit c9b70836d080150046633edc782fdaaff9fc6d9c. * configure.ac: Make ‘--disable-daemon’'s help text consistent with others. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 9ad7598f8b..5120df53fd 100644 --- a/configure.ac +++ b/configure.ac @@ -52,7 +52,7 @@ AC_MSG_CHECKING([for the store directory]) AC_MSG_RESULT([$storedir]) AC_ARG_ENABLE([daemon], - [AS_HELP_STRING([--disable-daemon], [build the Nix daemon (C++)])], + [AS_HELP_STRING([--disable-daemon], [do not build the Nix daemon (C++)])], [guix_build_daemon="$enableval"], [guix_build_daemon="yes"]) From 57d28987722cb6b830fae212ea0d6a704580ff9c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 28 Aug 2017 15:46:10 +0200 Subject: [PATCH 018/333] Handle the same HTTP redirects everywhere. * guix/build/download.scm (http-fetch): Complete the hard-coded list of HTTP redirection status codes. * guix/http-client.scm (http-fetch): Likewise. * guix/scripts/lint.scm (probe-uri): Likewise. --- guix/build/download.scm | 5 ++++- guix/http-client.scm | 6 +++++- guix/scripts/lint.scm | 7 ++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/guix/build/download.scm b/guix/build/download.scm index 6ef6233346..bcf22663b0 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015 Steve Sprang +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -763,7 +764,9 @@ certificates; otherwise simply ignore them." file)) ((301 ; moved permanently 302 ; found (redirection) - 307) ; temporary redirection + 303 ; see other + 307 ; temporary redirection + 308) ; permanent redirection (let ((uri (resolve-uri-reference (response-location resp) uri))) (format #t "following redirection to `~a'...~%" (uri->string uri)) diff --git a/guix/http-client.scm b/guix/http-client.scm index 3c5441c38c..5c9342c218 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2012, 2015 Free Software Foundation, Inc. +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -259,7 +260,10 @@ Raise an '&http-get-error' condition if downloading fails." ((200) (values data (response-content-length resp))) ((301 ; moved permanently - 302) ; found (redirection) + 302 ; found (redirection) + 303 ; see other + 307 ; temporary redirection + 308) ; permanent redirection (let ((uri (resolve-uri-reference (response-location resp) uri))) (close-port port) (format #t (G_ "following redirection to `~a'...~%") diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index aceafc674d..57bbeec465 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Alex Kost +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -411,7 +412,11 @@ for connections to complete; when TIMEOUT is #f, wait as long as needed." (close-connection port)))) (case (response-code response) - ((301 302 307) + ((301 ; moved permanently + 302 ; found (redirection) + 303 ; see other + 307 ; temporary redirection + 308) ; permanent redirection (let ((location (response-location response))) (if (or (not location) (member location visited)) (values 'http-response response) From 4695472f8a2ff054da8137df1605b27b3d2bafb7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 5 Sep 2017 18:53:38 +0200 Subject: [PATCH 019/333] doc: Fix typo in copyright header. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi: Move stray ‘@*’ to where it belongs. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 70a9e36f4d..0a18f71da1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -38,8 +38,8 @@ Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017 Marius Bakke@* -Copyright @copyright{} 2017 Hartmut Goebel -Copyright @copyright{} 2017 Maxim Cournoyer@* +Copyright @copyright{} 2017 Hartmut Goebel@* +Copyright @copyright{} 2017 Maxim Cournoyer Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or From 352a5b639b2adfa343f5a786529bb112636757ea Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 5 Sep 2017 18:54:08 +0200 Subject: [PATCH 020/333] =?UTF-8?q?services:=20web:=20Fix=20nginx-service-?= =?UTF-8?q?type's=20=E2=80=98file=E2=80=99=20procedure.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/web.scm (nginx-activation, nginx-shepherd-service): Replace references to non-existent ‘config-file’ with ‘file’. * doc/guix.texi (Web Services): Likewise. --- doc/guix.texi | 12 ++++++------ gnu/services/web.scm | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 0a18f71da1..3e9593d0cb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -39,7 +39,8 @@ Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* -Copyright @copyright{} 2017 Maxim Cournoyer +Copyright @copyright{} 2017 Maxim Cournoyer@* +Copyright @copyright{} 2017 Tobias Geerinckx-Rice Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -14139,13 +14140,12 @@ requests with two servers. "server2.example.com"))))))) @end example -@item @code{config-file} (default: @code{#f}) -If the @var{config-file} is provided, this will be used, rather than +@item @code{file} (default: @code{#f}) +If a configuration @var{file} is provided, this will be used, rather than generating a configuration file from the provided @code{log-directory}, @code{run-directory}, @code{server-list} and @code{upstream-list}. For -proper operation, these arguments should match what is in -@var{config-file} to ensure that the directories are created when the -service is activated. +proper operation, these arguments should match what is in @var{file} to +ensure that the directories are created when the service is activated. This can be useful if you have an existing configuration file, or it's not possible to do what is required through the other parts of the diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 18278502e4..4aa6fd501c 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -262,7 +262,7 @@ of index files." (define nginx-activation (match-lambda (($ nginx log-directory run-directory server-blocks - upstream-blocks config-file) + upstream-blocks file) #~(begin (use-modules (guix build utils)) @@ -281,7 +281,7 @@ of index files." (mkdir-p (string-append #$run-directory "/logs")) ;; Check configuration file syntax. (system* (string-append #$nginx "/sbin/nginx") - "-c" #$(or config-file + "-c" #$(or file (default-nginx-config nginx log-directory run-directory server-blocks upstream-blocks)) "-t"))))) @@ -289,14 +289,14 @@ of index files." (define nginx-shepherd-service (match-lambda (($ nginx log-directory run-directory server-blocks - upstream-blocks config-file) + upstream-blocks file) (let* ((nginx-binary (file-append nginx "/sbin/nginx")) (nginx-action (lambda args #~(lambda _ (zero? (system* #$nginx-binary "-c" - #$(or config-file + #$(or file (default-nginx-config nginx log-directory run-directory server-blocks upstream-blocks)) #$@args)))))) From 26ac5c90c134c12c8a3e40d1207859d09d11f7ab Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Sep 2016 20:35:29 +0200 Subject: [PATCH 021/333] gnu: nginx: Enable HTTP/2.0 (ngx_http_v2_module). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/web.scm (nginx)[arguments]: Add ‘--with-http_v2_module’ flag. --- gnu/packages/web.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ac65a85365..377e366e27 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -162,6 +162,7 @@ and its related documentation.") (let ((flags (list (string-append "--prefix=" (assoc-ref outputs "out")) "--with-http_ssl_module" + "--with-http_v2_module" "--with-pcre-jit" "--with-debug" ;; Even when not cross-building, we pass the From 5cf0997a0bbb582b184831cbf0e028e3ec1359e4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 5 Sep 2017 20:12:33 +0200 Subject: [PATCH 022/333] gnu: ruby-coderay: Update to 1.1.2. * gnu/packages/ruby.scm (ruby-coderay): Update to 1.1.2. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 6251145f09..3db657f0db 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2023,14 +2023,14 @@ extract comments.") (define-public ruby-coderay (package (name "ruby-coderay") - (version "1.1.1") + (version "1.1.2") (source (origin (method url-fetch) (uri (rubygems-uri "coderay" version)) (sha256 (base32 - "1x6z923iwr1hi04k6kz5a6llrixflz8h5sskl9mhaaxy9jx2x93r")))) + "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; missing test files From f1597427f220b0799b9c8847768d2f5a93fe3730 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 5 Sep 2017 23:02:56 +0300 Subject: [PATCH 023/333] gnu: file: Fix CVE-2017-1000249. * gnu/packages/file.scm (file)[replacement]: New field. (file/fixed): New variable. * gnu/packages/commencement.scm (file-boot0): Use package/inherit. * gnu/packages/patches/file-CVE-2017-1000249.patch. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/commencement.scm | 3 +-- gnu/packages/file.scm | 11 ++++++-- .../patches/file-CVE-2017-1000249.patch | 27 +++++++++++++++++++ 4 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/file-CVE-2017-1000249.patch diff --git a/gnu/local.mk b/gnu/local.mk index edfecc7783..445d126c1b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -603,6 +603,7 @@ dist_patch_DATA = \ %D%/packages/patches/fasthenry-spFactor.patch \ %D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch \ %D%/packages/patches/fcgi-2.4.0-poll.patch \ + %D%/packages/patches/file-CVE-2017-1000249.patch \ %D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-gnulib-multi-core.patch \ %D%/packages/patches/findutils-test-xargs.patch \ diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 2b67881ede..7bbe1becd9 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -112,8 +112,7 @@ (define file-boot0 (package-with-bootstrap-guile - (package-with-explicit-inputs (package - (inherit file) + (package-with-explicit-inputs (package/inherit file (name "file-boot0")) `(("make" ,gnu-make-boot0) ,@%bootstrap-inputs) diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm index 050e6715b1..3bc8e1dcfe 100644 --- a/gnu/packages/file.scm +++ b/gnu/packages/file.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,7 +27,8 @@ (define-public file (package - (name "file") + (replacement file/fixed) + (name "file") (version "5.30") (source (origin (method url-fetch) @@ -51,3 +52,9 @@ of the file.") (license bsd-2) (home-page "http://www.darwinsys.com/file/"))) +(define file/fixed + (package + (inherit file) + (source (origin + (inherit (package-source file)) + (patches (search-patches "file-CVE-2017-1000249.patch")))))) diff --git a/gnu/packages/patches/file-CVE-2017-1000249.patch b/gnu/packages/patches/file-CVE-2017-1000249.patch new file mode 100644 index 0000000000..505acf1592 --- /dev/null +++ b/gnu/packages/patches/file-CVE-2017-1000249.patch @@ -0,0 +1,27 @@ +https://github.com/file/file/commit/35c94dc6acc418f1ad7f6241a6680e5327495793.patch +http://openwall.com/lists/oss-security/2017/09/05/3 + +The patch is minorly modified to apply to file-5.30 + +From 35c94dc6acc418f1ad7f6241a6680e5327495793 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas +Date: Sun, 27 Aug 2017 07:55:02 +0000 +Subject: [PATCH] Fix always true condition (Thomas Jarosch) + +--- + src/readelf.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/readelf.c b/src/readelf.c +index 81451827..5f425c97 100644 +--- a/src/readelf.c ++++ b/src/readelf.c +@@ -511,7 +511,7 @@ do_bid_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, + size_t noff, size_t doff, int *flags) + { + if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 && +- type == NT_GNU_BUILD_ID && (descsz >= 4 || descsz <= 20)) { ++ type == NT_GNU_BUILD_ID && (descsz >= 4 && descsz <= 20)) { + uint8_t desc[20]; + const char *btype; + uint32_t i; From 22bbdb5f794c9fe2f350f4295b8dcf93438ad011 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 3 Sep 2017 11:47:58 +0100 Subject: [PATCH 024/333] vm: Add support for registering closures to make-iso9660-image. This mimics the functionality in the root-partition-initializer used in creating the QEMU image. This helps when trying to run guix system init from the generated ISO image. * gnu/build/vm.scm (make-iso9660-image): Add support for registering closures. --- gnu/build/vm.scm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 727494ad93..606257d8c3 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -366,12 +366,27 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (error "failed to create GRUB EFI image")))) (define* (make-iso9660-image grub config-file os-drv target - #:key (volume-id "GuixSD_image") (volume-uuid #f)) + #:key (volume-id "GuixSD_image") (volume-uuid #f) + register-closures? (closures '())) "Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as GRUB configuration and OS-DRV as the stuff in it." - (let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue"))) + (let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue")) + (target-store (string-append "/tmp/root" (%store-directory)))) (mkdir-p "/tmp/root/var/run") (mkdir-p "/tmp/root/run") + + (mkdir-p target-store) + (mount (%store-directory) target-store "" MS_BIND) + + (when register-closures? + (display "registering closures...\n") + (for-each (lambda (closure) + (register-closure + "/tmp/root" + (string-append "/xchg/" closure) + #:deduplicate? #f)) + closures)) + (unless (zero? (apply system* `(,grub-mkrescue "-o" ,target ,(string-append "boot/grub/grub.cfg=" config-file) From 309b8fe7e65c39e04b7a5f89adb5a0a72867cdff Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 3 Sep 2017 11:48:11 +0100 Subject: [PATCH 025/333] vm: Create /mnt in the generated ISO image in make-iso9660-image. This is used in the installation process, as the mountpoint for the target filesystem. * gnu/build/vm.scm (make-iso9660-image): Create /mnt within the generated ISO image. --- gnu/build/vm.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 606257d8c3..f6228b40bb 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -374,6 +374,7 @@ GRUB configuration and OS-DRV as the stuff in it." (target-store (string-append "/tmp/root" (%store-directory)))) (mkdir-p "/tmp/root/var/run") (mkdir-p "/tmp/root/run") + (mkdir-p "/tmp/root/mnt") (mkdir-p target-store) (mount (%store-directory) target-store "" MS_BIND) @@ -393,6 +394,10 @@ GRUB configuration and OS-DRV as the stuff in it." ,(string-append "gnu/store=" os-drv "/..") "var=/tmp/root/var" "run=/tmp/root/run" + ;; /mnt is used as part of the installation + ;; process, as the mount point for the target + ;; filesystem, so create it. + "mnt=/tmp/root/mnt" "--" ;; Store two copies of the headers. ;; The resulting ISO-9660 image has a DOS MBR and From e375d3fab7a64246f9c1caa4b23a280f5b84ebc6 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 3 Sep 2017 11:48:20 +0100 Subject: [PATCH 026/333] vm: Add support for registering closures to iso9660-image. * gnu/system/vm.scm (iso9660-image): Add support for registering closures. --- gnu/system/vm.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index b3da118765..f7a711a72b 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -192,6 +192,7 @@ made available under the /xchg CIFS share." os-drv bootcfg-drv bootloader + register-closures? (inputs '())) "Return a bootable, stand-alone iso9660 image. @@ -207,8 +208,13 @@ INPUTS is a list of inputs (as for packages)." (let ((inputs '#$(append (list qemu parted e2fsprogs dosfstools xorriso) (map canonical-package - (list sed grep coreutils findutils gawk)))) + (list sed grep coreutils findutils gawk)) + (if register-closures? (list guix) '()))) + + (graphs '#$(match inputs + (((names . _) ...) + names))) ;; This variable is unused but allows us to add INPUTS-TO-COPY ;; as inputs. (to-register @@ -222,6 +228,8 @@ INPUTS is a list of inputs (as for packages)." #$bootcfg-drv #$os-drv "/xchg/guixsd.iso" + #:register-closures? #$register-closures? + #:closures graphs #:volume-id #$file-system-label #:volume-uuid #$file-system-uuid) (reboot)))) From b069111f7a5d2c4596b9bc796fd0f56b77eb4c4e Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 3 Sep 2017 11:48:27 +0100 Subject: [PATCH 027/333] vm: Call iso9660-image with #:register-closures? as #t. * gnu/system/vm.scm (system-disk-image): Call iso9660-image with #:register-closures? as #t. --- gnu/system/vm.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index f7a711a72b..b106dff0a8 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -399,6 +399,7 @@ to USB sticks meant to be read-only." #:file-system-label root-label #:file-system-uuid #f #:os-drv os-drv + #:register-closures? #t #:bootcfg-drv bootcfg #:bootloader (bootloader-configuration-bootloader (operating-system-bootloader os)) From fbc7b1f12561159e0ec3f6459d336f95cf2ce503 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 3 Sep 2017 11:48:36 +0100 Subject: [PATCH 028/333] tests: Add test for installing from an ISO Image. * gnu/tests/install.scm (%test-iso-image-installer): New variable. (run-install): Add #:installation-disk-image-file-system-type as a keyword argument. --- gnu/tests/install.scm | 110 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 99 insertions(+), 11 deletions(-) diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 866bf885ce..93c8a89cd8 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -37,6 +37,7 @@ #:use-module (guix utils) #:export (%test-installed-os %test-installed-extlinux-os + %test-iso-image-installer %test-separate-store-os %test-separate-home-os %test-raid-root-os @@ -196,6 +197,7 @@ reboot\n") (kernel-arguments '("console=ttyS0"))) #:imported-modules '((gnu services herd) (guix combinators)))) + (installation-disk-image-file-system-type "ext4") (target-size (* 1200 MiB))) "Run SCRIPT (a shell script following the GuixSD installation procedure) in OS to install TARGET-OS. Return a VM image of TARGET-SIZE bytes containing @@ -213,7 +215,9 @@ packages defined in installation-os." (image (system-disk-image (operating-system-with-gc-roots os (list target)) - #:disk-image-size (* 1500 MiB)))) + #:disk-image-size (* 1500 MiB) + #:file-system-type + installation-disk-image-file-system-type))) (define install (with-imported-modules '((guix build utils) (gnu build marionette)) @@ -229,16 +233,25 @@ packages defined in installation-os." (define marionette (make-marionette - (cons (which #$(qemu-command system)) - (cons* "-no-reboot" "-m" "800" - "-drive" - (string-append "file=" #$image - ",if=virtio,readonly") - "-drive" - (string-append "file=" #$output ",if=virtio") - (if (file-exists? "/dev/kvm") - '("-enable-kvm") - '()))))) + `(,(which #$(qemu-command system)) + "-no-reboot" + "-m" "800" + #$@(cond + ((string=? "ext4" installation-disk-image-file-system-type) + `("-drive" + ,(file-append "file=" image + ",if=virtio,readonly"))) + ((string=? "iso9660" installation-disk-image-file-system-type) + `("-cdrom" ,image)) + (else + (error + "unsupported installation-disk-image-file-system-type:" + installation-disk-image-file-system-type))) + "-drive" + ,(string-append "file=" #$output ",if=virtio") + ,@(if (file-exists? "/dev/kvm") + '("-enable-kvm") + '())))) (pk 'uname (marionette-eval '(uname) marionette)) @@ -312,6 +325,81 @@ per %test-installed-os, this test is expensive in terms of CPU and storage.") (run-basic-test %minimal-extlinux-os command "installed-extlinux-os"))))) + +;;; +;;; Installation through an ISO image. +;;; + +(define-os-with-source (%minimal-os-on-vda %minimal-os-on-vda-source) + ;; The OS we want to install. + (use-modules (gnu) (gnu tests) (srfi srfi-1)) + + (operating-system + (host-name "liberigilo") + (timezone "Europe/Paris") + (locale "en_US.UTF-8") + + (bootloader (grub-configuration (target "/dev/vda"))) + (kernel-arguments '("console=ttyS0")) + (file-systems (cons (file-system + (device "my-root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + (supplementary-groups '("wheel" "audio" "video")) + (home-directory "/home/alice")) + %base-user-accounts)) + (services (cons (service marionette-service-type + (marionette-configuration + (imported-modules '((gnu services herd) + (guix combinators))))) + %base-services)))) + +(define %simple-installation-script-for-/dev/vda + ;; Shell script of a simple installation. + "\ +. /etc/profile +set -e -x +guix --version + +export GUIX_BUILD_OPTIONS=--no-grafts +guix build isc-dhcp +parted --script /dev/vda mklabel gpt \\ + mkpart primary ext2 1M 3M \\ + mkpart primary ext2 3M 1G \\ + set 1 boot on \\ + set 1 bios_grub on +mkfs.ext4 -L my-root /dev/vda2 +mount /dev/vda2 /mnt +df -h /mnt +herd start cow-store /mnt +mkdir /mnt/etc +cp /etc/target-config.scm /mnt/etc/config.scm +guix system init /mnt/etc/config.scm /mnt --no-substitutes +sync +reboot\n") + +(define %test-iso-image-installer + (system-test + (name "iso-image-installer") + (description + "") + (value + (mlet* %store-monad ((image (run-install + %minimal-os-on-vda + %minimal-os-on-vda-source + #:script + %simple-installation-script-for-/dev/vda + #:installation-disk-image-file-system-type + "iso9660")) + (command (qemu-command/writable-image image))) + (run-basic-test %minimal-os-on-vda command name))))) + ;;; ;;; Separate /home. From 472c2223c09e5d692e885c28c84d34130c1e9123 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Sep 2017 09:48:40 +0300 Subject: [PATCH 029/333] gnu: kmscon: Add missing input. * gnu/packages/terminals.scm (kmscon)[inputs]: Add libcap. --- gnu/packages/terminals.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index df093c293d..db61915955 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -239,7 +239,8 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.") ("libxml2" ,libxml2) ;for XML_CATALOG_FILES ("docbook-xsl" ,docbook-xsl))) (inputs - `(("libdrm" ,libdrm) + `(("libcap" ,libcap) + ("libdrm" ,libdrm) ("libtsm" ,libtsm) ("libxkbcommon" ,libxkbcommon) ("logind" ,elogind) From 124ac301c1f11b7c217107c3abf91edbb1a1c3f8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Sep 2017 09:49:17 +0300 Subject: [PATCH 030/333] gnu: weston: Add missing input. * gnu/packages/freedesktop.scm (weston)[inputs]: Add libcap. --- gnu/packages/freedesktop.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 378a8f919e..3c4ae3f4d0 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -448,6 +448,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") `(("cairo" ,cairo-xcb) ("dbus" ,dbus) ("elogind" ,elogind) + ("libcap" ,libcap) ("libinput" ,libinput-minimal) ("libunwind" ,libunwind) ("libxcursor" ,libxcursor) From 77c2476ae31959b13bdf11f0574323eaedfbd272 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Sep 2017 09:49:54 +0300 Subject: [PATCH 031/333] gnu: polkit: Add missing input. * gnu/packages/polkit.scm (polkit)[inputs]: Add libcap. --- gnu/packages/polkit.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index 0e38dd61ee..11c825ef34 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -81,6 +81,7 @@ (build-system gnu-build-system) (inputs `(("expat" ,expat) + ("libcap" ,libcap) ("linux-pam" ,linux-pam) ("elogind" ,elogind) ("mozjs" ,mozjs) From 0cce140dc2cf1f652e659ee1ca9f7308d16eda43 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Sep 2017 09:50:45 +0300 Subject: [PATCH 032/333] gnu: gnome-session: Add missing input. * gnu/packages/gnome.scm (gnome-settings)[inputs]: Add libcap. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 281f4bd360..e8253299a7 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4502,6 +4502,7 @@ such as gzip tarballs.") ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+) ("json-glib" ,json-glib) + ("libcap" ,libcap) ("libsm" ,libsm) ("libxcomposite" ,libxcomposite) ("libxtst" ,libxtst) From 50918af29bd4cb8b77a4518ca7f2748d389d41de Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Sep 2017 09:51:56 +0300 Subject: [PATCH 033/333] gnu: mutter: Only propagate glib once. * gnu/packages/gnome.scm (mutter)[propagated-inputs]: Remove duplicate glib. --- gnu/packages/gnome.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e8253299a7..5f0d068539 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4720,7 +4720,6 @@ to display dialog boxes from the commandline and shell scripts.") ("cairo" ,cairo) ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib) - ("glib" ,glib) ("gtk+" ,gtk+) ("json-glib" ,json-glib) ("libinput" ,libinput) From 744e9d0745a76a2f177452189baa0d2bc84ba144 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Sep 2017 09:52:23 +0300 Subject: [PATCH 034/333] gnu: mutter: Add missing input. * gnu/packages/gnome.scm (mutter)[inputs]: Add libcap. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5f0d068539..d64bd9ffab 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4738,6 +4738,7 @@ to display dialog boxes from the commandline and shell scripts.") `(("elogind" ,elogind) ("gnome-desktop" ,gnome-desktop) ("libcanberra-gtk" ,libcanberra) + ("libcap" ,libcap) ("libgudev" ,libgudev) ("libice" ,libice) ("libsm" ,libsm) From 21a656f590458652f4f2413ad5f2e3b1eda0a033 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 2 Sep 2017 12:06:55 +0100 Subject: [PATCH 035/333] gnu: Add emacs-go-mode. * gnu/packages/emacs.scm (emacs-go-mode): New variable. --- gnu/packages/emacs.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 5d9fd728a5..bc01d5777d 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1193,6 +1193,26 @@ Using emacs-direnv means that programs started from Emacs will use the environment set through Direnv.") (license license:gpl3+))) +(define-public emacs-go-mode + (package + (name "emacs-go-mode") + (version "1.5.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/dominikh/go-mode.el/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm")))) + (build-system emacs-build-system) + (home-page "https://github.com/dominikh/go-mode.el") + (synopsis "Go mode for Emacs") + (description + "This package provides go-mode, an Emacs mode for working with software +written in the Go programming language.") + (license license:bsd-3))) + (define-public emacs-google-maps (package (name "emacs-google-maps") From 2054b5220180d5cf5c0cfa8b2509a3f66417a1df Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Fri, 25 Aug 2017 20:12:41 +0200 Subject: [PATCH 036/333] gnu: Update python-lxml to 3.8.0. * gnu/packages/python.scm (python-lxml): Update to 3.8.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 346faf434c..e650cdb8b4 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6225,14 +6225,14 @@ translate the complete SQLite API into Python.") (define-public python-lxml (package (name "python-lxml") - (version "3.6.0") + (version "3.8.0") (source (origin (method url-fetch) (uri (pypi-uri "lxml" version)) (sha256 (base32 - "1pvbmiy2m7jwv493kilbghhj2pkh8wy1na3ji350vhzhlwlclx4w")))) + "15nvf6n285n282682qyw3wihsncb0x5amdhyi4b83bfa2nz74vvk")))) (build-system python-build-system) (inputs `(("libxml2" ,libxml2) From 13be557d985ebc3770f28188f3ce45c2392c6c1d Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 6 Sep 2017 12:42:10 +0200 Subject: [PATCH 037/333] gnu: Add python-html5-parser, python2-html5-parser. * gnu/packages/python.scm (python-html5-parser): New variable. (python2-html5-parser: New variable. --- gnu/packages/python.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e650cdb8b4..a190873515 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5976,6 +5976,37 @@ and written in Python.") (define-public python2-html5lib-0.9 (package-with-python2 python-html5lib-0.9)) +(define-public python-html5-parser + (package + (name "python-html5-parser") + (version "0.4.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "html5-parser" version)) + (sha256 + (base32 + "1d8sxhl41ffh7qlk7wlsy17xw6slzx5v1yna9s72wx5qrpaa3wxr")))) + (build-system python-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libxml2" ,libxml2))) + (propagated-inputs + `(("python-lxml" ,python-lxml) + ("python-beautifulsoup4" ,python-beautifulsoup4))) + (home-page "https://html5-parser.readthedocs.io") + (synopsis "Fast C-based HTML5 parsing for Python") + (description "This package provides a fast implementation of the HTML5 +parsing spec for Python. Parsing is done in C using a variant of the gumbo +parser. The gumbo parse tree is then transformed into an lxml tree, also in +C, yielding parse times that can be a thirtieth of the html5lib parse times.") + ;; src/as-python-tree.[c|h] are licensed GPL3. The other files + ;; indicate ASL2.0, including the LICENSE file for the whole project. + (license (list license:asl2.0 license:gpl3)))) + +(define-public python2-html5-parser + (package-with-python2 python-html5-parser)) + (define-public python-webencodings (package (name "python-webencodings") From 026ebc141ff9eb6147c9538f004119193d4cfe49 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Fri, 25 Aug 2017 20:15:40 +0200 Subject: [PATCH 038/333] gnu: Update calibre to 3.6.0. * gnu/local.mk: Remove calibre-drop-unrar.patch * gnu/packages/ebook.scm (calibre): Update to 3.6.0. Add python-html5-parser input. * gnu/packages/patches/calibre-drop-unrar.patch: Remove file. --- gnu/local.mk | 1 - gnu/packages/ebook.scm | 12 +++-- gnu/packages/patches/calibre-drop-unrar.patch | 49 ------------------- 3 files changed, 7 insertions(+), 55 deletions(-) delete mode 100644 gnu/packages/patches/calibre-drop-unrar.patch diff --git a/gnu/local.mk b/gnu/local.mk index 445d126c1b..73efaba64e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -536,7 +536,6 @@ dist_patch_DATA = \ %D%/packages/patches/blast+-fix-makefile.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ - %D%/packages/patches/calibre-drop-unrar.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-use-packaged-feedparser.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 38abf47c87..4bcaa0abfe 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -72,7 +72,7 @@ (define-public calibre (package (name "calibre") - (version "3.0.0") + (version "3.6.0") (source (origin (method url-fetch) @@ -81,21 +81,19 @@ version ".tar.xz")) (sha256 (base32 - "1zhk7bvgr973dd18x4wp48kzai29qqqi5qcy72sxc4wcbk2sbnkw")) + "0vp2nds4b5xbchsh1rpc1q7093gd26dnw7mgbnax97dcchvlc4sc")) ;; Remove non-free or doubtful code, see ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "src/calibre/ebooks/markdown") - (delete-file-recursively "src/unrar") (delete-file "src/odf/thumbnail.py") (delete-file-recursively "resources/fonts/liberation") (substitute* (find-files "." "\\.py") (("calibre\\.ebooks\\.markdown") "markdown")) #t)) - (patches (search-patches "calibre-drop-unrar.patch" - "calibre-use-packaged-feedparser.patch" + (patches (search-patches "calibre-use-packaged-feedparser.patch" "calibre-no-updates-dialog.patch")))) (build-system python-build-system) (native-inputs @@ -129,6 +127,7 @@ ("python2-dbus" ,python2-dbus) ("python2-dnspython" ,python2-dnspython) ("python2-feedparser" ,python2-feedparser) + ("python2-html5-parser" ,python2-html5-parser) ("python2-lxml" ,python2-lxml) ("python2-markdown" ,python2-markdown) ("python2-mechanize" ,python2-mechanize) @@ -140,6 +139,9 @@ ("python2-pyqt" ,python2-pyqt) ("python2-sip" ,python2-sip) ("python2-regex" ,python2-regex) + ;; python2-unrardll is needed for decompressing RAR files. + ;; A program called 'pdf2html' is needed for reading PDF books + ;; in the web interface. ("sqlite" ,sqlite))) (arguments `(#:python ,python-2 diff --git a/gnu/packages/patches/calibre-drop-unrar.patch b/gnu/packages/patches/calibre-drop-unrar.patch deleted file mode 100644 index adf977b183..0000000000 --- a/gnu/packages/patches/calibre-drop-unrar.patch +++ /dev/null @@ -1,49 +0,0 @@ -Recreated old debian patch on the latest calibre version - -From 6764e4c211e50d4f4633dbabfba7cbc3089c51dc Mon Sep 17 00:00:00 2001 -From: Brendan Tildesley -Date: Sat, 13 May 2017 21:12:12 +1000 -Subject: [PATCH] Remove unrar extension - ---- - setup/extensions.json | 11 ----------- - src/calibre/ebooks/metadata/archive.py | 2 +- - 2 files changed, 1 insertion(+), 12 deletions(-) - -diff --git a/setup/extensions.json b/setup/extensions.json -index 1f6d1fb5fd..127390450f 100644 ---- a/setup/extensions.json -+++ b/setup/extensions.json -@@ -211,16 +211,5 @@ - "sources": "calibre/devices/mtp/unix/devices.c calibre/devices/mtp/unix/libmtp.c", - "headers": "calibre/devices/mtp/unix/devices.h calibre/devices/mtp/unix/upstream/music-players.h calibre/devices/mtp/unix/upstream/device-flags.h", - "libraries": "mtp" -- }, -- { -- "name": "unrar", -- "sources": "unrar/rar.cpp unrar/strlist.cpp unrar/strfn.cpp unrar/pathfn.cpp unrar/savepos.cpp unrar/smallfn.cpp unrar/global.cpp unrar/file.cpp unrar/filefn.cpp unrar/filcreat.cpp unrar/archive.cpp unrar/arcread.cpp unrar/unicode.cpp unrar/system.cpp unrar/isnt.cpp unrar/crypt.cpp unrar/crc.cpp unrar/rawread.cpp unrar/encname.cpp unrar/resource.cpp unrar/match.cpp unrar/timefn.cpp unrar/rdwrfn.cpp unrar/consio.cpp unrar/options.cpp unrar/ulinks.cpp unrar/errhnd.cpp unrar/rarvm.cpp unrar/secpassword.cpp unrar/rijndael.cpp unrar/getbits.cpp unrar/sha1.cpp unrar/extinfo.cpp unrar/extract.cpp unrar/volume.cpp unrar/list.cpp unrar/find.cpp unrar/unpack.cpp unrar/cmddata.cpp unrar/filestr.cpp unrar/scantree.cpp calibre/utils/unrar.cpp", -- "inc_dirs": "unrar", -- "defines": "SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE", -- "windows_defines": "SILENT RARDLL UNRAR", -- "haiku_defines": "LITTLE_ENDIAN SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE _BSD_SOURCE", -- "haiku_libraries": "bsd", -- "optimize_level": 2, -- "windows_libraries": "User32 Advapi32 kernel32 Shell32" - } - ] -diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py -index f5c0b7bed3..32257dcdae 100644 ---- a/src/calibre/ebooks/metadata/archive.py -+++ b/src/calibre/ebooks/metadata/archive.py -@@ -44,7 +44,7 @@ class ArchiveExtract(FileTypePlugin): - description = _('Extract common e-book formats from archive files ' - '(ZIP/RAR). Also try to autodetect if they are actually ' - 'CBZ/CBR files.') -- file_types = set(['zip', 'rar']) -+ file_types = set(['zip']) - supported_platforms = ['windows', 'osx', 'linux'] - on_import = True - --- -2.12.2 - From f049e79dc34c112fca244946256920a5ce2e9db0 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 6 Sep 2017 12:51:59 +0200 Subject: [PATCH 039/333] gnu: csound: Update to 6.09.1. * gnu/packages/audio.scm (csound): Update to 6.09.1. Change source URI. * gnu/packages/patches/csound-header-ordering.patch: Remove patch. * gnu/local.mk (dist_patch_DATA): Remove reference to patch above. --- gnu/local.mk | 1 - gnu/packages/audio.scm | 16 +++++---------- .../patches/csound-header-ordering.patch | 20 ------------------- 3 files changed, 5 insertions(+), 32 deletions(-) delete mode 100644 gnu/packages/patches/csound-header-ordering.patch diff --git a/gnu/local.mk b/gnu/local.mk index 73efaba64e..2975c0208e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -566,7 +566,6 @@ dist_patch_DATA = \ %D%/packages/patches/crawl-upgrade-saves.patch \ %D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/crossmap-allow-system-pysam.patch \ - %D%/packages/patches/csound-header-ordering.patch \ %D%/packages/patches/clucene-contribs-lib.patch \ %D%/packages/patches/curl-bounds-check.patch \ %D%/packages/patches/cursynth-wave-rand.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index e27c13bed4..1b7950cf00 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -568,23 +568,17 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") (define-public csound (package (name "csound") - (version "6.05") + (version "6.09.1") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/csound/csound6/Csound" - version "/Csound" version ".tar.gz")) + "https://github.com/csound/csound/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd")) - (patches (search-patches "csound-header-ordering.patch")))) + "0f67vyy3r29hn26qkkcwnizrnzzy8p7gmg3say5q3wjhxns3b5yl")))) (build-system cmake-build-system) - (arguments - ;; Work around this error on x86_64 with libc 2.22+: - ;; libmvec.so.1: error adding symbols: DSO missing from command line - (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system))) - '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec")) - '())) (inputs `(("alsa-lib" ,alsa-lib) ("boost" ,boost) diff --git a/gnu/packages/patches/csound-header-ordering.patch b/gnu/packages/patches/csound-header-ordering.patch deleted file mode 100644 index 3640d123dd..0000000000 --- a/gnu/packages/patches/csound-header-ordering.patch +++ /dev/null @@ -1,20 +0,0 @@ -Prevent compilation issues with boost-1.60.0. - -Reported upstream at https://github.com/csound/csound/issues/570 - ---- Csound6.05/Opcodes/chua/ChuaOscillator.cpp 2015-04-25 14:06:22.995646234 -0500 -+++ Csound6.05/Opcodes/chua/ChuaOscillator.cpp 2015-12-21 10:31:58.182362640 -0600 -@@ -117,11 +117,12 @@ - // d = sys_variables(12); - // gnor = a*(x.^3) + b*(x.^2) + c*x + d; - --#include - #include - using namespace boost::numeric; - #include - -+#include -+ - #undef CS_KSMPS - #define CS_KSMPS (opds.insdshead->ksmps) - From 3b7c606965656e95725e9cd5f1c7cfc4d0ea18cf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Sep 2017 13:17:45 +0300 Subject: [PATCH 040/333] gnu: openjpeg: Fix CVE-2017-14151, CVE-2017-14152. * gnu/packages/image.scm (openjpeg)[source]: Add patches. * gnu/packages/patches/openjpeg-CVE-2017-14151.patch, gnu/packages/patches/openjpeg-CVE-2017-14152.patch: New files. * gnu/local.mk (dist_patch_DATA): Register them. --- gnu/local.mk | 2 + gnu/packages/image.scm | 4 +- .../patches/openjpeg-CVE-2017-14151.patch | 46 +++++++++++++++++++ .../patches/openjpeg-CVE-2017-14152.patch | 38 +++++++++++++++ 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/openjpeg-CVE-2017-14151.patch create mode 100644 gnu/packages/patches/openjpeg-CVE-2017-14152.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2975c0208e..19dfa13449 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -888,6 +888,8 @@ dist_patch_DATA = \ %D%/packages/patches/openjpeg-CVE-2017-12982.patch \ %D%/packages/patches/openjpeg-CVE-2017-14040.patch \ %D%/packages/patches/openjpeg-CVE-2017-14041.patch \ + %D%/packages/patches/openjpeg-CVE-2017-14151.patch \ + %D%/packages/patches/openjpeg-CVE-2017-14152.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ %D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openssl-runpath.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 5d062b107b..3bb8de15c4 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -522,7 +522,9 @@ work.") "0yvfghxwfm3dcqr9krkw63pcd76hzkknc3fh7bh11s8qlvjvrpbg")) (patches (search-patches "openjpeg-CVE-2017-12982.patch" "openjpeg-CVE-2017-14040.patch" - "openjpeg-CVE-2017-14041.patch")))) + "openjpeg-CVE-2017-14041.patch" + "openjpeg-CVE-2017-14151.patch" + "openjpeg-CVE-2017-14152.patch")))) (build-system cmake-build-system) (arguments ;; Trying to run `$ make check' results in a no rule fault. diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14151.patch b/gnu/packages/patches/openjpeg-CVE-2017-14151.patch new file mode 100644 index 0000000000..4fcf6af6db --- /dev/null +++ b/gnu/packages/patches/openjpeg-CVE-2017-14151.patch @@ -0,0 +1,46 @@ +https://github.com/uclouvain/openjpeg/commit/afb308b9ccbe129608c9205cf3bb39bbefad90b9.patch +http://openwall.com/lists/oss-security/2017/09/06/1 + +From afb308b9ccbe129608c9205cf3bb39bbefad90b9 Mon Sep 17 00:00:00 2001 +From: Even Rouault +Date: Mon, 14 Aug 2017 17:20:37 +0200 +Subject: [PATCH] Encoder: grow buffer size in + opj_tcd_code_block_enc_allocate_data() to avoid write heap buffer overflow in + opj_mqc_flush (#982) + +--- + src/lib/openjp2/tcd.c | 7 +++++-- + tests/nonregression/test_suite.ctest.in | 2 ++ + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c +index 301c7213e..53cdcf64d 100644 +--- a/src/lib/openjp2/tcd.c ++++ b/src/lib/openjp2/tcd.c +@@ -1187,8 +1187,11 @@ static OPJ_BOOL opj_tcd_code_block_enc_allocate_data(opj_tcd_cblk_enc_t * + { + OPJ_UINT32 l_data_size; + +- /* The +1 is needed for https://github.com/uclouvain/openjpeg/issues/835 */ +- l_data_size = 1 + (OPJ_UINT32)((p_code_block->x1 - p_code_block->x0) * ++ /* +1 is needed for https://github.com/uclouvain/openjpeg/issues/835 */ ++ /* and actually +2 required for https://github.com/uclouvain/openjpeg/issues/982 */ ++ /* TODO: is there a theoretical upper-bound for the compressed code */ ++ /* block size ? */ ++ l_data_size = 2 + (OPJ_UINT32)((p_code_block->x1 - p_code_block->x0) * + (p_code_block->y1 - p_code_block->y0) * (OPJ_INT32)sizeof(OPJ_UINT32)); + + if (l_data_size > p_code_block->data_size) { +diff --git a/tests/nonregression/test_suite.ctest.in b/tests/nonregression/test_suite.ctest.in +index aaf40d7d0..ffd964c2a 100644 +--- a/tests/nonregression/test_suite.ctest.in ++++ b/tests/nonregression/test_suite.ctest.in +@@ -169,6 +169,8 @@ opj_compress -i @INPUT_NR_PATH@/Bretagne2.ppm -o @TEMP_PATH@/Bretagne2_empty_ban + # Same rate as Bretagne2_4.j2k + opj_compress -i @INPUT_NR_PATH@/Bretagne2.ppm -o @TEMP_PATH@/Bretagne2_empty_band_r800.j2k -t 2591,1943 -n 2 -r 800 + ++opj_compress -i @INPUT_NR_PATH@/issue982.bmp -o @TEMP_PATH@/issue982.j2k -n 1 ++ + # DECODER TEST SUITE + opj_decompress -i @INPUT_NR_PATH@/Bretagne2.j2k -o @TEMP_PATH@/Bretagne2.j2k.pgx + opj_decompress -i @INPUT_NR_PATH@/_00042.j2k -o @TEMP_PATH@/_00042.j2k.pgx diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14152.patch b/gnu/packages/patches/openjpeg-CVE-2017-14152.patch new file mode 100644 index 0000000000..6c083be123 --- /dev/null +++ b/gnu/packages/patches/openjpeg-CVE-2017-14152.patch @@ -0,0 +1,38 @@ +https://github.com/uclouvain/openjpeg/commit/4241ae6fbbf1de9658764a80944dc8108f2b4154.patch +http://openwall.com/lists/oss-security/2017/09/06/2 + +From 4241ae6fbbf1de9658764a80944dc8108f2b4154 Mon Sep 17 00:00:00 2001 +From: Even Rouault +Date: Tue, 15 Aug 2017 11:55:58 +0200 +Subject: [PATCH] Fix assertion in debug mode / heap-based buffer overflow in + opj_write_bytes_LE for Cinema profiles with numresolutions = 1 (#985) + +--- + src/lib/openjp2/j2k.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c +index a2521ebbc..54b490a8c 100644 +--- a/src/lib/openjp2/j2k.c ++++ b/src/lib/openjp2/j2k.c +@@ -6573,10 +6573,16 @@ static void opj_j2k_set_cinema_parameters(opj_cparameters_t *parameters, + + /* Precincts */ + parameters->csty |= 0x01; +- parameters->res_spec = parameters->numresolution - 1; +- for (i = 0; i < parameters->res_spec; i++) { +- parameters->prcw_init[i] = 256; +- parameters->prch_init[i] = 256; ++ if (parameters->numresolution == 1) { ++ parameters->res_spec = 1; ++ parameters->prcw_init[0] = 128; ++ parameters->prch_init[0] = 128; ++ } else { ++ parameters->res_spec = parameters->numresolution - 1; ++ for (i = 0; i < parameters->res_spec; i++) { ++ parameters->prcw_init[i] = 256; ++ parameters->prch_init[i] = 256; ++ } + } + + /* The progression order shall be CPRL */ From 98df3a88b5e323087db6097094f119fa4663f6d3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Sep 2017 14:19:50 +0300 Subject: [PATCH 041/333] gnu: libzip: Update to 1.3.0 (fixes CVE-2017-14107). * gnu/packages/compression.scm (libzip): Update to 1.3.0. [source]: Remove patch. [arguments]: Remove custom 'patch-perl phase. * gnu/packages/patches/libzip-CVE-2017-12858.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/compression.scm | 14 ++---- .../patches/libzip-CVE-2017-12858.patch | 45 ------------------- 3 files changed, 3 insertions(+), 57 deletions(-) delete mode 100644 gnu/packages/patches/libzip-CVE-2017-12858.patch diff --git a/gnu/local.mk b/gnu/local.mk index 19dfa13449..a38e4e2d5a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -812,7 +812,6 @@ 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/libzip-CVE-2017-12858.patch \ %D%/packages/patches/lierolibre-check-unaligned-access.patch \ %D%/packages/patches/lierolibre-is-free-software.patch \ %D%/packages/patches/lierolibre-newer-libconfig.patch \ diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index a6758e9471..499c13a291 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1542,22 +1542,14 @@ manipulate, read, and write Zip archive files.") (define-public libzip (package (name "libzip") - (version "1.2.0") + (version "1.3.0") (source (origin (method url-fetch) (uri (string-append - "https://nih.at/libzip/libzip-" version ".tar.gz")) - (patches (search-patches "libzip-CVE-2017-12858.patch")) + "https://nih.at/libzip/libzip-" version ".tar.xz")) (sha256 (base32 - "17vxj2ffsxwh8lkc6801ppmwj15jp8q58rin76znxfbx88789ybc")))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-perl - (lambda _ - (substitute* "regress/runtest.in" - (("/usr/bin/env perl") (which "perl")))))))) + "0wykw0q9dwdzx0gssi2dpgckx9ggr2spzc1amjnff6wi6kz6x4xa")))) (native-inputs `(("perl" ,perl))) (inputs diff --git a/gnu/packages/patches/libzip-CVE-2017-12858.patch b/gnu/packages/patches/libzip-CVE-2017-12858.patch deleted file mode 100644 index 8125173f95..0000000000 --- a/gnu/packages/patches/libzip-CVE-2017-12858.patch +++ /dev/null @@ -1,45 +0,0 @@ -Fix CVE-2017-12858: - -http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12858 - -Patch copied from upstream source repository: - -https://github.com/nih-at/libzip/commit/2217022b7d1142738656d891e00b3d2d9179b796 - -From 2217022b7d1142738656d891e00b3d2d9179b796 Mon Sep 17 00:00:00 2001 -From: Thomas Klausner -Date: Mon, 14 Aug 2017 10:55:44 +0200 -Subject: [PATCH] Fix double free(). - -Found by Brian 'geeknik' Carpenter using AFL. ---- - THANKS | 1 + - lib/zip_dirent.c | 3 --- - 2 files changed, 1 insertion(+), 3 deletions(-) - -diff --git a/THANKS b/THANKS -index be0cca9..a80ee1d 100644 ---- a/THANKS -+++ b/THANKS -@@ -12,6 +12,7 @@ BALATON Zoltan - Benjamin Gilbert - Boaz Stolk - Bogdan -+Brian 'geeknik' Carpenter - Chris Nehren - Coverity - Dane Springmeyer -diff --git a/lib/zip_dirent.c b/lib/zip_dirent.c -index a369900..e5a7cc9 100644 ---- a/lib/zip_dirent.c -+++ b/lib/zip_dirent.c -@@ -579,9 +579,6 @@ _zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, boo - } - - if (!_zip_dirent_process_winzip_aes(zde, error)) { -- if (!from_buffer) { -- _zip_buffer_free(buffer); -- } - return -1; - } - From e9ba22d6e197e449b98f187a9b74459c392d32d6 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 6 Sep 2017 14:45:08 +0200 Subject: [PATCH 042/333] gnu: emacs-org: Update to 20170906. * gnu/packages/emacs.scm (emacs-org): Update to 20170906, a.k.a. Org 9.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 bc01d5777d..9c0f9bc89a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3814,14 +3814,14 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "20170828") + (version "20170906") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "0frjwgjyy7rwb7si57h6nd1p35a4gcd1dc0aka19kn8r59hbi08p")))) + "12i1h1ncbv0lhcg8w1b48psm69hhhb1f0phh1v3vfyn8xi82ppxz")))) (build-system emacs-build-system) (home-page "http://orgmode.org/") (synopsis "Outline-based notes management and organizer") From ddcac5595e37f9d12cff71e9c925e08273f523c6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 6 Sep 2017 15:16:11 +0200 Subject: [PATCH 043/333] gnu: iproute: Update to 4.13.0. * gnu/packages/linux.scm (iproute): Update to 4.13.0. --- 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 245b36f2c6..8f240e6ec2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1132,7 +1132,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") (define-public iproute (package (name "iproute2") - (version "4.12.0") + (version "4.13.0") (source (origin (method url-fetch) (uri (string-append @@ -1140,7 +1140,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") version ".tar.xz")) (sha256 (base32 - "0zdxdsxyaazl85xhwskvsmpyzwf5qp21cvjsi1lw3xnrc914q2if")))) + "0l2w84cwr54gaw3cbxijf614l76hx8mgcz57v81rwl68z3nq3yww")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite From 35a4fefc01faa963c0a3bd2da4419882851e1580 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 6 Sep 2017 15:26:54 +0200 Subject: [PATCH 044/333] gnu: iproute: Edit description. * gnu/packages/linux.scm (iproute)[description]: Re-order, be concise, and omit information that is obsolete, misleading, or irrelevant to Guix users. --- gnu/packages/linux.scm | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8f240e6ec2..ac7a7a405d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1173,23 +1173,14 @@ that the Ethernet protocol is much simpler than the IP protocol.") (synopsis "Utilities for controlling TCP/IP networking and traffic in Linux") (description - "Iproute2 is a collection of utilities for controlling TCP/IP -networking and traffic with the Linux kernel. + "Iproute2 is a collection of utilities for controlling TCP/IP networking +and traffic with the Linux kernel. The most important of these are +@command{ip}, which configures IPv4 and IPv6, and @command{tc} for traffic +control. Most network configuration manuals still refer to ifconfig and route as the primary network configuration tools, but ifconfig is known to behave -inadequately in modern network environments. They should be deprecated, but -most distros still include them. Most network configuration systems make use -of ifconfig and thus provide a limited feature set. The /etc/net project aims -to support most modern network technologies, as it doesn't use ifconfig and -allows a system administrator to make use of all iproute2 features, including -traffic control. - -iproute2 is usually shipped in a package called iproute or iproute2 and -consists of several tools, of which the most important are @command{ip} and -@command{tc}. @command{ip} controls IPv4 and IPv6 configuration and -@command{tc} stands for traffic control. Both tools print detailed usage -messages and are accompanied by a set of manpages.") +inadequately in modern network environments, and both should be deprecated.") (license license:gpl2+))) ;; There are two packages for net-tools. The first, net-tools, is more recent From 4ef6cfefaa4db9d44453b8adf192dd1dd0dfd829 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 5 Sep 2017 23:02:25 +0200 Subject: [PATCH 045/333] gnu: python-pyxb: Update to 1.2.6. * gnu/packages/xml.scm (python-pyxb): Update to 1.2.6. --- gnu/packages/xml.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 96553c97b2..dd188d63c1 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -867,13 +867,13 @@ parsing/saving.") (define-public python-pyxb (package (name "python-pyxb") - (version "1.2.5") + (version "1.2.6") (source (origin (method url-fetch) (uri (pypi-uri "PyXB" version)) (sha256 (base32 - "0rzzwibfqa28gxgcxx4cybx1qcg0g6fand06ykj3gz7z5kp653sf")))) + "1d17pyixbfvjyi2lb0cfp0ch8wwdf44mmg3r5pwqhyyqs66z601a")))) (build-system python-build-system) (home-page "http://pyxb.sourceforge.net/") (synopsis "Python XML Schema Bindings") From 1f919459eba67da908cd7614b4fb2e66a0e2620b Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Wed, 6 Sep 2017 13:00:46 +0200 Subject: [PATCH 046/333] gnu: udisks: Add missing input. * gnu/packages/freedesktop.scm (udisks)[inputs]: Add libcap. --- gnu/packages/freedesktop.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 3c4ae3f4d0..3649093ea5 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -580,6 +580,7 @@ Analysis and Reporting Technology) functionality.") `(("acl" ,acl) ("libatasmart" ,libatasmart) ("libgudev" ,libgudev) + ("libcap" ,libcap) ("polkit" ,polkit) ("util-linux" ,util-linux))) (outputs '("out" From daae20894265958eb108f775befa390dbcaddd4a Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Wed, 6 Sep 2017 13:06:41 +0200 Subject: [PATCH 047/333] gnu: modem-manager: Add missing input. * gnu/packages/freedesktop.scm (modem-manager)[inputs]: Add libcap. --- gnu/packages/freedesktop.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 3649093ea5..9f4d43320e 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -778,7 +778,8 @@ which speak the Qualcomm MSM Interface (QMI) protocol.") (propagated-inputs `(("glib" ,glib))) ; required by mm-glib.pc (inputs - `(("libgudev" ,libgudev) + `(("libcap" ,libcap) + ("libgudev" ,libgudev) ("libmbim" ,libmbim) ("libqmi" ,libqmi) ("polkit" ,polkit))) From 166bc1b259b53f278dc362fd62b55c2c7b8af522 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Wed, 6 Sep 2017 13:11:13 +0200 Subject: [PATCH 048/333] gnu: network-manager: Add missing input. * gnu/packages/gnome.scm (network-manager)[inputs]: Add libcap. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index d64bd9ffab..0b8e0d810f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5022,6 +5022,7 @@ users.") ("iptables" ,iptables) ("isc-dhcp" ,isc-dhcp) ("jansson" ,jansson) + ("libcap" ,libcap) ("libgcrypt" ,libgcrypt) ("libgudev" ,libgudev) ("libndp" ,libndp) From 7e38ba654a12f3c82e647c8b92d968be938d0867 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Wed, 6 Sep 2017 13:22:37 +0200 Subject: [PATCH 049/333] gnu: accountsservice: Add missing input. * gnu/packages/freedesktop.scm (accountsservice)[inputs]: Add libcap. --- gnu/packages/freedesktop.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 9f4d43320e..b1d09104dc 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -681,7 +681,8 @@ message bus.") ("intltool" ,intltool) ("pkg-config" ,pkg-config))) (inputs - `(("shadow" ,shadow) + `(("libcap" ,libcap) + ("shadow" ,shadow) ("polkit" ,polkit))) (home-page "http://www.freedesktop.org/wiki/Software/AccountsService/") (synopsis "D-Bus interface for user account query and manipulation") From de0c89f181f6cff3d437d34099b3b6ba5d96e90f Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Wed, 6 Sep 2017 13:22:38 +0200 Subject: [PATCH 050/333] gnu: colord: Add missing input. * gnu/packages/gnome.scm (colord)[inputs]: Add libcap. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0b8e0d810f..d02baffff6 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2781,6 +2781,7 @@ keyboard shortcuts.") ("lcms" ,lcms))) (inputs `(("dbus-glib" ,dbus-glib) + ("libcap" ,libcap) ("libgudev" ,libgudev) ("libusb" ,libusb) ("sqlite" ,sqlite) From 1b97e92613e777a67f2bac4f033f6386f11b1fa4 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Wed, 6 Sep 2017 13:22:39 +0200 Subject: [PATCH 051/333] gnu: gdm: Add missing input. * gnu/packages/gnome.scm (gdm)[inputs]: Add libcap. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index d02baffff6..339436f272 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5254,6 +5254,7 @@ libxml2.") ("gtk+" ,gtk+) ("iso-codes" ,iso-codes) ("libcanberra" ,libcanberra) + ("libcap" ,libcap) ("linux-pam" ,linux-pam))) (synopsis "Display manager for GNOME") (home-page "https://wiki.gnome.org/Projects/GDM/") From 18e565bf67145b739703da9f13197f93e34c5284 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 6 Sep 2017 22:06:42 +0300 Subject: [PATCH 052/333] gnu: terminology: Update to 1.1.1. * gnu/packages/enlightenment.scm (terminology): Update to 1.1.1. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 9f2abb702a..aa7b87c2ba 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -165,7 +165,7 @@ removable devices or support for multimedia.") (define-public terminology (package (name "terminology") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri @@ -173,7 +173,7 @@ removable devices or support for multimedia.") "terminology/terminology-" version ".tar.xz")) (sha256 (base32 - "13rl1k22yf8qrpzdm5nh6ij641fibadr2ww1r7rnz7mbhzj3d4gb")) + "05ncxvzb9rzkyjvd95hzn8lswqdwr8cix6rd54nqn9559jibh4ns")) (modules '((guix build utils))) ;; Remove the bundled fonts. ;; TODO: Remove bundled lz4. From c98f9c52960735da672d5e9766bdfef5ff136a6e Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Mon, 4 Sep 2017 14:11:40 +0200 Subject: [PATCH 053/333] gnu: python-tox: Update to 2.8.0. * gnu/packages/python.scm (python-tox): Update to 2.8.0. --- gnu/packages/python.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a190873515..c6f9f34ce7 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9886,14 +9886,14 @@ Pytest but stripped of Pytest specific details.") (define-public python-tox (package (name "python-tox") - (version "2.3.1") + (version "2.8.0") (source (origin (method url-fetch) (uri (pypi-uri "tox" version)) (sha256 (base32 - "1vj73ar4rimq3fwy5r2z3jv4g9qbh8rmpmncsc00g0k310acqzxz")))) + "00lrql2cfzhb712v70inac6mrgdv8s8fmvz7qpggkk623hkm2pgc")))) (build-system python-build-system) (arguments ;; FIXME: Tests require pytest-timeout, which itself requires @@ -9905,7 +9905,8 @@ Pytest but stripped of Pytest specific details.") ("python-virtualenv" ,python-virtualenv))) (native-inputs `(; FIXME: Missing: ("python-pytest-timeout" ,python-pytest-timeout) - ("python-pytest" ,python-pytest))) ; >= 2.3.5 + ("python-pytest" ,python-pytest) ; >= 2.3.5 + ("python-setuptools-scm" ,python-setuptools-scm))) (home-page "http://tox.testrun.org/") (synopsis "Virtualenv-based automation of test activities") (description "Tox is a generic virtualenv management and test command line From eaff063aa0f478f23b78c5db8ba0d465b3f691cd Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Thu, 7 Sep 2017 09:59:32 +0200 Subject: [PATCH 054/333] gnu: emacs-ess: Relocate the etc directory so that ESS can find it. * gnu/packages/emacs.scm (emacs-ess): Relocate the etc directory so that ESS can find it. --- gnu/packages/emacs.scm | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9c0f9bc89a..abb99f8fc4 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3209,22 +3209,25 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.") "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; There is no test suite. - #:make-flags (list (string-append "PREFIX=" %output) - (string-append "LISPDIR=" %output - "/share/emacs/site-lisp/guix.d/ess")) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'more-shebang-patching - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Makeconf" - (("SHELL = /bin/sh") - (string-append "SHELL = " (which "sh")))))) - ;; FIXME: the texlive-union insists on regenerating fonts. It stores - ;; them in HOME, so it needs to be writeable. - (add-before 'build 'set-HOME - (lambda _ (setenv "HOME" "/tmp") #t))))) + (let ((base-directory "/share/emacs/site-lisp/guix.d/ess")) + `(#:tests? #f ; There is no test suite. + #:make-flags (list (string-append "PREFIX=" %output) + (string-append "ETCDIR=" %output "/" + ,base-directory "/etc") + (string-append "LISPDIR=" %output "/" + ,base-directory)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'more-shebang-patching + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makeconf" + (("SHELL = /bin/sh") + (string-append "SHELL = " (which "sh")))))) + ;; FIXME: the texlive-union insists on regenerating fonts. It stores + ;; them in HOME, so it needs to be writeable. + (add-before 'build 'set-HOME + (lambda _ (setenv "HOME" "/tmp") #t)))))) (inputs `(("emacs" ,emacs-minimal) ("r-minimal" ,r-minimal))) From 26ba09ba356fa7ce35ba0a337be5a30987a3c729 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Wed, 6 Sep 2017 23:14:08 +0200 Subject: [PATCH 055/333] gnu: elogind: Update to 232.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (elogind): Update to 232.4. [arguments]: Add --with-rootlibexecdir. Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b1d09104dc..89dab53cbc 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -204,14 +204,14 @@ the freedesktop.org XDG Base Directory specification.") (define-public elogind (package (name "elogind") - (version "232.3") + (version "232.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/elogind/elogind/" "archive/v" version ".tar.gz")) (sha256 (base32 - "1g3bqzw5dhd5zaivqgbi13n5zy219qmkrk6vmbhfprs8qvyn843f")) + "1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931")) (modules '((guix build utils))) (snippet '(begin @@ -231,6 +231,9 @@ the freedesktop.org XDG Base Directory specification.") "/lib/udev/rules.d") (string-append "--with-rootprefix=" (assoc-ref %outputs "out")) + (string-append "--with-rootlibexecdir=" + (assoc-ref %outputs "out") + "/libexec/elogind") ;; These are needed to ensure that lto linking works. "RANLIB=gcc-ranlib" "AR=gcc-ar" From c2ffcc4425946725f843466680b89b9b0aa1f45e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 7 Sep 2017 11:06:25 +0200 Subject: [PATCH 056/333] gnu: elogind: Add '-L' flag for libcap in libelogind.la. This fix allows us to revert this series of commits: 1b97e9261 * gnu: gdm: Add missing input. de0c89f18 * gnu: colord: Add missing input. 7e38ba654 * gnu: accountsservice: Add missing input. 166bc1b25 * gnu: network-manager: Add missing input. daae20894 * gnu: modem-manager: Add missing input. 1f919459e * gnu: udisks: Add missing input. 744e9d074 * gnu: mutter: Add missing input. 0cce140dc * gnu: gnome-session: Add missing input. 77c2476ae * gnu: polkit: Add missing input. 124ac301c * gnu: weston: Add missing input. 472c2223c * gnu: kmscon: Add missing input. * gnu/packages/freedesktop.scm (elogind)[arguments]: Add 'add-libcap-to-search-path' phase. (weston)[inputs]: Remove LIBCAP. (udisks): Likewise. (accountsservice): Likewise. (modem-manager): Likewise. * gnu/packages/gnome.scm (colord): Likewise (gnome-session): Likewise. (mutter): Likewise. (network-manager): Likewise. (gdm): Likewise. * gnu/packages/polkit.scm (polkit): Likewise. * gnu/packages/terminals.scm (kmscon): Likewise. --- gnu/packages/freedesktop.scm | 20 +++++++++++++------- gnu/packages/gnome.scm | 5 ----- gnu/packages/polkit.scm | 1 - gnu/packages/terminals.scm | 5 ++--- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 89dab53cbc..83374bce6e 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -252,7 +252,17 @@ the freedesktop.org XDG Base Directory specification.") (substitute* "src/login/org.freedesktop.login1.service" (("^Exec=.*") (string-append "Exec=" (assoc-ref %outputs "out") - "/libexec/elogind/elogind\n")))))))) + "/libexec/elogind/elogind\n"))))) + (add-after 'install 'add-libcap-to-search-path + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Add a missing '-L' for libcap in libelogind.la. See + ;; . + (let ((libcap (assoc-ref inputs "libcap")) + (out (assoc-ref outputs "out"))) + (substitute* (string-append out "/lib/libelogind.la") + (("-lcap") + (string-append "-L" libcap "/lib -lcap"))) + #t)))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -451,7 +461,6 @@ applications, X servers (rootless or fullscreen) or other display servers.") `(("cairo" ,cairo-xcb) ("dbus" ,dbus) ("elogind" ,elogind) - ("libcap" ,libcap) ("libinput" ,libinput-minimal) ("libunwind" ,libunwind) ("libxcursor" ,libxcursor) @@ -583,7 +592,6 @@ Analysis and Reporting Technology) functionality.") `(("acl" ,acl) ("libatasmart" ,libatasmart) ("libgudev" ,libgudev) - ("libcap" ,libcap) ("polkit" ,polkit) ("util-linux" ,util-linux))) (outputs '("out" @@ -684,8 +692,7 @@ message bus.") ("intltool" ,intltool) ("pkg-config" ,pkg-config))) (inputs - `(("libcap" ,libcap) - ("shadow" ,shadow) + `(("shadow" ,shadow) ("polkit" ,polkit))) (home-page "http://www.freedesktop.org/wiki/Software/AccountsService/") (synopsis "D-Bus interface for user account query and manipulation") @@ -782,8 +789,7 @@ which speak the Qualcomm MSM Interface (QMI) protocol.") (propagated-inputs `(("glib" ,glib))) ; required by mm-glib.pc (inputs - `(("libcap" ,libcap) - ("libgudev" ,libgudev) + `(("libgudev" ,libgudev) ("libmbim" ,libmbim) ("libqmi" ,libqmi) ("polkit" ,polkit))) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 339436f272..113c8e5a2f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2781,7 +2781,6 @@ keyboard shortcuts.") ("lcms" ,lcms))) (inputs `(("dbus-glib" ,dbus-glib) - ("libcap" ,libcap) ("libgudev" ,libgudev) ("libusb" ,libusb) ("sqlite" ,sqlite) @@ -4503,7 +4502,6 @@ such as gzip tarballs.") ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+) ("json-glib" ,json-glib) - ("libcap" ,libcap) ("libsm" ,libsm) ("libxcomposite" ,libxcomposite) ("libxtst" ,libxtst) @@ -4739,7 +4737,6 @@ to display dialog boxes from the commandline and shell scripts.") `(("elogind" ,elogind) ("gnome-desktop" ,gnome-desktop) ("libcanberra-gtk" ,libcanberra) - ("libcap" ,libcap) ("libgudev" ,libgudev) ("libice" ,libice) ("libsm" ,libsm) @@ -5023,7 +5020,6 @@ users.") ("iptables" ,iptables) ("isc-dhcp" ,isc-dhcp) ("jansson" ,jansson) - ("libcap" ,libcap) ("libgcrypt" ,libgcrypt) ("libgudev" ,libgudev) ("libndp" ,libndp) @@ -5254,7 +5250,6 @@ libxml2.") ("gtk+" ,gtk+) ("iso-codes" ,iso-codes) ("libcanberra" ,libcanberra) - ("libcap" ,libcap) ("linux-pam" ,linux-pam))) (synopsis "Display manager for GNOME") (home-page "https://wiki.gnome.org/Projects/GDM/") diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index 11c825ef34..0e38dd61ee 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -81,7 +81,6 @@ (build-system gnu-build-system) (inputs `(("expat" ,expat) - ("libcap" ,libcap) ("linux-pam" ,linux-pam) ("elogind" ,elogind) ("mozjs" ,mozjs) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index db61915955..a9682b685c 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016 Mckinley Olsen ;;; Copyright © 2016, 2017 Alex Griffin ;;; Copyright © 2016 David Craven -;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016, 2017 Ludovic Courtès ;;; Copyright © 2016, 2017 José Miguel Sánchez García ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Ricardo Wurmus @@ -239,8 +239,7 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.") ("libxml2" ,libxml2) ;for XML_CATALOG_FILES ("docbook-xsl" ,docbook-xsl))) (inputs - `(("libcap" ,libcap) - ("libdrm" ,libdrm) + `(("libdrm" ,libdrm) ("libtsm" ,libtsm) ("libxkbcommon" ,libxkbcommon) ("logind" ,elogind) From fb25508856b5dc646b1a9771c70eaa071cee6742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 7 Sep 2017 11:30:44 +0200 Subject: [PATCH 057/333] size: Default to '--sort=self'. * guix/scripts/size.scm (%default-options): Change default value for 'profile Date: Thu, 7 Sep 2017 15:38:56 +0200 Subject: [PATCH 058/333] gnu: Add BLIS. * gnu/packages/maths.scm (make-blis): New procedure. (blis, ignorance): New variables. (blis/x86_64): New macro. (blis-sandybridge, blis-haswell, blis-knl): New variables. --- gnu/packages/maths.scm | 86 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index d48c31f5e3..f326f6af72 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2516,6 +2516,92 @@ parts of it.") "OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.") (license license:bsd-3))) +(define* (make-blis implementation #:optional substitutable?) + "Return a BLIS package with the given IMPLEMENTATION (see config/ in the +source tree for a list of implementations.) + +SUBSTITUTABLE? determines whether the package is made available as a +substitute. + +Currently the specialization must be selected at configure-time, but work is +underway to allow BLIS to select the right optimized kernels at run time: +." + (package + (name (if (string=? implementation "reference") + "blis" + (string-append "blis-" implementation))) + (version "0.2.2") + (home-page "https://github.com/flame/blis") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (sha256 + (base32 + "1wr79a50nm4abhw8w3sn96nmwp5mrzifcigk7khw9qcgyyyqayfh")) + (file-name (git-file-name "blis" version)))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + + #:substitutable? ,substitutable? + + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; This is a home-made 'configure' script. + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "./configure" "-p" out + "-d" "opt" + "--disable-static" + "--enable-shared" + "--enable-threading=openmp" + + ,implementation))))) + (add-before 'check 'show-test-output + (lambda _ + ;; By default "make check" is silent. Make it verbose. + (system "tail -F output.testsuite &") + #t))))) + (synopsis "High-performance basic linear algebra (BLAS) routines") + (description + "BLIS is a portable software framework for instantiating high-performance +BLAS-like dense linear algebra libraries. The framework was designed to +isolate essential kernels of computation that, when optimized, immediately +enable optimized implementations of most of its commonly used and +computationally intensive operations. While BLIS exports a new BLAS-like API, +it also includes a BLAS compatibility layer which gives application developers +access to BLIS implementations via traditional BLAS routine calls.") + (license license:bsd-3))) + +(define-public blis + ;; This is the "reference" implementation, which is the non-optimized but + ;; portable variant (no assembly). + (make-blis "reference" #t)) + +(define ignorance blis) + +(define-syntax-rule (blis/x86_64 processor) + "Expand to a package specialized for PROCESSOR." + (package + (inherit (make-blis processor)) + (supported-systems '("x86_64-linux")))) + +(define-public blis-sandybridge + ;; BLIS specialized for Sandy Bridge processors (launched 2011): + ;; . + (blis/x86_64 "sandybridge")) + +(define-public blis-haswell + ;; BLIS specialized for Haswell processors (launched 2013): + ;; . + (blis/x86_64 "haswell")) + +(define-public blis-knl + ;; BLIS specialized for Knights Landing processor (launched 2016): + ;; . + (blis/x86_64 "knl")) + + (define-public openlibm (package (name "openlibm") From 94d671f673d184691cb13d36203e109c13cd4859 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 6 Sep 2017 15:43:30 -0400 Subject: [PATCH 059/333] gnu: libarchive: Replace with libarchive 3.3.2 and fix CVE-2017-14166. * gnu/packages/backup.scm (libarchive)[replacement]: New field. (libarchive-3.3.2): New variable. * gnu/packages/patches/libarchive-CVE-2017-14166.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/backup.scm | 9 ++-- .../patches/libarchive-CVE-2017-14166.patch | 45 +++++++++++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/libarchive-CVE-2017-14166.patch diff --git a/gnu/local.mk b/gnu/local.mk index a38e4e2d5a..60e9ff29f1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -752,6 +752,7 @@ dist_patch_DATA = \ %D%/packages/patches/liba52-link-with-libm.patch \ %D%/packages/patches/liba52-set-soname.patch \ %D%/packages/patches/liba52-use-mtune-not-mcpu.patch \ + %D%/packages/patches/libarchive-CVE-2017-14166.patch \ %D%/packages/patches/libbase-fix-includes.patch \ %D%/packages/patches/libbase-use-own-logging.patch \ %D%/packages/patches/libbonobo-activation-test-race.patch \ diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index eca69bebed..006d00ef0c 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -184,6 +184,7 @@ backups (called chunks) to allow easy burning to CD/DVD.") (define-public libarchive (package (name "libarchive") + (replacement libarchive-3.3.2) (version "3.3.1") (source (origin @@ -239,19 +240,19 @@ 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 +(define libarchive-3.3.2 (package (inherit libarchive) - (name "libarchive") - (version "3.3.1") + (version "3.3.2") (source (origin (method url-fetch) (uri (string-append "http://libarchive.org/downloads/libarchive-" version ".tar.gz")) + (patches (search-patches "libarchive-CVE-2017-14166.patch")) (sha256 (base32 - "1rr40hxlm9vy5z2zb5w7pyfkgd1a4s061qapm83s19accb8mpji9")))))) + "1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd")))))) (define-public rdup (package diff --git a/gnu/packages/patches/libarchive-CVE-2017-14166.patch b/gnu/packages/patches/libarchive-CVE-2017-14166.patch new file mode 100644 index 0000000000..a122848440 --- /dev/null +++ b/gnu/packages/patches/libarchive-CVE-2017-14166.patch @@ -0,0 +1,45 @@ +Fix CVE-2017-14166: + +https://github.com/libarchive/libarchive/issues/935 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14166 + +Patch copied from upstream source repository: + +https://github.com/libarchive/libarchive/commit/fa7438a0ff4033e4741c807394a9af6207940d71 + +From fa7438a0ff4033e4741c807394a9af6207940d71 Mon Sep 17 00:00:00 2001 +From: Joerg Sonnenberger +Date: Tue, 5 Sep 2017 18:12:19 +0200 +Subject: [PATCH] Do something sensible for empty strings to make fuzzers + happy. + +--- + libarchive/archive_read_support_format_xar.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/libarchive/archive_read_support_format_xar.c b/libarchive/archive_read_support_format_xar.c +index 7a22beb9d..93eeacc5e 100644 +--- a/libarchive/archive_read_support_format_xar.c ++++ b/libarchive/archive_read_support_format_xar.c +@@ -1040,6 +1040,9 @@ atol10(const char *p, size_t char_cnt) + uint64_t l; + int digit; + ++ if (char_cnt == 0) ++ return (0); ++ + l = 0; + digit = *p - '0'; + while (digit >= 0 && digit < 10 && char_cnt-- > 0) { +@@ -1054,7 +1057,10 @@ atol8(const char *p, size_t char_cnt) + { + int64_t l; + int digit; +- ++ ++ if (char_cnt == 0) ++ return (0); ++ + l = 0; + while (char_cnt-- > 0) { + if (*p >= '0' && *p <= '7') From 6a7bd25bf29f886ac2700c99d5e84ee004ee488e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 7 Sep 2017 14:44:45 -0400 Subject: [PATCH 060/333] gnu: qemu: Fix CVE-2017-{13711,14167}. * gnu/packages/patches/qemu-CVE-2017-14167.patch gnu/packages/patches/qemu-CVE-2017-13711.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/virtualization.scm (qemu)[source]: Use them. --- gnu/local.mk | 2 + .../patches/qemu-CVE-2017-13711.patch | 89 +++++++++++++++++++ .../patches/qemu-CVE-2017-14167.patch | 69 ++++++++++++++ gnu/packages/virtualization.scm | 2 + 4 files changed, 162 insertions(+) create mode 100644 gnu/packages/patches/qemu-CVE-2017-13711.patch create mode 100644 gnu/packages/patches/qemu-CVE-2017-14167.patch diff --git a/gnu/local.mk b/gnu/local.mk index 60e9ff29f1..9df17110b6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -978,6 +978,8 @@ dist_patch_DATA = \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \ + %D%/packages/patches/qemu-CVE-2017-13711.patch \ + %D%/packages/patches/qemu-CVE-2017-14167.patch \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/quagga-reproducible-build.patch \ diff --git a/gnu/packages/patches/qemu-CVE-2017-13711.patch b/gnu/packages/patches/qemu-CVE-2017-13711.patch new file mode 100644 index 0000000000..4070115419 --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2017-13711.patch @@ -0,0 +1,89 @@ +Fix CVE-2017-13711: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13711 + +Patch copied from upstream source repository: + +https://git.qemu.org/?p=qemu.git;a=commitdiff;h=1201d308519f1e915866d7583d5136d03cc1d384 + +From 1201d308519f1e915866d7583d5136d03cc1d384 Mon Sep 17 00:00:00 2001 +From: Samuel Thibault +Date: Fri, 25 Aug 2017 01:35:53 +0200 +Subject: [PATCH] slirp: fix clearing ifq_so from pending packets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The if_fastq and if_batchq contain not only packets, but queues of packets +for the same socket. When sofree frees a socket, it thus has to clear ifq_so +from all the packets from the queues, not only the first. + +Signed-off-by: Samuel Thibault +Reviewed-by: Philippe Mathieu-Daudé +Cc: qemu-stable@nongnu.org +Signed-off-by: Peter Maydell +--- + slirp/socket.c | 39 +++++++++++++++++++++++---------------- + 1 file changed, 23 insertions(+), 16 deletions(-) + +diff --git a/slirp/socket.c b/slirp/socket.c +index ecec0295a9..cb7b5b608d 100644 +--- a/slirp/socket.c ++++ b/slirp/socket.c +@@ -59,6 +59,27 @@ socreate(Slirp *slirp) + return(so); + } + ++/* ++ * Remove references to so from the given message queue. ++ */ ++static void ++soqfree(struct socket *so, struct quehead *qh) ++{ ++ struct mbuf *ifq; ++ ++ for (ifq = (struct mbuf *) qh->qh_link; ++ (struct quehead *) ifq != qh; ++ ifq = ifq->ifq_next) { ++ if (ifq->ifq_so == so) { ++ struct mbuf *ifm; ++ ifq->ifq_so = NULL; ++ for (ifm = ifq->ifs_next; ifm != ifq; ifm = ifm->ifs_next) { ++ ifm->ifq_so = NULL; ++ } ++ } ++ } ++} ++ + /* + * remque and free a socket, clobber cache + */ +@@ -66,23 +87,9 @@ void + sofree(struct socket *so) + { + Slirp *slirp = so->slirp; +- struct mbuf *ifm; + +- for (ifm = (struct mbuf *) slirp->if_fastq.qh_link; +- (struct quehead *) ifm != &slirp->if_fastq; +- ifm = ifm->ifq_next) { +- if (ifm->ifq_so == so) { +- ifm->ifq_so = NULL; +- } +- } +- +- for (ifm = (struct mbuf *) slirp->if_batchq.qh_link; +- (struct quehead *) ifm != &slirp->if_batchq; +- ifm = ifm->ifq_next) { +- if (ifm->ifq_so == so) { +- ifm->ifq_so = NULL; +- } +- } ++ soqfree(so, &slirp->if_fastq); ++ soqfree(so, &slirp->if_batchq); + + if (so->so_emu==EMU_RSH && so->extra) { + sofree(so->extra); +-- +2.14.1 + diff --git a/gnu/packages/patches/qemu-CVE-2017-14167.patch b/gnu/packages/patches/qemu-CVE-2017-14167.patch new file mode 100644 index 0000000000..a6007ac082 --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2017-14167.patch @@ -0,0 +1,69 @@ +Fix CVE-2017-14167: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14167 +http://seclists.org/oss-sec/2017/q3/407 + +Patch copied from upstream development mailing list: + +https://lists.nongnu.org/archive/html/qemu-devel/2017-09/msg01483.html + +From: Prasad J Pandit + +While loading kernel via multiboot-v1 image, (flags & 0x00010000) +indicates that multiboot header contains valid addresses to load +the kernel image. These addresses are used to compute kernel +size and kernel text offset in the OS image. Validate these +address values to avoid an OOB access issue. + +This is CVE-2017-14167. + +Reported-by: Thomas Garnier +Signed-off-by: Prasad J Pandit +--- + hw/i386/multiboot.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +Update: add CVE-ID to the commit message. + +diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c +index 6001f4caa2..c7b70c91d5 100644 +--- a/hw/i386/multiboot.c ++++ b/hw/i386/multiboot.c +@@ -221,15 +221,34 @@ int load_multiboot(FWCfgState *fw_cfg, + uint32_t mh_header_addr = ldl_p(header+i+12); + uint32_t mh_load_end_addr = ldl_p(header+i+20); + uint32_t mh_bss_end_addr = ldl_p(header+i+24); ++ + mh_load_addr = ldl_p(header+i+16); ++ if (mh_header_addr < mh_load_addr) { ++ fprintf(stderr, "invalid mh_load_addr address\n"); ++ exit(1); ++ } ++ + uint32_t mb_kernel_text_offset = i - (mh_header_addr - mh_load_addr); + uint32_t mb_load_size = 0; + mh_entry_addr = ldl_p(header+i+28); + + if (mh_load_end_addr) { ++ if (mh_bss_end_addr < mh_load_addr) { ++ fprintf(stderr, "invalid mh_bss_end_addr address\n"); ++ exit(1); ++ } + mb_kernel_size = mh_bss_end_addr - mh_load_addr; ++ ++ if (mh_load_end_addr < mh_load_addr) { ++ fprintf(stderr, "invalid mh_load_end_addr address\n"); ++ exit(1); ++ } + mb_load_size = mh_load_end_addr - mh_load_addr; + } else { ++ if (kernel_file_size < mb_kernel_text_offset) { ++ fprintf(stderr, "invalid kernel_file_size\n"); ++ exit(1); ++ } + mb_kernel_size = kernel_file_size - mb_kernel_text_offset; + mb_load_size = mb_kernel_size; + } +-- +2.13.5 + diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 6cb4331b1f..8fd3230895 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -77,6 +77,8 @@ (method url-fetch) (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) + (patches (search-patches "qemu-CVE-2017-13711.patch" + "qemu-CVE-2017-14167.patch")) (sha256 (base32 "0dgk7zcni41nf1jp84y0m6dk2nb4frnh571m8hkiv0m4hz4imn2m")))) From 3b2802f8c451f7d8f0e02ee81a55046648c0735e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 7 Sep 2017 15:23:21 -0400 Subject: [PATCH 061/333] gnu: certbot, python-acme: Update to 0.18.0. * gnu/packages/tls.scm (certbot, python-acme, python2-acme): Update to 0.18.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 4183dda3c6..52554a2922 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -486,13 +486,13 @@ netcat implementation that supports TLS.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.17.0") + (version "0.18.0") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "0vmnv7qhdhl9qhq03v6zrcj1lsmpmpjb94s0xsc7piwqxfmf9jrw")))) + "0f49v661nw8sccaqc85q64vi8alnzb88y3nimn1123gq128hq6rh")))) (build-system python-build-system) (arguments `(#:phases @@ -543,7 +543,7 @@ netcat implementation that supports TLS.") (uri (pypi-uri name version)) (sha256 (base32 - "173619jkq4bg88f6i837z3pcjkrfabrvv8vrpyx18k9i7xnb5xa3")))) + "0pqryjjc8ywg4z9akfk6iv6sxr32lks8pd0h4vvw3w2mlkbxy2zp")))) (build-system python-build-system) (arguments `(,@(substitute-keyword-arguments (package-arguments python-acme) From 81635ad03ecb3a51b5248db65919621bde9039f4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 5 Sep 2017 14:57:21 -0400 Subject: [PATCH 062/333] gnu: tcpdump: Update to 4.9.2 [security fixes]. Fixes CVE-2017-{12893,12894,12895,12896,12897,12898,12899,12900,12901,12902, 12985,12986,12987,12988,12989,12990,12991,12992,12993,12994,12995,12996,12997, 12998,12999,13000,13001,13002,13003,13004,13005,13006,13007,13008,13009,13010, 13012,13013,13014,13015,13016,13017,13018,13019,13020,13021,13022,13023,13024, 13025,13026,13027,13028,13029,13030,13031,13032,13033,13034,13035,13036,13037, 13038,13039,13040,13041,13042,13043,13044,13045,13046,13047,13048,13049,13050, 13051,13052,13053,13054,13055,13687,13688,13689,13690,13725}. * gnu/packages/admin.scm (tcpdump): Update to 4.9.2. [source]: Remove patches and add alternate source URL. * gnu/packages/patches/tcpdump-CVE-2017-11541.patch, gnu/packages/patches/tcpdump-CVE-2017-11542.patch, gnu/packages/patches/tcpdump-CVE-2017-11543.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 3 - gnu/packages/admin.scm | 17 ++-- .../patches/tcpdump-CVE-2017-11541.patch | 47 ----------- .../patches/tcpdump-CVE-2017-11542.patch | 37 --------- .../patches/tcpdump-CVE-2017-11543.patch | 79 ------------------- 5 files changed, 10 insertions(+), 173 deletions(-) delete mode 100644 gnu/packages/patches/tcpdump-CVE-2017-11541.patch delete mode 100644 gnu/packages/patches/tcpdump-CVE-2017-11542.patch delete mode 100644 gnu/packages/patches/tcpdump-CVE-2017-11543.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9df17110b6..2f85510767 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1034,9 +1034,6 @@ dist_patch_DATA = \ %D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tcl-mkindex-deterministic.patch \ %D%/packages/patches/tclxml-3.2-install.patch \ - %D%/packages/patches/tcpdump-CVE-2017-11541.patch \ - %D%/packages/patches/tcpdump-CVE-2017-11542.patch \ - %D%/packages/patches/tcpdump-CVE-2017-11543.patch \ %D%/packages/patches/tcsh-fix-autotest.patch \ %D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \ %D%/packages/patches/teensy-loader-cli-help.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index f047bcaef3..c67491c534 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -661,17 +661,20 @@ network statistics collection, security monitoring, network debugging, etc.") (define-public tcpdump (package (name "tcpdump") - (version "4.9.1") + (version "4.9.2") (source (origin (method url-fetch) - (uri (string-append "http://www.tcpdump.org/release/tcpdump-" - version ".tar.gz")) - (patches (search-patches "tcpdump-CVE-2017-11541.patch" - "tcpdump-CVE-2017-11542.patch" - "tcpdump-CVE-2017-11543.patch")) + (uri (list (string-append "http://www.tcpdump.org/release/tcpdump-" + version ".tar.gz") + ;; The tarball is not yet distributed from tcpdump.org, + ;; so we fetch it from Arch. For more information see + ;; . + (string-append "https://sources.archlinux.org/other/" + "packages/tcpdump/tcpdump-" version + ".tar.gz"))) (sha256 (base32 - "1wyqbg7bkmgqyslf1ns0xx9fcqi66hvcfm9nf77rl15jvvs8qi7r")))) + "0ygy0layzqaj838r5xd613iraz09wlfgpyh7pc6cwclql8v3b2vr")))) (build-system gnu-build-system) (inputs `(("libpcap" ,libpcap) ("openssl" ,openssl))) diff --git a/gnu/packages/patches/tcpdump-CVE-2017-11541.patch b/gnu/packages/patches/tcpdump-CVE-2017-11541.patch deleted file mode 100644 index a9fc632dc2..0000000000 --- a/gnu/packages/patches/tcpdump-CVE-2017-11541.patch +++ /dev/null @@ -1,47 +0,0 @@ -Fix CVE-2017-11541 - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11541 - -Patch copied from upstream source repository: - -https://github.com/the-tcpdump-group/tcpdump/commit/21d702a136c5c16882e368af7c173df728242280 - -From 21d702a136c5c16882e368af7c173df728242280 Mon Sep 17 00:00:00 2001 -From: Guy Harris -Date: Tue, 7 Feb 2017 11:40:36 -0800 -Subject: [PATCH] CVE-2017-11541: In safeputs(), check the length before - checking for a NUL terminator. - -safeputs() doesn't do packet bounds checking of its own; it assumes that -the caller has checked the availability in the packet data of all maxlen -bytes of data. This means we should check that we're within the -specified limit before looking at the byte. - -This fixes a buffer over-read discovered by Kamil Frankowicz. - -Add a test using the capture file supplied by the reporter(s). ---- - tests/TESTLIST | 1 + - tests/hoobr_safeputs.out | 2 ++ - tests/hoobr_safeputs.pcap | Bin 0 -> 88 bytes - util-print.c | 2 +- - 4 files changed, 4 insertions(+), 1 deletion(-) - create mode 100644 tests/hoobr_safeputs.out - create mode 100644 tests/hoobr_safeputs.pcap - -diff --git a/util-print.c b/util-print.c -index 394e7d59..ec3e8de8 100644 ---- a/util-print.c -+++ b/util-print.c -@@ -904,7 +904,7 @@ safeputs(netdissect_options *ndo, - { - u_int idx = 0; - -- while (*s && idx < maxlen) { -+ while (idx < maxlen && *s) { - safeputchar(ndo, *s); - idx++; - s++; --- -2.14.1 - diff --git a/gnu/packages/patches/tcpdump-CVE-2017-11542.patch b/gnu/packages/patches/tcpdump-CVE-2017-11542.patch deleted file mode 100644 index 24849d5187..0000000000 --- a/gnu/packages/patches/tcpdump-CVE-2017-11542.patch +++ /dev/null @@ -1,37 +0,0 @@ -Fix CVE-2017-11542: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11542 - -Patch copied from upstream source repository: - -https://github.com/the-tcpdump-group/tcpdump/commit/bed48062a64fca524156d7684af19f5b4a116fae - -From bed48062a64fca524156d7684af19f5b4a116fae Mon Sep 17 00:00:00 2001 -From: Guy Harris -Date: Tue, 7 Feb 2017 11:10:04 -0800 -Subject: [PATCH] CVE-2017-11542/PIMv1: Add a bounds check. - -This fixes a buffer over-read discovered by Kamil Frankowicz. - -Add a test using the capture file supplied by the reporter(s). ---- - print-pim.c | 1 + - tests/TESTLIST | 1 + - tests/hoobr_pimv1.out | 25 +++++++++++++++++++++++++ - tests/hoobr_pimv1.pcap | Bin 0 -> 3321 bytes - 4 files changed, 27 insertions(+) - create mode 100644 tests/hoobr_pimv1.out - create mode 100644 tests/hoobr_pimv1.pcap - -diff --git a/print-pim.c b/print-pim.c -index 25525953..ed880ae7 100644 ---- a/print-pim.c -+++ b/print-pim.c -@@ -306,6 +306,7 @@ pimv1_print(netdissect_options *ndo, - pimv1_join_prune_print(ndo, &bp[8], len - 8); - break; - } -+ ND_TCHECK(bp[4]); - if ((bp[4] >> 4) != 1) - ND_PRINT((ndo, " [v%d]", bp[4] >> 4)); - return; diff --git a/gnu/packages/patches/tcpdump-CVE-2017-11543.patch b/gnu/packages/patches/tcpdump-CVE-2017-11543.patch deleted file mode 100644 index c973503983..0000000000 --- a/gnu/packages/patches/tcpdump-CVE-2017-11543.patch +++ /dev/null @@ -1,79 +0,0 @@ -Fix CVE-2017-11543: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11543 - -Patch copied from upstream source repository: - -https://github.com/the-tcpdump-group/tcpdump/commit/7039327875525278d17edee59720e29a3e76b7b3 - -From 7039327875525278d17edee59720e29a3e76b7b3 Mon Sep 17 00:00:00 2001 -From: Guy Harris -Date: Fri, 17 Mar 2017 12:49:04 -0700 -Subject: [PATCH] CVE-2017-11543/Make sure the SLIP direction octet is valid. - -Report if it's not, and don't use it as an out-of-bounds index into an -array. - -This fixes a buffer overflow discovered by Wilfried Kirsch. - -Add a test using the capture file supplied by the reporter(s), modified -so the capture file won't be rejected as an invalid capture. ---- - print-sl.c | 25 +++++++++++++++++++++++-- - tests/TESTLIST | 3 +++ - tests/slip-bad-direction.out | 1 + - tests/slip-bad-direction.pcap | Bin 0 -> 79 bytes - 4 files changed, 27 insertions(+), 2 deletions(-) - create mode 100644 tests/slip-bad-direction.out - create mode 100644 tests/slip-bad-direction.pcap - -diff --git a/print-sl.c b/print-sl.c -index 3fd7e898..a02077b3 100644 ---- a/print-sl.c -+++ b/print-sl.c -@@ -131,8 +131,21 @@ sliplink_print(netdissect_options *ndo, - u_int hlen; - - dir = p[SLX_DIR]; -- ND_PRINT((ndo, dir == SLIPDIR_IN ? "I " : "O ")); -+ switch (dir) { - -+ case SLIPDIR_IN: -+ ND_PRINT((ndo, "I ")); -+ break; -+ -+ case SLIPDIR_OUT: -+ ND_PRINT((ndo, "O ")); -+ break; -+ -+ default: -+ ND_PRINT((ndo, "Invalid direction %d ", dir)); -+ dir = -1; -+ break; -+ } - if (ndo->ndo_nflag) { - /* XXX just dump the header */ - register int i; -@@ -155,13 +168,21 @@ sliplink_print(netdissect_options *ndo, - * has restored the IP header copy to IPPROTO_TCP. - */ - lastconn = ((const struct ip *)&p[SLX_CHDR])->ip_p; -+ ND_PRINT((ndo, "utcp %d: ", lastconn)); -+ if (dir == -1) { -+ /* Direction is bogus, don't use it */ -+ return; -+ } - hlen = IP_HL(ip); - hlen += TH_OFF((const struct tcphdr *)&((const int *)ip)[hlen]); - lastlen[dir][lastconn] = length - (hlen << 2); -- ND_PRINT((ndo, "utcp %d: ", lastconn)); - break; - - default: -+ if (dir == -1) { -+ /* Direction is bogus, don't use it */ -+ return; -+ } - if (p[SLX_CHDR] & TYPE_COMPRESSED_TCP) { - compressed_sl_print(ndo, &p[SLX_CHDR], ip, - length, dir); From acc2ab65bcc8e2754b90286cbe94833a82d3d009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 7 Sep 2017 22:23:34 +0200 Subject: [PATCH 063/333] doc: Update elogind URL. * doc/guix.texi (Desktop Services): Update elogind URL. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 68f0aa2aa8..6d2bf9ea30 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11659,7 +11659,7 @@ and policy files. For example, to allow avahi-daemon to use the system bus, @deffn {Scheme Procedure} elogind-service [#:config @var{config}] Return a service that runs the @code{elogind} login and -seat management daemon. @uref{https://github.com/andywingo/elogind, +seat management daemon. @uref{https://github.com/elogind/elogind, Elogind} exposes a D-Bus interface that can be used to know which users are logged in, know what kind of sessions they have open, suspend the system, inhibit system suspend, reboot the system, and other tasks. From 505760ed08db7399bf5a21fd04272079fe7bca19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 7 Sep 2017 23:22:28 +0200 Subject: [PATCH 064/333] gnu: elogind: Remove unnecessary configure flag. * gnu/packages/freedesktop.scm (elogind)[arguments]: Remove "--with-libcap" configure flag, which is no longer needed. --- gnu/packages/freedesktop.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 83374bce6e..3307a4ae80 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -224,9 +224,7 @@ the freedesktop.org XDG Base Directory specification.") (arguments `(#:tests? #f ;FIXME: "make check" in the "po" directory fails. #:configure-flags - (list (string-append "--with-libcap=" - (assoc-ref %build-inputs "libcap")) - (string-append "--with-udevrulesdir=" + (list (string-append "--with-udevrulesdir=" (assoc-ref %outputs "out") "/lib/udev/rules.d") (string-append "--with-rootprefix=" From 13877c34534fc6a1cda25a984007bc0e7d27ebc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 7 Sep 2017 23:31:21 +0200 Subject: [PATCH 065/333] marionette: 'wait-for-file' can be passed a read procedure. * gnu/build/marionette.scm (wait-for-file): Add #:read parameter and honor it. * gnu/tests/base.scm (run-basic-test)["login on tty1"]: Use 'wait-for-file' instead of inline code. --- gnu/build/marionette.scm | 7 ++++--- gnu/tests/base.scm | 15 ++------------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index f35f0fbca1..7554a710a0 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -165,13 +165,14 @@ QEMU monitor and to the guest's backdoor REPL." (newline repl) (read repl)))) -(define* (wait-for-file file marionette #:key (timeout 10)) - "Wait until FILE exists in MARIONETTE; 'read' its content and return it. If +(define* (wait-for-file file marionette + #:key (timeout 10) (read 'read)) + "Wait until FILE exists in MARIONETTE; READ its content and return it. If FILE has not shown up after TIMEOUT seconds, raise an error." (match (marionette-eval `(let loop ((i ,timeout)) (cond ((file-exists? ,file) - (cons 'success (call-with-input-file ,file read))) + (cons 'success (call-with-input-file ,file ,read))) ((> i 0) (sleep 1) (loop (- i 1))) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 5b40d4514a..959da31a60 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -250,19 +250,8 @@ info --version") ;; It can take a while before the shell commands are executed. (marionette-eval '(use-modules (rnrs io ports)) marionette) - (marionette-eval - '(let loop ((i 0)) - (catch 'system-error - (lambda () - (call-with-input-file "/root/logged-in" - get-string-all)) - (lambda args - (if (and (< i 15) (= ENOENT (system-error-errno args))) - (begin - (sleep 1) - (loop (+ i 1))) - (apply throw args))))) - marionette))) + (wait-for-file "/root/logged-in" marionette + #:read 'get-string-all))) ;; There should be one utmpx entry for the user logged in on tty1. (test-equal "utmpx entry" From cf42428a4a3c182f9d99bebaba868ef47d88c3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 7 Sep 2017 23:52:59 +0200 Subject: [PATCH 066/333] services: elogind: Add default value. * gnu/services/desktop.scm (elogind-service-type)[default-value]: New field. --- gnu/services/desktop.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 98f1198f2f..527a3101cf 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -732,7 +732,8 @@ seats.)" ;; We need /run/user, /run/systemd, etc. (service-extension file-system-service-type - (const %elogind-file-systems)))))) + (const %elogind-file-systems)))) + (default-value (elogind-configuration)))) (define* (elogind-service #:key (config (elogind-configuration))) "Return a service that runs the @command{elogind} login and seat management From cd1ad27e6cdf90230d07efc18a8fcfe45494aad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 7 Sep 2017 23:59:51 +0200 Subject: [PATCH 067/333] gnu: elogind: Use itself as the cgroup controller. Fixes a regression introduced in fa67d5654176b4b815832eaf259188e1486c65ab whereby elogind would fail to start with: Cannot determine cgroup we are running in: No data available Out of memory. thereby preventing log-in altogether. * gnu/packages/freedesktop.scm (elogind)[arguments]: Pass "--with-cgroup-controller=elogind". * gnu/tests/desktop.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/freedesktop.scm | 6 ++ gnu/tests/desktop.scm | 105 +++++++++++++++++++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 gnu/tests/desktop.scm diff --git a/gnu/local.mk b/gnu/local.mk index 2f85510767..1ac9d5efea 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -487,6 +487,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/audio.scm \ %D%/tests/base.scm \ %D%/tests/databases.scm \ + %D%/tests/desktop.scm \ %D%/tests/dict.scm \ %D%/tests/nfs.scm \ %D%/tests/install.scm \ diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 3307a4ae80..606859771a 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -227,6 +227,12 @@ the freedesktop.org XDG Base Directory specification.") (list (string-append "--with-udevrulesdir=" (assoc-ref %outputs "out") "/lib/udev/rules.d") + + ;; Let elogind be its own cgroup controller, rather than relying + ;; on systemd or OpenRC. By default, 'configure' makes an + ;; incorrect guess. + "--with-cgroup-controller=elogind" + (string-append "--with-rootprefix=" (assoc-ref %outputs "out")) (string-append "--with-rootlibexecdir=" diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm new file mode 100644 index 0000000000..be64c4e7e5 --- /dev/null +++ b/gnu/tests/desktop.scm @@ -0,0 +1,105 @@ +;;; 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 (gnu tests desktop) + #:use-module (gnu tests) + #:use-module (gnu services) + #:use-module (gnu services dbus) + #:use-module (gnu services desktop) + #:use-module (gnu system vm) + #:use-module (guix gexp) + #:use-module (srfi srfi-1) + #:export (%test-elogind)) + + +;;; +;;; Elogind. +;;; + +(define (run-elogind-test vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-64)) + + (define marionette + (make-marionette '(#$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "elogind") + + ;; Log in as root on tty1, and check what 'loginctl' returns. + (test-equal "login on tty1" + '(("c1" "0" "root" "seat0" "/dev/tty1") ;session + ("seat0") ;seat + ("0" "root")) ;user + + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; Now we can type. + (marionette-type "root\n" marionette) + (marionette-type "loginctl list-users --no-legend > users\n" + marionette) + (marionette-type "loginctl list-seats --no-legend > seats\n" + marionette) + (marionette-type "loginctl list-sessions --no-legend > sessions\n" + marionette) + + + ;; Read the three files. + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (let ((guest-file (lambda (file) + (string-tokenize + (wait-for-file file marionette + #:read 'get-string-all))))) + (list (guest-file "/root/sessions") + (guest-file "/root/seats") + (guest-file "/root/users"))))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "elogind" test)) + +(define %test-elogind + (system-test + (name "elogind") + (description + "Test whether we can log in when elogind is enabled, and whether +'loginctl' reports accurate user, session, and seat information.") + (value + (let ((os (marionette-operating-system + (simple-operating-system + (service elogind-service-type) + (service polkit-service-type) + (service dbus-root-service-type)) + #:imported-modules '((gnu services herd) + (guix combinators))))) + (run-elogind-test (virtual-machine os)))))) From 4e39604111e53a1aab74fdfe9360ec71c2fd1a85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 8 Sep 2017 00:04:38 +0200 Subject: [PATCH 068/333] tests: Fix incorrect use of 'file-append'. Fixes a regression introduced in fbc7b1f12561159e0ec3f6459d336f95cf2ce503. * gnu/tests/install.scm (run-install)[install]: Don't use 'file-append' with a string as its first argument; use a gexp with 'string-append' instead. Use a gexp instead of a list for "-cdrom IMG". --- gnu/tests/install.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 93c8a89cd8..49743860e5 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -238,11 +238,11 @@ packages defined in installation-os." "-m" "800" #$@(cond ((string=? "ext4" installation-disk-image-file-system-type) - `("-drive" - ,(file-append "file=" image - ",if=virtio,readonly"))) + #~("-drive" + ,(string-append "file=" #$image + ",if=virtio,readonly"))) ((string=? "iso9660" installation-disk-image-file-system-type) - `("-cdrom" ,image)) + #~("-cdrom" #$image)) (else (error "unsupported installation-disk-image-file-system-type:" From 5c6f434d74b66bc3b3689c9902f610e24e7187cb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 8 Sep 2017 03:45:30 -0400 Subject: [PATCH 069/333] gnu: linux-libre@4.4: Update to 4.4.87. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.87. --- 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 ac7a7a405d..fb3bc4dbb1 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -383,8 +383,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.86" - "0zm283262k63c5sa3l2lg8lqdjmgzym60qf3kvfva21xqswzcpas" + (make-linux-libre "4.4.87" + "0yiqs4i4ydgb2kg8xdyqk9rkhymrnd2dw7jf9wnn5kxfwc2nbqpj" %intel-compatible-systems #:configuration-file kernel-config)) From b3a63e697df48a15970f024dc2108e82c4ba87e1 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 8 Sep 2017 03:46:16 -0400 Subject: [PATCH 070/333] gnu: linux-libre@4.9: Update to 4.9.48. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.48. --- 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 fb3bc4dbb1..e01f298796 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -377,8 +377,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.47" - "0gkmznb168m90zhyn9xg9420k64ba7bmyg70gazfr80y47w6jpdw" + (make-linux-libre "4.9.48" + "0xm7fr4z3k8cxdybk4q0n7iv5c44y7a8zsqvcmn9wznymq37663r" %intel-compatible-systems #:configuration-file kernel-config)) From 8bfa40eae5c9ac7339c78a70e467ba14dd7b3d1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 8 Sep 2017 09:39:01 +0200 Subject: [PATCH 071/333] gnu: hwloc: Update to 1.11.8. * gnu/packages/mpi.scm (hwloc): Update to 1.11.8. --- gnu/packages/mpi.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 93157e2692..f7380fecbf 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -42,7 +42,7 @@ (define-public hwloc (package (name "hwloc") - (version "1.11.7") + (version "1.11.8") (source (origin (method url-fetch) (uri (string-append "https://www.open-mpi.org/software/hwloc/v" @@ -50,7 +50,7 @@ "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "0acph1mf7588hfx8ds26ncr6nw5fd9x92adm11fwin7f93i10sdb")))) + "0karxv4r1r8sa7ki5aamlxdvyvz0bvzq4gdhq0yi5nc4a0k11vzc")))) (build-system gnu-build-system) (outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc. "lib" ;small closure From 1b58f1c8ba6f2ccf7e19c6b022b7567a6841a28b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 8 Sep 2017 12:47:55 +0200 Subject: [PATCH 072/333] build: Use -Wmacro-use-before-definition. * build-aux/compile-all.scm (warnings): Add 'macro-use-before-definition'. --- build-aux/compile-all.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm index 147bb80196..fe25c5d065 100644 --- a/build-aux/compile-all.scm +++ b/build-aux/compile-all.scm @@ -27,7 +27,8 @@ ;; 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)) + '(unsupported-warning unbound-variable arity-mismatch + macro-use-before-definition)) ;new in 2.2 (define host (getenv "host")) From a79830d03542bd376e13201eb24ec28a0197f5a6 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 7 Sep 2017 16:20:23 +0000 Subject: [PATCH 073/333] gnu: neomutt: Update to 20170907. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mail.scm (neomutt): Update to 20170907. Signed-off-by: Ludovic Courtès --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 2a759c3d2e..d8486222f9 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -265,7 +265,7 @@ operating systems.") (package (inherit mutt) (name "neomutt") - (version "20170714") + (version "20170907") (source (origin (method url-fetch) @@ -273,7 +273,7 @@ operating systems.") "/archive/" name "-" version ".tar.gz")) (sha256 (base32 - "10x3sxai773n0gfqpi904ci1qvngymcbc2didswrm92wz4h8km20")))) + "0l2vsdd7hl8909r9j4hl9npfl2ri9ipbn0jaz5pp6wk1m6s13pr4")))) (inputs `(("cyrus-sasl" ,cyrus-sasl) ("gdbm" ,gdbm) From a5d6b0a3d2905dd260cbc540592a434f9827786d Mon Sep 17 00:00:00 2001 From: Troy Sankey Date: Tue, 5 Sep 2017 11:56:34 -0400 Subject: [PATCH 074/333] gnu: notmuch-addrlookup-c: Update to 8-1.88f156d. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mail.scm (notmuch-addrlookup-c): Update to 8-1.88f156d. [source]: Use git-fetch. Signed-off-by: Ludovic Courtès --- gnu/packages/mail.scm | 82 +++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index d8486222f9..9469e96022 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -727,45 +727,51 @@ ing, and tagging large collections of email messages.") (license gpl3+))) (define-public notmuch-addrlookup-c - (package - (name "notmuch-addrlookup-c") - (version "7") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/aperezdc/" name "/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0rslg2ifgyhl6asv3yr1f62m9xjfcinv7i6qb07h2k217jqlmrri")))) - (build-system gnu-build-system) - (arguments - '(#:tests? #f ; no tests - #:make-flags (list "CC=gcc" - (string-append "PREFIX=" - (assoc-ref %outputs "out"))) - #:phases (modify-phases %standard-phases - (delete 'configure) - ;; Remove vim code completion config, it's not needed to - ;; build (or be patched). - (add-before 'patch-source-shebangs 'delete-ycm-file - (lambda _ (delete-file ".ycm_extra_conf.py"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append - (assoc-ref outputs "out") "/bin"))) - (install-file "notmuch-addrlookup" bin))))))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("glib" ,glib) - ("notmuch" ,notmuch))) - (home-page "https://github.com/aperezdc/notmuch-addrlookup-c") - (synopsis "Address lookup tool for Notmuch") - (description "This is an address lookup tool using a Notmuch database, + ;; This commit includes a compatibility fix for notmuch-0.25, and is not + ;; currently part of any release. Please update this package when + ;; notmuch-addrlookup-c-9 is released. + (let ((commit "88f156d04990a71c6ad6fc2757b537b44e3c4d00") + (revision "1")) ;Guix package revision + (package + (name "notmuch-addrlookup-c") + (version (string-append "8-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aperezdc/notmuch-addrlookup-c.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0v0wzs7qzy4n1hbql8s10qrwgalcxdzbxf8pj6cii1pv2jwmkxbm")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" + (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases + (delete 'configure) + ;; Remove vim code completion config, it's not needed to + ;; build (or be patched). + (add-before 'patch-source-shebangs 'delete-ycm-file + (lambda _ (delete-file ".ycm_extra_conf.py"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append + (assoc-ref outputs "out") "/bin"))) + (install-file "notmuch-addrlookup" bin))))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib) + ("notmuch" ,notmuch))) + (home-page "https://github.com/aperezdc/notmuch-addrlookup-c") + (synopsis "Address lookup tool for Notmuch") + (description "This is an address lookup tool using a Notmuch database, useful for email address completion.") - (license license:expat))) + (license license:expat)))) (define-public python-notmuch (package From 4967946b8ae81794971f72fe2e40a2bc428f91b6 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 6 Sep 2017 10:07:55 +0300 Subject: [PATCH 075/333] gnu: Add python-uritemplate. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm (python-uritemplate, python2-uritemplate): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/python.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c6f9f34ce7..bf669a5317 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -16227,3 +16227,24 @@ ECB and OFB).") (define-public python2-pyaes (package-with-python2 python-pyaes)) + +(define-public python-uritemplate + (package + (name "python-uritemplate") + (version "3.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "uritemplate" version)) + (sha256 + (base32 + "0781gm9g34wa0asc19dx81ng0nqq07igzv3bbvdqmz13pv7469n0")))) + (build-system python-build-system) + (home-page "https://uritemplate.readthedocs.org") + (synopsis "Library to deal with URI Templates") + (description "@code{uritemplate} provides Python library to deal with URI +Templates.") + (license license:bsd-2))) + +(define-public python2-uritemplate + (package-with-python2 python-uritemplate)) From 1eb6b724834e2405c16a3ef3299bd68d6f622dec Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 6 Sep 2017 10:01:23 +0300 Subject: [PATCH 076/333] gnu: Add python-betamax-matchers. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm (python-betamax-matchers, python2-betamax-matchers): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index bf669a5317..d3df1ac5c5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -13201,6 +13201,30 @@ replay them during future tests. It is designed to work with python-requests.") (define-public python2-betamax (package-with-python2 python-betamax)) +(define-public python-betamax-matchers + (package + (name "python-betamax-matchers") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "betamax-matchers" version)) + (sha256 + (base32 + "07qpwjyq2i2aqhz5iwghnj4pqr2ys5n45v1vmpcfx9r5mhwrsq43")))) + (build-system python-build-system) + (propagated-inputs + `(("python-betamax" ,python-betamax) + ("python-requests-toolbelt" ,python-requests-toolbelt))) + (home-page "https://github.com/sigmavirus24/betamax_matchers") + (synopsis "VCR imitation for python-requests") + (description "@code{betamax-matchers} provides a set of Matchers for +Betamax.") + (license license:asl2.0))) + +(define-public python2-betamax-matchers + (package-with-python2 python-betamax-matchers)) + (define-public python-s3transfer (package (name "python-s3transfer") From 72fe8956f5add37271590d412b3ad8104472d884 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 8 Sep 2017 19:26:43 -0400 Subject: [PATCH 077/333] gnu: certbot, python-acme: Update to 0.18.1. * gnu/packages/tls.scm (certbot, python-acme, python2-acme): Update to 0.18.1. --- 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 52554a2922..995c4e303c 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -486,13 +486,13 @@ netcat implementation that supports TLS.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.18.0") + (version "0.18.1") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "0f49v661nw8sccaqc85q64vi8alnzb88y3nimn1123gq128hq6rh")))) + "0ry6vhfkhds28sg232hngwfnkqihsxv9r8w92c6nz45r7w56qk0y")))) (build-system python-build-system) (arguments `(#:phases @@ -543,7 +543,7 @@ netcat implementation that supports TLS.") (uri (pypi-uri name version)) (sha256 (base32 - "0pqryjjc8ywg4z9akfk6iv6sxr32lks8pd0h4vvw3w2mlkbxy2zp")))) + "0k3bqfkjxyg0qivs4a6iz6gyqx8li4hgn8m268r72lxgq46ay2mf")))) (build-system python-build-system) (arguments `(,@(substitute-keyword-arguments (package-arguments python-acme) From 73a2ef3697d52e12cd334b3fa83fb0e98030cb56 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 8 Sep 2017 19:35:32 -0400 Subject: [PATCH 078/333] gnu: tcpdump: Remove alternate source URL. * gnu/packages/admin.scm (tcpdump)[source]: Remove alternate URL. --- gnu/packages/admin.scm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index c67491c534..e6d5afe765 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -664,14 +664,8 @@ network statistics collection, security monitoring, network debugging, etc.") (version "4.9.2") (source (origin (method url-fetch) - (uri (list (string-append "http://www.tcpdump.org/release/tcpdump-" - version ".tar.gz") - ;; The tarball is not yet distributed from tcpdump.org, - ;; so we fetch it from Arch. For more information see - ;; . - (string-append "https://sources.archlinux.org/other/" - "packages/tcpdump/tcpdump-" version - ".tar.gz"))) + (uri (string-append "http://www.tcpdump.org/release/tcpdump-" + version ".tar.gz")) (sha256 (base32 "0ygy0layzqaj838r5xd613iraz09wlfgpyh7pc6cwclql8v3b2vr")))) From 45bed1d3eaac6d4fe077f7a2427f2d9d7125ee6a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 7 Sep 2017 18:14:04 -0400 Subject: [PATCH 079/333] gnu: python2-acme: Remove package. This package has not built successfully for a long time. Since it appears to have no users, we remove it for now. * gnu/packages/tls.scm (python2-acme): Remove variable. --- gnu/packages/tls.scm | 3 --- 1 file changed, 3 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 995c4e303c..4b3d766b05 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -529,9 +529,6 @@ netcat implementation that supports TLS.") (description "ACME protocol implementation in Python") (license license:asl2.0))) -(define-public python2-acme - (package-with-python2 python-acme)) - (define-public certbot (package (name "certbot") From d02aabaf1b57eda3ef052c70df1322f915e7c736 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 9 Sep 2017 22:56:54 +0200 Subject: [PATCH 080/333] gnu: Add foomatic-filters. * gnu/packages/cups.scm (foomatic-filters): New procedure. --- gnu/packages/cups.scm | 58 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index aba8ce7eb1..d9e92b6a8c 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus -;;; Copyright © 2015, 2016 Ludovic Courtès +;;; Copyright © 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2017 Leo Famulari @@ -27,10 +27,14 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages compression) + #:use-module (gnu packages groff) #:use-module (gnu packages libusb) - #:use-module (gnu packages autotools) + #:use-module (gnu packages perl) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages scanner) #:use-module (gnu packages image) @@ -445,3 +449,53 @@ device-specific programs to convert and print many types of files.") ;; TODO: Make hp-setup find python-dbus. ("python-dbus" ,python-dbus))) (native-inputs `(("pkg-config" ,pkg-config))))) + +(define-public foomatic-filters + (package + (name "foomatic-filters") + (version "4.0.12") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.openprinting.org/download/foomatic/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "17w26r15094j4fqifa7f7i7jad4gsy9zdlq69kffrykcw31qx3q8")) + (patches + (search-patches "foomatic-filters-CVE-2015-8327.patch" + "foomatic-filters-CVE-2015-8560.patch")))) + (build-system gnu-build-system) + (home-page + "https://wiki.linuxfoundation.org/openprinting/database/foomatic") + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config))) + (inputs + `(("dbus" ,dbus) + ("a2ps" ,a2ps))) + (arguments + '( ;; Specify the installation directories. + #:configure-flags (list (string-append "ac_cv_path_CUPS_BACKENDS=" + (assoc-ref %outputs "out") + "/lib/cups/backend") + (string-append "ac_cv_path_CUPS_FILTERS=" + (assoc-ref %outputs "out") + "/lib/cups/filter") + (string-append "ac_cv_path_PPR_INTERFACES=" + (assoc-ref %outputs "out") + "/lib/ppr/interfaces") + (string-append "ac_cv_path_PPR_LIB=" + (assoc-ref %outputs "out") + "/lib/ppr/lib") + + ;; For some reason these are misdiagnosed. + "ac_cv_func_malloc_0_nonnull=yes" + "ac_cv_func_realloc_0_nonnull=yes") + #:test-target "tests")) + (synopsis "Convert PostScript to the printer's native format") + (description + "This package contains filter scripts used by the printer spoolers to +convert the incoming PostScript data into the printer's native format using a +printer/driver specific, but spooler-independent PPD file.") + (license license:gpl2+))) From 5db0a1cd5ac06259a3d0b220cc47cf7229ed0d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 9 Sep 2017 22:58:06 +0200 Subject: [PATCH 081/333] gnu: Add foo2zjs. * gnu/packages/cups.scm (foo2zjs): New variable. --- gnu/packages/cups.scm | 66 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index d9e92b6a8c..cef586f763 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -499,3 +499,69 @@ device-specific programs to convert and print many types of files.") convert the incoming PostScript data into the printer's native format using a printer/driver specific, but spooler-independent PPD file.") (license license:gpl2+))) + +(define-public foo2zjs + (package + ;; The tarball is called "foo2zjs", but the web page talks about + ;; "foo2xqx". Go figure! + (name "foo2zjs") + (version "201709") + (source (origin + (method url-fetch) + ;; XXX: This is an unversioned URL! + (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz") + (sha256 + (base32 + "0amjj3jr6s6h7crzxyx11v31sj0blz7k5c2vycz4gn8cxlmk3c7w")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* (find-files "." "^Makefile$") + ;; Set the installation directory. + (("^PREFIX[[:blank:]]*=.*$") + (string-append "PREFIX = " + (assoc-ref outputs "out") + "\n")) + (("^UDEVBIN[[:blank:]]*=.*$") + "UDEVBIN = $(PREFIX)/bin\n") + ;; Don't try to chown/chgrp the installed files. + (("-oroot") + "") + (("-glp") + "") + ;; Placate the dependency checks. + (("/usr/include/stdio.h") + "/etc/passwd") + (("/usr/") + "$(PREFIX)/") + ;; Ensure fixed timestamps in man pages. + (("^MODTIME[[:blank:]]*=.*$") + "MODTIME = echo Thu Jan 01 01:00:00 1970\n")) + #t)) + (add-after 'install 'remove-pdf + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove 'manual.pdf' which is (1) useless (it's a + ;; concatenation of man pages), and (2) not + ;; bit-reproducible due to . + (let ((out (assoc-ref outputs "out"))) + (for-each delete-file + (find-files out "^manual\\.pdf$")) + #t)))) + #:parallel-build? #f ;broken makefile + #:tests? #f ;no tests + #:make-flags '("CC=gcc"))) + (inputs + `(("ghostscript" ,ghostscript) + ("foomatic-filters" ,foomatic-filters))) ;for 'foomatic-rip' + (native-inputs + `(("bc" ,bc) + ("groff" ,groff))) + (home-page "http://foo2xqx.rkkda.com/") + (synopsis "Printer driver for XQX stream protocol") + (description + "This package provides a printer driver notably for the ZJS and XQX +protocols, which cover printers made by Konica, HP (LaserJet), Oki, Samsung, +and more. See @file{README} for details.") + (license license:gpl2+))) From 67a37c63118519ccc5c24f3325bad6f29ab21e59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 10 Sep 2017 12:00:25 +0200 Subject: [PATCH 082/333] gnu: foomatic-filters: Add missing patches. This is a followup to commit d02aabaf1b57eda3ef052c70df1322f915e7c736. * gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch: New file. * gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch: New file. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 2 ++ .../patches/foomatic-filters-CVE-2015-8327.patch | 14 ++++++++++++++ .../patches/foomatic-filters-CVE-2015-8560.patch | 13 +++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch create mode 100644 gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1ac9d5efea..8ffa13b3ee 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -610,6 +610,8 @@ dist_patch_DATA = \ %D%/packages/patches/fltk-shared-lib-defines.patch \ %D%/packages/patches/fltk-xfont-on-demand.patch \ %D%/packages/patches/fontforge-svg-modtime.patch \ + %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ + %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \ %D%/packages/patches/freeimage-CVE-2016-5684.patch \ %D%/packages/patches/freeimage-fix-build-with-gcc-5.patch \ diff --git a/gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch b/gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch new file mode 100644 index 0000000000..d9f0cc1212 --- /dev/null +++ b/gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch @@ -0,0 +1,14 @@ +Fix for . + +--- a/util.c 2014-06-20 19:26:18 +0000 ++++ b/util.c 2015-10-30 15:45:03 +0000 +@@ -31,7 +31,7 @@ + #include + + +-const char* shellescapes = "|<>&!$\'\"#*?()[]{}"; ++const char* shellescapes = "|<>&!$\'\"`#*?()[]{}"; + + const char * temp_dir() + { + diff --git a/gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch b/gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch new file mode 100644 index 0000000000..d3c3024220 --- /dev/null +++ b/gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch @@ -0,0 +1,13 @@ +Fix for . + +--- a/util.c 2015-10-30 15:45:03 +0000 ++++ b/util.c 2015-12-12 23:27:21 +0000 +@@ -31,7 +31,7 @@ + #include + + +-const char* shellescapes = "|<>&!$\'\"`#*?()[]{}"; ++const char* shellescapes = "|;<>&!$\'\"`#*?()[]{}"; + + const char * temp_dir() + { From bc64676c466de6732b72c44b0eb226bda674076f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 10 Sep 2017 01:27:16 +0200 Subject: [PATCH 083/333] gnu: btrfs-progs: Update to 4.13. * gnu/packages/linux.scm (btrfs-progs): Update 4.13. [native-inputs]: Add acl. --- gnu/packages/linux.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e01f298796..f4f58cd9b8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3146,7 +3146,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.12") + (version "4.13") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3154,7 +3154,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1kif8xw2dbyc70ygkp0wyq4x96p1mkwdv4430f99qllx9b410xwi")))) + "17m67jm29phfvkmd72lxb1z9nymn9a9pqnja8zfb1mvflsqwbz3m")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" @@ -3185,6 +3185,7 @@ and copy/paste text in the console and in xterm.") ("libxml2" ,libxml2) ("docbook-xsl" ,docbook-xsl) ;; For tests. + ("acl" ,acl) ("which" ,which))) (home-page "https://btrfs.wiki.kernel.org/") (synopsis "Create and manage btrfs copy-on-write file systems") From 575065bd1c3fbe80ee725bbc483aecfc6e870a1c Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 10 Sep 2017 11:42:51 +0100 Subject: [PATCH 084/333] vm: Add comment about deduplication in make-iso9660-image. * gnu/build/vm.scm (make-iso9660-image): Add comment about the use of #:deduplicate #f when calling register-closure. --- gnu/build/vm.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index f6228b40bb..466e3daf44 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -385,6 +385,7 @@ GRUB configuration and OS-DRV as the stuff in it." (register-closure "/tmp/root" (string-append "/xchg/" closure) + ;; XXX: Using deduplication causes cross device link errors. #:deduplicate? #f)) closures)) From fb1cba687e2f4d8d19660085941fc9d56e77b4c7 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 5 Sep 2017 14:04:14 +0300 Subject: [PATCH 085/333] doc: Replace server-list with server-blocks. * doc/guix.texi (Web Services): Replace 'server-list' with 'server-blocks'. Signed-off-by: Christopher Baines --- doc/guix.texi | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 6d2bf9ea30..be11520b3a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14037,7 +14037,7 @@ A simple example configuration is given below. @example (service nginx-service-type (nginx-configuration - (server-list + (server-blocks (list (nginx-server-configuration (server-name '("www.example.com")) (root "/srv/http/www.example.com") @@ -14085,7 +14085,7 @@ The directory to which NGinx will write log files. The directory in which NGinx will create a pid file, and write temporary files. -@item @code{server-list} (default: @code{'()}) +@item @code{server-blocks} (default: @code{'()}) A list of @dfn{server blocks} to create in the generated configuration file, the elements should be of type @code{}. @@ -14096,7 +14096,7 @@ HTTPS. @example (service nginx-service-type (nginx-configuration - (server-list + (server-blocks (list (nginx-server-configuration (server-name '("www.example.com")) (root "/srv/http/www.example.com") @@ -14121,7 +14121,7 @@ requests with two servers. (service nginx-service-type (nginx-configuration - (server-list + (server-blocks (list (nginx-server-configuration (server-name '("www.example.com")) (root "/srv/http/www.example.com") @@ -14143,9 +14143,9 @@ requests with two servers. @item @code{file} (default: @code{#f}) If a configuration @var{file} is provided, this will be used, rather than generating a configuration file from the provided @code{log-directory}, -@code{run-directory}, @code{server-list} and @code{upstream-list}. For -proper operation, these arguments should match what is in @var{file} to -ensure that the directories are created when the service is activated. +@code{run-directory}, @code{server-blocks} and @code{upstream-list}. For +proper operation, these arguments should match what is in @var{file} to ensure +that the directories are created when the service is activated. This can be useful if you have an existing configuration file, or it's not possible to do what is required through the other parts of the From c2a59a92bb18360f26d251c8b1b121b40b1bc806 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 10 Sep 2017 11:48:34 +0100 Subject: [PATCH 086/333] doc: Replace upstream-list with upstream-blocks. This fixes the documentation to match the implementation. * doc/guix.texi (Web Services): Replace 'upstream-list' with 'upstream-blocks'. --- doc/guix.texi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index be11520b3a..0399c39814 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14105,12 +14105,12 @@ HTTPS. (ssl-certificate-key #f)))))) @end example -@item @code{upstream-list} (default: @code{'()}) +@item @code{upstream-blocks} (default: @code{'()}) A list of @dfn{upstream blocks} to create in the generated configuration file, the elements should be of type @code{}. -Configuring upstreams through the @code{upstream-list} can be useful +Configuring upstreams through the @code{upstream-blocks} can be useful when combined with @code{locations} in the @code{} records. The following example creates a server configuration with one location configuration, that @@ -14133,7 +14133,7 @@ requests with two servers. (nginx-location-configuration (uri "/path1") (body '("proxy_pass http://server-proxy;")))))))) - (upstream-list + (upstream-blocks (list (nginx-upstream-configuration (name "server-proxy") (servers (list "server1.example.com" @@ -14143,7 +14143,7 @@ requests with two servers. @item @code{file} (default: @code{#f}) If a configuration @var{file} is provided, this will be used, rather than generating a configuration file from the provided @code{log-directory}, -@code{run-directory}, @code{server-blocks} and @code{upstream-list}. For +@code{run-directory}, @code{server-blocks} and @code{upstream-blocks}. For proper operation, these arguments should match what is in @var{file} to ensure that the directories are created when the service is activated. From 2cc752c0b0ab801509574d601c1024b73aed0dab Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sat, 9 Sep 2017 09:41:28 -0400 Subject: [PATCH 087/333] gnu: graphicsmagick: Fix CVE-2017-14042. * gnu/packages/imagemagick.scm (graphicsmagick)[source]: Add patch. * gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch: New files. * gnu/local.mk (dist_patch_DATA): Register them. --- gnu/local.mk | 1 + gnu/packages/imagemagick.scm | 3 +- .../graphicsmagick-CVE-2017-14042.patch | 80 +++++++++++++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8ffa13b3ee..64b1b1c14d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -680,6 +680,7 @@ dist_patch_DATA = \ %D%/packages/patches/graphicsmagick-CVE-2017-12937.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-13775.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch \ + %D%/packages/patches/graphicsmagick-CVE-2017-14042.patch \ %D%/packages/patches/graphite2-ffloat-store.patch \ %D%/packages/patches/grep-gnulib-lock.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 57ac7fda97..632be70349 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -182,7 +182,8 @@ script.") "graphicsmagick-CVE-2017-12936.patch" "graphicsmagick-CVE-2017-12937.patch" "graphicsmagick-CVE-2017-13775.patch" - "graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch")))) + "graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch" + "graphicsmagick-CVE-2017-14042.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch new file mode 100644 index 0000000000..46f6b032c7 --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch @@ -0,0 +1,80 @@ +http://openwall.com/lists/oss-security/2017/08/28/5 +http://hg.code.sf.net/p/graphicsmagick/code/rev/3bbf7a13643d + +some changes were made to make the patch apply + +# HG changeset patch +# User Bob Friesenhahn +# Date 1503268616 18000 +# Node ID 3bbf7a13643df3be76b0e19088a6cc632eea2072 +# Parent 83a5b946180835f260bcb91e3d06327a8e2577e3 +PNM: For binary formats, verify sufficient backing file data before memory request. + +diff -r 83a5b9461808 -r 3bbf7a13643d coders/pnm.c +--- a/coders/pnm.c Sun Aug 20 17:31:35 2017 -0500 ++++ b/coders/pnm.c Sun Aug 20 17:36:56 2017 -0500 +@@ -569,7 +569,7 @@ + (void) LogMagickEvent(CoderEvent,GetMagickModule(),"Colors: %u", + image->colors); + } +- number_pixels=image->columns*image->rows; ++ number_pixels=MagickArraySize(image->columns,image->rows); + if (number_pixels == 0) + ThrowReaderException(CorruptImageError,NegativeOrZeroImageSize,image); + if (image->storage_class == PseudoClass) +@@ -858,14 +858,14 @@ + if (1 == bits_per_sample) + { + /* PBM */ +- bytes_per_row=((image->columns+7) >> 3); ++ bytes_per_row=((image->columns+7U) >> 3); + import_options.grayscale_miniswhite=MagickTrue; + quantum_type=GrayQuantum; + } + else + { + /* PGM & XV_332 */ +- bytes_per_row=((bits_per_sample+7)/8)*image->columns; ++ bytes_per_row=MagickArraySize(((bits_per_sample+7U)/8U),image->columns); + if (XV_332_Format == format) + { + quantum_type=IndexQuantum; +@@ -878,7 +878,8 @@ + } + else + { +- bytes_per_row=(((bits_per_sample+7)/8)*samples_per_pixel)*image->columns; ++ bytes_per_row=MagickArraySize((((bits_per_sample+7)/8)*samples_per_pixel), ++ image->columns); + if (3 == samples_per_pixel) + { + /* PPM */ +@@ -915,6 +916,28 @@ + is_monochrome=MagickFalse; + } + } ++ ++ /* Validate file size before allocating memory */ ++ if (BlobIsSeekable(image)) ++ { ++ const magick_off_t file_size = GetBlobSize(image); ++ const magick_off_t current_offset = TellBlob(image); ++ if ((file_size > 0) && ++ (current_offset > 0) && ++ (file_size > current_offset)) ++ { ++ const magick_off_t remaining = file_size-current_offset; ++ const magick_off_t needed = (magick_off_t) image->rows * ++ (magick_off_t) bytes_per_row; ++ if ((remaining < (magick_off_t) bytes_per_row) || ++ (remaining < needed)) ++ { ++ ThrowException(exception,CorruptImageError,UnexpectedEndOfFile, ++ image->filename); ++ break; ++ } ++ } ++ } + + scanline_set=AllocateThreadViewDataArray(image,exception,bytes_per_row,1); + if (scanline_set == (ThreadViewDataSet *) NULL) From 81808194ac78cd77fcb42e9b8e20117ff80834ec Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 22 Aug 2017 21:01:54 +0100 Subject: [PATCH 088/333] gnu: Add emacs-rspec. * gnu/packages/emacs.scm (emacs-rspec): New variable. --- gnu/packages/emacs.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index abb99f8fc4..b4c3664c4b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2018,6 +2018,31 @@ tables.") mode-line.") (license license:gpl2+))) +(define-public emacs-rspec + (package + (name "emacs-rspec") + (version "1.11") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/pezra/rspec-mode/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw")))) + (build-system emacs-build-system) + (home-page "https://github.com/pezra/rspec-mode") + (synopsis "Provides a rspec mode for working with RSpec") + (description + "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to +verify the spec associated with the current buffer, or entire project, as well +as moving between the spec files, and coresponding code files. + +Also included are keybindings for spec files and Dired buffers, as well as +snippets for yasnippet.") + (license license:gpl3+))) + (define-public emacs-smart-mode-line (package (name "emacs-smart-mode-line") From 814da59fcc8317b2127dbd19cfd003941e1a118f Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 22 Aug 2017 21:07:11 +0100 Subject: [PATCH 089/333] gnu: Add emacs-wgrep. * gnu/packages/emacs.scm (emacs-wgrep): New variable. --- gnu/packages/emacs.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index b4c3664c4b..34dc5ec658 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3568,6 +3568,27 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (home-page "http://web-mode.org/") (license license:gpl3+))) +(define-public emacs-wgrep + (package + (name "emacs-wgrep") + (version "2.1.10") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/mhayashi1120/Emacs-wgrep/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1")))) + (build-system emacs-build-system) + (home-page "https://github.com/mhayashi1120/Emacs-wgrep") + (synopsis "Edit a grep buffer and apply those changes to the files") + (description + "Emacs wgrep allows you to edit a grep buffer and apply those changes to +the file buffer.") + (license license:gpl3+))) + (define-public emacs-helm (package (name "emacs-helm") From 224bb4b6f9fa7c14fbbaac682ec0b5d1a48c616d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Sep 2017 21:40:17 +0300 Subject: [PATCH 090/333] gnu: graphicsmagick: Fix CVE-2017-14165. * gnu/packages/imagemagick.scm (graphicsmagick)[source]: Add patch. * gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/imagemagick.scm | 3 +- .../graphicsmagick-CVE-2017-14165.patch | 72 +++++++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch diff --git a/gnu/local.mk b/gnu/local.mk index 64b1b1c14d..43eac7717a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -681,6 +681,7 @@ dist_patch_DATA = \ %D%/packages/patches/graphicsmagick-CVE-2017-13775.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-14042.patch \ + %D%/packages/patches/graphicsmagick-CVE-2017-14165.patch \ %D%/packages/patches/graphite2-ffloat-store.patch \ %D%/packages/patches/grep-gnulib-lock.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 632be70349..502dc43acf 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -183,7 +183,8 @@ script.") "graphicsmagick-CVE-2017-12937.patch" "graphicsmagick-CVE-2017-13775.patch" "graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch" - "graphicsmagick-CVE-2017-14042.patch")))) + "graphicsmagick-CVE-2017-14042.patch" + "graphicsmagick-CVE-2017-14165.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch new file mode 100644 index 0000000000..1f55d90d38 --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch @@ -0,0 +1,72 @@ +http://hg.code.sf.net/p/graphicsmagick/code/raw-rev/493da54370aa +http://openwall.com/lists/oss-security/2017/09/06/4 + +some changes were made to make the patch apply + +# HG changeset patch +# User Bob Friesenhahn +# Date 1503257388 18000 +# Node ID 493da54370aa42cb430c52a69eb75db0001a5589 +# Parent f8724674907902b7bc37c04f252fe30fbdd88e6f +SUN: Verify that file header data length, and file length are sufficient for claimed image dimensions. + +diff -r f87246749079 -r 493da54370aa coders/sun.c +--- a/coders/sun.c Sun Aug 20 12:21:03 2017 +0200 ++++ b/coders/sun.c Sun Aug 20 14:29:48 2017 -0500 +@@ -498,6 +498,12 @@ + if (sun_info.depth < 8) + image->depth=sun_info.depth; + ++ if (image_info->ping) ++ { ++ CloseBlob(image); ++ return(image); ++ } ++ + /* + Compute bytes per line and bytes per image for an unencoded + image. +@@ -522,15 +528,37 @@ + if (bytes_per_image > sun_info.length) + ThrowReaderException(CorruptImageError,ImproperImageHeader,image); + +- if (image_info->ping) +- { +- CloseBlob(image); +- return(image); +- } + if (sun_info.type == RT_ENCODED) + sun_data_length=(size_t) sun_info.length; + else + sun_data_length=bytes_per_image; ++ ++ /* ++ Verify that data length claimed by header is supported by file size ++ */ ++ if (sun_info.type == RT_ENCODED) ++ { ++ if (sun_data_length < bytes_per_image/255U) ++ { ++ ThrowReaderException(CorruptImageError,ImproperImageHeader,image); ++ } ++ } ++ if (BlobIsSeekable(image)) ++ { ++ const magick_off_t file_size = GetBlobSize(image); ++ const magick_off_t current_offset = TellBlob(image); ++ if ((file_size > 0) && ++ (current_offset > 0) && ++ (file_size > current_offset)) ++ { ++ const magick_off_t remaining = file_size-current_offset; ++ if (remaining < (magick_off_t) sun_data_length) ++ { ++ ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); ++ } ++ } ++ } ++ + sun_data=MagickAllocateMemory(unsigned char *,sun_data_length); + if (sun_data == (unsigned char *) NULL) + ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image); + From 338b58e0ea880f7cccbe43de21eccbf1440ac6af Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Sep 2017 22:00:35 +0300 Subject: [PATCH 091/333] gnu: openjpeg: Fix CVE-2017-14164. * gnu/packages/image.scm (openjpeg)[source]: Add patch. * gnu/packages/patches/openjpeg-CVE-2017-14164.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/image.scm | 3 +- .../patches/openjpeg-CVE-2017-14164.patch | 89 +++++++++++++++++++ 3 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/openjpeg-CVE-2017-14164.patch diff --git a/gnu/local.mk b/gnu/local.mk index 43eac7717a..c92b93dbd2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -895,6 +895,7 @@ dist_patch_DATA = \ %D%/packages/patches/openjpeg-CVE-2017-14041.patch \ %D%/packages/patches/openjpeg-CVE-2017-14151.patch \ %D%/packages/patches/openjpeg-CVE-2017-14152.patch \ + %D%/packages/patches/openjpeg-CVE-2017-14164.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ %D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openssl-runpath.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 3bb8de15c4..d45f08d9df 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -524,7 +524,8 @@ work.") "openjpeg-CVE-2017-14040.patch" "openjpeg-CVE-2017-14041.patch" "openjpeg-CVE-2017-14151.patch" - "openjpeg-CVE-2017-14152.patch")))) + "openjpeg-CVE-2017-14152.patch" + "openjpeg-CVE-2017-14164.patch")))) (build-system cmake-build-system) (arguments ;; Trying to run `$ make check' results in a no rule fault. diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14164.patch b/gnu/packages/patches/openjpeg-CVE-2017-14164.patch new file mode 100644 index 0000000000..2bfc5a6a85 --- /dev/null +++ b/gnu/packages/patches/openjpeg-CVE-2017-14164.patch @@ -0,0 +1,89 @@ +https://github.com/uclouvain/openjpeg/commit/dcac91b8c72f743bda7dbfa9032356bc8110098a.patch +http://openwall.com/lists/oss-security/2017/09/06/3 + +From dcac91b8c72f743bda7dbfa9032356bc8110098a Mon Sep 17 00:00:00 2001 +From: Even Rouault +Date: Wed, 16 Aug 2017 17:09:10 +0200 +Subject: [PATCH] opj_j2k_write_sot(): fix potential write heap buffer overflow + (#991) + +--- + src/lib/openjp2/j2k.c | 25 ++++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c +index 54b490a8c..16915452e 100644 +--- a/src/lib/openjp2/j2k.c ++++ b/src/lib/openjp2/j2k.c +@@ -832,13 +832,15 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k, + * Writes the SOT marker (Start of tile-part) + * + * @param p_j2k J2K codec. +- * @param p_data FIXME DOC +- * @param p_data_written FIXME DOC ++ * @param p_data Output buffer ++ * @param p_total_data_size Output buffer size ++ * @param p_data_written Number of bytes written into stream + * @param p_stream the stream to write data to. + * @param p_manager the user event manager. + */ + static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, + OPJ_BYTE * p_data, ++ OPJ_UINT32 p_total_data_size, + OPJ_UINT32 * p_data_written, + const opj_stream_private_t *p_stream, + opj_event_mgr_t * p_manager); +@@ -4201,6 +4203,7 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k, + + static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, + OPJ_BYTE * p_data, ++ OPJ_UINT32 p_total_data_size, + OPJ_UINT32 * p_data_written, + const opj_stream_private_t *p_stream, + opj_event_mgr_t * p_manager +@@ -4214,6 +4217,12 @@ static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, + OPJ_UNUSED(p_stream); + OPJ_UNUSED(p_manager); + ++ if (p_total_data_size < 12) { ++ opj_event_msg(p_manager, EVT_ERROR, ++ "Not enough bytes in output buffer to write SOT marker\n"); ++ return OPJ_FALSE; ++ } ++ + opj_write_bytes(p_data, J2K_MS_SOT, + 2); /* SOT */ + p_data += 2; +@@ -11480,7 +11489,8 @@ static OPJ_BOOL opj_j2k_write_first_tile_part(opj_j2k_t *p_j2k, + + l_current_nb_bytes_written = 0; + l_begin_data = p_data; +- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream, ++ if (! opj_j2k_write_sot(p_j2k, p_data, p_total_data_size, ++ &l_current_nb_bytes_written, p_stream, + p_manager)) { + return OPJ_FALSE; + } +@@ -11572,7 +11582,10 @@ static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k, + l_part_tile_size = 0; + l_begin_data = p_data; + +- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream, ++ if (! opj_j2k_write_sot(p_j2k, p_data, ++ p_total_data_size, ++ &l_current_nb_bytes_written, ++ p_stream, + p_manager)) { + return OPJ_FALSE; + } +@@ -11615,7 +11628,9 @@ static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k, + l_part_tile_size = 0; + l_begin_data = p_data; + +- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream, ++ if (! opj_j2k_write_sot(p_j2k, p_data, ++ p_total_data_size, ++ &l_current_nb_bytes_written, p_stream, + p_manager)) { + return OPJ_FALSE; + } From 4aafce22ab74007c69aecc474816d83e64d22646 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sat, 2 Sep 2017 10:54:14 +0200 Subject: [PATCH 092/333] gnu: Add emacs-bash-completion. * gnu/packages/emacs.scm (emacs-bash-completion): New variable. --- gnu/packages/emacs.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 34dc5ec658..2277edcece 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -59,6 +59,7 @@ #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages audio) + #:use-module (gnu packages bash) #:use-module (gnu packages code) #:use-module (gnu packages guile) #:use-module (gnu packages gtk) @@ -5624,3 +5625,35 @@ It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp proficiency is an advantage, since you can transform your numeric range with an elisp expression.") (license license:gpl3+))) + +(define-public emacs-bash-completion + (package + (name "emacs-bash-completion") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/szermatt/emacs-bash-completion/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj")))) + (inputs `(("bash" ,bash))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (emacs-substitute-variables "bash-completion.el" + ("bash-completion-prog" (string-append bash "/bin/bash")))) + #t))))) + (home-page "https://github.com/szermatt/emacs-bash-completion") + (synopsis "BASH completion for the shell buffer") + (description + "@code{bash-completion} defines dynamic completion hooks for shell-mode +and shell-command prompts that are based on bash completion.") + (license license:gpl2+))) From 903ae630a0ae0df9fabd5ebab7d44577d6e7d0fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 10 Sep 2017 21:40:46 +0200 Subject: [PATCH 093/333] install: Add 'passwd' to $PATH. Suggested by Jan Nieuwenhuizen. * gnu/system/install.scm (installation-os)[setuid-programs]: Add 'passwd'. --- gnu/system/install.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 7f6ffe9582..5c0aaed18a 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -337,9 +337,9 @@ Use Alt-F2 for documentation. (issue %issue) (services %installation-services) - ;; We don't need setuid programs so pass the empty list so we don't pull - ;; additional programs here. - (setuid-programs '()) + ;; We don't need setuid programs, except for 'passwd', which can be handy + ;; if one is to allow remote SSH login to the machine being installed. + (setuid-programs (list (file-append shadow "/bin/passwd"))) (pam-services ;; Explicitly allow for empty passwords. From 1e8d398abca66bbe85caad6d338ac80a104701d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 10 Sep 2017 21:45:12 +0200 Subject: [PATCH 094/333] install: Add OpenSSH to the global profile. Suggested by Jan Nieuwenhuizen. * gnu/system/install.scm (installation-os)[packages]: Add OPENSSH. --- gnu/system/install.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 5c0aaed18a..4aecfaca2c 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -31,6 +31,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages bootloaders) #:use-module (gnu packages linux) + #:use-module (gnu packages ssh) #:use-module (gnu packages cryptsetup) #:use-module (gnu packages package-management) #:use-module (gnu packages disk) @@ -352,6 +353,7 @@ Use Alt-F2 for documentation. mdadm dosfstools ;mkfs.fat, for the UEFI boot partition btrfs-progs + openssh ;we already have sshd, having ssh/scp can help wireless-tools iw wpa-supplicant-minimal iproute ;; XXX: We used to have GNU fdisk here, but as of version ;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable From 4561498e1f207e83ecc4a9fe1a08935c2807160f Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 7 Sep 2017 09:36:28 -0400 Subject: [PATCH 095/333] gnu: Fix build failures caused by commit d10092b849153dc27cfed0a9601fde6c7bdec918. * gnu/packages/bioinformatics.scm (seek)[arguments]: Restore previous phase order. * gnu/packages/ci.scm (cuirass)[arguments]: Add patch-/bin/sh phase. --- gnu/packages/bioinformatics.scm | 2 +- gnu/packages/ci.scm | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index bf8eb2e697..8a9abf7737 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4486,7 +4486,7 @@ distribution, coverage uniformity, strand specificity, etc.") "Data2DB" "PCL2Bin"))) (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (add-before 'configure 'bootstrap (lambda _ (zero? (system* "bash" "gen_auto")))) (add-after 'build 'build-additional-tools diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index c449754be8..f3259bfcda 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -216,7 +216,12 @@ their dependencies.") (substitute* "Makefile.am" (("tests/repo.scm \\\\") "\\")) #t)) - (add-after 'disable-repo-tests 'bootstrap + (add-after 'disable-repo-tests 'patch-/bin/sh + (lambda _ + (substitute* "build-aux/git-version-gen" + (("#!/bin/sh") (string-append "#!" (which "sh")))) + #t)) + (add-after 'patch-/bin/sh 'bootstrap (lambda _ (zero? (system* "sh" "bootstrap")))) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) From 4e4de30a4b658e6c0a4a2454577af42fd4150f78 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 10 Sep 2017 20:24:24 +0200 Subject: [PATCH 096/333] gnu: youtube-dl: Update to 2017.09.10. * gnu/packages/video.scm (youtube-dl): Update to 2017.09.10. --- 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 ab755347d3..a21f71bcf6 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1111,7 +1111,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.09.02") + (version "2017.09.10") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1119,7 +1119,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "1sfra8rfb7hkbgmw2n2s42fpkh0y7j9lyars7qda3rj34ai7r6k9")))) + "1kxi378rp2ds5745qak2ilgnknb3ns5lg12zkin0mqnvbsql31bd")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion From 7ca001c33d0b0881a1d49910dc091b8cee5bc412 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 10 Sep 2017 22:11:06 +0200 Subject: [PATCH 097/333] gnu: cloc: Update to 1.74. * gnu/packages/code.scm (cloc): Update to 1.74. [source]: Update source URL. --- gnu/packages/code.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index fa9e19db7d..e1ef77361d 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -193,16 +193,16 @@ COCOMO model or user-provided parameters.") (define-public cloc (package (name "cloc") - (version "1.72") + (version "1.74") (source (origin (method url-fetch) (uri (string-append - "https://github.com/AlDanial/cloc/releases/download/v" version + "https://github.com/AlDanial/cloc/releases/download/" version "/cloc-" version ".tar.gz")) (sha256 (base32 - "1gl7bxb4bi6pms0zzl133pzpfypvz57hk2cw7yf6rvs8b48kilnz")))) + "0rq5xfiln1wlv3yr9mg18ax4gskbss786iqaf0v45iv6awyl5b2m")))) (build-system gnu-build-system) (inputs `(("coreutils" ,coreutils) From e0f4966448bae564b2084298de3a9232660429d3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 10 Sep 2017 22:12:14 +0200 Subject: [PATCH 098/333] gnu: cloc: Fix typo in description. * gnu/packages/code.scm (cloc)[description]: Fix typo. --- gnu/packages/code.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index e1ef77361d..6e04739f62 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -241,7 +241,7 @@ of source code in many programming languages. Given two versions of a code base, cloc can compute differences in blank, comment, and source lines. cloc contains code from David Wheeler's SLOCCount. Compared to SLOCCount, -cloc can handle a greater variety of programming langauges.") +cloc can handle a greater variety of programming languages.") (license license:gpl2+))) (define-public the-silver-searcher From da40501ba511958f2972ec30d9353e1f1d68dfd7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 11 Sep 2017 00:36:21 +0200 Subject: [PATCH 099/333] gnu: libgnome-games-support: Update to 1.2.3. * gnu/packages/gnome.scm (libgnome-games-support): Update to 1.2.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 113c8e5a2f..81d80e64b5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3399,7 +3399,7 @@ queries upon that data.") (define-public libgnome-games-support (package (name "libgnome-games-support") - (version "1.2.2") + (version "1.2.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3407,7 +3407,7 @@ queries upon that data.") name "-" version ".tar.xz")) (sha256 (base32 - "04qbgcgmc01sinhbqdljiny8q868l01nkdawj8wrnqnd1i8czvsg")))) + "1vwad7kqy7yd6wqyr71nq0blh7m53r3lz6ya16dmh942kd0w48v1")))) (build-system gnu-build-system) (arguments '(#:phases From 55a9f040523007f97a5fb72696cf7712c7d799ca Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 11 Sep 2017 00:37:40 +0200 Subject: [PATCH 100/333] gnu: gnome-klotski: Update to 3.22.2. * gnu/packages/gnome.scm (gnome-klotski): Update to 3.22.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 81d80e64b5..19a890a2b3 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3435,7 +3435,7 @@ GNOME Games, but it may be used by others.") (define-public gnome-klotski (package (name "gnome-klotski") - (version "3.22.1") + (version "3.22.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3443,7 +3443,7 @@ GNOME Games, but it may be used by others.") name "-" version ".tar.xz")) (sha256 (base32 - "04ragvrz29sydi2kf1zk2aimi3b3hn34jrndfd2lx6h8l45anq3q")))) + "16hd6yk01rhb4pj8m01fyn72wykf41d72gsms81q0n4zm5bm1a4h")))) (build-system glib-or-gtk-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) From c1b815a5b8b0c47f05238c03680c1b9d687a9825 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 11 Sep 2017 00:52:19 +0200 Subject: [PATCH 101/333] gnu: gnome-sudoku: Update to 3.26.0. * gnu/packages/gnome.scm (gnome-sudoku): Update to 3.26.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 19a890a2b3..84ddf333d5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2647,7 +2647,7 @@ floating in an ocean using only your brain and a little bit of luck.") (define-public gnome-sudoku (package (name "gnome-sudoku") - (version "3.24.0") + (version "3.26.0") (source (origin (method url-fetch) @@ -2656,7 +2656,7 @@ floating in an ocean using only your brain and a little bit of luck.") name "-" version ".tar.xz")) (sha256 (base32 - "1mw5ykk7wr0r9770jj5270f07rjws0pmpjs0b1fywj4li13r98h4")))) + "186k2axryn3ic8blc9ddnvyrqqf88khg2hlisfa1n4wp784wfx47")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) From cfd34f43164b68ddc91cc051f72f2d3fe5a0ab40 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sat, 22 Jul 2017 14:23:18 +0200 Subject: [PATCH 102/333] gnu: python-apsw: Build with all extensions. * gnu/packages/python.scm (python-apsw)[phases]: Replace build phase; add flag to build all extensions. Add build-test-helper to allow testing of extensions. --- gnu/packages/python.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d3df1ac5c5..d7156bf518 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6237,6 +6237,16 @@ implementation of D-Bus.") (arguments `(#:phases (modify-phases %standard-phases + (replace 'build + (lambda _ + (zero? + (system* "python" "setup.py" "build" "--enable-all-extensions")))) + (add-after 'build 'build-test-helper + (lambda _ + (zero? + (system + (string-append "gcc -fPIC -shared -o ./testextension.sqlext " + "-I. -Isqlite3 src/testextension.c") )))) (delete 'check) (add-after 'install 'check (lambda* (#:key inputs outputs #:allow-other-keys) From 3abc12d6d2cccf69499ddbac6678d6c9f4e8cec6 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 11 Sep 2017 00:41:24 -0400 Subject: [PATCH 103/333] gnu: linux-libre@4.9: Update to 4.9.49. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.49. --- 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 f4f58cd9b8..e2157c1b76 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -377,8 +377,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.48" - "0xm7fr4z3k8cxdybk4q0n7iv5c44y7a8zsqvcmn9wznymq37663r" + (make-linux-libre "4.9.49" + "07k3zn6kqbbyrjmknwvx5d4pnblz9s8sarxym5lgjm8abpvjp347" %intel-compatible-systems #:configuration-file kernel-config)) From 4b4869ce976002a5dc4520aeeeca095113a4d2d5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 11 Sep 2017 00:42:09 -0400 Subject: [PATCH 104/333] gnu: linux-libre: Update to 4.13.1. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.13.1. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e2157c1b76..22f22c036c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -367,8 +367,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.13") -(define %linux-libre-hash "07mxcya7ml1v34pbg4mjh1sq80r3b4dsxbcs41fm50jnhq7p1w4v") +(define %linux-libre-version "4.13.1") +(define %linux-libre-hash "1asvxkfh85842816wd3yjw7g1pyhjj69lh4ni4ijjpwlicrsws67") (define-public linux-libre (make-linux-libre %linux-libre-version From e5f3d1183c430a7b0a21b1adfe1662cd7e9de186 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 11 Sep 2017 10:20:11 +0300 Subject: [PATCH 105/333] gnu: libffcall: Update to 2.0. * gnu/packages/libffcall.scm (libffcall): Update to 2.0. --- gnu/packages/libffcall.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/libffcall.scm b/gnu/packages/libffcall.scm index a8b4135caf..84fd1a833f 100644 --- a/gnu/packages/libffcall.scm +++ b/gnu/packages/libffcall.scm @@ -27,7 +27,7 @@ (define-public libffcall (package (name "libffcall") - (version "1.13") + (version "2.0") (source (origin (method url-fetch) @@ -35,7 +35,7 @@ "mirror://gnu/libffcall/libffcall-" version ".tar.gz")) (sha256 (base32 - "1rxwkfr0p7vdv6q6x8nmn13611nsq0lnk9cspqdpzxdvgmqcw1qp")))) + "0v0rh3vawb8z5q40fs3kr2f9zp06n2fq4rr2ww4562nr96sd5aj1")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f)) (synopsis "Foreign function calls from interpreters") From 8514662b2028a24d2c378c78db9010fe3d52f3e3 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sat, 9 Sep 2017 20:47:34 +0300 Subject: [PATCH 106/333] gnu: Add monero. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (monero): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/finance.scm | 108 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 6d6844fa75..dc79c4c011 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Carlo Zancanaro +;;; Copyright © 2017 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,11 +30,16 @@ #:use-module (guix build-system python) #:use-module (gnu packages base) #:use-module (gnu packages boost) + #:use-module (gnu packages check) #:use-module (gnu packages databases) + #:use-module (gnu packages documentation) + #:use-module (gnu packages dns) #:use-module (gnu packages emacs) + #:use-module (gnu packages graphviz) #:use-module (gnu packages groff) #:use-module (gnu packages libedit) #:use-module (gnu packages libevent) + #:use-module (gnu packages libunwind) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pkg-config) @@ -44,6 +50,8 @@ #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages upnp) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) #:use-module (gnu packages gnuzilla)) (define-public bitcoin-core @@ -292,3 +300,103 @@ protocol. It supports Simple Payment Verification (SPV) and deterministic key generation from a seed. Your secret keys are encrypted and are never sent to other machines/servers. Electrum does not download the Bitcoin blockchain.") (license license:expat))) + +(define-public monero + ;; This package bundles easylogging++ and lmdb. + ;; The bundled easylogging++ is modified, and the changes will not be upstreamed. + ;; The devs deem the lmdb driver too critical a consenus component, to use + ;; the system's dynamically linked library. + (package + (name "monero") + (version "0.11.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/monero-project/monero/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete bundled dependencies. + (for-each + delete-file-recursively + '("external/miniupnpc" "external/rapidjson" + "external/unbound")) + #t)) + (sha256 + (base32 + "083w40a553c0r3i18020jcrv5s0b64vx3d8xrn9nwkb2237ighlk")))) + (build-system cmake-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("googletest" ,googletest) + ("graphviz" ,graphviz) + ("pkg-config" ,pkg-config))) + (inputs + `(("bind" ,isc-bind) + ("boost" ,boost) + ("expat" ,expat) + ("libunwind" ,libunwind) + ("lmdb" ,lmdb) + ("miniupnpc" ,miniupnpc) + ("openssl" ,openssl) + ("rapidjson" ,rapidjson) + ("unbound" ,unbound))) + (arguments + `(#:out-of-source? #t + #:configure-flags '("-DBUILD_TESTS=ON" + "-DBUILD_GUI_DEPS=ON") + #:phases + (modify-phases %standard-phases + ;; tests/core_tests need a valid HOME + (add-before 'configure 'set-home + (lambda _ + (setenv "HOME" (getcwd)) + #t)) + (add-after 'set-home 'fix-wallet-path-for-unit-tests + (lambda _ + (substitute* "tests/unit_tests/serialization.cpp" + (("\\.\\./\\.\\./\\.\\./\\.\\./") "../../")) + #t)) + (add-after 'fix-wallet-path-for-unit-tests 'change-log-path + (lambda _ + (substitute* "contrib/epee/src/mlog.cpp" + (("epee::string_tools::get_current_module_folder\\(\\)") + "\".bitmonero\"")) + (substitute* "contrib/epee/src/mlog.cpp" + (("return \\(") "return ((std::string(getenv(\"HOME\"))) / ")) + #t)) + (replace 'check + (lambda _ + (zero? + (system* "make" "ARGS=-E 'unit_tests|libwallet_api_tests'" + "test")))) + ;; The excluded unit tests need network access + (add-after 'check 'unit-tests + (lambda _ + (let ((excluded-unit-tests + (string-join + '("AddressFromURL.Success" + "AddressFromURL.Failure" + "DNSResolver.IPv4Success" + "DNSResolver.DNSSECSuccess" + "DNSResolver.DNSSECFailure" + "DNSResolver.GetTXTRecord") + ":"))) + (zero? + (system* "tests/unit_tests/unit_tests" + (string-append "--gtest_filter=-" + excluded-unit-tests)))))) + (add-after 'install 'install-blockchain-import-export + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "bin/monero-blockchain-import" bin) + (install-file "bin/monero-blockchain-export" bin))))))) + (home-page "https://getmonero.org/") + (synopsis "Command-line interface to the Monero currency") + (description + "Monero is a secure, private, untraceable currency. This package provides the +Monero command line client and daemon.") + (license license:bsd-3))) From 79228a52d2561c40be2cc2ac9873fcc7a38cbb48 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sat, 9 Sep 2017 20:47:35 +0300 Subject: [PATCH 107/333] gnu: Add monero-core. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (monero-core): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/finance.scm | 75 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index dc79c4c011..a1848b308a 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -400,3 +400,78 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.") "Monero is a secure, private, untraceable currency. This package provides the Monero command line client and daemon.") (license license:bsd-3))) + +(define-public monero-core + (package + (name "monero-core") + (version "0.11.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/monero-project/monero-core/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0hnrkgwb1sva67pcjym2gvb4zifp2s849dfbnjzbxk3yczpcyqzg")))) + (build-system gnu-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("graphviz" ,graphviz) + ("pkg-config" ,pkg-config))) + (inputs + `(("boost" ,boost) + ("libunwind" ,libunwind) + ("openssl" ,openssl) + ("qt" ,qt) + ("unbound" ,unbound))) + (propagated-inputs + `(("monero" ,monero))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (add-before 'build 'fix-makefile-vars + (lambda _ + (substitute* "src/zxcvbn-c/makefile" + (("\\?=") "=")) + #t)) + (add-after 'fix-makefile-vars 'fix-library-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "monero-wallet-gui.pro" + (("-L/usr/local/lib") "") + (("-L/usr/local/opt/openssl/lib") + (string-append "-L" + (assoc-ref inputs "openssl") + "/lib")) + (("-L/usr/local/opt/boost/lib") + (string-append "-L" + (assoc-ref inputs "boost") + "/lib"))) + #t)) + (add-after 'fix-library-paths 'fix-monerod-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/daemon/DaemonManager.cpp" + (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod") + (string-append "\""(assoc-ref inputs "monero") + "/bin/monerod"))) + #t)) + (replace 'build + (lambda _ + (zero? (system* "./build.sh")))) + (add-after 'build 'fix-install-path + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "build/Makefile" + (("/opt/monero-wallet-gui") + (assoc-ref outputs "out"))) + #t)) + (add-before 'install 'change-dir + (lambda _ + (chdir "build")))))) + (home-page "https://getmonero.org/") + (synopsis "Graphical user interface for the Monero currency") + (description + "Monero is a secure, private, untraceable currency. This package provides the +Monero GUI client.") + (license license:bsd-3))) From 218f6eccafa8172221cf7efd5262107233e7a587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 31 Aug 2017 23:27:26 +0200 Subject: [PATCH 108/333] substitute: Make substitute URLs a SRFI-39 parameter. * guix/scripts/substitute.scm (%cache-urls): Rename to... (%default-substitute-urls): ... this. (substitute-urls): New variable. (guix-substitute): Use it instead of %CACHE-URLS. * tests/substitute.scm: Likewise. --- guix/scripts/substitute.scm | 18 ++++++++++++------ tests/substitute.scm | 3 +-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 0d36997bc4..592c497322 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -84,6 +84,8 @@ lookup-narinfos/diverse read-narinfo write-narinfo + + substitute-urls guix-substitute)) ;;; Comment: @@ -971,7 +973,7 @@ substitutes may be unavailable\n"))))) found." (assoc-ref (daemon-options) option)) -(define %cache-urls +(define %default-substitute-urls (match (and=> (or (find-daemon-option "untrusted-substitute-urls") ;client (find-daemon-option "substitute-urls")) ;admin string-tokenize) @@ -982,6 +984,10 @@ found." ;; daemon. '("http://hydra.gnu.org")))) +(define substitute-urls + ;; List of substitute URLs. + (make-parameter %default-substitute-urls)) + (define (client-terminal-columns) "Return the number of columns in the client's terminal, if it is known, or a default value." @@ -1010,15 +1016,15 @@ default value." ;; Starting from commit 22144afa in Nix, we are allowed to bail out directly ;; when we know we cannot substitute, but we must emit a newline on stdout ;; when everything is alright. - (when (null? %cache-urls) + (when (null? (substitute-urls)) (exit 0)) ;; Say hello (see above.) (newline) (force-output (current-output-port)) - ;; Sanity-check %CACHE-URLS so we can provide a meaningful error message. - (for-each validate-uri %cache-urls) + ;; Sanity-check SUBSTITUTE-URLS so we can provide a meaningful error message. + (for-each validate-uri (substitute-urls)) ;; Attempt to install the client's locale, mostly so that messages are ;; suitably translated. @@ -1038,7 +1044,7 @@ default value." (or (eof-object? command) (begin (process-query command - #:cache-urls %cache-urls + #:cache-urls (substitute-urls) #:acl acl) (loop (read-line))))))) (("--substitute" store-path destination) @@ -1047,7 +1053,7 @@ default value." ;; report displays nicely. (parameterize ((current-terminal-columns (client-terminal-columns))) (process-substitution store-path destination - #:cache-urls %cache-urls + #:cache-urls (substitute-urls) #:acl (current-acl)))) (("--version") (show-version-and-exit "guix substitute")) diff --git a/tests/substitute.scm b/tests/substitute.scm index 69b272f2bb..b1d0fe9316 100644 --- a/tests/substitute.scm +++ b/tests/substitute.scm @@ -167,8 +167,7 @@ a file for NARINFO." (call-with-narinfo narinfo (lambda () body ...))) ;; Transmit these options to 'guix substitute'. -(set! (@@ (guix scripts substitute) %cache-urls) - (list (getenv "GUIX_BINARY_SUBSTITUTE_URL"))) +(substitute-urls (list (getenv "GUIX_BINARY_SUBSTITUTE_URL"))) (test-equal "query narinfo without signature" "" ; not substitutable From a9468b422b6df2349a3f4d1451c9302c3d77011b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Sep 2017 00:15:31 +0200 Subject: [PATCH 109/333] substitute: Download from unauthorized sources that provide the right content. This allows substitutes to be downloaded from unauthorized servers, as long as they advertise the same hash and references as one of the authorized servers. * guix/scripts/substitute.scm (assert-valid-narinfo): Remove. (valid-narinfo?): Add #:verbose?. Handle each case of 'signature-case'. (equivalent-narinfo?): New procedure. (lookup-narinfos/diverse): Add 'authorized?' parameter and honor it. [select-hit]: New procedure. (lookup-narinfo): Add 'authorized?' parameter and pass it. (process-query): Adjust callers accordingly. (process-substitution): Remove call to 'assert-valid-narinfo'. Check whether 'lookup-narinfo' returns true and call 'leave' if not. * tests/substitute.scm (%main-substitute-directory) (%alternate-substitute-directory): New variables. (call-with-narinfo): Make 'narinfo-directory' a parameter. Call 'mkdir-p' to create it. Change unwind handler to check whether CACHE-DIRECTORY exists before deleting it. (with-narinfo*): New macro. ("substitute, no signature") ("substitute, invalid hash") ("substitute, unauthorized key"): Change expected error message to "no valid substitute". ("substitute, unauthorized narinfo comes first") ("substitute, unsigned narinfo comes first") ("substitute, first narinfo is unsigned and has wrong hash") ("substitute, first narinfo is unsigned and has wrong refs") ("substitute, unsigned narinfo comes first") ("substitute, two invalid narinfos"): New tests. * doc/guix.texi (Substitutes): Explain the new behavior. --- doc/guix.texi | 28 +++++- guix/scripts/substitute.scm | 134 ++++++++++++++++--------- tests/substitute.scm | 190 +++++++++++++++++++++++++++++++++--- 3 files changed, 290 insertions(+), 62 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 0399c39814..c5b277d027 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2143,6 +2143,8 @@ your system has unpatched security vulnerabilities. @cindex security @cindex digital signatures @cindex substitutes, authorization thereof +@cindex access control list (ACL), for substitutes +@cindex ACL (access control list), for substitutes To allow Guix to download substitutes from @code{hydra.gnu.org} or a mirror thereof, you must add its public key to the access control list (ACL) of archive @@ -2191,9 +2193,29 @@ The following files would be downloaded: This indicates that substitutes from @code{hydra.gnu.org} are usable and will be downloaded, when possible, for future builds. -Guix ignores substitutes that are not signed, or that are not signed by -one of the keys listed in the ACL. It also detects and raises an error -when attempting to use a substitute that has been tampered with. +Guix detects and raises an error when attempting to use a substitute +that has been tampered with. Likewise, it ignores substitutes that are +not signed, or that are not signed by one of the keys listed in the ACL. + +There is one exception though: if an unauthorized server provides +substitutes that are @emph{bit-for-bit identical} to those provided by +an authorized server, then the unauthorized server becomes eligible for +downloads. For example, assume we have chosen two substitute servers +with this option: + +@example +--substitute-urls="https://a.example.org https://b.example.org" +@end example + +@noindent +@cindex reproducible builds +If the ACL contains only the key for @code{b.example.org}, and if +@code{a.example.org} happens to serve the @emph{exact same} substitutes, +then Guix will download substitutes from @code{a.example.org} because it +comes first in the list and can be considered a mirror of +@code{b.example.org}. In practice, independent build machines usually +produce the same binaries, thanks to bit-reproducible builds (see +below). @vindex http_proxy Substitutes are downloaded over HTTP or HTTPS. diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 592c497322..dd49cf15f3 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -78,7 +78,6 @@ narinfo-signature narinfo-hash->sha256 - assert-valid-narinfo lookup-narinfos lookup-narinfos/diverse @@ -407,38 +406,41 @@ No authentication and authorization checks are performed here!" (let ((above-signature (string-take contents index))) (sha256 (string->utf8 above-signature))))))) -(define* (assert-valid-narinfo narinfo - #:optional (acl (current-acl)) - #:key verbose?) - "Raise an exception if NARINFO lacks a signature, has an invalid signature, -or is signed by an unauthorized key." - (let ((hash (narinfo-sha256 narinfo))) - (if (not hash) - (if %allow-unauthenticated-substitutes? - narinfo - (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) - (G_ "Found valid signature for ~a~%") - (narinfo-path narinfo)) - (format (current-error-port) - (G_ "From ~a~%") - (uri->string (narinfo-uri narinfo))))) - narinfo)))) - -(define* (valid-narinfo? narinfo #:optional (acl (current-acl))) +(define* (valid-narinfo? narinfo #:optional (acl (current-acl)) + #:key verbose?) "Return #t if NARINFO's signature is not valid." (or %allow-unauthenticated-substitutes? (let ((hash (narinfo-sha256 narinfo)) - (signature (narinfo-signature narinfo))) + (signature (narinfo-signature narinfo)) + (uri (uri->string (narinfo-uri narinfo)))) (and hash signature (signature-case (signature hash acl) (valid-signature #t) - (else #f)))))) + (invalid-signature + (when verbose? + (format (current-error-port) + "invalid signature for substitute at '~a'~%" + uri)) + #f) + (hash-mismatch + (when verbose? + (format (current-error-port) + "hash mismatch for substitute at '~a'~%" + uri)) + #f) + (unauthorized-key + (when verbose? + (format (current-error-port) + "substitute at '~a' is signed by an \ +unauthorized party~%" + uri)) + #f) + (corrupt-signature + (when verbose? + (format (current-error-port) + "corrupt signature for substitute at '~a'~%" + uri)) + #f)))))) (define (write-narinfo narinfo port) "Write NARINFO to PORT." @@ -708,30 +710,68 @@ information is available locally." (let ((missing (fetch-narinfos cache missing))) (append cached (or missing '())))))) -(define (lookup-narinfos/diverse caches paths) +(define (equivalent-narinfo? narinfo1 narinfo2) + "Return true if NARINFO1 and NARINFO2 are equivalent--i.e., if they describe +the same store item. This ignores unnecessary metadata such as the Nar URL." + (and (string=? (narinfo-hash narinfo1) + (narinfo-hash narinfo2)) + + ;; The following is not needed if all we want is to download a valid + ;; nar, but it's necessary if we want valid narinfo. + (string=? (narinfo-path narinfo1) + (narinfo-path narinfo2)) + (equal? (narinfo-references narinfo1) + (narinfo-references narinfo2)) + + (= (narinfo-size narinfo1) + (narinfo-size narinfo2)))) + +(define (lookup-narinfos/diverse caches paths authorized?) "Look up narinfos for PATHS on all of CACHES, a list of URLS, in that order. -That is, when a cache lacks a narinfo, look it up in the next cache, and so -on. Return a list of narinfos for PATHS or a subset thereof." +That is, when a cache lacks an AUTHORIZED? narinfo, look it up in the next +cache, and so on. + +Return a list of narinfos for PATHS or a subset thereof. The returned +narinfos are either AUTHORIZED?, or they claim a hash that matches an +AUTHORIZED? narinfo." + (define (select-hit result) + (lambda (path) + (match (vhash-fold* cons '() path result) + ((one) + one) + ((several ..1) + (let ((authorized (find authorized? (reverse several)))) + (and authorized + (find (cut equivalent-narinfo? <> authorized) + several))))))) + (let loop ((caches caches) (paths paths) - (result '())) + (result vlist-null) ;path->narinfo vhash + (hits '())) ;paths (match paths (() ;we're done - result) + ;; Now iterate on all the HITS, and return exactly one match for each + ;; hit: the first narinfo that is authorized, or that has the same hash + ;; as an authorized narinfo, in the order of CACHES. + (filter-map (select-hit result) hits)) (_ (match caches ((cache rest ...) (let* ((narinfos (lookup-narinfos cache paths)) - (hits (map narinfo-path narinfos)) - (missing (lset-difference string=? paths hits))) ;XXX: perf - (loop rest missing (append narinfos result)))) + (definite (map narinfo-path (filter authorized? narinfos))) + (missing (lset-difference string=? paths definite))) ;XXX: perf + (loop rest missing + (fold vhash-cons result + (map narinfo-path narinfos) narinfos) + (append definite hits)))) (() ;that's it - result)))))) + (filter-map (select-hit result) hits))))))) -(define (lookup-narinfo caches path) +(define (lookup-narinfo caches path authorized?) "Return the narinfo for PATH in CACHES, or #f when no substitute for PATH was found." - (match (lookup-narinfos/diverse caches (list path)) + (match (lookup-narinfos/diverse caches (list path) authorized?) ((answer) answer) (_ #f))) @@ -868,15 +908,15 @@ authorized substitutes." (match (string-tokenize command) (("have" paths ..1) ;; Return the subset of PATHS available in CACHE-URLS. - (let ((substitutable (lookup-narinfos/diverse cache-urls paths))) + (let ((substitutable (lookup-narinfos/diverse cache-urls paths valid?))) (for-each (lambda (narinfo) (format #t "~a~%" (narinfo-path narinfo))) - (filter valid? substitutable)) + substitutable) (newline))) (("info" paths ..1) ;; Reply info about PATHS if it's in CACHE-URLS. - (let ((substitutable (lookup-narinfos/diverse cache-urls paths))) - (for-each display-narinfo-data (filter valid? substitutable)) + (let ((substitutable (lookup-narinfos/diverse cache-urls paths valid?))) + (for-each display-narinfo-data substitutable) (newline))) (wtf (error "unknown `--query' command" wtf)))) @@ -885,10 +925,12 @@ authorized substitutes." #:key cache-urls acl) "Substitute STORE-ITEM (a store file name) from CACHE-URLS, and write it to DESTINATION as a nar file. Verify the substitute against ACL." - (let* ((narinfo (lookup-narinfo cache-urls store-item)) - (uri (narinfo-uri narinfo))) - ;; Make sure it is signed and everything. - (assert-valid-narinfo narinfo acl) + (let* ((narinfo (lookup-narinfo cache-urls store-item + (cut valid-narinfo? <> acl))) + (uri (and=> narinfo narinfo-uri))) + (unless uri + (leave (G_ "no valid substitute for '~a'~%") + store-item)) ;; Tell the daemon what the expected hash of the Nar itself is. (format #t "~a~%" (narinfo-hash narinfo)) diff --git a/tests/substitute.scm b/tests/substitute.scm index b1d0fe9316..0ad6247954 100644 --- a/tests/substitute.scm +++ b/tests/substitute.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Nikita Karetnikov -;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2014, 2015, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +28,9 @@ #:use-module (guix base32) #:use-module ((guix store) #:select (%store-prefix)) #:use-module ((guix ui) #:select (guix-warning-port)) - #:use-module ((guix build utils) #:select (delete-file-recursively)) + #:use-module ((guix build utils) + #:select (mkdir-p delete-file-recursively)) + #:use-module (guix tests http) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (web uri) @@ -112,6 +114,15 @@ version identifier.." +(define %main-substitute-directory + ;; The place where 'call-with-narinfo' stores its data by default. + (uri-path (string->uri (getenv "GUIX_BINARY_SUBSTITUTE_URL")))) + +(define %alternate-substitute-directory + ;; Another place. + (string-append (dirname %main-substitute-directory) + "/substituter-alt-data")) + (define %narinfo ;; Skeleton of the narinfo used below. (string-append "StorePath: " (%store-prefix) @@ -125,14 +136,14 @@ References: bar baz Deriver: " (%store-prefix) "/foo.drv System: mips64el-linux\n")) -(define (call-with-narinfo narinfo thunk) - "Call THUNK in a context where $GUIX_BINARY_SUBSTITUTE_URL is populated with +(define* (call-with-narinfo narinfo thunk + #:optional + (narinfo-directory %main-substitute-directory)) + "Call THUNK in a context where the directory at URL is populated with a file for NARINFO." - (let ((narinfo-directory (and=> (string->uri (getenv - "GUIX_BINARY_SUBSTITUTE_URL")) - uri-path)) - (cache-directory (string-append (getenv "XDG_CACHE_HOME") - "/guix/substitute/"))) + (mkdir-p narinfo-directory) + (let ((cache-directory (string-append (getenv "XDG_CACHE_HOME") + "/guix/substitute/"))) (dynamic-wind (lambda () (when (file-exists? cache-directory) @@ -161,11 +172,15 @@ a file for NARINFO." #f)) thunk (lambda () - (delete-file-recursively cache-directory))))) + (when (file-exists? cache-directory) + (delete-file-recursively cache-directory)))))) (define-syntax-rule (with-narinfo narinfo body ...) (call-with-narinfo narinfo (lambda () body ...))) +(define-syntax-rule (with-narinfo* narinfo directory body ...) + (call-with-narinfo narinfo (lambda () body ...) directory)) + ;; Transmit these options to 'guix substitute'. (substitute-urls (list (getenv "GUIX_BINARY_SUBSTITUTE_URL"))) @@ -227,7 +242,7 @@ a file for NARINFO." (guix-substitute "--query")))))))) (test-quit "substitute, no signature" - "lacks a signature" + "no valid substitute" (with-narinfo %narinfo (guix-substitute "--substitute" (string-append (%store-prefix) @@ -235,7 +250,7 @@ a file for NARINFO." "foo"))) (test-quit "substitute, invalid hash" - "hash" + "no valid substitute" ;; The hash in the signature differs from the hash of %NARINFO. (with-narinfo (string-append %narinfo "Signature: " (signature-field "different body") @@ -246,7 +261,7 @@ a file for NARINFO." "foo"))) (test-quit "substitute, unauthorized key" - "unauthorized" + "no valid substitute" (with-narinfo (string-append %narinfo "Signature: " (signature-field %narinfo @@ -272,9 +287,158 @@ a file for NARINFO." (lambda () (false-if-exception (delete-file "substitute-retrieved")))))) +(test-equal "substitute, unauthorized narinfo comes first" + "Substitutable data." + (with-narinfo* + (string-append %narinfo "Signature: " + (signature-field + %narinfo + #:public-key %wrong-public-key)) + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " + (signature-field %narinfo)) + %main-substitute-directory + + (dynamic-wind + (const #t) + (lambda () + ;; Remove this file so that the substitute can only be retrieved + ;; from %ALTERNATE-SUBSTITUTE-DIRECTORY. + (delete-file (string-append %main-substitute-directory + "/example.nar")) + + (parameterize ((substitute-urls + (map (cut string-append "file://" <>) + (list %alternate-substitute-directory + %main-substitute-directory)))) + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")) + (call-with-input-file "substitute-retrieved" get-string-all)) + (lambda () + (false-if-exception (delete-file "substitute-retrieved"))))))) + +(test-equal "substitute, unsigned narinfo comes first" + "Substitutable data." + (with-narinfo* %narinfo ;not signed! + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " + (signature-field %narinfo)) + %main-substitute-directory + + (dynamic-wind + (const #t) + (lambda () + ;; Remove this file so that the substitute can only be retrieved + ;; from %ALTERNATE-SUBSTITUTE-DIRECTORY. + (delete-file (string-append %main-substitute-directory + "/example.nar")) + + (parameterize ((substitute-urls + (map (cut string-append "file://" <>) + (list %alternate-substitute-directory + %main-substitute-directory)))) + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")) + (call-with-input-file "substitute-retrieved" get-string-all)) + (lambda () + (false-if-exception (delete-file "substitute-retrieved"))))))) + +(test-equal "substitute, first narinfo is unsigned and has wrong hash" + "Substitutable data." + (with-narinfo* (regexp-substitute #f + (string-match "NarHash: [[:graph:]]+" + %narinfo) + 'pre + "NarHash: sha256:" + (bytevector->nix-base32-string + (make-bytevector 32)) + 'post) + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " + (signature-field %narinfo)) + %main-substitute-directory + + (dynamic-wind + (const #t) + (lambda () + ;; This time remove the file so that the substitute can only be + ;; retrieved from %MAIN-SUBSTITUTE-DIRECTORY. + (delete-file (string-append %alternate-substitute-directory + "/example.nar")) + + (parameterize ((substitute-urls + (map (cut string-append "file://" <>) + (list %alternate-substitute-directory + %main-substitute-directory)))) + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")) + (call-with-input-file "substitute-retrieved" get-string-all)) + (lambda () + (false-if-exception (delete-file "substitute-retrieved"))))))) + +(test-equal "substitute, first narinfo is unsigned and has wrong refs" + "Substitutable data." + (with-narinfo* (regexp-substitute #f + (string-match "References: ([^\n]+)\n" + %narinfo) + 'pre "References: " 1 + " wrong set of references\n" + 'post) + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " + (signature-field %narinfo)) + %main-substitute-directory + + (dynamic-wind + (const #t) + (lambda () + ;; This time remove the file so that the substitute can only be + ;; retrieved from %MAIN-SUBSTITUTE-DIRECTORY. + (delete-file (string-append %alternate-substitute-directory + "/example.nar")) + + (parameterize ((substitute-urls + (map (cut string-append "file://" <>) + (list %alternate-substitute-directory + %main-substitute-directory)))) + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")) + (call-with-input-file "substitute-retrieved" get-string-all)) + (lambda () + (false-if-exception (delete-file "substitute-retrieved"))))))) + +(test-quit "substitute, two invalid narinfos" + "no valid substitute" + (with-narinfo* %narinfo ;not signed + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " ;unauthorized + (signature-field + %narinfo + #:public-key %wrong-public-key)) + %main-substitute-directory + + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")))) + (test-end "substitute") ;;; Local Variables: ;;; eval: (put 'with-narinfo 'scheme-indent-function 1) +;;; eval: (put 'with-narinfo* 'scheme-indent-function 2) ;;; eval: (put 'test-quit 'scheme-indent-function 2) ;;; End: From 21c2757f27061cd6647cb00797b1c6c85f3325e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 11 Sep 2017 11:36:38 +0200 Subject: [PATCH 110/333] gnu: guix: Update snapshot. * gnu/packages/package-management.scm (guix): Update to a9468b4. --- 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 a6c97e618e..9f7792dff7 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -78,8 +78,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.13.0") - (commit "228a3982df157847554abc9d0831d687264d8ebd") - (revision 5)) + (commit "a9468b422b6df2349a3f4d1451c9302c3d77011b") + (revision 6)) (package (name "guix") @@ -95,7 +95,7 @@ (commit commit))) (sha256 (base32 - "1gnc1w9kby7db9jih4xwrhrv0j57zy09lmr85gbmcqna6bx3wypw")) + "0bv323yp657x0a2aa2z5pp5541hjqmn908kh9jqlbdw5gpx9vg3d")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments From e9f38113908414792ce2e5c1d3203cc8e5cb938b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 11 Sep 2017 11:40:32 +0200 Subject: [PATCH 111/333] gnu-maintenance: Correctly compare versions. * guix/gnu-maintenance.scm (latest-gnu-release): Add calls to 'sans-extension'. This fixes version comparison, which could be fooled with the ".tar.gz" extension. --- guix/gnu-maintenance.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 7c7ca65d7b..c903b740ba 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -472,11 +472,11 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)." (let* ((files (ftp.gnu.org-files)) (relevant (filter (lambda (file) (and (string-contains file directory) - (release-file? name (basename file)) - )) + (release-file? name (basename file)))) files))) (match (sort relevant (lambda (file1 file2) - (version>? (basename file1) (basename file2)))) + (version>? (sans-extension (basename file1)) + (sans-extension (basename file2))))) ((tarball _ ...) (upstream-source (package name) From 1b3ebae4f1b1c1f34a825200440752e6ee8c8a7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 11 Sep 2017 11:45:30 +0200 Subject: [PATCH 112/333] gnu-maintenance: Return all the latest tarballs, not just one. * guix/gnu-maintenance.scm (latest-gnu-release): Return a list of matching tarballs instead of just the first one. This gives us .tar.gz, .tar.xz, etc. --- guix/gnu-maintenance.scm | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index c903b740ba..62f817347f 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -471,18 +471,30 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)." (package-upstream-name package))) (let* ((files (ftp.gnu.org-files)) (relevant (filter (lambda (file) - (and (string-contains file directory) + (and (string-prefix? "/gnu" file) + (string-contains file directory) (release-file? name (basename file)))) files))) (match (sort relevant (lambda (file1 file2) (version>? (sans-extension (basename file1)) (sans-extension (basename file2))))) - ((tarball _ ...) - (upstream-source - (package name) - (version (tarball->version tarball)) - (urls (list (string-append "mirror://gnu/" tarball))) - (signature-urls (map (cut string-append <> ".sig") urls)))) + ((and tarballs (reference _ ...)) + (let* ((version (tarball->version reference)) + (tarballs (filter (lambda (file) + (string=? (sans-extension + (basename file)) + (sans-extension + (basename reference)))) + tarballs))) + (upstream-source + (package name) + (version version) + (urls (map (lambda (file) + (string-append "mirror://gnu/" + (string-drop file + (string-length "/gnu/")))) + tarballs)) + (signature-urls (map (cut string-append <> ".sig") urls))))) (() #f))))) From 4918e7fc223e3bfd507f1573089571085c0e0428 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 11 Sep 2017 11:51:50 +0200 Subject: [PATCH 113/333] download: Adjust main ftp.gnu.org mirror. * guix/download.scm (%mirrors): Add missing "/gnu" in first mirror, although that mirror would work even without it. Use https instead of http. --- guix/download.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/download.scm b/guix/download.scm index ae381ee7ab..e090a72306 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016 Alex Griffin @@ -50,7 +50,7 @@ (let* ((gnu-mirrors '(;; This one redirects to a (supposedly) nearby and (supposedly) ;; up-to-date mirror. - "http://ftpmirror.gnu.org/" + "https://ftpmirror.gnu.org/gnu/" "ftp://ftp.cs.tu-berlin.de/pub/gnu/" "ftp://ftp.funet.fi/pub/mirrors/ftp.gnu.org/gnu/" From 130c3bc8948cb249129b3310561d9a2553926a60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 11 Sep 2017 11:57:51 +0200 Subject: [PATCH 114/333] gnu: gdb: Update to 8.0.1. * gnu/packages/gdb.scm (gdb): Update to 8.0.1. --- gnu/packages/gdb.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index 77a3376a02..e09b55eb2b 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -37,14 +37,14 @@ (define-public gdb (package (name "gdb") - (version "8.0") + (version "8.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz")) (sha256 (base32 - "1vplyf8v70yn0rdqjx6awl9nmfbwaj5ynwwjxwa71rhp97z4z8pn")))) + "1qwmcbaxf0jc7yjl0fimgcfj2yqcrl6h7azgs1d838kbwf9mzg9x")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME "make check" fails on single-processor systems. From 6bda496286149911bb0ba460c35a144ef4109cc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Fri, 1 Sep 2017 22:14:55 +0800 Subject: [PATCH 115/333] gnu: icedtea-8: Install the nss.cfg file to JRE. Before this, accessing HTTPS will throw an exception about 'nss.cfg' could not be found. * gnu/packages/java.scm (icedtea-8)[arguments]: Copy 'nss.cfg' from JDK into JRE in the install phase. --- gnu/packages/java.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f361697b2b..806f13ab89 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1628,6 +1628,10 @@ IcedTea build harness.") (copy-recursively "openjdk.build/docs" doc) (copy-recursively "openjdk.build/images/j2re-image" jre) (copy-recursively "openjdk.build/images/j2sdk-image" jdk) + ;; Install the nss.cfg file to JRE to enable SSL/TLS + ;; support via NSS. + (copy-file (string-append jdk "/jre/lib/security/nss.cfg") + (string-append jre "/lib/security/nss.cfg")) #t))))))) (native-inputs `(("jdk" ,icedtea-7 "jdk") From d8661f52b1b9fcc26d4a4705e61dca4ac88f5463 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Mon, 11 Sep 2017 21:43:20 +1000 Subject: [PATCH 116/333] gnu: ruby-activesupport: Update to 5.1.4. * gnu/packages/ruby.scm (ruby-activesupport): Update to 5.1.4. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 3db657f0db..846860f440 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2570,14 +2570,14 @@ you about the changes.") (define-public ruby-activesupport (package (name "ruby-activesupport") - (version "5.1.3") + (version "5.1.4") (source (origin (method url-fetch) (uri (rubygems-uri "activesupport" version)) (sha256 (base32 - "16r18n6b1nlky0xx2lw8c1f15gr2vm34xz5g4byjcxf88m1s07xh")))) + "0sgf4rsfr7jcaqsx0wwzx4l4k9xsjlwv0mzl08pxiyp1qzyx8scr")))) (build-system ruby-build-system) (arguments `(#:phases From 238ee64802e73b797a51646014b22bbeaf90d0d5 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 10 Sep 2017 22:07:30 +0200 Subject: [PATCH 117/333] gnu: nyacc: Update to 0.82.0. * gnu/packages/mes.scm (nyacc): Update to 0.82.0. --- gnu/packages/mes.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 39f9765320..9aba162f3d 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -34,14 +34,15 @@ (define-public nyacc (package (name "nyacc") - (version "0.80.3") + (version "0.82.0") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/nyacc/" name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0sdvkahnz6k9i4kf1i1ljl20220n3wk3gy6zmz0ggbbdgg4mfka0")))) + "1ll0mjivhxpj3r81w4a8p4bclr3byzp38ig1j11jvwnbl6lawgj7")))) (build-system gnu-build-system) (native-inputs `(("guile" ,guile-2.2))) From 66ae958c5bee27266bce2a573812db7fec7c3111 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 11 Sep 2017 14:46:13 +0200 Subject: [PATCH 118/333] gnu: emacs: Patch message-mode enriched text translation [security fix]. * gnu/packages/patches/emacs-unsafe-enriched-mode-translations.patch: New file. * gnu/packages/emacs.scm (emacs)[source](patches): Add it. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/emacs.scm | 3 +- ...cs-unsafe-enriched-mode-translations.patch | 85 +++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/emacs-unsafe-enriched-mode-translations.patch diff --git a/gnu/local.mk b/gnu/local.mk index c92b93dbd2..e98ee6d7fe 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -589,6 +589,7 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ + %D%/packages/patches/emacs-unsafe-enriched-mode-translations.patch \ %D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \ diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 2277edcece..c6d5766cbd 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -113,7 +113,8 @@ "1ykkq0xl28ljdg61bm6gzy04ww86ajms98gix72qg6cpr6a53dar")) (patches (search-patches "emacs-exec-path.patch" "emacs-fix-scheme-indent-function.patch" - "emacs-source-date-epoch.patch")) + "emacs-source-date-epoch.patch" + "emacs-unsafe-enriched-mode-translations.patch")) (modules '((guix build utils))) (snippet ;; Delete the bundled byte-compiled elisp files and diff --git a/gnu/packages/patches/emacs-unsafe-enriched-mode-translations.patch b/gnu/packages/patches/emacs-unsafe-enriched-mode-translations.patch new file mode 100644 index 0000000000..7e45d30129 --- /dev/null +++ b/gnu/packages/patches/emacs-unsafe-enriched-mode-translations.patch @@ -0,0 +1,85 @@ +This patch fixes a remote code execution vulnerability reported here: + + https://bugs.gnu.org/28350 + http://www.openwall.com/lists/oss-security/2017/09/11/1 + +From 9ad0fcc54442a9a01d41be19880250783426db70 Mon Sep 17 00:00:00 2001 +From: Lars Ingebrigtsen +Date: Fri, 8 Sep 2017 20:23:31 -0700 +Subject: Remove unsafe enriched mode translations + +* lisp/gnus/mm-view.el (mm-inline-text): +Do not worry about enriched or richtext type. +* lisp/textmodes/enriched.el (enriched-translations): +Remove translations for FUNCTION, display (Bug#28350). +(enriched-handle-display-prop, enriched-decode-display-prop): Remove. +--- + lisp/gnus/mm-view.el | 4 ---- + lisp/textmodes/enriched.el | 32 -------------------------------- + 2 files changed, 36 deletions(-) + +diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el +index e5859d0..77ad271 100644 +--- a/lisp/gnus/mm-view.el ++++ b/lisp/gnus/mm-view.el +@@ -383,10 +383,6 @@ + (goto-char (point-max)))) + (save-restriction + (narrow-to-region b (point)) +- (when (member type '("enriched" "richtext")) +- (set-text-properties (point-min) (point-max) nil) +- (ignore-errors +- (enriched-decode (point-min) (point-max)))) + (mm-handle-set-undisplayer + handle + `(lambda () +diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el +index beb6c6d..a8f0d38 100644 +--- a/lisp/textmodes/enriched.el ++++ b/lisp/textmodes/enriched.el +@@ -117,12 +117,7 @@ expression, which is evaluated to get the string to insert.") + (full "flushboth") + (center "center")) + (PARAMETER (t "param")) ; Argument of preceding annotation +- ;; The following are not part of the standard: +- (FUNCTION (enriched-decode-foreground "x-color") +- (enriched-decode-background "x-bg-color") +- (enriched-decode-display-prop "x-display")) + (read-only (t "x-read-only")) +- (display (nil enriched-handle-display-prop)) + (unknown (nil format-annotate-value)) + ; (font-size (2 "bigger") ; unimplemented + ; (-2 "smaller")) +@@ -477,32 +472,5 @@ Return value is \(begin end name positive-p), or nil if none was found." + (message "Warning: no color specified for ") + nil)) + +-;;; Handling the `display' property. +- +- +-(defun enriched-handle-display-prop (old new) +- "Return a list of annotations for a change in the `display' property. +-OLD is the old value of the property, NEW is the new value. Value +-is a list `(CLOSE OPEN)', where CLOSE is a list of annotations to +-close and OPEN a list of annotations to open. Each of these lists +-has the form `(ANNOTATION PARAM ...)'." +- (let ((annotation "x-display") +- (param (prin1-to-string (or old new)))) +- (if (null old) +- (cons nil (list (list annotation param))) +- (cons (list (list annotation param)) nil)))) +- +-(defun enriched-decode-display-prop (start end &optional param) +- "Decode a `display' property for text between START and END. +-PARAM is a `' found for the property. +-Value is a list `(START END SYMBOL VALUE)' with START and END denoting +-the range of text to assign text property SYMBOL with value VALUE." +- (let ((prop (when (stringp param) +- (condition-case () +- (car (read-from-string param)) +- (error nil))))) +- (unless prop +- (message "Warning: invalid parameter %s" param)) +- (list start end 'display prop))) + + ;;; enriched.el ends here From 45586b8dd82d06059a6e2083140296358276ce5a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 11 Sep 2017 14:58:39 +0200 Subject: [PATCH 119/333] gnu: gnome-online-accounts: Update to 3.24.3. * gnu/packages/gnome.scm (gnome-online-accounts): Update to 3.24.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 84ddf333d5..40e857a3f5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4759,7 +4759,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.24.2") + (version "3.24.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4767,7 +4767,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "1fmgywfcvlb5sa0slxxlg80gafiaal8vnq6h5lcybqa12lnxa2mp")))) + "0m1qf2ffxzmwxa157lrvh3507d5gr3lg4kvj653zhcihjpmmhbi5")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. From 5564b2c53e25db8662f20922b4ba90b29ef341f0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 11 Sep 2017 15:00:33 +0200 Subject: [PATCH 120/333] gnu: libchamplain: Update to 0.12.16. * gnu/packages/gnome.scm (libchamplain): Update to 0.12.16. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 40e857a3f5..26abb49523 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3331,7 +3331,7 @@ GL based interactive canvas library.") (define-public libchamplain (package (name "libchamplain") - (version "0.12.15") + (version "0.12.16") (source (origin (method url-fetch) (uri (string-append @@ -3339,7 +3339,7 @@ GL based interactive canvas library.") version ".tar.xz")) (sha256 (base32 - "0x5qa1aw1y59lzkmf4j4szspn49341a87vcja4ydgxny1chilwjl")))) + "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-vala"))) (native-inputs From 007b92cfc052075e6d298d0b1fc97d44f340697e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 11 Sep 2017 13:21:28 -0400 Subject: [PATCH 121/333] gnu: mpg123: Update to 1.25.6 [fixes CVE-2017-12797]. * gnu/packages/mp3.scm (mpg123): Update to 1.25.6. --- gnu/packages/mp3.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 9330179f96..f030e5b18e 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -295,7 +295,7 @@ This package contains the binary.") (define-public mpg123 (package (name "mpg123") - (version "1.25.4") + (version "1.25.6") (source (origin (method url-fetch) (uri (list (string-append "mirror://sourceforge/mpg123/mpg123/" @@ -305,7 +305,7 @@ This package contains the binary.") version ".tar.bz2"))) (sha256 (base32 - "1rxknrnl3ji5hi5rbckpzhbl1k5r8i53kcys4xdgg0xbi8765dfd")))) + "13jsbh1gwypjksim2fxlblj5wc2driwm4igrkcnbr6bpp34mh10g")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-default-audio=pulse"))) (native-inputs `(("pkg-config" ,pkg-config))) From bae28ccb69d67f0e988a49046ffa29d201d77a74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 20 Jul 2017 00:15:43 +0200 Subject: [PATCH 122/333] vm: Allow partitions to be initialized with a given UUID. * gnu/build/vm.scm ()[uuid]: New field. (create-ext-file-system): Add #:uuid and honor it. (create-fat-file-system): Add #:uuid. (format-partition): Add #:uuid and honor it. (initialize-partition): Honor the 'uuid' field of PARTITION. --- gnu/build/vm.scm | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 466e3daf44..ad67a3727f 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -163,6 +163,7 @@ the #:references-graphs parameter of 'derivation'." (size partition-size) (file-system partition-file-system (default "ext4")) (label partition-label (default #f)) + (uuid partition-uuid (default #f)) (flags partition-flags (default '())) (initializer partition-initializer (default (const #t)))) @@ -236,22 +237,26 @@ actual /dev name based on DEVICE." (define MS_BIND 4096) ; again! (define* (create-ext-file-system partition type - #:key label) + #:key label uuid) "Create an ext-family filesystem of TYPE on PARTITION. If LABEL is true, -use that as the volume name." +use that as the volume name. If UUID is true, use it as the partition UUID." (format #t "creating ~a partition...\n" type) (unless (zero? (apply system* (string-append "mkfs." type) "-F" partition - (if label - `("-L" ,label) - '()))) + `(,@(if label + `("-L" ,label) + '()) + ,@(if uuid + `("-U" ,(uuid->string uuid)) + '())))) (error "failed to create partition"))) (define* (create-fat-file-system partition - #:key label) + #:key label uuid) "Create a FAT filesystem on PARTITION. The number of File Allocation Tables will be determined based on filesystem size. If LABEL is true, use that as the volume name." + ;; FIXME: UUID is ignored! (format #t "creating FAT partition...\n") (unless (zero? (apply system* "mkfs.fat" partition (if label @@ -260,13 +265,13 @@ volume name." (error "failed to create FAT partition"))) (define* (format-partition partition type - #:key label) + #:key label uuid) "Create a file system TYPE on PARTITION. If LABEL is true, use that as the volume name." (cond ((string-prefix? "ext" type) - (create-ext-file-system partition type #:label label)) + (create-ext-file-system partition type #:label label #:uuid uuid)) ((or (string-prefix? "fat" type) (string= "vfat" type)) - (create-fat-file-system partition #:label label)) + (create-fat-file-system partition #:label label #:uuid uuid)) (else (error "Unsupported file system.")))) (define (initialize-partition partition) @@ -275,7 +280,8 @@ it, run its initializer, and unmount it." (let ((target "/fs")) (format-partition (partition-device partition) (partition-file-system partition) - #:label (partition-label partition)) + #:label (partition-label partition) + #:uuid (partition-uuid partition)) (mkdir-p target) (mount (partition-device partition) target (partition-file-system partition)) From a8e1247d7d758a0c32d54f8277f40a05711555b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 19 Aug 2017 23:55:10 +0200 Subject: [PATCH 123/333] file-systems: Add UUID type dictionaries. * gnu/build/file-systems.scm (uuid->string): Rename to... (dce-uuid->string): ... this. (string->uuid): Rename to... (string->dce-uuid): ... this. (vhashq): New macro. (%uuid-parsers, %uuid-printers): New variables. (uuid->string, string->uuid): New procedures. --- gnu/build/file-systems.scm | 49 +++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 203fbdfffb..fbaf158951 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -28,6 +28,7 @@ #:use-module (ice-9 rdelim) #:use-module (ice-9 format) #:use-module (ice-9 regex) + #:use-module (ice-9 vlist) #:use-module (system foreign) #:autoload (system repl repl) (start-repl) #:use-module (srfi srfi-1) @@ -42,7 +43,9 @@ canonicalize-device-spec uuid->string + dce-uuid->string string->uuid + string->dce-uuid string->iso9660-uuid string->ext2-uuid string->ext3-uuid @@ -516,7 +519,7 @@ were found." (define-syntax %network-byte-order (identifier-syntax (endianness big))) -(define (uuid->string uuid) +(define (dce-uuid->string uuid) "Convert UUID, a 16-byte bytevector, to its string representation, something like \"6b700d61-5550-48a1-874c-a3d86998990e\"." ;; See . @@ -532,7 +535,7 @@ like \"6b700d61-5550-48a1-874c-a3d86998990e\"." ;; The regexp of a UUID. (make-regexp "^([[:xdigit:]]{8})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{12})$")) -(define (string->uuid str) +(define (string->dce-uuid str) "Parse STR as a DCE UUID (see ) and return its contents as a 16-byte bytevector. Return #f if STR is not a valid UUID representation." @@ -562,10 +565,44 @@ UUID representation." (time-low 4) (time-mid 2) (time-hi 2) (clock-seq 2) (node 6))))))) -(define string->ext2-uuid string->uuid) -(define string->ext3-uuid string->uuid) -(define string->ext4-uuid string->uuid) -(define string->btrfs-uuid string->uuid) +(define string->ext2-uuid string->dce-uuid) +(define string->ext3-uuid string->dce-uuid) +(define string->ext4-uuid string->dce-uuid) +(define string->btrfs-uuid string->dce-uuid) + +(define-syntax vhashq + (syntax-rules (=>) + ((_) + vlist-null) + ((_ (key others ... => value) rest ...) + (vhash-consq key value + (vhashq (others ... => value) rest ...))) + ((_ (=> value) rest ...) + (vhashq rest ...)))) + +(define %uuid-parsers + (vhashq + ('dce 'ext2 'ext3 'ext4 'btrfs 'luks => string->dce-uuid) + ('iso9660 => string->iso9660-uuid))) + +(define %uuid-printers + (vhashq + ('dce 'ext2 'ext3 'ext4 'btrfs 'luks => dce-uuid->string) + ('iso9660 => iso9660-uuid->string) + ('fat32 'fat => fat32-uuid->string))) + +(define* (string->uuid str #:key (type 'dce)) + "Parse STR as a UUID of the given TYPE. On success, return the +corresponding bytevector; otherwise return #f." + (match (vhash-assq type %uuid-parsers) + (#f #f) + ((_ . (? procedure? parse)) (parse str)))) + +(define* (uuid->string bv #:key (type 'dce)) + "Convert BV, a bytevector, to the UUID string representation for TYPE." + (match (vhash-assq type %uuid-printers) + (#f #f) + ((_ . (? procedure? unparse)) (unparse bv)))) (define* (canonicalize-device-spec spec #:optional (title 'any)) From 943e1b975fd0c44b2eaacec26df59e24ba9ef455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 5 Sep 2017 21:47:08 +0200 Subject: [PATCH 124/333] services: base: Import the closure of (gnu build file-systems). * gnu/services/base.scm (file-system-shepherd-service): Use 'source-module-closure' in the 'with-imported-modules' form. --- gnu/services/base.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 5001298ab3..23ef2d4bf0 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -47,6 +47,7 @@ #:select (mount-flags->bit-mask)) #:use-module (guix gexp) #:use-module (guix records) + #:use-module (guix modules) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match) @@ -286,8 +287,8 @@ FILE-SYSTEM." (dependencies (file-system-dependencies file-system)) (packages (file-system-packages (list file-system)))) (and (file-system-mount? file-system) - (with-imported-modules '((gnu build file-systems) - (guix build bournish)) + (with-imported-modules (source-module-closure + '((gnu build file-systems))) (shepherd-service (provision (list (file-system->shepherd-service-name file-system))) (requirement `(root-file-system From 47cef4ecad54d112aa3b4bc509194d3d49a10785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 5 Sep 2017 21:51:12 +0200 Subject: [PATCH 125/333] file-systems: Introduce (gnu system uuid). * gnu/build/file-systems.scm (sub-bytevector) (latin1->string, %fat32-endianness, fat32-uuid->string) (%iso9660-uuid-rx, string->iso9660-uuid) (iso9660-uuid->string, %network-byte-order) (dce-uuid->string, %uuid-rx, string->dce-uuid) (string->ext2-uuid, string->ext3-uuid, string->ext4-uuid) (vhashq, %uuid-parsers, %uuid-printers, string->uuid) (uuid->string): Move to... * gnu/system/uuid.scm: ... here. New file. * gnu/system/file-systems.scm (uuid): Move to the above file. * gnu/system/vm.scm: Adjust accordingly. * gnu/local.mk (GNU_SYSTEM_MODULES): Add uuid.scm. --- gnu/build/file-systems.scm | 167 +------------------------- gnu/build/vm.scm | 2 +- gnu/local.mk | 1 + gnu/system/file-systems.scm | 22 +--- gnu/system/uuid.scm | 227 ++++++++++++++++++++++++++++++++++++ 5 files changed, 234 insertions(+), 185 deletions(-) create mode 100644 gnu/system/uuid.scm diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index fbaf158951..32885f1d2e 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -19,6 +19,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu build file-systems) + #:use-module (gnu system uuid) #:use-module (guix build utils) #:use-module (guix build bournish) #:use-module (guix build syscalls) @@ -26,9 +27,6 @@ #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:use-module (ice-9 rdelim) - #:use-module (ice-9 format) - #:use-module (ice-9 regex) - #:use-module (ice-9 vlist) #:use-module (system foreign) #:autoload (system repl repl) (start-repl) #:use-module (srfi srfi-1) @@ -42,17 +40,6 @@ find-partition-by-luks-uuid canonicalize-device-spec - uuid->string - dce-uuid->string - string->uuid - string->dce-uuid - string->iso9660-uuid - string->ext2-uuid - string->ext3-uuid - string->ext4-uuid - string->btrfs-uuid - iso9660-uuid->string - bind-mount mount-flags->bit-mask @@ -98,20 +85,6 @@ takes a bytevector and returns #t when it's a valid superblock." (and (magic? block) block))))))))) -(define (sub-bytevector bv start size) - "Return a copy of the SIZE bytes of BV starting from offset START." - (let ((result (make-bytevector size))) - (bytevector-copy! bv start result 0 size) - result)) - -(define (latin1->string bv terminator) - "Return a string of BV, a latin1 bytevector, or #f. TERMINATOR is a predicate -that takes a number and returns #t when a termination character is found." - (let ((bytes (take-while (negate terminator) (bytevector->u8-list bv)))) - (if (null? bytes) - #f - (list->string (map integer->char bytes))))) - (define null-terminated-latin1->string (cut latin1->string <> zero?)) @@ -199,10 +172,6 @@ if DEVICE does not contain a btrfs file system." ;; . -(define-syntax %fat32-endianness - ;; Endianness of fat file systems. - (identifier-syntax (endianness little))) - (define (fat32-superblock? sblock) "Return #t when SBLOCK is a fat32 superblock." (bytevector=? (sub-bytevector sblock 82 8) @@ -217,12 +186,6 @@ if DEVICE does not contain a btrfs file system." "Return the Volume ID of a fat superblock SBLOCK as a 4-byte bytevector." (sub-bytevector sblock 67 4)) -(define (fat32-uuid->string uuid) - "Convert fat32 UUID, a 4-byte bytevector, to its string representation." - (let ((high (bytevector-uint-ref uuid 0 %fat32-endianness 2)) - (low (bytevector-uint-ref uuid 2 %fat32-endianness 2))) - (format #f "~:@(~x-~x~)" low high))) - (define (fat32-superblock-volume-name sblock) "Return the volume name of SBLOCK as a string of at most 11 characters, or #f if SBLOCK has no volume name. The volume name is a latin1 string. @@ -244,27 +207,6 @@ Trailing spaces are trimmed." ;; . -(define %iso9660-uuid-rx - ;; Y m d H M S ss - (make-regexp "^([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})$")) - -(define (string->iso9660-uuid str) - "Parse STR as a ISO9660 UUID (which is really a timestamp - see /dev/disk/by-uuid). -Return its contents as a 16-byte bytevector. Return #f if STR is not a valid -ISO9660 UUID representation." - (and=> (regexp-exec %iso9660-uuid-rx str) - (lambda (match) - (letrec-syntax ((match-numerals - (syntax-rules () - ((_ index (name rest ...) body) - (let ((name (match:substring match index))) - (match-numerals (+ 1 index) (rest ...) body))) - ((_ index () body) - body)))) - (match-numerals 1 (year month day hour minute second hundredths) - (string->utf8 (string-append year month day - hour minute second hundredths))))))) - (define (iso9660-superblock? sblock) "Return #t when SBLOCK is an iso9660 volume descriptor." (bytevector=? (sub-bytevector sblock 1 6) @@ -311,20 +253,6 @@ SBLOCK as a bytevector. If that's not set, returns the creation time." modification-time))) (sub-bytevector time 0 16))) ; strips GMT offset. -(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." @@ -511,99 +439,6 @@ were found." (define find-partition-by-luks-uuid (find-partition luks-partition-uuid-predicate)) - -;;; -;;; UUIDs. -;;; - -(define-syntax %network-byte-order - (identifier-syntax (endianness big))) - -(define (dce-uuid->string uuid) - "Convert UUID, a 16-byte bytevector, to its string representation, something -like \"6b700d61-5550-48a1-874c-a3d86998990e\"." - ;; See . - (let ((time-low (bytevector-uint-ref uuid 0 %network-byte-order 4)) - (time-mid (bytevector-uint-ref uuid 4 %network-byte-order 2)) - (time-hi (bytevector-uint-ref uuid 6 %network-byte-order 2)) - (clock-seq (bytevector-uint-ref uuid 8 %network-byte-order 2)) - (node (bytevector-uint-ref uuid 10 %network-byte-order 6))) - (format #f "~8,'0x-~4,'0x-~4,'0x-~4,'0x-~12,'0x" - time-low time-mid time-hi clock-seq node))) - -(define %uuid-rx - ;; The regexp of a UUID. - (make-regexp "^([[:xdigit:]]{8})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{12})$")) - -(define (string->dce-uuid str) - "Parse STR as a DCE UUID (see ) and -return its contents as a 16-byte bytevector. Return #f if STR is not a valid -UUID representation." - (and=> (regexp-exec %uuid-rx str) - (lambda (match) - (letrec-syntax ((hex->number - (syntax-rules () - ((_ index) - (string->number (match:substring match index) - 16)))) - (put! - (syntax-rules () - ((_ bv index (number len) rest ...) - (begin - (bytevector-uint-set! bv index number - (endianness big) len) - (put! bv (+ index len) rest ...))) - ((_ bv index) - bv)))) - (let ((time-low (hex->number 1)) - (time-mid (hex->number 2)) - (time-hi (hex->number 3)) - (clock-seq (hex->number 4)) - (node (hex->number 5)) - (uuid (make-bytevector 16))) - (put! uuid 0 - (time-low 4) (time-mid 2) (time-hi 2) - (clock-seq 2) (node 6))))))) - -(define string->ext2-uuid string->dce-uuid) -(define string->ext3-uuid string->dce-uuid) -(define string->ext4-uuid string->dce-uuid) -(define string->btrfs-uuid string->dce-uuid) - -(define-syntax vhashq - (syntax-rules (=>) - ((_) - vlist-null) - ((_ (key others ... => value) rest ...) - (vhash-consq key value - (vhashq (others ... => value) rest ...))) - ((_ (=> value) rest ...) - (vhashq rest ...)))) - -(define %uuid-parsers - (vhashq - ('dce 'ext2 'ext3 'ext4 'btrfs 'luks => string->dce-uuid) - ('iso9660 => string->iso9660-uuid))) - -(define %uuid-printers - (vhashq - ('dce 'ext2 'ext3 'ext4 'btrfs 'luks => dce-uuid->string) - ('iso9660 => iso9660-uuid->string) - ('fat32 'fat => fat32-uuid->string))) - -(define* (string->uuid str #:key (type 'dce)) - "Parse STR as a UUID of the given TYPE. On success, return the -corresponding bytevector; otherwise return #f." - (match (vhash-assq type %uuid-parsers) - (#f #f) - ((_ . (? procedure? parse)) (parse str)))) - -(define* (uuid->string bv #:key (type 'dce)) - "Convert BV, a bytevector, to the UUID string representation for TYPE." - (match (vhash-assq type %uuid-printers) - (#f #f) - ((_ . (? procedure? unparse)) (unparse bv)))) - (define* (canonicalize-device-spec spec #:optional (title 'any)) "Return the device name corresponding to SPEC. TITLE is a symbol, one of diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index ad67a3727f..6da4fa654e 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -26,7 +26,7 @@ #:use-module (guix build syscalls) #:use-module (gnu build linux-boot) #:use-module (gnu build install) - #:use-module (gnu build file-systems) + #:use-module (gnu system uuid) #:use-module (guix records) #:use-module ((guix combinators) #:select (fold2)) #:use-module (ice-9 format) diff --git a/gnu/local.mk b/gnu/local.mk index e98ee6d7fe..c1bc391101 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -468,6 +468,7 @@ GNU_SYSTEM_MODULES = \ %D%/system/nss.scm \ %D%/system/pam.scm \ %D%/system/shadow.scm \ + %D%/system/uuid.scm \ %D%/system/vm.scm \ \ %D%/build/activation.scm \ diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index bbac23fbdf..dd30559d7e 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -20,9 +20,10 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (guix records) - #:use-module ((gnu build file-systems) - #:select (string->uuid uuid->string)) - #:re-export (string->uuid + #:use-module ((gnu system uuid) + #:select (uuid string->uuid uuid->string)) + #:re-export (uuid ;backward compatibility + string->uuid uuid->string) #:export ( file-system @@ -44,7 +45,6 @@ file-system->spec spec->file-system specification->file-system-mapping - uuid %fuse-control-file-system %binary-format-file-system @@ -186,20 +186,6 @@ TARGET in the other system." (target spec) (writable? writable?))))) -(define-syntax uuid - (lambda (s) - "Return the bytevector corresponding to the given UUID representation." - (syntax-case s () - ((_ str) - (string? (syntax->datum #'str)) - ;; A literal string: do the conversion at expansion time. - (let ((bv (string->uuid (syntax->datum #'str)))) - (unless bv - (syntax-violation 'uuid "invalid UUID" s)) - (datum->syntax #'str bv))) - ((_ str) - #'(string->uuid str))))) - ;;; ;;; Common file systems. diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm new file mode 100644 index 0000000000..64dad5a374 --- /dev/null +++ b/gnu/system/uuid.scm @@ -0,0 +1,227 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016, 2017 Ludovic Courtès +;;; Copyright © 2017 Danny Milosavljevic +;;; +;;; 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 system uuid) + #:use-module (srfi srfi-1) + #:use-module (rnrs bytevectors) + #:use-module (ice-9 match) + #:use-module (ice-9 vlist) + #:use-module (ice-9 regex) + #:use-module (ice-9 format) + #:export (uuid + uuid->string + dce-uuid->string + string->uuid + string->dce-uuid + string->iso9660-uuid + string->ext2-uuid + string->ext3-uuid + string->ext4-uuid + string->btrfs-uuid + iso9660-uuid->string + + ;; XXX: For lack of a better place. + sub-bytevector + latin1->string)) + + +;;; +;;; Tools that lack a better place. +;;; + +(define (sub-bytevector bv start size) + "Return a copy of the SIZE bytes of BV starting from offset START." + (let ((result (make-bytevector size))) + (bytevector-copy! bv start result 0 size) + result)) + +(define (latin1->string bv terminator) + "Return a string of BV, a latin1 bytevector, or #f. TERMINATOR is a predicate +that takes a number and returns #t when a termination character is found." + (let ((bytes (take-while (negate terminator) (bytevector->u8-list bv)))) + (if (null? bytes) + #f + (list->string (map integer->char bytes))))) + + +;;; +;;; DCE UUIDs. +;;; + +(define-syntax %network-byte-order + (identifier-syntax (endianness big))) + +(define (dce-uuid->string uuid) + "Convert UUID, a 16-byte bytevector, to its string representation, something +like \"6b700d61-5550-48a1-874c-a3d86998990e\"." + ;; See . + (let ((time-low (bytevector-uint-ref uuid 0 %network-byte-order 4)) + (time-mid (bytevector-uint-ref uuid 4 %network-byte-order 2)) + (time-hi (bytevector-uint-ref uuid 6 %network-byte-order 2)) + (clock-seq (bytevector-uint-ref uuid 8 %network-byte-order 2)) + (node (bytevector-uint-ref uuid 10 %network-byte-order 6))) + (format #f "~8,'0x-~4,'0x-~4,'0x-~4,'0x-~12,'0x" + time-low time-mid time-hi clock-seq node))) + +(define %uuid-rx + ;; The regexp of a UUID. + (make-regexp "^([[:xdigit:]]{8})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{12})$")) + +(define (string->dce-uuid str) + "Parse STR as a DCE UUID (see ) and +return its contents as a 16-byte bytevector. Return #f if STR is not a valid +UUID representation." + (and=> (regexp-exec %uuid-rx str) + (lambda (match) + (letrec-syntax ((hex->number + (syntax-rules () + ((_ index) + (string->number (match:substring match index) + 16)))) + (put! + (syntax-rules () + ((_ bv index (number len) rest ...) + (begin + (bytevector-uint-set! bv index number + (endianness big) len) + (put! bv (+ index len) rest ...))) + ((_ bv index) + bv)))) + (let ((time-low (hex->number 1)) + (time-mid (hex->number 2)) + (time-hi (hex->number 3)) + (clock-seq (hex->number 4)) + (node (hex->number 5)) + (uuid (make-bytevector 16))) + (put! uuid 0 + (time-low 4) (time-mid 2) (time-hi 2) + (clock-seq 2) (node 6))))))) + + +;;; +;;; ISO-9660. +;;; + +;; . + +(define %iso9660-uuid-rx + ;; Y m d H M S ss + (make-regexp "^([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})$")) +(define (string->iso9660-uuid str) + "Parse STR as a ISO9660 UUID (which is really a timestamp - see /dev/disk/by-uuid). +Return its contents as a 16-byte bytevector. Return #f if STR is not a valid +ISO9660 UUID representation." + (and=> (regexp-exec %iso9660-uuid-rx str) + (lambda (match) + (letrec-syntax ((match-numerals + (syntax-rules () + ((_ index (name rest ...) body) + (let ((name (match:substring match index))) + (match-numerals (+ 1 index) (rest ...) body))) + ((_ index () body) + body)))) + (match-numerals 1 (year month day hour minute second hundredths) + (string->utf8 (string-append year month day + hour minute second hundredths))))))) +(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) "-")))) + + +;;; +;;; FAT32. +;;; + +(define-syntax %fat32-endianness + ;; Endianness of FAT file systems. + (identifier-syntax (endianness little))) + +(define (fat32-uuid->string uuid) + "Convert fat32 UUID, a 4-byte bytevector, to its string representation." + (let ((high (bytevector-uint-ref uuid 0 %fat32-endianness 2)) + (low (bytevector-uint-ref uuid 2 %fat32-endianness 2))) + (format #f "~:@(~x-~x~)" low high))) + + +;;; +;;; Generic interface. +;;; + +(define string->ext2-uuid string->dce-uuid) +(define string->ext3-uuid string->dce-uuid) +(define string->ext4-uuid string->dce-uuid) +(define string->btrfs-uuid string->dce-uuid) + +(define-syntax vhashq + (syntax-rules (=>) + ((_) + vlist-null) + ((_ (key others ... => value) rest ...) + (vhash-consq key value + (vhashq (others ... => value) rest ...))) + ((_ (=> value) rest ...) + (vhashq rest ...)))) + +(define %uuid-parsers + (vhashq + ('dce 'ext2 'ext3 'ext4 'btrfs 'luks => string->dce-uuid) + ('iso9660 => string->iso9660-uuid))) + +(define %uuid-printers + (vhashq + ('dce 'ext2 'ext3 'ext4 'btrfs 'luks => dce-uuid->string) + ('iso9660 => iso9660-uuid->string) + ('fat32 'fat => fat32-uuid->string))) + +(define* (string->uuid str #:key (type 'dce)) + "Parse STR as a UUID of the given TYPE. On success, return the +corresponding bytevector; otherwise return #f." + (match (vhash-assq type %uuid-parsers) + (#f #f) + ((_ . (? procedure? parse)) (parse str)))) + +(define* (uuid->string bv #:key (type 'dce)) + "Convert BV, a bytevector, to the UUID string representation for TYPE." + (match (vhash-assq type %uuid-printers) + (#f #f) + ((_ . (? procedure? unparse)) (unparse bv)))) + +(define-syntax uuid + (lambda (s) + "Return the bytevector corresponding to the given UUID representation." + (syntax-case s () + ((_ str) + (string? (syntax->datum #'str)) + ;; A literal string: do the conversion at expansion time. + (let ((bv (string->uuid (syntax->datum #'str)))) + (unless bv + (syntax-violation 'uuid "invalid UUID" s)) + (datum->syntax #'str bv))) + ((_ str) + #'(string->uuid str))))) From d1ff5f9db3e124af9f8aaa22d3758208f5080c50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 6 Sep 2017 09:22:59 +0200 Subject: [PATCH 126/333] services: file-system: Use 'file-system->spec'. * gnu/services/base.scm (file-system-shepherd-service): Use 'file-system->spec' instead of in-line code. --- gnu/services/base.scm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 23ef2d4bf0..b8feb725d9 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -29,6 +29,7 @@ #:use-module (gnu services networking) #:use-module (gnu system pam) #:use-module (gnu system shadow) ; 'user-account', etc. + #:use-module (gnu system uuid) #:use-module (gnu system file-systems) ; 'file-system', etc. #:use-module (gnu system mapped-devices) #:use-module ((gnu system linux-initrd) @@ -277,12 +278,6 @@ FILE-SYSTEM." "Return the shepherd service for @var{file-system}, or @code{#f} if @var{file-system} is not auto-mounted upon boot." (let ((target (file-system-mount-point file-system)) - (device (file-system-device file-system)) - (type (file-system-type file-system)) - (title (file-system-title file-system)) - (flags (file-system-flags file-system)) - (options (file-system-options file-system)) - (check? (file-system-check? file-system)) (create? (file-system-create-mount-point? file-system)) (dependencies (file-system-dependencies file-system)) (packages (file-system-packages (list file-system)))) @@ -311,8 +306,7 @@ FILE-SYSTEM." '#$packages)))) (lambda () (mount-file-system - `(#$device #$title #$target #$type #$flags - #$options #$check?) + '#$(file-system->spec file-system) #:root "/")) (lambda () (setenv "PATH" $PATH))) From 9b336338cdc0e46a3bf7a2913c2f61cd2410c4d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 6 Sep 2017 09:28:28 +0200 Subject: [PATCH 127/333] system: Introduce a disjoint UUID type. Conceptually a UUID is just a bytevector. However, there's software out there such as GRUB that relies on the string representation of different UUID types (e.g., the string representation of DCE UUIDs differs from that of ISO-9660 UUIDs, even if they are actually bytevectors of the same length). This new record type allows us to preserve information about the type of UUID so we can eventually convert it to a string using the right representation. * gnu/system/uuid.scm (): New record type. (bytevector->uuid): New procedure. (uuid): Return calls to 'make-uuid'. (uuid->string): Rewrite using 'match-lambda*' to accept a single 'uuid?' argument. * gnu/bootloader/grub.scm (grub-root-search): Check for 'uuid?' instead of 'bytevector?'. * gnu/system.scm (bootable-kernel-arguments): Check whether ROOT-DEVICE is 'uuid?'. (read-boot-parameters): Use 'bytevector->uuid' when the store device is a bytevector. (read-boot-parameters-file): Check for 'uuid?' instead of 'bytevector?'. (device->sexp): New procedure. (operating-system-boot-parameters-file): Use it for 'root-device' and 'store'. (operating-system-bootcfg): Remove conditional in definition of 'root-device'. * gnu/system/file-systems.scm (file-system->spec): Check for 'uuid?' on DEVICE and take its bytevector. * gnu/system/mapped-devices.scm (open-luks-device): Likewise. * gnu/system/vm.scm (iso9660-image): Call 'uuid-bytevector' for the #:volume-uuid argument. --- gnu/bootloader/grub.scm | 4 +-- gnu/system.scm | 38 +++++++++++++++++++-------- gnu/system/file-systems.scm | 8 +++--- gnu/system/mapped-devices.scm | 7 +++-- gnu/system/uuid.scm | 48 +++++++++++++++++++++++++++++------ gnu/system/vm.scm | 4 ++- 6 files changed, 82 insertions(+), 27 deletions(-) diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index a9f0875f36..96e53c5c2b 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -30,7 +30,7 @@ #:use-module (gnu artwork) #:use-module (gnu system) #:use-module (gnu bootloader) - #:use-module (gnu system file-systems) + #:use-module (gnu system uuid) #:autoload (gnu packages bootloaders) (grub) #:autoload (gnu packages compression) (gzip) #:autoload (gnu packages gtk) (guile-cairo guile-rsvg) @@ -300,7 +300,7 @@ code." (match device ;; Preferably refer to DEVICE by its UUID or label. This is more ;; efficient and less ambiguous, see . - ((? bytevector? uuid) + ((? uuid? uuid) (format #f "search --fs-uuid --set ~a" (uuid->string device))) ((? string? label) diff --git a/gnu/system.scm b/gnu/system.scm index 6b35e3c0c7..a8d2a81316 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -54,6 +54,7 @@ #:use-module (gnu system locale) #:use-module (gnu system pam) #:use-module (gnu system linux-initrd) + #:use-module (gnu system uuid) #:use-module (gnu system file-systems) #:use-module (gnu system mapped-devices) #:use-module (ice-9 match) @@ -128,7 +129,14 @@ (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) + (cons* (string-append "--root=" + (if (uuid? root-device) + + ;; Note: Always use the DCE format because that's + ;; what (gnu build linux-boot) expects for the + ;; '--root' kernel command-line option. + (uuid->string (uuid-bytevector root-device) 'dce) + root-device)) #~(string-append "--system=" #$system.drv) #~(string-append "--load=" #$system.drv "/boot") kernel-arguments)) @@ -261,6 +269,8 @@ directly by the user." (store-device (match (assq 'store rest) + (('store ('device (? bytevector? bv)) _ ...) + (bytevector->uuid bv)) (('store ('device device) _ ...) device) (_ ;the old format @@ -289,16 +299,12 @@ 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))) + system root))) #f))) (define (boot-parameters->menu-entry conf) @@ -875,9 +881,7 @@ listed in OS. The C library expects to find it under (mlet* %store-monad ((system (operating-system-derivation os)) (root-fs -> (operating-system-root-file-system os)) - (root-device -> (if (eq? 'uuid (file-system-title root-fs)) - (uuid->string (file-system-device root-fs)) - (file-system-device root-fs))) + (root-device -> (file-system-device root-fs)) (params (operating-system-boot-parameters os system root-device)) (entry -> (boot-parameters->menu-entry params)) (bootloader-conf -> (operating-system-bootloader os))) @@ -917,6 +921,15 @@ kernel arguments for that derivation to ." (store-device (fs->boot-device store)) (store-mount-point (file-system-mount-point store)))))) +(define (device->sexp device) + "Serialize DEVICE as an sexp (really, as an object with a read syntax.)" + (match device + ((? uuid? uuid) + ;; TODO: Preserve the type of UUID. + (uuid-bytevector uuid)) + (_ + device))) + (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. @@ -934,14 +947,17 @@ being stored into the \"parameters\" file)." #~(boot-parameters (version 0) (label #$(boot-parameters-label params)) - (root-device #$(boot-parameters-root-device params)) + (root-device + #$(device->sexp + (boot-parameters-root-device params))) (kernel #$(boot-parameters-kernel params)) (kernel-arguments #$(boot-parameters-kernel-arguments params)) (initrd #$(boot-parameters-initrd params)) (bootloader-name #$(boot-parameters-bootloader-name params)) (store - (device #$(boot-parameters-store-device params)) + (device + #$(device->sexp (boot-parameters-store-device params))) (mount-point #$(boot-parameters-store-mount-point params)))) #:set-load-path? #f))) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index dd30559d7e..52f16676f5 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -20,8 +20,7 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (guix records) - #:use-module ((gnu system uuid) - #:select (uuid string->uuid uuid->string)) + #:use-module (gnu system uuid) #:re-export (uuid ;backward compatibility string->uuid uuid->string) @@ -157,7 +156,10 @@ store--e.g., if FS is the root file system." initrd code." (match fs (($ device title mount-point type flags options _ _ check?) - (list device title mount-point type flags options check?)))) + (list (if (uuid? device) + (uuid-bytevector device) + device) + title mount-point type flags options check?)))) (define (spec->file-system sexp) "Deserialize SEXP, a list, to the corresponding object." diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index 18b9f5b4b6..17cf6b7163 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.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 ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2017 Mark H Weaver ;;; @@ -24,6 +24,7 @@ #:use-module (guix modules) #:use-module (gnu services) #:use-module (gnu services shepherd) + #:use-module (gnu system uuid) #:autoload (gnu packages cryptsetup) (cryptsetup-static) #:autoload (gnu packages linux) (mdadm-static) #:use-module (srfi srfi-1) @@ -99,7 +100,9 @@ 'cryptsetup'." (with-imported-modules (source-module-closure '((gnu build file-systems))) - #~(let ((source #$source)) + #~(let ((source #$(if (uuid? source) + (uuid-bytevector source) + source))) ;; XXX: 'use-modules' should be at the top level. (use-modules (rnrs bytevectors) ;bytevector? ((gnu build file-systems) diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm index 64dad5a374..60626ebb12 100644 --- a/gnu/system/uuid.scm +++ b/gnu/system/uuid.scm @@ -19,12 +19,19 @@ (define-module (gnu system uuid) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:use-module (ice-9 vlist) #:use-module (ice-9 regex) #:use-module (ice-9 format) #:export (uuid + uuid? + uuid-type + uuid-bytevector + + bytevector->uuid + uuid->string dce-uuid->string string->uuid @@ -206,15 +213,27 @@ corresponding bytevector; otherwise return #f." (#f #f) ((_ . (? procedure? parse)) (parse str)))) -(define* (uuid->string bv #:key (type 'dce)) - "Convert BV, a bytevector, to the UUID string representation for TYPE." - (match (vhash-assq type %uuid-printers) - (#f #f) - ((_ . (? procedure? unparse)) (unparse bv)))) +;; High-level UUID representation that carries its type with it. +;; +;; This is necessary to serialize bytevectors with the right printer in some +;; circumstances. For instance, GRUB "search --fs-uuid" command compares the +;; string representation of UUIDs, not the raw bytes; thus, when emitting a +;; GRUB 'search' command, we need to procedure the right string representation +;; (see ). +(define-record-type + (make-uuid type bv) + uuid? + (type uuid-type) ;'dce | 'iso9660 | ... + (bv uuid-bytevector)) + +(define* (bytevector->uuid bv #:optional (type 'dce)) + "Return a UUID object make of BV and TYPE." + (make-uuid type bv)) (define-syntax uuid (lambda (s) - "Return the bytevector corresponding to the given UUID representation." + "Return the UUID object corresponding to the given UUID representation." + ;; TODO: Extend to types other than DCE. (syntax-case s () ((_ str) (string? (syntax->datum #'str)) @@ -222,6 +241,19 @@ corresponding bytevector; otherwise return #f." (let ((bv (string->uuid (syntax->datum #'str)))) (unless bv (syntax-violation 'uuid "invalid UUID" s)) - (datum->syntax #'str bv))) + #`(make-uuid 'dce #,(datum->syntax #'str bv)))) ((_ str) - #'(string->uuid str))))) + #'(make-uuid 'dce (string->uuid str)))))) + +(define uuid->string + ;; Convert the given bytevector or UUID object, to the corresponding UUID + ;; string representation. + (match-lambda* + (((? bytevector? bv)) + (uuid->string bv 'dce)) + (((? bytevector? bv) type) + (match (vhash-assq type %uuid-printers) + (#f #f) + ((_ . (? procedure? unparse)) (unparse bv)))) + (((? uuid? uuid)) + (uuid->string (uuid-bytevector uuid) (uuid-type uuid))))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index b106dff0a8..92f0444ed8 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -57,6 +57,7 @@ #:use-module (gnu system file-systems) #:use-module (gnu system) #:use-module (gnu services) + #:use-module (gnu system uuid) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -231,7 +232,8 @@ INPUTS is a list of inputs (as for packages)." #:register-closures? #$register-closures? #:closures graphs #:volume-id #$file-system-label - #:volume-uuid #$file-system-uuid) + #:volume-uuid #$(and=> file-system-uuid + uuid-bytevector)) (reboot)))) #:system system #:make-disk-image? #f From 075681d3501082c6e22df8abf29dfe89d85effc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 6 Sep 2017 10:22:58 +0200 Subject: [PATCH 128/333] system: Serialize the UUID type in the "parameters" file. * gnu/system.scm (read-boot-parameters)[device->sexp]: New procedure. Use it for 'root-device' and 'store-device'. (device->sexp): Serialize the UUID type in addition to its bytevector. --- gnu/system.scm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index a8d2a81316..6f795d6292 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -234,6 +234,15 @@ directly by the user." (define (read-boot-parameters port) "Read boot parameters from PORT and return the corresponding object or #f if the format is unrecognized." + (define device-sexp->device + (match-lambda + (('uuid (? symbol? type) (? bytevector? bv)) + (bytevector->uuid bv type)) + ((? bytevector? bv) ;old format + (bytevector->uuid bv 'dce)) + ((? string? device) + device))) + (match (read port) (('boot-parameters ('version 0) ('label label) ('root-device root) @@ -241,7 +250,7 @@ directly by the user." rest ...) (boot-parameters (label label) - (root-device root) + (root-device (device->sexp root)) (bootloader-name (match (assq 'bootloader-name rest) @@ -269,10 +278,8 @@ directly by the user." (store-device (match (assq 'store rest) - (('store ('device (? bytevector? bv)) _ ...) - (bytevector->uuid bv)) (('store ('device device) _ ...) - device) + (device-sexp->device device)) (_ ;the old format ;; Root might be a device path like "/dev/sda1", which is not a ;; suitable GRUB device identifier. @@ -925,8 +932,7 @@ kernel arguments for that derivation to ." "Serialize DEVICE as an sexp (really, as an object with a read syntax.)" (match device ((? uuid? uuid) - ;; TODO: Preserve the type of UUID. - (uuid-bytevector uuid)) + `(uuid ,(uuid-type uuid) ,(uuid-bytevector uuid))) (_ device))) From ce094b4663da6aa52d02f398a19e1d2892641b7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 6 Sep 2017 10:35:01 +0200 Subject: [PATCH 129/333] uuid: 'uuid' macro supports more UUID types. * gnu/system/uuid.scm (string->uuid): Turn 'type' into an optional argument. (uuid): Add clauses to allow for an optional 'type' parameter. --- gnu/system/uuid.scm | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm index 60626ebb12..1dd6a11339 100644 --- a/gnu/system/uuid.scm +++ b/gnu/system/uuid.scm @@ -206,7 +206,7 @@ ISO9660 UUID representation." ('iso9660 => iso9660-uuid->string) ('fat32 'fat => fat32-uuid->string))) -(define* (string->uuid str #:key (type 'dce)) +(define* (string->uuid str #:optional (type 'dce)) "Parse STR as a UUID of the given TYPE. On success, return the corresponding bytevector; otherwise return #f." (match (vhash-assq type %uuid-parsers) @@ -233,17 +233,23 @@ corresponding bytevector; otherwise return #f." (define-syntax uuid (lambda (s) "Return the UUID object corresponding to the given UUID representation." - ;; TODO: Extend to types other than DCE. - (syntax-case s () - ((_ str) - (string? (syntax->datum #'str)) + (syntax-case s (quote) + ((_ str (quote type)) + (and (string? (syntax->datum #'str)) + (identifier? #'type)) ;; A literal string: do the conversion at expansion time. - (let ((bv (string->uuid (syntax->datum #'str)))) + (let ((bv (string->uuid (syntax->datum #'str) + (syntax->datum #'type)))) (unless bv (syntax-violation 'uuid "invalid UUID" s)) - #`(make-uuid 'dce #,(datum->syntax #'str bv)))) + #`(make-uuid 'type #,(datum->syntax s bv)))) ((_ str) - #'(make-uuid 'dce (string->uuid str)))))) + (string? (syntax->datum #'str)) + #'(uuid str 'dce)) + ((_ str) + #'(make-uuid 'dce (string->uuid str 'dce))) + ((_ str type) + #'(make-uuid type (string->uuid str type)))))) (define uuid->string ;; Convert the given bytevector or UUID object, to the corresponding UUID From fd3b4b985d5bbd5d91362aa91079c1155018fa34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 6 Sep 2017 23:12:32 +0200 Subject: [PATCH 130/333] vm: Allow users to specify a UUID for the root partition. * gnu/system/vm.scm (qemu-image): Add #:file-system-uuid parameter; pass it as the 'uuid' field of the root partition. --- gnu/system/vm.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 92f0444ed8..9e900182ae 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -248,6 +248,7 @@ INPUTS is a list of inputs (as for packages)." (disk-image-format "qcow2") (file-system-type "ext4") file-system-label + file-system-uuid os-drv bootcfg-drv bootloader @@ -257,7 +258,10 @@ INPUTS is a list of inputs (as for packages)." "Return a bootable, stand-alone QEMU image of type DISK-IMAGE-FORMAT (e.g., 'qcow2' or 'raw'), with a root partition of type FILE-SYSTEM-TYPE. Optionally, FILE-SYSTEM-LABEL can be specified as the volume name for the root -partition. The returned image is a full disk image that runs OS-DERIVATION, +partition; likewise FILE-SYSTEM-UUID, if true, specifies the UUID of the root +partition (a UUID object). + +The returned image is a full disk image that runs OS-DERIVATION, with a GRUB installation that uses GRUB-CONFIGURATION as its configuration file (GRUB-CONFIGURATION must be the name of a file in the VM.) @@ -307,6 +311,8 @@ the image." (partitions (list (partition (size root-size) (label #$file-system-label) + (uuid #$(and=> file-system-uuid + uuid-bytevector)) (file-system #$file-system-type) (flags '(boot)) (initializer initialize)) From 5f7fe1c57ecb9525aa7e13e38af2aab022bae078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 6 Sep 2017 23:16:09 +0200 Subject: [PATCH 131/333] vm: Generate a UUID to identify the root file system. This makes collisions less likely than when using a label to look up the partition. See . * gnu/system/vm.scm (operating-system-uuid): New procedure. (system-disk-image): Define 'root-uuid' and use it for the root file system. Pass it to 'iso9660-image' and 'qemu-image'. --- gnu/system/vm.scm | 51 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 9e900182ae..78143e4f7a 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -61,6 +61,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:export (expression->derivation-in-linux-vm @@ -350,6 +351,35 @@ the image." ;;; VM and disk images. ;;; +(define* (operating-system-uuid os #:optional (type 'dce)) + "Compute UUID object with a deterministic \"UUID\" for OS, of the given +TYPE (one of 'iso9660 or 'dce). Return a UUID object." + (if (eq? type 'iso9660) + (let ((pad (compose (cut string-pad <> 2 #\0) + number->string)) + (h (hash (operating-system-services os) 3600))) + (bytevector->uuid + (string->iso9660-uuid + (string-append "1970-01-01-" + (pad (hash (operating-system-host-name os) 24)) "-" + (pad (quotient h 60)) "-" + (pad (modulo h 60)) "-" + (pad (hash (operating-system-file-systems os) 100)))) + 'iso9660)) + (bytevector->uuid + (uint-list->bytevector + (list (hash file-system-type + (expt 2 32)) + (hash (operating-system-host-name os) + (expt 2 32)) + (hash (operating-system-services os) + (expt 2 32)) + (hash (operating-system-file-systems os) + (expt 2 32))) + (endianness little) + 4) + type))) + (define* (system-disk-image os #:key (name "disk-image") @@ -366,12 +396,20 @@ to USB sticks meant to be read-only." (if (string=? "iso9660" file-system-type) string-upcase identity)) + (define root-label - ;; Volume name of the root file system. Since we don't know which device - ;; will hold it, we use the volume name to find it (using the UUID would - ;; be even better, but somewhat less convenient.) + ;; Volume name of the root file system. (normalize-label "GuixSD_image")) + (define root-uuid + ;; UUID of the root file system, computed in a deterministic fashion. + ;; This is what we use to locate the root file system so it has to be + ;; different from the user's own file system UUIDs. + (operating-system-uuid os + (if (string=? file-system-type "iso9660") + 'iso9660 + 'dce))) + (define file-systems-to-keep (remove (lambda (fs) (string=? (file-system-mount-point fs) "/")) @@ -395,8 +433,8 @@ to USB sticks meant to be read-only." ;; Force our own root file system. (file-systems (cons (file-system (mount-point "/") - (device root-label) - (title 'label) + (device root-uuid) + (title 'uuid) (type file-system-type)) file-systems-to-keep))))) @@ -405,7 +443,7 @@ to USB sticks meant to be read-only." (if (string=? "iso9660" file-system-type) (iso9660-image #:name name #:file-system-label root-label - #:file-system-uuid #f + #:file-system-uuid root-uuid #:os-drv os-drv #:register-closures? #t #:bootcfg-drv bootcfg @@ -422,6 +460,7 @@ to USB sticks meant to be read-only." #:disk-image-format "raw" #:file-system-type file-system-type #:file-system-label root-label + #:file-system-uuid root-uuid #:copy-inputs? #t #:register-closures? #t #:inputs `(("system" ,os-drv) From 7940188ebfb28fc36426924b16fdc8255a88acaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 11 Sep 2017 23:00:40 +0200 Subject: [PATCH 132/333] system: Fix typo in 'read-boot-parameters'. Fixes a regression introduced in commit 075681d3501082c6e22df8abf29dfe89d85effc1. * gnu/system.scm (read-boot-parameters): For 'root-device', use 'device-sexp->device', not 'device->sexp'. --- gnu/system.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/system.scm b/gnu/system.scm index 6f795d6292..bb7e8531ee 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -250,7 +250,7 @@ directly by the user." rest ...) (boot-parameters (label label) - (root-device (device->sexp root)) + (root-device (device-sexp->device root)) (bootloader-name (match (assq 'bootloader-name rest) From f435379762c682c83cde318004d7ed5deaab01b2 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Mon, 11 Sep 2017 19:15:33 +0200 Subject: [PATCH 133/333] gnu: mes: Update to 0.10. * gnu/packages/mes.scm (mes): Update to 0.10. --- gnu/packages/mes.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 9aba162f3d..f71339da23 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -58,7 +58,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") (let ((triplet "i686-unknown-linux-gnu")) (package (name "mes") - (version "0.9") + (version "0.10") (source (origin (method url-fetch) (uri (string-append "https://gitlab.com/janneke/mes" @@ -67,7 +67,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0ph0fvabpb7zhbk4zpacbp7m4b142ds17dq5dzn00m7dz8farw9r")))) + "0djmhnvha8phxgb4msysnjmy1nnllb08bnw4xhdayq8ppi4zdmcv")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (propagated-inputs From fa7647c6317c5d8a6e3a41b72c3f9e36828531da Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 11 Sep 2017 22:32:46 +0300 Subject: [PATCH 134/333] gnu: monero: Fix building on aarch64-linux. * gnu/packages/finance.scm (monero)[arguments]: Add a configure-flag to set architecture type on aarch64. --- gnu/packages/finance.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index a1848b308a..06b8f1c5ba 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Andreas Enge -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Carlo Zancanaro @@ -346,6 +346,9 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.") (arguments `(#:out-of-source? #t #:configure-flags '("-DBUILD_TESTS=ON" + ,@(if (string=? "aarch64-linux" (%current-system)) + '("-DARCH=armv8-a") + '()) "-DBUILD_GUI_DEPS=ON") #:phases (modify-phases %standard-phases From 42a6eaacebe4d4611f4c9e0f53772434e5d939e6 Mon Sep 17 00:00:00 2001 From: ng0 Date: Sun, 6 Aug 2017 17:22:41 +0000 Subject: [PATCH 135/333] gnu: Add caja. * gnu/packages/mate.scm (caja): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 58 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index c64e26124d..5962108655 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -24,8 +24,10 @@ #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) @@ -33,6 +35,7 @@ #:use-module (gnu packages xdisorg) #:use-module (gnu packages base) #:use-module (gnu packages xml) + #:use-module (gnu packages photo) #:use-module (gnu packages python)) (define-public mate-icon-theme @@ -205,3 +208,58 @@ the MATE desktop environment.") specification, the MATE menu layout configuration files, .directory files and assorted menu related utility programs.") (license (list license:gpl2+ license:lgpl2.0+)))) + +(define-public caja + (package + (name "caja") + (version "1.18.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0mljqcx7k8p27854zm7qzzn8ca6hs7hva9p43hp4p507z52caqmm")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:configure-flags '("--disable-update-mimedb") + #:tests? #f ; tests fail even with display set + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("glib:bin" ,glib "bin") + ("xorg-server" ,xorg-server) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("exempi" ,exempi) + ("gtk+" ,gtk+) + ("gvfs" ,gvfs) + ("libexif" ,libexif) + ("libnotify" ,libnotify) + ("libsm" ,libsm) + ("libxml2" ,libxml2) + ("mate-desktop" ,mate-desktop) + ("startup-notification" ,startup-notification))) + (home-page "https://mate-desktop.org/") + (synopsis "File manager for the MATE desktop") + (description + "Caja is the official file manager for the MATE desktop. +It allows for browsing directories, as well as previewing files and launching +applications associated with them. Caja is also responsible for handling the +icons on the MATE desktop. It works on local and remote filesystems.") + ;; There is a note about a TRADEMARKS_NOTICE file in COPYING which + ;; does not exist. It is safe to assume that this is of no concern + ;; for us. + (license license:gpl2+))) From 17df429ce66044e5f18a1d490cedf9a4a08da82f Mon Sep 17 00:00:00 2001 From: ng0 Date: Sun, 6 Aug 2017 18:29:40 +0000 Subject: [PATCH 136/333] gnu: Add mate-terminal. * gnu/packages/mate.scm (mate-terminal): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 5962108655..18b7371d3c 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -168,6 +168,47 @@ desktop and the mate-about program.") the MATE desktop environment.") (license license:lgpl2.1+))) +(define-public mate-terminal + (package + (name "mate-terminal") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1zihm609d2d9cw53ry385whshjl1dnkifpk41g1ddm9f58hv4da1")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("itstool" ,itstool) + ("gobject-introspection" ,gobject-introspection) + ("libxml2" ,libxml2) + ("yelp-tools" ,yelp-tools))) + (inputs + `(("dconf" ,dconf) + ("gtk+" ,gtk+) + ("libice" ,libice) + ("libsm" ,libsm) + ("libx11" ,libx11) + ("mate-desktop" ,mate-desktop) + ("pango" ,pango) + ("vte" ,vte))) + (home-page "https://mate-desktop.org/") + (synopsis "MATE Terminal Emulator") + (description + "MATE Terminal is a terminal emulation application that you can +use to access a shell. With it, you can run any application that +is designed to run on VT102, VT220, and xterm terminals. +MATE Terminal also has the ability to use multiple terminals +in a single window (tabs) and supports management of different +configurations (profiles).") + (license license:gpl3))) + (define-public mate-menus (package (name "mate-menus") From 4d26a340b58dfd73e0d87d2a4f37e185e11ef8f1 Mon Sep 17 00:00:00 2001 From: ng0 Date: Sun, 6 Aug 2017 18:03:17 +0000 Subject: [PATCH 137/333] gnu: Add marco. * gnu/packages/mate.scm (marco): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 18b7371d3c..600f977bac 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -28,6 +28,7 @@ #:use-module (gnu packages) #:use-module (gnu packages pkg-config) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages libcanberra) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) @@ -304,3 +305,54 @@ icons on the MATE desktop. It works on local and remote filesystems.") ;; does not exist. It is safe to assume that this is of no concern ;; for us. (license license:gpl2+))) + +(define-public marco + (package + (name "marco") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0lwbp9wyd66hl5d7g272l8g3k1pb9s4s2p9fb04750a58w87d8k5")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("itstool" ,itstool) + ("glib" ,glib) + ("gobject-introspection" ,gobject-introspection) + ("libxft" ,libxft) + ("libxml2" ,libxml2) + ("zenity" ,zenity))) + (inputs + `(("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libgtop" ,libgtop) + ("libice" ,libice) + ("libsm" ,libsm) + ("libx11" ,libx11) + ("libxcomposite" ,libxcomposite) + ("libxcursor" ,libxcursor) + ("libxdamage" ,libxdamage) + ("libxext" ,libxext) + ("libxfixes" ,libxfixes) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) + ("mate-desktop" ,mate-desktop) + ("pango" ,pango) + ("startup-notification" ,startup-notification))) + (home-page "https://mate-desktop.org/") + (synopsis "Window manager for the MATE desktop") + (description + "Marco is a minimal X window manager that uses GTK+ for drawing +window frames. It is aimed at non-technical users and is designed to integrate +well with the MATE desktop. It lacks some features that may be expected by +some users; these users may want to investigate other available window managers +for use with MATE or as a standalone window manager.") + (license license:gpl2+))) From a8376ca5bf25de00558c4b947fe548b442073a7f Mon Sep 17 00:00:00 2001 From: ng0 Date: Mon, 14 Aug 2017 17:18:06 +0000 Subject: [PATCH 138/333] gnu: Add mate-session-manager. * gnu/packages/mate.scm (mate-session-manager): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 600f977bac..94f62801f9 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -210,6 +210,37 @@ in a single window (tabs) and supports management of different configurations (profiles).") (license license:gpl3))) +(define-public mate-session-manager + (package + (name "mate-session-manager") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0i0xq6041x2qmb26x9bawx0qpfkgjn6x9w3phnm9s7rc4s0z20ll")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("xtrans" ,xtrans) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("gtk+" ,gtk+) + ("dbus-glib" ,dbus-glib) + ("libsm" ,libsm) + ("mate-desktop" ,mate-desktop))) + (home-page "https://mate-desktop.org/") + (synopsis "Session manager for MATE") + (description + "Mate-session contains the MATE session manager, as well as a +configuration program to choose applications starting on login.") + (license license:gpl2))) + (define-public mate-menus (package (name "mate-menus") From c3812bec8ef24400f5728146075b6411a3bf8161 Mon Sep 17 00:00:00 2001 From: ng0 Date: Mon, 14 Aug 2017 18:58:34 +0000 Subject: [PATCH 139/333] gnu: Add mate-panel. * gnu/packages/mate.scm (mate-panel): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 94f62801f9..17e6c0c020 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -282,6 +282,80 @@ specification, the MATE menu layout configuration files, .directory files and assorted menu related utility programs.") (license (list license:gpl2+ license:lgpl2.0+)))) +(define-public mate-panel + (package + (name "mate-panel") + (version "1.18.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1n565ff1n7jrfx223i3cl3m69wjda506nvbn8gra7m1jwdfzpbw1")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-zoneinfo-dir=" + (assoc-ref %build-inputs "tzdata") + "/share/zoneinfo") + "--with-in-process-applets=all") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-timezone-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((tzdata (assoc-ref inputs "tzdata"))) + (substitute* "applets/clock/system-timezone.h" + (("/usr/share/lib/zoneinfo/tab") + (string-append tzdata "/share/zoneinfo/zone.tab")) + (("/usr/share/zoneinfo") + (string-append tzdata "/share/zoneinfo")))) + #t)) + (add-after 'unpack 'fix-introspection-install-dir + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* '("configure") + (("`\\$PKG_CONFIG --variable=girdir gobject-introspection-1.0`") + (string-append "\"" out "/share/gir-1.0/\"")) + (("\\$\\(\\$PKG_CONFIG --variable=typelibdir gobject-introspection-1.0\\)") + (string-append out "/lib/girepository-1.0/"))) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("itstool" ,itstool) + ("xtrans" ,xtrans) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("dconf" ,dconf) + ("cairo" ,cairo) + ("dbus-glib" ,dbus-glib) + ("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libice" ,libice) + ("libmateweather" ,libmateweather) + ("librsvg" ,librsvg) + ("libsm" ,libsm) + ("libx11" ,libx11) + ("libxau" ,libxau) + ("libxml2" ,libxml2) + ("libxrandr" ,libxrandr) + ("libwnck" ,libwnck) + ("mate-desktop" ,mate-desktop) + ("mate-menus" ,mate-menus) + ("pango" ,pango) + ("tzdata" ,tzdata))) + (home-page "https://mate-desktop.org/") + (synopsis "Panel for MATE") + (description + "Mate-panel contains the MATE panel, the libmate-panel-applet library and +several applets. The applets supplied here include the Workspace Switcher, +the Window List, the Window Selector, the Notification Area, the Clock and the +infamous 'Wanda the Fish'.") + (license (list license:gpl2+ license:lgpl2.0+)))) + (define-public caja (package (name "caja") From 133cb8766c012d3dfc4f9081976ae90e8870535d Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 15 Aug 2017 20:23:59 +0000 Subject: [PATCH 140/333] gnu: Add libmatemixer. * gnu/packages/mate.scm (libmatemixer): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 17e6c0c020..00d371bed9 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages freedesktop) #:use-module (gnu packages libcanberra) + #:use-module (gnu packages linux) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) @@ -37,6 +38,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages xml) #:use-module (gnu packages photo) + #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python)) (define-public mate-icon-theme @@ -241,6 +243,36 @@ configurations (profiles).") configuration program to choose applications starting on login.") (license license:gpl2))) +(define-public libmatemixer + (package + (name "libmatemixer") + (version "1.18.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "09vyxnlnalws318gsafdfi5c6jwpp92pbafn1ddlqqds23ihk4mr")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("glib" ,glib) + ("pulseaudio" ,pulseaudio) + ("alsa-lib" ,alsa-lib))) + (home-page "https://mate-desktop.org/") + (synopsis "Mixer library for the MATE desktop") + (description + "Libmatemixer is a mixer library for MATE desktop. It provides an abstract +API allowing access to mixer functionality available in the PulseAudio and ALSA +sound systems.") + (license license:lgpl2.1))) + (define-public mate-menus (package (name "mate-menus") From 9c9909effb4ba97cf75552005004dde2d06a7b48 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 15 Aug 2017 20:53:08 +0000 Subject: [PATCH 141/333] gnu: Add libmatekbd. * gnu/packages/mate.scm (libmatekbd): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 00d371bed9..070731bc5b 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -273,6 +273,38 @@ API allowing access to mixer functionality available in the PulseAudio and ALSA sound systems.") (license license:lgpl2.1))) +(define-public libmatekbd + (package + (name "libmatekbd") + (version "1.18.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "030bl18qbjm7l92bp1bhs7v82bp8j3mv7c1j1a4gd89iz4611pq3")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("cairo" ,cairo) + ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("libx11" ,libx11) + ("libxklavier" ,libxklavier))) + (home-page "https://mate-desktop.org/") + (synopsis "MATE keyboard configuration library") + (description + "Libmatekbd is a keyboard configuration library for the +MATE desktop environment.") + (license license:lgpl2.1))) + (define-public mate-menus (package (name "mate-menus") From 0bb3d6bf3ab95a84752755152dd295f40f9c3539 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 15 Aug 2017 21:23:23 +0000 Subject: [PATCH 142/333] gnu: Add mate-settings-daemon. * gnu/packages/mate.scm (mate-settings-daemon): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 070731bc5b..bc745393c4 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -28,16 +28,19 @@ #:use-module (gnu packages) #:use-module (gnu packages pkg-config) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages fontutils) #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) + #:use-module (gnu packages gnuzilla) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) #:use-module (gnu packages base) #:use-module (gnu packages xml) #:use-module (gnu packages photo) + #:use-module (gnu packages polkit) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python)) @@ -243,6 +246,49 @@ configurations (profiles).") configuration program to choose applications starting on login.") (license license:gpl2))) +(define-public mate-settings-daemon + (package + (name "mate-settings-daemon") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "07b2jkxqv07njdrgkdck93d872p6lch1lrvi7ydnpicspg3rfid6")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("cairo" ,cairo) + ("dbus" ,dbus) + ("dbus-glib" ,dbus-glib) + ("dconf" ,dconf) + ("fontconfig" ,fontconfig) + ("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libmatekbd" ,libmatekbd) + ("libmatemixer" ,libmatemixer) + ("libnotify" ,libnotify) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxi" ,libxi) + ("libxklavier" ,libxklavier) + ("mate-desktop" ,mate-desktop) + ("nss" ,nss) + ("polkit" ,polkit) + ("startup-notification" ,startup-notification))) + (home-page "https://mate-desktop.org/") + (synopsis "Settings Daemon for MATE") + (description + "Mate-settings-daemon is a fork of gnome-settings-daemon.") + (license (list license:lgpl2.1 license:gpl2)))) + (define-public libmatemixer (package (name "libmatemixer") From da78e01b871b7b1971a49d5d40cc4f0af31eb1fa Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 23 Aug 2017 16:54:21 +0000 Subject: [PATCH 143/333] gnu: Add mate-applets. * gnu/packages/mate.scm (mate-applets): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 77 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index bc745393c4..1af6b50e9c 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -33,9 +33,12 @@ #:use-module (gnu packages linux) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) + #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) + #:use-module (gnu packages docbook) #:use-module (gnu packages gnuzilla) #:use-module (gnu packages xorg) + #:use-module (gnu packages documentation) #:use-module (gnu packages xdisorg) #:use-module (gnu packages base) #:use-module (gnu packages xml) @@ -392,6 +395,80 @@ specification, the MATE menu layout configuration files, .directory files and assorted menu related utility programs.") (license (list license:gpl2+ license:lgpl2.0+)))) +(define-public mate-applets + (package + (name "mate-applets") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1nplr8i1mxbxd7pqhcy8j69v25nsp5dk9fq7ffrmjmp39lrf3fh5")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("libxslt" ,libxslt) + ("yelp-tools" ,yelp-tools) + ("scrollkeeper" ,scrollkeeper) + ("gettext" ,gettext-minimal) + ("docbook-xml" ,docbook-xml) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("atk" ,atk) + ("dbus" ,dbus) + ("dbus-glib" ,dbus-glib) + ("glib" ,glib) + ("gucharmap" ,gucharmap) + ("gtk+" ,gtk+) + ("gtksourceview" ,gtksourceview) + ("libgtop" ,libgtop) + ("libmateweather" ,libmateweather) + ("libnotify" ,libnotify) + ("libx11" ,libx11) + ("libxml2" ,libxml2) + ("libwnck" ,libwnck) + ("mate-panel" ,mate-panel) + ("pango" ,pango) + ("polkit" ,polkit) ; either polkit or setuid + ("python" ,python-2) + ("upower" ,upower) + ("wireless-tools" ,wireless-tools))) + (propagated-inputs + `(("python-pygobject" ,python-pygobject))) + (home-page "https://mate-desktop.org/") + (synopsis "Various applets for the MATE Panel") + (description + "Mate-applets includes various small applications for Mate-panel: + +@enumerate +@item accessx-status: indicates keyboard accessibility settings, +including the current state of the keyboard, if those features are in use. +@item Battstat: monitors the power subsystem on a laptop. +@item Character palette: provides a convenient way to access +non-standard characters, such as accented characters, +mathematical symbols, special symbols, and punctuation marks. +@item MATE CPUFreq Applet: CPU frequency scaling monitor +@item Drivemount: lets you mount and unmount drives and file systems. +@item Geyes: pair of eyes which follow the mouse pointer around the screen. +@item Keyboard layout switcher: lets you assign different keyboard +layouts for different locales. +@item Modem Monitor: monitors the modem. +@item Invest: downloads current stock quotes from the Internet and +displays the quotes in a scrolling display in the applet. The +applet downloads the stock information from Yahoo! Finance. +@item System monitor: CPU, memory, network, swap file and resource. +@item Trash: lets you drag items to the trash folder. +@item Weather report: downloads weather information from the +U.S National Weather Service (NWS) servers, including the +Interactive Weather Information Network (IWIN). +@end enumerate\n") + (license (list license:gpl2+ license:lgpl2.0+ license:gpl3+)))) + (define-public mate-panel (package (name "mate-panel") From 4d553e0a9374e25f03a4ef2fd2aba783c47e5005 Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 23 Aug 2017 17:18:02 +0000 Subject: [PATCH 144/333] gnu: Add mate-media. * gnu/packages/mate.scm (mate-media): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 1af6b50e9c..b8b40569b9 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -469,6 +469,43 @@ Interactive Weather Information Network (IWIN). @end enumerate\n") (license (list license:gpl2+ license:lgpl2.0+ license:gpl3+)))) +(define-public mate-media + (package + (name "mate-media") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1l0j71d07898wb6ily09sj1xczwrmcw13wyhxwns7sxw592nwi04")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("gettext" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("cairo" ,cairo) + ("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libmatemixer" ,libmatemixer) + ("libxml2" ,libxml2) + ("mate-applets" ,mate-applets) + ("mate-desktop" ,mate-desktop) + ("mate-panel" ,mate-panel) + ("pango" ,pango) + ("startup-notification" ,startup-notification))) + (home-page "https://mate-desktop.org/") + (synopsis "Multimedia related programs for the MATE desktop") + (description + "Mate-media includes the MATE media tools for MATE, including +mate-volume-control, a MATE volume control application and applet.") + (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+)))) + (define-public mate-panel (package (name "mate-panel") From 16cd07c163f6d679d00b48867a9d551270adf0c6 Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 23 Aug 2017 18:36:16 +0000 Subject: [PATCH 145/333] gnu: Add mate-control-center. * gnu/packages/mate.scm (mate-control-center): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 65 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index b8b40569b9..ca1872a2f7 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -635,6 +635,71 @@ icons on the MATE desktop. It works on local and remote filesystems.") ;; for us. (license license:gpl2+))) +(define-public mate-control-center + (package + (name "mate-control-center") + (version "1.18.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0flnn0h8f5aqyccwrlv7qxchvr3kqmlfdga6wq28d55zkpv5m7dl")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("yelp-tools" ,yelp-tools) + ("desktop-file-utils" ,desktop-file-utils) + ("kbproto" ,kbproto) + ("randrproto" ,randrproto) + ("renderproto" ,renderproto) + ("scrnsaverproto" ,scrnsaverproto) + ("xextpro" ,xextproto) + ("xproto" ,xproto) + ("xmodmap" ,xmodmap) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("atk" ,atk) + ("cairo" ,cairo) + ("caja" ,caja) + ("dconf" ,dconf) + ("dbus" ,dbus) + ("dbus-glib" ,dbus-glib) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libmatekbd" ,libmatekbd) + ("libx11" ,libx11) + ("libxcursor" ,libxcursor) + ("libxext" ,libxext) + ("libxi" ,libxi) + ("libxklavier" ,libxklavier) + ("libxml2" ,libxml2) + ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) + ("libxscrnsaver" ,libxscrnsaver) + ("marco" ,marco) + ("mate-desktop" ,mate-desktop) + ("mate-menus" ,mate-menus) + ("mate-settings-daemon" ,mate-settings-daemon) + ("pango" ,pango) + ("startup-notification" ,startup-notification))) + (propagated-inputs + `(("gdk-pixbuf" ,gdk-pixbuf+svg) ; mate-slab.pc + ("librsvg" ,librsvg))) ; mate-slab.pc + (home-page "https://mate-desktop.org/") + (synopsis "MATE Desktop configuration tool") + (description + "MATE control center is MATE's main interface for configuration +of various aspects of your desktop.") + (license license:gpl2+))) + (define-public marco (package (name "marco") From b5831eb7718c458ece555fb5a895ed57d49e73cb Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 16 Aug 2017 11:38:35 +0000 Subject: [PATCH 146/333] gnu: Add mate. * gnu/packages/mate.scm (mate): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/mate.scm | 59 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index ca1872a2f7..91489ba91b 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -25,10 +25,12 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages pkg-config) #:use-module (gnu packages freedesktop) #:use-module (gnu packages fontutils) + #:use-module (gnu packages fonts) #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) #:use-module (gnu packages glib) @@ -36,6 +38,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) #:use-module (gnu packages docbook) + #:use-module (gnu packages gnupg) #:use-module (gnu packages gnuzilla) #:use-module (gnu packages xorg) #:use-module (gnu packages documentation) @@ -750,3 +753,59 @@ well with the MATE desktop. It lacks some features that may be expected by some users; these users may want to investigate other available window managers for use with MATE or as a standalone window manager.") (license license:gpl2+))) + +(define-public mate + (package + (name "mate") + (version (package-version mate-desktop)) + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build union)) + #:builder + (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs + ;; TODO: Add more packages + `(("at-spi2-core" ,at-spi2-core) + ("caja" ,caja) + ("dbus" ,dbus) + ("dconf" ,dconf) + ("desktop-file-utils" ,desktop-file-utils) + ("font-cantarell" ,font-cantarell) + ("glib-networking" ,glib-networking) + ("gnome-keyring" ,gnome-keyring) + ("gvfs" ,gvfs) + ("libmatekbd" ,libmatekbd) + ("libmateweather" ,libmateweather) + ("libmatemixer" ,libmatemixer) + ("marco" ,marco) + ("mate-session-manager" ,mate-session-manager) + ("mate-settings-daemon" ,mate-settings-daemon) + ("mate-desktop" ,mate-desktop) + ("mate-terminal" ,mate-terminal) + ("mate-themes" ,mate-themes) + ("mate-icon-theme" ,mate-icon-theme) + ("mate-menu" ,mate-menus) + ("mate-panel" ,mate-panel) + ("mate-control-center" ,mate-control-center) + ("mate-media" ,mate-media) + ("mate-applets" ,mate-applets) + ("pinentry-gnome3" ,pinentry-gnome3) + ("pulseaudio" ,pulseaudio) + ("shared-mime-info" ,shared-mime-info) + ("yelp" ,yelp) + ("zenity" ,zenity))) + (synopsis "The MATE desktop environment") + (home-page "https://mate-desktop.org/") + (description + "The MATE Desktop Environment is the continuation of GNOME 2. It provides +an intuitive and attractive desktop environment using traditional metaphors for +GNU/Linux systems. MATE is under active development to add support for new +technologies while preserving a traditional desktop experience.") + (license license:gpl2+))) From a247fe7b0deebf85d42a2d5eb21cac0ecd32a965 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Mon, 4 Sep 2017 18:04:21 +0100 Subject: [PATCH 147/333] gnu: openmpi: Remove Valgrind from closure. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mpi.scm (openmpi)[arguments]: Elide romio config info to avoid reference to valgrind. Signed-off-by: Ludovic Courtès --- gnu/packages/mpi.scm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index f7380fecbf..a6deee3244 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -148,16 +148,21 @@ bind processes, and much more.") (assoc-ref %build-inputs "hwloc"))) #:phases (modify-phases %standard-phases (add-before 'build 'remove-absolute - ;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE - ;; etc.) to reduce the closure size. See - ;; - ;; and - ;; . (lambda _ + ;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE + ;; etc.) to reduce the closure size. See + ;; + ;; and + ;; . (substitute* '("orte/tools/orte-info/param.c" "oshmem/tools/oshmem_info/param.c" "ompi/tools/ompi_info/param.c") (("_ABSOLUTE") "")) + ;; Avoid valgrind (which pulls in gdb etc.). + (substitute* + '("./ompi/mca/io/romio/src/io_romio_component.c") + (("MCA_io_romio_COMPLETE_CONFIGURE_FLAGS") + "\"[elided to reduce closure]\"")) #t)) (add-before 'build 'scrub-timestamps ;reproducibility (lambda _ From fc2de6ce134fb012373387ff9d73c75c449c5cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 12 Sep 2017 08:46:05 +0200 Subject: [PATCH 148/333] guix system: Pretty-print device UUIDs. * guix/scripts/system.scm (display-system-generation): Check if ROOT-DEVICE is a UUID and pretty-print it if it is. --- guix/scripts/system.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 7737793189..ea35fcdbc9 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -41,6 +41,7 @@ #:use-module (gnu bootloader) #:use-module (gnu system file-systems) #:use-module (gnu system linux-container) + #:use-module (gnu system uuid) #:use-module (gnu system vm) #:use-module (gnu services) #:use-module (gnu services shepherd) @@ -530,7 +531,10 @@ list of services." ;; TRANSLATORS: Please preserve the two-space indentation. (format #t (G_ " label: ~a~%") label) (format #t (G_ " bootloader: ~a~%") bootloader-name) - (format #t (G_ " root device: ~a~%") root-device) + (format #t (G_ " root device: ~a~%") + (if (uuid? root-device) + (uuid->string root-device) + root-device)) (format #t (G_ " kernel: ~a~%") kernel)))) (define* (list-generations pattern #:optional (profile %system-profile)) From b08952f1bb83c8f0188cf38d26e34465e853a08a Mon Sep 17 00:00:00 2001 From: Dave Love Date: Mon, 11 Sep 2017 21:30:40 +0100 Subject: [PATCH 149/333] gnu: openmpi: Configure without builtin atomics. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://www.mail-archive.com/users@lists.open-mpi.org//msg31400.html * gnu/packages/mpi.scm (openmpi)[arguments]: Don't configure with --enable-builtin-atomics. Signed-off-by: Ludovic Courtès --- gnu/packages/mpi.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index a6deee3244..517f912417 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -132,9 +132,7 @@ bind processes, and much more.") `(("pkg-config" ,pkg-config) ("perl" ,perl))) (arguments - `(#:configure-flags `("--enable-builtin-atomics" - - "--enable-mpi-ext=affinity" ;cr doesn't work + `(#:configure-flags `("--enable-mpi-ext=affinity" ;cr doesn't work "--enable-memchecker" "--with-sge" From 8b8702c9398bdbeee0104b2f0b207ad74ca62faf Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 12 Sep 2017 18:41:05 +0000 Subject: [PATCH 150/333] gnu: neomutt: Update to 20170912. * gnu/packages/mail.scm (neomutt): Update to 20170912. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 9469e96022..2873bab77c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -265,7 +265,7 @@ operating systems.") (package (inherit mutt) (name "neomutt") - (version "20170907") + (version "20170912") (source (origin (method url-fetch) @@ -273,7 +273,7 @@ operating systems.") "/archive/" name "-" version ".tar.gz")) (sha256 (base32 - "0l2vsdd7hl8909r9j4hl9npfl2ri9ipbn0jaz5pp6wk1m6s13pr4")))) + "0mv60kii933hq52mhwrcz29diaajbs5ryqibgsvdvfyvx27i43cz")))) (inputs `(("cyrus-sasl" ,cyrus-sasl) ("gdbm" ,gdbm) From 777f485ee6b9ae0f4ebb97d40c625941a63ec62e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 6 Sep 2017 17:41:54 +0200 Subject: [PATCH 151/333] gnu: python-django: Update to 1.10.8 [fixes CVE-2017-12794]. * gnu/packages/django.scm (python-django): Update to 1.10.8. --- gnu/packages/django.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 356586e1bc..c70c074938 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -31,13 +31,13 @@ (define-public python-django (package (name "python-django") - (version "1.10.7") + (version "1.10.8") (source (origin (method url-fetch) (uri (pypi-uri "Django" version)) (sha256 (base32 - "1f5hnn2dzfr5szk4yc47bs4kk2nmrayjcvgpqi2s4l13pjfpfgar")))) + "1fwqqh2zbcy9dy0lnvk338s11llnnfz2k56bf84w0wv56ayq7vyl")))) (build-system python-build-system) (arguments '(#:phases From 493f2cbf06b45818c10d62243fb16ace6d26e748 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 12 Sep 2017 22:00:23 +0200 Subject: [PATCH 152/333] gnu: notmuch: Update to 0.25.1. * gnu/packages/mail.scm (notmuch): Update to 0.25.1. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 2873bab77c..8c376b1e45 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -667,14 +667,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.25") + (version "0.25.1") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.gz")) (sha256 (base32 - "02z6d87ip1hkipz8d7w0sfklg8dd5fd5vlgp768640ixg0gqvlk5")))) + "0c98hzwc60nb6kd15y0fl2ji3yfmr9k6v8ps0h3ihr3vkgn0kgxl")))) (build-system gnu-build-system) (arguments '(#:make-flags (list "V=1") ; Verbose test output. From 51fcc6d2ae8582e351493919558a4114c009e14b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 12 Sep 2017 22:09:59 +0200 Subject: [PATCH 153/333] gnu: feh: Update to 2.20. * gnu/packages/image-viewers.scm (feh): Update to 2.20. --- gnu/packages/image-viewers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index f82d4baf24..dfb68488ee 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -54,7 +54,7 @@ (define-public feh (package (name "feh") - (version "2.19.3") + (version "2.20") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -62,7 +62,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "1l3yvv0l0ggwlfyhk84p2g9mrqvzqrg1fgalf88kzppvb9jppjay")))) + "02vhdv16nf4kjna4inpbfy4k3p40bhl7xpc4kh4xvily14146l2b")))) (build-system gnu-build-system) (arguments '(#:phases (alist-delete 'configure %standard-phases) From 40c2653375f7621eb73d98338572e018c2bd4dc5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 12 Sep 2017 22:11:59 +0200 Subject: [PATCH 154/333] gnu: ffmpeg: Update to 3.3.4. * gnu/packages/video.scm (ffmpeg): Update to 3.3.4. --- 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 a21f71bcf6..8a01a4b475 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -580,14 +580,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (define-public ffmpeg (package (name "ffmpeg") - (version "3.3.3") + (version "3.3.4") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "07is8msrhxr1dk6vgwa192k2pl2a0in1h9w8f9cknlvbvhn01afj")))) + "0mx9dvad3lkyhvsrblf280x2bz6dxajya1ylnspbdzldj0dpxfcq")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) From 8d3975459d005cc58e9b189b74114b69959b8375 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 12 Sep 2017 22:19:34 +0200 Subject: [PATCH 155/333] gnu: libraw: Update to 0.18.4. * gnu/packages/photo.scm (libraw): Update to 0.18.4. --- gnu/packages/photo.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 2378acd975..f5e43af4f4 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -65,14 +65,14 @@ (define-public libraw (package (name "libraw") - (version "0.18.2") + (version "0.18.4") (source (origin (method url-fetch) (uri (string-append "https://www.libraw.org/data/LibRaw-" version ".tar.gz")) (sha256 (base32 - "1imby9x88pjx4ad1frdi3bfb8dw90ccyj5pb6w3i6i0iijrnndnf")))) + "15qc7g5y1m6yi6w9ia79cd6yk0836z7lqw5yigl62n768qdr7x7a")))) (build-system gnu-build-system) (home-page "https://www.libraw.org") (synopsis "Raw image decoder") From 790ba6d3e183d61d5a02aaf8ab08d559703e3adf Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 12 Sep 2017 22:25:32 +0200 Subject: [PATCH 156/333] gnu: imagemagick: Update to 6.9.9-12. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.9-12. --- 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 502dc43acf..72b4643735 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.9-9") + (version "6.9.9-12") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0p7jz55zry5r1lv34ymx536fqymvy3iwzwy0kvj53mlmsaad7vjr")))) + "10k63nb1wi5fq1xg1wkjfw7ph46ysy8rndgp18knj2zr06zjjrc5")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") From f97e96ae8bbf5353cc297f1736643d7ba133cd53 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 12 Sep 2017 03:40:04 +0200 Subject: [PATCH 157/333] gnu: gsettings-desktop-schemas: Update to 3.24.1. * gnu/packages/gnome.scm (gsettings-desktop-schemas): Update to 3.24.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 26abb49523..f6b2040b8f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -765,7 +765,7 @@ on the GNOME Desktop with a single simple application.") (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "3.24.0") + (version "3.24.1") (source (origin (method url-fetch) @@ -774,7 +774,7 @@ on the GNOME Desktop with a single simple application.") name "-" version ".tar.xz")) (sha256 (base32 - "145vpcljy4660cnk8zk91qf7ywa7hqfl5hhw025gy8hxcqzklmzn")))) + "19zfqy58missq5cck13ip8j824hb9whqg2c4cr6hgrlxkwqgm8vn")))) (build-system gnu-build-system) (inputs `(("glib" ,glib))) From bd38e6a560f8046ed0b267ba97b39aa7ba6c1eeb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 12 Sep 2017 03:40:18 +0200 Subject: [PATCH 158/333] gnu: gnome-settings-daemon: Update to 3.24.3. * gnu/packages/gnome.scm (gnome-settings-daemon): Update to 3.24.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f6b2040b8f..5267a4eb87 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2989,7 +2989,7 @@ services for numerous locations.") (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") - (version "3.24.2") + (version "3.24.3") (source (origin (method url-fetch) @@ -2998,7 +2998,7 @@ services for numerous locations.") name "-" version ".tar.xz")) (sha256 (base32 - "1jnw920zn4cadhgmcv2q5ylzqhwm1rmrhf3a14q8mvp38hkdgaaa")))) + "14w5jhpq02mbcxvn41qcj3cjfqdr3sgzl96c6glwpdrjphw61i38")))) (build-system glib-or-gtk-build-system) (arguments `(;; Color management test can't reach the colord system service. From 9c2d0a1aa8759e315c0960f25ddd002e46e10928 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 11 Sep 2017 22:03:18 +0200 Subject: [PATCH 159/333] gnu: gnome-shell-extensions: Update to 3.24.3. * gnu/packages/gnome.scm (gnome-shell-extensions): Update to 3.24.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5267a4eb87..80e78d3401 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6065,7 +6065,7 @@ GNOME Shell appearance and extension, etc.") (define-public gnome-shell-extensions (package (name "gnome-shell-extensions") - (version "3.24.2") + (version "3.24.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -6073,7 +6073,7 @@ GNOME Shell appearance and extension, etc.") name "-" version ".tar.xz")) (sha256 (base32 - "10sg87wml5cmyk90pybnr6r942ba7173sl7yplhj2sfggp0wc74s")))) + "0y8anpp9ymp0lxn15w63ra6zxxf8nvbl48xqkvqdjzida73fyz9w")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-extensions=all"))) From 8fc5cdc6a09540ccbc79d5018e1136c8e7c06205 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 12 Sep 2017 03:40:40 +0200 Subject: [PATCH 160/333] gnu: tracker: Update to 1.12.3. * gnu/packages/gnome.scm (tracker): Update to 1.12.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 80e78d3401..6cd284d36d 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5545,7 +5545,7 @@ easy, safe, and automatic.") (define-public tracker (package (name "tracker") - (version "1.12.2") + (version "1.12.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5553,7 +5553,7 @@ easy, safe, and automatic.") name "-" version ".tar.xz")) (sha256 (base32 - "1zdzh8l5ahi906i40i4pqw2cs1hwrl6l9a7fp344a3idk3pl5szb")))) + "1mpq418lzba7fad0w0m3bnxvz3khf461b5zya8zmq5n1g0w99ki3")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gnome-common" ,gnome-common) From 0f8c520408770715a1c0a4f99640632dfa3061ae Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 12 Sep 2017 03:40:34 +0200 Subject: [PATCH 161/333] gnu: network-manager: Update to 1.8.2. * gnu/packages/gnome.scm (network-manager): Update to 1.8.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6cd284d36d..c083061eea 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4922,7 +4922,7 @@ users.") (define-public network-manager (package (name "network-manager") - (version "1.8.0") + (version "1.8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/NetworkManager/" @@ -4930,7 +4930,7 @@ users.") "NetworkManager-" version ".tar.xz")) (sha256 (base32 - "17pn7kzilyl0qk525gp9xnbz4x0ssrdmgk1lvw95pyfd6rm5qnps")) + "1x0vzxvrck0snga2n3pc7g74m20zz74cr4r8gfspl8sckv6yz9bi")) (snippet '(begin (use-modules (guix build utils)) From db122a9b5ec7aa5925f8586b7ce3e920b9bff15e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 12 Sep 2017 03:40:11 +0200 Subject: [PATCH 162/333] gnu: libpeas: Update to 1.22.0. * gnu/packages/gnome.scm (libpeas): Update to 1.22.0. [inputs]: Remvoe libxml2. --- gnu/packages/gnome.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c083061eea..59f3ac3c14 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -987,7 +987,7 @@ some form of information without getting in the user's way.") (define-public libpeas (package (name "libpeas") - (version "1.20.0") + (version "1.22.0") (source (origin (method url-fetch) @@ -996,12 +996,11 @@ some form of information without getting in the user's way.") name "-" version ".tar.xz")) (sha256 (base32 - "0m6k6fcrx40n92nc1cy3z72vs1ja49sb58dj3fjp40605pzgz4pk")))) + "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+) ("glade" ,glade3) - ("libxml2" ,libxml2) ; XXX: required by gladeui-2.0.pc ("python" ,python) ("python-pygobject" ,python-pygobject))) (native-inputs From 097b80e1801165e18539eedad9df8a311897ae40 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 12 Sep 2017 03:40:46 +0200 Subject: [PATCH 163/333] gnu: gtksourceview: Update to 3.24.4. * gnu/packages/gtk.scm (gtksourceview): Update to 3.24.4. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 1ea051bfb0..0d1e76373c 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -379,7 +379,7 @@ printing and other features typical of a source code editor.") (define-public gtksourceview (package (name "gtksourceview") - (version "3.24.2") + (version "3.24.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -387,7 +387,7 @@ printing and other features typical of a source code editor.") name "-" version ".tar.xz")) (sha256 (base32 - "17xqrnh2v9gba57ij2m9kngxwh19fzsqkx1rfasnv4zaqvqqhv69")))) + "14x738xrz9q8qz13xd7dys748ryxyq2srbqyaa9r7n47h2av2zr0")))) (build-system gnu-build-system) (arguments '(#:phases From bbb1246fd8761596b5f9b48b2c3b990da35def60 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 11 Sep 2017 18:21:35 +0200 Subject: [PATCH 164/333] gnu: youtube-dl: Update to 2017.09.11. * gnu/packages/video.scm (youtube-dl): Update to 2017.09.11. --- 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 8a01a4b475..9c22ab585a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1111,7 +1111,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.09.10") + (version "2017.09.11") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1119,7 +1119,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "1kxi378rp2ds5745qak2ilgnknb3ns5lg12zkin0mqnvbsql31bd")))) + "0ai193skl2ml247p1jwpxnhwng1s4263mw1fra725a5rgkfyyvcb")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion From 45bba47510a3768c59060373d2cc7beca3cd1b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 12 Sep 2017 22:19:44 +0200 Subject: [PATCH 165/333] store: 'run-with-store' has a #:target parameter. * guix/store.scm (run-with-store): Add #:target and honor it. --- guix/store.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index 00d1e26fc4..d571122021 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1429,7 +1429,8 @@ where FILE is the entry's absolute file name and STAT is the result of (define* (run-with-store store mval #:key (guile-for-build (%guile-for-build)) - (system (%current-system))) + (system (%current-system)) + (target #f)) "Run MVAL, a monadic value in the store monad, in STORE, an open store connection, and return the result." ;; Initialize the dynamic bindings here to avoid bad surprises. The @@ -1437,7 +1438,7 @@ connection, and return the result." ;; bind-time and not at call time, which can be disconcerting. (parameterize ((%guile-for-build guile-for-build) (%current-system system) - (%current-target-system #f)) + (%current-target-system target)) (call-with-values (lambda () (run-with-state mval store)) (lambda (result store) From 96da5d629672b27d4628c1f4dc8a273d4ade7852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 12 Sep 2017 22:20:08 +0200 Subject: [PATCH 166/333] system: Add gexp compiler for . * gnu/system.scm (operating-system-compiler): New procedure. --- gnu/system.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/system.scm b/gnu/system.scm index bb7e8531ee..c4404f5932 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -967,4 +967,14 @@ being stored into the \"parameters\" file)." (mount-point #$(boot-parameters-store-mount-point params)))) #:set-load-path? #f))) +(define-gexp-compiler (operating-system-compiler (os ) + system target) + ((store-lift + (lambda (store) + ;; XXX: This is not super elegant but we can't pass SYSTEM and TARGET to + ;; 'operating-system-derivation'. + (run-with-store store (operating-system-derivation os) + #:system system + #:target target))))) + ;;; system.scm ends here From 4e854b1814a9216ae7cc90aef4d82fd989a519c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 12 Sep 2017 22:28:43 +0200 Subject: [PATCH 167/333] install: Include the whole bare-bones OS in the image. * gnu/system/install.scm (%installation-services): Load "example/bare-bones.tmpl". Add a 'gc-root-service-type' instance. --- gnu/system/install.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 4aecfaca2c..eb362f91a8 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -215,6 +215,9 @@ You have been warned. Thanks for being so brave. (auto-login "root") (login-pause? #t)))) + (define bare-bones-os + (load "examples/bare-bones.tmpl")) + (list (mingetty-service (mingetty-configuration (tty "tty1") (auto-login "root"))) @@ -284,7 +287,11 @@ You have been warned. Thanks for being so brave. ;; connections to this system to work. (service special-files-service-type `(("/bin/sh" ,(file-append (canonical-package bash) - "/bin/sh"))))))) + "/bin/sh")))) + + ;; Keep a reference to BARE-BONES-OS to make sure it can be + ;; installed without downloading/building anything. + (service gc-root-service-type (list bare-bones-os))))) (define %issue ;; Greeting. From 960c40de21650368021b20c78b79101bce022b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 12 Sep 2017 22:35:12 +0200 Subject: [PATCH 168/333] doc: Use Screen and OpenSSH in the bare-bones example. * gnu/system/examples/bare-bones.tmpl (packages): Remove TCPDUMP; add SCREEN and OPENSSH. * doc/guix.texi (Using the Configuration System): Adjust explanation accordingly. --- doc/guix.texi | 5 +++-- gnu/system/examples/bare-bones.tmpl | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index c5b277d027..0633691228 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -8186,8 +8186,9 @@ environment variable---in addition to the per-user profiles 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}). The +etc. The example above adds GNU@tie{}Screen and OpenSSH to those, +taken from the @code{(gnu packages screen)} and @code{(gnu packages ssh)} +modules (@pxref{Package Modules}). The @code{(list package output)} syntax can be used to add a specific output of a package: diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl index 459d241885..7e0c8fbee0 100644 --- a/gnu/system/examples/bare-bones.tmpl +++ b/gnu/system/examples/bare-bones.tmpl @@ -3,7 +3,7 @@ (use-modules (gnu)) (use-service-modules networking ssh) -(use-package-modules admin) +(use-package-modules screen ssh) (operating-system (host-name "komputilo") @@ -40,7 +40,7 @@ %base-user-accounts)) ;; Globally-installed packages. - (packages (cons tcpdump %base-packages)) + (packages (cons* screen openssh %base-packages)) ;; Add services to the baseline: a DHCP client and ;; an SSH server. From 1fda01ef4222d71627572074fc691672e788a678 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 12 Sep 2017 23:47:24 +0200 Subject: [PATCH 169/333] gnu: texinfo: Add 6.5. * gnu/packages/texinfo.scm (texinfo-latest): New variable. --- gnu/packages/texinfo.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm index 6ec2bb8e9b..8c33023bd0 100644 --- a/gnu/packages/texinfo.scm +++ b/gnu/packages/texinfo.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2016 Eric Bavier ;;; Copyright © 2015 Mark H Weaver ;;; @@ -30,6 +30,7 @@ #:use-module (gnu packages ncurses)) (define-public texinfo + ;; TODO: Merge with 'texinfo-latest' on the next core-updates. (package (name "texinfo") (version "6.3") @@ -62,6 +63,19 @@ their source and the command-line Info reader. The emphasis of the language is on expressing the content semantically, avoiding physical markup commands.") (license gpl3+))) +(define-public texinfo-latest + ;; TODO: Turn this into 'texinfo' on the next core-updates cycle. + (package (inherit texinfo) + (version "6.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/texinfo/texinfo-" + version ".tar.xz")) + (sha256 + (base32 + "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp")))) + (native-inputs '()))) + (define-public texinfo-5 (package (inherit texinfo) (version "5.2") From 3a58f45502fdc8734f5c8ef3ec5acf80c03a1cac Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:55:06 +0100 Subject: [PATCH 170/333] gnu: Add perl-moox. * gnu/packages/perl.scm (perl-moox): New variable. --- gnu/packages/perl.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 249f478f96..6b41d5091f 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -5073,6 +5073,32 @@ all coercions and constraints are inherited.") constraint with coercion to load the class.") (license (package-license perl)))) +(define-public perl-moox + (package + (name "perl-moox") + (version "0.101") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GE/GETTY/MooX-" + version + ".tar.gz")) + (sha256 + (base32 + "1m9jvrqcidiabdih211byadwnnkygafq54r2ljnf1akqdrjimy9g")))) + (build-system perl-build-system) + (inputs + `(("perl-data-optlist" ,perl-data-optlist) + ("perl-import-into" ,perl-import-into) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo))) + (home-page "http://search.cpan.org/dist/MooX") + (synopsis + "Using Moo and MooX:: packages the most lazy way") + (description "Contains the MooX and MooX::Role packages.") + (license perl-license))) + (define-public perl-moox-types-mooselike (package (name "perl-moox-types-mooselike") From 3565756f4402dd3526687240bd37434f905b74c5 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:53:54 +0100 Subject: [PATCH 171/333] gnu: Add perl-data-perl. * gnu/packages/perl.scm (perl-data-perl): New variable. --- gnu/packages/perl.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 6b41d5091f..d58776d4ea 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1588,6 +1588,49 @@ on one page. This results in wanting to page through various pages of data. The maths behind this is unfortunately fiddly, hence this module.") (license (package-license perl)))) +(define-public perl-data-perl + (package + (name "perl-data-perl") + (version "0.002009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MA/MATTP/Data-Perl-" + version + ".tar.gz")) + (sha256 + (base32 + "12vgqdjbfqf2qfg21x22wg88xnwxfbw2ki3qzcb3nb0chwjj4axn")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-deep" ,perl-test-deep) + ("perl-test-fatal" ,perl-test-fatal) + ("perl-test-output" ,perl-test-output))) + (inputs + `(("perl-class-method-modifiers" + ,perl-class-method-modifiers) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-role-tiny" ,perl-role-tiny) + ("perl-strictures" ,perl-strictures))) + (propagated-inputs + `(("perl-list-moreutils" ,perl-list-moreutils))) + (home-page + "http://search.cpan.org/dist/Data-Perl") + (synopsis "Base classes wrapping fundamental Perl data types") + (description + "@code{Data::Perl} is a container class for the following classes: +@itemize +@item @code{Data::Perl::Collection::Hash} +@item @code{Data::Perl::Collection::Array} +@item @code{Data::Perl::String} +@item @code{Data::Perl::Number} +@item @code{Data::Perl::Counter} +@item @code{Data::Perl::Bool} +@item @code{Data::Perl::Code} +@end itemize") + (license perl-license))) + (define-public perl-data-stag (package (name "perl-data-stag") From 40db2394b2883cbc4c38f1994fcb2958151d92ca Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:55:40 +0100 Subject: [PATCH 172/333] gnu: Add perl-moox-handlesvia. * gnu/packages/perl.scm (perl-moox-handlesvia): New variable. --- gnu/packages/perl.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index d58776d4ea..8aed1251cf 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -5142,6 +5142,43 @@ constraint with coercion to load the class.") (description "Contains the MooX and MooX::Role packages.") (license perl-license))) +(define-public perl-moox-handlesvia + (package + (name "perl-moox-handlesvia") + (version "0.001008") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MA/MATTP/MooX-HandlesVia-" + version + ".tar.gz")) + (sha256 + (base32 + "137yrjn2jmw4cj0fjdajnkjgqr5arnpq72kbm6w66xskncinz55h")))) + (build-system perl-build-system) + (native-inputs + `(("perl-moox-types-mooselike" + ,perl-moox-types-mooselike) + ("perl-test-exception" ,perl-test-exception) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-class-method-modifiers" + ,perl-class-method-modifiers) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo) + ("perl-role-tiny" ,perl-role-tiny))) + (propagated-inputs + `(("perl-data-perl" ,perl-data-perl))) + (home-page + "http://search.cpan.org/dist/MooX-HandlesVia") + (synopsis "NativeTrait-like behavior for Moo") + (description + "@code{MooX::HandlesVia} is an extension of Moo's @code{handles} +attribute functionality. It provides a means of proxying functionality from +an external class to the given atttribute.") + (license perl-license))) + (define-public perl-moox-types-mooselike (package (name "perl-moox-types-mooselike") From b7206dd36244a70f22a798570f1d9eb09cda51ad Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:56:10 +0100 Subject: [PATCH 173/333] gnu: Add perl-moox-late. * gnu/packages/perl.scm (perl-moox-late): New variable. --- gnu/packages/perl.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 8aed1251cf..03ff7ab30c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -5179,6 +5179,46 @@ attribute functionality. It provides a means of proxying functionality from an external class to the given atttribute.") (license perl-license))) +(define-public perl-moox-late + (package + (name "perl-moox-late") + (version "0.015") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-" + version + ".tar.gz")) + (sha256 + (base32 + "1gzvd9zws3v09sh0xx6srmw4jwi22fnrya4zcsc8dykn62pjclqp")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-fatal" ,perl-test-fatal) + ("perl-test-requires" ,perl-test-requires))) + (inputs + `(("perl-moo" ,perl-moo) + ("perl-moox" ,perl-moox) + ("perl-moox-handlesvia" ,perl-moox-handlesvia))) + (propagated-inputs + `(("perl-type-tiny" ,perl-type-tiny))) + (home-page + "http://search.cpan.org/dist/MooX-late") + (synopsis "Easily translate Moose code to Moo") + (description + "MooX::late does the following: +@enumerate +@item Supports isa => $stringytype +@item Supports does => $rolename +@item Supports lazy_build => 1 +@item Exports blessed and confess functions to your namespace. +@item Handles certain attribute traits +Currently Hash, Array and Code are supported. This feature requires +MooX::HandlesVia. +@end enumerate") + (license perl-license))) + (define-public perl-moox-types-mooselike (package (name "perl-moox-types-mooselike") From 2d6125ed4d210e4612231683e696e69d9cc9cc40 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:53:22 +0100 Subject: [PATCH 174/333] gnu: Add perl-convert-binhex. * gnu/packages/perl.scm (perl-convert-binhex): New variable. --- gnu/packages/perl.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 03ff7ab30c..90b9a6f8a1 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1311,6 +1311,34 @@ the context the subroutine would have seen if it were the last statement in the caller.") (license (package-license perl)))) +(define-public perl-convert-binhex + (package + (name "perl-convert-binhex") + (version "1.125") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/S/ST/STEPHEN/Convert-BinHex-" + version + ".tar.gz")) + (sha256 + (base32 + "15v3489k179cx0fz3lix79ssjid0nhhpf6c33swpxga6pss92dai")))) + (build-system perl-build-system) + (native-inputs + `(("perl-file-slurp" ,perl-file-slurp) + ("perl-test-most" ,perl-test-most))) + (home-page + "http://search.cpan.org/dist/Convert-BinHex") + (synopsis "Extract data from Macintosh BinHex files") + (description + "BinHex is a format for transporting files safely through electronic +mail, as short-lined, 7-bit, semi-compressed data streams. Ths module +provides a means of converting those data streams back into into binary +data.") + (license perl-license))) + (define-public perl-cpan-meta-check (package (name "perl-cpan-meta-check") From d6daca0ee50bfe3be894ea964b689915ecf1cb21 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:54:18 +0100 Subject: [PATCH 175/333] gnu: Add perl-mailtools. * gnu/packages/perl.scm (perl-mailtools): New variable. --- gnu/packages/perl.scm | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 90b9a6f8a1..e2aa33f291 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -4205,6 +4205,51 @@ implementation of these functions only serves as a fallback in case the C portions of this module couldn't be compiled on this machine.") (license (package-license perl)))) +(define-public perl-mailtools + (package + (name "perl-mailtools") + (version "2.19") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MA/MARKOV/MailTools-" + version + ".tar.gz")) + (sha256 + (base32 + "06jykkv8mp484vzkmwd6dkicx029rl3ir5ljzrbap3paxw1dfzn1")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-timedate" ,perl-timedate))) + (home-page + "http://search.cpan.org/dist/MailTools") + (synopsis "Bundle of ancient email modules") + (description "MailTools contains the following modules: +@table @asis +@item Mail::Address +Parse email address from a header line. +@item Mail::Cap +Interpret mailcap files: mappings of file-types to applications as used by +many command-line email programs. +@item Mail::Field +Simplifies access to (some) email header fields. Used by Mail::Header. +@item Mail::Filter +Process Mail::Internet messages. +@item Mail::Header +Collection of Mail::Field objects, representing the header of a Mail::Internet +object. +@item Mail::Internet +Represents a single email message, with header and body. +@item Mail::Mailer +Send Mail::Internet emails via direct smtp or local MTA's. +@item Mail::Send +Build a Mail::Internet object, and then send it out using Mail::Mailer. +@item Mail::Util +\"Smart functions\" you should not depend on. +@end table") + (license perl-license))) + (define-public perl-memoize-expirelru (package (name "perl-memoize-expirelru") From a6fe9304525ed0e5763821bf0fa8ec7726abeeaa Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:54:39 +0100 Subject: [PATCH 176/333] gnu: Add perl-mime-tools. * gnu/packages/perl.scm (perl-mime-tools): New variable. --- gnu/packages/perl.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index e2aa33f291..d25b788e7e 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -4289,6 +4289,36 @@ the argument to the CACHESIZE parameter, will be cached.") MIME messages on Internet.") (license (package-license perl)))) +(define-public perl-mime-tools + (package + (name "perl-mime-tools") + (version "5.509") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DS/DSKOLL/MIME-tools-" + version + ".tar.gz")) + (sha256 + (base32 + "0wv9rzx5j1wjm01c3dg48qk9wlbm6iyf91j536idk09xj869ymv4")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-deep" ,perl-test-deep))) + (inputs + `(("perl-convert-binhex" ,perl-convert-binhex))) + (propagated-inputs + `(("perl-mailtools" ,perl-mailtools))) + (home-page + "http://search.cpan.org/dist/MIME-tools") + (synopsis "Tools to manipulate MIME messages") + (description + "MIME-tools is a collection of Perl5 MIME:: modules for parsing, +decoding, and generating single- or multipart (even nested multipart) MIME +messages.") + (license perl-license))) + (define-public perl-mime-types (package (name "perl-mime-types") From 24c1c51334ccee4a6485eb2ab2dc49a2d2ffd02f Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:56:30 +0100 Subject: [PATCH 177/333] gnu: Add perl-net-idn-encode. * gnu/packages/perl.scm (perl-net-idn-encode): New variable. --- gnu/packages/perl.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index d25b788e7e..aeebd23c21 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -5501,6 +5501,38 @@ cycle. Functions called in the package itself will still be bound by their name, but they won't show up as methods on your class or instances.") (license (package-license perl)))) +(define-public perl-net-idn-encode + (package + (name "perl-net-idn-encode") + (version "2.400") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/C/CF/CFAERBER/Net-IDN-Encode-" + version + ".tar.gz")) + (sha256 + (base32 + "0a9knav5f9kjldrkxx1k47ivd3p23zkmi8aqgyhnxidhgasz1dlq")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-nowarnings" ,perl-test-nowarnings))) + (home-page + "http://search.cpan.org/dist/Net-IDN-Encode") + (synopsis + "Internationalizing Domain Names in Applications (IDNA)") + (description + "Internationalized Domain Names (IDNs) use characters drawn from a large +repertoire (Unicode), but IDNA allows the non-ASCII characters to be +represented using only the ASCII characters already allowed in so-called host +names today (letter-digit-hyphen, /[A-Z0-9-]/i). + +Use this module if you just want to convert domain names (or email addresses), +using whatever IDNA standard is the best choice at the moment.") + (license perl-license))) + (define-public perl-net-statsd (package (name "perl-net-statsd") From 996364fb4ed6ce18e852341f3be73a2f72cf3a32 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:56:57 +0100 Subject: [PATCH 178/333] gnu: Add perl-text-template. * gnu/packages/perl.scm (perl-text-template): New variable. --- gnu/packages/perl.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index aeebd23c21..4463d22fd0 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -8013,6 +8013,32 @@ algorism to indicate multiplication by 1000.") (description "Text::Table renders plaintext tables.") (license x11))) +(define-public perl-text-template + (package + (name "perl-text-template") + (version "1.47") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MS/MSCHOUT/Text-Template-" + version + ".tar.gz")) + (sha256 + (base32 + "1z781cgz7wbn80lf3kqr2ad0pg6g1wlnim0822h8liw28k3l5msh")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Text-Template") + (synopsis + "Expand template text with embedded Perl") + (description + "This is a library for generating letters, building HTML pages, or +filling in templates generally. A template is a piece of text that has little +Perl programs embedded in it here and there. When you fill in a template, you +evaluate the little programs and replace them with their values.") + (license perl-license))) + (define-public perl-text-unidecode (package (name "perl-text-unidecode") From 34ef57559060c4d7e04e3ee35dbc373e46bf5b4e Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:52:14 +0100 Subject: [PATCH 179/333] gnu: Add perl-gnupg-interface. * gnu/packages/gnupg.scm (perl-gnupg-interface): New variable. --- gnu/packages/gnupg.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index d6f0722f6e..33d97bf2b9 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -32,6 +32,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages adns) + #:use-module (gnu packages base) #:use-module (gnu packages curl) #:use-module (gnu packages openldap) #:use-module (gnu packages perl) @@ -53,6 +54,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system perl) #:use-module (guix build-system python)) (define-public libgpg-error @@ -535,6 +537,43 @@ and signature functionality from Python programs.") (define-public python2-gnupg (package-with-python2 python-gnupg)) +(define-public perl-gnupg-interface + (package + (name "perl-gnupg-interface") + (version "0.52") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/A/AL/ALEXMV/GnuPG-Interface-" + version + ".tar.gz")) + (sha256 + (base32 + "0dgx8yhdsmhkazcrz14n4flrk1afv7azgl003hl4arxvi1d9yyi4")))) + (build-system perl-build-system) + (arguments + '(;; Result: FAIL + ;; Failed 10/20 test programs. 21/52 subtests failed. + #:tests? #f)) + (native-inputs + `(("perl-module-install" ,perl-module-install) + ("which" ,which))) + (inputs + `(("gnupg" ,gnupg))) + (propagated-inputs + `(("perl-moo" ,perl-moo) + ("perl-moox-late" ,perl-moox-late) + ("perl-moox-handlesvia" ,perl-moox-handlesvia))) + (home-page "http://search.cpan.org/~alexmv/GnuPG-Interface/") + (synopsis "Perl interface to GnuPG") + (description + "@code{GnuPG::Interface} and its associated modules are designed to +provide an object-oriented method for interacting with GnuPG, being able to +perform functions such as but not limited to encrypting, signing, decryption, +verification, and key-listing parsing.") + (license license:perl-license))) + (define-public pius (package (name "pius") From 329779159b16d8d7ab313fc9810d8c60381efc4d Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:51:37 +0100 Subject: [PATCH 180/333] gnu: Add libmd. * gnu/packages/crypto.scm (libmd): New variable. --- gnu/packages/crypto.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 1783ae0945..6b28030dff 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -78,6 +78,37 @@ communication, encryption, decryption, signatures, etc.") (license license:isc) (home-page "http://libsodium.org"))) +(define-public libmd + (package + (name "libmd") + (version "0.0.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://archive.hadrons.org/software/libmd/libmd-" + version + ".tar.xz")) + (sha256 + (base32 + "121s73pgbqsnmy6xblbrkj9y44c5zzzpf2hcmh6zvcvg4dk26gzx")))) + (build-system gnu-build-system) + (synopsis "Message Digest functions from BSD systems") + (description + "The currently provided message digest algorithms are: +@itemize +@item MD2 +@item MD4 +@item MD5 +@item RIPEMD-160 +@item SHA-1 +@item SHA-2 (SHA-256, SHA-384 and SHA-512) +@end itemize") + (license (list license:bsd-3 + license:bsd-2 + license:isc + license:public-domain)) + (home-page "https://www.hadrons.org/software/libmd/"))) + (define-public signify (package (name "signify") From c9ce8e17661f79b9e30ac55c5852c8b5cff7361e Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 28 Aug 2017 20:52:54 +0100 Subject: [PATCH 181/333] gnu: Update signing-party. Also add more inputs to make the caff program run. I haven't successfully used it yet though. * gnu/packages/gnupg.scm (signing-party)[version]: Update to 2.6. [source]: Update origin sha256. [native-inputs]: Add autoconf and automake. [inputs]: Add perl-text-template, perl-mime-tools, perl-gnupg-interface and perl-net-idn-encode as these are required by caff. Also add libmd as this is required by TODO. [arguments]: Add the change-directory and wrap-programs phase, and fix a regex and Makefile path in the configure phase. --- gnu/packages/gnupg.scm | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 33d97bf2b9..c9ed37c35e 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -32,8 +32,10 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages adns) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages curl) + #:use-module (gnu packages crypto) #:use-module (gnu packages openldap) #:use-module (gnu packages perl) #:use-module (gnu packages pth) @@ -618,38 +620,48 @@ PGP keysigning parties.") (define-public signing-party (package (name "signing-party") - (version "1.1.4") + (version "2.6") (source (origin (method url-fetch) (uri (string-append "mirror://debian/pool/main/s/signing-party/" "signing-party_" version ".orig.tar.gz")) (sha256 (base32 - "188gp0prbh8qs29lq3pbf0qibfd6jq4fk7i0pfrybl8aahvm84rx")))) + "1n5bpcfpl9vg1xp6r1jhbyahrgdyxp05b5pria1rh4m0qnv8sifr")))) (build-system gnu-build-system) - (inputs `(("perl" ,perl))) + (native-inputs + `(("autoconf" ,(autoconf-wrapper)) + ("automake" ,automake))) + (inputs `(("perl" ,perl) + ("perl-text-template" ,perl-text-template) + ("perl-mime-tools" ,perl-mime-tools) + ("perl-gnupg-interface" ,perl-gnupg-interface) + ("perl-net-idn-encode" ,perl-net-idn-encode) + ("libmd" ,libmd))) (arguments `(#:tests? #f #:phases (modify-phases %standard-phases - (add-after 'unpack 'remove-spurious-links - (lambda _ (delete-file "keyanalyze/pgpring/depcomp"))) + (add-before 'configure 'change-directory + (lambda _ + ;; The build system in the unpack phase changes to a less useful + ;; subdirectory, so move up one level + (chdir (dirname (getcwd))))) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "keyanalyze/Makefile" (("LDLIBS") (string-append "CC=" (which "gcc") "\nLDLIBS"))) (substitute* "keyanalyze/Makefile" - (("./configure") (string-append "./configure --prefix=" out))) - (substitute* "keyanalyze/pgpring/configure" - (("/bin/sh") (which "sh"))) - (substitute* "gpgwrap/Makefile" + (("\\./configure") (string-append "./configure --prefix=" out))) + (substitute* "gpgwrap/src/Makefile" (("\\} clean") (string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap " out "/bin/gpgwrap\n"))) (substitute* '("gpgsigs/Makefile" "keyanalyze/Makefile" "keylookup/Makefile" "sig2dot/Makefile" "springgraph/Makefile") - (("/usr") out))))) + (("/usr") out)) + (setenv "CONFIG_SHELL" (which "sh"))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys #:rest args) (let ((out (assoc-ref outputs "out")) @@ -674,7 +686,13 @@ PGP keysigning parties.") '("caff.1" "pgp-clean.1" "pgp-fixkey.1" "gpgdir.1" "gpg-key2ps.1" "gpglist.1" "gpg-mailkeys.1" "gpgparticipants.1" "gpgsigs.1" "gpgwrap.1" - "process_keys.1" "pgpring.1" "keyanalyze.1")))))))) + "process_keys.1" "pgpring.1" "keyanalyze.1"))))) + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (wrap-program + (string-append out "/bin/caff") + `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))))))) (synopsis "Collection of scripts for simplifying gnupg key signing") (description "Signing-party is a collection for all kinds of PGP/GnuPG related things, From 01ef804d69b2e57dd7b1d3d13e66e3f67e7c548a Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 10 Sep 2017 19:36:08 +0100 Subject: [PATCH 182/333] import: cpan: Replace '(package-license perl) with 'perl-license. The perl-license definition is intended to avoid circular dependencies, so use this as a default when importing packages from CPAN. * guix/import/cpan.scm (string->license): Replace '(package-license perl) with 'perl-license. --- guix/import/cpan.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 9ee69e5296..01acc6f36e 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -71,7 +71,7 @@ ;; mozilla_1_0 ("mozilla_1_1" 'mpl1.1) ("openssl" 'openssl) - ("perl_5" '(package-license perl)) ;GPL1+ and Artistic 1 + ("perl_5" 'perl-license) ;GPL1+ and Artistic 1 ("qpl_1_0" 'qpl) ;; ssleay ;; sun From 01fc102e377bc949846d026563e239f689184d82 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 13 Sep 2017 03:15:09 +0200 Subject: [PATCH 183/333] gnu: python-botocore: Update to 1.7.9. * gnu/packages/python.scm (python-botocore): Update to 1.7.9. --- 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 d7156bf518..29ea2806e9 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9956,14 +9956,14 @@ document.") (define-public python-botocore (package (name "python-botocore") - (version "1.5.26") + (version "1.7.9") (source (origin (method url-fetch) (uri (pypi-uri "botocore" version)) (sha256 (base32 - "1b7l48hr88galrrc5q6k21z3sdadzxc87ppzs7k9fz4p1w8bfnvb")))) + "02b1bw25r1wdjs5yppb1h9igf11wj092biriv2yg8hzp5r0wrkmg")))) (build-system python-build-system) (arguments ;; FIXME: Many tests are failing. From 46841c07ecabdd3168e77f0bf2a53fbd8d3ef98b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 13 Sep 2017 03:04:51 +0200 Subject: [PATCH 184/333] gnu: python-s3transfer: Update to 0.1.11. * gnu/packages/python.scm (python-s3transfer): Update to 0.1.11. --- 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 29ea2806e9..2efde467a3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -13238,13 +13238,13 @@ Betamax.") (define-public python-s3transfer (package (name "python-s3transfer") - (version "0.1.10") + (version "0.1.11") (source (origin (method url-fetch) (uri (pypi-uri "s3transfer" version)) (sha256 (base32 - "1h8g9bknvxflxkpbnxyfxmk8pvgykbbk9ljdvhqh6z4vjc2926ms")))) + "0yfrfnf404cxzn3iswibqjxklsl0b1lwgqiml6pwiqj79a7zbwbn")))) (build-system python-build-system) (arguments `(#:phases From 3f9a4eaf92c7a4197ce3a23ee8ac5968f80b6431 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 13 Sep 2017 02:55:46 +0200 Subject: [PATCH 185/333] gnu: awscli: Update to 1.11.151. * gnu/packages/python.scm (awscli): Update to 1.11.151. --- 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 2efde467a3..6c76df7b8b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9990,14 +9990,14 @@ interface to the Amazon Web Services (AWS) API.") (define-public awscli (package (name "awscli") - (version "1.11.63") + (version "1.11.151") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "1r8aqv8w27k76lcsfk83w6qw9lz8gk2ibzwacp5wjhpp2gik911m")))) + "0h6rirbfy0f9cxm7ikll0kr720dircfmxf2vslmhn4n325831wsp")))) (build-system python-build-system) (propagated-inputs `(("python-colorama" ,python-colorama) From dd4efefdb0dc3240cd394a79f648cd9b171e83c0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 12 Sep 2017 20:55:54 +0300 Subject: [PATCH 186/333] gnu: gcc@4.9: Inherit from gcc@4.8. * gnu/packages/gcc.scm (gcc@4.9)[inherit]: Inherit from gcc@4.8. [supported-systems]: Remove field. --- gnu/packages/gcc.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index da4d66ce36..6c7f13ea47 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -357,7 +357,7 @@ Go. It also includes runtime support libraries for these languages.") (supported-systems %supported-systems))) (define-public gcc-4.9 - (package (inherit gcc-4.7) + (package (inherit gcc-4.8) (version "4.9.4") (source (origin (method url-fetch) @@ -368,8 +368,7 @@ Go. It also includes runtime support libraries for these languages.") "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) (patches (search-patches "gcc-arm-bug-71399.patch" "gcc-libvtv-runpath.patch")))) - (native-inputs `(("texinfo" ,texinfo))) - (supported-systems %supported-systems))) + (native-inputs `(("texinfo" ,texinfo))))) (define-public gcc-5 ;; Note: GCC >= 5 ships with .info files but 'make install' fails to install From 2b8d4ce819529fe9b094a4aba058e607abc3a364 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 12 Sep 2017 20:57:20 +0300 Subject: [PATCH 187/333] gnu: gcc: Clean up inputs. * gnu/packages/gcc.scm (gcc@4.7)[inputs]: Remove isl, cloog. (gcc@4.8)[inputs]: Add isl, cloog. (gcc@6)[inputs]: Remove cloog. --- gnu/packages/gcc.scm | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 6c7f13ea47..4b495ccbae 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -150,8 +150,6 @@ where the OS part is overloaded to denote a specific ABI---into GCC (inputs `(("gmp" ,gmp) ("mpfr" ,mpfr) ("mpc" ,mpc) - ("isl" ,isl) - ("cloog" ,cloog) ("libelf" ,libelf) ("zlib" ,zlib))) @@ -354,7 +352,11 @@ Go. It also includes runtime support libraries for these languages.") (base32 "08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2")) (patches (search-patches "gcc-arm-link-spec-fix.patch")))) - (supported-systems %supported-systems))) + (supported-systems %supported-systems) + (inputs + `(("isl" ,isl) + ("cloog" ,cloog) + ,@(package-inputs gcc-4.7))))) (define-public gcc-4.9 (package (inherit gcc-4.8) @@ -388,6 +390,10 @@ Go. It also includes runtime support libraries for these languages.") "gcc-5.0-libvtv-runpath.patch" "gcc-5-source-date-epoch-1.patch" "gcc-5-source-date-epoch-2.patch")))))) + ;; TODO: gcc-5 doesn't need cloog. + ;;(inputs + ;; `(("isl" ,isl) + ;; ,@(package-inputs gcc-4.7))))) (define-public gcc-6 (package @@ -401,7 +407,11 @@ Go. It also includes runtime support libraries for these languages.") (base32 "1m0lr7938lw5d773dkvwld90hjlcq2282517d1gwvrfzmwgg42w5")) (patches (search-patches "gcc-strmov-store-file-names.patch" - "gcc-5.0-libvtv-runpath.patch")))))) + "gcc-5.0-libvtv-runpath.patch")))) + (inputs + `(("isl" ,isl) + ,@(package-inputs gcc-4.7))))) + (define-public gcc-7 (package (inherit gcc-6) From ab53bdf01ce4ab36c2522eaa69f917ad2481e127 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 12 Sep 2017 21:12:46 +0300 Subject: [PATCH 188/333] gnu: isl: Update to 0.18. * gnu/packages/gcc.scm (isl): Update to 0.18. (isl-0.11): New variable. (gcc@4.8, cloog)[inputs]: Use isl-0.11. --- gnu/packages/gcc.scm | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 4b495ccbae..7375457a99 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -354,7 +354,7 @@ Go. It also includes runtime support libraries for these languages.") (patches (search-patches "gcc-arm-link-spec-fix.patch")))) (supported-systems %supported-systems) (inputs - `(("isl" ,isl) + `(("isl" ,isl-0.11) ("cloog" ,cloog) ,@(package-inputs gcc-4.7))))) @@ -670,7 +670,7 @@ as the 'native-search-paths' field." (define-public isl (package (name "isl") - (version "0.11.1") + (version "0.18") (source (origin (method url-fetch) (uri (list (string-append @@ -681,8 +681,7 @@ as the 'native-search-paths' field." name "-" version ".tar.gz"))) (sha256 (base32 - "13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9")) - (patches (search-patches "isl-0.11.1-aarch64-support.patch")))) + "06ybml6llhi4i56q90jnimbcgk1lpcdwhy9nxdxra2hxz3bhz2vb")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp))) (home-page "http://isl.gforge.inria.fr/") @@ -700,6 +699,24 @@ reduction, transitive closures on maps (which may encode infinite graphs), dependence analysis and bounds on piecewise step-polynomials.") (license lgpl2.1+))) +(define-public isl-0.11 + (package + (inherit isl) + (name "isl") + (version "0.11.1") + (source (origin + (method url-fetch) + (uri (list (string-append + "http://isl.gforge.inria.fr/isl-" + version + ".tar.bz2") + (string-append %gcc-infrastructure + name "-" version ".tar.gz"))) + (sha256 + (base32 + "13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9")) + (patches (search-patches "isl-0.11.1-aarch64-support.patch")))))) + (define-public cloog (package (name "cloog") @@ -719,7 +736,7 @@ dependence analysis and bounds on piecewise step-polynomials.") (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp) - ("isl" ,isl))) + ("isl" ,isl-0.11))) (arguments '(#:configure-flags '("--with-isl=system"))) (home-page "http://www.cloog.org/") (synopsis "Library to generate code for scanning Z-polyhedra") From 35daddede1498d2c4eb06ef5fcd15631199c6590 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 12 Sep 2017 21:13:39 +0300 Subject: [PATCH 189/333] gnu: gcc@7: Update description. * gnu/packages/gcc.scm (gcc@7)[description]: Remove Java from the list of supported languages. --- gnu/packages/gcc.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 7375457a99..fb2e24721b 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -424,7 +424,11 @@ Go. It also includes runtime support libraries for these languages.") (base32 "16j7i0888j2f1yp9l0nhji6cq65dy6y4nwy8868a8njbzzwavxqw")) (patches (search-patches "gcc-strmov-store-file-names.patch" - "gcc-5.0-libvtv-runpath.patch")))))) + "gcc-5.0-libvtv-runpath.patch")))) + (description + "GCC is the GNU Compiler Collection. It provides compiler front-ends +for several languages, including C, C++, Objective-C, Fortran, Ada, and Go. +It also includes runtime support libraries for these languages."))) ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions and the gfortran definition From 27236a43486b8fbb9d55d533e558165bab07d020 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 13 Sep 2017 10:30:47 -0400 Subject: [PATCH 190/333] gnu: bluez: Add replacement to fix CVE-2017-1000250. * gnu/packages/patches/bluez-CVE-2017-1000250.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/linux.scm (bluez)[replacement]: New field. (bluez/fixed): New variable. --- gnu/local.mk | 1 + gnu/packages/linux.scm | 15 +++++++ .../patches/bluez-CVE-2017-1000250.patch | 42 +++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 gnu/packages/patches/bluez-CVE-2017-1000250.patch diff --git a/gnu/local.mk b/gnu/local.mk index c1bc391101..1f55e52bfd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -536,6 +536,7 @@ dist_patch_DATA = \ %D%/packages/patches/binutils-ld-new-dtags.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blast+-fix-makefile.patch \ + %D%/packages/patches/bluez-CVE-2017-1000250.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 22f22c036c..28a5e5b885 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3013,6 +3013,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (package (name "bluez") (version "5.45") + (replacement bluez/fixed) (source (origin (method url-fetch) (uri (string-append @@ -3074,6 +3075,20 @@ Bluetooth audio output devices like headphones or loudspeakers.") is flexible, efficient and uses a modular implementation.") (license license:gpl2+))) +(define bluez/fixed + (package + (inherit bluez) + (version "5.45") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://kernel.org/linux/bluetooth/bluez-" + version ".tar.xz")) + (sha256 + (base32 + "1sb4aflgyrl7apricjipa8wx95qm69yja0lmn2f19g560c3v1b2c")) + (patches (search-patches "bluez-CVE-2017-1000250.patch")))))) + (define-public fuse-exfat (package (name "fuse-exfat") diff --git a/gnu/packages/patches/bluez-CVE-2017-1000250.patch b/gnu/packages/patches/bluez-CVE-2017-1000250.patch new file mode 100644 index 0000000000..81f209d7b2 --- /dev/null +++ b/gnu/packages/patches/bluez-CVE-2017-1000250.patch @@ -0,0 +1,42 @@ +Description: CVE-2017-1000250: information disclosure vulnerability in service_search_attr_req +Origin: vendor +Bug-Debian: https://bugs.debian.org/875633 +Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1489446 +Bug-SuSE: https://bugzilla.suse.com/show_bug.cgi?id=1057342 +Forwarded: no +Author: Armis Security +Reviewed-by: Salvatore Bonaccorso +Last-Update: 2017-09-13 + +--- a/src/sdpd-request.c ++++ b/src/sdpd-request.c +@@ -918,15 +918,20 @@ static int service_search_attr_req(sdp_r + /* continuation State exists -> get from cache */ + sdp_buf_t *pCache = sdp_get_cached_rsp(cstate); + if (pCache) { +- uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent); +- pResponse = pCache->data; +- memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent); +- buf->data_size += sent; +- cstate->cStateValue.maxBytesSent += sent; +- if (cstate->cStateValue.maxBytesSent == pCache->data_size) +- cstate_size = sdp_set_cstate_pdu(buf, NULL); +- else +- cstate_size = sdp_set_cstate_pdu(buf, cstate); ++ if (cstate->cStateValue.maxBytesSent >= pCache->data_size) { ++ status = SDP_INVALID_CSTATE; ++ SDPDBG("Got bad cstate with invalid size"); ++ } else { ++ uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent); ++ pResponse = pCache->data; ++ memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent); ++ buf->data_size += sent; ++ cstate->cStateValue.maxBytesSent += sent; ++ if (cstate->cStateValue.maxBytesSent == pCache->data_size) ++ cstate_size = sdp_set_cstate_pdu(buf, NULL); ++ else ++ cstate_size = sdp_set_cstate_pdu(buf, cstate); ++ } + } else { + status = SDP_INVALID_CSTATE; + SDPDBG("Non-null continuation state, but null cache buffer"); From ad057b79dd0a8fe9cf3050d1cee46a78289799dd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 13 Sep 2017 18:32:47 +0300 Subject: [PATCH 191/333] gnu: xorriso: Update to 1.4.8. * gnu/packages/cdrom.scm (xorriso): Update to 1.4.8. --- gnu/packages/cdrom.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 704e8ad36d..2f708f0c0b 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -147,14 +147,14 @@ libcdio.") (define-public xorriso (package (name "xorriso") - (version "1.4.6") + (version "1.4.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/xorriso/xorriso-" version ".tar.gz")) (sha256 (base32 - "112p0ghwzxrcjbsir1n2jxhq103ckrw93wzvd55qqvzfgs674vsj")))) + "10c44yr3dpmwxa7rf23mwfsy1bahny3jpcg9ig0xjv090jg0d0pc")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) From 9bb98bcf7b69951b6ce9b9564031893063740795 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 12 Sep 2017 23:27:35 +0200 Subject: [PATCH 192/333] doc: Fix typo in cuirrass config example. * doc/guix.texi (Continuous Integration): Add missing quote in example spec. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 0633691228..97960e9e04 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -27,7 +27,7 @@ Copyright @copyright{} 2016 Chris Marusich@* Copyright @copyright{} 2016, 2017 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016 ng0@* -Copyright @copyright{} 2016 Jan Nieuwenhuizen@* +Copyright @copyright{} 2016, 2017 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017 Clément Lassieur@* @@ -15246,7 +15246,7 @@ packages, as prescribed in the @file{gnu-system.scm} example spec: (#:branch . "master")))) (service cuirass-service-type (cuirass-configuration - (specifications #~(list #$spec))))) + (specifications #~(list '#$spec))))) @end example While information related to build jobs is located directly in the From 1c05aab4732e2805d3fd21900ab53618915b7480 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 12 Sep 2017 23:43:29 +0200 Subject: [PATCH 193/333] gnu: cuirrass: Default port to 8081. * gnu/services/cuirass.scm (): Default port to 8081. Fixes conflict with guix-publish default. * doc/guix.texi (Continuous Integration): Update. --- doc/guix.texi | 2 +- gnu/services/cuirass.scm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 97960e9e04..c9505f41d7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -15277,7 +15277,7 @@ Cuirass jobs. Location of sqlite database which contains the build results and previously added specifications. -@item @code{port} (default: @code{8080}) +@item @code{port} (default: @code{8081}) Port number used by the HTTP server. @item @code{specifications} (default: @code{#~'()}) diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 73a30b2402..2ad5952202 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -60,7 +60,7 @@ (database cuirass-configuration-database ;string (file-name) (default "/var/run/cuirass/cuirass.db")) (port cuirass-configuration-port ;integer (port) - (default 8080)) + (default 8081)) (specifications cuirass-configuration-specifications) ;gexp that evaluates to specification-alist (use-substitutes? cuirass-configuration-use-substitutes? ;boolean From be2b2dff210295e04077b03d4a58fa248f5fe1c4 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 13 Sep 2017 12:51:07 -0400 Subject: [PATCH 194/333] gnu: linux-libre: Fix CVE-2017-1000251. * gnu/packages/linux.scm (linux-libre, linux-libre-4.9) (linux-libre-4.4, linux-libre-arm-generic): Add patch. --- gnu/packages/linux.scm | 60 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 28a5e5b885..40d9cf240c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -374,32 +374,82 @@ It has been modified to remove all non-free binary blobs.") (make-linux-libre %linux-libre-version %linux-libre-hash %intel-compatible-systems - #:configuration-file kernel-config)) + #:configuration-file kernel-config + #:patches + (list %boot-logo-patch + (origin + (method url-fetch) + (uri "\ +https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=7c3899324f16a8e50764fc9804bf4b06ac023133") + (file-name "linux-libre-4.13-CVE-2017-1000251.patch") + (sha256 + (base32 + "11pxxrvfvpq9xfahdk73c64w2381w1yqchphjgylzahw4p6mjffh")))))) (define-public linux-libre-4.9 (make-linux-libre "4.9.49" "07k3zn6kqbbyrjmknwvx5d4pnblz9s8sarxym5lgjm8abpvjp347" %intel-compatible-systems - #:configuration-file kernel-config)) + #:configuration-file kernel-config + #:patches + (list %boot-logo-patch + (origin + (method url-fetch) + (uri "\ +https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=2bc1cc696eb173578162d6202a032fb46e3db1f4") + (file-name "linux-libre-4.9-CVE-2017-1000251.patch") + (sha256 + (base32 + "0mpl5mc9s0bs2ls9hvl8dfm8vfaicx87j3n32nswqj4yk61inma5")))))) (define-public linux-libre-4.4 (make-linux-libre "4.4.87" "0yiqs4i4ydgb2kg8xdyqk9rkhymrnd2dw7jf9wnn5kxfwc2nbqpj" %intel-compatible-systems - #:configuration-file kernel-config)) + #:configuration-file kernel-config + #:patches + (list %boot-logo-patch + (origin + (method url-fetch) + (uri "\ +https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=4a01092a5fa819397484fe2b50e9518356858156") + (file-name "linux-libre-4.4-CVE-2017-1000251.patch") + (sha256 + (base32 + "0zmkw9zvzpwy2ihiyfrw6mrf8qzv77cm23lxadr20qvzqlc1xzb3")))))) (define-public linux-libre-4.1 (make-linux-libre "4.1.43" "0ycqmvczj7lm7czilnwpyp14n2lzilyx7m43rsq1qdm2m5rp4q2w" %intel-compatible-systems - #:configuration-file kernel-config)) + #:configuration-file kernel-config + #:patches + (list %boot-logo-patch + (origin + (method url-fetch) + (uri "\ +https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=4a01092a5fa819397484fe2b50e9518356858156") + (file-name "linux-libre-4.4-CVE-2017-1000251.patch") + (sha256 + (base32 + "0zmkw9zvzpwy2ihiyfrw6mrf8qzv77cm23lxadr20qvzqlc1xzb3")))))) (define-public linux-libre-arm-generic (make-linux-libre %linux-libre-version %linux-libre-hash '("armhf-linux") #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic")) + #:extra-version "arm-generic" + #:patches + (list %boot-logo-patch + (origin + (method url-fetch) + (uri "\ +https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=7c3899324f16a8e50764fc9804bf4b06ac023133") + (file-name "linux-libre-4.13-CVE-2017-1000251.patch") + (sha256 + (base32 + "11pxxrvfvpq9xfahdk73c64w2381w1yqchphjgylzahw4p6mjffh")))))) ;;; From 921bb359ba0112faf16f40ad5f10745beceb96f2 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 13 Sep 2017 12:55:14 -0400 Subject: [PATCH 195/333] gnu: linux-libre@4.9: Fix hash. The linux-libre-4.9.49 tarball on the distribution site was repacked using a non-deterministic process, thus changing the tarball hash, although the contents of the files in the tarball were not changed. * gnu/packages/linux.scm (linux-libre-4.9): Update hash. --- 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 40d9cf240c..aa554ab154 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -388,7 +388,7 @@ https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch (define-public linux-libre-4.9 (make-linux-libre "4.9.49" - "07k3zn6kqbbyrjmknwvx5d4pnblz9s8sarxym5lgjm8abpvjp347" + "0m0bhhhndfwvfhy3kc3a87qc9vqx9w61sw2zcjppisx4h2pzmfds" %intel-compatible-systems #:configuration-file kernel-config #:patches From 31d3a7c729068681a3a05036a3fe993213635fc6 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 6 Jun 2017 07:12:20 +0100 Subject: [PATCH 196/333] gnu: Add discount. This is required by perl-text-markdown-discount, which is required by ikiwiki. * gnu/packages/markdown.scm (discount) New variable. --- gnu/packages/markup.scm | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm index 121e6cdbf4..e3630fe2f4 100644 --- a/gnu/packages/markup.scm +++ b/gnu/packages/markup.scm @@ -102,6 +102,48 @@ convert it to structurally valid XHTML (or HTML).") (license (non-copyleft "file://License.text" "See License.text in the distribution.")))) +(define-public discount + (package + (name "discount") + (version "2.2.2") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.pell.portland.or.us/~orc/Code/" + name "/" name "-" version ".tar.bz2")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0r4gjyk1ngx47zhb25q0gkjm3bz2m5x8ngrk6rim3y1y3rricygc")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:make-flags (list + (string-append "LFLAGS=-L. -Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-AC_PATH + (lambda _ + ;; The default value is not suitable, so override using an + ;; environment variable. This just affects the build, and not the + ;; resulting store item. + (setenv "AC_PATH" (getenv "PATH")) + #t)) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "CC" "gcc") + (zero? (system* + "./configure.sh" + (string-append "--prefix=" (assoc-ref outputs "out")) + "--shared"))))))) + (synopsis "Markdown processing library, written in C") + (description + "Discount is a markdown implementation, written in C. It provides a +@command{markdown} command, and a library.") + (home-page "http://www.pell.portland.or.us/~orc/Code/discount/") + (license bsd-3))) + (define-public cmark (package (name "cmark") From 9d46919f9c0898f88e0635efeb837efcc9144fb9 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 6 Jun 2017 07:12:49 +0100 Subject: [PATCH 197/333] gnu: Add perl-text-markdown-discount. * gnu/packages/markdown.scm (perl-text-markdown-discount): New variable. * gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch: New file. --- gnu/packages/markup.scm | 46 +++++++++++++++++++ ...arkdown-discount-use-system-markdown.patch | 32 +++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm index e3630fe2f4..667f8b0a94 100644 --- a/gnu/packages/markup.scm +++ b/gnu/packages/markup.scm @@ -26,7 +26,9 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix build-system cmake) + #:use-module (guix build-system perl) #:use-module (gnu packages compression) + #:use-module (gnu packages) #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages web)) @@ -144,6 +146,50 @@ convert it to structurally valid XHTML (or HTML).") (home-page "http://www.pell.portland.or.us/~orc/Code/discount/") (license bsd-3))) +(define-public perl-text-markdown-discount + (package + (name "perl-text-markdown-discount") + (version "0.11") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/S/SE/SEKIMURA/Text-Markdown-Discount-" + version + ".tar.gz")) + (sha256 + (base32 + "1xx7v3wnla7m6wa3h33whxw3vvincaicg4yra1b9wbzf2aix9rnw")) + (patches + (search-patches "perl-text-markdown-discount-use-system-markdown.patch")))) + (build-system perl-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'set-ldflags + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile" + (("OTHERLDFLAGS = ") + (string-append + "OTHERLDFLAGS = -lmarkdown -Wl,-rpath=" + (assoc-ref inputs "discount") + "/lib")))))))) + (inputs + `(("discount" ,discount))) + (home-page + "http://search.cpan.org/dist/Text-Markdown-Discount") + (synopsis + "Fast function for converting Markdown to HTML using Discount") + (description + "Text::Markdown::Discount is a Perl extension to the Discount markdown +implementation. + +@example + use Text::Markdown::Discount; + my $html = markdown($text) +@end example") + (license perl-license))) + (define-public cmark (package (name "cmark") diff --git a/gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch b/gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch new file mode 100644 index 0000000000..e0df632a04 --- /dev/null +++ b/gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch @@ -0,0 +1,32 @@ +Description: Use the markdown library provided by the libmarkdown2 package. +Author: Alessandro Ghedini +Origin: vendor +Forwarded: not-needed +Last-Update: 2012-01-01 + +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -57,12 +57,6 @@ + + + +-sub MY::postamble { +- return sprintf(' +-$(MYEXTLIB): +- %s +-', qq{( cd $extdir; CC='cc -fPIC' sh configure.sh; make )\n}); +-} + + WriteMakefile( + NAME => 'Text::Markdown::Discount', +@@ -71,8 +65,6 @@ + ($] >= 5.005 ? + (ABSTRACT_FROM => 'lib/Text/Markdown/Discount.pm', + AUTHOR => 'Masayoshi Sekimura ') : ()), +- LIBS => '-L' . $extdir, +- INC => '-I. -I' . $extdir, +- MYEXTLIB => $myextlib, +- clean => { FILES => $clean_files }, ++ LIBS => '-lmarkdown', ++ INC => '-I.', + ); From 19d81cf7dc38233600b4664687e24027f4d1c6e4 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 6 Jun 2017 07:14:01 +0100 Subject: [PATCH 198/333] gnu: Add perl-test-cpan-meta-json. * gnu/packages/perl.scm (perl-test-cpan-meta-json): New variable. --- gnu/packages/perl.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 4463d22fd0..9cdddc1db2 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7056,6 +7056,34 @@ namespace::autoclean or namespace::clean and are therefore available to be called as methods, which usually isn't want you want.") (license (package-license perl)))) +(define-public perl-test-cpan-meta-json + (package + (name "perl-test-cpan-meta-json") + (version "0.16") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-" + version + ".tar.gz")) + (sha256 + (base32 + "1jg9ka50ixwq083wd4k12rhdjq87w0ihb34gd8jjn7gvvyd51b37")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (inputs + `(("perl-json" ,perl-json))) + (home-page + "http://search.cpan.org/dist/Test-CPAN-Meta-JSON") + (synopsis "Validate your CPAN META.json files") + (description + "This module was written to ensure that a META.json file meets the +specification.") + (license artistic2.0))) + (define-public perl-test-deep (package (name "perl-test-deep") From d5b50202d7b585da098094d06fed57b31044b171 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 21 Aug 2017 11:38:44 +0100 Subject: [PATCH 199/333] gnu: Add perl-test-cpan-meta. * gnu/packages/perl.scm (perl-test-cpan-meta): New variable. --- gnu/packages/perl.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 9cdddc1db2..c8fe816a00 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7056,6 +7056,33 @@ namespace::autoclean or namespace::clean and are therefore available to be called as methods, which usually isn't want you want.") (license (package-license perl)))) +(define-public perl-test-cpan-meta + (package + (name "perl-test-cpan-meta") + (version "0.25") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-" + version + ".tar.gz")) + (sha256 + (base32 + "1dcdbbdwdyhpldkhjzc9rvzlmb5jbil6fwh2x07nsfdwysf4ynzm")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-cpan-meta-json" ,perl-test-cpan-meta-json) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page + "http://search.cpan.org/dist/Test-CPAN-Meta") + (synopsis "Validate your CPAN META.yml files") + (description + "This module was written to ensure that a META.yml file meets the +specification.") + (license artistic2.0))) + (define-public perl-test-cpan-meta-json (package (name "perl-test-cpan-meta-json") From b4387d868b5a2edc973e6aac024e81f6a06a8368 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 21 Aug 2017 15:55:07 +0100 Subject: [PATCH 200/333] gnu: Add perl-devel-cycle. * gnu/packages/perl.scm (perl-devel-cycle): New variable. --- gnu/packages/perl.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index c8fe816a00..44f85da5e1 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2331,6 +2331,30 @@ whether a compiler is available. It can test for a C99 compiler, or you can tell it to compile a C source file with optional linker flags.") (license (package-license perl)))) +(define-public perl-devel-cycle + (package + (name "perl-devel-cycle") + (version "1.12") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/L/LD/LDS/Devel-Cycle-" + version + ".tar.gz")) + (sha256 + (base32 + "1hhb77kz3dys8yaik452j22cm3510zald2mpvfyv5clqv326aczx")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Devel-Cycle") + (synopsis "Find memory cycles in objects") + (description + "@code{Devel::Cycle} This is a tool for finding circular references in +objects and other types of references. Because of Perl's reference-count +based memory management, circular references will cause memory leaks.") + (license perl-license))) + (define-public perl-devel-globaldestruction (package (name "perl-devel-globaldestruction") From 3d74955842d5e6d5db531a0588e13e34bb73e6d6 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 21 Aug 2017 15:56:30 +0100 Subject: [PATCH 201/333] gnu: Add perl-test-memory-cycle. * gnu/packages/perl.scm (perl-test-memory-cycle): New variable. --- gnu/packages/perl.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 44f85da5e1..0627db119c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7397,6 +7397,42 @@ file to find out which tests you want to run and the order in which you want to It constructs the right value for the build system to do the right thing.") (license (package-license perl)))) +(define-public perl-test-memory-cycle + (package + (name "perl-test-memory-cycle") + (version "1.06") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-" + version + ".tar.gz")) + (sha256 + (base32 + "00ijmgx1r3cxrcs1qa9rb2s4gbm3nsawd90drda89kb4r7yxslwx")))) + (build-system perl-build-system) + (inputs + `(("perl-padwalker" ,perl-padwalker))) + (propagated-inputs + `(("perl-devel-cycle" ,perl-devel-cycle))) + (home-page + "http://search.cpan.org/dist/Test-Memory-Cycle") + (synopsis + "Verifies code hasn't left circular references") + (description + "@code{Test::Memory::Cycle} is built on top of @code{Devel::Cycle} to +give you an easy way to check for these circular references. + +@example +use Test::Memory::Cycle; + +my $object = new MyObject; +# Do stuff with the object. +memory_cycle_ok( $object ); +@end example") + (license artistic2.0))) + (define-public perl-test-mockobject (package (name "perl-test-mockobject") From 88002553ae57e8a9b0a3e1af22fc6eaf32d17567 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 21 Aug 2017 15:57:01 +0100 Subject: [PATCH 202/333] gnu: Add perl-test-notabs. * gnu/packages/perl.scm (perl-test-notabs): New variable. --- gnu/packages/perl.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 0627db119c..a83a896adf 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7538,6 +7538,30 @@ with an error rather than skip. If used in a subtest, the remainder of the subtest will be skipped.") (license (package-license perl)))) +(define-public perl-test-notabs + (package + (name "perl-test-notabs") + (version "2.00") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-" + version + ".tar.gz")) + (sha256 + (base32 + "127kpl1va267qar2ia4c22xb96jby2jqnda3sj5pjgmxg8si26cg")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-NoTabs") + (synopsis + "Check the presence of tabs in your project") + (description + "@code{Test::NoTabs} lets you check the presence of tabs in your perl +code.") + (license perl-license))) + (define-public perl-test-nowarnings (package (name "perl-test-nowarnings") From 7d1f9c91e67ccdcc0d798b124e0b967177ea6b72 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 21 Aug 2017 17:00:55 +0100 Subject: [PATCH 203/333] gnu: Add perl-test-eol. * gnu/packages/perl.scm (perl-test-eol): New variable. --- gnu/packages/perl.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index a83a896adf..d495fa25aa 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7208,6 +7208,30 @@ modified or tested with this API, making it simple to test both individual files, as well as to verify that there are no missing or unknown files.") (license (package-license perl)))) +(define-public perl-test-eol + (package + (name "perl-test-eol") + (version "2.00") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-" + version + ".tar.gz")) + (sha256 + (base32 + "0l3bxpsw0x7j9nclizcp53mnf9wny25dmg2iglfhzgnk0xfpwzwf")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-EOL") + (synopsis + "Check the correct line endings in your project") + (description + "@code{Test::EOL} lets you check for the presence of trailing whitespace +and/or windows line endings in your perl code.") + (license perl-license))) + (define-public perl-test-exception (package (name "perl-test-exception") From 4f0ee1b4dff4fa224b7178134410b8821f137d13 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 21 Aug 2017 11:39:14 +0100 Subject: [PATCH 204/333] gnu: Add perl-html-scrubber. * gnu/packages/web.scm (perl-html-scrubber): New variable. --- gnu/packages/web.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 377e366e27..5f255abf1e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -2185,6 +2185,37 @@ composed of HTML::Element style components.")
...
instance.") (license l:perl-license))) +(define-public perl-html-scrubber + (package + (name "perl-html-scrubber") + (version "0.15") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-" + version + ".tar.gz")) + (sha256 + (base32 + "1m1f8gm2jry42zxja05dxp2ck7y66m7i8vc38nj6hccnwlby6cvi")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-cpan-meta" ,perl-test-cpan-meta) + ("perl-test-eol" ,perl-test-eol) + ("perl-test-memory-cycle" ,perl-test-memory-cycle) + ("perl-test-notabs" ,perl-test-notabs))) + (inputs + `(("perl-html-parser" ,perl-html-parser))) + (home-page + "http://search.cpan.org/dist/HTML-Scrubber") + (synopsis + "Perl extension for scrubbing/sanitizing html") + (description + "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML.") + (license l:perl-license))) + (define-public perl-html-lint (package (name "perl-html-lint") From 86bd64b613c799f23a8b378aa92365fad9ae72ed Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 21 Aug 2017 11:39:27 +0100 Subject: [PATCH 205/333] gnu: Add perl-yaml-libyaml. * gnu/packages/perl.scm (perl-yaml-libyaml): New variable. --- gnu/packages/perl.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index d495fa25aa..09d6798177 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -8836,6 +8836,30 @@ neither visible nor modifiable from Perl space).") on the YAML 1.0 specification.") (license (package-license perl)))) +(define-public perl-yaml-libyaml + (package + (name "perl-yaml-libyaml") + (version "0.65") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-" + version + ".tar.gz")) + (sha256 + (base32 + "0izhvz8f29x1f50hhwfgm0iq1lz7apjjvg77lmky949jr07hnwfv")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/YAML-LibYAML") + (synopsis + "Perl YAML Serialization using XS and libyaml") + (description + "@code{YAML::XS} is a Perl XS binding to libyaml which offers Perl the +best YAML support to date.") + (license perl-license))) + (define-public perl-yaml-tiny (package (name "perl-yaml-tiny") From f0539b66fe635358b8fe37930e68d18a15eeffc9 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 21 Aug 2017 11:34:24 +0100 Subject: [PATCH 206/333] gnu: Add perl-cgi-session. * gnu/packages/web.scm (perl-cgi-session): New variable. --- gnu/packages/web.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 5f255abf1e..393e36e16e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1913,6 +1913,33 @@ string generation and manipulation, and processing and preparing HTTP headers.") (license l:perl-license))) +(define-public perl-cgi-session + (package + (name "perl-cgi-session") + (version "4.48") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-" + version + ".tar.gz")) + (sha256 + (base32 + "1xsl2pz1jrh127pq0b01yffnj4mnp9nvkp88h5mndrscq9hn8xa6")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (inputs `(("perl-cgi" ,perl-cgi))) + (home-page + "http://search.cpan.org/dist/CGI-Session") + (synopsis + "Persistent session data in CGI applications") + (description + "@code{CGI::Session} provides modular session management system across +HTTP requests.") + (license l:perl-license))) + (define-public perl-cgi-simple (package (name "perl-cgi-simple") From 909dcf5b469c799a138ca48a33b599adacfa8808 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 21 Aug 2017 11:39:47 +0100 Subject: [PATCH 207/333] gnu: Add ikiwiki. * gnu/packages/web.scm (ikiwiki): New variable. --- gnu/packages/web.scm | 73 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 393e36e16e..72892ffe22 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -76,9 +76,11 @@ #:use-module (gnu packages java) #:use-module (gnu packages javascript) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages libidn) #:use-module (gnu packages libunistring) #:use-module (gnu packages lua) + #:use-module (gnu packages markup) #:use-module (gnu packages ncurses) #:use-module (gnu packages base) #:use-module (gnu packages perl) @@ -92,7 +94,8 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) - #:use-module (gnu packages statistics)) + #:use-module (gnu packages statistics) + #:use-module (gnu packages version-control)) (define-public httpd (package @@ -4069,6 +4072,74 @@ parse both valid and invalid web content. It is developed as part of the NetSurf project.") (license l:expat))) +(define-public ikiwiki + (package + (name "ikiwiki") + (version "3.20170111") + (source + (origin + (method url-fetch) + (uri (string-append "http://snapshot.debian.org/archive/debian/" + "20170111T215449Z/pool/main/i/ikiwiki/ikiwiki_" + version ".tar.xz")) + (sha256 + (base32 + "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz")))) + (build-system perl-build-system) + (arguments + `(;; Image tests fail + ;; + ;; Test Summary Report + ;; ------------------- + ;; t/img.t (Wstat: 2304 Tests: 62 Failed: 9) + ;; Failed tests: 21, 27-28, 30-35 + ;; Non-zero exit status: 9 + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (path (getenv "PERL5LIB"))) + (for-each (lambda (file) + (wrap-program file + `("PERL5LIB" ":" prefix (,path)))) + (find-files bin)) + #t)))))) + (native-inputs + `(("which" ,which) + ("perl-html-tagset" ,perl-html-tagset) + ("perl-timedate" ,perl-timedate) + ("perl-xml-sax" ,perl-xml-sax) + ("perl-xml-simple" ,perl-xml-simple) + ("gettext" ,gettext-minimal) + ("subversion" ,subversion) + ("git" ,git) + ("bazaar" ,bazaar) + ("cvs" ,cvs) + ("mercurial" ,mercurial))) + (inputs + `(("python" ,python-wrapper) + ("perl-cgi-session" ,perl-cgi-session) + ("perl-cgi-simple" ,perl-cgi-simple) + ("perl-json" ,perl-json) + ("perl-image-magick" ,perl-image-magick) + ("perl-uri" ,perl-uri) + ("perl-html-parser" ,perl-html-parser) + ("perl-uri" ,perl-uri) + ("perl-text-markdown-discount" ,perl-text-markdown-discount) + ("perl-html-scrubber" ,perl-html-scrubber) + ("perl-html-template" ,perl-html-template) + ("perl-yaml-libyaml" ,perl-yaml-libyaml))) + (home-page "https://ikiwiki.info/") + (synopsis "Wiki compiler, capable of generating HTML") + (description + "Ikiwiki is a wiki compiler, capable of generating a static set of web +pages, but also incorporating dynamic features like a web based editor and +commenting.") + (license l:gpl2+))) + (define-public libwapcaplet (package (name "libwapcaplet") From 79e5e00f4f0b5a6b2cbf13f60bcd1fd7029f8e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 13 Sep 2017 23:33:07 +0200 Subject: [PATCH 208/333] import: cpan: Adjust expected license in tests. This is a followup to 01ef804d69b2e57dd7b1d3d13e66e3f67e7c548a. * tests/cpan.scm ("cpan->guix-package"): Expect 'perl-license'. --- tests/cpan.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cpan.scm b/tests/cpan.scm index de865b22be..8900716cb0 100644 --- a/tests/cpan.scm +++ b/tests/cpan.scm @@ -100,7 +100,7 @@ ('home-page "http://search.cpan.org/dist/Foo-Bar") ('synopsis "Fizzle Fuzz") ('description 'fill-in-yourself!) - ('license (package-license perl))) + ('license 'perl-license)) (string=? (bytevector->nix-base32-string (call-with-input-string test-source port-sha256)) hash)) From 2ed1f4a52d8bec2c18a9c92cf4e7caf93aeb40fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 13 Sep 2017 23:57:22 +0200 Subject: [PATCH 209/333] uuid: Adjust tests. This is a followup to 9b336338cdc0e46a3bf7a2913c2f61cd2410c4d6. * tests/file-systems.scm ("uuid"): Add call to 'uuid-bytevector'. ("uuid, syntax error"): Add 'dce to the expected form. --- tests/file-systems.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/file-systems.scm b/tests/file-systems.scm index 12f4f09c57..8e5c75e48c 100644 --- a/tests/file-systems.scm +++ b/tests/file-systems.scm @@ -19,6 +19,7 @@ (define-module (test-file-systems) #:use-module (guix store) #:use-module (guix modules) + #:use-module (gnu system uuid) #:use-module (gnu system file-systems) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) @@ -41,7 +42,8 @@ (test-assert "uuid" (let ((str "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) - (bytevector=? (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb") + (bytevector=? (uuid-bytevector + (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))) (test-assert "uuid, syntax error" @@ -52,7 +54,7 @@ (lambda (key proc message location form . args) (and (eq? proc 'uuid) (string-contains message "invalid UUID") - (equal? form '(uuid "foobar")))))) + (equal? form '(uuid "foobar" 'dce)))))) (test-assert "file-system-needed-for-boot?" (let-syntax ((dummy-fs (syntax-rules () From 8f3b63b5d73c0b49139c8a20b7576732abfdeeb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 14 Sep 2017 00:01:21 +0200 Subject: [PATCH 210/333] uuid: Move tests to 'tests/uuid.scm'. * tests/file-systems.scm ("uuid->string", "string->uuid") ("uuid", "uuid, syntax error"): Move to... * tests/uuid.scm: ... here. New file. ("uuid, ISO-9660, format preserved"): New test. --- Makefile.am | 1 + tests/file-systems.scm | 28 --------------------- tests/uuid.scm | 56 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 28 deletions(-) create mode 100644 tests/uuid.scm diff --git a/Makefile.am b/Makefile.am index 4c2e77d191..aca18526f7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -312,6 +312,7 @@ SCM_TESTS = \ tests/workers.scm \ tests/zlib.scm \ tests/file-systems.scm \ + tests/uuid.scm \ tests/system.scm \ tests/services.scm \ tests/scripts-build.scm \ diff --git a/tests/file-systems.scm b/tests/file-systems.scm index 8e5c75e48c..4c28d0ebc5 100644 --- a/tests/file-systems.scm +++ b/tests/file-systems.scm @@ -19,43 +19,15 @@ (define-module (test-file-systems) #:use-module (guix store) #:use-module (guix modules) - #:use-module (gnu system uuid) #:use-module (gnu system file-systems) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) - #:use-module (rnrs bytevectors) #:use-module (ice-9 match)) ;; Test the (gnu system file-systems) module. (test-begin "file-systems") -(test-equal "uuid->string" - "c5307e6b-d1ba-499d-89c5-cb0b143577c4" - (uuid->string - #vu8(197 48 126 107 209 186 73 157 137 197 203 11 20 53 119 196))) - -(test-equal "string->uuid" - '(16 "4dab5feb-d176-45de-b287-9b0a6e4c01cb") - (let ((uuid (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) - (list (bytevector-length uuid) (uuid->string uuid)))) - -(test-assert "uuid" - (let ((str "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) - (bytevector=? (uuid-bytevector - (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) - (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))) - -(test-assert "uuid, syntax error" - (catch 'syntax-error - (lambda () - (eval '(uuid "foobar") (current-module)) - #f) - (lambda (key proc message location form . args) - (and (eq? proc 'uuid) - (string-contains message "invalid UUID") - (equal? form '(uuid "foobar" 'dce)))))) - (test-assert "file-system-needed-for-boot?" (let-syntax ((dummy-fs (syntax-rules () ((_ directory) diff --git a/tests/uuid.scm b/tests/uuid.scm new file mode 100644 index 0000000000..c2f15de996 --- /dev/null +++ b/tests/uuid.scm @@ -0,0 +1,56 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015, 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-uuid) + #:use-module (gnu system uuid) + #:use-module (srfi srfi-64) + #:use-module (rnrs bytevectors)) + +(test-begin "uuid") + +(test-equal "uuid->string" + "c5307e6b-d1ba-499d-89c5-cb0b143577c4" + (uuid->string + #vu8(197 48 126 107 209 186 73 157 137 197 203 11 20 53 119 196))) + +(test-equal "string->uuid" + '(16 "4dab5feb-d176-45de-b287-9b0a6e4c01cb") + (let ((uuid (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) + (list (bytevector-length uuid) (uuid->string uuid)))) + +(test-assert "uuid" + (let ((str "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) + (bytevector=? (uuid-bytevector + (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) + (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))) + +(test-assert "uuid, syntax error" + (catch 'syntax-error + (lambda () + (eval '(uuid "foobar") (current-module)) + #f) + (lambda (key proc message location form . args) + (and (eq? proc 'uuid) + (string-contains message "invalid UUID") + (equal? form '(uuid "foobar" 'dce)))))) + +(test-equal "uuid, ISO-9660, format preserved" + "1970-01-01-17-14-42-99" + (uuid->string (uuid "1970-01-01-17-14-42-99" 'iso9660))) + +(test-end) From aa90375afe2490278479066229f00cb7468dd31a Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 29 Aug 2017 23:56:28 +0530 Subject: [PATCH 211/333] gnu: Add os-prober. * gnu/packages/bootloaders.scm (os-prober): New variable. --- gnu/packages/bootloaders.scm | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index f66d0bb3f4..613537a5d1 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -395,3 +395,72 @@ also initializes the boards (RAM etc).") (define-public u-boot-odroid-c2 (make-u-boot-package "odroid-c2" "aarch64-linux-gnu")) + +(define-public os-prober + (package + (name "os-prober") + (version "1.76") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://debian/pool/main/o/os-prober/os-prober_" + version ".tar.xz")) + (sha256 + (base32 + "1vb45i76bqivlghrq7m3n07qfmmq4wxrkplqx8gywj011rhq19fk")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 regex) ; for string-match + (srfi srfi-26)) ; for cut + #:make-flags (list "CC=gcc") + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* (find-files ".") + (("/usr") (assoc-ref outputs "out"))) + (substitute* (find-files "." "50mounted-tests$") + (("mkdir") "mkdir -p")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (define (find-files-non-recursive directory) + (find-files directory + (lambda (file stat) + (string-match (string-append "^" directory "/[^/]*$") + file)) + #:directories? #t)) + + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (share (string-append out "/share"))) + (for-each (cut install-file <> bin) + (list "linux-boot-prober" "os-prober")) + (install-file "newns" (string-append lib "/os-prober")) + (install-file "common.sh" (string-append share "/os-prober")) + (install-file "os-probes/mounted/powerpc/20macosx" + (string-append lib "/os-probes/mounted")) + (for-each + (lambda (directory) + (for-each + (lambda (file) + (let ((destination (string-append lib "/" directory + "/" (basename file)))) + (mkdir-p (dirname destination)) + (copy-recursively file destination))) + (append (find-files-non-recursive (string-append directory "/common")) + (find-files-non-recursive (string-append directory "/x86"))))) + (list "os-probes" "os-probes/mounted" "os-probes/init" + "linux-boot-probes" "linux-boot-probes/mounted")) + #t)))))) + (home-page "https://joeyh.name/code/os-prober") + (synopsis "Detect other operating systems") + (description "os-prober probes disks on the system for other operating +systems so that they can be added to the bootloader. It also works out how to +boot existing GNU/Linux systems and detects what distribution is installed in +order to add a suitable bootloader menu entry.") + (license license:gpl2+))) From eb28a777b5ad13e88d5932e9f97c976a079c94ac Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Mon, 11 Sep 2017 21:44:14 -0500 Subject: [PATCH 212/333] gnu: Add John the Ripper. * gnu/packages/password-utils.scm (john-the-ripper-jumbo): New variable. --- gnu/packages/password-utils.scm | 98 +++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index bde1ea8544..52689a71d5 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Jelle Licht +;;; Copyright © 2017 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,10 +42,13 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) + #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages kerberos) #:use-module (gnu packages linux) #:use-module (gnu packages man) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -480,3 +484,97 @@ use pass, the standard unix password manager, as the credential backend for your git repositories. This is achieved by explicitly defining mappings between hosts and entries in the password store.") (license license:lgpl3+))) + +(define-public john-the-ripper-jumbo + (let ((official-version "1.8.0") + (jumbo-version "1")) + (package + (name "john-the-ripper-jumbo") + (version (string-append official-version "-" jumbo-version)) + (source + (origin + (method url-fetch) + (uri (string-append "http://www.openwall.com/john/j/john-" + official-version "-jumbo-" jumbo-version ".tar.xz")) + (sha256 + (base32 + "08q92sfdvkz47rx6qjn7qv57cmlpy7i7rgddapq5384mb413vjds")) + (patches + (list (origin + (method url-fetch) + (uri (string-append "https://github.com/magnumripper/" + "JohnTheRipper/commit/" + "e2e868db3e153b3f959e119a51703d4afb99c624.patch")) + (file-name "john-the-ripper-jumbo-gcc5-inline.patch") + (sha256 + (base32 + "1shvcf1y2097115mxhzdkm64dr106a8zr6pqjqyh171q5ng5vfra"))) + (origin + (method url-fetch) + (uri (string-append "https://github.com/magnumripper/" + "JohnTheRipper/commit/" + "480e95b0e449863be3e1a5b0bc634a67df28b618.patch")) + (file-name "john-the-ripper-jumbo-non-x86.patch") + (sha256 + (base32 + "1ffd9dvhk0sb6ss8dv5yalh01lz30i7rilqilf2xv68gax2hyjqx"))))))) + (build-system gnu-build-system) + (inputs + `(("gmp" ,gmp) + ("krb5" ,mit-krb5) + ("libpcap" ,libpcap) + ("nss" ,nss) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags + (list (string-append + "CFLAGS=-O2 -g " + "-DJOHN_SYSTEMWIDE=1 " + "-DJOHN_SYSTEMWIDE_EXEC='\"" %output "/libexec/john\"' " + "-DJOHN_SYSTEMWIDE_HOME='\"" %output "/share/john\"'") + ;; For now, do not test for instruction set in configure, and + ;; do not pass '-march=native' to gcc: + "--disable-native-tests" + "--disable-native-macro") + #:tests? #f ;tests try to create '.john' in the build user's $HOME + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir-src + (lambda _ (chdir "src"))) + (replace 'install + (lambda _ + (let ((bindir (string-append %output "/bin")) + (docdir (string-append %output "/share/doc/john")) + (execdir (string-append %output "/libexec/john")) + (homedir (string-append %output "/share/john")) + (install-file-to (lambda (dir) + (lambda (f) (install-file f dir)))) + (symlink? (lambda (_ s) (eq? (stat:type s) 'symlink)))) + (with-directory-excursion "../run" + (for-each (install-file-to execdir) + (cons* "mailer" "benchmark-unify" + (find-files "." ".*\\.(py|rb|pl)"))) + (for-each (install-file-to homedir) + (append (find-files "." "(stats|dictionary.*)") + (find-files "." "(.*\\.chr|.*\\.lst)") + (find-files "." ".*\\.conf"))) + (for-each (install-file-to bindir) + '("tgtsnarf" "genmkvpwd" "mkvcalcproba" + "raw2dyna" "luks2john" "vncpcap2john" + "uaf2john" "calc_stat" "wpapcap2john" + "cprepair" "relbench" "SIPdump" "john")) + (for-each (lambda (f) ;install symlinked aliases + (symlink "john" + (string-append bindir "/" (basename f)))) + (find-files "." symlink?))) + (copy-recursively "../doc" docdir) + #t)))))) + (home-page "http://www.openwall.com/john/") + (synopsis "Password cracker") + (description "John the Ripper is a fast password cracker. Its primary +purpose is to detect weak Unix passwords. Besides several @code{crypt} +password hash types most commonly found on various Unix systems, supported out +of the box are Windows LM hashes, plus lots of other hashes and ciphers. This +is the community-enhanced, \"jumbo\" version of John the Ripper.") + (license license:gpl2+)))) From 4b052c6a4dd20670b34593547932eacf4ae0a0f7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Sep 2017 09:30:04 +0300 Subject: [PATCH 213/333] gnu: sudo: Update to 1.8.21p2. * gnu/packages/admin.scm (sudo): Update to 1.8.21p2. --- gnu/packages/admin.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index e6d5afe765..8e98174f47 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -818,7 +818,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.8.20p2") + (version "1.8.21p2") (source (origin (method url-fetch) (uri @@ -828,7 +828,7 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "1na5likm1srnd1g5sjx7b0543sczw0yppacyqsazfdg9b48awhmx")) + "0s33szq6q59v5s377l4v6ybsdy7pfq6sz7y364j4x09ssdn79ibl")) (modules '((guix build utils))) (snippet '(delete-file-recursively "lib/zlib")))) @@ -871,7 +871,8 @@ system administrator.") "$(TMPDIR)/dummy") (("\\$\\(DESTDIR\\)\\$\\(vardir\\)") ;; Don't try to create /var/db/sudo. - "$(TMPDIR)/dummy"))))) + "$(TMPDIR)/dummy")) + #t))) ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but ;; the chroot's /etc/passwd doesn't have it. Turn off the tests. From 194b4e7d65137b5b781b3d1c05f4cbd879cd85db Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Thu, 7 Sep 2017 13:59:47 +0200 Subject: [PATCH 214/333] gnu: Add godot. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/game-development.scm (godot): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/game-development.scm | 108 +++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 1 deletion(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index c8869a4944..5633456d44 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016, 2017 Julian Graham ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis +;;; Copyright © 2017 Peter Mikkelsen ;;; ;;; This file is part of GNU Guix. ;;; @@ -73,7 +74,8 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages lua) #:use-module (gnu packages mp3) - #:use-module (gnu packages xml)) + #:use-module (gnu packages xml) + #:use-module (gnu packages tls)) (define-public bullet (package @@ -1019,3 +1021,107 @@ with its own editor, called OpenMW-CS which allows the user to edit or create their own original games.") (home-page "https://openmw.org") (license license:gpl3))) + +(define-public godot + (package + (name "godot") + (version "2.1.4") + (source (origin + (method url-fetch) + (uri + (string-append "https://github.com/godotengine/godot/archive/" + version "-stable.tar.gz")) + (file-name (string-append name "-" version)) + (sha256 + (base32 "1mz89nafc1m7srbqvy7iagxrxmqvf5hbqi7i0lwaapkx6q0kpkq7")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'scons-use-env + (lambda _ + ;; Scons does not use the environment variables by default, + ;; but this substitution makes it do so. + (substitute* "SConstruct" + (("env_base = Environment\\(tools=custom_tools\\)") + (string-append + "env_base = Environment(tools=custom_tools)\n" + "env_base = Environment(ENV=os.environ)"))) + #t)) + (replace 'build + (lambda _ + (zero? (system* + "scons" + "platform=x11" + ;; Avoid using many of the bundled libs. + ;; Note: These options can be found in the SConstruct file. + "builtin_freetype=no" + "builtin_glew=no" + "builtin_libmpdec=no" + "builtin_libogg=no" + "builtin_libpng=no" + "builtin_libtheora=no" + "builtin_libvorbis=no" + "builtin_libwebp=no" + "builtin_openssl=no" + "builtin_opus=no" + "builtin_zlib=no")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion "bin" + (if (file-exists? "godot.x11.tools.64") + (rename-file "godot.x11.tools.64" "godot") + (rename-file "godot.x11.tools.32" "godot")) + (install-file "godot" bin))))) + (add-after 'install 'install-godot-desktop + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (desktop (string-append out "/share/applications")) + (icon-dir (string-append out "/share/pixmaps"))) + (mkdir-p desktop) + (mkdir-p icon-dir) + (rename-file "icon.png" "godot.png") + (install-file "godot.png" icon-dir) + (with-output-to-file + (string-append desktop "/godot.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=godot~@ + Comment=The godot game engine~@ + Exec=~a/bin/godot~@ + TryExec=~@*~a/bin/godot~@ + Icon=godot~@ + Type=Application~%" + out))) + #t)))))) + (native-inputs `(("pkg-config" ,pkg-config) + ("scons" ,scons))) + (inputs `(("alsa-lib" ,alsa-lib) + ("freetype" ,freetype) + ("glew" ,glew) + ("glu" ,glu) + ("libtheora" ,libtheora) + ("libvorbis" ,libvorbis) + ("libwebp" ,libwebp) + ("libx11" ,libx11) + ("libxcursor" ,libxcursor) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("mesa" ,mesa) + ("openssl" ,openssl) + ("opusfile" ,opusfile) + ("pulseaudio" ,pulseaudio) + ("python2" ,python-2))) + (home-page "https://godotengine.org/") + (synopsis "Advanced 2D and 3D game engine") + (description + "Godot is an advanced multi-platform game engine written in C++. If +features design tools such as a visual editor, can import 3D models and +provide high-quality 3D rendering, it contains an animation editor, and can be +scripted in a Python-like language.") + (license license:expat))) From 6fcf8c2d705cbe2e7d3cb1211e53fbbb1eb881d0 Mon Sep 17 00:00:00 2001 From: R H Date: Thu, 14 Sep 2017 13:43:56 +0200 Subject: [PATCH 215/333] gnu: mpv: Update to 0.27.0. * gnu/packages/video.scm (mpv): Update to 0.27.0. --- 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 9c22ab585a..4ebe479120 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -970,7 +970,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.26.0") + (version "0.27.0") (source (origin (method url-fetch) (uri (string-append @@ -978,7 +978,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "0ihvnwrp24jjf43k1hvy8n8w4ipl4z7apjppd4i0y9jzilsyzwys")) + "1754371fkva8aqxgbm50jxyvij7mnysq0538bf6zghbmigqqn79l")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs From 205441eb0eb27e5fdbd36f436b55b02f5429883b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Reich=C3=B6r?= Date: Tue, 5 Sep 2017 22:10:27 +0200 Subject: [PATCH 216/333] gnu: Add stgit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/version-control.scm (stgit): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/version-control.scm | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 0dabb2daa0..235adef024 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017 André ;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017 Stefan Reichör ;;; ;;; This file is part of GNU Guix. ;;; @@ -677,6 +678,41 @@ subcommands helps automate some parts of the flow to make working with it a lot easier.") (license license:bsd-2))) +(define-public stgit + (package + (name "stgit") + (version "0.18") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ctmarinas/stgit/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "19fk6vw3pgp2a98wpd4j3kyiyll5dy9bi4921wq1mrky0l53mj00")))) + (build-system python-build-system) + (inputs + `(("git" ,git))) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; two tests will fail -> disable them. TODO: fix the failing tests + (delete-file "t/t3300-edit.sh") + (delete-file "t/t7504-commit-msg-hook.sh") + (zero? (system* "make" "test"))))))) + (home-page "http://procode.org/stgit/") + (synopsis "Stacked Git") + (description + "StGit is a command-line application that provides functionality similar +to Quilt (i.e., pushing/popping patches to/from a stack), but using Git +instead of @command{diff} and @command{patch}. StGit stores its patches in a +Git repository as normal Git commits, and provides a number of commands to +manipulate them in various ways.") + (license license:gpl2))) + (define-public git-test-sequence (let ((commit "48e5a2f5a13a5f30452647237e23362b459b9c76")) (package From c61794cf451f84df532dadbc0660c5fef92d337b Mon Sep 17 00:00:00 2001 From: ng0 Date: Mon, 4 Sep 2017 11:59:46 +0000 Subject: [PATCH 217/333] gnu: Add cpputest. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/check.scm (cpputest): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/check.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 198bb81f8e..fcfedb99aa 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Kei Kebreau +;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -270,3 +271,26 @@ normally do not detect. The goal is to detect only real errors in the code discovery, death tests, assertions, parameterized tests and XML test report generation.") (license bsd-3))) + +(define-public cpputest + (package + (name "cpputest") + (version "3.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/cpputest/cpputest/releases/download/v" + version "/cpputest-" version ".tar.gz")) + (sha256 + (base32 + "0mk48xd3klyqi7wf3f4wn4zqxxzmvrhhl32r25jzrixzl72wq7f8")))) + (build-system gnu-build-system) + (native-inputs + `(("googletest" ,googletest))) + (home-page "https://cpputest.github.io/") + (synopsis "Unit testing and mocking framework for C/C++") + (description + "CppUTest is a C/C++ based unit xUnit test framework. It is written in +C++ but is used in C and C++ projects and frequently used in embedded systems +but it works for any C/C++ project.") + (license bsd-3))) From db7f7eb8ca670ee5d76e3bad3ada29e87e3f6a10 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 10 Sep 2017 12:19:06 -0400 Subject: [PATCH 218/333] gnu: graphicsmagick: Fix CVE-2017-{11403,14103}. * gnu/packages/imagemagick.scm (graphicsmagick)[source]: Add patch. * gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/imagemagick.scm | 3 +- ...magick-CVE-2017-11403+CVE-2017-14103.patch | 137 ++++++++++++++++++ 3 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1f55e52bfd..4fefa3b10b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -678,6 +678,7 @@ dist_patch_DATA = \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ + %D%/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-12935.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-12936.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-12937.patch \ diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 72b4643735..5f3e3ad96d 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -178,7 +178,8 @@ script.") (base32 "122zgs96dqrys62mnh8x5yvfff6km4d3yrnvaxzg3mg5sprib87v")) (patches - (search-patches "graphicsmagick-CVE-2017-12935.patch" + (search-patches "graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch" + "graphicsmagick-CVE-2017-12935.patch" "graphicsmagick-CVE-2017-12936.patch" "graphicsmagick-CVE-2017-12937.patch" "graphicsmagick-CVE-2017-13775.patch" diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch new file mode 100644 index 0000000000..dbcaea1343 --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch @@ -0,0 +1,137 @@ +http://www.openwall.com/lists/oss-security/2017/09/01/6 + +CVE-2017-11403: +http://hg.code.sf.net/p/graphicsmagick/code/rev/d0a76868ca37 + +CVE-2017-14103: +http://hg.code.sf.net/p/graphicsmagick/code/rev/98721124e51f + +some changes were made to make the patch apply + +# HG changeset patch +# User Glenn Randers-Pehrson +# Date 1503875721 14400 +# Node ID 98721124e51fd5ec0c6fba64bce2e218869632d2 +# Parent f0f2ea85a2930f3b6dcd72352719adb9660f2aad +Attempt to fix Issue 440. + +diff -ru a/coders/png.c b/coders/png.c +--- a/coders/png.c 1969-12-31 19:00:00.000000000 -0500 ++++ b/coders/png.c 2017-09-10 11:31:56.543194173 -0400 +@@ -3106,7 +3106,9 @@ + if (length > PNG_MAX_UINT || count == 0) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(CorruptImageError,CorruptImage,image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ "chunk length (%lu) > PNG_MAX_UINT",length); ++ return ((Image*)NULL); + } + + chunk=(unsigned char *) NULL; +@@ -3117,13 +3119,16 @@ + if (chunk == (unsigned char *) NULL) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(ResourceLimitError,MemoryAllocationFailed, +- image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " Could not allocate chunk memory"); ++ return ((Image*)NULL); + } + if (ReadBlob(image,length,chunk) < length) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(CorruptImageError,CorruptImage,image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " chunk reading was incomplete"); ++ return ((Image*)NULL); + } + p=chunk; + } +@@ -3198,7 +3203,7 @@ + jng_width, jng_height); + MagickFreeMemory(chunk); + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(CorruptImageError,ImproperImageHeader,image); ++ return ((Image *)NULL); + } + + /* Temporarily set width and height resources to match JHDR */ +@@ -3233,8 +3238,9 @@ + if (color_image == (Image *) NULL) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(ResourceLimitError,MemoryAllocationFailed, +- image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not open color_image blob"); ++ return ((Image *)NULL); + } + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), +@@ -3245,7 +3251,9 @@ + if (status == MagickFalse) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(CoderError,UnableToOpenBlob,color_image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not open color_image blob"); ++ return ((Image *)NULL); + } + + if (!image_info->ping && jng_color_type >= 12) +@@ -3255,17 +3263,18 @@ + if (alpha_image_info == (ImageInfo *) NULL) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(ResourceLimitError, +- MemoryAllocationFailed, image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not allocate alpha_image_info",length); ++ return ((Image *)NULL); + } + GetImageInfo(alpha_image_info); + alpha_image=AllocateImage(alpha_image_info); + if (alpha_image == (Image *) NULL) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(ResourceLimitError, +- MemoryAllocationFailed, +- alpha_image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not allocate alpha_image"); ++ return ((Image *)NULL); + } + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), +@@ -3277,7 +3286,9 @@ + { + DestroyJNGInfo(color_image_info,alpha_image_info); + DestroyImage(alpha_image); +- ThrowReaderException(CoderError,UnableToOpenBlob,image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not allocate alpha_image blob"); ++ return ((Image *)NULL); + } + if (jng_alpha_compression_method == 0) + { +@@ -3613,6 +3624,8 @@ + alpha_image = (Image *)NULL; + DestroyImageInfo(alpha_image_info); + alpha_image_info = (ImageInfo *)NULL; ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " Destroy the JNG image"); + DestroyImage(jng_image); + jng_image = (Image *)NULL; + } +@@ -5146,8 +5159,8 @@ + + if (image == (Image *) NULL) + { +- DestroyImageList(previous); + CloseBlob(previous); ++ DestroyImageList(previous); + MngInfoFreeStruct(mng_info,&have_mng_structure); + return((Image *) NULL); + } From c105653329bba7e71b960c782515ca23edf83e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 14 Sep 2017 23:16:22 +0200 Subject: [PATCH 219/333] guix download: Honor mirrors when using '-o'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously "guix download -o x mirror://gnu/…" would fail. * guix/scripts/download.scm (download-to-file): Pass #:mirrors to 'url-fetch'. --- guix/scripts/download.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm index f40213be33..8225f82bb9 100644 --- a/guix/scripts/download.scm +++ b/guix/scripts/download.scm @@ -49,7 +49,7 @@ ((or 'file #f) (copy-file (uri-path uri) file)) (_ - (url-fetch url file))) + (url-fetch url file #:mirrors %mirrors))) file)) (define* (download-to-store* url #:key (verify-certificate? #t)) From f51d01e1c3c164e63ace62060a0791de09e0ab58 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Sep 2017 11:09:05 +0300 Subject: [PATCH 220/333] gnu: Add gcc-objc@5. * gnu/packages/gcc.scm (gcc-obj@5): New variable. --- gnu/packages/gcc.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index fb2e24721b..563c53f388 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -594,6 +594,15 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) +(define-public gcc-objc-5 + (custom-gcc gcc-5 "gcc-objc" '("objc") + (list (search-path-specification + (variable "OBJC_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + (define-public gcc-objc gcc-objc-4.9) (define-public gcc-objc++-4.8 From ed8cdab8708d0df31020feb0b7b63e55516ee129 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Sep 2017 11:10:11 +0300 Subject: [PATCH 221/333] gnu: Add gcc-objc++@5. * gnu/packages/gcc.scm (gcc-objc++@5): New variable. --- gnu/packages/gcc.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 563c53f388..7c19a330ab 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -623,6 +623,15 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) +(define-public gcc-objc++-5 + (custom-gcc gcc-5 "gcc-objc++" '("obj-c++") + (list (search-path-specification + (variable "OBJCPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + (define-public gcc-objc++ gcc-objc++-4.9) (define (make-libstdc++-doc gcc) From 4072c10bee4ae236d64ed3f0d241cd2741914aa8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Sep 2017 11:11:27 +0300 Subject: [PATCH 222/333] gnu: Add gcc-objc@6. * gnu/packages/gcc.scm (gcc-objc@6): New variable. --- gnu/packages/gcc.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 7c19a330ab..2a6877ffbf 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -603,6 +603,15 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) +(define-public gcc-objc-6 + (custom-gcc gcc-6 "gcc-objc" '("objc") + (list (search-path-specification + (variable "OBJC_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + (define-public gcc-objc gcc-objc-4.9) (define-public gcc-objc++-4.8 From 7a7c63085629dfd3c645ecdff43a085f3c2489f2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Sep 2017 11:12:15 +0300 Subject: [PATCH 223/333] gnu: Add gcc-objc++@6. * gnu/packages/gcc.scm (gcc-objc++@6): New variable. --- gnu/packages/gcc.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 2a6877ffbf..9f1c7d82ef 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -641,6 +641,15 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) +(define-public gcc-objc++-6 + (custom-gcc gcc-6 "gcc-objc++" '("obj-c++") + (list (search-path-specification + (variable "OBJCPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + (define-public gcc-objc++ gcc-objc++-4.9) (define (make-libstdc++-doc gcc) From ce9afe2b3b55263d6d02f2e394ea30878fc1e553 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Sep 2017 11:13:20 +0300 Subject: [PATCH 224/333] gnu: Add gcc-objc@7. * gnu/packages/gcc.scm (gcc-objc@7): New variable. --- gnu/packages/gcc.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 9f1c7d82ef..453059c8de 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -612,6 +612,15 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) +(define-public gcc-objc-7 + (custom-gcc gcc-7 "gcc-objc" '("objc") + (list (search-path-specification + (variable "OBJC_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + (define-public gcc-objc gcc-objc-4.9) (define-public gcc-objc++-4.8 From e05f8d2fb3b31e8099a179a962d5e1a64775388f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Sep 2017 11:14:36 +0300 Subject: [PATCH 225/333] gnu: Add gcc-objc++@7. * gnu/packages/gcc.scm (gcc-objc++@7): New variable. --- gnu/packages/gcc.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 453059c8de..e6fb72f210 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -659,6 +659,15 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) +(define-public gcc-objc++-7 + (custom-gcc gcc-7 "gcc-objc++" '("obj-c++") + (list (search-path-specification + (variable "OBJCPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + (define-public gcc-objc++ gcc-objc++-4.9) (define (make-libstdc++-doc gcc) From 14728ab78f773f200d247b3b33a03645b06cf03a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Sep 2017 11:16:45 +0300 Subject: [PATCH 226/333] gnu: Update default gcc-objc and gcc-objc++. * gnu/packages/gcc.scm (gcc-objc, gcc-objc++): Update default to 5. --- gnu/packages/gcc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index e6fb72f210..7870d4513f 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -621,7 +621,7 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) -(define-public gcc-objc gcc-objc-4.9) +(define-public gcc-objc gcc-objc-5) (define-public gcc-objc++-4.8 (custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++") @@ -668,7 +668,7 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) -(define-public gcc-objc++ gcc-objc++-4.9) +(define-public gcc-objc++ gcc-objc++-5) (define (make-libstdc++-doc gcc) "Return a package with the libstdc++ documentation for GCC." From 2206bd340b6d55b69779acc894d122eeea421339 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Sep 2017 19:32:36 +0300 Subject: [PATCH 227/333] gnu: Add gnucobol. * gnu/packages/cobol.scm (gnucobol): New variable. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/cobol.scm | 59 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 gnu/packages/cobol.scm diff --git a/gnu/local.mk b/gnu/local.mk index 4fefa3b10b..f2feca0524 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -88,6 +88,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/chez.scm \ %D%/packages/ci.scm \ %D%/packages/cmake.scm \ + %D%/packages/cobol.scm \ %D%/packages/code.scm \ %D%/packages/commencement.scm \ %D%/packages/compression.scm \ diff --git a/gnu/packages/cobol.scm b/gnu/packages/cobol.scm new file mode 100644 index 0000000000..f8f35928a7 --- /dev/null +++ b/gnu/packages/cobol.scm @@ -0,0 +1,59 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 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 cobol) + #:use-module (gnu packages) + #:use-module (guix build-system gnu) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (gnu packages databases) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses)) + +(define-public gnucobol + (package + (name "gnucobol") + (version "2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/gnucobol/gnucobol-" + version ".tar.xz")) + (sha256 + (base32 + "1814s1n95xax2dz938cf4fkcp0q94nkj1gjbdblbzpk9q92zq66w")))) + (arguments + '(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib")))) + (inputs + `(("bdb" ,bdb) + ("gmp" ,gmp) + ("ncurses" ,ncurses))) + (build-system gnu-build-system) + (home-page "https://savannah.gnu.org/projects/gnucobol/") + (synopsis "A modern COBOL compiler") + (description "GnuCOBOL is a free, modern COBOL compiler. GnuCOBOL +implements a substantial part of the COBOL 85, COBOL 2002 and COBOL 2014 +standards and X/Open COBOL, as well as many extensions included in other +COBOL compilers (IBM COBOL, MicroFocus COBOL, ACUCOBOL-GT and others). +GnuCOBOL translates COBOL into C and compiles the translated code using +a native C compiler.") + (license gpl3+))) From d22a843f57716f388966e99421599d28164a88f0 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 15 Sep 2017 00:29:23 -0400 Subject: [PATCH 228/333] gnu: linux-libre@4.4: Update to 4.4.88. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.88. Remove patch. --- gnu/packages/linux.scm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index aa554ab154..1d0a7efc7a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -403,20 +403,10 @@ https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch "0mpl5mc9s0bs2ls9hvl8dfm8vfaicx87j3n32nswqj4yk61inma5")))))) (define-public linux-libre-4.4 - (make-linux-libre "4.4.87" - "0yiqs4i4ydgb2kg8xdyqk9rkhymrnd2dw7jf9wnn5kxfwc2nbqpj" + (make-linux-libre "4.4.88" + "0ds5jxh8p7f8yk55i1xbvz0xmgp4nc7g1xka23c4mcbal2v9v5b2" %intel-compatible-systems - #:configuration-file kernel-config - #:patches - (list %boot-logo-patch - (origin - (method url-fetch) - (uri "\ -https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=4a01092a5fa819397484fe2b50e9518356858156") - (file-name "linux-libre-4.4-CVE-2017-1000251.patch") - (sha256 - (base32 - "0zmkw9zvzpwy2ihiyfrw6mrf8qzv77cm23lxadr20qvzqlc1xzb3")))))) + #:configuration-file kernel-config)) (define-public linux-libre-4.1 (make-linux-libre "4.1.43" From c2ab0f895080503d624787177df90403ee9aae58 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 15 Sep 2017 00:30:21 -0400 Subject: [PATCH 229/333] gnu: linux-libre@4.9: Update to 4.9.50. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.50. Remove patch. --- gnu/packages/linux.scm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 1d0a7efc7a..72139e2f97 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -387,20 +387,10 @@ https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch "11pxxrvfvpq9xfahdk73c64w2381w1yqchphjgylzahw4p6mjffh")))))) (define-public linux-libre-4.9 - (make-linux-libre "4.9.49" - "0m0bhhhndfwvfhy3kc3a87qc9vqx9w61sw2zcjppisx4h2pzmfds" + (make-linux-libre "4.9.50" + "1igjb2qr4znvz9p5ix18lbiv8bkfgn7lprn92gdyff4g4r4kzh72" %intel-compatible-systems - #:configuration-file kernel-config - #:patches - (list %boot-logo-patch - (origin - (method url-fetch) - (uri "\ -https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=2bc1cc696eb173578162d6202a032fb46e3db1f4") - (file-name "linux-libre-4.9-CVE-2017-1000251.patch") - (sha256 - (base32 - "0mpl5mc9s0bs2ls9hvl8dfm8vfaicx87j3n32nswqj4yk61inma5")))))) + #:configuration-file kernel-config)) (define-public linux-libre-4.4 (make-linux-libre "4.4.88" From daca2ec4bb27de2ffc2810ce3528cbd471bf1608 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 15 Sep 2017 00:31:15 -0400 Subject: [PATCH 230/333] gnu: linux-libre: Update to 4.13.2. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.13.2. (%linux-libre-hash): Update hash. (linux-libre, linux-libre-arm-generic): Remove patch. --- gnu/packages/linux.scm | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 72139e2f97..874f94b1e6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -367,24 +367,14 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.13.1") -(define %linux-libre-hash "1asvxkfh85842816wd3yjw7g1pyhjj69lh4ni4ijjpwlicrsws67") +(define %linux-libre-version "4.13.2") +(define %linux-libre-hash "166yy7nah2h2ffxqgb92nfwrvihna3kvdx4ryppf34gmybmmfw36") (define-public linux-libre (make-linux-libre %linux-libre-version %linux-libre-hash %intel-compatible-systems - #:configuration-file kernel-config - #:patches - (list %boot-logo-patch - (origin - (method url-fetch) - (uri "\ -https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=7c3899324f16a8e50764fc9804bf4b06ac023133") - (file-name "linux-libre-4.13-CVE-2017-1000251.patch") - (sha256 - (base32 - "11pxxrvfvpq9xfahdk73c64w2381w1yqchphjgylzahw4p6mjffh")))))) + #:configuration-file kernel-config)) (define-public linux-libre-4.9 (make-linux-libre "4.9.50" @@ -419,17 +409,7 @@ https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch %linux-libre-hash '("armhf-linux") #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic" - #:patches - (list %boot-logo-patch - (origin - (method url-fetch) - (uri "\ -https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=7c3899324f16a8e50764fc9804bf4b06ac023133") - (file-name "linux-libre-4.13-CVE-2017-1000251.patch") - (sha256 - (base32 - "11pxxrvfvpq9xfahdk73c64w2381w1yqchphjgylzahw4p6mjffh")))))) + #:extra-version "arm-generic")) ;;; From 56bf42fb4078e383aff6446d5fb918f24807c6cd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 15 Sep 2017 15:18:43 +0300 Subject: [PATCH 231/333] gnu: libzip: Fix building on 32-bit architectures. * gnu/packages/compression.scm (libzip)[arguments]: New field, add phase to skip tests which are known to have issues on 32-bit architectures. --- gnu/packages/compression.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 499c13a291..7eeeaf362d 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1550,6 +1550,16 @@ manipulate, read, and write Zip archive files.") (sha256 (base32 "0wykw0q9dwdzx0gssi2dpgckx9ggr2spzc1amjnff6wi6kz6x4xa")))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'build 'remove-failing-tests + ;; These tests are known to fail on 32-bit architectures. + ;; see thread: https://nih.at/listarchive/libzip-discuss/msg00713.html + (lambda _ + (substitute* "regress/Makefile" + (("encryption-nonrandom") "#encryption-nonrandom")) + #t))))) (native-inputs `(("perl" ,perl))) (inputs From 893f9d240a0a8b7b9f02a08d030618b15126554d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Reich=C3=B6r?= Date: Thu, 14 Sep 2017 20:55:01 +0200 Subject: [PATCH 232/333] gnu: Add pydf. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/disk.scm (pydf): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/disk.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 49bbbfa92f..463dd3e768 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016, 2017 Marius Bakke ;;; Copyright © 2017 Hartmut Goebel +;;; Copyright © 2017 Stefan Reichör ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +31,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages docbook) @@ -353,6 +355,25 @@ permit managing file systems not included in libparted.") ;; The home page says GPLv2, but the source code says GPLv2+. (license license:gpl2+))) +(define-public pydf + (package + (name "pydf") + (version "12") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pydf" version)) + (sha256 + (base32 + "0f8ly8xyp93i2hm9c0qjqd4y86nz73axw2f09z01mszwmg1sfivz")))) + (build-system python-build-system) + (home-page "http://kassiopeia.juls.savba.sk/~garabik/software/pydf/") + (synopsis "Colourised @command{df} clone") + (description "All-singing, all-dancing, fully colourised @command{df} clone +written in Python. It displays the amount of disk space available on the +mounted filesystems, using different colours for different types of file +systems. Output format is completely customizable.") + (license license:public-domain))) (define-public f3 (package From 24d158136fa8ec56a643bf707c2563d9721ed806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Reich=C3=B6r?= Date: Thu, 14 Sep 2017 21:43:51 +0200 Subject: [PATCH 233/333] gnu: Add python-schedule. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm (python-schedule, python2-schedule): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6c76df7b8b..5927db0d66 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1249,6 +1249,33 @@ datetime module, available in Python 2.3+.") (define-public python2-parsedatetime (package-with-python2 python-parsedatetime)) +(define-public python-schedule + (package + (name "python-schedule") + (version "0.4.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "schedule" version)) + (sha256 + (base32 + "0vplyjcbfrq50sphlwya749z8p2pcyi2nycw3518i0qpd9a6189i")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-mock" ,python-mock))) + (home-page "https://github.com/dbader/schedule") + (synopsis "Schedule periodic function calls in Python") + (description + "Schedule is an in-process scheduler for periodic jobs that uses the +builder pattern for configuration. Schedule lets you run Python functions (or +any other callable) periodically at pre-determined intervals using a simple, +human-friendly syntax.") + (license license:expat))) + +(define-public python2-schedule + (package-with-python2 python-schedule)) + (define-public python-pandas (package (name "python-pandas") From 66e557003771e43b6ccd312dae98c7b471914084 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 13 Sep 2017 17:13:19 -0400 Subject: [PATCH 234/333] gnu: emacs-emms: Fix metadata retrieval for MP3 and FLAC files. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-emms): Reference find, mpg321 and metaflac by their complete file path. [inputs]: Add flac. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c6d5766cbd..bd127622f3 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -842,6 +842,7 @@ provides an optional IDE-like error list.") (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) + (flac (assoc-ref inputs "flac")) (vorbis (assoc-ref inputs "vorbis-tools")) (alsa (assoc-ref inputs "alsa-utils")) (mpg321 (assoc-ref inputs "mpg321")) @@ -864,6 +865,9 @@ provides an optional IDE-like error list.") (substitute* "emms-player-simple.el" (("\"ogg123\"") (string-append "\"" vorbis "/bin/ogg123\""))) + (substitute* "emms-player-simple.el" + (("\"mpg321\"") + (string-append "\"" mpg321 "/bin/mpg321\""))) (emacs-substitute-variables "emms-info-ogginfo.el" ("emms-info-ogginfo-program-name" (string-append vorbis "/bin/ogginfo"))) @@ -873,6 +877,11 @@ provides an optional IDE-like error list.") (emacs-substitute-variables "emms-info-mp3info.el" ("emms-info-mp3info-program-name" (string-append mp3info "/bin/mp3info"))) + (emacs-substitute-variables "emms-info-metaflac.el" + ("emms-info-metaflac-program-name" + (string-append flac "/bin/metaflac"))) + (emacs-substitute-variables "emms-source-file.el" + ("emms-source-file-gnu-find" (which "find"))) (substitute* "emms-volume-amixer.el" (("\"amixer\"") (string-append "\"" alsa "/bin/amixer\""))) @@ -898,6 +907,7 @@ provides an optional IDE-like error list.") (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils) ("texinfo" ,texinfo))) (inputs `(("alsa-utils" ,alsa-utils) + ("flac" ,flac) ;for metaflac ("vorbis-tools" ,vorbis-tools) ("mpg321" ,mpg321) ("taglib" ,taglib) From 8f21aa22bf4b731ed0e5631c371846028e5cec0d Mon Sep 17 00:00:00 2001 From: Paul Garlick Date: Thu, 14 Sep 2017 16:46:21 +0100 Subject: [PATCH 235/333] gnu: Add openfoam. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *gnu/packages/patches/openfoam-4.1-cleanup.patch: New file *gnu/packages/simulation.scm: New file *gnu/local.mk (GNU_SYSTEM_MODULES): Add module. (dist_patch_DATA): Add patch. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 2 + .../patches/openfoam-4.1-cleanup.patch | 243 ++++++++++++++++++ gnu/packages/simulation.scm | 212 +++++++++++++++ 3 files changed, 457 insertions(+) create mode 100644 gnu/packages/patches/openfoam-4.1-cleanup.patch create mode 100644 gnu/packages/simulation.scm diff --git a/gnu/local.mk b/gnu/local.mk index f2feca0524..c906f34a3e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -364,6 +364,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/shells.scm \ %D%/packages/shellutils.scm \ %D%/packages/simh.scm \ + %D%/packages/simulation.scm \ %D%/packages/skarnet.scm \ %D%/packages/skribilo.scm \ %D%/packages/slang.scm \ @@ -895,6 +896,7 @@ dist_patch_DATA = \ %D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/openscenegraph-ffmpeg3.patch \ %D%/packages/patches/openexr-missing-samples.patch \ + %D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openjpeg-CVE-2017-12982.patch \ %D%/packages/patches/openjpeg-CVE-2017-14040.patch \ %D%/packages/patches/openjpeg-CVE-2017-14041.patch \ diff --git a/gnu/packages/patches/openfoam-4.1-cleanup.patch b/gnu/packages/patches/openfoam-4.1-cleanup.patch new file mode 100644 index 0000000000..37effa5c9c --- /dev/null +++ b/gnu/packages/patches/openfoam-4.1-cleanup.patch @@ -0,0 +1,243 @@ +# This patch removes all need for the ThirdParty files of OpenFOAM. + +# Derived from EasyBuild patch by Ward Poelmans . +# Modified for GNU Guix by Paul Garlick . + +diff -ur OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Allwmake OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake +--- OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Allwmake ++++ OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake +@@ -9,7 +9,7 @@ + # + # use readline if available + # +-if [ -f /usr/include/readline/readline.h ] ++if true + then + echo "Found -- enabling readline support." + export COMP_FLAGS="-DHAS_READLINE" +diff -ur OpenFOAM-4.x-version-4.1.org/etc/bashrc OpenFOAM-4.x-version-4.1/etc/bashrc +--- OpenFOAM-4.x-version-4.1.org/etc/bashrc ++++ OpenFOAM-4.x-version-4.1/etc/bashrc +@@ -43,8 +43,10 @@ + # Please set to the appropriate path if the default is not correct. + # + [ $BASH_SOURCE ] && \ +-export FOAM_INST_DIR=$(cd ${BASH_SOURCE%/*/*/*} && pwd -P) || \ ++export FOAM_INST_DIR=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P) || \ + export FOAM_INST_DIR=$HOME/$WM_PROJECT ++# For GNU Guix: set initially for build then re-set at runtime ++# + # export FOAM_INST_DIR=~$WM_PROJECT + # export FOAM_INST_DIR=/opt/$WM_PROJECT + # export FOAM_INST_DIR=/usr/local/$WM_PROJECT +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/CGAL OpenFOAM-4.x-version-4.1/etc/config.sh/CGAL +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/CGAL ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/CGAL +@@ -36,37 +36,7 @@ + # + #------------------------------------------------------------------------------ + +-boost_version=boost-system +-cgal_version=cgal-system +-#cgal_version=CGAL-4.8 +- +-if [ -z "$SOURCE_CGAL_VERSIONS_ONLY" ] +-then +- +- common_path=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER +- +- export BOOST_ARCH_PATH=$common_path/$boost_version +- export CGAL_ARCH_PATH=$common_path/$cgal_version +- +- if [ "$FOAM_VERBOSE" -a "$PS1" ] +- then +- echo "Using CGAL and boost" 1>&2 +- echo " $cgal_version at $CGAL_ARCH_PATH" 1>&2 +- echo " $boost_version at $BOOST_ARCH_PATH" 1>&2 +- fi +- +- if [ -d "$CGAL_ARCH_PATH" -a "$cgal_version" != "cgal-system" ] +- then +- _foamAddLib $CGAL_ARCH_PATH/lib +- fi +- +- if [ -d "$BOOST_ARCH_PATH" -a "$boost_version" != "boost-system" ] +- then +- _foamAddLib $BOOST_ARCH_PATH/lib +- fi +- +- unset boost_version cgal_version common_path +- +-fi ++export CGAL_ARCH_PATH=$CGAL_ROOT ++export BOOST_ARCH_PATH=$BOOST_ROOT + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/gperftools OpenFOAM-4.x-version-4.1/etc/config.sh/gperftools +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/gperftools ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/gperftools +@@ -29,13 +29,5 @@ + # + #------------------------------------------------------------------------------ + +-version=svn +-gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER +- +-GPERFTOOLS_VERSION=gperftools-$version +-GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION +- +-export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH +-export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/metis OpenFOAM-4.x-version-4.1/etc/config.sh/metis +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/metis ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/metis +@@ -34,7 +34,7 @@ + # + #------------------------------------------------------------------------------ + +-export METIS_VERSION=metis-5.1.0 +-export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION ++export METIS_VERSION=metis-$METISVERSION ++export METIS_ARCH_PATH=$METIS_ROOT + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/scotch OpenFOAM-4.x-version-4.1/etc/config.sh/scotch +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/scotch ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/scotch +@@ -37,7 +37,7 @@ + # + #------------------------------------------------------------------------------ + +-export SCOTCH_VERSION=scotch_6.0.3 +-export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION ++export SCOTCH_VERSION=scotch_$SCOTCHVERSION ++export SCOTCH_ARCH_PATH=$SCOTCH_ROOT + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/settings OpenFOAM-4.x-version-4.1/etc/config.sh/settings +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/settings ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/settings +@@ -279,6 +279,9 @@ + ;; + system) + # Use system compiler ++ # Use system GMP and MPFR packages ++ export GMP_ARCH_PATH=$GMP_ROOT ++ export MPFR_ARCH_PATH=$MPFR_ROOT + ;; + *) + echo "Warn: WM_COMPILER_TYPE='$WM_COMPILER_TYPE' is unsupported" 1>&2 +diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/ptscotchDecomp/Make/options OpenFOAM-4.x-version-4.1/src/parallel/decompose/ptscotchDecomp/Make/options +--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/ptscotchDecomp/Make/options ++++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/ptscotchDecomp/Make/options +@@ -5,8 +5,7 @@ + $(PFLAGS) $(PINC) \ + -I$(SCOTCH_ROOT)/include \ + -I$(SCOTCH_ARCH_PATH)/include/$(FOAM_MPI) \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ +- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt ++ -L$(SCOTCH_ROOT)/lib -L$(MPI_ARCH_PATH)/lib -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt +diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/scotchDecomp/Make/options OpenFOAM-4.x-version-4.1/src/parallel/decompose/scotchDecomp/Make/options +--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/scotchDecomp/Make/options ++++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/scotchDecomp/Make/options +@@ -9,8 +9,7 @@ + $(PFLAGS) $(PINC) \ + -I$(SCOTCH_ROOT)/include \ + -I$(SCOTCH_ARCH_PATH)/include \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ +- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN) -lscotch -lscotcherrexit -lrt ++ -L$(SCOTCH_ROOT)/lib -lscotch -lscotcherrexit -lrt +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/makefiles/general OpenFOAM-4.x-version-4.1/wmake/makefiles/general +--- OpenFOAM-4.x-version-4.1.org/wmake/makefiles/general ++++ OpenFOAM-4.x-version-4.1/wmake/makefiles/general +@@ -33,7 +33,6 @@ + # The Makefile uses a POSIX shell + #------------------------------------------------------------------------------ + +-SHELL = /bin/sh + + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmake OpenFOAM-4.x-version-4.1/wmake/wmake +--- OpenFOAM-4.x-version-4.1.org/wmake/wmake ++++ OpenFOAM-4.x-version-4.1/wmake/wmake +@@ -163,7 +163,7 @@ + then + if [ "$WM_NCOMPPROCS" -gt 1 -a ! "$MAKEFLAGS" ] + then +- lockDir=$HOME/.$WM_PROJECT/.wmake ++ lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake + + if [ -d $lockDir ] + then +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmakeScheduler OpenFOAM-4.x-version-4.1/wmake/wmakeScheduler +--- OpenFOAM-4.x-version-4.1.org/wmake/wmakeScheduler ++++ OpenFOAM-4.x-version-4.1/wmake/wmakeScheduler +@@ -53,7 +53,7 @@ + # csh sets HOST, bash sets HOSTNAME + : ${HOST:=$HOSTNAME} + +-lockDir=$HOME/.$WM_PROJECT/.wmake ++lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake + + # Fallback - 1 core on current host + : ${WM_HOSTS:=$HOST:1} +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmakeSchedulerUptime OpenFOAM-4.x-version-4.1/wmake/wmakeSchedulerUptime +--- OpenFOAM-4.x-version-4.1.org/wmake/wmakeSchedulerUptime ++++ OpenFOAM-4.x-version-4.1/wmake/wmakeSchedulerUptime +@@ -53,7 +53,7 @@ + # csh sets HOST, bash sets HOSTNAME + : ${HOST:=$HOSTNAME} + +-lockDir=$HOME/.$WM_PROJECT/.wmake ++lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake + # Fallback - 1 core on current host + : ${WM_HOSTS:=$HOST:1} + +diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/metisDecomp/metisDecomp.C OpenFOAM-4.x-version-4.1/src/parallel/decompose/metisDecomp/metisDecomp.C +--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/metisDecomp/metisDecomp.C ++++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/metisDecomp/metisDecomp.C +@@ -67,7 +67,7 @@ + + // Processor weights initialised with no size, only used if specified in + // a file +- Field processorWeights; ++ Field processorWeights; + + // Cell weights (so on the vertices of the dual) + List