From 2fe05cb6e1c3df3573200a4d10456e5e92fa05e4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 4 Feb 2018 20:09:20 +0200 Subject: [PATCH 01/90] gnu: myrepos: Update to 1.20171231. * gnu/packages/version-control.scm (myrepos): Update to 1.20171231. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index a8b06b9ab2..2d9548417f 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014, 2016 Eric Bavier -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2015 Kyle Meyer ;;; Copyright © 2015, 2017 Ricardo Wurmus ;;; Copyright © 2016, 2017 Leo Famulari @@ -1456,7 +1456,7 @@ (define-public findnewest (define-public myrepos (package (name "myrepos") - (version "1.20170129") + (version "1.20171231") (source (origin (method git-fetch) @@ -1465,7 +1465,7 @@ (define-public myrepos (commit version))) (file-name (string-append name "-" version "-checkout")) (sha256 - (base32 "15i9bs2i25l7ibv530ghy8280kklcgm5kr6j86s7iwcqqckd0czp")))) + (base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) From af147cddd417ca90919e26f0311c1a6d8a22ca59 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 31 Jan 2018 20:35:08 +0100 Subject: [PATCH 02/90] gnu: rtags: Update to 2.18. * gnu/packages/code.scm (rtags): Update to 2.18. --- gnu/packages/code.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index a2d26c978d..93723d1a01 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -393,7 +393,7 @@ (define-public lcov (define-public rtags (package (name "rtags") - (version "2.16") + (version "2.18") (home-page "https://github.com/Andersbakken/rtags") (source (origin @@ -414,7 +414,7 @@ (define-public rtags (string-append "#include ")))))) (sha256 (base32 - "17rkci3mmiw93qc32b9x76pg57b0lx80avr6wnmh190jx8n3v3wy")))) + "0scjbp1z201q8njvrxqz7lk2m9b6k2rxd5q1shrng6532r7ndif2")))) (build-system cmake-build-system) (arguments '(#:configure-flags From 5a719deedcb6f559f3295b94d5258c4cc046ad30 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 10 Oct 2017 14:19:08 +0200 Subject: [PATCH 03/90] gnu: zstd: Fix typo in comment. * gnu/packages/compression.scm (zstd)[license]: Fix comment typo. --- gnu/packages/compression.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 813620911e..3e0541eb92 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1623,7 +1623,7 @@ (define-public zstd speed.") (license (list license:bsd-3 ; the main top-level LICENSE file license:bsd-2 ; many files explicitly state 2-Clause - license:gpl2 ; the mail top-level COPYING file + license:gpl2 ; the main top-level COPYING file license:gpl3+ ; tests/gzip/*.sh license:expat ; lib/dictBuilder/divsufsort.[ch] license:public-domain ; zlibWrapper/examples/fitblk* From d16948bf30442b88b28eaa0f2e5f1187abcb0ff0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 3 Feb 2018 00:22:00 +0100 Subject: [PATCH 04/90] doc: guix-publish-configuration-ttl is in seconds. * doc/guix.texi (Base Services): Document that guix-publish-configuration-ttl takes its value in seconds. --- doc/guix.texi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2b27a675cd..cb28c61182 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10188,9 +10188,9 @@ caching; when @code{#f}, the number of processors is used. @xref{Invoking guix publish, @option{--workers}}, for more information. @item @code{ttl} (default: @code{#f}) -When it is an integer, this denotes the @dfn{time-to-live} of the -published archives. @xref{Invoking guix publish, @option{--ttl}}, for -more information. +When it is an integer, this denotes the @dfn{time-to-live} in seconds +of the published archives. @xref{Invoking guix publish, @option{--ttl}}, +for more information. @end table @end deftp From 5de4653dedaa639ade6be83bc63b42f472d78977 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 4 Feb 2018 16:56:14 +0100 Subject: [PATCH 05/90] gnu: libmicrohttpd: Update to 0.9.59. * gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.59. --- gnu/packages/gnunet.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 7aa429f63d..29bfc8199f 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016, 2017, 2018 ng0 +;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -144,14 +145,14 @@ (define-public libextractor (define-public libmicrohttpd (package (name "libmicrohttpd") - (version "0.9.58") + (version "0.9.59") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-" version ".tar.gz")) (sha256 (base32 - "1wq17qvizis7bsyvyw1gnfycvivssncngziddnyrbzv2dhvy24bs")))) + "0g4jgnv43yddr9yxrqg11632rip0lg5c53gmy5wy3c0i1dywv74v")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) From 67f002520c311d8a70f6cce391b5b62647bbdd94 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 26 Dec 2017 18:18:39 +0000 Subject: [PATCH 06/90] gnu: nginx-documentation: Update to 2018-01-22-2100-cfb7bd672d77. * gnu/packages/web.scm (nginx-documentation): Update to 2018-01-22-2100-cfb7bd672d77. --- gnu/packages/web.scm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 4b5af557b4..fb076433f0 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -177,7 +177,7 @@ (define-public mod-wsgi (define-public nginx (package (name "nginx") - ;; Consider updating the nginx-docs package if the nginx package is + ;; Consider updating the nginx-documentation package if the nginx package is ;; updated. (version "1.13.8") (source (origin @@ -310,13 +310,13 @@ (define nginx-xslscript (license l:bsd-2)))) (define-public nginx-documentation - ;; This documentation should be relevant for nginx-1.12.0 - (let ((revision 1961) - (changeset "dd4b6c564e10")) + ;; This documentation should be relevant for nginx@1.13.8. + (let ((revision 2100) + (changeset "cfb7bd672d77")) (package (name "nginx-documentation") (version - (simple-format #f "2017-04-12-~A-~A" revision changeset)) + (simple-format #f "2018-01-22-~A-~A" revision changeset)) (source (origin (method hg-fetch) (uri (hg-reference @@ -325,13 +325,13 @@ (define-public nginx-documentation (file-name (string-append name "-" version)) (sha256 (base32 - "0rycfnnm2xkm777769h1zib428q45j64mx8nzzfzs4v07jbfc8m5")))) + "096fcsc0wnfr847m7dwp17rivd3alxq7v9hq9s5lkfbhylmh18vm")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; No test suite + '(#:tests? #f ; no test suite #:phases (modify-phases %standard-phases - (delete 'configure) + (delete 'configure) ; no configure script (replace 'build (lambda* (#:key outputs #:allow-other-keys) (let ((output (assoc-ref outputs "out"))) From 555a7429ee4f26b82e751fcb8b78d7d8ee31b438 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Mon, 5 Feb 2018 09:55:21 +0300 Subject: [PATCH 07/90] gnu: emacs-helm-make: Update to 0.1.0-1.feae8df. * gnu/packages/emacs.scm (emacs-helm-make): Update to 0.1.0-1.feae8df. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9523f14da3..83c4ae340c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4085,7 +4085,7 @@ (define-public emacs-helm-projectile (license license:gpl3+))) (define-public emacs-helm-make - (let ((commit "21c1bfa01b16b0d656f2b8a0dbb5bc8d47a7641b") + (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0") (revision "1")) (package (name "emacs-helm-make") @@ -4099,7 +4099,7 @@ (define-public emacs-helm-make (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "11vzrp63zdc67fg4d0y1alk8z9019sqslh2bd7ispk37s86dlbfw")))) + "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) From 710d889d572ef4de0f8b44ea70abae0e9f338461 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 5 Feb 2018 15:02:35 +0530 Subject: [PATCH 08/90] gnu: htop: Update to 2.1.0. * gnu/packages/admin.scm (htop): Update to 2.1.0. [native-inputs]: Add python-minimal-wrapper. [home-page]: Update URI. --- gnu/packages/admin.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 7c7c457f50..a5c9d410ca 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2017 Ethan R. Jones ;;; Copyright © 2017 Christopher Allan Webber ;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2018 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -256,18 +257,20 @@ (define-public dfc (define-public htop (package (name "htop") - (version "2.0.2") + (version "2.1.0") (source (origin (method url-fetch) (uri (string-append "http://hisham.hm/htop/releases/" version "/htop-" version ".tar.gz")) (sha256 (base32 - "11zlwadm6dpkrlfvf3z3xll26yyffa7qrxd1w72y1kl0rgffk6qp")))) + "0j07z0xm2gj1vzvbgh4323k4db9mr7drd7gw95mmpqi61ncvwq1j")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) - (home-page "http://htop.sourceforge.net/") + (native-inputs + `(("python" ,python-minimal-wrapper))) ; for scripts/MakeHeader.py + (home-page "https://hisham.hm/htop/") (synopsis "Interactive process viewer") (description "This is htop, an interactive process viewer. It is a text-mode From b6f7a4076ed1d6915e5a0c5353907f3fd22f6404 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 5 Feb 2018 04:16:09 -0500 Subject: [PATCH 09/90] gnu: oil-shell: Update to 0.4.0. * gnu/packages/shells.scm (oil-shell): Update to 0.4.0. --- gnu/packages/shells.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 5df9644dfc..80202e6814 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -648,14 +648,14 @@ (define-public mksh (define-public oil-shell (package (name "oil-shell") - (version "0.3.0") + (version "0.4.0") (source (origin (method url-fetch) (uri (string-append "https://www.oilshell.org/download/oil-" version ".tar.xz")) (sha256 (base32 - "0j4fyn6xjaf29xqyzm09ahazmq9v1hkxv4kps7n3lzdfr32a4kk9")))) + "0ca68n46mhibarpfinqfkim6p3xmbz5rrpl4qr3sj9y0q6wm7sa2")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; the tests are not distributed in the tarballs From 4284d04d2eebac651def465754590c94e27ea41c Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 5 Feb 2018 14:24:16 +0100 Subject: [PATCH 10/90] gnu: xpra: Update to 2.2.4. * gnu/packages/xorg.scm (xpra): Update to 2.2.4. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 411fbf17ef..7266dfd19a 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5955,7 +5955,7 @@ (define-public xcompmgr (define-public xpra (package (name "xpra") - (version "2.2.3") + (version "2.2.4") (source (origin (method url-fetch) @@ -5963,7 +5963,7 @@ (define-public xpra version ".tar.xz")) (sha256 (base32 - "03cq16cfffm5f62g1xc3makr03b5wjjfy6zlwag70pc3g0k6n6jh")))) + "0v8yflvisk94bfj0zg4ggdfwrig0f3ss9kjnws3zflsr33cb2hxy")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg) ("flac" ,flac) From 20c65aa1ecef784c50b2a802eb00b4d91fc71c75 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 5 Feb 2018 14:35:01 +0100 Subject: [PATCH 11/90] gnu: solfege: Fix typo. * gnu/packages/music.scm (solfege): Fix typo in `fix-configuration' phase. --- gnu/packages/music.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 2e8bc17192..7aba825816 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1050,7 +1050,7 @@ (define-public solfege (add-after 'unpack 'fix-configuration (lambda* (#:key inputs #:allow-other-keys) (substitute* "default.config" - (("/usr/bin/aplay" "aplay")) + (("/usr/bin/aplay") "aplay") (("/usr/bin/timidity") "timidity") (("/usr/bin/mpg123") "mpg123") (("/usr/bin/ogg123") "ogg123")) From 76dbb7516e13b8e24d88be34048ee4a83b0d2981 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 5 Feb 2018 15:40:52 +0100 Subject: [PATCH 12/90] gnu: miniupnpc: Update to 2.0.20180203. * gnu/packages/upnp.scm (miniupnpc): Update to 2.0.20180203. --- gnu/packages/upnp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index 41f9411281..5e2c990469 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -29,14 +29,14 @@ (define-module (gnu packages upnp) (define-public miniupnpc (package (name "miniupnpc") - (version "2.0.20171212") + (version "2.0.20180203") (source (origin (method url-fetch) (uri (string-append "https://miniupnp.tuxfamily.org/files/" name "-" version ".tar.gz")) (sha256 - (base32 "0za7pr6hrr3ajkifirhhxfn3hlhl06f622g8hnj5h8y18sp3bwff")))) + (base32 "1dr0qaf2qz49aawgsnv7l41rda5yvdk3qfz2hd5cv9iwav3sipch")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) From a5e03674d1c5a3ea2e188b909a14ce1ac87b8773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 5 Feb 2018 12:13:24 +0100 Subject: [PATCH 13/90] doc: Document the 'upstream-name' property. Reported by Hartmut Goebel . * doc/guix.texi (Invoking guix refresh): Document 'upstream-name'. --- doc/guix.texi | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index cb28c61182..c3b7d07d84 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6358,6 +6358,19 @@ are many packages, though, for which it lacks a method to determine whether a new upstream release is available. However, the mechanism is extensible, so feel free to get in touch with us to add a new method! +Sometimes the upstream name differs from the package name used in Guix, +and @command{guix refresh} needs a little help. Most updaters honor the +@code{upstream-name} property in package definitions, which can be used +to that effect: + +@example +(define-public network-manager + (package + (name "network-manager") + ;; @dots{} + (properties '((upstream-name . "NetworkManager"))))) +@end example + When passed @code{--update}, it modifies distribution source files to update the version numbers and source tarball hashes of those package recipes (@pxref{Defining Packages}). This is achieved by downloading From b7dee6a0b8af90e5adaa5b35f8dda359de96868d Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 13 Jan 2018 17:54:18 -0500 Subject: [PATCH 14/90] emacs-build-system: Add set-emacs-load-path phase. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This generalizes the mechanism by which the Emacs dependencies are made visible, so that any build phase can make use of them. * guix/build/emacs-build-system.scm (%legacy-install-suffix): New variable. (%install-suffix): Redefine in terms of %legacy-install-suffix. (set-emacs-load-path): Add new phase used for dependency resolution. (build): Remove ad-hoc dependency discovery mechanism. (emacs-input->el-directory): Add new procedure. (emacs-inputs-el-directories): Use it. (package-name-version->elpa-name-version): Fix typo. (%standard-phases): Include the new `set-emacs-load-path' phase. Refactor to make the ordering of the phases clearer. * guix/build/emacs-utils.scm (emacs-byte-compile-directory): Remove the optional `dependency-dirs' argument, which is now obsoleted by the `set-emacs-load-path' phase. Signed-off-by: Ludovic Courtès --- guix/build/emacs-build-system.scm | 50 ++++++++++++++++++++++--------- guix/build/emacs-utils.scm | 11 ++----- 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index bd0d2e0266..bdef4d25d7 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016 David Thompson ;;; Copyright © 2016 Alex Kost +;;; Copyright © 2018 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,7 +43,8 @@ (define-module (guix build emacs-build-system) ;; Directory suffix where we install ELPA packages. We avoid ".../elpa" as ;; Emacs expects to find the ELPA repository 'archive-contents' file and the ;; archive signature. -(define %install-suffix "/share/emacs/site-lisp/guix.d") +(define %legacy-install-suffix "/share/emacs/site-lisp") +(define %install-suffix (string-append %legacy-install-suffix "/guix.d")) ;; These are the default inclusion/exclusion regexps for the install phase. (define %default-include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$")) @@ -72,17 +74,25 @@ (define* (unpack #:key source #:allow-other-keys) #t) (gnu:unpack #:source source))) +(define* (set-emacs-load-path #:key inputs #:allow-other-keys) + "Set the EMACSLOADPATH environment variable so that dependencies are found." + (let* ((input-elisp-dirs (emacs-inputs-el-directories + (emacs-inputs-directories inputs))) + (emacs-load-path-value (string-join + input-elisp-dirs ":" 'suffix))) + (setenv "EMACSLOADPATH" emacs-load-path-value) + (format #t "environment variable `EMACSLOADPATH' set to ~a\n" + emacs-load-path-value))) + (define* (build #:key outputs inputs #:allow-other-keys) "Compile .el files." (let* ((emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs")) (out (assoc-ref outputs "out")) (elpa-name-ver (store-directory->elpa-name-version out)) - (el-dir (string-append out %install-suffix "/" elpa-name-ver)) - (deps-dirs (emacs-inputs-directories inputs))) + (el-dir (string-append out %install-suffix "/" elpa-name-ver))) (setenv "SHELL" "sh") (parameterize ((%emacs emacs)) - (emacs-byte-compile-directory el-dir - (emacs-inputs-el-directories deps-dirs))))) + (emacs-byte-compile-directory el-dir)))) (define* (patch-el-files #:key outputs #:allow-other-keys) "Substitute the absolute \"/bin/\" directory with the right location in the @@ -199,18 +209,27 @@ (define (emacs-inputs-directories inputs) (match inputs (((names . directories) ...) directories)))) +(define (emacs-input->el-directory emacs-input) + "Return the correct Elisp directory location of EMACS-INPUT or #f if none." + (let ((legacy-elisp-dir (string-append emacs-input %legacy-install-suffix)) + (guix-elisp-dir (string-append + emacs-input %install-suffix "/" + (store-directory->elpa-name-version emacs-input)))) + (cond + ((file-exists? guix-elisp-dir) guix-elisp-dir) + ((file-exists? legacy-elisp-dir) legacy-elisp-dir) + (else (format #t "warning: could not locate elisp directory under `~a'\n" + emacs-input) + #f)))) + (define (emacs-inputs-el-directories dirs) "Build the list of Emacs Lisp directories from the Emacs package directory DIRS." - (append-map (lambda (d) - (list (string-append d "/share/emacs/site-lisp") - (string-append d %install-suffix "/" - (store-directory->elpa-name-version d)))) - dirs)) + (filter-map emacs-input->el-directory dirs)) (define (package-name-version->elpa-name-version name-ver) "Convert the Guix package NAME-VER to the corresponding ELPA name-version -format. Essnetially drop the prefix used in Guix." +format. Essentially drop the prefix used in Guix." (if (emacs-package? name-ver) ; checks for "emacs-" prefix (string-drop name-ver (string-length "emacs-")) name-ver)) @@ -224,12 +243,15 @@ (define (store-directory->elpa-name-version store-dir) (define %standard-phases (modify-phases gnu:%standard-phases + (add-after 'set-paths 'set-emacs-load-path set-emacs-load-path) (replace 'unpack unpack) (delete 'configure) (delete 'check) - (delete 'install) - (replace 'build build) - (add-before 'build 'install install) + ;; Move the build phase after install: the .el files are byte compiled + ;; directly in the store. + (delete 'build) + (replace 'install install) + (add-after 'install 'build build) (add-after 'install 'make-autoloads make-autoloads) (add-after 'make-autoloads 'patch-el-files patch-el-files) (add-after 'make-autoloads 'move-doc move-doc))) diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm index fd06aad7ac..8389ca582f 100644 --- a/guix/build/emacs-utils.scm +++ b/guix/build/emacs-utils.scm @@ -58,14 +58,9 @@ (define (emacs-generate-autoloads name directory) (update-directory-autoloads ,directory)))) (emacs-batch-eval expr))) -(define* (emacs-byte-compile-directory dir #:optional (dependency-dirs '())) - "Byte compile all files in DIR and its sub-directories. Before compiling -the files, add DIR and all directories in DEPENDENCY-DIRS to 'load-path'." - (let ((expr `(progn - (add-to-list 'load-path ,dir) - (when ',dependency-dirs - (setq load-path (append ',dependency-dirs load-path))) - (byte-recompile-directory (file-name-as-directory ,dir) 0)))) +(define* (emacs-byte-compile-directory dir) + "Byte compile all files in DIR and its sub-directories." + (let ((expr `(byte-recompile-directory (file-name-as-directory ,dir) 0))) (emacs-batch-eval expr))) (define-syntax emacs-substitute-sexps From 58b6812fd4c480bc3ef07934c5967d18a2992292 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 13 Jan 2018 17:54:57 -0500 Subject: [PATCH 15/90] emacs-build-system: Reinstate the check phase. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/build/emacs-build-system.scm (%standard-phases): Reinstate the check phase from the gnu-build-system. * guix/build-system/emacs.scm (emacs-build)[tests?]: But do not enable it by default. [parallel-tests?]: Add argument. Signed-off-by: Ludovic Courtès --- guix/build-system/emacs.scm | 3 ++- guix/build/emacs-build-system.scm | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm index 02296829c6..d9f1a8d289 100644 --- a/guix/build-system/emacs.scm +++ b/guix/build-system/emacs.scm @@ -82,7 +82,8 @@ (define private-keywords (define* (emacs-build store name inputs #:key source - (tests? #t) + (tests? #f) + (parallel-tests? #t) (test-target "test") (configure-flags ''()) (phases '(@ (guix build emacs-build-system) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index bdef4d25d7..a68ca60c7e 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -246,7 +246,6 @@ (define %standard-phases (add-after 'set-paths 'set-emacs-load-path set-emacs-load-path) (replace 'unpack unpack) (delete 'configure) - (delete 'check) ;; Move the build phase after install: the .el files are byte compiled ;; directly in the store. (delete 'build) From 7c599eac0c26ea0cc61d711c5e777b893519e90c Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 14 Jan 2018 22:38:20 -0500 Subject: [PATCH 16/90] emacs-build-system: Do not patch files containing NULs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a temporary workaround for , where 'substitute*' throws on files containing NUL characters. * guix/build/emacs-build-system.scm (patch-el-files): Filter out elisp files that contain NUL characters. Co-authored-by: Ludovic Courtès --- guix/build/emacs-build-system.scm | 41 ++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index a68ca60c7e..b779847424 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -97,23 +97,40 @@ (define* (build #:key outputs inputs #:allow-other-keys) (define* (patch-el-files #:key outputs #:allow-other-keys) "Substitute the absolute \"/bin/\" directory with the right location in the store in '.el' files." + + (define (file-contains-nul-char? file) + (call-with-input-file file + (lambda (in) + (let loop ((line (read-line in 'concat))) + (cond + ((eof-object? line) #f) + ((string-index line #\nul) #t) + (else (loop (read-line in 'concat)))))) + #:binary #t)) + (let* ((out (assoc-ref outputs "out")) (elpa-name-ver (store-directory->elpa-name-version out)) (el-dir (string-append out %install-suffix "/" elpa-name-ver)) - (substitute-cmd (lambda () - (substitute* (find-files "." "\\.el$") - (("\"/bin/([^.]\\S*)\"" _ cmd-name) - (let ((cmd (which cmd-name))) - (unless cmd - (error - "patch-el-files: unable to locate " cmd-name)) - (string-append "\"" cmd "\""))))))) + + ;; (ice-9 regex) uses libc's regexp routines, which cannot deal with + ;; strings containing NULs. Filter out such files. TODO: Remove + ;; this workaround when is fixed. + (el-files (remove file-contains-nul-char? + (find-files (getcwd) "\\.el$")))) + (define (substitute-program-names) + (substitute* el-files + (("\"/bin/([^.]\\S*)\"" _ cmd-name) + (let ((cmd (which cmd-name))) + (unless cmd + (error "patch-el-files: unable to locate " cmd-name)) + (string-append "\"" cmd "\""))))) + (with-directory-excursion el-dir - ;; Some old '.el' files (e.g., tex-buf.el in AUCTeX) are still encoded - ;; with the "ISO-8859-1" locale. - (unless (false-if-exception (substitute-cmd)) + ;; Some old '.el' files (e.g., tex-buf.el in AUCTeX) are still + ;; ISO-8859-1-encoded. + (unless (false-if-exception (substitute-program-names)) (with-fluids ((%default-port-encoding "ISO-8859-1")) - (substitute-cmd)))) + (substitute-program-names)))) #t)) (define* (install #:key outputs From 439ad15ddd532a369f44db7e86e602d33890581d Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 4 Feb 2018 22:00:01 -0500 Subject: [PATCH 17/90] gnu: Add emacs-test-simple. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-test-simple): New public variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 83c4ae340c..f29e28983a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3165,6 +3165,27 @@ (define-public emacs-perspective ;; the Expat license. (license license:gpl3+))) +(define-public emacs-test-simple + (package + (name "emacs-test-simple") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/test-simple-" + version ".el")) + (sha256 + (base32 + "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz")))) + (build-system emacs-build-system) + (home-page "https://github.com/rocky/emacs-test-simple") + (synopsis "Simple unit test framework for Emacs Lisp") + (description + "Test Simple is a simple unit test framework for Emacs Lisp. It +alleviates the need for context macros, enclosing specifications or required +test tags. It supports both interactive and non-interactive use.") + (license license:gpl3+))) + (define-public emacs-request (package (name "emacs-request") From fa1a17b78631681a23ae1fb7b1f902148bbebdbb Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 4 Feb 2018 22:02:44 -0500 Subject: [PATCH 18/90] gnu: Add emacs-load-relative. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-load-relative): New public variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f29e28983a..9c1392a153 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3186,6 +3186,30 @@ (define-public emacs-test-simple test tags. It supports both interactive and non-interactive use.") (license license:gpl3+))) +(define-public emacs-load-relative + (package + (name "emacs-load-relative") + (version "1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/load-relative-" + version ".el")) + (sha256 + (base32 + "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps")))) + (build-system emacs-build-system) + (home-page "http://github.com/rocky/emacs-load-relative") + (synopsis "Emacs Lisp relative file loading related functions") + (description + "Provides functions which facilitate writing multi-file Emacs packages +and running from the source tree without having to \"install\" code or fiddle +with @{load-path}. + +The main function, @code{load-relative}, loads an Emacs Lisp file relative to +another (presumably currently running) Emacs Lisp file.") + (license license:gpl3+))) + (define-public emacs-request (package (name "emacs-request") From fd38bfe23bf00022b3f7c1d95f563a0e4425de73 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 4 Feb 2018 22:04:04 -0500 Subject: [PATCH 19/90] gnu: Add emacs-loc-changes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-loc-changes): New public variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9c1392a153..b4f866f82b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3210,6 +3210,26 @@ (define-public emacs-load-relative another (presumably currently running) Emacs Lisp file.") (license license:gpl3+))) +(define-public emacs-loc-changes + (package + (name "emacs-loc-changes") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/loc-changes-" + version ".el")) + (sha256 + (base32 + "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3")))) + (build-system emacs-build-system) + (home-page "https://github.com/rocky/emacs-loc-changes") + (synopsis "Keeps track of positions even after buffer changes") + (description + "This Emacs package provides a mean to track important buffer positions +after buffer changes.") + (license license:gpl3+))) + (define-public emacs-request (package (name "emacs-request") From b1968d86b9bc838d95be4745f53c63493920ae3a Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 4 Feb 2018 22:04:50 -0500 Subject: [PATCH 20/90] gnu: Add emacs-realgud. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-realgud): New public variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index b4f866f82b..18f457abb2 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3230,6 +3230,63 @@ (define-public emacs-loc-changes after buffer changes.") (license license:gpl3+))) +(define-public emacs-realgud + (package + (name "emacs-realgud") + (version "1.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/realgud-" + version ".tar")) + (sha256 + (base32 + "1nc8km339ip90h1j55ahfga03v7x7rh4iycmw6yrxyzir68vwn7c")))) + (build-system emacs-build-system) + (arguments + `(#:tests? #t + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-autogen-script + (lambda _ + (substitute* "autogen.sh" + (("./configure") "sh configure")))) + (add-after 'fix-autogen-script 'autogen + (lambda _ + (setenv "CONFIG_SHELL" "sh") + (invoke "sh" "autogen.sh"))) + (add-after 'fix-autogen-script 'set-home + (lambda _ + (setenv "HOME" (getenv "TMPDIR")))) + (add-before 'patch-el-files 'remove-realgud-pkg.el + (lambda _ + ;; XXX: This file is auto-generated at some point and causes + ;; substitute* to crash during the `patch-el-files' phase with: + ;; ERROR: In procedure stat: No such file or directory: + ;; "./realgud-pkg.el" + (delete-file "./realgud-pkg.el") + ;; FIXME: `patch-el-files' crashes on this file with error: + ;; unable to locate "bashdb". + (delete-file "./test/test-regexp-bashdb.el")))) + #:include (cons* ".*\\.el$" %default-include))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("emacs-test-simple" ,emacs-test-simple))) + (propagated-inputs + `(("emacs-load-relative" ,emacs-load-relative) + ("emacs-loc-changes" ,emacs-loc-changes))) + (home-page "https://github.com/realgud/realgud/") + (synopsis + "Modular front-end for interacting with external debuggers") + (description + "RealGUD is a modular, extensible GNU Emacs front-end for interacting +with external debuggers. It integrates various debuggers such as gdb, pdb, +ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the +sources. Unlike GUD, it also supports running multiple debug sessions in +parallel.") + (license license:gpl3+))) + (define-public emacs-request (package (name "emacs-request") From a630c64709af2ab7fdeb797ee35d89964b1fc042 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 5 Feb 2018 16:21:12 -0500 Subject: [PATCH 21/90] gnu: p7zip: Fix CVE-2017-17969. * gnu/packages/patches/p7zip-CVE-2017-17969.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/compression.scm (p7zip)[source]: Use it. --- gnu/local.mk | 3 +- gnu/packages/compression.scm | 1 + .../patches/p7zip-CVE-2017-17969.patch | 35 +++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/p7zip-CVE-2017-17969.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6fdea16c88..7011282272 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -955,7 +955,8 @@ dist_patch_DATA = \ %D%/packages/patches/osip-CVE-2017-7853.patch \ %D%/packages/patches/ots-no-include-missing-file.patch \ %D%/packages/patches/owncloud-disable-updatecheck.patch \ - %D%/packages/patches/p7zip-CVE-2016-9296.patch \ + %D%/packages/patches/p7zip-CVE-2016-9296.patch \ + %D%/packages/patches/p7zip-CVE-2017-17969.patch \ %D%/packages/patches/p7zip-remove-unused-code.patch \ %D%/packages/patches/patchelf-page-size.patch \ %D%/packages/patches/patchelf-rework-for-arm.patch \ diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 3e0541eb92..a099f8da5a 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1377,6 +1377,7 @@ (define-public p7zip (delete-file-recursively "CPP/7zip/Compress/Rar") #t)) (patches (search-patches "p7zip-CVE-2016-9296.patch" + "p7zip-CVE-2017-17969.patch" "p7zip-remove-unused-code.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/patches/p7zip-CVE-2017-17969.patch b/gnu/packages/patches/p7zip-CVE-2017-17969.patch new file mode 100644 index 0000000000..51c24000e5 --- /dev/null +++ b/gnu/packages/patches/p7zip-CVE-2017-17969.patch @@ -0,0 +1,35 @@ +Fix CVE-2017-17969: + +https://sourceforge.net/p/p7zip/bugs/204/ +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17969 + +Patch copied from Debian. + +Subject: Heap-based buffer overflow in 7zip/Compress/ShrinkDecoder.cpp +Origin: vendor, https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/27d7/attachment/CVE-2017-17969.patch +Forwarded: https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/#27d7 +Bug: https://sourceforge.net/p/p7zip/bugs/204/ +Bug-Debian: https://bugs.debian.org/888297 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-17969 +Author: Antoine Beaupré +Reviewed-by: Salvatore Bonaccorso +Last-Update: 2018-02-01 +Applied-Upstream: 18.00-beta + +--- a/CPP/7zip/Compress/ShrinkDecoder.cpp ++++ b/CPP/7zip/Compress/ShrinkDecoder.cpp +@@ -121,8 +121,13 @@ HRESULT CDecoder::CodeReal(ISequentialIn + { + _stack[i++] = _suffixes[cur]; + cur = _parents[cur]; ++ if (cur >= kNumItems || i >= kNumItems) ++ break; + } +- ++ ++ if (cur >= kNumItems || i >= kNumItems) ++ break; ++ + _stack[i++] = (Byte)cur; + lastChar2 = (Byte)cur; + From 26ecbaf8661a7aaa9ee0b94b83b81160a065ccb0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 5 Feb 2018 16:31:42 -0500 Subject: [PATCH 22/90] gnu: bigloo: Update to 4.3b. * gnu/packages/scheme.scm (bigloo): Update to 4.3b. [arguments]: Add "--disable-patch" to configure flags. Add substitution to compile Bigloo with the correct runpath. Substitute 'invoke' for '*system*'. --- gnu/packages/scheme.scm | 47 ++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 33f5a9451b..ca885c690c 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -200,14 +200,14 @@ (define-public mit-scheme (define-public bigloo (package (name "bigloo") - (version "4.3a") + (version "4.3b") (source (origin (method url-fetch) (uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo" version ".tar.gz")) (sha256 (base32 - "03rcqs6kvy2j5lqk4fidqay5qfyp474qqspbh6wk4qdbds6w599w")) + "1xpzxjlq5g8j3jrb908kfaaa0pkynk4rd083hzvb08amhy68sx07")) ;; Remove bundled libraries. (modules '((guix build utils))) (snippet @@ -229,34 +229,37 @@ (define-public bigloo ((", @DATE@") "")) (substitute* "autoconf/osversion" (("^version.*$") "version=\"\"\n")) + (substitute* "comptime/Makefile" + (("\\$\\(LDCOMPLIBS\\)") + "$(LDCOMPLIBS) $(LDFLAGS)")) ;; The `configure' script doesn't understand options ;; of those of Autoconf. (let ((out (assoc-ref outputs "out"))) - (zero? - (system* "./configure" - (string-append "--prefix=" out) - ; use system libraries - "--customgc=no" - "--customunistring=no" - "--customlibuv=no" - (string-append"--mv=" (which "mv")) - (string-append "--rm=" (which "rm")) - "--cflags=-fPIC" - (string-append "--ldflags=-Wl,-rpath=" - (assoc-ref outputs "out") - "/lib/bigloo/" ,version) - (string-append "--lispdir=" out - "/share/emacs/site-lisp") - "--sharedbde=yes" - "--sharedcompiler=yes"))))) + (invoke "./configure" + (string-append "--prefix=" out) + ; use system libraries + "--customgc=no" + "--customunistring=no" + "--customlibuv=no" + (string-append"--mv=" (which "mv")) + (string-append "--rm=" (which "rm")) + "--cflags=-fPIC" + (string-append "--ldflags=-Wl,-rpath=" + (assoc-ref outputs "out") + "/lib/bigloo/" ,version) + (string-append "--lispdir=" out + "/share/emacs/site-lisp") + "--sharedbde=yes" + "--sharedcompiler=yes" + "--disable-patch")))) (add-after 'install 'install-emacs-modes (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (dir (string-append out "/share/emacs/site-lisp"))) - (zero? (system* "make" "-C" "bmacs" "all" "install" - (string-append "EMACSBRAND=emacs25") - (string-append "EMACSDIR=" dir))))))))) + (invoke "make" "-C" "bmacs" "all" "install" + (string-append "EMACSBRAND=emacs25") + (string-append "EMACSDIR=" dir)))))))) (inputs `(("emacs" ,emacs) ;UDE needs the X version of Emacs ("libgc" ,libgc) From 956ba99cb799889e0a0bc0f657f4e31b4f830775 Mon Sep 17 00:00:00 2001 From: "Ethan R. Jones" Date: Mon, 5 Feb 2018 17:55:34 -0500 Subject: [PATCH 23/90] gnu: Add python-gyp. * gnu/packages/python.scm (python-gyp, python2-gyp): New variables. --- gnu/packages/python.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9483ad6b1b..b45d89932d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2017 Muriithi Frederick Muriuki ;;; Copyright © 2017 Brendan Tildesley +;;; Copyright © 2018 Ethan R. Jones ;;; ;;; This file is part of GNU Guix. @@ -12417,3 +12418,35 @@ (define-public python-yapf (define-public python2-yapf (package-with-python2 python-yapf)) + +(define-public python-gyp + (let ((commit "5e2b3ddde7cda5eb6bc09a5546a76b00e49d888f") + (revision "0")) + (package + (name "python-gyp") + ;; Google does not release versions, + ;; based on second most recent commit date. + (version (git-version "0.0.0" revision commit)) + (source + (origin + ;; Google does not release tarballs, + ;; git checkout is needed. + (method git-fetch) + (uri (git-reference + (url "https://chromium.googlesource.com/external/gyp") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fr7nxcrk292djmxzpcjaphnsd123k31gp8jnd91vwknhq6snmv9")))) + (build-system python-build-system) + (home-page "https://gyp.gsrc.io/") + (synopsis "GYP is a Meta-Build system") + (description + "GYP builds build systems for large, cross platform applications. +It can be used to generate XCode projects, Visual Studio projects, Ninja build +files, and Makefiles.") + (license license:bsd-3)))) + +(define-public python2-gyp + (package-with-python2 python-gyp)) From 127dc7c7be0559b8683dc90e65b277059ac986bb Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 5 Feb 2018 19:56:27 -0500 Subject: [PATCH 24/90] gnu: python-llfuse: Update to 1.3.2. * gnu/packages/python.scm (python-llfuse, python2-llfuse): Update to 1.3.2. --- gnu/packages/python.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b45d89932d..d789fcfee5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5688,15 +5688,13 @@ (define-public python2-appdirs (define-public python-llfuse (package (name "python-llfuse") - (version "1.2") + (version "1.3.2") (source (origin (method url-fetch) - (uri (string-append - "https://bitbucket.org/nikratio/python-llfuse/downloads/" - "llfuse-" version ".tar.bz2")) + (uri (pypi-uri "llfuse" version ".tar.bz2")) (sha256 (base32 - "11hms1x68bf1bqbqy7w3wpffqsd3jkgricmzrc1hrnwkswfzzlr4")))) + "0qxvnbz41bpvpc1vbi8qkhmpr9gj1qrrp5jdj085iqibd8l2l9cn")))) (build-system python-build-system) (inputs `(("fuse" ,fuse) From 0362e5820ab6a1eb8eaf33bc47e592857c25f765 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 6 Feb 2018 09:00:30 +0100 Subject: [PATCH 25/90] gnu: guile-sqlite3: Update to 0.0-2.21f35ca. * gnu/packages/guile.scm (guile-sqlite3): Update to 0.0-2.21f35ca. --- gnu/packages/guile.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 3bc18ffdd0..054ee90097 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1128,10 +1128,10 @@ (define-public guile2.2-gdbm-ffi (deprecated-package "guile2.2-gdbm-ffi" guile-gdbm-ffi)) (define-public guile-sqlite3 - (let ((commit "607721fe1174a299e45d457acacf94eefb964071")) + (let ((commit "21f35ca87517194d8fcc7ac166b5e77f5f5348b0")) (package (name "guile-sqlite3") - (version (string-append "0.0-1." (string-take commit 7))) + (version (string-append "0.0-2." (string-take commit 7))) ;; XXX: This used to be available read-only at ;; but it @@ -1144,7 +1144,7 @@ (define-public guile-sqlite3 (commit commit))) (sha256 (base32 - "09gaffhh5rawz5kdmqx2ahvj1ngvxddp469r18bmjz3sz8p0slj2")) + "0m33di5gz0a6n6q380v1y8apm5hrynzyl4ri8ar4j202hwjqi1y2")) (file-name (string-append name "-" version "-checkout")) (modules '((guix build utils))) (snippet From 18adb1f00d2586c5ffdfd804374c594a7eb47e0f Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 6 Feb 2018 09:49:08 +0100 Subject: [PATCH 26/90] gnu: guile-sqlite3: Use git-version. * gnu/packages/guile.scm [version]: Use git-version. --- gnu/packages/guile.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 054ee90097..0d831af8c8 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1128,10 +1128,11 @@ (define-public guile2.2-gdbm-ffi (deprecated-package "guile2.2-gdbm-ffi" guile-gdbm-ffi)) (define-public guile-sqlite3 - (let ((commit "21f35ca87517194d8fcc7ac166b5e77f5f5348b0")) + (let ((commit "21f35ca87517194d8fcc7ac166b5e77f5f5348b0") + (revision "2")) (package (name "guile-sqlite3") - (version (string-append "0.0-2." (string-take commit 7))) + (version (git-version "0.0" revision commit)) ;; XXX: This used to be available read-only at ;; but it From a3257d427ee60ddf9d23118ad86f34fb5edb284e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 6 Feb 2018 10:51:29 +0100 Subject: [PATCH 27/90] gnu: Add r-debugme. * gnu/packages/cran.scm (r-debugme): New variable. --- gnu/packages/cran.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index cb39772ae5..8e52b2a37e 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2017 Roel Janssen ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; @@ -1861,3 +1861,23 @@ (define-public r-argparser Rscript front-end and facilitates turning an R script into an executable script.") (license license:gpl3+))) + +(define-public r-debugme + (package + (name "r-debugme") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "debugme" version)) + (sha256 + (base32 + "1c9sg55zvf10h8198jdnpamm6f66lzw3c3jnmdp9ls6na0j0xbjd")))) + (build-system r-build-system) + (propagated-inputs `(("r-crayon" ,r-crayon))) + (home-page "https://github.com/r-lib/debugme#readme") + (synopsis "Debug R packages") + (description + "This package allows the user to specify debug messages as special string +constants, and control debugging of packages via environment variables.") + (license license:expat))) From 2058e37d615766774b8fdcdd02ec06a6100aac39 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 6 Feb 2018 10:51:47 +0100 Subject: [PATCH 28/90] gnu: Add r-processx. * gnu/packages/cran.scm (r-processx): 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 8e52b2a37e..7f3363a1f4 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1881,3 +1881,32 @@ (define-public r-debugme "This package allows the user to specify debug messages as special string constants, and control debugging of packages via environment variables.") (license license:expat))) + +(define-public r-processx + (package + (name "r-processx") + (version "2.0.0.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "processx" version)) + (sha256 + (base32 + "0yw23lp9xjvbpswzghkmjiayw7p19hbvmgv58k3i6b8g5nav4qcg")))) + (build-system r-build-system) + (propagated-inputs + `(("r-assertthat" ,r-assertthat) + ("r-crayon" ,r-crayon) + ("r-debugme" ,r-debugme) + ("r-r6" ,r-r6))) + (home-page "https://github.com/r-lib/processx3") + (synopsis "Execute and control system processes") + (description + "This package provides portable tools to run system processes in the +background. It can check if a background process is running; wait on a +background process to finish; get the exit status of finished processes; kill +background processes and their children; restart processes. It can read the +standard output and error of the processes, using non-blocking connections. +@code{processx} can poll a process for standard output or error, with a +timeout. It can also poll several processes at once.") + (license license:expat))) From f285346aeda1945fc14c3c4fb37c51dc1227af24 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 6 Feb 2018 10:52:08 +0100 Subject: [PATCH 29/90] gnu: Add r-tsp. * gnu/packages/cran.scm (r-tsp): 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 7f3363a1f4..fe40cac617 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1910,3 +1910,24 @@ (define-public r-processx @code{processx} can poll a process for standard output or error, with a timeout. It can also poll several processes at once.") (license license:expat))) + +(define-public r-tsp + (package + (name "r-tsp") + (version "1.1-5") + (source + (origin + (method url-fetch) + (uri (cran-uri "TSP" version)) + (sha256 + (base32 + "03xxfr5kk4zhzpb1q1pwncdp0dhchm9b48wzhvvxn2dxf3mnby2w")))) + (properties `((upstream-name . "TSP"))) + (build-system r-build-system) + (propagated-inputs `(("r-foreach" ,r-foreach))) + (home-page "https://cran.r-project.org/web/packages/TSP/") + (synopsis "Traveling salesperson problem (TSP)") + (description "This package provides basic infrastructure and some +algorithms for the @dfn{traveling salesperson problem}(TSP) (also known as the +traveling salesman problem).") + (license license:gpl3))) From ffb59bcef769e5a362dd232b5e21575504212f6d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 6 Feb 2018 10:52:16 +0100 Subject: [PATCH 30/90] gnu: Add r-qap. * gnu/packages/cran.scm (r-qap): New variable. --- gnu/packages/cran.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index fe40cac617..7af471a251 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1931,3 +1931,23 @@ (define-public r-tsp algorithms for the @dfn{traveling salesperson problem}(TSP) (also known as the traveling salesman problem).") (license license:gpl3))) + +(define-public r-qap + (package + (name "r-qap") + (version "0.1-1") + (source + (origin + (method url-fetch) + (uri (cran-uri "qap" version)) + (sha256 + (base32 + "0d2d1ni1camixyi45lfy00f4pn3p063k7bsi8gj5scp6n15mdgb0")))) + (build-system r-build-system) + (native-inputs `(("gfortran" ,gfortran))) + (home-page "http://cran.r-project.org/web/packages/qap/") + (synopsis "Heuristics for the quadratic assignment problem (QAP)") + (description "This package implements heuristics for the @dfn{quadratic +assignment problem} (QAP). Currently only a simulated annealing heuristic is +available.") + (license license:gpl3))) From 7fe49f2a8a1bc42e644d00871b0472ccf3a961cf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 6 Feb 2018 10:52:24 +0100 Subject: [PATCH 31/90] gnu: Add r-gclus. * gnu/packages/cran.scm (r-gclus): 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 7af471a251..8492b9581b 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1951,3 +1951,24 @@ (define-public r-qap assignment problem} (QAP). Currently only a simulated annealing heuristic is available.") (license license:gpl3))) + +(define-public r-gclus + (package + (name "r-gclus") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "gclus" version)) + (sha256 + (base32 + "02ba6zj9bjwrzykamjp40ajynx9xjx9h2i85n0ym0r5lcki4x6fn")))) + (build-system r-build-system) + (propagated-inputs `(("r-cluster" ,r-cluster))) + (home-page "http://cran.r-project.org/web/packages/gclus/") + (synopsis "Clustering graphics") + (description "This package orders panels in scatterplot matrices and +parallel coordinate displays by some merit index. It contains various indices +of merit, ordering functions, and enhanced versions of @code{pairs} and +@code{parcoord} which color panels according to their merit level.") + (license license:gpl2+))) From 8e5e26d2abbc19e715f948d05fbd253cb83843f0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 6 Feb 2018 10:52:34 +0100 Subject: [PATCH 32/90] gnu: Add r-webshot. * gnu/packages/cran.scm (r-webshot): New variable. --- gnu/packages/cran.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 8492b9581b..418043d79c 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1972,3 +1972,29 @@ (define-public r-gclus of merit, ordering functions, and enhanced versions of @code{pairs} and @code{parcoord} which color panels according to their merit level.") (license license:gpl2+))) + +(define-public r-webshot + (package + (name "r-webshot") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "webshot" version)) + (sha256 + (base32 + "07r71zzmggp4jf92x4ws4wg6v1x98vaj01lsar85bnb30n5vx8gh")))) + (build-system r-build-system) + (propagated-inputs + `(("r-jsonlite" ,r-jsonlite) + ("r-magrittr" ,r-magrittr) + ("r-processx" ,r-processx) + ("r-withr" ,r-withr))) + (home-page "https://github.com/wch/webshot/") + (synopsis "Take screenshots of web pages") + (description + "Webshot makes it easy to take screenshots of web pages from within R. +It can also run Shiny applications locally and take screenshots of the +application; and it can render and screenshot static as well as interactive R +Markdown documents.") + (license license:gpl2))) From 2e9d187b87d9489e5d44edc39a53466b22a62379 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 6 Feb 2018 11:00:48 +0100 Subject: [PATCH 33/90] gnu: Add r-seriation. * gnu/packages/cran.scm (r-seriation): New variable. --- gnu/packages/cran.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 418043d79c..a521270f9c 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1998,3 +1998,37 @@ (define-public r-webshot application; and it can render and screenshot static as well as interactive R Markdown documents.") (license license:gpl2))) + +(define-public r-seriation + (package + (name "r-seriation") + (version "1.2-3") + (source + (origin + (method url-fetch) + (uri (cran-uri "seriation" version)) + (sha256 + (base32 + "1q6hw4hjw224b4y0dc0j630v2pgj6sn455nwkilb70w8k31hpk92")))) + (build-system r-build-system) + (propagated-inputs + `(("r-cluster" ,r-cluster) + ("r-colorspace" ,r-colorspace) + ("r-dendextend" ,r-dendextend) + ("r-gclus" ,r-gclus) + ("r-gplots" ,r-gplots) + ("r-mass" ,r-mass) + ("r-qap" ,r-qap) + ("r-registry" ,r-registry) + ("r-tsp" ,r-tsp))) + (native-inputs `(("gfortran" ,gfortran))) + (home-page "http://s2.smu.edu/IDA/seriation/") + (synopsis "Infrastructure for ordering objects using seriation") + (description + "This package provides infrastructure for seriation with an +implementation of several seriation/sequencing techniques to reorder matrices, +dissimilarity matrices, and dendrograms. It also provides (optimally) +reordered heatmaps, color images and clustering visualizations like +dissimilarity plots, and visual assessment of cluster tendency plots (VAT and +iVAT).") + (license license:gpl3))) From e9e78d2cec26687047c3efc703c6a344065a3cec Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 6 Feb 2018 10:53:05 +0100 Subject: [PATCH 34/90] gnu: Add r-heatmaply. * gnu/packages/cran.scm (r-heatmaply): New variable. --- gnu/packages/cran.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index a521270f9c..95e0faf2a0 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2032,3 +2032,43 @@ (define-public r-seriation dissimilarity plots, and visual assessment of cluster tendency plots (VAT and iVAT).") (license license:gpl3))) + +(define-public r-heatmaply + (package + (name "r-heatmaply") + (version "0.14.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "heatmaply" version)) + (sha256 + (base32 + "03p2caclhfgqgpx3wwck5h06jy3mxgs05gjmwkb7hmwghkjh41jc")))) + (build-system r-build-system) + (propagated-inputs + `(("r-assertthat" ,r-assertthat) + ("r-colorspace" ,r-colorspace) + ("r-dendextend" ,r-dendextend) + ("r-ggplot2" ,r-ggplot2) + ("r-gplots" ,r-gplots) + ("r-htmlwidgets" ,r-htmlwidgets) + ("r-magrittr" ,r-magrittr) + ("r-plotly" ,r-plotly) + ("r-rcolorbrewer" ,r-rcolorbrewer) + ("r-reshape2" ,r-reshape2) + ("r-scales" ,r-scales) + ("r-seriation" ,r-seriation) + ("r-viridis" ,r-viridis) + ("r-webshot" ,r-webshot))) + (home-page "https://cran.r-project.org/package=heatmaply") + (synopsis "Interactive cluster heat maps using plotly") + (description "Heatmaps are used in many fields for visualizing +observations, correlations, missing values patterns, and more. Interactive +heatmaps allow the inspection of specific value by hovering the mouse over a +cell, as well as zooming into a region of the heatmap by dragging a rectangle +around the relevant area. This work is based on the @code{ggplot2} and +@code{plotly.js} engine. It produces similar heatmaps as @code{heatmap.2} or +@code{d3heatmap}, with the advantage of speed, the ability to zoom from the +dendrogram panes, and the placing of factor variables in the sides of the +heatmap.") + (license (list license:gpl2 license:gpl3)))) From 89c57efd788b6c72939977ad9122b91e557cab6d Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 6 Feb 2018 10:35:12 +0100 Subject: [PATCH 35/90] gnu: Add python-whatever. * gnu/packages/python.scm (python-whatever, python2-whatever): New variables. --- gnu/packages/python.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d789fcfee5..7838207762 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -12448,3 +12448,34 @@ (define-public python-gyp (define-public python2-gyp (package-with-python2 python-gyp)) + +(define-public python-whatever + (package + (name "python-whatever") + (version "0.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Suor/whatever/archive/" version + ".tar.gz")) + (sha256 + (base32 + "1iqvnaf0zpc6b4rvbqq4xy45mszcscyzpzknv8wg6j84pbp22sap")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "py.test")))))) + (native-inputs + `(("python-pytest-3.0" ,python-pytest-3.0))) + (home-page "http://github.com/Suor/whatever") + (synopsis "Make anonymous functions by partial application of operators") + (description "@code{whatever} provides an easy way to make anonymous +functions by partial application of operators.") + (license license:bsd-3))) + +(define-public python2-whatever + (package-with-python2 python-whatever)) From 7e2dd00bfb2d1a5522bb35d876f2a0344034df48 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 6 Feb 2018 10:55:24 +0100 Subject: [PATCH 36/90] gnu: Add python-funcy. * gnu/packages/python.scm (python-funcy, python2-funcy): New variables. --- gnu/packages/python.scm | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7838207762..a6de4550fd 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -12479,3 +12479,56 @@ (define-public python-whatever (define-public python2-whatever (package-with-python2 python-whatever)) + +(define-public python-funcy + (package + (name "python-funcy") + (version "1.10") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Suor/funcy/archive/" version + ".tar.gz")) + (sha256 + (base32 + "1fanxivsip29vgarw6dn39xym3q4pbxcpa11plpp548lvxajpahz")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "py.test")))))) + (native-inputs + `(("python-pytest-3.0" ,python-pytest-3.0) + ("python-pytest-warnings" ,python-pytest-warnings) + ("python-whatever" ,python-whatever))) + (home-page "http://github.com/Suor/funcy") + (synopsis "Functional tools") + (description "@code{funcy} is a library that provides functional tools. +Examples are: +@enumerate +@item merge - Merges collections of the same type +@item walk - Type-preserving map +@item select - Selects a part of a collection +@item take - Takes the first n items of a collection +@item first - Takes the first item of a collection +@item remove - Predicated-removes items of a collection +@item concat - Concatenates two collections +@item flatten - Flattens a collection with subcollections +@item distinct - Returns only distinct items +@item split - Predicated-splits a collection +@item split_at - Splits a collection at a given item +@item group_by - Groups items by group +@item pairwise - Pairs off adjacent items +@item partial - Partially-applies a function +@item curry - Curries a function +@item compose - Composes functions +@item complement - Complements a predicate +@item all_fn - \"all\" with predicate +@end enumerate") + (license license:bsd-3))) + +(define-public python2-funcy + (package-with-python2 python-funcy)) From 4283653cb02d67de186fc632e88eed74587e8546 Mon Sep 17 00:00:00 2001 From: Konrad Hinsen Date: Tue, 6 Feb 2018 12:08:00 +0100 Subject: [PATCH 37/90] gnu: Add python-isoweek. * gnu/packages/python.scm (python-isoweek, python2-isoweek): New variables. Signed-off-by: Danny Milosavljevic --- gnu/packages/python.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a6de4550fd..777590b583 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -12532,3 +12532,26 @@ (define-public python-funcy (define-public python2-funcy (package-with-python2 python-funcy)) + +(define-public python-isoweek + (package + (name "python-isoweek") + (version "1.3.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "isoweek" version)) + (sha256 + (base32 + "1s7zsf0pab0l9gn6456qadnz5i5h90hafcjwnhx5mq23qjxggwvk")))) + (build-system python-build-system) + (home-page "https://github.com/gisle/isoweek") + (synopsis "Objects representing a week") + (description "The @code{isoweek} module provide the class Week that +implements the week definition of ISO 8601. This standard also defines +a notation for identifying weeks; yyyyWww (where the W is a literal). +Week instances stringify to this form.") + (license license:bsd-3))) + +(define-public python2-isoweek + (package-with-python2 python-isoweek)) From 0e588d2f02f298689e939837157d4078e3c80b6f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 6 Feb 2018 01:37:37 +0100 Subject: [PATCH 38/90] gnu: shotwell: Update to 0.27.4. * gnu/packages/gnome.scm (shotwell): Update to 0.27.4. --- gnu/packages/gnome.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0a707b2acf..fc3abb1226 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -21,7 +21,7 @@ ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 David Craven -;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Hartmut Goebel ;;; Copyright © 2017, 2018 nee @@ -4398,7 +4398,7 @@ (define-public gexiv2 (define-public shotwell (package (name "shotwell") - (version "0.27.1") + (version "0.27.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4406,7 +4406,7 @@ (define-public shotwell name "-" version ".tar.xz")) (sha256 (base32 - "1jav7qv0s1v6wvd7x2ri85hjqnbswq883pnd228qhd6bhjbryp89")))) + "0g2vphhpxrljpy9sryfsgaayix807i1i9plj9bay72dk0zphqab2")))) (build-system glib-or-gtk-build-system) (propagated-inputs `(("dconf" ,dconf))) From 9cc03bbf0d1a9f7eef77164a59a4ea768db91e97 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 6 Feb 2018 01:29:13 +0100 Subject: [PATCH 39/90] gnu: expect: Update to 5.45.4. * gnu/packages/tcl.scm (expect): Update to 5.45.4. --- gnu/packages/tcl.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index c8eac41f0a..3458615274 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2017 Kei Kebreau +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -89,7 +90,7 @@ (define-public tcl (define-public expect (package (name "expect") - (version "5.45.3") + (version "5.45.4") (source (origin (method url-fetch) @@ -97,7 +98,7 @@ (define-public expect version "/expect" version ".tar.gz")) (sha256 (base32 - "1s9ba7m0bmg6brn4x030y2xg7hqara1fr4hlrrllm54mf5xp2865")))) + "0d1cp5hggjl93xwc8h1y6adbnrvpkk0ywkd00inz9ndxn21xm9s9")))) (build-system gnu-build-system) (inputs `(;; TODO: Add these optional dependencies. From 53655964767b17d5014543b1ac34ddc613e641a6 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 5 Feb 2018 15:19:41 +0100 Subject: [PATCH 40/90] gnu: Add gpxsee. * gnu/packages/gps.scm (gpxsee): New variable. --- gnu/packages/gps.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index 732c073b56..051d01b02b 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -171,3 +172,51 @@ (define-public gama such as underground. It features the ability to adjust in local Cartesian coordinates as well as partial support for adjustments in global coordinate systems.") (license license:gpl3+))) + +(define-public gpxsee + (package + (name "gpxsee") + (version "4.19") + (source (origin + (method url-fetch) + (uri + (string-append "https://github.com/tumic0/GPXSee/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "00j0gjldw1kn3i45dppld1pz8r4s1g7lw89k7gfvvqbjjyjih1wg")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'configure + ;; Use lrelease to convert TS translation files into QM files. + (lambda* (#:key inputs outputs #:allow-other-keys) + (for-each (lambda (file) + (system* "lrelease" file)) + (find-files "lang" "\\.ts")) + (substitute* "src/config.h" + (("/usr/share/gpxsee") + (string-append + (assoc-ref outputs "out") "/share/gpxsee"))) + (invoke "qmake" + (string-append "PREFIX=" + (assoc-ref outputs "out"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/gpxsee/"))) + (install-file "GPXSee" (string-append out "/bin/GPXSee")) + (install-file "pkg/maps.txt" share)) + #t))))) + (inputs + `(("qtbase" ,qtbase))) + (native-inputs + `(("qttools" ,qttools))) + (home-page "http://www.gpxsee.org") + (synopsis "GPX file viewer and analyzer") + (description + "GPXSee is a Qt-based GPS log file viewer and analyzer that supports GPX, +TCX, KML, FIT, IGC and NMEA files.") + (license license:gpl3))) From 924b96db0aecc9f0b0bcd21165b5d5ea47199e29 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 5 Feb 2018 16:50:14 +0100 Subject: [PATCH 41/90] gnu: gpsbabel: Update to 1.5.4 and fix build. * gnu/packages/patches/gpsbabel-minizip.patch: New file. * gnu/packages/patches/gpsbabel-qstring.patch: New file. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/gps.scm (gpsbabel): Update to 1.5.4, [source]: add two previous patches to fix build, [snippet]: remove "gpsbabel" directory excursion, [arguments]: ditto. --- gnu/local.mk | 2 + gnu/packages/gps.scm | 22 +++---- gnu/packages/patches/gpsbabel-minizip.patch | 13 ++++ gnu/packages/patches/gpsbabel-qstring.patch | 69 +++++++++++++++++++++ 4 files changed, 94 insertions(+), 12 deletions(-) create mode 100644 gnu/packages/patches/gpsbabel-minizip.patch create mode 100644 gnu/packages/patches/gpsbabel-qstring.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7011282272..8aa09a5fe5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -717,6 +717,8 @@ dist_patch_DATA = \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ + %D%/packages/patches/gpsbabel-minizip.patch \ + %D%/packages/patches/gpsbabel-qstring.patch \ %D%/packages/patches/graphite2-ffloat-store.patch \ %D%/packages/patches/grep-gnulib-lock.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index 051d01b02b..211a33ef89 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -25,6 +25,7 @@ (define-module (gnu packages gps) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages pkg-config) #:use-module (gnu packages compression) @@ -38,7 +39,7 @@ (define-module (gnu packages gps) (define-public gpsbabel (package (name "gpsbabel") - (version "1.5.2") + (version "1.5.4") (source (origin (method url-fetch) ;; XXX: Downloads from gpsbabel.org are hidden behind a POST, so @@ -48,17 +49,21 @@ (define-public gpsbabel version ".orig.tar.gz")) (sha256 (base32 - "0xf7wmy2m29g2lm8lqc74yf8rf7sxfl3cfwbk7dpf0yf42pb0b6w")) + "19hykxhyl567gf8qcrl33qhv95w0g4vxw9r3h9b8d8plx9bnaf8l")) + (patches (search-patches + "gpsbabel-minizip.patch" + ;; XXX: Remove this patch on the next release. + "gpsbabel-qstring.patch")) (modules '((guix build utils))) (snippet '(begin ;; Delete files under GPL-compatible licences but never used ;; on GNU systems, rather than bloating the LICENSE field. - (with-directory-excursion "gpsbabel" - (delete-file "gui/serial_mac.cc") ; Apple MIT - (delete-file "mingw/include/ddk/hidsdi.h")) ; public domain + (delete-file "gui/serial_mac.cc") ; Apple MIT + (delete-file "mingw/include/ddk/hidsdi.h") ; public domain #t)))) (build-system gnu-build-system) + ;; TODO: "make doc" requires Docbook & co. (arguments `(#:configure-flags '("--with-zlib=system" @@ -66,13 +71,6 @@ (define-public gpsbabel ;; recent binutils: ;; https://codereview.qt-project.org/#/c/111787/ "CXXFLAGS=-std=gnu++11 -fPIC") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'pre-configure - (lambda _ - (chdir "gpsbabel")))) - ;; TODO: "make doc" requires Docbook & co. - ;; On i686, 'raymarine.test' fails because of a rounding error: ;; . As a workaround, disable tests ;; on these platforms. diff --git a/gnu/packages/patches/gpsbabel-minizip.patch b/gnu/packages/patches/gpsbabel-minizip.patch new file mode 100644 index 0000000000..8f3bb36f57 --- /dev/null +++ b/gnu/packages/patches/gpsbabel-minizip.patch @@ -0,0 +1,13 @@ +Patch taken from https://sources.debian.org/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip. + +--- a/Makefile.in ++++ b/Makefile.in +@@ -120,7 +120,7 @@ LIBOBJS = queue.o route.o waypt.o filter + src/core/usasciicodec.o\ + src/core/ziparchive.o \ + $(GARMIN) $(JEEPS) $(SHAPE) @ZLIB@ $(FMTS) $(FILTERS) +-OBJS = main.o globals.o $(LIBOBJS) @FILEINFO@ ++OBJS = main.o globals.o $(MINIZIP) $(LIBOBJS) @FILEINFO@ + + DEPFILES = $(OBJS:.o=.d) + \ No newline at end of file diff --git a/gnu/packages/patches/gpsbabel-qstring.patch b/gnu/packages/patches/gpsbabel-qstring.patch new file mode 100644 index 0000000000..8ba1a7213b --- /dev/null +++ b/gnu/packages/patches/gpsbabel-qstring.patch @@ -0,0 +1,69 @@ +Extracted from following patch of gpsbabel: +https://github.com/gpsbabel/gpsbabel/commit/604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3 + +From 604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3 Mon Sep 17 00:00:00 2001 +From: Harel Mazor +Date: Tue, 24 Jan 2017 00:35:04 +0200 +Subject: [PATCH] Added geojson read capablity, moved magic strings to + constants, fixed windows compilation issues. + +--- a/tef_xml.cc ++++ b/tef_xml.cc +@@ -72,11 +72,11 @@ tef_start(xg_string args, const QXmlStreamAttributes* attrv) + bool valid = false; + + foreach(QXmlStreamAttribute attr, *attrv) { +- if (attr.name().compare("Comment", Qt::CaseInsensitive) == 0) { +- if (attr.value().compare("TourExchangeFormat", Qt::CaseInsensitive) == 0) { ++ if (attr.name().compare(QString("Comment"), Qt::CaseInsensitive) == 0) { ++ if (attr.value().compare(QString("TourExchangeFormat"), Qt::CaseInsensitive) == 0) { + valid = true; + } +- } else if (attr.name().compare("Version", Qt::CaseInsensitive) == 0) { ++ } else if (attr.name().compare(QString("Version"), Qt::CaseInsensitive) == 0) { + version = attr.value().toString().toDouble(); + } + } +@@ -95,9 +95,9 @@ tef_header(xg_string args, const QXmlStreamAttributes* attrv) + { + route = route_head_alloc(); + foreach(QXmlStreamAttribute attr, *attrv) { +- if (attr.name().compare("Name", Qt::CaseInsensitive) == 0) { ++ if (attr.name().compare(QString("Name"), Qt::CaseInsensitive) == 0) { + route->rte_name = attr.value().toString().trimmed(); +- } else if (attr.name().compare("Software", Qt::CaseInsensitive) == 0) { ++ } else if (attr.name().compare(QString("Software"), Qt::CaseInsensitive) == 0) { + route->rte_desc = attr.value().toString().trimmed(); + } + } +@@ -248,20 +248,20 @@ tef_item_start(xg_string args, const QXmlStreamAttributes* attrv) + QString attrstr = attr.value().toString(); + QByteArray attrtext = attrstr.toUtf8(); + +- if (attr.name().compare("SegDescription", Qt::CaseInsensitive) == 0) { ++ if (attr.name().compare(QString("SegDescription"), Qt::CaseInsensitive) == 0) { + wpt_tmp->shortname = attrstr.trimmed(); +- } else if (attr.name().compare("PointDescription", Qt::CaseInsensitive) == 0) { ++ } else if (attr.name().compare(QString("PointDescription"), Qt::CaseInsensitive) == 0) { + wpt_tmp->description = attrstr.trimmed(); +- } else if (attr.name().compare("ViaStation", Qt::CaseInsensitive) == 0 && +- attr.value().compare("true", Qt::CaseInsensitive) == 0) { ++ } else if (attr.name().compare(QString("ViaStation"), Qt::CaseInsensitive) == 0 && ++ attr.value().compare(QString("true"), Qt::CaseInsensitive) == 0) { + wpt_tmp->wpt_flags.fmt_use = 1; /* only a flag */ + + /* new in TEF V2 */ +- } else if (attr.name().compare("Instruction", Qt::CaseInsensitive) == 0) { ++ } else if (attr.name().compare(QString("Instruction"), Qt::CaseInsensitive) == 0) { + wpt_tmp->description = attrstr.trimmed(); +- } else if (attr.name().compare("Altitude", Qt::CaseInsensitive) == 0) { ++ } else if (attr.name().compare(QString("Altitude"), Qt::CaseInsensitive) == 0) { + wpt_tmp->altitude = attrstr.toDouble(); +- } else if (attr.name().compare("TimeStamp", Qt::CaseInsensitive) == 0) { ++ } else if (attr.name().compare(QString("TimeStamp"), Qt::CaseInsensitive) == 0) { + /* nothing for the moment */ + } + } +-- +2.16.1 + From 4e847986bcdbcd7ac18c82b045b942e203332869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 5 Feb 2018 18:41:33 +0100 Subject: [PATCH 42/90] gnu: libssh: Update to commit 239d0f7 of branch 'v0-7'. * gnu/packages/ssh.scm (libssh): Update to 239d0f7. --- gnu/packages/ssh.scm | 57 ++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 793dcf8dc5..b439094c26 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015, 2016 Efraim Flashner @@ -62,35 +62,40 @@ (define-module (gnu packages ssh) #:use-module (srfi srfi-1)) (define-public libssh - (package - (name "libssh") - (version "0.7.5") - (source (origin - (method url-fetch) - (uri (string-append - "https://red.libssh.org/attachments/download/218/libssh-" - version ".tar.xz")) - (sha256 - (base32 - "15bh6dm9c50ndddzh3gqcgw7axp3ghrspjpkb1z3dr90vkanvs2l")) - (patches (search-patches "libssh-hostname-parser-bug.patch")))) - (build-system cmake-build-system) - (outputs '("out" "debug")) - (arguments - '(#:configure-flags '("-DWITH_GCRYPT=ON") + ;; This commit from the 'v0-7' branch contains 7 memory-management-related + ;; bug fixes that we'd rather have. + (let ((commit "239d0f75b5f909174c2ef7fb08d23bcfa6b20ba0") + (revision "0")) + (package + (name "libssh") + (version (git-version "0.7.5" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.libssh.org/projects/libssh.git") + (commit commit))) + (sha256 + (base32 + "01w72w1jsgs9ilj3n1gp6qkmdxr9n74i5h2nipi3x1vzm7bv8na1")) + (patches (search-patches "libssh-hostname-parser-bug.patch")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (outputs '("out" "debug")) + (arguments + '(#:configure-flags '("-DWITH_GCRYPT=ON") - ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite. - #:tests? #f)) - (inputs `(("zlib" ,zlib) - ("libgcrypt" ,libgcrypt))) - (synopsis "SSH client library") - (description - "libssh is a C library implementing the SSHv2 and SSHv1 protocol for + ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite. + #:tests? #f)) + (inputs `(("zlib" ,zlib) + ("libgcrypt" ,libgcrypt))) + (synopsis "SSH client library") + (description + "libssh is a C library implementing the SSHv2 and SSHv1 protocol for client and server implementations. With libssh, you can remotely execute programs, transfer files, and use a secure and transparent tunnel for your remote applications.") - (home-page "https://www.libssh.org") - (license license:lgpl2.1+))) + (home-page "https://www.libssh.org") + (license license:lgpl2.1+)))) (define-public libssh2 (package From d40b5684c533e0188ffa213b20f2d3c88406d895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 6 Feb 2018 14:14:13 +0100 Subject: [PATCH 43/90] gnu: julia: Adjust libgit2 tests. * gnu/packages/julia.scm (julia)[arguments] <'disable-broken-tests>: Patch libgit2.jl. --- gnu/packages/julia.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index f6df2817d3..d958995288 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -228,6 +228,12 @@ (define-public julia #t)) (add-before 'check 'disable-broken-tests (lambda _ + ;; Adjust expected error messages to match what current libgit2 + ;; provides. + (substitute* "test/libgit2.jl" + (("Invalid Content-Type") "invalid Content-Type") + (("Failed to resolve path") "failed to resolve path")) + (substitute* "test/choosetests.jl" ;; These tests fail, probably because some of the input ;; binaries have been stripped and thus backtraces don't look From 9805ad6f87612b5c305c099c38684607cecfb328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 6 Feb 2018 14:21:12 +0100 Subject: [PATCH 44/90] gnu: julia: Don't invoke /sbin/ldconfig. Reported by Marco van Hulten in . * gnu/packages/julia.scm (julia)[arguments] <'hardcode-soname-map>: Patch out 'ldconfig' invocations. --- gnu/packages/julia.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index d958995288..41bbc66dd2 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -146,6 +146,12 @@ (define-public julia (lambda* (#:key inputs #:allow-other-keys) (use-modules (ice-9 match)) (substitute* "src/runtime_ccall.cpp" + ;; Patch out invocations of '/sbin/ldconfig' to avoid getting + ;; error messages about missing '/sbin/ldconfig' on GuixSD. + (("popen\\(.*ldconfig.*\\);") + "NULL;\n") + + ;; Populate 'sonameMap'. (("jl_read_sonames.*;") (string-join (map (match-lambda From 19d93ef537242ddf10228e38813bfad95788c878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Reich=C3=B6r?= Date: Fri, 2 Feb 2018 23:30:16 +0100 Subject: [PATCH 45/90] gnu: Add curseradio. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/music.scm (curseradio): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/music.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 7aba825816..2db8ffea30 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2317,6 +2317,33 @@ (define-public mod-host socket or command line.") (license license:gpl3+)))) +(define-public curseradio + (let ((commit "1bd4bd0faeec675e0647bac9a100b526cba19f8d") + (revision "1")) + (package + (name "curseradio") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chronitis/curseradio.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11bf0jnj8h2fxhpdp498189r4s6b47vy4wripv0z4nx7lxajl88i")))) + (build-system python-build-system) + (propagated-inputs + `(("python-lxml" ,python-lxml) + ("python-requests" ,python-requests) + ("python-pyxdg" ,python-pyxdg) + ("mpv" ,mpv))) + (home-page "https://github.com/chronitis/curseradio") + (synopsis "Command-line Internet radio player") + (description "Curseradio is a Curses-based radio player that uses a +tune-in sender list from @url{http://opml.radiotime.com}.") + (license license:expat)))) + (define-public pianobar (package (name "pianobar") From fbcad8843abf5f836b3638c02dc1a7eeca172c80 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 31 Jan 2018 16:06:43 +0300 Subject: [PATCH 46/90] gnu: Add python-pyaudio. * gnu/packages/audio.scm (python-pyaudio): New public variable. --- gnu/packages/audio.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index bd3d139efe..bb4d363e51 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1646,6 +1646,33 @@ (define-public liblo implementation of the Open Sound Control (OSC) protocol.") (license license:lgpl2.1+))) +(define-public python-pyaudio + (package + (name "python-pyaudio") + (version "0.2.11") + (source + (origin + (method url-fetch) + (uri + (string-append + "https://pypi.python.org/packages/ab/42/" + "b4f04721c5c5bfc196ce156b3c768998ef8c0ae3654ed29ea5020c749a6b" + "/PyAudio-" version ".tar.gz")) + (sha256 + (base32 + "0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk")))) + (build-system python-build-system) + (inputs + `(("portaudio" ,portaudio))) + (home-page "https://people.csail.mit.edu/hubert/pyaudio/") + (synopsis "Bindings for PortAudio v19") + (description "This package provides bindings for PortAudio v19, the +cross-platform audio input/output stream library.") + (license license:expat))) + +(define-public python2-pyaudio + (package-with-python2 python-pyaudio)) + (define-public python-pyliblo (package (name "python-pyliblo") From 71e789319cfe81731d61ec3c6a6dd2110baa7190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 6 Feb 2018 17:33:14 +0100 Subject: [PATCH 47/90] gnu: hwloc: Add 2.0.0. * gnu/packages/mpi.scm (hwloc-2.0): New variable. * gnu/packages/patches/hwloc-tests-without-sysfs.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/mpi.scm | 23 +++++++++- .../patches/hwloc-tests-without-sysfs.patch | 42 +++++++++++++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/hwloc-tests-without-sysfs.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8aa09a5fe5..ca400dae6d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -757,6 +757,7 @@ dist_patch_DATA = \ %D%/packages/patches/higan-remove-march-native-flag.patch \ %D%/packages/patches/hubbub-sort-entities.patch \ %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \ + %D%/packages/patches/hwloc-tests-without-sysfs.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ %D%/packages/patches/icecat-bug-1348660-pt5.patch \ diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index d9a2094bea..442f7c5371 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Eric Bavier -;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2017 Dave Love @@ -39,9 +39,12 @@ (define-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages valgrind) + #:use-module (srfi srfi-1) #:use-module (ice-9 match)) (define-public hwloc + ;; Note: For now we keep 1.x as the default because many packages have yet + ;; to migrate to 2.0. (package (name "hwloc") (version "1.11.8") @@ -110,6 +113,24 @@ (define-public hwloc bind processes, and much more.") (license bsd-3))) +(define-public hwloc-2.0 + ;; Note: 2.0 isn't the default yet, see above. + (package + (inherit hwloc) + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://www.open-mpi.org/software/hwloc/v" + (version-major+minor version) + "/downloads/hwloc-" version ".tar.bz2")) + (sha256 + (base32 + "021765f9y6pxcxrvfpzzwaig16ypfbph5xjpkd29qkhzs9r6zrcr")) + (patches (search-patches "hwloc-tests-without-sysfs.patch")))) + + ;; libnuma is no longer needed. + (inputs (alist-delete "numactl" (package-inputs hwloc))))) + (define-public openmpi (package (name "openmpi") diff --git a/gnu/packages/patches/hwloc-tests-without-sysfs.patch b/gnu/packages/patches/hwloc-tests-without-sysfs.patch new file mode 100644 index 0000000000..ea6ec41616 --- /dev/null +++ b/gnu/packages/patches/hwloc-tests-without-sysfs.patch @@ -0,0 +1,42 @@ +Fix a test failure in the build environment, where /sys is missing. +From . + +From a2cc4f2e2bf4a8bbdd61b578a62e27e7482799cf Mon Sep 17 00:00:00 2001 +From: Brice Goglin +Date: Tue, 6 Feb 2018 17:13:26 +0100 +Subject: [PATCH] linux: honor the filtering cores and packages when reading + topology from cpuinfo + +Caused a make check crash in lstopo --filter all:none in chroot without sysfs. + +Thanks to Ludovic Courtes for the report. + +Signed-off-by: Brice Goglin +--- + hwloc/topology-linux.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/hwloc/topology-linux.c b/hwloc/topology-linux.c +index 290da0d72..e1bbf94e1 100644 +--- a/hwloc/topology-linux.c ++++ b/hwloc/topology-linux.c +@@ -4101,7 +4101,8 @@ look_cpuinfo(struct hwloc_topology *topology, + } + /* create package objects */ + hwloc_debug("%u pkgs%s\n", numpkgs, missingpkg ? ", but some missing package" : ""); +- if (!missingpkg && numpkgs>0) { ++ if (!missingpkg && numpkgs>0 ++ && hwloc_filter_check_keep_object_type(topology, HWLOC_OBJ_PACKAGE)) { + for (i = 0; i < numpkgs; i++) { + struct hwloc_obj *obj = hwloc_alloc_setup_object(topology, HWLOC_OBJ_PACKAGE, Lpkg_to_Ppkg[i]); + int doneinfos = 0; +@@ -4145,7 +4146,8 @@ look_cpuinfo(struct hwloc_topology *topology, + } + /* create Core objects */ + hwloc_debug("%u cores%s\n", numcores, missingcore ? ", but some missing core" : ""); +- if (!missingcore && numcores>0) { ++ if (!missingcore && numcores>0 ++ && hwloc_filter_check_keep_object_type(topology, HWLOC_OBJ_CORE)) { + for (i = 0; i < numcores; i++) { + struct hwloc_obj *obj = hwloc_alloc_setup_object(topology, HWLOC_OBJ_CORE, Lcore_to_Pcore[i]); + obj->cpuset = hwloc_bitmap_alloc(); From 8db8bf921d2749e35f7e190362e0fc73133a7c5f Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 30 Jan 2018 22:32:12 +0000 Subject: [PATCH 48/90] gnu: build: linux-boot: Remove bind-mount export. bind-mount is not contained within this module. * gnu/build/linux-boot.scm: Remove bind-mount export. --- gnu/build/linux-boot.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index c9de4f4b90..18d87260a9 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -42,7 +42,6 @@ (define-module (gnu build linux-boot) make-static-device-nodes configure-qemu-networking - bind-mount device-number boot-system)) From 1ffa065c44dc0bd3c8a6aae89b212bb92cc7c131 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 6 Feb 2018 01:28:40 +0100 Subject: [PATCH 49/90] gnu: perl-test-simple: Update to 1.302122. * gnu/packages/perl-check.scm (perl-test-simple): Update to 1.302122. --- gnu/packages/perl-check.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm index cbb2138a6e..c04344a70b 100644 --- a/gnu/packages/perl-check.scm +++ b/gnu/packages/perl-check.scm @@ -975,14 +975,14 @@ (define-public perl-test-sharedfork (define-public perl-test-simple (package (name "perl-test-simple") - (version "1.302120") + (version "1.302122") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/" "Test-Simple-" version ".tar.gz")) (sha256 (base32 - "0v1l0hfza9zlw3qj5l2mrzljy1sk02h3yqcb4kixdb2d5l4n08y8")))) + "117m707cbvrh01s3w6g371i9xvpnklifiqpcmky4f49jgck8izgm")))) (build-system perl-build-system) (synopsis "Basic utilities for writing tests") (description From ccfe4aa1c09b5205a1d17070eb4f9f6da59650bc Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 6 Feb 2018 15:53:15 +0100 Subject: [PATCH 50/90] gnu: asciidoc: Update to 8.6.10. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/documentation.scm (asciidoc): Update to 8.6.10. [source]: Switch to new code host. [arguments]: Add new ‘bootstrap’ phase... [native-inputs]: ...and required autoconf. [home-page]: Point to a more recently updated instance. --- gnu/packages/documentation.scm | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 9c5ca74d73..dd9d51bbf6 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 Thomas Danckaert ;;; Copyright © 2017 Kei Kebreau +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ (define-module (gnu packages documentation) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages bash) #:use-module (gnu packages python) #:use-module (gnu packages bison) @@ -42,19 +44,23 @@ (define-module (gnu packages documentation) (define-public asciidoc (package (name "asciidoc") - (version "8.6.9") + (version "8.6.10") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/asciidoc/asciidoc/" - version "/asciidoc-" version ".tar.gz")) + (uri (string-append "https://github.com/asciidoc/asciidoc/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq")))) + "10xrl1iwyvs8aqm0vzkvs3dnsn93wyk942kk4ppyl6w9imbzhlly")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no 'check' target #:phases (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (invoke "autoconf"))) ;; Some XML-related binaries are required for asciidoc's proper usage. ;; Without these, asciidoc fails when parsing XML documents, either ;; reporting a missing "xmllint" binary or, when passed the @@ -93,12 +99,14 @@ (define-public asciidoc (string-append (assoc-ref inputs "docbook-xml") "/xml/dtd/docbook/docbookx.dtd"))) #t))))) + (native-inputs + `(("autoconf" ,autoconf))) (inputs `(("python" ,python-2) ("docbook-xml" ,docbook-xml) ("docbook-xsl" ,docbook-xsl) ("libxml2" ,libxml2) ("libxslt" ,libxslt))) - (home-page "http://www.methods.co.nz/asciidoc/") + (home-page "http://asciidoc.org/") (synopsis "Text-based document generation system") (description "AsciiDoc is a text document format for writing notes, documentation, From 11b1f89ec25af3f5dcb621205391da44ac9a28a6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 6 Feb 2018 18:29:53 +0100 Subject: [PATCH 51/90] gnu: librep: Update to 0.92.7. * gnu/packages/sawfish.scm (librep): Update to 0.92.7. --- gnu/packages/sawfish.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm index ebb8c5e1f0..9f9264457d 100644 --- a/gnu/packages/sawfish.scm +++ b/gnu/packages/sawfish.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Sou Bunnbu +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,14 +38,14 @@ (define-module (gnu packages sawfish) (define-public librep (package (name "librep") - (version "0.92.6") + (version "0.92.7") (source (origin (method url-fetch) (uri (string-append "http://download.tuxfamily.org/" name "/" name "_" version ".tar.xz")) (sha256 (base32 - "1k6c0hmyzxh8459r790slh9vv9vwy9d7w3nlmrqypbx9mk855hgy")))) + "1bmcjl1x1rdh514q9z3hzyjmjmwwwkziipjpjsl301bwmiwrd8a8")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases From 5ac1143dc4419f650d1ef8deeb18632ccb5c4d9a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 6 Feb 2018 19:23:55 +0100 Subject: [PATCH 52/90] gnu: whois: Expand synopsis & description. * gnu/packages/networking.scm (whois)[synopsis, description]: Expand. --- gnu/packages/networking.scm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 738275a6b8..4f0bea78df 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015, 2016, 2017 Stefan Reichör ;;; Copyright © 2016 Raimon Grau -;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016, 2017 Nicolas Goaziou ;;; Copyright © 2016 Eric Bavier @@ -464,12 +464,12 @@ (define-public whois "08sp2gzv09rar1a5mnfmbc24pqvhpqqmz2hnmv436n7v7d09qy2d")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; Does not exist + `(#:tests? #f ; no test suite #:make-flags (list "CC=gcc" (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (delete 'configure) ; No configure + (delete 'configure) ; no configure script (add-before 'build 'setenv (lambda _ (setenv "HAVE_ICONV" "1") @@ -481,11 +481,16 @@ (define-public whois `(("gettext" ,gettext-minimal) ("perl" ,perl) ("pkg-config" ,pkg-config))) - (synopsis "Improved whois client") - (description "This whois client is intelligent and can -automatically select the appropriate whois server for most queries. -Because of historical reasons this also includes a tool called mkpasswd -which can be used to encrypt a password with @code{crypt(3)}.") + (synopsis "Intelligent client for the WHOIS directory service") + (description + "whois searches for an object in a @dfn{WHOIS} (RFC 3912) database. +It is commonly used to look up the registered users or assignees of an Internet +resource, such as a domain name, an IP address block, or an autonomous system. +It can automatically select the appropriate server for most queries. + +For historical reasons, this package also includes @command{mkpasswd}, which +encrypts passwords using @code{crypt(3)} and is unrelated to the Expect command +of the same name.") (home-page "https://github.com/rfc1036/whois") (license license:gpl2+))) From b617a9fe239ea645c816d6afcb81d5476f760d84 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 25 Jan 2018 15:21:07 +0100 Subject: [PATCH 53/90] etc: Add SELinux policy for the daemon. * etc/guix-daemon.cil.in: New file. * Makefile.am (dist_selinux_policy_DATA): Define it. * configure.ac: Handle --with-selinux-policy-dir. * doc/guix.texi (SELinux Support): New section. --- Makefile.am | 3 + configure.ac | 10 +- doc/guix.texi | 90 ++++++++++++- etc/guix-daemon.cil.in | 285 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 386 insertions(+), 2 deletions(-) create mode 100644 etc/guix-daemon.cil.in diff --git a/Makefile.am b/Makefile.am index 1e4fefe3fe..eb5d38231b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -446,6 +446,9 @@ dist_zshcompletion_DATA = etc/completion/zsh/_guix # Fish completion file. dist_fishcompletion_DATA = etc/completion/fish/guix.fish +# SELinux policy +dist_selinux_policy_DATA = etc/guix-daemon.cil + EXTRA_DIST = \ HACKING \ ROADMAP \ diff --git a/configure.ac b/configure.ac index f69f796484..398846f64b 100644 --- a/configure.ac +++ b/configure.ac @@ -54,6 +54,13 @@ AC_ARG_WITH([fish-completion-dir], [fishcompletiondir='${datadir}/fish/vendor_completions.d']) AC_SUBST([fishcompletiondir]) +AC_ARG_WITH([selinux-policy-dir], + AC_HELP_STRING([--with-selinux-policy-dir=DIR], + [name of the SELinux policy directory]), + [selinux_policydir="$withval"], + [selinux_policydir='${datadir}/selinux/']) +AC_SUBST([selinux_policydir]) + dnl Better be verbose. AC_MSG_CHECKING([for the store directory]) AC_MSG_RESULT([$storedir]) @@ -272,7 +279,8 @@ esac AC_CONFIG_FILES([Makefile po/guix/Makefile.in po/packages/Makefile.in - guix/config.scm]) + etc/guix-daemon.cil + guix/config.scm]) AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env]) AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in], diff --git a/doc/guix.texi b/doc/guix.texi index c3b7d07d84..68f6c12294 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -21,7 +21,7 @@ Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* -Copyright @copyright{} 2015, 2016, 2017 Ricardo Wurmus@* +Copyright @copyright{} 2015, 2016, 2017, 2018 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017 Chris Marusich@* Copyright @copyright{} 2016, 2017 Efraim Flashner@* @@ -123,6 +123,7 @@ Setting Up the Daemon * Build Environment Setup:: Preparing the isolated build environment. * Daemon Offload Setup:: Offloading builds to remote machines. +* SELinux Support:: Using an SELinux policy for the daemon. Package Management @@ -754,6 +755,7 @@ the daemon to download pre-built binaries. @menu * Build Environment Setup:: Preparing the isolated build environment. * Daemon Offload Setup:: Offloading builds to remote machines. +* SELinux Support:: Using an SELinux policy for the daemon. @end menu @node Build Environment Setup @@ -1081,6 +1083,92 @@ main node: @end example +@node SELinux Support +@subsection SELinux Support + +@cindex SELinux, daemon policy +@cindex mandatory access control, SELinux +@cindex security, guix-daemon +Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that +can be installed on a system where SELinux is enabled, in order to label +Guix files and to specify the expected behavior of the daemon. Since +GuixSD does not provide an SELinux base policy, the daemon policy cannot +be used on GuixSD. + +@subsubsection Installing the SELinux policy +@cindex SELinux, policy installation +To install the policy run this command as root: + +@example +semodule -i etc/guix-daemon.cil +@end example + +Then relabel the file system with @code{restorecon} or by a different +mechanism provided by your system. + +Once the policy is installed, the file system has been relabeled, and +the daemon has been restarted, it should be running in the +@code{guix_daemon_t} context. You can confirm this with the following +command: + +@example +ps -Zax | grep guix-daemon +@end example + +Monitor the SELinux log files as you run a command like @code{guix build +hello} to convince yourself that SELinux permits all necessary +operations. + +@subsubsection Limitations +@cindex SELinux, limitations + +This policy is not perfect. Here is a list of limitations or quirks +that should be considered when deploying the provided SELinux policy for +the Guix daemon. + +@enumerate +@item +@code{guix_daemon_socket_t} isn’t actually used. None of the socket +operations involve contexts that have anything to do with +@code{guix_daemon_socket_t}. It doesn’t hurt to have this unused label, +but it would be preferrable to define socket rules for only this label. + +@item +@code{guix gc} cannot access arbitrary links to profiles. By design, +the file label of the destination of a symlink is independent of the +file label of the link itself. Although all profiles under +$localstatedir are labelled, the links to these profiles inherit the +label of the directory they are in. For links in the user’s home +directory this will be @code{user_home_t}. But for links from the root +user’s home directory, or @file{/tmp}, or the HTTP server’s working +directory, etc, this won’t work. @code{guix gc} would be prevented from +reading and following these links. + +@item +The daemon’s feature to listen for TCP connections might no longer work. +This might require extra rules, because SELinux treats network sockets +differently from files. + +@item +Currently all files with a name matching the regular expression +@code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the +label @code{guix_daemon_exec_t}; this means that @emph{any} file with +that name in any profile would be permitted to run in the +@code{guix_daemon_t} domain. This is not ideal. An attacker could +build a package that provides this executable and convince a user to +install and run it, which lifts it into the @code{guix_daemon_t} domain. +At that point SELinux could not prevent it from accessing files that are +allowed for processes in that domain. + +We could generate a much more restrictive policy at installation time, +so that only the @emph{exact} file name of the currently installed +@code{guix-daemon} executable would be labelled with +@code{guix_daemon_exec_t}, instead of using a broad regular expression. +The downside is that root would have to install or upgrade the policy at +installation time whenever the Guix package that provides the +effectively running @code{guix-daemon} executable is upgraded. +@end enumerate + @node Invoking guix-daemon @section Invoking @command{guix-daemon} diff --git a/etc/guix-daemon.cil.in b/etc/guix-daemon.cil.in new file mode 100644 index 0000000000..c0c82d8fbb --- /dev/null +++ b/etc/guix-daemon.cil.in @@ -0,0 +1,285 @@ +; -*- lisp -*- +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ricardo Wurmus +;;; +;;; 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 . + +;; This is a specification for SELinux 2.7 written in the SELinux Common +;; Intermediate Language (CIL). It refers to types that must be defined in +;; the system's base policy. + +(block guix_daemon + ;; Require existing types + (typeattributeset cil_gen_require init_t) + (typeattributeset cil_gen_require tmp_t) + (typeattributeset cil_gen_require nscd_var_run_t) + (typeattributeset cil_gen_require var_log_t) + (typeattributeset cil_gen_require domain) + + ;; Declare own types + (type guix_daemon_t) + (roletype object_r guix_daemon_t) + (type guix_daemon_conf_t) + (roletype object_r guix_daemon_conf_t) + (type guix_daemon_exec_t) + (roletype object_r guix_daemon_exec_t) + (type guix_daemon_socket_t) + (roletype object_r guix_daemon_socket_t) + (type guix_store_content_t) + (roletype object_r guix_store_content_t) + (type guix_profiles_t) + (roletype object_r guix_profiles_t) + + ;; These types are domains, thereby allowing process rules + (typeattributeset domain (guix_daemon_t guix_daemon_exec_t)) + + (level low (s0)) + + ;; When a process in init_t or guix_store_content_t spawns a + ;; guix_daemon_exec_t process, let it run in the guix_daemon_t context + (typetransition init_t guix_daemon_exec_t + process guix_daemon_t) + (typetransition guix_store_content_t guix_daemon_exec_t + process guix_daemon_t) + + ;; Permit communication with NSCD + (allow guix_daemon_t + nscd_var_run_t + (file (map read))) + (allow guix_daemon_t + nscd_var_run_t + (dir (search))) + (allow guix_daemon_t + nscd_var_run_t + (sock_file (write))) + (allow guix_daemon_t + nscd_t + (fd (use))) + (allow guix_daemon_t + nscd_t + (unix_stream_socket (connectto))) + + ;; Permit logging and temp file access + (allow guix_daemon_t + tmp_t + (lnk_file (setattr unlink))) + (allow guix_daemon_t + tmp_t + (dir (create + rmdir + add_name remove_name + open read write + getattr setattr + search))) + (allow guix_daemon_t + var_log_t + (file (create getattr open write))) + (allow guix_daemon_t + var_log_t + (dir (getattr write add_name))) + (allow guix_daemon_t + var_run_t + (lnk_file (read))) + (allow guix_daemon_t + var_run_t + (dir (search))) + + ;; Spawning processes, execute helpers + (allow guix_daemon_t + self + (process (fork))) + (allow guix_daemon_t + guix_daemon_exec_t + (file (execute execute_no_trans read open))) + + ;; TODO: unknown + (allow guix_daemon_t + root_t + (dir (mounton))) + (allow guix_daemon_t + fs_t + (filesystem (getattr))) + (allow guix_daemon_conf_t + fs_t + (filesystem (associate))) + + ;; Build isolation + (allow guix_daemon_t + guix_store_content_t + (file (mounton))) + (allow guix_store_content_t + fs_t + (filesystem (associate))) + (allow guix_daemon_t + guix_store_content_t + (dir (mounton))) + (allow guix_daemon_t + guix_daemon_t + (capability (net_admin + fsetid fowner + chown setuid setgid + dac_override dac_read_search + sys_chroot))) + (allow guix_daemon_t + fs_t + (filesystem (unmount))) + (allow guix_daemon_t + devpts_t + (filesystem (mount))) + (allow guix_daemon_t + devpts_t + (chr_file (setattr getattr))) + (allow guix_daemon_t + tmpfs_t + (filesystem (mount))) + (allow guix_daemon_t + tmpfs_t + (dir (getattr))) + (allow guix_daemon_t + proc_t + (filesystem (mount))) + (allow guix_daemon_t + null_device_t + (chr_file (getattr open read write))) + (allow guix_daemon_t + kvm_device_t + (chr_file (getattr))) + (allow guix_daemon_t + zero_device_t + (chr_file (getattr))) + (allow guix_daemon_t + urandom_device_t + (chr_file (getattr))) + (allow guix_daemon_t + random_device_t + (chr_file (getattr))) + (allow guix_daemon_t + devtty_t + (chr_file (getattr))) + + ;; Access to store items + (allow guix_daemon_t + guix_store_content_t + (dir (reparent + create + getattr setattr + search rename + add_name remove_name + open write + rmdir))) + (allow guix_daemon_t + guix_store_content_t + (file (create + lock + setattr getattr + execute execute_no_trans + link unlink + map + rename + open read write))) + (allow guix_daemon_t + guix_store_content_t + (lnk_file (create + getattr setattr + link unlink + read + rename))) + + ;; Access to configuration files and directories + (allow guix_daemon_t + guix_daemon_conf_t + (dir (search + setattr getattr + add_name remove_name + open read write))) + (allow guix_daemon_t + guix_daemon_conf_t + (file (create + lock + map + getattr setattr + unlink + open read write))) + (allow guix_daemon_t + guix_daemon_conf_t + (lnk_file (create getattr rename unlink))) + + ;; Access to profiles + (allow guix_daemon_t + guix_profiles_t + (dir (getattr setattr read open))) + (allow guix_daemon_t + guix_profiles_t + (lnk_file (read getattr))) + + ;; Access to profile links in the home directory + ;; TODO: allow access to profile links *anywhere* on the filesystem + (allow guix_daemon_t + user_home_t + (lnk_file (read getattr))) + (allow guix_daemon_t + user_home_t + (dir (search))) + + ;; Socket operations + (allow guix_daemon_t + init_t + (fd (use))) + (allow guix_daemon_t + init_t + (unix_stream_socket (write))) + (allow guix_daemon_t + guix_daemon_conf_t + (unix_stream_socket (listen))) + (allow guix_daemon_t + guix_daemon_conf_t + (sock_file (create unlink))) + (allow guix_daemon_t + self + (unix_stream_socket (create + read write + connect bind accept + getopt setopt))) + (allow guix_daemon_t + self + (fifo_file (write read))) + (allow guix_daemon_t + self + (udp_socket (ioctl create))) + + ;; Label file system + (filecon "@guix_sysconfdir@/guix(/.*)?" + any (system_u object_r guix_daemon_conf_t (low low))) + (filecon "@guix_localstatedir@/guix(/.*)?" + any (system_u object_r guix_daemon_conf_t (low low))) + (filecon "@guix_localstatedir@/guix/profiles(/.*)?" + any (system_u object_r guix_profiles_t (low low))) + (filecon "/gnu" + dir (unconfined_u object_r guix_store_content_t (low low))) + (filecon "@storedir@(/.+)?" + any (unconfined_u object_r guix_store_content_t (low low))) + (filecon "@storedir@/[^/]+/.+" + any (unconfined_u object_r guix_store_content_t (low low))) + (filecon "@prefix@/bin/guix-daemon" + file (system_u object_r guix_daemon_exec_t (low low))) + (filecon "@storedir@/.+-(guix-.+|profile)/bin/guix-daemon" + file (system_u object_r guix_daemon_exec_t (low low))) + (filecon "@storedir@/.+-(guix-.+|profile)/libexec/guix-authenticate" + file (system_u object_r guix_daemon_exec_t (low low))) + (filecon "@storedir@/.+-(guix-.+|profile)/libexec/guix/(.*)?" + any (system_u object_r guix_daemon_exec_t (low low))) + (filecon "@guix_localstatedir@/guix/daemon-socket/socket" + any (system_u object_r guix_daemon_socket_t (low low)))) From 0b18c0b0de9aabb12b4c1503303e4dde410f6470 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 7 Feb 2018 03:01:11 -0500 Subject: [PATCH 54/90] gnu: mupdf: Fix CVE-2017-17858. * gnu/packages/patches/mupdf-CVE-2017-17858.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/pdf.scm (mupdf)[source]: Use it. --- gnu/local.mk | 1 + .../patches/mupdf-CVE-2017-17858.patch | 111 ++++++++++++++++++ gnu/packages/pdf.scm | 3 +- 3 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/mupdf-CVE-2017-17858.patch diff --git a/gnu/local.mk b/gnu/local.mk index ca400dae6d..421350881b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -921,6 +921,7 @@ dist_patch_DATA = \ %D%/packages/patches/mozjs38-version-detection.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mupdf-build-with-latest-openjpeg.patch \ + %D%/packages/patches/mupdf-CVE-2017-17858.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mutt-store-references.patch \ %D%/packages/patches/ncurses-CVE-2017-10684-10685.patch \ diff --git a/gnu/packages/patches/mupdf-CVE-2017-17858.patch b/gnu/packages/patches/mupdf-CVE-2017-17858.patch new file mode 100644 index 0000000000..66df127509 --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2017-17858.patch @@ -0,0 +1,111 @@ +Fix CVE-2017-17858: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17858 +https://bugs.ghostscript.com/show_bug.cgi?id=698819 +https://github.com/mzet-/Security-Advisories/blob/master/mzet-adv-2017-01.md + +Patch copied from upstream source repository: + +https://git.ghostscript.com/?p=mupdf.git;a=commit;h=55c3f68d638ac1263a386e0aaa004bb6e8bde731 + +From 55c3f68d638ac1263a386e0aaa004bb6e8bde731 Mon Sep 17 00:00:00 2001 +From: Sebastian Rasmussen +Date: Mon, 11 Dec 2017 14:09:15 +0100 +Subject: [PATCH] Bugs 698804/698810/698811: Keep PDF object numbers below + limit. + +This ensures that: + * xref tables with objects pointers do not grow out of bounds. + * other readers, e.g. Adobe Acrobat can parse PDFs written by mupdf. +--- + include/mupdf/pdf/object.h | 3 +++ + source/pdf/pdf-repair.c | 5 +---- + source/pdf/pdf-xref.c | 21 ++++++++++++--------- + 3 files changed, 16 insertions(+), 13 deletions(-) + +diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h +index 21ed8595..4177112b 100644 +--- a/include/mupdf/pdf/object.h ++++ b/include/mupdf/pdf/object.h +@@ -3,6 +3,9 @@ + + typedef struct pdf_document_s pdf_document; + ++/* Defined in PDF 1.7 according to Acrobat limit. */ ++#define PDF_MAX_OBJECT_NUMBER 8388607 ++ + /* + * Dynamic objects. + * The same type of objects as found in PDF and PostScript. +diff --git a/source/pdf/pdf-repair.c b/source/pdf/pdf-repair.c +index ca149bd3..0c29758e 100644 +--- a/source/pdf/pdf-repair.c ++++ b/source/pdf/pdf-repair.c +@@ -6,9 +6,6 @@ + + /* Scan file for objects and reconstruct xref table */ + +-/* Define in PDF 1.7 to be 8388607, but mupdf is more lenient. */ +-#define MAX_OBJECT_NUMBER (10 << 20) +- + struct entry + { + int num; +@@ -436,7 +433,7 @@ pdf_repair_xref(fz_context *ctx, pdf_document *doc) + break; + } + +- if (num <= 0 || num > MAX_OBJECT_NUMBER) ++ if (num <= 0 || num > PDF_MAX_OBJECT_NUMBER) + { + fz_warn(ctx, "ignoring object with invalid object number (%d %d R)", num, gen); + goto have_next_token; +diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c +index 00586dbd..6284e70b 100644 +--- a/source/pdf/pdf-xref.c ++++ b/source/pdf/pdf-xref.c +@@ -868,11 +868,12 @@ pdf_read_old_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf) + fz_seek(ctx, file, -(2 + (int)strlen(s)), SEEK_CUR); + } + +- if (ofs < 0) +- fz_throw(ctx, FZ_ERROR_GENERIC, "out of range object num in xref: %d", (int)ofs); +- if (ofs > INT64_MAX - len) +- fz_throw(ctx, FZ_ERROR_GENERIC, "xref section object numbers too big"); +- ++ if (ofs < 0 || ofs > PDF_MAX_OBJECT_NUMBER ++ || len < 0 || len > PDF_MAX_OBJECT_NUMBER ++ || ofs + len - 1 > PDF_MAX_OBJECT_NUMBER) ++ { ++ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range"); ++ } + /* broken pdfs where size in trailer undershoots entries in xref sections */ + if (ofs + len > xref_len) + { +@@ -933,10 +934,8 @@ pdf_read_new_xref_section(fz_context *ctx, pdf_document *doc, fz_stream *stm, in + pdf_xref_entry *table; + int i, n; + +- if (i0 < 0 || i1 < 0 || i0 > INT_MAX - i1) +- fz_throw(ctx, FZ_ERROR_GENERIC, "negative xref stream entry index"); +- //if (i0 + i1 > pdf_xref_len(ctx, doc)) +- // fz_throw(ctx, FZ_ERROR_GENERIC, "xref stream has too many entries"); ++ if (i0 < 0 || i0 > PDF_MAX_OBJECT_NUMBER || i1 < 0 || i1 > PDF_MAX_OBJECT_NUMBER || i0 + i1 - 1 > PDF_MAX_OBJECT_NUMBER) ++ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range"); + + table = pdf_xref_find_subsection(ctx, doc, i0, i1); + for (i = i0; i < i0 + i1; i++) +@@ -2086,6 +2085,10 @@ pdf_create_object(fz_context *ctx, pdf_document *doc) + /* TODO: reuse free object slots by properly linking free object chains in the ofs field */ + pdf_xref_entry *entry; + int num = pdf_xref_len(ctx, doc); ++ ++ if (num > PDF_MAX_OBJECT_NUMBER) ++ fz_throw(ctx, FZ_ERROR_GENERIC, "too many objects stored in pdf"); ++ + entry = pdf_get_incremental_xref_entry(ctx, doc, num); + entry->type = 'f'; + entry->ofs = -1; +-- +2.16.1 + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 96773da717..9730e6150c 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -584,7 +584,8 @@ (define-public mupdf (method url-fetch) (uri (string-append "https://mupdf.com/downloads/archive/" name "-" version "-source.tar.xz")) - (patches (search-patches "mupdf-build-with-latest-openjpeg.patch")) + (patches (search-patches "mupdf-build-with-latest-openjpeg.patch" + "mupdf-CVE-2017-17858.patch")) (sha256 (base32 "0b9j0gqbc3jhmx87r6idcsh8lnb30840c3hyx6dk2gdjqqh3hysp")) From b2d00af723b900c6db7d6db5c5f5b20e9955840b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 00:47:58 +0100 Subject: [PATCH 55/90] gnu: mc: Substitute more FHS file names. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mc.scm (mc)[arguments]: Add some more files to the ‘patch-FHS-file-names’ phase. --- gnu/packages/mc.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm index 2e13c3201f..6c71f56086 100644 --- a/gnu/packages/mc.scm +++ b/gnu/packages/mc.scm @@ -62,14 +62,25 @@ (define-public mc (modify-phases %standard-phases (add-after 'patch-source-shebangs 'patch-FHS-file-names (lambda _ - ;; Patch files to refer to executables in the store. + ;; Patch files to refer to executables in the store or $PATH. (substitute* "misc/mcedit.menu.in" (("#! /bin/sh") (string-append "#!" (which "sh"))) (("/bin/bash") (which "bash"))) (substitute* "misc/ext.d/misc.sh.in" (("/bin/cat") "cat")) - (substitute* "tests/src/vfs/extfs/helpers-list/Makefile.in" + (substitute* (list "lib/utilunix.c" + "src/usermenu.c" + "src/vfs/fish/fish.c" + "tests/src/vfs/extfs/helpers-list/Makefile.in") (("/bin/sh") (which "sh"))) + (substitute* "src/filemanager/ext.c" + (("/bin/rm") "rm") + (("/bin/sh") (which "sh"))) + + ;; There are other /bin/s hard-coded in this file, but they + ;; are never tried after bash (mc's first choice) is found. + (substitute* "lib/shell.c" + (("/bin/bash") (which "bash"))) #t)) (add-before 'check 'fix-tests (lambda _ From 906f1b48e20a032c22a164c89f9e8862ab2bec7a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 3 Jan 2018 09:01:53 +0100 Subject: [PATCH 56/90] gnu: luajit: Update to 2.1.0-beta3. * gnu/packages/lua.scm (luajit): Update to 2.1.0-beta3. [source]: Remove symlinks patch. * gnu/packages/patches/luajit-symlinks.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/lua.scm | 8 +++---- gnu/packages/patches/luajit-symlinks.patch | 25 ---------------------- 3 files changed, 4 insertions(+), 30 deletions(-) delete mode 100644 gnu/packages/patches/luajit-symlinks.patch diff --git a/gnu/local.mk b/gnu/local.mk index 421350881b..3f0023a2fb 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -891,7 +891,6 @@ dist_patch_DATA = \ %D%/packages/patches/lua51-pkgconfig.patch \ %D%/packages/patches/lua-liblua-so.patch \ %D%/packages/patches/luajit-no_ldconfig.patch \ - %D%/packages/patches/luajit-symlinks.patch \ %D%/packages/patches/luit-posix.patch \ %D%/packages/patches/luminance-hdr-qt-printer.patch \ %D%/packages/patches/lvm2-static-link.patch \ diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index b375ff90c3..fd14956007 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 doncatnip ;;; Copyright © 2016, 2017 Clément Lassieur ;;; Copyright © 2016 José Miguel Sánchez García +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Fis Trivial ;;; ;;; This file is part of GNU Guix. @@ -116,15 +117,14 @@ (define-public lua-5.1 (define-public luajit (package (name "luajit") - (version "2.1.0-beta2") + (version "2.1.0-beta3") (source (origin (method url-fetch) (uri (string-append "http://luajit.org/download/LuaJIT-" version ".tar.gz")) (sha256 - (base32 "0iyghj1xjlmd9ywa4flf9yszynf3jhbp0yqb9b49k7ab0g528fbi")) - (patches (search-patches "luajit-symlinks.patch" - "luajit-no_ldconfig.patch")))) + (base32 "1hyrhpkwjqsv54hnnx4cl8vk44h9d6c9w0fz1jfjz00w255y7lhs")) + (patches (search-patches "luajit-no_ldconfig.patch")))) (build-system gnu-build-system) (arguments '(#:tests? #f ;luajit is distributed without tests diff --git a/gnu/packages/patches/luajit-symlinks.patch b/gnu/packages/patches/luajit-symlinks.patch deleted file mode 100644 index 2466c34144..0000000000 --- a/gnu/packages/patches/luajit-symlinks.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0a54a8f125d7ab508c7c88d5ad4ed1b0c63cb5b6 Mon Sep 17 00:00:00 2001 -From: =?utf8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= -Date: Wed, 4 Feb 2015 11:32:55 +0100 -Subject: [PATCH 1/2] Provide two symlinks for dynamic library during install - ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 0891b71..343ecb5 100644 ---- a/Makefile -+++ b/Makefile -@@ -56,7 +56,7 @@ INSTALL_PCNAME= luajit.pc - INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME) - INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME) - INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT) --INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT) -+INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT).$(MAJVER) - INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME) - INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME) - INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME) --- -2.2.2 - From a093bb69679f7128a0f930ea825a4babe88ca100 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 01:38:03 +0100 Subject: [PATCH 57/90] =?UTF-8?q?gnu:=20luajit:=20Make=20available=20as=20?= =?UTF-8?q?=E2=80=98luajit=E2=80=99.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/lua.scm (luajit)[arguments]: Add a ‘create-luajit-symlink’ phase to make the interpreter available simply as ‘luajit’. --- gnu/packages/lua.scm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index fd14956007..5592b96937 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -127,9 +127,19 @@ (define-public luajit (patches (search-patches "luajit-no_ldconfig.patch")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ;luajit is distributed without tests - #:phases (modify-phases %standard-phases (delete 'configure)) - #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) + `(#:tests? #f ; luajit is distributed without tests + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-after 'install 'create-luajit-symlink + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion bin + (symlink ,(string-append name "-" version) + ,name) + #t))))) + #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) (home-page "http://www.luajit.org/") (synopsis "Just in time compiler for Lua programming language version 5.1") (description From 0386cdd373432f9492266c9b7b95049bcc5a8181 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 01:42:24 +0100 Subject: [PATCH 58/90] gnu: luajit, lua5.x-bitop: Use HTTPS home pages. * gnu/packages/lua.scm (luajit, make-lua-bitop)[home-page]: Use HTTPS. --- gnu/packages/lua.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 5592b96937..6a1e62418c 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -140,7 +140,7 @@ (define-public luajit ,name) #t))))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) - (home-page "http://www.luajit.org/") + (home-page "https://www.luajit.org/") (synopsis "Just in time compiler for Lua programming language version 5.1") (description "LuaJIT is a Just-In-Time Compiler (JIT) for the Lua @@ -436,7 +436,7 @@ (define (make-lua-bitop name lua) (modify-phases %standard-phases (delete 'configure)))) (inputs `(("lua", lua))) - (home-page "http://bitop.luajit.org/index.html") + (home-page "https://bitop.luajit.org/index.html") (synopsis "Bitwise operations on numbers for Lua") (description "Lua BitOp is a C extension module for Lua which adds bitwise operations From c28377802e14b6b522f6770eb4e9bff643b33d0a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 02:32:54 +0100 Subject: [PATCH 59/90] gnu: nim: Update to 0.17.2. * gnu/packages/nim.scm (nim): Update to 0.17.2. --- gnu/packages/nim.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/nim.scm b/gnu/packages/nim.scm index 560f10e4ad..19dcd147f8 100644 --- a/gnu/packages/nim.scm +++ b/gnu/packages/nim.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 José Miguel Sánchez García ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,7 +27,7 @@ (define-module (gnu packages nim) (define-public nim (package (name "nim") - (version "0.17.0") + (version "0.17.2") (source (origin (method url-fetch) @@ -34,13 +35,13 @@ (define-public nim name "-" version ".tar.xz")) (sha256 (base32 - "16vsmk4rqnkg9lc9h9jk62ps0x778cdqg6qrs3k6fv2g73cqvq9n")))) + "1gc2xk3ygmz9y4pm75pligssgw995a7gvnfpy445fjpw4d81pzxa")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests. #:phases (modify-phases %standard-phases - (delete 'configure) + (delete 'configure) ; no configure script (add-after 'unpack 'patch-installer (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) From 83e8a302f29e70e667dc658c2876923bb3b7a0eb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 05:06:54 +0100 Subject: [PATCH 60/90] gnu: lunzip: Update to 1.10. * gnu/packages/compression.scm (lunzip): Update to 1.10. --- gnu/packages/compression.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index a099f8da5a..73f3a4eab7 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1947,14 +1947,14 @@ (define-public java-tukaani-xz (define-public lunzip (package (name "lunzip") - (version "1.9") + (version "1.10") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/lzip/" name "/" name "-" version ".tar.gz")) (sha256 - (base32 "1ax3d9cp66z1qb9q7lfzg5bpx9630xrxgq9a5sw569wm0qqgpg2q")))) + (base32 "1iw59br6nsxs7l1p875h8w3vxwr04xfhg5zyal64crvamhxkj5kl")))) (build-system gnu-build-system) (arguments `(#:configure-flags From 5b05dce74783e59c23ea0e3dc21386f1cca83ff1 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 8 Feb 2018 08:50:06 +0100 Subject: [PATCH 61/90] gnu: Add mcrl2. * gnu/packages/maths.scm (mcrl2): New variable. --- gnu/packages/maths.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index dcb12199cb..87a6832de3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -22,6 +22,7 @@ ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Dave Love +;;; Copyright © 2018 Jan Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -93,6 +94,7 @@ (define-module (gnu packages maths) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-web) + #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages tbb) #:use-module (gnu packages scheme) @@ -101,6 +103,7 @@ (define-module (gnu packages maths) #:use-module (gnu packages texinfo) #:use-module (gnu packages tex) #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) @@ -3705,3 +3708,34 @@ (define-public elemental dense and sparse-direct linear algebra, conic optimization, and lattice reduction.") (license license:bsd-2))) + +(define-public mcrl2 + (package + (name "mcrl2") + (version "201707.1.15162") + (source (origin + (method url-fetch) + (uri (string-append "http://www.mcrl2.org/download/devel/mcrl2-" + version + ".tar.gz")) + (sha256 + (base32 + "1ziww2fchsklm25hl9p2mngssxfh9w07nc114cncqaxfibqp2p8f")))) + (native-inputs + `(("subversion" ,subversion))) + (inputs + `(("boost" ,boost) + ("glu" ,glu) + ("mesa" ,mesa) + ("qt" ,qt))) + (build-system cmake-build-system) + (synopsis "toolset for the mCRL2 formal specification language") + (description + "mCRL2 (micro Common Representation Language 2) is a formal specification +language for describing concurrent discrete event systems. Its toolset +supports analysis and automatic verification, linearisation, simulation, +state-space exploration and generation and tools to optimise and analyse +specifications. Also, state spaces can be manipulated, visualised and +analysed.") + (home-page "http://mcrl2.org") + (license license:boost1.0))) From bf30b70b2679ed2cd64dc68e4404896239c115c5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 05:14:22 +0100 Subject: [PATCH 62/90] gnu: conky: Update to 1.10.8. * gnu/packages/conky.scm (conky): Update to 1.10.8. --- gnu/packages/conky.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm index 2301bfbdf1..22a0427b9a 100644 --- a/gnu/packages/conky.scm +++ b/gnu/packages/conky.scm @@ -34,7 +34,7 @@ (define-module (gnu packages conky) (define-public conky (package (name "conky") - (version "1.10.7") + (version "1.10.8") (source (origin (method url-fetch) @@ -42,7 +42,7 @@ (define-public conky version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1b06rigfjxnaidkabkyf8mdh9k3jm11nj547lb5liwi2ql4rdfr3")))) + (base32 "0mw8xbnxr0a7yq2smzi2nln2b5n0q571vdrq6mhvs5n84xd6bg9f")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there are no tests From cc304fe82197ed5e16be2462edb46248808571a2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 14:22:50 +0100 Subject: [PATCH 63/90] gnu: libcap-ng: Update to 0.7.9. gnu/packages/admin.scm (libcap-ng): Update to 0.7.9. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index a5c9d410ca..706d0f36b8 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1343,7 +1343,7 @@ (define-public direvent (define-public libcap-ng (package (name "libcap-ng") - (version "0.7.4") + (version "0.7.9") (source (origin (method url-fetch) (uri (string-append @@ -1351,7 +1351,7 @@ (define-public libcap-ng version ".tar.gz")) (sha256 (base32 - "0ssvnh4cvhya0c1j6k6192zvqcq7nc0x01fb5nwhr0prfqr0i8j8")))) + "0a0k484kwv0zilry2mbl9k56cnpdhsjxdxin17jas6kkyfy345aa")))) (build-system gnu-build-system) (inputs `(("python" ,python))) (home-page "https://people.redhat.com/sgrubb/libcap-ng/") From ed0c5d3c585c978d95202269aca8f813e2c9441c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 14:42:32 +0100 Subject: [PATCH 64/90] gnu: mcrl2: Fix typo in synopsis. * gnu/packages/maths.scm (mcrl2)[synopsis]: Fix typo. [description]: Use @dfn. --- gnu/packages/maths.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 87a6832de3..3830393706 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3729,12 +3729,12 @@ (define-public mcrl2 ("mesa" ,mesa) ("qt" ,qt))) (build-system cmake-build-system) - (synopsis "toolset for the mCRL2 formal specification language") + (synopsis "Toolset for the mCRL2 formal specification language") (description - "mCRL2 (micro Common Representation Language 2) is a formal specification -language for describing concurrent discrete event systems. Its toolset -supports analysis and automatic verification, linearisation, simulation, -state-space exploration and generation and tools to optimise and analyse + "@dfn{mCRL2} (micro Common Representation Language 2) is a formal +specification language for describing concurrent discrete event systems. Its +toolset supports analysis and automatic verification, linearisation, simulation, +state-space exploration and generation, and tools to optimise and analyse specifications. Also, state spaces can be manipulated, visualised and analysed.") (home-page "http://mcrl2.org") From 5a2c4b3bbc9cb03d8b7a0ef61f997dde2053ac34 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 8 Feb 2018 11:11:09 -0500 Subject: [PATCH 65/90] gnu: pwgen: Update to 2.08. * gnu/packages/password-utils.scm (pwgen): Update to 2.08. --- gnu/packages/password-utils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 6824210341..ec17c25789 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -68,14 +68,14 @@ (define-module (gnu packages password-utils) (define-public pwgen (package (name "pwgen") - (version "2.07") + (version "2.08") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pwgen/pwgen/" version "/pwgen-" version ".tar.gz")) (sha256 - (base32 "0mhmw700kkh238fzivcwnwi94bj9f3h36yfh3k3j2v19b0zmjx7b")))) + (base32 "0yy90pqrr2pszzhb5hxjishq9qc7dqd290amiibqx9fm1b9kvc6s")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; no test suite From dd935df2c1db17242ad1243ba3aa8fda9995dddf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 15:27:31 +0100 Subject: [PATCH 66/90] gnu: libcap-ng: Remove unused python input. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Outputs so identical you wish they were intensional. * gnu/packages/admin.scm (libcap-ng)[inputs]: Remove python. [arguments]: Add ‘--without-python’ to #:configure-flags to suppress a bogus error. --- gnu/packages/admin.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 706d0f36b8..60fc41fe01 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1353,7 +1353,9 @@ (define-public libcap-ng (base32 "0a0k484kwv0zilry2mbl9k56cnpdhsjxdxin17jas6kkyfy345aa")))) (build-system gnu-build-system) - (inputs `(("python" ,python))) + (arguments + `(#:configure-flags + (list "--without-python"))) (home-page "https://people.redhat.com/sgrubb/libcap-ng/") (synopsis "Library for more easily working with POSIX capabilities") (description From ed5f55de7df892cf932ec2c62d8543eeb5546ebe Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 16:30:19 +0100 Subject: [PATCH 67/90] gnu: nim: Use INVOKE. * gnu/packages/nim.scm (nim)[arguments]: Substitute INVOKE for SYSTEM*. --- gnu/packages/nim.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/nim.scm b/gnu/packages/nim.scm index 19dcd147f8..5694eae63b 100644 --- a/gnu/packages/nim.scm +++ b/gnu/packages/nim.scm @@ -57,11 +57,13 @@ (define-public nim #t)) (replace 'build (lambda _ - (zero? (system* "sh" "build.sh")))) + (invoke "sh" "build.sh") + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* "./install.sh" out)))))))) + (invoke "./install.sh" out) + #t)))))) (home-page "https://nim-lang.org") (synopsis "Statically-typed, imperative programming language") (description "Nim (formerly known as Nimrod) is a statically-typed, From cf08cc16e67aa18818596a9ee2a2ff1211b7b2bb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 17:53:15 +0100 Subject: [PATCH 68/90] gnu: serd: Update to 0.28.0. * gnu/packages/rdf.scm (serd): Update to 0.28.0. --- gnu/packages/rdf.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 5342dbbffb..4d8b1d1d88 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -238,14 +239,14 @@ (define-public redland (define-public serd (package (name "serd") - (version "0.26.0") + (version "0.28.0") (source (origin (method url-fetch) (uri (string-append "http://download.drobilla.net/serd-" version ".tar.bz2")) (sha256 (base32 - "164j43am4hka2vbzw4n52zy7rafgp6kmkgbcbvap368az644mr73")))) + "1v4ai4zyj1q3255nghicns9817jkwb3bh60ssprsjmnjfj41mwhx")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no check target From f81b6e770324e2b0b31a9cfdfe7f6d9793cb73c9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 8 Feb 2018 18:21:02 +0100 Subject: [PATCH 69/90] gnu: libtirpc: Update to 1.0.2. * gnu/packages/onc-rpc.scm (libtirpc): Update to 1.0.2. [patches]: Remove patch for fixed CVE. * gnu/packages/patches/libtirpc-CVE-2017-8779.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/onc-rpc.scm | 6 +- .../patches/libtirpc-CVE-2017-8779.patch | 263 ------------------ 3 files changed, 3 insertions(+), 267 deletions(-) delete mode 100644 gnu/packages/patches/libtirpc-CVE-2017-8779.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3f0023a2fb..823469eea2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -852,7 +852,6 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-tiffgetfield-bugs.patch \ %D%/packages/patches/libtiff-tiffycbcrtorgb-integer-overflow.patch \ %D%/packages/patches/libtiff-tiffycbcrtorgbinit-integer-overflow.patch \ - %D%/packages/patches/libtirpc-CVE-2017-8779.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunistring-gnulib-multi-core.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index a76ac36eab..61a643b037 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2017 Ludovic Courtès ;;; Copyright © 2016 John Darrington ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,16 +31,15 @@ (define-module (gnu packages onc-rpc) (define-public libtirpc (package (name "libtirpc") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/libtirpc/libtirpc/" version "/libtirpc-" version ".tar.bz2")) - (patches (search-patches "libtirpc-CVE-2017-8779.patch")) (sha256 (base32 - "17mqrdgsgp9m92pmq7bvr119svdg753prqqxmg4cnz5y657rfmji")))) + "1xchbxy0xql7yl7z4n1icj8r7dmly46i22fvm00vdjq64zlmqg3j")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/libtirpc-CVE-2017-8779.patch b/gnu/packages/patches/libtirpc-CVE-2017-8779.patch deleted file mode 100644 index 742e64df25..0000000000 --- a/gnu/packages/patches/libtirpc-CVE-2017-8779.patch +++ /dev/null @@ -1,263 +0,0 @@ -Fix CVE-2017-8779: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8779 - -Patch copied from the bug reporter's 3rd-party repository: - -https://github.com/guidovranken/rpcbomb/blob/master/libtirpc_patch.txt - -diff --git a/src/rpc_generic.c b/src/rpc_generic.c -index 2f09a8f..589cbd5 100644 ---- a/src/rpc_generic.c -+++ b/src/rpc_generic.c -@@ -615,6 +615,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf) - - switch (af) { - case AF_INET: -+ if (nbuf->len < sizeof(*sin)) { -+ return NULL; -+ } - sin = nbuf->buf; - if (inet_ntop(af, &sin->sin_addr, namebuf, sizeof namebuf) - == NULL) -@@ -626,6 +629,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf) - break; - #ifdef INET6 - case AF_INET6: -+ if (nbuf->len < sizeof(*sin6)) { -+ return NULL; -+ } - sin6 = nbuf->buf; - if (inet_ntop(af, &sin6->sin6_addr, namebuf6, sizeof namebuf6) - == NULL) -@@ -667,6 +673,8 @@ __rpc_uaddr2taddr_af(int af, const char *uaddr) - - port = 0; - sin = NULL; -+ if (uaddr == NULL) -+ return NULL; - addrstr = strdup(uaddr); - if (addrstr == NULL) - return NULL; -diff --git a/src/rpcb_prot.c b/src/rpcb_prot.c -index 43fd385..a923c8e 100644 ---- a/src/rpcb_prot.c -+++ b/src/rpcb_prot.c -@@ -41,6 +41,7 @@ - #include - #include - #include -+#include "rpc_com.h" - - bool_t - xdr_rpcb(xdrs, objp) -@@ -53,13 +54,13 @@ xdr_rpcb(xdrs, objp) - if (!xdr_u_int32_t(xdrs, &objp->r_vers)) { - return (FALSE); - } -- if (!xdr_string(xdrs, &objp->r_netid, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->r_netid, RPC_MAXDATASIZE)) { - return (FALSE); - } -- if (!xdr_string(xdrs, &objp->r_addr, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->r_addr, RPC_MAXDATASIZE)) { - return (FALSE); - } -- if (!xdr_string(xdrs, &objp->r_owner, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->r_owner, RPC_MAXDATASIZE)) { - return (FALSE); - } - return (TRUE); -@@ -159,19 +160,19 @@ xdr_rpcb_entry(xdrs, objp) - XDR *xdrs; - rpcb_entry *objp; - { -- if (!xdr_string(xdrs, &objp->r_maddr, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->r_maddr, RPC_MAXDATASIZE)) { - return (FALSE); - } -- if (!xdr_string(xdrs, &objp->r_nc_netid, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->r_nc_netid, RPC_MAXDATASIZE)) { - return (FALSE); - } - if (!xdr_u_int32_t(xdrs, &objp->r_nc_semantics)) { - return (FALSE); - } -- if (!xdr_string(xdrs, &objp->r_nc_protofmly, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->r_nc_protofmly, RPC_MAXDATASIZE)) { - return (FALSE); - } -- if (!xdr_string(xdrs, &objp->r_nc_proto, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->r_nc_proto, RPC_MAXDATASIZE)) { - return (FALSE); - } - return (TRUE); -@@ -292,7 +293,7 @@ xdr_rpcb_rmtcallres(xdrs, p) - bool_t dummy; - struct r_rpcb_rmtcallres *objp = (struct r_rpcb_rmtcallres *)(void *)p; - -- if (!xdr_string(xdrs, &objp->addr, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->addr, RPC_MAXDATASIZE)) { - return (FALSE); - } - if (!xdr_u_int(xdrs, &objp->results.results_len)) { -@@ -312,6 +313,11 @@ xdr_netbuf(xdrs, objp) - if (!xdr_u_int32_t(xdrs, (u_int32_t *) &objp->maxlen)) { - return (FALSE); - } -+ -+ if (objp->maxlen > RPC_MAXDATASIZE) { -+ return (FALSE); -+ } -+ - dummy = xdr_bytes(xdrs, (char **)&(objp->buf), - (u_int *)&(objp->len), objp->maxlen); - return (dummy); -diff --git a/src/rpcb_st_xdr.c b/src/rpcb_st_xdr.c -index 08db745..28e6a48 100644 ---- a/src/rpcb_st_xdr.c -+++ b/src/rpcb_st_xdr.c -@@ -37,6 +37,7 @@ - - - #include -+#include "rpc_com.h" - - /* Link list of all the stats about getport and getaddr */ - -@@ -58,7 +59,7 @@ xdr_rpcbs_addrlist(xdrs, objp) - if (!xdr_int(xdrs, &objp->failure)) { - return (FALSE); - } -- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { - return (FALSE); - } - -@@ -109,7 +110,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) - IXDR_PUT_INT32(buf, objp->failure); - IXDR_PUT_INT32(buf, objp->indirect); - } -- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { - return (FALSE); - } - if (!xdr_pointer(xdrs, (char **)&objp->next, -@@ -147,7 +148,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) - objp->failure = (int)IXDR_GET_INT32(buf); - objp->indirect = (int)IXDR_GET_INT32(buf); - } -- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { - return (FALSE); - } - if (!xdr_pointer(xdrs, (char **)&objp->next, -@@ -175,7 +176,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) - if (!xdr_int(xdrs, &objp->indirect)) { - return (FALSE); - } -- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { -+ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { - return (FALSE); - } - if (!xdr_pointer(xdrs, (char **)&objp->next, -diff --git a/src/xdr.c b/src/xdr.c -index f3fb9ad..b9a1558 100644 ---- a/src/xdr.c -+++ b/src/xdr.c -@@ -42,8 +42,10 @@ - #include - #include - -+#include - #include - #include -+#include - - typedef quad_t longlong_t; /* ANSI long long type */ - typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */ -@@ -53,7 +55,6 @@ typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */ - */ - #define XDR_FALSE ((long) 0) - #define XDR_TRUE ((long) 1) --#define LASTUNSIGNED ((u_int) 0-1) - - /* - * for unit alignment -@@ -629,6 +630,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) - { - char *sp = *cpp; /* sp is the actual string pointer */ - u_int nodesize; -+ bool_t ret, allocated = FALSE; - - /* - * first deal with the length since xdr bytes are counted -@@ -652,6 +654,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) - } - if (sp == NULL) { - *cpp = sp = mem_alloc(nodesize); -+ allocated = TRUE; - } - if (sp == NULL) { - warnx("xdr_bytes: out of memory"); -@@ -660,7 +663,14 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) - /* FALLTHROUGH */ - - case XDR_ENCODE: -- return (xdr_opaque(xdrs, sp, nodesize)); -+ ret = xdr_opaque(xdrs, sp, nodesize); -+ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { -+ if (allocated == TRUE) { -+ free(sp); -+ *cpp = NULL; -+ } -+ } -+ return (ret); - - case XDR_FREE: - if (sp != NULL) { -@@ -754,6 +764,7 @@ xdr_string(xdrs, cpp, maxsize) - char *sp = *cpp; /* sp is the actual string pointer */ - u_int size; - u_int nodesize; -+ bool_t ret, allocated = FALSE; - - /* - * first deal with the length since xdr strings are counted-strings -@@ -793,8 +804,10 @@ xdr_string(xdrs, cpp, maxsize) - switch (xdrs->x_op) { - - case XDR_DECODE: -- if (sp == NULL) -+ if (sp == NULL) { - *cpp = sp = mem_alloc(nodesize); -+ allocated = TRUE; -+ } - if (sp == NULL) { - warnx("xdr_string: out of memory"); - return (FALSE); -@@ -803,7 +816,14 @@ xdr_string(xdrs, cpp, maxsize) - /* FALLTHROUGH */ - - case XDR_ENCODE: -- return (xdr_opaque(xdrs, sp, size)); -+ ret = xdr_opaque(xdrs, sp, size); -+ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { -+ if (allocated == TRUE) { -+ free(sp); -+ *cpp = NULL; -+ } -+ } -+ return (ret); - - case XDR_FREE: - mem_free(sp, nodesize); -@@ -823,7 +843,7 @@ xdr_wrapstring(xdrs, cpp) - XDR *xdrs; - char **cpp; - { -- return xdr_string(xdrs, cpp, LASTUNSIGNED); -+ return xdr_string(xdrs, cpp, RPC_MAXDATASIZE); - } - - /* From 6666f4f41fb2ec5294676cf62ff265c43be3f972 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 7 Feb 2018 22:05:11 -0500 Subject: [PATCH 70/90] gnu: vdirsyncer: Update to 0.16.4. * gnu/packages/dav.scm (vdirsyncer): Update to 0.16.4. --- gnu/packages/dav.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 3513116f24..0c6c62d5a3 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -57,13 +57,13 @@ (define-public radicale (define-public vdirsyncer (package (name "vdirsyncer") - (version "0.16.3") + (version "0.16.4") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "0dpwbfi97ksijqng191659m8k0v215y8ld95w8gb126m4m96qpzw")))) + "03wva48bgv1ad3df6plc9b8xxh6k8bcaxrhlzwh81c9mzn5bspzv")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases From a04434f291acf55129b3202833023c5b88eed8c9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 19:09:24 -0500 Subject: [PATCH 71/90] gnu: Add go-github-com-beorn7-perks-quantile. * gnu/packages/syncthing.scm (go-github-com-beorn7-perks-quantile): New variable. --- gnu/packages/syncthing.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 3fb70d13da..bee584050b 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1927,3 +1927,29 @@ (define-public go-github-com-klauspost-reedsolomon Erasure Coding in Go.") (home-page "https://github.com/klauspost/reedsolomon") (license expat)))) + +(define-public go-github-com-beorn7-perks-quantile + (let ((commit "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9") + (revision "0")) + (package + (name "go-github-com-beorn7-perks-quantile") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/beorn7/perks.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/beorn7/perks/quantile" + #:unpack-path "github.com/beorn7/perks")) + (synopsis "Compute approximate quantiles over an unbounded data stream") + (description "Perks contains the Go package @code{quantile} that computes +approximate quantiles over an unbounded data stream within low memory and CPU +bounds.") + (home-page "https://github.com/beorn7/perks") + (license expat)))) From d095620a590a8e513bc3c08dff5bb0c1797ddc98 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 19:14:03 -0500 Subject: [PATCH 72/90] gnu: go-github-com-gogo-protobuf: Update to 0.5-2.160de10. * gnu/packages/syncthing.scm (go-github-com-gogo-protobuf): Update to 0.5-2.160de10. --- gnu/packages/syncthing.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index bee584050b..e5b447b0b3 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -358,8 +358,8 @@ (define* (go-github-com-gogo-protobuf-union (license (package-license go-github-com-gogo-protobuf)))) (define-public go-github-com-gogo-protobuf - (let ((commit "35b81a066e522fb86ece043a8ef1dbfa10b4fed1") - (revision "1")) + (let ((commit "160de10b2537169b5ae3e7e221d28269ef40d311") + (revision "2")) (package (name "go-github-com-gogo-protobuf") (version (git-version "0.5" revision commit)) @@ -371,7 +371,7 @@ (define-public go-github-com-gogo-protobuf (file-name (git-file-name name version)) (sha256 (base32 - "194k6cls2g654df54x5rzrn5nqrfk8yz1jymm667ajjvzcplidja")))) + "0hxq28sgxym04rv0q40gpwkh4ni359q21hq3g78wwxwx4qfd4zwm")))) (build-system go-build-system) (arguments `(#:import-path "github.com/gogo/protobuf/proto" From 339e44dac20ee24a706878093a5756f0eec4c95f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 19:25:49 -0500 Subject: [PATCH 73/90] gnu Add go-github-com-golang-protobuf-proto. * gnu/packages/syncthing.scm (go-github-com-golang-protobuf-proto): New variable. --- gnu/packages/syncthing.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index e5b447b0b3..904f32fc52 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1953,3 +1953,30 @@ (define-public go-github-com-beorn7-perks-quantile bounds.") (home-page "https://github.com/beorn7/perks") (license expat)))) + +(define-public go-github-com-golang-protobuf-proto + (let ((commit "1e59b77b52bf8e4b449a57e6f79f21226d571845") + (revision "0")) + (package + (name "go-github-com-golang-protobuf-proto") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/protobuf.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/golang/protobuf/proto" + #:unpack-path "github.com/golang/protobuf" + #:tests? #f ; requires unpackaged golang.org/x/sync/errgroup + )) + (synopsis "Go support for Protocol Buffers") + (description "This package provides Go support for the Protocol Buffers +data serialization format.") + (home-page "https://github.com/golang/protobuf") + (license bsd-3)))) From 4b6b1a385694cdfcc1bee87feff7be53aa3d9bc3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 19:33:40 -0500 Subject: [PATCH 74/90] gnu: Add go-github-com-prometheus-client-model-go. * gnu/packages/syncthing.scm (go-github-com-prometheus-client-model-go): New variable. --- gnu/packages/syncthing.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 904f32fc52..075836791f 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1980,3 +1980,30 @@ (define-public go-github-com-golang-protobuf-proto data serialization format.") (home-page "https://github.com/golang/protobuf") (license bsd-3)))) + +(define-public go-github-com-prometheus-client-model-go + (let ((commit "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c") + (revision "0")) + (package + (name "go-github-com-prometheus-client-model-go") + (version (git-version "0.0.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/client_model.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/prometheus/client_model/go" + #:unpack-path "github.com/prometheus/client_model")) + (propagated-inputs + `(("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto))) + (synopsis "Data model artifacts for Prometheus") + (description "This package provides data model artifacts for Prometheus.") + (home-page "https://github.com/prometheus/client_model") + (license asl2.0)))) From 1da227b0d88c2fabda3a2e6a44b6ec28e48f3aa4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 19:44:58 -0500 Subject: [PATCH 75/90] gnu: Add go-github-com-matttproud-golang-protobuf-extensions-pbutil. * gnu/packages/syncthing.scm (go-github-com-matttproud-golang-protobuf-extensions-pbutil): New variable. --- gnu/packages/syncthing.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 075836791f..b1bca8e9a3 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -2007,3 +2007,34 @@ (define-public go-github-com-prometheus-client-model-go (description "This package provides data model artifacts for Prometheus.") (home-page "https://github.com/prometheus/client_model") (license asl2.0)))) + +(define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil + (let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c") + (revision "0")) + (package + (name "go-github-com-matttproud-golang-protobuf-extensions-pbutil") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/matttproud/golang_protobuf_extensions.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/matttproud/golang_protobuf_extensions/pbutil" + #:unpack-path "github.com/matttproud/golang_protobuf_extensions")) + (propagated-inputs + `(("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto))) + (synopsis "Streaming Protocol Buffers in Go") + (description "This package provides various Protocol Buffer +extensions for the Go language, namely support for record length-delimited +message streaming.") + (home-page "https://github.com/matttproud/golang_protobuf_extensions") + (license asl2.0)))) From 270590bd69849c6a85e94d9dfb96657c1aa222c2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 19:39:06 -0500 Subject: [PATCH 76/90] gnu: Add go-github-com-prometheus-common-expfmt. * gnu/packages/syncthing.scm (go-github-com-prometheus-common-expfmt): New variable. --- gnu/packages/syncthing.scm | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index b1bca8e9a3..e7c6477313 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -2038,3 +2038,46 @@ (define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil message streaming.") (home-page "https://github.com/matttproud/golang_protobuf_extensions") (license asl2.0)))) + +(define-public go-github-com-prometheus-common-expfmt + (let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca") + (revision "0")) + (package + (name "go-github-com-prometheus-common-expfmt") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/common.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/prometheus/common/expfmt" + #:unpack-path "github.com/prometheus/common" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/github.com/prometheus/common/expfmt/testdata/") + ".*\\.gz$")) + #t))))) + (propagated-inputs + `(("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto) + ("go-github-com-matttproud-golang-protobuf-extensions-pbutil" + ,go-github-com-matttproud-golang-protobuf-extensions-pbutil) + ("go-github-com-prometheus-client-model-go" + ,go-github-com-prometheus-client-model-go))) + (synopsis "Prometheus metrics") + (description "This package provides tools for reading and writing +Prometheus metrics.") + (home-page "https://github.com/prometheus/common") + (license asl2.0)))) From 13dca4a56e2e568f879d49fc9d83d55656bcff77 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 20:01:39 -0500 Subject: [PATCH 77/90] gnu: Add go-github-com-prometheus-procfs. * gnu/packages/syncthing.scm (go-github-com-prometheus-procfs): New variable. --- gnu/packages/syncthing.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index e7c6477313..a8581ec25e 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -2081,3 +2081,27 @@ (define-public go-github-com-prometheus-common-expfmt Prometheus metrics.") (home-page "https://github.com/prometheus/common") (license asl2.0)))) + +(define-public go-github-com-prometheus-procfs + (let ((commit "b15cd069a83443be3154b719d0cc9fe8117f09fb") + (revision "0")) + (package + (name "go-github-com-prometheus-procfs") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/procfs.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cr45wg2m40bj2za8f32mq09rjlcnk5kfam0h0hr8wcb015k4wxj")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/prometheus/procfs")) + (synopsis "Go library for reading @file{/proc}") + (description "This Go package @code{procfs} provides functions to retrieve +system, kernel and process metrics from the pseudo-filesystem @file{/proc}.") + (home-page "https://github.com/prometheus/procfs") + (license asl2.0)))) From bfbe868d8e2ee9000a0cbe9c32b1c08dea595134 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 20:19:21 -0500 Subject: [PATCH 78/90] gnu: Add go-github-com-client-golang-prometheus-promhttp. * gnu/packages/syncthing.scm (go-github-com-client-golang-prometheus-promhttp): New variable. --- gnu/packages/syncthing.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index a8581ec25e..fec8d532ad 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -2105,3 +2105,39 @@ (define-public go-github-com-prometheus-procfs system, kernel and process metrics from the pseudo-filesystem @file{/proc}.") (home-page "https://github.com/prometheus/procfs") (license asl2.0)))) + +(define-public go-github-com-client-golang-prometheus-promhttp + (let ((commit "180b8fdc22b4ea7750bcb43c925277654a1ea2f3") + (revision "0")) + (package + (name "go-github-com-client-golang-prometheus-promhttp") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/client_golang.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kkfx1j9ka18ydsmdi2cdy3hs39c22b39mbc4laykmj2x93lmbdp")))) + (build-system go-build-system) + (arguments + '(#:tests? #f ; The tests require internet access + #:import-path "github.com/prometheus/client_golang/prometheus/promhttp" + #:unpack-path "github.com/prometheus/client_golang")) + (propagated-inputs + `(("go-github-com-beorn7-perks-quantile" + ,go-github-com-beorn7-perks-quantile) + ("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto) + ("go-github-com-prometheus-client-model-go" + ,go-github-com-prometheus-client-model-go) + ("go-github-com-prometheus-common-expfmt" + ,go-github-com-prometheus-common-expfmt) + ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs))) + (synopsis "HTTP server and client tools for Prometheus") + (description "This package @code{promhttp} provides HTTP client and +server tools for Prometheus metrics.") + (home-page "https://github.com/prometheus/client_golang") + (license asl2.0)))) From fa22168b5ced52ccc31046b8e8fcd2aea76e7705 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 20:19:45 -0500 Subject: [PATCH 79/90] gnu: Add go-github-com-client-golang-prometheus. * gnu/packages/syncthing.scm (go-github-com-client-golang-prometheus): New variable. --- gnu/packages/syncthing.scm | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index fec8d532ad..1087bcba0b 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -2141,3 +2141,42 @@ (define-public go-github-com-client-golang-prometheus-promhttp server tools for Prometheus metrics.") (home-page "https://github.com/prometheus/client_golang") (license asl2.0)))) + +(define-public go-github-com-client-golang-prometheus + (let ((commit "180b8fdc22b4ea7750bcb43c925277654a1ea2f3") + (revision "0")) + (package + (name "go-github-com-prometheus-client-golang-prometheus") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/client_golang.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kkfx1j9ka18ydsmdi2cdy3hs39c22b39mbc4laykmj2x93lmbdp")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/prometheus/client_golang/prometheus" + #:unpack-path "github.com/prometheus/client_golang")) + (propagated-inputs + `(("go-github-com-beorn7-perks-quantile" + ,go-github-com-beorn7-perks-quantile) + ("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto) + ("go-github-com-prometheus-client-model-go" + ,go-github-com-prometheus-client-model-go) + ("go-github-com-prometheus-common-expfmt" + ,go-github-com-prometheus-common-expfmt) + ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs) + ("go-github-com-client-golang-prometheus-promhttp" + ,go-github-com-client-golang-prometheus-promhttp))) + (synopsis "Prometheus instrumentation library for Go applications") + (description "This package provides the Go client library for the +Prometheus monitoring and alerting system. It has two separate parts, one for +instrumenting application code, and one for creating clients that talk to the +Prometheus HTTP API.") + (home-page "https://github.com/prometheus/client_golang") + (license asl2.0)))) From f07ccbc25605c580439e7618523b06192b083208 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 20:20:06 -0500 Subject: [PATCH 80/90] gnu: Add go-github-com-prometheus-union. * gnu/packages/syncthing.scm (go-github-com-prometheus-union): New variable. --- gnu/packages/syncthing.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 1087bcba0b..7029fdc55e 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -2180,3 +2180,28 @@ (define-public go-github-com-client-golang-prometheus Prometheus HTTP API.") (home-page "https://github.com/prometheus/client_golang") (license asl2.0)))) + +(define* (go-github-com-prometheus-union + #:optional (packages (list go-github-com-client-golang-prometheus + go-github-com-client-golang-prometheus-promhttp))) + (package + (name "go-github-com-prometheus-union") + (version (package-version go-github-com-client-golang-prometheus)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of Go Prometheus libraries") + (description "This is a union of Go Prometheus libraries") + (home-page (package-home-page go-github-com-client-golang-prometheus)) + (license (package-license go-github-com-client-golang-prometheus)))) From 5c8c1511e8ab77545dd3a7fc304cca61fedbc237 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 5 Feb 2018 18:57:15 -0500 Subject: [PATCH 81/90] gnu: go-github-com-zillode-notify: Update to 0.0.0-2.a8abcfb. * gnu/packages/syncthing.scm (go-github-com-zillode-notify): Update to 0.0.0-2.a8abcfb. --- gnu/packages/syncthing.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 7029fdc55e..9d8ef9e328 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1853,8 +1853,8 @@ (define-public go-github-com-tjfoc-gmsm-sm4 (license asl2.0)))) (define-public go-github-com-zillode-notify - (let ((commit "8fff849a2026ce7a59f67ed9747dd9c7adc8bd0b") - (revision "1")) + (let ((commit "a8abcfb1ce88ee8d79a300ed65d94b8fb616ddb3") + (revision "2")) (package (name "go-github-com-zillode-notify") (version (git-version "0.0.0" revision commit)) @@ -1866,7 +1866,7 @@ (define-public go-github-com-zillode-notify (file-name (git-file-name name version)) (sha256 (base32 - "1aazci21y85k1c02dlvdfx926vxb3j4i96fn27s7zxmqjlk7l3ga")))) + "031pmbvm0xj4f4fak7im0ywmyn3hns538zlbdj4f23jj69zqdy7k")))) (build-system go-build-system) (arguments '(#:import-path "github.com/zillode/notify")) From 30335a2963919976413336e8cfda0cb5dee5c21f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 28 Jan 2018 19:09:09 -0500 Subject: [PATCH 82/90] gnu: Update syncthing to 0.14.44. * gnu/packages/syncthing.scm (syncthing): Update to 0.14.44. [inputs]: Add go-github-com-prometheus-union and remove go-github-com-edsrzf-mmap-go. [source]: Delete bundled dependencies in a snippet. [arguments]: Remove the 'delete-bundled-source-code' phase. --- gnu/packages/syncthing.scm | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 9d8ef9e328..f5e5bb85be 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Petter -;;; Copyright © 2016, 2017 Leo Famulari +;;; Copyright © 2016, 2017, 2018 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +28,7 @@ (define-module (gnu packages syncthing) (define-public syncthing (package (name "syncthing") - (version "0.14.43") + (version "0.14.44") (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" @@ -36,7 +36,11 @@ (define-public syncthing "/syncthing-source-v" version ".tar.gz")) (sha256 (base32 - "175xkc4i00axxljc5kgkr30lm1s9hfmz0hrzrsl91rpwpbh500mv")))) + "0fxq52w1b05928xp0a333rg23fabj0nykgg7v4gz01f3vrxyydi1")) + (modules '((guix build utils))) + ;; Delete bundled ("vendored") free software source code. + (snippet + '(delete-file-recursively "vendor")))) (build-system go-build-system) ;; The primary Syncthing executable goes to "out", while the auxiliary ;; server programs and utility tools go to "utils". This reduces the size @@ -49,18 +53,6 @@ (define-public syncthing #:install-source? #f #:phases (modify-phases %standard-phases - (add-after 'unpack 'delete-bundled-source-code - (lambda _ - ;; Keep the bundled cznic libraries. There are some "internal" - ;; cznic libraries that complicate the use of non-bundled copies. - (rename-file "src/github.com/syncthing/syncthing/vendor/github.com/cznic" - "cznic") - (delete-file-recursively "src/github.com/syncthing/syncthing/vendor") - (mkdir-p "src/github.com/syncthing/syncthing/vendor/github.com/") - (rename-file "cznic" - "src/github.com/syncthing/syncthing/vendor/github.com/cznic") - #t)) - (add-before 'build 'increase-test-timeout (lambda _ (substitute* "src/github.com/syncthing/syncthing/build.go" @@ -129,11 +121,9 @@ (define-public syncthing ("go-github-com-calmh-xdr" ,go-github-com-calmh-xdr) ("go-github-com-ccding-go-stun" ,go-github-com-ccding-go-stun) + ("go-github-com-prometheus-union" ,(go-github-com-prometheus-union)) ("go-github-com-chmduquesne-rollinghash-adler32" ,go-github-com-chmduquesne-rollinghash-adler32) -; ("go-github-com-cznic-ql" ,go-github-com-cznic-ql) ; bundled - ; Used by bundled ql - ("go-github-com-edsrzf-mmap-go" ,go-github-com-edsrzf-mmap-go) ("go-github-com-gobwas-glob" ,go-github-com-gobwas-glob) ("go-github-com-gogo-protobuf-union" ,(go-github-com-gogo-protobuf-union)) From e61da2e8848782052d6d5d69f111520a7f772e52 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Wed, 7 Feb 2018 14:39:40 +0800 Subject: [PATCH 83/90] gnu: mpv: Fix CVE-2018-6360. * gnu/packages/patches/mpv-CVE-2018-6360-1.patch, gnu/packages/patches/mpv-CVE-2018-6360-2.patch, gnu/packages/patches/mpv-CVE-2018-6360-3.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/video.scm (mpv)[source]: Use them. Signed-off-by: Leo Famulari --- gnu/local.mk | 5 +- .../patches/mpv-CVE-2018-6360-1.patch | 138 ++++++++++++++++++ .../patches/mpv-CVE-2018-6360-2.patch | 59 ++++++++ .../patches/mpv-CVE-2018-6360-3.patch | 84 +++++++++++ gnu/packages/video.scm | 5 +- 5 files changed, 289 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/mpv-CVE-2018-6360-1.patch create mode 100644 gnu/packages/patches/mpv-CVE-2018-6360-2.patch create mode 100644 gnu/packages/patches/mpv-CVE-2018-6360-3.patch diff --git a/gnu/local.mk b/gnu/local.mk index 823469eea2..2ef483df0e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -9,7 +9,7 @@ # Copyright © 2016 Adonay "adfeno" Felipe Nogueira # Copyright © 2016, 2017 Ricardo Wurmus # Copyright © 2016 Ben Woodcroft -# Copyright © 2016, 2017 Alex Vong +# Copyright © 2016, 2017, 2018 Alex Vong # Copyright © 2016, 2017 Efraim Flashner # Copyright © 2016, 2017 Jan Nieuwenhuizen # Copyright © 2017 Tobias Geerinckx-Rice @@ -909,6 +909,9 @@ dist_patch_DATA = \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \ %D%/packages/patches/mpc123-initialize-ao.patch \ + %D%/packages/patches/mpv-CVE-2018-6360-1.patch \ + %D%/packages/patches/mpv-CVE-2018-6360-2.patch \ + %D%/packages/patches/mpv-CVE-2018-6360-3.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \ %D%/packages/patches/mongodb-support-unknown-linux-distributions.patch \ %D%/packages/patches/mozjs17-aarch64-support.patch \ diff --git a/gnu/packages/patches/mpv-CVE-2018-6360-1.patch b/gnu/packages/patches/mpv-CVE-2018-6360-1.patch new file mode 100644 index 0000000000..55fc7daaf3 --- /dev/null +++ b/gnu/packages/patches/mpv-CVE-2018-6360-1.patch @@ -0,0 +1,138 @@ +Fix CVE-2018-6360: + +https://github.com/mpv-player/mpv/issues/5456 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6360 +https://security-tracker.debian.org/tracker/CVE-2018-6360 + +Patch copied from upstream source repository: + +https://github.com/mpv-player/mpv/commit/e6e6b0dcc7e9b0dbf35154a179b3dc1fcfcaff43 + +To apply the patch to mpv 0.28.0 release tarball, hunk #4 is removed. Hunk #4 +checks if 'mpd_url' is safe, but the support for 'mpd_url' is not available +for the 0.28.0 release. So it should be safe to remove hunk #4. + +From e6e6b0dcc7e9b0dbf35154a179b3dc1fcfcaff43 Mon Sep 17 00:00:00 2001 +From: Ricardo Constantino +Date: Fri, 26 Jan 2018 01:19:04 +0000 +Subject: [PATCH] ytdl_hook: whitelist protocols from urls retrieved from + youtube-dl + +Not very clean since there's a lot of potential unsafe urls that youtube-dl +can give us, depending on whether it's a single url, split tracks, +playlists, segmented dash, etc. +--- + player/lua/ytdl_hook.lua | 54 +++++++++++++++++++++++++++++++++++++++++------- + 1 file changed, 47 insertions(+), 7 deletions(-) + +diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua +index dd96ecc01d..b480c21625 100644 +--- a/player/lua/ytdl_hook.lua ++++ b/player/lua/ytdl_hook.lua +@@ -16,6 +16,18 @@ local ytdl = { + + local chapter_list = {} + ++function Set (t) ++ local set = {} ++ for _, v in pairs(t) do set[v] = true end ++ return set ++end ++ ++local safe_protos = Set { ++ "http", "https", "ftp", "ftps", ++ "rtmp", "rtmps", "rtmpe", "rtmpt", "rtmpts", "rtmpte", ++ "data" ++} ++ + local function exec(args) + local ret = utils.subprocess({args = args}) + return ret.status, ret.stdout, ret +@@ -183,6 +195,9 @@ local function edl_track_joined(fragments, protocol, is_live, base) + + for i = offset, #fragments do + local fragment = fragments[i] ++ if not url_is_safe(join_url(base, fragment)) then ++ return nil ++ end + table.insert(parts, edl_escape(join_url(base, fragment))) + if fragment.duration then + parts[#parts] = +@@ -208,6 +223,15 @@ local function proto_is_dash(json) + or json["protocol"] == "http_dash_segments" + end + ++local function url_is_safe(url) ++ local proto = type(url) == "string" and url:match("^(.+)://") or nil ++ local safe = proto and safe_protos[proto] ++ if not safe then ++ msg.error(("Ignoring potentially unsafe url: '%s'"):format(url)) ++ end ++ return safe ++end ++ + local function add_single_video(json) + local streamurl = "" + local max_bitrate = 0 +@@ -238,14 +264,18 @@ local function add_single_video(json) + edl_track = edl_track_joined(track.fragments, + track.protocol, json.is_live, + track.fragment_base_url) ++ local url = edl_track or track.url ++ if not url_is_safe(url) then ++ return ++ end + if track.acodec and track.acodec ~= "none" then + -- audio track + mp.commandv("audio-add", +- edl_track or track.url, "auto", ++ url, "auto", + track.format_note or "") + elseif track.vcodec and track.vcodec ~= "none" then + -- video track +- streamurl = edl_track or track.url ++ streamurl = url + end + end + +@@ -264,7 +294,13 @@ local function add_single_video(json) + + msg.debug("streamurl: " .. streamurl) + +- mp.set_property("stream-open-filename", streamurl:gsub("^data:", "data://", 1)) ++ streamurl = streamurl:gsub("^data:", "data://", 1) ++ ++ if not url_is_safe(streamurl) then ++ return ++ end ++ ++ mp.set_property("stream-open-filename", streamurl) + + mp.set_property("file-local-options/force-media-title", json.title) + +@@ -526,14 +562,18 @@ mp.add_hook(o.try_ytdl_first and "on_load" or "on_load_fail", 10, function () + site = entry["webpage_url"] + end + +- if not (site:find("https?://") == 1) then +- site = "ytdl://" .. site ++ -- links with only youtube id as returned by --flat-playlist ++ if not site:find("://") then ++ table.insert(playlist, "ytdl://" .. site) ++ elseif url_is_safe(site) then ++ table.insert(playlist, site) + end +- table.insert(playlist, site) + + end + +- mp.set_property("stream-open-filename", "memory://" .. table.concat(playlist, "\n")) ++ if #playlist > 0 then ++ mp.set_property("stream-open-filename", "memory://" .. table.concat(playlist, "\n")) ++ end + end + + else -- probably a video +-- +2.16.1 + diff --git a/gnu/packages/patches/mpv-CVE-2018-6360-2.patch b/gnu/packages/patches/mpv-CVE-2018-6360-2.patch new file mode 100644 index 0000000000..b37e33a641 --- /dev/null +++ b/gnu/packages/patches/mpv-CVE-2018-6360-2.patch @@ -0,0 +1,59 @@ +Fix CVE-2018-6360: + +https://github.com/mpv-player/mpv/issues/5456 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6360 +https://security-tracker.debian.org/tracker/CVE-2018-6360 + +Patch copied from upstream source repository: + +https://github.com/mpv-player/mpv/commit/f8263e82cc74a9ac6530508bec39c7b0dc02568f + +From f8263e82cc74a9ac6530508bec39c7b0dc02568f Mon Sep 17 00:00:00 2001 +From: Ricardo Constantino +Date: Fri, 26 Jan 2018 11:26:27 +0000 +Subject: [PATCH] ytdl_hook: move url_is_safe earlier in code + +lua isn't javascript. +--- + player/lua/ytdl_hook.lua | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua +index b480c21625..458c94af38 100644 +--- a/player/lua/ytdl_hook.lua ++++ b/player/lua/ytdl_hook.lua +@@ -84,6 +84,15 @@ local function edl_escape(url) + return "%" .. string.len(url) .. "%" .. url + end + ++local function url_is_safe(url) ++ local proto = type(url) == "string" and url:match("^(.+)://") or nil ++ local safe = proto and safe_protos[proto] ++ if not safe then ++ msg.error(("Ignoring potentially unsafe url: '%s'"):format(url)) ++ end ++ return safe ++end ++ + local function time_to_secs(time_string) + local ret + +@@ -223,15 +232,6 @@ local function proto_is_dash(json) + or json["protocol"] == "http_dash_segments" + end + +-local function url_is_safe(url) +- local proto = type(url) == "string" and url:match("^(.+)://") or nil +- local safe = proto and safe_protos[proto] +- if not safe then +- msg.error(("Ignoring potentially unsafe url: '%s'"):format(url)) +- end +- return safe +-end +- + local function add_single_video(json) + local streamurl = "" + local max_bitrate = 0 +-- +2.16.1 + diff --git a/gnu/packages/patches/mpv-CVE-2018-6360-3.patch b/gnu/packages/patches/mpv-CVE-2018-6360-3.patch new file mode 100644 index 0000000000..dc3e272d37 --- /dev/null +++ b/gnu/packages/patches/mpv-CVE-2018-6360-3.patch @@ -0,0 +1,84 @@ +Fix CVE-2018-6360: + +https://github.com/mpv-player/mpv/issues/5456 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6360 +https://security-tracker.debian.org/tracker/CVE-2018-6360 + +Patch copied from upstream source repository: + +https://github.com/mpv-player/mpv/commit/ce42a965330dfeb7d2f6c69ea42d35454105c828 + +From ce42a965330dfeb7d2f6c69ea42d35454105c828 Mon Sep 17 00:00:00 2001 +From: Ricardo Constantino +Date: Fri, 26 Jan 2018 18:54:17 +0000 +Subject: [PATCH] ytdl_hook: fix safe url checking with EDL urls + +--- + player/lua/ytdl_hook.lua | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua +index 458c94af38..6c8e78657d 100644 +--- a/player/lua/ytdl_hook.lua ++++ b/player/lua/ytdl_hook.lua +@@ -264,18 +264,17 @@ local function add_single_video(json) + edl_track = edl_track_joined(track.fragments, + track.protocol, json.is_live, + track.fragment_base_url) +- local url = edl_track or track.url +- if not url_is_safe(url) then ++ if not edl_track and not url_is_safe(track.url) then + return + end + if track.acodec and track.acodec ~= "none" then + -- audio track + mp.commandv("audio-add", +- url, "auto", ++ edl_track or track.url, "auto", + track.format_note or "") + elseif track.vcodec and track.vcodec ~= "none" then + -- video track +- streamurl = url ++ streamurl = edl_track or track.url + end + end + +@@ -284,6 +283,9 @@ local function add_single_video(json) + edl_track = edl_track_joined(json.fragments, json.protocol, + json.is_live, json.fragment_base_url) + ++ if not edl_track and not url_is_safe(json.url) then ++ return ++ end + -- normal video or single track + streamurl = edl_track or json.url + set_http_headers(json.http_headers) +@@ -294,13 +296,7 @@ local function add_single_video(json) + + msg.debug("streamurl: " .. streamurl) + +- streamurl = streamurl:gsub("^data:", "data://", 1) +- +- if not url_is_safe(streamurl) then +- return +- end +- +- mp.set_property("stream-open-filename", streamurl) ++ mp.set_property("stream-open-filename", streamurl:gsub("^data:", "data://", 1)) + + mp.set_property("file-local-options/force-media-title", json.title) + +@@ -499,6 +495,10 @@ mp.add_hook(o.try_ytdl_first and "on_load" or "on_load_fail", 10, function () + + msg.debug("EDL: " .. playlist) + ++ if not playlist then ++ return ++ end ++ + -- can't change the http headers for each entry, so use the 1st + if json.entries[1] then + set_http_headers(json.entries[1].http_headers) +-- +2.16.1 + diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8cbe590bf2..5865713b85 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2015 Andy Patterson ;;; Copyright © 2015 Ricardo Wurmus -;;; Copyright © 2015, 2016, 2017 Alex Vong +;;; Copyright © 2015, 2016, 2017, 2018 Alex Vong ;;; Copyright © 2016, 2017 Alex Griffin ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2016 Dmitry Nikolaev @@ -1018,6 +1018,9 @@ (define-public mpv (sha256 (base32 "1d2p6k3y9lqx8bpdal4grrj8ljy7pvd8qgdq8004fmr38afmbb7f")) + (patches (search-patches "mpv-CVE-2018-6360-1.patch" + "mpv-CVE-2018-6360-2.patch" + "mpv-CVE-2018-6360-3.patch")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs From f0c8b50f0ad97b593c92a726512c2bcccea844f4 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 8 Feb 2018 17:37:10 -0500 Subject: [PATCH 84/90] gnu: linux-libre@4.14: Update to 4.14.18. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.18. (%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 303a85c7fd..642e56b7b7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -391,8 +391,8 @@ (define-public linux-libre %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.17") -(define %linux-libre-4.14-hash "05z4v1v4aj8hcwgn7iljp8iclk3ikf1b57k8a8baym3dd9js6aan") +(define %linux-libre-4.14-version "4.14.18") +(define %linux-libre-4.14-hash "1kl6zc9dzi02hzxwmzskxb4cqh5lph4afy94677bj5ribanmizn5") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version From bf4075cd9c3fd5380d18b9ecd92c1d9ef331ac12 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 8 Feb 2018 17:38:15 -0500 Subject: [PATCH 85/90] gnu: linux-libre: Update to 4.15.2. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.15.2. (%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 642e56b7b7..73aa35a19f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -382,8 +382,8 @@ (define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux")) ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.15.1") -(define %linux-libre-hash "1by90ghpk5qh79vgb0cfwab8c6ngciii9mvsya0gj5ijj90i6hwy") +(define %linux-libre-version "4.15.2") +(define %linux-libre-hash "0rzncbk513a8q60z9psb9yz7liadsb7nghj12s1kmwn441z1zv93") (define-public linux-libre (make-linux-libre %linux-libre-version From 2c433a16128b01b957bf196eefcacf3f5d4301a2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 8 Feb 2018 16:09:00 -0500 Subject: [PATCH 86/90] gnu: postgresql: Update to 10.2 [CVE-2018-{1052,1053}]. * gnu/packages/databases.scm (postgresql): Update to 10.2. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 31ed2cd203..a4d7f932c1 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -699,14 +699,14 @@ (define-public mariadb (define-public postgresql (package (name "postgresql") - (version "10.1") + (version "10.2") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "04z7lm4h94625vbncwv98svycqr942n3q47ailqaczkszqjlxjrw")))) + "1bav2iyi93h866skrrlqlvsp4sfv1sfww1s305zpzffxcadh0cpy")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-uuid=e2fs") From 3a9e65538a71a10f61b2f44b0e6b29acfc0aa1f2 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 8 Feb 2018 19:18:26 -0500 Subject: [PATCH 87/90] gnu: audacity: Update to 2.2.1. * gnu/packages/audio.scm (audacity): Update to 2.2.1. --- 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 bb4d363e51..eb11d6cc4e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -280,14 +280,14 @@ (define-public ardour (define-public audacity (package (name "audacity") - (version "2.2.0") + (version "2.2.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/audacity/audacity/archive" "/Audacity-" version ".tar.gz")) (sha256 - (base32 "09xpr4bjnainz1xmc35v3qg3dadjr9wv8bmn1p4y91aqyihnhjry")) + (base32 "1n05r8b4rnf9fas0py0is8cm97s3h65dgvqkk040aym5d1x6wd7z")) (patches (search-patches "audacity-build-with-system-portaudio.patch")) (modules '((guix build utils))) (snippet From e5fdc3348a8407cee6e8ca741d161e2cab422ef9 Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Sat, 9 Dec 2017 13:05:34 +0000 Subject: [PATCH 88/90] gnu: mu: Update to 1.0. * gnu/packages/mail.scm (mu): Update to 1.0. Signed-off-by: Leo Famulari --- gnu/packages/mail.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index fcb347238a..22c85745d9 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2017 Kyle Meyer ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Rene Saavedra +;;; Copyright © 2018 Pierre Langlois ;;; ;;; This file is part of GNU Guix. ;;; @@ -532,15 +533,15 @@ (define-public emacs-mew (define-public mu (package (name "mu") - (version "0.9.18") + (version "1.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/djcb/mu/releases/" - "download/" version "/mu-" - version ".tar.gz")) + "download/v" version "/mu-" + version ".tar.xz")) (sha256 (base32 - "02g82zvxfgn17wzy846bfxj0izjj7yklhwdnhwxy1y2kin4fqnb5")))) + "04x5azl19gszw2h7argq666gf9xs4hy9q7w9cbqxvy08n56xqsln")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From 63298f14c9679735c6c930e10b0e836666391f01 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 8 Feb 2018 18:11:59 -0500 Subject: [PATCH 89/90] gnu: mu: Use a fixed variant of tzdata for the mu tests. * gnu/packages/mail.scm (mu)[inputs]: Remove tzdata. [native-inputs]: Add tzdata-2017a. --- gnu/packages/mail.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 22c85745d9..b0bb590957 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -546,14 +546,14 @@ (define-public mu (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin") ; for gtester - ("emacs" ,emacs-minimal))) + ("emacs" ,emacs-minimal) + ("tzdata" ,tzdata-2017a))) ;for mu/test/test-mu-query.c ;; TODO: Add webkit and gtk to build the mug GUI. (inputs `(("xapian" ,xapian) ("guile" ,guile-2.2) ("glib" ,glib) - ("gmime" ,gmime) - ("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c + ("gmime" ,gmime))) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) From 8d0edc8246389c0f2bb1c8e9c9190c312746a4b4 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Thu, 8 Feb 2018 15:36:47 +0300 Subject: [PATCH 90/90] gnu: Add sipcalc. * gnu/packages/admin.scm (sipcalc): New public variable. --- gnu/packages/admin.scm | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 60fc41fe01..35e6b202b0 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -523,6 +523,50 @@ (define-public netcat would need and has several interesting built-in capabilities.") (license license:gpl2+))) +(define-public sipcalc + (package + (name "sipcalc") + (version "1.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.routemeister.net/projects" + "/sipcalc/files/sipcalc" "-" version ".tar.gz")) + (sha256 + (base32 + "0mv3wndj4z2bsshh2k8d5sy3j8wxzgf8mzmmkvj1k8gpcz37dm6g")))) + (build-system gnu-build-system) + (home-page "http://www.routemeister.net/projects/sipcalc/") + (synopsis "Command-line IP subnet calculator") + (description + "Sipcalc is an advanced command-line IP subnet calculator. It can take +multiple forms of input (IPv4/IPv6/interface/hostname) and output a multitude +of information about a given subnet. + +Features include: + +@itemize @bullet +@item IPv4 +@itemize +@item Retrieving of address information from interfaces. +@item Classfull and CIDR output. +@item Multiple address and netmask input and output formats (dotted quad, hex, +number of bits). +@item Output of broadcast address, network class, Cisco wildcard, +hosts/range, network range. +@item The ability to split a network based on a smaller netmask, now also with +recursive runs on the generated subnets. (also IPv6) +@end itemize +@item IPv6 +@itemize +@item Compressed and expanded input and output addresses. +@item Standard IPv6 network output. +@item v4 in v6 output. +@item Reverse DNS address generation. +@end itemize +@end itemize\n") + (license license:bsd-3))) + (define-public alive (package (name "alive")