From 13f30b546d4bfe6120435e54d5e429a21451a490 Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Sun, 11 Aug 2019 21:25:14 +1000 Subject: [PATCH 001/158] gnu: Add opensubdiv. * gnu/packages/graphics.scm (opensubdiv): New variable. Signed-off-by: Leo Famulari --- gnu/packages/graphics.scm | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index bc3a418e99..3290d99ede 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2018 Alex Kost ;;; Copyright © 2018 Kei Kebreau ;;; Copyright © 2019 Mark H Weaver +;;; Copyright © 2019 Carlo Zancanaro ;;; ;;; This file is part of GNU Guix. ;;; @@ -971,3 +972,47 @@ your terminal. It comes bundled with predefined styles: look. The result can be uploaded on any web server without additional requirements.") (license license:gpl2+))) + +(define-public opensubdiv + (package + (name "opensubdiv") + (version "3_4_0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PixarAnimationStudios/OpenSubdiv") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0cippg6aqc5dlya1cmh3908pwssrg52fwgyylnvz5343yrxmgk12")))) + (build-system cmake-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'set-glew-location + (lambda* (#:key inputs #:allow-other-keys) + (setenv "GLEW_LOCATION" (assoc-ref inputs "glew")) + #t)) + (add-before 'check 'start-xorg-server + (lambda* (#:key inputs #:allow-other-keys) + ;; The test suite requires a running X server. + (system (string-append (assoc-ref inputs "xorg-server") + "/bin/Xvfb :1 &")) + (setenv "DISPLAY" ":1") + #t))))) + (native-inputs + `(("xorg-server" ,xorg-server))) + (inputs + `(("glew" ,glew) + ("libxrandr" ,libxrandr) + ("libxcursor" ,libxcursor) + ("libxinerama" ,libxinerama) + ("libxi" ,libxi) + ("zlib" ,zlib) + ("glfw" ,glfw))) + (home-page "http://graphics.pixar.com/opensubdiv/") + (synopsis "High performance subdivision surface evaluation") + (description "OpenSubdiv is a set of libraries that implement high +performance subdivision surface (subdiv) evaluation on massively parallel CPU +and GPU architectures.") + (license license:asl2.0))) From 588a0a335d09311197352c7f49d5541ef2717cc8 Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Mon, 12 Aug 2019 20:15:11 +1000 Subject: [PATCH 002/158] gnu: Blender: Use opensubdiv. Fixes . * gnu/packages/graphics.scm (blender)[inputs]: Add opensubdiv. [arguments]: Add "-DWITH_OPENSUBDIV=ON" to #:configure-flags. Signed-off-by: Leo Famulari --- gnu/packages/graphics.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 3290d99ede..ee56dae54e 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -105,6 +105,7 @@ "-DWITH_INSTALL_PORTABLE=OFF" "-DWITH_JACK=ON" "-DWITH_MOD_OCEANSIM=ON" + "-DWITH_OPENSUBDIV=ON" "-DWITH_PYTHON_INSTALL=OFF" (string-append "-DPYTHON_LIBRARY=python" ,python-version "m") (string-append "-DPYTHON_LIBPATH=" (assoc-ref %build-inputs "python") @@ -140,6 +141,7 @@ ("libx11" ,libx11) ("openimageio" ,openimageio) ("openexr" ,openexr) + ("opensubdiv" ,opensubdiv) ("ilmbase" ,ilmbase) ("openjpeg" ,openjpeg) ("libjpeg" ,libjpeg) From 4afdb792497472b968d818a3ed942beb70210389 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 13 Aug 2019 22:34:57 -0500 Subject: [PATCH 003/158] gnu: onionshare: Upgrade to 2.1. * gnu/packages/tor.scm (onionshare): Upgrade to 2.1. [arguments]: Rename "tests" phase to "check". Set home directory for tests. Remove reference to closed upstream bug. [inputs]: Add python-pycrypto and python-pysocks. [license]: Remove bsd-3 license; relevant file no longer present. --- gnu/packages/tor.scm | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 8b5e8032ad..c330c853d5 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice -;;; Copyright © 2017, 2018 Eric Bavier +;;; Copyright © 2017, 2018, 2019 Eric Bavier ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2018 Ricardo Wurmus ;;; @@ -39,6 +39,7 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) @@ -157,7 +158,7 @@ networks.") (define-public onionshare (package (name "onionshare") - (version "1.3.2") + (version "2.1") (source (origin (method git-fetch) @@ -166,7 +167,7 @@ networks.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "19zrz9kh7k4pdk4lh3cm0kv02ngdqkrggwma1xdskrrmp2rjkgz7")))) + (base32 "1lx21p12888qnbhsyin4lrnn4xizb39ldk77r71y53hn8mfxi54z")))) (build-system python-build-system) (arguments `(#:phases @@ -184,20 +185,21 @@ networks.") (("/usr") out)) #t))) (delete 'check) - (add-before 'strip 'tests + (add-before 'strip 'check ;; After all the patching we run the tests after installing. - ;; This is also a known issue: - ;; https://github.com/micahflee/onionshare/issues/284 (lambda _ - (invoke "pytest" "test") + (setenv "HOME" "/tmp") ; Some tests need a writable homedir + (invoke "pytest" "tests/") #t))))) (native-inputs `(("python-pytest" ,python-pytest))) (inputs - `(("python-flask" ,python-flask) + `(("python-pycrypto" ,python-pycrypto) + ("python-flask" ,python-flask) ("python-nautilus" ,python-nautilus) ("python-sip" ,python-sip) ("python-stem" ,python-stem) + ("python-pysocks" ,python-pysocks) ("python-pyqt" ,python-pyqt))) (home-page "https://onionshare.org/") (synopsis "Securely and anonymously share files") @@ -209,8 +211,7 @@ using a third party filesharing service. You host the file on your own computer and use a Tor hidden service to make it temporarily accessible over the internet. The other user just needs to use Tor Browser to download the file from you.") - (license (list license:gpl3+ - license:bsd-3)))) ; onionshare/socks.py + (license license:gpl3+))) (define-public nyx (package From 67dac6b8920755cb011047157bb7b4fae4760143 Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Wed, 14 Aug 2019 13:46:53 -0400 Subject: [PATCH 004/158] gnu: mingw: Add x86_64 support. This patch parameterizes previously hard-coded instances of i686-w64-mingw32, adding support for x86_64-w64-mingw32. * gnu/packages/mingw.scm (make-mingw-w64): New procedure. (mingw-w64-i686, mingw-w64-x86_64): New variables. (%mingw-triplet): Remove. (mingw-w64): Update to point to 'mingw-w64-i686'. * gnu/packages/cross-base.scm (cross-gcc): Use 'libc' keyword argument if specified, instead of treating it as a boolean. (native-libc): Return the correct mingw-w64 depending on machine specified in target. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "x86_64-mingw". * gnu/build/cross-toolchain.scm (set-cross-path/mingw): Replace hardcoded 'i686-w64-mingw32' instances with 'target' keyword argument. (cross-gcc-build-phases): Update accordingly; use 'target-mingw?' implementation of target checking and add commentary. * gnu/ci.scm (%cross-targets): Add "x86_64-w64-mingw32". --- gnu/build/cross-toolchain.scm | 15 +++-- gnu/ci.scm | 3 +- gnu/packages/bootstrap.scm | 2 + gnu/packages/cross-base.scm | 6 +- gnu/packages/mingw.scm | 111 ++++++++++++++++++---------------- 5 files changed, 78 insertions(+), 59 deletions(-) diff --git a/gnu/build/cross-toolchain.scm b/gnu/build/cross-toolchain.scm index d430b8afc4..201b36ff7c 100644 --- a/gnu/build/cross-toolchain.scm +++ b/gnu/build/cross-toolchain.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis +;;; Copyright © 2019 Carl Dong ;;; ;;; This file is part of GNU Guix. ;;; @@ -95,7 +96,7 @@ C_INCLUDE_PATH et al." ;; We're building the sans-libc cross-compiler, so nothing to do. #t))) -(define* (set-cross-path/mingw #:key inputs #:allow-other-keys) +(define* (set-cross-path/mingw #:key inputs target #:allow-other-keys) "Add the cross MinGW headers to CROSS_C_*_INCLUDE_PATH, and remove them from C_*INCLUDE_PATH." (let ((libc (assoc-ref inputs "libc")) @@ -112,7 +113,7 @@ C_*INCLUDE_PATH." (if libc (let ((cpath (string-append libc "/include" - ":" libc "/i686-w64-mingw32/include"))) + ":" libc "/" target "/include"))) (for-each (cut setenv <> cpath) %gcc-cross-include-paths)) @@ -142,7 +143,7 @@ C_*INCLUDE_PATH." (when libc (setenv "CROSS_LIBRARY_PATH" (string-append libc "/lib" - ":" libc "/i686-w64-mingw32/lib"))) + ":" libc "/" target "/lib"))) (setenv "CPP" (string-append gcc "/bin/cpp")) (for-each (lambda (var) @@ -168,8 +169,12 @@ C_*INCLUDE_PATH." a target triplet." (modify-phases phases (add-before 'configure 'set-cross-path - (if (string-contains target "mingw") - set-cross-path/mingw + ;; This mingw32 target checking logic should match that of target-mingw? + ;; in (guix utils), but (guix utils) is too large too copy over to the + ;; build side entirely and for now we have no way to select variables to + ;; copy over. See (gnu packages cross-base) for more details. + (if (string-suffix? "-mingw32" target) + (cut set-cross-path/mingw #:target target <...>) set-cross-path)) (add-after 'install 'make-cross-binutils-visible (cut make-cross-binutils-visible #:target target <...>)) diff --git a/gnu/ci.scm b/gnu/ci.scm index 4885870e16..aeebd4f14b 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -130,7 +130,8 @@ SYSTEM." "aarch64-linux-gnu" "powerpc-linux-gnu" "i586-pc-gnu" ;aka. GNU/Hurd - "i686-w64-mingw32")) + "i686-w64-mingw32" + "x86_64-w64-mingw32")) (define %guixsd-supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 5030b815b9..cd99425379 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2019 Carl Dong ;;; ;;; This file is part of GNU Guix. ;;; @@ -187,6 +188,7 @@ return value is ignored." ((string=? system "avr") "no-ld.so") ((string=? system "propeller-elf") "no-ld.so") ((string=? system "i686-mingw") "no-ld.so") + ((string=? system "x86_64-mingw") "no-ld.so") ((string=? system "vc4-elf") "no-ld.so") (else (error "dynamic linker name not known for this system" diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index a0341ebc5d..e277139f25 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2019 Carl Dong ;;; ;;; This file is part of GNU Guix. ;;; @@ -249,7 +250,7 @@ target that libc." (cond ((target-mingw? target) (if libc - `(("libc" ,mingw-w64) + `(("libc" ,libc) ,@inputs) `(("mingw-source" ,(package-source mingw-w64)) ,@inputs))) @@ -509,7 +510,8 @@ and the cross tool chain." #:optional (libc glibc)) (if (target-mingw? target) - mingw-w64 + (let ((machine (substring target 0 (string-index target #\-)))) + (make-mingw-w64 machine)) libc)) (define* (cross-newlib? target diff --git a/gnu/packages/mingw.scm b/gnu/packages/mingw.scm index 3e96f2c475..017f9453ab 100644 --- a/gnu/packages/mingw.scm +++ b/gnu/packages/mingw.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2019 Carl Dong ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,56 +32,56 @@ #:use-module (guix utils) #:use-module (ice-9 match)) -(define %mingw-triplet - "i686-w64-mingw32") - -(define-public mingw-w64 - (package - (name "mingw-w64") - (version "5.0.4") - (source (origin - (method url-fetch) - (uri (string-append - "https://sourceforge.net/projects/mingw-w64/files/mingw-w64/" - "mingw-w64-release/mingw-w64-v" version ".tar.bz2")) - (sha256 - (base32 "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm")) - (patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch")))) - (native-inputs `(("xgcc-core" ,(cross-gcc %mingw-triplet)) - ("xbinutils" ,(cross-binutils %mingw-triplet)))) - (build-system gnu-build-system) - (search-paths - (list (search-path-specification - (variable "CROSS_C_INCLUDE_PATH") - (files '("include" "i686-w64-mingw32/include"))) - (search-path-specification - (variable "CROSS_LIBRARY_PATH") - (files - '("lib" "lib64" "i686-w64-mingw32/lib" "i686-w64-mingw32/lib64"))))) - (arguments - `(#:configure-flags '("--host=i686-w64-mingw32") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'setenv - (lambda* (#:key inputs #:allow-other-keys) - (let ((xgcc-core (assoc-ref inputs "xgcc-core")) - (mingw-headers (string-append (getcwd) "/mingw-w64-headers"))) - (setenv "CPP" - (string-append xgcc-core "/bin/i686-w64-mingw32-cpp")) - (setenv "CROSS_C_INCLUDE_PATH" - (string-append - mingw-headers - ":" mingw-headers "/include" - ":" mingw-headers "/crt" - ":" mingw-headers "/defaults/include" - ":" mingw-headers "/direct-x/include")))))) - #:make-flags (list "DEFS=-DHAVE_CONFIG_H -D__MINGW_HAS_DXSDK=1") - #:tests? #f ; compiles and includes glibc headers - #:strip-binaries? #f)) - (home-page "https://mingw-w64.org") - (synopsis "Minimalist GNU for Windows") - (description - "Minimalist GNU for Windows (@dfn{MinGW}) is a complete software +(define-public (make-mingw-w64 machine) + (let ((triplet (string-append machine "-" "w64-mingw32"))) + (package + (name (string-append "mingw-w64" "-" machine)) + (version "5.0.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://sourceforge.net/projects/mingw-w64/files/mingw-w64/" + "mingw-w64-release/mingw-w64-v" version ".tar.bz2")) + (sha256 + (base32 "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm")) + (patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch")))) + (native-inputs `(("xgcc-core" ,(cross-gcc triplet)) + ("xbinutils" ,(cross-binutils triplet)))) + (build-system gnu-build-system) + (search-paths + (list (search-path-specification + (variable "CROSS_C_INCLUDE_PATH") + (files `("include" ,(string-append triplet "/include")))) + (search-path-specification + (variable "CROSS_LIBRARY_PATH") + (files + `("lib" "lib64" + ,(string-append triplet "/lib") + ,(string-append triplet "/lib64")))))) + (arguments + `(#:configure-flags '(,(string-append "--host=" triplet)) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'setenv + (lambda* (#:key inputs #:allow-other-keys) + (let ((xgcc-core (assoc-ref inputs "xgcc-core")) + (mingw-headers (string-append (getcwd) "/mingw-w64-headers"))) + (setenv "CPP" + (string-append xgcc-core ,(string-append "/bin/" triplet "-cpp"))) + (setenv "CROSS_C_INCLUDE_PATH" + (string-append + mingw-headers + ":" mingw-headers "/include" + ":" mingw-headers "/crt" + ":" mingw-headers "/defaults/include" + ":" mingw-headers "/direct-x/include")))))) + #:make-flags (list "DEFS=-DHAVE_CONFIG_H -D__MINGW_HAS_DXSDK=1") + #:tests? #f ; compiles and includes glibc headers + #:strip-binaries? #f)) + (home-page "https://mingw-w64.org") + (synopsis "Minimalist GNU for Windows") + (description + "Minimalist GNU for Windows (@dfn{MinGW}) is a complete software development environment for creating native Microsoft Windows applications. It includes a set of Windows-specific header files and static import libraries @@ -89,4 +90,12 @@ runtime dynamic-link libraries (@dfn{DLL}s). Mingw-w64 is an advancement of the original mingw.org project and provides several new APIs such as DirectX and DDK, and 64-bit support.") - (license license:fdl1.3+))) + (license license:fdl1.3+)))) + +(define-public mingw-w64-i686 + (make-mingw-w64 "i686")) + +(define-public mingw-w64-x86_64 + (make-mingw-w64 "x86_64")) + +(define-public mingw-w64 mingw-w64-i686) From 2c8e04f13670c8c7ad8c7195c305960dd1905363 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Fri, 9 Aug 2019 14:24:57 -0400 Subject: [PATCH 005/158] remote: Build derivations appropriate for the remote's * gnu/machine/ssh.scm (machine-ssh-configuration): Add 'system' field. (managed-host-remote-eval): Pass 'system' field to 'remote-eval'. (machine-check-building-for-appropriate-system): New variable. (check-deployment-sanity): Add call to 'machine-check-building-for-appropriate-system'. * doc/guix.texi (Invoking guix deploy): Describe new 'system' field. * guix/ssh.scm (remote-system): New variable. * guix/remote.scm (remote-eval): Use result of 'remote-system' when lowering the G-Expression. (remote-eval): Add 'system' keyword argument. (trampoline): Return a rather than a . --- doc/guix.texi | 3 +++ gnu/machine/ssh.scm | 31 +++++++++++++++++++++++++++---- guix/remote.scm | 14 +++++++++----- guix/ssh.scm | 7 +++++++ 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 734206a4b2..a7facf4701 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -25573,6 +25573,9 @@ with an @code{environment} of @code{managed-host-environment-type}. @table @asis @item @code{host-name} +@item @code{system} +The Nix system type describing the architecture of the machine being deployed +to. This should look something like ``x86_64-linux''. @item @code{port} (default: @code{22}) @item @code{user} (default: @code{"root"}) @item @code{identity} (default: @code{#f}) diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm index ba3e33c922..670990a633 100644 --- a/gnu/machine/ssh.scm +++ b/gnu/machine/ssh.scm @@ -36,6 +36,7 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:export (managed-host-environment-type @@ -68,6 +69,7 @@ machine-ssh-configuration? this-machine-ssh-configuration (host-name machine-ssh-configuration-host-name) ; string + (system machine-ssh-configuration-system) ; string (build-locally? machine-ssh-configuration-build-locally? (default #t)) (port machine-ssh-configuration-port ; integer @@ -103,10 +105,12 @@ one from the configuration's parameters if one was not provided." "Internal implementation of 'machine-remote-eval' for MACHINE instances with an environment type of 'managed-host." (maybe-raise-unsupported-configuration-error machine) - (remote-eval exp (machine-ssh-session machine) - #:build-locally? - (machine-ssh-configuration-build-locally? - (machine-configuration machine)))) + (let ((config (machine-configuration machine))) + (remote-eval exp (machine-ssh-session machine) + #:build-locally? + (machine-ssh-configuration-build-locally? config) + #:system + (machine-ssh-configuration-system config)))) ;;; @@ -240,10 +244,29 @@ MACHINE's 'system' declaration do not exist on the machine." device) (return #t))) +(define (machine-check-building-for-appropriate-system machine) + "Raise a '&message' error condition if MACHINE is configured to be built +locally and the 'system' field does not match the '%current-system' reported +by MACHINE." + (let ((config (machine-configuration machine)) + (system (remote-system (machine-ssh-session machine)))) + (when (and (machine-ssh-configuration-build-locally? config) + (not (string= system (machine-ssh-configuration-system config)))) + (raise (condition + (&message + (message (format #f (G_ "incorrect target system \ +('~a' was given, while the system reports that it is '~a')~%") + (machine-ssh-configuration-system config) + system))))))) + (with-monad %store-monad (return #t))) + (define (check-deployment-sanity machine) "Raise a '&message' error condition if it is clear that deploying MACHINE's 'system' declaration would fail." + ;; Order is important here -- an incorrect value for 'system' will cause + ;; invocations of 'remote-eval' to fail. (mbegin %store-monad + (machine-check-building-for-appropriate-system machine) (machine-check-file-system-availability machine) (machine-check-initrd-modules machine))) diff --git a/guix/remote.scm b/guix/remote.scm index 5fecd954e9..bcac64ea7a 100644 --- a/guix/remote.scm +++ b/guix/remote.scm @@ -24,6 +24,7 @@ #:use-module (guix monads) #:use-module (guix modules) #:use-module (guix derivations) + #:use-module (guix utils) #:use-module (ssh popen) #:use-module (srfi srfi-1) #:use-module (ice-9 match) @@ -71,7 +72,7 @@ prerequisites of EXP are already available on the host at SESSION." "Return a \"trampoline\" gexp that evaluates EXP and writes the evaluation result to the current output port using the (guix repl) protocol." (define program - (scheme-file "remote-exp.scm" exp)) + (program-file "remote-exp.scm" exp)) (with-imported-modules (source-module-closure '((guix repl))) #~(begin @@ -89,6 +90,7 @@ result to the current output port using the (guix repl) protocol." (define* (remote-eval exp session #:key (build-locally? #t) + (system (%current-system)) (module-path %load-path) (socket-name "/var/guix/daemon-socket/socket")) "Evaluate EXP, a gexp, on the host at SESSION, an SSH session. Ensure that @@ -96,10 +98,12 @@ all the elements EXP refers to are built and deployed to SESSION beforehand. When BUILD-LOCALLY? is true, said dependencies are built locally and sent to the remote store afterwards; otherwise, dependencies are built directly on the remote store." - (mlet %store-monad ((lowered (lower-gexp (trampoline exp) - #:module-path %load-path)) - (remote -> (connect-to-remote-daemon session - socket-name))) + (mlet* %store-monad ((lowered (lower-gexp (trampoline exp) + #:system system + #:guile-for-build #f + #:module-path %load-path)) + (remote -> (connect-to-remote-daemon session + socket-name))) (define inputs (cons (lowered-gexp-guile lowered) (lowered-gexp-inputs lowered))) diff --git a/guix/ssh.scm b/guix/ssh.scm index ede00133c8..9b5ca68894 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -39,6 +39,7 @@ remote-inferior remote-daemon-channel connect-to-remote-daemon + remote-system send-files retrieve-files retrieve-files* @@ -282,6 +283,12 @@ be read. When RECURSIVE? is true, the closure of FILES is exported." ,(object->string (object->string export)))))) +(define (remote-system session) + "Return the system type as expected by Nix, usually ARCHITECTURE-KERNEL, of +the machine on the other end of SESSION." + (inferior-remote-eval '(begin (use-modules (guix utils)) (%current-system)) + session)) + (define* (send-files local files remote #:key recursive? From 03cbd94d4880f1bb55d98907b48396e5120c1733 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Fri, 9 Aug 2019 14:25:54 -0400 Subject: [PATCH 006/158] remote: Remove '--system' argument. * gnu/services.scm (activation-script): Return a rather than a . * gnu/deploy.scm (guix-deploy): Remove handling for '--system'. (show-help): Remove documentation for '--system'. (%default-options): Remove default setting for 'system'. --- gnu/services.scm | 46 ++++++++++++++++++++--------------------- guix/scripts/deploy.scm | 8 ++----- 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/gnu/services.scm b/gnu/services.scm index 7de78105ff..6ee05d4580 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -430,34 +430,34 @@ ACTIVATION-SCRIPT-TYPE." (define (activation-script gexps) "Return the system's activation script, which evaluates GEXPS." (define actions - (map (cut scheme-file "activate-service" <>) gexps)) + (map (cut program-file "activate-service.scm" <>) gexps)) - (scheme-file "activate" - (with-imported-modules (source-module-closure - '((gnu build activation) - (guix build utils))) - #~(begin - (use-modules (gnu build activation) - (guix build utils)) + (program-file "activate.scm" + (with-imported-modules (source-module-closure + '((gnu build activation) + (guix build utils))) + #~(begin + (use-modules (gnu build activation) + (guix build utils)) - ;; Make sure the user accounting database exists. If it - ;; does not exist, 'setutxent' does not create it and - ;; thus there is no accounting at all. - (close-port (open-file "/var/run/utmpx" "a0")) + ;; Make sure the user accounting database exists. If it + ;; does not exist, 'setutxent' does not create it and + ;; thus there is no accounting at all. + (close-port (open-file "/var/run/utmpx" "a0")) - ;; Same for 'wtmp', which is populated by mingetty et - ;; al. - (mkdir-p "/var/log") - (close-port (open-file "/var/log/wtmp" "a0")) + ;; Same for 'wtmp', which is populated by mingetty et + ;; al. + (mkdir-p "/var/log") + (close-port (open-file "/var/log/wtmp" "a0")) - ;; Set up /run/current-system. Among other things this - ;; sets up locales, which the activation snippets - ;; executed below may expect. - (activate-current-system) + ;; Set up /run/current-system. Among other things this + ;; sets up locales, which the activation snippets + ;; executed below may expect. + (activate-current-system) - ;; Run the services' activation snippets. - ;; TODO: Use 'load-compiled'. - (for-each primitive-load '#$actions))))) + ;; Run the services' activation snippets. + ;; TODO: Use 'load-compiled'. + (for-each primitive-load '#$actions))))) (define (gexps->activation-gexp gexps) "Return a gexp that runs the activation script containing GEXPS." diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm index ebc99e52cc..81f2b33260 100644 --- a/guix/scripts/deploy.scm +++ b/guix/scripts/deploy.scm @@ -43,8 +43,6 @@ (define (show-help) (display (G_ "Usage: guix deploy [OPTION] FILE... Perform the deployment specified by FILE.\n")) - (display (G_ " - -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) (show-build-options-help) (newline) (display (G_ " @@ -66,8 +64,7 @@ Perform the deployment specified by FILE.\n")) %standard-build-options)) (define %default-options - `((system . ,(%current-system)) - (substitutes? . #t) + `((substitutes? . #t) (build-hook? . #t) (graft? . #t) (debug . 0) @@ -92,7 +89,6 @@ Perform the deployment specified by FILE.\n")) (set-build-options-from-command-line store opts) (for-each (lambda (machine) (info (G_ "deploying to ~a...") (machine-display-name machine)) - (parameterize ((%current-system (assq-ref opts 'system)) - (%graft? (assq-ref opts 'graft?))) + (parameterize ((%graft? (assq-ref opts 'graft?))) (run-with-store store (deploy-machine machine)))) machines)))) From 5ea7537b9a650cfa525401c19879080a9cf42e13 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Thu, 15 Aug 2019 04:05:04 -0400 Subject: [PATCH 007/158] machine: Allow non-root users to deploy. * doc/guix.texi (Invoking guix deploy): Add section describing prerequisites for deploying as a non-root user. * guix/remote.scm (remote-pipe-for-gexp): New optional 'become-command' argument. (%remote-eval): New optional 'become-command' argument. (remote-eval): New 'become-command' keyword argument. * guix/ssh.scm (remote-inferior): New optional 'become-command' argument. (inferior-remote-eval): New optional 'become-command' argument. (remote-authorize-signing-key): New optional 'become-command' argument. * gnu/machine/ssh.scm (machine-become-command): New variable. (managed-host-remote-eval): Invoke 'remote-eval' with the '#:become-command' keyword. (deploy-managed-host): Invoke 'remote-authorize-signing-key' with the '#:become-command' keyword. --- doc/guix.texi | 10 ++++++++ gnu/machine/ssh.scm | 8 +++++++ guix/remote.scm | 57 ++++++++++++++++++++++++++++----------------- guix/ssh.scm | 25 ++++++++++++++------ 4 files changed, 72 insertions(+), 28 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a7facf4701..e5cec7ad25 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -25514,6 +25514,7 @@ evaluates to. As an example, @var{file} might contain a definition like this: (environment managed-host-environment-type) (configuration (machine-ssh-configuration (host-name "localhost") + (user "alice") (identity "./id_rsa") (port 2222))))) @end example @@ -25546,6 +25547,15 @@ accepts store items it receives from the coordinator: # guix archive --authorize < coordinator-public-key.txt @end example +@code{user}, in this example, specifies the name of the user account to log in +as to perform the deployment. Its default value is @code{root}, but root +login over SSH may be forbidden in some cases. To work around this, +@command{guix deploy} can log in as an unprivileged user and employ +@code{sudo} to escalate privileges. This will only work if @code{sudo} is +currently installed on the remote and can be invoked non-interactively as +@code{user}. That is: the line in @code{sudoers} granting @code{user} the +ability to use @code{sudo} must contain the @code{NOPASSWD} tag. + @deftp {Data Type} machine This is the data type representing a single machine in a heterogeneous Guix deployment. diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm index 670990a633..fb15d39e61 100644 --- a/gnu/machine/ssh.scm +++ b/gnu/machine/ssh.scm @@ -101,6 +101,14 @@ one from the configuration's parameters if one was not provided." ;;; Remote evaluation. ;;; +(define (machine-become-command machine) + "Return as a list of strings the program and arguments necessary to run a +shell command with escalated privileges for MACHINE's configuration." + (if (string= "root" (machine-ssh-configuration-user + (machine-configuration machine))) + '() + '("/run/setuid-programs/sudo" "-n" "--"))) + (define (managed-host-remote-eval machine exp) "Internal implementation of 'machine-remote-eval' for MACHINE instances with an environment type of 'managed-host." diff --git a/guix/remote.scm b/guix/remote.scm index bcac64ea7a..d8124e41ab 100644 --- a/guix/remote.scm +++ b/guix/remote.scm @@ -27,6 +27,8 @@ #:use-module (guix utils) #:use-module (ssh popen) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (ice-9 match) #:export (remote-eval)) @@ -41,29 +43,41 @@ ;;; ;;; Code: -(define (remote-pipe-for-gexp lowered session) - "Return a remote pipe for the given SESSION to evaluate LOWERED." +(define* (remote-pipe-for-gexp lowered session #:optional become-command) + "Return a remote pipe for the given SESSION to evaluate LOWERED. If +BECOME-COMMAND is given, use that to invoke the remote Guile REPL." (define shell-quote (compose object->string object->string)) - (apply open-remote-pipe* session OPEN_READ - (string-append (derivation-input-output-path - (lowered-gexp-guile lowered)) - "/bin/guile") - "--no-auto-compile" - (append (append-map (lambda (directory) - `("-L" ,directory)) - (lowered-gexp-load-path lowered)) - (append-map (lambda (directory) - `("-C" ,directory)) - (lowered-gexp-load-path lowered)) - `("-c" - ,(shell-quote (lowered-gexp-sexp lowered)))))) + (define repl-command + (append (or become-command '()) + (list + (string-append (derivation-input-output-path + (lowered-gexp-guile lowered)) + "/bin/guile") + "--no-auto-compile") + (append-map (lambda (directory) + `("-L" ,directory)) + (lowered-gexp-load-path lowered)) + (append-map (lambda (directory) + `("-C" ,directory)) + (lowered-gexp-load-path lowered)) + `("-c" + ,(shell-quote (lowered-gexp-sexp lowered))))) -(define (%remote-eval lowered session) + (let ((pipe (apply open-remote-pipe* session OPEN_READ repl-command))) + (when (eof-object? (peek-char pipe)) + (raise (condition + (&message + (message (format #f (G_ "failed to run '~{~a~^ ~}'") + repl-command)))))) + pipe)) + +(define* (%remote-eval lowered session #:optional become-command) "Evaluate LOWERED, a lowered gexp, in SESSION. This assumes that all the -prerequisites of EXP are already available on the host at SESSION." - (let* ((pipe (remote-pipe-for-gexp lowered session)) +prerequisites of EXP are already available on the host at SESSION. If +BECOME-COMMAND is given, use that to invoke the remote Guile REPL." + (let* ((pipe (remote-pipe-for-gexp lowered session become-command)) (result (read-repl-response pipe))) (close-port pipe) result)) @@ -92,7 +106,8 @@ result to the current output port using the (guix repl) protocol." (build-locally? #t) (system (%current-system)) (module-path %load-path) - (socket-name "/var/guix/daemon-socket/socket")) + (socket-name "/var/guix/daemon-socket/socket") + (become-command #f)) "Evaluate EXP, a gexp, on the host at SESSION, an SSH session. Ensure that all the elements EXP refers to are built and deployed to SESSION beforehand. When BUILD-LOCALLY? is true, said dependencies are built locally and sent to @@ -119,7 +134,7 @@ remote store." (built-derivations inputs) ((store-lift send-files) to-send remote #:recursive? #t) (return (close-connection remote)) - (return (%remote-eval lowered session)))) + (return (%remote-eval lowered session become-command)))) (let ((to-send (append (map (compose derivation-file-name derivation-input-derivation) inputs) @@ -128,4 +143,4 @@ remote store." ((store-lift send-files) to-send remote #:recursive? #t) (return (build-derivations remote inputs)) (return (close-connection remote)) - (return (%remote-eval lowered session))))))) + (return (%remote-eval lowered session become-command))))))) diff --git a/guix/ssh.scm b/guix/ssh.scm index 9b5ca68894..90311127a1 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -98,16 +98,27 @@ specifies; otherwise use them. Throw an error on failure." (message (format #f (G_ "SSH connection to '~a' failed: ~a~%") host (get-error session)))))))))) -(define (remote-inferior session) - "Return a remote inferior for the given SESSION." - (let ((pipe (open-remote-pipe* session OPEN_BOTH - "guix" "repl" "-t" "machine"))) +(define* (remote-inferior session #:optional become-command) + "Return a remote inferior for the given SESSION. If BECOME-COMMAND is +given, use that to invoke the remote Guile REPL." + (let* ((repl-command (append (or become-command '()) + '("guix" "repl" "-t" "machine"))) + (pipe (apply open-remote-pipe* session OPEN_BOTH repl-command))) + ;; XXX: 'channel-get-exit-status' would be better here, but hangs if the + ;; process does succeed. This doesn't reflect the documentation, so it's + ;; possible that it's a bug in guile-ssh. + (when (eof-object? (peek-char pipe)) + (raise (condition + (&message + (message (format #f (G_ "failed to run '~{~a~^ ~}'") + repl-command)))))) (port->inferior pipe))) -(define (inferior-remote-eval exp session) +(define* (inferior-remote-eval exp session #:optional become-command) "Evaluate EXP in a new inferior running in SESSION, and close the inferior -right away." - (let ((inferior (remote-inferior session))) +right away. If BECOME-COMMAND is given, use that to invoke the remote Guile +REPL." + (let ((inferior (remote-inferior session become-command))) (dynamic-wind (const #t) (lambda () From 9c70c460a05b2bc60f3f3602f0a2dba0f79ce86c Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Thu, 15 Aug 2019 04:05:57 -0400 Subject: [PATCH 008/158] machine: Implement 'roll-back-machine'. * gnu/machine.scm (roll-back-machine, &deploy-error, deploy-error?) (deploy-error-should-roll-back) (deploy-error-captured-args): New variable. * gnu/machine/ssh.scm (roll-back-managed-host): New variable. * guix/scripts/deploy.scm (guix-deploy): Roll-back systems when a deployment fails. --- gnu/machine.scm | 27 +++++++++++++++- gnu/machine/ssh.scm | 72 +++++++++++++++++++++++++++++++++++++++-- guix/scripts/deploy.scm | 17 ++++++++-- 3 files changed, 110 insertions(+), 6 deletions(-) diff --git a/gnu/machine.scm b/gnu/machine.scm index 30ae97f6ec..05b03b21d4 100644 --- a/gnu/machine.scm +++ b/gnu/machine.scm @@ -24,6 +24,7 @@ #:use-module (guix records) #:use-module (guix store) #:use-module ((guix utils) #:select (source-properties->location)) + #:use-module (srfi srfi-35) #:export (environment-type environment-type? environment-type-name @@ -40,7 +41,13 @@ machine-display-name deploy-machine - machine-remote-eval)) + roll-back-machine + machine-remote-eval + + &deploy-error + deploy-error? + deploy-error-should-roll-back + deploy-error-captured-args)) ;;; Commentary: ;;; @@ -66,6 +73,7 @@ ;; of the form '(machine-remote-eval machine exp)'. (machine-remote-eval environment-type-machine-remote-eval) ; procedure (deploy-machine environment-type-deploy-machine) ; procedure + (roll-back-machine environment-type-roll-back-machine) ; procedure ;; Metadata. (name environment-type-name) ; symbol @@ -105,3 +113,20 @@ are built and deployed to MACHINE beforehand." MACHINE, activating it on MACHINE and switching MACHINE to the new generation." (let ((environment (machine-environment machine))) ((environment-type-deploy-machine environment) machine))) + +(define (roll-back-machine machine) + "Monadic procedure rolling back to the previous system generation on +MACHINE. Return the number of the generation that was current before switching +and the new generation number." + (let ((environment (machine-environment machine))) + ((environment-type-roll-back-machine environment) machine))) + + +;;; +;;; Error types. +;;; + +(define-condition-type &deploy-error &error + deploy-error? + (should-roll-back deploy-error-should-roll-back) + (captured-args deploy-error-captured-args)) diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm index fb15d39e61..4b5d5fe3a2 100644 --- a/gnu/machine/ssh.scm +++ b/gnu/machine/ssh.scm @@ -17,6 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu machine ssh) + #:use-module (gnu bootloader) #:use-module (gnu machine) #:autoload (gnu packages gnupg) (guile-gcrypt) #:use-module (gnu system) @@ -34,6 +35,7 @@ #:use-module (guix store) #:use-module (guix utils) #:use-module (ice-9 match) + #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) @@ -341,6 +343,18 @@ of MACHINE's system profile, ordered from most recent to oldest." (boot-parameters-kernel-arguments params)))))))) generations)))) +(define-syntax-rule (with-roll-back should-roll-back? mbody ...) + "Catch exceptions that arise when binding MBODY, a monadic expression in +%STORE-MONAD, and collect their arguments in a &deploy-error condition, with +the 'should-roll-back' field set to SHOULD-ROLL-BACK?" + (catch #t + (lambda () + mbody ...) + (lambda args + (raise (condition (&deploy-error + (should-roll-back should-roll-back?) + (captured-args args))))))) + (define (deploy-managed-host machine) "Internal implementation of 'deploy-machine' for MACHINE instances with an environment type of 'managed-host." @@ -353,9 +367,60 @@ environment type of 'managed-host." (bootloader-configuration (operating-system-bootloader os)) (bootcfg (operating-system-bootcfg os menu-entries))) (mbegin %store-monad - (switch-to-system eval os) - (upgrade-shepherd-services eval os) - (install-bootloader eval bootloader-configuration bootcfg))))) + (with-roll-back #f + (switch-to-system eval os)) + (with-roll-back #t + (mbegin %store-monad + (upgrade-shepherd-services eval os) + (install-bootloader eval bootloader-configuration bootcfg))))))) + + +;;; +;;; Roll-back. +;;; + +(define (roll-back-managed-host machine) + "Internal implementation of 'roll-back-machine' for MACHINE instances with +an environment type of 'managed-host." + (define remote-exp + (with-extensions (list guile-gcrypt) + (with-imported-modules (source-module-closure '((guix config) + (guix profiles))) + #~(begin + (use-modules (guix config) + (guix profiles)) + + (define %system-profile + (string-append %state-directory "/profiles/system")) + + (define target-generation + (relative-generation %system-profile -1)) + + (if target-generation + (switch-to-generation %system-profile target-generation) + 'error))))) + + (define roll-back-failure + (condition (&message (message (G_ "could not roll-back machine"))))) + + (mlet* %store-monad ((boot-parameters (machine-boot-parameters machine)) + (_ -> (if (< (length boot-parameters) 2) + (raise roll-back-failure))) + (entries -> (map boot-parameters->menu-entry + (list (second boot-parameters)))) + (old-entries -> (map boot-parameters->menu-entry + (drop boot-parameters 2))) + (bootloader -> (operating-system-bootloader + (machine-operating-system machine))) + (bootcfg (lower-object + ((bootloader-configuration-file-generator + (bootloader-configuration-bootloader + bootloader)) + bootloader entries + #:old-entries old-entries))) + (remote-result (machine-remote-eval machine remote-exp))) + (when (eqv? 'error remote-result) + (raise roll-back-failure)))) ;;; @@ -366,6 +431,7 @@ environment type of 'managed-host." (environment-type (machine-remote-eval managed-host-remote-eval) (deploy-machine deploy-managed-host) + (roll-back-machine roll-back-managed-host) (name 'managed-host-environment-type) (description "Provisioning for machines that are accessible over SSH and have a known host-name. This entails little more than maintaining an SSH diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm index 81f2b33260..6a67985c8b 100644 --- a/guix/scripts/deploy.scm +++ b/guix/scripts/deploy.scm @@ -28,6 +28,8 @@ #:use-module (guix grafts) #:use-module (ice-9 format) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) #:export (guix-deploy)) @@ -88,7 +90,18 @@ Perform the deployment specified by FILE.\n")) (with-store store (set-build-options-from-command-line store opts) (for-each (lambda (machine) - (info (G_ "deploying to ~a...") (machine-display-name machine)) + (info (G_ "deploying to ~a...~%") + (machine-display-name machine)) (parameterize ((%graft? (assq-ref opts 'graft?))) - (run-with-store store (deploy-machine machine)))) + (guard (c ((message-condition? c) + (report-error (G_ "failed to deploy ~a: '~a'~%") + (machine-display-name machine) + (condition-message c))) + ((deploy-error? c) + (when (deploy-error-should-roll-back c) + (info (G_ "rolling back ~a...~%") + (machine-display-name machine)) + (run-with-store store (roll-back-machine machine))) + (apply throw (deploy-error-captured-args c)))) + (run-with-store store (deploy-machine machine))))) machines)))) From 3033d59ac9a747b42a1fa6ca6664d4fbc62ca117 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Thu, 15 Aug 2019 04:06:41 -0400 Subject: [PATCH 009/158] machine: Automatically authorize the coordinator's signing key. * guix/ssh.scm (remote-authorize-signing-key): New variable. * gnu/machine/ssh.scm (deploy-managed-host): Authorize coordinator's signing key before any invocations of 'remote-eval'. (deploy-managed-host): Display an error if a signing key does not exist. * doc/guix.texi (Invoking guix deploy): Remove section describing manual signing key authorization. (Invoking guix deploy): Add section describing the 'authorize?' field. --- doc/guix.texi | 3 +++ gnu/machine/ssh.scm | 33 ++++++++++++++++++++++++++------- guix/ssh.scm | 23 +++++++++++++++++++++++ 3 files changed, 52 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index e5cec7ad25..d80f62970d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -25586,6 +25586,9 @@ with an @code{environment} of @code{managed-host-environment-type}. @item @code{system} The Nix system type describing the architecture of the machine being deployed to. This should look something like ``x86_64-linux''. +@item @code{authorize?} (default: @code{#t}) +If true, the coordinator's signing key will be added to the remote's ACL +keyring. @item @code{port} (default: @code{22}) @item @code{user} (default: @code{"root"}) @item @code{identity} (default: @code{#f}) diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm index 4b5d5fe3a2..ac3aa3e370 100644 --- a/gnu/machine/ssh.scm +++ b/gnu/machine/ssh.scm @@ -28,13 +28,16 @@ #:use-module (guix i18n) #:use-module (guix modules) #:use-module (guix monads) + #:use-module (guix pki) #:use-module (guix records) #:use-module (guix remote) #:use-module (guix scripts system reconfigure) #:use-module (guix ssh) #:use-module (guix store) #:use-module (guix utils) + #:use-module (gcrypt pk-crypto) #:use-module (ice-9 match) + #:use-module (ice-9 textual-ports) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) @@ -48,6 +51,7 @@ machine-ssh-configuration-host-name machine-ssh-configuration-build-locally? + machine-ssh-configuration-authorize? machine-ssh-configuration-port machine-ssh-configuration-user machine-ssh-configuration-session)) @@ -70,17 +74,19 @@ make-machine-ssh-configuration machine-ssh-configuration? this-machine-ssh-configuration - (host-name machine-ssh-configuration-host-name) ; string - (system machine-ssh-configuration-system) ; string - (build-locally? machine-ssh-configuration-build-locally? + (host-name machine-ssh-configuration-host-name) ; string + (system machine-ssh-configuration-system) ; string + (build-locally? machine-ssh-configuration-build-locally? ; boolean (default #t)) - (port machine-ssh-configuration-port ; integer + (authorize? machine-ssh-configuration-authorize? ; boolean + (default #t)) + (port machine-ssh-configuration-port ; integer (default 22)) - (user machine-ssh-configuration-user ; string + (user machine-ssh-configuration-user ; string (default "root")) - (identity machine-ssh-configuration-identity ; path to a private key + (identity machine-ssh-configuration-identity ; path to a private key (default #f)) - (session machine-ssh-configuration-session ; session + (session machine-ssh-configuration-session ; session (default #f))) (define (machine-ssh-session machine) @@ -359,6 +365,19 @@ the 'should-roll-back' field set to SHOULD-ROLL-BACK?" "Internal implementation of 'deploy-machine' for MACHINE instances with an environment type of 'managed-host." (maybe-raise-unsupported-configuration-error machine) + (when (machine-ssh-configuration-authorize? + (machine-configuration machine)) + (unless (file-exists? %public-key-file) + (raise (condition + (&message + (message (format #f (G_ "no signing key '~a'. \ +have you run 'guix archive --generate-key?'") + %public-key-file)))))) + (remote-authorize-signing-key (call-with-input-file %public-key-file + (lambda (port) + (string->canonical-sexp + (get-string-all port)))) + (machine-ssh-session machine))) (mlet %store-monad ((_ (check-deployment-sanity machine)) (boot-parameters (machine-boot-parameters machine))) (let* ((os (machine-operating-system machine)) diff --git a/guix/ssh.scm b/guix/ssh.scm index 90311127a1..24834c6f68 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -21,6 +21,7 @@ #:use-module (guix inferior) #:use-module (guix i18n) #:use-module ((guix utils) #:select (&fix-hint)) + #:use-module (gcrypt pk-crypto) #:use-module (ssh session) #:use-module (ssh auth) #:use-module (ssh key) @@ -40,6 +41,7 @@ remote-daemon-channel connect-to-remote-daemon remote-system + remote-authorize-signing-key send-files retrieve-files retrieve-files* @@ -300,6 +302,27 @@ the machine on the other end of SESSION." (inferior-remote-eval '(begin (use-modules (guix utils)) (%current-system)) session)) +(define (remote-authorize-signing-key key session) + "Send KEY, a canonical sexp containing a public key, over SESSION and add it +to the system ACL file if it has not yet been authorized." + (inferior-remote-eval + `(begin + (use-modules (guix build utils) + (guix pki) + (guix utils) + (gcrypt pk-crypto) + (srfi srfi-26)) + + (define acl (current-acl)) + (define key (string->canonical-sexp ,(canonical-sexp->string key))) + + (unless (authorized-key? key) + (let ((acl (public-keys->acl (cons key (acl->public-keys acl))))) + (mkdir-p (dirname %acl-file)) + (with-atomic-file-output %acl-file + (cut write-acl acl <>))))) + session)) + (define* (send-files local files remote #:key recursive? From 3967a946c6b36bdd51bd0f11b75ad1f7ef3d4674 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Thu, 15 Aug 2019 04:07:19 -0400 Subject: [PATCH 010/158] doc: Add description of 'build-locally?'. * doc/guix.texi (Invoking guix deploy): Add section describing the 'build-locally?' field of 'managed-host-environment-type'. --- doc/guix.texi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index d80f62970d..043851e418 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -25583,6 +25583,8 @@ with an @code{environment} of @code{managed-host-environment-type}. @table @asis @item @code{host-name} +@item @code{build-locally?} (default: @code{#t}) +If false, system derivations will be built on the machine being deployed to. @item @code{system} The Nix system type describing the architecture of the machine being deployed to. This should look something like ``x86_64-linux''. From 5f32531770b532deafb79601ecff4913ec38d0b2 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Thu, 15 Aug 2019 04:08:22 -0400 Subject: [PATCH 011/158] remote: Use (%daemon-socket-uri) rather than hard-coded path. * guix/remote.scm (remote-eval): Use (%daemon-socket-uri) as the default value of 'socket-name' rather than hard-coded path. --- guix/remote.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/remote.scm b/guix/remote.scm index d8124e41ab..ae2fe17dd2 100644 --- a/guix/remote.scm +++ b/guix/remote.scm @@ -106,7 +106,7 @@ result to the current output port using the (guix repl) protocol." (build-locally? #t) (system (%current-system)) (module-path %load-path) - (socket-name "/var/guix/daemon-socket/socket") + (socket-name (%daemon-socket-uri)) (become-command #f)) "Evaluate EXP, a gexp, on the host at SESSION, an SSH session. Ensure that all the elements EXP refers to are built and deployed to SESSION beforehand. From 18696f7acfed09272eb9a35d2ad27d8a8e534384 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 13 Aug 2019 17:45:01 +0200 Subject: [PATCH 012/158] gnu: Add vtk-6. * gnu/packages/image-processing.scm (vtk-6): New variable. --- gnu/packages/image-processing.scm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index e708e1366c..6680d65283 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 John Darrington -;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017, 2019 Ricardo Wurmus ;;; Copyright © 2014 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2016 Eric Bavier @@ -64,7 +64,8 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (ice-9 match)) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1)) (define-public dcmtk (package @@ -212,6 +213,22 @@ a suite of 3D interaction widgets, supports parallel processing, and integrates with various databases on GUI toolkits such as Qt and Tk.") (license license:bsd-3))) +;; itksnap needs an older variant of VTK. +(define-public vtk-6 + (package (inherit vtk) + (version "6.3.0") + (source (origin + (method url-fetch) + (uri (string-append "https://vtk.org/files/release/" + (version-major+minor version) + "/VTK-" version ".tar.gz")) + (sha256 + (base32 + "0pla1r5mvkgl4sl213gfdhzrypdgai0h3z5mfgm6p9jz9hsr794j")))) + (inputs + `(("jsoncpp" ,jsoncpp-for-tensorflow) + ,@(alist-delete "jsoncpp" (package-inputs vtk)))))) + (define-public opencv (package (name "opencv") From 02e1acfb2a65783d63e526da798337c91b40a5f1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 13 Aug 2019 17:46:22 +0200 Subject: [PATCH 013/158] gnu: Add vxl. * gnu/packages/image-processing.scm (vxl): New variable. --- gnu/packages/image-processing.scm | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 6680d65283..a4365f6009 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -40,6 +40,7 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) + #:use-module (gnu packages geo) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -534,3 +535,45 @@ the VIPS image processing library. It's a little like a spreadsheet: you create a set of formula connecting your objects together, and on a change nip2 recalculates.") (license license:gpl2+))) + +(define-public vxl + (package + (name "vxl") + (version "2.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vxl/vxl.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0949hw57szq8943f1whwqaz591xjmb19kj803hcv74hdai2b0ycg")) + (modules '((guix build utils))) + ;; TODO: vxl includes an old version of dcmtk. It won't build with + ;; version 3.6.x. + (snippet + '(begin + (for-each delete-file-recursively + '("v3p/bzlib/" + "v3p/geotiff/" + "v3p/jpeg/" + "v3p/png/" + "v3p/tiff/" + "v3p/zlib/")) + (substitute* "v3p/CMakeLists.txt" + (("add_subdirectory\\((tiff|png|jpeg|zlib|bzlib|geotiff)\\)") + "")) + #t)))) + (build-system cmake-build-system) + (inputs + `(("libgeotiff" ,libgeotiff) + ("libtiff" ,libtiff) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("zlib" ,zlib))) + (home-page "https://github.com/vxl/vxl/") + (synopsis "Collection of C++ libraries for computer vision") + (description "VXL (the Vision-something-Libraries) is a collection of C++ +libraries designed for computer vision research and implementation.") + (license license:bsd-3))) From 4243af4e5741add5de4972cbea1a8ee6acb39f15 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 13 Aug 2019 17:47:03 +0200 Subject: [PATCH 014/158] gnu: Add vxl-1. * gnu/packages/image-processing.scm (vxl-1): New variable. --- gnu/packages/image-processing.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index a4365f6009..9c084e111d 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -577,3 +577,34 @@ recalculates.") (description "VXL (the Vision-something-Libraries) is a collection of C++ libraries designed for computer vision research and implementation.") (license license:bsd-3))) + +(define-public vxl-1 + (package (inherit vxl) + (name "vxl") + (version "1.18.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vxl/vxl.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1g4mr2cc58jwm0vasscbd4y5380wj3ahkvq121z4gs83fhavvxgz")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file-recursively + '("v3p/bzlib/" + "v3p/geotiff/" + "v3p/png/" + "v3p/tiff/" + "v3p/zlib/")) + (substitute* "v3p/CMakeLists.txt" + (("add_subdirectory\\((tiff|png|jpeg|zlib|bzlib|geotiff)\\)") + "")) + #t)))) + (arguments + `(#:configure-flags + ;; Needed for itk-snap + (list "-DVNL_CONFIG_LEGACY_METHODS=ON"))))) From d7701e1b94158c256f9b0609457cdffadaf39aee Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 13 Aug 2019 18:55:46 +0200 Subject: [PATCH 015/158] gnu: Add insight-toolkit. * gnu/packages/image-processing.scm (insight-toolkit): New variable. --- gnu/packages/image-processing.scm | 63 +++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 9c084e111d..2f1f0ade59 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages algebra) #:use-module (gnu packages bison) #:use-module (gnu packages boost) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages documentation) #:use-module (gnu packages flex) @@ -60,6 +61,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages serialization) + #:use-module (gnu packages tbb) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages xiph) @@ -608,3 +610,64 @@ libraries designed for computer vision research and implementation.") `(#:configure-flags ;; Needed for itk-snap (list "-DVNL_CONFIG_LEGACY_METHODS=ON"))))) + +(define-public insight-toolkit + (package + (name "insight-toolkit") + (version "5.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/InsightSoftwareConsortium/ITK/" + "releases/download/v" version "/InsightToolkit-" + version ".tar.xz")) + (sha256 + (base32 "0bs63mk4q8jmx38f031jy5w5n9yy5ng9x8ijwinvjyvas8cichqi")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; tests require network access and external data + #:configure-flags + '("-DITK_USE_GPU=ON" + "-DITK_USE_SYSTEM_LIBRARIES=ON" + "-DITK_USE_SYSTEM_GOOGLETEST=ON" + "-DITK_BUILD_SHARED=ON" + ;; This prevents "GTest::GTest" from being added to the ITK_LIBRARIES + ;; variable in the installed CMake files. This is necessary as other + ;; packages using insight-toolkit could not be configured otherwise. + "-DGTEST_ROOT=gtest") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'do-not-tune + (lambda _ + (substitute* "CMake/ITKSetStandardCompilerFlags.cmake" + (("-mute=native") "")) + #t))))) + (inputs + `(("eigen" ,eigen) + ("expat" ,expat) + ("fftw" ,fftw) + ("fftwf" ,fftwf) + ("hdf5" ,hdf5) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("mesa" ,mesa-opencl) + ("perl" ,perl) + ("python" ,python) + ("tbb" ,tbb) + ("vxl" ,vxl-1) + ("zlib" ,zlib))) + (native-inputs + `(("googletest" ,googletest) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/InsightSoftwareConsortium/ITK/") + (synopsis "Scientific image processing, segmentation and registration") + (description "The Insight Toolkit (ITK) is a toolkit for N-dimensional +scientific image processing, segmentation, and registration. Segmentation is +the process of identifying and classifying data found in a digitally sampled +representation. Typically the sampled representation is an image acquired +from such medical instrumentation as CT or MRI scanners. Registration is the +task of aligning or developing correspondences between data. For example, in +the medical environment, a CT scan may be aligned with a MRI scan in order to +combine the information contained in both.") + (license license:asl2.0))) From 8f4d457d93797bea5d934d9548da85d438dbd71e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 13 Aug 2019 18:55:57 +0200 Subject: [PATCH 016/158] gnu: Add insight-toolkit-4. * gnu/packages/image-processing.scm (insight-toolkit-4): New variable. --- gnu/packages/image-processing.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 2f1f0ade59..00b80c1ad5 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -671,3 +671,23 @@ task of aligning or developing correspondences between data. For example, in the medical environment, a CT scan may be aligned with a MRI scan in order to combine the information contained in both.") (license license:asl2.0))) + +(define-public insight-toolkit-4 + (package (inherit insight-toolkit) + (version "4.13.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/InsightSoftwareConsortium/ITK/" + "releases/download/v" version "/InsightToolkit-" + version ".tar.xz")) + (sha256 + (base32 "19cgfpd63gqrvc3m27m394gy2d7w79g5y6lvznb5qqr49lihbgns")))) + (arguments + `(#:tests? #f ; tests require network access and external data + #:configure-flags + '("-DITKV3_COMPATIBILITY=ON" ; needed for itk-snap + "-DITK_USE_GPU=ON" + "-DITK_USE_SYSTEM_LIBRARIES=ON" + "-DITK_USE_SYSTEM_GOOGLETEST=ON" + "-DITK_USE_SYSTEM_VXL=ON"))))) From 07f36b0c53a644c11d26389de34e9d5e84469882 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 13 Aug 2019 18:56:03 +0200 Subject: [PATCH 017/158] gnu: Add insight-toolkit-4.12. * gnu/packages/image-processing.scm (insight-toolkit-4.12): New variable. --- gnu/packages/image-processing.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 00b80c1ad5..3fa1be4244 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -691,3 +691,14 @@ combine the information contained in both.") "-DITK_USE_SYSTEM_LIBRARIES=ON" "-DITK_USE_SYSTEM_GOOGLETEST=ON" "-DITK_USE_SYSTEM_VXL=ON"))))) + +(define-public insight-toolkit-4.12 + (package (inherit insight-toolkit-4) + (version "4.12.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/itk/itk/4.12/" + "InsightToolkit-" version ".tar.xz")) + (sha256 + (base32 "1qw9mxbh083siljygahl4gdfv91xvfd8hfl7ghwii19f60xrvn2w")))))) From 1c4e6aa9382e90acbf12246ce29357382902346d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Aug 2019 09:26:55 +0200 Subject: [PATCH 018/158] gnu: Add itk-snap. * gnu/packages/image-processing.scm (itk-snap): New variable. --- gnu/packages/image-processing.scm | 139 ++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 3fa1be4244..b3972a2b76 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -38,6 +38,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) @@ -60,6 +61,7 @@ #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #:use-module (gnu packages serialization) #:use-module (gnu packages tbb) #:use-module (gnu packages tls) @@ -702,3 +704,140 @@ combine the information contained in both.") "InsightToolkit-" version ".tar.xz")) (sha256 (base32 "1qw9mxbh083siljygahl4gdfv91xvfd8hfl7ghwii19f60xrvn2w")))))) + +(define-public itk-snap + (package + (name "itk-snap") + (version "3.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.code.sf.net/p/itk-snap/src") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15i5ixpryfrbf3vrrb5rici8fb585f25k0v1ljds16bp1f1msr4q")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DSNAP_VERSION_GIT_SHA1=release" + "-DSNAP_VERSION_GIT_BRANCH=release" + "-DSNAP_VERSION_GIT_TIMESTAMP=0" + "-DSNAP_PACKAGE_QT_PLUGINS=OFF" + "-DCMAKE_POSITION_INDEPENDENT_CODE=ON" + "-DCMAKE_CXX_FLAGS=-std=gnu++11 -fpermissive") + #:phases + (modify-phases %standard-phases + ;; During the installation phase all libraries provided by all + ;; dependencies will be copied to the lib directory. That's insane, + ;; so we disable this. + (add-after 'unpack 'do-not-copy-dependencies + (lambda _ + (substitute* "CMakeLists.txt" + (("install_qt5_executable\ +\\(\\$\\{SNAP_MAIN_INSTALL_DIR\\}/\\$\\{SNAP_EXE\\}\\)") + "")) + #t)) + (add-after 'unpack 'disable-gui-tests + (lambda _ + ;; The GUI tests just time out. + (substitute* "CMakeLists.txt" + ((" (Workspace|DiffSpace|ProbeIntensity|RegionCompetition\ +|RandomForest|RandomForestBailOut)") + "")) + #t)) + (add-after 'unpack 'make-reproducible + (lambda _ + (substitute* "CMakeLists.txt" + (("TODAY\\(SNAP_VERSION_COMPILE_DATE\\)") + "SET(SNAP_VERSION_COMPILE_DATE \"(removed for reproducibility)\")")) + #t)) + (add-after 'unpack 'prepare-submodules + (lambda* (#:key inputs #:allow-other-keys) + (rmdir "Submodules/c3d") + (copy-recursively (assoc-ref inputs "c3d-src") + "Submodules/c3d") + (substitute* '("Submodules/c3d/adapters/BiasFieldCorrectionN4.cxx" + "Submodules/c3d/adapters/ApplyMetric.cxx") + (("vcl_") "std::")) + (rmdir "Submodules/greedy") + (symlink (assoc-ref inputs "greedy-src") + "Submodules/greedy") + #t)) + (add-after 'unpack 'fix-includes + (lambda _ + (substitute* "GUI/Model/RegistrationModel.cxx" + (("") + "")) + #t)) + (add-before 'check 'prepare-tests + (lambda _ + ;; Needed by at least one test. + (setenv "HOME" "/tmp") + #t)) + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/itksnap") + `("QT_PLUGIN_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/plugins")) + '("qtbase" "qtdeclarative")))) + #t)))))) + (inputs + `(("curl" ,curl) + ("fftw" ,fftw) + ("fftwf" ,fftwf) + ("glu" ,glu) + ("hdf5" ,hdf5) + ("mesa" ,mesa-opencl) + ;; This package does not build with either insight-toolkit 5.0.0 and + ;; not with 4.13. It really needs to be 4.12. + ("itk" ,insight-toolkit-4.12) + ("vtk" ,vtk-6) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qttools" ,qttools) + ("vxl" ,vxl-1) + ("zlib" ,zlib))) + (native-inputs + `(("googletest" ,googletest) + ("pkg-config" ,pkg-config) + ("c3d-src" + ,(let* ((commit "f521358db26e00002c911cc47bf463b043942ad3") + (revision "1") + (version (git-version "0" revision commit))) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pyushkevich/c3d.git") + (commit commit))) + (file-name (git-file-name "c3d" version)) + (sha256 + (base32 + "0kyv3rxrxwr8c3sa9zv01lsnhk95b27gx1s870k3yi8qp52h7bx3"))))) + ;; We are using an arbitrary commit from 2017 because the latest + ;; version breaks the build... + ("greedy-src" + ,(let* ((commit "97e340f7e8e66597599144947775e6039e79a0d3") + (revision "1") + (version (git-version "0" revision commit))) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pyushkevich/greedy.git") + (commit commit))) + (file-name (git-file-name "greedy" version)) + (sha256 + (base32 + "0k5bc9za4jrc8z9dj08z1rkcp5xf0gnd1d2jmi1w9ny4vxh2q2ab"))))))) + (home-page "https://sourceforge.net/p/itk-snap/") + (synopsis "Medical image segmentation") + (description "ITK-SNAP is a tool for segmenting anatomical structures in +medical images. It provides an automatic active contour segmentation +pipeline, along with supporting a manual segmentation toolbox. ITK-SNAP has a +full-featured UI aimed at clinical researchers.") + ;; This includes the submodules greedy and c3d. + (license license:gpl3+))) From dfdd7380a164217fec6bca0f91ebcf32ade33cb4 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 15 Aug 2019 16:21:23 +0200 Subject: [PATCH 019/158] gnu: libinput: Update to 1.14.0. * gnu/packages/freedesktop.scm (libinput): Update to 1.14.0. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 9cfdbca3fb..a0cf2c8cbf 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -152,14 +152,14 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.13.4") + (version "1.14.0") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" "libinput-" version ".tar.xz")) (sha256 (base32 - "07a0w7rak7rvnh6g4j0akwjxwinxfszc1xi9mrx12fv82k3mgsyk")))) + "0rzw2kx06ywc19lwf147f474xav7w83h28k0afy822wjz0j5rf3w")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false"))) From 2cbe7044ea079b7852efb5c1a96785672c4e5c5b Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 15 Aug 2019 16:28:21 +0200 Subject: [PATCH 020/158] Revert "gnu: libinput: Update to 1.14.0." This reverts commit dfdd7380a164217fec6bca0f91ebcf32ade33cb4. libinput-minimal causes too many rebuilds. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index a0cf2c8cbf..9cfdbca3fb 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -152,14 +152,14 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.14.0") + (version "1.13.4") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" "libinput-" version ".tar.xz")) (sha256 (base32 - "0rzw2kx06ywc19lwf147f474xav7w83h28k0afy822wjz0j5rf3w")))) + "07a0w7rak7rvnh6g4j0akwjxwinxfszc1xi9mrx12fv82k3mgsyk")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false"))) From 6e7553ffe09ed214e1aac362c16b526743e3c25b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Aug 2019 17:02:30 +0200 Subject: [PATCH 021/158] gnu: Add r-rann-l1. * gnu/packages/cran.scm (r-rann-l1): New variable. --- gnu/packages/cran.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 17c85fe512..adac3fe0c5 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14945,3 +14945,26 @@ path of values for the regularization parameter.") library uses. It is also possible to control the number of threads in OpenMP.") (license license:agpl3+))) + +(define-public r-rann-l1 + (package + (name "r-rann-l1") + (version "2.5.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "RANN.L1" version)) + (sha256 + (base32 + "1hanh3my84mdr5wy6b89fawqzfc184vff1y65wy4l5ld9qza1n44")))) + (properties `((upstream-name . "RANN.L1"))) + (build-system r-build-system) + (home-page "https://github.com/jefferis/RANN/tree/master-L1") + (synopsis "Fast nearest neighbour search using L1 metric") + (description + "This package provides tools to find the k nearest neighbours for every +point in a given dataset in O(N log N) time using Arya and Mount's ANN +library. There is support for approximate as well as exact searches, fixed +radius searches and @code{bd} as well as @code{kd} trees. The distance is +computed using the L1 (Manhattan, taxicab) metric.") + (license license:gpl3+))) From 9c3bfea673f13d84d12acc9189792564b98b930f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Aug 2019 17:02:39 +0200 Subject: [PATCH 022/158] gnu: Add r-patchwork. * gnu/packages/cran.scm (r-patchwork): New variable. --- gnu/packages/cran.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index adac3fe0c5..ae6215b2d1 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14968,3 +14968,34 @@ library. There is support for approximate as well as exact searches, fixed radius searches and @code{bd} as well as @code{kd} trees. The distance is computed using the L1 (Manhattan, taxicab) metric.") (license license:gpl3+))) + +(define-public r-patchwork + ;; There has been no public release yet. + (let ((commit "fd7958bae3e7a1e30237c751952e412a0a1d1242") + (revision "1")) + (package + (name "r-patchwork") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/thomasp85/patchwork.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00fq520xwy1ysg4k8x48x9b0yy9wyi8y8zj6dvxjg4bwx0yyp6s4")))) + (build-system r-build-system) + (propagated-inputs + `(("r-ggplot2" ,r-ggplot2) + ("r-gtable" ,r-gtable))) + (home-page "https://github.com/thomasp85/patchwork") + (synopsis "Compose ggplot2 plots") + (description + "The @code{ggplot2} package provides a strong API for sequentially +building up a plot, but does not concern itself with composition of multiple +plots. Patchwork is a package that expands the API to allow for arbitrarily +complex composition of plots by providing mathmatical operators for combining +multiple plots.") + (license license:expat)))) From 86d3822862d655cfef7ee359464288d9953ec2c0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Aug 2019 17:02:49 +0200 Subject: [PATCH 023/158] gnu: Add r-liger. * gnu/packages/cran.scm (r-liger): New variable. --- gnu/packages/cran.scm | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index ae6215b2d1..26b983067b 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14999,3 +14999,77 @@ plots. Patchwork is a package that expands the API to allow for arbitrarily complex composition of plots by providing mathmatical operators for combining multiple plots.") (license license:expat)))) + +(define-public r-liger + (package + (name "r-liger") + (version "0.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/MacoskoLab/liger.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "16dzwwcpw6n78pxlc5w3kraigki35ix7zhd2cbx5f3y60bbkhlmx")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file "inst/java/ModularityOptimizer.jar") + #t)))) + (build-system r-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'build-java-part + (lambda* (#:key inputs #:allow-other-keys) + (invoke "unzip" (assoc-ref inputs "optimizer-src")) + (for-each (lambda (file) (invoke "javac" file)) + (find-files "." "\\.java$")) + (apply invoke "jar" "cf" "inst/java/ModularityOptimizer.jar" + (find-files "." "\\.class$")) + #t))))) + (propagated-inputs + `(("r-cowplot" ,r-cowplot) + ("r-dosnow" ,r-dosnow) + ("r-dplyr" ,r-dplyr) + ("r-fnn" ,r-fnn) + ("r-foreach" ,r-foreach) + ("r-ggplot2" ,r-ggplot2) + ("r-ggrepel" ,r-ggrepel) + ("r-hmisc" ,r-hmisc) + ("r-ica" ,r-ica) + ("r-irlba" ,r-irlba) + ("r-matrix" ,r-matrix) + ("r-mclust" ,r-mclust) + ("r-patchwork" ,r-patchwork) + ("r-plyr" ,r-plyr) + ("r-rann-l1" ,r-rann-l1) + ("r-rcpp" ,r-rcpp) + ("r-rcpparmadillo" ,r-rcpparmadillo) + ("r-riverplot" ,r-riverplot) + ("r-rtsne" ,r-rtsne) + ("r-snow" ,r-snow))) + (native-inputs + `(("jdk" ,icedtea "jdk") + ;; See https://github.com/MacoskoLab/liger/issues/96 + ;; The optimizer is released under the Expat license. + ("optimizer-src" + ,(origin + (method url-fetch) + (uri "http://www.ludowaltman.nl/slm/modularity_optimizer_source.zip") + (sha256 + (base32 + "01hmm6sapcmldvayknqx2w4cav3qv71mwwkdkwj4qgq6dss09g18")))) + ("unzip" ,unzip) + ("r-knitr" ,r-knitr))) ; for vignettes + (home-page "https://github.com/MacoskoLab/liger") + (synopsis "Integrate and analyze multiple single-cell datasets") + (description + "LIGER is a package for integrating and analyzing multiple single-cell +datasets, developed and maintained by the Macosko lab. It relies on +integrative non-negative matrix factorization to identify shared and +dataset-specific factors.") + (license license:gpl3))) From 19f1aac0e7405b99c96823dda36e5389f18f64ec Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Aug 2019 17:38:57 +0200 Subject: [PATCH 024/158] gnu: Add r-lda. * gnu/packages/cran.scm (r-lda): New variable. --- gnu/packages/cran.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 26b983067b..76ea2ed847 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14946,6 +14946,30 @@ library uses. It is also possible to control the number of threads in OpenMP.") (license license:agpl3+))) +(define-public r-lda + (package + (name "r-lda") + (version "1.4.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "lda" version)) + (sha256 + (base32 + "03r4h5kgr8mfy44p66mfj5bp4k00g8zh4a1mhn46jw14pkhs21jn")))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/lda/") + (synopsis "Collapsed Gibbs sampling methods for topic models") + (description + "This package implements @dfn{latent Dirichlet allocation} (LDA) and +related models. This includes (but is not limited to) sLDA, corrLDA, and the +mixed-membership stochastic blockmodel. Inference for all of these models is +implemented via a fast collapsed Gibbs sampler written in C. Utility +functions for reading/writing data typically used in topic models, as well as +tools for examining posterior distributions are also included.") + ;; Any version of the LGPL + (license license:lgpl3+))) + (define-public r-rann-l1 (package (name "r-rann-l1") From bb88417fb70f8881d46e2f2e8235a1aa16591a36 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Aug 2019 17:39:11 +0200 Subject: [PATCH 025/158] gnu: Add r-rcistarget. * gnu/packages/bioconductor.scm (r-rcistarget): New variable. --- gnu/packages/bioconductor.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 74620a2cbe..0a0aee7309 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -5089,6 +5089,41 @@ by a sparse number of variables, this method can reduce the complexity of data, to only emphasize the data that actually matters.") (license license:expat))) +(define-public r-rcistarget + (package + (name "r-rcistarget") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "RcisTarget" version)) + (sha256 + (base32 + "133x2vr86ifbk82q08x1c8q19zsk5za7b6qrzz77dhsyf4bhcvpd")))) + (properties `((upstream-name . "RcisTarget"))) + (build-system r-build-system) + (propagated-inputs + `(("r-aucell" ,r-aucell) + ("r-biocgenerics" ,r-biocgenerics) + ("r-data-table" ,r-data-table) + ("r-feather" ,r-feather) + ("r-gseabase" ,r-gseabase) + ("r-r-utils" ,r-r-utils) + ("r-summarizedexperiment" ,r-summarizedexperiment))) + (home-page "https://aertslab.org/#scenic") + (synopsis "Identify transcription factor binding motifs enriched on a gene list") + (description + "RcisTarget identifies @dfn{transcription factor binding motifs} (TFBS) +over-represented on a gene list. In a first step, RcisTarget selects DNA +motifs that are significantly over-represented in the surroundings of the +@dfn{transcription start site} (TSS) of the genes in the gene-set. This is +achieved by using a database that contains genome-wide cross-species rankings +for each motif. The motifs that are then annotated to TFs and those that have +a high @dfn{Normalized Enrichment Score} (NES) are retained. Finally, for +each motif and gene-set, RcisTarget predicts the candidate target genes (i.e. +genes in the gene-set that are ranked above the leading edge).") + (license license:gpl3))) + (define-public r-cicero (package (name "r-cicero") From a9815a6cf27dd0e2140038c35d4ad5ef91f6d7d6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Aug 2019 17:39:16 +0200 Subject: [PATCH 026/158] gnu: Add r-cistopic. * gnu/packages/bioconductor.scm (r-cistopic): New variable. --- gnu/packages/bioconductor.scm | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 0a0aee7309..ea43bf2fdf 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -5186,3 +5186,47 @@ accessibility data.") `(("r-monocle3" ,r-monocle3) ,@(alist-delete "r-monocle" (package-propagated-inputs r-cicero))))))) + +(define-public r-cistopic + (let ((commit "29abd8df9afb60ff27ac3f0a590930debe926950") + (revision "0")) + (package + (name "r-cistopic") + (version (git-version "0.2.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aertslab/cisTopic.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0s8irpsv5d2zcv4ihanvsf1vrpignzliscxnvs4519af3jmx78h8")))) + (build-system r-build-system) + (propagated-inputs + `(("r-aucell" ,r-aucell) + ("r-data-table" ,r-data-table) + ("r-dplyr" ,r-dplyr) + ("r-dosnow" ,r-dosnow) + ("r-dt" ,r-dt) + ("r-feather" ,r-feather) + ("r-fitdistrplus" ,r-fitdistrplus) + ("r-genomicranges" ,r-genomicranges) + ("r-ggplot2" ,r-ggplot2) + ("r-lda" ,r-lda) + ("r-matrix" ,r-matrix) + ("r-plyr" ,r-plyr) + ("r-rcistarget" ,r-rcistarget) + ("r-rtracklayer" ,r-rtracklayer) + ("r-s4vectors" ,r-s4vectors))) + (home-page "https://github.com/aertslab/cisTopic") + (synopsis "Modelling of cis-regulatory topics from single cell epigenomics data") + (description + "The sparse nature of single cell epigenomics data can be overruled using +probabilistic modelling methods such as @dfn{Latent Dirichlet +Allocation} (LDA). This package allows the probabilistic modelling of +cis-regulatory topics (cisTopics) from single cell epigenomics data, and +includes functionalities to identify cell states based on the contribution of +cisTopics and explore the nature and regulatory proteins driving them.") + (license license:gpl3)))) From ef8c83bdb996146ff038c1c818ade3447272eb28 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 15 Aug 2019 19:15:15 +0200 Subject: [PATCH 027/158] gnu: python-responses: Update to 0.10.6. * gnu/packages/python-web.scm (python-responses): Update to 0.10.6. --- gnu/packages/python-web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 8e5324b37e..735f033883 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -1808,13 +1808,13 @@ Python.") (define-public python-responses (package (name "python-responses") - (version "0.5.1") + (version "0.10.6") (source (origin (method url-fetch) (uri (pypi-uri "responses" version)) (sha256 (base32 - "1spcfxixyk9k7pk82jm6zqkwk031s95lh8q0mz7539jrb7269bcc")))) + "147pacwkkqy3qf3hr33fnl1xbzgw0zsm3qppvvy9qhq8h069qbah")))) (build-system python-build-system) (arguments `(;; Test suite is not distributed: From e3a39ade716eff98d2cdc2ebfced2efc021cbcd5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 15 Aug 2019 19:40:28 +0200 Subject: [PATCH 028/158] gnu: Remove python2-internetarchive. This trivial package fails to build and has no reverse dependencies. * gnu/packages/web.scm (python2-internetarchive): Remove variable. (python-internetarchive)[properties]: Remove. --- gnu/packages/web.scm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 2294e77a9f..314ed8c149 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5359,14 +5359,8 @@ command-line arguments or read from stdin.") (description "@code{ia} is a command-line tool for using @url{archive.org} from the command-line. It also emplements the internetarchive python module for programmatic access to archive.org.") - (properties - `((python2-variant . ,(delay python2-internetarchive)))) (license license:agpl3+))) -(define-public python2-internetarchive - (package-with-python2 - (strip-python2-variant python-internetarchive))) - (define-public python-clf (let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7 (package From d4cf5b018a6ec9170ca1b8c46023003c164364b9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 15 Aug 2019 21:03:19 +0300 Subject: [PATCH 029/158] gnu: einstein: Use mirror for source download. * gnu/packages/games.scm (einstein)[source]: Use 'mirror' syntax. --- gnu/packages/games.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 92df556970..c37364e369 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2830,7 +2830,7 @@ players.") (version "2.0") (source (origin (method url-fetch) - (uri (string-append "http://http.debian.net/debian/pool/main/e/" + (uri (string-append "mirror://debian/pool/main/e/" "einstein/einstein_2.0.dfsg.2.orig.tar.gz")) (sha256 (base32 From 369faa59955ffc2a81ac1a068c8b2c2fec7a4a12 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Mon, 12 Aug 2019 21:20:01 +0200 Subject: [PATCH 030/158] gnu: Add ruby-json-schema. * gnu/packages/ruby.scm (ruby-json-schema): New variable. --- gnu/packages/ruby.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1b70f842ae..94a5377c46 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2018 Alex Vong ;;; Copyright © 2019 Pierre Neidhardt ;;; Copyright © 2019 Mikhail Kirillov +;;; Copyright © 2019 Jelle Licht ;;; ;;; This file is part of GNU Guix. ;;; @@ -8737,3 +8738,32 @@ then check out http://127.0.0.1:1080 to see the mail.") "This package provides a pure Ruby library for event-driven IO.") (home-page "https://github.com/castwide/backport") (license license:expat))) + +(define-public ruby-json-schema + (package + (name "ruby-json-schema") + (version "2.8.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "json-schema" version)) + (sha256 + (base32 + "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (invoke "gem" "build" ".gemspec")))))) + (propagated-inputs + `(("ruby-addressable" ,ruby-addressable))) + (synopsis "Ruby JSON Schema Validator") + (description "This library provides Ruby with an interface for validating +JSON objects against a JSON schema conforming to JSON Schema Draft 4. Legacy +support for JSON Schema Draft 3, JSON Schema Draft 2, and JSON Schema Draft 1 +is also included.") + (home-page "https://github.com/ruby-json-schema/json-schema") + (license license:expat))) From 44881cad93801de9462d469500d582af79b99959 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Mon, 12 Aug 2019 21:20:47 +0200 Subject: [PATCH 031/158] gnu: Add swagger-diff. * gnu/packages/ruby.scm (swagger-diff): New variable. --- gnu/packages/ruby.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 94a5377c46..cee78656cb 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -8767,3 +8767,43 @@ support for JSON Schema Draft 3, JSON Schema Draft 2, and JSON Schema Draft 1 is also included.") (home-page "https://github.com/ruby-json-schema/json-schema") (license license:expat))) + +(define-public swagger-diff + (package + (name "swagger-diff") + (version "1.1.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "swagger-diff" version)) + (sha256 + (base32 + "1hxx50nga1bqn254iqjcdwkc9c72364ks9lyjyw10ajz0l0ly7sn")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "spec" + #:phases + (modify-phases %standard-phases + ;; Don't run or require rubocop, the code linting tool, as this is a + ;; bit unnecessary. + (add-after 'unpack 'dont-run-rubocop + (lambda _ + (substitute* "Rakefile" + ((".*rubocop.*") "") + ((".*RuboCop.*") "")) + #t))))) + (propagated-inputs + `(("ruby-json-schema" ,ruby-json-schema))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec-core" ,ruby-rspec-core) + ("ruby-rspec-expectations" ,ruby-rspec-expectations))) + (synopsis + "Compare Open API Initiative specification files") + (description + "Swagger::Diff is a utility for comparing two different Open API +Initiative (OAI) specifications (formerly known as Swagger specifications). +It is intended to determine whether a newer API specification is +backwards-compatible with an older API specification.") + (home-page "https://github.com/civisanalytics/swagger-diff") + (license license:bsd-3))) From f1d2e4bac0b3ca338c0e93c4597f4a46eb8d2d65 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 16 Aug 2019 05:32:01 -0400 Subject: [PATCH 032/158] gnu: linux-libre@4.14: Update to 4.14.139. * gnu/packages/linux.scm (linux-libre-4.14-version): Update to 4.14.139. (linux-libre-4.14-pristine-source)[hash]: Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 301979a7a5..cf8e453635 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -366,10 +366,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.138") +(define-public linux-libre-4.14-version "4.14.139") (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "0yw39cqpk6g42q0xcv2aq8yyzsi0kzx9nvlfbw0iyg58wcfvsl7j"))) + (hash (base32 "0hkhwcbxg6bry13w9kspx48b10274w6pgv200wh91fjd8jax8qlc"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) From 97f40332d4fc02fcdeda08669469ecdcf4c6c02b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 16 Aug 2019 05:33:09 -0400 Subject: [PATCH 033/158] gnu: linux-libre@4.19: Update to 4.19.67. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.67. (linux-libre-4.19-pristine-source)[hash]: Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index cf8e453635..265f18cd1c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -358,10 +358,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-5.2))) -(define-public linux-libre-4.19-version "4.19.66") +(define-public linux-libre-4.19-version "4.19.67") (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "0r6vzarmi77fhivd1n6f667sgcw8zd54ykmhmp6rd52bbkhsp0f9"))) + (hash (base32 "00m5k0nfcvgff70686rbhn3w8c9wc3jxqvyddw40lylaqdh3s72s"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) From ccff55a25e535872d412e1a463064c1b70be2f55 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 16 Aug 2019 05:33:54 -0400 Subject: [PATCH 034/158] gnu: linux-libre: Update to 5.2.9. * gnu/packages/linux.scm (linux-libre-5.2-version): Update to 5.2.9. (linux-libre-5.2-pristine-source)[hash]: Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 265f18cd1c..99087638f6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -350,10 +350,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." "linux-" version ".tar.xz")) (sha256 hash))) -(define-public linux-libre-5.2-version "5.2.8") +(define-public linux-libre-5.2-version "5.2.9") (define-public linux-libre-5.2-pristine-source (let ((version linux-libre-5.2-version) - (hash (base32 "0dv91zfjkil29lp2l35lswkrhrqbc4kjh965ciaqwih1rh3cs9x1"))) + (hash (base32 "1rnlnphw9rih4qhdld9ic5lnj5jh4vy5nqbj9lqwv9bc615jmw5n"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.2))) From ddef146b894a1b1158b56bad72ca265537a55764 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Thu, 15 Aug 2019 12:09:58 -0400 Subject: [PATCH 035/158] remote: Resolve missing 'G_'. * guix/remote.scm: Require (guix i18n). --- guix/remote.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/guix/remote.scm b/guix/remote.scm index ae2fe17dd2..d0c3d04a25 100644 --- a/guix/remote.scm +++ b/guix/remote.scm @@ -19,6 +19,7 @@ (define-module (guix remote) #:use-module (guix ssh) #:use-module (guix gexp) + #:use-module (guix i18n) #:use-module (guix inferior) #:use-module (guix store) #:use-module (guix monads) From 4cc5e5204b503afb4536a1e93e2fd7a9f57f12bf Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Thu, 15 Aug 2019 12:09:11 -0400 Subject: [PATCH 036/158] machine: Use 'become-command'. * gnu/machine/ssh.scm (managed-host-remote-eval): Pass an appropriate 'become-command' to 'remote-eval'. * guix/ssh.scm (remote-authorize-signing-key): Add optional 'become-command' argument. All callers changed. --- gnu/machine/ssh.scm | 7 +++++-- guix/ssh.scm | 5 +++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm index ac3aa3e370..aafe0ccf41 100644 --- a/gnu/machine/ssh.scm +++ b/gnu/machine/ssh.scm @@ -126,7 +126,9 @@ an environment type of 'managed-host." #:build-locally? (machine-ssh-configuration-build-locally? config) #:system - (machine-ssh-configuration-system config)))) + (machine-ssh-configuration-system config) + #:become-command + (machine-become-command machine)))) ;;; @@ -377,7 +379,8 @@ have you run 'guix archive --generate-key?'") (lambda (port) (string->canonical-sexp (get-string-all port)))) - (machine-ssh-session machine))) + (machine-ssh-session machine) + (machine-become-command machine))) (mlet %store-monad ((_ (check-deployment-sanity machine)) (boot-parameters (machine-boot-parameters machine))) (let* ((os (machine-operating-system machine)) diff --git a/guix/ssh.scm b/guix/ssh.scm index 24834c6f68..7bc499a2fe 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -302,7 +302,7 @@ the machine on the other end of SESSION." (inferior-remote-eval '(begin (use-modules (guix utils)) (%current-system)) session)) -(define (remote-authorize-signing-key key session) +(define* (remote-authorize-signing-key key session #:optional become-command) "Send KEY, a canonical sexp containing a public key, over SESSION and add it to the system ACL file if it has not yet been authorized." (inferior-remote-eval @@ -321,7 +321,8 @@ to the system ACL file if it has not yet been authorized." (mkdir-p (dirname %acl-file)) (with-atomic-file-output %acl-file (cut write-acl acl <>))))) - session)) + session + become-command)) (define* (send-files local files remote #:key From c586f427b4831b9b492e5b900b2226e898b8fcfa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 16 Aug 2019 14:56:37 +0200 Subject: [PATCH 037/158] build-system/r: bioconductor-uri: Take optional package type. * guix/build-system/r.scm (bioconductor-uri): Take optional TYPE argument to return annotation or experiment URLs. --- guix/build-system/r.scm | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/guix/build-system/r.scm b/guix/build-system/r.scm index e7214155be..dd2a9fe8de 100644 --- a/guix/build-system/r.scm +++ b/guix/build-system/r.scm @@ -47,14 +47,22 @@ available via the first URI, the second URI points to the archived version." (string-append "mirror://cran/src/contrib/Archive/" name "/" name "_" version ".tar.gz"))) -(define (bioconductor-uri name version) +(define* (bioconductor-uri name version #:optional type) "Return a URI string for the R package archive on Bioconductor for the release corresponding to NAME and VERSION." - (list (string-append "https://bioconductor.org/packages/release/bioc/src/contrib/" - name "_" version ".tar.gz") - ;; TODO: use %bioconductor-version from (guix import cran) - (string-append "https://bioconductor.org/packages/3.9/bioc/src/contrib/Archive/" - name "_" version ".tar.gz"))) + (let ((type-url-part (match type + ('annotation "/data/annotation") + ('experiment "/data/experiment") + (_ "/bioc")))) + (list (string-append "https://bioconductor.org/packages/release" + type-url-part + "/src/contrib/" + name "_" version ".tar.gz") + ;; TODO: use %bioconductor-version from (guix import cran) + (string-append "https://bioconductor.org/packages/3.9" + type-url-part + "/src/contrib/Archive/" + name "_" version ".tar.gz")))) (define %r-build-system-modules ;; Build-side modules imported by default. From 5063deab0800ca3f75fa4671dc544cc212326608 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 16 Aug 2019 14:59:23 +0200 Subject: [PATCH 038/158] import: cran: Support experiment and annotation packages. * guix/import/cran.scm (%bioconductor-packages-list-url): Replace variable... (bioconductor-packages-list-url): ...with this procedure. (bioconductor-packages-list): Accept optional TYPE argument. (latest-bioconductor-package-version): Same. (fetch-description): Determine package type and use it in calls to LATEST-BIOCONDUCTOR-PACKAGE-VERSION and BIOCONDUCTOR-URI. (description->package): Pass package type to URI helper procedure; include package type in annotation or experiment packages from Bioconducter. --- guix/import/cran.scm | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/guix/import/cran.scm b/guix/import/cran.scm index 3240094444..9c964701b1 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -132,14 +132,19 @@ package definition." ;; updated together. (define %bioconductor-version "3.9") -(define %bioconductor-packages-list-url +(define* (bioconductor-packages-list-url #:optional type) (string-append "https://bioconductor.org/packages/" - %bioconductor-version "/bioc/src/contrib/PACKAGES")) + %bioconductor-version + (match type + ('annotation "/data/annotation") + ('experiment "/data/experiment") + (_ "/bioc")) + "/src/contrib/PACKAGES")) -(define (bioconductor-packages-list) +(define* (bioconductor-packages-list #:optional type) "Return the latest version of package NAME for the current bioconductor release." - (let ((url (string->uri %bioconductor-packages-list-url))) + (let ((url (string->uri (bioconductor-packages-list-url type)))) (guard (c ((http-get-error? c) (format (current-error-port) "error: failed to retrieve list of packages from ~s: ~a (~s)~%" @@ -153,12 +158,12 @@ release." (description->alist (string-join chunk "\n"))) (chunk-lines (read-lines (http-fetch/cached url))))))) -(define (latest-bioconductor-package-version name) +(define* (latest-bioconductor-package-version name #:optional type) "Return the version string corresponding to the latest release of the bioconductor package NAME, or #F if the package is unknown." (and=> (find (lambda (meta) (string=? (assoc-ref meta "Package") name)) - (bioconductor-packages-list)) + (bioconductor-packages-list type)) (cut assoc-ref <> "Version"))) ;; Little helper to download URLs only once. @@ -187,8 +192,12 @@ from ~s: ~a (~s)~%" ;; Currently, the bioconductor project does not offer a way to access a ;; package's DESCRIPTION file over HTTP, so we determine the version, ;; download the source tarball, and then extract the DESCRIPTION file. - (and-let* ((version (latest-bioconductor-package-version name)) - (url (car (bioconductor-uri name version))) + (and-let* ((type (or + (and (latest-bioconductor-package-version name) #t) + (and (latest-bioconductor-package-version name 'annotation) 'annotation) + (and (latest-bioconductor-package-version name 'experiment) 'experiment))) + (version (latest-bioconductor-package-version name type)) + (url (car (bioconductor-uri name version type))) (tarball (download url))) (call-with-temporary-directory (lambda (dir) @@ -198,8 +207,11 @@ from ~s: ~a (~s)~%" "--strip-components=1" "-C" dir "-f" tarball "*/DESCRIPTION")) - (description->alist (with-input-from-file - (string-append dir "/DESCRIPTION") read-string)))))))))) + (and=> (description->alist (with-input-from-file + (string-append dir "/DESCRIPTION") read-string)) + (lambda (meta) + (if (boolean? type) meta + (cons `(bioconductor-type . ,type) meta)))))))))))) (define (listify meta field) "Look up FIELD in the alist META. If FIELD contains a comma-separated @@ -306,7 +318,11 @@ from the alist META, which was derived from the R package's DESCRIPTION file." (home-page (match (listify meta "URL") ((url rest ...) url) (_ (string-append base-url name)))) - (source-url (match (uri-helper name version) + (source-url (match (apply uri-helper name version + (case repository + ((bioconductor) + (list (assoc-ref meta 'bioconductor-type))) + (else '()))) ((url rest ...) url) ((? string? url) url) (_ #f))) @@ -330,7 +346,11 @@ from the alist META, which was derived from the R package's DESCRIPTION file." (version ,version) (source (origin (method url-fetch) - (uri (,(procedure-name uri-helper) ,name version)) + (uri (,(procedure-name uri-helper) ,name version + ,@(or (and=> (assoc-ref meta 'bioconductor-type) + (lambda (type) + (list (list 'quote type)))) + '()))) (sha256 (base32 ,(bytevector->nix-base32-string (file-sha256 tarball)))))) From f781251bf25ed13f5072a0ef3b8b65aae2bbc32d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Aug 2019 21:14:22 +0200 Subject: [PATCH 039/158] gnu: wcslib: Update to 6.4. * gnu/packages/astronomy.scm (wcslib): Update to 6.4. --- gnu/packages/astronomy.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 3312fe0c47..1160feb553 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -81,15 +81,15 @@ in FITS files.") (define-public wcslib (package (name "wcslib") - (version "6.2") + (version "6.4") (source (origin (method url-fetch) (uri (string-append - "ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib" version + "ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-" version ".tar.bz2")) (sha256 - (base32 "01fqckazhbfqqhyr0wd9vcks1m2afmsh83l981alxg2r54jgwkdv")))) + (base32 "003h23m6d5wcs29v2vbnl63f3z35k5x70lpsqlz5c9bp1bvizh8k")))) (inputs `(("cfitsio" ,cfitsio))) (build-system gnu-build-system) From 93b3ef1966f9860ae88b87263f8c7f6052565c3f Mon Sep 17 00:00:00 2001 From: Alva Date: Fri, 16 Aug 2019 00:52:08 +0200 Subject: [PATCH 040/158] gnu: font-ibm-plex: Update to 2.0.0. * gnu/packages/fonts.scm (font-ibm-plex): Update to 2.0.0. Signed-off-by: Tobias Geerinckx-Rice --- gnu/packages/fonts.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 2dc1df45c8..1e28191ae1 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2019 Jens Mølgaard ;;; Copyright © 2019 Nicolas Goaziou ;;; Copyright © 2019 Baptiste Strazzulla +;;; Copyright © 2019 Alva ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,7 +64,7 @@ (define-public font-ibm-plex (package (name "font-ibm-plex") - (version "1.0.1") + (version "2.0.0") (source (origin (method url-fetch) (uri (string-append @@ -71,7 +72,7 @@ "v" version "/OpenType.zip")) (sha256 (base32 - "0nzxw9z6waixslam248yr26ci3fbk83c7jf6m90hncnaj6zxx795")))) + "1lv65z3qnqgh2w36daf5wyz0ma9rg1qj9s9lzlnva8l7q3h8c9b8")))) (build-system font-build-system) (home-page "https://github.com/IBM/plex") (synopsis "IBM Plex typeface") From b65bd33c36dcc290193a419b34ad4d4a7b3ff14d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 16 Aug 2019 22:41:11 +0200 Subject: [PATCH 041/158] gnu: r-edger: Update to 3.26.7. * gnu/packages/bioinformatics.scm (r-edger): Update to 3.26.7. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index a9e0264369..d729b1bc00 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7458,13 +7458,13 @@ names in their natural, rather than lexicographic, order.") (define-public r-edger (package (name "r-edger") - (version "3.26.6") + (version "3.26.7") (source (origin (method url-fetch) (uri (bioconductor-uri "edgeR" version)) (sha256 (base32 - "17vadhamjv4x0l4qqq2p2fi6j2bkllz5zd8dq761vgd5ic23zizm")))) + "1xbhb8aa1ygm5crkp1bmqs2x1601ppa2kgc2xlf2zh8jj8zqapg8")))) (properties `((upstream-name . "edgeR"))) (build-system r-build-system) (propagated-inputs From a7c714d3983c746d14b759707ff9e3487d580dd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 16 Aug 2019 14:57:06 +0200 Subject: [PATCH 042/158] channels: Add 'profile-channels'. * guix/channels.scm (profile-channels): New procedure. * guix/scripts/describe.scm (display-profile-info)[channels]: Define in terms of 'profile-channels'. --- guix/channels.scm | 28 +++++++++++++++++++++++++++- guix/scripts/describe.scm | 27 +++------------------------ 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index 415246cbd1..ebb2cacbc7 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -65,7 +65,9 @@ latest-channel-derivation channel-instances->manifest %channel-profile-hooks - channel-instances->derivation)) + channel-instances->derivation + + profile-channels)) ;;; Commentary: ;;; @@ -534,3 +536,27 @@ channel instances." latest instances of CHANNELS." (mlet %store-monad ((instances (latest-channel-instances* channels))) (channel-instances->derivation instances))) + +(define (profile-channels profile) + "Return the list of channels corresponding to entries in PROFILE. If +PROFILE is not a profile created by 'guix pull', return the empty list." + (filter-map (lambda (entry) + (match (assq 'source (manifest-entry-properties entry)) + (('source ('repository ('version 0) + ('url url) + ('branch branch) + ('commit commit) + _ ...)) + (channel (name (string->symbol + (manifest-entry-name entry))) + (url url) + (commit commit))) + + ;; No channel information for this manifest entry. + ;; XXX: Pre-0.15.0 Guix did not provide that information, + ;; but there's not much we can do in that case. + (_ #f))) + + ;; Show most recently installed packages last. + (reverse + (manifest-entries (profile-manifest profile))))) diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm index fa6b6cae37..99a88c50fa 100644 --- a/guix/scripts/describe.scm +++ b/guix/scripts/describe.scm @@ -153,30 +153,9 @@ in the format specified by FMT." (generation-number profile)) (define channels - (map (lambda (entry) - (match (assq 'source (manifest-entry-properties entry)) - (('source ('repository ('version 0) - ('url url) - ('branch branch) - ('commit commit) - _ ...)) - (channel (name (string->symbol (manifest-entry-name entry))) - (url url) - (commit commit))) - - ;; Pre-0.15.0 Guix does not provide that information, - ;; so there's not much we can do in that case. - (_ (channel (name 'guix) - (url "?") - (commit "?"))))) - - ;; Show most recently installed packages last. - (reverse - (manifest-entries - (profile-manifest - (if (zero? number) - profile - (generation-file-name profile number))))))) + (profile-channels (if (zero? number) + profile + (generation-file-name profile number)))) (match fmt ('human From 268896444bed7b958add74b2e1e86ff802c5f5cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 16 Aug 2019 18:41:55 +0200 Subject: [PATCH 043/158] derivations: Delete duplicate inputs when computing derivation hash. Fixes . Reported by Carl Dong . * guix/derivations.scm (derivation/masked-inputs): Call 'delete-duplicates' on INPUTS. * tests/derivations.scm ("derivation with duplicate fixed-output inputs"): New test. --- guix/derivations.scm | 2 +- tests/derivations.scm | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/guix/derivations.scm b/guix/derivations.scm index 92d50503ce..b3928920e2 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -685,7 +685,7 @@ name of each input with that input's hash." (make-derivation-input hash sub-drvs)))) inputs))) (make-derivation outputs - (sort inputs + (sort (delete-duplicates inputs) (lambda (drv1 drv2) (stringoutput-path final1) (derivation->output-path final2))))) +(test-assert "derivation with duplicate fixed-output inputs" + ;; Here we create a derivation that has two inputs, both of which are + ;; fixed-output leading to the same result. This test ensures the hash of + ;; that derivation is correctly computed, namely that duplicate inputs are + ;; coalesced. See . + (let* ((builder1 (add-text-to-store %store "fixed-builder1.sh" + "echo -n hello > $out" '())) + (builder2 (add-text-to-store %store "fixed-builder2.sh" + "echo hey; echo -n hello > $out" '())) + (hash (sha256 (string->utf8 "hello"))) + (fixed1 (derivation %store "fixed" + %bash `(,builder1) + #:hash hash #:hash-algo 'sha256)) + (fixed2 (derivation %store "fixed" + %bash `(,builder2) + #:hash hash #:hash-algo 'sha256)) + (builder3 (add-text-to-store %store "builder.sh" + "echo fake builder")) + (final (derivation %store "final" + %bash `(,builder3) + #:sources (list %bash builder3) + #:inputs (list (derivation-input fixed1) + (derivation-input fixed2))))) + (and (derivation? final) + (match (derivation-inputs final) + (((= derivation-input-derivation one) + (= derivation-input-derivation two)) + (and (not (string=? (derivation-file-name one) + (derivation-file-name two))) + (string=? (derivation->output-path one) + (derivation->output-path two)))))))) + (test-assert "multiple-output derivation" (let* ((builder (add-text-to-store %store "my-fixed-builder.sh" "echo one > $out ; echo two > $second" From 4f8b9d1a6f551697996c77b6e1741007e1f7c9cd Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 4 Mar 2018 02:09:08 +0100 Subject: [PATCH 044/158] linux-modules: Add "modules.alias" writer. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/build/linux-modules.scm (write-module-alias-database): New procedure. Co-authored-by: Ludovic Courtès --- gnu/build/linux-modules.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm index c66ef97012..9b9fc0d9d8 100644 --- a/gnu/build/linux-modules.scm +++ b/gnu/build/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2016, 2018, 2019 Ludovic Courtès ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2018 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,7 +49,9 @@ device-module-aliases known-module-aliases matching-modules - missing-modules)) + missing-modules + + write-module-alias-database)) ;;; Commentary: ;;; @@ -486,4 +489,22 @@ are required to access DEVICE." (remove (cut member <> provided) modules)) '())) +(define (write-module-alias-database directory) + "Traverse the '.ko' files in DIRECTORY and create the corresponding +'modules.alias' file." + (define aliases + (map (lambda (file) + (cons (file-name->module-name file) (module-aliases file))) + (find-files directory "\\.ko$"))) + + (call-with-output-file (string-append directory "/modules.alias") + (lambda (port) + (display "# Aliases extracted from modules themselves.\n" port) + (for-each (match-lambda + ((module . aliases) + (for-each (lambda (alias) + (format port "alias ~a ~a\n" alias module)) + aliases))) + aliases)))) + ;;; linux-modules.scm ends here From 2a693b69ca35ee942395e1adf458a666846881fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 12 Mar 2018 10:43:15 +0100 Subject: [PATCH 045/158] linux-modules: Add "modules.devname" writer. * gnu/build/linux-modules.scm (aliases->device-tuple) (write-module-device-database): New procedures. (%not-dash): New variable. Co-authored-by: Danny Milosavljevic . --- gnu/build/linux-modules.scm | 52 ++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm index 9b9fc0d9d8..a73ccaf511 100644 --- a/gnu/build/linux-modules.scm +++ b/gnu/build/linux-modules.scm @@ -51,7 +51,8 @@ matching-modules missing-modules - write-module-alias-database)) + write-module-alias-database + write-module-device-database)) ;;; Commentary: ;;; @@ -507,4 +508,53 @@ are required to access DEVICE." aliases))) aliases)))) +(define (aliases->device-tuple aliases) + "Traverse ALIASES, a list of module aliases, and search for +\"char-major-M-N\", \"block-major-M-N\", or \"devname:\" aliases. When they +are found, return a tuple (DEVNAME TYPE MAJOR MINOR), otherwise return #f." + (define (char/block-major? alias) + (or (string-prefix? "char-major-" alias) + (string-prefix? "block-major-" alias))) + + (define (char/block-major->tuple alias) + (match (string-tokenize alias %not-dash) + ((type "major" (= string->number major) (= string->number minor)) + (list (match type + ("char" "c") + ("block" "b")) + major minor)))) + + (let* ((devname (any (lambda (alias) + (and (string-prefix? "devname:" alias) + (string-drop alias 8))) + aliases)) + (major/minor (match (find char/block-major? aliases) + (#f #f) + (str (char/block-major->tuple str))))) + (and devname major/minor + (cons devname major/minor)))) + +(define %not-dash + (char-set-complement (char-set #\-))) + +(define (write-module-device-database directory) + "Traverse the '.ko' files in DIRECTORY and create the corresponding +'modules.devname' file. This file contains information about modules that can +be loaded on-demand, such as file system modules." + (define aliases + (filter-map (lambda (file) + (match (aliases->device-tuple (module-aliases file)) + (#f #f) + (tuple (cons (file-name->module-name file) tuple)))) + (find-files directory "\\.ko$"))) + + (call-with-output-file (string-append directory "/modules.devname") + (lambda (port) + (display "# Device nodes to trigger on-demand module loading.\n" port) + (for-each (match-lambda + ((module devname type major minor) + (format port "~a ~a ~a~a:~a~%" + module devname type major minor))) + aliases)))) + ;;; linux-modules.scm ends here From e1a9a7f2755dc23e1f4635c8aee45e1467c01619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 9 Mar 2018 10:41:46 +0100 Subject: [PATCH 046/158] linux-modules: Add 'load-linux-modules-from-directory'. * gnu/build/linux-modules.scm (load-linux-modules-from-directory): New procedure. * gnu/build/linux-boot.scm (boot-system)[lookup-module]: Remove. Use 'load-linux-modules-from-directory' instead. --- gnu/build/linux-boot.scm | 9 ++------- gnu/build/linux-modules.scm | 12 ++++++++++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index 03f2ea245c..f273957d78 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -471,10 +471,6 @@ upon error." mounts) "ext4")) - (define (lookup-module name) - (string-append linux-module-directory "/" - (ensure-dot-ko name))) - (display "Welcome, this is GNU's early boot Guile.\n") (display "Use '--repl' for an initrd REPL.\n\n") @@ -489,9 +485,8 @@ upon error." (start-repl)) (display "loading kernel modules...\n") - (for-each (cut load-linux-module* <> - #:lookup-module lookup-module) - (map lookup-module linux-modules)) + (load-linux-modules-from-directory linux-modules + linux-module-directory) (when keymap-file (let ((status (system* "loadkeys" keymap-file))) diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm index a73ccaf511..2af7c33d42 100644 --- a/gnu/build/linux-modules.scm +++ b/gnu/build/linux-modules.scm @@ -43,6 +43,7 @@ modules-loaded module-loaded? load-linux-module* + load-linux-modules-from-directory current-module-debugging-port @@ -314,6 +315,17 @@ appears in BLACK-LIST are not loaded." (or (and recursive? (= EEXIST (system-error-errno args))) (apply throw args))))))) +(define (load-linux-modules-from-directory modules directory) + "Load MODULES and their dependencies from DIRECTORY, a directory containing +the '.ko' files. The '.ko' suffix is automatically added to MODULES if +needed." + (define (lookup-module name) + (string-append directory "/" (ensure-dot-ko name))) + + (for-each (cut load-linux-module* <> + #:lookup-module lookup-module) + (map lookup-module modules))) + ;;; ;;; Device modules. From c85ccf60bfe4ef58110bb61f40df7f526d2a5735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 14 Mar 2018 23:11:01 +0100 Subject: [PATCH 047/158] linux-modules: Define and use a module name database. Fixes . Reported by Julien Lepiller . * gnu/build/linux-modules.scm (module-formal-name): New procedure. (load-linux-modules-from-directory)[lookup-module]: Remove. [module-name->file-name]: New variable. Use it. (module-name->file-name/guess, module-name-lookup) (write-module-name-database): New procedures. * gnu/system/linux-initrd.scm (flat-linux-module-directory): Call 'write-module-name-database'. --- gnu/build/linux-modules.scm | 72 ++++++++++++++++++++++++++++++++++--- gnu/system/linux-initrd.scm | 5 ++- 2 files changed, 71 insertions(+), 6 deletions(-) diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm index 2af7c33d42..a149eff329 100644 --- a/gnu/build/linux-modules.scm +++ b/gnu/build/linux-modules.scm @@ -31,8 +31,10 @@ #:use-module (ice-9 vlist) #:use-module (ice-9 match) #:use-module (ice-9 rdelim) + #:autoload (ice-9 pretty-print) (pretty-print) #:export (dot-ko ensure-dot-ko + module-formal-name module-aliases module-dependencies module-soft-dependencies @@ -52,6 +54,7 @@ matching-modules missing-modules + write-module-name-database write-module-alias-database write-module-device-database)) @@ -100,6 +103,14 @@ key/value pairs.." (define %not-comma (char-set-complement (char-set #\,))) +(define (module-formal-name file) + "Return the module name of FILE as it appears in its info section. Usually +the module name is the same as the base name of FILE, modulo hyphens and minus +the \".ko\" extension." + (match (assq 'name (modinfo-section-contents file)) + (('name . name) name) + (#f #f))) + (define (module-dependencies file) "Return the list of modules that FILE depends on. The returned list contains module names, not actual file names." @@ -319,12 +330,13 @@ appears in BLACK-LIST are not loaded." "Load MODULES and their dependencies from DIRECTORY, a directory containing the '.ko' files. The '.ko' suffix is automatically added to MODULES if needed." - (define (lookup-module name) - (string-append directory "/" (ensure-dot-ko name))) + (define module-name->file-name + (module-name-lookup directory)) - (for-each (cut load-linux-module* <> - #:lookup-module lookup-module) - (map lookup-module modules))) + (for-each (lambda (module) + (load-linux-module* (module-name->file-name module) + #:lookup-module module-name->file-name)) + modules)) ;;; @@ -502,6 +514,56 @@ are required to access DEVICE." (remove (cut member <> provided) modules)) '())) + +;;; +;;; Module databases. +;;; + +(define (module-name->file-name/guess directory name) + "Guess the file name corresponding to NAME, a module name. That doesn't +always work because sometimes underscores in NAME map to hyphens (e.g., +\"input-leds.ko\"), sometimes not (e.g., \"mac_hid.ko\")." + (string-append directory "/" (ensure-dot-ko name))) + +(define (module-name-lookup directory) + "Return a one argument procedure that takes a module name (e.g., +\"input_leds\") and returns its absolute file name (e.g., +\"/.../input-leds.ko\")." + (catch 'system-error + (lambda () + (define mapping + (call-with-input-file (string-append directory "/modules.name") + read)) + + (lambda (name) + (or (assoc-ref mapping name) + (module-name->file-name/guess directory name)))) + (lambda args + (if (= ENOENT (system-error-errno args)) + (cut module-name->file-name/guess directory <>) + (apply throw args))))) + +(define (write-module-name-database directory) + "Write a database that maps \"module names\" as they appear in the relevant +ELF section of '.ko' files, to actual file names. This format is +Guix-specific. It aims to deal with inconsistent naming, in particular +hyphens vs. underscores." + (define mapping + (map (lambda (file) + (match (module-formal-name file) + (#f (cons (basename file ".ko") file)) + (name (cons name file)))) + (find-files directory "\\.ko$"))) + + (call-with-output-file (string-append directory "/modules.name") + (lambda (port) + (display ";; Module name to file name mapping. +;; +;; This format is Guix-specific; it is not supported by upstream Linux tools. +\n" + port) + (pretty-print mapping port)))) + (define (write-module-alias-database directory) "Traverse the '.ko' files in DIRECTORY and create the corresponding 'modules.alias' file." diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index c90b87c023..7e9563b923 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -133,7 +133,10 @@ MODULES and taken from LINUX." (copy-file module (string-append #$output "/" (basename module)))) - (delete-duplicates modules))))) + (delete-duplicates modules)) + + ;; Hyphen or underscore? This database tells us. + (write-module-name-database #$output)))) (computed-file "linux-modules" build-exp)) From 3b165f2a401a6f890f5f93371bdf137daf09c493 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Fri, 16 Aug 2019 18:36:50 +0200 Subject: [PATCH 048/158] gnu: wpa-supplicant: install documentation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/admin.scm (wpa-supplicant)[arguments]: Rename 'install-man-pages' phase to 'install-documentation'; install READMEs and the example config file. Signed-off-by: Ludovic Courtès --- gnu/packages/admin.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index bd3c14033e..979b901c1a 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1240,9 +1240,10 @@ commands and their arguments.") CONFIG_READLINE=y\n" port) (close-port port)) #t)) - (add-after 'install 'install-man-pages + (add-after 'install 'install-documentation (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/wpa-supplicant")) (man (string-append out "/share/man")) (man5 (string-append man "/man5")) (man8 (string-append man "/man8"))) @@ -1255,6 +1256,15 @@ commands and their arguments.") (find-files "doc/docbook" "\\.5")) (for-each (copy-man-page man8) (find-files "doc/docbook" "\\.8")) + + ;; wpa_supplicant.conf(5) does not explain all configuration + ;; options but refers to the example config file, so install it + ;; along with READMEs. + (for-each (lambda (file) + (install-file file doc)) + '("README" "README-DPP" "README-HS20" + "README-P2P" "README-WPS" + "wpa_supplicant.conf")) #t)))) #:make-flags (list "CC=gcc" @@ -1303,7 +1313,7 @@ command.") CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port) (close-port port)) #t)) - (add-after 'install-man-pages 'install-dbus-conf + (add-after 'install-documentation 'install-dbus-conf (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (dir (string-append out "/etc/dbus-1/system.d"))) From 66d146639d0dfd2efaed4a429dbb845172dc4f24 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Fri, 16 Aug 2019 11:19:56 +0200 Subject: [PATCH 049/158] gnu: txr: Update to 223. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/lisp.scm (txr): Update to 223. Signed-off-by: Ludovic Courtès --- gnu/packages/lisp.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index d2bed231bd..a42369ba06 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -5319,7 +5319,7 @@ port within a range.") (define-public txr (package (name "txr") - (version "216") + (version "223") (source (origin (method url-fetch) @@ -5329,7 +5329,7 @@ port within a range.") (patches (search-patches "txr-shell.patch")) (sha256 (base32 - "07cxdpc9zsqd0c2668g00dqjpd6zc4mfdn74aarr6d2hpzdhh937")))) + "0109q8idqggba3kx58dpm5ccfpdrki68npkcxm18p5ga24611fcv")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("cc=gcc") @@ -5343,7 +5343,7 @@ port within a range.") #t)) (replace 'check (lambda _ - (zero? (system* "make" "tests"))))))) + (invoke "make" "tests")))))) (native-inputs `(("bison" ,bison) ("flex" ,flex))) From 7d30b58808e17fd194000c8bde10c5e8b30d5af0 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Fri, 16 Aug 2019 11:42:37 +0200 Subject: [PATCH 050/158] gnu: gramps: Update to 5.0.2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/genealogy.scm (gramps): Update to 5.0.2. Signed-off-by: Ludovic Courtès --- gnu/packages/genealogy.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/genealogy.scm b/gnu/packages/genealogy.scm index 2db3fdb918..ec9d99400f 100644 --- a/gnu/packages/genealogy.scm +++ b/gnu/packages/genealogy.scm @@ -38,7 +38,7 @@ (define-public gramps (package (name "gramps") - (version "5.0.1") + (version "5.0.2") (source (origin (method git-fetch) @@ -48,7 +48,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1jz1fbjj6byndvir7qxzhd2ryirrd5h2kwndxpp53xdc05z1i8g7")))) + "0wg743q8ixy5dmwricgkl4zck4109vq5ppmkyi18qjmna9m0aq7r")))) (build-system python-build-system) (native-inputs `(("gettext" ,gettext-minimal) From a830d14d4be2f81192e49a91a21a15121808e0a8 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Wed, 14 Aug 2019 19:23:02 +0200 Subject: [PATCH 051/158] gnu: Add libgit2-glib. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (libgit2-glib): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/gnome.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index da6cbf2a05..d5e46e09c1 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -8283,3 +8283,35 @@ advanced image management tool") (description "The aim of the handy library is to help with developing user intefaces for mobile devices using GTK+.") (license license:lgpl2.1+))) + +(define-public libgit2-glib + (package + (name "libgit2-glib") + (version "0.28.0.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7")))) + (build-system meson-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ;; For glib-mkenums + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("libssh2" ,libssh2) + ("pkg-config" ,pkg-config) + ("python-pygobject" ,python-pygobject) + ("python-wrapper" ,python-wrapper) + ("vala" ,vala))) + (inputs + `(("glib" ,glib) + ("libgit2" ,libgit2))) + (synopsis "GLib wrapper around the libgit2 Git access library") + (description "libgit2-glib is a GLib wrapper library around the libgit2 Git +access library. It only implements the core plumbing functions, not really the +higher level porcelain stuff.") + (home-page "https://wiki.gnome.org/Projects/Libgit2-glib") + (license license:gpl2+))) From 2a63974df9b6ce2ec076b24f300e63b6b3df549f Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sat, 17 Aug 2019 10:00:27 +0200 Subject: [PATCH 052/158] gnu: wine-staging: Update to 4.14. * gnu/packages/wine.scm (wine-staging-patchset-data): Update to 4.14. * gnu/packages/wine.scm (wine-staging): Update to 4.14. * gnu/packages/wine.scm (wine64-staging): Remove obsolete comment. --- gnu/packages/wine.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 43dae3cf7c..b8a2264153 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -318,7 +318,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "4.13") + (version "4.14") (source (origin (method git-fetch) @@ -328,7 +328,7 @@ integrate Windows applications into your desktop.") (file-name (git-file-name name version)) (sha256 (base32 - "0bbwsd2qpjilxpjscqbp78p0gl0awj1yj62g0wvybh4x89fzy8zj")))) + "1s17hcrp1aa0v99y5iav2s0lxdx2rzgm7z0c4zhxyydqxj399f5j")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) @@ -374,7 +374,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0rqx8g394aj5q913cd18zsi60sldvxarrp178w6ja0y4rd8l25vr")))) + "1rl1a3k5sr0hyxc61d68kwandhxcnxwv6b77vh7x2rkl1h4nxmfs")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("faudio" ,faudio) ("ffmpeg" ,ffmpeg) @@ -499,7 +499,6 @@ integrated into the main branch.") (script (string-append (assoc-ref %build-inputs "wine-staging-patchset-data") "/share/wine-staging/patches/patchinstall.sh"))) - ;; Exclude specific patches that conflict with FAudio. (invoke script (string-append "DESTDIR=" ".") "--all") #t))) (add-after 'install 'copy-wine32-binaries From 02460db0474ff5ac0d867ed6d5b192c062af0abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 17 Aug 2019 20:26:58 +0800 Subject: [PATCH 053/158] machine: ssh: Fix sanity checks. * gnu/machine/ssh.scm (machine-check-file-system-availability)[check-labeled-file-system]: Use 'source-module-closure' for '(gnu build file-systems)'. (machine-check-initrd-modules): Unquote 'file-system-label->string' instead of 'device'. --- gnu/machine/ssh.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm index aafe0ccf41..6e3ed0e092 100644 --- a/gnu/machine/ssh.scm +++ b/gnu/machine/ssh.scm @@ -166,7 +166,8 @@ MACHINE's 'system' declaration do not exist on the machine." (define (check-labeled-file-system fs) (define remote-exp - (with-imported-modules '((gnu build file-systems)) + (with-imported-modules (source-module-closure + '((gnu build file-systems))) #~(begin (use-modules (gnu build file-systems)) (find-partition-by-label #$(file-system-label->string @@ -243,7 +244,7 @@ MACHINE's 'system' declaration do not exist on the machine." #$(uuid->string device)))) ((file-system-label? device) #~(find-partition-by-label - (file-system-label->string #$device))))) + #$(file-system-label->string device))))) (missing-modules dev '#$(operating-system-initrd-modules (machine-operating-system machine))))))) From 37592014e13abead7a691d0dcb5918d1a10f5cd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 15:34:24 +0200 Subject: [PATCH 054/158] tests: Relax expectations for the 'home-page' checker. Fixes a regression introduced in 50fc2384feb3bb2677d074f8f0deb5ae3c56b4d8. * tests/lint.scm (warning-contains?): New procedure. ("home-page: host not found"): Use 'warning-contains?' instead of testing for equality, as was the case before commit 50fc2384feb. This handles the case where the 'getaddrinfo' error is not "Name or service not known" but instead something like "System error" or "Servname not supported for ai_socktype", as is the case in the build environment. --- tests/lint.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/lint.scm b/tests/lint.scm index 8a9023a7a3..db6dd6dbe1 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -74,6 +74,12 @@ (((and (? lint-warning?) warning)) (lint-warning-message warning)))) +(define (warning-contains? str warnings) + "Return true if WARNINGS is a singleton with a warning that contains STR." + (match warnings + (((? lint-warning? warning)) + (string-contains (lint-warning-message warning) str)))) + (test-begin "lint") @@ -366,13 +372,11 @@ (single-lint-warning-message (check-home-page pkg)))) -(test-equal "home-page: host not found" - "URI http://does-not-exist domain not found: Name or service not known" +(test-assert "home-page: host not found" (let ((pkg (package (inherit (dummy-package "x")) (home-page "http://does-not-exist")))) - (single-lint-warning-message - (check-home-page pkg)))) + (warning-contains? "domain not found" (check-home-page pkg)))) (test-skip (if (http-server-can-listen?) 0 1)) (test-equal "home-page: Connection refused" From 75a6f66815db811cc41aadbe93033a6efd3ad62f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 15:40:49 +0200 Subject: [PATCH 055/158] tests: Move 'guix environment -C --no-cwd' test where it belongs. This ensures that this test is skipped in contexts where user namespaces are not supported, instead of failing. This is a followup to commit b6dc08393e6a8313b88ce422fc3c1e4e9c0efc6f. * tests/guix-environment.sh: Move '--container --no-cwd' test to... * tests/guix-environment-container.sh: ... here. --- tests/guix-environment-container.sh | 7 +++++++ tests/guix-environment.sh | 8 -------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh index 78507f76c0..32a5ba1f97 100644 --- a/tests/guix-environment-container.sh +++ b/tests/guix-environment-container.sh @@ -144,6 +144,13 @@ HOME="$tmpdir" guix environment --bootstrap --container --user=foognu \ --share="$tmpdir/umock" \ -- guile -c "$usertest" +# if not sharing CWD, chdir home +( + cd "$tmpdir" \ + && guix environment --bootstrap --container --no-cwd --user=foo \ + --ad-hoc guile-bootstrap --pure \ + -- /bin/sh -c 'test $(pwd) == "/home/foo" -a ! -d '"$tmpdir" +) # Check the exit code. diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index 5a5a69d58c..a670db36be 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -84,14 +84,6 @@ echo "(use-modules (guix profiles) (gnu packages bootstrap)) guix environment --bootstrap --manifest=$tmpdir/manifest.scm --pure \ -- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"' -# if not sharing CWD, chdir home -( - cd "$tmpdir" \ - && guix environment --bootstrap --container --no-cwd --user=foo \ - --ad-hoc guile-bootstrap --pure \ - -- /bin/sh -c 'test $(pwd) == "/home/foo" -a ! -d '"$tmpdir" -) - # Make sure '-r' works as expected. rm -f "$gcroot" expected="`guix environment --bootstrap --ad-hoc guile-bootstrap \ From 198f560fcdf4f05b83b565acfd632153fb09bbf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 15:48:10 +0200 Subject: [PATCH 056/158] gnu: geeqie: Build sequentially. * gnu/packages/image-viewers.scm (geeqie)[arguments]: Add #:parallel-build?. --- gnu/packages/image-viewers.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index d33a9857c9..0c5da63053 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2017, 2018 Ludovic Courtès +;;; Copyright © 2013, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2015, 2016 Alex Kost ;;; Copyright © 2016, 2017, 2018 Efraim Flashner @@ -131,6 +131,11 @@ actions.") `( ;; Enable support for a "map" pane using GPS data. #:configure-flags '("--enable-map") + ;; Parallel builds fail with something like: + ;; image-load.c:143:9: error: ‘gq_marshal_VOID__INT_INT_INT_INT’ undeclared + ;; due to unexpressed makefile dependencies. + #:parallel-build? #f + #:phases (modify-phases %standard-phases (add-before 'bootstrap 'pre-bootstrap From c902458863d1d341ffd74970b75e69c2bb848183 Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Mon, 15 Jul 2019 15:47:14 +0200 Subject: [PATCH 057/158] gnu: Add elm-compiler 0.19.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds the elm compiler, version 0.19.0. This provides the `elm` command, with the exception of the `elm reactor` subcommand. Named `elm-compiler`, to leave space for `elm` as the full elm including reactor. * gnu/packages/elm.scm: New module. (elm-compiler): New package. * gnu/packages/patches/elm-disable-reactor.patch: New patch. * gnu/packages/patches/elm-fix-map-key.patch: New patch. * gnu/packages/patches/elm-relax-glsl-bound.patch: New patch. * gnu/local.mk: Add new files. Co-authored-by: Ludovic Courtès --- gnu/local.mk | 6 +- gnu/packages/elm.scm | 81 +++++++++++++++++++ .../elm-compiler-disable-reactor.patch | 71 ++++++++++++++++ .../patches/elm-compiler-fix-map-key.patch | 38 +++++++++ .../elm-compiler-relax-glsl-bound.patch | 19 +++++ 5 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/elm.scm create mode 100644 gnu/packages/patches/elm-compiler-disable-reactor.patch create mode 100644 gnu/packages/patches/elm-compiler-fix-map-key.patch create mode 100644 gnu/packages/patches/elm-compiler-relax-glsl-bound.patch diff --git a/gnu/local.mk b/gnu/local.mk index 16b63bc951..aab29beb0a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -161,6 +161,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/electronics.scm \ %D%/packages/elf.scm \ %D%/packages/elixir.scm \ + %D%/packages/elm.scm \ %D%/packages/embedded.scm \ %D%/packages/emacs.scm \ %D%/packages/emacs-xyz.scm \ @@ -770,9 +771,12 @@ dist_patch_DATA = \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ + %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-path-length.patch \ - %D%/packages/patches/einstein-build.patch \ + %D%/packages/patches/elm-compiler-disable-reactor.patch \ + %D%/packages/patches/elm-compiler-fix-map-key.patch \ + %D%/packages/patches/elm-compiler-relax-glsl-bound.patch \ %D%/packages/patches/emacs-dired-toggle-sudo-emacs-26.patch \ %D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm new file mode 100644 index 0000000000..8b5ec36621 --- /dev/null +++ b/gnu/packages/elm.scm @@ -0,0 +1,81 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Robert Vollmert +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages elm) + #:use-module (gnu packages) + #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-crypto) + #:use-module (gnu packages haskell-xyz) + #:use-module (gnu packages haskell-web) + #:use-module (guix build-system haskell) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages)) + +;; The full elm build calls out to itself via Template Haskell to +;; compile the elm reactor web app. elm reactor isn't required to +;; compile elm applications, so we take this part out of this +;; bootstrap package. +(define-public elm-compiler + (package + (name "elm-compiler") + (version "0.19.0") + (source + (origin + (method git-fetch) + (file-name (git-file-name name version)) + (uri (git-reference + (url "https://github.com/elm/compiler/") + (commit version))) + (sha256 + (base32 "0s93z9vr0vp5w894ghc5s34nsq09sg1msf59zfiba87sid5vgjqy")) + (patches + (search-patches "elm-compiler-disable-reactor.patch" + "elm-compiler-relax-glsl-bound.patch" + "elm-compiler-fix-map-key.patch")))) + (build-system haskell-build-system) + (inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-edit-distance" ,ghc-edit-distance) + ("ghc-file-embed" ,ghc-file-embed) + ("ghc-http" ,ghc-http) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-http-types" ,ghc-http-types) + ("ghc-language-glsl" ,ghc-language-glsl) + ("ghc-logict" ,ghc-logict) + ("ghc-network" ,ghc-network) + ("ghc-raw-strings-qq" ,ghc-raw-strings-qq) + ("ghc-scientific" ,ghc-scientific) + ("ghc-sha" ,ghc-sha) + ("ghc-snap-core" ,ghc-snap-core) + ("ghc-snap-server" ,ghc-snap-server) + ("ghc-unordered-containers" + ,ghc-unordered-containers) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-vector" ,ghc-vector) + ("ghc-zip-archive" ,ghc-zip-archive))) + (home-page "https://elm-lang.org") + (synopsis "Programming language for Web applications") + (description + "This package provides Elm, a statically-typed functional programming +language for the browser. It includes commands for developers such as +@command{elm make} and @command{elm repl}.") + (license license:bsd-3))) diff --git a/gnu/packages/patches/elm-compiler-disable-reactor.patch b/gnu/packages/patches/elm-compiler-disable-reactor.patch new file mode 100644 index 0000000000..9871b55e8d --- /dev/null +++ b/gnu/packages/patches/elm-compiler-disable-reactor.patch @@ -0,0 +1,71 @@ +commit 20d80e2323b565a36751c9455e535d8f73fa32f7 +Author: Robert Vollmert +Date: Fri Jun 14 16:05:47 2019 +0200 + + disable reactor + +diff --git a/elm.cabal b/elm.cabal +index c75f9689..ece63c46 100644 +--- a/elm.cabal ++++ b/elm.cabal +@@ -45,9 +45,6 @@ Executable elm + builder/src + ui/terminal/src + +- other-extensions: +- TemplateHaskell +- + Main-Is: + Main.hs + +@@ -56,8 +53,6 @@ Executable elm + Develop + Develop.Generate.Help + Develop.Generate.Index +- Develop.StaticFiles +- Develop.StaticFiles.Build + Diff + Init + Install +diff --git a/ui/terminal/src/Develop.hs b/ui/terminal/src/Develop.hs +index 4b2252e1..7ed7716e 100644 +--- a/ui/terminal/src/Develop.hs ++++ b/ui/terminal/src/Develop.hs +@@ -23,7 +23,6 @@ import Snap.Util.FileServe + import qualified Elm.Project as Project + import qualified Develop.Generate.Help as Generate + import qualified Develop.Generate.Index as Index +-import qualified Develop.StaticFiles as StaticFiles + import qualified Generate.Output as Output + import qualified Json.Encode as Encode + import qualified Reporting.Exit as Exit +@@ -219,16 +218,7 @@ compileToHtmlBuilder mode file = + + + serveAssets :: Snap () +-serveAssets = +- do file <- getSafePath +- case StaticFiles.lookup file of +- Nothing -> +- pass +- +- Just (content, mimeType) -> +- do modifyResponse (setContentType (mimeType <> ";charset=utf-8")) +- writeBS content +- ++serveAssets = pass + + + -- MIME TYPES +diff --git a/ui/terminal/src/Main.hs b/terminal/src/Main.hs +index 7000f3ca..2c76965a 100644 +--- a/ui/terminal/src/Main.hs ++++ b/ui/terminal/src/Main.hs +@@ -39,7 +39,6 @@ main = + complex intro outro + [ repl + , init +- , reactor + , make + , install + , bump diff --git a/gnu/packages/patches/elm-compiler-fix-map-key.patch b/gnu/packages/patches/elm-compiler-fix-map-key.patch new file mode 100644 index 0000000000..4f05ded530 --- /dev/null +++ b/gnu/packages/patches/elm-compiler-fix-map-key.patch @@ -0,0 +1,38 @@ +commit e3512d887df41a8162c3e361171c04beca08415b +Author: Tom Stejskal +Date: Mon Nov 19 20:09:43 2018 +0100 + + Fix Map.!: given key is not an element in the map + +diff --git a/compiler/src/Elm/Compiler/Type/Extract.hs b/compiler/src/Elm/Compiler/Type/Extract.hs +index 1aafe1d4..99763392 100644 +--- a/compiler/src/Elm/Compiler/Type/Extract.hs ++++ b/compiler/src/Elm/Compiler/Type/Extract.hs +@@ -10,6 +10,7 @@ module Elm.Compiler.Type.Extract + + + import Data.Map ((!)) ++import qualified Data.Map as Map + import qualified Data.Maybe as Maybe + import qualified Data.Set as Set + +@@ -134,11 +135,15 @@ extractUnion interfaces (Opt.Global home name) = + else + let + pname = toPublicName home name +- unions = I._unions (interfaces ! home) ++ maybeUnions = I._unions <$> Map.lookup home interfaces + in +- case I.toUnionInternals (unions ! name) of +- Can.Union vars ctors _ _ -> +- T.Union pname vars <$> traverse extractCtor ctors ++ case Map.lookup name =<< maybeUnions of ++ Just union -> ++ case I.toUnionInternals union of ++ Can.Union vars ctors _ _ -> ++ T.Union pname vars <$> traverse extractCtor ctors ++ Nothing -> ++ return $ T.Union pname [] [] + + + extractCtor :: Can.Ctor -> Extractor (N.Name, [T.Type]) diff --git a/gnu/packages/patches/elm-compiler-relax-glsl-bound.patch b/gnu/packages/patches/elm-compiler-relax-glsl-bound.patch new file mode 100644 index 0000000000..3f8be810c2 --- /dev/null +++ b/gnu/packages/patches/elm-compiler-relax-glsl-bound.patch @@ -0,0 +1,19 @@ +commit 4c649a5a270aba15cc6a3913c3ad51a293047f40 +Author: Rémi Lefèvre +Date: Mon Sep 3 19:18:54 2018 +0200 + + update language-glsl maximum version + +diff --git a/elm.cabal b/elm.cabal +index 48aa84f0..464fe9d5 100644 +--- a/elm.cabal ++++ b/elm.cabal +@@ -246,7 +246,7 @@ Executable elm + http-client >= 0.5 && < 0.6, + http-client-tls >= 0.3 && < 0.4, + http-types >= 0.9 && < 1.0, +- language-glsl >= 0.0.2 && < 0.3, ++ language-glsl >= 0.0.2 && < 0.4, + logict, + mtl >= 2.2.1 && < 3, + network >= 2.4 && < 2.7, From 2eb0628a423a36bc21777d7439885baa9a9a8e6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 19:13:15 +0200 Subject: [PATCH 058/158] gnu: guix, cuirass: Update to c902458 and 858b6b8 with Guile-JSON 3.x. * gnu/packages/package-management.scm (guix): Update to c902458. [inputs]: Switch to GUILE-JSON-3. (guix-daemon)[inputs]: Switch to GUILE-JSON-3. * gnu/packages/ci.scm (cuirass): Update to 858b6b8. [inputs]: Switch to GUILE-JSON-3. --- gnu/packages/ci.scm | 8 ++++---- gnu/packages/package-management.scm | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index 4af2cdc6ea..d706e8d04b 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -47,8 +47,8 @@ #:use-module (guix build-system gnu)) (define-public cuirass - (let ((commit "0b40dca734468e8b12b3ff58e3e779679f17d38e") - (revision "21")) + (let ((commit "858b6b8c8f2ae7b1ddaf4ae363147121be1f1fe8") + (revision "22")) (package (name "cuirass") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -60,7 +60,7 @@ (file-name (string-append name "-" version)) (sha256 (base32 - "1kdxs8dzdyldfs4wsz5hb64hprkbrnq5ljdll631f3bj8pbvvvc1")))) + "049hg0yaakmfp27950cn0yn43r0v7bqva75xi082n8cxzi6vadgc")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) @@ -121,7 +121,7 @@ `(("guile" ,guile-2.2) ("guile-fibers" ,guile-fibers) ("guile-gcrypt" ,guile-gcrypt) - ("guile-json" ,guile-json-1) + ("guile-json" ,guile-json-3) ("guile-sqlite3" ,guile-sqlite3) ("guile-git" ,guile-git) ;; FIXME: this is propagated by "guile-git", but it needs to be among diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 3b003fd30f..c982cbfe5d 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -111,8 +111,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.0.1") - (commit "4a54ed774913480c0f8dad3caf0cd627e4fa8ebf") - (revision 3)) + (commit "c902458863d1d341ffd74970b75e69c2bb848183") + (revision 4)) (package (name "guix") @@ -128,7 +128,7 @@ (commit commit))) (sha256 (base32 - "14m4a4bn0d5hav6mrks5d7r223knx9dpswgbsc875wgr2921na2h")) + "0w93qjgy9n0qqyij12s7hm7fl4wb6h99bmfril4cqf4ynckpdvbb")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -293,7 +293,7 @@ (propagated-inputs `(("gnutls" ,gnutls) ("guile-gcrypt" ,guile-gcrypt) - ("guile-json" ,guile-json-1) + ("guile-json" ,guile-json-3) ("guile-sqlite3" ,guile-sqlite3) ("guile-ssh" ,guile-ssh) ("guile-git" ,guile-git))) @@ -325,7 +325,7 @@ the Nix package manager.") (inputs `(("gnutls" ,gnutls) ("guile-git" ,guile-git) - ("guile-json" ,guile-json-1) + ("guile-json" ,guile-json-3) ("guile-gcrypt" ,guile-gcrypt) ,@(fold alist-delete (package-inputs guix) '("boot-guile" "boot-guile/i686" "util-linux")))) From 23ab21fa9d4ed47035dc446b10e9110243d9cdf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 19:14:49 +0200 Subject: [PATCH 059/158] derivations: Fix typo in docstring. * guix/derivations.scm (derivation-build-plan): Fix typo in the docstring. --- guix/derivations.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/derivations.scm b/guix/derivations.scm index b3928920e2..e1073ea39b 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -376,8 +376,8 @@ of SUBSTITUTABLES." (substitution-oracle store inputs #:mode mode))) "Given INPUTS, a list of derivation-inputs, return two values: the list of -derivation to build, and the list of substitutable items that, together, -allows INPUTS to be realized. +derivations to build, and the list of substitutable items that, together, +allow INPUTS to be realized. SUBSTITUTABLE-INFO must be a one-argument procedure similar to that returned by 'substitution-oracle'." From 611a64bd7e0893057cd04dcdc2a8d5e7ecc39e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 19:24:08 +0200 Subject: [PATCH 060/158] build: 'GUIX_CHECK_GUILE_JSON' really checks for Guile-JSON 3.x. Until now the 'guile' process would always exit with 0, as long as Guile-JSON is installed, whether it's version 1 or version 3. * m4/guix.m4 (GUIX_CHECK_GUILE_JSON): Fix array syntax and remove catch-all 'match' clause. --- m4/guix.m4 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/m4/guix.m4 b/m4/guix.m4 index 716bfb08ec..8be7cca54f 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -184,9 +184,8 @@ AC_DEFUN([GUIX_CHECK_GUILE_JSON], [ [guix_cv_have_recent_guile_json], [GUILE_CHECK([retval], [(use-modules (json) (ice-9 match)) - (match (json-string->scm \"[[] { \\\"a\\\": 42 } []]\") - (#(("a" . 42)) #t) - (_ #f))]) + (match (json-string->scm \"[[ { \\\"a\\\": 42 } ]]\") + (#((("a" . 42))) #t))]) if test "$retval" = 0; then guix_cv_have_recent_guile_json="yes" else From d88b811adf389e6445caf15fe6a581ac067deab7 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 17 Aug 2019 22:49:40 +0530 Subject: [PATCH 061/158] gnu: guile-email: Fix source hash. * gnu/packages/guile-xyz.scm (guile-email)[source]: Fix hash. --- gnu/packages/guile-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 8c36658361..16e30b9de7 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -916,7 +916,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.") version ".tar.lz")) (sha256 (base32 - "05pm0rwdxhjdlpmvhn0kyfslph6j5m1gv76givs0hshb30nirl2x")))) + "0zgvh2329zrclxfb1lh7dnqrq46jj77l0lx7j9y6y3xgbhd2d9l0")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From 8d64ef567f816d29a4b25fe1cfbeb8005dc7cc2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 22:13:30 +0200 Subject: [PATCH 062/158] import: gnome: Update for Guile-JSON 3.x. This is a followup to 81c3dc32244a17241d74eea9fa265edfcb326f6d. * guix/import/gnome.scm (jsonish->upstream-source): Use 'assoc-ref' instead of 'hash-ref'. (latest-gnome-release): Match a vector containing an alist, not a hash table. Use 'fold' instead of 'hash-fold' over RELEASES. --- guix/import/gnome.scm | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/guix/import/gnome.scm b/guix/import/gnome.scm index 1ade63e1af..436ec88ef9 100644 --- a/guix/import/gnome.scm +++ b/guix/import/gnome.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,7 +46,7 @@ source for metadata." (package name) (version version) (urls (filter-map (lambda (extension) - (match (hash-ref dictionary extension) + (match (assoc-ref dictionary extension) (#f #f) ((? string? relative-url) @@ -86,21 +86,22 @@ not be determined." (json (json->scm port))) (close-port port) (match json - ((4 (? hash-table? releases) _ ...) - (let* ((releases (hash-ref releases upstream-name)) - (latest (hash-fold (lambda (key value result) - (cond ((even-minor-version? key) - (match result - (#f - (cons key value)) - ((newest . _) - (if (version>? key newest) - (cons key value) - result)))) - (else - result))) - #f - releases))) + (#(4 releases _ ...) + (let* ((releases (assoc-ref releases upstream-name)) + (latest (fold (match-lambda* + (((key . value) result) + (cond ((even-minor-version? key) + (match result + (#f + (cons key value)) + ((newest . _) + (if (version>? key newest) + (cons key value) + result)))) + (else + result)))) + #f + releases))) (and latest (jsonish->upstream-source upstream-name latest)))))))) From 4496ea74aaf9d2497ac3eaf8f780a250bed24503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 22:48:26 +0200 Subject: [PATCH 063/158] refresh: Use the standard diagnostic procedures. * guix/scripts/refresh.scm (warn-no-updater): Use 'warning' instead of 'format'. (update-package): Use 'info' and 'warning' instead of 'format'. --- guix/scripts/refresh.scm | 45 ++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index dd7026a6a4..4591d0f308 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -285,10 +285,9 @@ update would trigger a complete rebuild." (exit 0)) (define (warn-no-updater package) - (format (current-error-port) - (G_ "~a: warning: no updater for ~a~%") - (location->string (package-location package)) - (package-name package))) + (warning (package-location package) + (G_ "no updater for ~a~%") + (package-name package))) (define* (update-package store package updaters #:key (key-download 'interactive) warn?) @@ -306,11 +305,10 @@ warn about packages that have no matching updater." (when version (if (and=> tarball file-exists?) (begin - (format (current-error-port) - (G_ "~a: ~a: updating from version ~a to version ~a...~%") - (location->string loc) - (package-name package) - (package-version package) version) + (info loc + (G_ "~a: updating from version ~a to version ~a...~%") + (package-name package) + (package-version package) version) (for-each (lambda (change) (format (current-error-port) @@ -350,27 +348,24 @@ WARN? is true and no updater exists for PACKAGE, print a warning." (case (version-compare (upstream-source-version source) (package-version package)) ((>) - (format (current-error-port) - (G_ "~a: ~a would be upgraded from ~a to ~a~%") - (location->string loc) - (package-name package) (package-version package) - (upstream-source-version source))) + (info loc + (G_ "~a would be upgraded from ~a to ~a~%") + (package-name package) (package-version package) + (upstream-source-version source))) ((=) (when warn? - (format (current-error-port) - (G_ "~a: info: ~a is already the latest version of ~a~%") - (location->string loc) - (package-version package) - (package-name package)))) + (info loc + (G_ "~a is already the latest version of ~a~%") + (package-version package) + (package-name package)))) (else (when warn? - (format (current-error-port) - (G_ "~a: warning: ~a is greater than \ + (warning loc + (G_ "~a is greater than \ the latest known version of ~a (~a)~%") - (location->string loc) - (package-version package) - (package-name package) - (upstream-source-version source))))))) + (package-version package) + (package-name package) + (upstream-source-version source))))))) (#f (when warn? (warn-no-updater package))))) From 0ea009db9d3bf53e75be8faef77c18d39c87a16a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 22:50:58 +0200 Subject: [PATCH 064/158] upstream: Gracefully handle archive type changes. Previously, if the currently used archive type (e.g., "bz2") was unavailable for the new version, 'guix refresh -u' would crash instead of updating to the archive with the new type. * guix/upstream.scm (package-update/url-fetch): When URL is #f, pick the first of URLS; likewise for SIGNATURE-URL. --- guix/upstream.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/guix/upstream.scm b/guix/upstream.scm index 1326b3db95..d4f9c5bb45 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -362,6 +362,7 @@ SOURCE, an ." (_ "gz"))) ((url signature-url) + ;; Try to find a URL that matches ARCHIVE-TYPE. (find2 (lambda (url sig-url) ;; Some URIs lack a file extension, like ;; 'https://crates.io/???/0.1/download'. In that @@ -370,7 +371,13 @@ SOURCE, an ." (string-suffix? archive-type url))) urls (or signature-urls (circular-list #f))))) - (let ((tarball (download-tarball store url signature-url + ;; If none of URLS matches ARCHIVE-TYPE, then URL is #f; in that case, + ;; pick up the first element of URLS. + (let ((tarball (download-tarball store + (or url (first urls)) + (and (pair? signature-urls) + (or signature-url + (first signature-urls))) #:key-download key-download))) (values version tarball source)))))) From beeeb261f2bed48edbcd7e909d4edfbe268147c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 22:53:43 +0200 Subject: [PATCH 065/158] gnu: setxkbmap: Update to 1.3.2. * gnu/packages/xorg.scm (setxkbmap): Update to 1.3.2. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 926fb746b0..b21d3d9966 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1805,7 +1805,7 @@ used with other display managers such as gdm or kdm.") (define-public setxkbmap (package (name "setxkbmap") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) @@ -1815,7 +1815,7 @@ used with other display managers such as gdm or kdm.") ".tar.bz2")) (sha256 (base32 - "1qfk097vjysqb72pq89h0la3462kbb2dh1d11qzs2fr67ybb7pd9")))) + "1xdrxs65v7d0rw1yaz0vsz55w4hxym99216p085ya9978j379wlg")))) (build-system gnu-build-system) (inputs `(("libxkbfile" ,libxkbfile) From 1b1c1621245a13976ea1b4fa28b8db7f449a5e29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Aug 2019 22:54:00 +0200 Subject: [PATCH 066/158] gnu: xrandr: Update to 1.5.1. * gnu/packages/xorg.scm (xrandr): Update to 1.5.1. Change archive type to ".tar.xz". --- gnu/packages/xorg.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index b21d3d9966..352a28a8b1 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4155,16 +4155,16 @@ an X server.") (define-public xrandr (package (name "xrandr") - (version "1.5.0") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/app/xrandr-" - version ".tar.bz2")) + version ".tar.xz")) (sha256 (base32 - "1kaih7rmzxr1vp5a5zzjhm5x7dn9mckya088sqqw026pskhx9ky1")))) + "0ql75s1n3dm2m3g1ilb9l6hqh15r0v709bgghpwazy3jknpnvivv")))) (build-system gnu-build-system) (inputs `(("libxrender" ,libxrender) From e764ba5225f735e06e4c06eba5fbcd21579300e0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 17 Aug 2019 20:32:13 +0200 Subject: [PATCH 067/158] gnu: git: Update to 2.23.0. * gnu/packages/version-control.scm (git): Update to 2.23.0. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index e05a4928f4..4ef46df50b 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -146,14 +146,14 @@ as well as the classic centralized workflow.") (name "git") ;; XXX When updating Git, check if the special 'git-source' input to cgit ;; needs to be updated as well. - (version "2.22.1") + (version "2.23.0") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "093qjgagha937w96izkpsjkhxf5drsa7rvk5snlyjivqnwxgkqac")))) + "0rv0y45gcd3h191isppn77acih695v4pipdj031jvs9rd1ds0kr3")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -166,7 +166,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "17vpqv9g8li58njx7z5124b3c2zb2n63z4dalh5gw9iys7qb8446")))) + "0sllhyl0w29v4n303hqfmcc3apafnwk4sk78anyjjhpzd0zl6n4m")))) ;; For subtree documentation. ("asciidoc" ,asciidoc) ("docbook-xsl" ,docbook-xsl) From 3ff75b6403fa3be7378d42fb6127ea6b933159a0 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 18 Aug 2019 12:19:45 +0200 Subject: [PATCH 068/158] gnu: ed: Update to 1.15. * gnu/packages/ed.scm (ed): Update to 1.15. --- gnu/packages/ed.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ed.scm b/gnu/packages/ed.scm index d30d7bcfa8..851e11be60 100644 --- a/gnu/packages/ed.scm +++ b/gnu/packages/ed.scm @@ -28,14 +28,14 @@ (define-public ed (package (name "ed") - (version "1.14.2") + (version "1.15") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/ed/ed-" version ".tar.lz")) (sha256 (base32 - "1nqhk3n1s1p77g2bjnj55acicsrlyb2yasqxqwpx0w0djfx64ygm")))) + "0x6ivy5k0d7dy5z9g8q8nipr89m4qbk2ink2898qq43smp08ji5d")))) (build-system gnu-build-system) (native-inputs `(("lzip" ,lzip))) (arguments From 37d40fa509cbbe48a1d7db1291338d7ccaeae830 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 18 Aug 2019 12:20:53 +0200 Subject: [PATCH 069/158] Revert "gnu: ed: Update to 1.15." This reverts commit 3ff75b6403fa3be7378d42fb6127ea6b933159a0. Too many dependents packages for master. --- gnu/packages/ed.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ed.scm b/gnu/packages/ed.scm index 851e11be60..d30d7bcfa8 100644 --- a/gnu/packages/ed.scm +++ b/gnu/packages/ed.scm @@ -28,14 +28,14 @@ (define-public ed (package (name "ed") - (version "1.15") + (version "1.14.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/ed/ed-" version ".tar.lz")) (sha256 (base32 - "0x6ivy5k0d7dy5z9g8q8nipr89m4qbk2ink2898qq43smp08ji5d")))) + "1nqhk3n1s1p77g2bjnj55acicsrlyb2yasqxqwpx0w0djfx64ygm")))) (build-system gnu-build-system) (native-inputs `(("lzip" ,lzip))) (arguments From 36d4926949036207581701a5628e1c23e983dc2f Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 9 Aug 2019 18:15:14 +0200 Subject: [PATCH 070/158] gnu: emacs-magit-todos: Update to 1.4. * gnu/packages/emacs-xyz.scm (emacs-magit-todos): Update to 1.4. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6e612cab56..90f624bc57 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -14385,7 +14385,7 @@ buffers – other modes on the TODO list). (define-public emacs-magit-todos (package (name "emacs-magit-todos") - (version "1.3") + (version "1.4") (source (origin (method git-fetch) @@ -14395,7 +14395,7 @@ buffers – other modes on the TODO list). (file-name (git-file-name name version)) (sha256 (base32 - "0gfm6wn2a4v5i9lfsvvin0kwpr9n96ddm3z4yf50jd3kg2igzry1")))) + "09pjb4k409gc0h51vb5az1shx02c1hx8cnvhi529n7dm4maildg5")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-async" ,emacs-async) From a212a54c020bc491e4e6e7ce5c4d0cb30bd79cc2 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 9 Aug 2019 19:37:25 +0200 Subject: [PATCH 071/158] gnu: emacs-racket-mode: Update to 0.0.2-2.5300aa0. * gnu/packages/emacs-xyz.scm (emacs-racket-mode): Update to 0.0.2-2.5300aa0. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 90f624bc57..46c570d03e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12421,12 +12421,11 @@ perform regression test for packages that provide font-lock rules.") (license license:gpl3+)))) (define-public emacs-racket-mode - (let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c") - (revision "2")) + (let ((commit "5300aa004f08535c3fac99f1af78462f129aca81") + (revision "3")) (package (name "emacs-racket-mode") - (version (string-append "0.0.2" "-" revision "." - (string-take commit 7))) + (version (git-version "0.0.2" revision commit)) (source (origin (method git-fetch) @@ -12436,7 +12435,7 @@ perform regression test for packages that provide font-lock rules.") (file-name (git-file-name name version)) (sha256 (base32 - "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7")))) + "1gkpm4fl1ybsm9qqgrkwyjbd9znddy438x266k27fs90lkxrfray")))) (build-system emacs-build-system) (arguments `(#:include '("\\.el$" "\\.rkt$"))) From de7f3dc7ee7df3ce7cd6cc8071408d6efbb5b359 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 10 Aug 2019 00:06:41 +0200 Subject: [PATCH 072/158] gnu: emacs-helm-org-rifle: Update to 1.7.0. * gnu/packages/emacs-xyz.scm (emacs-helm-org-rifle): Update to 1.7.0. [inputs]: Add emacs-org. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 46c570d03e..e7c1bc44af 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -7302,7 +7302,7 @@ above over the network.") (define-public emacs-helm-org-rifle (package (name "emacs-helm-org-rifle") - (version "1.6.1") + (version "1.7.0") (source (origin (method git-fetch) @@ -7312,12 +7312,13 @@ above over the network.") (file-name (git-file-name name version)) (sha256 (base32 - "1r38xhwvgbv6kn5x159phz3xgss7f1rc7icq27rnr4d8aj91wm6k")))) + "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) ("emacs-f" ,emacs-f) ("emacs-helm" ,emacs-helm) + ("emacs-org" ,emacs-org) ("emacs-s" ,emacs-s))) (home-page "https://github.com/alphapapa/helm-org-rifle") (synopsis "Rifle through Org files") From 196472e7f37162ecdadb2f2f7a2c02b5cba749a1 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 10 Aug 2019 08:46:38 +0200 Subject: [PATCH 073/158] gnu: emacs-sesman: Update to 0.3.4. * gnu/packages/emacs-xyz.scm (emacs-sesman): Update to 0.3.4. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index e7c1bc44af..3acfc65c5e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -14905,20 +14905,28 @@ RPC channels with users and other software.") (define-public emacs-sesman (package (name "emacs-sesman") - (version "0.3.3") + (version "0.3.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/vspinu/sesman.git") - (commit (string-append "v" version)))) + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra")))) + "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc")))) (build-system emacs-build-system) (arguments - `(#:tests? #t + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-shell + ;; Setting the SHELL environment variable is required for the tests + ;; to find sh. + (lambda _ + (setenv "SHELL" (which "sh")) + #t))) + #:tests? #t #:test-command '("make" "test"))) (home-page "https://github.com/vspinu/sesman") (synopsis "Session manager for Emacs based IDEs") From 44e8358298833097476238f3481b4b28dcf16a00 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sun, 18 Aug 2019 15:54:43 +0300 Subject: [PATCH 074/158] gnu: emacs-sesman: Fix source. This commit follows 196472e7f37162ecdadb2f2f7a2c02b5cba749a1. * gnu/packages/emacs-xyz.scm (emacs-sesman)[source](origin): Append "v" to a version. --- gnu/packages/emacs-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 3acfc65c5e..4a8820f405 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -14911,7 +14911,7 @@ RPC channels with users and other software.") (method git-fetch) (uri (git-reference (url "https://github.com/vspinu/sesman.git") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 From e076ca86dba3ef344d0d3907a808698ae8211b35 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Wed, 14 Aug 2019 06:35:31 +0200 Subject: [PATCH 075/158] gnu: Add emacs-phi-search. * gnu/packages/emacs-xyz.scm (emacs-phi-search): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 4a8820f405..7ed341885d 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -3460,6 +3460,28 @@ completion candidate when using the Company text completion framework.") a customizable list.") (license license:gpl3+)))) +(define-public emacs-phi-search + (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c") + (revision "1")) + (package + (name "emacs-phi-search") + (version (git-version "20160630" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zk-phi/phi-search.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x")))) + (build-system emacs-build-system) + (home-page "https://github.com/zk-phi/phi-search") + (synopsis "Interactive search compatible with @code{multiple-cursors}") + (description "This package can be used with @code{multiple-cursors} to +provide an incremental search that moves all fake cursors in sync.") + (license license:gpl2+)))) + (define-public emacs-multiple-cursors (package (name "emacs-multiple-cursors") From 0fc235a0236f182439340519b2b98f14b5e2ac3d Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Wed, 14 Aug 2019 06:35:41 +0200 Subject: [PATCH 076/158] gnu: Add emacs-phi-search-mc. * gnu/packages/emacs-xyz.scm (emacs-phi-search-mc): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 7ed341885d..adab7d87d2 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -3482,6 +3482,33 @@ a customizable list.") provide an incremental search that moves all fake cursors in sync.") (license license:gpl2+)))) +(define-public emacs-phi-search-mc + (let ((commit "7aa671910f766437089aec26c3aa7814222d1356") + (revision "1")) + (package + (name "emacs-phi-search-mc") + (version (git-version "2.2.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/knu/phi-search-mc.el.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-phi-search" ,emacs-phi-search) + ("emacs-multiple-cursors" ,emacs-multiple-cursors))) + (home-page "https://github.com/knu/phi-search-mc.el") + (synopsis "Extend @code{phi-search} with additional +@code{multiple-cursors} functionality") + (description "This package provides further integration between +@code{multiple-cursors} and @code{phi-search}, a package that allows for +interactive searches to move multiple fake cursors.") + (license license:bsd-2)))) + (define-public emacs-multiple-cursors (package (name "emacs-multiple-cursors") From 49b28a740bcdb906245b1405f7dc91efeee621a3 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 18 Aug 2019 15:48:16 +0200 Subject: [PATCH 077/158] gnu: Add compsize. * gnu/packages/linux.scm (compsize): New variable. --- gnu/packages/linux.scm | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 99087638f6..e2acccafcd 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3928,6 +3928,49 @@ repair and easy administration.") from the btrfs-progs package. It is meant to be used in initrds.") (license (package-license btrfs-progs)))) +(define-public compsize + (package + (name "compsize") + (version "1.3") + (home-page "https://github.com/kilobyte/compsize") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 "1c69whla844nwis30jxbj00zkpiw3ccndhkmzjii8av5358mjn43")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (inputs + `(("btrfs-progs" ,btrfs-progs))) + (arguments + `(#:tests? #f ; No tests. + #:make-flags (list "CC=gcc") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file "compsize" (string-append out "/bin")) + (install-file "compsize.8" (string-append out "/share/man/man8")))))))) + (synopsis "Find compression type/ratio on Btrfs files") + (description "@command{compsize} takes a list of files (given as +arguments) on a Btrfs file system and measures used compression types and +effective compression ratio, producing a report. + +A directory has no extents but has a (recursive) list of files. A non-regular +file is silently ignored. + +As it makes no sense to talk about compression ratio of a partial extent, +every referenced extent is counted whole, exactly once -- no matter if you use +only a few bytes of a 1GB extent or reflink it a thousand times. Thus, the +uncompressed size will not match the number given by @command{tar} or +@command{du}. On the other hand, the space used should be accurate (although +obviously it can be shared with files outside our set).") + (license license:gpl2+))) + (define-public f2fs-tools-1.7 (package (name "f2fs-tools") From 64cd8e838a46ba30766eb44fe06f792237c99d01 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 17 Aug 2019 06:15:54 +0200 Subject: [PATCH 078/158] gnu: Add emacs-org-rich-yank. * gnu/packages/emacs-xyz.scm (emacs-org-rich-yank): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index adab7d87d2..324b8a6073 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2729,6 +2729,29 @@ naming style of a symbol. It supports different naming conventions such as: tables.") (license license:gpl2+))) +(define-public emacs-org-rich-yank + (package + (name "emacs-org-rich-yank") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/unhammer/org-rich-yank.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z")))) + (build-system emacs-build-system) + (home-page "https://github.com/unhammer/org-rich-yank") + (synopsis "Automatically surround source code pasted into Org with +@code{#+BEGIN_SRC} blocks") + (description + "This package provides a utility function for Org buffers that makes a +@code{_SRC} block with the appropriate language annotation for code that has +been copied from an Emacs major mode.") + (license license:gpl2+))) + (define-public emacs-rich-minority (package (name "emacs-rich-minority") From 3615e9e6c53c8924c23c903d62615ba609f7697c Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 17 Aug 2019 06:49:51 +0200 Subject: [PATCH 079/158] gnu: Add emacs-ob-restclient. * gnu/packages/emacs-xyz.scm (emacs-ob-restclient): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 324b8a6073..b393a2d88c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2752,6 +2752,29 @@ tables.") been copied from an Emacs major mode.") (license license:gpl2+))) +(define-public emacs-ob-restclient + (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46")) + (package + (name "emacs-ob-restclient") + (version (git-version "0.02" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alf/ob-restclient.el.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy")))) + (propagated-inputs + `(("emacs-restclient" ,emacs-restclient))) + (build-system emacs-build-system) + (home-page "https://github.com/alf/ob-restclient.el") + (synopsis "Org-babel functionality for @code{restclient-mode}") + (description + "This package integrates @code{restclient-mode} with Org.") + (license license:gpl3+)))) + (define-public emacs-rich-minority (package (name "emacs-rich-minority") From 3eb245434be62ed59f7901469472d5390e07433a Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 17 Aug 2019 06:59:48 +0200 Subject: [PATCH 080/158] gnu: Add emacs-org-now. * gnu/packages/emacs-xyz.scm (emacs-org-now): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index b393a2d88c..df89aebb3f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2775,6 +2775,32 @@ been copied from an Emacs major mode.") "This package integrates @code{restclient-mode} with Org.") (license license:gpl3+)))) +(define-public emacs-org-now + (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91")) + (package + (name "emacs-org-now") + (version (git-version "0.1-pre" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/org-now.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c")))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash))) + (build-system emacs-build-system) + (home-page "https://github.com/alphapapa/org-now") + (synopsis "Show current Org tasks in a sidebar") + (description + "This package provides commands to show Org headings in a sidebar +window while working on them. After defining one heading as the \"now\" +heading, other headings can be refiled to it with one command, and back to +their original location with another.") + (license license:gpl3+)))) + (define-public emacs-rich-minority (package (name "emacs-rich-minority") From 7fd14950791c0cc254df2bcf4abffcdbff6d0bcf Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 17 Aug 2019 19:09:58 +0200 Subject: [PATCH 081/158] gnu: Add emacs-symbol-overlay. * gnu/packages/emacs-xyz.scm (emacs-symbol-overlay): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index df89aebb3f..84ae7a1357 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4608,6 +4608,29 @@ regardless of @code{highlight-symbol-idle-delay}. @code{highlight-symbol-query-replace} can be used to replace the symbol. ") (license license:gpl2+)))) +(define-public emacs-symbol-overlay + (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc") + (revision "1")) + (package + (name "emacs-symbol-overlay") + (version (git-version "4.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wolray/symbol-overlay.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7")))) + (build-system emacs-build-system) + (home-page "https://github.com/wolray/symbol-overlay") + (synopsis "Highlight symbols and perform various search operations on them") + (description + "This package provides functions for highlighting and navigating +between symbols.") + (license license:gpl3+)))) + (define-public emacs-hl-todo (package (name "emacs-hl-todo") From eff412ed3b7add0a32fdf681950fa1e791d4af04 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 18 Aug 2019 02:16:14 +0200 Subject: [PATCH 082/158] gnu: Add emacs-evil-owl. * gnu/packages/emacs-xyz.scm (emacs-evil-owl): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 84ae7a1357..a4708a1d85 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -6553,6 +6553,33 @@ used for reverse direction.") end of a line and increment or decrement it.") (license license:gpl3+)))) +(define-public emacs-evil-owl + (let ((commit "36a5fe057f44d48e377e3ef4f04b4eb30e1af309") + (revision "1")) + (package + (name "emacs-evil-owl") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mamapanda/evil-owl") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07a6n0gqss1qx9a50dqzqqq0gj6n7a4ykbcv1a0c9qd4fnfnm90m")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-evil" ,emacs-evil) + ("emacs-posframe" ,emacs-posframe))) + (home-page "https://github.com/mamapanda/evil-owl") + (synopsis "Preview candidates when using Evil registers and marks") + (description + "This package supplements Evil's register- and mark-based commands with +a popup window for previewing candidates.") + (license license:gpl3+)))) + (define-public emacs-evil-exchange (let ((commit "47691537815150715e64e6f6ec79be7746c96120") (version "0.41") From 317879f555ac945c89423c178e280482f4b1d83d Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 18 Aug 2019 03:01:41 +0200 Subject: [PATCH 083/158] gnu: Add emacs-frog-menu. * gnu/packages/emacs-xyz.scm (emacs-frog-menu): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a4708a1d85..4444690e3f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10223,6 +10223,33 @@ environment variables to be retrieved from the shell, so that Emacs will see the same values you get in a terminal.") (license license:gpl3+))) +(define-public emacs-frog-menu + (let ((commit "740bbc88b8535d31f783f3b2043a2a6683afbf31") + (revision "1")) + (package + (name "emacs-frog-menu") + (version (git-version "0.2.9" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/clemera/frog-menu") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1g77424jwq62qj06rvld44s5hp0dw8rw2pwmmag6gd536zf65xrj")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-posframe" ,emacs-posframe) + ("emacs-avy" ,emacs-avy))) + (home-page "https://github.com/clemera/frog-menu") + (synopsis "Quickly pick items from ad hoc menus") + (description + "This package provides a popup offering a preview of a list of +candidates on which user-defined dispatch actions can act.") + (license license:gpl3+)))) + (define-public emacs-deft (package (name "emacs-deft") From 41671813f13cc4965f3674fdf4eb17506b49caf2 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 18 Aug 2019 03:01:50 +0200 Subject: [PATCH 084/158] gnu: Add emacs-frog-jump-buffer. * gnu/packages/emacs-xyz.scm (emacs-frog-jump-buffer): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 4444690e3f..ffc662f746 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10250,6 +10250,34 @@ the same values you get in a terminal.") candidates on which user-defined dispatch actions can act.") (license license:gpl3+)))) +(define-public emacs-frog-jump-buffer + (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20") + (revision "1")) + (package + (name "emacs-frog-jump-buffer") + (version (git-version "0.1.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/waymondo/frog-jump-buffer") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-frog-menu" ,emacs-frog-menu) + ("emacs-avy" ,emacs-avy))) + (home-page "https://github.com/waymondo/frog-jump-buffer") + (synopsis "Jump to any Emacs buffer with minimal keystrokes") + (description + "This package provides a preview window of buffers that can be switched +to with quicklink-style selections.") + (license license:gpl3+)))) + (define-public emacs-deft (package (name "emacs-deft") From fd88b8e4e848a3df5b3a72e0b21ff75829c99449 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 19 Aug 2019 16:30:59 +0530 Subject: [PATCH 085/158] gnu: rss-bridge: Update to 2019-07-06. * gnu/packages/web.scm (rss-bridge): Update to 2019-07-06. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 314ed8c149..0b7bf698f1 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5417,7 +5417,7 @@ snippets on @url{https://commandlinefu.com}.") (define-public rss-bridge (package (name "rss-bridge") - (version "2019-01-13") + (version "2019-07-06") (source (origin (method git-fetch) @@ -5427,7 +5427,7 @@ snippets on @url{https://commandlinefu.com}.") (file-name (git-file-name name version)) (sha256 (base32 - "1m0dq491954f0d7k4508ddlywk09whcz9j21rc4yk3lbwpf0nd4c")))) + "0zd0c9xzvpx55mvj8xrafakfkvafnwkkvhw9b1j0bf897xdkfsyb")))) (build-system trivial-build-system) (arguments '(#:modules ((guix build utils)) From bf9a823686575e69e8f2e5daf238183b1ea9ab04 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 19 Aug 2019 16:14:25 +0200 Subject: [PATCH 086/158] gnu: r-lpsolve: Update to 5.6.13.3. * gnu/packages/cran.scm (r-lpsolve): Update to 5.6.13.3. --- gnu/packages/cran.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 76ea2ed847..a969acbd42 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2230,14 +2230,14 @@ topics for ecologists (ISBN 978-0-691-12522-0).") (define-public r-lpsolve (package (name "r-lpsolve") - (version "5.6.13.2") + (version "5.6.13.3") (source (origin (method url-fetch) (uri (cran-uri "lpSolve" version)) (sha256 (base32 - "0fc5m259ayc880f5hvnq59ih6nb2rlp394n756n1khmxbjpw1w3m")))) + "1xazby8amb47vw5n12k13awv7x3bjci3q8vdd3vk1ms0ii16ahg6")))) (properties `((upstream-name . "lpSolve"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/lpSolve") From 86e243a2e3dad8cf8e2a53c2d850ac84e2f79155 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 19 Aug 2019 16:14:35 +0200 Subject: [PATCH 087/158] gnu: r-rjags: Update to 4-9. * gnu/packages/cran.scm (r-rjags): Update to 4-9. --- gnu/packages/cran.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index a969acbd42..0301d8c785 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -5851,14 +5851,14 @@ functions.") (define-public r-rjags (package (name "r-rjags") - (version "4-8") + (version "4-9") (source (origin (method url-fetch) (uri (cran-uri "rjags" version)) (sha256 (base32 - "17xmjksj69f9wk4x71jxk4cgiqhaf2fj6bjm0mgzp4qln5x84a8m")))) + "1vrmxxfnia2mkmfkp5yaq5qrlh4xg3ggab6fnj14mrp1231wb91a")))) (build-system r-build-system) (propagated-inputs `(("r-coda" ,r-coda))) From b3aa0d2f964382cc81f9078f23d9b1f1d8175316 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 19 Aug 2019 16:14:42 +0200 Subject: [PATCH 088/158] gnu: r-ggstance: Update to 0.3.3. * gnu/packages/cran.scm (r-ggstance): Update to 0.3.3. --- gnu/packages/cran.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 0301d8c785..d8db0ca1df 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -6823,13 +6823,13 @@ and coverage methods to tune the choice of threshold.") (define-public r-ggstance (package (name "r-ggstance") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) (uri (cran-uri "ggstance" version)) (sha256 - (base32 "078ih9s5b0xzf582qg0vjnxvg5qad5ms1v2vdd062ckahi8zz1r8")))) + (base32 "0kdksay61hyb6612b07r84chh7a9aibjyclk3qcypvr9aang8hkh")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) From 6b28386dd1f09e972cc2f200199dfb42ca8aceea Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 19 Aug 2019 16:14:47 +0200 Subject: [PATCH 089/158] gnu: r-citr: Update to 0.3.2. * gnu/packages/cran.scm (r-citr): Update to 0.3.2. --- gnu/packages/cran.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index d8db0ca1df..ae8e9c5a47 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14752,14 +14752,14 @@ into R and converted to @code{BibEntry} objects.") (define-public r-citr (package (name "r-citr") - (version "0.3.1") + (version "0.3.2") (source (origin (method url-fetch) (uri (cran-uri "citr" version)) (sha256 (base32 - "0p2sg0fl7cppxxmr20qyqzs2469kglmgpsvykynw4qx501as57rc")))) + "1qbarvafjb8jgkrnrhh6jw7mcglmjwf7dpdiibxf39jkmlhf7las")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) From a6a19fb14c24054c6c4dc59f2cf8fd9063d2ed34 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 19 Aug 2019 16:14:59 +0200 Subject: [PATCH 090/158] gnu: r-gviz: Update to 1.28.1. * gnu/packages/bioinformatics.scm (r-gviz): Update to 1.28.1. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index d729b1bc00..71ea35a007 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -10273,14 +10273,14 @@ family of feature/genome hypotheses.") (define-public r-gviz (package (name "r-gviz") - (version "1.28.0") + (version "1.28.1") (source (origin (method url-fetch) (uri (bioconductor-uri "Gviz" version)) (sha256 (base32 - "02alz27w8fnnm2ga71g3jg2b94f95ccv6r1fyszj4yb1k2g7rkxk")))) + "0chsb3ijwd8zh588s1vqgfassn2rzax5rhqrhl0ini6pi4ilchp2")))) (properties `((upstream-name . "Gviz"))) (build-system r-build-system) (propagated-inputs From 8895b2e0b624baeef4feb7ac2a11595994e9ee24 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 19 Aug 2019 13:25:43 -0400 Subject: [PATCH 091/158] gnu: nmap: Update to 7.80. * gnu/packages/admin.scm (nmap): Update to 7.80. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 979b901c1a..a0e0af0549 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2134,14 +2134,14 @@ done with the @code{auditctl} utility.") (define-public nmap (package (name "nmap") - (version "7.70") + (version "7.80") (source (origin (method url-fetch) (uri (string-append "https://nmap.org/dist/nmap-" version ".tar.bz2")) (sha256 (base32 - "063fg8adx23l4irrh5kn57hsmi1xvjkar4vm4k6g94ppan4hcyw4")) + "1aizfys6l9f9grm82bk878w56mg0zpkfns3spzj157h98875mypw")) (modules '((guix build utils))) (snippet '(begin From 28bd1b09119d7bafae31613ad16e3535602acc60 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Mon, 19 Aug 2019 09:10:35 +0300 Subject: [PATCH 092/158] gnu: Add emacs-refactor. * gnu/packages/emacs-xyz.scm (emacs-refactor): New variable. --- gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index ffc662f746..17d54c94d8 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17475,3 +17475,30 @@ federated microblogging social network.") Emacs. It's a re-write of the Insidious Big Brother Database (BBDB) using Emacs Lisp's (relatively new) EIEIO object oriented libraries.") (license license:gpl3+)))) + +(define-public emacs-refactor + (package + (name "emacs-refactor") + (version "0.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Wilfred/emacs-refactor.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s) + ("emacs-popup" ,emacs-popup) + ("emacs-list-utils" ,emacs-list-utils) + ("emacs-iedit" ,emacs-iedit))) + (home-page "https://github.com/Wilfred/emacs-refactor/") + (synopsis "Language-specific refactoring in Emacs") + (description "Emacs Refactor (EMR) is a framework for providing +language-specific refactoring in Emacs. It includes refactoring commands for +a variety of languages, including elisp itself.") + (license license:gpl3+))) From 9b9bfac50de8913d0a7dae4a00b0d36a1a0880c9 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Mon, 19 Aug 2019 19:27:55 +0200 Subject: [PATCH 093/158] gnu: emacs-evil-matchit: Update to 2.3.3. * gnu/packages/emacs-xyz.scm (emacs-evil-matchit): Update to 2.3.3. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 17d54c94d8..f33c385e98 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -9805,7 +9805,7 @@ Feautures: (define-public emacs-evil-matchit (package (name "emacs-evil-matchit") - (version "2.3.0") + (version "2.3.3") (source (origin (method git-fetch) @@ -9814,7 +9814,7 @@ Feautures: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0y6q42hml7jgf060d83m7hf270h01858g5kxw12na9n4r4jjpdg1")))) + (base32 "04kllxd7vvziwqiff3vx60a0r6805wynsla73j8xkcz4yzk8q91r")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) From a030345f0b07753a6016537ba3b8216f20cd2713 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Mon, 19 Aug 2019 19:31:34 +0200 Subject: [PATCH 094/158] gnu: emacs-counsel-etags: Update to 1.8.9. * gnu/packages/emacs-xyz.scm (emacs-counsel-etags): Update to 1.8.9. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index f33c385e98..5938523d07 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16666,7 +16666,7 @@ previewed by scrolling up and down within a @code{dired} buffer.") (define-public emacs-counsel-etags (package (name "emacs-counsel-etags") - (version "1.8.7") + (version "1.8.9") (source (origin (method git-fetch) @@ -16676,7 +16676,7 @@ previewed by scrolling up and down within a @code{dired} buffer.") (file-name (git-file-name name version)) (sha256 (base32 - "0vjcjspfrz1csnmfi6r7p7f070a496adxkqnsxwx1gx8cpylwp1g")))) + "0rmdl93kgyydwa96yclds9vwly41bpk8v18cbqc1x266w6v77dr9")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-ivy" ,emacs-ivy))) From eef77fafe38dfeac53ed17b53b43ec6edb295d87 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 13 Aug 2019 02:34:30 +0200 Subject: [PATCH 095/158] gnu: Add emacs-org-auto-expand. * gnu/packages/emacs-xyz.scm (emacs-org-auto-expand): New variable. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 5938523d07..91e111fa47 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10951,6 +10951,31 @@ tables of contents.") files, allowing for actions to be performed based on search criteria.") (license license:gpl3+))) +(define-public emacs-org-auto-expand + (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62") + (revision "1")) + (package + (name "emacs-org-auto-expand") + (version (git-version "0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/org-auto-expand") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-org" ,emacs-org) + ("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/alphapapa/org-auto-expand") + (synopsis "Automatically expand certain Org headings") + (description "This package allows a customizable set of headings in Org +files to be expanded upon opening them.") + (license license:gpl3+)))) + (define-public emacs-parsebib (package (name "emacs-parsebib") From eaca4d5f86f73d7ad782594e8a2705f1ec62b58d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 19 Aug 2019 17:59:51 -0400 Subject: [PATCH 096/158] gnu: Apache httpd: Update to 2.4.41 [security fixes]. Fixes CVE-2019-{5917,10081,10082,10092,10097,10098}]. * gnu/packages/web.scm (httpd): Update to 2.4.41. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 0b7bf698f1..9b2be15e20 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -133,14 +133,14 @@ (define-public httpd (package (name "httpd") - (version "2.4.39") + (version "2.4.41") (source (origin (method url-fetch) (uri (string-append "mirror://apache/httpd/httpd-" version ".tar.bz2")) (sha256 (base32 - "18ngvsjq65qxk3biggnkhkq8jlll9dsg9n3csra9p99sfw2rvjml")))) + "0h7a31yxwyh7h521frnmlppl0h7sh9icc3ka6vlmlcg5iwllhg8k")))) (build-system gnu-build-system) (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config' (inputs `(("apr" ,apr) From 2bdb5716d87908c3164471ad25c398768204fb5d Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 20 Aug 2019 01:47:27 +0200 Subject: [PATCH 097/158] gnu: Add python-branca. * gnu/packages/python-web.scm (python-branca): New variable. --- gnu/packages/python-web.scm | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 735f033883..e622f27d6b 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -24,7 +24,7 @@ ;;; Copyright © 2015, 2016 David Thompson ;;; Copyright © 2017 Mark Meyer ;;; Copyright © 2018 Tomáš Čech -;;; Copyright © 2018 Nicolas Goaziou +;;; Copyright © 2018, 2019 Nicolas Goaziou ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2018 Maxim Cournoyer ;;; Copyright © 2019 Vagrant Cascadian @@ -3248,3 +3248,26 @@ Python.") (description "This package provides a @command{slufigy} command and library to create slugs from unicode strings while keeping it DRY.") (license license:expat))) + +(define-public python-branca + (package + (name "python-branca") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "branca" version)) + (sha256 + (base32 + "0pmigd521j2228xf8x34vbx0niwvms7xl7za0lymywj0vydjqxiy")))) + (build-system python-build-system) + (propagated-inputs + `(("python-jinja2" ,python-jinja2) + ("python-six" ,python-six))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/python-visualization/branca") + (synopsis "Generate complex HTML+JS pages with Python") + (description "Generate complex HTML+JS pages with Python") + (license license:expat))) + From dfe8a7048e036a6d702edfd133a4ead5e879e3cf Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 20 Aug 2019 01:53:49 +0200 Subject: [PATCH 098/158] gnu: Add python-folium. * gnu/packages/python-xyz.scm (python-folium): New variable. --- gnu/packages/python-xyz.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 459d5d44e1..6f4c3b79d0 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -16058,3 +16058,34 @@ one-off scripts.") time-or-computationally-expensive properties quick and easy and works in Python 2 or 3.") (license license:bsd-3))) + +(define-public python-folium + (package + (name "python-folium") + (version "0.10.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "folium" version)) + (sha256 + (base32 + "18fzxijsgrb95r0a8anc9ba5ijyw3nlnv3rpavfbkqa5v878x84f")))) + (build-system python-build-system) + (propagated-inputs + `(("python-branca" ,python-branca) + ("python-jinja2" ,python-jinja2) + ("python-numpy" ,python-numpy) + ("python-requests" ,python-requests))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/python-visualization/folium") + (synopsis "Make beautiful maps with Leaflet.js & Python") + (description "@code{folium} makes it easy to visualize data that’s been +manipulated in Python on an interactive leaflet map. It enables both the +binding of data to a map for @code{choropleth} visualizations as well as +passing rich vector/raster/HTML visualizations as markers on the map. + +The library has a number of built-in tilesets from OpenStreetMap, Mapbox, and +Stamen, and supports custom tilesets with Mapbox or Cloudmade API keys. It +supports Image, Video, GeoJSON and TopoJSON overlays.") + (license license:expat))) From b035a10d5843976418754856837feb35f4606221 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Mon, 19 Aug 2019 23:46:51 +0200 Subject: [PATCH 099/158] gnu: emacs-git-timemachine: Update to 4.11. * gnu/packages/emacs-xyz.scm (emacs-git-timemachine): Update to 4.11. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 91e111fa47..a51545c3b3 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2255,7 +2255,7 @@ display and behaviour is easily customisable.") (define-public emacs-git-timemachine (package (name "emacs-git-timemachine") - (version "4.10") + (version "4.11") (source (origin (method git-fetch) @@ -2265,7 +2265,7 @@ display and behaviour is easily customisable.") (file-name (git-file-name name version)) (sha256 (base32 - "08zsn3lsnnf01wkv5ls38jga02s5dnf0j3gigy4qd6im3j3d04m1")))) + "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-transient" ,emacs-transient))) From f8f2a9449bb66abccb0a3c906c16ce020dececd0 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Thu, 15 Aug 2019 14:07:44 +0200 Subject: [PATCH 100/158] gnu: monero: Update to 0.14.1.2. * gnu/packages/finance.scm (monero): Update to 0.14.1.2. [arguments]: Add phase to make files writable for the tests. Enable a previously skipped test. Signed-off-by: Efraim Flashner --- gnu/packages/finance.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 7bfe5e62ff..fc26b77279 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -445,7 +445,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch ;; the system's dynamically linked library. (package (name "monero") - (version "0.14.1.0") + (version "0.14.1.2") (source (origin (method git-fetch) @@ -466,7 +466,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch #t)) (sha256 (base32 - "1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh")))) + "00zl883c7lcd9z7g4y3vv7rxmr7ppzrxdblnhk32r9l3qzyw55r6")))) (build-system cmake-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -508,6 +508,11 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch (("return \\(") "return ((std::string(getenv(\"HOME\"))) / ")) #t)) + (add-after 'change-log-path 'fix-file-permissions-for-tests + (lambda _ + (for-each make-file-writable + (find-files "tests/data/" "wallet_9svHk1.*")) + #t)) ;; Only try tests that don't need access to network or system (replace 'check (lambda _ @@ -522,11 +527,6 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch "DNSResolver.DNSSECSuccess" "DNSResolver.DNSSECFailure" "DNSResolver.GetTXTRecord" - ;; TODO: Find why portability_wallet test fails - ;; Maybe the Boost version used to create the test - ;; wallet and the current Boost version are not - ;; completely compatible? - "Serialization.portability_wallet" "is_hdd.linux_os_root") ":"))) (invoke "tests/unit_tests/unit_tests" From d371112bd019f48a82f380532e0234c2949fc117 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 20 Aug 2019 11:08:42 +0300 Subject: [PATCH 101/158] gnu: edirect: Update to 12.1.20190819. * gnu/packages/bioinformatics.scm (edirect): Update to 12.1.20190819. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 71ea35a007..62f368c139 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2749,7 +2749,7 @@ quantitative phenotypes.") (define-public edirect (package (name "edirect") - (version "10.2.20181018") + (version "12.1.20190819") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect" @@ -2757,7 +2757,7 @@ quantitative phenotypes.") "/edirect-" version ".tar.gz")) (sha256 (base32 - "091f4aigzpbqih6h82nq566gkp3y07i72yqndmqskfgar1vwgci7")))) + "1i9s9mppcfqd60pfywpm8vdyz5vpnyslw22nd7dv0bhykrdnkz9g")))) (build-system perl-build-system) (arguments `(#:phases From 5485148c76e178c9e9ae6d8ecb5f948e0c12028f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 20 Aug 2019 22:34:09 +0200 Subject: [PATCH 102/158] gnu: tor: Update to 0.4.1.5. * gnu/packages/tor.scm (tor): Update to 0.4.1.5. --- gnu/packages/tor.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index c330c853d5..2e8e48c8e2 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -50,14 +50,14 @@ (define-public tor (package (name "tor") - (version "0.4.0.5") + (version "0.4.1.5") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "0vk9j3ybz5dwwbmqrdj1bjcsxy76pc8frmfvflkdzwfkvkqcp8mm")))) + "0984jb6hdcc10f7aq8xzl7l4jf93skp45wkv2v63z4zv0nvf0r58")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From 64c70430ec80c93faff6139fdb9d3de92704b81e Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 19 Jul 2019 16:15:09 -0400 Subject: [PATCH 103/158] gnu: gnome-control-center: Fix info-overview panel issues. GNOME Control Center should now display the correct GNOME version and graphics information in the "Details > About" panel. * gnu/packages/gnome.scm (gnome-control-center)[arguments]: Add configure flag. Adjust 'patch-paths' phase accordingly. [inputs]: Add gnome-session. --- gnu/packages/gnome.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index d5e46e09c1..bfc055eed4 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5967,7 +5967,10 @@ devices using the GNOME desktop.") (arguments '(#:glib-or-gtk? #t #:configure-flags - (list "-Dcheese=false") + (list "-Dcheese=false" + (string-append "-Dgnome_session_libexecdir=" + (assoc-ref %build-inputs "gnome-session") + "/libexec")) #:phases (modify-phases %standard-phases (add-before 'configure 'patch-paths @@ -5975,7 +5978,8 @@ devices using the GNOME desktop.") (let ((libc (assoc-ref inputs "libc")) (tzdata (assoc-ref inputs "tzdata")) (libgnomekbd (assoc-ref inputs "libgnomekbd")) - (nm-applet (assoc-ref inputs "network-manager-applet"))) + (nm-applet (assoc-ref inputs "network-manager-applet")) + (gnome-desktop (assoc-ref inputs "gnome-desktop"))) (substitute* "panels/datetime/tz.h" (("/usr/share/zoneinfo/zone.tab") (string-append tzdata "/share/zoneinfo/zone.tab"))) @@ -5995,6 +5999,10 @@ devices using the GNOME desktop.") (substitute* '("panels/user-accounts/run-passwd.c") (("/usr/bin/passwd") "/run/setuid-programs/passwd")) + (substitute* "panels/info/cc-info-overview-panel.c" + (("DATADIR \"/gnome/gnome-version.xml\"") + (string-append "\"" gnome-desktop + "/share/gnome/gnome-version.xml\""))) #t)))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc. @@ -6014,6 +6022,7 @@ devices using the GNOME desktop.") ("gnome-desktop" ,gnome-desktop) ("gnome-online-accounts" ,gnome-online-accounts) ("gnome-online-accounts:lib" ,gnome-online-accounts "lib") + ("gnome-session" ,gnome-session) ("gnome-settings-daemon" ,gnome-settings-daemon) ("grilo" ,grilo) ("ibus" ,ibus) From 439378fd9f0e3178682ceb846ea532319bd94110 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Tue, 20 Aug 2019 21:49:41 -0400 Subject: [PATCH 104/158] gnu: wxmaxima: Update to 19.08.0. * gnu/packages/maths.scm (wxmaxima): Update to 19.08.0. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ab3b4458b2..57deb15d7d 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2967,7 +2967,7 @@ point numbers.") (define-public wxmaxima (package (name "wxmaxima") - (version "19.05.7") + (version "19.08.0") (source (origin (method git-fetch) @@ -2977,7 +2977,7 @@ point numbers.") (file-name (git-file-name name version)) (sha256 (base32 - "0zaz71fh156b9inrxf86scnix247al5pl9v18cxhjxcm0lanqxdp")))) + "028g4g2081vsgslbdliskfy5q2wknvknw89lk3zp89py6wranxas")))) (build-system cmake-build-system) (native-inputs `(("gettext" ,gettext-minimal))) From eb936efb2a23feb9ffa6ba4a79dc0451ec07732d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 3 Aug 2019 02:17:59 +0200 Subject: [PATCH 105/158] gnu: opensmtpd-next: Update to 6.4.2p1. * gnu/packages/mail.scm (opensmtpd-next): Update to 6.4.2p1. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index b81b15d80c..285585ed00 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2270,14 +2270,14 @@ e-mails with other systems speaking the SMTP protocol.") (define-public opensmtpd-next (package (name "opensmtpd-next") - (version "6.4.1p2") + (version "6.4.2p1") (source (origin (method url-fetch) (uri (string-append "https://www.opensmtpd.org/archives/" "opensmtpd-" version ".tar.gz")) (sha256 - (base32 "0cppqlx4fk6l8rbim5symh2fm1kzshf421256g596j6c9f9q96xn")))) + (base32 "0pgv080ai7d98l9340jadp9wjiaqj2qvgpqhilcz0kps2mdiawbd")))) (build-system gnu-build-system) (inputs `(("bdb" ,bdb) From 8d3bc0f16508a5d76351245fbd08e930fcf5e586 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 21 Jul 2019 16:55:33 +0200 Subject: [PATCH 106/158] gnu: Add emacs-flyspell-correct. * gnu/packages/emacs-xyz.scm (emacs-flyspell-correct): New variable. --- gnu/packages/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a51545c3b3..a4a2164354 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -52,6 +52,7 @@ ;;; Copyright © 2019 Giacomo Leidi ;;; Copyright © 2019 Jens Mølgaard ;;; Copyright © 2019 Amin Bandali +;;; Copyright © 2019 Jelle Licht ;;; ;;; This file is part of GNU Guix. ;;; @@ -17527,3 +17528,32 @@ Emacs Lisp's (relatively new) EIEIO object oriented libraries.") language-specific refactoring in Emacs. It includes refactoring commands for a variety of languages, including elisp itself.") (license license:gpl3+))) + +(define-public emacs-flyspell-correct + (package + (name "emacs-flyspell-correct") + (version "0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/d12frosted/flyspell-correct.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-ivy" ,emacs-ivy) + ("emacs-popup" ,emacs-popup))) + (home-page + "https://github.com/d12frosted/flyspell-correct") + (synopsis + "Correcting words with flyspell via custom interfaces") + (description + "This package provides functionality for correcting words via custom +interfaces. Several interfaces are supported beside the classic ido: popup, +helm and ivy.") + (license license:gpl3+))) From 0f4e4d8ff0e91396985b66a7b3b4ba3cdc0eed07 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 21 Jul 2019 16:55:59 +0200 Subject: [PATCH 107/158] gnu: Add emacs-org-emms. * gnu/packages/emacs-xyz.scm (emacs-org-emms): New variable. --- gnu/packages/emacs-xyz.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a4a2164354..d3fcdaeb15 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17557,3 +17557,32 @@ a variety of languages, including elisp itself.") interfaces. Several interfaces are supported beside the classic ido: popup, helm and ivy.") (license license:gpl3+))) + +(define-public emacs-org-emms + (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533") + (revision "1")) + (package + (name "emacs-org-emms") + (version + (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/jagrg/org-emms.git") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 + "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emms" ,emacs-emms) + ("emacs-org" ,emacs-org))) + (home-page "https://gitlab.com/jagrg/org-emms") + (synopsis "Play multimedia files from org-mode") + (description + "This package provides a new org link type for playing back multimedia +files from org-mode using EMMS, The Emacs Multimedia System. If the link +contains a track position, playback will start at the specified position.") + (license license:gpl3+)))) From 04e748465c140b71e97cac80c754f08491edf09a Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 21 Jul 2019 16:56:20 +0200 Subject: [PATCH 108/158] gnu: Add emacs-org-jira. * gnu/packages/emacs-xyz.scm (emacs-org-jira): New variable. --- gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d3fcdaeb15..b4622e2bd8 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17586,3 +17586,30 @@ helm and ivy.") files from org-mode using EMMS, The Emacs Multimedia System. If the link contains a track position, playback will start at the specified position.") (license license:gpl3+)))) + +(define-public emacs-org-jira + (package + (name "emacs-org-jira") + (version "4.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ahungry/org-jira.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-request" ,emacs-request) + ("emacs-s" ,emacs-s) + ("emacs-dash" ,emacs-dash) + ("emacs-org" ,emacs-org))) + (home-page "https://github.com/ahungry/org-jira") + (synopsis "Syncing between Jira and Org-mode") + (description + "This package provides an extension to org-mode for syncing issues with +JIRA issue servers.") + (license license:gpl3+))) From e6b7f90ebaabe000274c9a157c29b20f4f86a3fb Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 21 Jul 2019 16:56:31 +0200 Subject: [PATCH 109/158] gnu: Add emacs-systemd-mode. * gnu/packages/emacs-xyz.scm (emacs-systemd-mode): New variable. --- gnu/packages/emacs-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index b4622e2bd8..6ea851187c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17613,3 +17613,25 @@ contains a track position, playback will start at the specified position.") "This package provides an extension to org-mode for syncing issues with JIRA issue servers.") (license license:gpl3+))) + +(define-public emacs-systemd-mode + (package + (name "emacs-systemd-mode") + (version "1.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/holomorph/systemd-mode.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq")))) + (build-system emacs-build-system) + (arguments '(#:include '("\\.el$" "\\.txt$"))) + (home-page "https://github.com/holomorph/systemd-mode") + (synopsis + "Major mode for editing systemd units") + (description + "Major mode for editing systemd units in GNU Emacs.") + (license license:gpl3+))) From c8c42d878618271a3db4fd8c1cb11f15aa38f452 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 21 Jul 2019 16:56:44 +0200 Subject: [PATCH 110/158] gnu: Add emacs-ssh-config-mode. * gnu/packages/emacs-xyz.scm (emacs-ssh-config-mode): New variable. --- gnu/packages/emacs-xyz.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6ea851187c..2f5bf05ff9 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17635,3 +17635,31 @@ JIRA issue servers.") (description "Major mode for editing systemd units in GNU Emacs.") (license license:gpl3+))) + +(define-public emacs-ssh-config-mode + (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56") + (revision "1")) + (package + (name "emacs-ssh-config-mode") + (version (git-version "8.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/jhgorrell/ssh-config-mode-el.git") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 + "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd")))) + (build-system emacs-build-system) + (arguments '(#:include '("\\.el$" "\\.txt$"))) + (home-page + "https://github.com/jhgorrell/ssh-config-mode-el") + (synopsis + "Mode for fontification of ~/.ssh/config") + (description + "This packages fontifies the ssh config keywords and creates +keybindings for skipping from host section to host section.") + (license license:gpl3+)))) From cad875350b0ecf838506fa293b29ffb33ab5d3bd Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 21 Aug 2019 15:09:15 +0200 Subject: [PATCH 111/158] gnu: emacs-helm-slime: Update to 0.4.0. * gnu/packages/emacs-xyz.scm (emacs-helm-slime): Update to 0.4.0. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 2f5bf05ff9..06367aa991 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -15023,7 +15023,7 @@ correctly.") (define-public emacs-helm-slime (package (name "emacs-helm-slime") - (version "0.3.0") + (version "0.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -15032,7 +15032,7 @@ correctly.") (file-name (git-file-name name version)) (sha256 (base32 - "1qhb9446rpj17pm0hi3miy5gs5k3ld43bq29kzy0y26bf7ivfcjv")))) + "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) From 8a3b11d1eb21e54b4f3a3cbceffed8ce2c11512e Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 6 Aug 2019 20:17:27 +0100 Subject: [PATCH 112/158] import: utils: Add hash-ref*. With the change to guile-json version 3, JSON objects are represented as hash tables, rather than alists. The cpan importer uses assoc-ref* on a hash table, so add an equivalent function for hash tables. * guix/import/utils.scm (hash-ref*): New procedure. --- guix/import/utils.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 2a3b7341fb..ed6c3ce6af 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -47,6 +47,7 @@ flatten assoc-ref* + hash-ref* url-fetch guix-hash-url @@ -116,6 +117,15 @@ recursively apply the procedure to the sub-list." (assoc-ref alist key) (apply assoc-ref* (assoc-ref alist key) rest))) +(define (hash-ref* hash-table key . rest) + "Return the value for KEY from HASH-TABLE. For each additional key specified, +recursively apply the procedure to the sub-hash-table." + (if (hash-table? hash-table) + (if (null? rest) + (hash-ref hash-table key) + (apply hash-ref* (hash-ref hash-table key) rest)) + #f)) ; For consistency with assoc-ref* + (define (url-fetch url file-name) "Save the contents of URL to FILE-NAME. Return #f on failure." (parameterize ((current-output-port (current-error-port))) From 01ce7af25add55514f737af48ea6c127bedfde67 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 6 Aug 2019 20:17:28 +0100 Subject: [PATCH 113/158] import: cpan: Adapt for the change to guile-json version 3. In guile-json version 3, JSON objects are represented as hash tables, rather than alists. * guix/import/cpan.scm (string->license): Change the match expression to match on lists, rather than vectors. (module->dist-name, cpan-source-url, cpan-version): Change assoc-ref to hash-ref. (cpan-module->sexp): Change assoc-ref to hash-ref, and assoc-ref* to hash-ref*. * tests/cpan.scm ("source-url-http", "source-url-https"): Convert the alist to a hash table. --- guix/import/cpan.scm | 30 ++++++++++++++++-------------- tests/cpan.scm | 13 ++++++++----- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index ec86f11743..0be37e715e 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -34,7 +34,7 @@ #:use-module (guix ui) #:use-module ((guix download) #:select (download-to-store url-fetch)) #:use-module ((guix import utils) #:select (factorize-uri - flatten assoc-ref*)) + flatten hash-ref*)) #:use-module (guix import json) #:use-module (guix packages) #:use-module (guix upstream) @@ -76,8 +76,8 @@ ;; ssleay ;; sun ("zlib" 'zlib) - (#(x) (string->license x)) - (#(lst ...) `(list ,@(map string->license lst))) + ((x) (string->license x)) + ((lst ...) `(list ,@(map string->license lst))) (_ #f))) (define (module->name module) @@ -88,11 +88,11 @@ "Return the base distribution module for a given module. E.g. the 'ok' module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would return \"Test-Simple\"" - (assoc-ref (json-fetch (string-append - "https://fastapi.metacpan.org/v1/module/" - module - "?fields=distribution")) - "distribution")) + (hash-ref (json-fetch (string-append + "https://fastapi.metacpan.org/v1/module/" + module + "?fields=distribution")) + "distribution")) (define (package->upstream-name package) "Return the CPAN name of PACKAGE." @@ -122,12 +122,12 @@ or #f on failure. MODULE should be e.g. \"Test::Script\"" (define (cpan-source-url meta) "Return the download URL for a module's source tarball." (regexp-substitute/global #f "http[s]?://cpan.metacpan.org" - (assoc-ref meta "download_url") + (hash-ref meta "download_url") 'pre "mirror://cpan" 'post)) (define (cpan-version meta) "Return the version number from META." - (match (assoc-ref meta "version") + (match (hash-ref meta "version") ((? number? version) ;; version is sometimes not quoted in the module json, so it gets ;; imported into Guile as a number, so convert it to a string. @@ -183,7 +183,7 @@ depend on (gnu packages perl)." "Return the `package' s-expression for a CPAN module from the metadata in META." (define name - (assoc-ref meta "distribution")) + (hash-ref meta "distribution")) (define (guix-name name) (if (string-prefix? "perl-" name) @@ -198,7 +198,9 @@ META." (match (flatten (map (lambda (ph) (filter-map (lambda (t) - (assoc-ref* meta "metadata" "prereqs" ph t)) + (and=> (hash-ref* meta "metadata" "prereqs" ph t) + (lambda (h) + (hash-map->list cons h)))) '("requires" "recommends" "suggests"))) phases)) (#f @@ -251,9 +253,9 @@ META." ,@(maybe-inputs 'propagated-inputs (convert-inputs '("runtime"))) (home-page ,(cpan-home name)) - (synopsis ,(assoc-ref meta "abstract")) + (synopsis ,(hash-ref meta "abstract")) (description fill-in-yourself!) - (license ,(string->license (assoc-ref meta "license")))))) + (license ,(string->license (hash-ref meta "license")))))) (define (cpan->guix-package module-name) "Fetch the metadata for PACKAGE-NAME from metacpan.org, and return the diff --git a/tests/cpan.scm b/tests/cpan.scm index 189dd027e6..cdd6c0e76a 100644 --- a/tests/cpan.scm +++ b/tests/cpan.scm @@ -24,7 +24,8 @@ #:use-module (guix tests) #:use-module (guix grafts) #:use-module (srfi srfi-64) - #:use-module (ice-9 match)) + #:use-module (ice-9 match) + #:use-module (ice-9 hash-table)) ;; Globally disable grafts because they can trigger early builds. (%graft? #f) @@ -109,14 +110,16 @@ (test-equal "source-url-http" ((@@ (guix import cpan) cpan-source-url) - `(("download_url" . - "http://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"))) + (alist->hash-table + `(("download_url" . + "http://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz")))) "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz") (test-equal "source-url-https" ((@@ (guix import cpan) cpan-source-url) - `(("download_url" . - "https://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"))) + (alist->hash-table + `(("download_url" . + "https://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz")))) "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz") (test-end "cpan") From 178f1d1f75a8d512b517f474f63da507beaebd49 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 21 Aug 2019 13:41:18 -0400 Subject: [PATCH 114/158] gnu: vlc: Update to 3.0.8. * gnu/packages/video.scm (vlc): Update to 3.0.8. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9b809d007f..8b7bb38fa8 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1052,7 +1052,7 @@ videoformats depend on the configuration flags of ffmpeg.") (define-public vlc (package (name "vlc") - (version "3.0.7.1") + (version "3.0.8") (source (origin (method url-fetch) (uri (string-append @@ -1061,7 +1061,7 @@ videoformats depend on the configuration flags of ffmpeg.") "/vlc-" version ".tar.xz")) (sha256 (base32 - "1xb4c8n0hkwijzfdlbwadhxnx9z8rlhmrdq4c7q74rq9f51q0m86")))) + "1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) From c17f54e73835d43f35c5bdcdf5dae7667f6a2e50 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 20:47:19 +0200 Subject: [PATCH 115/158] gnu: help2man: Update to 1.47.11. * gnu/packages/man.scm (help2man/latest): Update to 1.47.11. --- gnu/packages/man.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index f5c888186f..e0e15355dd 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -227,14 +227,14 @@ automatically.") (define-public help2man/latest (package (inherit help2man) - (version "1.47.10") + (version "1.47.11") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/help2man/help2man-" version ".tar.xz")) (sha256 (base32 - "1yywli520246aba12vpgj7bhr1r13swad3xm49a0cygqcgywnwgk")))))) + "123vsimgx8zq1h077sbyh3bd0hbmlc3wih2231wwh133z1bv51ar")))))) (define-public scdoc (package From d6ce8eca0707bbe04994cae5d01768bdbb1c2ab4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 20:48:03 +0200 Subject: [PATCH 116/158] gnu: csound: Update to 6.13.0. * gnu/packages/audio.scm (csound): Update to 6.13.0. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index fc0d6f80db..8d8bf18af2 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -714,7 +714,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") (define-public csound (package (name "csound") - (version "6.12.2") + (version "6.13.0") (source (origin (method git-fetch) (uri (git-reference @@ -723,7 +723,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") (file-name (git-file-name name version)) (sha256 (base32 - "01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2")))) + "14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh")))) (build-system cmake-build-system) (inputs `(("alsa-lib" ,alsa-lib) From e5e24819129bc634d2c795933e49a5f9a336a2e0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 20:49:42 +0200 Subject: [PATCH 117/158] gnu: angband: Update to 4.2.0. * gnu/packages/games.scm (angband): Update to 4.2.0. --- gnu/packages/games.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index c37364e369..5c0d47fade 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1383,7 +1383,7 @@ that beneath its ruins lay buried an ancient evil.") (define-public angband (package (name "angband") - (version "4.1.3") + (version "4.2.0") (source (origin (method url-fetch) @@ -1392,7 +1392,7 @@ that beneath its ruins lay buried an ancient evil.") "/angband-" version ".tar.gz")) (sha256 (base32 - "0vs0314lbdc6rzxn4jnb7zp6n1p1cdb8r53savadn7k9vbwc80ll")) + "0vdm1ymm28wawp94nl1p5q3lhc0k7cnn2kkvvrkfx962gif4kqfk")) (modules '((guix build utils))) (snippet ;; So, some of the sounds/graphics/tilesets are under different @@ -1406,7 +1406,7 @@ that beneath its ruins lay buried an ancient evil.") (delete-file-recursively lib-subdir))) '("fonts" "icons" "sounds" "tiles")) (substitute* "lib/Makefile" - ;; And don't try to invoke makefiles in the directories we removed + ;; And don't try to invoke makefiles in the directories we removed. (("gamedata customize help screens fonts tiles sounds icons user") "gamedata customize help screens user")) #t)))) From f98d66f3c6e04bb49f36b6cb3cdb503dfc37e6ea Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 20:52:28 +0200 Subject: [PATCH 118/158] gnu: xlockmore: Update to 5.58. * gnu/packages/xdisorg.scm (xlockmore): Update to 5.58. --- gnu/packages/xdisorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index bd30fd2fd2..4661d09afb 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -716,7 +716,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.") (define-public xlockmore (package (name "xlockmore") - (version "5.57") + (version "5.58") (source (origin (method url-fetch) (uri (list (string-append "http://sillycycle.com/xlock/" @@ -727,7 +727,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.") name "-" version ".tar.xz"))) (sha256 (base32 - "18r8rh8fzdn9miicbpc3qbdd4mm2g1jpsbcvj29sr66pxydzkb7r")))) + "1va11sbv5lbkxkp0i0msz5md3n2n82nzppk27rzdrw7y79vq37zw")))) (build-system gnu-build-system) (arguments '(#:configure-flags (list (string-append "--enable-appdefaultdir=" From 3596b994e877896420afe38d8edd909d23fcf6a8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 20:52:36 +0200 Subject: [PATCH 119/158] gnu: xlockmore: Don't use NAME in source URI. * gnu/packages/xdisorg.scm (xlockmore)[source]: Hard-code NAME. --- gnu/packages/xdisorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 4661d09afb..bcc61f59af 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -720,11 +720,11 @@ shows it again when the mouse cursor moves or a mouse button is pressed.") (source (origin (method url-fetch) (uri (list (string-append "http://sillycycle.com/xlock/" - name "-" version ".tar.xz") + "xlockmore-" version ".tar.xz") ;; Previous releases are moved to a subdirectory. (string-append "http://sillycycle.com/xlock/" "recent-releases/" - name "-" version ".tar.xz"))) + "xlockmore-" version ".tar.xz"))) (sha256 (base32 "1va11sbv5lbkxkp0i0msz5md3n2n82nzppk27rzdrw7y79vq37zw")))) From 2b744c21cb5b087c6e9e54b65127d06058e45f54 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 21:21:53 +0200 Subject: [PATCH 120/158] gnu: manaplus: Update to 1.9.3.23. * gnu/packages/games.scm (manaplus): Update to 1.9.3.23. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 5c0d47fade..6c4e83d061 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2337,7 +2337,7 @@ on the screen and keyboard to display letters.") (define-public manaplus (package (name "manaplus") - (version "1.7.6.10") + (version "1.9.3.23") (source (origin (method url-fetch) (uri (string-append @@ -2345,7 +2345,7 @@ on the screen and keyboard to display letters.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "0l7swvpzq20am4w2rsjpp6fsvbjv07il6wbfy45a7h9zsdihmqhl")))) + "1ky182p4svwdqm6cf7jbns85hidkhkhq4s17cs2p381f0klapfjz")))) (build-system gnu-build-system) (arguments '(#:configure-flags From 074dd909a276fa569231fc776fc65344b946fd1c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 21:22:40 +0200 Subject: [PATCH 121/158] gnu: manaplus: Use HTTPS origin & home page. * gnu/packages/games.scm (manaplus)[source, home-page]: Use HTTPS. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 6c4e83d061..870becc50b 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2341,7 +2341,7 @@ on the screen and keyboard to display letters.") (source (origin (method url-fetch) (uri (string-append - "http://repo.manaplus.org/manaplus/download/" + "https://repo.manaplus.org/manaplus/download/" version "/manaplus-" version ".tar.xz")) (sha256 (base32 @@ -2360,7 +2360,7 @@ on the screen and keyboard to display letters.") ("libxml2" ,libxml2) ("mesa" ,mesa) ("sdl-union" ,(sdl-union)))) - (home-page "http://manaplus.org") + (home-page "https://manaplus.org") (synopsis "Client for 'The Mana World' and similar games") (description "ManaPlus is a 2D MMORPG client for game servers. It is the only From 8ce1b78b5be64440e5d6a611f6c0c64013a3ff4c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 21:31:19 +0200 Subject: [PATCH 122/158] gnu: setbfree: Update to 0.8.9. * gnu/packages/music.scm (setbfree): Update to 0.8.9. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 5dfa320d2c..22380c8667 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1543,7 +1543,7 @@ reverb effects.") (define-public setbfree (package (name "setbfree") - (version "0.8.8") + (version "0.8.9") (source (origin (method git-fetch) (uri (git-reference @@ -1552,7 +1552,7 @@ reverb effects.") (file-name (git-file-name name version)) (sha256 (base32 - "15dr1nyj69wc9jnjq5z8ril90a3c0mcrii4zjyz0z3h7dhia3382")))) + "1lpsa64xvwa9xbbp8zcwxy5w0daffc7fziny2pizabqh7m9xqjl2")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target From 4bad41e015afd2d088989464eca8caf8f23dba69 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 21:51:35 +0200 Subject: [PATCH 123/158] gnu: pd: Update to 0.50-0. * gnu/packages/music.scm (pd): Update to 0.50-0. --- gnu/packages/music.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 22380c8667..d4aaecc1e2 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1790,7 +1790,7 @@ export.") (define-public pd (package (name "pd") - (version "0.49-0") + (version "0.50-0") (source (origin (method url-fetch) (uri @@ -1798,10 +1798,10 @@ export.") version ".src.tar.gz")) (sha256 (base32 - "18rzqbpgnnvyslap7k0ly87aw1bbxkb0rk5agpr423ibs9slxq6j")))) + "0hg4n5b55f650qsc0mjx559072dp7vfza7w0pvk6rk2l831cvsps")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no "check" target + `(#:tests? #f ; no "check" target #:configure-flags (list "--enable-jack" From 240d9ef9a038f0a042db4eaa8577ede36eb44da8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 21:55:08 +0200 Subject: [PATCH 124/158] gnu: libabw: Don't use NAME in source URI. * gnu/packages/libreoffice.scm (libabw)[source]: Hard-code NAME. --- gnu/packages/libreoffice.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 026ce92aab..239cabdd2e 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -335,8 +335,8 @@ as Alfresco or Nuxeo.") (source (origin (method url-fetch) - (uri (string-append "https://dev-www.libreoffice.org/src/" name "/" - name "-" version ".tar.xz")) + (uri (string-append "https://dev-www.libreoffice.org/src/libabw/" + "libabw-" version ".tar.xz")) (sha256 (base32 "11949iscdb99f2jplxjd39282jxcrf2fw0sqbh5dl7gqb96r8whb")))) (build-system gnu-build-system) From 7e14ed93f5119fb47409e5d09f4dd54207f371ea Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 21:58:17 +0200 Subject: [PATCH 125/158] gnu: getmail: Don't use NAME in source URI. * gnu/packages/mail.scm (getmail)[source]: Hard-code NAME. --- gnu/packages/mail.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 285585ed00..7e7d6be46c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1003,7 +1003,7 @@ and search library.") (origin (method url-fetch) (uri (string-append "http://pyropus.ca/software/getmail/old-versions/" - name "-" version ".tar.gz")) + "getmail-" version ".tar.gz")) (sha256 (base32 "16nmvj80szr6yvcxxgmxn2lxqpjqqj4xg5a0b66zhvck6j42q3a6")))) From 88e903a5f12ccf4bec4c5dd5f71f55d965e93983 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 22:01:04 +0200 Subject: [PATCH 126/158] gnu: getmail: Update to 5.14. * gnu/packages/mail.scm (getmail): Update to 5.14. --- gnu/packages/mail.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 7e7d6be46c..bb3bf2bfb5 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -998,18 +998,17 @@ and search library.") (define-public getmail (package (name "getmail") - (version "5.6") + (version "5.14") (source (origin (method url-fetch) (uri (string-append "http://pyropus.ca/software/getmail/old-versions/" "getmail-" version ".tar.gz")) (sha256 - (base32 - "16nmvj80szr6yvcxxgmxn2lxqpjqqj4xg5a0b66zhvck6j42q3a6")))) + (base32 "1hcrd9h4g12f5gvl1djsbchcjry02ghq4icdr897s8v48pkrzagk")))) (build-system python-build-system) (arguments - `(#:tests? #f ; no tests + `(#:tests? #f ; no tests #:python ,python-2)) (home-page "http://pyropus.ca/software/getmail/") (synopsis "Mail retriever") From 94781b79ad939e342f6ee1863f0d966cb7f54b84 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 22:05:30 +0200 Subject: [PATCH 127/158] gnu: fluidsynth: Use GIT-FILE-NAME. * gnu/packages/audio.scm (fluidsynth)[source]: Use GIT-FILE-NAME. --- gnu/packages/audio.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 8d8bf18af2..d8b7095540 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1111,7 +1111,7 @@ follower.") (uri (git-reference (url "https://github.com/FluidSynth/fluidsynth.git") (commit (string-append "v" version)))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y")))) From f8719b155ea959a964228ea5107ee42f425cd8c3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 22:06:48 +0200 Subject: [PATCH 128/158] gnu: fluidsynth: Update to 2.0.6. * gnu/packages/audio.scm (fluidsynth): Update to 2.0.6. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index d8b7095540..44a49295d3 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1105,7 +1105,7 @@ follower.") (define-public fluidsynth (package (name "fluidsynth") - (version "2.0.5") + (version "2.0.6") (source (origin (method git-fetch) (uri (git-reference @@ -1114,7 +1114,7 @@ follower.") (file-name (git-file-name name version)) (sha256 (base32 - "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y")))) + "0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check target From b5b4d912510f2e22c2924c0a262a167e20d061b0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 23:48:58 +0200 Subject: [PATCH 129/158] gnu: tmux: Use HTTPS home page. * gnu/packages/tmux.scm (tmux)[home-page]: Use HTTPS. --- gnu/packages/tmux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm index 730cb421de..b3b8ed75eb 100644 --- a/gnu/packages/tmux.scm +++ b/gnu/packages/tmux.scm @@ -51,7 +51,7 @@ (inputs `(("libevent" ,libevent) ("ncurses" ,ncurses))) - (home-page "http://tmux.github.io/") + (home-page "https://tmux.github.io/") (synopsis "Terminal multiplexer") (description "tmux is a terminal multiplexer: it enables a number of terminals (or From d1aca5b0370a7fa69bd525abd56c480e1424e5dd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 23:49:11 +0200 Subject: [PATCH 130/158] gnu: tmux: Update to 2.9a. * gnu/packages/tmux.scm (tmux): Update to 2.9a. --- gnu/packages/tmux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm index b3b8ed75eb..6f1ef45ae1 100644 --- a/gnu/packages/tmux.scm +++ b/gnu/packages/tmux.scm @@ -38,7 +38,7 @@ (define-public tmux (package (name "tmux") - (version "2.9") + (version "2.9a") (source (origin (method url-fetch) (uri (string-append @@ -46,7 +46,7 @@ version "/tmux-" version ".tar.gz")) (sha256 (base32 - "10195hp5ydkwwmpcr7188fgx9daqwrslb1lylgrrkzc6yhr1541l")))) + "099vn8mg2nnizbqqc87a5mxm8c46kadfhx30dgxbz9hp8mx1d7c3")))) (build-system gnu-build-system) (inputs `(("libevent" ,libevent) From 28553e17fd2ce7f51429891d6a82ed2d0bbadbe2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 23:51:41 +0200 Subject: [PATCH 131/158] gnu: hcxtools: Update to 5.2.0. * gnu/packages/networking.scm (hcxtools): Update to 5.2.0. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 16e04aaa13..9d208e9eb2 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2283,7 +2283,7 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.") (define-public hcxtools (package (name "hcxtools") - (version "5.1.6") + (version "5.2.0") (source (origin (method git-fetch) @@ -2291,7 +2291,7 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.") (url "https://github.com/ZerBea/hcxtools.git") (commit version))) (sha256 - (base32 "05sjbmv2wq3nlmammrwxqc62c4sagjjgczzddr1jcqkf6kywzkl8")) + (base32 "0k2qlq9hz5zc21nyc6yrnfqzga7hydn5mm0x3rpl2fhkwl81lxcn")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (inputs From 35805bff9fabb749fc0bbe77b4ee4fc1bfe7e601 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 21 Aug 2019 23:51:48 +0200 Subject: [PATCH 132/158] gnu: hcxdumptool: Update to 5.2.0. * gnu/packages/networking.scm (hcxdumptool): Update to 5.2.0. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 9d208e9eb2..79262cbc27 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2326,7 +2326,7 @@ packets from wireless devices for use with hashcat or John the Ripper.") (define-public hcxdumptool (package (name "hcxdumptool") - (version "5.1.5") + (version "5.2.0") (source (origin (method git-fetch) @@ -2334,7 +2334,7 @@ packets from wireless devices for use with hashcat or John the Ripper.") (url "https://github.com/ZerBea/hcxdumptool.git") (commit version))) (sha256 - (base32 "0xkzdvwpi6dq9wsrn882f2ljb7d5v2bvarq8gs6jm8znfx3y8hi2")) + (base32 "0pg1pvg029gm4rj0fj5kcsjb32hixgn4cxsgiir7spkmacf1qm4q")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments From d0d54a61d3c245d32f1de3427fe279a5de4ea9f1 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 3 Jun 2019 18:50:58 +0200 Subject: [PATCH 133/158] gnu: lsyncd: Search $PATH for binaries. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/sync.scm (lsyncd)[arguments]: Add ‘search-$PATH-for-binaries’ phase. --- gnu/packages/sync.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 1c80b7978e..ccebe40e9d 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -183,8 +183,20 @@ their folder. #:test-target "tests" #:phases (modify-phases %standard-phases - ;; No install target. + (add-after 'unpack 'search-$PATH-for-binaries + ;; lsyncd requires and hard-codes absolute file names to binaries. + ;; Make it fall back to searching $PATH for relative file names. + (lambda _ + (substitute* "lsyncd.c" + (("execv\\(") "execvp(")) + (substitute* (list "lsyncd.lua" + "default-direct.lua" + "default-rsync.lua" + "default-rsyncssh.lua") + (("(|/usr)/bin/") "")) + #t)) (replace 'install + ;; No install target. (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) From 3251c628f754eaceaa0515fadffcf8e64e1ca66e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 00:25:00 +0200 Subject: [PATCH 134/158] gnu: ccache: Update to 3.6. * gnu/packages/ccache.scm (ccache): Update to 3.6. --- gnu/packages/ccache.scm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm index 0a1112c310..b3f0cbbd95 100644 --- a/gnu/packages/ccache.scm +++ b/gnu/packages/ccache.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2018 Eric Bavier ;;; Copyright © 2016, 2017 Efraim Flashner -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,15 +30,14 @@ (define-public ccache (package (name "ccache") - (version "3.5") + (version "3.6") (source (origin - (method url-fetch) - (uri (string-append "https://www.samba.org/ftp/ccache/ccache-" - version ".tar.xz")) - (sha256 - (base32 - "04n0xram2416pv98qrd7pi5lfsk0bjqyz7zgvvia41j5mrr4pm5x")))) + (method url-fetch) + (uri (string-append "https://www.samba.org/ftp/ccache/ccache-" + version ".tar.xz")) + (sha256 + (base32 "07wv75xdcxpdkfsz9h5ffrm8pjbvr1dh6wnb02nyzz18cdbjkcd6")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ; for test/run ("which" ,(@ (gnu packages base) which)))) From 524c0ece8ec660afc3675767c96b31e516158ea8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 11:50:21 +0200 Subject: [PATCH 135/158] gnu: bind: Update to 9.14.5. * gnu/packages/dns.scm (isc-bind): Update to 9.14.5. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index b4d5a9ab27..824a8372bb 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -109,7 +109,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public isc-bind (package (name "bind") - (version "9.14.4") + (version "9.14.5") (source (origin (method url-fetch) (uri (string-append @@ -117,7 +117,7 @@ and BOOTP/TFTP for network booting of diskless machines.") "/bind-" version ".tar.gz")) (sha256 (base32 - "0gxqws7ml15lwkjw9mdcd759gv5kk3s9m17j3vrp9448ls1gnbii")))) + "0ic0k0kpavwnbyf10rwx6yypxg66f65fprwc0dbmp61xp0n6gl0j")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs From 23503abbc0615ac0446dc1e5c74cbe2ba96253bb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 12:26:43 +0200 Subject: [PATCH 136/158] gnu: python-redis: Update to 3.3.8. * gnu/packages/databases.scm (python-redis): Update to 3.3.8. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 6ced8ac184..63ad760757 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -2729,13 +2729,13 @@ reasonable substitute.") (define-public python-redis (package (name "python-redis") - (version "3.2.1") + (version "3.3.8") (source (origin (method url-fetch) (uri (pypi-uri "redis" version)) (sha256 - (base32 "0wwj8il4c3aff15xwwcjfci367zxsakq05ps1a2il6yavp91i94c")))) + (base32 "0fyxzqax7lcwzwhvnz0i0q6v62hxyv1mv52ywx3bpff9a2vjz8lq")))) (build-system python-build-system) ;; Tests require a running Redis server. (arguments '(#:tests? #f)) From 7323def37d6a1ddcb40d1409da5d6f7cc20c8ab3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 14:13:35 +0200 Subject: [PATCH 137/158] gnu: nnn: Update to 2.6. * gnu/packages/admin.scm (nnn): Update to 2.6. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index a0e0af0549..5dacffe752 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2754,14 +2754,14 @@ you are running, what theme or icon set you are using, etc.") (define-public nnn (package (name "nnn") - (version "1.9") + (version "2.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/jarun/nnn/releases/download/v" version "/nnn-v" version ".tar.gz")) (sha256 - (base32 "1d6z12y4rlg4dzhpm30irpq2ak8hjh5zykkp2n7vxnz5m4ki89zp")))) + (base32 "0xb6crd9vig3xgjwl8m4bmgcs4azfmfdpx3g8pdpzs28jdg7i3rr")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) From 29b60130d8a3d89b9562043a3ce07a1c0c644cf0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 14:21:34 +0200 Subject: [PATCH 138/158] gnu: chafa: Update to 1.2.1. * gnu/packages/image-viewers.scm (chafa): Update to 1.2.1. --- gnu/packages/image-viewers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 0c5da63053..51062df7a3 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -501,14 +501,14 @@ preloading.") (define-public chafa (package (name "chafa") - (version "1.0.1") + (version "1.2.1") (source (origin (method url-fetch) (uri (string-append "https://hpjansson.org/chafa/releases/chafa-" version ".tar.xz")) (sha256 (base32 - "00cf2z52az0z6bzc3hfm4l8infipy5ck410wqmbaybd2csjr3m29")))) + "1hj4vdyczby8h52ff23qxl8ng18p5jy549idngpiddwszf5s4drz")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) From 76eb007990fb494f5969570fe52bad4aaa7f2dbf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 15:16:58 +0200 Subject: [PATCH 139/158] gnu: shellcheck: Update to 0.7.0. * gnu/packages/haskell.scm (shellcheck): Update to 0.7.0. [inputs]: Add ghc-diff. --- gnu/packages/haskell.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8787f10789..b544190895 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8361,7 +8361,7 @@ generated SQL and optimize it for your backend.") (define-public shellcheck (package (name "shellcheck") - (version "0.5.0") + (version "0.7.0") (source (origin (method url-fetch) @@ -8369,12 +8369,12 @@ generated SQL and optimize it for your backend.") "https://hackage.haskell.org/package/ShellCheck/ShellCheck-" version ".tar.gz")) (sha256 - (base32 - "0z1hscbr11hwkq8k1v0vaa947hb9m6k4cm831jk1gpj8dxrk151b")) + (base32 "1vx895cp5k5h0680xfwj74lk97m9y627n965x6srds0gfnbkzy9s")) (file-name (string-append name "-" version ".tar.gz")))) (build-system haskell-build-system) (inputs `(("ghc-aeson" ,ghc-aeson) + ("ghc-diff" ,ghc-diff) ("ghc-quickcheck" ,ghc-quickcheck) ("ghc-regex-tdfa" ,ghc-regex-tdfa))) (home-page "https://github.com/koalaman/shellcheck") From 1f10e3695ce907c0c14e39c600a02407712ec35d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 15:26:44 +0200 Subject: [PATCH 140/158] gnu: nsd: Update to 4.2.2. * gnu/packages/dns.scm (nsd): Update to 4.2.2. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 824a8372bb..ae2e5cf8fa 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -303,14 +303,14 @@ asynchronous fashion.") (define-public nsd (package (name "nsd") - (version "4.2.0") + (version "4.2.2") (source (origin (method url-fetch) (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-" version ".tar.gz")) (sha256 - (base32 "0k57xl3ybdnqjqw9a3dmi7l6qmhkiic6wsghkz08ir809aj1rpsi")))) + (base32 "1ys608jyp5scc957q4brm094c97sxlwymina7d2nvzi51aa37cw3")))) (build-system gnu-build-system) (arguments `(#:configure-flags From d4ae72af47506f6fd992043e9879b4200a757d0e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 15:31:54 +0200 Subject: [PATCH 141/158] gnu: mpd: Update to 0.21.14. * gnu/packages/mpd.scm (mpd): Update to 0.21.14. --- gnu/packages/mpd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 5468ba901e..e8b1e6e0b1 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -91,7 +91,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.21.13") + (version "0.21.14") (source (origin (method url-fetch) (uri @@ -100,7 +100,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "1sjyhmq50nlccwmd8xn7m0bk8xvyixvfyr24v9dy3g86hhk0pdwm")))) + "0iknnm9xvwfgk8h82hjwrmbijpk9l0dgap0794c2nyg8i66qlb0y")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=true") ; the default is 'false'... From cc08576d9b562f60659ad17622c0e1c8e3996977 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 15:32:13 +0200 Subject: [PATCH 142/158] gnu: whois: Don't use NAME in source URI. * gnu/packages/networking.scm (whois)[source]: Hard-code NAME. --- gnu/packages/networking.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 79262cbc27..75677a9394 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -556,7 +556,7 @@ and up to 1 Mbit/s downstream.") (origin (method url-fetch) (uri (string-append "mirror://debian/pool/main/w/whois/" - name "_" version ".tar.xz")) + "whois_" version ".tar.xz")) (sha256 (base32 "0gbg9fis05zf2fl4264jplbphy75l50k3g92cz6mkmbsklrn7v34")))) From 15783008caef2d9ad2e988954d62d24dc3adb41e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Aug 2019 15:32:21 +0200 Subject: [PATCH 143/158] gnu: whois: Update to 5.5.1. * gnu/packages/networking.scm (whois): Update to 5.5.1. --- gnu/packages/networking.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 75677a9394..4527c4927c 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -551,15 +551,14 @@ and up to 1 Mbit/s downstream.") (define-public whois (package (name "whois") - (version "5.5.0") + (version "5.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://debian/pool/main/w/whois/" "whois_" version ".tar.xz")) (sha256 - (base32 - "0gbg9fis05zf2fl4264jplbphy75l50k3g92cz6mkmbsklrn7v34")))) + (base32 "10mc7iqhdnvd1kk8gnnhihd5ga2rw3sz69n3nd6x8fb65qpq13gf")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite From e8079ba403dca8f3dd0f2b9248c18ca66574830d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Jul 2019 10:30:16 +0200 Subject: [PATCH 144/158] gnu: mupen64plus-ui-console: Use HTTPS home page. * gnu/packages/emulators.scm (mupen64plus-ui-console)[home-page]: Use HTTPS. --- gnu/packages/emulators.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 388611d1d8..d7417c898c 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -986,7 +986,7 @@ Z64 video plugin.") (string-append "COREDIR=" m64p "/lib/"))) ;; There are no tests. #:tests? #f)) - (home-page "http://www.mupen64plus.org/") + (home-page "https://www.mupen64plus.org/") (synopsis "Mupen64Plus SDL input plugin") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator From ff452beac5dd7ffecc39556083c94435570d9c1d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Jul 2019 10:39:29 +0200 Subject: [PATCH 145/158] gnu: mupen64plus-ui-console: Correct synopsis. * gnu/packages/emulators.scm (mupen64plus-ui-console)[synopisis]: Correct. --- gnu/packages/emulators.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index d7417c898c..804edddcef 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -987,7 +987,7 @@ Z64 video plugin.") ;; There are no tests. #:tests? #f)) (home-page "https://www.mupen64plus.org/") - (synopsis "Mupen64Plus SDL input plugin") + (synopsis "Mupen64Plus command line user interface") (description "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator which is capable of accurately playing many games. This package contains the From f5111b4d2b982d58387188bc3018e4dd2e9a9d4f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 31 Jul 2019 00:41:37 +0200 Subject: [PATCH 146/158] gnu: Add zutils. * gnu/packages/compression.scm (zutils): New public variable. --- gnu/packages/compression.scm | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 9834fcbe63..bda43bfd18 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1954,3 +1954,49 @@ reading from and writing to ZIP archives. ") ;; Project is distributed under LGPL, but "quazip/z*" "quazip/unzip.*" are ;; distributed under zlib terms. (license (list license:lgpl2.1+ license:zlib)))) + +(define-public zutils + (package + (name "zutils") + ;; Check and remove the lint-hidden-cve property when updating. + (version "1.8") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/zutils/zutils-" version ".tar.lz")) + (sha256 + (base32 "0dx35mv78fgqgz6sszs05ng8ipz2xy09ry9vpmka2rmy08b7x907")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--sysconfdir=/etc") + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key make-flags outputs #:allow-other-keys) + (apply invoke "make" "install" + (string-append "sysconfdir=" (assoc-ref outputs "out") + "/etc") + make-flags)))))) + (native-inputs + ;; Needed to extract the source tarball and run the test suite. + `(("lzip" ,lzip))) + (properties `((lint-hidden-cve . ("CVE-2018-1000637")))) + (home-page "https://www.nongnu.org/zutils/zutils.html") + (synopsis "Utilities that transparently operate on compressed files") + (description + "Zutils is a collection of utilities able to process any combination of +compressed and uncompressed files transparently. If any given file, including +standard input, is compressed, its decompressed content is used instead. + +@command{zcat}, @command{zcmp}, @command{zdiff}, and @command{zgrep} are +improved replacements for the shell scripts provided by GNU gzip. +@command{ztest} tests the integrity of supported compressed files. +@command{zupdate} recompresses files with lzip, similar to gzip's +@command{znew}. + +Supported compression formats are bzip2, gzip, lzip, and xz. Zutils uses +external compressors: the compressor to be used for each format is configurable +at run time, and must be installed separately.") + (license (list license:bsd-2 ; arg_parser.{cc,h} + license:gpl2+)))) ; the rest From ad64f271de2737c40571c413845548c61a2462e3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 21 Aug 2019 16:46:50 -0400 Subject: [PATCH 147/158] gnu: vidstab: Update to 1.1.0-0.aeabc8d. * gnu/packages/video.scm (vidstab): Update to 1.1.0-0.aeabc8d. --- gnu/packages/video.scm | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8b7bb38fa8..dfb28a9309 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3373,30 +3373,32 @@ online.") (license license:expat))) (define-public vidstab - (package - (name "vidstab") - (version "1.1.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/georgmartius/vid.stab.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0a3frpm2kdbx7vszhg64p3alisag73bcspl7fp3a2f1kgq7rbh38")))) - (build-system cmake-build-system) - (arguments - '(#:tests? #f)) ; tests are not run as part of standard build process - (home-page "http://public.hronopik.de/vid.stab/") - (synopsis "Video stabilization library") - (description "Vidstab is a video stabilization library which can be used + (let ((commit "aeabc8daa7904f9edf7441a11f293965a5ef53b8") + (revision "0")) + (package + (name "vidstab") + (version (git-version "1.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/georgmartius/vid.stab.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "042iy0f3khwzr68djzvqgn301sy21ljvkf52rnc2c73q7ircnzzn")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f)) ; tests are not run as part of standard build process + (home-page "http://public.hronopik.de/vid.stab/") + (synopsis "Video stabilization library") + (description "Vidstab is a video stabilization library which can be used with FFmpeg. A video acquired using a hand-held camera or a camera mounted on a vehicle typically suffers from undesirable shakes and jitters. Activities such as surfing, skiing, riding and walking while shooting videos are especially prone to erratic camera shakes. Vidstab targets these video contents to help create smoother and stable videos.") - (license license:gpl2+))) + (license license:gpl2+)))) (define-public libopenshot (package From 6d0fb469ed9de2ec9d51ba0631f4b9b42b7f6f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 22 Aug 2019 17:30:08 +0200 Subject: [PATCH 148/158] gnu: freeipmi: Update to 1.6.4. * gnu/packages/freeipmi.scm (freeipmi): Update to 1.6.4. --- gnu/packages/freeipmi.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm index 5f1931e7fe..57fe527cbe 100644 --- a/gnu/packages/freeipmi.scm +++ b/gnu/packages/freeipmi.scm @@ -28,14 +28,14 @@ (define-public freeipmi (package (name "freeipmi") - (version "1.6.3") + (version "1.6.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/freeipmi/freeipmi-" version ".tar.gz")) (sha256 (base32 - "1sg12ycig2g5yv9l3vx25wsjmz7ybnrsvji0vs51yjmclwsygm5a")))) + "0g0s4iwx0ng4rv7hp5cc3kkx4drahsc89981gwjblf04lfavppv5")))) (build-system gnu-build-system) (inputs `(("libgcrypt" ,libgcrypt))) From af012922776cc249be45604aa295ac086a243473 Mon Sep 17 00:00:00 2001 From: swedebugia Date: Thu, 1 Aug 2019 22:31:42 +0200 Subject: [PATCH 149/158] gnu: Add bitcoin-abc. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (bitcoin-abc): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/finance.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index fc26b77279..377cb3a405 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -1111,3 +1111,31 @@ information.") (description "This allows a Trezor hardware wallet to communicate to the Trezor wallet.") (license license:lgpl3+))) + +(define-public bitcoin-abc + (package + (inherit bitcoin-core) + (name "bitcoin-abc") + (version "0.19.8") + (source (origin + (method url-fetch) + (uri (string-append "https://download.bitcoinabc.org/" + version "/linux/src/bitcoin-abc-" + version ".tar.gz")) + (sha256 + (base32 + "0ndvkxv5m8346bdhfqzgdiz1k9wyjycj05jp7daf9pml3cw79sz5")))) + (home-page "https://www.bitcoinabc.org/") + (synopsis "Bitcoin ABC peer-to-peer full node for the Bitcoin Cash protocol") + (description + "Bitcoin Cash brings sound money to the world, fulfilling the original +promise of Bitcoin as Peer-to-Peer Electronic Cash. Merchants and users are +empowered with low fees and reliable confirmations is a digital currency that +enables instant payments to anyone anywhere in the world. It uses +peer-to-peer technology to operate without central authority: managing +transactions and issuing money are carried out collectively by the network. +As a fork it implemented changes lowering the time between blocks and now +offers confimations after less than 5 seconds and have significantly lower +fees that BTC. Bitcoin ABC is the reference implementation of the Bitcoin +Cash protocol. This package provides the Bitcoin Cash command line client and +a client based on Qt. This is a fork of Bitcoin Core."))) From 74a98b5cddd0430dd7229d4045f4885191c624b7 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 16 Aug 2019 10:45:43 -0700 Subject: [PATCH 150/158] services: console-fonts: Update docstring. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/base (console-font-service-type): Add documentation about valid arguments. Co-authored-by: Ludovic Courtès --- gnu/services/base.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 537d30add5..dcb7278f0f 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2019 Efraim Flashner +;;; Copyright © 2019 John Soo ;;; ;;; This file is part of GNU Guix. ;;; @@ -801,10 +802,14 @@ to add @var{device} to the kernel's entropy pool. The service will fail if (description "Install the given fonts on the specified ttys (fonts are per virtual console on GNU/Linux). The value of this service is a list of -tty/font pairs like: +tty/font pairs. The font can be the name of a font provided by the @code{kbd} +package or any valid argument to @command{setfont}, as in this example: @example -'((\"tty1\" . \"LatGrkCyr-8x16\")) +'((\"tty1\" . \"LatGrkCyr-8x16\") + (\"tty2\" . (file-append + font-tamzen + \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))) @end example\n"))) (define* (console-font-service tty #:optional (font "LatGrkCyr-8x16")) From 403b4e06854728ee857509053ef2b4c87024baea Mon Sep 17 00:00:00 2001 From: Reza Alizadeh Majd Date: Thu, 1 Aug 2019 20:29:06 +0430 Subject: [PATCH 151/158] gnu: Add lxqt-archiver. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/lxqt.scm (lxqt-archiver): New Variable. Signed-off-by: Ludovic Courtès --- gnu/packages/lxqt.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index a8699b3d09..e72f5b82d9 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -1245,6 +1245,39 @@ easily publishing them on internet image hosting services.") (license license:gpl2+))) +(define-public lxqt-archiver + (package + (name "lxqt-archiver") + (version "0.0.96") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/lxqt/" name ".git")) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09rw774vxj96wcpxxncz6nr9bmw7l4l0kwylmz1saq6rpa2yvn2i")))) + (build-system cmake-build-system) + (inputs + `(("glib" ,glib) + ("json-glib" ,json-glib) + ("libfm-qt" ,libfm-qt) + ("qtbase" ,qtbase) + ("qtx11extras" ,qtx11extras))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("lxqt-build-tools" ,lxqt-build-tools) + ("qttools" ,qttools))) + (arguments + '(#:tests? #f)) + (home-page "https://lxqt.org/") + (synopsis "Simple & lightweight desktop-agnostic Qt file archiver") + (description + "This package provides a Qt graphical interface to archiving programs +like @command{tar} and @command{zip}.") + (license license:gpl2+))) + ;; The LXQt Desktop Environment (define-public lxqt From a83e2a01fb5438c660166e12b0d7df5c470b9e4a Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Thu, 1 Aug 2019 21:25:58 +0200 Subject: [PATCH 152/158] gnu: Add pixiewps. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/networking.scm (pixiewps): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/networking.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 4527c4927c..a8f98c54df 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2019 Maxim Cournoyer ;;; Copyright © 2019 Vasile Dumitrascu ;;; Copyright © 2019 Julien Lepiller +;;; Copyright © 2019 Timotej Lazar ;;; ;;; This file is part of GNU Guix. ;;; @@ -946,6 +947,34 @@ attacking, testing, and cracking. All tools are command-line driven, which allows for heavy scripting.") (license (list license:gpl2+ license:bsd-3)))) +(define-public pixiewps + (package + (name "pixiewps") + (version "1.4.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/wiire-a/pixiewps/releases/" + "download/v" version "/" name "-" version ".tar.xz")) + (sha256 + (base32 + "07nym6bqml0k9v29vnj003nrgnwrywgjvnljb7cdpsvnwilhbp64")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags + (list "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure)) ; no configure script + #:tests? #f)) ; there are no tests + (home-page "https://github.com/wiire-a/pixiewps/") + (synopsis "Offline brute-force tool for Wi-Fi Protected Setup") + (description "Pixiewps implements the pixie-dust attack to brute +force the Wi-Fi Protected Setup (WPS) PIN by exploiting the low or +non-existing entropy of some access points.") + (license license:gpl3+))) + (define-public perl-danga-socket (package (name "perl-danga-socket") From 5094da0b83a413778c2d364641c3972aae0a900f Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Thu, 1 Aug 2019 21:25:59 +0200 Subject: [PATCH 153/158] gnu: Add reaver. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/networking.scm (reaver): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/networking.scm | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index a8f98c54df..9383e1a1d8 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -975,6 +975,54 @@ force the Wi-Fi Protected Setup (WPS) PIN by exploiting the low or non-existing entropy of some access points.") (license license:gpl3+))) +(define-public reaver + (package + (name "reaver") + (version "1.6.5") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/t6x/reaver-wps-fork-t6x/releases/" + "download/v" version "/" name "-" version ".tar.xz")) + (sha256 + (base32 + "0sva3g0kwgv143n9l3lg4qp5iiqz7nk76nr0hwivsnglbhk9sbil")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + ;; Save session files to current directory instead of /var. + (list "--enable-savetocurrent" + "--localstatedir=/tmp/dummy") ; prevent creating /var during install + #:phases + (modify-phases %standard-phases + (add-before 'configure 'change-directory + (lambda _ + (chdir "src") + #t)) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (chdir "../docs") + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" ,version)) + (man1 (string-append out "/share/man/man1"))) + (for-each (lambda (file) (install-file file doc)) + (find-files "." "README.*")) + (install-file "reaver.1" man1) + #t)))) + #:tests? #f)) ; there are no tests + (inputs + `(("libpcap" ,libpcap))) + (propagated-inputs + `(("aircrack-ng" ,aircrack-ng) + ("pixiewps" ,pixiewps))) + (home-page "https://github.com/t6x/reaver-wps-fork-t6x/") + (synopsis "Attack tool for Wi-Fi Protected Setup") + (description "Reaver performs a brute force attack against an access +point's Wi-Fi Protected Setup (WPS) PIN. Once the PIN is found, the WPA +passphrase can be recovered and the AP's wireless settings can be +reconfigured.") + (license license:gpl2+))) + (define-public perl-danga-socket (package (name "perl-danga-socket") From 46c1193a2914151bd594c79546b168c41cdb38d1 Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Sat, 3 Aug 2019 13:24:50 +0100 Subject: [PATCH 154/158] gnu: Add emacs-mu4e-jump-to-list. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-mu4e-jump-to-list): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 06367aa991..eb9121fba3 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -40,7 +40,7 @@ ;;; Copyright © 2018 Pierre-Antoine Rouby ;;; Copyright © 2018 Alex Branham ;;; Copyright © 2018 Thorsten Wilms -;;; Copyright © 2018 Pierre Langlois +;;; Copyright © 2018, 2019 Pierre Langlois ;;; Copyright © 2018, 2019 Brett Gilio ;;; Copyright © 2019 Dimakakos Dimos ;;; Copyright © 2019 Brian Leung @@ -7305,6 +7305,34 @@ Additionally it can display the number of unread emails in the mode-line.") (license license:gpl3+))) +(define-public emacs-mu4e-jump-to-list + (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b") + (revision "1")) + (package + (name "emacs-mu4e-jump-to-list") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv")))) + (build-system emacs-build-system) + (propagated-inputs + `(("mu" ,mu))) + (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el") + (synopsis "Select and view mailing lists in mu4e") + (description + "@code{mu4e-jump-to-list} allows you to select and view mailing lists +automatically using existing List-ID headers in your mu database. Just press +\"l\" in the headers view and any mailing list you've subscribed to will be +automatically discovered and presented in recency order.") + (license license:gpl3+)))) + (define-public emacs-pretty-mode (package (name "emacs-pretty-mode") From 47c95c94b4ef432ceee9afd3a41bd582c506cf8f Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Sat, 3 Aug 2019 13:29:15 +0100 Subject: [PATCH 155/158] gnu: Add emacs-mu4e-patch. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-mu4e-patch): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index eb9121fba3..de7e85aa5a 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -7333,6 +7333,32 @@ automatically using existing List-ID headers in your mu database. Just press automatically discovered and presented in recency order.") (license license:gpl3+)))) +(define-public emacs-mu4e-patch + (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d") + (revision "1")) + (package + (name "emacs-mu4e-patch") + (version (git-version "0.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/seanfarley/mu4e-patch") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn")))) + (build-system emacs-build-system) + (propagated-inputs + `(("mu" ,mu))) + (home-page "https://github.com/seanfarley/mu4e-patch") + (synopsis "Colorize patch-like emails in mu4e") + (description + "Extension for mu4e to colorize patch-like emails with diff-mode. +This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has +been adapted to work with mu4e.") + (license license:gpl3+)))) + (define-public emacs-pretty-mode (package (name "emacs-pretty-mode") From d020821c0bd2206a5f3d4db155f2a9a3de7dc670 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 22 Aug 2019 14:24:11 -0400 Subject: [PATCH 156/158] Revert "import: cpan: Adapt for the change to guile-json version 3." This reverts commit 01ce7af25add55514f737af48ea6c127bedfde67. --- guix/import/cpan.scm | 30 ++++++++++++++---------------- tests/cpan.scm | 13 +++++-------- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 0be37e715e..ec86f11743 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -34,7 +34,7 @@ #:use-module (guix ui) #:use-module ((guix download) #:select (download-to-store url-fetch)) #:use-module ((guix import utils) #:select (factorize-uri - flatten hash-ref*)) + flatten assoc-ref*)) #:use-module (guix import json) #:use-module (guix packages) #:use-module (guix upstream) @@ -76,8 +76,8 @@ ;; ssleay ;; sun ("zlib" 'zlib) - ((x) (string->license x)) - ((lst ...) `(list ,@(map string->license lst))) + (#(x) (string->license x)) + (#(lst ...) `(list ,@(map string->license lst))) (_ #f))) (define (module->name module) @@ -88,11 +88,11 @@ "Return the base distribution module for a given module. E.g. the 'ok' module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would return \"Test-Simple\"" - (hash-ref (json-fetch (string-append - "https://fastapi.metacpan.org/v1/module/" - module - "?fields=distribution")) - "distribution")) + (assoc-ref (json-fetch (string-append + "https://fastapi.metacpan.org/v1/module/" + module + "?fields=distribution")) + "distribution")) (define (package->upstream-name package) "Return the CPAN name of PACKAGE." @@ -122,12 +122,12 @@ or #f on failure. MODULE should be e.g. \"Test::Script\"" (define (cpan-source-url meta) "Return the download URL for a module's source tarball." (regexp-substitute/global #f "http[s]?://cpan.metacpan.org" - (hash-ref meta "download_url") + (assoc-ref meta "download_url") 'pre "mirror://cpan" 'post)) (define (cpan-version meta) "Return the version number from META." - (match (hash-ref meta "version") + (match (assoc-ref meta "version") ((? number? version) ;; version is sometimes not quoted in the module json, so it gets ;; imported into Guile as a number, so convert it to a string. @@ -183,7 +183,7 @@ depend on (gnu packages perl)." "Return the `package' s-expression for a CPAN module from the metadata in META." (define name - (hash-ref meta "distribution")) + (assoc-ref meta "distribution")) (define (guix-name name) (if (string-prefix? "perl-" name) @@ -198,9 +198,7 @@ META." (match (flatten (map (lambda (ph) (filter-map (lambda (t) - (and=> (hash-ref* meta "metadata" "prereqs" ph t) - (lambda (h) - (hash-map->list cons h)))) + (assoc-ref* meta "metadata" "prereqs" ph t)) '("requires" "recommends" "suggests"))) phases)) (#f @@ -253,9 +251,9 @@ META." ,@(maybe-inputs 'propagated-inputs (convert-inputs '("runtime"))) (home-page ,(cpan-home name)) - (synopsis ,(hash-ref meta "abstract")) + (synopsis ,(assoc-ref meta "abstract")) (description fill-in-yourself!) - (license ,(string->license (hash-ref meta "license")))))) + (license ,(string->license (assoc-ref meta "license")))))) (define (cpan->guix-package module-name) "Fetch the metadata for PACKAGE-NAME from metacpan.org, and return the diff --git a/tests/cpan.scm b/tests/cpan.scm index cdd6c0e76a..189dd027e6 100644 --- a/tests/cpan.scm +++ b/tests/cpan.scm @@ -24,8 +24,7 @@ #:use-module (guix tests) #:use-module (guix grafts) #:use-module (srfi srfi-64) - #:use-module (ice-9 match) - #:use-module (ice-9 hash-table)) + #:use-module (ice-9 match)) ;; Globally disable grafts because they can trigger early builds. (%graft? #f) @@ -110,16 +109,14 @@ (test-equal "source-url-http" ((@@ (guix import cpan) cpan-source-url) - (alist->hash-table - `(("download_url" . - "http://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz")))) + `(("download_url" . + "http://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"))) "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz") (test-equal "source-url-https" ((@@ (guix import cpan) cpan-source-url) - (alist->hash-table - `(("download_url" . - "https://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz")))) + `(("download_url" . + "https://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"))) "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz") (test-end "cpan") From 888e477bf82452028fb188ec94e793bd04f98d55 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 22 Aug 2019 14:24:37 -0400 Subject: [PATCH 157/158] Revert "import: utils: Add hash-ref*." This reverts commit 8a3b11d1eb21e54b4f3a3cbceffed8ce2c11512e. --- guix/import/utils.scm | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index ed6c3ce6af..2a3b7341fb 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -47,7 +47,6 @@ flatten assoc-ref* - hash-ref* url-fetch guix-hash-url @@ -117,15 +116,6 @@ recursively apply the procedure to the sub-list." (assoc-ref alist key) (apply assoc-ref* (assoc-ref alist key) rest))) -(define (hash-ref* hash-table key . rest) - "Return the value for KEY from HASH-TABLE. For each additional key specified, -recursively apply the procedure to the sub-hash-table." - (if (hash-table? hash-table) - (if (null? rest) - (hash-ref hash-table key) - (apply hash-ref* (hash-ref hash-table key) rest)) - #f)) ; For consistency with assoc-ref* - (define (url-fetch url file-name) "Save the contents of URL to FILE-NAME. Return #f on failure." (parameterize ((current-output-port (current-error-port))) From 0ccc9a0f5bb89b239d56157ea66f8420fcec5ba6 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 22 Aug 2019 14:54:20 -0400 Subject: [PATCH 158/158] gnu: isc-dhcp: Update bundled BIND to 9.11.10. * gnu/packages/admin.scm (isc-dhcp)[bind-patch-version]: Update to 10. [inputs]: Update hash of bind-source-tarball. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 5dacffe752..eb298dca3b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -684,7 +684,7 @@ connection alive.") (define-public isc-dhcp (let* ((bind-major-version "9") (bind-minor-version "11") - (bind-patch-version "9") + (bind-patch-version "10") (bind-release-type "") ; for patch release, use "-P" (bind-release-version "") ; for patch release, e.g. "6" (bind-version (string-append bind-major-version @@ -825,7 +825,7 @@ connection alive.") "/bind-" bind-version ".tar.gz")) (sha256 (base32 - "03n57as73ygw6g3lqsmq2idkykajpbskzgixixdvi5a76m4g0fwn")))) + "1hvhdaar9swh5087kzkbmav1nbn19rxh0m60x0d7gri0v8689fxj")))) ;; When cross-compiling, we need the cross Coreutils and sed. ;; Otherwise just use those from %FINAL-INPUTS.