From 6e36f1cabdac4f7e306002fe56e84eadd1dfdbbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Jan 2020 11:27:29 +0100 Subject: [PATCH 01/24] deprecation: Add a two-element form for simple aliases. * guix/deprecation.scm (define-deprecated): Add a two-element form for simple aliases: (define-deprecated old new). --- guix/deprecation.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/guix/deprecation.scm b/guix/deprecation.scm index 468b2e9b7b..04d4d4a337 100644 --- a/guix/deprecation.scm +++ b/guix/deprecation.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2019, 2020 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,6 +44,7 @@ "Define a deprecated variable or procedure, along these lines: (define-deprecated foo bar 42) + (define-deprecated old new) (define-deprecated (baz x y) qux (qux y x)) This will write a deprecation warning to GUIX-WARNING-PORT." @@ -73,7 +74,10 @@ This will write a deprecation warning to GUIX-WARNING-PORT." #'(real args (... ...))) (id (identifier? #'id) - #'real)))))))))) + #'real))))))) + ((_ variable alias) + (identifier? #'alias) + #'(define-deprecated variable alias alias))))) (define-syntax-rule (define-deprecated/alias deprecated replacement) "Define as an alias a deprecated variable, procedure, or macro, along From 9b65dea806431ec8491184c3e89bab457042a68b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Jan 2020 11:28:59 +0100 Subject: [PATCH 02/24] gnu: Use the two-element 'define-deprecated' form where applicable. * gnu/packages/guile.scm (guile-json): Use the two-element 'define-deprecated' form. * gnu/packages/kde.scm (kdevplatform): Likewise. * gnu/packages/mpi.scm (hwloc-2.0): Likewise. * gnu/packages/qt.scm (qt): Likewise. --- gnu/packages/guile.scm | 6 ++---- gnu/packages/kde.scm | 4 ++-- gnu/packages/mpi.scm | 3 +-- gnu/packages/qt.scm | 4 ++-- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 30a72ec62c..bcb8ff1a56 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2014 Cyril Roelandt ;;; Copyright © 2014, 2016, 2018 David Thompson ;;; Copyright © 2014, 2017, 2018 Mark H Weaver @@ -460,9 +460,7 @@ specification. These are the main features: ;; Deprecate the 'guile-json' alias to force the use 'guile-json-1' or ;; 'guile-json-3'. In the future, we may reuse 'guile-json' as an alias for ;; 'guile-json-3'. -(define-deprecated guile-json - guile-json-1 - guile-json-1) +(define-deprecated guile-json guile-json-1) (export guile-json) (define-public guile2.0-json diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 1620cb1b2e..bb5c25014e 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2018 Gábor Boskovits ;;; Copyright © 2019 Nicolas Goaziou ;;; Copyright © 2018, 2019 Hartmut Goebel -;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2019, 2020 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -297,7 +297,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).") (license license:lgpl2.0+))) ;; kdevplatform was merged into kdevelop as of 5.2.x -(define-deprecated kdevplatform kdevelop kdevelop) +(define-deprecated kdevplatform kdevelop) (define-public krita (package diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 55641d8fa1..00e0d12eab 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -159,8 +159,7 @@ bind processes, and much more.") "-1")) #t)))))))) -(define-deprecated hwloc-2.0 'hwloc-2 - hwloc-2) +(define-deprecated hwloc-2.0 hwloc-2) (define-public hwloc ;; The latest stable series of hwloc. diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 7c2cb0af21..514577678e 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2015 Sou Bunnbu -;;; Copyright © 2015, 2018, 2019 Ludovic Courtès +;;; Copyright © 2015, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Thomas Danckaert @@ -588,7 +588,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") ;; qt used to refer to the monolithic Qt 5.x package -(define-deprecated qt qtbase qtbase) +(define-deprecated qt qtbase) (define-public qtsvg From 0de28f9ef94634f536118acc736a01a8c5ee239d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Jan 2020 11:30:45 +0100 Subject: [PATCH 03/24] gnu: cmake@3.15.5: Apply "cmake-curl-certificates.patch". * gnu/packages/cmake.scm (cmake-3.15.5)[source]: Add 'patches' field. (cmake/fixed): Turn into a deprecated alias for CMAKE-3.15.5. --- gnu/packages/cmake.scm | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index e2c244c1a7..de49f52f2b 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -30,6 +30,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) + #:use-module (guix deprecation) #:use-module (guix build-system gnu) #:use-module (guix build-system emacs) #:use-module (gnu packages) @@ -207,22 +208,13 @@ and workspaces that can be used in the compiler environment of your choice.") (outputs '("out" "doc")) (properties (alist-delete 'hidden? (package-properties cmake-minimal))))) -(define-public cmake/fixed - ;; This is a variant of CMake that fixes X.509 certificate lookup: - ;; . - (package - (inherit cmake) - (version (string-append (package-version cmake) "-1")) - (source (origin - (inherit (package-source cmake)) - (patches - (append (search-patches "cmake-curl-certificates.patch") - (origin-patches (package-source cmake)))))))) - (define-public cmake-3.15.5 ;; CMake 3.15.5 fixes some issues, but declare another version to ;; avoid triggering the rebuild of all CMake-based packages. ;; See . + ;; + ;; Furthermore, this variant fixes X.509 certificate lookup: + ;; . (package (inherit cmake) (version "3.15.5") @@ -233,7 +225,14 @@ and workspaces that can be used in the compiler environment of your choice.") "/cmake-" version ".tar.gz")) (sha256 (base32 - "1d5y8d92axcc6rfqlsxamayfs3fc1vdby91hn5mx1kn02ppprpgv")))))) + "1d5y8d92axcc6rfqlsxamayfs3fc1vdby91hn5mx1kn02ppprpgv")) + (patches + (append (search-patches "cmake-curl-certificates.patch") + (origin-patches (package-source cmake)))))))) + +;; This was cmake@3.15.1 plus "cmake-curl-certificates.patch". +(define-deprecated cmake/fixed cmake-3.15.5) +(export cmake/fixed) (define-public emacs-cmake-mode (package From 79154f0a09ad748839f88120ddd61a0e1e147b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Jan 2020 17:23:31 +0100 Subject: [PATCH 04/24] gnu: cmake@3.15.5: Honor 'SSL_CERT_DIR' and 'SSL_CERT_FILE'. * gnu/packages/cmake.scm (cmake-3.15.5)[native-search-paths]: New field. --- gnu/packages/cmake.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index de49f52f2b..2d2827ffee 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -228,7 +228,21 @@ and workspaces that can be used in the compiler environment of your choice.") "1d5y8d92axcc6rfqlsxamayfs3fc1vdby91hn5mx1kn02ppprpgv")) (patches (append (search-patches "cmake-curl-certificates.patch") - (origin-patches (package-source cmake)))))))) + (origin-patches (package-source cmake)))))) + + (native-search-paths + ;; "cmake-curl-certificates.patch" changes CMake to honor 'SSL_CERT_DIR' + ;; and 'SSL_CERT_FILE', hence these search path entries. + (append (list (search-path-specification + (variable "SSL_CERT_DIR") + (separator #f) ;single entry + (files '("etc/ssl/certs"))) + (search-path-specification + (variable "SSL_CERT_FILE") + (file-type 'regular) + (separator #f) ;single entry + (files '("etc/ssl/certs/ca-certificates.crt")))) + (package-native-search-paths cmake))))) ;; This was cmake@3.15.1 plus "cmake-curl-certificates.patch". (define-deprecated cmake/fixed cmake-3.15.5) From 7033c7692ccbbbad8f7b9952015de071a5588e87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 11 Jan 2020 18:46:23 +0100 Subject: [PATCH 05/24] daemon: Account for deleted store files when deduplication is on. Previously, a store item that is a regular file would not be accounted for in the 'bytesFreed' value computed by 'deletePath' because its 'st_nlink' count would always be >= 2. This commit fixes that. * nix/libutil/util.hh (deletePath): Add optional 'linkThreshold' argument. * nix/libutil/util.cc (_deletePath): Add 'linkThreshold' argument and honor it. Pass it down in recursive call. (deletePath): Add 'linkThreshold' and honor it. * nix/libstore/gc.cc (LocalStore::deleteGarbage): Pass 'linkThreshold' argument to 'deletePath', with a value of 2 when PATH is a store item and deduplication is on. --- nix/libstore/gc.cc | 9 ++++++++- nix/libutil/util.cc | 10 +++++----- nix/libutil/util.hh | 6 ++++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/nix/libstore/gc.cc b/nix/libstore/gc.cc index 29b75aa875..5043963fa2 100644 --- a/nix/libstore/gc.cc +++ b/nix/libstore/gc.cc @@ -392,7 +392,14 @@ bool LocalStore::isActiveTempFile(const GCState & state, void LocalStore::deleteGarbage(GCState & state, const Path & path) { unsigned long long bytesFreed; - deletePath(path, bytesFreed); + + /* When deduplication is on, store items always have at least two links: + the one at PATH, and one in /gnu/store/.links. In that case, increase + bytesFreed when PATH has two or fewer links. */ + size_t linkThreshold = + (settings.autoOptimiseStore && isStorePath(path)) ? 2 : 1; + + deletePath(path, bytesFreed, linkThreshold); state.results.bytesFreed += bytesFreed; } diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc index faba3789df..fb2dfad1f7 100644 --- a/nix/libutil/util.cc +++ b/nix/libutil/util.cc @@ -305,7 +305,7 @@ void writeLine(int fd, string s) } -static void _deletePath(const Path & path, unsigned long long & bytesFreed) +static void _deletePath(const Path & path, unsigned long long & bytesFreed, size_t linkThreshold) { checkInterrupt(); @@ -324,7 +324,7 @@ static void _deletePath(const Path & path, unsigned long long & bytesFreed) struct stat st = lstat(path); #endif - if (!S_ISDIR(st.st_mode) && st.st_nlink == 1) + if (!S_ISDIR(st.st_mode) && st.st_nlink <= linkThreshold) bytesFreed += st.st_size; if (S_ISDIR(st.st_mode)) { @@ -335,7 +335,7 @@ static void _deletePath(const Path & path, unsigned long long & bytesFreed) } for (auto & i : readDirectory(path)) - _deletePath(path + "/" + i.name, bytesFreed); + _deletePath(path + "/" + i.name, bytesFreed, linkThreshold); } #undef st_mode #undef st_size @@ -353,12 +353,12 @@ void deletePath(const Path & path) } -void deletePath(const Path & path, unsigned long long & bytesFreed) +void deletePath(const Path & path, unsigned long long & bytesFreed, size_t linkThreshold) { startNest(nest, lvlDebug, format("recursively deleting path `%1%'") % path); bytesFreed = 0; - _deletePath(path, bytesFreed); + _deletePath(path, bytesFreed, linkThreshold); } diff --git a/nix/libutil/util.hh b/nix/libutil/util.hh index 6a6e07c478..9e3c14bdd4 100644 --- a/nix/libutil/util.hh +++ b/nix/libutil/util.hh @@ -94,10 +94,12 @@ void writeLine(int fd, string s); /* Delete a path; i.e., in the case of a directory, it is deleted recursively. Don't use this at home, kids. The second variant - returns the number of bytes and blocks freed. */ + returns the number of bytes and blocks freed, and 'linkThreshold' denotes + the number of links under which a file is accounted for in 'bytesFreed'. */ void deletePath(const Path & path); -void deletePath(const Path & path, unsigned long long & bytesFreed); +void deletePath(const Path & path, unsigned long long & bytesFreed, + size_t linkThreshold = 1); /* Create a temporary directory. */ Path createTempDir(const Path & tmpRoot = "", const Path & prefix = "nix", From be0fb348b8f9e535510d37cc6b84bec480ef5fa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 11 Jan 2020 22:11:16 +0100 Subject: [PATCH 06/24] daemon: Fix the displayed GC estimated progress. * nix/libstore/gc.cc (LocalStore::deletePathRecursive): Fix computation of 'fraction'. Take 'bytesInvalidated' into account. --- nix/libstore/gc.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/nix/libstore/gc.cc b/nix/libstore/gc.cc index 5043963fa2..77d7fa2dc7 100644 --- a/nix/libstore/gc.cc +++ b/nix/libstore/gc.cc @@ -426,13 +426,14 @@ void LocalStore::deletePathRecursive(GCState & state, const Path & path) } if (state.options.maxFreed != ULLONG_MAX) { - double fraction = state.results.bytesFreed + size - / state.options.maxFreed; + auto freed = state.results.bytesFreed + state.bytesInvalidated; + double fraction = ((double) freed) / (double) state.options.maxFreed; unsigned int percentage = (fraction > 1. ? 1. : fraction) * 100.; printMsg(lvlInfo, format("[%1%%%] deleting '%2%'") % percentage % path); } else { - size_t total = (state.results.bytesFreed + size) / (1024 * 1024); - printMsg(lvlInfo, format("[%1% MiB] deleting '%2%'") % total % path); + auto freed = state.results.bytesFreed + state.bytesInvalidated; + freed /= 1024ULL * 1024ULL; + printMsg(lvlInfo, format("[%1% MiB] deleting '%2%'") % freed % path); } state.results.paths.insert(path); From 58236d301c5266ba22d420149de72e9d135fc387 Mon Sep 17 00:00:00 2001 From: Simon Josefsson Date: Wed, 1 Jan 2020 18:05:47 +0100 Subject: [PATCH 07/24] system: Drop net-tools from %BASE-PACKAGES (replaced by iproute2). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/system.scm (%base-packages): Remove net-tools. Signed-off-by: Ludovic Courtès --- gnu/system.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/system.scm b/gnu/system.scm index 7033671526..01baa248a2 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -574,7 +574,6 @@ of PROVENANCE-SERVICE-TYPE to its services." iw wireless-tools iproute - net-tools ; XXX: remove when Inetutils suffices man-db info-reader ;the standalone Info reader (no Perl) From 489703898380ab1a0db86f82c4861a33bf97b5fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= Date: Sat, 11 Jan 2020 19:11:44 +0100 Subject: [PATCH 08/24] gnu: entr: Fix references to external programs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/entr.scm (entr)[arguments](remove-fhs-file-names): Use 'which' instead of relying on the runtime PATH. Patch /bin/sh too. [inputs]: Add NCURSES. Signed-off-by: Ludovic Courtès --- gnu/packages/entr.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/entr.scm b/gnu/packages/entr.scm index d0111452df..cacb5ab7f5 100644 --- a/gnu/packages/entr.scm +++ b/gnu/packages/entr.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Ludovic Courtès ;;; Copyright © 2019 Ricardo Wurmus ;;; Copyright © 2019 Tobias Geerinckx-Rice +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages entr) + #:use-module (gnu packages ncurses) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) @@ -52,11 +54,13 @@ (invoke "./configure")))) (add-before 'build 'remove-fhs-file-names (lambda _ - ;; Use the tools available in $PATH. (substitute* "entr.c" - (("/bin/cat") "cat") - (("/usr/bin/clear") "clear")) + (("/bin/sh") (which "sh")) + (("/bin/cat") (which "cat")) + (("/usr/bin/clear") (which "clear"))) #t))))) + ;; ncurses provides the `clear' binary + (inputs `(("ncurses" ,ncurses))) (home-page "http://entrproject.org/") (synopsis "Run arbitrary commands when files change") (description From 3065bf8aa20ac1d13d6eb07707ae67ef88f6359f Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Tue, 7 Jan 2020 08:08:30 -0300 Subject: [PATCH 09/24] gnu: timidity++: Add libvorbis as input MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/audio.scm (timidity++)[inputs] Add libvorbis as input Signed-off-by: Ludovic Courtès --- gnu/packages/audio.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index cf06732e18..9312dcc113 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2574,6 +2574,7 @@ Suil currently supports every combination of Gtk, Qt, and X11.") ("flac" ,flac) ("jack" ,jack-1) ("libogg" ,libogg) + ("libvorbis" ,libvorbis) ("speex" ,speex) ("ncurses" ,ncurses) ("freepats" ,freepats))) From 20b49f47e572ef5eca8e75f245b5971bb682dc74 Mon Sep 17 00:00:00 2001 From: nixo Date: Sun, 5 Jan 2020 16:46:01 +0100 Subject: [PATCH 10/24] gnu: Add libolm. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (libolm): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/crypto.scm | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index dd49c12e5b..1c6e759c83 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2018 Efraim Flashner ;;; Copyright © 2018 Arun Isaac ;;; Copyright © 2018 Nicolas Goaziou -;;; Copyright © 2018 Nicolò Balzarotti +;;; Copyright © 2018, 2020 Nicolò Balzarotti ;;; Copyright © 2018 Tim Gesthuizen ;;; Copyright © 2019 Pierre Neidhardt ;;; Copyright © 2019 Tanguy Le Carrour @@ -1040,3 +1040,30 @@ minisign uses a slightly different format to store secret keys. Minisign signatures include trusted comments in addition to untrusted comments. Trusted comments are signed, thus verified, before being displayed.") (license license:isc))) + +(define-public libolm + (package + (name "libolm") + (version "3.1.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.matrix.org/git/olm") + (commit version))) + (sha256 + (base32 + "06s7rw4a9vn35wzz7chxn54mp0sjgbpv2bzz9lq0g4hnzw33cjbi")) + (file-name (git-file-name name version)))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "ctest" "build/tests")))))) + (build-system cmake-build-system) + (synopsis "Implementation of the olm and megolm cryptographic ratchets") + (description "The libolm library implements the Double Ratchet +cryptographic ratchet. It is written in C and C++11, and exposed as a C +API.") + (home-page "https://matrix.org/docs/projects/other/olm/") + (license license:asl2.0))) From 30d83f445b70ebce7f01eaa91c8f418ff0a98321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 11 Jan 2020 23:53:37 +0100 Subject: [PATCH 11/24] doc: Update htmlxref.cnf. * doc/htmlxref.cnf: Update from Texinfo. Add entries for "mes", "guix.ru", and "guix.zh_CN". --- doc/htmlxref.cnf | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf index 8daa4a5c19..960f0f08fe 100644 --- a/doc/htmlxref.cnf +++ b/doc/htmlxref.cnf @@ -1,9 +1,9 @@ # htmlxref.cnf - reference file for free Texinfo manuals on the web. # Modified by Ludovic Courtès for the GNU Guix manual. -htmlxrefversion=2019-05-04.20; # UTC +htmlxrefversion=2020-01-11.22; # UTC -# Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2019 Free Software Foundation, Inc. +# Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2019, 2020 Free Software Foundation, Inc. # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright @@ -68,12 +68,12 @@ autogen node ${GS}/autoconf/manual/html_node/ automake mono ${GS}/automake/manual/automake.html automake node ${GS}/automake/manual/html_node/ -avl node http://www.stanford.edu/~blp/avl/libavl.html/ +avl node http://adtinfo.org/libavl.html/ bash mono ${GS}/bash/manual/bash.html bash node ${GS}/bash/manual/html_node/ -BINUTILS = http://sourceware.org/binutils/docs +BINUTILS = https://sourceware.org/binutils/docs binutils node ${BINUTILS}/binutils/ as node ${BINUTILS}/as/ bfd node ${BINUTILS}/bfd/ @@ -110,13 +110,15 @@ cpio node ${GS}/cpio/manual/html_node/ cssc node ${GS}/cssc/manual/ -#cvs cannot be handled here; see http://ximbiot.com/cvs/manual. +CVS = ${GS}/trans-coord/manual +cvs mono ${CVS}/cvs/cvs.html +cvs node ${CVS}/cvs/html_node/ ddd mono ${GS}/ddd/manual/html_mono/ddd.html ddrescue mono ${GS}/ddrescue/manual/ddrescue_manual.html -DICO = http://puszcza.gnu.org.ua/software/dico/manual +DICO = https://puszcza.gnu.org.ua/software/dico/manual dico mono ${DICO}/dico.html dico chapter ${DICO}/html_chapter/ dico section ${DICO}/html_section/ @@ -167,6 +169,9 @@ emacs node ${EMACS}/html_node/emacs/ eshell mono ${EMACS}/html_mono/eshell.html eshell node ${EMACS}/html_node/eshell/ # + eww mono ${EMACS}/html_mono/eww.html + eww node ${EMACS}/html_node/eww/ + # flymake mono ${EMACS}/html_mono/flymake.html flymake node ${EMACS}/html_node/flymake/ # @@ -234,8 +239,7 @@ find node ${GS}/findutils/manual/html_node/find_html findutils mono ${GS}/findutils/manual/html_mono/find.html findutils node ${GS}/findutils/manual/html_node/find_html -FLEX = http://flex.sourceforge.net -flex node ${FLEX}/manual/ +flex node https://westes.github.io/flex/manual/ gama mono ${GS}/gama/manual/gama.html gama node ${GS}/gama/manual/html_node/ @@ -249,7 +253,7 @@ gawk node ${GAWK}/html_node/ gcal mono ${GS}/gcal/manual/gcal.html gcal node ${GS}/gcal/manual/html_node/ -GCC = http://gcc.gnu.org/onlinedocs +GCC = https://gcc.gnu.org/onlinedocs gcc node ${GCC}/gcc/ cpp node ${GCC}/cpp/ gcj node ${GCC}/gcj/ @@ -265,7 +269,7 @@ gcc node ${GCC}/gcc/ gnat-style node ${GCC}/gnat-style/ libiberty node ${GCC}/libiberty/ -GDB = http://sourceware.org/gdb/current/onlinedocs +GDB = https://sourceware.org/gdb/current/onlinedocs gdb node ${GDB}/gdb/ stabs node ${GDB}/stabs/ @@ -282,13 +286,13 @@ geiser chapter http://geiser.nongnu.org/ gettext mono ${GS}/gettext/manual/gettext.html gettext node ${GS}/gettext/manual/html_node/ -gforth node http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/ +gforth node https://www.complang.tuwien.ac.at/forth/gforth/Docs-html/ global mono ${GS}/global/manual/global.html gmediaserver node ${GS}/gmediaserver/manual/ -gmp node http://www.gmplib.org/manual/ +gmp node https://www.gmplib.org/manual/ gnu-arch node ${GS}/gnu-arch/tutorial/ @@ -311,7 +315,7 @@ gnun node ${GNUN}/gnun/html_node/ web-trans mono ${GNUN}/web-trans/web-trans.html web-trans node ${GNUN}/web-trans/html_node/ -GNUPG = http://www.gnupg.org/documentation/manuals +GNUPG = https://www.gnupg.org/documentation/manuals gnupg node ${GNUPG}/gnupg/ dirmngr node ${GNUPG}/dirmngr/ gcrypt node ${GNUPG}/gcrypt/ @@ -399,6 +403,10 @@ guix.es mono ${GS}/guix/manual/es/guix.html guix.es node ${GS}/guix/manual/es/html_node/ guix.fr mono ${GS}/guix/manual/fr/guix.html guix.fr node ${GS}/guix/manual/fr/html_node/ +guix.ru mono ${GS}/guix/manual/ru/guix.html +guix.ru node ${GS}/guix/manual/ru/html_node/ +guix.zh_CN mono ${GS}/guix/manual/zh-cn/guix.html +guix.zh_CN node ${GS}/guix/manual/zh-cn/html_node/ guix mono ${GS}/guix/manual/en/guix.html guix node ${GS}/guix/manual/en/html_node/ @@ -499,6 +507,9 @@ METAEXCHANGE = http://ftp.gwdg.de/pub/gnu2/iwfmdh/doc/texinfo iwf_mh node ${METAEXCHANGE}/iwf_mh.html scantest node ${METAEXCHANGE}/scantest.html +mes mono ${GS}/mes/manual/mes.html +mes node ${GS}/mes/manual/html_node/ + MIT_SCHEME = ${GS}/mit-scheme/documentation mit-scheme-ref node ${MIT_SCHEME}/mit-scheme-ref/ mit-scheme-user node ${MIT_SCHEME}/mit-scheme-user/ @@ -515,9 +526,9 @@ mpfr mono http://www.mpfr.org/mpfr-current/mpfr.html mtools mono ${GS}/mtools/manual/mtools.html -myserver node http://www.myserverproject.net/documentation/ +myserver mono http://www.myserverproject.net/doc.php -nano mono http://www.nano-editor.org/dist/latest/nano.html +nano mono https://www.nano-editor.org/dist/latest/nano.html nettle chapter http://www.lysator.liu.se/~nisse/nettle/nettle.html @@ -550,7 +561,7 @@ pspp node ${GS}/pspp/manual/html_node/ pyconfigure mono ${GS}/pyconfigure/manual/pyconfigure.html pyconfigure node ${GS}/pyconfigure/manual/html_node/ -R = http://cran.r-project.org/doc/manuals +R = https://cran.r-project.org/doc/manuals R-intro mono ${R}/R-intro.html R-lang mono ${R}/R-lang.html R-exts mono ${R}/R-exts.html @@ -656,7 +667,7 @@ xboard node ${GS}/xboard/manual/html_node/ # emacs-page # Free TeX-related Texinfo manuals on tug.org. -T = http://tug.org/texinfohtml +T = https://tug.org/texinfohtml dvipng mono ${T}/dvipng.html dvips mono ${T}/dvips.html From f9e0488c5002d3a102243583e408fa5f54b826eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 12 Jan 2020 00:14:53 +0100 Subject: [PATCH 12/24] doc: Make sure 'htmlxref.cnf' is honored. Fixes . Reported by Tobias Geerinckx-Rice . * doc/build.scm (html-manual)[build]: Copy 'htmlxref.cnf' to the current directory so that 'makeinfo' honors it. --- doc/build.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/build.scm b/doc/build.scm index e171b539e6..8d5b58962a 100644 --- a/doc/build.scm +++ b/doc/build.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2019, 2020 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -410,6 +410,11 @@ makeinfo OPTIONS." (setvbuf (current-output-port) 'line) (setvbuf (current-error-port) 'line) + ;; 'makeinfo' looks for "htmlxref.cnf" in the current directory, so + ;; copy it right here. + (copy-file (string-append #$manual-source "/htmlxref.cnf") + "htmlxref.cnf") + (for-each (lambda (language) (let* ((texi (language->texi-file-name language)) (opts `("--html" From 7bd000d104f79f2b1c51c48c9d01f247189f9935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 12 Jan 2020 00:37:51 +0100 Subject: [PATCH 13/24] gnu: Fix license of several GNOME packages. * gnu/packages/gnome.scm (gnome-color-manager)[license]: Change to GPL2+. (gnome-online-miners)[license]: Likewise. (gnome-menus)[license]: Change to LGPL2.0+. --- gnu/packages/gnome.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index efc6113a03..2e5f129a07 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -298,7 +298,7 @@ features to enable users to create their discs easily and quickly.") it easy to manage, install and generate color profiles in the GNOME desktop.") (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager") - (license license:gpl2))) + (license license:gpl2+))) (define-public gnome-online-miners (package @@ -333,7 +333,7 @@ in the GNOME desktop.") go through your online content and index them locally in Tracker. It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.") (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners") - (license license:gpl2))) + (license license:gpl2+))) (define-public libmediaart (package @@ -385,7 +385,7 @@ extraction, and lookup for applications on the desktop.") (description "GNOME Menus contains the libgnome-menu library, the layout configuration files for the GNOME menu, as well as a simple menu editor.") (home-page "https://gitlab.gnome.org/GNOME/gnome-menus") - (license license:gpl2))) + (license license:lgpl2.0+))) (define-public deja-dup (package From d75a0cd98649c610c8c6ed05011233a49af156e9 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sat, 11 Jan 2020 02:53:22 -0500 Subject: [PATCH 14/24] gnu: audacity: Update to 2.3.3. * gnu/packages/audio.scm (audacity): Update to 2.3.3. [source](snippet): Remove bundled "lame". [arguments]: Adjust "use-upstream-headers" phase. * gnu/packages/patches/audacity-build-with-system-portaudio.patch: Adjust patch. --- gnu/packages/audio.scm | 9 +++++---- .../audacity-build-with-system-portaudio.patch | 16 +++++++--------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 9312dcc113..247a415307 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -332,7 +332,7 @@ engineers, musicians, soundtrack editors and composers.") (define-public audacity (package (name "audacity") - (version "2.3.2") + (version "2.3.3") (source (origin (method git-fetch) @@ -342,7 +342,7 @@ engineers, musicians, soundtrack editors and composers.") (file-name (git-file-name name version)) (sha256 (base32 - "08w96124vv8k4myd4vifq73ningq6404x889wvg2sk016kc4dfv1")) + "0707fsnrl4vjalsi21w4blwgz024qhd0w8rdd5j5vpxf5lyk2rbk")) (patches (search-patches "audacity-build-with-system-portaudio.patch")) (modules '((guix build utils))) (snippet @@ -351,7 +351,7 @@ engineers, musicians, soundtrack editors and composers.") (for-each (lambda (dir) (delete-file-recursively (string-append "lib-src/" dir))) - '("expat" "ffmpeg" "libflac" "libid3tag" "libmad" "libogg" + '("expat" "ffmpeg" "lame" "libflac" "libid3tag" "libmad" "libogg" "libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2" "portaudio-v19" "portmidi" "soundtouch" "twolame" ;; FIXME: these libraries have not been packaged yet: @@ -451,7 +451,8 @@ engineers, musicians, soundtrack editors and composers.") (lambda* (#:key inputs #:allow-other-keys) (substitute* '("src/NoteTrack.cpp" "src/AudioIO.cpp" - "src/AudioIO.h") + "src/AudioIO.h" + "src/AudioIOBase.cpp") (("../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h") (("../lib-src/portmidi/porttime/porttime.h") "porttime.h")) (substitute* "src/prefs/MidiIOPrefs.cpp" diff --git a/gnu/packages/patches/audacity-build-with-system-portaudio.patch b/gnu/packages/patches/audacity-build-with-system-portaudio.patch index 3b73a6c930..05325a1493 100644 --- a/gnu/packages/patches/audacity-build-with-system-portaudio.patch +++ b/gnu/packages/patches/audacity-build-with-system-portaudio.patch @@ -1,6 +1,8 @@ Downloaded from here: https://sourceforge.net/p/audacity/mailman/message/36106562/ +Modified for use on later versions of audacity. + >From 5f9482a191359f2c477763a36d2c865c5f186602 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Tue, 7 Nov 2017 13:06:33 +0100 @@ -31,16 +33,16 @@ over the code where it's used. 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp -index a78bd1cab..d5481838d 100644 +index 48715869c..bb4bf472c 100644 --- a/src/AudioIO.cpp +++ b/src/AudioIO.cpp -@@ -452,8 +452,23 @@ writing audio. +@@ -480,9 +480,22 @@ time warp info and AudioIOListener and whether the playback is looped. #define ROUND(x) (int) ((x)+0.5) //#include - #include "../lib-src/portmidi/pm_common/portmidi.h" + // #include "../lib-src/portmidi/pm_common/portmidi.h" - #include "../lib-src/portaudio-v19/src/common/pa_util.h" #include "NoteTrack.h" -+ + #endif +PaTime PaUtil_GetTime( void ) +{ +#ifdef HAVE_MACH_ABSOLUTE_TIME @@ -55,10 +57,6 @@ index a78bd1cab..d5481838d 100644 + return (PaTime) tv.tv_usec * 1e-6 + tv.tv_sec; +#endif +} -+ - #endif #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT --- -2.15.0 - + #define LOWER_BOUND 0.0 From 6b8f7c397aa9c8b3f078153b1b6a90db3bb0b79e Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sun, 12 Jan 2020 14:29:41 +0100 Subject: [PATCH 15/24] build: asdf-build-system: Improve reproducibility. * guix/build/asdf-build-system.scm (copy-files-to-output): Reset timestamps of source files before compiling. --- guix/build/asdf-build-system.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm index 1be2b3c5f0..f3f4b49bcf 100644 --- a/guix/build/asdf-build-system.scm +++ b/guix/build/asdf-build-system.scm @@ -79,6 +79,15 @@ valid." (let ((source (getcwd)) (target (source-directory out name)) (system-path (string-append out %system-install-prefix))) + ;; SBCL keeps the modification time of the source file in the compiled + ;; file, and the source files might just have been patched by a custom + ;; phase. Therefore we reset the modification time of all the source + ;; files before compiling. + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files source #:directories? #t)) (copy-recursively source target #:keep-mtime? #t) (mkdir-p system-path) (for-each From 8dc2af3ba541141d8320e860cec31090d5b69dc0 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sun, 12 Jan 2020 11:40:22 +0100 Subject: [PATCH 16/24] gnu: sbcl-trivial-backtrace: Fix build reproducibility. * gnu/packages/lisp.scm (sbcl-trivial-backtrace)[arguments]: Add 'delete-test-results' phase. --- gnu/packages/lisp-xyz.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 8d9cf53526..cffd43cfc7 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -3376,6 +3376,19 @@ client and server.") (build-system asdf-build-system/sbcl) (inputs `(("sbcl-lift" ,sbcl-lift))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'check 'delete-test-results + (lambda* (#:key outputs #:allow-other-keys) + (let ((test-results (string-append (assoc-ref outputs "out") + "/share/common-lisp/" + (%lisp-type) "-source" + "/trivial-backtrace" + "/test-results"))) + (when (file-exists? test-results) + (delete-file-recursively test-results))) + #t))))) (home-page "https://common-lisp.net/project/trivial-backtrace/") (synopsis "Portable simple API to work with backtraces in Common Lisp") (description From cfd0fd9b2feff644dae596381937d7c3dbfcb1f5 Mon Sep 17 00:00:00 2001 From: Brett Gilio Date: Sun, 12 Jan 2020 13:23:48 -0600 Subject: [PATCH 17/24] gnu: emacs-telega: Update to 0.5.4-3. * gnu/packages/emacs-xyz.scm (emacs-telega): Update to 0.5.4-3. This change reflects several bug fixes that allows for better integration with the latest changes provided by `tdlib` 1.5.4 -- 1.6.0. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 0559f0c7cc..f91088351f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -20422,8 +20422,8 @@ fish-completion. It can be used in both Eshell and M-x shell.") ;; This package has versions newer than indicated on MELPA. ;; Get the current version from `telega-version` in telega.el. ;; or by running M-x telega-version. - (let ((commit "9bfb637b2e71f5f293debd35abd627a064faf8ef") - (revision "2") + (let ((commit "4497a3c19d9806eb9edfe13d326d6d9cbb895f64") + (revision "3") (version "0.5.4")) (package (name "emacs-telega") @@ -20436,7 +20436,7 @@ fish-completion. It can be used in both Eshell and M-x shell.") (commit commit))) (sha256 (base32 - "06v8i3862n5kf2lnxii8vp9g8cq5ql51kr8yxh7l1wccsidri67a")) + "1g0gbbgs8rbcip6kqjxdmnsjlq0ixgknb0qcda7siaha9gd7fjh2")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments From 7dadffff8dec4cd4756e45ea60992de73dac4fc8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 12 Jan 2020 01:37:36 +0100 Subject: [PATCH 18/24] gnu: chez-scheme: Remove obsolete snippet. * gnu/packages/chez.scm (chez-scheme)[source](modules, snippet): Remove. --- gnu/packages/chez.scm | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 6f6b5a3948..2b9868f902 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -73,14 +73,7 @@ (commit (string-append "v" version)))) (sha256 (base32 "1hagrqdp649n2g0wq2a9gfnz7mjcjakkw7ziplbj3db412bb7kx5")) - (file-name (git-file-name name version)) - (modules '((guix build utils))) - (snippet - ;; Fix compilation with glibc >= 2.26, which removed xlocale.h. - '(begin - (substitute* "c/expeditor.c" - (("xlocale\\.h") "locale.h")) - #t)))) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) From 11f87d635ce73f7d69ed4b1bdca77df1a7406eb5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 12 Jan 2020 18:46:40 +0100 Subject: [PATCH 19/24] gnu: jsoncpp: Fix test failure on armhf-linux and aarch64-linux. * gnu/packages/patches/jsoncpp-fix-inverted-case.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/serialization.scm (jsoncpp)[source](patches): New field. --- gnu/local.mk | 1 + .../patches/jsoncpp-fix-inverted-case.patch | 22 +++++++++++++++++++ gnu/packages/serialization.scm | 1 + 3 files changed, 24 insertions(+) create mode 100644 gnu/packages/patches/jsoncpp-fix-inverted-case.patch diff --git a/gnu/local.mk b/gnu/local.mk index 33cf439870..aa61799f06 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1030,6 +1030,7 @@ dist_patch_DATA = \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \ %D%/packages/patches/jfsutils-add-sysmacros.patch \ %D%/packages/patches/jfsutils-include-systypes.patch \ + %D%/packages/patches/jsoncpp-fix-inverted-case.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch \ %D%/packages/patches/libvirt-create-machine-cgroup.patch \ diff --git a/gnu/packages/patches/jsoncpp-fix-inverted-case.patch b/gnu/packages/patches/jsoncpp-fix-inverted-case.patch new file mode 100644 index 0000000000..e4897de1b8 --- /dev/null +++ b/gnu/packages/patches/jsoncpp-fix-inverted-case.patch @@ -0,0 +1,22 @@ +This patch fixes a bug and related test failure on platforms where 'char' +is unsigned. + +Taken from upstream: +https://github.com/open-source-parsers/jsoncpp/commit/f11611c8785082ead760494cba06196f14a06dcb + +diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp +index 8e06cca2..56195dc1 100644 +--- a/src/lib_json/json_writer.cpp ++++ b/src/lib_json/json_writer.cpp +@@ -178,8 +178,9 @@ static bool isAnyCharRequiredQuoting(char const* s, size_t n) { + + char const* const end = s + n; + for (char const* cur = s; cur < end; ++cur) { +- if (*cur == '\\' || *cur == '\"' || *cur < ' ' || +- static_cast(*cur) < 0x80) ++ if (*cur == '\\' || *cur == '\"' || ++ static_cast(*cur) < ' ' || ++ static_cast(*cur) >= 0x80) + return true; + } + return false; diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index cf80237f11..72cc70e3c4 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -290,6 +290,7 @@ that implements both the msgpack and msgpack-rpc specifications.") (method git-fetch) (uri (git-reference (url home-page) (commit version))) (file-name (git-file-name name version)) + (patches (search-patches "jsoncpp-fix-inverted-case.patch")) (sha256 (base32 "037d1b1qdmn3rksmn1j71j26bv4hkjv7sn7da261k853xb5899sg")))) From 638c45eda8ee77a3a4c25a1ec3df2efa5d2776df Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 12 Jan 2020 19:10:27 +0100 Subject: [PATCH 20/24] gnu: wavpack: Update to 5.2.0. * gnu/packages/patches/wavpack-CVE-2018-6767.patch, gnu/packages/patches/wavpack-CVE-2018-7253.patch, gnu/packages/patches/wavpack-CVE-2018-7254.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/audio.scm (wavpack): Update to 5.2.0. [source](patches): Remove. --- gnu/local.mk | 3 - gnu/packages/audio.scm | 9 +- .../patches/wavpack-CVE-2018-6767.patch | 119 ------------------ .../patches/wavpack-CVE-2018-7253.patch | 29 ----- .../patches/wavpack-CVE-2018-7254.patch | 62 --------- 5 files changed, 3 insertions(+), 219 deletions(-) delete mode 100644 gnu/packages/patches/wavpack-CVE-2018-6767.patch delete mode 100644 gnu/packages/patches/wavpack-CVE-2018-7253.patch delete mode 100644 gnu/packages/patches/wavpack-CVE-2018-7254.patch diff --git a/gnu/local.mk b/gnu/local.mk index aa61799f06..9dd67ddd5c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1457,9 +1457,6 @@ dist_patch_DATA = \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ - %D%/packages/patches/wavpack-CVE-2018-6767.patch \ - %D%/packages/patches/wavpack-CVE-2018-7253.patch \ - %D%/packages/patches/wavpack-CVE-2018-7254.patch \ %D%/packages/patches/weasyprint-library-paths.patch \ %D%/packages/patches/websocketpp-fix-for-boost-1.70.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 247a415307..1d2df21dc0 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2675,17 +2675,14 @@ stretching and pitch scaling of audio. This package contains the library.") (define-public wavpack (package (name "wavpack") - (version "5.1.0") + (version "5.2.0") (source (origin (method url-fetch) (uri (string-append "http://www.wavpack.com/" - name "-" version ".tar.bz2")) - (patches (search-patches "wavpack-CVE-2018-6767.patch" - "wavpack-CVE-2018-7253.patch" - "wavpack-CVE-2018-7254.patch")) + "wavpack-" version ".tar.xz")) (sha256 (base32 - "0i19c6krc0p9krwrqy9s5xahaafigqzxcn31piidmlaqadyn4f8r")))) + "1qvpvfx30kvrkw7y1g6r8xj109wszg1z0qmkfm17wf3flb7v3rbp")))) (build-system gnu-build-system) (home-page "http://www.wavpack.com/") (synopsis "Hybrid lossless audio codec") diff --git a/gnu/packages/patches/wavpack-CVE-2018-6767.patch b/gnu/packages/patches/wavpack-CVE-2018-6767.patch deleted file mode 100644 index f49a8f0fd6..0000000000 --- a/gnu/packages/patches/wavpack-CVE-2018-6767.patch +++ /dev/null @@ -1,119 +0,0 @@ -Fix CVE-2018-6767: -https://nvd.nist.gov/vuln/detail/CVE-2018-6767 -https://security-tracker.debian.org/tracker/CVE-2018-6767 - -Patch copied from upstream source repository: -https://github.com/dbry/WavPack/commit/d5bf76b5a88d044a1be1d5656698e3ba737167e5 - -From d5bf76b5a88d044a1be1d5656698e3ba737167e5 Mon Sep 17 00:00:00 2001 -From: David Bryant -Date: Sun, 4 Feb 2018 11:28:15 -0800 -Subject: [PATCH] issue #27, do not overwrite stack on corrupt RF64 file - ---- - cli/riff.c | 39 ++++++++++++++++++++++++++++++++------- - 1 file changed, 32 insertions(+), 7 deletions(-) - -diff --git a/cli/riff.c b/cli/riff.c -index 8b1af45..de98c1e 100644 ---- a/cli/riff.c -+++ b/cli/riff.c -@@ -42,6 +42,7 @@ typedef struct { - - #pragma pack(pop) - -+#define CS64ChunkFormat "4D" - #define DS64ChunkFormat "DDDL" - - #define WAVPACK_NO_ERROR 0 -@@ -101,13 +102,13 @@ int ParseRiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack - - if (!strncmp (chunk_header.ckID, "ds64", 4)) { - if (chunk_header.ckSize < sizeof (DS64Chunk) || -- !DoReadFile (infile, &ds64_chunk, chunk_header.ckSize, &bcount) || -- bcount != chunk_header.ckSize) { -+ !DoReadFile (infile, &ds64_chunk, sizeof (DS64Chunk), &bcount) || -+ bcount != sizeof (DS64Chunk)) { - error_line ("%s is not a valid .WAV file!", infilename); - return WAVPACK_SOFT_ERROR; - } - else if (!(config->qmode & QMODE_NO_STORE_WRAPPER) && -- !WavpackAddWrapper (wpc, &ds64_chunk, chunk_header.ckSize)) { -+ !WavpackAddWrapper (wpc, &ds64_chunk, sizeof (DS64Chunk))) { - error_line ("%s", WavpackGetErrorMessage (wpc)); - return WAVPACK_SOFT_ERROR; - } -@@ -315,10 +316,11 @@ int ParseRiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack - - int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, int qmode) - { -- int do_rf64 = 0, write_junk = 1; -+ int do_rf64 = 0, write_junk = 1, table_length = 0; - ChunkHeader ds64hdr, datahdr, fmthdr; - RiffChunkHeader riffhdr; - DS64Chunk ds64_chunk; -+ CS64Chunk cs64_chunk; - JunkChunk junkchunk; - WaveHeader wavhdr; - uint32_t bcount; -@@ -380,6 +382,7 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, - strncpy (riffhdr.formType, "WAVE", sizeof (riffhdr.formType)); - total_riff_bytes = sizeof (riffhdr) + wavhdrsize + sizeof (datahdr) + ((total_data_bytes + 1) & ~(int64_t)1); - if (do_rf64) total_riff_bytes += sizeof (ds64hdr) + sizeof (ds64_chunk); -+ total_riff_bytes += table_length * sizeof (CS64Chunk); - if (write_junk) total_riff_bytes += sizeof (junkchunk); - strncpy (fmthdr.ckID, "fmt ", sizeof (fmthdr.ckID)); - strncpy (datahdr.ckID, "data", sizeof (datahdr.ckID)); -@@ -394,11 +397,12 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, - - if (do_rf64) { - strncpy (ds64hdr.ckID, "ds64", sizeof (ds64hdr.ckID)); -- ds64hdr.ckSize = sizeof (ds64_chunk); -+ ds64hdr.ckSize = sizeof (ds64_chunk) + (table_length * sizeof (CS64Chunk)); - CLEAR (ds64_chunk); - ds64_chunk.riffSize64 = total_riff_bytes; - ds64_chunk.dataSize64 = total_data_bytes; - ds64_chunk.sampleCount64 = total_samples; -+ ds64_chunk.tableLength = table_length; - riffhdr.ckSize = (uint32_t) -1; - datahdr.ckSize = (uint32_t) -1; - WavpackNativeToLittleEndian (&ds64hdr, ChunkHeaderFormat); -@@ -409,6 +413,14 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, - datahdr.ckSize = (uint32_t) total_data_bytes; - } - -+ // this "table" is just a dummy placeholder for testing (normally not written) -+ -+ if (table_length) { -+ strncpy (cs64_chunk.ckID, "dmmy", sizeof (cs64_chunk.ckID)); -+ cs64_chunk.chunkSize64 = 12345678; -+ WavpackNativeToLittleEndian (&cs64_chunk, CS64ChunkFormat); -+ } -+ - // write the RIFF chunks up to just before the data starts - - WavpackNativeToLittleEndian (&riffhdr, ChunkHeaderFormat); -@@ -418,8 +430,21 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, - - if (!DoWriteFile (outfile, &riffhdr, sizeof (riffhdr), &bcount) || bcount != sizeof (riffhdr) || - (do_rf64 && (!DoWriteFile (outfile, &ds64hdr, sizeof (ds64hdr), &bcount) || bcount != sizeof (ds64hdr))) || -- (do_rf64 && (!DoWriteFile (outfile, &ds64_chunk, sizeof (ds64_chunk), &bcount) || bcount != sizeof (ds64_chunk))) || -- (write_junk && (!DoWriteFile (outfile, &junkchunk, sizeof (junkchunk), &bcount) || bcount != sizeof (junkchunk))) || -+ (do_rf64 && (!DoWriteFile (outfile, &ds64_chunk, sizeof (ds64_chunk), &bcount) || bcount != sizeof (ds64_chunk)))) { -+ error_line ("can't write .WAV data, disk probably full!"); -+ return FALSE; -+ } -+ -+ // again, this is normally not written except for testing -+ -+ while (table_length--) -+ if (!DoWriteFile (outfile, &cs64_chunk, sizeof (cs64_chunk), &bcount) || bcount != sizeof (cs64_chunk)) { -+ error_line ("can't write .WAV data, disk probably full!"); -+ return FALSE; -+ } -+ -+ -+ if ((write_junk && (!DoWriteFile (outfile, &junkchunk, sizeof (junkchunk), &bcount) || bcount != sizeof (junkchunk))) || - !DoWriteFile (outfile, &fmthdr, sizeof (fmthdr), &bcount) || bcount != sizeof (fmthdr) || - !DoWriteFile (outfile, &wavhdr, wavhdrsize, &bcount) || bcount != wavhdrsize || - !DoWriteFile (outfile, &datahdr, sizeof (datahdr), &bcount) || bcount != sizeof (datahdr)) { diff --git a/gnu/packages/patches/wavpack-CVE-2018-7253.patch b/gnu/packages/patches/wavpack-CVE-2018-7253.patch deleted file mode 100644 index 651755afd0..0000000000 --- a/gnu/packages/patches/wavpack-CVE-2018-7253.patch +++ /dev/null @@ -1,29 +0,0 @@ -Fix CVE-2018-7253: -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7253 - -Copied from upstream: -https://github.com/dbry/WavPack/commit/36a24c7881427d2e1e4dc1cef58f19eee0d13aec - -diff --git a/cli/dsdiff.c b/cli/dsdiff.c -index 410dc1c..c016df9 100644 ---- a/cli/dsdiff.c -+++ b/cli/dsdiff.c -@@ -153,7 +153,17 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa - error_line ("dsdiff file version = 0x%08x", version); - } - else if (!strncmp (dff_chunk_header.ckID, "PROP", 4)) { -- char *prop_chunk = malloc ((size_t) dff_chunk_header.ckDataSize); -+ char *prop_chunk; -+ -+ if (dff_chunk_header.ckDataSize < 4 || dff_chunk_header.ckDataSize > 1024) { -+ error_line ("%s is not a valid .DFF file!", infilename); -+ return WAVPACK_SOFT_ERROR; -+ } -+ -+ if (debug_logging_mode) -+ error_line ("got PROP chunk of %d bytes total", (int) dff_chunk_header.ckDataSize); -+ -+ prop_chunk = malloc ((size_t) dff_chunk_header.ckDataSize); - - if (!DoReadFile (infile, prop_chunk, (uint32_t) dff_chunk_header.ckDataSize, &bcount) || - bcount != dff_chunk_header.ckDataSize) { diff --git a/gnu/packages/patches/wavpack-CVE-2018-7254.patch b/gnu/packages/patches/wavpack-CVE-2018-7254.patch deleted file mode 100644 index 61db296ec8..0000000000 --- a/gnu/packages/patches/wavpack-CVE-2018-7254.patch +++ /dev/null @@ -1,62 +0,0 @@ -Fix CVE-2018-7254: -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7254 - -Copied from upstream: -https://github.com/dbry/WavPack/commit/8e3fe45a7bac31d9a3b558ae0079e2d92a04799e - -diff --git a/cli/caff.c b/cli/caff.c -index ae57c4b..6248a71 100644 ---- a/cli/caff.c -+++ b/cli/caff.c -@@ -89,8 +89,8 @@ typedef struct - - #define CAFChannelDescriptionFormat "LLLLL" - --static const char TMH_full [] = { 1,2,3,13,9,10,5,6,12,14,15,16,17,9,4,18,7,8,19,20,21 }; --static const char TMH_std [] = { 1,2,3,11,8,9,5,6,10,12,13,14,15,7,4,16 }; -+static const char TMH_full [] = { 1,2,3,13,9,10,5,6,12,14,15,16,17,9,4,18,7,8,19,20,21,0 }; -+static const char TMH_std [] = { 1,2,3,11,8,9,5,6,10,12,13,14,15,7,4,16,0 }; - - static struct { - uint32_t mChannelLayoutTag; // Core Audio layout, 100 - 146 in high word, num channels in low word -@@ -274,10 +274,19 @@ int ParseCaffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack - } - } - else if (!strncmp (caf_chunk_header.mChunkType, "chan", 4)) { -- CAFChannelLayout *caf_channel_layout = malloc ((size_t) caf_chunk_header.mChunkSize); -+ CAFChannelLayout *caf_channel_layout; - -- if (caf_chunk_header.mChunkSize < sizeof (CAFChannelLayout) || -- !DoReadFile (infile, caf_channel_layout, (uint32_t) caf_chunk_header.mChunkSize, &bcount) || -+ if (caf_chunk_header.mChunkSize < sizeof (CAFChannelLayout) || caf_chunk_header.mChunkSize > 1024) { -+ error_line ("this .CAF file has an invalid 'chan' chunk!"); -+ return WAVPACK_SOFT_ERROR; -+ } -+ -+ if (debug_logging_mode) -+ error_line ("'chan' chunk is %d bytes", (int) caf_chunk_header.mChunkSize); -+ -+ caf_channel_layout = malloc ((size_t) caf_chunk_header.mChunkSize); -+ -+ if (!DoReadFile (infile, caf_channel_layout, (uint32_t) caf_chunk_header.mChunkSize, &bcount) || - bcount != caf_chunk_header.mChunkSize) { - error_line ("%s is not a valid .CAF file!", infilename); - free (caf_channel_layout); -@@ -495,8 +504,15 @@ int ParseCaffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack - } - else { // just copy unknown chunks to output file - -- int bytes_to_copy = (uint32_t) caf_chunk_header.mChunkSize; -- char *buff = malloc (bytes_to_copy); -+ uint32_t bytes_to_copy = (uint32_t) caf_chunk_header.mChunkSize; -+ char *buff; -+ -+ if (caf_chunk_header.mChunkSize < 0 || caf_chunk_header.mChunkSize > 1048576) { -+ error_line ("%s is not a valid .CAF file!", infilename); -+ return WAVPACK_SOFT_ERROR; -+ } -+ -+ buff = malloc (bytes_to_copy); - - if (debug_logging_mode) - error_line ("extra unknown chunk \"%c%c%c%c\" of %d bytes", From 08b7a278bcd2d450db112fbb785197cf83f2bd06 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 12 Jan 2020 19:10:43 +0100 Subject: [PATCH 21/24] gnu: wavpack: Do not build the static library. * gnu/packages/audio.scm (wavpack)[arguments]: New field. --- gnu/packages/audio.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 1d2df21dc0..2b0e68fdc4 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2684,6 +2684,8 @@ stretching and pitch scaling of audio. This package contains the library.") (base32 "1qvpvfx30kvrkw7y1g6r8xj109wszg1z0qmkfm17wf3flb7v3rbp")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (home-page "http://www.wavpack.com/") (synopsis "Hybrid lossless audio codec") (description From cc1b2b3e1366d254c653deb0af6687bcfb6f0ec1 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 12 Jan 2020 19:13:03 +0100 Subject: [PATCH 22/24] gnu: gst-plugins-base: Do not propagate Orc on armhf systems. * gnu/packages/gstreamer.scm (gst-plugins-base)[propagated-inputs]: Conditionally add ORC. --- gnu/packages/gstreamer.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 323e3ccfee..63b4179bc6 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2016, 2018 Leo Famulari ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2018 Tobias Geerinckx-Rice -;;; Copyright © 2019 Marius Bakke +;;; Copyright © 2019, 2020 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -168,7 +168,14 @@ This package provides the core library and elements.") (propagated-inputs `(("glib" ,glib) ;required by gstreamer-sdp-1.0.pc ("gstreamer" ,gstreamer) ;required by gstreamer-plugins-base-1.0.pc - ("orc" ,orc))) ;required by gstreamer-audio-1.0.pc + + ;; XXX: Do not enable Orc optimizations on ARM systems because + ;; it leads to two test failures. + ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/683 + ,@(if (string-prefix? "arm" (or (%current-target-system) + (%current-system))) + '() + `(("orc" ,orc))))) ;required by gstreamer-audio-1.0.pc (inputs `(("cdparanoia" ,cdparanoia) ("pango" ,pango) From 5251669671c013afc70488f2573e230146f9bc22 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 12 Jan 2020 20:22:40 +0100 Subject: [PATCH 23/24] gnu: nss-certs: Update to 3.48. This is a follow-up to commit 90076d2ce17d5b3c44ea663a44b40fa3084ead97. * gnu/packages/certs.scm (nss-certs): Update to 3.48. --- gnu/packages/certs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index f47260121b..18be845eec 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -76,7 +76,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.46.1") + (version "3.48") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -87,7 +87,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "0l9ns44rlkp1bpblplspfbqmyhb8rhvc89y56kqh725rgpny1xrv")))) + "1b7qs1q7jqhw9dvkdznanzhc5dyq4bwx0biywszy3qx4hqm8571z")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs From 2e4bb89354d909b661208b3900abfeaa621a1582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= Date: Sun, 12 Jan 2020 18:03:12 +0100 Subject: [PATCH 24/24] gnu: xdg-utils: Don't use propagated inputs. * gnu/packages/freedesktop.scm (xdg-utils)[propagated-inputs]: Remove. [inputs]: Add awk, coreutils, grep, inetutils, perl-file-mimeinfo and sed. [arguments]: Wrap the installed programs with the specified inputs in PATH. Signed-off-by: Marius Bakke --- gnu/packages/freedesktop.scm | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 7066685dee..ed221439b4 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2018 Stefan Stefanović ;;; Copyright © 2019 Reza Alizadeh Majd ;;; Copyright © 2019 Guillaume Le Vaillant +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,6 +48,7 @@ #:use-module (gnu packages acl) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check) @@ -55,6 +57,7 @@ #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) + #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) @@ -107,12 +110,19 @@ ("libxslt" ,libxslt) ("w3m" ,w3m) ("xmlto" ,xmlto))) - (propagated-inputs - `(("perl-file-mimeinfo" ,perl-file-mimeinfo) ; for mimeopen fallback + (inputs + `(("awk" ,gawk) + ("coreutils" ,coreutils) + ("grep" ,grep) + ("inetutils" ,inetutils) ; xdg-screensaver uses `hostname' + ("perl-file-mimeinfo" ,perl-file-mimeinfo) ; for mimeopen fallback + ("sed" ,sed) ("xprop" ,xprop) ; for Xfce detecting ("xset" ,xset))) ; for xdg-screensaver (arguments `(#:tests? #f ; no check target + #:modules ((srfi srfi-26) + ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-hardcoded-paths @@ -144,6 +154,21 @@ "/manpages/docbook.xsl man"))) (setenv "STYLESHEET" (string-append xsldoc "/html/docbook.xsl")) + #t))) + (add-after 'install 'wrap-executables + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion (string-append out "/bin") + (let ((path-ext + (map (cute string-append <> "/bin") + (cons out + (map (cute assoc-ref inputs <>) + '("awk" "coreutils" "grep" "inetutils" + "perl-file-mimeinfo" "sed" "xprop" + "xset")))))) + (for-each (cute wrap-program <> + `("PATH" ":" prefix ,path-ext)) + (find-files ".")))) #t)))))) (home-page "https://www.freedesktop.org/wiki/Software/xdg-utils/") (synopsis "Freedesktop.org scripts for desktop integration")