From 38fe6449c0d1fac6f64fcbabfbc94943752830b9 Mon Sep 17 00:00:00 2001 From: Benjamin Slade Date: Mon, 3 Sep 2018 23:19:30 +0200 Subject: [PATCH 001/208] gnu: Add transset-df. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/xorg.scm (transset-df): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/xorg.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 3875765d25..c89661272b 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Kei Kebreau ;;; Copyright © 2018 Oleg Pykhalov +;;; Copyright © 2018 Benjamin Slade ;;; ;;; This file is part of GNU Guix. ;;; @@ -6196,3 +6197,44 @@ and embedded platforms.") cursor to any point on the screen with a few key strokes. It also simulates mouse click. You can do everything mouse can do with a keyboard.") (license license:bsd-3))) + +(define-public transset-df + (package + (name "transset-df") + (version "6") + (source (origin + (method url-fetch) + (uri (string-append "http://forchheimer.se/" name "/" name "-" version + ".tar.gz")) + (sha256 + (base32 + "1vnykwwrv75miigbhmcwxniw8xnhsdyzhqydip2m9crxi2lwhqs5")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'setenv + (lambda _ + (setenv "CC" (which "gcc")) + #t)) + (delete 'configure) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "transset-df" bin) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs `(("libxcomposite" ,libxcomposite) + ("libxdamager" ,libxdamage) + ("libxrender" ,libxrender))) + (synopsis "Set the transparency of X11 windows") + (description "The @command{transset-df} command allows you to set the +opacity of X11 windows. This patched version of X.Org's @command{transset} +adds functionality, including: selecting window by clicking (as transset), +selecting windows by pointing select actual focused X11 window, selecting by +window name or id, forcing toggle, increase or decrease opacity.") + (home-page "http://forchheimer.se/transset-df/") + (license license:x11))) From 5108c18e7e163c3b45568f1f4c3416581a2cea19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20M=C3=A9lotte?= Date: Mon, 3 Sep 2018 10:20:06 +0200 Subject: [PATCH 002/208] gnu: perl: Add support for cross-compilation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/perl.scm (perl): use cross-libc when cross-compiling Signed-off-by: Ludovic Courtès --- gnu/packages/perl.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 4d70e019b9..b10be9567d 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -48,6 +48,7 @@ #:use-module (guix utils) ;substitute-keyword-arguments for perl-5.26.2 #:use-module (gnu packages base) #:use-module (gnu packages compression) + #:use-module (gnu packages cross-base) #:use-module (gnu packages freedesktop) #:use-module (gnu packages perl-check) #:use-module (gnu packages perl-web) @@ -79,7 +80,7 @@ "perl-reproducible-build-date.patch")))) (build-system gnu-build-system) (arguments - '(#:tests? #f + `(#:tests? #f #:configure-flags (let ((out (assoc-ref %outputs "out")) (libc (assoc-ref %build-inputs "libc"))) @@ -128,7 +129,10 @@ (add-after 'install 'remove-extra-references (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (libc (assoc-ref inputs "libc")) + (libc (assoc-ref inputs + (if ,(%current-target-system) + "cross-libc" + "libc"))) (config1 (car (find-files (string-append out "/lib/perl5") "^Config_heavy\\.pl$"))) (config2 (find-files (string-append out "/lib/perl5") From fd95f37f361ad9444fb13faebda29662d3bf7be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 3 Sep 2018 23:49:06 +0200 Subject: [PATCH 003/208] Revert "gnu: perl: Add support for cross-compilation" This reverts commit 5108c18e7e163c3b45568f1f4c3416581a2cea19, which was accidentally committed. --- gnu/packages/perl.scm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index b10be9567d..4d70e019b9 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -48,7 +48,6 @@ #:use-module (guix utils) ;substitute-keyword-arguments for perl-5.26.2 #:use-module (gnu packages base) #:use-module (gnu packages compression) - #:use-module (gnu packages cross-base) #:use-module (gnu packages freedesktop) #:use-module (gnu packages perl-check) #:use-module (gnu packages perl-web) @@ -80,7 +79,7 @@ "perl-reproducible-build-date.patch")))) (build-system gnu-build-system) (arguments - `(#:tests? #f + '(#:tests? #f #:configure-flags (let ((out (assoc-ref %outputs "out")) (libc (assoc-ref %build-inputs "libc"))) @@ -129,10 +128,7 @@ (add-after 'install 'remove-extra-references (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (libc (assoc-ref inputs - (if ,(%current-target-system) - "cross-libc" - "libc"))) + (libc (assoc-ref inputs "libc")) (config1 (car (find-files (string-append out "/lib/perl5") "^Config_heavy\\.pl$"))) (config2 (find-files (string-append out "/lib/perl5") From 9c4b522f1572db2c5dab81976982b95d5da51e6e Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 24 Aug 2018 00:36:15 +0530 Subject: [PATCH 004/208] gnu: Add ghc-wcwidth. * gnu/packages/haskell.scm (ghc-wcwidth): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a07bb049a2..6e19cd67ee 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -10152,4 +10152,29 @@ tools are not needed to actually run Gtk2Hs programs.") backends provided by the @code{Cairo} and @code{Diagrams} libraries.") (license license:bsd-3))) +(define-public ghc-wcwidth + (package + (name "ghc-wcwidth") + (version "0.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-" + version ".tar.gz")) + (sha256 + (base32 + "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz")))) + (build-system haskell-build-system) + (inputs + `(("ghc-setlocale" ,ghc-setlocale) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-attoparsec" ,ghc-attoparsec))) + (home-page "https://github.com/solidsnack/wcwidth/") + (synopsis "Haskell bindings to wcwidth") + (description "This package provides Haskell bindings to your system's +native wcwidth and a command line tool to examine the widths assigned by it. +The command line tool can compile a width table to Haskell code that assigns +widths to the Char type.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 3ad6b8909025a8f4d3e1f1f5ea16bcd0cace557c Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 24 Aug 2018 12:14:17 +0530 Subject: [PATCH 005/208] gnu: ghc-tasty: Update to 1.1.0.3. * gnu/packages/haskell-check.scm (ghc-tasty): Update to 1.1.0.3. [inputs]: Add ghc-wcwidth. (ghc-attoparsec-bootstrap, ghc-integer-logarithms-bootstrap, ghc-scientific-bootstrap): New variables. (ghc-wcwidth)[inputs]: Replace ghc-attoparsec with ghc-attoparsec-bootstrap. (ghc-scientific)[inputs]: Replace ghc-integer-logarithms with ghc-integer-logarithms-bootstrap. (ghc-attoparsec)[inputs]: Replace ghc-scientific with ghc-scientific-bootstrap. --- gnu/packages/haskell-check.scm | 7 ++++--- gnu/packages/haskell.scm | 27 ++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index c3ef85f3f0..1064872fec 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -183,7 +183,7 @@ timer functions of different operating systems via a unified API.") (define-public ghc-tasty (package (name "ghc-tasty") - (version "0.11.0.4") + (version "1.1.0.3") (source (origin (method url-fetch) @@ -193,7 +193,7 @@ timer functions of different operating systems via a unified API.") ".tar.gz")) (sha256 (base32 - "05pxjzgbgjdn7477xry0ssjrnmnsydqiq6nm6ck8n2da1baliqp0")))) + "14riid753hjqr6lca1kgxpnvq0wykf0k3qc5jpag42hh8bszav22")))) (build-system haskell-build-system) (inputs `(("ghc-stm" ,ghc-stm) @@ -205,7 +205,8 @@ timer functions of different operating systems via a unified API.") ("ghc-unbounded-delays" ,ghc-unbounded-delays) ("ghc-async" ,ghc-async) ("ghc-ansi-terminal" ,ghc-ansi-terminal) - ("ghc-clock-bootstrap" ,ghc-clock-bootstrap))) + ("ghc-clock-bootstrap" ,ghc-clock-bootstrap) + ("ghc-wcwidth" ,ghc-wcwidth))) (home-page "http://documentup.com/feuerbach/tasty") (synopsis "Modern and extensible testing framework") (description "Tasty is a modern testing framework for Haskell. It lets diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 6e19cd67ee..70929ddae6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2866,7 +2866,7 @@ with slicing and Clang-style colored diagnostics.") ;; re-enable them. (arguments `(#:tests? #f)) (inputs - `(("ghc-scientific" ,ghc-scientific) + `(("ghc-scientific-bootstrap" ,ghc-scientific-bootstrap) ("ghc-text" ,ghc-text))) (native-inputs `(("ghc-tasty" ,ghc-tasty) @@ -2881,6 +2881,13 @@ aimed particularly at dealing efficiently with network protocols and complicated text/binary file formats.") (license license:bsd-3))) +(define ghc-attoparsec-bootstrap + (package + (inherit ghc-attoparsec) + (name "ghc-attoparsec-bootstrap") + (arguments '(#:tests? #f)) + (native-inputs '()))) + (define-public ghc-zip-archive (package (name "ghc-zip-archive") @@ -5208,6 +5215,13 @@ occurrences of a substring (the first in case of overlaps) with another.") in migrated modules.") (license license:expat))) +(define ghc-integer-logarithms-bootstrap + (package + (inherit ghc-integer-logarithms) + (name "ghc-integer-logarithms-bootstrap") + (arguments `(#:tests? #f)) + (native-inputs '()))) + (define-public ghc-scientific (package (name "ghc-scientific") @@ -5224,7 +5238,7 @@ in migrated modules.") "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397")))) (build-system haskell-build-system) (inputs - `(("ghc-integer-logarithms" ,ghc-integer-logarithms) + `(("ghc-integer-logarithms-bootstrap" ,ghc-integer-logarithms-bootstrap) ("ghc-text" ,ghc-text) ("ghc-hashable" ,ghc-hashable) ("ghc-primitive" ,ghc-primitive))) @@ -5245,6 +5259,13 @@ and space efficient. They are represented using notation}.") (license license:bsd-3))) +(define ghc-scientific-bootstrap + (package + (inherit ghc-scientific) + (name "ghc-scientific-bootstrap") + (arguments `(#:tests? #f)) + (native-inputs '()))) + (define-public ghc-boxes (package (name "ghc-boxes") @@ -10168,7 +10189,7 @@ backends provided by the @code{Cairo} and @code{Diagrams} libraries.") (inputs `(("ghc-setlocale" ,ghc-setlocale) ("ghc-utf8-string" ,ghc-utf8-string) - ("ghc-attoparsec" ,ghc-attoparsec))) + ("ghc-attoparsec-bootstrap" ,ghc-attoparsec-bootstrap))) (home-page "https://github.com/solidsnack/wcwidth/") (synopsis "Haskell bindings to wcwidth") (description "This package provides Haskell bindings to your system's From 8374cc4b051e31905581250fbc0697b1513db60a Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 4 Sep 2018 15:21:56 +0530 Subject: [PATCH 006/208] gnu: ghc-tasty-ant-xml: Update to 1.1.4. * gnu/packages/haskell-check.scm (ghc-tasty-ant-xml): Update to 1.1.4. --- gnu/packages/haskell-check.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index 1064872fec..65333f8269 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -39,7 +39,7 @@ (define-public ghc-tasty-ant-xml (package (name "ghc-tasty-ant-xml") - (version "1.0.2") + (version "1.1.4") (source (origin (method url-fetch) @@ -49,7 +49,7 @@ ".tar.gz")) (sha256 (base32 - "0pgz2lclg2hp72ykljcbxd88pjanfdfk8m5vb2qzcyjr85kwrhxv")))) + "0v0gsb90kh6hwlgxbclzawsskywc6yf7n8xhiifia97l4y0yx2m8")))) (build-system haskell-build-system) (inputs `(("ghc-generic-deriving" ,ghc-generic-deriving) From 6300ba5b6669e6e1a3864144390a358b8c260296 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 4 Sep 2018 15:24:32 +0530 Subject: [PATCH 007/208] gnu: ghc-integer-logarithms: Allow building with newer tasty. * gnu/packages/haskell.scm (ghc-integer-logarithms)[arguments]: Allow building with newer tasty. --- gnu/packages/haskell.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 70929ddae6..e7072633de 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5197,6 +5197,8 @@ occurrences of a substring (the first in case of overlaps) with another.") (base32 "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j")))) (build-system haskell-build-system) + (arguments + `(#:configure-flags (list "--allow-newer=tasty"))) (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck) ("ghc-smallcheck" ,ghc-smallcheck) From 906a396bff28ba46b37014a0efc5d4fbf417dc82 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 4 Sep 2018 17:26:14 +0530 Subject: [PATCH 008/208] gnu: ghc-zlib: Enable tests. * gnu/packages/haskell.scm (ghc-zlib)[arguments]: Enable tests. Allow building with newer tasty. [native-inputs]: Add ghc-quickcheck, ghc-tasty, ghc-tasty-hunit and ghc-tasty-quickcheck. --- gnu/packages/haskell.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e7072633de..b8ae26346e 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2078,9 +2078,13 @@ literals.") (base32 "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d")))) (build-system haskell-build-system) - ;; Tests require older versions of testy. - (arguments `(#:tests? #f)) + (arguments `(#:configure-flags (list "--allow-newer=tasty"))) (inputs `(("zlib" ,zlib))) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) (home-page "https://hackage.haskell.org/package/zlib") (synopsis "Compression and decompression in the gzip and zlib formats") From b50658fe8ac898544a5c481f232a454c485524b9 Mon Sep 17 00:00:00 2001 From: Jonathan Brielmaier Date: Thu, 16 Aug 2018 13:33:48 +0200 Subject: [PATCH 009/208] gnu: kicad: Update to 5.0.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/engineering.scm (kicad): Update to 5.0.0. [source]: Change from git to url-fetch. [arguments]: Remove now unneeded build version parameter. [inputs]: Add opencascade-oce. Signed-off-by: Ludovic Courtès --- gnu/packages/engineering.scm | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index d53b25cff9..ee524ec78e 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Clément Lassieur +;;; Copyright © 2018 Jonathan Brielmaier ;;; ;;; This file is part of GNU Guix. ;;; @@ -680,24 +681,19 @@ language.") (define-public ao (deprecated-package "ao-cad" libfive)) -;; We use kicad from a git commit, because support for boost 1.61.0 has been -;; recently added. (define-public kicad - (let ((commit "5f4599fb56da4dd748845ab10abec02961d477f3") - (revision "2")) (package (name "kicad") - (version (string-append "4.0-" revision "." - (string-take commit 7))) + (version "5.0.0") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.launchpad.net/kicad") - (commit commit))) + (method url-fetch) + (file-name (string-append name "-" version ".tar.xz")) + (uri (string-append + "https://launchpad.net/kicad/5.0/" version "/+download/" name + "-" version ".tar.xz")) (sha256 - (base32 "1833pln2975gmc5s18xf7s8m9vg834lmxxdjk0wlk3lq7bvjjnff")) - (file-name (string-append name "-" version "-checkout")))) + (base32 "17nqjszyvd25wi6550j981whlnb1wxzmlanljdjihiki53j84x9p")))) (build-system cmake-build-system) (arguments `(#:out-of-source? #t @@ -706,8 +702,6 @@ language.") #:configure-flags (list "-DKICAD_STABLE_VERSION=ON" "-DKICAD_REPO_NAME=stable" - ,(string-append "-DKICAD_BUILD_VERSION=4.0-" - (string-take commit 7)) "-DKICAD_SKIP_BOOST=ON"; Use our system's boost library. "-DKICAD_SCRIPTING=ON" "-DKICAD_SCRIPTING_MODULES=ON" @@ -754,6 +748,7 @@ language.") ("libngspice" ,libngspice) ("libsm" ,libsm) ("mesa" ,mesa) + ("opencascade-oce" ,opencascade-oce) ("openssl" ,openssl) ("python" ,python-2) ("wxwidgets" ,wxwidgets-gtk2) @@ -764,7 +759,7 @@ language.") boards and electrical circuits. The software has a number of programs that perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing electrical diagrams), gerbview (viewing Gerber files) and others.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public kicad-library (let ((version "4.0.7")) From 71ca16b58d20aa26157acc4c345c0af80ec8df5d Mon Sep 17 00:00:00 2001 From: Paul Garlick Date: Mon, 3 Sep 2018 11:57:38 +0100 Subject: [PATCH 010/208] gnu: petsc-openmpi: Configure with support for hdf5 data format. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (petsc-openmpi)[inputs]: Add hdf5-parallel-openmpi. [arguments]: Add '--with-hdf5-include' and '--with-hdf5-lib' flags. Add 'set-test-environment' phase. Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 50c0a320e0..42136f65ea 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Thomas Danckaert -;;; Copyright © 2017 Paul Garlick +;;; Copyright © 2017, 2018 Paul Garlick ;;; Copyright © 2017 Nils Gillmann ;;; Copyright © 2017 Ben Woodcroft ;;; Copyright © 2017 Theodoros Foradis @@ -1685,6 +1685,7 @@ scientific applications modeled by partial differential equations.") (name "petsc-openmpi") (inputs `(("openmpi" ,openmpi) + ("hdf5" ,hdf5-parallel-openmpi) ,@(package-inputs petsc))) (arguments (substitute-keyword-arguments (package-arguments petsc) @@ -1692,7 +1693,21 @@ scientific applications modeled by partial differential equations.") ``("--with-mpiexec=mpirun" ,(string-append "--with-mpi-dir=" (assoc-ref %build-inputs "openmpi")) - ,@(delete "--with-mpi=0" ,cf))))) + ,(string-append "--with-hdf5-include=" + (assoc-ref %build-inputs "hdf5") "/include") + ,(string-append "--with-hdf5-lib=" + (assoc-ref %build-inputs "hdf5") "/lib/libhdf5.a") + ,@(delete "--with-mpi=0" ,cf))) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'check 'set-test-environment + (lambda _ + ;; By default, running the test suite would fail because 'ssh' + ;; could not be found in $PATH. Define this variable to + ;; placate Open MPI without adding a dependency on OpenSSH (the + ;; agent isn't used anyway.) + (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) + #t)))))) (synopsis "Library to solve PDEs (with MPI support)"))) (define-public petsc-complex-openmpi From 1bf758767d1553594b6d7534ca8c38a2171b5afe Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Mon, 3 Sep 2018 02:25:31 +0800 Subject: [PATCH 011/208] gnu: Add emacs-picpocket. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-picpocket): New public variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 8f0c564f88..957b72f4e7 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2016, 2017 Nils Gillmann ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou -;;; Copyright © 2016, 2017 Alex Vong +;;; Copyright © 2016, 2017, 2018 Alex Vong ;;; Copyright © 2016, 2017, 2018 Arun Isaac ;;; Copyright © 2017 Christopher Baines ;;; Copyright © 2017, 2018 Mathieu Othacehe @@ -11315,6 +11315,43 @@ e.g. the package dependencies it requires. See function file.") (license license:gpl3+)))) +(define-public emacs-picpocket + (let ((version "20180610.1059") ; taken from melpa + (commit "ce4b6ed088384f2414af82e8e4eae5b92c2874bf")) + (package + (name "emacs-picpocket") + (version version) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/johanclaesson/picpocket") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15vpbcv83mc4j1pvrk7xic0klh2bl9gzg2xxs7c2lmnix52hy8mv")))) + (build-system emacs-build-system) + (arguments ; needed for running tests + `(#:tests? #t + #:emacs ,emacs + #:test-command '("emacs" "--batch" + "-l" "picpocket-test.el" + "-f" "ert-run-tests-batch-and-exit"))) + (home-page "https://github.com/johanclaesson/picpocket") + (synopsis "Image viewer for Emacs") + (description + "Picpocket is an image viewer for GNU Emacs. It has commands for: + +@itemize +@item File operations on the picture files (delete, move, copy, hardlink). +@item Scale and rotate the picture. +@item Associate pictures with tags which are saved to disk. +@item Filter pictures according to tags. +@item Customizing keystrokes for quick tagging and file operations. +@item Undo and browse history of undoable commands. +@end itemize") + (license license:gpl3+)))) + (define-public emacs-wgrep-helm ;; `emacs-wgrep-helm' was mistakenly added. (deprecated-package "emacs-wgrep-helm" emacs-wgrep)) From 7e1d229019c1924a2748e5daec2a619e7efbd7d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 4 Sep 2018 17:22:55 +0200 Subject: [PATCH 012/208] inferior: Add home-page and location package accessors. * guix/inferior.scm (inferior-package-home-page) (inferior-package-location): New procedures. * tests/inferior.scm ("inferior-packages"): Test them. --- guix/inferior.scm | 20 +++++++++++++++++++- tests/inferior.scm | 26 ++++++++++++++++---------- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/guix/inferior.scm b/guix/inferior.scm index 05c8d65deb..af37233a03 100644 --- a/guix/inferior.scm +++ b/guix/inferior.scm @@ -19,6 +19,7 @@ (define-module (guix inferior) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) + #:use-module ((guix utils) #:select (source-properties->location)) #:use-module (ice-9 match) #:use-module (ice-9 popen) #:export (inferior? @@ -33,7 +34,9 @@ inferior-packages inferior-package-synopsis - inferior-package-description)) + inferior-package-description + inferior-package-home-page + inferior-package-location)) ;;; Commentary: ;;; @@ -198,3 +201,18 @@ TRANSLATE? is true, translate it to the current locale's language." (if translate? '(compose (@ (guix ui) P_) package-description) 'package-description))) + +(define (inferior-package-home-page package) + "Return the home page of PACKAGE." + (inferior-package-field package 'package-home-page)) + +(define (inferior-package-location package) + "Return the source code location of PACKAGE, either #f or a +record." + (source-properties->location + (inferior-package-field package + '(compose (lambda (loc) + (and loc + (location->source-properties + loc))) + package-location)))) diff --git a/tests/inferior.scm b/tests/inferior.scm index 5e0f8ae66e..ff5cad4210 100644 --- a/tests/inferior.scm +++ b/tests/inferior.scm @@ -45,9 +45,11 @@ (test-equal "inferior-packages" (take (sort (fold-packages (lambda (package lst) - (alist-cons (package-name package) + (cons (list (package-name package) (package-version package) - lst)) + (package-home-page package) + (package-location package)) + lst)) '()) (lambda (x y) (string Date: Fri, 31 Aug 2018 17:07:07 +0200 Subject: [PATCH 013/208] Switch to Guile-Gcrypt. This removes (guix hash) and (guix pk-crypto), which now live as part of Guile-Gcrypt (version 0.1.0.) * guix/gcrypt.scm, guix/hash.scm, guix/pk-crypto.scm, tests/hash.scm, tests/pk-crypto.scm: Remove. * configure.ac: Test for Guile-Gcrypt. Remove LIBGCRYPT and LIBGCRYPT_LIBDIR assignments. * m4/guix.m4 (GUIX_ASSERT_LIBGCRYPT_USABLE): Remove. * README: Add Guile-Gcrypt to the dependencies; move libgcrypt as "required unless --disable-daemon". * doc/guix.texi (Requirements): Likewise. * gnu/packages/bash.scm, guix/derivations.scm, guix/docker.scm, guix/git.scm, guix/http-client.scm, guix/import/cpan.scm, guix/import/cran.scm, guix/import/crate.scm, guix/import/elpa.scm, guix/import/gnu.scm, guix/import/hackage.scm, guix/import/texlive.scm, guix/import/utils.scm, guix/nar.scm, guix/pki.scm, guix/scripts/archive.scm, guix/scripts/authenticate.scm, guix/scripts/download.scm, guix/scripts/hash.scm, guix/scripts/pack.scm, guix/scripts/publish.scm, guix/scripts/refresh.scm, guix/scripts/substitute.scm, guix/store.scm, guix/store/deduplication.scm, guix/tests.scm, tests/base32.scm, tests/builders.scm, tests/challenge.scm, tests/cpan.scm, tests/crate.scm, tests/derivations.scm, tests/gem.scm, tests/nar.scm, tests/opam.scm, tests/pki.scm, tests/publish.scm, tests/pypi.scm, tests/store-deduplication.scm, tests/store.scm, tests/substitute.scm: Adjust imports. * gnu/system/vm.scm: Likewise. (guile-sqlite3&co): Rename to... (gcrypt-sqlite3&co): ... this. Add GUILE-GCRYPT. (expression->derivation-in-linux-vm)[config]: Remove. (iso9660-image)[config]: Remove. (qemu-image)[config]: Remove. (system-docker-image)[config]: Remove. * guix/scripts/pack.scm: Adjust imports. (guile-sqlite3&co): Rename to... (gcrypt-sqlite3&co): ... this. Add GUILE-GCRYPT. (self-contained-tarball)[build]: Call 'make-config.scm' without #:libgcrypt argument. (squashfs-image)[libgcrypt]: Remove. [build]: Call 'make-config.scm' without #:libgcrypt. (docker-image)[config, json]: Remove. [build]: Add GUILE-GCRYPT to the extensions Remove (guix config) from the imported modules. * guix/self.scm (specification->package): Remove "libgcrypt", add "guile-gcrypt". (compiled-guix): Remove #:libgcrypt. [guile-gcrypt]: New variable. [dependencies]: Add it. [*core-modules*]: Remove #:libgcrypt from 'make-config.scm' call. Add #:extensions. [*config*]: Remove #:libgcrypt from 'make-config.scm' call. (%dependency-variables): Remove %libgcrypt. (make-config.scm): Remove #:libgcrypt. * build-aux/build-self.scm (guile-gcrypt): New variable. (make-config.scm): Remove #:libgcrypt. (build-program)[fake-gcrypt-hash]: New variable. Add (gcrypt hash) to the imported modules. Adjust load path assignments. * gnu/packages/package-management.scm (guix)[propagated-inputs]: Add GUILE-GCRYPT. [arguments]: In 'wrap-program' phase, add GUILE-GCRYPT to the search path. --- Makefile.am | 5 - README | 3 +- build-aux/build-self.scm | 81 +++++- configure.ac | 13 +- doc/guix.texi | 4 +- gnu/packages/bash.scm | 2 +- gnu/packages/package-management.scm | 5 +- gnu/system/vm.scm | 48 ++-- guix/derivations.scm | 2 +- guix/docker.scm | 2 +- guix/gcrypt.scm | 49 ---- guix/git.scm | 2 +- guix/hash.scm | 184 ------------- guix/http-client.scm | 2 +- guix/import/cpan.scm | 2 +- guix/import/cran.scm | 2 +- guix/import/crate.scm | 2 +- guix/import/elpa.scm | 2 +- guix/import/gnu.scm | 2 +- guix/import/hackage.scm | 2 +- guix/import/texlive.scm | 2 +- guix/import/utils.scm | 2 +- guix/nar.scm | 4 +- guix/pk-crypto.scm | 407 ---------------------------- guix/pki.scm | 2 +- guix/scripts/archive.scm | 2 +- guix/scripts/authenticate.scm | 2 +- guix/scripts/download.scm | 2 +- guix/scripts/hash.scm | 6 +- guix/scripts/pack.scm | 60 ++-- guix/scripts/publish.scm | 4 +- guix/scripts/refresh.scm | 2 +- guix/scripts/substitute.scm | 4 +- guix/self.scm | 26 +- guix/store.scm | 2 +- guix/store/deduplication.scm | 2 +- guix/tests.scm | 2 +- m4/guix.m4 | 18 -- tests/base32.scm | 2 +- tests/builders.scm | 2 +- tests/challenge.scm | 2 +- tests/cpan.scm | 2 +- tests/crate.scm | 2 +- tests/derivations.scm | 2 +- tests/gem.scm | 2 +- tests/hash.scm | 128 --------- tests/nar.scm | 2 +- tests/opam.scm | 2 +- tests/packages.scm | 2 +- tests/pk-crypto.scm | 290 -------------------- tests/pki.scm | 4 +- tests/publish.scm | 4 +- tests/pypi.scm | 2 +- tests/store-deduplication.scm | 2 +- tests/store.scm | 2 +- tests/substitute.scm | 4 +- 56 files changed, 179 insertions(+), 1240 deletions(-) delete mode 100644 guix/gcrypt.scm delete mode 100644 guix/hash.scm delete mode 100644 guix/pk-crypto.scm delete mode 100644 tests/hash.scm delete mode 100644 tests/pk-crypto.scm diff --git a/Makefile.am b/Makefile.am index af6870cf67..a3498460e0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -63,9 +63,6 @@ MODULES = \ guix/base64.scm \ guix/cpio.scm \ guix/records.scm \ - guix/gcrypt.scm \ - guix/hash.scm \ - guix/pk-crypto.scm \ guix/pki.scm \ guix/progress.scm \ guix/combinators.scm \ @@ -331,8 +328,6 @@ SCM_TESTS = \ tests/base32.scm \ tests/base64.scm \ tests/cpio.scm \ - tests/hash.scm \ - tests/pk-crypto.scm \ tests/pki.scm \ tests/print.scm \ tests/sets.scm \ diff --git a/README b/README index 348a7ada5f..4c76c4bc43 100644 --- a/README +++ b/README @@ -21,7 +21,7 @@ Guix is based on the [[https://nixos.org/nix/][Nix]] package manager. GNU Guix currently depends on the following packages: - [[https://gnu.org/software/guile/][GNU Guile 2.2.x or 2.0.x]], version 2.0.13 or later - - [[https://gnupg.org/][GNU libgcrypt]] + - [[https://notabug.org/cwebber/guile-gcrypt][Guile-Gcrypt]] 0.1.0 or later - [[https://www.gnu.org/software/make/][GNU Make]] - [[https://www.gnutls.org][GnuTLS]] compiled with guile support enabled - [[https://notabug.org/civodul/guile-sqlite3][Guile-SQLite3]], version 0.1.0 or later @@ -31,6 +31,7 @@ GNU Guix currently depends on the following packages: Unless `--disable-daemon' was passed, the following packages are needed: + - [[https://gnupg.org/][GNU libgcrypt]] - [[https://sqlite.org/][SQLite 3]] - [[https://gcc.gnu.org][GCC's g++]] - optionally [[http://www.bzip.org][libbz2]] diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index 3ecdc931a5..f472724f18 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -22,6 +22,7 @@ #:use-module (guix ui) #:use-module (guix config) #:use-module (guix modules) + #:use-module (guix build-system gnu) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) #:use-module (rnrs io ports) @@ -72,7 +73,7 @@ (variables rest ...)))))) (variables %localstatedir %storedir %sysconfdir %system))) -(define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2 +(define* (make-config.scm #:key zlib gzip xz bzip2 (package-name "GNU Guix") (package-version "0") (bug-report-address "bug-guix@gnu.org") @@ -92,7 +93,6 @@ %state-directory %store-database-directory %config-directory - %libgcrypt %libz %gzip %bzip2 @@ -137,9 +137,6 @@ (define %xz #+(and xz (file-append xz "/bin/xz"))) - (define %libgcrypt - #+(and libgcrypt - (file-append libgcrypt "/lib/libgcrypt"))) (define %libz #+(and zlib (file-append zlib "/lib/libz"))))))) @@ -200,6 +197,44 @@ person's version identifier." ;; XXX: Replace with a Git commit id. (date->string (current-date 0) "~Y~m~d.~H")) +(define guile-gcrypt + ;; The host Guix may or may not have 'guile-gcrypt', which was introduced in + ;; August 2018. If it has it, it's at least version 0.1.0, which is good + ;; enough. If it doesn't, specify our own package because the target Guix + ;; requires it. + (match (find-best-packages-by-name "guile-gcrypt" #f) + (() + (package + (name "guile-gcrypt") + (version "0.1.0") + (home-page "https://notabug.org/cwebber/guile-gcrypt") + (source (origin + (method url-fetch) + (uri (string-append home-page "/archive/v" version ".tar.gz")) + (sha256 + (base32 + "1gir7ifknbmbvjlql5j6wzk7bkb5lnmq80q59ngz43hhpclrk5k3")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,(specification->package "pkg-config")) + ("autoconf" ,(specification->package "autoconf")) + ("automake" ,(specification->package "automake")) + ("texinfo" ,(specification->package "texinfo")))) + (inputs + `(("guile" ,(specification->package "guile")) + ("libgcrypt" ,(specification->package "libgcrypt")))) + (synopsis "Cryptography library for Guile using Libgcrypt") + (description + "Guile-Gcrypt provides a Guile 2.x interface to a subset of the +GNU Libgcrypt crytographic library. It provides modules for cryptographic +hash functions, message authentication codes (MAC), public-key cryptography, +strong randomness, and more. It is implemented using the foreign function +interface (FFI) of Guile.") + (license #f))) ;license:gpl3+ + ((package . _) + package))) + (define* (build-program source version #:optional (guile-version (effective-version)) #:key (pull-version 0)) @@ -212,10 +247,21 @@ person's version identifier." (('gnu _ ...) #t) (_ #f))) + (define fake-gcrypt-hash + ;; Fake (gcrypt hash) module; see below. + (scheme-file "hash.scm" + #~(define-module (gcrypt hash) + #:export (sha1 sha256)))) + (with-imported-modules `(((guix config) - => ,(make-config.scm - #:libgcrypt - (specification->package "libgcrypt"))) + => ,(make-config.scm)) + + ;; To avoid relying on 'with-extensions', which was + ;; introduced in 0.15.0, provide a fake (gcrypt + ;; hash) just so that we can build modules, and + ;; adjust %LOAD-PATH later on. + ((gcrypt hash) => ,fake-gcrypt-hash) + ,@(source-module-closure `((guix store) (guix self) (guix derivations) @@ -237,13 +283,24 @@ person's version identifier." (match %load-path ((front _ ...) (unless (string=? front source) ;already done? - (set! %load-path (list source front))))))) + (set! %load-path + (list source + (string-append #$guile-gcrypt + "/share/guile/site/" + (effective-version)) + front))))))) - ;; Only load our own modules or those of Guile. + ;; Only load Guile-Gcrypt, our own modules, or those + ;; of Guile. (match %load-compiled-path ((front _ ... sys1 sys2) - (set! %load-compiled-path - (list front sys1 sys2))))) + (unless (string-prefix? #$guile-gcrypt front) + (set! %load-compiled-path + (list (string-append #$guile-gcrypt + "/lib/guile/" + (effective-version) + "/site-ccache") + front sys1 sys2)))))) (use-modules (guix store) (guix self) diff --git a/configure.ac b/configure.ac index b34f15a77b..c83d4d8a28 100644 --- a/configure.ac +++ b/configure.ac @@ -130,6 +130,11 @@ if test "x$guix_cv_have_recent_guile_sqlite3" != "xyes"; then AC_MSG_ERROR([A recent Guile-SQLite3 could not be found; please install it.]) fi +GUILE_MODULE_AVAILABLE([have_guile_gcrypt], [(gcrypt hash)]) +if test "x$have_guile_gcrypt" != "xyes"; then + AC_MSG_ERROR([Guile-Gcrypt could not be found; please install it.]) +fi + dnl Make sure we have a full-fledged Guile. GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads]) @@ -213,16 +218,10 @@ AC_ARG_WITH([libgcrypt-libdir], esac]) dnl If none of the --with-libgcrypt-* options was used, try to determine the -dnl absolute file name of libgcrypt.so. +dnl the library directory. case "x$LIBGCRYPT_PREFIX$LIBGCRYPT_LIBDIR" in xnono) GUIX_LIBGCRYPT_LIBDIR([LIBGCRYPT_LIBDIR]) - if test "x$LIBGCRYPT_LIBDIR" != x; then - LIBGCRYPT="$LIBGCRYPT_LIBDIR/libgcrypt" - else - dnl 'config-daemon.ac' expects "no" in this case. - LIBGCRYPT_LIBDIR="no" - fi ;; esac diff --git a/doc/guix.texi b/doc/guix.texi index 307f915dbb..9375aac30c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -620,7 +620,8 @@ GNU Guix depends on the following packages: @itemize @item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or later, including 2.2.x; -@item @url{http://gnupg.org/, GNU libgcrypt}; +@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version +0.1.0 or later; @item @uref{http://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for @@ -662,6 +663,7 @@ Unless @code{--disable-daemon} was passed to @command{configure}, the following packages are also needed: @itemize +@item @url{http://gnupg.org/, GNU libgcrypt}; @item @url{http://sqlite.org, SQLite 3}; @item @url{http://gcc.gnu.org, GCC's g++}, with support for the C++11 standard. diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 64f7782f58..121a459fa6 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -36,7 +36,7 @@ #:use-module (guix store) #:use-module (guix build-system gnu) #:autoload (guix gnupg) (gnupg-verify*) - #:autoload (guix hash) (port-sha256) + #:autoload (gcrypt hash) (port-sha256) #:autoload (guix base32) (bytevector->nix-base32-string) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 78db0abfa8..e40a94a844 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -213,6 +213,7 @@ ;; Guile-JSON, and Guile-Git automatically. (let* ((out (assoc-ref outputs "out")) (guile (assoc-ref inputs "guile")) + (gcrypt (assoc-ref inputs "guile-gcrypt")) (json (assoc-ref inputs "guile-json")) (sqlite (assoc-ref inputs "guile-sqlite3")) (git (assoc-ref inputs "guile-git")) @@ -220,7 +221,8 @@ "guile-bytestructures")) (ssh (assoc-ref inputs "guile-ssh")) (gnutls (assoc-ref inputs "gnutls")) - (deps (list json sqlite gnutls git bs ssh)) + (deps (list gcrypt json sqlite gnutls + git bs ssh)) (effective (read-line (open-pipe* OPEN_READ @@ -279,6 +281,7 @@ '()))) (propagated-inputs `(("gnutls" ,gnutls) + ("guile-gcrypt" ,guile-gcrypt) ("guile-json" ,guile-json) ("guile-sqlite3" ,guile-sqlite3) ("guile-ssh" ,guile-ssh) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index b505b0cf6b..3898872a46 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -32,7 +32,7 @@ #:use-module (guix modules) #:use-module (guix scripts pack) #:use-module (guix utils) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base32) #:use-module ((guix self) #:select (make-config.scm)) @@ -43,7 +43,7 @@ #:use-module (gnu packages cdrom) #:use-module (gnu packages compression) #:use-module (gnu packages guile) - #:autoload (gnu packages gnupg) (libgcrypt) + #:autoload (gnu packages gnupg) (guile-gcrypt) #:use-module (gnu packages gawk) #:use-module (gnu packages bash) #:use-module (gnu packages less) @@ -124,10 +124,12 @@ (('gnu rest ...) #t) (rest #f))) -(define guile-sqlite3&co - ;; Guile-SQLite3 and its propagated inputs. - (cons guile-sqlite3 - (package-transitive-propagated-inputs guile-sqlite3))) +(define gcrypt-sqlite3&co + ;; Guile-Gcrypt, Guile-SQLite3, and their propagated inputs. + (append-map (lambda (package) + (cons package + (package-transitive-propagated-inputs package))) + (list guile-gcrypt guile-sqlite3))) (define* (expression->derivation-in-linux-vm name exp #:key @@ -164,10 +166,6 @@ based on the size of the closure of REFERENCES-GRAPHS. When REFERENCES-GRAPHS is true, it must be a list of file name/store path pairs, as for `derivation'. The files containing the reference graphs are made available under the /xchg CIFS share." - (define config - ;; (guix config) module for consumption by (guix gcrypt). - (make-config.scm #:libgcrypt libgcrypt)) - (define user-builder (program-file "builder-in-linux-vm" exp)) @@ -195,12 +193,14 @@ made available under the /xchg CIFS share." (define builder ;; Code that launches the VM that evaluates EXP. - (with-extensions guile-sqlite3&co + (with-extensions gcrypt-sqlite3&co (with-imported-modules `(,@(source-module-closure '((guix build utils) (gnu build vm)) #:select? not-config?) - ((guix config) => ,config)) + + ;; For consumption by (gnu store database). + ((guix config) => ,(make-config.scm))) #~(begin (use-modules (guix build utils) (gnu build vm)) @@ -255,9 +255,6 @@ made available under the /xchg CIFS share." "Return a bootable, stand-alone iso9660 image. INPUTS is a list of inputs (as for packages)." - (define config - (make-config.scm #:libgcrypt libgcrypt)) - (define schema (and register-closures? (local-file (search-path %load-path @@ -265,12 +262,12 @@ INPUTS is a list of inputs (as for packages)." (expression->derivation-in-linux-vm name - (with-extensions guile-sqlite3&co + (with-extensions gcrypt-sqlite3&co (with-imported-modules `(,@(source-module-closure '((gnu build vm) (guix store database) (guix build utils)) #:select? not-config?) - ((guix config) => ,config)) + ((guix config) => ,(make-config.scm))) #~(begin (use-modules (gnu build vm) (guix store database) @@ -347,9 +344,6 @@ INPUTS is a list of inputs (as for packages). When COPY-INPUTS? is true, copy all of INPUTS into the image being built. When REGISTER-CLOSURES? is true, register INPUTS in the store database of the image so that Guix can be used in the image." - (define config - (make-config.scm #:libgcrypt libgcrypt)) - (define schema (and register-closures? (local-file (search-path %load-path @@ -357,13 +351,13 @@ the image." (expression->derivation-in-linux-vm name - (with-extensions guile-sqlite3&co + (with-extensions gcrypt-sqlite3&co (with-imported-modules `(,@(source-module-closure '((gnu build vm) (gnu build bootloader) (guix store database) (guix build utils)) #:select? not-config?) - ((guix config) => ,config)) + ((guix config) => ,(make-config.scm))) #~(begin (use-modules (gnu build bootloader) (gnu build vm) @@ -462,10 +456,6 @@ makes sense when you want to build a GuixSD Docker image that has Guix installed inside of it. If you don't need Guix (e.g., your GuixSD Docker image just contains a web server that is started by the Shepherd), then you should set REGISTER-CLOSURES? to #f." - (define config - ;; (guix config) module for consumption by (guix gcrypt). - (make-config.scm #:libgcrypt libgcrypt)) - (define schema (and register-closures? (local-file (search-path %load-path @@ -475,8 +465,8 @@ should set REGISTER-CLOSURES? to #f." (name -> (string-append name ".tar.gz")) (graph -> "system-graph")) (define build - (with-extensions (cons guile-json ;for (guix docker) - guile-sqlite3&co) ;for (guix store database) + (with-extensions (cons guile-json ;for (guix docker) + gcrypt-sqlite3&co) ;for (guix store database) (with-imported-modules `(,@(source-module-closure '((guix docker) (guix store database) @@ -484,7 +474,7 @@ should set REGISTER-CLOSURES? to #f." (guix build store-copy) (gnu build vm)) #:select? not-config?) - ((guix config) => ,config)) + ((guix config) => ,(make-config.scm))) #~(begin (use-modules (guix docker) (guix build utils) diff --git a/guix/derivations.scm b/guix/derivations.scm index da686e89e2..7afecb10cc 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -35,7 +35,7 @@ #:use-module (guix memoization) #:use-module (guix combinators) #:use-module (guix monads) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base32) #:use-module (guix records) #:use-module (guix sets) diff --git a/guix/docker.scm b/guix/docker.scm index b869901599..0757d3356f 100644 --- a/guix/docker.scm +++ b/guix/docker.scm @@ -19,7 +19,7 @@ ;;; along with GNU Guix. If not, see . (define-module (guix docker) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base16) #:use-module ((guix build utils) #:select (mkdir-p diff --git a/guix/gcrypt.scm b/guix/gcrypt.scm deleted file mode 100644 index 1517501751..0000000000 --- a/guix/gcrypt.scm +++ /dev/null @@ -1,49 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (guix gcrypt) - #:use-module (guix config) - #:use-module (system foreign) - #:export (gcrypt-version - libgcrypt-func)) - -;;; Commentary: -;;; -;;; Common code for the GNU Libgcrypt bindings. Loading this module -;;; initializes Libgcrypt as a side effect. -;;; -;;; Code: - -(define libgcrypt-func - (let ((lib (dynamic-link %libgcrypt))) - (lambda (func) - "Return a pointer to symbol FUNC in libgcrypt." - (dynamic-func func lib)))) - -(define gcrypt-version - ;; According to the manual, this function must be called before any other, - ;; and it's not clear whether it can be called more than once. So call it - ;; right here from the top level. - (let* ((ptr (libgcrypt-func "gcry_check_version")) - (proc (pointer->procedure '* ptr '(*))) - (version (pointer->string (proc %null-pointer)))) - (lambda () - "Return the version number of libgcrypt as a string." - version))) - -;;; gcrypt.scm ends here diff --git a/guix/git.scm b/guix/git.scm index 193e2df111..c577eba5ee 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -21,7 +21,7 @@ #:use-module (git) #:use-module (git object) #:use-module (guix base32) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module ((guix build utils) #:select (mkdir-p)) #:use-module (guix store) #:use-module (guix utils) diff --git a/guix/hash.scm b/guix/hash.scm deleted file mode 100644 index 8d7ba21425..0000000000 --- a/guix/hash.scm +++ /dev/null @@ -1,184 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (guix hash) - #:use-module (guix gcrypt) - #:use-module (rnrs bytevectors) - #:use-module (ice-9 binary-ports) - #:use-module (system foreign) - #:use-module ((guix build utils) #:select (dump-port)) - #:use-module (srfi srfi-11) - #:use-module (srfi srfi-26) - #:export (sha1 - sha256 - open-sha256-port - port-sha256 - file-sha256 - open-sha256-input-port)) - -;;; Commentary: -;;; -;;; Cryptographic hashes. -;;; -;;; Code: - - -;;; -;;; Hash. -;;; - -(define-syntax GCRY_MD_SHA256 - ;; Value as of Libgcrypt 1.5.2. - (identifier-syntax 8)) - -(define-syntax GCRY_MD_SHA1 - (identifier-syntax 2)) - -(define bytevector-hash - (let ((hash (pointer->procedure void - (libgcrypt-func "gcry_md_hash_buffer") - `(,int * * ,size_t)))) - (lambda (bv type size) - "Return the hash TYPE, of SIZE bytes, of BV as a bytevector." - (let ((digest (make-bytevector size))) - (hash type (bytevector->pointer digest) - (bytevector->pointer bv) (bytevector-length bv)) - digest)))) - -(define sha1 - (cut bytevector-hash <> GCRY_MD_SHA1 20)) - -(define sha256 - (cut bytevector-hash <> GCRY_MD_SHA256 (/ 256 8))) - -(define open-sha256-md - (let ((open (pointer->procedure int - (libgcrypt-func "gcry_md_open") - `(* ,int ,unsigned-int)))) - (lambda () - (let* ((md (bytevector->pointer (make-bytevector (sizeof '*)))) - (err (open md GCRY_MD_SHA256 0))) - (if (zero? err) - (dereference-pointer md) - (throw 'gcrypt-error err)))))) - -(define md-write - (pointer->procedure void - (libgcrypt-func "gcry_md_write") - `(* * ,size_t))) - -(define md-read - (pointer->procedure '* - (libgcrypt-func "gcry_md_read") - `(* ,int))) - -(define md-close - (pointer->procedure void - (libgcrypt-func "gcry_md_close") - '(*))) - - -(define (open-sha256-port) - "Return two values: an output port, and a thunk. When the thunk is called, -it returns the SHA256 hash (a bytevector) of all the data written to the -output port." - (define sha256-md - (open-sha256-md)) - - (define digest #f) - (define position 0) - - (define (finalize!) - (let ((ptr (md-read sha256-md 0))) - (set! digest (bytevector-copy (pointer->bytevector ptr 32))) - (md-close sha256-md))) - - (define (write! bv offset len) - (if (zero? len) - (begin - (finalize!) - 0) - (let ((ptr (bytevector->pointer bv offset))) - (md-write sha256-md ptr len) - (set! position (+ position len)) - len))) - - (define (get-position) - position) - - (define (close) - (unless digest - (finalize!))) - - (values (make-custom-binary-output-port "sha256" - write! get-position #f - close) - (lambda () - (unless digest - (finalize!)) - digest))) - -(define (port-sha256 port) - "Return the SHA256 hash (a bytevector) of all the data drained from PORT." - (let-values (((out get) - (open-sha256-port))) - (dump-port port out) - (close-port out) - (get))) - -(define (file-sha256 file) - "Return the SHA256 hash (a bytevector) of FILE." - (call-with-input-file file port-sha256)) - -(define (open-sha256-input-port port) - "Return an input port that wraps PORT and a thunk to get the hash of all the -data read from PORT. The thunk always returns the same value." - (define md - (open-sha256-md)) - - (define (read! bv start count) - (let ((n (get-bytevector-n! port bv start count))) - (if (eof-object? n) - 0 - (begin - (unless digest - (let ((ptr (bytevector->pointer bv start))) - (md-write md ptr n))) - n)))) - - (define digest #f) - - (define (finalize!) - (let ((ptr (md-read md 0))) - (set! digest (bytevector-copy (pointer->bytevector ptr 32))) - (md-close md))) - - (define (get-hash) - (unless digest - (finalize!)) - digest) - - (define (unbuffered port) - ;; Guile <= 2.0.9 does not support 'setvbuf' on custom binary input ports. - (setvbuf port _IONBF) - port) - - (values (unbuffered (make-custom-binary-input-port "sha256" read! #f #f #f)) - get-hash)) - -;;; hash.scm ends here diff --git a/guix/http-client.scm b/guix/http-client.scm index 3b34d4ffba..07360e6108 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -34,7 +34,7 @@ #:use-module (guix ui) #:use-module (guix utils) #:use-module (guix base64) - #:autoload (guix hash) (sha256) + #:autoload (gcrypt hash) (sha256) #:use-module ((guix build utils) #:select (mkdir-p dump-port)) #:use-module ((guix build download) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index d0ff64ed05..d4bea84353 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -27,7 +27,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (json) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix store) #:use-module (guix utils) #:use-module (guix base32) diff --git a/guix/import/cran.scm b/guix/import/cran.scm index a5203fe78d..89c84f7037 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -29,7 +29,7 @@ #:use-module (web uri) #:use-module (guix memoization) #:use-module (guix http-client) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix store) #:use-module (guix base32) #:use-module ((guix download) #:select (download-to-store)) diff --git a/guix/import/crate.scm b/guix/import/crate.scm index 3724a457a4..e0b400d054 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -20,7 +20,7 @@ #:use-module (guix base32) #:use-module (guix build-system cargo) #:use-module ((guix download) #:prefix download:) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix http-client) #:use-module (guix import json) #:use-module (guix import utils) diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm index c37afaf8e6..83354d3f04 100644 --- a/guix/import/elpa.scm +++ b/guix/import/elpa.scm @@ -32,7 +32,7 @@ #:use-module (guix http-client) #:use-module (guix store) #:use-module (guix ui) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base32) #:use-module (guix upstream) #:use-module (guix packages) diff --git a/guix/import/gnu.scm b/guix/import/gnu.scm index bbb17047f0..29324d7554 100644 --- a/guix/import/gnu.scm +++ b/guix/import/gnu.scm @@ -21,7 +21,7 @@ #:use-module (guix import utils) #:use-module (guix utils) #:use-module (guix store) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base32) #:use-module (guix upstream) #:use-module (srfi srfi-1) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index 54301de2e8..766a0b53f1 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -33,7 +33,7 @@ #:use-module ((guix import utils) #:select (factorize-uri recursive-import)) #:use-module (guix import cabal) #:use-module (guix store) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base32) #:use-module (guix memoization) #:use-module (guix upstream) diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm index d4c3714364..791b514485 100644 --- a/guix/import/texlive.scm +++ b/guix/import/texlive.scm @@ -26,7 +26,7 @@ #:use-module (srfi srfi-34) #:use-module (web uri) #:use-module (guix http-client) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix memoization) #:use-module (guix store) #:use-module (guix base32) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 0dc8fd5857..516c0cfaa2 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -23,7 +23,7 @@ (define-module (guix import utils) #:use-module (guix base32) #:use-module ((guix build download) #:prefix build:) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix http-client) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) diff --git a/guix/nar.scm b/guix/nar.scm index 3556de1379..0495b4a40c 100644 --- a/guix/nar.scm +++ b/guix/nar.scm @@ -25,9 +25,9 @@ #:use-module (guix store) #:use-module (guix store database) #:use-module (guix ui) ; for '_' - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix pki) - #:use-module (guix pk-crypto) + #:use-module (gcrypt pk-crypto) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) diff --git a/guix/pk-crypto.scm b/guix/pk-crypto.scm deleted file mode 100644 index 55ba7b1bb8..0000000000 --- a/guix/pk-crypto.scm +++ /dev/null @@ -1,407 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (guix pk-crypto) - #:use-module (guix base16) - #:use-module (guix gcrypt) - - #:use-module (system foreign) - #:use-module (rnrs bytevectors) - #:use-module (ice-9 match) - #:use-module (ice-9 rdelim) - #:export (canonical-sexp? - error-source - error-string - string->canonical-sexp - canonical-sexp->string - read-file-sexp - number->canonical-sexp - canonical-sexp-car - canonical-sexp-cdr - canonical-sexp-nth - canonical-sexp-nth-data - canonical-sexp-length - canonical-sexp-null? - canonical-sexp-list? - bytevector->hash-data - hash-data->bytevector - key-type - sign - verify - generate-key - find-sexp-token - canonical-sexp->sexp - sexp->canonical-sexp) - #:re-export (gcrypt-version)) - - -;;; Commentary: -;;; -;;; Public key cryptographic routines from GNU Libgcrypt. -;;;; -;;; Libgcrypt uses "canonical s-expressions" to represent key material, -;;; parameters, and data. We keep it as an opaque object to map them to -;;; Scheme s-expressions because (1) Libgcrypt sexps may be stored in secure -;;; memory, and (2) the read syntax is different. -;;; -;;; A 'canonical-sexp->sexp' procedure is provided nevertheless, for use in -;;; cases where it is safe to move data out of Libgcrypt---e.g., when -;;; processing ACL entries, public keys, etc. -;;; -;;; Canonical sexps were defined by Rivest et al. in the IETF draft at -;;; for the purposes of SPKI -;;; (see .) -;;; -;;; Code: - -;; Libgcrypt "s-expressions". -(define-wrapped-pointer-type - canonical-sexp? - naked-pointer->canonical-sexp - canonical-sexp->pointer - (lambda (obj port) - ;; Don't print OBJ's external representation: we don't want key material - ;; to leak in backtraces and such. - (format port "#" - (number->string (object-address obj) 16) - (number->string (pointer-address (canonical-sexp->pointer obj)) - 16)))) - -(define finalize-canonical-sexp! - (libgcrypt-func "gcry_sexp_release")) - -(define-inlinable (pointer->canonical-sexp ptr) - "Return a that wraps PTR." - (let* ((sexp (naked-pointer->canonical-sexp ptr)) - (ptr* (canonical-sexp->pointer sexp))) - ;; Did we already have a object for PTR? - (when (equal? ptr ptr*) - ;; No, so we can safely add a finalizer (in Guile 2.0.9 - ;; 'set-pointer-finalizer!' *adds* a finalizer rather than replacing the - ;; existing one.) - (set-pointer-finalizer! ptr finalize-canonical-sexp!)) - sexp)) - -(define error-source - (let* ((ptr (libgcrypt-func "gcry_strsource")) - (proc (pointer->procedure '* ptr (list int)))) - (lambda (err) - "Return the error source (a string) for ERR, an error code as thrown -along with 'gcry-error'." - (pointer->string (proc err))))) - -(define error-string - (let* ((ptr (libgcrypt-func "gcry_strerror")) - (proc (pointer->procedure '* ptr (list int)))) - (lambda (err) - "Return the error description (a string) for ERR, an error code as -thrown along with 'gcry-error'." - (pointer->string (proc err))))) - -(define string->canonical-sexp - (let* ((ptr (libgcrypt-func "gcry_sexp_new")) - (proc (pointer->procedure int ptr `(* * ,size_t ,int)))) - (lambda (str) - "Parse STR and return the corresponding gcrypt s-expression." - - ;; When STR comes from 'canonical-sexp->string', it may contain - ;; characters that are really meant to be interpreted as bytes as in a C - ;; 'char *'. Thus, convert STR to ISO-8859-1 so the byte values of the - ;; characters are preserved. - (let* ((sexp (bytevector->pointer (make-bytevector (sizeof '*)))) - (err (proc sexp (string->pointer str "ISO-8859-1") 0 1))) - (if (= 0 err) - (pointer->canonical-sexp (dereference-pointer sexp)) - (throw 'gcry-error 'string->canonical-sexp err)))))) - -(define-syntax GCRYSEXP_FMT_ADVANCED - (identifier-syntax 3)) - -(define canonical-sexp->string - (let* ((ptr (libgcrypt-func "gcry_sexp_sprint")) - (proc (pointer->procedure size_t ptr `(* ,int * ,size_t)))) - (lambda (sexp) - "Return a textual representation of SEXP." - (let loop ((len 1024)) - (let* ((buf (bytevector->pointer (make-bytevector len))) - (size (proc (canonical-sexp->pointer sexp) - GCRYSEXP_FMT_ADVANCED buf len))) - (if (zero? size) - (loop (* len 2)) - (pointer->string buf size "ISO-8859-1"))))))) - -(define (read-file-sexp file) - "Return the canonical sexp read from FILE." - (call-with-input-file file - (compose string->canonical-sexp - read-string))) - -(define canonical-sexp-car - (let* ((ptr (libgcrypt-func "gcry_sexp_car")) - (proc (pointer->procedure '* ptr '(*)))) - (lambda (lst) - "Return the first element of LST, an sexp, if that element is a list; -return #f if LST or its first element is not a list (this is different from -the usual Lisp 'car'.)" - (let ((result (proc (canonical-sexp->pointer lst)))) - (if (null-pointer? result) - #f - (pointer->canonical-sexp result)))))) - -(define canonical-sexp-cdr - (let* ((ptr (libgcrypt-func "gcry_sexp_cdr")) - (proc (pointer->procedure '* ptr '(*)))) - (lambda (lst) - "Return the tail of LST, an sexp, or #f if LST is not a list." - (let ((result (proc (canonical-sexp->pointer lst)))) - (if (null-pointer? result) - #f - (pointer->canonical-sexp result)))))) - -(define canonical-sexp-nth - (let* ((ptr (libgcrypt-func "gcry_sexp_nth")) - (proc (pointer->procedure '* ptr `(* ,int)))) - (lambda (lst index) - "Return the INDEXth nested element of LST, an s-expression. Return #f -if that element does not exist, or if it's an atom. (Note: this is obviously -different from Scheme's 'list-ref'.)" - (let ((result (proc (canonical-sexp->pointer lst) index))) - (if (null-pointer? result) - #f - (pointer->canonical-sexp result)))))) - -(define (dereference-size_t p) - "Return the size_t value pointed to by P." - (bytevector-uint-ref (pointer->bytevector p (sizeof size_t)) - 0 (native-endianness) - (sizeof size_t))) - -(define canonical-sexp-length - (let* ((ptr (libgcrypt-func "gcry_sexp_length")) - (proc (pointer->procedure int ptr '(*)))) - (lambda (sexp) - "Return the length of SEXP if it's a list (including the empty list); -return zero if SEXP is an atom." - (proc (canonical-sexp->pointer sexp))))) - -(define token-string? - (let ((token-cs (char-set-union char-set:digit - char-set:letter - (char-set #\- #\. #\/ #\_ - #\: #\* #\+ #\=)))) - (lambda (str) - "Return #t if STR is a token as per Section 4.3 of -." - (and (not (string-null? str)) - (string-every token-cs str) - (not (char-set-contains? char-set:digit (string-ref str 0))))))) - -(define canonical-sexp-nth-data - (let* ((ptr (libgcrypt-func "gcry_sexp_nth_data")) - (proc (pointer->procedure '* ptr `(* ,int *)))) - (lambda (lst index) - "Return as a symbol (for \"sexp tokens\") or a bytevector (for any other -\"octet string\") the INDEXth data element (atom) of LST, an s-expression. -Return #f if that element does not exist, or if it's a list." - (let* ((size* (bytevector->pointer (make-bytevector (sizeof '*)))) - (result (proc (canonical-sexp->pointer lst) index size*))) - (if (null-pointer? result) - #f - (let* ((len (dereference-size_t size*)) - (str (pointer->string result len "ISO-8859-1"))) - ;; The sexp spec speaks of "tokens" and "octet strings". - ;; Sometimes these octet strings are actual strings (text), - ;; sometimes they're bytevectors, and sometimes they're - ;; multi-precision integers (MPIs). Only the application knows. - ;; However, for convenience, we return a symbol when a token is - ;; encountered since tokens are frequent (at least in the 'car' - ;; of each sexp.) - (if (token-string? str) - (string->symbol str) ; an sexp "token" - (bytevector-copy ; application data, textual or binary - (pointer->bytevector result len))))))))) - -(define (number->canonical-sexp number) - "Return an s-expression representing NUMBER." - (string->canonical-sexp (string-append "#" (number->string number 16) "#"))) - -(define* (bytevector->hash-data bv - #:optional - (hash-algo "sha256") - #:key (key-type 'ecc)) - "Given BV, a bytevector containing a hash of type HASH-ALGO, return an -s-expression suitable for use as the 'data' argument for 'sign'. KEY-TYPE -must be a symbol: 'dsa, 'ecc, or 'rsa." - (string->canonical-sexp - (format #f "(data (flags ~a) (hash \"~a\" #~a#))" - (case key-type - ((ecc dsa) "rfc6979") - ((rsa) "pkcs1") - (else (error "unknown key type" key-type))) - hash-algo - (bytevector->base16-string bv)))) - -(define (key-type sexp) - "Return a symbol denoting the type of public or private key represented by -SEXP--e.g., 'rsa', 'ecc'--or #f if SEXP does not denote a valid key." - (case (canonical-sexp-nth-data sexp 0) - ((public-key private-key) - (canonical-sexp-nth-data (canonical-sexp-nth sexp 1) 0)) - (else #f))) - -(define* (hash-data->bytevector data) - "Return two values: the hash value (a bytevector), and the hash algorithm (a -string) extracted from DATA, an sexp as returned by 'bytevector->hash-data'. -Return #f if DATA does not conform." - (let ((hash (find-sexp-token data 'hash))) - (if hash - (let ((algo (canonical-sexp-nth-data hash 1)) - (value (canonical-sexp-nth-data hash 2))) - (values value (symbol->string algo))) - (values #f #f)))) - -(define sign - (let* ((ptr (libgcrypt-func "gcry_pk_sign")) - (proc (pointer->procedure int ptr '(* * *)))) - (lambda (data secret-key) - "Sign DATA, a canonical s-expression representing a suitable hash, with -SECRET-KEY (a canonical s-expression whose car is 'private-key'.) Note that -DATA must be a 'data' s-expression, as returned by -'bytevector->hash-data' (info \"(gcrypt) Cryptographic Functions\")." - (let* ((sig (bytevector->pointer (make-bytevector (sizeof '*)))) - (err (proc sig (canonical-sexp->pointer data) - (canonical-sexp->pointer secret-key)))) - (if (= 0 err) - (pointer->canonical-sexp (dereference-pointer sig)) - (throw 'gcry-error 'sign err)))))) - -(define verify - (let* ((ptr (libgcrypt-func "gcry_pk_verify")) - (proc (pointer->procedure int ptr '(* * *)))) - (lambda (signature data public-key) - "Verify that SIGNATURE is a signature of DATA with PUBLIC-KEY, all of -which are gcrypt s-expressions." - (zero? (proc (canonical-sexp->pointer signature) - (canonical-sexp->pointer data) - (canonical-sexp->pointer public-key)))))) - -(define generate-key - (let* ((ptr (libgcrypt-func "gcry_pk_genkey")) - (proc (pointer->procedure int ptr '(* *)))) - (lambda (params) - "Return as an s-expression a new key pair for PARAMS. PARAMS must be an -s-expression like: (genkey (rsa (nbits 4:2048)))." - (let* ((key (bytevector->pointer (make-bytevector (sizeof '*)))) - (err (proc key (canonical-sexp->pointer params)))) - (if (zero? err) - (pointer->canonical-sexp (dereference-pointer key)) - (throw 'gcry-error 'generate-key err)))))) - -(define find-sexp-token - (let* ((ptr (libgcrypt-func "gcry_sexp_find_token")) - (proc (pointer->procedure '* ptr `(* * ,size_t)))) - (lambda (sexp token) - "Find in SEXP the first element whose 'car' is TOKEN and return it; -return #f if not found." - (let* ((token (string->pointer (symbol->string token))) - (res (proc (canonical-sexp->pointer sexp) token 0))) - (if (null-pointer? res) - #f - (pointer->canonical-sexp res)))))) - -(define-inlinable (canonical-sexp-null? sexp) - "Return #t if SEXP is the empty-list sexp." - (null-pointer? (canonical-sexp->pointer sexp))) - -(define (canonical-sexp-list? sexp) - "Return #t if SEXP is a list." - (or (canonical-sexp-null? sexp) - (> (canonical-sexp-length sexp) 0))) - -(define (canonical-sexp-fold proc seed sexp) - "Fold PROC (as per SRFI-1) over SEXP, a canonical sexp." - (if (canonical-sexp-list? sexp) - (let ((len (canonical-sexp-length sexp))) - (let loop ((index 0) - (result seed)) - (if (= index len) - result - (loop (+ 1 index) - ;; XXX: Call 'nth-data' *before* 'nth' to work around - ;; , which - ;; affects 1.6.0 and earlier versions. - (proc (or (canonical-sexp-nth-data sexp index) - (canonical-sexp-nth sexp index)) - result))))) - (error "sexp is not a list" sexp))) - -(define (canonical-sexp->sexp sexp) - "Return a Scheme sexp corresponding to SEXP. This is particularly useful to -compare sexps (since Libgcrypt does not provide an 'equal?' procedure), or to -use pattern matching." - (if (canonical-sexp-list? sexp) - (reverse - (canonical-sexp-fold (lambda (item result) - (cons (if (canonical-sexp? item) - (canonical-sexp->sexp item) - item) - result)) - '() - sexp)) - - ;; As of Libgcrypt 1.6.0, there's no function to extract the buffer of a - ;; non-list sexp (!), so we first enlist SEXP, then get at its buffer. - (let ((sexp (string->canonical-sexp - (string-append "(" (canonical-sexp->string sexp) - ")")))) - (or (canonical-sexp-nth-data sexp 0) - (canonical-sexp-nth sexp 0))))) - -(define (sexp->canonical-sexp sexp) - "Return a canonical sexp equivalent to SEXP, a Scheme sexp as returned by -'canonical-sexp->sexp'." - ;; XXX: This is inefficient, but the Libgcrypt API doesn't allow us to do - ;; much better. - (string->canonical-sexp - (call-with-output-string - (lambda (port) - (define (write item) - (cond ((list? item) - (display "(" port) - (for-each write item) - (display ")" port)) - ((symbol? item) - (format port " ~a" item)) - ((bytevector? item) - (format port " #~a#" - (bytevector->base16-string item))) - (else - (error "unsupported sexp item type" item)))) - - (write sexp))))) - -(define (gcrypt-error-printer port key args default-printer) - "Print the gcrypt error specified by ARGS." - (match args - ((proc err) - (format port "In procedure ~a: ~a: ~a" - proc (error-source err) (error-string err))))) - -(set-exception-printer! 'gcry-error gcrypt-error-printer) - -;;; pk-crypto.scm ends here diff --git a/guix/pki.scm b/guix/pki.scm index 1551425c33..6326e065e9 100644 --- a/guix/pki.scm +++ b/guix/pki.scm @@ -18,7 +18,7 @@ (define-module (guix pki) #:use-module (guix config) - #:use-module (guix pk-crypto) + #:use-module (gcrypt pk-crypto) #:use-module ((guix utils) #:select (with-atomic-file-output)) #:use-module ((guix build utils) #:select (mkdir-p)) #:use-module (ice-9 match) diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index a359f405fe..fb2f61ce30 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -29,7 +29,7 @@ #:use-module (guix monads) #:use-module (guix ui) #:use-module (guix pki) - #:use-module (guix pk-crypto) + #:use-module (gcrypt pk-crypto) #:use-module (guix scripts) #:use-module (guix scripts build) #:use-module (gnu packages) diff --git a/guix/scripts/authenticate.scm b/guix/scripts/authenticate.scm index 8b19dc871b..f1fd8ee895 100644 --- a/guix/scripts/authenticate.scm +++ b/guix/scripts/authenticate.scm @@ -19,7 +19,7 @@ (define-module (guix scripts authenticate) #:use-module (guix config) #:use-module (guix base16) - #:use-module (guix pk-crypto) + #:use-module (gcrypt pk-crypto) #:use-module (guix pki) #:use-module (guix ui) #:use-module (ice-9 binary-ports) diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm index 1b99bc62cf..b9162d3449 100644 --- a/guix/scripts/download.scm +++ b/guix/scripts/download.scm @@ -20,7 +20,7 @@ #:use-module (guix ui) #:use-module (guix scripts) #:use-module (guix store) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base16) #:use-module (guix base32) #:use-module ((guix download) #:hide (url-fetch)) diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm index cae5d6bcdf..2bd2ac4a06 100644 --- a/guix/scripts/hash.scm +++ b/guix/scripts/hash.scm @@ -20,7 +20,7 @@ (define-module (guix scripts hash) #:use-module (guix base32) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix serialization) #:use-module (guix ui) #:use-module (guix scripts) @@ -44,7 +44,7 @@ `((format . ,bytevector->nix-base32-string))) (define (show-help) - (display (G_ "Usage: guix hash [OPTION] FILE + (display (G_ "Usage: gcrypt hash [OPTION] FILE Return the cryptographic hash of FILE. Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex' @@ -93,7 +93,7 @@ and 'hexadecimal' can be used as well).\n")) (exit 0))) (option '(#\V "version") #f #f (lambda args - (show-version-and-exit "guix hash"))))) + (show-version-and-exit "gcrypt hash"))))) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index fb0677de28..1916f3b9d7 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -41,7 +41,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages base) #:autoload (gnu packages package-management) (guix) - #:autoload (gnu packages gnupg) (libgcrypt) + #:autoload (gnu packages gnupg) (guile-gcrypt) #:autoload (gnu packages guile) (guile2.0-json guile-json) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) @@ -95,10 +95,12 @@ found." (('gnu _ ...) #t) (_ #f))) -(define guile-sqlite3&co - ;; Guile-SQLite3 and its propagated inputs. - (cons guile-sqlite3 - (package-transitive-propagated-inputs guile-sqlite3))) +(define gcrypt-sqlite3&co + ;; Guile-Gcrypt, Guile-SQLite3, and their propagated inputs. + (append-map (lambda (package) + (cons package + (package-transitive-propagated-inputs package))) + (list guile-gcrypt guile-sqlite3))) (define* (self-contained-tarball name profile #:key target @@ -124,16 +126,14 @@ added to the pack." "guix/store/schema.sql")))) (define build - (with-imported-modules `(((guix config) - => ,(make-config.scm - #:libgcrypt libgcrypt)) + (with-imported-modules `(((guix config) => ,(make-config.scm)) ,@(source-module-closure `((guix build utils) (guix build union) (guix build store-copy) (gnu build install)) #:select? not-config?)) - (with-extensions guile-sqlite3&co + (with-extensions gcrypt-sqlite3&co #~(begin (use-modules (guix build utils) ((guix build union) #:select (relative-file-name)) @@ -251,22 +251,14 @@ points for virtual file systems (like procfs), and optional symlinks. SYMLINKS must be a list of (SOURCE -> TARGET) tuples denoting symlinks to be added to the pack." - (define libgcrypt - ;; XXX: Not strictly needed, but pulled by (guix store database). - (module-ref (resolve-interface '(gnu packages gnupg)) - 'libgcrypt)) - - (define build - (with-imported-modules `(((guix config) - => ,(make-config.scm - #:libgcrypt libgcrypt)) + (with-imported-modules `(((guix config) => ,(make-config.scm)) ,@(source-module-closure '((guix build utils) (guix build store-copy) (gnu build install)) #:select? not-config?)) - (with-extensions guile-sqlite3&co + (with-extensions gcrypt-sqlite3&co #~(begin (use-modules (guix build utils) (gnu build install) @@ -349,32 +341,12 @@ must a be a GNU triplet and it is used to derive the architecture metadata in the image." (define defmod 'define-module) ;trick Geiser - (define config - ;; (guix config) module for consumption by (guix gcrypt). - (scheme-file "gcrypt-config.scm" - #~(begin - (#$defmod (guix config) - #:export (%libgcrypt)) - - ;; XXX: Work around . - (eval-when (expand load eval) - (define %libgcrypt - #+(file-append libgcrypt "/lib/libgcrypt")))))) - - (define json - ;; Pick the guile-json package that corresponds to the Guile used to build - ;; derivations. - (if (string-prefix? "2.0" (package-version (default-guile))) - guile2.0-json - guile-json)) - (define build - ;; Guile-JSON is required by (guix docker). - (with-extensions (list json) - (with-imported-modules `(,@(source-module-closure '((guix docker) - (guix build store-copy)) - #:select? not-config?) - ((guix config) => ,config)) + ;; Guile-JSON and Guile-Gcrypt are required by (guix docker). + (with-extensions (list guile-json guile-gcrypt) + (with-imported-modules (source-module-closure '((guix docker) + (guix build store-copy)) + #:select? not-config?) #~(begin (use-modules (guix docker) (srfi srfi-19) (guix build store-copy)) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index b5dfdab32f..c5326b33da 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -44,9 +44,9 @@ #:use-module (guix base64) #:use-module (guix config) #:use-module (guix derivations) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix pki) - #:use-module (guix pk-crypto) + #:use-module (gcrypt pk-crypto) #:use-module (guix workers) #:use-module (guix store) #:use-module ((guix serialization) #:select (write-file)) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index a8fe993e33..bcc23bd39c 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -23,7 +23,7 @@ (define-module (guix scripts refresh) #:use-module (guix ui) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix scripts) #:use-module (guix store) #:use-module (guix utils) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 7634bb37f6..cd300195d8 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -26,11 +26,11 @@ #:use-module (guix config) #:use-module (guix records) #:use-module ((guix serialization) #:select (restore-file)) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base32) #:use-module (guix base64) #:use-module (guix cache) - #:use-module (guix pk-crypto) + #:use-module (gcrypt pk-crypto) #:use-module (guix pki) #:use-module ((guix build utils) #:select (mkdir-p dump-port)) #:use-module ((guix build download) diff --git a/guix/self.scm b/guix/self.scm index 81f9b0cfd5..126116e08a 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -83,8 +83,8 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches." ("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh)) ("guile-git" (ref '(gnu packages guile) 'guile-git)) ("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3)) + ("guile-gcrypt" (ref '(gnu packages gnupg) 'guile-gcrypt)) ("gnutls" (ref '(gnu packages tls) 'gnutls)) - ("libgcrypt" (ref '(gnu packages gnupg) 'libgcrypt)) ("zlib" (ref '(gnu packages compression) 'zlib)) ("gzip" (ref '(gnu packages compression) 'gzip)) ("bzip2" (ref '(gnu packages compression) 'bzip2)) @@ -454,7 +454,6 @@ assumed to be part of MODULES." (name (string-append "guix-" version)) (guile-version (effective-version)) (guile-for-build (guile-for-build guile-version)) - (libgcrypt (specification->package "libgcrypt")) (zlib (specification->package "zlib")) (gzip (specification->package "gzip")) (bzip2 (specification->package "bzip2")) @@ -481,6 +480,10 @@ assumed to be part of MODULES." "guile-sqlite3" "guile2.0-sqlite3")) + (define guile-gcrypt + (package-for-guile guile-version + "guile-gcrypt")) + (define gnutls (package-for-guile guile-version "gnutls" "guile2.0-gnutls")) @@ -489,7 +492,7 @@ assumed to be part of MODULES." (match (append-map (lambda (package) (cons (list "x" package) (package-transitive-propagated-inputs package))) - (list gnutls guile-git guile-json + (list guile-gcrypt gnutls guile-git guile-json guile-ssh guile-sqlite3)) (((labels packages _ ...) ...) packages))) @@ -513,10 +516,7 @@ assumed to be part of MODULES." ;; rebuilt when the version changes, which in turn means we ;; can have substitutes for it. #:extra-modules - `(((guix config) - => ,(make-config.scm #:libgcrypt - (specification->package - "libgcrypt")))) + `(((guix config) => ,(make-config.scm))) ;; (guix man-db) is needed at build-time by (guix profiles) ;; but we don't need to compile it; not compiling it allows @@ -526,6 +526,7 @@ assumed to be part of MODULES." ("guix/store/schema.sql" ,(local-file "../guix/store/schema.sql"))) + #:extensions (list guile-gcrypt) #:guile-for-build guile-for-build)) (define *extra-modules* @@ -600,8 +601,7 @@ assumed to be part of MODULES." '() #:extra-modules `(((guix config) - => ,(make-config.scm #:libgcrypt libgcrypt - #:zlib zlib + => ,(make-config.scm #:zlib zlib #:gzip gzip #:bzip2 bzip2 #:xz xz @@ -684,7 +684,7 @@ assumed to be part of MODULES." (define %dependency-variables ;; (guix config) variables corresponding to dependencies. - '(%libgcrypt %libz %xz %gzip %bzip2)) + '(%libz %xz %gzip %bzip2)) (define %persona-variables ;; (guix config) variables that define Guix's persona. @@ -703,7 +703,7 @@ assumed to be part of MODULES." (variables rest ...)))))) (variables %localstatedir %storedir %sysconfdir %system))) -(define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2 +(define* (make-config.scm #:key zlib gzip xz bzip2 (package-name "GNU Guix") (package-version "0") (bug-report-address "bug-guix@gnu.org") @@ -723,7 +723,6 @@ assumed to be part of MODULES." %state-directory %store-database-directory %config-directory - %libgcrypt %libz %gzip %bzip2 @@ -766,9 +765,6 @@ assumed to be part of MODULES." (define %xz #+(and xz (file-append xz "/bin/xz"))) - (define %libgcrypt - #+(and libgcrypt - (file-append libgcrypt "/lib/libgcrypt"))) (define %libz #+(and zlib (file-append zlib "/lib/libz")))) diff --git a/guix/store.scm b/guix/store.scm index f41a1e2690..af7f6980cf 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -25,7 +25,7 @@ #:use-module (guix monads) #:use-module (guix base16) #:use-module (guix base32) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix profiling) #:autoload (guix build syscalls) (terminal-columns) #:use-module (rnrs bytevectors) diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm index 8c19d7309e..53810c680f 100644 --- a/guix/store/deduplication.scm +++ b/guix/store/deduplication.scm @@ -21,7 +21,7 @@ ;;; timestamps, deduplicating, etc. (define-module (guix store deduplication) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix build utils) #:use-module (guix base16) #:use-module (srfi srfi-11) diff --git a/guix/tests.scm b/guix/tests.scm index 34e3e0fc2a..06e9f8da0b 100644 --- a/guix/tests.scm +++ b/guix/tests.scm @@ -22,7 +22,7 @@ #:use-module (guix packages) #:use-module (guix base32) #:use-module (guix serialization) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix build-system gnu) #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-34) diff --git a/m4/guix.m4 b/m4/guix.m4 index a6897be961..da3c65f8f7 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -18,24 +18,6 @@ dnl dnl You should have received a copy of the GNU General Public License dnl along with GNU Guix. If not, see . -dnl GUIX_ASSERT_LIBGCRYPT_USABLE -dnl -dnl Assert that GNU libgcrypt is usable from Guile. -AC_DEFUN([GUIX_ASSERT_LIBGCRYPT_USABLE], - [AC_CACHE_CHECK([whether $LIBGCRYPT can be dynamically loaded], - [guix_cv_libgcrypt_usable_p], - [GUILE_CHECK([retval], - [(dynamic-func \"gcry_md_hash_buffer\" (dynamic-link \"$LIBGCRYPT\"))]) - if test "$retval" = 0; then - guix_cv_libgcrypt_usable_p="yes" - else - guix_cv_libgcrypt_usable_p="no" - fi]) - - if test "x$guix_cv_libgcrypt_usable_p" != "xyes"; then - AC_MSG_ERROR([GNU libgcrypt does not appear to be usable; see `--with-libgcrypt-prefix' and `README'.]) - fi]) - dnl GUIX_SYSTEM_TYPE dnl dnl Determine the Guix host system type, and store it in the diff --git a/tests/base32.scm b/tests/base32.scm index 194f8da96b..134e578633 100644 --- a/tests/base32.scm +++ b/tests/base32.scm @@ -17,7 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (test-base32) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base32) #:use-module (guix utils) #:use-module (srfi srfi-1) diff --git a/tests/builders.scm b/tests/builders.scm index bb9e0fa85b..8b8ef013e7 100644 --- a/tests/builders.scm +++ b/tests/builders.scm @@ -25,7 +25,7 @@ #:use-module (guix utils) #:use-module (guix base32) #:use-module (guix derivations) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix tests) #:use-module ((guix packages) #:select (package-derivation package-native-search-paths)) diff --git a/tests/challenge.scm b/tests/challenge.scm index 387d205a64..4b13ec278e 100644 --- a/tests/challenge.scm +++ b/tests/challenge.scm @@ -18,7 +18,7 @@ (define-module (test-challenge) #:use-module (guix tests) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix store) #:use-module (guix monads) #:use-module (guix derivations) diff --git a/tests/cpan.scm b/tests/cpan.scm index 396744e529..189dd027e6 100644 --- a/tests/cpan.scm +++ b/tests/cpan.scm @@ -20,7 +20,7 @@ (define-module (test-cpan) #:use-module (guix import cpan) #:use-module (guix base32) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix tests) #:use-module (guix grafts) #:use-module (srfi srfi-64) diff --git a/tests/crate.scm b/tests/crate.scm index eb93822bbb..a1dcfd5e52 100644 --- a/tests/crate.scm +++ b/tests/crate.scm @@ -21,7 +21,7 @@ #:use-module (guix import crate) #:use-module (guix base32) #:use-module (guix build-system cargo) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix tests) #:use-module (ice-9 iconv) #:use-module (ice-9 match) diff --git a/tests/derivations.scm b/tests/derivations.scm index 5d83529183..159a6971b3 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -23,7 +23,7 @@ #:use-module (guix grafts) #:use-module (guix store) #:use-module (guix utils) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base32) #:use-module (guix tests) #:use-module (guix tests http) diff --git a/tests/gem.scm b/tests/gem.scm index 4220170ff0..a12edb294c 100644 --- a/tests/gem.scm +++ b/tests/gem.scm @@ -21,7 +21,7 @@ (define-module (test-gem) #:use-module (guix import gem) #:use-module (guix base32) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix tests) #:use-module ((guix build utils) #:select (delete-file-recursively)) #:use-module (srfi srfi-41) diff --git a/tests/hash.scm b/tests/hash.scm deleted file mode 100644 index 47dff3915b..0000000000 --- a/tests/hash.scm +++ /dev/null @@ -1,128 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2017, 2018 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (test-hash) - #:use-module (guix hash) - #:use-module (guix base16) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-11) - #:use-module (srfi srfi-64) - #:use-module (rnrs bytevectors) - #:use-module (rnrs io ports)) - -;; Test the (guix hash) module. - -(define %empty-sha256 - ;; SHA256 hash of the empty string. - (base16-string->bytevector - "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")) - -(define %hello-sha256 - ;; SHA256 hash of "hello world" - (base16-string->bytevector - "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9")) - - -(test-begin "hash") - -(test-equal "sha1, empty" - (base16-string->bytevector "da39a3ee5e6b4b0d3255bfef95601890afd80709") - (sha1 #vu8())) - -(test-equal "sha1, hello" - (base16-string->bytevector "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed") - (sha1 (string->utf8 "hello world"))) - -(test-equal "sha256, empty" - %empty-sha256 - (sha256 #vu8())) - -(test-equal "sha256, hello" - %hello-sha256 - (sha256 (string->utf8 "hello world"))) - -(test-equal "open-sha256-port, empty" - %empty-sha256 - (let-values (((port get) - (open-sha256-port))) - (close-port port) - (get))) - -(test-equal "open-sha256-port, hello" - (list %hello-sha256 (string-length "hello world")) - (let-values (((port get) - (open-sha256-port))) - (put-bytevector port (string->utf8 "hello world")) - (force-output port) - (list (get) (port-position port)))) - -(test-assert "port-sha256" - (let* ((file (search-path %load-path "ice-9/psyntax.scm")) - (size (stat:size (stat file))) - (contents (call-with-input-file file get-bytevector-all))) - (equal? (sha256 contents) - (call-with-input-file file port-sha256)))) - -(test-equal "open-sha256-input-port, empty" - `("" ,%empty-sha256) - (let-values (((port get) - (open-sha256-input-port (open-string-input-port "")))) - (let ((str (get-string-all port))) - (list str (get))))) - -(test-equal "open-sha256-input-port, hello" - `("hello world" ,%hello-sha256) - (let-values (((port get) - (open-sha256-input-port - (open-bytevector-input-port - (string->utf8 "hello world"))))) - (let ((str (get-string-all port))) - (list str (get))))) - -(test-equal "open-sha256-input-port, hello, one two" - (list (string->utf8 "hel") (string->utf8 "lo") - (base16-string->bytevector ; echo -n hello | sha256sum - "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824") - " world") - (let-values (((port get) - (open-sha256-input-port - (open-bytevector-input-port (string->utf8 "hello world"))))) - (let* ((one (get-bytevector-n port 3)) - (two (get-bytevector-n port 2)) - (hash (get)) - (three (get-string-all port))) - (list one two hash three)))) - -(test-equal "open-sha256-input-port, hello, read from wrapped port" - (list (string->utf8 "hello") - (base16-string->bytevector ; echo -n hello | sha256sum - "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824") - " world") - (let*-values (((wrapped) - (open-bytevector-input-port (string->utf8 "hello world"))) - ((port get) - (open-sha256-input-port wrapped))) - (let* ((hello (get-bytevector-n port 5)) - (hash (get)) - - ;; Now read from WRAPPED to make sure its current position is - ;; correct. - (world (get-string-all wrapped))) - (list hello hash world)))) - -(test-end) diff --git a/tests/nar.scm b/tests/nar.scm index 9b5fb984b4..d610ea53f7 100644 --- a/tests/nar.scm +++ b/tests/nar.scm @@ -21,7 +21,7 @@ #:use-module (guix nar) #:use-module (guix serialization) #:use-module (guix store) - #:use-module ((guix hash) + #:use-module ((gcrypt hash) #:select (open-sha256-port open-sha256-input-port)) #:use-module ((guix packages) #:select (base32)) diff --git a/tests/opam.scm b/tests/opam.scm index 26832174a8..a1320abfdc 100644 --- a/tests/opam.scm +++ b/tests/opam.scm @@ -19,7 +19,7 @@ (define-module (test-opam) #:use-module (guix import opam) #:use-module (guix base32) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix tests) #:use-module ((guix build utils) #:select (delete-file-recursively mkdir-p which)) #:use-module (srfi srfi-64) diff --git a/tests/packages.scm b/tests/packages.scm index 65ccb14889..237feb7aba 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -28,7 +28,7 @@ #:renamer (lambda (name) (cond ((eq? name 'location) 'make-location) (else name)))) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix derivations) #:use-module (guix packages) #:use-module (guix grafts) diff --git a/tests/pk-crypto.scm b/tests/pk-crypto.scm deleted file mode 100644 index fe33a6f7b5..0000000000 --- a/tests/pk-crypto.scm +++ /dev/null @@ -1,290 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2017 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (test-pk-crypto) - #:use-module (guix pk-crypto) - #:use-module (guix utils) - #:use-module (guix base16) - #:use-module (guix hash) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-11) - #:use-module (srfi srfi-26) - #:use-module (srfi srfi-64) - #:use-module (rnrs bytevectors) - #:use-module (rnrs io ports) - #:use-module (ice-9 match)) - -;; Test the (guix pk-crypto) module. - -(define %key-pair - ;; RSA key pair that was generated with: - ;; (generate-key (string->canonical-sexp "(genkey (rsa (nbits 4:1024)))")) - ;; which takes a bit of time. - "(key-data - (public-key - (rsa - (n #00C1F764069F54FFE93A126B02328903E984E4AE3AF6DF402B5B6B3907911B88C385F1BA76A002EC9DEA109A5228EF0E62EE31A06D1A5861CAB474F6C857AC66EB65A1905F25BBA1869579E73A3B7FED13AF5A1667326F88CDFC2FF24B03C14FD1384AA7E73CA89572880B606E3A974E15347963FC7B6378574936A47580DBCB45#) - (e #010001#))) - (private-key - (rsa - (n #00C1F764069F54FFE93A126B02328903E984E4AE3AF6DF402B5B6B3907911B88C385F1BA76A002EC9DEA109A5228EF0E62EE31A06D1A5861CAB474F6C857AC66EB65A1905F25BBA1869579E73A3B7FED13AF5A1667326F88CDFC2FF24B03C14FD1384AA7E73CA89572880B606E3A974E15347963FC7B6378574936A47580DBCB45#) - (e #010001#) - (d #58CAD84653D0046A8EC3F9AA82D9C829B145422109FC3F12DA01A694B92FA296E70D366FB166454D30E632CEE3A033B4C41781BA10325F69FCDC0250CA19C8EEB352FA085992494098DB133E682ED38A931701F0DED1A1E508F4341A4FB446A04F019427C7CB3C44F251EEA9D386100DA80F125E0FD5CE1B0DFEC6D21516EACD#) - (p #00D47F185147EC39393CCDA4E7323FFC20FC8B8073E2A54DD63BA392A66975E4204CA48572496A9DFD7522436B852C07472A5AB25B7706F7C14E6F33FBC420FF3B#) - (q #00E9AD22F158060BC9AE3601DA623AFC60FFF3058795802CA92371C00097335CF9A23D7782DE353C9DBA93D7BB99E6A24A411107605E722481C5C191F80D7EB77F#) - (u #59B45B95AE01A7A7370FAFDB08FE73A4793CE37F228961B09B1B1E7DDAD9F8D3E28F5C5E8B4B067E6B8E0BBF3F690B42991A79E46108DDCDA2514323A66964DE#))))") - -(define %ecc-key-pair - ;; Ed25519 key pair generated with: - ;; (generate-key (string->canonical-sexp "(genkey (ecdsa (curve Ed25519) (flags rfc6979 transient)))")) - "(key-data - (public-key - (ecc - (curve Ed25519) - (q #94869C1B9E69DB8DD910B7F7F4D6E56A63A964A59AE8F90F6703ACDDF6F50C81#))) - (private-key - (ecc - (curve Ed25519) - (q #94869C1B9E69DB8DD910B7F7F4D6E56A63A964A59AE8F90F6703ACDDF6F50C81#) - (d #6EFB32D0B4EC6B3237B523539F1979379B82726AAA605EB2FBA6775B2B777B78#))))") - -(test-begin "pk-crypto") - -(test-assert "version" - (gcrypt-version)) - -(let ((sexps '("(foo bar)" - - ;; In Libgcrypt 1.5.3 the following integer is rendered as - ;; binary, whereas in 1.6.0 it's rendered as is (hexadecimal.) - ;;"#C0FFEE#" - - "(genkey \n (rsa \n (nbits \"1024\")\n )\n )"))) - (test-equal "string->canonical-sexp->string" - sexps - (let ((sexps (map string->canonical-sexp sexps))) - (and (every canonical-sexp? sexps) - (map (compose string-trim-both canonical-sexp->string) sexps))))) - -(gc) ; stress test! - -(let ((sexps `(("(foo bar)" foo -> "(foo bar)") - ("(foo (bar (baz 3:123)))" baz -> "(baz \"123\")") - ("(foo (bar 3:123))" baz -> #f)))) - (test-equal "find-sexp-token" - (map (match-lambda - ((_ _ '-> expected) - expected)) - sexps) - (map (match-lambda - ((input token '-> _) - (let ((sexp (find-sexp-token (string->canonical-sexp input) token))) - (and sexp - (string-trim-both (canonical-sexp->string sexp)))))) - sexps))) - -(gc) - -(test-equal "canonical-sexp-length" - '(0 1 2 4 0 0) - (map (compose canonical-sexp-length string->canonical-sexp) - '("()" "(a)" "(a b)" "(a #616263# b #C001#)" "a" "#123456#"))) - -(test-equal "canonical-sexp-list?" - '(#t #f #t #f) - (map (compose canonical-sexp-list? string->canonical-sexp) - '("()" "\"abc\"" "(a b c)" "#123456#"))) - -(gc) - -(test-equal "canonical-sexp-car + cdr" - '("(b \n (c xyz)\n )") - (let ((lst (string->canonical-sexp "(a (b (c xyz)))"))) - (map (lambda (sexp) - (and sexp (string-trim-both (canonical-sexp->string sexp)))) - ;; Note: 'car' returns #f when the first element is an atom. - (list (canonical-sexp-car (canonical-sexp-cdr lst)))))) - -(gc) - -(test-equal "canonical-sexp-nth" - '("(b pqr)" "(c \"456\")" "(d xyz)" #f #f) - - (let ((lst (string->canonical-sexp "(a (b 3:pqr) (c 3:456) (d 3:xyz))"))) - ;; XXX: In Libgcrypt 1.5.3, (canonical-sexp-nth lst 0) returns LST, whereas in - ;; 1.6.0 it returns #f. - (map (lambda (sexp) - (and sexp (string-trim-both (canonical-sexp->string sexp)))) - (unfold (cut > <> 5) - (cut canonical-sexp-nth lst <>) - 1+ - 1)))) - -(gc) - -(test-equal "canonical-sexp-nth-data" - `(Name Otto Meier #f ,(base16-string->bytevector "123456") #f) - (let ((lst (string->canonical-sexp - "(Name Otto Meier (address Burgplatz) #123456#)"))) - (unfold (cut > <> 5) - (cut canonical-sexp-nth-data lst <>) - 1+ - 0))) - -(let ((bv (base16-string->bytevector - "5eff0b55c9c5f5e87b4e34cd60a2d5654ca1eb78c7b3c67c3179fed1cff07b4c"))) - (test-equal "hash corrupt due to restrictive locale encoding" - bv - - ;; In Guix up to 0.6 included this test would fail because at some point - ;; the hash value would be cropped to ASCII. In practice 'guix - ;; authenticate' would produce invalid signatures that would fail - ;; signature verification. See . - (let ((locale (setlocale LC_ALL))) - (dynamic-wind - (lambda () - (setlocale LC_ALL "C")) - (lambda () - (hash-data->bytevector - (string->canonical-sexp - (canonical-sexp->string - (bytevector->hash-data bv "sha256"))))) - (lambda () - (setlocale LC_ALL locale)))))) - -(gc) - -;; XXX: The test below is typically too long as it needs to gather enough entropy. - -;; (test-assert "generate-key" -;; (let ((key (generate-key (string->canonical-sexp -;; "(genkey (rsa (nbits 3:128)))")))) -;; (and (canonical-sexp? key) -;; (find-sexp-token key 'key-data) -;; (find-sexp-token key 'public-key) -;; (find-sexp-token key 'private-key)))) - -(test-assert "bytevector->hash-data->bytevector" - (let* ((bv (sha256 (string->utf8 "Hello, world."))) - (data (bytevector->hash-data bv "sha256"))) - (and (canonical-sexp? data) - (let-values (((value algo) (hash-data->bytevector data))) - (and (string=? algo "sha256") - (bytevector=? value bv)))))) - -(test-equal "key-type" - '(rsa ecc) - (map (compose key-type - (cut find-sexp-token <> 'public-key) - string->canonical-sexp) - (list %key-pair %ecc-key-pair))) - -(test-assert "sign + verify" - (let* ((pair (string->canonical-sexp %key-pair)) - (secret (find-sexp-token pair 'private-key)) - (public (find-sexp-token pair 'public-key)) - (data (bytevector->hash-data - (sha256 (string->utf8 "Hello, world.")) - #:key-type (key-type public))) - (sig (sign data secret))) - (and (verify sig data public) - (not (verify sig - (bytevector->hash-data - (sha256 (string->utf8 "Hi!")) - #:key-type (key-type public)) - public))))) - -;; Ed25519 appeared in libgcrypt 1.6.0. -(test-skip (if (version>? (gcrypt-version) "1.6.0") 0 1)) -(test-assert "sign + verify, Ed25519" - (let* ((pair (string->canonical-sexp %ecc-key-pair)) - (secret (find-sexp-token pair 'private-key)) - (public (find-sexp-token pair 'public-key)) - (data (bytevector->hash-data - (sha256 (string->utf8 "Hello, world.")))) - (sig (sign data secret))) - (and (verify sig data public) - (not (verify sig - (bytevector->hash-data - (sha256 (string->utf8 "Hi!"))) - public))))) - -(gc) - -(test-equal "canonical-sexp->sexp" - `((data - (flags pkcs1) - (hash sha256 - ,(base16-string->bytevector - "2749f0ea9f26c6c7be746a9cff8fa4c2f2a02b000070dba78429e9a11f87c6eb"))) - - (public-key - (rsa - (n ,(base16-string->bytevector - (string-downcase - "00C1F764069F54FFE93A126B02328903E984E4AE3AF6DF402B5B6B3907911B88C385F1BA76A002EC9DEA109A5228EF0E62EE31A06D1A5861CAB474F6C857AC66EB65A1905F25BBA1869579E73A3B7FED13AF5A1667326F88CDFC2FF24B03C14FD1384AA7E73CA89572880B606E3A974E15347963FC7B6378574936A47580DBCB45"))) - (e ,(base16-string->bytevector - "010001"))))) - - (list (canonical-sexp->sexp - (string->canonical-sexp - "(data - (flags pkcs1) - (hash \"sha256\" - #2749f0ea9f26c6c7be746a9cff8fa4c2f2a02b000070dba78429e9a11f87c6eb#))")) - - (canonical-sexp->sexp - (find-sexp-token (string->canonical-sexp %key-pair) - 'public-key)))) - - -(let ((lst - `((data - (flags pkcs1) - (hash sha256 - ,(base16-string->bytevector - "2749f0ea9f26c6c7be746a9cff8fa4c2f2a02b000070dba78429e9a11f87c6eb"))) - - (public-key - (rsa - (n ,(base16-string->bytevector - (string-downcase - "00C1F764069F54FFE93A126B02328903E984E4AE3AF6DF402B5B6B3907911B88C385F1BA76A002EC9DEA109A5228EF0E62EE31A06D1A5861CAB474F6C857AC66EB65A1905F25BBA1869579E73A3B7FED13AF5A1667326F88CDFC2FF24B03C14FD1384AA7E73CA89572880B606E3A974E15347963FC7B6378574936A47580DBCB45"))) - (e ,(base16-string->bytevector - "010001")))) - - ,(base16-string->bytevector - "2749f0ea9f26c6c7be746a9cff8fa4c2f2a02b000070dba78429e9a11f87c6eb")))) - (test-equal "sexp->canonical-sexp->sexp" - lst - (map (compose canonical-sexp->sexp sexp->canonical-sexp) - lst))) - -(let ((sexp `(signature - (public-key - (rsa - (n ,(make-bytevector 1024 1)) - (e ,(base16-string->bytevector "010001"))))))) - (test-equal "https://bugs.g10code.com/gnupg/issue1594" - ;; The gcrypt bug above was primarily affecting our uses in - ;; 'canonical-sexp->sexp', typically when applied to a signature sexp (in - ;; 'guix authenticate -verify') with a "big" RSA key, such as 4096 bits. - sexp - (canonical-sexp->sexp (sexp->canonical-sexp sexp)))) - -(test-end) diff --git a/tests/pki.scm b/tests/pki.scm index 876ad98d73..d6a6b476c7 100644 --- a/tests/pki.scm +++ b/tests/pki.scm @@ -18,8 +18,8 @@ (define-module (test-pki) #:use-module (guix pki) - #:use-module (guix pk-crypto) - #:use-module (guix hash) + #:use-module (gcrypt pk-crypto) + #:use-module (gcrypt hash) #:use-module (rnrs io ports) #:use-module (srfi srfi-64)) diff --git a/tests/publish.scm b/tests/publish.scm index 1ed8308076..0e793c1ee5 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -25,7 +25,7 @@ #:use-module (guix tests) #:use-module (guix config) #:use-module (guix utils) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix store) #:use-module (guix derivations) #:use-module (guix gexp) @@ -33,7 +33,7 @@ #:use-module (guix base64) #:use-module ((guix records) #:select (recutils->alist)) #:use-module ((guix serialization) #:select (restore-file)) - #:use-module (guix pk-crypto) + #:use-module (gcrypt pk-crypto) #:use-module ((guix pki) #:select (%public-key-file %private-key-file)) #:use-module (guix zlib) #:use-module (web uri) diff --git a/tests/pypi.scm b/tests/pypi.scm index 310c6c8f29..616ec191f5 100644 --- a/tests/pypi.scm +++ b/tests/pypi.scm @@ -20,7 +20,7 @@ (define-module (test-pypi) #:use-module (guix import pypi) #:use-module (guix base32) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix tests) #:use-module (guix build-system python) #:use-module ((guix build utils) #:select (delete-file-recursively which)) diff --git a/tests/store-deduplication.scm b/tests/store-deduplication.scm index 4ca2ec0f61..e438aa84c6 100644 --- a/tests/store-deduplication.scm +++ b/tests/store-deduplication.scm @@ -19,7 +19,7 @@ (define-module (test-store-deduplication) #:use-module (guix tests) #:use-module (guix store deduplication) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module ((guix utils) #:select (call-with-temporary-directory)) #:use-module (guix build utils) #:use-module (rnrs bytevectors) diff --git a/tests/store.scm b/tests/store.scm index 47fab0df18..71ac57580e 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -21,7 +21,7 @@ #:use-module (guix store) #:use-module (guix utils) #:use-module (guix monads) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix base32) #:use-module (guix packages) #:use-module (guix derivations) diff --git a/tests/substitute.scm b/tests/substitute.scm index 0ad6247954..964a57f30b 100644 --- a/tests/substitute.scm +++ b/tests/substitute.scm @@ -20,9 +20,9 @@ (define-module (test-substitute) #:use-module (guix scripts substitute) #:use-module (guix base64) - #:use-module (guix hash) + #:use-module (gcrypt hash) #:use-module (guix serialization) - #:use-module (guix pk-crypto) + #:use-module (gcrypt pk-crypto) #:use-module (guix pki) #:use-module (guix config) #:use-module (guix base32) From 95681e55862991a5303449a4eb3961441b337033 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 4 Sep 2018 15:08:13 -0400 Subject: [PATCH 014/208] gnu: Zsh: Update to 5.6 [fixes CVE-2018-{0502,13259}]. * gnu/packages/shells.scm (zsh): Update to 5.6. [arguments]: Skip some tests. --- gnu/packages/shells.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 6dbe1c4db7..c3647221aa 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -292,7 +292,7 @@ history mechanism, job control and a C-like syntax.") (define-public zsh (package (name "zsh") - (version "5.5.1") + (version "5.6") (source (origin (method url-fetch) (uri (list (string-append @@ -303,7 +303,7 @@ history mechanism, job control and a C-like syntax.") ".tar.xz"))) (sha256 (base32 - "105aqkdfsdxc4531anrj2zis2ywz6icagjam9lsc235yzh48ihz1")))) + "1mp6h2452z2029n12mxipjv4b0cc8i8sb72g8p8jklg8275iysvl")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre") #:phases @@ -336,6 +336,11 @@ history mechanism, job control and a C-like syntax.") (("command -pv") "command -v") (("command -p") "command ") (("'command' -p") "'command' ")) + ;; Several of these tests fail spuriously in the Guix + ;; build environment due to assumptions about PATH and + ;; the location of the test files. It was easier to just + ;; skip them than try to make them work. + (delete-file "Test/A05execution.ztst") #t))))) (native-inputs `(("autoconf" ,autoconf))) (inputs `(("ncurses" ,ncurses) From fcf4841c0ee16631e8330d797cf3788dac0eca05 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 4 Sep 2018 18:33:06 -0400 Subject: [PATCH 015/208] gnu: Zsh: Patch some tests that began failing in 5.6. * gnu/packages/shells.scm (zsh)[arguments]: Patch the tests rather than deleting them. --- gnu/packages/shells.scm | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index c3647221aa..900c8ec686 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -336,11 +336,19 @@ history mechanism, job control and a C-like syntax.") (("command -pv") "command -v") (("command -p") "command ") (("'command' -p") "'command' ")) - ;; Several of these tests fail spuriously in the Guix - ;; build environment due to assumptions about PATH and - ;; the location of the test files. It was easier to just - ;; skip them than try to make them work. - (delete-file "Test/A05execution.ztst") + ;; This file is ISO-8859-1 encoded. + (with-fluids ((%default-port-encoding #f)) + (substitute* "Test/A05execution.ztst" + ;; Help it find `sh` + (("PATH=/bin:\\$\\{ZTST_testdir\\}/command.tmp/ tstcmd-slashless") + (string-append "PATH=/bin:" + (assoc-ref %build-inputs "bash") "/bin:" + "${ZTST_testdir}/command.tmp/ tstcmd-slashless")) + ;; Help it find `echo` + (("PATH=/bin:\\$\\{ZTST_testdir\\}/command.tmp tstcmd-arg") + (string-append "PATH=/bin:" + (assoc-ref %build-inputs "coreutils") "/bin:" + "PATH=/bin:${ZTST_testdir}/command.tmp tstcmd-arg")))) #t))))) (native-inputs `(("autoconf" ,autoconf))) (inputs `(("ncurses" ,ncurses) From fefe17b0888b467383ea91fed73a9586295c49f0 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Wed, 5 Sep 2018 10:19:25 +0200 Subject: [PATCH 016/208] gnu: dolphin-emu: Update to commit 5f0d825. * gnu/packages/emulators.scm (dolphin-emu): Update to commit 5f0d825. --- gnu/packages/emulators.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 8e68c676ef..e02339af62 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -117,8 +117,8 @@ ;; Building from recent Git because the official 5.0 release no longer builds. (define-public dolphin-emu - (let ((commit "806c1ee8f0ed824008185212bfab2658d400b576") - (revision "2")) + (let ((commit "5f0d825f40b8aabe13eaef32d44ab667ff8e8c28") + (revision "3")) (package (name "dolphin-emu") (version (git-version "5.0" revision commit)) @@ -144,7 +144,7 @@ #t)) (sha256 (base32 - "1sdc7rh6z7gjx4kxg18jrv7srfpx1vgf936zg5y43radnlscrh1j")))) + "0dh7mih16aif9ynbgcsn7n10f89g8d232i86xqfp2rijsdggcmzl")))) (build-system cmake-build-system) (arguments '(#:tests? #f From ca1dc4c76a81d289360c0601fed16a7852833d9b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 11:44:15 +0200 Subject: [PATCH 017/208] gnu: nss-pam-ldapd: Update to 0.9.10. * gnu/packages/openldap.scm (nss-pam-ldapd): Update to 0.9.10. --- gnu/packages/openldap.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index 12964e302a..4b615b5d32 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -108,14 +108,14 @@ (define-public nss-pam-ldapd (package (name "nss-pam-ldapd") - (version "0.9.9") + (version "0.9.10") (source (origin (method url-fetch) (uri (string-append "https://arthurdejong.org/nss-pam-ldapd/" "nss-pam-ldapd-" version ".tar.gz")) (sha256 (base32 - "1lj7qkjlg3bshwdc5x5r1ny37rly4wgm1c8b6w6b5f4wa11nmji0")))) + "1cqamcr6qpgwxijlr6kg7jspjamjra8w0haan0qssn0yxn95d7c0")))) (build-system gnu-build-system) (arguments `(#:configure-flags From 0d7974c376c4b84dd26096ba0c53ed2535afcbc9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 11:07:26 +0200 Subject: [PATCH 018/208] gnu: libbigwig: Update to 0.4.2. * gnu/packages/bioinformatics.scm (libbigwig): Update to 0.4.2. [source]: Fetch from git. [arguments]: Disable tests; remove build phases "disable-curl-test" and "create-target-dirs". [native-inputs]: Add python-2. --- gnu/packages/bioinformatics.scm | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index f60fc4c84c..7f865ae878 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1887,42 +1887,33 @@ other types of unwanted sequence from high-throughput sequencing reads.") (define-public libbigwig (package (name "libbigwig") - (version "0.1.4") + (version "0.4.2") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/dpryan79/libBigWig/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/dpryan79/libBigWig.git") + (commit version))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "098rjh35pi4a9q83n8wiwvyzykjqj6l8q189p1xgfw4ghywdlvw1")))) + "0h2smg24v5srdcqzrmz2g23cmlp4va465mgx8r2z571sfz8pv454")))) (build-system gnu-build-system) (arguments `(#:test-target "test" + #:tests? #f ; tests require access to the web #:make-flags (list "CC=gcc" (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (delete 'configure) - (add-before 'check 'disable-curl-test - (lambda _ - (substitute* "Makefile" - (("./test/testRemote.*") "")) - #t)) - ;; This has been fixed with the upstream commit 4ff6959cd8a0, but - ;; there has not yet been a release containing this change. - (add-before 'install 'create-target-dirs - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/lib")) - (mkdir-p (string-append out "/include")) - #t)))))) + (delete 'configure)))) (inputs `(("zlib" ,zlib) ("curl" ,curl))) (native-inputs - `(("doxygen" ,doxygen))) + `(("doxygen" ,doxygen) + ;; Need for tests + ("python" ,python-2))) (home-page "https://github.com/dpryan79/libBigWig") (synopsis "C library for handling bigWig files") (description From 8afdeb87518f09383d93cf0dc9b86bde237ba561 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 11:08:25 +0200 Subject: [PATCH 019/208] gnu: python-pybigwig: Update to 0.3.12. * gnu/packages/bioinformatics.scm (python-pybigwig): Update to 0.3.12. [propagated-inputs]: Add python-numpy. --- gnu/packages/bioinformatics.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 7f865ae878..05d516165e 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1924,13 +1924,13 @@ files.") (define-public python-pybigwig (package (name "python-pybigwig") - (version "0.2.5") + (version "0.3.12") (source (origin (method url-fetch) (uri (pypi-uri "pyBigWig" version)) (sha256 (base32 - "0yrpdxg3y0sny25x4w22lv1k47jzccqjmg7j4bp0hywklvp0hg7d")) + "00w4kfnm2c5l7wdwr2nj1z5djv8kzgf7h1zhsgv6njff1rwr26g0")) (modules '((guix build utils))) (snippet '(begin @@ -1946,6 +1946,8 @@ files.") (substitute* "setup.py" (("libs=\\[") "libs=[\"BigWig\", ")) #t))))) + (propagated-inputs + `(("python-numpy" ,python-numpy))) (inputs `(("libbigwig" ,libbigwig) ("zlib" ,zlib) From 4fd2622df8615ce3e4d081124bee824315f00f85 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 11:09:01 +0200 Subject: [PATCH 020/208] gnu: python-tables: Update to 3.4.4. * gnu/packages/python.scm (python-tables): Update to 3.4.4. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8cf5550f81..8c7c9d3c33 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6297,14 +6297,14 @@ printing of sub-tables by specifying a row range.") (define-public python-tables (package (name "python-tables") - (version "3.2.2") + (version "3.4.4") (source (origin (method url-fetch) (uri (pypi-uri "tables" version)) (sha256 (base32 - "117s6w7s3yxafpmf3zz3svana7xfrsviw01va1xp7h8ylx8v6r1m")) + "0affz7k8babh8wdmsgrz5jxrd569by2w8ffimcxs9wiaf5rw1idx")) (modules '((guix build utils))) (snippet '(begin From 030f1367f055720034cb178e50fd5d4c6ff371b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Sep 2018 10:35:43 +0200 Subject: [PATCH 021/208] channels: Add 'latest-channel-derivation' convenience procedure. * guix/channels.scm (latest-channel-derivations): Remove. (latest-channel-instances*, latest-channel-derivation): New procedures. --- guix/channels.scm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index ec3e05eaf5..794383fe22 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -48,7 +48,7 @@ latest-channel-instances channel-instance-derivations - latest-channel-derivations + latest-channel-derivation channel-instances->manifest)) ;;; Commentary: @@ -216,14 +216,6 @@ INSTANCES." (list core)))) instances))) -(define latest-channel-derivations - (let ((latest-channel-instances (store-lift latest-channel-instances))) - (lambda (channels) - "Return, as a monadic value, the list of derivations for the latest -instances of CHANNELS." - (mlet %store-monad ((instances (latest-channel-instances channels))) - (channel-instance-derivations instances))))) - (define (whole-package-for-legacy name modules) "Return a full-blown Guix package for MODULES, a derivation that builds Guix modules in the old ~/.config/guix/latest style." @@ -290,3 +282,14 @@ channel instances." (entries (mapm %store-monad instance->entry (zip instances derivations)))) (return (manifest entries)))) + +(define latest-channel-instances* + (store-lift latest-channel-instances)) + +(define* (latest-channel-derivation #:optional (channels %default-channels)) + "Return as a monadic value the derivation that builds the profile for the +latest instances of CHANNELS." + (mlet* %store-monad ((instances ((store-lift latest-channel-instances) + channels)) + (manifest (channel-instances->manifest instances))) + (profile-derivation manifest))) From 185948b8a83f583135de050698cff983e46c8145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Sep 2018 13:57:43 +0200 Subject: [PATCH 022/208] gnu: xorg: Fix typo. * gnu/packages/xorg.scm: Fix typo in Benjamin's email address. --- gnu/packages/xorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index c89661272b..30e46fac7c 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -17,7 +17,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Kei Kebreau ;;; Copyright © 2018 Oleg Pykhalov -;;; Copyright © 2018 Benjamin Slade +;;; Copyright © 2018 Benjamin Slade ;;; ;;; This file is part of GNU Guix. ;;; From 3d43017026f9995ad128915db8ca5eafe061bf75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Sep 2018 13:58:07 +0200 Subject: [PATCH 023/208] tests: Adjust 'add-file-tree-to-store' test for lack of /bin/sh. * tests/store.scm (%shell): New variable. ("add-file-tree-to-store"): Use it instead of "/bin/sh". This fixes builds in the chroot build environment. --- tests/store.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/store.scm b/tests/store.scm index 71ac57580e..2858369706 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -45,6 +45,9 @@ (define %store (open-connection-for-tests)) +(define %shell + (or (getenv "SHELL") (getenv "CONFIG_SHELL"))) + (test-begin "store") @@ -220,7 +223,8 @@ ("./foo/c" directory #t) ("./foo/c/p" regular "file p") ("./foo/c/q" directory #t) - ("./foo/c/q/x" regular "#!/bin/sh\nexit 42") + ("./foo/c/q/x" regular + ,(string-append "#!" %shell "\nexit 42")) ("./foo/c/q/y" symlink "..") ("./foo/c/q/z" directory #t)) (let* ((tree `("file-tree" directory @@ -231,7 +235,7 @@ ("p" regular (data ,(string->utf8 "file p"))) ("q" directory ("x" executable - (data "#!/bin/sh\nexit 42")) + (data ,(string-append "#!" %shell "\nexit 42"))) ("y" symlink "..") ("z" directory)))) ("bar" directory))) From 53166aec987957efba917c83f093817d6cf6e943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Sep 2018 14:31:48 +0200 Subject: [PATCH 024/208] gnu: guix: Update to 3d43017. * gnu/packages/package-management.scm (guix): Update to 3d43017. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index e40a94a844..b0941b50de 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -101,8 +101,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.15.0") - (commit "8bbb79cf95a07a40950448a8a09d888254404ed4") - (revision 2)) + (commit "3d43017026f9995ad128915db8ca5eafe061bf75") + (revision 3)) (package (name "guix") @@ -118,7 +118,7 @@ (commit commit))) (sha256 (base32 - "0h83l91v2cg9bb78c7vqx9wj71ckz22jbjmm2fy4vqs9216jnvc0")) + "167rzz2h33xmmchkplwzfq94s5jwdn5nabsq2lb84s54ps0sm89m")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments From 998100e6e8be64d4cc14e6509f744d3f5c37cf27 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Wed, 5 Sep 2018 02:10:48 +0800 Subject: [PATCH 025/208] gnu: eyed3: Update home page. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mp3.scm (eyed3)[home-page]: Update to redirected HTTPS URL. Signed-off-by: 宋文武 --- gnu/packages/mp3.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 579127d06e..fb919c6e6c 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -491,7 +491,7 @@ specifically mp3 files containing ID3 metadata (i.e. song info). It provides a command-line tool (eyeD3) and a Python library (import eyed3) that can be used to write your own applications or plugins that are callable from the command-line tool.") - (home-page "http://eyed3.nicfit.net/") + (home-page "https://eyed3.readthedocs.io/en/latest/") (license license:gpl2+))) (define-public chromaprint From 296f091b4879679cf970e1526d919c671c80a473 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Wed, 5 Sep 2018 02:16:53 +0800 Subject: [PATCH 026/208] gnu: packages: mp3: Use HTTPS where possible. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mp3.scm (libmad)[home-page]: Use HTTPS. (libid3tag)[home-page]: Likewise. (mp3info)[source, home-page]: Likewise. (mpg123)[source]: Likewise. (libmpcdec)[source, home-page]: Likewise. Signed-off-by: 宋文武 --- gnu/packages/mp3.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index fb919c6e6c..c9effbafa3 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -84,7 +84,7 @@ fully implemented. This package contains the library.") (license license:gpl2+) - (home-page "http://www.underbit.com/products/mad/"))) + (home-page "https://www.underbit.com/products/mad/"))) (define-public libid3tag (package @@ -105,7 +105,7 @@ This package contains the library.") "Libid3tag is a library for reading ID3 tags, both ID3v1 and the various versions of ID3v2.") (license license:gpl2+) - (home-page "http://www.underbit.com/products/mad/"))) + (home-page "https://www.underbit.com/products/mad/"))) (define-public id3lib (package @@ -184,7 +184,7 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.") (source (origin (method url-fetch) (uri (string-append - "http://ibiblio.org" + "https://ibiblio.org" "/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-" version ".tgz")) (sha256 @@ -231,7 +231,7 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.") (inputs `(("gtk+" ,gtk+-2) ("ncurses" ,ncurses))) - (home-page "http://www.ibiblio.org/mp3info/") + (home-page "https://www.ibiblio.org/mp3info/") (synopsis "MP3 technical info viewer and ID3 1.x tag editor") (description "MP3Info is a little utility used to read and modify the ID3 tags of MP3 @@ -309,7 +309,7 @@ This package contains the binary.") (uri (list (string-append "mirror://sourceforge/mpg123/mpg123/" version "/mpg123-" version ".tar.bz2") (string-append - "http://www.mpg123.org/download/mpg123-" + "https://www.mpg123.org/download/mpg123-" version ".tar.bz2"))) (sha256 (base32 @@ -413,7 +413,7 @@ for album and track information.") (source (origin (method url-fetch) (uri (string-append - "http://files.musepack.net/source/libmpcdec-" + "https://files.musepack.net/source/libmpcdec-" version ".tar.bz2")) (sha256 (base32 @@ -424,7 +424,7 @@ for album and track information.") "This library supports decoding of the Musepack (MPC) audio compression format.") (license license:bsd-3) - (home-page "http://musepack.net"))) + (home-page "https://musepack.net"))) (define-public mpc123 (package From b26e4f26ff0bfede3dc17db48dce2936ecd0c129 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 31 Jul 2018 11:04:19 -0500 Subject: [PATCH 027/208] gnu: Add SUNDIALS. * gnu/packages/maths.scm (sundials, sundials-openmpi): New variables. --- gnu/packages/maths.scm | 77 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 42136f65ea..c6bcec844b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -4042,3 +4042,80 @@ terminal do calculations simply and quickly. The formula to be calculated can be fed to @command{tcalc} through the command line.") (home-page "https://sites.google.com/site/mohammedisam2000/tcalc") (license license:gpl3+))) + +(define-public sundials + (package + (name "sundials") + (version "3.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://computation.llnl.gov/projects/sundials/download/" + "sundials-" version ".tar.gz")) + (sha256 + (base32 + "090s8ymhd0g1s1d44fa73r5yi32hb4biwahhbfi327zd64yn8kd2")))) + (build-system cmake-build-system) + (native-inputs + `(("python" ,python-2))) ;for tests; syntax incompatible with python 3 + (inputs + `(("fortran" ,gfortran) ;for fcmix + ("blas" ,openblas) + ("suitesparse" ,suitesparse))) ;TODO: Add hypre + (arguments + `(#:configure-flags `("-DEXAMPLES_ENABLE_C:BOOL=ON" + "-DEXAMPLES_ENABLE_CXX:BOOL=ON" + "-DEXAMPLES_ENABLE_F77:BOOL=ON" + "-DEXAMPLES_ENABLE_F90:BOOL=ON" + "-DEXAMPLES_INSTALL:BOOL=OFF" + + "-DFCMIX_ENABLE:BOOL=ON" + + "-DKLU_ENABLE:BOOL=ON" + ,(string-append "-DKLU_INCLUDE_DIR=" + (assoc-ref %build-inputs "suitesparse") + "/include") + ,(string-append "-DKLU_LIBRARY_DIR=" + (assoc-ref %build-inputs "suitesparse") + "/lib")))) + (home-page "https://computation.llnl.gov/projects/sundials") + (synopsis "Suite of nonlinear and differential/algebraic equation solvers") + (description "SUNDIALS is a family of software packages implemented with +the goal of providing robust time integrators and nonlinear solvers that can +easily be incorporated into existing simulation codes.") + (license license:bsd-3))) + +(define-public sundials-openmpi + (package (inherit sundials) + (name "sundials-openmpi") + (inputs + `(("mpi" ,openmpi) + ("petsc" ,petsc-openmpi) ;support in SUNDIALS requires MPI + ,@(package-inputs sundials))) + (arguments + (substitute-keyword-arguments (package-arguments sundials) + ((#:configure-flags flags '()) + `(cons* "-DMPI_ENABLE:BOOL=ON" + "-DPETSC_ENABLE:BOOL=ON" + (string-append "-DPETSC_INCLUDE_DIR=" + (assoc-ref %build-inputs "petsc") + "/include") + (string-append "-DPETSC_LIBRARY_DIR=" + (assoc-ref %build-inputs "petsc") + "/lib") + ,flags)) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-before 'check 'set-test-environment + (lambda _ + ;; By default, running the test suite would fail because 'ssh' + ;; could not be found in $PATH. Define this variable to + ;; placate Open MPI without adding a dependency on OpenSSH (the + ;; agent isn't used anyway.) + (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) + ;; Allow oversubscription in case there are less + ;; physical cores available in the build environment + ;; than SUNDIALS wants while testing. + (setenv "OMPI_MCA_rmaps_base_oversubscribe" "yes") + #t)))))) + (synopsis "SUNDIALS with OpenMPI support"))) From a3a99e27bb727b0407da13955ef47566a1919629 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 31 Jul 2018 11:31:59 -0500 Subject: [PATCH 028/208] petsc: Move example code to "examples" output. * gnu/packages/maths.scm (petsc)[arguments]: New 'move-examples' phase. --- gnu/packages/maths.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index c6bcec844b..ba39531bdb 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1589,6 +1589,8 @@ September 2004}") "petsc-lite-" version ".tar.gz")) (sha256 (base32 "1lajbk3c29hnh83v6cbmm3a8wv6bdykh0p70kwrr4vrnizalk88s")))) + (outputs '("out" ;libraries and headers + "examples")) ;~24MiB of examples (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) @@ -1662,6 +1664,15 @@ September 2004}") "PETScBuildInternal.cmake" ;; Once installed, should uninstall with Guix "uninstall.py")) + #t))) + (add-after 'install 'move-examples + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (examples (assoc-ref outputs "examples")) + (exdir (string-append out "/share/petsc/examples")) + (exdir' (string-append examples "/share/petsc/examples"))) + (copy-recursively exdir exdir') + (delete-file-recursively exdir) #t)))))) (home-page "http://www.mcs.anl.gov/petsc") (synopsis "Library to solve PDEs") From c15be1280e103c781f8c57bb621e92124e8e2cc5 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 31 Jul 2018 11:32:57 -0500 Subject: [PATCH 029/208] petsc: Upgrade to 3.9.3. * gnu/packages/maths.scm (petsc): Upgrade to 3.9.3. [arguments]: Remove unnecessary configure flags. --- gnu/packages/maths.scm | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ba39531bdb..ef20f239e5 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1580,7 +1580,7 @@ September 2004}") (define-public petsc (package (name "petsc") - (version "3.8.0") + (version "3.9.3") (source (origin (method url-fetch) @@ -1588,9 +1588,9 @@ September 2004}") (uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/" "petsc-lite-" version ".tar.gz")) (sha256 - (base32 "1lajbk3c29hnh83v6cbmm3a8wv6bdykh0p70kwrr4vrnizalk88s")))) + (base32 "1fwkbwv4g7zf2lc8fw865xd0bl9anb6jaczfis5dff7h449gwa48")))) (outputs '("out" ;libraries and headers - "examples")) ;~24MiB of examples + "examples")) ;~30MiB of examples (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) @@ -1607,11 +1607,7 @@ September 2004}") #:configure-flags `("--with-mpi=0" "--with-openmp=1" - "--with-superlu=1" - ,(string-append "--with-superlu-include=" - (assoc-ref %build-inputs "superlu") "/include") - ,(string-append "--with-superlu-lib=" - (assoc-ref %build-inputs "superlu") "/lib/libsuperlu.a")) + "--with-superlu=1") #:make-flags ;; Honor (parallel-job-count) for build. Do not use --with-make-np, ;; whose value is dumped to $out/lib/petsc/conf/petscvariables. From 3f5e6ccf9be46381b21f63638f89853ee81bfb64 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 31 Jul 2018 12:14:54 -0500 Subject: [PATCH 030/208] slepc: Upgrade to 3.9.2. * gnu/packages/maths.scm (slepc): Upgrade to 3.9.2. --- 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 ef20f239e5..d2b9df01a7 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1760,7 +1760,7 @@ savings are consistently > 5x.") (define-public slepc (package (name "slepc") - (version "3.8.2") + (version "3.9.2") (source (origin (method url-fetch) @@ -1768,7 +1768,7 @@ savings are consistently > 5x.") version ".tar.gz")) (sha256 (base32 - "04zd48p43rnvg68p6cp28zll0px5whglc5v0sc3s6vdj1v920z8y")))) + "0gmhdqac8zm3jx43h935z7bflazjnpvqxjv4jh5za2y1z2rqax94")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) From 5e3082df1c8eb07f7c7cd02f118cd9975eb32bb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Sep 2018 15:33:25 +0200 Subject: [PATCH 031/208] =?UTF-8?q?gnu:=20guile-fibers:=20Install=20.go=20?= =?UTF-8?q?files=20to=20"=E2=80=A6/site-ccache".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/guile.scm (guile-fibers)[arguments]: New field. --- gnu/packages/guile.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index a585dd6dc8..f594cd13ed 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1817,6 +1817,20 @@ Note that 8sync is only available for Guile 2.2.") (base32 "0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0")))) (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'install 'mode-guile-objects + (lambda* (#:key outputs #:allow-other-keys) + ;; .go files are installed to "lib/guile/X.Y/cache". + ;; This phase moves them to "…/site-ccache". + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib/guile")) + (old (car (find-files lib "^ccache$" + #:directories? #t))) + (new (string-append (dirname old) + "/site-ccache"))) + (rename-file old new) + #t)))))) (native-inputs `(("texinfo" ,texinfo) ("pkg-config" ,pkg-config))) From 7903f00a74871ac4ecd41878ac9846fdae91e276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Sep 2018 14:46:28 +0200 Subject: [PATCH 032/208] gnu: cuirass: Add dependency on Guile-Gcrypt. This is a followup to 53166aec987957efba917c83f093817d6cf6e943, which added a hard dependency of Guix on Guile-Gcrypt. * gnu/packages/ci.scm (cuirass)[inputs]: Add GUILE-GCRYPT. [arguments]: In 'wrap-program' phase, use 'string-join' to compute 'mods'. Define 'objs' for use in GUILE_LOAD_COMPILED_PATH, and take objects from lib/guile/X.Y/site-ccache. --- gnu/packages/ci.scm | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index e26983da3b..067a288004 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -32,6 +32,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages guile) + #:use-module (gnu packages gnupg) #:use-module (gnu packages mail) #:use-module (gnu packages package-management) #:use-module (gnu packages perl) @@ -223,39 +224,42 @@ their dependencies.") (lambda* (#:key inputs outputs #:allow-other-keys) ;; Wrap the 'cuirass' command to refer to the right modules. (let* ((out (assoc-ref outputs "out")) + (gcrypt (assoc-ref inputs "guile-gcrypt")) (json (assoc-ref inputs "guile-json")) (sqlite (assoc-ref inputs "guile-sqlite3")) (git (assoc-ref inputs "guile-git")) (bytes (assoc-ref inputs "guile-bytestructures")) (fibers (assoc-ref inputs "guile-fibers")) (guix (assoc-ref inputs "guix")) + (deps (list gcrypt json sqlite git bytes fibers guix)) (guile (assoc-ref %build-inputs "guile")) (effective (read-line (open-pipe* OPEN_READ (string-append guile "/bin/guile") "-c" "(display (effective-version))"))) - (mods (string-append json "/share/guile/site/" - effective ":" - git "/share/guile/site/" - effective ":" - bytes "/share/guile/site/" - effective ":" - sqlite "/share/guile/site/" - effective ":" - fibers "/share/guile/site/" - effective ":" - guix "/share/guile/site/" - effective))) + (mods (string-drop-right ;drop trailing colon + (string-join deps + (string-append "/share/guile/site/" + effective ":") + 'suffix) + 1)) + (objs (string-drop-right + (string-join deps + (string-append "/lib/guile/" effective + "/site-ccache:") + 'suffix) + 1))) ;; Make sure 'cuirass' can find the 'evaluate' command, as ;; well as the relevant Guile modules. (wrap-program (string-append out "/bin/cuirass") `("PATH" ":" prefix (,(string-append out "/bin"))) `("GUILE_LOAD_PATH" ":" prefix (,mods)) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,mods))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs))) #t)))))) (inputs `(("guile" ,guile-2.2) ("guile-fibers" ,guile-fibers) + ("guile-gcrypt" ,guile-gcrypt) ("guile-json" ,guile-json) ("guile-sqlite3" ,guile-sqlite3) ("guile-git" ,guile-git) From 3b0153bd828f68804f7226ca655d26aaa1a0c065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Sep 2018 15:48:04 +0200 Subject: [PATCH 033/208] gnu: guix-daemon: Add dependency on Guile-Gcrypt. This is a followup to 53166aec987957efba917c83f093817d6cf6e943, which made Guile-Gcrypt a hard dependency. * gnu/packages/package-management.scm (guix-daemon)[inputs]: Add GUILE-GCRYPT. --- gnu/packages/package-management.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index b0941b50de..529d2943c4 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -317,6 +317,7 @@ the Nix package manager.") (inputs `(("gnutls" ,gnutls) ("guile-git" ,guile-git) + ("guile-gcrypt" ,guile-gcrypt) ,@(fold alist-delete (package-inputs guix) '("boot-guile" "boot-guile/i686" "util-linux")))) From 356230da4a77eef1345e4b2079db7020df98cdc6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 12:26:56 +0200 Subject: [PATCH 034/208] gnu: Add r-fansi. * gnu/packages/cran.scm (r-fansi): New variable. --- gnu/packages/cran.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 016d1b1e41..be64aa3a98 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4424,6 +4424,27 @@ packages. It contains also functions for simplifying some clustering analysis steps and provides ggplot2-based elegant data visualization.") (license license:gpl2))) +(define-public r-fansi + (package + (name "r-fansi") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "fansi" version)) + (sha256 + (base32 + "135qj7bcc3mwn0vg55hiiadf66lx6zaxvkicfmfw9x0zr7ah2r6x")))) + (build-system r-build-system) + (native-inputs + `(("r-knitr" ,r-knitr))) ; for vignettes + (home-page "https://github.com/brodieG/fansi") + (synopsis "ANSI control sequence aware string functions") + (description + "This package provides counterparts to R string manipulation functions +that account for the effects of ANSI text formatting control sequences.") + (license license:gpl2+))) + (define-public r-nbclust (package (name "r-nbclust") From 53718658d20388f47fcf3747264f454c944c451e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 12:56:40 +0200 Subject: [PATCH 035/208] gnu: Add r-polynom. * gnu/packages/cran.scm (r-polynom): New variable. --- gnu/packages/cran.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index be64aa3a98..a142e9f1c7 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4516,6 +4516,25 @@ patterned after functions in the Python @code{itertools} module, and others patterned after functions in the snow package.") (license license:gpl2))) +(define-public r-polynom + (package + (name "r-polynom") + (version "1.3-9") + (source + (origin + (method url-fetch) + (uri (cran-uri "polynom" version)) + (sha256 + (base32 + "1s4xxv5rvpigawknvq27v9vzvs83phfsj5h8mim2lmf5bj950nnk")))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/polynom/") + (synopsis "Functions for univariate polynomial manipulations") + (description + "This package provides a collection of functions to implement a class for +univariate polynomial manipulations.") + (license license:gpl2))) + (define-public r-writexl (package (name "r-writexl") From dd954dd7436b47494c8708cefd0856bf6719ac68 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:38:39 +0200 Subject: [PATCH 036/208] gnu: Add r-gbrd. * gnu/packages/cran.scm (r-gbrd): New variable. --- gnu/packages/cran.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index a142e9f1c7..64dba2c9de 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4535,6 +4535,27 @@ patterned after functions in the snow package.") univariate polynomial manipulations.") (license license:gpl2))) +(define-public r-gbrd + (package + (name "r-gbrd") + (version "0.4-11") + (source + (origin + (method url-fetch) + (uri (cran-uri "gbRd" version)) + (sha256 + (base32 + "06x97rw5i6v6cgjxkfhxnw4dn7lghn5q6ra7ri5ag1x9dkfzcl82")))) + (properties `((upstream-name . "gbRd"))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/gbRd/") + (synopsis "Utilities for processing Rd objects and files") + (description + "This package provides utilities for processing Rd objects and files. +Extract argument descriptions and other parts of the help pages of +functions.") + (license license:gpl2+))) + (define-public r-writexl (package (name "r-writexl") From 6a8469755cd63a2fd9deb617962bff22f8542485 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:38:51 +0200 Subject: [PATCH 037/208] gnu: Add r-rdpack. * gnu/packages/cran.scm (r-rdpack): New variable. --- gnu/packages/cran.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 64dba2c9de..f09bdbd06f 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4556,6 +4556,33 @@ Extract argument descriptions and other parts of the help pages of functions.") (license license:gpl2+))) +(define-public r-rdpack + (package + (name "r-rdpack") + (version "0.9-0") + (source + (origin + (method url-fetch) + (uri (cran-uri "Rdpack" version)) + (sha256 + (base32 + "067w0w6kza0hkzcnx58danl83yfvl9yjacr47mnid2bg856gdd1b")))) + (properties `((upstream-name . "Rdpack"))) + (build-system r-build-system) + (propagated-inputs + `(("r-bibtex" ,r-bibtex) + ("r-gbrd" ,r-gbrd))) + (home-page "https://github.com/GeoBosh/Rdpack") + (synopsis "Update and manipulate Rd documentation objects") + (description + "This package provides functions for manipulation of R documentation +objects, including functions @code{reprompt()} and @code{ereprompt()} for +updating Rd documentation for functions, methods and classes; it also includes +Rd macros for citations and import of references from bibtex files for use in +Rd files and roxygen2 comments, as well as many functions for manipulation of +references and Rd files.") + (license license:gpl2+))) + (define-public r-writexl (package (name "r-writexl") From 88e4ed55d68ffeaf67e5dad128f0e762e5814d26 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:41:11 +0200 Subject: [PATCH 038/208] gnu: Add r-clipr. * gnu/packages/cran.scm (r-clipr): New variable. --- gnu/packages/cran.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index f09bdbd06f..2082378aae 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -43,6 +43,25 @@ #:use-module (gnu packages tls) #:use-module (gnu packages web)) +(define-public r-clipr + (package + (name "r-clipr") + (version "0.4.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "clipr" version)) + (sha256 + (base32 + "061x84ildc7g1p91yw5iyj8lpqdf4hqv36as85lw8c6qv9ywbsqv")))) + (build-system r-build-system) + (home-page "https://github.com/mdlincoln/clipr") + (synopsis "Read and write from the system clipboard") + (description + "This package provides simple utility functions to read from and write to +the system clipboards.") + (license license:gpl3))) + (define-public r-tidyverse (package (name "r-tidyverse") From 65050163e01d40d197f57748dc82072026676445 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:42:00 +0200 Subject: [PATCH 039/208] gnu: r-chippeakanno: Update to 3.14.1. * gnu/packages/bioconductor.scm (r-chippeakanno): Update to 3.14.1. --- gnu/packages/bioconductor.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 7e993189d6..1ff86779e8 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -363,14 +363,14 @@ expressed genes in DNA microarray experiments.") (define-public r-chippeakanno (package (name "r-chippeakanno") - (version "3.14.0") + (version "3.14.1") (source (origin (method url-fetch) (uri (bioconductor-uri "ChIPpeakAnno" version)) (sha256 (base32 - "1kcnc3cnmrhdk1x7q3y6zsz09pgd3xn9xy1hfbxz48cajlb18ad0")))) + "1cn1hfc3nvsf2n3563lkmvwjxfbiygx7f84zk683p89gy7zi1gyj")))) (properties `((upstream-name . "ChIPpeakAnno"))) (build-system r-build-system) (propagated-inputs From ce0e762bf926bcd6f126466c3556a820833621ba Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:44:42 +0200 Subject: [PATCH 040/208] gnu: r-annotationforge: Update to 1.22.2. * gnu/packages/bioinformatics.scm (r-annotationforge): Update to 1.22.2. --- 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 05d516165e..6028311b3c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6371,14 +6371,14 @@ exploration of the results.") (define-public r-annotationforge (package (name "r-annotationforge") - (version "1.22.0") + (version "1.22.2") (source (origin (method url-fetch) (uri (bioconductor-uri "AnnotationForge" version)) (sha256 (base32 - "12ffj7h95adiya5mzyjxazqn1qgr434ajpabfcyhrj5v83s4vk65")))) + "17kmy7nvpyyj6w5jyrjciw87rydmmmc8q6cnwqjv1j7li9bp09gr")))) (properties `((upstream-name . "AnnotationForge"))) (build-system r-build-system) From 3c0437561401986d90de358a8d5fae50d6593261 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:46:03 +0200 Subject: [PATCH 041/208] gnu: r-biocviews: Update to 1.48.3. * gnu/packages/bioinformatics.scm (r-biocviews): Update to 1.48.3. --- 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 6028311b3c..e900bd6194 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6957,13 +6957,13 @@ Bioconductor, CRAN, and Github.") (define-public r-biocviews (package (name "r-biocviews") - (version "1.48.2") + (version "1.48.3") (source (origin (method url-fetch) (uri (bioconductor-uri "biocViews" version)) (sha256 (base32 - "01yiafayl1m5704xdd2cn3zjc78rs10dqyz66lr3qkf6d8w66938")))) + "1rxvwikqivsgxjjcazlszy8xgz346lfh5rw4llxw6fz38fjgb0k5")))) (properties `((upstream-name . "biocViews"))) (build-system r-build-system) From 5728d9c6c081b7a0eeb6d29ec221d4638f6dd083 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:46:20 +0200 Subject: [PATCH 042/208] gnu: r-iranges: Update to 2.14.11. * gnu/packages/bioinformatics.scm (r-iranges): Update to 2.14.11. --- 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 e900bd6194..5aec3cc6ae 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7176,13 +7176,13 @@ utilities for sequence data management under the ACNUC system.") (define-public r-iranges (package (name "r-iranges") - (version "2.14.10") + (version "2.14.11") (source (origin (method url-fetch) (uri (bioconductor-uri "IRanges" version)) (sha256 (base32 - "10ccw930vfmkskkrzbps14xglqlkxf588623dr7f1a9ckx7yr2p6")))) + "0wz63hysspyjihqadg91dbvllc5a61zzjrsz0b9498lihqc6m1la")))) (properties `((upstream-name . "IRanges"))) (build-system r-build-system) From 1adf4596a6d268c3d2a249d235569631f8df306f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:48:36 +0200 Subject: [PATCH 043/208] gnu: r-edger: Update to 3.22.3. * gnu/packages/bioinformatics.scm (r-edger): Update to 3.22.3. --- 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 5aec3cc6ae..b6b6e7267c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7256,13 +7256,13 @@ names in their natural, rather than lexicographic, order.") (define-public r-edger (package (name "r-edger") - (version "3.22.2") + (version "3.22.3") (source (origin (method url-fetch) (uri (bioconductor-uri "edgeR" version)) (sha256 (base32 - "07py2g6vg9jbflwhc1hnzr2silbinrjwxq3mkq30nzjgf0n0hrf3")))) + "0w3jv29n0kkaiig8dbbdqy2dkng8xfaihch82mj9ci5hphrx3nng")))) (properties `((upstream-name . "edgeR"))) (build-system r-build-system) (propagated-inputs From 33a103a54393f4e8994b2cb46f6be7d8942cc42e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:51:48 +0200 Subject: [PATCH 044/208] gnu: r-variantannotation: Update to 1.26.1. * gnu/packages/bioinformatics.scm (r-variantannotation): Update to 1.26.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 b6b6e7267c..6efb6f1c1b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7284,13 +7284,13 @@ CAGE.") (define-public r-variantannotation (package (name "r-variantannotation") - (version "1.26.0") + (version "1.26.1") (source (origin (method url-fetch) (uri (bioconductor-uri "VariantAnnotation" version)) (sha256 (base32 - "06bccdf57vja7m63chmgc4539lwng3q3b8zxn285fj8524l6mcn7")))) + "1r55ki951dj81qvy73knfcy69ik5vzkd56wnk3f6vvf9vngqb8jr")))) (properties `((upstream-name . "VariantAnnotation"))) (inputs From 688cb0852706d1e2d0cc03c707a04098ab59b98b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:52:03 +0200 Subject: [PATCH 045/208] gnu: r-limma: Update to 3.36.3. * gnu/packages/bioinformatics.scm (r-limma): Update to 3.36.3. --- 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 6efb6f1c1b..29558768c0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7322,13 +7322,13 @@ coding changes and predict coding outcomes.") (define-public r-limma (package (name "r-limma") - (version "3.36.1") + (version "3.36.3") (source (origin (method url-fetch) (uri (bioconductor-uri "limma" version)) (sha256 (base32 - "1982g5v35ilfgxm2vkq1p3j1bbir795pjvfzx4nzam2rlqqymbqm")))) + "0iiifszr6hcqih6kszdsbkx3gacfg3d7v8hdx0lbjqnjqgqz7pwk")))) (build-system r-build-system) (home-page "http://bioinf.wehi.edu.au/limma") (synopsis "Package for linear models for microarray and RNA-seq data") From 1d56c79f86cd0c776e76a1bece26622f56c28f12 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:52:53 +0200 Subject: [PATCH 046/208] gnu: r-genomicranges: Update to 1.32.6. * gnu/packages/bioinformatics.scm (r-genomicranges): Update to 1.32.6. --- 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 29558768c0..2b467145d0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7377,13 +7377,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.") (define-public r-genomicranges (package (name "r-genomicranges") - (version "1.32.3") + (version "1.32.6") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicRanges" version)) (sha256 (base32 - "03gmka6rlz18vd4229796l5l3l6446v5cb90sn2nb5knjbp84hni")))) + "0p58yk2i5gqvjlkx548mnrr49wvs0xfcl06l9rqj2hi6hkkbvnp3")))) (properties `((upstream-name . "GenomicRanges"))) (build-system r-build-system) From a02340058c15a22cf8c942c96d0053b8e0881452 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:58:33 +0200 Subject: [PATCH 047/208] gnu: r-biocparallel: Update to 1.14.2. * gnu/packages/bioinformatics.scm (r-biocparallel): Update to 1.14.2. --- 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 2b467145d0..9d55198f4f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7488,13 +7488,13 @@ powerful online queries from gene annotation to database mining.") (define-public r-biocparallel (package (name "r-biocparallel") - (version "1.14.1") + (version "1.14.2") (source (origin (method url-fetch) (uri (bioconductor-uri "BiocParallel" version)) (sha256 (base32 - "00qg1kg2l9qqpyjaw5q910cmf84vwfiw1fhsx3ig784gwinwgj6n")))) + "1llb5a62hn4yxpdgqdh2l7i5zd06mjkk8hagsna69cq65wv6iifm")))) (properties `((upstream-name . "BiocParallel"))) (build-system r-build-system) From 3e61c2a8b1dfbc03f9506aaf10df57651728a7d8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:58:44 +0200 Subject: [PATCH 048/208] gnu: r-rsamtools: Update to 1.32.3. * gnu/packages/bioinformatics.scm (r-rsamtools): Update to 1.32.3. --- 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 9d55198f4f..c682399ace 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7539,13 +7539,13 @@ biological sequences or sets of sequences.") (define-public r-rsamtools (package (name "r-rsamtools") - (version "1.32.0") + (version "1.32.3") (source (origin (method url-fetch) (uri (bioconductor-uri "Rsamtools" version)) (sha256 (base32 - "1s65y5wn4d0x8zsljg2kmhcl6r9884h95kr041j7hp49bmxg3an6")))) + "1hpjr22h33pf4fgv0sj83rqzv6l5l7s6fpmmqvchh45ikks1mnhq")))) (properties `((upstream-name . "Rsamtools"))) (build-system r-build-system) From aea1b6fb8a9b48b35139e146faffaf27463091b8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:59:06 +0200 Subject: [PATCH 049/208] gnu: r-delayedarray: Update to 0.6.5. * gnu/packages/bioinformatics.scm (r-delayedarray): Update to 0.6.5. --- 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 c682399ace..d9d70ea97b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7583,13 +7583,13 @@ files.") (define-public r-delayedarray (package (name "r-delayedarray") - (version "0.6.1") + (version "0.6.5") (source (origin (method url-fetch) (uri (bioconductor-uri "DelayedArray" version)) (sha256 (base32 - "0sjwszxdi0vkj2i2di5i46gh9chc660yr3gs5nk9qnqp77713zds")))) + "10b03zrnvz5isfh4z55hasya2m71lrfx10l5lm2sdmqs0gwkanrd")))) (properties `((upstream-name . "DelayedArray"))) (build-system r-build-system) From f2e79823c697843afd880e79e7f810ad69411722 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:59:25 +0200 Subject: [PATCH 050/208] gnu: r-rtracklayer: Update to 1.40.6. * gnu/packages/bioinformatics.scm (r-rtracklayer): Update to 1.40.6. --- 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 d9d70ea97b..3610f823dc 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7678,13 +7678,13 @@ alignments.") (define-public r-rtracklayer (package (name "r-rtracklayer") - (version "1.40.3") + (version "1.40.6") (source (origin (method url-fetch) (uri (bioconductor-uri "rtracklayer" version)) (sha256 (base32 - "0kvsjdaypn1jnxbnsxpycildwdyxwnjkigfq8qm8mlyfc4ahdgy3")))) + "1wxxxlyps19dw3i0pw4mlm3kinnswsc35rgvlnbwvpnpjbca6w4l")))) (build-system r-build-system) (arguments `(#:phases From ad2ed8d01fa3a5486072f0f484beb74129928796 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 13:59:44 +0200 Subject: [PATCH 051/208] gnu: r-genomicfeatures: Update to 1.32.2. * gnu/packages/bioinformatics.scm (r-genomicfeatures): Update to 1.32.2. --- 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 3610f823dc..0631d59651 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7725,13 +7725,13 @@ as well as query and modify the browser state, such as the current viewport.") (define-public r-genomicfeatures (package (name "r-genomicfeatures") - (version "1.32.0") + (version "1.32.2") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicFeatures" version)) (sha256 (base32 - "1cqcl72q0k5wylw1brn4g4h7xzys1v06piry19cvp0gjcvm5sp7a")))) + "0kfyyg1ib8fkq2hxraal10z4bx3rg8figdskw4yhn1mbh6l42q5f")))) (properties `((upstream-name . "GenomicFeatures"))) (build-system r-build-system) From 48b21f8b6b7fcd6d0857fc1ac75dddb52bbabdf4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:00:00 +0200 Subject: [PATCH 052/208] gnu: r-seqminer: Update to 6.1. * gnu/packages/bioinformatics.scm (r-seqminer): Update to 6.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 0631d59651..878f5723da 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9321,14 +9321,14 @@ unmodeled, or latent sources of noise.") (define-public r-seqminer (package (name "r-seqminer") - (version "6.0") + (version "6.1") (source (origin (method url-fetch) (uri (cran-uri "seqminer" version)) (sha256 (base32 - "057j1l6dip35l1aivilapl2zv9db677b3di2pb3sfgq2sxg0ps3l")))) + "15yhg4vfc7jg1jnqb3371j00pgbmbyc9l1xx63hq1l3p34lazq2l")))) (build-system r-build-system) (inputs `(("zlib" ,zlib))) From 4ee8c37cca305dd7c581a7bf0fcf82fa351104a8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:00:56 +0200 Subject: [PATCH 053/208] gnu: r-maldiquant: Update to 1.18. * gnu/packages/bioinformatics.scm (r-maldiquant): Update to 1.18. --- 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 878f5723da..5b8a1a23b0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9375,14 +9375,14 @@ trait.") (define-public r-maldiquant (package (name "r-maldiquant") - (version "1.17") + (version "1.18") (source (origin (method url-fetch) (uri (cran-uri "MALDIquant" version)) (sha256 (base32 - "047s6007ydc38x8wm027mlb4mngz15n0d4238fr8h43wyll5zy0z")))) + "18nl214xjsxkcpbg79jkmw0yznwm5szyh2qb84n7ip46mm779ha6")))) (properties `((upstream-name . "MALDIquant"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/MALDIquant") From 07bd90ce90784eb6803c581a18d8b335ce49e1bd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:01:19 +0200 Subject: [PATCH 054/208] gnu: r-msnbase: Update to 2.6.3. * gnu/packages/bioinformatics.scm (r-msnbase): Update to 2.6.3. --- 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 5b8a1a23b0..01603d2937 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9619,14 +9619,14 @@ structure (pcaRes) to provide a common interface to the PCA results.") (define-public r-msnbase (package (name "r-msnbase") - (version "2.6.1") + (version "2.6.3") (source (origin (method url-fetch) (uri (bioconductor-uri "MSnbase" version)) (sha256 (base32 - "0zrpx9r93q5ca2zdak5rs2m9sjm0wjdra1xfj3d3sx6p5gzfyg6n")))) + "15jhqg02ypmznc0wxksw56yij02csy678vqy531fdv86fsmypwa0")))) (properties `((upstream-name . "MSnbase"))) (build-system r-build-system) (propagated-inputs From 6f6aef80e3def1ffa7c8e4b0f75b22bd2ececc74 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:20:56 +0200 Subject: [PATCH 055/208] gnu: r-seurat: Update to 2.3.4. * gnu/packages/bioinformatics.scm (r-seurat): Update to 2.3.4. [source]: Remove snippet. [arguments]: Remove. [native-inputs]: Remove. [propagated-inputs]: Remove r-caret, r-diffusionmap, r-fnn, r-gdata, r-ranger, r-stringr, r-tclust, and rvgam; add r-httr. --- gnu/packages/bioinformatics.scm | 39 ++++----------------------------- 1 file changed, 4 insertions(+), 35 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 01603d2937..c29122b0cf 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9701,58 +9701,31 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.") (define-public r-seurat (package (name "r-seurat") - (version "2.3.2") + (version "2.3.4") (source (origin (method url-fetch) (uri (cran-uri "Seurat" version)) (sha256 (base32 - "1sjpy5rrpvlpm6hs7qy7qpglgbp7zrgfybcsalpmjb51rhxhgcg1")) - ;; Delete pre-built jar. - (snippet - '(begin (delete-file "inst/java/ModularityOptimizer.jar") - #t)))) + "0l8bv4i9nzz26mirnva10mq6pimibj24vk7vpvfypgn7xk4942hd")))) (properties `((upstream-name . "Seurat"))) (build-system r-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'build-jar - (lambda* (#:key inputs #:allow-other-keys) - (let ((classesdir "tmp-classes")) - (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) - (mkdir classesdir) - (with-output-to-file "manifest" - (lambda _ - (display "Manifest-Version: 1.0 -Main-Class: ModularityOptimizer\n"))) - (and (zero? (apply system* `("javac" "-d" ,classesdir - ,@(find-files "java" "\\.java$")))) - (zero? (system* "jar" - "-cmf" "manifest" - "inst/java/ModularityOptimizer.jar" - "-C" classesdir "."))))))))) - (native-inputs - `(("jdk" ,icedtea "jdk"))) (propagated-inputs `(("r-ape" ,r-ape) - ("r-caret" ,r-caret) ("r-cluster" ,r-cluster) ("r-cowplot" ,r-cowplot) - ("r-diffusionmap" ,r-diffusionmap) ("r-dosnow" ,r-dosnow) ("r-dplyr" ,r-dplyr) ("r-dtw" ,r-dtw) ("r-fitdistrplus" ,r-fitdistrplus) - ("r-fnn" ,r-fnn) ("r-foreach" ,r-foreach) ("r-fpc" ,r-fpc) - ("r-gdata" ,r-gdata) ("r-ggplot2" ,r-ggplot2) ("r-ggridges" ,r-ggridges) ("r-gplots" ,r-gplots) ("r-hdf5r" ,r-hdf5r) ("r-hmisc" ,r-hmisc) + ("r-httr" ,r-httr) ("r-ica" ,r-ica) ("r-igraph" ,r-igraph) ("r-irlba" ,r-irlba) @@ -9765,7 +9738,6 @@ Main-Class: ModularityOptimizer\n"))) ("r-pbapply" ,r-pbapply) ("r-plotly" ,r-plotly) ("r-png" ,r-png) - ("r-ranger" ,r-ranger) ("r-rann" ,r-rann) ("r-rcolorbrewer" ,r-rcolorbrewer) ("r-rcpp" ,r-rcpp) @@ -9776,11 +9748,8 @@ Main-Class: ModularityOptimizer\n"))) ("r-rocr" ,r-rocr) ("r-rtsne" ,r-rtsne) ("r-sdmtools" ,r-sdmtools) - ("r-stringr" ,r-stringr) - ("r-tclust" ,r-tclust) ("r-tidyr" ,r-tidyr) - ("r-tsne" ,r-tsne) - ("r-vgam" ,r-vgam))) + ("r-tsne" ,r-tsne))) (home-page "http://www.satijalab.org/seurat") (synopsis "Seurat is an R toolkit for single cell genomics") (description From c273bcdfce1f1cac53990e6c26455fb6a749763f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:22:33 +0200 Subject: [PATCH 056/208] gnu: r-diffusionmap: Update to 1.1-0.1. * gnu/packages/graph.scm (r-diffusionmap): Update to 1.1-0.1. --- gnu/packages/graph.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index b393919e66..998e4ead46 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -130,14 +130,14 @@ more.") (define-public r-diffusionmap (package (name "r-diffusionmap") - (version "1.1-0") + (version "1.1-0.1") (source (origin (method url-fetch) (uri (cran-uri "diffusionMap" version)) (sha256 (base32 - "1l985q2hfc8ss5afajik4p25dx628yikvhdimz5s0pql800q2yv3")))) + "11l4kbciawvli5nlsi4qaf8afmgk5xgqiqpdyhvaqri5mx0zhk5j")))) (properties `((upstream-name . "diffusionMap"))) (build-system r-build-system) (propagated-inputs From eb251fe524127e5490b26e86a4c826bb6c79003c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:22:44 +0200 Subject: [PATCH 057/208] gnu: r-igraph: Update to 1.2.2. * gnu/packages/graph.scm (r-igraph): Update to 1.2.2. --- gnu/packages/graph.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 998e4ead46..3b222d6ee8 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -98,14 +98,14 @@ more.") (define-public r-igraph (package (name "r-igraph") - (version "1.2.1") + (version "1.2.2") (source (origin (method url-fetch) (uri (cran-uri "igraph" version)) (sha256 (base32 - "1hcr6b1lz030lgay1bz8y8sxaf2j93ds8n8gsqr6qhssz141hd2m")))) + "1bggm7b8v3bh7q2589w26qvd7sgs69m4qiij7d0rbm0ykkgxm8lx")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) From 3c553046888943842d953012759aacde255c4e0c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:27:26 +0200 Subject: [PATCH 058/208] gnu: r-edaseq: Update to 2.14.1. * gnu/packages/bioinformatics.scm (r-edaseq): Update to 2.14.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 c29122b0cf..0860d85bab 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9822,14 +9822,14 @@ distribution.") (define-public r-edaseq (package (name "r-edaseq") - (version "2.14.0") + (version "2.14.1") (source (origin (method url-fetch) (uri (bioconductor-uri "EDASeq" version)) (sha256 (base32 - "1832pb3jkim4vrqzb8lajwx9r482bhww5n9nz3s6crvyamlp2dj0")))) + "0970w9d5ddqw1qxqqafdidkxh6hmcv9j5djwgnpz3fgl05kmysg8")))) (properties `((upstream-name . "EDASeq"))) (build-system r-build-system) (propagated-inputs From ff7c7d62f464d0a8d5e91ef058579ad03247d817 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:29:51 +0200 Subject: [PATCH 059/208] gnu: r-keggrest: Update to 1.20.1. * gnu/packages/bioinformatics.scm (r-keggrest): Update to 1.20.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 0860d85bab..eb7d2b840a 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9949,14 +9949,14 @@ microarrays or GRanges for sequencing data.") (define-public r-keggrest (package (name "r-keggrest") - (version "1.20.0") + (version "1.20.1") (source (origin (method url-fetch) (uri (bioconductor-uri "KEGGREST" version)) (sha256 (base32 - "1349vidgl9m10l1rbrp3pkwwgi2xcbsw9h9z2xqbvg97lmqc4r8j")))) + "1ss0xd5570x570v01r6lp64rr1apjrzp0j62520pvm3g8knjhfvs")))) (properties `((upstream-name . "KEGGREST"))) (build-system r-build-system) (propagated-inputs From 70daf9362b328079886ed7854e6afe4d96181323 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:30:16 +0200 Subject: [PATCH 060/208] gnu: r-biovizbase: Update to 1.28.2. * gnu/packages/bioinformatics.scm (r-biovizbase): Update to 1.28.2. [propagated-inputs]: Add r-rlang. --- gnu/packages/bioinformatics.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index eb7d2b840a..f65dad5f96 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -10169,14 +10169,14 @@ the fact that each of these packages implements a select methods.") (define-public r-biovizbase (package (name "r-biovizbase") - (version "1.28.0") + (version "1.28.2") (source (origin (method url-fetch) (uri (bioconductor-uri "biovizBase" version)) (sha256 (base32 - "0lkiqdr3ics6hgv47lwkykcy761823bbkhffbn4ykyfzyqwl4p67")))) + "0wc45j3hfn01i44bkkxjj3n8b8xzbkkcdv35mrkzb1f9yprkf8gq")))) (properties `((upstream-name . "biovizBase"))) (build-system r-build-system) (propagated-inputs @@ -10193,6 +10193,7 @@ the fact that each of these packages implements a select methods.") ("r-hmisc" ,r-hmisc) ("r-iranges" ,r-iranges) ("r-rcolorbrewer" ,r-rcolorbrewer) + ("r-rlang" ,r-rlang) ("r-rsamtools" ,r-rsamtools) ("r-s4vectors" ,r-s4vectors) ("r-scales" ,r-scales) From 16527f1cbc8af73b1034ddce2edf9e2bce094564 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:31:06 +0200 Subject: [PATCH 061/208] gnu: r-ggbio: Update to 1.28.5. * gnu/packages/bioinformatics.scm (r-ggbio): Update to 1.28.5. [propagated-inputs]: Add r-rlang. --- gnu/packages/bioinformatics.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index f65dad5f96..9882356a08 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -10211,14 +10211,14 @@ effort and encourages consistency.") (define-public r-ggbio (package (name "r-ggbio") - (version "1.28.0") + (version "1.28.5") (source (origin (method url-fetch) (uri (bioconductor-uri "ggbio" version)) (sha256 (base32 - "0wszh3w8yia5zw758h837i1q35k99sn444y2hahcxqbdmmlbf7in")))) + "19s2v40fycwf44fl3lm791y635xzw67b30sq2g0qq4a6phjik42d")))) (build-system r-build-system) (propagated-inputs `(("r-annotationdbi" ,r-annotationdbi) @@ -10241,6 +10241,7 @@ effort and encourages consistency.") ("r-iranges" ,r-iranges) ("r-organismdbi" ,r-organismdbi) ("r-reshape2" ,r-reshape2) + ("r-rlang" ,r-rlang) ("r-rsamtools" ,r-rsamtools) ("r-rtracklayer" ,r-rtracklayer) ("r-s4vectors" ,r-s4vectors) From e69c07e61a870861f5c9d9f114e2783cba213934 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:32:25 +0200 Subject: [PATCH 062/208] gnu: r-hdf5array: Update to 1.8.1. * gnu/packages/bioinformatics.scm (r-hdf5array): Update to 1.8.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 9882356a08..53bf86180f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -10696,14 +10696,14 @@ problems in genomics, brain imaging, astrophysics, and data mining.") (define-public r-hdf5array (package (name "r-hdf5array") - (version "1.8.0") + (version "1.8.1") (source (origin (method url-fetch) (uri (bioconductor-uri "HDF5Array" version)) (sha256 (base32 - "1l0276qxkhgdxsfck3jmi8jvnsr20g10gjki53g0mqa45wnhm3ck")))) + "1s44zgm9jg82bk4b8k3dh7xw7mxychlfm3grs8516mxnw91zpvy5")))) (properties `((upstream-name . "HDF5Array"))) (build-system r-build-system) (propagated-inputs From 8e44ff0c0de2ee752ccaf9189d882735d3185c65 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:37:02 +0200 Subject: [PATCH 063/208] gnu: r-scater: Update to 1.8.4. * gnu/packages/bioinformatics.scm (r-scater): Update to 1.8.4. --- 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 53bf86180f..687cb131d2 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -10842,13 +10842,13 @@ libraries.") (define-public r-scater (package (name "r-scater") - (version "1.8.0") + (version "1.8.4") (source (origin (method url-fetch) (uri (bioconductor-uri "scater" version)) (sha256 (base32 - "0bhpikgz3b9f510dawsay4zry9rlp8vjx5n6zvwbcpwrd94p3903")))) + "173lfpas2fqsp4xxsw01wkxd4496c5p8himw9b4r9z4npxkfyv16")))) (build-system r-build-system) (propagated-inputs `(("r-beachmat" ,r-beachmat) From f0771741781ff75af42ea59027a592ac159bcf98 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:41:37 +0200 Subject: [PATCH 064/208] gnu: r-scran: Update to 1.8.4. * gnu/packages/bioinformatics.scm (r-scran): Update to 1.8.4. --- 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 687cb131d2..760b716408 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -10886,14 +10886,14 @@ quality control.") (define-public r-scran (package (name "r-scran") - (version "1.8.2") + (version "1.8.4") (source (origin (method url-fetch) (uri (bioconductor-uri "scran" version)) (sha256 (base32 - "0nbn5x75gf9d0p18w7vpkbv30cpdqvp5bz8xvila0h7jla7xdyih")))) + "17vq9vb9ak7n4mcqpwnm9x3z91vmr7xnsgj8f45b8dbj7m0v126j")))) (build-system r-build-system) (propagated-inputs `(("r-beachmat" ,r-beachmat) From 1ec1989f8007d0b90cc3b5ac379bb2f7133e299f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:42:01 +0200 Subject: [PATCH 065/208] gnu: r-httpuv: Update to 1.4.5. * gnu/packages/web.scm (r-httpuv): Update to 1.4.5. [native-inputs]: Add pkg-config. --- gnu/packages/web.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 0d27fa0054..918548513d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3823,15 +3823,17 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") (define-public r-httpuv (package (name "r-httpuv") - (version "1.4.4.1") + (version "1.4.5") (source (origin (method url-fetch) (uri (cran-uri "httpuv" version)) (sha256 (base32 - "12kwq10xa8glrip7rai9xb4hnpysng00g2l0rw7swfzq5lk4z966")))) + "1ddpcarzf694h0gy5pdz7l5glqfv4hr9dmxb4vw7yqd0bga174gi")))) (build-system r-build-system) - (native-inputs `(("r-rcpp" ,r-rcpp))) + (native-inputs + `(("r-rcpp" ,r-rcpp) + ("pkg-config" ,pkg-config))) (propagated-inputs `(("r-bh" ,r-bh) ("r-later" ,r-later) From 4f8247b54b4bb95fc58b3c4f0c30d635909496e2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:46:33 +0200 Subject: [PATCH 066/208] gnu: Add r-pkgbuild. * gnu/packages/cran.scm (r-pkgbuild): New variable. --- gnu/packages/cran.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 2082378aae..ae51844dab 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -499,6 +499,33 @@ print, summary, plot, update, etc. processes. Most of its code is based on the @code{psutil} Python package.") (license license:bsd-3))) +(define-public r-pkgbuild + (package + (name "r-pkgbuild") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "pkgbuild" version)) + (sha256 + (base32 + "10iz8057mixl9j73pq2cbp4ib6dadfsgi3fcsjjm7l3wwb9issd9")))) + (build-system r-build-system) + (propagated-inputs + `(("r-callr" ,r-callr) + ("r-crayon" ,r-crayon) + ("r-desc" ,r-desc) + ("r-r6" ,r-r6) + ("r-rprojroot" ,r-rprojroot) + ("r-withr" ,r-withr))) + (home-page "https://github.com/r-pkgs/pkgbuild") + (synopsis "Find tools needed to build R packages") + (description + "This package provides functions used to build R packages. It locates +compilers needed to build R packages on various platforms and ensures the PATH +is configured appropriately so R can use them.") + (license license:gpl3))) + (define-public r-rcpp (package (name "r-rcpp") From e362be8e899707fa85e7ae3102cbb5013d51bb69 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:46:49 +0200 Subject: [PATCH 067/208] gnu: Add r-pkgload. * gnu/packages/cran.scm (r-pkgload): New variable. --- gnu/packages/cran.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index ae51844dab..9d736d4d6e 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -526,6 +526,33 @@ compilers needed to build R packages on various platforms and ensures the PATH is configured appropriately so R can use them.") (license license:gpl3))) +(define-public r-pkgload + (package + (name "r-pkgload") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "pkgload" version)) + (sha256 + (base32 + "1rjj229nq9fsl4ki4m75ybsavjgpqqhsr1zjzapwicsrxv6212px")))) + (build-system r-build-system) + (propagated-inputs + `(("r-desc" ,r-desc) + ("r-pkgbuild" ,r-pkgbuild) + ("r-rlang" ,r-rlang) + ("r-rprojroot" ,r-rprojroot) + ("r-rstudioapi" ,r-rstudioapi) + ("r-withr" ,r-withr))) + (home-page "https://github.com/r-lib/pkgload") + (synopsis "Simulate package installation and attach") + (description + "This package simulates the process of installing a package and then +attaching it. This is a key part of the @code{devtools} package as it allows +you to rapidly iterate while developing a package.") + (license license:gpl3))) + (define-public r-rcpp (package (name "r-rcpp") From 97c81cc174b31fe898263cf4e802e00e95f76ef3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:52:33 +0200 Subject: [PATCH 068/208] gnu: r-stringi: Update to 1.2.4. * gnu/packages/statistics.scm (r-stringi): Update to 1.2.4. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 97246dc31d..1f03649fa5 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -960,14 +960,14 @@ solution for sending email, including attachments, from within R.") (define-public r-stringi (package (name "r-stringi") - (version "1.2.3") + (version "1.2.4") (source (origin (method url-fetch) (uri (cran-uri "stringi" version)) (sha256 (base32 - "1sgg4krw03qkz1n4dwiya0djggk7giwd0w21qlp0pfjqi0rxq6qx")))) + "1y46xab7g1lsjmilp4hbl7pjad6pcxp66hdj8wnfdg9518h0lmq1")))) (build-system r-build-system) (inputs `(("icu4c" ,icu4c))) (native-inputs `(("pkg-config" ,pkg-config))) From 3bf390279d9fce490fcfbab21330a0009a4d178c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:52:53 +0200 Subject: [PATCH 069/208] gnu: r-scales: Update to 1.0.0. * gnu/packages/statistics.scm (r-scales): Update to 1.0.0. [propagated-inputs]: Remove r-dichromat and r-plyr. --- gnu/packages/statistics.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 1f03649fa5..35f89f2dc5 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1033,19 +1033,17 @@ using just two functions: melt and dcast (or acast).") (define-public r-scales (package (name "r-scales") - (version "0.5.0") + (version "1.0.0") (source (origin (method url-fetch) (uri (cran-uri "scales" version)) (sha256 - (base32 "0zg9wfzmsdjxpbld0nzv7hcpq5r0wazqxmn7grvvif2agj0w1z6v")))) + (base32 "0353dkh3d7x78463c6ds80hcml59lrqwr8rlv82a8dnkxla4l7qc")))) (build-system r-build-system) (propagated-inputs - `(("r-dichromat" ,r-dichromat) - ("r-labeling" ,r-labeling) + `(("r-labeling" ,r-labeling) ("r-munsell" ,r-munsell) - ("r-plyr" ,r-plyr) ("r-rcolorbrewer" ,r-rcolorbrewer) ("r-rcpp" ,r-rcpp) ("r-r6" ,r-r6) From 2a96a093ec9a812bf7ccb6e095b3377df81d75aa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:53:36 +0200 Subject: [PATCH 070/208] gnu: r-evaluate: Update to 0.11. * gnu/packages/statistics.scm (r-evaluate): Update to 0.11. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 35f89f2dc5..09470fa0a0 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1249,13 +1249,13 @@ for template use among CRAN packages.") (define-public r-evaluate (package (name "r-evaluate") - (version "0.10.1") + (version "0.11") (source (origin (method url-fetch) (uri (cran-uri "evaluate" version)) (sha256 (base32 - "070vvmnbdlp7sz2zhza7fhd2a6mlwiln8fn4hyzhsiizbn4n79y9")))) + "1k8vcd4vsgg0hf7kdz8rlqp1dx4ygvg35aj4n3ay50kdnpzhaj5h")))) (build-system r-build-system) (propagated-inputs `(("r-stringr" ,r-stringr))) From 3299bc1c5e43a146ba1ea380fc905b2c096f9174 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:53:49 +0200 Subject: [PATCH 071/208] gnu: r-yaml: Update to 2.2.0. * gnu/packages/statistics.scm (r-yaml): Update to 2.2.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 09470fa0a0..b7118b672a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1354,13 +1354,13 @@ syntax that can be converted to XHTML or other formats.") (define-public r-yaml (package (name "r-yaml") - (version "2.1.19") + (version "2.2.0") (source (origin (method url-fetch) (uri (cran-uri "yaml" version)) (sha256 (base32 - "04bzrnfgbpk0rhkvzwp3k3ip7jpq26bjxz71bx5mwxmcjdb07nz5")))) + "0in562nd0i23cg91a8kdbqgim656fgscykwi0icsnq53xj3srg2m")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/yaml/") (synopsis "Methods to convert R data to YAML and back") From 6b02569f1db9a3943305afcdea3f5970f80ecf74 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:54:02 +0200 Subject: [PATCH 072/208] gnu: r-dbplyr: Update to 1.2.2. * gnu/packages/statistics.scm (r-dbplyr): Update to 1.2.2. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index b7118b672a..ac0d5d613c 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1654,14 +1654,14 @@ database.") (define-public r-dbplyr (package (name "r-dbplyr") - (version "1.2.1") + (version "1.2.2") (source (origin (method url-fetch) (uri (cran-uri "dbplyr" version)) (sha256 (base32 - "1nwrls9c3kc9q7405jp6b9sh23642sz13yw55iikgw134shffj5k")))) + "0j5w6a1qim972kv4vmvinp3j50yr4idmm9cd3w7y3zsz0nq0nhcx")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) From 7f38b31ecbeab97f3efdc633504c4caa1a3a0621 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:54:19 +0200 Subject: [PATCH 073/208] gnu: r-xtable: Update to 1.8-3. * gnu/packages/statistics.scm (r-xtable): Update to 1.8-3. --- gnu/packages/statistics.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index ac0d5d613c..88b9ee6037 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1787,17 +1787,17 @@ and fast file reading.") (define-public r-xtable (package (name "r-xtable") - (version "1.8-2") + (version "1.8-3") (source (origin (method url-fetch) (uri (cran-uri "xtable" version)) (sha256 (base32 - "0398qkpvlw3dv0myz4mjcyqwpwc2m31l127r8vdzwc71wb6s28qn")))) + "09f311gq9g7dzf8jdvcx72j11xb7p00jlg066jjbpa6pz3zv1cjk")))) (build-system r-build-system) (native-inputs - `(("r-knitr" ,r-knitr))) + `(("r-knitr" ,r-knitr))) ; for vignettes (home-page "http://xtable.r-forge.r-project.org/") (synopsis "Export R tables to LaTeX or HTML") (description From 9b7e8df85bc8f06a662f0a9631231bd56939cfb2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:54:35 +0200 Subject: [PATCH 074/208] gnu: r-ade4: Update to 1.7-13. * gnu/packages/statistics.scm (r-ade4): Update to 1.7-13. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 88b9ee6037..c74e198449 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1934,14 +1934,14 @@ chain.") (define-public r-ade4 (package (name "r-ade4") - (version "1.7-11") + (version "1.7-13") (source (origin (method url-fetch) (uri (cran-uri "ade4" version)) (sha256 (base32 - "0wm54wcpn87rdh6vyw04cr8vgba899y6jsl61f22bmlvx6d7kkac")))) + "16z9jk4qj35ghsk4lwmq241dgc770y8a70dlmp9q4gz6d8ssgl7m")))) (build-system r-build-system) (propagated-inputs `(("r-mass" ,r-mass))) From 2848c52c5ec537e9d4ee23bedd6658c610ff02fd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:54:52 +0200 Subject: [PATCH 075/208] gnu: r-roxygen2: Update to 6.1.0. * gnu/packages/statistics.scm (r-roxygen2): Update to 6.1.0. [propagated-inputs]: Add r-pkgload and r-purrr. [native-inputs]: Add r-knitr. --- gnu/packages/statistics.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c74e198449..43d0197395 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2235,24 +2235,28 @@ tables, autolinks and strikethrough text.") (define-public r-roxygen2 (package (name "r-roxygen2") - (version "6.0.1") + (version "6.1.0") (source (origin (method url-fetch) (uri (cran-uri "roxygen2" version)) (sha256 (base32 - "0xpzziminf225kjwhyl51kgkzhplyzhk5farhf5s822krl2xqbfj")))) + "0ji9k4s1bvfbl8wimfqj1lqr33h1claaz30vb5pgksxyg77j5xaa")))) (build-system r-build-system) (propagated-inputs `(("r-brew" ,r-brew) ("r-commonmark" ,r-commonmark) ("r-desc" ,r-desc) ("r-digest" ,r-digest) + ("r-pkgload" ,r-pkgload) + ("r-purrr" ,r-purrr) ("r-r6" ,r-r6) ("r-rcpp" ,r-rcpp) ("r-stringi" ,r-stringi) ("r-stringr" ,r-stringr) ("r-xml2" ,r-xml2))) + (native-inputs + `(("r-knitr" ,r-knitr))) ; for vignettes (home-page "https://github.com/klutometis/roxygen") (synopsis "In-source documentation system for R") (description From 19cb93be55e4cffab4b48542835d9b18ef74d949 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:58:00 +0200 Subject: [PATCH 076/208] gnu: r-git2r: Update to 0.23.0. * gnu/packages/statistics.scm (r-git2r): Update to 0.23.0. [native-inputs]: Add pkg-config. --- gnu/packages/statistics.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 43d0197395..164e0b5851 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2322,13 +2322,13 @@ functions make it easy to control additional request components.") (define-public r-git2r (package (name "r-git2r") - (version "0.21.0") + (version "0.23.0") (source (origin (method url-fetch) (uri (cran-uri "git2r" version)) (sha256 (base32 - "11xgddmxzh9cy85k8fb90il43qswpvryz0h9r0j1gbclfg2f9004")))) + "01250jz255fnyy2ap90nskvzhd8nhlmbhwgpvb43mk1fax077lrz")))) (build-system r-build-system) ;; This R package contains modified sources of libgit2. This modified ;; version of libgit2 is built as the package is built. Hence libgit2 is @@ -2337,6 +2337,8 @@ functions make it easy to control additional request components.") `(("libssh2" ,libssh2) ("openssl" ,openssl) ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) (home-page "https://github.com/ropensci/git2r") (synopsis "Access Git repositories with R") (description From 41f6685388da9e2258ababbdb5e16be56993e949 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:58:39 +0200 Subject: [PATCH 077/208] gnu: r-rcpparmadillo: Update to 0.9.100.5.0. * gnu/packages/statistics.scm (r-rcpparmadillo): Update to 0.9.100.5.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 164e0b5851..2e8bfb33fa 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2518,13 +2518,13 @@ well as additional utilities such as panel and axis annotation functions.") (define-public r-rcpparmadillo (package (name "r-rcpparmadillo") - (version "0.8.500.0") + (version "0.9.100.5.0") (source (origin (method url-fetch) (uri (cran-uri "RcppArmadillo" version)) (sha256 (base32 - "1sh36dx6inmb56m40nigy94gxlgjva816qnlmjwg7y2bdvqj8vsi")))) + "1iyjqhfjip1nxrkllzh7r1m01jjnx7cahqkf3s557w34p987f2l1")))) (properties `((upstream-name . "RcppArmadillo"))) (build-system r-build-system) (native-inputs From 2aafa73a94daa2ea0399ba0873b87fdfb9d03ff0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:59:01 +0200 Subject: [PATCH 078/208] gnu: r-xml: Update to 3.98-1.16. * gnu/packages/statistics.scm (r-xml): Update to 3.98-1.16. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 2e8bfb33fa..f02c40b43a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2803,13 +2803,13 @@ ldap, and also supports cookies, redirects, authentication, etc.") (define-public r-xml (package (name "r-xml") - (version "3.98-1.11") + (version "3.98-1.16") (source (origin (method url-fetch) (uri (cran-uri "XML" version)) (sha256 (base32 - "18izvlg2x9mzr6yb3yf02ghwbyn00frki3av4lpc44r22m4djnsh")))) + "0nl1kk354r8snhj6p9mc74m7awvqc6akmd4y3a46y78yv3g15njp")))) (properties `((upstream-name . "XML"))) (build-system r-build-system) From e926159eb3fd006c6c688729e03043741a456bf9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:59:24 +0200 Subject: [PATCH 079/208] gnu: r-e1071: Update to 1.7-0. * gnu/packages/statistics.scm (r-e1071): Update to 1.7-0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index f02c40b43a..0bdf0783d0 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3285,14 +3285,14 @@ Stochastic Neighbor Embedding using a Barnes-Hut implementation.") (define-public r-e1071 (package (name "r-e1071") - (version "1.6-8") + (version "1.7-0") (source (origin (method url-fetch) (uri (cran-uri "e1071" version)) (sha256 (base32 - "08n6i26nfckjpxjkzi8phhanc3ahsrirkv5rz38y2jcv7ds031pn")))) + "0fk4pw67cw1663d0n9rf1qfdqzz8k5nqkjgp3hi5jr422qp9lsck")))) (build-system r-build-system) (propagated-inputs `(("r-class" ,r-class))) From eefa7c7f3dc48a144e39d9167d3befa74f4f8645 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 14:59:45 +0200 Subject: [PATCH 080/208] gnu: r-r-utils: Update to 2.7.0. * gnu/packages/statistics.scm (r-r-utils): Update to 2.7.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 0bdf0783d0..9d03d5df1f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3463,13 +3463,13 @@ maintenance for package developers.") (define-public r-r-utils (package (name "r-r-utils") - (version "2.6.0") + (version "2.7.0") (source (origin (method url-fetch) (uri (cran-uri "R.utils" version)) (sha256 (base32 - "03j7hrs03kyj9qrjxyp5kqv4lpqqpk6xwbkzx6j15d8928yrjr2x")))) + "0cxhn14a57x4gcyrwpfz1d6dw4xh0jcpqkb33hx8imnr340blh7n")))) (properties `((upstream-name . "R.utils"))) (build-system r-build-system) (propagated-inputs From e2a2c3378ecba09fc94ad2114c3e21df3460050e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:00:00 +0200 Subject: [PATCH 081/208] gnu: r-r-rsp: Update to 0.43.0. * gnu/packages/statistics.scm (r-r-rsp): Update to 0.43.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 9d03d5df1f..4b1001a0cd 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3511,13 +3511,13 @@ persistent (on the file system).") (define-public r-r-rsp (package (name "r-r-rsp") - (version "0.42.0") + (version "0.43.0") (source (origin (method url-fetch) (uri (cran-uri "R.rsp" version)) (sha256 (base32 - "1zcq0hzi0j7fvj2rs796a1i120wbr0387vck17rrd644awwbsbm0")))) + "0ax6781kfylx0acz0i3sqnpkxmrq73x29wwfic59ng7vj0ws0gyd")))) (properties `((upstream-name . "R.rsp"))) (build-system r-build-system) (propagated-inputs From 195eec737c13a871c39f9ebfeb3641a5e7b9d583 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:00:16 +0200 Subject: [PATCH 082/208] gnu: r-matrixstats: Update to 0.54.0. * gnu/packages/statistics.scm (r-matrixstats): Update to 0.54.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 4b1001a0cd..a5c44b485f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3562,13 +3562,13 @@ t-probabilities, quantiles, random deviates and densities.") (define-public r-matrixstats (package (name "r-matrixstats") - (version "0.53.1") + (version "0.54.0") (source (origin (method url-fetch) (uri (cran-uri "matrixStats" version)) (sha256 (base32 - "0bkiz5fm09d3512mfr2ymj9qsb1b8aic5l5m6fkaf5j7nsgvqw6z")))) + "0vx00ldsg2zvdrjn49jxczk2c9iaabgvzgpdka5j02ihh7hv83cg")))) (properties `((upstream-name . "matrixStats"))) (build-system r-build-system) (native-inputs From 88cb7aa9e7d18db3c7266424f6efc356a575c0f1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:00:41 +0200 Subject: [PATCH 083/208] gnu: r-plotly: Update to 4.8.0. * gnu/packages/statistics.scm (r-plotly): Update to 4.8.0. [propagated-inputs]: Add r-promises and r-rlang. --- gnu/packages/statistics.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index a5c44b485f..68255ccf3a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3743,13 +3743,13 @@ features present in other programming languages.") (define-public r-plotly (package (name "r-plotly") - (version "4.7.1") + (version "4.8.0") (source (origin (method url-fetch) (uri (cran-uri "plotly" version)) (sha256 (base32 - "0wj9lw7w28z8w9ip9vadv6sydjhqyg65kfiai9m3bndzz50b1m3w")))) + "19p8pa03q9mw5vaan7r56xgd13d90ssiz0flbrkvpfrir2105ybq")))) (build-system r-build-system) (propagated-inputs `(("r-base64enc" ,r-base64enc) @@ -3765,8 +3765,10 @@ features present in other programming languages.") ("r-jsonlite" ,r-jsonlite) ("r-lazyeval" ,r-lazyeval) ("r-magrittr" ,r-magrittr) + ("r-promises" ,r-promises) ("r-purrr" ,r-purrr) ("r-rcolorbrewer" ,r-rcolorbrewer) + ("r-rlang" ,r-rlang) ("r-scales" ,r-scales) ("r-tibble" ,r-tibble) ("r-tidyr" ,r-tidyr) From 5dbe7aa92026ef7143d36036570e7e027ab85b64 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:01:09 +0200 Subject: [PATCH 084/208] gnu: r-googlesheets: Update to 0.3.0. * gnu/packages/statistics.scm (r-googlesheets): Update to 0.3.0. [propagated-inputs]: Add r-tibble. --- gnu/packages/statistics.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 68255ccf3a..dd7494db49 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3850,14 +3850,14 @@ character vector.") (define-public r-googlesheets (package (name "r-googlesheets") - (version "0.2.2") + (version "0.3.0") (source (origin (method url-fetch) (uri (cran-uri "googlesheets" version)) (sha256 (base32 - "18q0xmxn09b52rmky7gr5flp0awndcnsgb7zcvkzvkrkvmwad52b")))) + "11q07nxys72wkxx9mawmjyf20gvwvrb7h3gpa73h6lgh2vgrwnv8")))) (build-system r-build-system) (propagated-inputs `(("r-cellranger" ,r-cellranger) @@ -3867,6 +3867,7 @@ character vector.") ("r-purrr" ,r-purrr) ("r-readr" ,r-readr) ("r-stringr" ,r-stringr) + ("r-tibble" ,r-tibble) ("r-tidyr" ,r-tidyr) ("r-xml2" ,r-xml2))) (home-page "https://github.com/jennybc/googlesheets") From c183fa26881d363c2c078dad534c9098e05456cd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:12:31 +0200 Subject: [PATCH 085/208] gnu: Add r-officer. * gnu/packages/cran.scm (r-officer): New variable. --- gnu/packages/cran.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 9d736d4d6e..a7a42573ae 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4656,6 +4656,41 @@ Rd files and roxygen2 comments, as well as many functions for manipulation of references and Rd files.") (license license:gpl2+))) +(define-public r-officer + (package + (name "r-officer") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "officer" version)) + (sha256 + (base32 + "14b6ii9h3fi5g8ja929mfhxps9r7x78flqjdy437y9aygkhmiz2i")))) + (build-system r-build-system) + (propagated-inputs + `(("r-base64enc" ,r-base64enc) + ("r-digest" ,r-digest) + ("r-htmltools" ,r-htmltools) + ("r-magrittr" ,r-magrittr) + ("r-r6" ,r-r6) + ("r-rcpp" ,r-rcpp) + ("r-uuid" ,r-uuid) + ("r-xml2" ,r-xml2) + ("r-zip" ,r-zip))) + (home-page "https://davidgohel.github.io/officer") + (synopsis "Manipulation of Word and PowerPoint documents") + (description + "This package provides tools to access and manipulate Word and PowerPoint +documents from R. The package focuses on tabular and graphical reporting from +R; it also provides two functions that let users get document content into +data objects. A set of functions lets add and remove images, tables and +paragraphs of text in new or existing documents. When working with PowerPoint +presentations, slides can be added or removed; shapes inside slides can also +be added or removed. When working with Word documents, a cursor can be used +to help insert or delete content at a specific location in the document.") + (license license:gpl3))) + (define-public r-writexl (package (name "r-writexl") From bfee9ce88f3c6bd49a1dfc003128d1cb3b7aa421 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:12:47 +0200 Subject: [PATCH 086/208] gnu: Add r-snakecase. * gnu/packages/cran.scm (r-snakecase): New variable. --- gnu/packages/cran.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index a7a42573ae..e26deabd6e 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4691,6 +4691,28 @@ be added or removed. When working with Word documents, a cursor can be used to help insert or delete content at a specific location in the document.") (license license:gpl3))) +(define-public r-snakecase + (package + (name "r-snakecase") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "snakecase" version)) + (sha256 + (base32 + "1g6xai53dl24ws0mwhqrkcv583ziaq505cv3z8v5dhjgy98kilyj")))) + (build-system r-build-system) + (propagated-inputs + `(("r-stringi" ,r-stringi) + ("r-stringr" ,r-stringr))) + (home-page "https://github.com/Tazinho/snakecase") + (synopsis "Convert strings into any case") + (description + "This package provides a consistent, flexible and easy to use tool to +parse and convert strings into cases like snake or camel among others.") + (license license:gpl3))) + (define-public r-writexl (package (name "r-writexl") From de059e4bd3dce2937a4ac7853731f7f65e950475 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:12:57 +0200 Subject: [PATCH 087/208] gnu: Add r-prediction. * gnu/packages/cran.scm (r-prediction): 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 e26deabd6e..64156f5aa6 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4713,6 +4713,30 @@ to help insert or delete content at a specific location in the document.") parse and convert strings into cases like snake or camel among others.") (license license:gpl3))) +(define-public r-prediction + (package + (name "r-prediction") + (version "0.3.6") + (source + (origin + (method url-fetch) + (uri (cran-uri "prediction" version)) + (sha256 + (base32 + "19d7312f5lkqfglfvlgssnvyw7gl161s0xradcry44r1i6qp05j1")))) + (build-system r-build-system) + (propagated-inputs + `(("r-data-table" ,r-data-table))) + (home-page "https://github.com/leeper/prediction") + (synopsis "Tidy, type-safe prediction methods") + (description + "This package provides the @code{prediction()} function, a type-safe +alternative to @code{predict()} that always returns a data frame. The package +currently supports common model types (e.g., @code{\"lm\"}, @code{\"glm\"}) +from the @code{stats} package, as well as numerous other model classes from +other add-on packages.") + (license license:expat))) + (define-public r-writexl (package (name "r-writexl") From cfc06314334933f0045e1851449722a612e28f5b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:14:17 +0200 Subject: [PATCH 088/208] gnu: Add r-sjlabelled. * gnu/packages/cran.scm (r-sjlabelled): New variable. --- gnu/packages/cran.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 64156f5aa6..bf942f03f6 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4737,6 +4737,39 @@ from the @code{stats} package, as well as numerous other model classes from other add-on packages.") (license license:expat))) +(define-public r-sjlabelled + (package + (name "r-sjlabelled") + (version "1.0.13") + (source + (origin + (method url-fetch) + (uri (cran-uri "sjlabelled" version)) + (sha256 + (base32 + "0xizj7mrhnbn8kwjgm076si9w68a7lgrx4vj1sbqmv9jx055h8wv")))) + (build-system r-build-system) + (propagated-inputs + `(("r-broom" ,r-broom) + ("r-dplyr" ,r-dplyr) + ("r-haven" ,r-haven) + ("r-magrittr" ,r-magrittr) + ("r-prediction" ,r-prediction) + ("r-purrr" ,r-purrr) + ("r-rlang" ,r-rlang) + ("r-snakecase" ,r-snakecase) + ("r-tibble" ,r-tibble) + ("r-tidyselect" ,r-tidyselect))) + (home-page "https://github.com/strengejacke/sjlabelled") + (synopsis "Labelled data utility functions") + (description + "This package provides a collection of functions dealing with labelled +data, like reading and writing data between R and other statistical software +packages. This includes easy ways to get, set or change value and variable +label attributes, to convert labelled vectors into factors or numeric (and +vice versa), or to deal with multiple declared missing values.") + (license license:gpl3))) + (define-public r-writexl (package (name "r-writexl") From 1f560b9cdb820569e796caa9949557d9a18f8549 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:14:33 +0200 Subject: [PATCH 089/208] gnu: Add r-sjmisc. * gnu/packages/cran.scm (r-sjmisc): New variable. --- gnu/packages/cran.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index bf942f03f6..65474d8f8b 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4770,6 +4770,43 @@ label attributes, to convert labelled vectors into factors or numeric (and vice versa), or to deal with multiple declared missing values.") (license license:gpl3))) +(define-public r-sjmisc + (package + (name "r-sjmisc") + (version "2.7.4") + (source + (origin + (method url-fetch) + (uri (cran-uri "sjmisc" version)) + (sha256 + (base32 + "11cy09k1d2y5wwqvafqxr01hzk4x68ji2pqlwj7fnpw27i3ap4q4")))) + (build-system r-build-system) + (propagated-inputs + `(("r-broom" ,r-broom) + ("r-crayon" ,r-crayon) + ("r-dplyr" ,r-dplyr) + ("r-haven" ,r-haven) + ("r-magrittr" ,r-magrittr) + ("r-pillar" ,r-pillar) + ("r-purrr" ,r-purrr) + ("r-rlang" ,r-rlang) + ("r-sjlabelled" ,r-sjlabelled) + ("r-stringdist" ,r-stringdist) + ("r-stringr" ,r-stringr) + ("r-tibble" ,r-tibble) + ("r-tidyr" ,r-tidyr) + ("r-tidyselect" ,r-tidyselect))) + (home-page "https://github.com/strengejacke/sjmisc") + (synopsis "Data and variable transformation functions") + (description + "This package is a collection of miscellaneous utility functions, +supporting data transformation tasks like recoding, dichotomizing or grouping +variables, setting and replacing missing values. The data transformation +functions also support labelled data, and all integrate seamlessly into a +tidyverse workflow.") + (license license:gpl3))) + (define-public r-writexl (package (name "r-writexl") From aaed237d1bcae69bd3c65f06633a8a4c88f2e382 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:14:45 +0200 Subject: [PATCH 090/208] gnu: Add r-nortest. * gnu/packages/cran.scm (r-nortest): New variable. --- gnu/packages/cran.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 65474d8f8b..4d6bd269b1 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4807,6 +4807,25 @@ functions also support labelled data, and all integrate seamlessly into a tidyverse workflow.") (license license:gpl3))) +(define-public r-nortest + (package + (name "r-nortest") + (version "1.0-4") + (source + (origin + (method url-fetch) + (uri (cran-uri "nortest" version)) + (sha256 + (base32 + "17r0wpz72z9312c70nwi1i1kp1v9fm1h6jg7q5cx1mc1h420m1d3")))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/nortest/") + (synopsis "Tests for normality") + (description + "This package provides five omnibus tests for testing the composite +hypothesis of normality.") + (license license:gpl2+))) + (define-public r-writexl (package (name "r-writexl") From 0fd7d59dc387eea437482f7584d03c5a20399faa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 15:14:56 +0200 Subject: [PATCH 091/208] gnu: Add r-moonbook. * gnu/packages/cran.scm (r-moonbook): New variable. --- gnu/packages/cran.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 4d6bd269b1..1025ff093a 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4826,6 +4826,35 @@ tidyverse workflow.") hypothesis of normality.") (license license:gpl2+))) +(define-public r-moonbook + (package + (name "r-moonbook") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "moonBook" version)) + (sha256 + (base32 + "0hys56mwbm776ff7dibi8wzyf69qiais9rs1jazv79lk6h56s9s6")))) + (properties `((upstream-name . "moonBook"))) + (build-system r-build-system) + (propagated-inputs + `(("r-magrittr" ,r-magrittr) + ("r-nortest" ,r-nortest) + ("r-purrr" ,r-purrr) + ("r-sjmisc" ,r-sjmisc) + ("r-stringr" ,r-stringr) + ("r-survival" ,r-survival))) + (home-page "https://github.com/cardiomoon/moonBook") + (synopsis "Functions and datasets for the book by Keon-Woong Moon") + (description + "This package provides several analysis-related functions for the book +entitled \"R statistics and graph for medical articles\" (written in Korean), +version 1, by Keon-Woong Moon with Korean demographic data with several plot +functions.") + (license license:gpl2))) + (define-public r-writexl (package (name "r-writexl") From 90708323a13c94bf36a56735da9c21a2203e9fde Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 18:39:43 +0200 Subject: [PATCH 092/208] Revert "gnu: ghc-base-compat: Update to 0.10.4." This reverts commit 0fa2c552fcd5176b0484b77b7f7c94d82d46415e. We may not upgrade base-compat at this point because we haven't upgraded the default GHC yet. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b8ae26346e..31a0d6d7ee 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4231,7 +4231,7 @@ system.") (define-public ghc-base-compat (package (name "ghc-base-compat") - (version "0.10.4") + (version "0.9.3") (source (origin (method url-fetch) @@ -4241,7 +4241,7 @@ system.") ".tar.gz")) (sha256 (base32 - "0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d")))) + "0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x")))) (build-system haskell-build-system) (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck) From f9f4578ba0c4b5b22cdac86e8183dc542d66cc85 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 18:43:11 +0200 Subject: [PATCH 093/208] Revert "gnu: ghc-tasty: Update to 1.1.0.3." This reverts commit 3ad6b8909025a8f4d3e1f1f5ea16bcd0cace557c. --- gnu/packages/haskell-check.scm | 7 +++---- gnu/packages/haskell.scm | 27 +++------------------------ 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index 65333f8269..31407ca259 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -183,7 +183,7 @@ timer functions of different operating systems via a unified API.") (define-public ghc-tasty (package (name "ghc-tasty") - (version "1.1.0.3") + (version "0.11.0.4") (source (origin (method url-fetch) @@ -193,7 +193,7 @@ timer functions of different operating systems via a unified API.") ".tar.gz")) (sha256 (base32 - "14riid753hjqr6lca1kgxpnvq0wykf0k3qc5jpag42hh8bszav22")))) + "05pxjzgbgjdn7477xry0ssjrnmnsydqiq6nm6ck8n2da1baliqp0")))) (build-system haskell-build-system) (inputs `(("ghc-stm" ,ghc-stm) @@ -205,8 +205,7 @@ timer functions of different operating systems via a unified API.") ("ghc-unbounded-delays" ,ghc-unbounded-delays) ("ghc-async" ,ghc-async) ("ghc-ansi-terminal" ,ghc-ansi-terminal) - ("ghc-clock-bootstrap" ,ghc-clock-bootstrap) - ("ghc-wcwidth" ,ghc-wcwidth))) + ("ghc-clock-bootstrap" ,ghc-clock-bootstrap))) (home-page "http://documentup.com/feuerbach/tasty") (synopsis "Modern and extensible testing framework") (description "Tasty is a modern testing framework for Haskell. It lets diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 31a0d6d7ee..eb629cf138 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2870,7 +2870,7 @@ with slicing and Clang-style colored diagnostics.") ;; re-enable them. (arguments `(#:tests? #f)) (inputs - `(("ghc-scientific-bootstrap" ,ghc-scientific-bootstrap) + `(("ghc-scientific" ,ghc-scientific) ("ghc-text" ,ghc-text))) (native-inputs `(("ghc-tasty" ,ghc-tasty) @@ -2885,13 +2885,6 @@ aimed particularly at dealing efficiently with network protocols and complicated text/binary file formats.") (license license:bsd-3))) -(define ghc-attoparsec-bootstrap - (package - (inherit ghc-attoparsec) - (name "ghc-attoparsec-bootstrap") - (arguments '(#:tests? #f)) - (native-inputs '()))) - (define-public ghc-zip-archive (package (name "ghc-zip-archive") @@ -5221,13 +5214,6 @@ occurrences of a substring (the first in case of overlaps) with another.") in migrated modules.") (license license:expat))) -(define ghc-integer-logarithms-bootstrap - (package - (inherit ghc-integer-logarithms) - (name "ghc-integer-logarithms-bootstrap") - (arguments `(#:tests? #f)) - (native-inputs '()))) - (define-public ghc-scientific (package (name "ghc-scientific") @@ -5244,7 +5230,7 @@ in migrated modules.") "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397")))) (build-system haskell-build-system) (inputs - `(("ghc-integer-logarithms-bootstrap" ,ghc-integer-logarithms-bootstrap) + `(("ghc-integer-logarithms" ,ghc-integer-logarithms) ("ghc-text" ,ghc-text) ("ghc-hashable" ,ghc-hashable) ("ghc-primitive" ,ghc-primitive))) @@ -5265,13 +5251,6 @@ and space efficient. They are represented using notation}.") (license license:bsd-3))) -(define ghc-scientific-bootstrap - (package - (inherit ghc-scientific) - (name "ghc-scientific-bootstrap") - (arguments `(#:tests? #f)) - (native-inputs '()))) - (define-public ghc-boxes (package (name "ghc-boxes") @@ -10195,7 +10174,7 @@ backends provided by the @code{Cairo} and @code{Diagrams} libraries.") (inputs `(("ghc-setlocale" ,ghc-setlocale) ("ghc-utf8-string" ,ghc-utf8-string) - ("ghc-attoparsec-bootstrap" ,ghc-attoparsec-bootstrap))) + ("ghc-attoparsec" ,ghc-attoparsec))) (home-page "https://github.com/solidsnack/wcwidth/") (synopsis "Haskell bindings to wcwidth") (description "This package provides Haskell bindings to your system's From 78f2c08c0b780dd2fe72548b901df7eb887da7f1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:22:20 +0200 Subject: [PATCH 094/208] gnu: r-rmarkdown: Use latest version of Pandoc. * gnu/packages/statistics.scm (r-rmarkdown)[propagated-inputs]: Replace "ghc-pandoc-1" with "ghc-pandoc". --- gnu/packages/statistics.scm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index dd7494db49..69c72541a7 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2633,11 +2633,7 @@ certain criterion, e.g., it contains a certain regular file.") ("r-stringr" ,r-stringr) ("r-tinytex" ,r-tinytex) ("r-yaml" ,r-yaml) - ;; rmarkdown works with the 2.x release of Pandoc, but with degraded - ;; functionality. For example, tabbed plots do not currently work with - ;; Pandoc 2. The authors of rmarkdown recommend the use of Pandoc 1 - ;; for the time being. - ("ghc-pandoc" ,ghc-pandoc-1))) + ("ghc-pandoc" ,ghc-pandoc))) (home-page "http://rmarkdown.rstudio.com") (synopsis "Convert R Markdown documents into a variety of formats") (description From 589bd1c4260a429536d3a69a4b7c0a7bcd2e4357 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:23:51 +0200 Subject: [PATCH 095/208] gnu: Add r-flextable. * gnu/packages/cran.scm (r-flextable): 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 1025ff093a..ea3f1c4981 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4855,6 +4855,37 @@ version 1, by Keon-Woong Moon with Korean demographic data with several plot functions.") (license license:gpl2))) +(define-public r-flextable + (package + (name "r-flextable") + (version "0.4.5") + (source + (origin + (method url-fetch) + (uri (cran-uri "flextable" version)) + (sha256 + (base32 + "09j2y0z7rkc0w1cl9pp1cpk6fnzzfr6245mxa3ca42z9k2cy2jfl")))) + (build-system r-build-system) + (propagated-inputs + `(("r-gdtools" ,r-gdtools) + ("r-htmltools" ,r-htmltools) + ("r-knitr" ,r-knitr) + ("r-officer" ,r-officer) + ("r-r6" ,r-r6) + ("r-rmarkdown" ,r-rmarkdown) + ("r-stringr" ,r-stringr) + ("r-xml2" ,r-xml2))) + (home-page "https://davidgohel.github.io/flextable") + (synopsis "Functions for tabular reporting") + (description + "This package provides tools to create pretty tables for HTML documents +and other formats. Functions are provided to let users create tables, modify +and format their content. It extends the @code{officer} package and can be +used within R markdown documents when rendering to HTML and to Word +documents.") + (license license:gpl3))) + (define-public r-writexl (package (name "r-writexl") From cb96d81be47ac5e553dc7b14ce64823a9b6f99a5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:24:12 +0200 Subject: [PATCH 096/208] gnu: r-doby: Update to 4.6-2. * gnu/packages/cran.scm (r-doby): Update to 4.6-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 ea3f1c4981..56b6462fae 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -5079,14 +5079,14 @@ Group (Non-)Overlap considerations.") (define-public r-doby (package (name "r-doby") - (version "4.6-1") + (version "4.6-2") (source (origin (method url-fetch) (uri (cran-uri "doBy" version)) (sha256 (base32 - "1y02awzid23bxz8hx6j8pxd6i7jaq8pdw3k60rag8y6m69incrw5")))) + "02vbv9nfgywg6lsiialkmfnax5z3rkyb9nr8j9l2cp8xi6ml95mb")))) (properties `((upstream-name . "doBy"))) (build-system r-build-system) (propagated-inputs From 2cdd9d4f832bf11d9b419e15fdfcdcf49ec99520 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:24:41 +0200 Subject: [PATCH 097/208] gnu: r-reticulate: Update to 1.10. * gnu/packages/cran.scm (r-reticulate): Update to 1.10. --- 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 56b6462fae..9033fac0a6 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4236,14 +4236,14 @@ obtain a better initial configuration in non-metric MDS.") (define-public r-reticulate (package (name "r-reticulate") - (version "1.8") + (version "1.10") (source (origin (method url-fetch) (uri (cran-uri "reticulate" version)) (sha256 (base32 - "0zwb4ikf021nw7axdn7qlr6bq4xkph3anfy314idkspy1iil4nmr")))) + "0bz3lxbisjwn6cv23090zivpy0bxcncr82g5qja13l37i8xnvqsq")))) (build-system r-build-system) (inputs `(("python" ,python))) (propagated-inputs From e3c1e93e35f25fc746476226e3c7b8c633eb2b8e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:25:04 +0200 Subject: [PATCH 098/208] gnu: r-reprex: Update to 0.2.0. * gnu/packages/cran.scm (r-reprex): Update to 0.2.0. [propagated-inputs]: Add r-clipr, r-rlang, and r-withr. --- gnu/packages/cran.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 9033fac0a6..2c6de3ddd2 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -162,20 +162,23 @@ package is a port of the Python package @code{cssselect}.") (define-public r-reprex (package (name "r-reprex") - (version "0.1.2") + (version "0.2.0") (source (origin (method url-fetch) (uri (cran-uri "reprex" version)) (sha256 (base32 - "105d9vsmqfilgpw8psfb2wyiz1hvcycvh4cqhb3ab37lm3rcavvs")))) + "1l44pxjiz3g0jkk3v6rg5jps3llihfiah0qyv40s0bxvxa6gm8v9")))) (build-system r-build-system) (propagated-inputs `(("r-callr" ,r-callr) + ("r-clipr" ,r-clipr) ("r-knitr" ,r-knitr) + ("r-rlang" ,r-rlang) ("r-rmarkdown" ,r-rmarkdown) - ("r-whisker" ,r-whisker))) + ("r-whisker" ,r-whisker) + ("r-withr" ,r-withr))) (home-page "https://github.com/tidyverse/reprex") (synopsis "Prepare reproducible R code examples for sharing") (description From b72de5b3f674e3b360f1d7c5032d9fb47e0992d7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:25:42 +0200 Subject: [PATCH 099/208] gnu: r-callr: Update to 3.0.0. * gnu/packages/cran.scm (r-callr): Update to 3.0.0. [propagated-inputs]: Add r-base64enc. --- gnu/packages/cran.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 2c6de3ddd2..5c3c7ed821 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -193,17 +193,18 @@ such as copy/paste from an R session.") (define-public r-callr (package (name "r-callr") - (version "2.0.4") + (version "3.0.0") (source (origin (method url-fetch) (uri (cran-uri "callr" version)) (sha256 (base32 - "1053qqq632z94pqq2v5dynjpgyv1b1c8zvidmcllw7zn8zha8gqf")))) + "1rxbxy6kn7dj90z9hpppr9cnpvnxzknba2dwrdp0lrk5dh462qz3")))) (build-system r-build-system) (propagated-inputs - `(("r-r6" ,r-r6) + `(("r-base64enc" ,r-base64enc) + ("r-r6" ,r-r6) ("r-processx" ,r-processx))) (home-page "https://github.com/r-lib/callr#readme") (synopsis "Call R from R") From b00e8ae77105d8fe398f5b9d47812844aa21b5dd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:26:04 +0200 Subject: [PATCH 100/208] gnu: r-glue: Update to 1.3.0. * gnu/packages/cran.scm (r-glue): Update to 1.3.0. --- 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 5c3c7ed821..6ef31e09dd 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -392,14 +392,14 @@ colors are provided.") (define-public r-glue (package (name "r-glue") - (version "1.2.0") + (version "1.3.0") (source (origin (method url-fetch) (uri (cran-uri "glue" version)) (sha256 (base32 - "0vi9y8ix95g6hjqdz9c9y4119apbdjcypdv0ag8cl6vaxqs5n9qr")))) + "1vhw5497lpfr4m8lcx9bs0fgdp4ax0sycrk6n8yksp33qd25m7kq")))) (build-system r-build-system) (home-page "https://github.com/tidyverse/glue") (synopsis "Interpreted string literals") From c73752cac5e74691d9f28c3c8c29a2fbb8291f4c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:26:18 +0200 Subject: [PATCH 101/208] gnu: r-pls: Update to 2.7-0. * gnu/packages/cran.scm (r-pls): Update to 2.7-0. --- 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 6ef31e09dd..c6f4f73f53 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -453,14 +453,14 @@ error stream.") (define-public r-pls (package (name "r-pls") - (version "2.6-0") + (version "2.7-0") (source (origin (method url-fetch) (uri (cran-uri "pls" version)) (sha256 (base32 - "15j59p5x0rkdrk7iqzkipsy50rsyjl31w8zxc4w3v1j5gzxhi1rx")))) + "0xaqqgmdvfh7g7v1m4bcwjqzph68b9cq3bn4kjisfsadl54i5p2x")))) (build-system r-build-system) (home-page "http://mevik.net/work/software/pls.html") (synopsis "Partial Least Squares and Principal Component Regression") From 2d2b95d15141f55f747b785ca0094aeaf3001268 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:26:33 +0200 Subject: [PATCH 102/208] gnu: r-ipred: Update to 0.9-7. * gnu/packages/cran.scm (r-ipred): Update to 0.9-7. --- 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 c6f4f73f53..b2768cc403 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1755,14 +1755,14 @@ provided.") (define-public r-ipred (package (name "r-ipred") - (version "0.9-6") + (version "0.9-7") (source (origin (method url-fetch) (uri (cran-uri "ipred" version)) (sha256 (base32 - "1vrw1pqcpnc04x1r2h9grdfm6bivs358sww5gg90jwlvxcw69lxq")))) + "0q53cqs46501wsd4cmfsmr78l8nv1hkbamk9m0ns5qy02df5r254")))) (build-system r-build-system) (propagated-inputs `(("r-class" ,r-class) From 45c156bf812e227b07e94b0420d41ed57ae10220 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:26:58 +0200 Subject: [PATCH 103/208] gnu: r-broom: Update to 0.5.0. * gnu/packages/cran.scm (r-broom): Update to 0.5.0. [propagated-inputs]: Add r-backports, r-dplyr, r-purrr, and r-tibble; remove r-plyr and r-psych. --- gnu/packages/cran.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index b2768cc403..4cf7d6295e 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1816,22 +1816,23 @@ created using basic graphics.") (define-public r-broom (package (name "r-broom") - (version "0.4.5") + (version "0.5.0") (source (origin (method url-fetch) (uri (cran-uri "broom" version)) (sha256 (base32 - "1mrrqqw1bmjf2v88ziqwb5y86g29h0a3rsx2jpw0hrzrzb8i5kcb")))) + "1r3831vq0fd5sh5841xr844sghg88z7ws91hg4jgnzbbkxfjp4ag")))) (build-system r-build-system) (propagated-inputs - `(("r-dplyr" ,r-dplyr) + `(("r-backports" ,r-backports) + ("r-dplyr" ,r-dplyr) ("r-nlme" ,r-nlme) - ("r-plyr" ,r-plyr) - ("r-psych" ,r-psych) + ("r-purrr" ,r-purrr) ("r-reshape2" ,r-reshape2) ("r-stringr" ,r-stringr) + ("r-tibble" ,r-tibble) ("r-tidyr" ,r-tidyr))) (home-page "https://github.com/tidyverse/broom") (synopsis "Convert statistical analysis objects into tidy data frames") From dc66835226858236c12c498cc9de0e98c8c86e18 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:32:40 +0200 Subject: [PATCH 104/208] gnu: Add r-ucminf. * gnu/packages/cran.scm (r-ucminf): 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 4cf7d6295e..f64b48da5f 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1981,6 +1981,30 @@ can be computed between character vectors while taking proper care of encoding or between integer vectors representing generic sequences.") (license license:gpl3+))) +(define-public r-ucminf + (package + (name "r-ucminf") + (version "1.1-4") + (source + (origin + (method url-fetch) + (uri (cran-uri "ucminf" version)) + (sha256 + (base32 + "01vggwg1w71k98qs6fhb0x1843vi322mf4g3hbclks94kcpkisx2")))) + (build-system r-build-system) + (native-inputs `(("gfortran" ,gfortran))) + (home-page "https://cran.r-project.org/web/packages/ucminf/") + (synopsis "General-purpose unconstrained non-linear optimization") + (description + "This package provides an implementation of an algorithm for +general-purpose unconstrained non-linear optimization. The algorithm is of +quasi-Newton type with BFGS updating of the inverse Hessian and soft line +search with a trust region type monitoring of the input to the line search +algorithm. The interface of @code{ucminf} is designed for easy interchange +with the package @code{optim}.") + (license license:gpl2+))) + (define-public r-jomo (package (name "r-jomo") From b8f6e2f82a733759017269170e7b8813f04a9425 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:32:50 +0200 Subject: [PATCH 105/208] gnu: Add r-ordinal. * gnu/packages/cran.scm (r-ordinal): New variable. --- gnu/packages/cran.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index f64b48da5f..590d2c90d3 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2005,6 +2005,33 @@ algorithm. The interface of @code{ucminf} is designed for easy interchange with the package @code{optim}.") (license license:gpl2+))) +(define-public r-ordinal + (package + (name "r-ordinal") + (version "2018.8-25") + (source + (origin + (method url-fetch) + (uri (cran-uri "ordinal" version)) + (sha256 + (base32 + "03cv9hcrw8j3lhamzhz8sk2p3ns4cw9z41x49h301k2b3pajv43h")))) + (build-system r-build-system) + (propagated-inputs + `(("r-mass" ,r-mass) + ("r-matrix" ,r-matrix) + ("r-numderiv" ,r-numderiv) + ("r-ucminf" ,r-ucminf))) + (home-page "https://github.com/runehaubo/ordinal") + (synopsis "Regression models for ordinal data") + (description + "This package provides an implementation of cumulative link (mixed) +models also known as ordered regression models, proportional odds models, +proportional hazards models for grouped survival times and ordered models. +Estimation is via maximum likelihood and mixed models are fitted with the +Laplace approximation and adaptive Gauss-Hermite quadrature.") + (license license:gpl2+))) + (define-public r-jomo (package (name "r-jomo") From e7630cc93182f38b486c1c6825bf7a9ca5c3a6b0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:27:42 +0200 Subject: [PATCH 106/208] gnu: r-jomo: Update to 2.6-4. * gnu/packages/cran.scm (r-jomo): Update to 2.6-4. [propagated-inputs]: Add r-ordinal. --- gnu/packages/cran.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 590d2c90d3..8f9a463a0f 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2035,17 +2035,18 @@ Laplace approximation and adaptive Gauss-Hermite quadrature.") (define-public r-jomo (package (name "r-jomo") - (version "2.6-3") + (version "2.6-4") (source (origin (method url-fetch) (uri (cran-uri "jomo" version)) (sha256 (base32 - "14s8q0j5zgl1g1pfxg3a4y1jzvs0wl61ir4992wsj7safskj7zvi")))) + "05g2rj9g7rgyb22b0gybw042nydyqsqsb31v05hifzavri8ij01x")))) (build-system r-build-system) (propagated-inputs `(("r-lme4" ,r-lme4) + ("r-ordinal" ,r-ordinal) ("r-survival" ,r-survival))) (home-page "https://cran.r-project.org/web/packages/jomo/") (synopsis "Multilevel Joint Modelling Multiple Imputation") From a7265593d3385423adc2dbeaeb4827db586b2e34 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:33:37 +0200 Subject: [PATCH 107/208] gnu: r-pan: Update to 1.6. * gnu/packages/cran.scm (r-pan): Update to 1.6. --- 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 8f9a463a0f..46cb3e16a5 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2062,14 +2062,14 @@ impute compatibly with the substantive model.") (define-public r-pan (package (name "r-pan") - (version "1.4") + (version "1.6") (source (origin (method url-fetch) (uri (cran-uri "pan" version)) (sha256 (base32 - "1p3nigmhrnlch86g89hn7l0wvkifx3k9n59g0psi95yck43kza76")))) + "1dk3jjj826p7xrz10qz04vyc068xnypg7bp0pj4c32z3da0xzh5d")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) (home-page "https://cran.r-project.org/web/packages/pan/") From 1b3b2a72eeaa5a134e0db8928f43e42340df36f6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:33:48 +0200 Subject: [PATCH 108/208] gnu: r-mice: Update to 3.3.0. * gnu/packages/cran.scm (r-mice): Update to 3.3.0. --- 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 46cb3e16a5..3865ffa150 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2107,14 +2107,14 @@ analysis of multiply imputed data sets.") (define-public r-mice (package (name "r-mice") - (version "3.1.0") + (version "3.3.0") (source (origin (method url-fetch) (uri (cran-uri "mice" version)) (sha256 (base32 - "0xpn215yfzib4hw09cwilnyg9zbvq460njavfvm84mvgwbm25byi")))) + "1p0ipbqk5aqdi7iikw3qrjyvdi9sdhpnw1h5mwakwvv0yl0pzbyx")))) (build-system r-build-system) (propagated-inputs `(("r-broom" ,r-broom) From 69bf449bf10fe3c6ea5fc643ee49ed6ee8e50b84 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:34:29 +0200 Subject: [PATCH 109/208] gnu: r-xts: Update to 0.11-0. * gnu/packages/cran.scm (r-xts): Update to 0.11-0. [native-inputs]: Remove. --- gnu/packages/cran.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 3865ffa150..afba068dd6 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2312,17 +2312,16 @@ training models for classification or ranking.") (define-public r-xts (package (name "r-xts") - (version "0.10-2") + (version "0.11-0") (source (origin (method url-fetch) (uri (cran-uri "xts" version)) (sha256 (base32 - "1i11fczks4lh8rpi6xbm9bm7f3jpcp6xw03kv178g3n3361qhmc1")))) + "1v50yn4bsjzdyk7r90isn6dxmpkapillrhpx3gqsshd180vwzqk9")))) (build-system r-build-system) (propagated-inputs `(("r-zoo" ,r-zoo))) - (native-inputs `(("gfortran" ,gfortran))) (home-page "https://github.com/joshuaulrich/xts") (synopsis "Extensible time series") (description From 6f5b157e3dab1ee7db0e62552ba6350b91c66d1e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:34:57 +0200 Subject: [PATCH 110/208] gnu: r-pillar: Update to 1.3.0. * gnu/packages/cran.scm (r-pillar): Update to 1.3.0. [propagated-inputs]: Add r-fansi. --- gnu/packages/cran.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index afba068dd6..7d2f93a394 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2798,18 +2798,19 @@ display.") (define-public r-pillar (package (name "r-pillar") - (version "1.2.3") + (version "1.3.0") (source (origin (method url-fetch) (uri (cran-uri "pillar" version)) (sha256 (base32 - "1rzhssprqgam1nq3s0f5rzxhxsq02azcghvxf6k8kmsmddf1n7f8")))) + "1q6arybmfqxhp5zqj1fri5pb8v7ywcv7bmgf81rrmgl892p4bn5f")))) (build-system r-build-system) (propagated-inputs `(("r-cli" ,r-cli) ("r-crayon" ,r-crayon) + ("r-fansi" ,r-fansi) ("r-rlang" ,r-rlang) ("r-utf8" ,r-utf8))) (home-page "https://github.com/r-lib/pillar") From d97d98e142e40820807b050c656df40a33e8d020 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:35:24 +0200 Subject: [PATCH 111/208] gnu: r-tinytex: Update to 0.8. * gnu/packages/cran.scm (r-tinytex): Update to 0.8. --- 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 7d2f93a394..b7827931c1 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2843,14 +2843,14 @@ terminals.") (define-public r-tinytex (package (name "r-tinytex") - (version "0.6") + (version "0.8") (source (origin (method url-fetch) (uri (cran-uri "tinytex" version)) (sha256 (base32 - "16y9dldaff2kx1fkm92p7zlph0dcrdmlmavpdgf5y9jbhmc8g83f")))) + "1bgpr5i5399jf9n6pg2mm4aamisbhppg082ad0wv1j4g0rlxf1gy")))) (build-system r-build-system) (propagated-inputs `(("r-xfun" ,r-xfun))) From e32368c130893da22b35b4318f06606baacd5056 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:35:46 +0200 Subject: [PATCH 112/208] gnu: r-metap: Update to 1.0. * gnu/packages/cran.scm (r-metap): Update to 1.0. [propagated-inputs]: Add r-rdpack. --- gnu/packages/cran.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index b7827931c1..784f476145 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2867,17 +2867,18 @@ automatically.") (define-public r-metap (package (name "r-metap") - (version "0.9") + (version "1.0") (source (origin (method url-fetch) (uri (cran-uri "metap" version)) (sha256 (base32 - "03vg0mb6q7j2z0pkxykbak0hcp6dcak7zxs1lw9hswz9kqrq5jhz")))) + "18rzvqfzyk8fn54gjvy2qd21nk9w69j7ihww477ma3f3ab6i982h")))) (build-system r-build-system) (propagated-inputs - `(("r-lattice" ,r-lattice))) + `(("r-lattice" ,r-lattice) + ("r-rdpack" ,r-rdpack))) (home-page "http://www.dewey.myzen.co.uk/meta/meta.html") (synopsis "Meta-analysis of significance values") (description From be5642eb69d3b0dba1685742291b5d635f004c66 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:36:12 +0200 Subject: [PATCH 113/208] gnu: r-statnet-common: Update to 4.1.4. * gnu/packages/cran.scm (r-statnet-common): Update to 4.1.4. --- 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 784f476145..fb398f56b8 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2912,14 +2912,14 @@ supports arbitrary vertex/edge/graph attributes.") (define-public r-statnet-common (package (name "r-statnet-common") - (version "4.1.2") + (version "4.1.4") (source (origin (method url-fetch) (uri (cran-uri "statnet.common" version)) (sha256 (base32 - "0h3g687214rlycca0fjrpy1lqbqsrginxqhmhl2mb2jinqqxcfgd")))) + "14dydm4c4dzc4v6ldxpn04q551nczzfablwibrd8lzgja8x9ksic")))) (properties `((upstream-name . "statnet.common"))) (build-system r-build-system) From 1fe9919a575b5d2d97dc7dee65251a2689709ed4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:36:31 +0200 Subject: [PATCH 114/208] gnu: r-tsa: Update to 1.2. * gnu/packages/cran.scm (r-tsa): Update to 1.2. [propagated-inputs]: Remove r-tseries. --- gnu/packages/cran.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index fb398f56b8..478df95eaf 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -3141,21 +3141,20 @@ University Press, 2000.") (define-public r-tsa (package (name "r-tsa") - (version "1.01") + (version "1.2") (source (origin (method url-fetch) (uri (cran-uri "TSA" version)) (sha256 (base32 - "0cm97hwxm6vfgy9mc3kgwq6dnmn86p8a4avnfjbai048qnwrn6hx")))) + "0gjfqibwdznz0nka95k4fjm935svxjpnqfywwz403crn2lh30h6q")))) (properties `((upstream-name . "TSA"))) (build-system r-build-system) (propagated-inputs `(("r-leaps" ,r-leaps) ("r-locfit" ,r-locfit) - ("r-mgcv" ,r-mgcv) - ("r-tseries" ,r-tseries))) + ("r-mgcv" ,r-mgcv))) (home-page "http://www.stat.uiowa.edu/~kchan/TSA.htm") (synopsis "Time series analysis") (description From 19950821d74e5ae008919f28511bb8caa8c516ce Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:37:05 +0200 Subject: [PATCH 115/208] gnu: r-heatmaply: Update to 0.15.2. * gnu/packages/cran.scm (r-heatmaply): Update to 0.15.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 478df95eaf..706f612344 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -3407,14 +3407,14 @@ exponentiation.") (define-public r-heatmaply (package (name "r-heatmaply") - (version "0.14.1") + (version "0.15.2") (source (origin (method url-fetch) (uri (cran-uri "heatmaply" version)) (sha256 (base32 - "03p2caclhfgqgpx3wwck5h06jy3mxgs05gjmwkb7hmwghkjh41jc")))) + "0h8s5djzj4mrmaswlcaap6jbwxrkbzc43bbqik3qf8vrqz335w04")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) From 7a96c4e0a00e0c527862df289aa48cab231380dc Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:39:09 +0200 Subject: [PATCH 116/208] gnu: r-fnn: Update to 1.1.2.1. * gnu/packages/cran.scm (r-fnn): Update to 1.1.2.1. --- 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 706f612344..9e7cb04f91 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -3763,14 +3763,14 @@ multivariate plot methods.") (define-public r-fnn (package (name "r-fnn") - (version "1.1") + (version "1.1.2.1") (source (origin (method url-fetch) (uri (cran-uri "FNN" version)) (sha256 (base32 - "1kncmiaraq1mrykb9fj3fsxswabk3l71fnp1vks0x9aay5xfk8mj")))) + "1n61jrcmakqif8f827x4qnlhm2jqpj5fgjj65c4p0kdd8lzw8pqp")))) (properties `((upstream-name . "FNN"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/FNN") From 12132229b0c9c57b1f99db158e02a81922a1aabf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:39:23 +0200 Subject: [PATCH 117/208] gnu: r-maptools: Update to 0.9-3. * gnu/packages/cran.scm (r-maptools): Update to 0.9-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 9e7cb04f91..116fdf42cb 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4055,14 +4055,14 @@ simple method for converting between file types.") (define-public r-maptools (package (name "r-maptools") - (version "0.9-2") + (version "0.9-3") (source (origin (method url-fetch) (uri (cran-uri "maptools" version)) (sha256 (base32 - "075lmb3b62171cw2dg8fv1vwmvfzg39r1ji7jwb8s5k9dz88ry1v")))) + "0hxbv01im9zk1qrwgigpc510w6x0kzdzip4gx2jzfqmmwr8m17r8")))) (build-system r-build-system) (propagated-inputs `(("r-foreign" ,r-foreign) From 2e6909baf0512cb5f4de9553e6dad3329db7e47c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:39:46 +0200 Subject: [PATCH 118/208] gnu: r-later: Update to 0.7.4. * gnu/packages/cran.scm (r-later): Update to 0.7.4. --- 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 116fdf42cb..82111ff96e 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4083,14 +4083,14 @@ exchanging spatial objects with other R packages.") (define-public r-later (package (name "r-later") - (version "0.7.3") + (version "0.7.4") (source (origin (method url-fetch) (uri (cran-uri "later" version)) (sha256 (base32 - "04j2phymxgkk4hv9pfa5w3s98w5d7fvm11blrdhxmray4n618msw")))) + "125zc499gj702x2bch95lsfzk2qb4dzv3604x9afym2i3ylrmm64")))) (build-system r-build-system) (propagated-inputs `(("r-bh" ,r-bh) From a9b02ddd73adf938d5ef68658c2873dac64b7f04 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:39:58 +0200 Subject: [PATCH 119/208] gnu: r-codedepends: Update to 0.6.5. * gnu/packages/cran.scm (r-codedepends): Update to 0.6.5. [propagated-inputs]: Add r-graph. --- gnu/packages/cran.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 82111ff96e..8eac103109 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4180,18 +4180,19 @@ it.") (define-public r-codedepends (package (name "r-codedepends") - (version "0.5-3") + (version "0.6.5") (source (origin (method url-fetch) (uri (cran-uri "CodeDepends" version)) (sha256 (base32 - "03p82s0abca2jimzqvxdzykfzca7c7fhm5xsjxybcksr4gggr5sc")))) + "0l7kiv3awx50glf5cs841b4zzsff1ml90f0zr868ygvwsr4ps1hq")))) (properties `((upstream-name . "CodeDepends"))) (build-system r-build-system) (propagated-inputs `(("r-codetools" ,r-codetools) + ("r-graph" ,r-graph) ("r-xml" ,r-xml))) (home-page "http://cran.r-project.org/web/packages/CodeDepends") (synopsis "Analysis of R code for reproducible research and code comprehension") From caaec8865117a15392a5220fe29f0acacef1a318 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:40:20 +0200 Subject: [PATCH 120/208] gnu: r-ggpubr: Update to 0.1.8. * gnu/packages/cran.scm (r-ggpubr): Update to 0.1.8. [propagated-inputs]: Add r-glue and r-polynom. --- gnu/packages/cran.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 8eac103109..9f3d1bfd09 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4411,14 +4411,14 @@ and adds the annotation to the plot.") (define-public r-ggpubr (package (name "r-ggpubr") - (version "0.1.7") + (version "0.1.8") (source (origin (method url-fetch) (uri (cran-uri "ggpubr" version)) (sha256 (base32 - "110ny8p41kmbz0a5rl0mv9cqpjkx6yr3ybflp1r0fmcvhwv7cr3i")))) + "0psl2zndm4wk6nnj1nv305islpxfvfgd87gjh2ph8yqn4mxpnfi1")))) (build-system r-build-system) (propagated-inputs `(("r-cowplot" ,r-cowplot) @@ -4427,8 +4427,10 @@ and adds the annotation to the plot.") ("r-ggrepel" ,r-ggrepel) ("r-ggsci" ,r-ggsci) ("r-ggsignif" ,r-ggsignif) + ("r-glue" ,r-glue) ("r-gridextra" ,r-gridextra) ("r-magrittr" ,r-magrittr) + ("r-polynom" ,r-polynom) ("r-purrr" ,r-purrr) ("r-scales" ,r-scales) ("r-tidyr" ,r-tidyr))) From 5dfe491290b14a1ee7efd70f9cd083969c24e1c2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:46:12 +0200 Subject: [PATCH 121/208] gnu: r-graph: Move from bioinformatics to bioconductor. * gnu/packages/bioinformatics.scm (r-graph): Move from here... * gnu/packages/bioconductor.scm (r-graph): ...to here. --- gnu/packages/bioconductor.scm | 19 +++++++++++++++++++ gnu/packages/bioinformatics.scm | 19 ------------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 1ff86779e8..fc01c2283b 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -360,6 +360,25 @@ cutoffs. The procedures are directly applicable to identifying differentially expressed genes in DNA microarray experiments.") (license license:lgpl3))) +(define-public r-graph + (package + (name "r-graph") + (version "1.58.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "graph" version)) + (sha256 + (base32 + "1zx445lk36g1s6i5dbhhf00nzzazyklfjxxjfax6q8hnhvgm9759")))) + (build-system r-build-system) + (propagated-inputs + `(("r-biocgenerics" ,r-biocgenerics))) + (home-page "https://bioconductor.org/packages/graph") + (synopsis "Handle graph data structures in R") + (description + "This package implements some simple graph handling capabilities for R.") + (license license:artistic2.0))) + (define-public r-chippeakanno (package (name "r-chippeakanno") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 760b716408..a03d37c5b0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7787,25 +7787,6 @@ extracting the desired features in a convenient format.") information about the latest version of the Gene Ontologies.") (license license:artistic2.0))) -(define-public r-graph - (package - (name "r-graph") - (version "1.58.0") - (source (origin - (method url-fetch) - (uri (bioconductor-uri "graph" version)) - (sha256 - (base32 - "1zx445lk36g1s6i5dbhhf00nzzazyklfjxxjfax6q8hnhvgm9759")))) - (build-system r-build-system) - (propagated-inputs - `(("r-biocgenerics" ,r-biocgenerics))) - (home-page "https://bioconductor.org/packages/graph") - (synopsis "Handle graph data structures in R") - (description - "This package implements some simple graph handling capabilities for R.") - (license license:artistic2.0))) - (define-public r-topgo (package (name "r-topgo") From a207bca2adf5371aabe41f28203c0e3e7bfbacad Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:47:19 +0200 Subject: [PATCH 122/208] gnu: r-codedepends: Move from cran to bioconductor. * gnu/packages/cran.scm (r-codedepends): Move from here... * gnu/packages/bioconductor.scm (r-codedepends): ...to here. --- gnu/packages/bioconductor.scm | 28 ++++++++++++++++++++++++++++ gnu/packages/cran.scm | 28 ---------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index fc01c2283b..a47a5aad05 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -379,6 +379,34 @@ expressed genes in DNA microarray experiments.") "This package implements some simple graph handling capabilities for R.") (license license:artistic2.0))) +(define-public r-codedepends + (package + (name "r-codedepends") + (version "0.6.5") + (source + (origin + (method url-fetch) + (uri (cran-uri "CodeDepends" version)) + (sha256 + (base32 + "0l7kiv3awx50glf5cs841b4zzsff1ml90f0zr868ygvwsr4ps1hq")))) + (properties `((upstream-name . "CodeDepends"))) + (build-system r-build-system) + (propagated-inputs + `(("r-codetools" ,r-codetools) + ("r-graph" ,r-graph) + ("r-xml" ,r-xml))) + (home-page "http://cran.r-project.org/web/packages/CodeDepends") + (synopsis "Analysis of R code for reproducible research and code comprehension") + (description + "This package provides tools for analyzing R expressions or blocks of +code and determining the dependencies between them. It focuses on R scripts, +but can be used on the bodies of functions. There are many facilities +including the ability to summarize or get a high-level view of code, +determining dependencies between variables, code improvement suggestions.") + ;; Any version of the GPL + (license (list license:gpl2+ license:gpl3+)))) + (define-public r-chippeakanno (package (name "r-chippeakanno") diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 9f3d1bfd09..447be5657a 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -4177,34 +4177,6 @@ to the cluster management tool @code{sfCluster}, but can also used without it.") (license license:gpl2+))) -(define-public r-codedepends - (package - (name "r-codedepends") - (version "0.6.5") - (source - (origin - (method url-fetch) - (uri (cran-uri "CodeDepends" version)) - (sha256 - (base32 - "0l7kiv3awx50glf5cs841b4zzsff1ml90f0zr868ygvwsr4ps1hq")))) - (properties `((upstream-name . "CodeDepends"))) - (build-system r-build-system) - (propagated-inputs - `(("r-codetools" ,r-codetools) - ("r-graph" ,r-graph) - ("r-xml" ,r-xml))) - (home-page "http://cran.r-project.org/web/packages/CodeDepends") - (synopsis "Analysis of R code for reproducible research and code comprehension") - (description - "This package provides tools for analyzing R expressions or blocks of -code and determining the dependencies between them. It focuses on R scripts, -but can be used on the bodies of functions. There are many facilities -including the ability to summarize or get a high-level view of code, -determining dependencies between variables, code improvement suggestions.") - ;; Any version of the GPL - (license (list license:gpl2+ license:gpl3+)))) - (define-public r-rappdirs (package (name "r-rappdirs") From c0608f815c4706ede4e7533409f3e7da127b767f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:49:33 +0200 Subject: [PATCH 123/208] gnu: r-adaptivesparsity: Update to 1.6. * gnu/packages/machine-learning.scm (r-adaptivesparsity): Update to 1.6. [propagated-inputs]: Add r-mass and r-matrix. --- gnu/packages/machine-learning.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index a86bdcb5ed..ec917e4442 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -560,13 +560,13 @@ I/O.") (define-public r-adaptivesparsity (package (name "r-adaptivesparsity") - (version "1.4") + (version "1.6") (source (origin (method url-fetch) (uri (cran-uri "AdaptiveSparsity" version)) (sha256 (base32 - "1az7isvalf3kmdiycrfl6s9k9xqk22k1mc6rh8v0jmcz402qyq8z")))) + "0imr5m8mll9j6n4icsv6z9rl5kbnwsp9wvzrg7n90nnmcxq2cz91")))) (properties `((upstream-name . "AdaptiveSparsity"))) (build-system r-build-system) @@ -579,7 +579,9 @@ I/O.") (("PKG_LIBS=" prefix) (string-append prefix "-larmadillo")))))))) (propagated-inputs - `(("r-rcpp" ,r-rcpp) + `(("r-mass" ,r-mass) + ("r-matrix" ,r-matrix) + ("r-rcpp" ,r-rcpp) ("r-rcpparmadillo" ,r-rcpparmadillo))) (inputs `(("armadillo" ,armadillo))) From c28d8d8db06e165faa168a8e197651d941bbb9ee Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:50:14 +0200 Subject: [PATCH 124/208] gnu: r-kernlab: Update to 0.9-27. * gnu/packages/machine-learning.scm (r-kernlab): Update to 0.9-27. --- gnu/packages/machine-learning.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index ec917e4442..7790e78779 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -596,14 +596,14 @@ geometric models.") (define-public r-kernlab (package (name "r-kernlab") - (version "0.9-26") + (version "0.9-27") (source (origin (method url-fetch) (uri (cran-uri "kernlab" version)) (sha256 (base32 - "0xv0slf3ggw3sswsi34416lb1g3h1pqkrr2h7r1n1kvgii3l0jcm")))) + "1m0xqf6gyvwayz7w3c83y32ayvnlz0jicj8ijk808zq9sh7dbbgn")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/kernlab") (synopsis "Kernel-based machine learning tools") From 8da236a377f4c0c6679334bcc76704d858ae088f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:50:43 +0200 Subject: [PATCH 125/208] gnu: r-gtools: Update to 3.8.1. * gnu/packages/statistics.scm (r-gtools): Update to 3.8.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 69c72541a7..4fefdcd7f2 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4091,14 +4091,14 @@ Zurich, including many that are related to graphics.") (define-public r-gtools (package (name "r-gtools") - (version "3.5.0") + (version "3.8.1") (source (origin (method url-fetch) (uri (cran-uri "gtools" version)) (sha256 (base32 - "1xknwk9xlsj027pg0nwiizigcrsc84hdrig0jn0cgcyxj8dabdl6")))) + "0f5syk1qq6cjq6hwymvkiyhzwa389z94722v881ipbfqkd2q8505")))) (build-system r-build-system) (arguments `(#:phases From f0519c8faec872b599debde5f2f91d6dbf57a5b4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:50:59 +0200 Subject: [PATCH 126/208] gnu: r-zoo: Update to 1.8-3. * gnu/packages/statistics.scm (r-zoo): Update to 1.8-3. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 4fefdcd7f2..eb4063c984 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4231,13 +4231,13 @@ mechanism.") (define-public r-zoo (package (name "r-zoo") - (version "1.8-2") + (version "1.8-3") (source (origin (method url-fetch) (uri (cran-uri "zoo" version)) (sha256 (base32 - "1lpwigxmi5sc23xrha4gcsccsm4yfsg0sa97y6vac3pg1lliblvx")))) + "15jmkgwvq2mm9f09vijgx7sff8pszh90fndcwhk2vw9i0p183di0")))) (build-system r-build-system) (propagated-inputs `(("r-lattice" ,r-lattice))) From e5db6890adb1b842d4ad5dc3313a65f6628ec3bf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:51:15 +0200 Subject: [PATCH 127/208] gnu: r-ztable: Update to 0.2.0. * gnu/packages/statistics.scm (r-ztable): Update to 0.2.0. [propagated-inputs]: Add r-flextable, r-magrittr, r-moonbook, r-officer, r-rcolorbrewer, r-scales, and r-stringr. --- gnu/packages/statistics.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index eb4063c984..ccff5fc293 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4251,14 +4251,22 @@ series of numeric vectors/matrices and factors.") (define-public r-ztable (package (name "r-ztable") - (version "0.1.8") + (version "0.2.0") (source (origin (method url-fetch) (uri (cran-uri "ztable" version)) (sha256 (base32 - "1hk5k9614n52dpfrhdws06w4gvwhnz8q47x4cwxx88qmrzm8z2m3")))) + "0g7khk5ifsdh9p31wlwh2l5mn1hzxzpv6qcn1wh34vsfjdmijjwy")))) (build-system r-build-system) + (propagated-inputs + `(("r-flextable" ,r-flextable) + ("r-magrittr" ,r-magrittr) + ("r-moonbook" ,r-moonbook) + ("r-officer" ,r-officer) + ("r-rcolorbrewer" ,r-rcolorbrewer) + ("r-scales" ,r-scales) + ("r-stringr" ,r-stringr))) (home-page "https://cran.r-project.org/web/packages/ztable") (synopsis "Zebra-striped tables in LaTeX and HTML formats for R") (description From 314e8e763f9a2b3a3d5f98e8e435691f9dc01501 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:52:05 +0200 Subject: [PATCH 128/208] gnu: r-ggthemes: Update to 4.0.1. * gnu/packages/statistics.scm (r-ggthemes): Update to 4.0.1. [propagated-inputs]: Remove r-assertthat and r-colorspace; add r-purrr, r-stringr, and r-tibble. --- gnu/packages/statistics.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index ccff5fc293..51a3c1fada 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4361,19 +4361,20 @@ data at that region, and avoids over-plotting.") (define-public r-ggthemes (package (name "r-ggthemes") - (version "3.5.0") + (version "4.0.1") (source (origin (method url-fetch) (uri (cran-uri "ggthemes" version)) (sha256 (base32 - "0drbzzb4i5jq1579fx1wmgh87ybnswjn7srak2l8g771ip49xwb8")))) + "0y6570wv135sf7pv57l7bqilzw47rziaqx4vsk45pf1w4lmj0w8b")))) (build-system r-build-system) (propagated-inputs - `(("r-assertthat" ,r-assertthat) - ("r-colorspace" ,r-colorspace) - ("r-ggplot2" ,r-ggplot2) - ("r-scales" ,r-scales))) + `(("r-ggplot2" ,r-ggplot2) + ("r-purrr" ,r-purrr) + ("r-scales" ,r-scales) + ("r-stringr" ,r-stringr) + ("r-tibble" ,r-tibble))) (home-page "https://cran.rstudio.com/web/packages/ggthemes") (synopsis "Extra themes, scales and geoms for @code{ggplot2}") (description "This package provides extra themes and scales for From 8e499d756a4a7c5f875e023da2500536bdc10258 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:53:17 +0200 Subject: [PATCH 129/208] gnu: r-rann: Update to 2.6. * gnu/packages/statistics.scm (r-rann): Update to 2.6. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 51a3c1fada..d832003791 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4413,13 +4413,13 @@ dispersion modeling and Tweedie power-law families.") (define-public r-rann (package (name "r-rann") - (version "2.5.1") + (version "2.6") (source (origin (method url-fetch) (uri (cran-uri "RANN" version)) (sha256 (base32 - "0il5i99vbcagnxvb15af5n37g04a4q1x96bz73zh3jhki9fpw9vm")))) + "1r6rivh9ba4gwnzryip0aiwsbm46zma7nvd9z5y456p2dgzp9lii")))) (properties `((upstream-name . "RANN"))) (build-system r-build-system) From 0d279d607aeccc2365a4502db4c58ec247724bb4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:53:34 +0200 Subject: [PATCH 130/208] gnu: r-robustbase: Update to 0.93-2. * gnu/packages/statistics.scm (r-robustbase): Update to 0.93-2. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index d832003791..07e180cf53 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4735,14 +4735,14 @@ can be efficiently implemented directly in the R language.") (define-public r-robustbase (package (name "r-robustbase") - (version "0.93-0") + (version "0.93-2") (source (origin (method url-fetch) (uri (cran-uri "robustbase" version)) (sha256 (base32 - "130pzibn5cb8mycv8byc6npzcpddghz8m7jqwk15qmx4g3cj8zgy")))) + "1632p73iv9iqqm0v3k9rfv9way0him3fl35si1nly9wi5kpq5ci7")))) (build-system r-build-system) (inputs `(("gfortran" ,gfortran))) From f33a4748b7343a0f2ae3e560047b6eeca0f95235 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:53:52 +0200 Subject: [PATCH 131/208] gnu: r-modelmetrics: Update to 1.2.0. * gnu/packages/statistics.scm (r-modelmetrics): Update to 1.2.0. [propagated-inputs]: Add r-data-table. --- gnu/packages/statistics.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 07e180cf53..ce7335619b 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -5011,18 +5011,19 @@ decompositions of such matrices, and solutions of linear systems.") (define-public r-modelmetrics (package (name "r-modelmetrics") - (version "1.1.0") + (version "1.2.0") (source (origin (method url-fetch) (uri (cran-uri "ModelMetrics" version)) (sha256 (base32 - "119xxmzb5biq7k1yxqsf0jmmarmfn6lds9x9hfgv593xlpym6za8")))) + "1sgdyrf6fbsn18gk8slir4a1yhv133kfhyg2crfs759nff4aw89h")))) (properties `((upstream-name . "ModelMetrics"))) (build-system r-build-system) (propagated-inputs - `(("r-rcpp" ,r-rcpp))) + `(("r-rcpp" ,r-rcpp) + ("r-data-table" ,r-data-table))) (home-page "https://cran.r-project.org/web/packages/ModelMetrics") (synopsis "Rapid calculation of model metrics") (description From dff5640a59da533fc91fa285b6d7d7fec2f7e60a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:55:00 +0200 Subject: [PATCH 132/208] gnu: r-rcas: Use standard version of ghc-pandoc-citeproc. * gnu/packages/bioinformatics.scm (r-rcas)[native-inputs]: Replace "ghc-pandoc-citeproc-with-pandoc-1" with "ghc-pandoc-citeproc". --- gnu/packages/bioinformatics.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index a03d37c5b0..028643aeb4 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -8518,7 +8518,7 @@ paired-end data.") `(("r-testthat" ,r-testthat) ;; During vignette building knitr checks that "pandoc-citeproc" ;; is in the PATH. - ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1))) + ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc))) (propagated-inputs `(("r-biocgenerics" ,r-biocgenerics) ("r-biomart" ,r-biomart) From ca248f1db90c2e7b01d734aaa51d330a29fe0937 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:55:56 +0200 Subject: [PATCH 133/208] gnu: pigx-rnaseq: Use latest version of Pandoc. * gnu/packages/bioinformatics.scm (pigx-rnaseq)[inputs]: Replace "ghc-pandoc-citeproc-with-pandoc-1" with "ghc-pandoc-citeproc", and "ghc-pandoc-1" with "ghc-pandoc". --- 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 028643aeb4..99313824e9 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12830,8 +12830,8 @@ once. This package provides tools to perform Drop-seq analyses.") ("r-rtracklayer" ,r-rtracklayer) ("r-rjson" ,r-rjson) ("salmon" ,salmon) - ("ghc-pandoc" ,ghc-pandoc-1) - ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1) + ("ghc-pandoc" ,ghc-pandoc) + ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) ("python-wrapper" ,python-wrapper) ("python-pyyaml" ,python-pyyaml))) (home-page "http://bioinformatics.mdc-berlin.de/pigx/") From 7cd40c8c5dee1b323117ec85787566505be2d9ad Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:56:38 +0200 Subject: [PATCH 134/208] gnu: pigx-chipseq: Use latest version of Pandoc. * gnu/packages/bioinformatics.scm (pigx-chipseq)[inputs]: Replace "ghc-pandoc-citeproc-with-pandoc-1" with "ghc-pandoc-citeproc", and "ghc-pandoc-1" with "ghc-pandoc". --- 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 99313824e9..e1d953561b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12892,8 +12892,8 @@ expression report comparing samples in an easily configurable manner.") ("macs" ,macs) ("multiqc" ,multiqc) ("perl" ,perl) - ("ghc-pandoc" ,ghc-pandoc-1) - ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1) + ("ghc-pandoc" ,ghc-pandoc) + ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) ("fastqc" ,fastqc) ("bowtie" ,bowtie) ("idr" ,idr) From c2b4f81e51bab9a3ca6f2d1ba81ab1ff3b573ab4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:56:53 +0200 Subject: [PATCH 135/208] gnu: pigx-bsseq: Use latest version of Pandoc. * gnu/packages/bioinformatics.scm (pigx-bsseq)[inputs]: Replace "ghc-pandoc-citeproc-with-pandoc-1" with "ghc-pandoc-citeproc", and "ghc-pandoc-1" with "ghc-pandoc". --- 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 e1d953561b..7c25a71c6b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12954,8 +12954,8 @@ in an easily configurable manner.") ("r-bookdown" ,r-bookdown) ("r-ggplot2" ,r-ggplot2) ("r-ggbio" ,r-ggbio) - ("ghc-pandoc" ,ghc-pandoc-1) - ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1) + ("ghc-pandoc" ,ghc-pandoc) + ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) ("python-wrapper" ,python-wrapper) ("python-pyyaml" ,python-pyyaml) ("snakemake" ,snakemake-4) From 00a43cb81cecb30d40f9940407c9f1ba08d3d38e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 5 Sep 2018 19:57:09 +0200 Subject: [PATCH 136/208] gnu: pigx-scrnaseq: Use latest version of Pandoc. * gnu/packages/bioinformatics.scm (pigx-scrnaseq)[inputs]: Replace "ghc-pandoc-citeproc-with-pandoc-1" with "ghc-pandoc-citeproc", and "ghc-pandoc-1" with "ghc-pandoc". --- 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 7c25a71c6b..92b6e7d50c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -13005,8 +13005,8 @@ methylation and segmentation.") ("python-magic" ,python-magic) ("python-numpy" ,python-numpy) ("python-loompy" ,python-loompy) - ("ghc-pandoc" ,ghc-pandoc-1) - ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1) + ("ghc-pandoc" ,ghc-pandoc) + ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) ("samtools" ,samtools) ("snakemake" ,snakemake-4) ("star" ,star) From cb341c121919877ae6267a6460c0c17536d06eff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Sep 2018 22:42:16 +0200 Subject: [PATCH 137/208] channels: Fix external channel builds. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes a regression introduced in ca719424455465fca4b872c371daf2a46de88b33 whereby external channels would fail to build due to the lack of (gcrypt …) modules. * guix/channels.scm (channel-instance-derivations): Add 'guile-gcrypt'. Pass it along CORE to 'build-channel-instance'. --- guix/channels.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/guix/channels.scm b/guix/channels.scm index 794383fe22..ebae7489f4 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -207,13 +207,18 @@ INSTANCES." (guix-channel? (channel-instance-channel instance))) instances)) + ;; Guile-Gcrypt is a dependency of CORE-INSTANCE. + (define guile-gcrypt + (module-ref (resolve-interface '(gnu packages gnupg)) + 'guile-gcrypt)) + (mlet %store-monad ((core (build-channel-instance core-instance))) (mapm %store-monad (lambda (instance) (if (eq? instance core-instance) (return core) (build-channel-instance instance - (list core)))) + (list core guile-gcrypt)))) instances))) (define (whole-package-for-legacy name modules) From 37a6cdbf1b3503d3e60840a176318284b1f7ca25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 5 Sep 2018 23:31:51 +0200 Subject: [PATCH 138/208] git: Don't require users to specifiy "origin/" for branches. Fixes . Reported by Eric Brown . * guix/git.scm (update-cached-checkout): Remove "origin/" from default REF. Define CANONICAL-REF and use it instead of REF. (latest-repository-commit): Remove "origin/" from default REF. * guix/channels.scm (%default-channels): Remove "origin/" from 'branch'. --- guix/channels.scm | 2 +- guix/git.scm | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index ebae7489f4..cf833db8b9 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -78,7 +78,7 @@ ;; Default list of channels. (list (channel (name 'guix) - (branch "origin/master") + (branch "master") (url "https://git.savannah.gnu.org/git/guix.git")))) (define (guix-channel? channel) diff --git a/guix/git.scm b/guix/git.scm index c577eba5ee..3d0eb93d9b 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -112,7 +112,7 @@ OID (roughly the commit hash) corresponding to REF." (define* (update-cached-checkout url #:key - (ref '(branch . "origin/master")) + (ref '(branch . "master")) (cache-directory (url-cache-directory url (%repository-cache-directory)))) @@ -122,6 +122,17 @@ to REF. REF is pair whose key is [branch | commit | tag] and value the associated data, respectively [ | | ]." + (define canonical-ref + ;; We used to require callers to specify "origin/" for each branch, which + ;; made little sense since the cache should be transparent to them. So + ;; here we append "origin/" if it's missing and otherwise keep it. + (match ref + (('branch . branch) + `(branch . ,(if (string-prefix? "origin/" branch) + branch + (string-append "origin/" branch)))) + (_ ref))) + (with-libgit2 (let* ((cache-exists? (openable-repository? cache-directory)) (repository (if cache-exists? @@ -130,7 +141,7 @@ data, respectively [ | | ]." ;; Only fetch remote if it has not been cloned just before. (when cache-exists? (remote-fetch (remote-lookup repository "origin"))) - (let ((oid (switch-to-ref repository ref))) + (let ((oid (switch-to-ref repository canonical-ref))) ;; Reclaim file descriptors and memory mappings associated with ;; REPOSITORY as soon as possible. @@ -144,7 +155,7 @@ data, respectively [ | | ]." #:key (cache-directory (%repository-cache-directory)) - (ref '(branch . "origin/master"))) + (ref '(branch . "master"))) "Return two values: the content of the git repository at URL copied into a store directory and the sha1 of the top level commit in this directory. The reference to be checkout, once the repository is fetched, is specified by REF. From a5c70c2e0e91ede6061ba130c27e5fdedbcbf2d8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 6 Sep 2018 02:29:48 +0200 Subject: [PATCH 139/208] gnu: libmpdclient: Update to 2.15. * gnu/packages/mpd.scm (libmpdclient): Update to 2.15. --- 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 2554ec9efd..5c82bf9ba1 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -56,7 +56,7 @@ (define-public libmpdclient (package (name "libmpdclient") - (version "2.14") + (version "2.15") (source (origin (method url-fetch) (uri @@ -65,7 +65,7 @@ "/libmpdclient-" version ".tar.xz")) (sha256 (base32 - "0whk0qw0lsd3kaimdznz0c45bfym0p4885zf4b7pfc7y3dwy510a")))) + "1la60ar6i4ghpscrlgm45kci9b74bvkpsfybhg0ygs4rzpwzdnxl")))) (build-system meson-build-system) (native-inputs `(("pkg-config" ,pkg-config) From d83477adf92f18bd3a19b1ab2d22a0312bbaf294 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 6 Sep 2018 02:23:49 +0200 Subject: [PATCH 140/208] gnu: font-fira-code: Update to 1.205. * gnu/packages/fonts.scm (font-fira-code): Update to 1.205. --- gnu/packages/fonts.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 4d02b4bc62..ce07d3ad4c 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -887,7 +887,7 @@ designed to work well in user interface environments.") (define-public font-fira-code (package (name "font-fira-code") - (version "1.204") + (version "1.205") (source (origin (method url-fetch/zipbomb) (uri (string-append "https://github.com/tonsky/FiraCode/releases/" @@ -895,7 +895,7 @@ designed to work well in user interface environments.") "/FiraCode_" version ".zip")) (sha256 (base32 - "17wky221b3igrqhmxgmqiyv1xdfn0nw471vzhpkrvv1w2w1w1k18")))) + "13bxgf59g6fw5191xclcjzn22hj8jk9k5jjwf7vz07mpjbgadcl5")))) (build-system font-build-system) (home-page "https://mozilla.github.io/Fira/") (synopsis "Monospaced font with programming ligatures") From 79b283e433be171c7917fd5d9f10fa2185862a36 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 6 Sep 2018 02:21:26 +0200 Subject: [PATCH 141/208] gnu: ccache: Update to 3.4.3. * gnu/packages/ccache.scm (ccache): Update to 3.4.3. [arguments]: Remove obsolete 'munge-failing-test' phase. --- gnu/packages/ccache.scm | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm index af06b741a7..af29cee565 100644 --- a/gnu/packages/ccache.scm +++ b/gnu/packages/ccache.scm @@ -30,7 +30,7 @@ (define-public ccache (package (name "ccache") - (version "3.4.2") + (version "3.4.3") (source (origin (method url-fetch) @@ -38,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "1qpy6k9f06kpr6bxy26ncdxcszqv1skcncvczcvksgfncx1v3a0q")))) + "0jjzq5340qw3jm5gkajjkkb5wd0yqqy1dyjw3mf3jy15cakmazi9")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ; for test.sh ("which" ,(@ (gnu packages base) which)))) @@ -49,13 +49,6 @@ (lambda _ (substitute* '("unittest/test_hashutil.c" "test/suites/base.bash") (("#!/bin/sh") (string-append "#!" (which "sh")))) - #t)) - (add-before 'check 'munge-failing-test - (lambda _ - ;; XXX The new ‘Multiple -fdebug-prefix-map’ test added in - ;; 3.3.5 fails (why?). Force it to report success instead. - (substitute* "test/suites/debug_prefix_map.bash" - (("grep \"name\"") "true")) #t))))) (home-page "https://ccache.samba.org/") (synopsis "Compiler cache") From d53aeeafccb91fd03c6c540153720717eceb92a4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 6 Sep 2018 04:53:32 +0200 Subject: [PATCH 142/208] Add missing use-modules clause. This is a follow-up to commit 5dfe491290b14a1ee7efd70f9cd083969c24e1c2. Sorry! * gnu/packages/bioinformatics.scm, gnu/packages/graph.scm: Use (gnu packages bioconductor). --- gnu/packages/bioinformatics.scm | 1 + gnu/packages/graph.scm | 1 + 2 files changed, 2 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 92b6e7d50c..2d5ec6d170 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -51,6 +51,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) + #:use-module (gnu packages bioconductor) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 3b222d6ee8..245ee8f956 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -28,6 +28,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages gcc) + #:use-module (gnu packages bioconductor) #:use-module (gnu packages bioinformatics) #:use-module (gnu packages compression) #:use-module (gnu packages cran) From 96d6c41dfa5d69d4f25c8b53cb74e2ee621165d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 6 Sep 2018 10:43:01 +0200 Subject: [PATCH 143/208] gnu: guile-commonmark: Install .go files to libdir. * gnu/packages/guile.scm (guile-commonmark)[source](snippet): Change the "modir = " and "godir = " line separately, allowing .go files to be installed to $(libdir). --- gnu/packages/guile.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index f594cd13ed..335bd6219f 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1612,8 +1612,10 @@ you send to a FIFO file.") (("ac_subst_vars='") "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n")) (substitute* "Makefile.in" - (("/site/2.0") - "/site/@GUILE_EFFECTIVE_VERSION@")) + (("moddir =.*") + "moddir = $(datadir)/guile/site/@GUILE_EFFECTIVE_VERSION@\n") + (("godir =.*") + "godir = $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")) #t)))) (build-system gnu-build-system) (inputs From b3ca2d8883f7aa5c8505e04427f2d892148f61e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 6 Sep 2018 10:46:07 +0200 Subject: [PATCH 144/208] gnu: hpcguix-web: Update to 9ff40fc. * gnu/packages/web.scm (hpcguix-web): Update to 9ff40fc. [arguments]: In 'wrap-program' phase, add guile-gcrypt, guile-git, and guile-bytestructures to DEPS. --- gnu/packages/web.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 918548513d..9567254424 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -6708,10 +6708,11 @@ compressed JSON header blocks. (license l:expat))) (define-public hpcguix-web - (let ((commit "87cb51611c0f1fd3863b830614ab1364599cf1ca")) + (let ((commit "9ff40fcc77f248901d861756dbbddc80270c380c") + (revision "2")) (package (name "hpcguix-web") - (version (git-version "0.0.1" "1" commit)) + (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -6720,7 +6721,7 @@ compressed JSON header blocks. (file-name (git-file-name name version)) (sha256 (base32 - "0p66fl8r3v73v13fqg9rbqbzbdzvyznchxbq2s1jwq6qfsn2w3gr")))) + "0lxcj9s3wxrv1l7lrxxx374jwzx7h60gxwkbgr46lzcbgvb3k26s")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -6741,10 +6742,13 @@ compressed JSON header blocks. (let* ((out (assoc-ref outputs "out")) (guix (assoc-ref inputs "guix")) (guile (assoc-ref inputs "guile")) + (gcrypt (assoc-ref inputs "guile-gcrypt")) + (git (assoc-ref inputs "guile-git")) + (bs (assoc-ref inputs "guile-bytestructures")) (json (assoc-ref inputs "guile-json")) (guile-cm (assoc-ref inputs "guile-commonmark")) - (deps (list guile guile-cm guix json)) + (deps (list guile gcrypt git bs guile-cm guix json)) (effective (read-line (open-pipe* OPEN_READ From 89874fd15610bc35c586b38a0d575522140ff5b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 6 Sep 2018 10:48:44 +0200 Subject: [PATCH 145/208] gnu: guile-charting: Install .go files to libdir. * gnu/packages/plotutils.scm (guile-charting)[source](modules, snippet): Remove. --- gnu/packages/plotutils.scm | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 0e65cb319f..2a330695c6 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2016, 2017 Nicolas Goaziou ;;; Copyright © 2018 Tobias Geerinckx-Rice @@ -93,15 +93,7 @@ scientific data.") "guile-charting-" version ".tar.gz")) (sha256 (base32 - "0w5qiyv9v0ip5li22x762bm48g8xnw281w66iyw094zdw611pb2m")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Use the standard location for modules. - (substitute* "Makefile.in" - (("godir = .*$") - "godir = $(moddir)\n")) - #t)))) + "0w5qiyv9v0ip5li22x762bm48g8xnw281w66iyw094zdw611pb2m")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.2))) From b290a631a0f9ee9a52095be66c843780dc0366f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 6 Sep 2018 10:49:42 +0200 Subject: [PATCH 146/208] gnu: guile-present: Install .go files to libdir. * gnu/packages/plotutils.scm (guile-present)[source](modules, snippet): Remove. --- gnu/packages/gtk.scm | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 6c43a3ab56..4daaad0ebc 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -903,14 +903,7 @@ images onto Cairo surfaces.") (sha256 (base32 "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m")) - (patches (search-patches "guile-present-coding.patch")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "Makefile.in" - (("godir = .*$") - "godir = $(moddir)\n")) - #t)))) + (patches (search-patches "guile-present-coding.patch")))) (build-system gnu-build-system) (arguments '(#:phases From 888b64038db00c73467a05320c7c7f03070e5621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 6 Sep 2018 10:59:32 +0200 Subject: [PATCH 147/208] build: Remove -L flag when $LIBGCRYPT_LIBDIR is empty. Reported by Alex Vong . * config-daemon.ac: Do not add "-L$LIBGCRYPT_LIBDIR" to LIBGCRYPT_LIBS when "$LIBGCRYPT_LIBDIR" is empty. --- config-daemon.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config-daemon.ac b/config-daemon.ac index 6cf65bef1d..04f0fde3b2 100644 --- a/config-daemon.ac +++ b/config-daemon.ac @@ -48,7 +48,7 @@ if test "x$guix_build_daemon" = "xyes"; then esac case "$LIBGCRYPT_LIBDIR" in - no) + no | "") LIBGCRYPT_LIBS="-lgcrypt" ;; *) From f66be84d08b90a9ecf08f79c8156d072ad359c36 Mon Sep 17 00:00:00 2001 From: Eric Brown Date: Sun, 2 Sep 2018 09:27:56 -0500 Subject: [PATCH 148/208] gnu: gfortran, gcc-objc, gcc-objc++: Add version 8. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gcc.scm (gfortran-8, gcc-objc-8, gcc-objc++-8): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/gcc.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index bdff2ddada..0dd5d64464 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -663,6 +663,10 @@ as the 'native-search-paths' field." (custom-gcc gcc-7 "gfortran" '("fortran") %generic-search-paths)) +(define-public gfortran-8 + (custom-gcc gcc-8 "gfortran" '("fortran") + %generic-search-paths)) + (define-public gfortran ;; Note: Update this when GCC changes! We cannot use ;; (custom-gcc gcc "fortran" …) because that would lead to a package object @@ -723,6 +727,15 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) +(define-public gcc-objc-8 + (custom-gcc gcc-8 "gcc-objc" '("objc") + (list (search-path-specification + (variable "OBJC_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + (define-public gcc-objc gcc-objc-5) (define-public gcc-objc++-4.8 @@ -770,6 +783,15 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) +(define-public gcc-objc++-8 + (custom-gcc gcc-8 "gcc-objc++" '("obj-c++") + (list (search-path-specification + (variable "OBJCPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + (define-public gcc-objc++ gcc-objc++-5) (define (make-libstdc++-doc gcc) From 3ffcad7df3ab8947010814f61b32ce14ea80e780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 6 Sep 2018 11:55:36 +0200 Subject: [PATCH 149/208] build-self: Accomodate upgrades from May 2016 and earlier. Reported by Paul Garlick . Fixes a bug whereby "old" Guix instances (before mid-May 2018) would fail to pull to current master. Specifically, Paul reported being unable to upgrade from 6f84dc4314cd84550d9fc7e7afa11c495edc45a5 (a commit that predates that addition of the 'bootstrap' phase on gnu-build-system on 'master' and that also predates the new 'guix pull'.) * build-aux/build-self.scm (guile-gcrypt)[arguments]: New field. --- build-aux/build-self.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index f472724f18..f91b43987a 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -216,6 +216,16 @@ person's version identifier." "1gir7ifknbmbvjlql5j6wzk7bkb5lnmq80q59ngz43hhpclrk5k3")) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) + (arguments + ;; The 'bootstrap' phase appeared in 'core-updates', which was merged + ;; into 'master' ca. June 2018. + '(#:phases (modify-phases %standard-phases + (delete 'bootstrap) + (add-before 'configure 'bootstrap + (lambda _ + (unless (zero? (system* "autoreconf" "-vfi")) + (error "autoreconf failed")) + #t))))) (native-inputs `(("pkg-config" ,(specification->package "pkg-config")) ("autoconf" ,(specification->package "autoconf")) From 7df945656cd448b13969f90a7a95d8a4e9d442f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 6 Sep 2018 13:49:06 +0200 Subject: [PATCH 150/208] services: hpcguix-web: Set SSL_CERT_DIR. Previously Git pulls over HTTPS would fail with: guix/git.scm:132:7: In procedure update-cached-checkout: Throw to key `git-error' with args `(#< code: -17 message: "the SSL certificate is invalid" class: 16>)'. * gnu/services/web.scm (hpcguix-web-shepherd-service): Pass "SSL_CERT_DIR=/etc/ssl/certs". * doc/guix.texi (Web Services): Mention certificates. --- doc/guix.texi | 11 +++++++++++ gnu/services/web.scm | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 9375aac30c..c328af40cd 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -16848,6 +16848,17 @@ A typical hpcguix-web service declaration looks like this: (menu '(("/about" "ABOUT")))))))) @end example +@quotation Note +The hpcguix-web service periodically updates the package list it publishes by +pulling channels from Git. To that end, it needs to access X.509 certificates +so that it can authenticate Git servers when communicating over HTTPS, and it +assumes that @file{/etc/ssl/certs} contains those certificates. + +Thus, make sure to add @code{nss-certs} or another certificate package to the +@code{packages} field of your configuration. @ref{X.509 Certificates}, for +more information on X.509 certificates. +@end quotation + @node Certificate Services @subsubsection Certificate Services diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 467656444e..3778efd048 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -967,7 +967,8 @@ a webserver.") #:user "hpcguix-web" #:group "hpcguix-web" #:environment-variables - (list "XDG_CACHE_HOME=/var/cache"))) + (list "XDG_CACHE_HOME=/var/cache" + "SSL_CERT_DIR=/etc/ssl/certs"))) (stop #~(make-kill-destructor)))))) (define hpcguix-web-service-type From fd3a64335da5a591dbe9276395d0ad6bb09f00bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 6 Sep 2018 13:53:04 +0200 Subject: [PATCH 151/208] doc: Update hpcguix-web configuration documentation. * doc/guix.texi (Web Services): Document 'channels' and 'package-list-expiration'. --- doc/guix.texi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index c328af40cd..2c5b01e4a8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -16825,6 +16825,13 @@ Extension package for @code{hpcguix-web}. @item @code{menu} (default: @code{'()}) Additional entry in page @code{menu}. + +@item @code{channels} (default: @code{%default-channels}) +List of channels from which the package list is built (@pxref{Channels}). + +@item @code{package-list-expiration} (default: @code{(* 12 3600)}) +The expiration time, in seconds, after which the package list is rebuilt from +the latest instances of the given channels. @end table See the hpcguix-web repository for a From 21f5f351fb4a21a8051cdb2b747fef57aa2fa8d4 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 6 Sep 2018 10:55:21 -0400 Subject: [PATCH 152/208] gnu: libgme: Update to 0.6.2. * gnu/packages/music.scm (libgme): Update to 0.6.2. [native-inputs]: Add gcc-4.9. --- gnu/packages/music.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index ba21e5da2b..e39478e794 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -786,18 +786,23 @@ interface. It is implemented as a frontend to @code{klick}.") (define-public libgme (package (name "libgme") - (version "0.6.1") + (version "0.6.2") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/mpyne/game-music-emu/" "downloads/game-music-emu-" version - ".tar.bz2")) + ".tar.xz")) (sha256 (base32 - "08fk7zddpn7v93d0fa7fcypx7hvgwx9b5psj9l6m8b87k2hbw4fw")))) + "0hkkmxbaas2sirlb5i4r10mgbbiaapjx8pazifabwba23m3wnijh")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no check target + (native-inputs + `(;; Use gcc-4.9 to work around an internal compiler error that happens + ;; when using gcc-5.5.0. FIXME: Try removing this when the default + ;; compiler is no longer gcc-5.5.0. + ("gcc" ,gcc-4.9))) (home-page "https://bitbucket.org/mpyne/game-music-emu") (synopsis "Video game music file playback library") (description From 1e066f070611b64d24af4544efe8075bb1999d30 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 6 Sep 2018 16:43:10 -0400 Subject: [PATCH 153/208] gnu: curl: Update replacement to 7.61.1 [fixes CVE-2018-14618]. * gnu/packages/curl.scm (curl)[replacement]: Update to 7.61.1. (curl-7.61.0): Replace variable with ... (curl-7.61.1): ... new variable. --- gnu/packages/curl.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 1907d2dc3d..6d45dc0cc5 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -51,7 +51,7 @@ (package (name "curl") (version "7.59.0") - (replacement curl-7.61.0) + (replacement curl-7.61.1) (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" @@ -141,10 +141,10 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define-public curl-7.61.0 +(define-public curl-7.61.1 (package (inherit curl) - (version "7.61.0") + (version "7.61.1") (source (origin (method url-fetch) @@ -152,7 +152,7 @@ tunneling, and so on.") version ".tar.xz")) (sha256 (base32 - "080p9r2kln8cbfj0rqfn6wqp5kdn9k5wp720nirkcw845lcmavpg")))))) + "148qv1f32290r9pwg07mccawihz4srznkzsdwdl2xllvlgb16n9x")))))) (define-public kurly (package From 91cc2a38ded0f9a637c37d83d72fa514a13fe6bd Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 6 Sep 2018 16:46:08 -0400 Subject: [PATCH 154/208] gnu: Wireshark: Update to 2.6.3 [fixes CVE-2018-{14994,16056,16057,16058}]. * gnu/packages/networking.scm (wireshark): Update to 2.6.3. --- 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 61c0ad7fba..acf523d366 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -580,7 +580,7 @@ of the same name.") (define-public wireshark (package (name "wireshark") - (version "2.6.2") + (version "2.6.3") (source (origin (method url-fetch) @@ -588,7 +588,7 @@ of the same name.") version ".tar.xz")) (sha256 (base32 - "153h6prxamv5a62f3pfadkry0y57696xrgxfy2gfy5xswdg8kcj9")))) + "1v538h02y8avwy3cr11xz6wkyf9xd8qva4ng4sl9f2fw4skahn6i")))) (build-system gnu-build-system) (inputs `(("c-ares" ,c-ares) ("glib" ,glib) From 0012e0dd5642fbbb8ee40a68f65afc184952fc98 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 7 Sep 2018 02:57:28 +0200 Subject: [PATCH 155/208] gnu: knot: Update to 2.7.2. * gnu/packages/dns.scm (knot): Update to 2.7.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 7a80e1bd9b..29c3d9b923 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -498,14 +498,14 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "2.7.1") + (version "2.7.2") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" name "-" version ".tar.xz")) (sha256 (base32 - "108k6x3hjsnyf06pv5rlxqhynjbbz13pzwax1mqff3hgv85f4skx")) + "0cc4wgb02ch09x99a1fnr7vsdik8k920q7jafzcamjvy3kpb4w6b")) (modules '((guix build utils))) (snippet '(begin From 1540075c790dfaeff52c93392f2fc63b9e23b77e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 7 Sep 2018 09:50:26 +0200 Subject: [PATCH 156/208] vm: Make UUID computation really deterministic. Fixes . * gnu/system/vm.scm (operating-system-uuid)[service-name, file-system-digest]: New procedures. Map these over services and file systems and hash the result. * tests/guix-system.sh: Add test. --- gnu/system/vm.scm | 33 +++++++++++++++++++++++++++++---- tests/guix-system.sh | 8 ++++++++ 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 3898872a46..91e117b9f3 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -529,17 +529,42 @@ should set REGISTER-CLOSURES? to #f." (define* (operating-system-uuid os #:optional (type 'dce)) "Compute UUID object with a deterministic \"UUID\" for OS, of the given TYPE (one of 'iso9660 or 'dce). Return a UUID object." + ;; Note: For this to be deterministic, we must not hash things that contains + ;; (directly or indirectly) procedures, for example. That rules out + ;; anything that contains gexps, thunk or delayed record fields, etc. + + (define service-name + (compose service-type-name service-kind)) + + (define (file-system-digest fs) + ;; Return a hashable digest that does not contain 'dependencies' since + ;; this field can contain procedures. + (let ((device (file-system-device fs))) + (list (file-system-mount-point fs) + (file-system-type fs) + (cond ((file-system-label? device) + (file-system-label->string device)) + ((uuid? device) + (uuid->string device)) + ((string? device) + device) + (else #f)) + (file-system-options fs)))) + (if (eq? type 'iso9660) (let ((pad (compose (cut string-pad <> 2 #\0) number->string)) - (h (hash (operating-system-services os) 3600))) + (h (hash (map service-name (operating-system-services os)) + 3600))) (bytevector->uuid (string->iso9660-uuid (string-append "1970-01-01-" (pad (hash (operating-system-host-name os) 24)) "-" (pad (quotient h 60)) "-" (pad (modulo h 60)) "-" - (pad (hash (operating-system-file-systems os) 100)))) + (pad (hash (map file-system-digest + (operating-system-file-systems os)) + 100)))) 'iso9660)) (bytevector->uuid (uint-list->bytevector @@ -547,9 +572,9 @@ TYPE (one of 'iso9660 or 'dce). Return a UUID object." (- (expt 2 32) 1)) (hash (operating-system-host-name os) (- (expt 2 32) 1)) - (hash (operating-system-services os) + (hash (map service-name (operating-system-services os)) (- (expt 2 32) 1)) - (hash (operating-system-file-systems os) + (hash (map file-system-digest (operating-system-file-systems os)) (- (expt 2 32) 1))) (endianness little) 4) diff --git a/tests/guix-system.sh b/tests/guix-system.sh index 36ba5fbd5f..a129efdfcb 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -232,6 +232,14 @@ guix system build "$tmpfile" -d | grep '\.drv$' guix system vm "$tmpfile" -d # succeeds guix system vm "$tmpfile" -d | grep '\.drv$' +# Make sure the behavior is deterministic (). +drv1="`guix system vm "$tmpfile" -d`" +drv2="`guix system vm "$tmpfile" -d`" +test "$drv1" = "$drv2" +drv1="`guix system disk-image --file-system-type=iso9660 "$tmpfile" -d`" +drv2="`guix system disk-image --file-system-type=iso9660 "$tmpfile" -d`" +test "$drv1" = "$drv2" + make_user_config "group-that-does-not-exist" "users" if guix system build "$tmpfile" -n 2> "$errorfile" then false From 12498b59e76c0285f0d9babb0107e8e82855aa60 Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Thu, 6 Sep 2018 18:35:36 +0200 Subject: [PATCH 157/208] gnu: emacs-ess: Update to 17.11. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-ess): Update to 17.11 [url]: Use github for https [snippet]: update julia-mode substitution, only build info doc, bypass failing test [propagated-inputs]: Add emacs-julia-mode [description]: Mention that ESS supports Julia and JAGS (which replaces OpenBUGS) [arguments]: Remove 'set-home' phase. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 957b72f4e7..1f64a5e84a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2018 Tim Gesthuizen ;;; Copyright © 2018 Jack Hill ;;; Copyright © 2018 Pierre-Antoine Rouby +;;; Copyright © 2018 Alex Branham ;;; ;;; This file is part of GNU Guix. ;;; @@ -4123,22 +4124,34 @@ programming language.") (define-public emacs-ess (package (name "emacs-ess") - (version "16.10") + (version "17.11") (source (origin (method url-fetch) - (uri (string-append "http://ess.r-project.org/downloads/ess/ess-" - version ".tgz")) + (uri (string-append "https://github.com/emacs-ess/ESS/archive/v" + version ".tar.gz")) (sha256 (base32 - "04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk")) + "0cbilbsiwvcyf6d5y24mymp57m3ana5dkzab3knfs83w4a3a4c5c")) + (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet '(begin ;; Stop ESS from trying to bundle an external julia-mode.el. (substitute* "lisp/Makefile" (("^\tjulia-mode.elc\\\\\n") "") - (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el") - "all: $(ELC) ess-custom.el")) + (("^dist: all julia-mode.el") + "dist: all")) + ;; No need to build docs in so many formats. Also, skipping + ;; pdf lets us not pull in texlive. + (substitute* "doc/Makefile" + (("all : info text html pdf") + "all : info") + (("install: install-info install-other-docs") + "install: install-info")) + ;; Test fails upstream + (substitute* "test/ess-r-tests.el" + (("ert-deftest ess-r-namespaced-eval-no-srcref-in-errors ()") + "ert-deftest ess-r-namespaced-eval-no-srcref-in-errors () :expected-result :failed")) #t)))) (build-system gnu-build-system) (arguments @@ -4157,10 +4170,6 @@ programming language.") (("SHELL = /bin/sh") (string-append "SHELL = " (which "sh")))) #t)) - ;; FIXME: the texlive-union insists on regenerating fonts. It stores - ;; them in HOME, so it needs to be writeable. - (add-before 'build 'set-HOME - (lambda _ (setenv "HOME" "/tmp") #t)) (replace 'check (lambda _ (invoke "make" "test"))))))) @@ -4169,16 +4178,14 @@ programming language.") ("r-minimal" ,r-minimal))) (native-inputs `(("perl" ,perl) - ("texinfo" ,texinfo) - ("texlive" ,(texlive-union (list texlive-latex-natbib - texlive-latex-seminar - texlive-latex-hyperref - texlive-tex-texinfo))))) + ("texinfo" ,texinfo))) + (propagated-inputs + `(("emacs-julia-mode" ,emacs-julia-mode))) (home-page "https://ess.r-project.org/") (synopsis "Emacs mode for statistical analysis programs") (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU Emacs. It is designed to support editing of scripts and interaction with -various statistical analysis programs such as R and OpenBUGS.") +various statistical analysis programs such as R, Julia, and JAGS.") (license license:gpl2+))) (define-public emacs-smex From 40c10917bc3b8df853001c193da882d643db1bd1 Mon Sep 17 00:00:00 2001 From: pimi Date: Wed, 29 Aug 2018 09:24:34 +0200 Subject: [PATCH 158/208] gnu: Add r-abcp2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cran.scm (r-abcp2): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/cran.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 447be5657a..c713a9904b 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -5411,3 +5411,24 @@ maximum cycle number. The @code{r-abcoptim} implements the Artificial bee colony optimization algorithm @url{http://mf.erciyes.edu.tr/abc/pub/tr06_2005.pdf}. This version is a work-in-progress and is written in R code.") (license license:expat))) + +(define-public r-abcp2 + (package + (name "r-abcp2") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "ABCp2" version)) + (sha256 + (base32 "1s2skkxpzss7c29i8600psgrp0hl46jcrxqrmy2b4db8hc0kcnbx")))) + (properties `((upstream-name . "ABCp2"))) + (build-system r-build-system) + (propagated-inputs `(("r-mass" ,r-mass))) + (home-page "https://cran.r-project.org/web/packages/ABCp2/") + (synopsis "Approximate Bayesian Computational Model for Estimating P2") + (description + "This package tests the goodness of fit of a distribution of offspring to the Normal, +Poisson, and Gamma distribution and estimates the proportional paternity of the +second male (P2) based on the best fit distribution.") + (license license:gpl2))) From cadc10a513af2624c9233fb2cffb4c4ff5471197 Mon Sep 17 00:00:00 2001 From: pimi Date: Wed, 29 Aug 2018 09:32:45 +0200 Subject: [PATCH 159/208] gnu: Add r-abcrf. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cran.scm (r-abcrf): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/cran.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index c713a9904b..93c111bccc 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -5432,3 +5432,31 @@ colony optimization algorithm @url{http://mf.erciyes.edu.tr/abc/pub/tr06_2005.pd Poisson, and Gamma distribution and estimates the proportional paternity of the second male (P2) based on the best fit distribution.") (license license:gpl2))) + +(define-public r-abcrf + (package + (name "r-abcrf") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "abcrf" version)) + (sha256 + (base32 "06vy3inikrr9hv36q4djhrgzi9zizdfnhz17wpra8kadmr7qj441")))) + (build-system r-build-system) + (propagated-inputs + `(("r-mass" ,r-mass) + ("r-matrixstats" ,r-matrixstats) + ("r-ranger" ,r-ranger) + ("r-rcpp" ,r-rcpp) + ("r-rcpparmadillo" ,r-rcpparmadillo) + ("r-readr" ,r-readr) + ("r-stringr" ,r-stringr))) + (home-page "https://cran.r-project.org/web/packages/abcrf/") + (synopsis "Approximate bayesian computation via random forests") + (description + "This package performs approximate bayesian computation (ABC) model choice and +parameter inference via random forests. This machine learning tool named random +forests (RF) can conduct selection among the highly complex models covered by +ABC algorithms.") + (license license:gpl2+))) From 12da2a5e58c6f518892376df5e1af4a511f12e6b Mon Sep 17 00:00:00 2001 From: pimi Date: Wed, 29 Aug 2018 09:39:17 +0200 Subject: [PATCH 160/208] gnu: Add r-abctools. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cran.scm (r-abctools): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/cran.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 93c111bccc..aa58efce7c 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -5460,3 +5460,28 @@ parameter inference via random forests. This machine learning tool named random forests (RF) can conduct selection among the highly complex models covered by ABC algorithms.") (license license:gpl2+))) + +(define-public r-abctools + (package + (name "r-abctools") + (version "1.1.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "abctools" version)) + (sha256 + (base32 "07s9dg10i8lsxl73b4n2hynca2fjgb0ykb0dz8c3zv6cgw3cyx97")))) + (build-system r-build-system) + (propagated-inputs + `(("r-abc" ,r-abc) + ("r-abind" ,r-abind) + ("r-hmisc" ,r-hmisc) + ("r-plyr" ,r-plyr))) + (home-page "https://github.com/dennisprangle/abctools/") + (synopsis "Tools for ABC analyses") + (description + "This @code{r-abctools} package provides tools for approximate Bayesian computation +including summary statistic selection and assessing coverage. This includes +recent dimension reduction algorithms to tune the choice of summary statistics, +and coverage methods to tune the choice of threshold.") + (license license:gpl2+))) From 77b33e0ede4bd015d863f0b1f63f492c62fb1943 Mon Sep 17 00:00:00 2001 From: pimi Date: Wed, 29 Aug 2018 10:09:12 +0200 Subject: [PATCH 161/208] gnu: Add r-ggstance. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gnu/packages/cran.scm (r-ggstance): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/cran.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index aa58efce7c..8026f99736 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -5485,3 +5485,29 @@ including summary statistic selection and assessing coverage. This includes recent dimension reduction algorithms to tune the choice of summary statistics, and coverage methods to tune the choice of threshold.") (license license:gpl2+))) + +(define-public r-ggstance + (package + (name "r-ggstance") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "ggstance" version)) + (sha256 + (base32 "0v7f3xdaaridw6d4jvnsfwxmpjrasvx5vl555wsrn50aah17fkvh")))) + (build-system r-build-system) + (propagated-inputs + `(("r-ggplot2" ,r-ggplot2) + ("r-plyr" ,r-plyr) + ("r-rlang" ,r-rlang) + ("r-withr" ,r-withr))) + (home-page "https://cran.r-project.org/web/packages/ggstance/") + (synopsis "Horizontal and vertical versions of @code{r-ggplot2}") + (description + "This package is a @code{r-ggplot2} extension that provides flipped components: +@enumerate +@item horizontal versions of @code{r-ggplot2} stats and @code{r-ggplot2} geoms; +@item vertical versions of @code{r-ggplot2} positions. +@end enumerate") + (license license:gpl3))) From c61f7bc543d98781d9c24989edbfde39af7e7320 Mon Sep 17 00:00:00 2001 From: pimi Date: Wed, 29 Aug 2018 10:16:11 +0200 Subject: [PATCH 162/208] gnu: Add r-mosaiccore. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cran.scm (r-mosaiccore): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/cran.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 8026f99736..3be7fd7d62 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -5511,3 +5511,27 @@ and coverage methods to tune the choice of threshold.") @item vertical versions of @code{r-ggplot2} positions. @end enumerate") (license license:gpl3))) + +(define-public r-mosaiccore + (package + (name "r-mosaiccore") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "mosaicCore" version)) + (sha256 + (base32 "1klw97h6lchw1cpcl8s637ikcl428cckmjq0czi7mibh9q9mw72z")))) + (properties `((upstream-name . "mosaicCore"))) + (build-system r-build-system) + (propagated-inputs + `(("r-dplyr" ,r-dplyr) + ("r-lazyeval" ,r-lazyeval) + ("r-mass" ,r-mass) + ("r-rlang" ,r-rlang) + ("r-tidyr" ,r-tidyr))) + (home-page "https://github.com/ProjectMOSAIC/mosaicCore/") + (synopsis "Common utilities for mosaic family packages") + (description + "Common utilities used in other Mosaic family packages are collected here.") + (license license:gpl2+))) From 214452ffd339491f63560d19d2aeab4e668029a4 Mon Sep 17 00:00:00 2001 From: pimi Date: Wed, 29 Aug 2018 10:19:55 +0200 Subject: [PATCH 163/208] gnu: Add r-ggformula. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cran.scm (r-ggformula): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/cran.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 3be7fd7d62..8144391729 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -5535,3 +5535,32 @@ and coverage methods to tune the choice of threshold.") (description "Common utilities used in other Mosaic family packages are collected here.") (license license:gpl2+))) + +(define-public r-ggformula + (package + (name "r-ggformula") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "ggformula" version)) + (sha256 + (base32 "1pmpdfjfbrc6kcpq70cr1kbj2qy711hw940g2aiis6l443z706kh")))) + (build-system r-build-system) + (propagated-inputs + `(("r-ggplot2" ,r-ggplot2) + ("r-ggstance" ,r-ggstance) + ("r-magrittr" ,r-magrittr) + ("r-mosaiccore" ,r-mosaiccore) + ("r-rlang" ,r-rlang) + ("r-stringr" ,r-stringr) + ("r-tibble" ,r-tibble) + ("r-tidyr" ,r-tidyr))) + (home-page "https://github.com/ProjectMOSAIC/ggformula/") + (synopsis "Formula interface for the @code{r-ggplot2}") + (description + "The @code{r-ggformula} introduces a family of graphics functions, gf_point(), +gf_density(), and so on, bring the formula interface to ggplot(). This captures +and extends the excellent simplicity of the lattice-graphics formula interface, +while providing the intuitive capabilities of @code{r-ggplot2}.") + (license license:expat))) From ee94cfeb99a7e3879c92ca21318960077ce4100e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 3 Sep 2018 12:46:40 +0200 Subject: [PATCH 164/208] pull: Add '--profile'. * guix/scripts/pull.scm (show-help, %options): Add '--profile'. (build-and-install): Change 'config-dir' argument to 'profile'. (guix-pull): Honor '--profile'. * doc/guix.texi (Invoking guix pull): Document it. --- doc/guix.texi | 4 ++++ guix/scripts/pull.scm | 19 ++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2c5b01e4a8..30f1be2ab8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2851,6 +2851,10 @@ is provided, the subset of generations that match @var{pattern}. The syntax of @var{pattern} is the same as with @code{guix package --list-generations} (@pxref{Invoking guix package}). +@item --profile=@var{profile} +@itemx -p @var{profile} +Use @var{profile} instead of @file{~/.config/guix/current}. + @item --bootstrap Use the bootstrap Guile to build the latest Guix. This option is only useful to Guix developers. diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 18c04f05dd..ebc5dc9b13 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -79,6 +79,8 @@ Download and deploy the latest version of Guix.\n")) (display (G_ " -l, --list-generations[=PATTERN] list generations matching PATTERN")) + (display (G_ " + -p, --profile=PROFILE use PROFILE instead of ~/.config/guix/current")) (display (G_ " --bootstrap use the bootstrap Guile to build the new Guix")) (newline) @@ -113,6 +115,10 @@ Download and deploy the latest version of Guix.\n")) (lambda (opt name arg result) (alist-cons 'ref `(branch . ,(string-append "origin/" arg)) result))) + (option '(#\p "profile") #t #f + (lambda (opt name arg result) + (alist-cons 'profile (canonicalize-profile arg) + result))) (option '(#\n "dry-run") #f #f (lambda (opt name arg result) (alist-cons 'dry-run? #t (alist-cons 'graft? #f result)))) @@ -152,15 +158,12 @@ Download and deploy the latest version of Guix.\n")) #:heading (G_ "New in this revision:\n")))) (_ #t))) -(define* (build-and-install instances config-dir +(define* (build-and-install instances profile #:key verbose?) - "Build the tool from SOURCE, and install it in CONFIG-DIR." + "Build the tool from SOURCE, and install it in PROFILE." (define update-profile (store-lift build-and-use-profile)) - (define profile - (string-append config-dir "/current")) - (mlet %store-monad ((manifest (channel-instances->manifest instances))) (mbegin %store-monad (update-profile profile manifest) @@ -414,7 +417,9 @@ Use '~/.config/guix/channels.scm' instead.")) (let* ((opts (parse-command-line args %options (list %default-options))) (cache (string-append (cache-directory) "/pull")) - (channels (channel-list opts))) + (channels (channel-list opts)) + (profile (or (assoc-ref opts 'profile) + (string-append (config-directory) "/current")))) (cond ((assoc-ref opts 'query) (process-query opts)) @@ -456,7 +461,7 @@ Use '~/.config/guix/channels.scm' instead.")) %bootstrap-guile (canonical-package guile-2.2))))) (run-with-store store - (build-and-install instances (config-directory) + (build-and-install instances profile #:verbose? (assoc-ref opts 'verbose?))))))))))))) From bd7470185bae15e686c2b2a83d3f61807e6fa527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 3 Sep 2018 15:03:33 +0200 Subject: [PATCH 165/208] Add 'guix describe'. * guix/scripts/describe.scm: New file. * Makefile.am (MODULES): Add it. (SH_TESTS): Add tests/guix-describe.sh. * po/guix/POTFILES.in: Add it. * guix/scripts/pull.scm (display-profile-content): Export. * guix/describe.scm (current-profile, current-profile-entries): Export. * tests/guix-describe.sh: New file. * doc/guix.texi (Features): Mention 'guix pull' and provenance tracking. (Invoking guix pull): Link to 'guix describe'. (Channels): Likewise. (Invoking guix describe): New node. --- Makefile.am | 2 + doc/guix.texi | 94 +++++++++++++++++++++- guix/describe.scm | 4 +- guix/scripts/describe.scm | 160 ++++++++++++++++++++++++++++++++++++++ guix/scripts/pull.scm | 3 +- po/guix/POTFILES.in | 1 + tests/guix-describe.sh | 47 +++++++++++ 7 files changed, 308 insertions(+), 3 deletions(-) create mode 100644 guix/scripts/describe.scm create mode 100644 tests/guix-describe.sh diff --git a/Makefile.am b/Makefile.am index a3498460e0..5c8639d665 100644 --- a/Makefile.am +++ b/Makefile.am @@ -204,6 +204,7 @@ MODULES = \ guix/scripts/authenticate.scm \ guix/scripts/refresh.scm \ guix/scripts/repl.scm \ + guix/scripts/describe.scm \ guix/scripts/system.scm \ guix/scripts/system/search.scm \ guix/scripts/lint.scm \ @@ -409,6 +410,7 @@ SH_TESTS = \ tests/guix-environment.sh \ tests/guix-environment-container.sh \ tests/guix-graph.sh \ + tests/guix-describe.sh \ tests/guix-lint.sh TESTS = $(SCM_TESTS) $(SH_TESTS) diff --git a/doc/guix.texi b/doc/guix.texi index 30f1be2ab8..19a497c746 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -147,6 +147,7 @@ Package Management * Invoking guix gc:: Running the garbage collector. * Invoking guix pull:: Fetching the latest Guix and distribution. * Channels:: Customizing the package collection. +* Invoking guix describe:: Display information about your Guix revision. * Invoking guix pack:: Creating software bundles. * Invoking guix archive:: Exporting and importing store files. @@ -1698,6 +1699,7 @@ guix package -i emacs-guix * Invoking guix gc:: Running the garbage collector. * Invoking guix pull:: Fetching the latest Guix and distribution. * Channels:: Customizing the package collection. +* Invoking guix describe:: Display information about your Guix revision. * Invoking guix pack:: Creating software bundles. * Invoking guix archive:: Exporting and importing store files. @end menu @@ -1751,7 +1753,7 @@ collected. @cindex reproducibility @cindex reproducible builds -Finally, Guix takes a @dfn{purely functional} approach to package +Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}). Each @file{/gnu/store} package directory name contains a hash of all the inputs that were used to build that package---compiler, libraries, build @@ -1779,6 +1781,15 @@ a package to quickly set up the right development environment for their package, without having to manually install the dependencies of the package into their profile (@pxref{Invoking guix environment}). +@cindex replication, of software environments +@cindex provenance tracking, of software artifacts +All of Guix and its package definitions is version-controlled, and +@command{guix pull} allows you to ``travel in time'' on the history of Guix +itself (@pxref{Invoking guix pull}). This makes it possible to replicate a +Guix instance on a different machine or at a later point in time, which in +turn allows you to @emph{replicate complete software environments}, while +retaining precise @dfn{provenance tracking} of the software. + @node Invoking guix package @section Invoking @command{guix package} @@ -2806,6 +2817,9 @@ Generation 3 Jun 13 2018 23:31:07 (current) 69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{} @end example +@ref{Invoking guix describe, @command{guix describe}}, for other ways to +describe the current status of Guix. + This @code{~/.config/guix/current} profile works like any other profile created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous @@ -2851,6 +2865,9 @@ is provided, the subset of generations that match @var{pattern}. The syntax of @var{pattern} is the same as with @code{guix package --list-generations} (@pxref{Invoking guix package}). +@ref{Invoking guix describe}, for a way to display information about the +current generation only. + @item --profile=@var{profile} @itemx -p @var{profile} Use @var{profile} instead of @file{~/.config/guix/current}. @@ -3023,6 +3040,9 @@ say, on another machine, by providing a channel specification in (branch "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb"))) @end lisp +The @command{guix describe --format=channels} command can even generate this +list of channels directly (@pxref{Invoking guix describe}). + At this point the two machines run the @emph{exact same Guix}, with access to the @emph{exact same packages}. The output of @command{guix build gimp} on one machine will be exactly the same, bit for bit, as the output of the same @@ -3034,6 +3054,78 @@ This gives you super powers, allowing you to track the provenance of binary artifacts with very fine grain, and to reproduce software environments at will---some sort of ``meta reproducibility'' capabilities, if you will. +@node Invoking guix describe +@section Invoking @command{guix describe} + +@cindex reproducibility +@cindex replicating Guix +Often you may want to answer questions like: ``Which revision of Guix am I +using?'' or ``Which channels am I using?'' This is useful information in many +situations: if you want to @emph{replicate} an environment on a different +machine or user account, if you want to report a bug or to determine what +change in the channels you are using caused it, or if you want to record your +system state for reproducibility purposes. The @command{guix describe} +command answers these questions. + +When run from a @command{guix pull}ed @command{guix}, @command{guix describe} +displays the channel(s) that it was built from, including their repository URL +and commit IDs (@pxref{Channels}): + +@example +$ guix describe +Generation 10 Sep 03 2018 17:32:44 (current) + guix e0fa68c + repository URL: https://git.savannah.gnu.org/git/guix.git + branch: master + commit: e0fa68c7718fffd33d81af415279d6ddb518f727 +@end example + +If you're familiar with the Git version control system, this is similar in +spirit to @command{git describe}; the output is also similar to that of +@command{guix pull --list-generations}, but limited to the current generation +(@pxref{Invoking guix pull, the @option{--list-generations} option}). Because +the Git commit ID shown above unambiguously refers to a snapshot of Guix, this +information is all it takes to describe the revision of Guix you're using, and +also to replicate it. + +To make it easier to replicate Guix, @command{guix describe} can also be asked +to return a list of channels instead of the human-readable description above: + +@example +$ guix describe -f channels +(list (channel + (name 'guix) + (url "https://git.savannah.gnu.org/git/guix.git") + (commit + "e0fa68c7718fffd33d81af415279d6ddb518f727"))) +@end example + +@noindent +You can save this to a file and feed it to @command{guix pull -C} on some +other machine or at a later point in time, which will instantiate @emph{this +exact Guix revision} (@pxref{Invoking guix pull, the @option{-C} option}). +From there on, since you're able to deploy the same revision of Guix, you can +just as well @emph{replicate a complete software environment}. We humbly +think that this is @emph{awesome}, and we hope you'll like it too! + +The details of the options supported by @command{guix describe} are as +follows: + +@table @code +@item --format=@var{format} +@itemx -f @var{format} +Produce output in the specified @var{format}, one of: + +@table @code +@item human +produce human-readable output; +@item channels +produce a list of channel specifications that can be passed to @command{guix +pull -C} or installed as @file{~/.config/guix/channels.scm} (@pxref{Invoking +guix pull}). +@end table +@end table + @node Invoking guix pack @section Invoking @command{guix pack} diff --git a/guix/describe.scm b/guix/describe.scm index 3122a762fe..670db63ce7 100644 --- a/guix/describe.scm +++ b/guix/describe.scm @@ -21,7 +21,9 @@ #:use-module (guix profiles) #:use-module (srfi srfi-1) #:use-module (ice-9 match) - #:export (package-path-entries)) + #:export (current-profile + current-profile-entries + package-path-entries)) ;;; Commentary: ;;; diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm new file mode 100644 index 0000000000..46feea2940 --- /dev/null +++ b/guix/scripts/describe.scm @@ -0,0 +1,160 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix scripts describe) + #:use-module ((guix ui) #:hide (display-profile-content)) + #:use-module (guix scripts) + #:use-module (guix describe) + #:use-module (guix profiles) + #:use-module ((guix scripts pull) #:select (display-profile-content)) + #:use-module (git) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-37) + #:use-module (ice-9 match) + #:autoload (ice-9 pretty-print) (pretty-print) + #:export (guix-describe)) + + +;;; +;;; Command-line options. +;;; + +(define %options + ;; Specifications of the command-line options. + (list (option '(#\f "format") #t #f + (lambda (opt name arg result) + (unless (member arg '("human" "channels")) + (leave (G_ "~a: unsupported output format~%") arg)) + (alist-cons 'format 'channels result))) + (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix describe"))))) + +(define %default-options + ;; Alist of default option values. + '((format . human))) + +(define (show-help) + (display (G_ "Usage: guix describe [OPTION]... +Display information about the channels currently in use.\n")) + (display (G_ " + -f, --format=FORMAT display information in the given FORMAT")) + (newline) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define (display-package-search-path fmt) + "Display GUIX_PACKAGE_PATH, if it is set, according to FMT." + (match (getenv "GUIX_PACKAGE_PATH") + (#f #t) + (string + (match fmt + ('human + (format #t "~%GUIX_PACKAGE_PATH=\"~a\"~%" string)) + ('channels + (format #t (G_ "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%") + string)))))) + +(define (display-checkout-info fmt) + "Display information about the current checkout according to FMT, a symbol +denoting the requested format. Exit if the current directory does not lie +within a Git checkout." + (let* ((program (car (command-line))) + (directory (catch 'git-error + (lambda () + (repository-discover (dirname program))) + (lambda (key err) + (leave (G_ "failed to determine origin~%"))))) + (repository (repository-open directory)) + (head (repository-head repository)) + (commit (oid->string (reference-target head)))) + (match fmt + ('human + (format #t (G_ "Git checkout:~%")) + (format #t (G_ " repository: ~a~%") (dirname directory)) + (format #t (G_ " branch: ~a~%") (reference-shorthand head)) + (format #t (G_ " commit: ~a~%") commit)) + ('channels + (pretty-print `(list (channel + (name 'guix) + (url ,(dirname directory)) + (commit ,commit)))))) + (display-package-search-path fmt))) + +(define (display-profile-info profile fmt) + "Display information about PROFILE, a profile as created by (guix channels), +in the format specified by FMT." + (define number + (match (profile-generations profile) + ((_ ... last) last))) + + (match fmt + ('human + (display-profile-content profile number)) + ('channels + (pretty-print + `(list ,@(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. + (_ '???))) + + ;; Show most recently installed packages last. + (reverse + (manifest-entries + (profile-manifest (generation-file-name profile + number))))))))) + (display-package-search-path fmt)) + + +;;; +;;; Entry point. +;;; + +(define (guix-describe . args) + (let* ((opts (args-fold* args %options + (lambda (opt name arg result) + (leave (G_ "~A: unrecognized option~%") + name)) + cons + %default-options)) + (format (assq-ref opts 'format))) + (with-error-handling + (match (current-profile) + (#f + (display-checkout-info format)) + (profile + (display-profile-info profile format)))))) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index ebc5dc9b13..976e054a84 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -48,7 +48,8 @@ #:use-module (srfi srfi-37) #:use-module (ice-9 match) #:use-module (ice-9 vlist) - #:export (guix-pull)) + #:export (display-profile-content + guix-pull)) ;;; diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 7f881355e7..2762ea078a 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -31,6 +31,7 @@ guix/scripts/challenge.scm guix/scripts/copy.scm guix/scripts/pack.scm guix/scripts/weather.scm +guix/scripts/describe.scm guix/gnu-maintenance.scm guix/scripts/container.scm guix/scripts/container/exec.scm diff --git a/tests/guix-describe.sh b/tests/guix-describe.sh new file mode 100644 index 0000000000..af523f0a0b --- /dev/null +++ b/tests/guix-describe.sh @@ -0,0 +1,47 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2018 Ludovic Courtès +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +# +# Test 'guix describe'. +# + +guix describe --version + +tmpfile="t-guix-describe-$$" +trap "rm -f $tmpfile" EXIT +rm -f "$tmpfile" + +if [ -d "$abs_top_srcdir/.git" ] +then + # Since we're in a Git checkout, we can at least check that these things + # work. + guix describe | grep -i "checkout" + if git --version > /dev/null 2>&1 + then + result="`guix describe | grep commit: | cut -d : -f 2-`" + commit="`git log | head -1 | cut -c 7-`" + test "x$result" = "x$commit" + fi + guix describe -f channels + case "`guix describe -f channels | grep url`" in + *"(url \"$abs_top_srcdir\")") true;; + *) false;; + esac +else + exit 77 +fi From 2b73d82830a29e60914ca23cc64440adb3ae4d18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 4 Sep 2018 10:56:14 +0200 Subject: [PATCH 166/208] guix package: Record package provenance in manifest entries. * guix/profiles.scm (package->manifest-entry): Add #:properties and honor it. * guix/scripts/package.scm (package-provenance) (package->manifest-entry*): New procedures. (transaction-upgrade-entry, options->installable): Use 'package->manifest-entry*' instead of 'package->manifest-entry'. --- guix/profiles.scm | 6 +++-- guix/scripts/package.scm | 57 ++++++++++++++++++++++++++++++++++++---- 2 files changed, 56 insertions(+), 7 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index f34f4fcff6..8acfcff8c1 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -286,7 +286,8 @@ file name." (manifest-transitive-entries manifest)))) (define* (package->manifest-entry package #:optional (output "out") - #:key (parent (delay #f))) + #:key (parent (delay #f)) + (properties '())) "Return a manifest entry for the OUTPUT of package PACKAGE." ;; For each dependency, keep a promise pointing to its "parent" entry. (letrec* ((deps (map (match-lambda @@ -305,7 +306,8 @@ file name." (dependencies (delete-duplicates deps)) (search-paths (package-transitive-native-search-paths package)) - (parent parent)))) + (parent parent) + (properties properties)))) entry)) (define (packages->manifest packages) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index b38a55d01c..97bcc699d9 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -35,6 +35,7 @@ #:use-module (guix config) #:use-module (guix scripts) #:use-module (guix scripts build) + #:autoload (guix describe) (current-profile-entries) #:use-module ((guix build utils) #:select (directory-exists? mkdir-p)) #:use-module (ice-9 format) @@ -238,7 +239,7 @@ of relevance scores." (info (G_ "package '~a' has been superseded by '~a'~%") (manifest-entry-name old) (package-name new)) (manifest-transaction-install-entry - (package->manifest-entry new (manifest-entry-output old)) + (package->manifest-entry* new (manifest-entry-output old)) (manifest-transaction-remove-pattern (manifest-pattern (name (manifest-entry-name old)) @@ -261,7 +262,7 @@ of relevance scores." (case (version-compare candidate-version version) ((>) (manifest-transaction-install-entry - (package->manifest-entry pkg output) + (package->manifest-entry* pkg output) transaction)) ((<) transaction) @@ -274,7 +275,7 @@ of relevance scores." (null? (package-propagated-inputs pkg))) transaction (manifest-transaction-install-entry - (package->manifest-entry pkg output) + (package->manifest-entry* pkg output) transaction)))))))) (#f (warning (G_ "package '~a' no longer exists~%") name) @@ -570,6 +571,52 @@ upgrading, #f otherwise." (output "out") ;XXX: wild guess (item item)))) +(define (package-provenance package) + "Return the provenance of PACKAGE as an sexp for use as the 'provenance' +property of manifest entries, or #f if it could not be determined." + (define (entry-source entry) + (match (assq 'source + (manifest-entry-properties entry)) + (('source value) value) + (_ #f))) + + (match (and=> (package-location package) location-file) + (#f #f) + (file + (let ((file (if (string-prefix? "/" file) + file + (search-path %load-path file)))) + (and file + (string-prefix? (%store-prefix) file) + + ;; Always store information about the 'guix' channel and + ;; optionally about the specific channel FILE comes from. + (or (let ((main (and=> (find (lambda (entry) + (string=? "guix" + (manifest-entry-name entry))) + (current-profile-entries)) + entry-source)) + (extra (any (lambda (entry) + (let ((item (manifest-entry-item entry))) + (and (string-prefix? item file) + (entry-source entry)))) + (current-profile-entries)))) + (and main + `(,main + ,@(if extra (list extra) '())))))))))) + +(define (package->manifest-entry* package output) + "Like 'package->manifest-entry', but attach PACKAGE provenance meta-data to +the resulting manifest entry." + (define (provenance-properties package) + (match (package-provenance package) + (#f '()) + (sexp `((provenance ,@sexp))))) + + (package->manifest-entry package output + #:properties (provenance-properties package))) + + (define (options->installable opts manifest transaction) "Given MANIFEST, the current manifest, and OPTS, the result of 'args-fold', return an variant of TRANSACTION that accounts for the specified installations @@ -590,13 +637,13 @@ and upgrades." (('install . (? package? p)) ;; When given a package via `-e', install the first of its ;; outputs (XXX). - (package->manifest-entry p "out")) + (package->manifest-entry* p "out")) (('install . (? string? spec)) (if (store-path? spec) (store-item->manifest-entry spec) (let-values (((package output) (specification->package+output spec))) - (package->manifest-entry package output)))) + (package->manifest-entry* package output)))) (_ #f)) opts)) From da34a19f3af425b5596c09fb388f0a2ee04d4bba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 7 Sep 2018 14:19:42 +0200 Subject: [PATCH 167/208] guix describe: Display information about the current generation. * guix/scripts/describe.scm (display-profile-info)[number]: Use the current generation number instead of the last generation number. --- guix/scripts/describe.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm index 46feea2940..fdff07d0e3 100644 --- a/guix/scripts/describe.scm +++ b/guix/scripts/describe.scm @@ -108,8 +108,7 @@ within a Git checkout." "Display information about PROFILE, a profile as created by (guix channels), in the format specified by FMT." (define number - (match (profile-generations profile) - ((_ ... last) last))) + (generation-number profile)) (match fmt ('human From 15214828a52b66f95890ee29f7fb25dec3c5b065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 7 Sep 2018 17:03:49 +0200 Subject: [PATCH 168/208] gnu: guile-json: Update to 1.2.0. * gnu/packages/guile.scm (guile-json): Update to 1.2.0. [license]: Change to GPL3+. --- gnu/packages/guile.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 335bd6219f..05d9315214 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -897,7 +897,7 @@ for Guile\".") (define-public guile-json (package (name "guile-json") - (version "1.1.1") + (version "1.2.0") (home-page "https://github.com/aconchillo/guile-json") (source (origin (method url-fetch) @@ -906,7 +906,7 @@ for Guile\".") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "12jqkn9qgwdlxbasy2n25a2a7apf30dww1nnxqfam5735k3jdngv")))) + "02kqv0q98fmchn7i4y7ycmrjlh4b2c93ij0z7k036qwpp204w4gh")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -924,7 +924,9 @@ specification. These are the main features: @item Unicode support for strings. @item Allows JSON pretty printing. @end itemize\n") - (license license:lgpl3+))) + + ;; Version 1.2.0 switched to GPLv3+ (from LGPLv3+). + (license license:gpl3+))) (define-public guile2.2-json (deprecated-package "guile2.2-json" guile-json)) From 6b4f99102c4e3f57cc657c14ff196b211654f88b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 7 Sep 2018 17:38:08 +0200 Subject: [PATCH 169/208] gnu: gdb: Update to 8.2. * gnu/packages/gdb.scm (gdb): Update to 8.2. --- gnu/packages/gdb.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index f0c4c8b804..74eb0f8994 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -37,14 +37,14 @@ (define-public gdb (package (name "gdb") - (version "8.1.1") + (version "8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz")) (sha256 (base32 - "0g6hv9xk12aa58w77fydaldqr9a6b0a6bnwsq87jfc6lkcbc7p4p")))) + "0fbw6j4z7kmvywwgavn7w3knp860i5i9qnjffc5p52bwkji43963")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME "make check" fails on single-processor systems. From afdd1555c4639dbd378fddffdee702933d14a1b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 7 Sep 2018 17:57:04 +0200 Subject: [PATCH 170/208] gnu: indent: Add version 2.2.12. * gnu/packages/code.scm (indent-2.2.12): New variable. --- gnu/packages/code.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index be178a5f99..85ee6c2877 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -651,6 +651,19 @@ extensions over the standard utility.") (license license:gpl3+) (home-page "https://www.gnu.org/software/indent/"))) +(define-public indent-2.2.12 + (package + (inherit indent) + (version "2.2.12") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/indent/indent-" version + ".tar.gz")) + (sha256 + (base32 + "12xvcd16cwilzglv9h7sgh4h1qqjd1h8s48ji2dla58m4706hzg7")))) + (native-inputs `(("texinfo" ,texinfo))))) + (define-public amalgamate (let* ((commit "c91f07eea1133aa184f652b8f1398eaf03586208") (revision "0") From 9f1f200c0462d5fa798e4d7b8c3c09294f8bfb95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 7 Sep 2018 17:59:16 +0200 Subject: [PATCH 171/208] gnu: diffoscope: Update to 100. * gnu/packages/package-management.scm (diffoscope): Update to 100. --- gnu/packages/package-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 529d2943c4..5edfb5dffb 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -568,13 +568,13 @@ transactions from C or Python.") (define-public diffoscope (package (name "diffoscope") - (version "96") + (version "100") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "1x66f2x8miy3giff14higpcs70c0zb5d3gj6yn8ac6p183sngl72")))) + "0sh7g26i5ndpa8l7xq6rnijbi3jz5izjn0b98zcnm6wpgghszw48")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases From 9b6c4355645534d1ae799bfef6761b75ed8b3a41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 7 Sep 2018 23:00:39 +0200 Subject: [PATCH 172/208] services: 'instantiate-missing-services' reaches fixed point. Fixes a bug whereby services indirectly depended on would not be automatically instantiated. * gnu/services.scm (instantiate-missing-services): Loop back when the length of ADJUSTED is greater than that of INSTANCES. * tests/services.scm ("instantiate-missing-services, indirect"): New test. --- gnu/services.scm | 24 +++++++++++++++++------- tests/services.scm | 25 +++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/gnu/services.scm b/gnu/services.scm index 49cf01a4f8..f151bbaa9d 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -732,13 +732,23 @@ instantiated; other missing services lead to a instances (service-type-extensions (service-kind svc)))) - (let ((instances (fold (lambda (service result) - (vhash-consq (service-kind service) service - result)) - vlist-null services))) - (fold2 adjust-service-list - services instances - services))) + (let loop ((services services)) + (define instances + (fold (lambda (service result) + (vhash-consq (service-kind service) service + result)) + vlist-null services)) + + (define adjusted + (fold2 adjust-service-list + services instances + services)) + + ;; If we instantiated services, they might in turn depend on missing + ;; services. Loop until we've reached fixed point. + (if (= (length adjusted) (vlist-length instances)) + adjusted + (loop adjusted)))) (define* (fold-services services #:key (target-type system-service-type)) diff --git a/tests/services.scm b/tests/services.scm index b146a0dec2..1ad577e601 100644 --- a/tests/services.scm +++ b/tests/services.scm @@ -138,6 +138,31 @@ (equal? (list s1 s2) (instantiate-missing-services (list s1 s2)))))) +(test-assert "instantiate-missing-services, indirect" + (let* ((t1 (service-type (name 't1) (extensions '()) + (default-value 'dflt) + (compose concatenate) + (extend cons))) + (t2 (service-type (name 't2) (extensions '()) + (default-value 'dflt2) + (compose concatenate) + (extend cons) + (extensions + (list (service-extension t1 list))))) + (t3 (service-type (name 't3) + (extensions + (list (service-extension t2 list))))) + (s1 (service t1)) + (s2 (service t2)) + (s3 (service t3 42)) + (== (cut lset= equal? <...>))) + (and (== (list s1 s2 s3) + (instantiate-missing-services (list s3))) + (== (list s1 s2 s3) + (instantiate-missing-services (list s1 s3))) + (== (list s1 s2 s3) + (instantiate-missing-services (list s2 s3)))))) + (test-assert "instantiate-missing-services, no default value" (let* ((t1 (service-type (name 't1) (extensions '()))) (t2 (service-type (name 't2) From 48d17ba1d333109876bc53fe6ede6f8b3f519609 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 7 Sep 2018 21:01:48 -0400 Subject: [PATCH 173/208] gnu: linux-libre@4.4: Update to 4.4.154. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.154. --- 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 02d723316d..1670cf7a3c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -452,8 +452,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.153" - "195vzkkmjiicqfzd38hgf381rlz665rl06abzf8cww0gbnzvrf72" + (make-linux-libre "4.4.154" + "08i9fvrmswkydj538wg6c7ggxmhll0ff0bjkw8rnyslqwilfwr1i" %intel-compatible-systems #:configuration-file kernel-config)) From ddb419ce046f6ef7732b71af9f145c46d4aa42de Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 7 Sep 2018 21:02:30 -0400 Subject: [PATCH 174/208] gnu: linux-libre@4.9: Update to 4.9.125. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.125. --- 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 1670cf7a3c..cabc34b0df 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -446,8 +446,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.124" - "0p78gx5jiqvaf2cadf5jp40lzgarrg0m0ybf9w2499v28vjsp30q" + (make-linux-libre "4.9.125" + "1saihk61l1kk42jf8yfsfkm77zalq31f0bdlam3c1g7yw702wj9g" %intel-compatible-systems #:configuration-file kernel-config)) From 4be8fdd3ccb5d41438812d6781379457800345bd Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 7 Sep 2018 21:03:03 -0400 Subject: [PATCH 175/208] gnu: linux-libre@4.14: Update to 4.14.68. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.68. (%linux-libre-4.14-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 cabc34b0df..2b02870a73 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -436,8 +436,8 @@ It has been modified to remove all non-free binary blobs.") #:patches %linux-libre-4.18-patches #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.67") -(define %linux-libre-4.14-hash "050zvdxjy6sc64q75pr1gxsmh49chwav2pwxz8xlif39bvahnrpg") +(define %linux-libre-4.14-version "4.14.68") +(define %linux-libre-4.14-hash "05l5y0vbbl60jxdbqglqr9c99a8g8lfsp4mcqfpcx1pkh5br7i3l") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version From 090e3768e8a3157d440f6fdf513b4bf058328b0f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 7 Sep 2018 21:05:14 -0400 Subject: [PATCH 176/208] gnu: linux-libre: Update to 4.18.6. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.18.6. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2b02870a73..7d5b3aed86 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -405,8 +405,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.18.5") -(define %linux-libre-hash "1y52ns34vh9p4pfj08xsycv8p0xywm6dbpdi0wwpkll1xgpqikvf") +(define %linux-libre-version "4.18.6") +(define %linux-libre-hash "1l5caid77vbfb54zrfxkk7qj7lrf9ck9kpn96kr45spkwl51wm8m") (define %linux-libre-4.18-patches (list %boot-logo-patch From 39b5d8fd9d0383124c93b85fd22c6d35545f694f Mon Sep 17 00:00:00 2001 From: Benjamin Slade Date: Fri, 7 Sep 2018 21:08:15 -0600 Subject: [PATCH 177/208] gnu: Add frotz, frotz-dumb-terminal, and frotz-sdl. * gnu/packages/games.scm (frotz, frotz-dumb-terminal, frotz-sdl): New variables. Signed-off-by: Kei Kebreau --- gnu/packages/games.scm | 157 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 728f763806..2015e3ce47 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -34,6 +34,7 @@ ;;; Copyright © 2018 okapi ;;; Copyright © 2018 Tim Gesthuizen ;;; Copyright © 2018 Madalin Ionel-Patrascu +;;; Copyright © 2018 Benjamin Slade ;;; ;;; This file is part of GNU Guix. ;;; @@ -5553,3 +5554,159 @@ open-source FPS of its kind.") (license (list license:gpl2+ license:bsd-3 ; /source/d0_blind_id folder and others (license:x11-style "" "See file rcon.pl."))))) + +(define-public frotz + (package + (name "frotz") + (version "2.44") + (source (origin + (method url-fetch) + (uri (list (string-append + "http://www.ifarchive.org/if-archive/infocom/interpreters/" + name "/" name "-" version ".tar.gz") + (string-append + "ftp://ftp.ifarchive.org/if-archive/infocom/interpreters/" + name "/" name "-" version ".tar.gz"))) + (sha256 + (base32 + "1v735xr3blznac8fnwa27s1vhllx4jpz7kw7qdw1bsfj6kq21v3k")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'curses + (lambda _ + (substitute* "Makefile" + (("lcurses") "lncurses")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man (string-append out "/share/man/man6"))) + (install-file "frotz" bin) + (mkdir-p man) + (install-file "doc/frotz.6" man) + #t)))))) + (inputs `(("libmodplug" ,libmodplug) + ("libsamplerate" ,libsamplerate) + ("libsndfile" ,libsndfile) + ("libvorbis" ,libvorbis) + ("ncurses" ,ncurses))) + (synopsis "Portable Z-machine interpreter (ncurses version) for text adventure games") + (description "Frotz is an interpreter for Infocom games and other Z-machine +games in the text adventure/interactive fiction genre. This version of Frotz +complies with standard 1.0 of Graham Nelson's specification. It plays all +Z-code games V1-V8, including V6, with sound support through libao, and uses +ncurses for text display.") + (home-page "http://frotz.sourceforge.net") + (license license:gpl2+))) + +(define-public frotz-dumb-terminal + (package + (name "frotz-dumb-terminal") + (version "2.44") + (source (origin + (method url-fetch) + (uri (list (string-append + "http://www.ifarchive.org/if-archive/infocom/interpreters/" + "frotz" "/" "frotz" "-" version ".tar.gz") + (string-append + "ftp://ftp.ifarchive.org/if-archive/infocom/interpreters/" + "frotz" "/" "frotz" "-" version ".tar.gz"))) + (sha256 + (base32 + "1v735xr3blznac8fnwa27s1vhllx4jpz7kw7qdw1bsfj6kq21v3k")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (invoke "make" "dumb"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man (string-append out "/share/man/man6"))) + (install-file "dfrotz" bin) + (mkdir-p man) + (install-file "doc/dfrotz.6" man) + #t)))))) + (synopsis "Portable Z-machine dumb interpreter for text adventure games") + (description "Frotz is an interpreter for Infocom games and +other Z-machine games in the text adventure/interactive fiction genre. +dfrotz is the dumb interface version. You get no screen control; everything +is just printed to the terminal line by line. The terminal handles all the +scrolling. Maybe you'd like to experience what it's like to play Adventure on +a teletype. A much cooler use for compiling Frotz with the dumb interface is +that it can be wrapped in CGI scripting, PHP, and the like to allow people +to play games on webpages. It can also be made into a chat bot.") + (home-page "http://frotz.sourceforge.net") + (license license:gpl2+))) + +(define-public frotz-sdl + (let* ((commit "4de8c34f2116fff554af6216c30ec9d41bf50b24")) + (package + (name "frotz-sdl") + (version "2.45pre") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/DavidGriffith/frotz") + (commit commit))) + (sha256 + (base32 + "18ms21pcrl7ipcnyqnf8janamkryzx78frsgd9kfk67jvbj0z2k8")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'patch-makefile + (lambda _ + (substitute* "Makefile" + (("lcurses") "lncurses") + (("^BUILD_DATE_TIME =.*$") + "BUILD_DATE_TIME = \"2.45pre-20180907.00000\"\n")) + #t)) + (replace 'build + (lambda _ + (invoke "make" "sdl"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man (string-append out "/share/man/man6"))) + (install-file "sfrotz" bin) + (mkdir-p man) + (install-file "doc/sfrotz.6" man) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which) + ("perl" ,perl))) + (inputs `(("sdl2" ,sdl2) + ("sdl2-mixer" ,sdl2-mixer) + ("libmodplug" ,libmodplug) + ("libsamplerate" ,libsamplerate) + ("libsndfile" ,libsndfile) + ("libvorbis" ,libvorbis) + ("ncurses" ,ncurses) + ("freetype" ,freetype) + ("libjpeg-turbo" ,libjpeg-turbo))) + (synopsis "Portable Z-machine interpreter (SDL port) for text adventure games") + (description "Frotz is an interpreter for Infocom games and other Z-machine +games in the text adventure/interactive fiction genre. This version of Frotz +using SDL fully supports all these versions of the Z-Machine including the +graphical version 6. Graphics and sound are created through the use of the SDL +libraries. AIFF sound effects and music in MOD and OGG formats are supported +when packaged in Blorb container files or optionally from individual files.") + (home-page "http://frotz.sourceforge.net") + (license license:gpl2+)))) From 445ecce92307aa7ab70cf02b70078e860de17dc0 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sat, 8 Sep 2018 16:55:32 +0200 Subject: [PATCH 178/208] gnu: nyacc: Update to 0.86.0. * gnu/packages/patches/nyacc-binary-literals.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/mes.scm (nyacc): Update to 0.86.0, add patch. --- gnu/local.mk | 1 + gnu/packages/mes.scm | 6 ++-- .../patches/nyacc-binary-literals.patch | 29 +++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/nyacc-binary-literals.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1924ae9467..847e45e8cc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -988,6 +988,7 @@ dist_patch_DATA = \ %D%/packages/patches/nvi-assume-preserve-path.patch \ %D%/packages/patches/nvi-dbpagesize-binpower.patch \ %D%/packages/patches/nvi-db4.patch \ + %D%/packages/patches/nyacc-binary-literals.patch \ %D%/packages/patches/nyx-show-header-stats-with-python3.patch \ %D%/packages/patches/ocaml-bisect-fix-camlp4-in-another-directory.patch \ %D%/packages/patches/ocaml-bitstring-fix-configure.patch \ diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 81d4145439..7bdad5e32f 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -39,15 +39,15 @@ (define-public nyacc (package (name "nyacc") - (version "0.83.3") + (version "0.86.0") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/nyacc/" name "-" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (patches (search-patches "nyacc-binary-literals.patch")) (sha256 (base32 - "0120n0mdb6r58c4jc024dhwqy5s8a20waknijfhqjc59a884lrd6")))) + "0lkd9lyspvhxlfs0496gsllwinh62jk9wij6gpadvx9gwz6yavd9")))) (build-system gnu-build-system) (native-inputs `(("guile" ,guile-2.2))) diff --git a/gnu/packages/patches/nyacc-binary-literals.patch b/gnu/packages/patches/nyacc-binary-literals.patch new file mode 100644 index 0000000000..8159d74032 --- /dev/null +++ b/gnu/packages/patches/nyacc-binary-literals.patch @@ -0,0 +1,29 @@ +From 6a08014b77bf435f025ecdac08396580b85f159a Mon Sep 17 00:00:00 2001 +From: Jan Nieuwenhuizen +Date: Sat, 8 Sep 2018 20:22:45 +0200 +Subject: [PATCH] fix binary literals. + +--- + module/nyacc/lex.scm | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/module/nyacc/lex.scm b/module/nyacc/lex.scm +index 2ec9895..b205212 100644 +--- a/module/nyacc/lex.scm ++++ b/module/nyacc/lex.scm +@@ -345,10 +345,11 @@ + ((char-numeric? ch) (iter chl '$fixed ba 1 ch)) + ((char=? #\. ch) (iter (cons ch chl) #f ba 15 (read-char))) + (else #f))) +- ((10) ;; allow x after 0 ++ ((10) ;; allow x, b after 0 + (cond + ((eof-object? ch) (iter chl ty ba 5 ch)) + ((char=? #\x ch) (iter (cons ch chl) ty 16 1 (read-char))) ++ ((char=? #\b ch) (iter (cons ch chl) ty 2 1 (read-char))) + (else (iter chl ty ba 1 ch)))) + ((15) ;; got `.' only + (cond +-- +2.18.0 + From c665774a1ca9431746b1d559b06e24c1b05625d8 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sat, 8 Sep 2018 16:58:37 +0200 Subject: [PATCH 179/208] gnu: mes: Update to 0.17.1. * gnu/packages/patches/mes-nyacc-0.86.0.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/mes.scm (mes): Update to 0.17.1, depend on latest Nyacc 0.86.0. (nyacc-for-mes): Remove. --- gnu/local.mk | 1 + gnu/packages/mes.scm | 20 +- gnu/packages/patches/mes-nyacc-0.86.0.patch | 197 ++++++++++++++++++++ 3 files changed, 202 insertions(+), 16 deletions(-) create mode 100644 gnu/packages/patches/mes-nyacc-0.86.0.patch diff --git a/gnu/local.mk b/gnu/local.mk index 847e45e8cc..278afbb257 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -953,6 +953,7 @@ dist_patch_DATA = \ %D%/packages/patches/mcrypt-CVE-2012-4409.patch \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \ + %D%/packages/patches/mes-nyacc-0.86.0.patch \ %D%/packages/patches/mesa-skip-disk-cache-test.patch \ %D%/packages/patches/meson-for-build-rpath.patch \ %D%/packages/patches/metabat-fix-compilation.patch \ diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 7bdad5e32f..63a8db449a 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -59,36 +59,24 @@ extensive examples, including parsers for the Javascript and C99 languages.") (home-page "https://savannah.nongnu.org/projects/nyacc") (license (list gpl3+ lgpl3+)))) -(define-public nyacc-for-mes - (package - (inherit nyacc) - (version "0.80.42") - (source (origin - (method url-fetch) - (uri (string-append "https://gitlab.com/janneke/nyacc" - "/-/archive/v" version - "/nyacc-" version ".tar.gz")) - (sha256 - (base32 - "0c8c8kxir0h2d4nxr131xbkfs7c80haipmkp2g6677sh14wn0b3y")))))) - (define-public mes (let ((triplet "i686-unknown-linux-gnu")) (package (name "mes") - (version "0.17") + (version "0.17.1") (source (origin (method url-fetch) (uri (string-append "http://alpha.gnu.org/gnu/mes/" "mes-" version ".tar.gz")) + (patches (search-patches "mes-nyacc-0.86.0.patch")) (sha256 (base32 - "1j32x4zqy2cqjlg9m35f2411mwac2b0p5ch4hm99gddmfbxzgyhg")))) + "02g8zig53ffd0ai8kqhv2zj7bj2366a8hr6ydkwakmi2d1amyrna")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (propagated-inputs `(("mescc-tools" ,mescc-tools) - ("nyacc" ,nyacc-for-mes))) + ("nyacc" ,nyacc))) (native-inputs `(("guile" ,guile-2.2) ,@(if (not (string-prefix? "i686-linux" (or (%current-target-system) diff --git a/gnu/packages/patches/mes-nyacc-0.86.0.patch b/gnu/packages/patches/mes-nyacc-0.86.0.patch new file mode 100644 index 0000000000..58dfc5a46b --- /dev/null +++ b/gnu/packages/patches/mes-nyacc-0.86.0.patch @@ -0,0 +1,197 @@ +From 9e610736bf779f3295c1192e748cd19cbbe3be28 Mon Sep 17 00:00:00 2001 +From: Jan Nieuwenhuizen +Date: Wed, 5 Sep 2018 20:28:06 +0200 +Subject: [PATCH 1/2] mes: Support Nyacc 0.85.3: Add char-set-copy. + +* mes/module/srfi/srfi-14.mes (char-set-copy): New function> +--- + mes/module/srfi/srfi-14.mes | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/mes/module/srfi/srfi-14.mes b/mes/module/srfi/srfi-14.mes +index 0be39b1e..a16d16ce 100644 +--- a/mes/module/srfi/srfi-14.mes ++++ b/mes/module/srfi/srfi-14.mes +@@ -52,3 +52,6 @@ + + (define (char-whitespace? c) + (char-set-contains? char-set:whitespace c)) ++ ++(define (char-set-copy cs) ++ (map identity cs)) +-- +2.18.0 + +From b952bdf44f11edbfc277600dc35236aae1769b54 Mon Sep 17 00:00:00 2001 +From: Jan Nieuwenhuizen +Date: Wed, 5 Sep 2018 22:14:34 +0200 +Subject: [PATCH 2/2] mes: Support Nyacc 0.85.3: Integrate progress. + +* mes/module/nyacc/lang/sx-util.mes: New file. +* mes/module/nyacc/version.mes: New file. +* mes/module/nyacc/lang/c99/cpp.mes (nyacc): Include them. +* mes/module/nyacc/lang/c99/parser.mes (nyacc): Include them. +* module/mescc/preprocess.scm (need-progress): New function. +(progress): New function. +(insert-progress-monitors): Use them to Integrate progress. +--- + mes/module/mescc/preprocess.mes | 1 + + mes/module/nyacc/lang/c99/cpp.mes | 1 + + mes/module/nyacc/lang/c99/parser.mes | 1 + + mes/module/nyacc/lang/sx-util.mes | 27 +++++++++++++++++++++ + mes/module/nyacc/version.mes | 26 +++++++++++++++++++++ + module/mescc/preprocess.scm | 35 ++++++++++++++++++++++++++++ + 6 files changed, 91 insertions(+) + create mode 100644 mes/module/nyacc/lang/sx-util.mes + create mode 100644 mes/module/nyacc/version.mes + +diff --git a/mes/module/mescc/preprocess.mes b/mes/module/mescc/preprocess.mes +index c7c5fcaa..022a372c 100644 +--- a/mes/module/mescc/preprocess.mes ++++ b/mes/module/mescc/preprocess.mes +@@ -24,4 +24,5 @@ + (mes-use-module (srfi srfi-13)) + (mes-use-module (srfi srfi-26)) + (mes-use-module (nyacc lang c99 parser)) ++(mes-use-module (nyacc version)) + (include-from-path "mescc/preprocess.scm") +diff --git a/mes/module/nyacc/lang/c99/cpp.mes b/mes/module/nyacc/lang/c99/cpp.mes +index fad1dc55..b25c4a93 100644 +--- a/mes/module/nyacc/lang/c99/cpp.mes ++++ b/mes/module/nyacc/lang/c99/cpp.mes +@@ -28,5 +28,6 @@ + + (mes-use-module (nyacc parse)) + (mes-use-module (nyacc lex)) ++(mes-use-module (nyacc lang sx-util)) + (mes-use-module (nyacc lang util)) + (include-from-path "nyacc/lang/c99/cpp.scm") +diff --git a/mes/module/nyacc/lang/c99/parser.mes b/mes/module/nyacc/lang/c99/parser.mes +index c51552d6..1a9aaf73 100644 +--- a/mes/module/nyacc/lang/c99/parser.mes ++++ b/mes/module/nyacc/lang/c99/parser.mes +@@ -32,6 +32,7 @@ + + (mes-use-module (nyacc lex)) + (mes-use-module (nyacc parse)) ++(mes-use-module (nyacc lang sx-util)) + (mes-use-module (nyacc lang util)) + (mes-use-module (nyacc lang c99 cpp)) + +diff --git a/mes/module/nyacc/lang/sx-util.mes b/mes/module/nyacc/lang/sx-util.mes +new file mode 100644 +index 00000000..41ac5b4a +--- /dev/null ++++ b/mes/module/nyacc/lang/sx-util.mes +@@ -0,0 +1,27 @@ ++;;; -*-scheme-*- ++ ++;;; GNU Mes --- Maxwell Equations of Software ++;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen ++;;; ++;;; This file is part of GNU Mes. ++;;; ++;;; GNU Mes 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 Mes 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 Mes. If not, see . ++ ++;;; Commentary: ++ ++;;; Code: ++ ++(mes-use-module (srfi srfi-1)) ++(mes-use-module (srfi srfi-16)) ++(include-from-path "nyacc/lang/sx-util.scm") +diff --git a/mes/module/nyacc/version.mes b/mes/module/nyacc/version.mes +new file mode 100644 +index 00000000..b9db628e +--- /dev/null ++++ b/mes/module/nyacc/version.mes +@@ -0,0 +1,26 @@ ++;;; -*-scheme-*- ++ ++;;; GNU Mes --- Maxwell Equations of Software ++;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen ++;;; ++;;; This file is part of GNU Mes. ++;;; ++;;; GNU Mes 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 Mes 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 Mes. If not, see . ++ ++;;; Commentary: ++ ++;;; Code: ++ ++(include-from-path "nyacc/version.scm") ++(display "nyacc version\n") +diff --git a/module/mescc/preprocess.scm b/module/mescc/preprocess.scm +index 9e341cba..c2efb32c 100644 +--- a/module/mescc/preprocess.scm ++++ b/module/mescc/preprocess.scm +@@ -26,9 +26,44 @@ + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (nyacc lang c99 parser) ++ #:use-module (nyacc lang c99 parser) ++ #:use-module (nyacc version) + #:use-module (mes guile) + #:export (c99-input->ast)) + ++(format (current-error-port) "*nyacc-version*=~a\n" *nyacc-version*) ++;; list of which rules you want progress reported ++(define need-progress ++ (assoc-ref ++ '(("0.85.3" (1 2 3)) ++ ("0.86.0" (1 2 3))) ++ *nyacc-version*)) ++ ++(define (progress o) ++ (when (and o (getenv "NYACC_DEBUG")) ++ (display " :" (current-error-port)) ++ (display o (current-error-port)) ++ (display "\n" (current-error-port)))) ++ ++(define (insert-progress-monitors act-v len-v) ++ (let ((n (vector-length act-v))) ++ (let loop ((ix 0)) ++ (when (< ix n) ++ (if (memq ix need-progress) ++ (vector-set ++ act-v ix ++ (lambda args ++ (progress (list-ref args (1- (vector-ref len-v ix)))) ++ (apply (vector-ref act-v ix) args)))) ++ (loop (1+ ix)))))) ++ ++(cond-expand ++ (guile ++ (insert-progress-monitors (@@ (nyacc lang c99 parser) c99-act-v) ++ (@@ (nyacc lang c99 parser) c99-len-v))) ++ (mes ++ (insert-progress-monitors c99-act-v c99-len-v))) ++ + (define (logf port string . rest) + (apply format (cons* port string rest)) + (force-output port) +-- +2.18.0 + From 985975ae80fe5a8e58319b3a5aaf14da940c4419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 8 Sep 2018 18:48:48 +0200 Subject: [PATCH 180/208] services: nginx: Don't read PID file when passed a custom config file. Fixes . * gnu/services/web.scm (nginx-shepherd-service): Check whether FILE is true and don't read the PID file if it is; use 'read-pid-file' instead of a potentially endless loop. --- gnu/services/web.scm | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 3778efd048..1c993b29fe 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -610,14 +610,12 @@ of index files." (match '#$args (("-s" . _) #t) (_ - (let loop ((duration 0)) - ;; https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864/comments/7 - (sleep duration) - (if (file-exists? #$pid-file) - (let ((pid (call-with-input-file #$pid-file read))) - ;; it could be # - (if (integer? pid) pid (loop 1))) - (loop 1))))))))) + ;; When FILE is true, we cannot be sure that PID-FILE will + ;; be created, so assume it won't show up. When FILE is + ;; false, read PID-FILE. + #$(if file + #~#t + #~(read-pid-file #$pid-file)))))))) ;; TODO: Add 'reload' action. (list (shepherd-service From e80c725db7d11618dec7c3f92845f71b0a9715b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 8 Sep 2018 18:50:55 +0200 Subject: [PATCH 181/208] services: nginx: 'stop' returns #f. Previously we'd return #t, which the Shepherd would consider a failure to stop the service. * gnu/services/web.scm (nginx-shepherd-service): In 'nginx-action', return #f when stopping the service. --- gnu/services/web.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 1c993b29fe..df82a6de61 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -608,7 +608,7 @@ of index files." (default-nginx-config config)) #$@args) (match '#$args - (("-s" . _) #t) + (("-s" . _) #f) (_ ;; When FILE is true, we cannot be sure that PID-FILE will ;; be created, so assume it won't show up. When FILE is From 5dec93bb8ba89605bce2f9a5ee9c4dbadeee3b58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 8 Sep 2018 22:56:40 +0200 Subject: [PATCH 182/208] gexp: 'file-union' accepts directory names. * guix/gexp.scm (file-union): Import (guix build utils). Make the parent directories of TARGET. * tests/gexp.scm ("file-union"): New test. --- guix/gexp.scm | 37 +++++++++++++++++++++---------------- tests/gexp.scm | 18 ++++++++++++++++++ 2 files changed, 39 insertions(+), 16 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index ffc976d61b..f7a23db872 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1479,26 +1479,31 @@ denoting the target file. Here's an example: `((\"hosts\" ,(plain-file \"hosts\" \"127.0.0.1 localhost\")) (\"bashrc\" ,(plain-file \"bashrc\" - \"alias ls='ls --color'\")))) + \"alias ls='ls --color'\")) + (\"libvirt/qemu.conf\" ,(plain-file \"qemu.conf\" \"\")))) This yields an 'etc' directory containing these two files." (computed-file name - (gexp - (begin - (mkdir (ungexp output)) - (chdir (ungexp output)) - (ungexp-splicing - (map (match-lambda - ((target source) - (gexp - (begin - ;; Stat the source to abort early if it does - ;; not exist. - (stat (ungexp source)) + (with-imported-modules '((guix build utils)) + (gexp + (begin + (use-modules (guix build utils)) - (symlink (ungexp source) - (ungexp target)))))) - files)))))) + (mkdir (ungexp output)) + (chdir (ungexp output)) + (ungexp-splicing + (map (match-lambda + ((target source) + (gexp + (begin + ;; Stat the source to abort early if it does + ;; not exist. + (stat (ungexp source)) + + (mkdir-p (dirname (ungexp target))) + (symlink (ungexp source) + (ungexp target)))))) + files))))))) (define* (directory-union name things #:key (copy? #f) (quiet? #f) diff --git a/tests/gexp.scm b/tests/gexp.scm index b22e635805..5d049cd5fc 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -1093,6 +1093,24 @@ (call-with-input-file out get-string-all)) (equal? refs (list guile)))))))) +(test-assertm "file-union" + (mlet* %store-monad ((union -> (file-union "union" + `(("a" ,(plain-file "a" "1")) + ("b/c/d" ,(plain-file "d" "2")) + ("e" ,(plain-file "e" "3"))))) + (drv (lower-object union)) + (out -> (derivation->output-path drv))) + (define (contents=? file str) + (string=? (call-with-input-file (string-append out "/" file) + get-string-all) + str)) + + (mbegin %store-monad + (built-derivations (list drv)) + (return (and (contents=? "a" "1") + (contents=? "b/c/d" "2") + (contents=? "e" "3")))))) + (test-assert "gexp->derivation vs. %current-target-system" (let ((mval (gexp->derivation "foo" #~(begin From 4ab6a2f23d43f6c7e4a5a7420db613c5ba5b03b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 8 Sep 2018 22:59:04 +0200 Subject: [PATCH 183/208] tests: base: Add Guile-Gcrypt & co. to the search path. Fixes a regression introduced in ca719424455465fca4b872c371daf2a46de88b33, whereby (gcrypt hash) would not be found in the system under test, leading to a failure of the "/run/current-system is a GC root" test. * gnu/tests/base.scm (run-basic-test)[guix&co]: New variable. [test]: Add all of GUIX&CO to %LOAD-PATH. --- gnu/tests/base.scm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index f27064af85..f97581de33 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -42,6 +42,7 @@ #:use-module (guix monads) #:use-module (guix packages) #:use-module (srfi srfi-1) + #:use-module (ice-9 match) #:export (run-basic-test %test-basic-os %test-halt @@ -68,6 +69,11 @@ initialization step, such as entering a LUKS passphrase." (fold-services (operating-system-services os) #:target-type special-files-service-type))) + (define guix&co + (match (package-transitive-propagated-inputs guix) + (((labels packages) ...) + (cons guix packages)))) + (define test (with-imported-modules '((gnu build marionette) (guix build syscalls)) @@ -345,8 +351,14 @@ info --version") 'success! (marionette-eval '(begin ;; Make sure the (guix …) modules are found. - (add-to-load-path - #+(file-append guix "/share/guile/site/2.2")) + (eval-when (expand load eval) + (set! %load-path + (append (map (lambda (package) + (string-append package + "/share/guile/site/" + (effective-version))) + '#$guix&co) + %load-path))) (use-modules (srfi srfi-34) (guix store)) From d7f99b3b767e50e73afbe041a2887aa1c878d990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 9 Sep 2018 18:56:18 +0800 Subject: [PATCH 184/208] gnu: perl: Improve description. Fixes . * gnu/packages/perl.scm (perl)[description]: Use description from 'perlintro'. --- gnu/packages/perl.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 4d70e019b9..1bf4cb15fe 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -156,8 +156,10 @@ (files '("lib/perl5/site_perl"))))) (synopsis "Implementation of the Perl programming language") (description - "Perl 5 is a highly capable, feature-rich programming language with over -24 years of development.") + "Perl is a general-purpose programming language originally developed for +text manipulation and now used for a wide range of tasks including system +administration, web development, network programming, GUI development, and +more.") (home-page "http://www.perl.org/") (license gpl1+))) ; or "Artistic" From 6930ea33c979b3d4713c9a1c59bd24ca0f642980 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 17 Aug 2018 16:09:33 +0200 Subject: [PATCH 185/208] gnu: aircrack-ng: Use HTTPS. * gnu/packages/networking.scm (aircrack-ng)[source, home-page]: Use HTTPS. --- 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 acf523d366..5a85a9d40d 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -766,7 +766,7 @@ live network and disk I/O bandwidth monitor.") (source (origin (method url-fetch) - (uri (string-append "http://download.aircrack-ng.org/aircrack-ng-" + (uri (string-append "https://download.aircrack-ng.org/aircrack-ng-" version ".tar.gz")) (sha256 (base32 @@ -807,7 +807,7 @@ live network and disk I/O bandwidth monitor.") (("\\$\\(ethtool") (string-append "$(" ethtool))) #t)))))) - (home-page "http://www.aircrack-ng.org") + (home-page "https://www.aircrack-ng.org") (synopsis "Assess WiFi network security") (description "Aircrack-ng is a complete suite of tools to assess WiFi network From b9114ccbad64db553b88d2b17206a34585b60e37 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 17 Aug 2018 16:13:51 +0200 Subject: [PATCH 186/208] gnu: aircrack-ng: Update to 1.3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/networking.scm (aircrack-ng): Update to 1.3. [native-inputs]: Add autoconf, automake, libtool, and which. [inputs]: Add libpcap. [arguments]: Use conventional --options in #:configure-flags. Restore ‘configure’ phase. Add ‘patch-evalrev’ and customise ‘bootstrap’ phases. Simplify ‘absolutize-tools’ phase. --- gnu/packages/networking.scm | 48 +++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 5a85a9d40d..abc616de3c 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -762,7 +762,7 @@ live network and disk I/O bandwidth monitor.") (define-public aircrack-ng (package (name "aircrack-ng") - (version "1.2-rc4") + (version "1.3") (source (origin (method url-fetch) @@ -770,42 +770,48 @@ live network and disk I/O bandwidth monitor.") version ".tar.gz")) (sha256 (base32 - "0dpzx9kddxpgzmgvdpl3rxn0jdaqhm5wxxndp1xd7d75mmmc2fnr")))) + "1jl30d0kibc82447fr3lgw75arik0l9729k94z76l7vl51y8mq4a")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("which" ,which))) (inputs `(("libgcrypt" ,libgcrypt) ("libnl" ,libnl) + ("libpcap" ,libpcap) ("ethtool" ,ethtool) ("pcre" ,pcre) ("sqlite" ,sqlite) ("zlib" ,zlib))) (arguments - `(#:make-flags `("sqlite=true" - "gcrypt=true" - "libnl=true" - "pcre=true" - "experimental=true" ;build wesside-ng, etc. - "AVX2FLAG=N" "AVX1FLAG=N" - ,,@(match (%current-system) - ((or "x86_64-linux" "i686-linux") - `("SSEFLAG=Y")) - (_ - `("NEWSSE=false"))) - ,(string-append "prefix=" %output)) + `(#:configure-flags + (list "--with-experimental=yes" ; build wesside-ng, etc. + "--with-gcrypt") ; openssl's the default #:phases (modify-phases %standard-phases - (delete 'configure) ;no configure phase + (add-before 'bootstrap 'patch-evalrev + (lambda _ + ;; Called by ./autogen.sh below, before the default + ;; ‘patch-shebangs’ phase has had a chance to run. + (substitute* "evalrev" + (("/bin/sh") + (which "sh"))) + #t)) + (replace 'bootstrap + (lambda _ + ;; Patch shebangs in generated files before running + ;; ./configure. + (setenv "NOCONFIGURE" "please") + (invoke "bash" "./autogen.sh"))) (add-after 'build 'absolutize-tools (lambda* (#:key inputs #:allow-other-keys) (let ((ethtool (string-append (assoc-ref inputs "ethtool") "/sbin/ethtool"))) (substitute* "scripts/airmon-ng" - (("\\[ ! -x \"\\$\\(command -v ethtool 2>&1)\" \\]") - (string-append "! " ethtool " --version " - ">/dev/null 2>&1")) - (("\\$\\(ethtool") - (string-append "$(" ethtool))) + (("ethtool ") + (string-append ethtool " "))) #t)))))) (home-page "https://www.aircrack-ng.org") (synopsis "Assess WiFi network security") From a0fad0374e583d44a73d6f76ead3bfeefc6d6b08 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 14:59:49 +0200 Subject: [PATCH 187/208] gnu: links: Update to 2.17. * gnu/packages/web-browsers.scm (links): Update to 2.17. --- gnu/packages/web-browsers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 45252c933d..2c2767dbbc 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -86,14 +86,14 @@ older or slower computers and embedded systems.") (define-public links (package (name "links") - (version "2.16") + (version "2.17") (source (origin (method url-fetch) (uri (string-append "http://links.twibright.com/download/" name "-" version ".tar.bz2")) (sha256 (base32 - "0gsa2gpb1grhssl5jzpc5pa0zi21mxi8g25rh5bacl70slw31w42")))) + "0dh2gbzcw8kxy81z4ggsynibnqs56b83vy8qgz7illsag1irff6q")))) (build-system gnu-build-system) (arguments `(#:phases From 2d32a6572ddcd23aa1ae598a5d9b6e36f7f87b09 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 14:38:44 +0200 Subject: [PATCH 188/208] gnu: perl-params-validate: Update to 1.29. * gnu/packages/perl.scm (perl-params-validate): Update to 1.29. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 1bf4cb15fe..8dea2051a6 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6744,7 +6744,7 @@ checking parameters easier.") (define-public perl-params-validate (package (name "perl-params-validate") - (version "1.26") + (version "1.29") (source (origin (method url-fetch) @@ -6752,7 +6752,7 @@ checking parameters easier.") "Params-Validate-" version ".tar.gz")) (sha256 (base32 - "1vbj78qd46ip09i06dsbb62jfwpzp4bg7yi617v98nvim77w66l2")))) + "0cwpf8yxwyxbnwhf6rx4wnaq1q38j38i34a78a005shb8gxqv9j9")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) From 49e63e38846977342c6b6cb44349db0b070f2a84 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 14:38:35 +0200 Subject: [PATCH 189/208] gnu: perl-datetime: Update to 1.50. * gnu/packages/perl.scm (perl-datetime): Update to 1.50. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 8dea2051a6..a3f899fdb3 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2180,7 +2180,7 @@ hours, minutes, seconds, and time zones.") (define-public perl-datetime (package (name "perl-datetime") - (version "1.49") + (version "1.50") (source (origin (method url-fetch) @@ -2188,7 +2188,7 @@ hours, minutes, seconds, and time zones.") "DateTime-" version ".tar.gz")) (sha256 (base32 - "0hbw4zq1562slnz7g7hyhfhyq98dzkk3i5g21x3xra5cvfix93kh")))) + "165iqk1xvhs5j0kzsipa7aqycx3h37wqsl2r4jl104yqvmqhqszd")))) (build-system perl-build-system) (native-inputs `(("perl-cpan-meta-check" ,perl-cpan-meta-check) From 04fc0b9489e97e55914d0e1f9b1439a5b7964854 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 14:13:51 +0200 Subject: [PATCH 190/208] gnu: perl-namespace-clean: Update to 0.27. * gnu/packages/perl.scm (perl-namespace-clean): Update to 0.27. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index a3f899fdb3..c81829165e 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6364,7 +6364,7 @@ anything that looks like a method.") (define-public perl-namespace-clean (package (name "perl-namespace-clean") - (version "0.25") + (version "0.27") (source (origin (method url-fetch) @@ -6372,7 +6372,7 @@ anything that looks like a method.") "namespace-clean-" version ".tar.gz")) (sha256 (base32 - "016dds70ql1mp18b07chkxiy4drn976ibnbshqc2hmhrh9xjnsll")))) + "17dg64pd4bwi2ad3p8ykwys1zha7kg8a8ykvks7wfg8q7qyah44a")))) (build-system perl-build-system) (propagated-inputs `(("perl-package-stash" ,perl-package-stash) From 748e6e1271750319cfa1096f28f9c8588356bcf5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 14:13:43 +0200 Subject: [PATCH 191/208] gnu: perl-getopt-long-descriptive: Update to 0.103. * gnu/packages/perl.scm (perl-getopt-long-descriptive): Update to 0.103. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index c81829165e..1c6b251198 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3812,7 +3812,7 @@ single-letter approach, is provided but not enabled by default.") (define-public perl-getopt-long-descriptive (package (name "perl-getopt-long-descriptive") - (version "0.102") + (version "0.103") (source (origin (method url-fetch) @@ -3820,7 +3820,7 @@ single-letter approach, is provided but not enabled by default.") "Getopt-Long-Descriptive-" version ".tar.gz")) (sha256 (base32 - "0ii8xafvlph5vzcqp3dpc83lg7nkg3l1l2hmqdf5382a567vkm4s")))) + "1cpl240qxmh7jf85ai9sfkp3nzm99syya4jxidizp7aa83kvmqbh")))) (build-system perl-build-system) (native-inputs `(("perl-cpan-meta-check" ,perl-cpan-meta-check) From 4e77b75e114d8ab50ead5e28ae04556abc6c6883 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 14:13:32 +0200 Subject: [PATCH 192/208] gnu: perl-extutils-helpers: Update to 0.026. * gnu/packages/perl.scm (perl-extutils-helpers): Update to 0.026. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 1c6b251198..0de597ca59 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3232,7 +3232,7 @@ XS interface besides the perl one.") (define-public perl-extutils-helpers (package (name "perl-extutils-helpers") - (version "0.022") + (version "0.026") (source (origin (method url-fetch) @@ -3240,7 +3240,7 @@ XS interface besides the perl one.") "ExtUtils-Helpers-" version ".tar.gz")) (sha256 (base32 - "15dalfwmpfmifw312i5pwiai8134pxf7b2804shlqhdk1xqczy6k")))) + "05ilqcj1rg5izr09dsqmy5di4fvq6ph4k0chxks7qmd4j1kip46y")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/ExtUtils-Helpers") (synopsis "Various portability utilities for module builders") From 15dbc911f6deb7c30e7fde2e9bb17e3b671183e5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 14:13:22 +0200 Subject: [PATCH 193/208] gnu: perl-extutils-installpaths: Update to 0.012. * gnu/packages/perl.scm (perl-extutils-installpaths): Update to 0.012. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 0de597ca59..54dd29deec 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3168,7 +3168,7 @@ only about 40% as many lines of code and with zero non-core dependencies.") (define-public perl-extutils-installpaths (package (name "perl-extutils-installpaths") - (version "0.011") + (version "0.012") (source (origin (method url-fetch) @@ -3176,7 +3176,7 @@ only about 40% as many lines of code and with zero non-core dependencies.") "ExtUtils-InstallPaths-" version ".tar.gz")) (sha256 (base32 - "0z06y0fhx9hy9x01abb7s2xdbqrh9x4ps7avmlf4bwfwih2gl2bn")))) + "1v9lshfhm9ck4p0v77arj5f7haj1mmkqal62lgzzvcds6wq5www4")))) (build-system perl-build-system) (propagated-inputs `(("perl-extutils-config" ,perl-extutils-config))) From 9ad80992d0111afeedfb47cd3594397e844517ba Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 14:13:12 +0200 Subject: [PATCH 194/208] gnu: perl-config-autoconf: Update to 0.317. * gnu/packages/perl.scm (perl-config-autoconf): Update to 0.317. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 54dd29deec..fc0553798b 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1409,7 +1409,7 @@ supports XML, YAML, JSON, Apache-style configuration, and Perl code.") (define-public perl-config-autoconf (package (name "perl-config-autoconf") - (version "0.315") + (version "0.317") (source (origin (method url-fetch) @@ -1417,7 +1417,7 @@ supports XML, YAML, JSON, Apache-style configuration, and Perl code.") "Config-AutoConf-" version ".tar.gz")) (sha256 (base32 - "0h39x9rzrhhilpg8yxlzpka269qrzsjg0iy0c1b9xflqlvhx2g2b")))) + "1qcwib4yaml5z2283qy5khjcydyibklsnk8zrk9wzdzc5wnv5r01")))) (build-system perl-build-system) (propagated-inputs `(("perl-capture-tiny" ,perl-capture-tiny))) From bb5e06a35e55d687cbc5c64299d039e5de7d9c8c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 13:23:03 +0200 Subject: [PATCH 195/208] gnu: perl-pegex: Update to 0.67. * gnu/packages/perl.scm (perl-pegex): Update to 0.67. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index fc0553798b..c4c3b665db 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6937,7 +6937,7 @@ for correctness.") (define-public perl-pegex (package (name "perl-pegex") - (version "0.64") + (version "0.67") (source (origin (method url-fetch) @@ -6946,7 +6946,7 @@ for correctness.") version ".tar.gz")) (sha256 (base32 - "1kb7y2cc3nibbn8i8y3vrzz1f9h3892nbf8jj88c5fdgpmj05q17")))) + "149015ra2figalxrnj72fz02qc5cm96xg6x8d6kmyanfmrrxzf9w")))) (build-system perl-build-system) (native-inputs `(("perl-file-sharedir-install" ,perl-file-sharedir-install) From bb105673b88cea5c290ea9a16094ce29fcf0f475 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 9 Sep 2018 13:17:08 +0200 Subject: [PATCH 196/208] gnu: musl: Update to 1.1.20. * gnu/packages/musl.scm (musl): Update to 1.1.20. --- gnu/packages/musl.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm index ff789b8c6f..357372becd 100644 --- a/gnu/packages/musl.scm +++ b/gnu/packages/musl.scm @@ -28,17 +28,17 @@ (define-public musl (package (name "musl") - (version "1.1.19") + (version "1.1.20") (source (origin (method url-fetch) (uri (string-append "http://www.musl-libc.org/releases/" name "-" version ".tar.gz")) (sha256 (base32 - "1nf1wh44bhm8gdcfr75ayib29b99vpq62zmjymrq7f96h9bshnfv")))) + "0q8dsjxl41dccscv9a0r78bs7jap57mn4mni5pwbbip6s1qqggj4")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; Musl has no tests + `(#:tests? #f ; Musl has no tests #:configure-flags (list "--disable-gcc-wrapper"))) (synopsis "Small C standard library") From c2311644a5432eb118d5e789288a0ddf43990684 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 8 Sep 2018 14:56:54 +0200 Subject: [PATCH 197/208] gnu: signify: Update to 24. * gnu/packages/crypto.scm (signify): Update to 24. --- gnu/packages/crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index e070ef61ac..d9111135e8 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -126,7 +126,7 @@ communication, encryption, decryption, signatures, etc.") (define-public signify (package (name "signify") - (version "23") + (version "24") (source (origin (method url-fetch) (uri (string-append "https://github.com/aperezdc/signify/" @@ -134,7 +134,7 @@ communication, encryption, decryption, signatures, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0c70mzawgahsvmsv4xdrass4pgyynd67ipd9lij0fgi8wkq0ns8w")))) + "0594vyvkq176xxzaz9xbq8qs0xdnr8s9gkd1prblwpdvnzmw0xvc")))) (build-system gnu-build-system) ;; TODO Build with libwaive (described in README.md), to implement something ;; like OpenBSD's pledge(). From b64e67ad40f7cf6d4867cd38eee0e4ec16cd6e9a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 8 Sep 2018 14:55:12 +0200 Subject: [PATCH 198/208] gnu: cloc: Update to 1.78. * gnu/packages/code.scm (cloc): Update to 1.78. [source]: Update URI. --- gnu/packages/code.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 85ee6c2877..b3fbea0b38 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -211,16 +211,16 @@ COCOMO model or user-provided parameters.") (define-public cloc (package (name "cloc") - (version "1.76") + (version "1.78") (source (origin (method url-fetch) (uri (string-append - "https://github.com/AlDanial/cloc/releases/download/v" version + "https://github.com/AlDanial/cloc/releases/download/" version "/cloc-" version ".tar.gz")) (sha256 (base32 - "05srlvzwisr7y7ymvzb5yfdsrspja27ysqdmkwhiiivy84mq2gnl")))) + "176xklr2qsgxh9zdb565gib6pp4gsm585rz5fvyphgjy4i679wkv")))) (build-system gnu-build-system) (inputs `(("coreutils" ,coreutils) From 81bf0fd0d4a7e78febb394576ea849285fc2d329 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 4 Sep 2018 18:53:13 +0200 Subject: [PATCH 199/208] gnu: julia: Update objconv input. * gnu/packages/julia.scm (julia)[inputs]: Update the hash of "objconv", which does not have a stable URL. Add a file name and use HTTPS while at it. --- gnu/packages/julia.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index 39e2322739..fb9b0eeedf 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -355,10 +355,12 @@ ("objconv" ,(origin (method url-fetch) - (uri "http://www.agner.org/optimize/objconv.zip") + ;; No versioned URL, see for updates. + (uri "https://www.agner.org/optimize/objconv.zip") + (file-name "objconv-2018-08-15.zip") (sha256 (base32 - "1fi7qa2sd9vb35dvkgripjf0fayzg2qmff215f8agfqfiwd1g8qs")))) + "09y4pwxfs6fl47cyingbf95i2rxx74wmycl9fd4ldcgvpx9bzdrx")))) ("dsfmt" ,(origin (method url-fetch) From 617cf5de922e54042e93696d341350149942c6c4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 6 Sep 2018 19:14:39 +0200 Subject: [PATCH 200/208] gnu: mpfr: Update home page. * gnu/packages/multiprecision.scm (mpfr)[home-page]: Use HTTPS. --- gnu/packages/multiprecision.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index e185a98359..4f5eac16b9 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -108,7 +108,7 @@ algebra.") library for performing multiple-precision, floating-point computations with correct rounding.") (license lgpl3+) - (home-page "http://www.mpfr.org/"))) + (home-page "https://www.mpfr.org/"))) (define-public mpc (package From 249846bfdee20e28cc38425aa454ce2f932441f9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 7 Sep 2018 13:28:20 +0200 Subject: [PATCH 201/208] gnu: libsoup: Update to 2.64.0. * gnu/packages/gnome.scm (libsoup): Update to 2.64.0. [inputs]: Add LIBPSL. --- gnu/packages/gnome.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 13eb41e055..1a0cc9cc11 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2455,7 +2455,7 @@ libxml to ease remote use of the RESTful API.") (define-public libsoup (package (name "libsoup") - (version "2.62.3") + (version "2.64.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -2463,7 +2463,7 @@ libxml to ease remote use of the RESTful API.") name "-" version ".tar.xz")) (sha256 (base32 - "0whi8p03kpbp68kg6fg3vb7rhykjp7wn3nlbzy9j0p298zjss4nk")))) + "09z7g3spww3f84y8jmicdd6lqp360mbggpg5h1fq1v4p5ihcjnyr")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -2567,6 +2567,7 @@ libxml to ease remote use of the RESTful API.") ("libxml2" ,libxml2))) (inputs `(("glib-networking" ,glib-networking) + ("libpsl" ,libpsl) ("sqlite" ,sqlite))) (home-page "https://live.gnome.org/LibSoup/") (synopsis "GLib-based HTTP Library") From 37f9cfae43d8614904335434c91ea1c0d9d69508 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 7 Sep 2018 13:34:31 +0200 Subject: [PATCH 202/208] gnu: msmtp: Update to 1.8.0. * gnu/packages/mail.scm (msmtp): Update to 1.8.0. --- 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 4944dd7622..91a8822cfd 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1071,7 +1071,7 @@ which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.6.8") + (version "1.8.0") (source (origin (method url-fetch) @@ -1079,7 +1079,7 @@ which can add many functionalities to the base client.") "/msmtp-" version ".tar.xz")) (sha256 (base32 - "1ysrnshvwhzwmvb2walw5i9jdzlvmckj7inr0xnvb26q0jirbzsm")))) + "1k9wwlapkxk9ql3xq05y6vwn6ziqk9b1v8lyhj1866qd02zhqwxx")))) (build-system gnu-build-system) (inputs `(("libidn" ,libidn) From 91b3a6d4db848ae5de65ca511dc2deb27c7cb7dc Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 7 Sep 2018 13:39:31 +0200 Subject: [PATCH 203/208] gnu: msmtp: Remove unneeded input. * gnu/packages/mail.scm (msmtp)[inputs]: Remove LIBIDN, which is only required when using OpenSSL (or GnuTLS sans IDN support). --- gnu/packages/mail.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 91a8822cfd..024e75aaa1 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1082,8 +1082,7 @@ which can add many functionalities to the base client.") "1k9wwlapkxk9ql3xq05y6vwn6ziqk9b1v8lyhj1866qd02zhqwxx")))) (build-system gnu-build-system) (inputs - `(("libidn" ,libidn) - ("libsecret" ,libsecret) + `(("libsecret" ,libsecret) ("gnutls" ,gnutls) ("zlib" ,zlib) ("gsasl" ,gsasl))) From e9c1492f66b0ca5c86d6f23655b713978a4d7644 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 7 Sep 2018 13:58:31 +0200 Subject: [PATCH 204/208] gnu: glm: Update to 0.9.9.1. * gnu/packages/maths.scm (glm): Update to 0.9.9.1. --- 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 d2b9df01a7..ebbe2b0294 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3253,7 +3253,7 @@ Failure to do so will result in a library with poor performance.") (define-public glm (package (name "glm") - (version "0.9.9.0") + (version "0.9.9.1") (source (origin (method url-fetch) @@ -3261,7 +3261,7 @@ Failure to do so will result in a library with poor performance.") version "/glm-" version ".zip")) (sha256 (base32 - "0ihjadp2sb8w312a276skfjsljm3y41bjscbxf79wn23gi00giz1")))) + "042a23hmxfs429czkmlg5ixf28aikzfbw18780prj2gcd4flgw8h")))) (build-system cmake-build-system) (native-inputs `(("unzip" ,unzip))) From 1448fa254732a76fc138059043a6b5f12c71367b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 7 Sep 2018 19:29:00 +0200 Subject: [PATCH 205/208] gnu: openal: Update to 1.19.0. * gnu/packages/audio.scm (openal): Update to 1.19.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 e731569ae1..3b898c024a 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1908,7 +1908,7 @@ lv2-c++-tools.") (define-public openal (package (name "openal") - (version "1.18.2") + (version "1.19.0") (source (origin (method url-fetch) (uri (string-append @@ -1916,7 +1916,7 @@ lv2-c++-tools.") version ".tar.bz2")) (sha256 (base32 - "10kydm8701a2kppiss9sdidn1820cmzhqgx1b2bsa5dsgzic32lz")))) + "1mhf5bsb58s1xk6hvxl7ly7rd4rpl9z8h07xl1q94brywykg7bgi")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no check target From a617fd55df0fbdae951ec82b81ad512436e972ed Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 7 Sep 2018 20:01:57 +0200 Subject: [PATCH 206/208] gnu: OpenBLAS: Update source URI. * gnu/packages/maths.scm (openblas)[source](uri): Use the more stable SourceForge mirror. --- 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 ebbe2b0294..01bd03c600 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2846,8 +2846,8 @@ parts of it.") (source (origin (method url-fetch) - (uri (string-append "https://github.com/xianyi/OpenBLAS/tarball/v" - version)) + (uri (string-append "mirror://sourceforge/openblas/v" version "/OpenBLAS%20" + version "%20version.tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 From 910a20e2b8ac6d1c331ff79535831cce6222b3a3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 8 Sep 2018 07:59:06 +0200 Subject: [PATCH 207/208] gnu: jbig2dec: Replace with 0.15 [security fixes]. * gnu/packages/image.scm (jbig2dec-0.15): New public variable. (jbig2dec)[replacement]: New field. --- gnu/packages/image.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 81d22ed42d..78fb30c279 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2018 Joshua Sierles, Nextjournal ;;; Copyright © 2018 Fis Trivial ;;; Copyright © 2018 Pierre Neidhardt +;;; Copyright © 2018 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -495,6 +496,7 @@ arithmetic ops.") (package (name "jbig2dec") (version "0.14") + (replacement jbig2dec-0.15) (source (origin (method url-fetch) @@ -519,6 +521,21 @@ work.") (home-page "https://jbig2dec.com") (license license:gpl2+))) +;; This is a bugfix release from an ongoing Ghostscript security audit. +;; It was released alongside Ghostscript 9.24. +(define-public jbig2dec-0.15 + (package + (inherit jbig2dec) + (version "0.15") + (source (origin + (inherit (package-source jbig2dec)) + (uri (string-append "https://github.com/ArtifexSoftware" + "/ghostpdl-downloads/releases/download/gs924/" + "jbig2dec-" version ".tar.gz")) + (sha256 + (base32 + "0m1qwpbjbirgw2fqznbajdhdhh35d6xa2csr64lpjz735pvimykb")))))) + (define-public openjpeg (package (name "openjpeg") From 0084744b3af0a6f8e125120143f57567902339a8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 8 Sep 2018 12:46:22 +0200 Subject: [PATCH 208/208] gnu: ghostscript: Update replacement to 9.24 [security fixes]. The following CVEs are fixed with this release: CVE-2018-15908, CVE-2018-15909, CVE-2018-15910, CVE-2018-15911, CVE-2018-16509, CVE-2018-16510, CVE-2018-16511, CVE-2018-16513, CVE-2018-16539, CVE-2018-16540, CVE-2018-16541, CVE-2018-16542, CVE-2018-16543. * gnu/packages/patches/ghostscript-CVE-2018-10194.patch: Delete file. * gnu/packages/patches/ghostscript-CVE-2018-16509.patch, gnu/packages/patches/ghostscript-bug-699708.patch: New files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/ghostscript.scm (ghostscript/fixed): Update to 9.24. [source](patches): Remove 'ghostscript-CVE-2018-10194.patch' and 'ghostscript-runpath.patch'. Add 'ghostscript-CVE-2018-16509.patch' and 'ghostscript-bug-699708.patch'. [arguments]: Add LDFLAGS to #:configure-flags, and a phase to create output directory. --- gnu/local.mk | 3 +- gnu/packages/ghostscript.scm | 37 +++- .../patches/ghostscript-CVE-2018-10194.patch | 52 ----- .../patches/ghostscript-CVE-2018-16509.patch | 193 ++++++++++++++++++ .../patches/ghostscript-bug-699708.patch | 160 +++++++++++++++ 5 files changed, 389 insertions(+), 56 deletions(-) delete mode 100644 gnu/packages/patches/ghostscript-CVE-2018-10194.patch create mode 100644 gnu/packages/patches/ghostscript-CVE-2018-16509.patch create mode 100644 gnu/packages/patches/ghostscript-bug-699708.patch diff --git a/gnu/local.mk b/gnu/local.mk index 278afbb257..0407fdc597 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -726,7 +726,8 @@ dist_patch_DATA = \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \ - %D%/packages/patches/ghostscript-CVE-2018-10194.patch \ + %D%/packages/patches/ghostscript-CVE-2018-16509.patch \ + %D%/packages/patches/ghostscript-bug-699708.patch \ %D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 1240b1dc16..518e18397b 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,8 +39,10 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu) - #:use-module (guix build-system trivial)) + #:use-module (guix build-system trivial) + #:use-module (srfi srfi-1)) (define-public lcms (package @@ -255,11 +258,39 @@ output file formats and printers.") (hidden-package (package (inherit ghostscript) + (version "9.24") (source (origin (inherit (package-source ghostscript)) - (patches (append (origin-patches (package-source ghostscript)) - (search-patches "ghostscript-CVE-2018-10194.patch")))))))) + (uri (string-append "https://github.com/ArtifexSoftware/" + "ghostpdl-downloads/releases/download/gs" + (string-delete #\. version) + "/ghostscript-" version ".tar.xz")) + (sha256 + (base32 + "1mk922rnml93w2g42yxiyn8xqanc50cm65irrgh0b6lp4kgifjfl")) + (patches (search-patches "ghostscript-CVE-2018-16509.patch" + "ghostscript-bug-699708.patch" + "ghostscript-no-header-creationdate.patch" + "ghostscript-no-header-id.patch" + "ghostscript-no-header-uuid.patch")))) + (arguments + (substitute-keyword-arguments (package-arguments ghostscript) + ((#:configure-flags flags) + ;; Notice that we removed the 'ghostscript-runpath' patch above. + ;; The reason is that it conflicts with an upstream change that + ;; takes LDFLAGS into account. + `(cons (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib") + ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'configure 'create-output-directory + (lambda* (#:key outputs #:allow-other-keys) + ;; Unfortunately the configure script refuses to function if + ;; the directory specified as -rpath does not already exist. + (mkdir-p (string-append (assoc-ref outputs "out") "/lib")) + #t))))))))) (define-public ghostscript/x (package/inherit ghostscript diff --git a/gnu/packages/patches/ghostscript-CVE-2018-10194.patch b/gnu/packages/patches/ghostscript-CVE-2018-10194.patch deleted file mode 100644 index 242e57c27c..0000000000 --- a/gnu/packages/patches/ghostscript-CVE-2018-10194.patch +++ /dev/null @@ -1,52 +0,0 @@ -Fix CVE-2018-10194: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10194 -https://bugs.ghostscript.com/show_bug.cgi?id=699255 - -Patch copied from upstream source repository: - -https://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=39b1e54b2968620723bf32e96764c88797714879 - -From 39b1e54b2968620723bf32e96764c88797714879 Mon Sep 17 00:00:00 2001 -From: Ken Sharp -Date: Wed, 18 Apr 2018 15:46:32 +0100 -Subject: [PATCH] pdfwrite - Guard against trying to output an infinite number - -Bug #699255 " Buffer overflow on pprintg1 due to mishandle postscript file data to pdf" - -The file uses an enormous parameter to xyxhow, causing an overflow in -the calculation of text positioning (value > 1e39). - -Since this is basically a nonsense value, and PostScript only supports -real values up to 1e38, this patch follows the same approach as for -a degenerate CTM, and treats it as 0. - -Adobe Acrobat Distiller throws a limitcheck error, so we could do that -instead if this approach proves to be a problem. ---- - devices/vector/gdevpdts.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/devices/vector/gdevpdts.c b/devices/vector/gdevpdts.c -index 848ad781f..172fe6bc3 100644 ---- a/devices/vector/gdevpdts.c -+++ b/devices/vector/gdevpdts.c -@@ -103,9 +103,14 @@ append_text_move(pdf_text_state_t *pts, double dw) - static int - set_text_distance(gs_point *pdist, double dx, double dy, const gs_matrix *pmat) - { -- int code = gs_distance_transform_inverse(dx, dy, pmat, pdist); -+ int code; - double rounded; - -+ if (dx > 1e38 || dy > 1e38) -+ code = gs_error_undefinedresult; -+ else -+ code = gs_distance_transform_inverse(dx, dy, pmat, pdist); -+ - if (code == gs_error_undefinedresult) { - /* The CTM is degenerate. - Can't know the distance in user space. --- -2.18.0 - diff --git a/gnu/packages/patches/ghostscript-CVE-2018-16509.patch b/gnu/packages/patches/ghostscript-CVE-2018-16509.patch new file mode 100644 index 0000000000..50ffa3cb98 --- /dev/null +++ b/gnu/packages/patches/ghostscript-CVE-2018-16509.patch @@ -0,0 +1,193 @@ +Ghostscript 9.24 was released with an incomplete fix for CVE-2018-16509: +https://nvd.nist.gov/vuln/detail/CVE-2018-16509 +https://bugs.chromium.org/p/project-zero/issues/detail?id=1640#c19 +https://bugs.ghostscript.com/show_bug.cgi?id=699718 + +The reproducers no longer work after applying these commits: + +https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5812b1b78fc4d36fdc293b7859de69241140d590 +https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e914f1da46e33decc534486598dc3eadf69e6efb +https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e5d316b72e3965b7968bb1d96baa137cd063ac6 +https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=643b24dbd002fb9c131313253c307cf3951b3d47 + +This patch is a "squashed" version of those. + +diff --git a/Resource/Init/gs_setpd.ps b/Resource/Init/gs_setpd.ps +index bba3c8c0e..8fa7c51df 100644 +--- a/Resource/Init/gs_setpd.ps ++++ b/Resource/Init/gs_setpd.ps +@@ -95,27 +95,41 @@ level2dict begin + { % Since setpagedevice doesn't create new device objects, + % we must (carefully) reinstall the old parameters in + % the same device. +- .currentpagedevice pop //null currentdevice //null .trysetparams ++ .currentpagedevice pop //null currentdevice //null ++ { .trysetparams } .internalstopped ++ { ++ //null ++ } if + dup type /booleantype eq + { pop pop } +- { % This should never happen! ++ { + SETPDDEBUG { (Error in .trysetparams!) = pstack flush } if +- cleartomark pop pop pop ++ {cleartomark pop pop pop} .internalstopped pop ++ % if resetting the entire device state failed, at least put back the ++ % security related key ++ currentdevice //null //false mark /.LockSafetyParams ++ currentpagedevice /.LockSafetyParams .knownget not ++ {systemdict /SAFER .knownget not {//false} } if ++ .putdeviceparamsonly + /.installpagedevice cvx /rangecheck signalerror + } + ifelse pop pop + % A careful reading of the Red Book reveals that an erasepage + % should occur, but *not* an initgraphics. + erasepage .beginpage +- } bind def ++ } bind executeonly def + + /.uninstallpagedevice +- { 2 .endpage { .currentnumcopies //false .outputpage } if ++ { ++ {2 .endpage { .currentnumcopies //false .outputpage } if} .internalstopped pop + nulldevice + } bind def + + (%grestorepagedevice) cvn +- { .uninstallpagedevice grestore .installpagedevice ++ { ++ .uninstallpagedevice ++ grestore ++ .installpagedevice + } bind def + + (%grestoreallpagedevice) cvn +diff --git a/psi/zdevice2.c b/psi/zdevice2.c +index 0c7080d57..159a0c0d9 100644 +--- a/psi/zdevice2.c ++++ b/psi/zdevice2.c +@@ -251,8 +251,8 @@ z2currentgstate(i_ctx_t *i_ctx_p) + /* ------ Wrappers for operators that reset the graphics state. ------ */ + + /* Check whether we need to call out to restore the page device. */ +-static bool +-restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new) ++static int ++restore_page_device(i_ctx_t *i_ctx_p, const gs_gstate * pgs_old, const gs_gstate * pgs_new) + { + gx_device *dev_old = gs_currentdevice(pgs_old); + gx_device *dev_new; +@@ -260,9 +260,10 @@ restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new) + gx_device *dev_t2; + bool samepagedevice = obj_eq(dev_old->memory, &gs_int_gstate(pgs_old)->pagedevice, + &gs_int_gstate(pgs_new)->pagedevice); ++ bool LockSafetyParams = dev_old->LockSafetyParams; + + if ((dev_t1 = (*dev_proc(dev_old, get_page_device)) (dev_old)) == 0) +- return false; ++ return 0; + /* If we are going to putdeviceparams in a callout, we need to */ + /* unlock temporarily. The device will be re-locked as needed */ + /* by putdeviceparams from the pgs_old->pagedevice dict state. */ +@@ -271,23 +272,51 @@ restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new) + dev_new = gs_currentdevice(pgs_new); + if (dev_old != dev_new) { + if ((dev_t2 = (*dev_proc(dev_new, get_page_device)) (dev_new)) == 0) +- return false; +- if (dev_t1 != dev_t2) +- return true; ++ samepagedevice = true; ++ else if (dev_t1 != dev_t2) ++ samepagedevice = false; ++ } ++ ++ if (LockSafetyParams && !samepagedevice) { ++ const int required_ops = 512; ++ const int required_es = 32; ++ ++ /* The %grestorepagedevice must complete: the biggest danger ++ is operand stack overflow. As we use get/putdeviceparams ++ that means pushing all the device params onto the stack, ++ pdfwrite having by far the largest number of parameters ++ at (currently) 212 key/value pairs - thus needing (currently) ++ 424 entries on the op stack. Allowing for working stack ++ space, and safety margin..... ++ */ ++ if (required_ops + ref_stack_count(&o_stack) >= ref_stack_max_count(&o_stack)) { ++ gs_currentdevice(pgs_old)->LockSafetyParams = LockSafetyParams; ++ return_error(gs_error_stackoverflow); ++ } ++ /* We also want enough exec stack space - 32 is an overestimate of ++ what we need to complete the Postscript call out. ++ */ ++ if (required_es + ref_stack_count(&e_stack) >= ref_stack_max_count(&e_stack)) { ++ gs_currentdevice(pgs_old)->LockSafetyParams = LockSafetyParams; ++ return_error(gs_error_execstackoverflow); ++ } + } + /* + * The current implementation of setpagedevice just sets new + * parameters in the same device object, so we have to check + * whether the page device dictionaries are the same. + */ +- return !samepagedevice; ++ return samepagedevice ? 0 : 1; + } + + /* - grestore - */ + static int + z2grestore(i_ctx_t *i_ctx_p) + { +- if (!restore_page_device(igs, gs_gstate_saved(igs))) ++ int code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); ++ if (code < 0) return code; ++ ++ if (code == 0) + return gs_grestore(igs); + return push_callout(i_ctx_p, "%grestorepagedevice"); + } +@@ -297,7 +326,9 @@ static int + z2grestoreall(i_ctx_t *i_ctx_p) + { + for (;;) { +- if (!restore_page_device(igs, gs_gstate_saved(igs))) { ++ int code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); ++ if (code < 0) return code; ++ if (code == 0) { + bool done = !gs_gstate_saved(gs_gstate_saved(igs)); + + gs_grestore(igs); +@@ -328,11 +359,15 @@ z2restore(i_ctx_t *i_ctx_p) + if (code < 0) return code; + + while (gs_gstate_saved(gs_gstate_saved(igs))) { +- if (restore_page_device(igs, gs_gstate_saved(igs))) ++ code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); ++ if (code < 0) return code; ++ if (code > 0) + return push_callout(i_ctx_p, "%restore1pagedevice"); + gs_grestore(igs); + } +- if (restore_page_device(igs, gs_gstate_saved(igs))) ++ code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); ++ if (code < 0) return code; ++ if (code > 0) + return push_callout(i_ctx_p, "%restorepagedevice"); + + code = dorestore(i_ctx_p, asave); +@@ -355,9 +390,12 @@ static int + z2setgstate(i_ctx_t *i_ctx_p) + { + os_ptr op = osp; ++ int code; + + check_stype(*op, st_igstate_obj); +- if (!restore_page_device(igs, igstate_ptr(op))) ++ code = restore_page_device(i_ctx_p, igs, igstate_ptr(op)); ++ if (code < 0) return code; ++ if (code == 0) + return zsetgstate(i_ctx_p); + return push_callout(i_ctx_p, "%setgstatepagedevice"); + } diff --git a/gnu/packages/patches/ghostscript-bug-699708.patch b/gnu/packages/patches/ghostscript-bug-699708.patch new file mode 100644 index 0000000000..1567be1c6f --- /dev/null +++ b/gnu/packages/patches/ghostscript-bug-699708.patch @@ -0,0 +1,160 @@ +Additional security fix that missed 9.24. + +Taken from upstream: +http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb713b3818b52d8a6cf62c951eba2e1795ff9624 + +From fb713b3818b52d8a6cf62c951eba2e1795ff9624 Mon Sep 17 00:00:00 2001 +From: Chris Liddell +Date: Thu, 6 Sep 2018 09:16:22 +0100 +Subject: [PATCH] Bug 699708 (part 1): 'Hide' non-replaceable error handlers + for SAFER + +We already had a 'private' dictionary for non-standard errors: gserrordict. + +This now includes all the default error handlers, the dictionary is made +noaccess and all the prodedures are bound and executeonly. + +When running with -dSAFER, in the event of a Postscript error, instead of +pulling the handler from errordict, we'll pull it from gserrordict - thus +malicious input cannot trigger problems by the use of custom error handlers. + +errordict remains open and writeable, so files such as the Quality Logic tests +that install their own handlers will still 'work', with the exception that the +custom error handlers will not be called. + +This is a 'first pass', 'sledgehammer' approach: a nice addition would to allow +an integrator to specify a list of errors that are not to be replaced (for +example, embedded applications would probably want to ensure that VMerror is +always handled as they intend). +--- + Resource/Init/gs_init.ps | 29 ++++++++++++++++++----------- + psi/interp.c | 30 +++++++++++++++++++++--------- + 2 files changed, 39 insertions(+), 20 deletions(-) + +diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps +index 071c39205..bc8b7951c 100644 +--- a/Resource/Init/gs_init.ps ++++ b/Resource/Init/gs_init.ps +@@ -881,7 +881,7 @@ userdict /.currentresourcefile //null put + { not exch pop exit } { pop } ifelse + } + for exch pop .quit +- } bind def ++ } bind executeonly def + /.errorhandler % .errorhandler - + { % Detect an internal 'stopped'. + 1 .instopped { //null eq { pop pop stop } if } if +@@ -926,7 +926,7 @@ userdict /.currentresourcefile //null put + $error /globalmode get $error /.nosetlocal get and .setglobal + $error /.inerror //false put + stop +- } bind def ++ } bind executeonly def + % Define the standard handleerror. We break out the printing procedure + % (.printerror) so that it can be extended for binary output + % if the Level 2 facilities are present. +@@ -976,7 +976,7 @@ userdict /.currentresourcefile //null put + ifelse % newerror + end + flush +- } bind def ++ } bind executeonly def + /.printerror_long % long error printout, + % $error is on the dict stack + { % Push the (anonymous) stack printing procedure. +@@ -1053,14 +1053,14 @@ userdict /.currentresourcefile //null put + { (Current file position is ) print position = } + if + +- } bind def ++ } bind executeonly def + % Define a procedure for clearing the error indication. + /.clearerror + { $error /newerror //false put + $error /errorname //null put + $error /errorinfo //null put + 0 .setoserrno +- } bind def ++ } bind executeonly def + + % Define $error. This must be in local VM. + .currentglobal //false .setglobal +@@ -1086,11 +1086,15 @@ end + /errordict ErrorNames length 3 add dict + .forcedef % errordict is local, systemdict is global + .setglobal % back to global VM +-% For greater Adobe compatibility, we put all non-standard errors in a +-% separate dictionary, gserrordict. It does not need to be in local VM, +-% because PostScript programs do not access it. ++% gserrordict contains all the default error handling methods, but unlike ++% errordict it is noaccess after creation (also it is in global VM). ++% When running 'SAFER', we'll ignore the contents of errordict, which ++% may have been tampered with by the running job, and always use gserrordict ++% gserrordict also contains any non-standard errors, for better compatibility ++% with Adobe. ++% + % NOTE: the name gserrordict is known to the interpreter. +-/gserrordict 5 dict def ++/gserrordict ErrorNames length 3 add dict def + % Register an error in errordict. We make this a procedure because we only + % register the Level 1 errors here: the rest are registered by "feature" + % files. However, ErrorNames contains all of the error names regardless of +@@ -1119,8 +1123,11 @@ errordict begin + } bind def + end % errordict + +-% Put non-standard errors in gserrordict. +-gserrordict /unknownerror errordict /unknownerror get put ++% Put all the default handlers in gserrordict ++gserrordict ++errordict {2 index 3 1 roll put} forall ++noaccess pop ++% remove the non-standard errors from errordict + errordict /unknownerror .undef + % Define a stable private copy of handleerror that we will always use under + % JOBSERVER mode. +diff --git a/psi/interp.c b/psi/interp.c +index c27b70dca..d41a9d3f5 100644 +--- a/psi/interp.c ++++ b/psi/interp.c +@@ -661,16 +661,28 @@ again: + return code; + if (gs_errorname(i_ctx_p, code, &error_name) < 0) + return code; /* out-of-range error code! */ +- /* +- * For greater Adobe compatibility, only the standard PostScript errors +- * are defined in errordict; the rest are in gserrordict. ++ ++ /* If LockFilePermissions is true, we only refer to gserrordict, which ++ * is not accessible to Postcript jobs + */ +- if (dict_find_string(systemdict, "errordict", &perrordict) <= 0 || +- (dict_find(perrordict, &error_name, &epref) <= 0 && +- (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 || +- dict_find(perrordict, &error_name, &epref) <= 0)) +- ) +- return code; /* error name not in errordict??? */ ++ if (i_ctx_p->LockFilePermissions) { ++ if (((dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 || ++ dict_find(perrordict, &error_name, &epref) <= 0)) ++ ) ++ return code; /* error name not in errordict??? */ ++ } ++ else { ++ /* ++ * For greater Adobe compatibility, only the standard PostScript errors ++ * are defined in errordict; the rest are in gserrordict. ++ */ ++ if (dict_find_string(systemdict, "errordict", &perrordict) <= 0 || ++ (dict_find(perrordict, &error_name, &epref) <= 0 && ++ (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 || ++ dict_find(perrordict, &error_name, &epref) <= 0)) ++ ) ++ return code; /* error name not in errordict??? */ ++ } + doref = *epref; + epref = &doref; + /* Push the error object on the operand stack if appropriate. */ +-- +2.18.0 +