diff options
author | Marius Bakke <mbakke@fastmail.com> | 2020-01-12 20:57:38 +0100 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2020-01-12 20:57:38 +0100 |
commit | 8f1ab291bca31e84bec50da4374175367d498a6f (patch) | |
tree | e96a6f7a44382646733ac08ecaccb2f57182f017 | |
parent | f0bce2e08feb157b3d8b5100b1ea26bbbd6141e3 (diff) | |
parent | 2e4bb89354d909b661208b3900abfeaa621a1582 (diff) | |
download | guix-8f1ab291bca31e84bec50da4374175367d498a6f.tar.gz |
Merge branch 'master' into staging
29 files changed, 237 insertions, 310 deletions
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 <ludo@gnu.org> +;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; 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" 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 <ludo@gnu.org> 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 diff --git a/gnu/local.mk b/gnu/local.mk index 33cf439870..9dd67ddd5c 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 \ @@ -1456,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 cf06732e18..2b0e68fdc4 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" @@ -2574,6 +2575,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))) @@ -2673,18 +2675,17 @@ 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) + (arguments + '(#:configure-flags '("--disable-static"))) (home-page "http://www.wavpack.com/") (synopsis "Hybrid lossless audio codec") (description 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) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index e2c244c1a7..2d2827ffee 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: - ;; <https://issues.guix.gnu.org/issue/37371>. - (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 <https://issues.guix.gnu.org/issue/38060>. + ;; + ;; Furthermore, this variant fixes X.509 certificate lookup: + ;; <https://issues.guix.gnu.org/issue/37371>. (package (inherit cmake) (version "3.15.5") @@ -233,7 +225,28 @@ 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)))))) + + (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) +(export cmake/fixed) (define-public emacs-cmake-mode (package 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 <efraim@flashner.co.il> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> -;;; Copyright © 2018 Nicolò Balzarotti <nicolo@nixo.xyz> +;;; Copyright © 2018, 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> @@ -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))) 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 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 <ludo@gnu.org> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (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 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ć <stefanx2ovic@gmail.com> ;;; Copyright © 2019 Reza Alizadeh Majd <r.majd@pantherx.org> ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; ;;; 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") 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 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 <leo@famulari.name> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; ;;; 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) 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 <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014, 2016, 2018 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2017, 2018 Mark H Weaver <mhw@netris.org> @@ -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 <boskovits@gmail.com> ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; 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/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 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/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 <ao2@ao2.it> 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 <string.h> - #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 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<unsigned char>(*cur) < 0x80) ++ if (*cur == '\\' || *cur == '\"' || ++ static_cast<unsigned char>(*cur) < ' ' || ++ static_cast<unsigned char>(*cur) >= 0x80) + return true; + } + return false; 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 <david@wavpack.com> -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", 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 <andreas@enge.fr> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> -;;; Copyright © 2015, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> @@ -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 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")))) 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) 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 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 <ludo@gnu.org> +;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; 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 diff --git a/nix/libstore/gc.cc b/nix/libstore/gc.cc index 29b75aa875..77d7fa2dc7 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; } @@ -419,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); 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", |