From ee6e780b2c2f2ba045b1d7d39e22d543e375dd0f Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 14 Jan 2017 01:08:34 +0100 Subject: [PATCH 01/58] gnu: Add compface. * gnu/packages/mail.scm (compface): New variable. --- gnu/packages/mail.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index dbbe629bca..bcb6473d23 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -90,7 +90,7 @@ #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ non-copyleft (expat . license:expat) bsd-3 public-domain bsd-4 isc (openssl . license:openssl) - bsd-2)) + bsd-2 x11-style)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -733,6 +733,27 @@ provides an API for C language. It's the low-level API used by MailCore and MailCore 2.") (license (non-copyleft "file://COPYING")))) +(define-public compface + (package + (name "compface") + (version "1.5.2") + (source (origin + (method url-fetch) + (uri (string-append "https://ftp.heanet.ie/mirrors/" + "ftp.xemacs.org/aux/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "09b89wg63hg502hsz592cd2h87wdprb1dq1k1y07n89hym2q56d6")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)) + (synopsis "Portrait image compressor") + (description "This packages takes your 48x48x1 portrait image and +compresses it.") + (home-page "http://www.cs.indiana.edu/pub/faces/") + (license (x11-style "file://README")))) + (define-public claws-mail (package (name "claws-mail") From f2ea722ae731d6094948d58b8287213d056a178a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:05:49 -0500 Subject: [PATCH 02/58] gnu: node: Don't replace 'sh' reference with 'bash'. * gnu/packages/node.scm (node)[arguments]: Use (which "sh") instead of (which "bash") in 'patch-files' phase. --- gnu/packages/node.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 617dffc937..2df7816b59 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -64,7 +64,7 @@ "lib/internal/v8_prof_polyfill.js" "test/parallel/test-stdio-closed.js") (("'/bin/sh'") - (string-append "'" (which "bash") "'"))) + (string-append "'" (which "sh") "'"))) ;; Fix hardcoded /usr/bin/env references. (substitute* '("test/parallel/test-child-process-default-options.js" From 147c6b391b3264fa6606841452e2c8049a01d983 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:09:15 -0500 Subject: [PATCH 03/58] gnu: orpheus: Don't replace 'sh' reference with 'bash'. * gnu/packages/orpheus.scm (orpheus)[arguments]: Use (which "sh") instead of (which "bash") in 'patch-shells' phase. --- gnu/packages/orpheus.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/orpheus.scm b/gnu/packages/orpheus.scm index 39118c9abc..d672ebce75 100644 --- a/gnu/packages/orpheus.scm +++ b/gnu/packages/orpheus.scm @@ -90,7 +90,7 @@ (substitute* '("src/mp3track.cc" "src/streamtrack.cc" "src/oggtrack.cc") - (("/bin/sh") (which "bash"))) + (("/bin/sh") (which "sh"))) #t))))) (home-page "http://thekonst.net/en/orpheus") (synopsis "Text-mode audio player") From bfeda421464d79462775346c45c4d09751d844f7 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:13:38 -0500 Subject: [PATCH 04/58] gnu: gegl: Don't replace 'sh' reference with 'bash'. * gnu/packages/gimp.scm (gegl)[arguments]: Use (which "sh") instead of (which "bash") in 'pre-build' phase. --- gnu/packages/gimp.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 904d7d9766..15eb5bc084 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -101,7 +101,7 @@ provided as well as the framework to add new color models and data types.") (("g_object_unref \\(buffer.\\);") "")) (substitute* "tests/compositions/Makefile" - (("/bin/sh") (which "bash")))) + (("/bin/sh") (which "sh")))) %standard-phases))) (inputs `(("babl" ,babl) From 3a534f42644d6e02d5bb9aee05af3e73d5f3e913 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:15:49 -0500 Subject: [PATCH 05/58] gnu: gnupg-2.0: Don't replace 'sh' reference with 'bash'. * gnu/packages/gnupg.scm (gnupg-2.0)[arguments]: Use (which "sh") instead of (which "bash") in 'patch-config-files' phase. --- gnu/packages/gnupg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index dc801a6a4f..8149403442 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -310,7 +310,7 @@ libskba (working with X.509 certificates and CMS data).") (add-before 'configure 'patch-config-files (lambda _ (substitute* "tests/openpgp/Makefile.in" - (("/bin/sh") (which "bash"))) + (("/bin/sh") (which "sh"))) #t)) (add-after 'install 'rename-v2-commands (lambda* (#:key outputs #:allow-other-keys) From 2e4b67b9509e908c0fa56f53e3bf49ac25995ca7 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:17:40 -0500 Subject: [PATCH 06/58] gnu: gnupg-1: Don't replace 'sh' reference with 'bash'. * gnu/packages/gnupg.scm (gnupg-1)[arguments]: Use (which "sh") instead of (which "bash") in 'patch-check-sh' phase. --- gnu/packages/gnupg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 8149403442..4818d7b748 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -349,7 +349,7 @@ libskba (working with X.509 certificates and CMS data).") (add-after 'unpack 'patch-check-sh (lambda _ (substitute* "checks/Makefile.in" - (("/bin/sh") (which "bash")))))))))) + (("/bin/sh") (which "sh")))))))))) (define-public gpgme (package From 7ba024922377c60d259725db79840f976979b790 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:19:01 -0500 Subject: [PATCH 07/58] gnu: signing-party: Don't replace 'sh' reference with 'bash'. * gnu/packages/gnupg.scm (signing-party)[arguments]: Use (which "sh") instead of (which "bash") in 'configure' phase. --- gnu/packages/gnupg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 4818d7b748..b19d764e25 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -573,7 +573,7 @@ PGP keysigning parties.") (substitute* "keyanalyze/Makefile" (("./configure") (string-append "./configure --prefix=" out))) (substitute* "keyanalyze/pgpring/configure" - (("/bin/sh") (which "bash"))) + (("/bin/sh") (which "sh"))) (substitute* "gpgwrap/Makefile" (("\\} clean") (string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap " From 195279529c9116393b4adadf85d8922095e00486 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:23:12 -0500 Subject: [PATCH 08/58] gnu: sendmail: Don't replace 'sh' reference with 'bash'. * gnu/packages/mail.scm (sendmail)[arguments]: Use (which "sh") instead of (which "bash") in 'replace-/bin/sh' phase. --- 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 bcb6473d23..2318ae9b64 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1557,10 +1557,10 @@ powerful user customization features.") "contrib/mmuegel" "devtools/bin/configure.sh") (find-files "." ".*\\.m4") (find-files "." ".*\\.cf")) - (("/bin/sh") (which "bash"))) + (("/bin/sh") (which "sh"))) (substitute* "devtools/bin/Build" - (("SHELL=/bin/sh") (string-append "SHELL=" (which "bash")))) + (("SHELL=/bin/sh") (string-append "SHELL=" (which "sh")))) #t)) (replace 'configure (lambda _ From 344498c7362b60477b6e8a098201356ce6b57d83 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:25:02 -0500 Subject: [PATCH 09/58] gnu: pybitmessage: Don't replace 'sh' reference with 'bash'. * gnu/packages/messaging.scm (pybitmessage)[arguments]: Use (which "sh") instead of (which "bash") in 'fix-makefile' phase. --- gnu/packages/messaging.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 0c88059dca..5b3ed740d9 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -825,7 +825,7 @@ connect with friends and family without anyone else listening in.") (("mkdir -p \\$\\{DESTDIR\\}/usr") "") (("/usr/local") "") (("/usr") "") - (("#!/bin/sh") (string-append "#!" (which "bash"))) + (("#!/bin/sh") (string-append "#!" (which "sh"))) (("python2") (which "python")) (("/opt/openssl-compat-bitcoin/lib/") (string-append (assoc-ref inputs "openssl") "/lib/"))) From 2fed40421d58a04374f14a49f6152c66a2cadf3f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:32:39 -0500 Subject: [PATCH 10/58] gnu: avidemux: Don't replace 'sh' reference with 'bash'. * gnu/packages/video.scm (avidemux)[arguments]: Use (which "sh") instead of (which "bash") in 'repack-ffmpeg' phase. --- gnu/packages/video.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e0de564e14..518b5f8b3d 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1228,7 +1228,7 @@ for use with HTML5 video.") (lambda _ (with-directory-excursion "avidemux_core/ffmpeg_package" (substitute* "ffmpeg-2.7.6/configure" - (("#! /bin/sh") (string-append "#!" (which "bash")))) + (("#! /bin/sh") (string-append "#!" (which "sh")))) (system* "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6" ;; avoid non-determinism in the archive "--sort=name" "--mtime=@0" From 47734a56d60be9f4f05b198ffbf8c504e75d5e3e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:53:41 -0500 Subject: [PATCH 11/58] gnu: ffmpeg: Don't replace 'sh' reference with 'bash'. * gnu/packages/video.scm (ffmpeg)[arguments]: Use (which "sh") instead of (which "bash") in 'configure' phase. --- gnu/packages/video.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 518b5f8b3d..f5085f84ce 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -580,7 +580,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (lambda* (#:key outputs configure-flags #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "configure" - (("#! /bin/sh") (string-append "#!" (which "bash")))) + (("#! /bin/sh") (string-append "#!" (which "sh")))) (setenv "SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash")) (zero? (apply system* From 2564b7c2dfb71e2d086084ce127e27e268fa9b66 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 16:55:42 -0500 Subject: [PATCH 12/58] gnu: mplayer: Don't replace 'sh' reference with 'bash'. * gnu/packages/video.scm (mplayer)[arguments]: Use (which "sh") instead of (which "bash") in 'configure' phase. --- gnu/packages/video.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index f5085f84ce..b7383f246a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -796,7 +796,7 @@ treaming protocols.") (let ((out (assoc-ref outputs "out")) (libx11 (assoc-ref inputs "libx11"))) (substitute* "configure" - (("#! /bin/sh") (string-append "#!" (which "bash")))) + (("#! /bin/sh") (string-append "#!" (which "sh")))) (setenv "SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash")) (zero? (system* From 9475fd9217af370839cbfdb06b0a0a9a063d3469 Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Tue, 3 Jan 2017 00:32:38 +1100 Subject: [PATCH 13/58] gnu: Add electrum. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (electrum): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/finance.scm | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 7924827822..ee90c38eb7 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2017 Carlo Zancanaro ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ #:use-module (guix build utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system python) #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages databases) @@ -240,3 +242,52 @@ allow to do that off the ERiC library (which is proprietary however). It's not clear at the moment whether one day it will be possible to do so.") (license license:agpl3+))) + +(define-public electrum + (package + (name "electrum") + (version "2.7.12") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.electrum.org/" + version "/Electrum-" + version ".tar.gz")) + (sha256 + (base32 + "0vxdfl208if7mdsnva1jg37bnay2dsz3ww157aqwcv1j6512fi1n")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete the bundled dependencies. + (delete-file-recursively "packages") + #t)))) + (build-system python-build-system) + (inputs + `(("python-slowaes" ,python2-slowaes) + ("python-sip" ,python2-sip) + ("python-pyqt" ,python2-pyqt-4) + ("python-ecdsa" ,python2-ecdsa) + ("python-pbkdf2" ,python2-pbkdf2) + ("python-requests" ,python2-requests) + ("python-qrcode" ,python2-qrcode) + ("python-protobuf" ,python2-protobuf) + ("python-dnspython" ,python2-dnspython) + ("python-jsonrpclib" ,python2-jsonrpclib))) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-home + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "setup.py" + (("~/.local/share") + (string-append (assoc-ref outputs "out") "/local/share")))))))) + (home-page "https://electrum.org/") + (synopsis "Bitcoin wallet") + (description + "Electrum is a lightweight Bitcoin client, based on a client-server +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))) From 3483f004a98f103acff96effe1309cc620372e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 Jan 2017 00:35:16 +0100 Subject: [PATCH 14/58] syscalls: Export 'read-utmpx'. * guix/build/syscalls.scm (read-utmpx-from-port): New procedure. * tests/syscalls.scm ("read-utmpx, EOF") ("read-utmpx"): New tests. --- guix/build/syscalls.scm | 13 ++++++++++++- tests/syscalls.scm | 9 +++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 475fc96490..b68c48a05a 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -21,6 +21,7 @@ (define-module (guix build syscalls) #:use-module (system foreign) #:use-module (rnrs bytevectors) + #:autoload (ice-9 binary-ports) (get-bytevector-n) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) @@ -142,7 +143,8 @@ utmpx-time utmpx-address login-type - utmpx-entries)) + utmpx-entries + (read-utmpx-from-port . read-utmpx))) ;;; Commentary: ;;; @@ -1598,4 +1600,13 @@ always a positive integer." ((? utmpx? entry) (loop (cons entry entries)))))) +(define (read-utmpx-from-port port) + "Read a utmpx entry from PORT. Return either the EOF object or a utmpx +entry." + (match (get-bytevector-n port sizeof-utmpx) + ((? eof-object? eof) + eof) + ((? bytevector? bv) + (read-utmpx bv)))) + ;;; syscalls.scm ends here diff --git a/tests/syscalls.scm b/tests/syscalls.scm index fb2c8e7100..92e02f3303 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -452,6 +452,15 @@ #t))) entries)))) +(test-assert "read-utmpx, EOF" + (eof-object? (read-utmpx (%make-void-port "r")))) + +(unless (access? "/var/run/utmpx" O_RDONLY) + (tes-skip 1)) +(test-assert "read-utmpx" + (let ((result (call-with-input-file "/var/run/utmpx" read-utmpx))) + (or (utmpx? result) (eof-object? result)))) + (test-end) (false-if-exception (delete-file temp-file)) From 2986995b85e76f12741fcdda8dd0e1a636620dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 Jan 2017 00:45:11 +0100 Subject: [PATCH 15/58] services: Create /var/log/wtmp upon activation. This fixes a bug whereby /var/log/wtmp would never be created, and thus accounting information would be lost. * gnu/services.scm (activation-script): Create /var/log/wtmp. * gnu/tests/base.scm (run-basic-test)["wtmp entry"]: New test. --- gnu/services.scm | 4 ++++ gnu/tests/base.scm | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/gnu/services.scm b/gnu/services.scm index f72d4d5785..e645889d30 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -345,6 +345,10 @@ ACTIVATION-SCRIPT-TYPE." ;; thus there is no accounting at all. (close-port (open-file "/var/run/utmpx" "a0")) + ;; Same for 'wtmp', which is populated by mingetty et + ;; al. + (close-port (open-file "/var/log/wtmp" "a0")) + ;; Set up /run/current-system. Among other things this ;; sets up locales, which the activation snippets ;; executed below may expect. diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 2687a6cdb8..a725ca90f3 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -194,6 +194,29 @@ info --version") (utmpx-entries))) marionette)) + ;; Likewise for /var/log/wtmp (used by 'last'). + (test-assert "wtmp entry" + (match (marionette-eval + '(begin + (use-modules (guix build syscalls) + (srfi srfi-1)) + + (define (entry->list entry) + (list (utmpx-user entry) (utmpx-line entry) + (utmpx-host entry) (utmpx-login-type entry))) + + (call-with-input-file "/var/log/wtmp" + (lambda (port) + (let loop ((result '())) + (if (eof-object? (peek-char port)) + (map entry->list (reverse result)) + (loop (cons (read-utmpx port) result))))))) + marionette) + (((users lines hosts types) ..1) + (every (lambda (type) + (eqv? type (login-type LOGIN_PROCESS))) + types)))) + (test-assert "host name resolution" (match (marionette-eval '(begin From 165259593a21c6586125a5f93c20ee199deefbe3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 22:32:20 -0500 Subject: [PATCH 16/58] gnu: libupnp: Update to 1.6.21. * gnu/packages/libupnp.scm (libupnp): Update to 1.6.21. [source]: Remove obsolete patches. * gnu/packages/patches/libupnp-CVE-2016-6255.patch, gnu/packages/patches/libupnp-CVE-2016-8863.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 2 - gnu/packages/libupnp.scm | 6 +- .../patches/libupnp-CVE-2016-6255.patch | 50 ------------- .../patches/libupnp-CVE-2016-8863.patch | 72 ------------------- 4 files changed, 2 insertions(+), 128 deletions(-) delete mode 100644 gnu/packages/patches/libupnp-CVE-2016-6255.patch delete mode 100644 gnu/packages/patches/libupnp-CVE-2016-8863.patch diff --git a/gnu/local.mk b/gnu/local.mk index 26933d4a28..27f6c92688 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -703,8 +703,6 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-tiffcp-underflow.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunwind-CVE-2015-3239.patch \ - %D%/packages/patches/libupnp-CVE-2016-6255.patch \ - %D%/packages/patches/libupnp-CVE-2016-8863.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libwebp-CVE-2016-9085.patch \ %D%/packages/patches/libwmf-CAN-2004-0941.patch \ diff --git a/gnu/packages/libupnp.scm b/gnu/packages/libupnp.scm index ea4d1bd25e..330ae6deb6 100644 --- a/gnu/packages/libupnp.scm +++ b/gnu/packages/libupnp.scm @@ -26,17 +26,15 @@ (define-public libupnp (package (name "libupnp") - (version "1.6.20") + (version "1.6.21") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20" version "/" name "-" version ".tar.bz2")) - (patches (search-patches "libupnp-CVE-2016-6255.patch" - "libupnp-CVE-2016-8863.patch")) (sha256 (base32 - "0qrsdsb1qm85hc4jy04qph895613d148f0x1mmk6z99y3q43fdgf")))) + "16x3z6jg1krwyydmbd0z59z5c9x4pniaajmfmnp5pmx18q43qgxg")))) (build-system gnu-build-system) (arguments ;; The tests require a network device capable of multicasting which is diff --git a/gnu/packages/patches/libupnp-CVE-2016-6255.patch b/gnu/packages/patches/libupnp-CVE-2016-6255.patch deleted file mode 100644 index c9a3fa284c..0000000000 --- a/gnu/packages/patches/libupnp-CVE-2016-6255.patch +++ /dev/null @@ -1,50 +0,0 @@ -Fix CVE-2016-6255: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6255 -http://www.openwall.com/lists/oss-security/2016/07/18/13 - -Patch adapted from upstream commit: - -https://github.com/mrjimenez/pupnp/commit/d64d6a44906b5aa5306bdf1708531d698654dda5 - -The upstream change is simplified to unconditionally disable the HTTP -POST feature. - -From d64d6a44906b5aa5306bdf1708531d698654dda5 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Tue, 23 Feb 2016 13:53:20 -0800 -Subject: [PATCH] Don't allow unhandled POSTs to write to the filesystem by - default - -If there's no registered handler for a POST request, the default behaviour -is to write it to the filesystem. Several million deployed devices appear -to have this behaviour, making it possible to (at least) store arbitrary -data on them. Add a configure option that enables this behaviour, and change -the default to just drop POSTs that aren't directly handled. - -Signed-off-by: Marcelo Roberto Jimenez -(cherry picked from commit c91a8a3903367e1163765b73eb4d43be7d7927fa) ---- - configure.ac | 9 +++++++++ - upnp/inc/upnpconfig.h.in | 9 +++++++++ - upnp/src/genlib/net/http/webserver.c | 4 ++++ - 3 files changed, 22 insertions(+) - -diff --git a/upnp/src/genlib/net/http/webserver.c b/upnp/src/genlib/net/http/webserver.c -index 26bf0f7..7ae8c1e 100644 ---- a/upnp/src/genlib/net/http/webserver.c -+++ b/upnp/src/genlib/net/http/webserver.c -@@ -1367,9 +1367,13 @@ static int http_RecvPostMessage( - if (Fp == NULL) - return HTTP_INTERNAL_SERVER_ERROR; - } else { -+#if 0 - Fp = fopen(filename, "wb"); - if (Fp == NULL) - return HTTP_UNAUTHORIZED; -+#else -+ return HTTP_NOT_FOUND; -+#endif - } - parser->position = POS_ENTITY; - do { diff --git a/gnu/packages/patches/libupnp-CVE-2016-8863.patch b/gnu/packages/patches/libupnp-CVE-2016-8863.patch deleted file mode 100644 index 9978b39487..0000000000 --- a/gnu/packages/patches/libupnp-CVE-2016-8863.patch +++ /dev/null @@ -1,72 +0,0 @@ -Fix CVE-2016-8863: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8863 -https://sourceforge.net/p/pupnp/bugs/133/ - -Patch copied from upstream source repository: - -https://sourceforge.net/p/pupnp/code/ci/9c099c2923ab4d98530ab5204af1738be5bddba7/ - -From 9c099c2923ab4d98530ab5204af1738be5bddba7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= -Date: Thu, 8 Dec 2016 17:11:53 +0100 -Subject: [PATCH] Fix out-of-bound access in create_url_list() (CVE-2016-8863) - -If there is an invalid URL in URLS->buf after a valid one, uri_parse is -called with out pointing after the allocated memory. As uri_parse writes -to *out before returning an error the loop in create_url_list must be -stopped early to prevent an out-of-bound access - -Bug: https://sourceforge.net/p/pupnp/bugs/133/ -Bug-CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8863 -Bug-Debian: https://bugs.debian.org/842093 -Bug-Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=1388771 -(cherry picked from commit a0f6e719bc03c4d2fe6a4a42ef6b8761446f520b) ---- - upnp/src/gena/gena_device.c | 17 ++++++++++++----- - 1 file changed, 12 insertions(+), 5 deletions(-) - -diff --git a/upnp/src/gena/gena_device.c b/upnp/src/gena/gena_device.c -index fb04a29..245c56b 100644 ---- a/upnp/src/gena/gena_device.c -+++ b/upnp/src/gena/gena_device.c -@@ -1113,7 +1113,7 @@ static int create_url_list( - /*! [out] . */ - URL_list *out) - { -- size_t URLcount = 0; -+ size_t URLcount = 0, URLcount2 = 0; - size_t i; - int return_code = 0; - uri_type temp; -@@ -1155,16 +1155,23 @@ static int create_url_list( - } - memcpy( out->URLs, URLS->buff, URLS->size ); - out->URLs[URLS->size] = 0; -- URLcount = 0; - for( i = 0; i < URLS->size; i++ ) { - if( ( URLS->buff[i] == '<' ) && ( i + 1 < URLS->size ) ) { - if( ( ( return_code = - parse_uri( &out->URLs[i + 1], URLS->size - i + 1, -- &out->parsedURLs[URLcount] ) ) == -+ &out->parsedURLs[URLcount2] ) ) == - HTTP_SUCCESS ) -- && ( out->parsedURLs[URLcount].hostport.text.size != -+ && ( out->parsedURLs[URLcount2].hostport.text.size != - 0 ) ) { -- URLcount++; -+ URLcount2++; -+ if (URLcount2 >= URLcount) -+ /* -+ * break early here in case there is a bogus URL that -+ * was skipped above. This prevents to access -+ * out->parsedURLs[URLcount] which is beyond the -+ * allocation. -+ */ -+ break; - } else { - if( return_code == UPNP_E_OUTOF_MEMORY ) { - free( out->URLs ); --- -2.11.0 - From 2df34b578f5c6c09f9fe646ade29ca56ad8d6bbf Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 22:44:07 -0500 Subject: [PATCH 17/58] gnu: icedtea-6: Update to 1.13.13 [security fixes]. Fixes CVE-2016-{5542,5554,5568,5573,5582,5597} and others. See 'NEWS' in the source distribution for more information. * gnu/packages/java.scm (icedtea-6): Update to 1.13.13. --- gnu/packages/java.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d7df4f6bad..5d53dffeec 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -337,7 +337,7 @@ build process and its dependencies, whereas Make uses Makefile format.") (define-public icedtea-6 (package (name "icedtea") - (version "1.13.12") + (version "1.13.13") (source (origin (method url-fetch) (uri (string-append @@ -345,7 +345,7 @@ build process and its dependencies, whereas Make uses Makefile format.") version ".tar.xz")) (sha256 (base32 - "1q5iqm3dzqj8w3dwj6qqhczkkrslrfhmn3110klfwq9kyi2nimj8")) + "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -764,10 +764,10 @@ build process and its dependencies, whereas Make uses Makefile format.") ("openjdk6-src" ,(origin (method url-fetch) - (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b40-22_aug_2016.tar.gz") + (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b41-04_jan_2017.tar.xz") (sha256 (base32 - "01v4q7g9pa6w7m6yxply5yrin08jgv12fck665xnmp09bpxy8sa5")))) + "058szix0j280g14jzajvsixx1j2dxmc10r848f5swpy6rr8x8d4f")))) ("lcms" ,lcms) ("zlib" ,zlib) ("gtk" ,gtk+-2) From 4cfd222fa7b4df34e8fc002cf572be86d887f5bd Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Jan 2017 01:27:54 -0500 Subject: [PATCH 18/58] gnu: opus: Update to 1.1.4 [fixes CVE-2017-0381]. * gnu/packages/xiph.scm (opus): Update to 1.1.4. --- gnu/packages/xiph.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index fc5cd6ca95..ec84bdeedb 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -300,7 +300,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about (define opus (package (name "opus") - (version "1.1.3") + (version "1.1.4") (source (origin (method url-fetch) (uri (string-append @@ -308,7 +308,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about ".tar.gz")) (sha256 (base32 - "0cxnd7pjxbgh6l3cbzsw29phpr5cq28fikfhjlp1hc3y5s0gxdjq")))) + "14l6kpapmcnvl7p9hrmbqcnzj13zfzyppyc9a5kd4788h2rvc8li")))) (build-system gnu-build-system) (synopsis "Versatile audio codec") (description From b2725c53dd4cce2421845736df7940289c32f8a7 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Jan 2017 01:59:07 -0500 Subject: [PATCH 19/58] gnu: khal: Update to 0.9.0. * gnu/packages/calendar.scm (khal): Update to 0.9.0 [source]: Remove obsolete patch. * gnu/packages/patches/khal-disable-failing-tests.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 - gnu/packages/calendar.scm | 5 ++- .../patches/khal-disable-failing-tests.patch | 33 ------------------- 3 files changed, 2 insertions(+), 37 deletions(-) delete mode 100644 gnu/packages/patches/khal-disable-failing-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index 27f6c92688..3963b97b71 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -645,7 +645,6 @@ dist_patch_DATA = \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \ %D%/packages/patches/jq-CVE-2015-8863.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ - %D%/packages/patches/khal-disable-failing-tests.patch \ %D%/packages/patches/khmer-use-libraries.patch \ %D%/packages/patches/kmod-module-directory.patch \ %D%/packages/patches/kobodeluxe-paths.patch \ diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 70bf8f9573..03898dd263 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -84,14 +84,13 @@ data units.") (define-public khal (package (name "khal") - (version "0.8.4") + (version "0.9.0") (source (origin (method url-fetch) (uri (pypi-uri "khal" version)) - (patches (search-patches "khal-disable-failing-tests.patch")) (sha256 (base32 - "03vy4dp9n43w51mwqjjy08dr5nj7wxqnb085visz3j43vzm42p1f")))) + "138gxynw7zavwqqaw5nzmj8sbpkymmb95xzgxqbdi9fiiqm9kamr")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/patches/khal-disable-failing-tests.patch b/gnu/packages/patches/khal-disable-failing-tests.patch deleted file mode 100644 index e2c65df8ce..0000000000 --- a/gnu/packages/patches/khal-disable-failing-tests.patch +++ /dev/null @@ -1,33 +0,0 @@ -Disable some tests that are known to fail: - -https://github.com/pimutils/khal/issues/546 -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=844081 - -diff --git a/tests/khalendar_test.py b/tests/khalendar_test.py -index fd8dcc6..17732bf 100644 ---- a/tests/khalendar_test.py -+++ b/tests/khalendar_test.py -@@ -65,6 +65,7 @@ class TestCalendar(object): - else: - mtimes[cal] = mtime - -+ @pytest.mark.xfail - def test_db_needs_update(self, coll_vdirs): - coll, vdirs = coll_vdirs - -@@ -321,6 +322,7 @@ class TestDbCreation(object): - CalendarCollection(calendars, dbpath=dbpath, locale=aux.locale) - - -+@pytest.mark.xfail - def test_default_calendar(coll_vdirs): - """test if an update to the vdir is detected by the CalendarCollection""" - coll, vdirs = coll_vdirs -@@ -341,6 +343,7 @@ def test_default_calendar(coll_vdirs): - assert len(list(coll.get_events_on(today))) == 0 - - -+@pytest.mark.xfail - def test_only_update_old_event(coll_vdirs, monkeypatch): - coll, vdirs = coll_vdirs - From 7ee557a75a695dbbdfa5187bdf85b530e0f92fbf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 19 Jan 2017 11:50:49 +0100 Subject: [PATCH 20/58] gnu: Add lsyncd. * gnu/packages/sync.scm (lsyncd): New variable. --- gnu/packages/sync.scm | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 429fe196de..4b026b93cb 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages linux) + #:use-module (gnu packages lua) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) @@ -158,3 +160,49 @@ their folder. @item Toggle for monochrome icon. @end enumerate\n") (license license:lgpl3+))) + +(define-public lsyncd + (package + (name "lsyncd") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/axkibe/lsyncd/archive/release-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0da7mrq2c578v2dd5x9v75l1fqrm28jvn28qkcd49y8p992nj6gl")))) + (build-system cmake-build-system) + (arguments + `(;; The "tests" target is broken and assumes that tests are run in the + ;; root directory. + #:tests? #f + #:test-target "tests" + #:phases + (modify-phases %standard-phases + ;; No install target. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man (string-append out "/share/man/man1"))) + (install-file "lsyncd" bin) + (install-file (string-append "../lsyncd-release-" + ,version + "/doc/manpage/lsyncd.1") + man) + #t)))))) + (native-inputs + `(("lua" ,lua-5.2))) + (home-page "https://github.com/axkibe/lsyncd") + (synopsis "Synchronize local directories with remote targets") + (description "Lsyncd watches a local directory trees event monitor +interface (inotify or fsevents). It aggregates and combines events for a few +seconds and then spawns one (or more) process(es) to synchronize the changes. +By default this is rsync, which must be installed on all source and target +machines. Lsyncd is thus a light-weight live mirror solution that is +comparatively easy to install not requiring new filesystems or block devices +and does not hamper local filesystem performance.") + (license license:gpl2+))) From f2b7be092907c6b22735565696da01cc9d544e93 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 Jan 2017 16:34:18 +0100 Subject: [PATCH 21/58] gnu: Add unibilium. * gnu/packages/terminals.scm (unibilium): New variable. --- gnu/packages/terminals.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 20897860d2..33df473449 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Ludovic Courtès ;;; Copyright © 2016, 2017 José Miguel Sánchez García ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -362,3 +363,36 @@ scripts, notifying the user when something interesting occurs. Of course, it has no notion of what's interesing, but it's very good at that notifying part.") (home-page "http://www.johnath.com/beep") (license license:gpl2+))) + +(define-public unibilium + (package + (name "unibilium") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/mauke/unibilium/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1n7a0jrlwhn9nnkna76sbnjrr808m0pmzbiwznmp7rhmjl4z2fk2")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:test-target "test" + ;; FIXME: tests require "prove" + #:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("libtool" ,libtool))) + (home-page "https://github.com/mauke/unibilium") + (synopsis "Terminfo parsing library") + (description "Unibilium is a basic C terminfo library. It doesn't depend +on curses or any other library. It also doesn't use global variables, so it +should be thread-safe.") + (license license:lgpl3+))) From ee869cd6eab6b0552380b64792452b77e55c9daf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 Jan 2017 16:34:19 +0100 Subject: [PATCH 22/58] gnu: Add libvterm. * gnu/packages/terminals.scm (libvterm): New variable. --- gnu/packages/terminals.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 33df473449..e90ee6847f 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -396,3 +396,37 @@ has no notion of what's interesing, but it's very good at that notifying part.") on curses or any other library. It also doesn't use global variables, so it should be thread-safe.") (license license:lgpl3+))) + +(define-public libvterm + (package + (name "libvterm") + (version "0+bzr681") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.leonerd.org.uk/code/libvterm/" + "libvterm-" version ".tar.gz")) + (sha256 + (base32 + "1s56c8p1qz6frkcri0hg4qyydv2wcccj6n2xmz1dwcdqn38ldsmb")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:test-target "test" + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("libtool" ,libtool) + ("perl" ,perl))) + (home-page "http://www.leonerd.org.uk/code/libvterm/") + (synopsis "VT220/xterm/ECMA-48 terminal emulator library") + (description "Libvterm is an abstract C99 library which implements a VT220 +or xterm-like terminal emulator. It doesn't use any particular graphics +toolkit or output system, instead it invokes callback function pointers that +its embedding program should provide it to draw on its behalf. It avoids +calling @code{malloc} during normal running state, allowing it to be used in +embedded kernel situations.") + (license license:expat))) From 7c04154940b746fb872536ea6833f5ef8ddbe288 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 24 Jan 2017 11:19:34 +0000 Subject: [PATCH 23/58] gnu: tor: Update to 0.2.9.9 [fixes security issue TROVE-2017-001]. See 'ChangeLog' in the source distribution for more information about the denial of service bug TROVE-2017-001. * gnu/packages/tor.scm (tor): Update to 0.2.9.9. Signed-off-by: Leo Famulari --- gnu/packages/tor.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 6f26f404be..c7f97ab1b4 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,14 +39,14 @@ (define-public tor (package (name "tor") - (version "0.2.9.8") + (version "0.2.9.9") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "0sklgmx4nikcfhqd606kvpwy1l8840w24ikli1xjjx25739k7pgv")))) + "0hqdk5p6dw4bpn7c8gmhyi8jjkhc37112pfw5nx4gl0g4lmmscik")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) ; for tests From 81e95821057a3df50952f979bf767012ddbbf8c2 Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Tue, 24 Jan 2017 19:35:58 +0100 Subject: [PATCH 24/58] gnu: wiredtiger: Update to 2.9.1 * gnu/packages/databases.scm (wiredtiger): Update to 2.9.1. Signed-off-by: Leo Famulari --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index b70d48c61c..fb0266e405 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1085,7 +1085,7 @@ database and supports many programming languages. It is a NoSQL database.") (define-public wiredtiger (package (name "wiredtiger") - (version "2.8.0") + (version "2.9.1") (source (origin (method url-fetch) (uri (string-append @@ -1093,7 +1093,7 @@ database and supports many programming languages. It is a NoSQL database.") version ".tar.bz2")) (sha256 (base32 - "1qh7y5paisdxq19jgg81ld7i32lz920n5k30hdpxnr8ll9c4hgjr")))) + "0krwnb2zfbhvjaskwl875qzd3y626s84zcciq2mxr5c5riw3yh6s")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-lz4" "--enable-zlib") From 23d57f74dcaddc39b2fe57fc0eabcd5907318882 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 24 Jan 2017 21:48:01 +0100 Subject: [PATCH 25/58] gnu: gnupg: Update to 2.1.18. * gnu/packages/gnupg.scm (gnupg): Update to 2.1.18. [source]: Remove patch. * gnu/packages/patches/gnupg-test-segfault-on-32bit-arch.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/gnupg.scm | 8 +--- .../gnupg-test-segfault-on-32bit-arch.patch | 40 ------------------- 3 files changed, 2 insertions(+), 47 deletions(-) delete mode 100644 gnu/packages/patches/gnupg-test-segfault-on-32bit-arch.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3963b97b71..37d82fa716 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -593,7 +593,6 @@ dist_patch_DATA = \ %D%/packages/patches/gmp-faulty-test.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \ - %D%/packages/patches/gnupg-test-segfault-on-32bit-arch.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index b19d764e25..df9eb4cba5 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -217,18 +217,14 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.1.17") + (version "2.1.18") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "1js308b46ifx1gim0c9nivr5yxhans7iq1yvkf7zl2928gdm9p65")) - (patches - ;; This fixes a test failure on 32bit. Remove for next version. - ;; https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00869.html - (search-patches "gnupg-test-segfault-on-32bit-arch.patch")))) + "157rrv3ly9j2k0acz43nhiba5hfl6h7048jvj55wwqjmgsmnyk6h")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/patches/gnupg-test-segfault-on-32bit-arch.patch b/gnu/packages/patches/gnupg-test-segfault-on-32bit-arch.patch deleted file mode 100644 index 79bb41caaa..0000000000 --- a/gnu/packages/patches/gnupg-test-segfault-on-32bit-arch.patch +++ /dev/null @@ -1,40 +0,0 @@ -This fixes a segfault on 32-bit architectures. Upstream discussion: - -https://lists.gnupg.org/pipermail/gnupg-devel/2016-December/032364.html - -Guix thread: https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00631.html - -Patch copied from upstream source repository: - -https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=6e96cdd41a0e55b672309431062f37c4a4a9f485 - -From 6e96cdd41a0e55b672309431062f37c4a4a9f485 Mon Sep 17 00:00:00 2001 -From: Justus Winter -Date: Wed, 21 Dec 2016 16:14:45 +0100 -Subject: [PATCH] gpgscm: Guard use of union member. - -* tests/gpgscm/scheme.c (opexe_5): Check that we have a file port -before accessing filename. Fixes a crash on 32-bit architectures. - -Fixes-commit: e7429b1ced0c69fa7901f888f8dc25f00fc346a4 -Signed-off-by: Justus Winter ---- - tests/gpgscm/scheme.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/gpgscm/scheme.c b/tests/gpgscm/scheme.c -index a5b7691..2844545 100644 ---- a/tests/gpgscm/scheme.c -+++ b/tests/gpgscm/scheme.c -@@ -4838,7 +4838,7 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) { - } else { - sc->nesting_stack[sc->file_i]++; - #if USE_TAGS && SHOW_ERROR_LINE -- { -+ if (sc->load_stack[sc->file_i].kind & port_file) { - const char *filename = - sc->load_stack[sc->file_i].rep.stdio.filename; - int lineno = --- -2.8.0.rc3 - From 0769cea6970444dd5f5db75f9863ec6ff428e7cb Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 18:33:21 -0500 Subject: [PATCH 26/58] gnu: openjpeg: Fix CVE-2016-{9572,9573}. * gnu/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/image.scm (openjpeg-2.1.2)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/image.scm | 3 +- ...openjpeg-CVE-2016-9572-CVE-2016-9573.patch | 233 ++++++++++++++++++ 3 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch diff --git a/gnu/local.mk b/gnu/local.mk index 37d82fa716..59fc1a82c0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -780,6 +780,7 @@ dist_patch_DATA = \ %D%/packages/patches/openjpeg-CVE-2016-5157.patch \ %D%/packages/patches/openjpeg-CVE-2016-7163.patch \ %D%/packages/patches/openjpeg-CVE-2016-9850-CVE-2016-9851.patch \ + %D%/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch \ %D%/packages/patches/openjpeg-use-after-free-fix.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 637819947c..54b7dd6e22 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -498,7 +498,8 @@ error-resilience, a Java-viewer for j2k-images, ...") (base32 "19yz4g0c45sm8y1z01j9djsrl1mkz3pmw7fykc6hkvrqymp7prsc")) (patches - (search-patches "openjpeg-CVE-2016-9850-CVE-2016-9851.patch")))))) + (search-patches "openjpeg-CVE-2016-9850-CVE-2016-9851.patch" + "openjpeg-CVE-2016-9572-CVE-2016-9573.patch")))))) (define-public openjpeg-1 (package (inherit openjpeg) diff --git a/gnu/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch b/gnu/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch new file mode 100644 index 0000000000..545b5d0a71 --- /dev/null +++ b/gnu/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch @@ -0,0 +1,233 @@ +Fix CVE-2016-9572 and CVE-2016-9573: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9572 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9573 +https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-9572 +https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-9573 + +Patch copied from 3rd-party repository: + +https://github.com/szukw000/openjpeg/commit/7b28bd2b723df6be09fe7791eba33147c1c47d0d + +From 7b28bd2b723df6be09fe7791eba33147c1c47d0d Mon Sep 17 00:00:00 2001 +From: szukw000 +Date: Mon, 28 Nov 2016 21:57:20 +0100 +Subject: [PATCH] Changes for issues #863 and #862 + +--- + src/bin/jp2/convert.c | 59 +++++++++++++++++++++++++++++++++++++++----- + src/bin/jp2/convertbmp.c | 29 +++++++++++++++++++++- + src/bin/jp2/opj_decompress.c | 2 +- + src/lib/openjp2/j2k.c | 11 ++++++--- + 4 files changed, 90 insertions(+), 11 deletions(-) + +diff --git a/src/bin/jp2/convert.c b/src/bin/jp2/convert.c +index deee4f6..6a3f65b 100644 +--- a/src/bin/jp2/convert.c ++++ b/src/bin/jp2/convert.c +@@ -906,7 +906,8 @@ int imagetotga(opj_image_t * image, const char *outfile) { + for (i = 0; i < image->numcomps-1; i++) { + if ((image->comps[0].dx != image->comps[i+1].dx) + ||(image->comps[0].dy != image->comps[i+1].dy) +- ||(image->comps[0].prec != image->comps[i+1].prec)) { ++ ||(image->comps[0].prec != image->comps[i+1].prec) ++ ||(image->comps[0].sgnd != image->comps[i+1].sgnd)) { + fclose(fdest); + fprintf(stderr, "Unable to create a tga file with such J2K image charateristics."); + return 1; +@@ -1743,7 +1744,7 @@ int imagetopnm(opj_image_t * image, const char *outfile, int force_split) + int *red, *green, *blue, *alpha; + int wr, hr, max; + int i; +- unsigned int compno, ncomp; ++ unsigned int compno, ncomp, ui; + int adjustR, adjustG, adjustB, adjustA; + int fails, two, want_gray, has_alpha, triple; + int prec, v; +@@ -1768,6 +1769,27 @@ int imagetopnm(opj_image_t * image, const char *outfile, int force_split) + + if(want_gray) ncomp = 1; + ++ for (ui = 1; ui < ncomp; ++ui) { ++ if (image->comps[0].dx != image->comps[ui].dx) { ++ break; ++ } ++ if (image->comps[0].dy != image->comps[ui].dy) { ++ break; ++ } ++ if (image->comps[0].prec != image->comps[ui].prec) { ++ break; ++ } ++ if (image->comps[0].sgnd != image->comps[ui].sgnd) { ++ break; ++ } ++ } ++ if (ui != ncomp) { ++ fprintf(stderr,"imagetopnm: All components\n shall have " ++ "the same subsampling, same bit depth, same sign.\n" ++ " Aborting\n"); ++ return 1; ++ } ++ + if ((force_split == 0) && + (ncomp == 2 /* GRAYA */ + || (ncomp > 2 /* RGB, RGBA */ +@@ -2126,7 +2148,7 @@ static int imagetoraw_common(opj_image_t * image, const char *outfile, OPJ_BOOL + { + FILE *rawFile = NULL; + size_t res; +- unsigned int compno; ++ unsigned int compno, numcomps; + int w, h, fails; + int line, row, curr, mask; + int *ptr; +@@ -2139,6 +2161,31 @@ static int imagetoraw_common(opj_image_t * image, const char *outfile, OPJ_BOOL + return 1; + } + ++ numcomps = image->numcomps; ++ ++ if (numcomps > 4) { ++ numcomps = 4; ++ } ++ for (compno = 1; compno < numcomps; ++compno) { ++ if (image->comps[0].dx != image->comps[compno].dx) { ++ break; ++ } ++ if (image->comps[0].dy != image->comps[compno].dy) { ++ break; ++ } ++ if (image->comps[0].prec != image->comps[compno].prec) { ++ break; ++ } ++ if (image->comps[0].sgnd != image->comps[compno].sgnd) { ++ break; ++ } ++ } ++ if (compno != numcomps) { ++ fprintf(stderr,"imagetoraw_common: All components shall have the same subsampling, same bit depth, same sign.\n"); ++ fprintf(stderr,"\tAborting\n"); ++ return 1; ++ } ++ + rawFile = fopen(outfile, "wb"); + if (!rawFile) { + fprintf(stderr, "Failed to open %s for writing !!\n", outfile); +@@ -2146,9 +2193,9 @@ static int imagetoraw_common(opj_image_t * image, const char *outfile, OPJ_BOOL + } + + fails = 1; +- fprintf(stdout,"Raw image characteristics: %d components\n", image->numcomps); ++ fprintf(stdout,"Raw image characteristics: %d components\n", numcomps); + +- for(compno = 0; compno < image->numcomps; compno++) ++ for(compno = 0; compno < numcomps; compno++) + { + fprintf(stdout,"Component %u characteristics: %dx%dx%d %s\n", compno, image->comps[compno].w, + image->comps[compno].h, image->comps[compno].prec, image->comps[compno].sgnd==1 ? "signed": "unsigned"); +@@ -2238,7 +2285,7 @@ static int imagetoraw_common(opj_image_t * image, const char *outfile, OPJ_BOOL + } + else if (image->comps[compno].prec <= 32) + { +- fprintf(stderr,"More than 16 bits per component no handled yet\n"); ++ fprintf(stderr,"More than 16 bits per component not handled yet\n"); + goto fin; + } + else +diff --git a/src/bin/jp2/convertbmp.c b/src/bin/jp2/convertbmp.c +index ae83077..8017ba8 100644 +--- a/src/bin/jp2/convertbmp.c ++++ b/src/bin/jp2/convertbmp.c +@@ -806,8 +806,35 @@ int imagetobmp(opj_image_t * image, const char *outfile) { + FILE *fdest = NULL; + int adjustR, adjustG, adjustB; + ++ { ++ unsigned int ui, ncomp = image->numcomps; ++ ++ if (ncomp > 4) { /* RGBA in bmpmask32toimage */ ++ ncomp = 4; ++ } ++ for (ui = 1; ui < ncomp; ++ui) { ++ if (image->comps[0].dx != image->comps[ui].dx) { ++ break; ++ } ++ if (image->comps[0].dy != image->comps[ui].dy) { ++ break; ++ } ++ if (image->comps[0].prec != image->comps[ui].prec) { ++ break; ++ } ++ if (image->comps[0].sgnd != image->comps[ui].sgnd) { ++ break; ++ } ++ } ++ if (ui != ncomp) { ++ fprintf(stderr,"imagetobmp: All components shall have the same subsampling, same bit depth, same sign.\n"); ++ fprintf(stderr,"\tAborting\n"); ++ return 1; ++ } ++ ++ } + if (image->comps[0].prec < 8) { +- fprintf(stderr, "Unsupported number of components: %d\n", image->comps[0].prec); ++ fprintf(stderr, "imagetobmp: Unsupported precision: %d\n", image->comps[0].prec); + return 1; + } + if (image->numcomps >= 3 && image->comps[0].dx == image->comps[1].dx +diff --git a/src/bin/jp2/opj_decompress.c b/src/bin/jp2/opj_decompress.c +index 83160c3..c30079b 100644 +--- a/src/bin/jp2/opj_decompress.c ++++ b/src/bin/jp2/opj_decompress.c +@@ -1607,7 +1607,7 @@ int main(int argc, char **argv) + if(dirptr->filename_buf) free(dirptr->filename_buf); + free(dirptr); + } +- if (numDecompressedImages) { ++ if (numDecompressedImages && !failed) { + fprintf(stdout, "decode time: %d ms\n", (int)( (tCumulative * 1000.0) / (OPJ_FLOAT64)numDecompressedImages)); + } + return failed ? EXIT_FAILURE : EXIT_SUCCESS; +diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c +index 66802bb..b6daa32 100644 +--- a/src/lib/openjp2/j2k.c ++++ b/src/lib/openjp2/j2k.c +@@ -2158,7 +2158,7 @@ static OPJ_BOOL opj_j2k_read_siz(opj_j2k_t *p_j2k, + i, l_img_comp->dx, l_img_comp->dy); + return OPJ_FALSE; + } +- if( l_img_comp->prec > 38) { /* TODO openjpeg won't handle more than ? */ ++ if( l_img_comp->prec < 1 || l_img_comp->prec > 38) { /* TODO openjpeg won't handle more than ? */ + opj_event_msg(p_manager, EVT_ERROR, + "Invalid values for comp = %d : prec=%u (should be between 1 and 38 according to the JPEG2000 norm)\n", + i, l_img_comp->prec); +@@ -10029,7 +10029,11 @@ OPJ_BOOL opj_j2k_decode(opj_j2k_t * p_j2k, + /* Move data and copy one information from codec to output image*/ + for (compno = 0; compno < p_image->numcomps; compno++) { + p_image->comps[compno].resno_decoded = p_j2k->m_output_image->comps[compno].resno_decoded; +- p_image->comps[compno].data = p_j2k->m_output_image->comps[compno].data; ++ p_image->comps[compno].data = p_j2k->m_output_image->comps[compno].data; ++ ++ if(p_image->comps[compno].data == NULL) return OPJ_FALSE; ++ ++ p_j2k->m_output_image->comps[compno].data = NULL; + #if 0 + char fn[256]; + sprintf( fn, "/tmp/%d.raw", compno ); +@@ -10037,7 +10041,6 @@ OPJ_BOOL opj_j2k_decode(opj_j2k_t * p_j2k, + fwrite( p_image->comps[compno].data, sizeof(OPJ_INT32), p_image->comps[compno].w * p_image->comps[compno].h, debug ); + fclose( debug ); + #endif +- p_j2k->m_output_image->comps[compno].data = NULL; + } + + return OPJ_TRUE; +@@ -10131,6 +10134,8 @@ OPJ_BOOL opj_j2k_get_tile( opj_j2k_t *p_j2k, + + p_image->comps[compno].data = p_j2k->m_output_image->comps[compno].data; + ++ if (p_image->comps[compno].data == NULL) return OPJ_FALSE; ++ + p_j2k->m_output_image->comps[compno].data = NULL; + } + From fd7d1235f1d2e053bbc20d555bd9eed889845ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 Jan 2017 17:48:24 +0100 Subject: [PATCH 27/58] grafts: Shallow grafting can be performed on a subset of the outputs. * guix/grafts.scm (graft-derivation/shallow): Add #:outputs parameter. [outputs]: Rename to... [output-pairs]: ... this. Adjust 'build-expression->derivation' call accordingly. --- guix/grafts.scm | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/guix/grafts.scm b/guix/grafts.scm index e14a40f8d1..e44fc0544f 100644 --- a/guix/grafts.scm +++ b/guix/grafts.scm @@ -78,11 +78,12 @@ (define* (graft-derivation/shallow store drv grafts #:key (name (derivation-name drv)) + (outputs (derivation-output-names drv)) (guile (%guile-for-build)) (system (%current-system))) - "Return a derivation called NAME, based on DRV but with all the GRAFTS -applied. This procedure performs \"shallow\" grafting in that GRAFTS are not -recursively applied to dependencies of DRV." + "Return a derivation called NAME, which applies GRAFTS to the specified +OUTPUTS of DRV. This procedure performs \"shallow\" grafting in that GRAFTS +are not recursively applied to dependencies of DRV." ;; XXX: Someday rewrite using gexps. (define mapping ;; List of store item pairs. @@ -96,14 +97,12 @@ recursively applied to dependencies of DRV." target)))) grafts)) - (define outputs - (map (match-lambda - ((name . output) - (cons name (derivation-output-path output)))) - (derivation-outputs drv))) - - (define output-names - (derivation-output-names drv)) + (define output-pairs + (map (lambda (output) + (cons output + (derivation-output-path + (assoc-ref (derivation-outputs drv) output)))) + outputs)) (define build `(begin @@ -111,7 +110,7 @@ recursively applied to dependencies of DRV." (guix build utils) (ice-9 match)) - (let* ((old-outputs ',outputs) + (let* ((old-outputs ',output-pairs) (mapping (append ',mapping (map (match-lambda ((name . file) @@ -143,10 +142,10 @@ recursively applied to dependencies of DRV." (guix build utils)) #:inputs `(,@(map (lambda (out) `("x" ,drv ,out)) - output-names) + outputs) ,@(append (map add-label sources) (map add-label targets))) - #:outputs output-names + #:outputs outputs #:local-build? #t))))) (define (item->deriver store item) "Return two values: the derivation that led to ITEM (a store item), and the From 259a94e98102f4ad6988098229ee85c7bb648b36 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Tue, 24 Jan 2017 18:03:31 +0100 Subject: [PATCH 28/58] gnu: Add qdbm. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/databases.scm (qdbm): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/databases.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index fb0266e405..e8be179801 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -425,6 +426,33 @@ TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video.") (license (x11-style "file://COPYRIGHT")))) +(define-public qdbm + (package + (name "qdbm") + (version "1.8.78") + (source + (origin + (method url-fetch) + (uri (string-append "http://fallabs.com/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0gmpvhn02pkq280ffmn4da1g4mdr1xxz7l80b7y4n7km1mrzwrml")))) + (build-system gnu-build-system) + (arguments + `( #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib")))) + (home-page "http://fallabs.com/qdbm") + (synopsis "Key-value database") + (description "QDBM is a library of routines for managing a +database. The database is a simple data file containing key-value +pairs. Every key and value is serial bytes with variable length. +Binary data as well as character strings can be used as a key or a +value. There is no concept of data tables or data types. Records are +organized in a hash table or B+ tree.") + (license license:lgpl2.1+))) + (define-public recutils (package (name "recutils") From ff8b5a3ae7e62b43ad712b9d496bc84664ecfb73 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Tue, 24 Jan 2017 18:03:32 +0100 Subject: [PATCH 29/58] gnu: Add hyperestraier. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/search.scm (hyperestraier): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/search.scm | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index cb8b670757..e2342266d6 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015, 2016 Eric Bavier +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,7 +20,7 @@ (define-module (gnu packages search) #:use-module ((guix licenses) - #:select (gpl2 gpl2+ gpl3+ bsd-3 x11)) + #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -160,6 +161,33 @@ accounting for new lines and paragraph changes. It also has robust support for parsing HTML files.") (license gpl3+))) +(define-public hyperestraier + (package + (name "hyperestraier") + (version "1.4.13") + (source + (origin + (method url-fetch) + (uri (string-append "http://fallabs.com/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1qk3pxgzyrpcz5qfyd5xs2hw9q1cbb7j5zd4kp1diq501wcj2vs9")))) + (inputs + `(("qdbm" ,qdbm) + ("zlib" ,zlib))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib")))) + (home-page "http://fallabs.com/hyperestraier") + (synopsis "Full-text search system") + (description "Hyper Estraier can be used to integrate full-text +search into applications, using either the provided command line and CGI +interfaces, or a C API.") + (license lgpl2.1+))) + (define-public mlocate (package (name "mlocate") From d6d1cea624ad6869e4099672092516d7383204dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 Jan 2017 22:43:14 +0100 Subject: [PATCH 30/58] mapped-devices: 'source' can be a list of strings. Reported by myglc2 . * gnu/system/mapped-devices.scm ()[source]: Update comment to note that this can be a list of strings. --- gnu/system/mapped-devices.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index 8ab861bf73..2959802c96 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -54,7 +54,7 @@ (define-record-type* mapped-device make-mapped-device mapped-device? - (source mapped-device-source) ;string + (source mapped-device-source) ;string | list of strings (target mapped-device-target) ;string (type mapped-device-type)) ; From 04fa4cdf95a004bda4d63b6578b53e154a4d4679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 Jan 2017 22:53:43 +0100 Subject: [PATCH 31/58] gnu: arandr: Remove timestamps from gzipped man pages. * gnu/packages/xdisorg.scm (arandr)[source](modules, snippet): New fields. --- gnu/packages/xdisorg.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 7771b16534..02d0c94119 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2014, 2015, 2016 Alex Kost -;;; Copyright © 2013, 2015 Ludovic Courtès +;;; Copyright © 2013, 2015, 2017 Ludovic Courtès ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2015 Alexander I.Grafov ;;; Copyright © 2015 Andy Wingo @@ -75,7 +75,14 @@ "/files/" name "-" version ".tar.gz")) (sha256 (base32 - "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv")))) + "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv")) + (modules '((guix build utils))) + (snippet + ;; Do not record a timestamp and file name in gzipped man + ;; pages (this is equivalent to 'gzip --no-name'.) + '(substitute* "setup.py" + (("gzip\\.open\\(gzfile, 'w', 9\\)") + "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)"))))) (build-system python-build-system) (arguments `(#:python ,python-2 ;incompatible with python 3 From 9b1a497ee9b0fca1a1f1ee73ae0776bc492edf62 Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Tue, 24 Jan 2017 14:55:12 +0100 Subject: [PATCH 32/58] gnu: haunt: Update to 0.2.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/guile.scm (haunt): Update to 0.2.1. Signed-off-by: Ludovic Courtès --- gnu/packages/guile.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 00f587d8d0..ba45a6389b 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -938,14 +938,14 @@ Guile's foreign function interface.") (define-public haunt (package (name "haunt") - (version "0.2") + (version "0.2.1") (source (origin (method url-fetch) (uri (string-append "https://files.dthompson.us/haunt/haunt-" version ".tar.gz")) (sha256 (base32 - "1id83n8fs7jxys1d8jy70vylg8gzcvlw1y7hb41y3qxv5zi4671m")))) + "1fpaf1vm6s7j13fs35barjh5yajcc2rc3pi8r7278wpgp4i2vs3w")))) (build-system gnu-build-system) (arguments `(#:modules ((ice-9 match) (ice-9 ftw) @@ -975,7 +975,8 @@ Guile's foreign function interface.") (inputs `(("guile" ,guile-2.0))) (propagated-inputs - `(("guile-reader" ,guile-reader))) + `(("guile-reader" ,guile-reader) + ("guile-commonmark" ,guile-commonmark))) (synopsis "Functional static site generator") (description "Haunt is a static site generator written in Guile Scheme. Haunt features a functional build system and an extensible From db963aad3d7eaffb4633d1f54190f982502614dc Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 23 Jan 2017 20:06:11 +0100 Subject: [PATCH 33/58] gnu: youtube-dl: Update to 2017.01.24. * gnu/packages/video.scm (youtube-dl): Update to 2017.01.24. --- 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 b7383f246a..8ba229e582 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -970,7 +970,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.01.14") + (version "2017.01.24") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -978,7 +978,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "1jlwz6p7ryj9ygmwqm4r3pykd9qw21rsiqpifbx0p0kcvdvvvj3n")))) + "1n74s6kfs4v1lfg7xls9ymk6yrq09hxwd18sz3lziv5qd1pj14b6")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion From 392f32665578bf83b2ed82fc2fb944b4bb4c6730 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 15:31:20 +0100 Subject: [PATCH 34/58] gnu: the-silver-searcher: Update to 1.0.2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/code.scm (the-silver-searcher): Update to 1.0.2. [source]: Use signed tarball from home-page. Remove file-name. [native-inputs]: Remove autoconf, automake, and libtool, as well as... [arguments]: ...the ‘autoconf’ phase since we're now building a release. --- gnu/packages/code.scm | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index f5aa7f4faf..061ec27b80 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -190,37 +190,22 @@ COCOMO model or user-provided parameters.") (define-public the-silver-searcher (package (name "the-silver-searcher") - (version "0.32.0") + (version "1.0.2") (source (origin (method url-fetch) (uri (string-append - "https://github.com/ggreer/the_silver_searcher/archive/" + "http://geoff.greer.fm/ag/releases/the_silver_searcher-" version ".tar.gz")) (sha256 (base32 - "1k543cjpignwvy8avhchz8pkqrqcgcryps36ycy8mz2w5rbhicn5")) - (file-name (string-append name "-" version ".tar.gz")))) + "0v54himv65w294l0k4lhdyc6kvpgijn8b9g5356479fzy7hphjkg")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config))) (inputs `(("pcre" ,pcre) ("xz" ,xz) ("zlib" ,zlib))) - (arguments - `(#:phases - ;; There is no configure yet, so let's create it, but let configure and - ;; make do the work in later phases. - (alist-cons-before 'configure 'autoconf - (lambda _ - (substitute* "build.sh" - (("./configure") "true") - (("make -j4") "true")) - (zero? (system* "sh" "build.sh"))) - %standard-phases))) (home-page "http://geoff.greer.fm/ag/") (synopsis "Fast code searching tool") (description From 6acff0f90069898bac69a49cfa173725bd6b9e6e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 15:33:07 +0100 Subject: [PATCH 35/58] gnu: the-silver-searcher: Fix & improve description. * gnu/packages/code.scm (the-silver-searcher)[description]: Fix typo, use @command and @file mark-up, and clarify a bit. --- gnu/packages/code.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 061ec27b80..f91fdab153 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -209,9 +210,11 @@ COCOMO model or user-provided parameters.") (home-page "http://geoff.greer.fm/ag/") (synopsis "Fast code searching tool") (description - "The silver searcher, or 'ag', is tool for quickly searching through -files, but compared to grep is much faster and respects files like .gitignore, -.hgignore, etc.") + "The Silver Searcher (@command{ag}) is a tool for quickly searching large +numbers of files. It's intended primarily for source code repositories, and +respects files like @file{.gitignore} and @file{.hgignore}. It's also an order +of magnitude faster than its inspiration, @command{ack}, and less specialised +tools such as @command{grep}.") (license license:asl2.0))) (define-public trio From 9e2802cb8d969110d3fe85f7c3ea5fd6a933f147 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 12:53:00 +0100 Subject: [PATCH 36/58] gnu: python-orderedmultidict: Update to 0.7.11. * gnu/packages/python.scm (python-orderedmultidict): Update to 0.7.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 5feca2b68e..9a1dba1134 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4003,14 +4003,14 @@ Python code against some of the style conventions in (define-public python-orderedmultidict (package (name "python-orderedmultidict") - (version "0.7.10") + (version "0.7.11") (source (origin (method url-fetch) (uri (pypi-uri "orderedmultidict" version)) (sha256 (base32 - "1gvqk0jd432wsn88kq4svad68xz3r012jfpnhh9in7bqrkyxidky")))) + "0dls862ibm7qbq4fnvwx0xn1v9hwyzywbff8xjjdr42dd75208yw")))) (build-system python-build-system) (arguments `(#:phases From 4418990d7797affc7d6c5be40c6452267ba170c3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 12:56:12 +0100 Subject: [PATCH 37/58] gnu: python-alembic: Update to 0.8.10. * gnu/packages/python.scm (python-alembic): Update to 0.8.10. --- 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 9a1dba1134..f84335c422 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4131,14 +4131,14 @@ You might also want to install the following optional dependencies: (define-public python-alembic (package (name "python-alembic") - (version "0.8.7") + (version "0.8.10") (source (origin (method url-fetch) (uri (pypi-uri "alembic" version)) (sha256 (base32 - "0ias6fdzwr2s220fnjspkdgm9510bd0cnap0hx5y4zy4srba9f3z")))) + "06br9sfqypnjlal6fsbnky3zb0askwcn3diz8k3kwa0qcblm0fqf")))) (build-system python-build-system) (native-inputs `(("python-mock" ,python-mock) From 5754fe957086d5da877b036b0b284402f6b931dd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 13:21:50 +0100 Subject: [PATCH 38/58] gnu: python-unidecode: Update to 0.04.20. * gnu/packages/python.scm (python-unidecode): Update to 0.04.20. --- 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 f84335c422..771d782091 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2567,13 +2567,13 @@ cutting and pasting that code over and over.") (define-public python-unidecode (package (name "python-unidecode") - (version "0.04.18") + (version "0.04.20") (source (origin (method url-fetch) (uri (pypi-uri "Unidecode" version)) (sha256 (base32 - "12hhblqy1ajvidm38im4171x4arg83pfmziyn53nizp29p3m14gi")))) + "1q00i8gpsq3d9r0q8wk4b290fxl0kqlsdk7iadvli45in6s1hi7d")))) (build-system python-build-system) (home-page "https://pypi.python.org/pypi/Unidecode") (synopsis "ASCII transliterations of Unicode text") From ccc18762101417cc7709bba57158c9e38116fa3b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 14:00:22 +0100 Subject: [PATCH 39/58] gnu: python-seaborn: Update to 0.7.1. * gnu/packages/python.scm (python-seaborn): Update to 0.7.1. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 771d782091..cf9045c5cc 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5534,13 +5534,13 @@ Python style, together with a fast and comfortable execution environment.") (define-public python-seaborn (package (name "python-seaborn") - (version "0.7.0") + (version "0.7.1") (source (origin (method url-fetch) (uri (pypi-uri "seaborn" version)) (sha256 - (base32 "0ibi3xsfm2kysph61mnfy0pf8d5rkgxgrdb0z9nbizgcgdsb5a0m")))) + (base32 "0pawrqc3mxpwd5g9pvi9gba02637bh5c8ldpp8izfwpfn52469zs")))) (build-system python-build-system) (propagated-inputs `(("python-pandas" ,python-pandas) From 02d7f3370560101bd672ff97ef56be803374ab50 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 14:14:21 +0100 Subject: [PATCH 40/58] gnu: python-debian: Update to 0.1.28. * gnu/packages/python.scm (python-debian): Update to 0.1.28. --- 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 cf9045c5cc..8954231c7e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7021,7 +7021,7 @@ serve the same purpose: provide Python bindings for libmagic."))) (define-public python-debian (package (name "python-debian") - (version "0.1.23") + (version "0.1.28") (source (origin (method url-fetch) @@ -7030,7 +7030,7 @@ serve the same purpose: provide Python bindings for libmagic."))) version ".tar.gz")) (sha256 (base32 - "193faznwnjc3n5991wyzim6h9gyq1zxifmfrnpm3avgkh7ahyynh")))) + "0i15f0xzx679sd0ldq2sls9pnnps9fv6vhqvnv9dzf4qhma42i0y")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) From f92576f963839e689712fa18bac59731513b7b83 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 14:27:39 +0100 Subject: [PATCH 41/58] gnu: python-colorama: Update to 0.3.7. * gnu/packages/python.scm (python-colorama): Update to 0.3.7. --- 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 8954231c7e..be64c6b59f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8611,14 +8611,14 @@ supports url redirection and retries, and also gzip and deflate decoding.") (define-public python-colorama (package (name "python-colorama") - (version "0.3.3") + (version "0.3.7") (source (origin (method url-fetch) (uri (pypi-uri "colorama" version)) (sha256 (base32 - "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb")))) + "0avqkn6362v7k2kg3afb35g4sfdvixjgy890clip4q174p9whhz0")))) (build-system python-build-system) (synopsis "colored terminal text rendering for Python") (description "Colorama is a Python library for rendering colored terminal From 46e110cca5cf052e07d2d1f60ee0dc61c8c36162 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 15:06:12 +0100 Subject: [PATCH 42/58] gnu: python-colorama: Fix typo in synopsis. * gnu/packages/python.scm (python-colorama)[synopsis]: Capitalise. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index be64c6b59f..4c998ca920 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8620,7 +8620,7 @@ supports url redirection and retries, and also gzip and deflate decoding.") (base32 "0avqkn6362v7k2kg3afb35g4sfdvixjgy890clip4q174p9whhz0")))) (build-system python-build-system) - (synopsis "colored terminal text rendering for Python") + (synopsis "Colored terminal text rendering for Python") (description "Colorama is a Python library for rendering colored terminal text.") (home-page "https://pypi.python.org/pypi/colorama") From ba1731dac5fe16b20ff1e8d96aef632b08b889e9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 14:34:49 +0100 Subject: [PATCH 43/58] gnu: python-paste: Update to 2.0.3. * gnu/packages/python.scm (python-paste): Update to 2.0.3. [arguments]: Re-enable tests. They now pass even on Python 3. [properties]: Remove. (python2-paste): Use package-with-python2 directly now. --- gnu/packages/python.scm | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4c998ca920..0a8c8123b7 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9026,14 +9026,14 @@ file.") (define-public python-paste (package (name "python-paste") - (version "2.0.2") + (version "2.0.3") (source (origin (method url-fetch) (uri (pypi-uri "Paste" version)) (sha256 (base32 - "16dsv9qi0r4qsrsb6dilpq2rx0fnglvh36flzywcdnm2jg43mb5d")) + "062jk0nlxf6lb2wwj6zc20rlvrwsnikpkh90y0dn8cjch93s6ii3")) (patches (search-patches "python-paste-remove-website-test.patch" "python-paste-remove-timing-test.patch")))) (build-system python-build-system) @@ -9041,12 +9041,6 @@ file.") `(("python-nose" ,python-nose))) (propagated-inputs `(("python-six" ,python-six))) - (arguments - '(;; Tests don't pass on Python 3, but work fine on Python 2. - ;; (As of 2.0.2, Python 3 support in Paste is presently a bit broken, - ;; but is usable enough for the minimal amount it's used in MediaGoblin - ;; still... things should be better by the next Paste release.) - #:tests? #f)) (home-page "http://pythonpaste.org") (synopsis "Python web development tools, focusing on WSGI") @@ -9054,18 +9048,10 @@ file.") "Paste provides a variety of web development tools and middleware which can be nested together to build web applications. Paste's design closely follows ideas flowing from WSGI (Web Standard Gateway Interface).") - (license license:expat) - (properties `((python2-variant . ,(delay python2-paste)))))) + (license license:expat))) (define-public python2-paste - (let ((paste (package-with-python2 - (strip-python2-variant python-paste)))) - (package - (inherit paste) - (arguments - ;; Tests are back for Python 2! - `(#:tests? #t - ,@(package-arguments paste)))))) + (package-with-python2 python-paste)) (define-public python-pastescript (package From e6ace98d10159e9b9477dea34f428829a06cbb34 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 14:51:32 +0100 Subject: [PATCH 44/58] gnu: python-tabulate: Update to 0.7.7. * gnu/packages/python.scm (python-tabulate): Update to 0.7.7 --- 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 0a8c8123b7..4e73b0e22b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10399,13 +10399,13 @@ It uses LR parsing and does extensive error checking.") (define-public python-tabulate (package (name "python-tabulate") - (version "0.7.5") + (version "0.7.7") (source (origin (method url-fetch) (uri (pypi-uri "tabulate" version)) (sha256 (base32 - "03l1r7ddd1a0j2snv1yd0hlnghjad3fg1an1jr8936ksv75slwch")) + "1inqhspd4frxnp08c32yndr0lc4px1xfkqah184i5w09gkhvi843")) ;; Fix tests (modules '((guix build utils))) (snippet '(substitute* '("test/test_cli.py" From 08b813366e088e85778752d210ffe35cab1f9748 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 14:54:56 +0100 Subject: [PATCH 45/58] gnu: python-mistune: Update to 0.7.3. * gnu/packages/python.scm (python-mistune): Update to 0.7.3. --- 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 4e73b0e22b..c99638bbd7 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5997,7 +5997,7 @@ complexity of Python source code.") (define-public python-mistune (package (name "python-mistune") - (version "0.7") + (version "0.7.3") (source (origin (method url-fetch) @@ -6007,7 +6007,7 @@ complexity of Python source code.") ".tar.gz")) (sha256 (base32 - "17zqjp9m4d1w3jf2rbbq5xshcw24q1vlcv24gkgfqqyyymajxahx")))) + "04xpk1zvslhq3xpnf01g3ag0dy9wfv4z28p093r8k49vvxlyil11")))) (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose) From b165c215e16e683a41a202b6d190a5f2867a962c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 14:56:39 +0100 Subject: [PATCH 46/58] gnu: python-email-validator: Update to 1.0.2. * gnu/packages/python.scm (python-email-validator): Update to 1.0.2. --- 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 c99638bbd7..4c742f8e44 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10705,13 +10705,13 @@ It supports TSIG authenticated messages and EDNS0.") (define-public python-email-validator (package (name "python-email-validator") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (pypi-uri "email_validator" version)) (sha256 (base32 - "0mn8jg5h8ifl8w6a6m0hq8kbk0mzw9vm054qfamkn89b3npz52qw")))) + "1ja9149l9ck5n45a72h3is7v476hjny5ybxbcamx1nw6iplsm7k6")))) (build-system python-build-system) (arguments '(#:phases From 49d5e338d6cbf6a4bf6c9a879d763ad5b495e2b3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 15:13:58 +0100 Subject: [PATCH 47/58] gnu: python-cov-core: Fix & improve synopsis & description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm (python-cov-core)[synopsis]: Capitalise and add ‘coverage’ key-word. [description]: Use @code. --- 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 4c742f8e44..69675578e3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2241,10 +2241,11 @@ executed.") (propagated-inputs `(("python-coverage" ,python-coverage))) (home-page "https://github.com/schlamar/cov-core") - (synopsis "plugin core for use by pytest-cov, nose-cov and nose2-cov") + (synopsis "Coverage plugin core for pytest-cov, nose-cov and nose2-cov") (description - "This is a library package for use by pytest-cov, nose-cov and nose2-cov. -It is useful for developing coverage plugins for these testing frameworks.") + "This is a library package for use by @code{pytest-cov}, @code{nose-cov} +and @code{nose2-cov}. It is useful for developing coverage plugins for these +testing frameworks.") (license license:expat))) (define-public python2-cov-core From e80aaeb4addd7fb196e5c774505851e30296b57b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 15:21:12 +0100 Subject: [PATCH 48/58] gnu: python2-pysqlite: Update to 2.8.3. * gnu/packages/python.scm (python2-pysqlite): Update to 2.8.3. --- 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 69675578e3..a26b4b3825 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1193,14 +1193,14 @@ under several distributions that's hard or impossible to figure out.") (define-public python2-pysqlite (package (name "python2-pysqlite") - (version "2.8.1") + (version "2.8.3") (source (origin (method url-fetch) (uri (pypi-uri "pysqlite" version)) (sha256 (base32 - "0rm0zqyb363y6wljhfmbxs16jjv7p8nk1d8zgq9sdwj6js7y3jkm")))) + "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp")))) (build-system python-build-system) (inputs `(("sqlite" ,sqlite))) From 33884385383dc9aa2179b08fc28a398918ac4df4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 15:25:03 +0100 Subject: [PATCH 49/58] gnu: trash-cli: Update to 0.17.1.14. * gnu/packages/shellutils.scm (trash-cli): Update to 0.17.1.14. --- gnu/packages/shellutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index c9a35ca3b6..e69df7d832 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -58,14 +58,14 @@ between various shells or commands.") (define-public trash-cli (package (name "trash-cli") - (version "0.17.1.1") + (version "0.17.1.14") (source (origin (method url-fetch) (uri (pypi-uri "trash-cli" version)) (sha256 (base32 - "019sjab29jkps8zkf8icihhf3ng4lx9y4p1lxjd3wbnnynphc4is")))) + "01q0cl04ljf214z6s3g256gsxx3pqsgaf6ac1zh0vrq5bnhnr85h")))) (build-system python-build-system) (arguments `(#:python ,python-2 From 6b7f909f1eb00849be59da387ce65b7f071e2cfa Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 20:27:02 +0100 Subject: [PATCH 50/58] gnu: emacs-auctex: Update to 11.90.0. * gnu/packages/emacs.scm (emacs-auctex): Update to 11.90.0. --- 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 e44dae784d..70f26fa38d 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1130,7 +1130,7 @@ as a library for other Emacs packages.") (define-public emacs-auctex (package (name "emacs-auctex") - (version "11.88.6") + (version "11.90.0") (source (origin (method url-fetch) @@ -1140,7 +1140,7 @@ as a library for other Emacs packages.") ".tar")) (sha256 (base32 - "1pmki8hdjjikxlvip3pzi350bln3gcimr27yjf0xfwjvnp5hh9nc")))) + "04nsndwcf0dimgc2p1yzzrymc36amzdnjg0158nxplmjkzdp28gy")))) (build-system emacs-build-system) ;; We use 'emacs' because AUCTeX requires dbus at compile time ;; ('emacs-minimal' does not provide dbus). From cd4d96b808c8e5f80303fe0a373229fd3c5b1ecf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 23:57:53 +0100 Subject: [PATCH 51/58] gnu: emacs-spinner: Update to 1.7.3. * gnu/packages/emacs.scm (emacs-spinner): Update to 1.7.3. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 70f26fa38d..68264813dc 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2807,14 +2807,14 @@ be removed from the front. This type of data structure is sometimes called an (define-public emacs-spinner (package (name "emacs-spinner") - (version "1.7.1") + (version "1.7.3") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/spinner-" version ".el")) (sha256 (base32 - "1fmwzdih0kbyvs8bn38mpm4sbs2mikqy2vdykfy9g20wpa8vb681")))) + "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd")))) (build-system emacs-build-system) (home-page "https://github.com/Malabarba/spinner.el") (synopsis "Emacs mode-line spinner for operations in progress") From a5dee1ac3a8a9a964da0da3ec204839737ea3ccd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Jan 2017 23:58:35 +0100 Subject: [PATCH 52/58] gnu: emacs-seq: Update to 2.19. * gnu/packages/emacs.scm (emacs-seq): Update to 2.19. --- 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 68264813dc..d3e64c04f6 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2826,14 +2826,14 @@ ongoing operations.") (define-public emacs-seq (package (name "emacs-seq") - (version "2.15") + (version "2.19") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar")) (sha256 (base32 - "09wi1765bmn7i8fg6ajjfaxgs4ipc42d58zx2fdqpidrdg9c7q73")))) + "11hb7is6a4h1lscjcfrzh576j0g3m5yjydn16s6x5bxp5gsr6zha")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/seq.html") (synopsis "Sequence manipulation functions for Emacs") From 5e217a8b4b47fc8914f623db5acf96d0e5099c2c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jan 2017 01:11:57 +0100 Subject: [PATCH 53/58] gnu: python-debian: Fix URL. * gnu/packages/python.scm (python-debian)[source]: Use 'pypi-uri'. --- gnu/packages/python.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a26b4b3825..0ec3a664d3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7026,9 +7026,7 @@ serve the same purpose: provide Python bindings for libmagic."))) (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/python-debian/python-debian-" - version ".tar.gz")) + (uri (pypi-uri name version)) (sha256 (base32 "0i15f0xzx679sd0ldq2sls9pnnps9fv6vhqvnv9dzf4qhma42i0y")))) From ad91454281506869f571e225a0ba7d09303f51a1 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 24 Jan 2017 23:14:21 -0500 Subject: [PATCH 54/58] gnu: icecat: Add more fixes from upstream mozilla-esr45. Includes fixes for CVE-2017-5373, CVE-2017-5375, CVE-2017-5376, CVE-2017-5378, CVE-2017-5380, CVE-2017-5383, CVE-2017-5386, CVE-2017-5390, and CVE-2017-5396. * gnu/packages/gnuzilla.scm (icecat)[source]: Rename existing patches to reflect newly announced CVE assignments. Add selected fixes from upstream mozilla-esr45. --- gnu/packages/gnuzilla.scm | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 678dc4e27f..7758f27f8b 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -342,28 +342,38 @@ standards.") (mozilla-patch "icecat-CVE-2016-9893-pt7.patch" "9b78ab1e6d07" "19ib6bp96xk000ll40b8qxvizkncyzclz2rsb9w5fa42qs9978ff") (mozilla-patch "icecat-CVE-2016-9893-pt8.patch" "78ebf9c9dfb0" "1shgr4rk6r2zxr1qqk1j3qnnqzqxnbi093qhlrfh8q5q1ivqf6k1") (mozilla-patch "icecat-CVE-2016-9893-pt9.patch" "a46a9f16823c" "0dwkyz3kcqnfcbhbfh2lss7s0yh87rgzb871qxx3x4ynyqph9mnz") - (mozilla-patch "icecat-bug-1311687.patch" "6bc7cc7a33a6" "1wggcqv84n8mp7xps7hy4rwy61fkh45imfqzc0b46s3w5hyhypn2") + (mozilla-patch "icecat-CVE-2017-5376.patch" "6bc7cc7a33a6" "1wggcqv84n8mp7xps7hy4rwy61fkh45imfqzc0b46s3w5hyhypn2") (mozilla-patch "icecat-CVE-2016-9893-pt10.patch" "778f65148b40" "0j2a153sk0654vv2lnxjib4lwml3mlqn6vs46c2pp82iba8nyfrm") (mozilla-patch "icecat-CVE-2016-9895.patch" "94bd2b43c766" "10h0qpr6m9cqyqxxnkbb6mzb3cagavzlynkxgd7a4izyq1bv28rk") (mozilla-patch "icecat-CVE-2016-9893-pt11.patch" "893de7431d51" "11gyik8mwipl6ipypkvdq519pw7ccbg0g0bnvxb7271n44cqqcq5") - (mozilla-patch "icecat-bug-1323338.patch" "b21dee058b2c" "005khpimffqzas7slajid4dd2c15nyk7rjk6fsps87bgnx0gx0s4") + (mozilla-patch "icecat-CVE-2017-5383-pt1.patch" "b21dee058b2c" "005khpimffqzas7slajid4dd2c15nyk7rjk6fsps87bgnx0gx0s4") (mozilla-patch "icecat-bug-1258410-pt1.patch" "cd23c5d74be8" "1myzkpzg6pmjacjz8az06m9kz84in1mwsiaw5sgx47pm02598wm5") (mozilla-patch "icecat-bug-1258410-pt2.patch" "b83594617d15" "171cqflc9jh47az96im1whwhyq4ayicspqsczsmn2x5ll9lqw5fq") - (mozilla-patch "icecat-bug-1322107.patch" "d6c6f5e4e641" "10x9f46ylm2q3i669hj1csd6agdm8w7xa0iln691z8ayg2hcrxdz") - (mozilla-patch "icecat-bug-1285833.patch" "122f5fbfc563" "05pp2f4pg4j8a8pdgjhfrc8g2chhkhsarn9n8sbyag0fy3ig1cvd") - (mozilla-patch "icecat-bug-1297361.patch" "297c675ddadc" "1jc1b5i69vq1fvz3qfnnv52c9cj17bjbmfyzmqlw5ywna0wfvabz") - (mozilla-patch "icecat-bug-1325877.patch" "3cff736e3bb6" "1nxqwnl9zksvkfkmis7zica4xrhwfndjyy2sxc1dvrh9rshk1swq") - (mozilla-patch "icecat-bug-1285960.patch" "2732280adabc" "0zrpq3aybaw2yy38vs6883a4nw01x4kxn3lfqn9yhcgjvngmmyia") - (mozilla-patch "icecat-bug-1325938.patch" "81c9fdbd96e8" "0scv1zyi4vbsjdsyj4w70n5jd50baq0dzw3qpxqf1n69nfb9k214") - (mozilla-patch "icecat-bug-1322420.patch" "a386ca6a3013" "1m1scz2pxzmg9wya8is5dcr3mgvkx3g1xlykgigmw2mqs5zcdg9s") - (mozilla-patch "icecat-bug-1328834.patch" "0521b0e4707c" "1mv057p4hcvapibpbd9apryag19aiqdzafc6df2angl97m4mcbjx") + (mozilla-patch "icecat-CVE-2017-5380.patch" "d6c6f5e4e641" "10x9f46ylm2q3i669hj1csd6agdm8w7xa0iln691z8ayg2hcrxdz") + (mozilla-patch "icecat-CVE-2017-5373-pt1.patch" "122f5fbfc563" "05pp2f4pg4j8a8pdgjhfrc8g2chhkhsarn9n8sbyag0fy3ig1cvd") + (mozilla-patch "icecat-CVE-2017-5390.patch" "297c675ddadc" "1jc1b5i69vq1fvz3qfnnv52c9cj17bjbmfyzmqlw5ywna0wfvabz") + (mozilla-patch "icecat-CVE-2017-5373-pt2.patch" "3cff736e3bb6" "1nxqwnl9zksvkfkmis7zica4xrhwfndjyy2sxc1dvrh9rshk1swq") + (mozilla-patch "icecat-CVE-2017-5373-pt3.patch" "2732280adabc" "0zrpq3aybaw2yy38vs6883a4nw01x4kxn3lfqn9yhcgjvngmmyia") + (mozilla-patch "icecat-CVE-2017-5373-pt4.patch" "81c9fdbd96e8" "0scv1zyi4vbsjdsyj4w70n5jd50baq0dzw3qpxqf1n69nfb9k214") + (mozilla-patch "icecat-CVE-2017-5373-pt5.patch" "a386ca6a3013" "1m1scz2pxzmg9wya8is5dcr3mgvkx3g1xlykgigmw2mqs5zcdg9s") + (mozilla-patch "icecat-CVE-2017-5373-pt6.patch" "0521b0e4707c" "1mv057p4hcvapibpbd9apryag19aiqdzafc6df2angl97m4mcbjx") (mozilla-patch "icecat-bug-1290037.patch" "bf0dd9ae6807" "02iw5ngsvvij95arnn69a744d6si27g1x41ixg16l51dbn900b3r") (mozilla-patch "icecat-bug-1322666.patch" "576f03e362c5" "0m88xs0jwhzx2lg12cvimxjknp7rpsvvhxxblhiqqjwnqip0pyc0") (mozilla-patch "icecat-bug-1304266.patch" "4d82e7314a72" "1rrrw4rw0xv7c2myiypcqh1fk47rk3fvic79zh6m04bl3knclr1r") - (mozilla-patch "icecat-bug-1322315.patch" "0617dd4b444d" "1ipags2cl2p521pm0qx110h5di2mgif6h1r3g8l9b0rc5m9b1y2j") - (mozilla-patch "icecat-bug-1325200.patch" "ead08c2a6c57" "1nnnwdr7411xpz6n9j869g6sz447cq6xsmds9cw6d24iprcinp5m") - (mozilla-patch "icecat-bug-1312001.patch" "c5e67d41bdd0" "05kwn5zv381lsiw9vbzm8fh6s1lddx47l8f4pwg487h9dj7vbdfq") - (mozilla-patch "icecat-bug-1331058.patch" "2ce94f2ea797" "1yrnjqpafjns68z99s1m6jins3agid7c1z3v9qgk5xzfcddl31pn"))) + (mozilla-patch "icecat-CVE-2017-5373-pt7.patch" "0617dd4b444d" "1ipags2cl2p521pm0qx110h5di2mgif6h1r3g8l9b0rc5m9b1y2j") + (mozilla-patch "icecat-CVE-2017-5375.patch" "ead08c2a6c57" "1nnnwdr7411xpz6n9j869g6sz447cq6xsmds9cw6d24iprcinp5m") + (mozilla-patch "icecat-CVE-2017-5378-pt1.patch" "c5e67d41bdd0" "05kwn5zv381lsiw9vbzm8fh6s1lddx47l8f4pwg487h9dj7vbdfq") + (mozilla-patch "icecat-CVE-2017-5373-pt8.patch" "2ce94f2ea797" "1yrnjqpafjns68z99s1m6jins3agid7c1z3v9qgk5xzfcddl31pn") + (mozilla-patch "icecat-CVE-2017-5373-pt9.patch" "e4ac8a66d3db" "1ggbh6nk005plm7kvp7qznbnlpidqkipxc5hlaqbjc3m0z9mypzl") + (mozilla-patch "icecat-CVE-2017-5386.patch" "8c171b75a0c6" "1cplkgwkhqvb62q7s8cya2drjdswnlicv5d9a60fxvnp6m7a3z02") + (mozilla-patch "icecat-CVE-2017-5383-pt2.patch" "79a31d8153bf" "0dzwk2hc741c0jr8xya4y8q59lk8mcgnvfdrdk0vzq1gby16b9zi") + (mozilla-patch "icecat-CVE-2017-5378-pt2.patch" "747085a1cd93" "0rpc8hl0jka4akdjnlwya4x9v4pqa1r5vc4pkmxsgvqpp2vkq4m2") + (mozilla-patch "icecat-bug-1331606.patch" "f0329536734b" "1br5shyfwp009y623wgjq60vhcp5k5zpzkgy4r3s5yrm5xyfcprf") + (mozilla-patch "icecat-bug-1328642.patch" "237c1ca6e035" "0808g5j17var6wv6ivj08i43fwkga9abmmgmz5w3hb8mhajkjw58") + (mozilla-patch "icecat-CVE-2017-5396.patch" "910ad552cbf5" "1qss3gc6n4myzwvwanc09xvyiq3hwhixn2xvpbk9xkfz2apdlfa6") + (mozilla-patch "icecat-bug-1312827.patch" "5c894801eb1e" "03xyjwx9rfx5w7q6wq9if83fcfgrlvvbyxpsawzxxgybnizyy7g8") + (mozilla-patch "icecat-bug-1191841.patch" "83ee87b301bd" "1kd9z4py372a2f1jg7jwvwri43vipf0k7lcvsg7b0cqr5p70zwcg") + (mozilla-patch "icecat-bug-1234317.patch" "eb6f18dbfe8d" "1dh3263fvg3dxav09g6fn41ax4q1jmwp5fk6pl6shn16mrfha1qq"))) (modules '((guix build utils))) (snippet '(begin From 482fda2729c3e76999892cb8f9a0391a7bd37119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 25 Jan 2017 10:20:02 +0100 Subject: [PATCH 55/58] grafts: Do not pull derivation outputs not depended on. Fixes . Previously, the grafting derivation of, say, brdf-explorer would pull in qt:doc even though brdf-explorer depends only on qt:out, not qt:doc. * guix/grafts.scm (with-cache): Use 'vhash-assoc' and 'vhash-cons' instead of 'vhash-assq' and 'vhash-consq'. (cumulative-grafts): Pass #:outputs to 'graft-derivation/shallow'. Use OUTPUTS instead of (derivation-output-names drv). (graft-derivation): Add #:outputs parameter; pass it to 'cumulative-grafts'. * tests/grafts.scm (make-derivation-input): New variable. ("graft-derivation, replaced derivation has multiple outputs"): Make sure P2:zzz is not part of the outputs of P3D. ("graft-derivation with #:outputs") ("graft-derivation, unused outputs not depended on"): New tests. --- guix/grafts.scm | 25 +++++----- tests/grafts.scm | 118 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 128 insertions(+), 15 deletions(-) diff --git a/guix/grafts.scm b/guix/grafts.scm index e44fc0544f..11885db226 100644 --- a/guix/grafts.scm +++ b/guix/grafts.scm @@ -216,14 +216,14 @@ available." (define-syntax-rule (with-cache key exp ...) "Cache the value of monadic expression EXP under KEY." (mlet %state-monad ((cache (current-state))) - (match (vhash-assq key cache) + (match (vhash-assoc key cache) ((_ . result) ;cache hit (return result)) (#f ;cache miss (mlet %state-monad ((result (begin exp ...)) (cache (current-state))) (mbegin %state-monad - (set-current-state (vhash-consq key result cache)) + (set-current-state (vhash-cons key result cache)) (return result))))))) (define* (cumulative-grafts store drv grafts @@ -264,7 +264,7 @@ derivations to the corresponding set of grafts." #:system system)) (state-return grafts)))) - (with-cache drv + (with-cache (cons (derivation-file-name drv) outputs) (match (non-self-references references drv outputs) (() ;no dependencies (return grafts)) @@ -281,29 +281,27 @@ derivations to the corresponding set of grafts." ;; applicable to DRV, to avoid creating several identical ;; grafted variants of DRV. (let* ((new (graft-derivation/shallow store drv applicable + #:outputs outputs #:guile guile #:system system)) - - ;; Replace references to any of the outputs of DRV, - ;; even if that's more than needed. This is so that - ;; the result refers only to the outputs of NEW and - ;; not to those of DRV. (grafts (append (map (lambda (output) (graft (origin drv) (origin-output output) (replacement new) (replacement-output output))) - (derivation-output-names drv)) + outputs) grafts))) (return grafts)))))))))) (define* (graft-derivation store drv grafts - #:key (guile (%guile-for-build)) + #:key + (guile (%guile-for-build)) + (outputs (derivation-output-names drv)) (system (%current-system))) - "Applied GRAFTS to DRV and all its dependencies, recursively. That is, if -GRAFTS apply only indirectly to DRV, graft the dependencies of DRV, and graft -DRV itself to refer to those grafted dependencies." + "Apply GRAFTS to the OUTPUTS of DRV and all their dependencies, recursively. +That is, if GRAFTS apply only indirectly to DRV, graft the dependencies of +DRV, and graft DRV itself to refer to those grafted dependencies." ;; First, pre-compute the dependency tree of the outputs of DRV. Do this ;; upfront to have as much parallelism as possible when querying substitute @@ -313,6 +311,7 @@ DRV itself to refer to those grafted dependencies." (match (run-with-state (cumulative-grafts store drv grafts references + #:outputs outputs #:guile guile #:system system) vlist-null) ;the initial cache ((first . rest) diff --git a/tests/grafts.scm b/tests/grafts.scm index 6454a03b1f..08f05c0f75 100644 --- a/tests/grafts.scm +++ b/tests/grafts.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +43,9 @@ (define %mkdir (bootstrap-binary "mkdir")) +(define make-derivation-input + (@@ (guix derivations) make-derivation-input)) + (test-begin "grafts") @@ -241,7 +244,18 @@ (replacement p1r) (replacement-output "ONE"))) (p3d (graft-derivation %store p3 (list p1g)))) - (and (build-derivations %store (list p3d)) + + (and (not (find (lambda (input) + ;; INPUT should not be P2:zzz since the result of P3 + ;; does not depend on it. See + ;; . + (and (string=? (derivation-input-path input) + (derivation-file-name p2)) + (member "zzz" + (derivation-input-sub-derivations input)))) + (derivation-inputs p3d))) + + (build-derivations %store (list p3d)) (let ((out (derivation->output-path (pk 'p2d p3d)))) (and (not (string=? (readlink out) (derivation->output-path p2 "aaa"))) @@ -249,6 +263,106 @@ (readlink (string-append out "/two"))) (file-exists? (string-append out "/one/replacement"))))))) +(test-assert "graft-derivation with #:outputs" + ;; Call 'graft-derivation' with a narrowed set of outputs passed as + ;; #:outputs. + (let* ((p1 (build-expression->derivation + %store "p1" + `(let ((one (assoc-ref %outputs "one")) + (two (assoc-ref %outputs "two"))) + (mkdir one) + (mkdir two)) + #:outputs '("one" "two"))) + (p1r (build-expression->derivation + %store "P1" + `(let ((other (assoc-ref %outputs "ONE"))) + (mkdir other) + (call-with-output-file (string-append other "/replacement") + (const #t))) + #:outputs '("ONE"))) + (p2 (build-expression->derivation + %store "p2" + `(let ((aaa (assoc-ref %outputs "aaa")) + (zzz (assoc-ref %outputs "zzz"))) + (mkdir zzz) (chdir zzz) + (mkdir aaa) (chdir aaa) + (symlink (assoc-ref %build-inputs "p1:two") "two")) + #:outputs '("aaa" "zzz") + #:inputs `(("p1:one" ,p1 "one") + ("p1:two" ,p1 "two")))) + (p1g (graft + (origin p1) + (origin-output "one") + (replacement p1r) + (replacement-output "ONE"))) + (p2g (graft-derivation %store p2 (list p1g) + #:outputs '("aaa")))) + ;; P2:aaa depends on P1:two, but not on P1:one, so nothing to graft. + (eq? p2g p2))) + +(test-equal "graft-derivation, unused outputs not depended on" + '("aaa") + + ;; Make sure that the result of 'graft-derivation' does not pull outputs + ;; that are irrelevant to the grafting process. See + ;; . + (let* ((p1 (build-expression->derivation + %store "p1" + `(let ((one (assoc-ref %outputs "one")) + (two (assoc-ref %outputs "two"))) + (mkdir one) + (mkdir two)) + #:outputs '("one" "two"))) + (p1r (build-expression->derivation + %store "P1" + `(let ((other (assoc-ref %outputs "ONE"))) + (mkdir other) + (call-with-output-file (string-append other "/replacement") + (const #t))) + #:outputs '("ONE"))) + (p2 (build-expression->derivation + %store "p2" + `(let ((aaa (assoc-ref %outputs "aaa")) + (zzz (assoc-ref %outputs "zzz"))) + (mkdir zzz) (chdir zzz) + (symlink (assoc-ref %build-inputs "p1:two") "two") + (mkdir aaa) (chdir aaa) + (symlink (assoc-ref %build-inputs "p1:one") "one")) + #:outputs '("aaa" "zzz") + #:inputs `(("p1:one" ,p1 "one") + ("p1:two" ,p1 "two")))) + (p1g (graft + (origin p1) + (origin-output "one") + (replacement p1r) + (replacement-output "ONE"))) + (p2g (graft-derivation %store p2 (list p1g) + #:outputs '("aaa")))) + + ;; Here P2G should only depend on P1:one and P1R:one; it must not depend + ;; on P1:two or P1R:two since these are unused in the grafting process. + (and (not (eq? p2g p2)) + (let* ((inputs (derivation-inputs p2g)) + (match-input (lambda (drv) + (lambda (input) + (string=? (derivation-input-path input) + (derivation-file-name drv))))) + (p1-inputs (filter (match-input p1) inputs)) + (p1r-inputs (filter (match-input p1r) inputs)) + (p2-inputs (filter (match-input p2) inputs))) + (and (equal? p1-inputs + (list (make-derivation-input (derivation-file-name p1) + '("one")))) + (equal? p1r-inputs + (list + (make-derivation-input (derivation-file-name p1r) + '("ONE")))) + (equal? p2-inputs + (list + (make-derivation-input (derivation-file-name p2) + '("aaa")))) + (derivation-output-names p2g)))))) + (test-assert "graft-derivation, renaming" ; (let* ((build `(begin (use-modules (guix build utils)) From e57bd0bed86caac304e5f37c5653e6b13858c7c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Tue, 24 Jan 2017 23:50:33 +0100 Subject: [PATCH 56/58] services: Fix 'mkdir-p' in activation scripts. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/cups.scm (%cups-activation): Import (guix build utils). * gnu/services/mail.scm (opensmtpd-activation): Idem. * gnu/services/networking.scm (ntp-service-activation): Idem. * gnu/services/spice.scm (spice-vdagent-activation): Idem. * gnu/services/ssh.scm (openssh-activation): Idem. (dropbear-activation): Idem. * gnu/services/vpn.scm (%openvpn-activation): Idem. Signed-off-by: Ludovic Courtès --- gnu/services/cups.scm | 2 ++ gnu/services/mail.scm | 2 ++ gnu/services/networking.scm | 2 ++ gnu/services/spice.scm | 5 ++++- gnu/services/ssh.scm | 3 +++ gnu/services/vpn.scm | 5 ++++- 6 files changed, 17 insertions(+), 2 deletions(-) diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm index df1843e438..70b858479a 100644 --- a/gnu/services/cups.scm +++ b/gnu/services/cups.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Andy Wingo +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -811,6 +812,7 @@ IPP specifications.") ;; Activation gexp. (with-imported-modules '((guix build utils)) #~(begin + (use-modules (guix build utils)) (define (mkdir-p/perms directory owner perms) (mkdir-p directory) (chown "/var/run/cups" (passwd:uid owner) (passwd:gid owner)) diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index c1381405d8..30b1672d33 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Andy Wingo +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -1601,6 +1602,7 @@ accept from local for any relay (($ package config-file) (let ((smtpd (file-append package "/sbin/smtpd"))) #~(begin + (use-modules (guix build utils)) ;; Create mbox and spool directories. (mkdir-p "/var/mail") (mkdir-p "/var/spool/smtpd") diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 8f136f0dc1..f7412ff29e 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 John Darrington +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -332,6 +333,7 @@ restrict -6 ::1\n")) "Return the activation gexp for CONFIG." (with-imported-modules '((guix build utils)) #~(begin + (use-modules (guix build utils)) (define %user (getpw "ntpd")) diff --git a/gnu/services/spice.scm b/gnu/services/spice.scm index bd0a538346..2f9dfd57ac 100644 --- a/gnu/services/spice.scm +++ b/gnu/services/spice.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,7 +36,9 @@ (define (spice-vdagent-activation config) "Return the activation gexp for CONFIG." - #~(mkdir-p "/var/run/spice-vdagentd")) + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/var/run/spice-vdagentd"))) (define (spice-vdagent-shepherd-service config) "Return a for spice-vdagentd with CONFIG." diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 6da612da67..58c35c9f5e 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 Julien Lepiller +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -292,6 +293,7 @@ The other options should be self-descriptive." (define (openssh-activation config) "Return the activation GEXP for CONFIG." #~(begin + (use-modules (guix build utils)) (mkdir-p "/etc/ssh") (mkdir-p (dirname #$(openssh-configuration-pid-file config))) @@ -388,6 +390,7 @@ The other options should be self-descriptive." (define (dropbear-activation config) "Return the activation gexp for CONFIG." #~(begin + (use-modules (guix build utils)) (mkdir-p "/etc/dropbear"))) (define (dropbear-shepherd-service config) diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index f577e0851e..844a11b3d3 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Julien Lepiller +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -444,7 +445,9 @@ is trunkated and rewritten every minute.") (shell (file-append shadow "/sbin/nologin"))))) (define %openvpn-activation - #~(mkdir-p "/var/run/openvpn")) + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/var/run/openvpn"))) (define openvpn-server-service-type (service-type (name 'openvpn-server) From 0ca575f3bbb6de07469d5bf285ff1a8878a74e1e Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Wed, 25 Jan 2017 07:24:20 +0000 Subject: [PATCH 57/58] container: Pass through TERM when calling exec. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/scripts/container/exec.scm (guix-container-exec): Capture the value of the TERM environment variable, and pass it through to the container. This means some applications now work where they did not before (e.g. htop), and others have more functionality, providing that the terminal was capable of enabling that functionality in the first place. Co-authored-by: Ludovic Courtès --- guix/scripts/container/exec.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/guix/scripts/container/exec.scm b/guix/scripts/container/exec.scm index 10e70568cc..d6d267daff 100644 --- a/guix/scripts/container/exec.scm +++ b/guix/scripts/container/exec.scm @@ -74,7 +74,14 @@ and the other containing arguments for the command to be executed." (let* ((opts (parse-command-line args %options '(()) #:argument-handler handle-argument)) - (pid (assoc-ref opts 'pid))) + (pid (assoc-ref opts 'pid)) + (environment (filter-map (lambda (name) + (let ((value (getenv name))) + (and value (cons name value)))) + ;; Pass through the TERM environment + ;; variable to inform processes about + ;; the capabilities of the terminal. + '("TERM")))) (unless pid (leave (_ "no pid specified~%"))) @@ -89,6 +96,10 @@ and the other containing arguments for the command to be executed." (lambda () (match command ((program . program-args) + (for-each (match-lambda + ((name . value) + (setenv name value))) + environment) (apply execlp program program program-args))))))) (unless (zero? result) (leave (_ "exec failed with status ~d~%") result))))))) From 864042c5c5f845fd3c1ae37c64dc1a672fedef28 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Wed, 25 Jan 2017 08:50:30 +0100 Subject: [PATCH 58/58] gnu: Add stunnel. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/web.scm (stunnel): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/web.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index c8f8c63ecf..67b9797bbb 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2016 Arun Isaac ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright © 2016 Bake Timmons +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -3968,3 +3969,29 @@ useful for users behind restrictive firewalls. As long as Web traffic is allowed, even through a HTTP-only proxy, httptunnel can be combined with other tools like SSH (Secure Shell) to reach the outside world.") (license l:gpl2+))) + +(define-public stunnel + (package + (name "stunnel") + (version "5.39") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.stunnel.org/downloads/stunnel-" + version ".tar.gz")) + (sha256 + (base32 + "1vjdn32iw11zqsygwxbjmqgs4644dk3ql1h8ap890ls6a1x0i318")))) + (build-system gnu-build-system) + (inputs `(("openssl" ,openssl))) + (arguments + `(#:configure-flags + (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl"))))) + (home-page "https://www.stunnel.org") + (synopsis "TLS proxy for clients or servers") + (description "Stunnel is a proxy designed to add TLS encryption +functionality to existing clients and servers without any changes in the +programs' code. Its architecture is optimized for security, portability, and +scalability (including load-balancing), making it suitable for large +deployments.") + (license l:gpl2+)))