From 5318b103ff277efbac248a066d162589a9083baa Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 30 Apr 2018 19:33:03 +0200 Subject: [PATCH 001/144] gnu: libepoxy: Update to 1.5.1. * gnu/packages/gl.scm (libepoxy): Update to 1.5.1. --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index db02d798f5..1b0399401c 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -556,7 +556,7 @@ OpenGL graphics API.") (define-public libepoxy (package (name "libepoxy") - (version "1.5.0") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append @@ -564,7 +564,7 @@ OpenGL graphics API.") version "/libepoxy-" version ".tar.xz")) (sha256 (base32 - "1md58amxyp34yjnw4xa185hw5jm0hnb2xnhdc28zdsx6k19rk52c")))) + "08674swkihsl2zll3fg91c96zarx0wlvskbby08zl4nx3cjzj9ds")))) (arguments `(#:phases (modify-phases %standard-phases From d54303215e93bb3c89a94daaa56324c703d717a1 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 30 Apr 2018 19:37:53 +0200 Subject: [PATCH 002/144] gnu: gtk+: Update to 3.22.30. * gnu/packages/gtk.scm (gtk+): Update to 3.22.30. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 97fccdc917..d2b0993747 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -659,7 +659,7 @@ application suites.") (name "gtk+") ;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in ;; mate.scm will also need to be updated. - (version "3.22.29") + (version "3.22.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -667,7 +667,7 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "1y5vzdbgww9l7xcrg13azff2rs94kggkywmpcsh39h7w76wn8zd0")) + "0rv5k8fyi2i19k4zncai6vf429s6zy3kncr8vb6f3m034z0sb951")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) (outputs '("out" "bin" "doc")) From cf0d6d836730f7bdc714ecfa4287f72e029b9970 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 30 Apr 2018 19:47:38 +0200 Subject: [PATCH 003/144] gnu: meson: Update to 0.46.0. * gnu/packages/build-tools.scm (meson): Update to 0.46.0. * gnu/packages/patches/meson-for-build-rpath.patch: Adapt. --- gnu/packages/build-tools.scm | 4 ++-- gnu/packages/patches/meson-for-build-rpath.patch | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 4b078e78ed..65d1bc3808 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -98,7 +98,7 @@ generate such a compilation database.") (define-public meson (package (name "meson") - (version "0.45.1") + (version "0.46.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -106,7 +106,7 @@ generate such a compilation database.") version ".tar.gz")) (sha256 (base32 - "1yqa4337nb8w92bvr91rsxmn0xkf7pmdybq9ljvnqmdvn7dv02sd")))) + "1w6bm43gy2swk3hmbarm0iv8m8yd8xm5jczsvfn8z2im3aq93pxp")))) (build-system python-build-system) (arguments `(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH diff --git a/gnu/packages/patches/meson-for-build-rpath.patch b/gnu/packages/patches/meson-for-build-rpath.patch index 4e20c9aed3..2151d53565 100644 --- a/gnu/packages/patches/meson-for-build-rpath.patch +++ b/gnu/packages/patches/meson-for-build-rpath.patch @@ -6,14 +6,13 @@ Patch by Peter Mikkelsen --- meson-0.42.0/mesonbuild/scripts/meson_install.py.orig 2017-09-09 01:49:39.147374148 +0200 +++ meson-0.42.0/mesonbuild/scripts/meson_install.py 2017-09-09 01:51:01.209134717 +0200 -@@ -345,15 +345,6 @@ +@@ -391,14 +391,6 @@ print("Symlink creation does not work on this platform. " "Skipping all symlinking.") printed_symlink_error = True -- if is_elf_platform() and os.path.isfile(outname): +- if os.path.isfile(outname): - try: -- e = depfixer.Elf(outname, False) -- e.fix_rpath(install_rpath) +- depfixer.fix_rpath(outname, install_rpath, False) - except SystemExit as e: - if isinstance(e.code, int) and e.code == 0: - pass From bba29e106b55152f70f7cec745e24bc077e9a797 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Mar 2018 18:48:27 +0100 Subject: [PATCH 004/144] gnu: girara: Update to 0.2.9. * gnu/packages/gtk.scm (girara): Update to 0.2.9. [build-system]: Switch to Meson build system. [arguments]: Trim accordingly. --- gnu/packages/gtk.scm | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index d2b0993747..de0f314f1a 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -41,6 +41,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system waf) @@ -1368,15 +1369,15 @@ and routines to assist in editing internationalized text.") (define-public girara (package (name "girara") - (version "0.2.8") + (version "0.2.9") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/girara/download/girara-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "18wss3sak3djip090v2vdbvq1mvkwcspfswc87zbvv3magihan98")))) + "0lkxrfna818wkkr2f6mdzf15y5z8xl1b9592ylmzjbqsqya3w7x8")))) (native-inputs `(("pkg-config" ,pkg-config) ("check" ,check) ("gettext" ,gettext-minimal) @@ -1385,13 +1386,7 @@ and routines to assist in editing internationalized text.") ;; Listed in 'Requires.private' of 'girara.pc'. (propagated-inputs `(("gtk+" ,gtk+))) (arguments - `(#:make-flags - `(,(string-append "PREFIX=" (assoc-ref %outputs "out")) - "COLOR=0" "CC=gcc") - #:test-target "test" - #:disallowed-references (,xorg-server-1.19.3) - #:phases (modify-phases %standard-phases - (delete 'configure) + `(#:phases (modify-phases %standard-phases (add-before 'check 'start-xserver ;; Tests require a running X server. (lambda* (#:key inputs #:allow-other-keys) @@ -1407,7 +1402,7 @@ and routines to assist in editing internationalized text.") (setenv "DBUS_FATAL_WARNINGS" "0") (zero? (system (string-append xorg-server "/bin/Xvfb " display " &"))))))))) - (build-system gnu-build-system) + (build-system meson-build-system) (home-page "https://pwmt.org/projects/girara/") (synopsis "Library for minimalistic gtk+3 user interfaces") (description "Girara is a library that implements a user interface that From eb6a5dab5cf0f85fbc4eda4b6f7956eed464c3cf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Mar 2018 20:11:05 +0100 Subject: [PATCH 005/144] gnu: zathura: Update to 0.3.9. * gnu/packages/pdf.scm (zathura): Update to 0.3.9. [native-inputs]: Add python-sphinx. [build-system]: Switch to the Meson build system. [arguments]: Trim accordingly. --- gnu/packages/pdf.scm | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 84b53b00b4..633a344022 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017 Rene Saavedra -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,6 +37,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (gnu packages) @@ -464,21 +465,24 @@ by using the poppler rendering engine.") (define-public zathura (package (name "zathura") - (version "0.3.8") + (version "0.3.9") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura/download/zathura-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "0dz5pky3vmf3s2cp2rv1c099gb1s49p9xlgm3ghyy4pzyxc8bgs6")) + "0z09kz92a2n8qqv3cy8bx5j5k612g2f9mmh4szqlc7yvi39aax1g")) (patches (search-patches "zathura-plugindir-environment-variable.patch")))) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") + ;; For building documentation. + ("python-sphinx" ,python-sphinx) + ;; For tests. ("check" ,check) ("xorg-server" ,xorg-server-1.19.3))) @@ -490,15 +494,9 @@ by using the poppler rendering engine.") (list (search-path-specification (variable "ZATHURA_PLUGIN_PATH") (files '("lib/zathura"))))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags - `(,(string-append "PREFIX=" (assoc-ref %outputs "out")) - "CC=gcc" "COLOR=0") - #:test-target "test" - #:disallowed-references (,xorg-server-1.19.3) - #:phases (modify-phases %standard-phases - (delete 'configure) + `(#:phases (modify-phases %standard-phases (add-before 'check 'start-xserver ;; Tests require a running X server. (lambda* (#:key inputs #:allow-other-keys) From 02fcc6f240946cfd51bfe548e260b2f3150f0ab4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Mar 2018 20:29:46 +0100 Subject: [PATCH 006/144] gnu: zathura-cb: Update to 0.1.8. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/pdf.scm (zathura-cb): Update to 0.1.8. [build-system]: Switch to the Meson build system. [arguments]: Trim accordingly. Add a new ‘patch-plugin-directory’ phase. --- gnu/packages/pdf.scm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 633a344022..1054bc2fda 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -314,26 +314,32 @@ reading and editing of existing PDF files.") (define-public zathura-cb (package (name "zathura-cb") - (version "0.1.7") + (version "0.1.8") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-cb/download/zathura-cb-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "0r4viisycj39kaz4281cmkr7n9w5q96dmlf7nf45n8zq8qy2npw3")))) + "1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libarchive" ,libarchive) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ; Package does not contain tests. + `(#:tests? #f ; package does not contain tests #:phases - (modify-phases %standard-phases (delete 'configure)))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.1.8: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-cb/") (synopsis "Comic book support for zathura (libarchive backend)") (description "The zathura-cb plugin adds comic book support to zathura From 06dbfb5d197db7502ed65c1019e96f3f02c34b7a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Mar 2018 20:33:34 +0100 Subject: [PATCH 007/144] gnu: zathura-ps: Update to 0.2.6. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/pdf.scm (zathura-ps): Update to 0.2.6. [build-system]: Switch to the Meson build system. [arguments]: Trim accordingly. Add a new ‘patch-plugin-directory’ phase. --- gnu/packages/pdf.scm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 1054bc2fda..77d78bb805 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -349,26 +349,32 @@ using libarchive.") (define-public zathura-ps (package (name "zathura-ps") - (version "0.2.5") + (version "0.2.6") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-ps/download/zathura-ps-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "1x4knqja8pw2a5cb3y2209nr3iddj1z8nwasy48v5nprj61fdxqj")))) + "0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libspectre" ,libspectre) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ; Package does not contain tests. + `(#:tests? #f ; package does not contain tests #:phases - (modify-phases %standard-phases (delete 'configure)))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.2.6: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-ps/") (synopsis "PS support for zathura (libspectre backend)") (description "The zathura-ps plugin adds PS support to zathura From 7d475dd4ece966faae71323f309b65314b27a5a3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Mar 2018 20:37:01 +0100 Subject: [PATCH 008/144] gnu: zathura-djvu: Update to 0.2.8. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/pdf.scm (zathura-djvu): Update to 0.2.8. [build-system]: Switch to the Meson build system. [arguments]: Trim accordingly. Add a new ‘patch-plugin-directory’ phase. --- gnu/packages/pdf.scm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 77d78bb805..151143aa31 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -384,27 +384,33 @@ using libspectre.") (define-public zathura-djvu (package (name "zathura-djvu") - (version "0.2.7") + (version "0.2.8") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-djvu/download/zathura-djvu-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "1sbfdsyp50qc85xc4458sn4w1rv1qbygdwmcr5kjlfpsmdq98vhd")))) + "0axkv1crdxn0z44whaqp2ibkdqcykhjnxk7qzms0dp1b67an9rnh")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("djvulibre" ,djvulibre) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ; Package does not contain tests. + `(#:tests? #f ; package does not contain tests #:phases - (modify-phases %standard-phases (delete 'configure)))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.2.8: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-djvu/") (synopsis "DjVu support for zathura (DjVuLibre backend)") (description "The zathura-djvu plugin adds DjVu support to zathura From aac2006d8276ac7ed3876b879f1816e57379aa25 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Mar 2018 20:41:47 +0100 Subject: [PATCH 009/144] gnu: zathura-pdf-mupdf: Update to 0.3.3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/pdf.scm (zathura-pdf-mupdf): Update to 0.3.3. [build-system]: Switch to the Meson build system. [arguments]: Trim accordingly. Add a new ‘patch-plugin-directory’ phase. --- gnu/packages/pdf.scm | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 151143aa31..6ca1895aed 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -420,15 +420,15 @@ using the DjVuLibre library.") (define-public zathura-pdf-mupdf (package (name "zathura-pdf-mupdf") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-pdf-mupdf" - "/download/zathura-pdf-mupdf-" version ".tar.gz")) + "/download/zathura-pdf-mupdf-" version ".tar.xz")) (sha256 (base32 - "0xkajc3is7ncmb2fmymbzfgrran2bz12i7zsm1vvxhxds728h7ck")))) + "1zbdqimav4wfgimpy3nfzl10qj7vyv23rdy2z5z7z93jwbp2rc2j")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("jbig2dec" ,jbig2dec) @@ -437,13 +437,20 @@ using the DjVuLibre library.") ("openjpeg" ,openjpeg) ("openssl" ,openssl) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ;No tests. - #:phases (modify-phases %standard-phases (delete 'configure)))) + `(#:tests? #f ; package does not contain tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.3.3: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-pdf-mupdf/") (synopsis "PDF support for zathura (mupdf backend)") (description "The zathura-pdf-mupdf plugin adds PDF support to zathura From 0ed990530f08ceb1545a44b523661888f82a29a0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Mar 2018 20:45:22 +0100 Subject: [PATCH 010/144] gnu: zathura-pdf-poppler: Update to 0.2.9. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/pdf.scm (zathura-pdf-poppler): Update to 0.2.9. [build-system]: Switch to the Meson build system. [arguments]: Trim accordingly. Add a new ‘patch-plugin-directory’ phase. --- gnu/packages/pdf.scm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 6ca1895aed..048225a6ec 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -460,27 +460,33 @@ by using the @code{mupdf} rendering library.") (define-public zathura-pdf-poppler (package (name "zathura-pdf-poppler") - (version "0.2.8") + (version "0.2.9") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-pdf-poppler/download/zathura-pdf-poppler-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "1m55m7s7f8ng8a7lmcw9z4n5zv7xk4vp9n6fp9j84z6rk2imf7a2")))) + "1p4jcny0jniygns78mcf0nlm298dszh49qpmjmackrm6dq8hc25y")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("poppler" ,poppler) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ; Package does not include tests. + `(#:tests? #f ; package does not include tests #:phases - (modify-phases %standard-phases (delete 'configure)))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.2.9: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-pdf-poppler/") (synopsis "PDF support for zathura (poppler backend)") (description "The zathura-pdf-poppler plugin adds PDF support to zathura From db481977615de3ebf7faff16edb938d3461ca486 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 1 May 2018 15:42:29 +0200 Subject: [PATCH 011/144] gnu: mesa: Update to 18.0.2. * gnu/packages/gl.scm (mesa): Update to 18.0.2. [arguments]: Remove unused "s2tc" input from 'fix-dlopen-libnames phase. --- gnu/packages/gl.scm | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 1b0399401c..a29f6a5312 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -222,7 +222,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "17.3.8") + (version "18.0.2") (source (origin (method url-fetch) @@ -234,7 +234,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "1cd6a4ll5arla3kncxnw9196ak1v4rvnb098aa7lm3n4h7r9p7cg")) + "1cz7p4b4yy201djzv3s28zx27f5cqwv0zgzqp5lcaba8d2bibylq")) (patches (search-patches "mesa-wayland-egl-symbols-check-mips.patch" "mesa-skip-disk-cache-test.patch")))) @@ -337,15 +337,9 @@ also known as DXTn or DXTC) for Mesa.") (add-before 'build 'fix-dlopen-libnames (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((s2tc (assoc-ref inputs "s2tc")) - (out (assoc-ref outputs "out"))) + (let ((out (assoc-ref outputs "out"))) ;; Remain agnostic to .so.X.Y.Z versions while doing ;; the substitutions so we're future-safe. - (substitute* - '("src/gallium/auxiliary/util/u_format_s3tc.c" - "src/mesa/main/texcompress_s3tc.c") - (("\"libtxc_dxtn\\.so") - (string-append "\"" s2tc "/lib/libtxc_dxtn.so"))) (substitute* "src/glx/dri_common.c" (("dlopen\\(\"libGL\\.so") (string-append "dlopen(\"" out "/lib/libGL.so"))) From 87dc306bfe48469d33b4d0fa9d2ee7e66e56acbf Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 2 May 2018 13:23:30 +0200 Subject: [PATCH 012/144] gnu: libaio: Update to 0.3.111. * gnu/packages/linux.scm (libaio): Update to 0.3.111. [source]: Download from new home. [home-page]: Change to pagure.io/libaio. --- gnu/packages/linux.scm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 4ebdca3b57..d566b197ee 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2976,15 +2976,15 @@ Linux Device Mapper multipathing driver: (define-public libaio (package (name "libaio") - (version "0.3.110") + (version "0.3.111") (source (origin (method url-fetch) - (uri (list - (string-append "mirror://debian/pool/main/liba/libaio/" - name "_" version ".orig.tar.gz"))) - (sha256 - (base32 - "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0")))) + (uri (list + (string-append "https://releases.pagure.org/libaio/" + name "-" version ".tar.gz"))) + (sha256 + (base32 + "0ajhzbqjwsmz51gwccfyw6w9k4j4gmxcl2ph30sfn2gxv0d8gkv2")))) (build-system gnu-build-system) (arguments '(#:make-flags @@ -2992,7 +2992,7 @@ Linux Device Mapper multipathing driver: #:test-target "partcheck" ; need root for a full 'check' #:phases (modify-phases %standard-phases (delete 'configure)))) ; no configure script - (home-page "http://lse.sourceforge.net/io/aio.html") + (home-page "https://pagure.io/libaio") (synopsis "Linux-native asynchronous I/O access library") (description "This library enables userspace to use Linux kernel asynchronous I/O From 543689f3fdae7ec746817b44cae777408733b16f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 3 May 2018 16:37:42 +0200 Subject: [PATCH 013/144] gnu: python-mako: Update to 1.0.7. * gnu/packages/python.scm (python-mako): Update to 1.0.7. Signed-off-by: Rutger Helling --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a359eebd12..97b8ace869 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7652,14 +7652,14 @@ python-xdo for newer bindings.)") (define-public python-mako (package (name "python-mako") - (version "1.0.6") + (version "1.0.7") (source (origin (method url-fetch) (uri (pypi-uri "Mako" version)) (sha256 (base32 - "03dyxgjknp4ffsv7vwfd28l5bbpzi0ylp20543wpg3iahyyrwma8")))) + "1bi5gnr8r8dva06qpyx4kgjc6spm2k1y908183nbbaylggjzs0jf")))) (build-system python-build-system) (propagated-inputs `(("python-markupsafe" ,python-markupsafe))) From 6069bb0ab4ce5ff25d235288bc005b7ec55b75a1 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 5 May 2018 21:00:27 -0400 Subject: [PATCH 014/144] gnu: tzdata: Update to 2018e. * gnu/packages/base.scm (tzdata): Update to 2018e. --- gnu/packages/base.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 07ae4b70ae..41b4224e68 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1091,7 +1091,7 @@ command.") (define-public tzdata (package (name "tzdata") - (version "2018c") + (version "2018e") (source (origin (method url-fetch) (uri (string-append @@ -1099,7 +1099,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "1xik57rdi7kqa0wb5jbz7vyjyxpr88lw1g4kscj0ylpgnzjc6998")))) + "0bk97fv2i5ns42prpmlaadsswdjwv0ifi7whj2s4q6l44rcqwa3b")))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -1148,7 +1148,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "0rg6s1vlgwd8sjhla55hx2h5m2xbx0shm347pkbg4vsaz707zyii")))))) + "1kpb02631s58i068mwq63xlamcv1ffj4p6y4wpb9kdl01vr0qd6a")))))) (home-page "https://www.iana.org/time-zones") (synopsis "Database of current and historical time zones") (description "The Time Zone Database (often called tz or zoneinfo) From e0c9aed8206c455dde393d1a1c3e2ac4b3615c30 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 22 May 2018 18:06:28 +0200 Subject: [PATCH 015/144] gnu: mesa: Update to 18.0.4. * gnu/packages/gl.scm (mesa): Update to 18.0.4. [source]: Remove mesa-wayland-egl-symbols-check-mips.patch. [arguments]: Remove wayland from --with-platforms configure flag. * gnu/local.mk: Remove mesa-wayland-egl-symbols-check-mips.patch. * gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch: Remove file. --- gnu/local.mk | 1 - gnu/packages/gl.scm | 9 ++++----- .../mesa-wayland-egl-symbols-check-mips.patch | 15 --------------- 3 files changed, 4 insertions(+), 21 deletions(-) delete mode 100644 gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch diff --git a/gnu/local.mk b/gnu/local.mk index ec11b26632..1f55d3e794 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -914,7 +914,6 @@ dist_patch_DATA = \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \ %D%/packages/patches/mesa-skip-disk-cache-test.patch \ - %D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch \ %D%/packages/patches/meson-for-build-rpath.patch \ %D%/packages/patches/metabat-fix-compilation.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index a29f6a5312..4d6cd705c3 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -222,7 +222,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "18.0.2") + (version "18.0.4") (source (origin (method url-fetch) @@ -234,10 +234,9 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "1cz7p4b4yy201djzv3s28zx27f5cqwv0zgzqp5lcaba8d2bibylq")) + "03wjlb5qy1mn8d6zm0q1pq35x60agrfxyh9bmq6w59ghrvkwyfqz")) (patches - (search-patches "mesa-wayland-egl-symbols-check-mips.patch" - "mesa-skip-disk-cache-test.patch")))) + (search-patches "mesa-skip-disk-cache-test.patch")))) (build-system gnu-build-system) (propagated-inputs `(("glproto" ,glproto) @@ -285,7 +284,7 @@ also known as DXTn or DXTC) for Mesa.") '("--with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, ;; omx requires libomxil-bellagio - "--with-platforms=x11,drm,wayland,surfaceless" + "--with-platforms=x11,drm,surfaceless" "--enable-glx-tls" ;Thread Local Storage, improves performance ;; "--enable-opencl" ;; "--enable-omx" diff --git a/gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch b/gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch deleted file mode 100644 index aa2278697e..0000000000 --- a/gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch +++ /dev/null @@ -1,15 +0,0 @@ -Fix 'wayland-egl-symbols-check' on mips64el-linux, where an additional symbol -(_ftext) is present in libwayland-egl.so. - -Patch by Mark H Weaver - ---- mesa-12.0.1/src/egl/wayland/wayland-egl/wayland-egl-symbols-check.orig 2016-01-18 02:39:25.000000000 -0500 -+++ mesa-12.0.1/src/egl/wayland/wayland-egl/wayland-egl-symbols-check 2016-10-24 16:25:07.110721426 -0400 -@@ -7,6 +7,7 @@ - wl_egl_window_destroy - wl_egl_window_get_attached_size - _fini -+_ftext - _init - EOF - done) From 68adf4a840b200a585f5428cc3657cba117ba9a6 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 24 May 2018 12:51:55 +0200 Subject: [PATCH 016/144] gnu: wayland-protocols: Update to 1.14. * gnu/packages/freedesktop.scm (wayland-protocols): Update to 1.14. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 05b12789af..8a0ddd4b57 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -468,7 +468,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public wayland-protocols (package (name "wayland-protocols") - (version "1.13") + (version "1.14") (source (origin (method url-fetch) (uri (string-append @@ -476,7 +476,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "wayland-protocols-" version ".tar.xz")) (sha256 (base32 - "0f4gqvmz53q9d8h0ilhf4z773nb4vskzx11a3d1jycym120bqn07")))) + "1xknjcfhqvdi1s4iq4kk1q61fg2rar3g8q4vlqarpd324imqjj4n")))) (build-system gnu-build-system) (inputs `(("wayland" ,wayland))) From a3be2ac9f95c632a6d5f20790b8b2f6450d6f6e7 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 24 May 2018 14:06:47 +0200 Subject: [PATCH 017/144] gnu: xorg-server: Update to 1.20.0. * gnu/packages/xorg.scm (xorg-server): Update to 1.20.0. --- 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 1e427941d5..32c930326e 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5090,7 +5090,7 @@ over Xlib, including: (define-public xorg-server (package (name "xorg-server") - (version "1.19.6") + (version "1.20.0") (source (origin (method url-fetch) @@ -5099,7 +5099,7 @@ over Xlib, including: name "-" version ".tar.bz2")) (sha256 (base32 - "15y13ihgkggmly5s07vzvpn35gzx1w0hrkbnlcvcy05h3lpm0cm7")) + "1rnka3sp8yg2bir0bjjhwn33jikj8qd8ckqcxrs94w05bwc7v5lx")) (patches (list ;; See: From fa497c73acb1b8307ebb81ef8acd4de1a2e4fde9 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 24 May 2018 23:49:58 +0200 Subject: [PATCH 018/144] gnu: libdrm: Update to 2.4.92. * gnu/packages/xdisorg.scm (libdrm): Update to 2.4.92. --- gnu/packages/xdisorg.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 2309596f6b..c94d57fc01 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -22,6 +22,7 @@ ;;; Copyright © 2017 Marek Benc ;;; Copyright © 2017 Mike Gerwitz ;;; Copyright © 2018 Thomas Sigurdsen +;;; Copyright © 2018 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -320,7 +321,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.91") + (version "2.4.92") (source (origin (method url-fetch) @@ -330,7 +331,7 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "0068dn47c478vm1lyyhy02gilrpsma0xmcblhvs0dzqyrk80wjk3")) + "1yirzx8hmlvv6r0l7lb3zxmgy5la2mri9al0k16xqfg19pdqzr79")) (patches (search-patches "libdrm-symbol-check.patch")))) (build-system gnu-build-system) (arguments From 7e0f04635b942e572ee2fed8ddb756b047117265 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 18 May 2018 16:07:17 +0200 Subject: [PATCH 019/144] gnu: postgresql: Update to 10.4 [fixes CVE-2018-1115]. * gnu/packages/databases.scm (postgresql): Update to 10.4. --- 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 f54fec6420..c902100464 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -704,14 +704,14 @@ as a drop-in replacement of MySQL.") (define-public postgresql (package (name "postgresql") - (version "10.3") + (version "10.4") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "06lkcwsf851z49zqcws5yc77s2yrbaazf2nvbk38hpp31rw6i8kf")))) + "0j000bcs9w8wrllg8m7j1lxsd3n2x0yzkack5p35cmxx20iq2q0v")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-uuid=e2fs") From 1fbad3ad224a92c8e2562b4f16ec20d8e9615fac Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 18 May 2018 16:06:24 +0200 Subject: [PATCH 020/144] gnu: postgresql: Use INVOKE. * gnu/packages/databases.scm (postgresql)[arguments]: Substitute INVOKE for SYSTEM*. --- 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 c902100464..08e97453f9 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -726,10 +726,10 @@ as a drop-in replacement of MySQL.") #t)) (add-after 'build 'build-contrib (lambda _ - (zero? (system* "make" "-C" "contrib")))) + (invoke "make" "-C" "contrib"))) (add-after 'install 'install-contrib (lambda _ - (zero? (system* "make" "-C" "contrib" "install"))))))) + (invoke "make" "-C" "contrib" "install")))))) (inputs `(("readline" ,readline) ("libuuid" ,util-linux) From a06e52279a223ff2d132e5ecefc0ebe73f51d4d7 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sat, 26 May 2018 01:16:08 +0200 Subject: [PATCH 021/144] gnu: mesa: Restore wayland platform. * gnu/packages/gl.scm (mesa)[arguments]: Restore wayland to --with-platforms for now, since Wayland-EGL doesn't work properly without it. --- gnu/packages/gl.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 4d6cd705c3..323d279ea0 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -284,7 +284,7 @@ also known as DXTn or DXTC) for Mesa.") '("--with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, ;; omx requires libomxil-bellagio - "--with-platforms=x11,drm,surfaceless" + "--with-platforms=x11,drm,surfaceless,wayland" "--enable-glx-tls" ;Thread Local Storage, improves performance ;; "--enable-opencl" ;; "--enable-omx" From 0b5c2fc338ba0e37679afb9964700219b06498d8 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 28 May 2018 01:28:00 +0200 Subject: [PATCH 022/144] gnu: doxygen: Update to 1.8.14. * gnu/packages/documentation.scm (doxygen): Update to 1.8.14. --- gnu/packages/documentation.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index eebd38243b..15f34210ef 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -123,14 +123,14 @@ markup) can be customized and extended by the user.") (define-public doxygen (package (name "doxygen") - (version "1.8.13") + (version "1.8.14") (source (origin (method url-fetch) (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/" name "-" version ".src.tar.gz")) (sha256 (base32 - "0srzawqn3apzrg8hwycwrawdylmmjrndij4spw6xr1vspn3phrmg")) + "0kcxymbam9jwiyjwyvwdjj0h74lbb6c467szsipzbxjyfl17wxfi")) (patches (search-patches "doxygen-test.patch")))) (build-system cmake-build-system) (native-inputs From 91d84ac898f7e09cc17f869ef6d56232db013625 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 5 Jun 2018 16:34:33 +0200 Subject: [PATCH 023/144] gnu: libinput: Update to 1.11.0. * gnu/packages/freedesktop.scm (libinput): Update to 1.11.0. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 8a0ddd4b57..af35d077e2 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -146,14 +146,14 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.10.3") + (version "1.11.0") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" name "-" version ".tar.xz")) (sha256 (base32 - "0002xk9cqzpqrlhgav1wp8nimsbp9d2w8rd8mgygczq2hjar0lhd")))) + "04mwl1v51b785h7q3v23hahr0qzr48qq1jzj7d3msjvgh97nr8v4")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false"))) From 9a1f92a6e02c28767cc77437ba29fb82271652c4 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 7 Jun 2018 08:02:52 +0200 Subject: [PATCH 024/144] gnu: mesa: Update to 18.0.5. * gnu/packages/gl.scm (mesa): Update to 18.0.5. --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 323d279ea0..32abff9452 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -222,7 +222,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "18.0.4") + (version "18.0.5") (source (origin (method url-fetch) @@ -234,7 +234,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "03wjlb5qy1mn8d6zm0q1pq35x60agrfxyh9bmq6w59ghrvkwyfqz")) + "0szwqjr5x2q4r6gcwb862s18wl4s0z34w4rd0vr7isiasylbp1si")) (patches (search-patches "mesa-skip-disk-cache-test.patch")))) (build-system gnu-build-system) From 77c74789d4ce7b8201f947cb688b80efe7a774ec Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 7 Jun 2018 23:36:19 +0200 Subject: [PATCH 025/144] gnu: xf86-video-mach64: Update to 6.9.6. * gnu/packages/xorg.scm (xf86-video-mach64): Update to 6.9.6. --- 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 32c930326e..124739f930 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2942,7 +2942,7 @@ It supports a variety of Intel graphics chipsets.") (define-public xf86-video-mach64 (package (name "xf86-video-mach64") - (version "6.9.5") + (version "6.9.6") (source (origin (method url-fetch) @@ -2952,7 +2952,7 @@ It supports a variety of Intel graphics chipsets.") ".tar.bz2")) (sha256 (base32 - "07xlf5nsjm0x18ij5gyy4lf8hwpl10i8chi3skpqjh84drdri61y")) + "171wg8r6py1l138s58rlapin3rlpwsg9spmvhc7l68mm3g3hf1vs")) (patches (search-patches "xf86-video-mach64-glibc-2.20.patch")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) From bd1efded37107cfffe69cc7e9730acf8ba2957a7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 11 Jun 2018 23:06:32 +0200 Subject: [PATCH 026/144] gnu: xkbcomp: Update to 1.4.2. * gnu/packages/xorg.scm (xkbcomp-intermediate): Update to 1.4.2. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 124739f930..2d569d3962 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3707,7 +3707,7 @@ alternative implementations like XRandR or TwinView.") (define xkbcomp-intermediate ; used as input for xkeyboard-config (package (name "xkbcomp-intermediate") - (version "1.4.1") + (version "1.4.2") (source (origin (method url-fetch) @@ -3717,7 +3717,7 @@ alternative implementations like XRandR or TwinView.") ".tar.bz2")) (sha256 (base32 - "0djp7bb0ch2ddwmc1bkg4fddxdvamiiz375x0r0ni5dcb37w93bl")))) + "0944rrkkf0dxp07vhh9yr4prslxhqyw63qmbjirbv1bypswvrn3d")))) (build-system gnu-build-system) (inputs `(("xproto" ,xproto) From 4bbd92076af9fedc99b9369151e067db653869d0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 11 Jun 2018 23:33:03 +0200 Subject: [PATCH 027/144] gnu: libdmx: Update to 1.1.4. * gnu/packages/xorg.scm (libdmx): Update to 1.1.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 2d569d3962..bb0ca6f45c 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -999,7 +999,7 @@ of new capabilities and controls for text keyboards.") (define-public libdmx (package (name "libdmx") - (version "1.1.3") + (version "1.1.4") (source (origin (method url-fetch) @@ -1009,7 +1009,7 @@ of new capabilities and controls for text keyboards.") ".tar.bz2")) (sha256 (base32 - "00djlxas38kbsrglcmwmxfbmxjdchlbj95pqwjvdg8jn5rns6zf9")))) + "0hvjfhrcym770cr0zpqajdy3cda30aiwbjzv16iafkqkbl090gr5")))) (build-system gnu-build-system) (inputs `(("xextproto" ,xextproto) From e688bfc033160e0f614bf99f3c74dcb34b427d20 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 11 Jun 2018 23:39:00 +0200 Subject: [PATCH 028/144] gnu: libepoxy: Update to 1.5.2. * gnu/packages/gl.scm (libepoxy): Update to 1.5.2. --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 32abff9452..f38ad83f95 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -549,7 +549,7 @@ OpenGL graphics API.") (define-public libepoxy (package (name "libepoxy") - (version "1.5.1") + (version "1.5.2") (source (origin (method url-fetch) (uri (string-append @@ -557,7 +557,7 @@ OpenGL graphics API.") version "/libepoxy-" version ".tar.xz")) (sha256 (base32 - "08674swkihsl2zll3fg91c96zarx0wlvskbby08zl4nx3cjzj9ds")))) + "1n57xj5i6giw4mp5s59w1m9bm33sd6gjg7r00dzzvcwya6326mm9")))) (arguments `(#:phases (modify-phases %standard-phases From ffc43471afa6da50e02a12433ea9626aea586f35 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 11 Jun 2018 23:40:50 +0200 Subject: [PATCH 029/144] gnu: meson: Update to 0.46.1. * gnu/packages/build-tools.scm (meson): Update to 0.46.1. --- gnu/packages/build-tools.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 65d1bc3808..aa4b28c9ca 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -98,7 +98,7 @@ generate such a compilation database.") (define-public meson (package (name "meson") - (version "0.46.0") + (version "0.46.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -106,7 +106,7 @@ generate such a compilation database.") version ".tar.gz")) (sha256 (base32 - "1w6bm43gy2swk3hmbarm0iv8m8yd8xm5jczsvfn8z2im3aq93pxp")))) + "0y7f5hhy16q99l7x06x8sid9p9dbg6d7i60zs7c07cz5ww1plj8r")))) (build-system python-build-system) (arguments `(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH From b5724230fed2d043206df20d12a45bb962b7ee77 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 11 Jun 2018 23:43:27 +0200 Subject: [PATCH 030/144] gnu: bluez: Update to 5.50. * gnu/packages/linux.scm (bluez): Update to 5.50. --- 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 d566b197ee..b40f6d0dd6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3026,7 +3026,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (define-public bluez (package (name "bluez") - (version "5.49") + (version "5.50") (source (origin (method url-fetch) (uri (string-append @@ -3034,7 +3034,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") version ".tar.xz")) (sha256 (base32 - "15ffsaz7l3fgdg03l7g1xx9jw7xgs6pc548zxqsxawsca5x1sc1k")))) + "048r91vx9gs5nwwbah2s0xig04nwk14c5s0vb7qmaqdvighsmz2z")))) (build-system gnu-build-system) (arguments `(#:configure-flags From cd50b9f00974da9dda6bcde5ee33ffc6cf042587 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 12 Jun 2018 00:05:18 +0200 Subject: [PATCH 031/144] gnu: tzdata-for-tests: Downgrade to 2018d. * gnu/packages/base.scm (tzdata-for-tests): Don't inherit source and inputs from TZDATA. --- gnu/packages/base.scm | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 4ac11ac3d6..dfd9817e2d 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2016, 2018 Alex Vong ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017 Mathieu Othacehe -;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017, 2018 Marius Bakke ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ricardo Wurmus @@ -1194,7 +1194,25 @@ and daylight-saving rules.") ;;; will typically be obsolete and should never be referred to by a built ;;; package. (define-public tzdata-for-tests - (hidden-package tzdata)) + (hidden-package + (package + (inherit tzdata) + (version "2018d") + (source (origin + (method url-fetch) + (uri (string-append "https://www.iana.org/time-zones/repository" + "/releases/tzdata" version ".tar.gz")) + (sha256 + (base32 + "0m6020dnk9r40z7k36jp13fa06xip3hn0fdx3nly66jzxgffs1ji")))) + (inputs `(("tzcode" ,(origin + (method url-fetch) + (uri (string-append + "http://www.iana.org/time-zones/repository/releases/tzcode" + version ".tar.gz")) + (sha256 + (base32 + "1nd882yhsazmcfqmcqyfig3axycryl30gmizgqhqsx5dpa2lxr3x"))))))))) (define-public libiconv (package From faccae1c3769c90694c2b7eee0e4e9ab53049a8f Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 12 Jun 2018 16:03:29 +0200 Subject: [PATCH 032/144] gnu: mesa: Update to 18.1.1. * gnu/packages/gl.scm (mesa): Update to 18.1.1. [inputs]: Change llvm-3.9.1 to llvm. [arguments]: Remove substitution for removed file. --- gnu/packages/gl.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 1630f46bea..30dd9a18fa 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -224,7 +224,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "18.0.5") + (version "18.1.1") (source (origin (method url-fetch) @@ -236,7 +236,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "0szwqjr5x2q4r6gcwb862s18wl4s0z34w4rd0vr7isiasylbp1si")) + "10bp1m1avf4ab329f09k71w3c0d4wfw0icknfjj19b2svqp2lcfk")) (patches (search-patches "mesa-skip-disk-cache-test.patch")))) (build-system gnu-build-system) @@ -259,7 +259,7 @@ also known as DXTn or DXTC) for Mesa.") ("libxvmc" ,libxvmc) ,@(match (%current-system) ((or "x86_64-linux" "i686-linux") - `(("llvm" ,llvm-3.9.1))) ; exactly 3.9.0 or 3.9.1 for swrast + `(("llvm" ,llvm))) (_ `())) ("makedepend" ,makedepend) @@ -327,8 +327,6 @@ also known as DXTn or DXTC) for Mesa.") (add-after 'unpack 'patch-create_test_cases (lambda _ - (substitute* "src/compiler/glsl/tests/lower_jumps/create_test_cases.py" - (("/usr/bin/env bash") (which "bash"))) (substitute* "src/intel/genxml/gen_pack_header.py" (("/usr/bin/env python2") (which "python"))) #t)) From a8ef66f94d06087a7f9a6531e41f4395397921e3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 13 Jun 2018 19:36:53 +0300 Subject: [PATCH 033/144] gnu: mesa: Build tegra driver on arm systems. * gnu/packages/gl.scm (mesa)[arguments]: Add 'tegra' to the gallium-drivers list for armhf-linux and aarch64-linux. --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 30dd9a18fa..eb4e58715e 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -275,10 +275,10 @@ also known as DXTn or DXTC) for Mesa.") '(,@(match (%current-system) ("armhf-linux" ;; TODO: Add etnaviv,imx when libdrm supports etnaviv. - '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,vc4,virgl")) + '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,tegra,vc4,virgl")) ("aarch64-linux" ;; TODO: Fix svga driver for aarch64 and armhf. - '("--with-gallium-drivers=freedreno,nouveau,pl111,r300,r600,swrast,vc4,virgl")) + '("--with-gallium-drivers=freedreno,nouveau,pl111,r300,r600,swrast,tegra,vc4,virgl")) (_ '("--with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, From a1a3b25dfe9ca3621d894b337c4b5fcef10ddc8f Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Thu, 14 Jun 2018 01:29:08 +0200 Subject: [PATCH 034/144] gnu: custom-gcc: Fix regex used for matching executables. Fixes . * gnu/packages/gcc.scm (custom-gcc)[arguments]: Fix regex used for matching broken or conflicting executables. Signed-off-by: Danny Milosavljevic --- gnu/packages/gcc.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5012d9a913..130c212669 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -612,7 +612,7 @@ as the 'native-search-paths' field." (lambda* (#:key outputs #:allow-other-keys) (for-each delete-file (find-files (string-append (assoc-ref outputs "out") "/bin") - ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc.*)")) + ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")) #t)))))))) (define %generic-search-paths From 3e3fa14faa12483abc63b4f61b55fa3fa30a9491 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sat, 16 Jun 2018 09:35:01 +0200 Subject: [PATCH 035/144] gnu: mesa: Update to 18.1.2. * gnu/packages/gl.scm (mesa): Update to 18.1.2. --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index eb4e58715e..bde6e55607 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -224,7 +224,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "18.1.1") + (version "18.1.2") (source (origin (method url-fetch) @@ -236,7 +236,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "10bp1m1avf4ab329f09k71w3c0d4wfw0icknfjj19b2svqp2lcfk")) + "1ydivzm4c2k53b65lvm11d62z140xlmd7viw63bl5cm5idjg02q7")) (patches (search-patches "mesa-skip-disk-cache-test.patch")))) (build-system gnu-build-system) From cded3a759356ff66b7df668bcdbdfa0daf96f4c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= Date: Mon, 11 Jun 2018 13:40:31 +0200 Subject: [PATCH 036/144] gnu: ant-bootstrap: Make build reproducible. * gnu/packages/java.scm (ant-bootstrap)[arguments]<#:phases>[strip-jar-timestamps]: New phase to reset jar file timestamps. <#:imported-modules>: Import guix build syscalls, gnu-build-system-modules. <#:modules>: Import guix build: gnu-build-system, utils, syscalls. [native-inputs]: Add unzip, zip. --- gnu/packages/java.scm | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 678cbee188..8390016e85 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -212,7 +212,13 @@ JNI.") "1cg0lga887qz5iizh6mlkxp01lciymrhmp7wzxpl6zpnldxmzrjx")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no "check" target + `(#:imported-modules ((guix build syscalls) + ,@%gnu-build-system-modules) + #:modules ((srfi srfi-1) + (guix build gnu-build-system) + (guix build utils) + (guix build syscalls)) + #:tests? #f ; no "check" target #:phases (modify-phases %standard-phases (delete 'bootstrap) @@ -254,10 +260,42 @@ JNI.") (zero? (system* "bash" "bootstrap.sh" (string-append "-Ddist.dir=" (assoc-ref %outputs "out")))))) + (add-after 'build 'strip-jar-timestamps ;based on ant-build-system + (lambda* (#:key outputs #:allow-other-keys) + (define (repack-archive jar) + (let* ((dir (mkdtemp! "jar-contents.XXXXXX")) + (manifest (string-append dir "/META-INF/MANIFESTS.MF"))) + (with-directory-excursion dir + (invoke "unzip" jar)) + (delete-file jar) + ;; XXX: copied from (gnu build install) + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files dir #:directories? #t)) + ;; It is important that the manifest appears first. + (with-directory-excursion dir + (let* ((files (find-files "." ".*" #:directories? #t)) + ;; To ensure that the reference scanner can + ;; detect all store references in the jars + ;; we disable compression with the "-0" option. + (command (if (file-exists? manifest) + `("zip" "-0" "-X" ,jar ,manifest + ,@files) + `("zip" "-0" "-X" ,jar ,@files)))) + (apply invoke command))))) + (for-each repack-archive + (find-files + (string-append (assoc-ref %outputs "out") "/lib") + "\\.jar$")) + #t)) (delete 'install)))) (native-inputs `(("jikes" ,jikes) - ("jamvm" ,jamvm-1-bootstrap))) + ("jamvm" ,jamvm-1-bootstrap) + ("unzip" ,unzip) + ("zip", zip))) (home-page "http://ant.apache.org") (synopsis "Build tool for Java") (description From d7ee90fe906aacb7f0bb1513195a1457970fd19d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 16 Jun 2018 12:20:32 +0200 Subject: [PATCH 037/144] build-system/ant: Unconditionally return #t in build phases. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/build/ant-build-system.scm (unpack, build, strip-jar-timestamps, check, install): Use invoke. Signed-off-by: Gábor Boskovits --- guix/build/ant-build-system.scm | 76 ++++++++++++++++----------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index d081a2b313..3ed12b9f4e 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016, 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -150,7 +150,8 @@ to the default GNU unpack strategy." (begin (mkdir "src") (with-directory-excursion "src" - (zero? (system* "jar" "-xf" source)))) + (invoke "jar" "-xf" source)) + #t) ;; Use GNU unpack strategy for things that aren't jar archives. ((assq-ref gnu:%standard-phases 'unpack) #:source source))) @@ -171,7 +172,7 @@ to the default GNU unpack strategy." (define* (build #:key (make-flags '()) (build-target "jar") #:allow-other-keys) - (zero? (apply system* `("ant" ,build-target ,@make-flags)))) + (apply invoke `("ant" ,build-target ,@make-flags))) (define* (generate-jar-indices #:key outputs #:allow-other-keys) "Generate file \"META-INF/INDEX.LIST\". This file does not use word wraps @@ -194,50 +195,49 @@ repack them. This is necessary to ensure that archives are reproducible." (format #t "repacking ~a\n" jar) (let* ((dir (mkdtemp! "jar-contents.XXXXXX")) (manifest (string-append dir "/META-INF/MANIFEST.MF"))) - (and (with-directory-excursion dir - (zero? (system* "jar" "xf" jar))) - (delete-file jar) - ;; XXX: copied from (gnu build install) - (for-each (lambda (file) - (let ((s (lstat file))) - (unless (eq? (stat:type s) 'symlink) - (utime file 0 0 0 0)))) - (find-files dir #:directories? #t)) + (with-directory-excursion dir + (invoke "jar" "xf" jar)) + (delete-file jar) + ;; XXX: copied from (gnu build install) + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files dir #:directories? #t)) - ;; The jar tool will always set the timestamp on the manifest file - ;; and the containing directory to the current time, even when we - ;; reuse an existing manifest file. To avoid this we use "zip" - ;; instead of "jar". It is important that the manifest appears - ;; first. - (with-directory-excursion dir - (let* ((files (find-files "." ".*" #:directories? #t)) - ;; To ensure that the reference scanner can detect all - ;; store references in the jars we disable compression - ;; with the "-0" option. - (command (if (file-exists? manifest) - `("zip" "-0" "-X" ,jar ,manifest ,@files) - `("zip" "-0" "-X" ,jar ,@files)))) - (unless (zero? (apply system* command)) - (error "'zip' failed")))) - (utime jar 0 0) - #t))) + ;; The jar tool will always set the timestamp on the manifest file + ;; and the containing directory to the current time, even when we + ;; reuse an existing manifest file. To avoid this we use "zip" + ;; instead of "jar". It is important that the manifest appears + ;; first. + (with-directory-excursion dir + (let* ((files (find-files "." ".*" #:directories? #t)) + ;; To ensure that the reference scanner can detect all + ;; store references in the jars we disable compression + ;; with the "-0" option. + (command (if (file-exists? manifest) + `("zip" "-0" "-X" ,jar ,manifest ,@files) + `("zip" "-0" "-X" ,jar ,@files)))) + (apply invoke command))) + (utime jar 0 0) + #t)) - (every (match-lambda - ((output . directory) - (every repack-archive (find-files directory "\\.jar$")))) - outputs)) + (for-each (match-lambda + ((output . directory) + (for-each repack-archive (find-files directory "\\.jar$")))) + outputs) + #t) (define* (check #:key target (make-flags '()) (tests? (not target)) (test-target "check") #:allow-other-keys) (if tests? - (zero? (apply system* `("ant" ,test-target ,@make-flags))) - (begin - (format #t "test suite not run~%") - #t))) + (apply invoke `("ant" ,test-target ,@make-flags)) + (format #t "test suite not run~%")) + #t) (define* (install #:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* `("ant" "install" ,@make-flags)))) + (apply invoke `("ant" "install" ,@make-flags))) (define %standard-phases (modify-phases gnu:%standard-phases From 1c7ef07ea11303027ae101206127f9a63bca4ff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= Date: Sun, 17 Jun 2018 14:18:34 +0200 Subject: [PATCH 038/144] gnu: ant/java8: Add missing dependencies. * gnu/packages/java.scm (ant/java8)[native-inputs]: Add zip and unzip. --- gnu/packages/java.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8390016e85..d9018c0fc8 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1687,7 +1687,9 @@ new Date();")) (string-append "-Ddist.dir=" (assoc-ref outputs "out")))))))))) (native-inputs - `(("jdk" ,icedtea-8 "jdk"))))) + `(("jdk" ,icedtea-8 "jdk") + ("zip" ,zip) + ("unzip" ,unzip))))) ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series ;; requires Java 8. From 3b6ba18bab9ce0c03d129de3a775c3f3db39ba91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= Date: Sun, 17 Jun 2018 14:28:50 +0200 Subject: [PATCH 039/144] gnu: ant: Add missing dependencies. * gnu/packages/java.scm (ant)[native-inputs]: Add zip and unzip. --- gnu/packages/java.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d9018c0fc8..5ee74251c4 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1704,7 +1704,9 @@ new Date();")) (base32 "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")))) (native-inputs - `(("jdk" ,icedtea-7 "jdk"))))) + `(("jdk" ,icedtea-7 "jdk") + ("zip" ,zip) + ("unzip" ,unzip))))) (define-public ant-apache-bcel (package From 6321610d41e48cbce4d8737a16fb01747b3ba086 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 18 Jun 2018 01:23:43 +0200 Subject: [PATCH 040/144] gnu: zathura: Fix plugin path regression. eb6a5dab5cf0f85fbc4eda4b6f7956eed464c3cf (gnu: zathura: Update to 0.3.9) silently broke Zathura's (Guix-specific) ZATHURA_PLUGIN_PATH mechanism. My environment was so filthy that all happened to work just fine, but as usual Marius was right and the patch needed tweaking. * gnu/packages/patches/zathura-plugindir-environment-variable.patch: Tweak. --- .../zathura-plugindir-environment-variable.patch | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gnu/packages/patches/zathura-plugindir-environment-variable.patch b/gnu/packages/patches/zathura-plugindir-environment-variable.patch index 2e3ea527d0..a8ffff965a 100644 --- a/gnu/packages/patches/zathura-plugindir-environment-variable.patch +++ b/gnu/packages/patches/zathura-plugindir-environment-variable.patch @@ -8,15 +8,15 @@ different file formats) called ZATHURA_PLUGIN_PATH. Command line option -p still takes precedence. Patch by Paul van der Walt +Adjusted for Zathura 0.3.9 by Tobias Geerinckx-Rice --- zathura/zathura.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/zathura/zathura.c b/zathura/zathura.c -index 589dd28..375ec54 100644 --- a/zathura/zathura.c +++ b/zathura/zathura.c -@@ -413,6 +413,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir) +@@ -597,6 +597,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir) g_return_if_fail(zathura != NULL); g_return_if_fail(zathura->plugins.manager != NULL); @@ -28,8 +28,5 @@ index 589dd28..375ec54 100644 + dir = g_getenv("ZATHURA_PLUGIN_PATH"); + if (dir != NULL) { - girara_list_t* paths = girara_split_path_array(dir); - GIRARA_LIST_FOREACH(paths, char*, iter, path) --- -2.3.1 - + set_plugin_dir(zathura, dir); + #ifdef ZATHURA_PLUGINDIR From 69e0aac3a79d07ca21ccab304f786061c6ff000a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 18 Jun 2018 03:58:32 +0200 Subject: [PATCH 041/144] gnu: zathura-pdf-mupdf: Link to JPEG libraries. * gnu/packages/pdf.scm (zathura-pdf-mupdf)[source]: Add patch. * gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + ...ura-pdf-mupdf-link-to-jpeg-libraries.patch | 55 +++++++++++++++++++ gnu/packages/pdf.scm | 2 + 3 files changed, 58 insertions(+) create mode 100644 gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch diff --git a/gnu/local.mk b/gnu/local.mk index 08bba803f4..e92b82b59d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1204,6 +1204,7 @@ dist_patch_DATA = \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xmodmap-asprintf.patch \ %D%/packages/patches/libyaml-CVE-2014-9130.patch \ + %D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch \ %D%/packages/patches/zathura-plugindir-environment-variable.patch MISC_DISTRO_FILES = \ diff --git a/gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch b/gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch new file mode 100644 index 0000000000..63e058bbef --- /dev/null +++ b/gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch @@ -0,0 +1,55 @@ +From: Tobias Geerinckx-Rice +Date: Mon, 18 Jun 2018 02:37:41 +0200 +Subject: zathura-pdf-mupdf: Link to JPEG libraries. + +As of version 0.3.3, zathura-pdf-mupdf no longer links to some required +JPEG libraries, leading to such errors as: + + $ zathura foo.pdf + error: Could not load plugin '/gnu/store/...-profile/lib/zathura/libpdf-mupdf.so' (/gnu/store/...-profile/lib/zathura/libpdf-mupdf.so: undefined symbol: jpeg_resync_to_restart). + +The patch below, copied verbatim from Arch[0], fixes that. +Its description happens to match our reality, too. + +[0]: https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/zathura-pdf-mupdf +--- +From 3fb0ff750373d45d4f5172ce1d41b74183cd07e8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Johannes=20L=C3=B6thberg?= +Date: Sat, 24 Mar 2018 14:31:18 +0100 +Subject: [PATCH] Explicitly link against jbig2dec, openjp2, and jpeg +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Normally these are statically linked into libmupdfthird, but we delete +those to make mupdf use the system libraries. Previously +zathura-pdf-mupdf explicitly linked against them, but this is +technically incorrect since they are supposed to be in libmupdfthird so +that was removed. This commit essentially reverts that in the new build +system. + +Signed-off-by: Johannes Löthberg +--- + meson.build | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 3b0d7b7..ae2fc9c 100644 +--- a/meson.build ++++ b/meson.build +@@ -22,7 +22,11 @@ cairo = dependency('cairo') + mupdf = cc.find_library('mupdf') + mupdfthird = cc.find_library('mupdfthird') + +-build_dependencies = [zathura, girara, glib, cairo, mupdf, mupdfthird] ++jbig2dec = cc.find_library('jbig2dec') ++openjp2 = cc.find_library('openjp2') ++jpeg = cc.find_library('jpeg') ++ ++build_dependencies = [zathura, girara, glib, cairo, mupdf, mupdfthird, jbig2dec, openjp2, jpeg] + + # defines + defines = [ +-- +2.16.3 + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 1ae6b0de10..067b4061e8 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -456,6 +456,8 @@ using the DjVuLibre library.") (uri (string-append "https://pwmt.org/projects/zathura-pdf-mupdf" "/download/zathura-pdf-mupdf-" version ".tar.xz")) + (patches + (search-patches "zathura-pdf-mupdf-link-to-jpeg-libraries.patch")) (sha256 (base32 "1zbdqimav4wfgimpy3nfzl10qj7vyv23rdy2z5z7z93jwbp2rc2j")))) From 73d18915b597f2a386d6ae42930b49a13c8813b0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 18 Jun 2018 15:27:08 +0200 Subject: [PATCH 042/144] gnu: OpenBLAS: Update to 0.3.0. * gnu/packages/maths.scm (openblas): Update to 0.3.0. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ee5be3ed5d..2111cd1b7b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2788,7 +2788,7 @@ parts of it.") (define-public openblas (package (name "openblas") - (version "0.2.20") + (version "0.3.0") (source (origin (method url-fetch) @@ -2797,7 +2797,7 @@ parts of it.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1bd03c5xni0bla0wg1wba841b36b0sg13sjja955kn5xzvy4i61a")))) + "14a9vyvp2k5zpd0axbnqk0d3khc1v3cck10nb5fj7d2sgn8490ky")))) (build-system gnu-build-system) (arguments `(#:test-target "test" From 90ea1006a86518e523c510eee1214fd81e71da74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= Date: Tue, 12 Jun 2018 13:52:40 +0200 Subject: [PATCH 043/144] guix: ant-build-system: Use manifest task to create manifest. * guix/build/ant-build-system.scm (default-build.xml): Use manifest task to create manifest file instead of a custom echo task. --- guix/build/ant-build-system.scm | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index 3ed12b9f4e..87c782d853 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -68,14 +68,11 @@ (target (@ (name "manifest")) (mkdir (@ (dir "${manifest.dir}"))) - (echo (@ (file "${manifest.file}") - (message ,(string-append - (if main-class - (string-append - "Main-Class: " main-class - "${line.separator}") - "") - ""))))) + (manifest (@ (file "${manifest.file}")) + ,(if main-class + `(attribute (@ (name "Main-Class") + (value ,main-class))) + ""))) (target (@ (name "compile")) (mkdir (@ (dir "${classes.dir}"))) From 7469b7cb3d49c90346620c9896b1cdb7cc2dc8d9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 19 Jun 2018 15:44:08 +0200 Subject: [PATCH 044/144] gnu: nss, nss-certs: Update to 3.37.3. * gnu/packages/gnuzilla.scm (nss): Update to 3.37. * gnu/packages/certs.scm (nss-certs): Likewise. --- gnu/packages/certs.scm | 4 ++-- gnu/packages/gnuzilla.scm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index 3f592cf17b..0b8d449998 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -76,7 +76,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.36.1") + (version "3.37.3") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -87,7 +87,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0")))) + "1gn5bjhkvnh3zc7h74qy2y3a03rbn85qqgxqdf3bs46h2nvbpwls")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index df87700d6f..ba45d1f4f6 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -291,7 +291,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.36.1") + (version "3.37.3") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -302,7 +302,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0")) + "1gn5bjhkvnh3zc7h74qy2y3a03rbn85qqgxqdf3bs46h2nvbpwls")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch" "nss-increase-test-timeout.patch")))) From 7e66e0b3e7f69e045362f9452f9b745aa850d354 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 19 Jun 2018 15:51:53 +0200 Subject: [PATCH 045/144] gnu: libinput: Update to 1.11.1. * gnu/packages/freedesktop.scm (libinput): Update to 1.11.1. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b1769c2400..26312e773c 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -147,14 +147,14 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.11.0") + (version "1.11.1") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" name "-" version ".tar.xz")) (sha256 (base32 - "04mwl1v51b785h7q3v23hahr0qzr48qq1jzj7d3msjvgh97nr8v4")))) + "1z7i8vk0i61npkdqwsk85wp9v4yjlvylqnyydikjqnbsrjp9abk4")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false"))) From b7a46ed22764db9097aba96e68143d46b2a75be0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 20 Jun 2018 15:18:35 +0200 Subject: [PATCH 046/144] gnu: openblas: Fix build on i686. * gnu/packages/patches/openblas-fix-tests-i686.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/maths.scm (openblas)[native-inputs]: Add it. [arguments]: Add phase to apply it on i686 systems only. --- gnu/local.mk | 1 + gnu/packages/maths.scm | 15 ++++++++ .../patches/openblas-fix-tests-i686.patch | 35 +++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 gnu/packages/patches/openblas-fix-tests-i686.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4fc54e61c1..521c7f1691 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -967,6 +967,7 @@ dist_patch_DATA = \ %D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \ + %D%/packages/patches/openblas-fix-tests-i686.patch \ %D%/packages/patches/openexr-missing-samples.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index a644468627..7d70ac1fa6 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2836,6 +2836,16 @@ parts of it.") #:phases (modify-phases %standard-phases (delete 'configure) + ;; Conditionally apply a patch on i686 to avoid rebuilding + ;; all architectures. FIXME: This should be moved to the + ;; (source (patches ...)) field in the next rebuild cycle. + ,@(if (string-prefix? "i686" (or (%current-target-system) + (%current-system))) + `((add-after 'unpack 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + (invoke "patch" "-p1" + "--input" (assoc-ref inputs "i686-fix-tests.patch"))))) + '()) (add-before 'build 'set-extralib (lambda* (#:key inputs #:allow-other-keys) ;; Get libgfortran found when building in utest. @@ -2847,6 +2857,11 @@ parts of it.") `(("fortran-lib" ,gfortran "lib"))) (native-inputs `(("cunit" ,cunit) + ,@(if (string-prefix? "i686" (or (%current-target-system) + (%current-system))) + `(("i686-fix-tests.patch" + ,(search-patch "openblas-fix-tests-i686.patch"))) + '()) ("fortran" ,gfortran) ("perl" ,perl))) (home-page "http://www.openblas.net/") diff --git a/gnu/packages/patches/openblas-fix-tests-i686.patch b/gnu/packages/patches/openblas-fix-tests-i686.patch new file mode 100644 index 0000000000..3325546ea3 --- /dev/null +++ b/gnu/packages/patches/openblas-fix-tests-i686.patch @@ -0,0 +1,35 @@ +Fix a test failure on some i686 systems: + +https://github.com/xianyi/OpenBLAS/issues/1575 + +This patch is a squashed version of these commits: + +https://github.com/xianyi/OpenBLAS/pull/1583 + +diff --git a/kernel/x86/KERNEL.NEHALEM b/kernel/x86/KERNEL.NEHALEM +index 835520ef..65b03ae5 100644 +--- a/kernel/x86/KERNEL.NEHALEM ++++ b/kernel/x86/KERNEL.NEHALEM +@@ -1,3 +1 @@ + include $(KERNELDIR)/KERNEL.PENRYN +-SSWAPKERNEL = ../arm/swap.c +-DSWAPKERNEL = ../arm/swap.c +diff --git a/kernel/x86/swap.S b/kernel/x86/swap.S +index 54b00b33..e30c2789 100644 +--- a/kernel/x86/swap.S ++++ b/kernel/x86/swap.S +@@ -138,6 +138,14 @@ + /* INCX != 1 or INCY != 1 */ + + .L14: ++ cmpl $0, %ebx ++ jne .L141 ++ cmpl $0, %ecx ++ jne .L141 ++/* INCX == 0 and INCY == 0 */ ++ jmp .L27 ++ ++.L141: + movl %edx, %eax + sarl $2, %eax + jle .L28 From 64b2efc12c7f0e22f71660b8486e712d5546d4cb Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Jun 2018 11:48:36 +0300 Subject: [PATCH 047/144] gnu: jamvm@1.5.1: Fix building on armhf-linux. * gnu/packages/java.scm (jamvm@1.5.1)[source]: Add patch. * gnu/packages/patches/jamvm-arm.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/java.scm | 2 + gnu/packages/patches/jamvm-arm.patch | 1313 ++++++++++++++++++++++++++ 3 files changed, 1316 insertions(+) create mode 100644 gnu/packages/patches/jamvm-arm.patch diff --git a/gnu/local.mk b/gnu/local.mk index 34c0003f23..8cd855ad25 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -801,6 +801,7 @@ dist_patch_DATA = \ %D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \ + %D%/packages/patches/jamvm-arm.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-powermock-fix-java-files.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8caad1b51a..54bfd8cc3a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2018 Gábor Boskovits ;;; Copyright © 2018 Chris Marusich +;;; Copyright © 2018 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -175,6 +176,7 @@ language.") (uri (string-append "mirror://sourceforge/jamvm/jamvm/" "JamVM%20" version "/jamvm-" version ".tar.gz")) + (patches (search-patches "jamvm-arm.patch")) (sha256 (base32 "06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36")))) diff --git a/gnu/packages/patches/jamvm-arm.patch b/gnu/packages/patches/jamvm-arm.patch new file mode 100644 index 0000000000..9e998e18db --- /dev/null +++ b/gnu/packages/patches/jamvm-arm.patch @@ -0,0 +1,1313 @@ +From 67faeb7d58e0d25a50d36788ed49ed383b92e090 Mon Sep 17 00:00:00 2001 +From: Efraim Flashner +Date: Mon, 26 Mar 2018 11:08:17 +0300 +Subject: [PATCH] add ARMv7 support + +--- + src/arch/arm.h | 75 +++++- + src/os/linux/arm/Makefile.am | 9 +- + src/os/linux/arm/Makefile.in | 166 ++++++++---- + src/os/linux/arm/callNative.S | 12 +- + src/os/linux/arm/callNativeEABI.S | 8 +- + src/os/linux/arm/callNativeEABIHard.S | 315 +++++++++++++++++++++++ + src/os/linux/arm/callNativeEABIHardARM.S | 266 +++++++++++++++++++ + src/os/linux/arm/dll_md.c | 61 ++++- + 8 files changed, 843 insertions(+), 69 deletions(-) + create mode 100644 src/os/linux/arm/callNativeEABIHard.S + create mode 100644 src/os/linux/arm/callNativeEABIHardARM.S + +diff --git a/src/arch/arm.h b/src/arch/arm.h +index ccf68c4..d2c0318 100644 +--- a/src/arch/arm.h ++++ b/src/arch/arm.h +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher . ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, ++ * 2014 Robert Lougher . + * + * This file is part of JamVM. + * +@@ -21,10 +21,16 @@ + + #define OS_ARCH "arm" + +-/* Override default min and max heap sizes. ARM machines are +- usually embedded, and the standard defaults are too large. */ +-#define DEFAULT_MAX_HEAP 16*MB ++/* Override minimum min heap size. The initial heap size is a ratio ++ of the physical memory, but it must be at least the minimum min ++ size. The normal setting is too large for ARM machines as they ++ are usually embedded. */ ++#define MIN_MIN_HEAP 1*MB ++ ++/* Likewise, override the default min/max heap sizes used when the ++ size of physical memory is not available */ + #define DEFAULT_MIN_HEAP 1*MB ++#define DEFAULT_MAX_HEAP 64*MB + + #ifdef DIRECT + #define HANDLER_TABLE_T static const void +@@ -51,6 +57,36 @@ + /* Needed for i386 -- empty here */ + #define FPU_HACK + ++#if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__) ++#define COMPARE_AND_SWAP_32(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: mov %0, #0; \ ++ ldrex %1, [%2]; \ ++ cmp %3, %1; \ ++ bne 2f; \ ++ strex %0, %4, [%2]; \ ++ cmp %0, #1; \ ++ beq 1b; \ ++ mov %0, #1; \ ++ 2:" \ ++ : "=&r" (result), "=&r" (read_val) \ ++ : "r" (addr), "r" (old_val), "r" (new_val) \ ++ : "cc", "memory"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_32(addr, old_val, new_val) ++ ++#define LOCKWORD_READ(addr) *addr ++#define LOCKWORD_WRITE(addr, value) *addr = value ++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP(addr, old_val, new_val) ++ ++#else ++ + #define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ + ({ \ + int result, read_val; \ +@@ -94,7 +130,7 @@ do { \ + : "r" (addr), "r" (new_val) \ + : "cc", "memory"); \ + } while(0) +- ++#endif + + #ifdef __ARM_EABI__ + #define FLUSH_CACHE(addr, length) \ +@@ -124,8 +160,33 @@ do { \ + } + #endif + ++#define GEN_REL_JMP(target_addr, patch_addr, patch_size) \ ++({ \ ++ int patched = FALSE; \ ++ \ ++ if(patch_size >= 4) { \ ++ /* Guard against the pointer difference being \ ++ larger than the signed range */ \ ++ long long offset = (uintptr_t)(target_addr) - \ ++ (uintptr_t)(patch_addr) - 8; \ ++ \ ++ if(offset >= -1<<25 && offset < 1<<25) { \ ++ *(int*)(patch_addr) = offset>>2 & 0x00ffffff \ ++ | 0xea000000; \ ++ patched = TRUE; \ ++ } \ ++ } \ ++ patched; \ ++}) ++ ++#ifdef __ARM_ARCH_7A__ ++#define MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#define UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#else + #define MBARRIER() __asm__ __volatile__ ("" ::: "memory") + #define UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") + #define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") + #define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") +- ++#endif +diff --git a/src/os/linux/arm/Makefile.am b/src/os/linux/arm/Makefile.am +index d18ea5a..74e7786 100644 +--- a/src/os/linux/arm/Makefile.am ++++ b/src/os/linux/arm/Makefile.am +@@ -1,6 +1,6 @@ + ## +-## Copyright (C) 2003, 2004, 2005, 2006, 2007 +-## Robert Lougher . ++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 ++## Robert Lougher . + ## + ## This file is part of JamVM. + ## +@@ -19,10 +19,11 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-EXTRA_DIST = callNativeOABI.S callNativeEABI.S ++EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \ ++ callNativeEABIHardARM.S + + noinst_LTLIBRARIES = libnative.la + libnative_la_SOURCES = init.c dll_md.c callNative.S + +-AM_CPPFLAGS = -I$(top_builddir)/src ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src + AM_CCASFLAGS = -I$(top_builddir)/src +diff --git a/src/os/linux/arm/Makefile.in b/src/os/linux/arm/Makefile.in +index 63b21ad..6d44ea9 100644 +--- a/src/os/linux/arm/Makefile.in ++++ b/src/os/linux/arm/Makefile.in +@@ -1,8 +1,9 @@ +-# Makefile.in generated by automake 1.10 from Makefile.am. ++# Makefile.in generated by automake 1.11.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software ++# Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -15,9 +16,27 @@ + @SET_MAKE@ + + VPATH = @srcdir@ ++am__make_dryrun = \ ++ { \ ++ am__dry=no; \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ ++ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ ++ *) \ ++ for am__flg in $$MAKEFLAGS; do \ ++ case $$am__flg in \ ++ *=*|--*) ;; \ ++ *n*) am__dry=yes; break;; \ ++ esac; \ ++ done;; \ ++ esac; \ ++ test $$am__dry = yes; \ ++ } + pkgdatadir = $(datadir)/@PACKAGE@ +-pkglibdir = $(libdir)/@PACKAGE@ + pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ + am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + install_sh_DATA = $(install_sh) -c -m 644 + install_sh_PROGRAM = $(install_sh) -c +@@ -42,13 +61,15 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/src/config.h + CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = + LTLIBRARIES = $(noinst_LTLIBRARIES) + libnative_la_LIBADD = + am_libnative_la_OBJECTS = init.lo dll_md.lo callNative.lo + libnative_la_OBJECTS = $(am_libnative_la_OBJECTS) +-DEFAULT_INCLUDES = -I. -I$(top_builddir)/src@am__isrc@ ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles ++am__mv = mv -f + CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) + LTCPPASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +@@ -65,6 +86,11 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + $(LDFLAGS) -o $@ + SOURCES = $(libnative_la_SOURCES) + DIST_SOURCES = $(libnative_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac + ETAGS = etags + CTAGS = ctags + DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +@@ -84,21 +110,18 @@ CCDEPMODE = @CCDEPMODE@ + CFLAGS = @CFLAGS@ + CPP = @CPP@ + CPPFLAGS = @CPPFLAGS@ +-CXX = @CXX@ +-CXXCPP = @CXXCPP@ +-CXXDEPMODE = @CXXDEPMODE@ +-CXXFLAGS = @CXXFLAGS@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ +-ECHO = @ECHO@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ + ECHO_N = @ECHO_N@ + ECHO_T = @ECHO_T@ + EGREP = @EGREP@ + EXEEXT = @EXEEXT@ +-F77 = @F77@ +-FFLAGS = @FFLAGS@ ++FGREP = @FGREP@ + GREP = @GREP@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ +@@ -106,21 +129,30 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + JAVAC = @JAVAC@ ++LD = @LD@ + LDFLAGS = @LDFLAGS@ + LIBOBJS = @LIBOBJS@ + LIBS = @LIBS@ + LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAINT = @MAINT@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ + OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ + PACKAGE = @PACKAGE@ + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + PACKAGE_NAME = @PACKAGE_NAME@ + PACKAGE_STRING = @PACKAGE_STRING@ + PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ + RANLIB = @RANLIB@ +@@ -133,9 +165,9 @@ abs_builddir = @abs_builddir@ + abs_srcdir = @abs_srcdir@ + abs_top_builddir = @abs_top_builddir@ + abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ + ac_ct_CC = @ac_ct_CC@ +-ac_ct_CXX = @ac_ct_CXX@ +-ac_ct_F77 = @ac_ct_F77@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ + am__include = @am__include@ + am__leading_dot = @am__leading_dot@ + am__quote = @am__quote@ +@@ -149,6 +181,7 @@ build_cpu = @build_cpu@ + build_os = @build_os@ + build_vendor = @build_vendor@ + builddir = @builddir@ ++classlib = @classlib@ + datadir = @datadir@ + datarootdir = @datarootdir@ + docdir = @docdir@ +@@ -181,15 +214,18 @@ sharedstatedir = @sharedstatedir@ + srcdir = @srcdir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + use_zip_no = @use_zip_no@ + use_zip_yes = @use_zip_yes@ + with_classpath_install_dir = @with_classpath_install_dir@ +-EXTRA_DIST = callNativeOABI.S callNativeEABI.S ++EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \ ++ callNativeEABIHardARM.S ++ + noinst_LTLIBRARIES = libnative.la + libnative_la_SOURCES = init.c dll_md.c callNative.S +-AM_CPPFLAGS = -I$(top_builddir)/src ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src + AM_CCASFLAGS = -I$(top_builddir)/src + all: all-am + +@@ -199,14 +235,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ +- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +- && exit 0; \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ +- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/os/linux/arm/Makefile'; \ +- cd $(top_srcdir) && \ +- $(AUTOMAKE) --gnu src/os/linux/arm/Makefile ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/os/linux/arm/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu src/os/linux/arm/Makefile + .PRECIOUS: Makefile + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ +@@ -224,6 +260,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): + + clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) +@@ -233,7 +270,7 @@ clean-noinstLTLIBRARIES: + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +-libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) ++libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) $(EXTRA_libnative_la_DEPENDENCIES) + $(LINK) $(libnative_la_OBJECTS) $(libnative_la_LIBADD) $(LIBS) + + mostlyclean-compile: +@@ -248,42 +285,42 @@ distclean-compile: + + .S.o: + @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ $< + + .S.obj: + @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +-@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + + .S.lo: + @am__fastdepCCAS_TRUE@ $(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCCAS_FALSE@ $(LTCPPASCOMPILE) -c -o $@ $< + + .c.o: + @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(COMPILE) -c $< + + .c.obj: + @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + + .c.lo: + @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@@ -299,45 +336,49 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ +- $(AWK) ' { files[$$0] = 1; } \ +- END { for (i in files) print i; }'`; \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique + tags: TAGS + + TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) +- tags=; \ ++ set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ +- $(AWK) ' { files[$$0] = 1; } \ +- END { for (i in files) print i; }'`; \ +- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ +- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ +- $$tags $$unique; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ + fi + ctags: CTAGS + CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) +- tags=; \ +- here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ +- $(AWK) ' { files[$$0] = 1; } \ +- END { for (i in files) print i; }'`; \ +- test -z "$(CTAGS_ARGS)$$tags$$unique" \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ +- $$tags $$unique ++ $$unique + + GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ +- && cd $(top_srcdir) \ +- && gtags -i $(GTAGS_ARGS) $$here ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" + + distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +@@ -358,13 +399,17 @@ distdir: $(DISTFILES) + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ +- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ +- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ +- test -f $(distdir)/$$file \ +- || cp -p $$d/$$file $(distdir)/$$file \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +@@ -382,16 +427,22 @@ install-am: all-am + + installcheck: installcheck-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ +- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ +- `test -z '$(STRIP)' || \ +- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi + mostlyclean-generic: + + clean-generic: + + distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + + maintainer-clean-generic: + @echo "This command is intended for maintainers to use" +@@ -413,6 +464,8 @@ dvi-am: + + html: html-am + ++html-am: ++ + info: info-am + + info-am: +@@ -421,18 +474,28 @@ install-data-am: + + install-dvi: install-dvi-am + ++install-dvi-am: ++ + install-exec-am: + + install-html: install-html-am + ++install-html-am: ++ + install-info: install-info-am + ++install-info-am: ++ + install-man: + + install-pdf: install-pdf-am + ++install-pdf-am: ++ + install-ps: install-ps-am + ++install-ps-am: ++ + installcheck-am: + + maintainer-clean: maintainer-clean-am +@@ -470,6 +533,7 @@ uninstall-am: + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + ++ + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: +diff --git a/src/os/linux/arm/callNative.S b/src/os/linux/arm/callNative.S +index 39ab6d3..245afd1 100644 +--- a/src/os/linux/arm/callNative.S ++++ b/src/os/linux/arm/callNative.S +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher . ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011, 2012 ++ * Robert Lougher . + * + * This file is part of JamVM. + * +@@ -23,7 +23,15 @@ + + #ifndef USE_FFI + #ifdef __ARM_EABI__ ++#ifdef __ARM_PCS_VFP ++#ifdef __ARM_ARCH_7A__ ++#include "callNativeEABIHard.S" ++#else ++#include "callNativeEABIHardARM.S" ++#endif ++#else + #include "callNativeEABI.S" ++#endif + #else + #include "callNativeOABI.S" + #endif +diff --git a/src/os/linux/arm/callNativeEABI.S b/src/os/linux/arm/callNativeEABI.S +index 5effa57..3a7539e 100644 +--- a/src/os/linux/arm/callNativeEABI.S ++++ b/src/os/linux/arm/callNativeEABI.S +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher . ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011 ++ * Robert Lougher . + * + * This file is part of JamVM. + * +@@ -95,8 +95,12 @@ done: + ldmfd sp!, {r2, r3} + + /* Call the function */ ++#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) + mov lr, pc + bx ip ++#else ++ blx ip ++#endif + + subs r4, r4, #8 /* Pop argument area */ + /* (minus 8 for r2/r3) */ +diff --git a/src/os/linux/arm/callNativeEABIHard.S b/src/os/linux/arm/callNativeEABIHard.S +new file mode 100644 +index 0000000..5d5785b +--- /dev/null ++++ b/src/os/linux/arm/callNativeEABIHard.S +@@ -0,0 +1,315 @@ ++/* ++ * Copyright (C) 2011, 2012 Robert Lougher . ++ * ++ * This file is part of JamVM. ++ * ++ * This program 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 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++ .text ++ .syntax unified ++ .arch armv7-a ++ .thumb ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * r0 JNIEnv ++ * r1 class or NULL ++ * r2 sig ++ * r3 extra arg ++ * sp + 0 ostack ++ * sp + 4 function pntr ++ * sp + 8 args count ++ */ ++ ++/* Register usage : ++ * ++ * r11 function pntr ++ * lr ostack pntr ++ * ip args pntr ++ * r8 sig pntr ++ * r10 extra stack ++ * r6 fp backfill ++ * r4 fp reg ++ * r7 int reg ++ * r5 scratch ++ * r3, r2 outgoing int args ++ * r1 outgoing class or this pntr ++ * r0 outgoing JNIEnv (as passed in) ++ * ++ * s0 - s16 (d0 - d7) outgoing float args ++ */ ++ ++callJNIMethod: ++ stmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ ldr lr, [sp, #32] /* get ostack pntr */ ++ ldr r11, [sp, #36] /* get function pntr */ ++ ++ cmp r1, #0 /* is method non-static? */ ++ it eq ++ ldreq r1, [lr], #4 /* yes, load r1 with "this" */ ++ ++ mov r10, r3 ++ subs sp, sp, r3 /* allocate room for stacked */ ++ add r8, r2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov ip, sp /* init loop pntr */ ++ ++ mov r7, #2 ++ mov r4, #16 ++ mov r6, #0 ++ ++scan_sig: ++ ldrb r5, [r8], #1 ++ ++ cmp r5, #41 /* ')' */ ++ beq done ++ ++ cmp r5, #70 /* 'F' */ ++ beq float ++ ++ cmp r5, #68 /* 'D' */ ++ beq double ++ ++ cmp r5, #74 /* 'J' */ ++ beq long ++ ++skip_brackets: ++ cmp r5, #91 /* '[' */ ++ itt eq ++ ldrbeq r5, [r8], #1 ++ beq skip_brackets ++ ++ cmp r5, #76 /* 'L' */ ++ bne int ++ ++skip_ref: ++ ldrb r5, [r8], #1 ++ cmp r5, #59 /* ';' */ ++ bne skip_ref ++ ++int: ++ cbz r7, stack_int ++ ++ subs r7, r7, #1 ++ ite ne ++ ldrne r2, [lr], #4 ++ ldreq r3, [lr], #4 ++ ++ b scan_sig ++ ++float: ++ cbz r6, no_backfill ++ ++ sub r5, r6, #1 ++ mov r6, #0 ++ b load_float ++ ++no_backfill: ++ cbz r4, stack_int ++ ++ sub r4, r4, #1 ++ mov r5, r4 ++ ++load_float: ++ add lr, lr, #4 ++ tbb [pc, r5] ++ ++float_table: ++ .byte (s15-float_table)/2 ++ .byte (s14-float_table)/2 ++ .byte (s13-float_table)/2 ++ .byte (s12-float_table)/2 ++ .byte (s11-float_table)/2 ++ .byte (s10-float_table)/2 ++ .byte (s9-float_table)/2 ++ .byte (s8-float_table)/2 ++ .byte (s7-float_table)/2 ++ .byte (s6-float_table)/2 ++ .byte (s5-float_table)/2 ++ .byte (s4-float_table)/2 ++ .byte (s3-float_table)/2 ++ .byte (s2-float_table)/2 ++ .byte (s1-float_table)/2 ++ .byte (s0-float_table)/2 ++ ++stack_int: ++ ldr r5, [lr], #4 ++ str r5, [ip], #4 ++ b scan_sig ++ ++s0: ++ vldr s0, [lr, #-4] ++ b scan_sig ++s1: ++ vldr s1, [lr, #-4] ++ b scan_sig ++s2: ++ vldr s2, [lr, #-4] ++ b scan_sig ++s3: ++ vldr s3, [lr, #-4] ++ b scan_sig ++s4: ++ vldr s4, [lr, #-4] ++ b scan_sig ++s5: ++ vldr s5, [lr, #-4] ++ b scan_sig ++s6: ++ vldr s6, [lr, #-4] ++ b scan_sig ++s7: ++ vldr s7, [lr, #-4] ++ b scan_sig ++s8: ++ vldr s8, [lr, #-4] ++ b scan_sig ++s9: ++ vldr s9, [lr, #-4] ++ b scan_sig ++s10: ++ vldr s10, [lr, #-4] ++ b scan_sig ++s11: ++ vldr s11, [lr, #-4] ++ b scan_sig ++s12: ++ vldr s12, [lr, #-4] ++ b scan_sig ++s13: ++ vldr s13, [lr, #-4] ++ b scan_sig ++s14: ++ vldr s14, [lr, #-4] ++ b scan_sig ++s15: ++ vldr s15, [lr, #-4] ++ b scan_sig ++ ++long: ++ cmp r7, #2 ++ mov r7, #0 ++ bne stack_long ++ ++ ldmia lr!, {r2, r3} ++ b scan_sig ++ ++double: ++ lsrs r5, r4, #1 ++ it cs ++ movcs r6, r4 ++ ++ lsls r4, r5, #1 ++ beq stack_double ++ ++ sub r4, r4, #2 ++ add lr, lr, #8 ++ tbb [pc, r5] ++ ++double_table: ++ .byte 0 ++ .byte (d7-double_table)/2 ++ .byte (d6-double_table)/2 ++ .byte (d5-double_table)/2 ++ .byte (d4-double_table)/2 ++ .byte (d3-double_table)/2 ++ .byte (d2-double_table)/2 ++ .byte (d1-double_table)/2 ++ .byte (d0-double_table)/2 ++ .align 2 ++d0: ++ vldr d0, [lr, #-8] ++ b scan_sig ++d1: ++ vldr d1, [lr, #-8] ++ b scan_sig ++d2: ++ vldr d2, [lr, #-8] ++ b scan_sig ++d3: ++ vldr d3, [lr, #-8] ++ b scan_sig ++d4: ++ vldr d4, [lr, #-8] ++ b scan_sig ++d5: ++ vldr d5, [lr, #-8] ++ b scan_sig ++d6: ++ vldr d6, [lr, #-8] ++ b scan_sig ++d7: ++ vldr d7, [lr, #-8] ++ b scan_sig ++ ++stack_double: ++ mov r6, #0 ++ ++stack_long: ++ /* Ensure address is 8 byte aligned */ ++ add ip, ip, #7 ++ bic ip, ip, #7 ++ ++ ldr r5, [lr], #4 ++ str r5, [ip], #4 ++ ldr r5, [lr], #4 ++ str r5, [ip], #4 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++ blx r11 ++ ++ add sp, sp, r10 /* Pop argument area */ ++ ++ ldr r4, [sp, #32] /* Reload ostack for */ ++ /* address of return value */ ++ ++ ldrb r5, [r8] /* Return type */ ++ ++ cmp r5, #86 /* 'V' */ ++ beq return ++ ++ cmp r5, #68 /* 'D' */ ++ beq return_double ++ ++ cmp r5, #70 /* 'F' */ ++ beq return_float ++ ++ str r0, [r4], #4 /* Low word */ ++ ++ cmp r5, #74 /* 'J' */ ++ it eq ++ streq r1, [r4], #4 /* High word */ ++ ++return: ++ mov r0, r4 /* return ostack */ ++ ldmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ bx lr ++ ++return_float: ++ vstr s0, [r4] ++ add r4, r4, #4 ++ b return ++ ++return_double: ++ vstr d0, [r4] ++ add r4, r4, #8 ++ b return +diff --git a/src/os/linux/arm/callNativeEABIHardARM.S b/src/os/linux/arm/callNativeEABIHardARM.S +new file mode 100644 +index 0000000..3a31acd +--- /dev/null ++++ b/src/os/linux/arm/callNativeEABIHardARM.S +@@ -0,0 +1,266 @@ ++/* ++ * Copyright (C) 2011, 2012 Robert Lougher . ++ * ++ * This file is part of JamVM. ++ * ++ * This program 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 2, ++ * or (at your option) any later version. ++ * ++ * This program 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 this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++ .text ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * r0 JNIEnv ++ * r1 class or NULL ++ * r2 sig ++ * r3 extra arg ++ * sp + 0 ostack ++ * sp + 4 function pntr ++ * sp + 8 args count ++ */ ++ ++/* Register usage : ++ * ++ * lr ostack pntr ++ * ip scratch ++ * r11 function pntr ++ * r10 fp backfill ++ * r8 fp reg ++ * r7 int reg ++ * r6 args pntr ++ * r5 sig pntr ++ * r4 extra stack ++ * r3, r2 outgoing int args ++ * r1 outgoing class or this pntr ++ * r0 outgoing JNIEnv (as passed in) ++ * ++ * s0 - s16 (d0 - d7) outgoing float args ++ */ ++ ++callJNIMethod: ++ stmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ ldr lr, [sp, #32] /* get ostack pntr */ ++ ldr r11, [sp, #36] /* get function pntr */ ++ ++ cmp r1, #0 /* is method non-static? */ ++ ldreq r1, [lr], #4 /* yes, load r1 with "this" */ ++ ++ mov r4, r3 ++ sub sp, sp, r4 /* allocate room for stacked */ ++ add r5, r2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov r6, sp /* init loop pntr */ ++ ++ mov r7, #2 ++ mov r8, #16 ++ mov r10, #0 ++ ++scan_sig: ++ ldrb ip, [r5], #1 ++ ++ cmp ip, #41 /* ')' */ ++ beq done ++ ++ cmp ip, #70 /* 'F' */ ++ beq float ++ ++ cmp ip, #68 /* 'D' */ ++ beq double ++ ++ cmp ip, #74 /* 'J' */ ++ beq long ++ ++skip_brackets: ++ cmp ip, #91 /* '[' */ ++ ldreqb ip, [r5], #1 ++ beq skip_brackets ++ ++ cmp ip, #76 /* 'L' */ ++ bne int ++ ++skip_ref: ++ ldrb ip, [r5], #1 ++ cmp ip, #59 /* ';' */ ++ bne skip_ref ++ ++int: ++ cmp r7, #0 ++ beq stack_int ++ ++ subs r7, r7, #1 ++ ++ ldrne r2, [lr], #4 ++ ldreq r3, [lr], #4 ++ ++ b scan_sig ++ ++stack_int: ++ ldr ip, [lr], #4 ++ str ip, [r6], #4 ++ b scan_sig ++ ++float: ++ cmp r10, #0 ++ beq no_backfill ++ ++ sub ip, r10, #1 ++ mov r10, #0 ++ b load_float ++ ++no_backfill: ++ cmp r8, #0 ++ beq stack_int ++ ++ sub r8, r8, #1 ++ mov ip, r8 ++ ++load_float: ++ add lr, lr, #4 ++ add pc, pc, ip, lsl #3 ++ nop ++ ++ flds s15, [lr, #-4] ++ b scan_sig ++ flds s14, [lr, #-4] ++ b scan_sig ++ flds s13, [lr, #-4] ++ b scan_sig ++ flds s12, [lr, #-4] ++ b scan_sig ++ flds s11, [lr, #-4] ++ b scan_sig ++ flds s10, [lr, #-4] ++ b scan_sig ++ flds s9, [lr, #-4] ++ b scan_sig ++ flds s8, [lr, #-4] ++ b scan_sig ++ flds s7, [lr, #-4] ++ b scan_sig ++ flds s6, [lr, #-4] ++ b scan_sig ++ flds s5, [lr, #-4] ++ b scan_sig ++ flds s4, [lr, #-4] ++ b scan_sig ++ flds s3, [lr, #-4] ++ b scan_sig ++ flds s2, [lr, #-4] ++ b scan_sig ++ flds s1, [lr, #-4] ++ b scan_sig ++ flds s0, [lr, #-4] ++ b scan_sig ++ ++long: ++ cmp r7, #2 ++ mov r7, #0 ++ bne stack_long ++ ++ ldr r2, [lr], #4 ++ ldr r3, [lr], #4 ++ b scan_sig ++ ++double: ++ lsrs ip, r8, #1 ++ movcs r10, r8 ++ ++ lsls r8, ip, #1 ++ beq stack_double ++ ++ sub r8, r8, #2 ++ add lr, lr, #8 ++ add pc, pc, ip, lsl #3 ++ nop ++ nop ++ nop ++ ++ fldd d7, [lr, #-8] ++ b scan_sig ++ fldd d6, [lr, #-8] ++ b scan_sig ++ fldd d5, [lr, #-8] ++ b scan_sig ++ fldd d4, [lr, #-8] ++ b scan_sig ++ fldd d3, [lr, #-8] ++ b scan_sig ++ fldd d2, [lr, #-8] ++ b scan_sig ++ fldd d1, [lr, #-8] ++ b scan_sig ++ fldd d0, [lr, #-8] ++ b scan_sig ++ ++stack_double: ++ mov r10, #0 ++ ++stack_long: ++ /* Ensure address is 8 byte aligned */ ++ add r6, r6, #7 ++ bic r6, r6, #7 ++ ++ ldr ip, [lr], #4 ++ str ip, [r6], #4 ++ ldr ip, [lr], #4 ++ str ip, [r6], #4 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) ++ mov lr, pc ++ bx r11 ++#else ++ blx r11 ++#endif ++ ++ add sp, sp, r4 /* Pop argument area */ ++ ldr r4, [sp, #32] /* Reload ostack for */ ++ /* address of return value */ ++ ldrb ip, [r5] /* Return type */ ++ ++ cmp ip, #86 /* 'V' */ ++ beq return ++ ++ cmp ip, #68 /* 'D' */ ++ beq return_double ++ ++ cmp ip, #70 /* 'F' */ ++ beq return_float ++ ++ str r0, [r4], #4 /* Low word */ ++ ++ cmp ip, #74 /* 'J' */ ++ streq r1, [r4], #4 /* High word */ ++ ++return: ++ mov r0, r4 /* return ostack */ ++ ldmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ bx lr ++ ++return_float: ++ add r4, r4, #4 ++ fsts s0, [r4, #-4] ++ b return ++ ++return_double: ++ add r4, r4, #8 ++ fstd d0, [r4, #-8] ++ b return +diff --git a/src/os/linux/arm/dll_md.c b/src/os/linux/arm/dll_md.c +index f5df90e..39bdf7c 100644 +--- a/src/os/linux/arm/dll_md.c ++++ b/src/os/linux/arm/dll_md.c +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher . ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011 ++ * Robert Lougher . + * + * This file is part of JamVM. + * +@@ -31,6 +31,61 @@ + * out stack requirements and then to push arguments. To + * save the first scan at call time, the signature is pre- + * scanned and stack requirement stored in the extra argument. */ ++ ++#ifdef __ARM_PCS_VFP ++int nativeExtraArg(MethodBlock *mb) { ++ char *sig = mb->type; ++ int fp_backfill = 0; ++ int stack_args = 0; ++ int int_args = 2; ++ int fp_args = 16; ++ ++ while(*++sig != ')') ++ switch(*sig) { ++ case 'J': ++ if(int_args < 2) ++ stack_args = (stack_args + 15) & ~7; ++ int_args = 0; ++ break; ++ ++ case 'D': ++ fp_backfill |= fp_args & 1; ++ fp_args &= ~1; ++ ++ if(fp_args == 0) { ++ stack_args = (stack_args + 15) & ~7; ++ fp_backfill = 0; ++ } else ++ fp_args -= 2; ++ break; ++ ++ case 'F': ++ if(fp_backfill) ++ fp_backfill = 0; ++ else { ++ if(fp_args == 0) ++ stack_args += 4; ++ else ++ fp_args--; ++ } ++ break; ++ ++ default: ++ if(int_args == 0) ++ stack_args += 4; ++ else ++ int_args--; ++ ++ if(*sig == '[') ++ while(*++sig == '['); ++ if(*sig == 'L') ++ while(*++sig != ';'); ++ break; ++ } ++ ++ return (stack_args + 7) & ~7; ++} ++#else + int nativeExtraArg(MethodBlock *mb) { + char *sig = mb->type; + int args = 0; +@@ -57,7 +112,7 @@ int nativeExtraArg(MethodBlock *mb) { + native method, so minimum stack requirement is 8 bytes. */ + return args < 8 ? 8 : args; + } +- ++#endif + #else + + /* Under OABI, arguments can be copied onto the stack "as is" +-- +2.17.1 + From a495998b79f34ebad89942f8827fc18283c0723c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Jun 2018 11:50:11 +0300 Subject: [PATCH 048/144] gnu: ant-bootstrap: Fix building on armhf-linux. * gnu/packages/java.scm (ant-bootstrap)[arguments]: On armhf-linux add different flags to the 'bootstrap.sh' file. --- gnu/packages/java.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 54bfd8cc3a..e7e34a2910 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -253,7 +253,10 @@ JNI.") ;; Without these JamVM options the build may freeze. (substitute* "bootstrap.sh" (("^\"\\$\\{JAVACMD\\}\" " m) - (string-append m "-Xnocompact -Xnoinlining "))) + ,@(if (string-prefix? "armhf" (or (%current-system) + (%current-target-system))) + `((string-append m "-Xnocompact ")) + `((string-append m "-Xnocompact -Xnoinlining "))))) ;; Disable tests because we are bootstrapping and thus don't have ;; any of the dependencies required to build and run the tests. From 6e6bd6f92952600e1bddf078daf27000dae8d764 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Jun 2018 12:07:44 +0300 Subject: [PATCH 049/144] gnu: ecj-javac-bootstrap: Fix building on armhf-linux. * gnu/packages/java.scm (ecj-javac-bootstrap)[arguments]: On armhf-linux use different flags when calling 'java'. --- gnu/packages/java.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e7e34a2910..c0a7cd756a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -437,7 +437,11 @@ requirement for all GNU Classpath releases after version 0.93.") args defaults)) (apply system* ,java (append - (list "-Xnocompact" "-Xnoinlining") + (list "-Xnocompact") + ,,@(if (string-prefix? "armhf" (or (%current-system) + (%current-target-system))) + '() + `((list "-Xnoinlining"))) ;; Remove "-J" prefix (map (cut string-drop <> 2) vm-args) '("org.eclipse.jdt.internal.compiler.batch.Main") From e3ec1258e321c75eb98c3f687b6d62f8d8e21737 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Jun 2018 12:23:07 +0300 Subject: [PATCH 050/144] gnu: classpath-jamvm-wrappers: Fix building on armhf-linux. * gnu/packages/java.scm (classpath-jamvm-wrappers)[arguments]: Change the flags used in custom script for armhf-linux. --- gnu/packages/java.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c0a7cd756a..c11beff445 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -531,12 +531,20 @@ the standard javac executable."))) (for-each (lambda (tool) (with-output-to-file (string-append bin tool) (lambda _ - (format #t "#!~a/bin/sh + ,@(if (string-prefix? "armhf" (or (%current-system) + (%current-target-system))) + `((format #t "#!~a/bin/sh +~a/bin/jamvm -Xnocompact -classpath ~a/share/classpath/tools.zip \ +gnu.classpath.tools.~a.~a $@" + bash jamvm classpath tool + (if (string=? "native2ascii" tool) + "Native2ASCII" "Main"))) + `((format #t "#!~a/bin/sh ~a/bin/jamvm -Xnocompact -Xnoinlining -classpath ~a/share/classpath/tools.zip \ gnu.classpath.tools.~a.~a $@" bash jamvm classpath tool (if (string=? "native2ascii" tool) - "Native2ASCII" "Main")))) + "Native2ASCII" "Main")))))) (chmod (string-append bin tool) #o755)) (list "javah" "rmic" From 0c66a4ebb825616c00bf9daff32b915418f5e69f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Jun 2018 12:24:38 +0300 Subject: [PATCH 051/144] gnu: classpath@0.93: Use INVOKE. * gnu/packages/java.scm (classpath@0.93)[arguments]: Substitute INVOKE for SYSTEM*. --- gnu/packages/java.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c11beff445..4f0801fb82 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -151,7 +151,7 @@ and binary format defined in The Java Virtual Machine Specification.") #:phases (modify-phases %standard-phases (add-after 'install 'install-data - (lambda _ (zero? (system* "make" "install-data"))))))) + (lambda _ (invoke "make" "install-data")))))) (native-inputs `(("jikes" ,jikes) ("fastjar" ,fastjar) From 8e14634a885263c44d20f1d1ae3da7290e0e1307 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Jun 2018 12:25:43 +0300 Subject: [PATCH 052/144] gnu: ant-bootstrap: Use INVOKE. * gnu/packages/java.scm (ant-bootstrap)[arguments]: Substitute INVOKE for SYSTEM*. --- gnu/packages/java.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4f0801fb82..2551437ed2 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -262,9 +262,9 @@ JNI.") ;; any of the dependencies required to build and run the tests. (substitute* "build.xml" (("depends=\"jars,test-jar\"") "depends=\"jars\"")) - (zero? (system* "bash" "bootstrap.sh" - (string-append "-Ddist.dir=" - (assoc-ref %outputs "out")))))) + (invoke "bash" "bootstrap.sh" + (string-append "-Ddist.dir=" + (assoc-ref %outputs "out"))))) (add-after 'build 'strip-jar-timestamps ;based on ant-build-system (lambda* (#:key outputs #:allow-other-keys) (define (repack-archive jar) From 0b302a161daa6615aeb9f7f1c812539cbf01edb7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Jun 2018 12:26:57 +0300 Subject: [PATCH 053/144] gnu: ecj-bootstrap: Use INVOKE. * gnu/packages/java.scm (ecj-bootstrap)[arguments]: Substitute INVOKE for SYSTEM*. --- gnu/packages/java.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 2551437ed2..85d97ff9e0 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -359,10 +359,10 @@ build process and its dependencies, whereas Make uses Makefile format.") Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"))) ;; Compile it all! - (and (zero? (apply system* "jikes" - (find-files "." "\\.java$"))) - (zero? (system* "fastjar" "cvfm" - "ecj-bootstrap.jar" "manifest" "."))))) + (and (apply invoke "jikes" + (find-files "." "\\.java$")) + (invoke "fastjar" "cvfm" + "ecj-bootstrap.jar" "manifest" ".")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((share (string-append (assoc-ref outputs "out") From 15a59c21d3ac1e43f3145a5ef9219d8fc1c387af Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Jun 2018 12:27:45 +0300 Subject: [PATCH 054/144] gnu: classpath@0.99: Use INVOKE. * gnu/packages/java.scm (classpath@0.99)[arguments]: Substitute INVOKE for SYSTEM*. --- gnu/packages/java.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 85d97ff9e0..029e7bb698 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -500,7 +500,7 @@ the standard javac executable."))) #:phases (modify-phases %standard-phases (add-after 'install 'install-data - (lambda _ (zero? (system* "make" "install-data"))))))) + (lambda _ (invoke "make" "install-data")))))) (native-inputs `(("ecj-bootstrap" ,ecj-bootstrap) ("ecj-javac-wrapper" ,ecj-javac-wrapper) From 4c65eb43c7021999072aeed05d8a18a0c0f4f300 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Jun 2018 12:28:33 +0300 Subject: [PATCH 055/144] gnu: classpath-devel: Use INVOKE. * gnu/packages/java.scm (classpath-devel)[arguments]: Substitute INVOKE for SYSTEM*. --- gnu/packages/java.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 029e7bb698..04342d3104 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -617,7 +617,7 @@ machine."))) (("@Override") "")) #t)) (add-after 'install 'install-data - (lambda _ (zero? (system* "make" "install-data"))))))) + (lambda _ (invoke "make" "install-data")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) From 7c3bea7e6299e1026c7964c83986a6b6c220879a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 22 Jun 2018 18:18:07 +0200 Subject: [PATCH 056/144] gnu: nss, nss-certs: Update to 3.38 [fixes CVE-2018-0495]. * gnu/packages/certs.scm (nss-certs): Update to 3.38. * gnu/packages/gnuzilla.scm (nss): Likewise. --- gnu/packages/certs.scm | 4 ++-- gnu/packages/gnuzilla.scm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index 0b8d449998..cb05fb83fc 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -76,7 +76,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.37.3") + (version "3.38") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -87,7 +87,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "1gn5bjhkvnh3zc7h74qy2y3a03rbn85qqgxqdf3bs46h2nvbpwls")))) + "0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index ba45d1f4f6..c52d21d8e3 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -291,7 +291,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.37.3") + (version "3.38") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -302,7 +302,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "1gn5bjhkvnh3zc7h74qy2y3a03rbn85qqgxqdf3bs46h2nvbpwls")) + "0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch" "nss-increase-test-timeout.patch")))) From 3272bcfd5657c4b7ff2776d0697318ca265b32c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Tue, 26 Jun 2018 20:28:39 +0800 Subject: [PATCH 057/144] Revert "gnu: gnu: Make alsa find its plugins by setting ALSA_PLUGIN_DIR." This reverts commit 2101cc3fb691f443b830fdf5f846ded5fa018739. With commit 1e3861eb, we can do it without ALSA_PLUGIN_DIR. See for details. --- gnu/local.mk | 1 - gnu/packages/linux.scm | 9 +- .../alsa-lib-add-environment-variable.patch | 110 ------------------ 3 files changed, 1 insertion(+), 119 deletions(-) delete mode 100644 gnu/packages/patches/alsa-lib-add-environment-variable.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5b915317d9..672c002eb6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -563,7 +563,6 @@ dist_patch_DATA = \ %D%/packages/patches/aegis-test-fixup-1.patch \ %D%/packages/patches/aegis-test-fixup-2.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ - %D%/packages/patches/alsa-lib-add-environment-variable.patch \ %D%/packages/patches/amule-crypto-6.patch \ %D%/packages/patches/ansible-wrap-program-hack.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7367b953f7..a28aa5a2ea 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -981,15 +981,8 @@ intercept and print the system calls executed by the program.") version ".tar.bz2")) (sha256 (base32 - "096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z")) - (patches (search-patches "alsa-lib-add-environment-variable.patch")))) + "096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z")))) (build-system gnu-build-system) - (native-search-paths - (list (search-path-specification - (variable "ALSA_PLUGIN_DIR") - (file-type 'regular) - (separator #f) ;single entry - (files '("lib/alsa-lib"))))) (home-page "https://www.alsa-project.org/") (synopsis "The Advanced Linux Sound Architecture libraries") (description diff --git a/gnu/packages/patches/alsa-lib-add-environment-variable.patch b/gnu/packages/patches/alsa-lib-add-environment-variable.patch deleted file mode 100644 index a468a7fc4f..0000000000 --- a/gnu/packages/patches/alsa-lib-add-environment-variable.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 1822fb453128a1b5de93b4c590cd272d6488a077 Mon Sep 17 00:00:00 2001 -From: Julien Lepiller -Date: Fri, 25 May 2018 19:26:58 +0200 -Subject: [PATCH] Add support for a ALSA_PLUGIN_DIR environment variable. - -If it is not set, default to previous behavior. ---- - src/control/control.c | 6 +++++- - src/dlmisc.c | 9 +++++++-- - src/pcm/pcm.c | 9 +++++++-- - src/pcm/pcm_rate.c | 13 +++++++++---- - 4 files changed, 28 insertions(+), 9 deletions(-) - -diff --git a/src/control/control.c b/src/control/control.c -index 11f7815..9dba7dd 100644 ---- a/src/control/control.c -+++ b/src/control/control.c -@@ -1331,7 +1331,11 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name, - build_in++; - } - if (*build_in == NULL) { -- buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32); -+ char* plugdir = ALSA_PLUGIN_DIR; -+ char* envplugdir = getenv("ALSA_PLUGIN_DIR"); -+ if(envplugdir != NULL) -+ plugdir = envplugdir; -+ buf1 = malloc(strlen(str) + strlen(plugdir) + 32); - if (buf1 == NULL) { - err = -ENOMEM; - goto _err; -diff --git a/src/dlmisc.c b/src/dlmisc.c -index 3757d33..92aa864 100644 ---- a/src/dlmisc.c -+++ b/src/dlmisc.c -@@ -82,9 +82,14 @@ void *snd_dlopen(const char *name, int mode, char *errbuf, size_t errbuflen) - char *filename = NULL; - - if (name && name[0] != '/') { -- filename = alloca(sizeof(ALSA_PLUGIN_DIR) + 1 + strlen(name) + 1); -+ char* plugdir = ALSA_PLUGIN_DIR; -+ char* envplugdir = getenv("ALSA_PLUGIN_DIR"); -+ if(envplugdir != NULL) -+ plugdir = envplugdir; -+ -+ filename = malloc(strlen(plugdir) + 1 + strlen(name) + 1); - if (filename) { -- strcpy(filename, ALSA_PLUGIN_DIR); -+ strcpy(filename, plugdir); - strcat(filename, "/"); - strcat(filename, name); - handle = dlopen(filename, mode); -diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c -index 11aec80..590e8b6 100644 ---- a/src/pcm/pcm.c -+++ b/src/pcm/pcm.c -@@ -2496,13 +2496,18 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name, - build_in++; - } - if (*build_in == NULL) { -- buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32); -+ char* plugdir = ALSA_PLUGIN_DIR; -+ char* envplugdir = getenv("ALSA_PLUGIN_DIR"); -+ if(envplugdir != NULL) -+ plugdir = envplugdir; -+ buf1 = malloc(strlen(str) + strlen(plugdir) + 32); -+ - if (buf1 == NULL) { - err = -ENOMEM; - goto _err; - } - lib = buf1; -- sprintf(buf1, "%s/libasound_module_pcm_%s.so", ALSA_PLUGIN_DIR, str); -+ sprintf(buf1, "%s/libasound_module_pcm_%s.so", plugdir, str); - } - } - #ifndef PIC -diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c -index 4e0c7ca..8694a38 100644 ---- a/src/pcm/pcm_rate.c -+++ b/src/pcm/pcm_rate.c -@@ -1260,7 +1260,8 @@ static const char *const default_rate_plugins[] = { - - static int rate_open_func(snd_pcm_rate_t *rate, const char *type, const snd_config_t *converter_conf, int verbose) - { -- char open_name[64], open_conf_name[64], lib_name[128], *lib = NULL; -+ char open_name[64], open_conf_name[64], *lib = NULL; -+ char *buf1; - snd_pcm_rate_open_func_t open_func; - snd_pcm_rate_open_conf_func_t open_conf_func; - int err; -@@ -1268,9 +1269,13 @@ static int rate_open_func(snd_pcm_rate_t *rate, const char *type, const snd_conf - snprintf(open_name, sizeof(open_name), "_snd_pcm_rate_%s_open", type); - snprintf(open_conf_name, sizeof(open_conf_name), "_snd_pcm_rate_%s_open_conf", type); - if (!is_builtin_plugin(type)) { -- snprintf(lib_name, sizeof(lib_name), -- "%s/libasound_module_rate_%s.so", ALSA_PLUGIN_DIR, type); -- lib = lib_name; -+ char* plugdir = ALSA_PLUGIN_DIR; -+ char* envplugdir = getenv("ALSA_PLUGIN_DIR"); -+ if(envplugdir != NULL) -+ plugdir = envplugdir; -+ buf1 = malloc(strlen(type) + strlen(plugdir) + 32); -+ sprintf(buf1, "%s/libasound_module_rate_%s.so", plugdir, type); -+ lib = buf1; - } - - rate->rate_min = SND_PCM_PLUGIN_RATE_MIN; --- -2.17.0 - From b6dc384a5a2eaf1eb2de20ca06bd14860d2638b6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Jun 2018 22:16:08 +0300 Subject: [PATCH 058/144] gnu: ecj-javac-wrapper: Remove unnecessary build flags. * gnu/packages/java.scm (ecj-javac-wrapper)[arguments]: Remove unnecessary build flags passed to the java command. --- gnu/packages/java.scm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f48305132a..e28ddc4bce 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -437,11 +437,6 @@ requirement for all GNU Classpath releases after version 0.93.") args defaults)) (apply system* ,java (append - (list "-Xnocompact") - ,,@(if (string-prefix? "armhf" (or (%current-system) - (%current-target-system))) - '() - `((list "-Xnoinlining"))) ;; Remove "-J" prefix (map (cut string-drop <> 2) vm-args) '("org.eclipse.jdt.internal.compiler.batch.Main") From 0e6cce2e01c1ff89e373cc77578853de11a7e8eb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 25 Jun 2018 18:53:49 -0400 Subject: [PATCH 059/144] meson-build-system: Return #t from all phases. * guix/build/meson-build-system.scm (configure, build, check, install): (fix-runpath): Use 'invoke' and return #t from all phases. --- guix/build/meson-build-system.scm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/guix/build/meson-build-system.scm b/guix/build/meson-build-system.scm index e7690a4c37..e4aae8212f 100644 --- a/guix/build/meson-build-system.scm +++ b/guix/build/meson-build-system.scm @@ -58,15 +58,14 @@ (mkdir build-dir) (chdir build-dir) - (zero? (apply system* "meson" args)))) + (apply invoke "meson" args))) (define* (build #:key parallel-build? #:allow-other-keys) "Build a given meson package." - (zero? (apply system* "ninja" - (if parallel-build? - `("-j" ,(number->string (parallel-job-count))) - '("-j" "1"))))) + (invoke "ninja" "-j" (if parallel-build? + (number->string (parallel-job-count)) + "1"))) (define* (check #:key test-target parallel-tests? tests? #:allow-other-keys) @@ -75,13 +74,13 @@ (number->string (parallel-job-count)) "1")) (if tests? - (zero? (system* "ninja" test-target)) + (invoke "ninja" test-target) (begin (format #t "test suite not run~%") #t))) (define* (install #:rest args) - (zero? (system* "ninja" "install"))) + (invoke "ninja" "install")) (define* (fix-runpath #:key (elf-directories '("lib" "lib64" "libexec" "bin" "sbin")) @@ -135,7 +134,7 @@ for example libraries only needed for the tests." (find-files dir elf-pred)) existing-elf-dirs)))) (for-each (lambda (elf-file) - (system* "patchelf" "--shrink-rpath" elf-file) + (invoke "patchelf" "--shrink-rpath" elf-file) (handle-file elf-file elf-list)) elf-list))))) (for-each handle-output outputs) From 2c8ac3641a673328d19677f8c8f2ebf690ad3c0e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 28 Jun 2018 03:52:08 -0400 Subject: [PATCH 060/144] gnu: java: Return #t from all phases and snippets. * guix/build/java-utils.scm (ant-build-javadoc): Use invoke; return #t. * guix/build/ant-build-system.scm (generate-jar-indices): Return #t and remove vestigal plumbing. * gnu/packages/java.scm (classpath-bootstrap, ant-bootstrap, classpath-devel) (icedtea-6, icedtea-7, java-plexus-sec-dispatcher, ant/java8, clojure) (java-classpathx-servletapi, java-swt, java-qdox-1.12, java-hamcrest-core) (java-plexus-archiver, java-plexus-sec-dispatcher, java-modello-plugins-xml) (java-asm, java-commons-collections, java-commons-bsf, java-slf4j-api) (java-slf4j-api, java-slf4j-simple, java-stringtemplate-3) (java-stringtemplate, antlr3, antlr3-3.3, antlr3-3.1, java-ops4j-base-lang) (java-ops4j-pax-tinybundles, java-ops4j-pax-exam-core-spi) (java-fasterxml-jackson-core, java-fasterxml-jackson-databind) (java-fasterxml-jackson-modules-base-jaxb, java-ecj-3, java-ecj-3.5) (java-fasterxml-jackson-dataformat-yaml, java-woodstox-core) (java-fasterxml-jackson-dataformat-xml, java-testng, java-jnacl) (java-bouncycastle, java-powermock-core, java-powermock-modules-junit4) (java-jansi-native, java-jansi, java-commons-httpclient, java-commons-vfs) (java-apache-ivy, java-janino, java-logback-core): Return #t from all phases and snippets, use invoke where appropriate, and remove vestigial plumbing. --- gnu/packages/java.scm | 359 +++++++++++++++++--------------- guix/build/ant-build-system.scm | 9 +- guix/build/java-utils.scm | 2 +- 3 files changed, 202 insertions(+), 168 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e28ddc4bce..043696ca98 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -718,34 +718,32 @@ machine."))) (modify-phases %standard-phases (replace 'unpack (lambda* (#:key source inputs #:allow-other-keys) - (and (zero? (system* "tar" "xvf" source)) - (begin - (chdir (string-append "icedtea6-" ,version)) - (mkdir "openjdk") - (copy-recursively (assoc-ref inputs "openjdk-src") "openjdk") - ;; The convenient OpenJDK source bundle is no longer - ;; available for download, so we have to take the sources - ;; from the Mercurial repositories and change the Makefile - ;; to avoid tests for the OpenJDK zip archive. - (with-directory-excursion "openjdk" - (for-each (lambda (part) - (mkdir part) - (copy-recursively - (assoc-ref inputs - (string-append part "-src")) - part)) - '("jdk" "hotspot" "corba" - "langtools" "jaxp" "jaxws"))) - (substitute* "Makefile.in" - (("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;") - "echo \"trust me\";") - ;; The contents of the bootstrap directory must be - ;; writeable but when copying from the store they are - ;; not. - (("mkdir -p lib/rt" line) - (string-append line "; chmod -R u+w $(BOOT_DIR)"))) - (zero? (system* "chmod" "-R" "u+w" "openjdk")) - #t)))) + (invoke "tar" "xvf" source) + (chdir (string-append "icedtea6-" ,version)) + (mkdir "openjdk") + (copy-recursively (assoc-ref inputs "openjdk-src") "openjdk") + ;; The convenient OpenJDK source bundle is no longer + ;; available for download, so we have to take the sources + ;; from the Mercurial repositories and change the Makefile + ;; to avoid tests for the OpenJDK zip archive. + (with-directory-excursion "openjdk" + (for-each (lambda (part) + (mkdir part) + (copy-recursively + (assoc-ref inputs + (string-append part "-src")) + part)) + '("jdk" "hotspot" "corba" + "langtools" "jaxp" "jaxws"))) + (substitute* "Makefile.in" + (("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;") + "echo \"trust me\";") + ;; The contents of the bootstrap directory must be + ;; writeable but when copying from the store they are + ;; not. + (("mkdir -p lib/rt" line) + (string-append line "; chmod -R u+w $(BOOT_DIR)"))) + (invoke "chmod" "-R" "u+w" "openjdk"))) (add-after 'unpack 'use-classpath (lambda* (#:key inputs #:allow-other-keys) (let ((jvmlib (assoc-ref inputs "classpath")) @@ -1081,23 +1079,22 @@ bootstrapping purposes.") (let ((dir (or dir (string-drop-right name 5)))) (mkdir dir) - (zero? (system* "tar" "xvf" - (assoc-ref inputs name) - "-C" dir - "--strip-components=1")))))) + (invoke "tar" "xvf" + (assoc-ref inputs name) + "-C" dir + "--strip-components=1"))))) (mkdir target) - (and - (zero? (system* "tar" "xvf" source - "-C" target "--strip-components=1")) - (chdir target) - (unpack "openjdk-src" "openjdk.src") - (with-directory-excursion "openjdk.src" - (for-each unpack - (filter (cut string-suffix? "-drop" <>) - (map (match-lambda - ((name . _) name)) - inputs)))) - #t)))) + (invoke "tar" "xvf" source + "-C" target "--strip-components=1") + (chdir target) + (unpack "openjdk-src" "openjdk.src") + (with-directory-excursion "openjdk.src" + (for-each unpack + (filter (cut string-suffix? "-drop" <>) + (map (match-lambda + ((name . _) name)) + inputs)))) + #t))) (add-after 'unpack 'fix-x11-extension-include-path (lambda* (#:key inputs #:allow-other-keys) (substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk" @@ -1322,17 +1319,18 @@ bootstrapping purposes.") (let ((line (read-line port))) (cond ((eof-object? line) #t) - ((regexp-exec error-pattern line) #f) + ((regexp-exec error-pattern line) + (error "test failed")) (else (loop))))))) (run-test (lambda (test) - (system* "make" test) + (invoke "make" test) (call-with-input-file (string-append "test/" test ".log") checker)))) - (or #t ; skip tests - (and (run-test "check-hotspot") - (run-test "check-langtools") - (run-test "check-jdk")))))) + (when #f ; skip tests + (run-test "check-hotspot") + (run-test "check-langtools") + (run-test "check-jdk"))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((doc (string-append (assoc-ref outputs "doc") @@ -1695,9 +1693,9 @@ new Date();")) ;; result in the tests to be run. (substitute* "build.xml" (("depends=\"jars,test-jar\"") "depends=\"jars\"")) - (zero? (system* "bash" "bootstrap.sh" - (string-append "-Ddist.dir=" - (assoc-ref outputs "out")))))))))) + (invoke "bash" "bootstrap.sh" + (string-append "-Ddist.dir=" + (assoc-ref outputs "out"))))))))) (native-inputs `(("jdk" ,icedtea-8 "jdk") ("zip" ,zip) @@ -1827,14 +1825,13 @@ new Date();")) (lambda (name) (mkdir-p name) (with-directory-excursion name - (or (zero? (system* "tar" - ;; Use xz for repacked tarball. - "--xz" - "--extract" - "--verbose" - "--file" (assoc-ref inputs name) - "--strip-components=1")) - (error "failed to unpack tarball" name))) + (invoke "tar" + ;; Use xz for repacked tarball. + "--xz" + "--extract" + "--verbose" + "--file" (assoc-ref inputs name) + "--strip-components=1")) (copy-recursively (string-append name "/src/main/clojure/") "src/clj/")) '("core-specs-alpha-src" @@ -1847,7 +1844,7 @@ new Date();")) ;; The javadoc target is not built by default. (add-after 'build 'build-doc (lambda _ - (zero? (system* "ant" "javadoc")))) + (invoke "ant" "javadoc"))) ;; Needed since no install target is provided. (replace 'install (lambda* (#:key outputs #:allow-other-keys) @@ -2009,7 +2006,8 @@ debugging, etc.") (lambda (in out) (display "Manifest-Version: 1.0 Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n" - out))))) + out))) + #t)) (replace 'install (install-jars "."))))) (home-page "https://eclipse.org") (synopsis "Eclipse Java development tools core batch compiler") @@ -2042,7 +2040,8 @@ Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n" (lambda (in out) (dump-port in out) (display "Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n" - out))))) + out))) + #t)) (replace 'install (install-jars "."))))) (native-inputs `(("unzip" ,unzip))))) @@ -2509,7 +2508,7 @@ HDF5 files, building on the libraries provided by the HDF Group.") (modify-phases %standard-phases (replace 'install (lambda* (#:key make-flags #:allow-other-keys) - (zero? (apply system* `("ant" "dist" ,@make-flags)))))))) + (apply invoke `("ant" "dist" ,@make-flags))))))) (home-page "https://www.gnu.org/software/classpathx/") (synopsis "Java servlet API implementation") (description "This is the GNU servlet API distribution, part of the @@ -2551,11 +2550,11 @@ API and version 2.1 of the Java ServerPages API.") (modify-phases %standard-phases (replace 'unpack (lambda* (#:key source #:allow-other-keys) - (and (mkdir "swt") - (zero? (system* "unzip" source "-d" "swt")) - (chdir "swt") - (mkdir "src") - (zero? (system* "unzip" "src.zip" "-d" "src"))))) + (mkdir "swt") + (invoke "unzip" source "-d" "swt") + (chdir "swt") + (mkdir "src") + (invoke "unzip" "src.zip" "-d" "src"))) ;; The classpath contains invalid icecat jars. Since we don't need ;; anything other than the JDK on the classpath, we can simply unset ;; it. @@ -2570,7 +2569,7 @@ API and version 2.1 of the Java ServerPages API.") (mkdir-p lib) (setenv "OUTPUT_DIR" lib) (with-directory-excursion "src" - (zero? (system* "bash" "build.sh")))))) + (invoke "bash" "build.sh"))))) (add-after 'install 'install-native (lambda* (#:key outputs #:allow-other-keys) (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) @@ -2656,7 +2655,7 @@ decompression and random access decompression have been fully implemented.") (lambda* (#:key source #:allow-other-keys) (mkdir "src") (with-directory-excursion "src" - (zero? (system* "jar" "-xf" source))))) + (invoke "jar" "-xf" source)))) ;; At this point we don't have junit, so we must remove the API ;; tests. (add-after 'unpack 'delete-tests @@ -2767,7 +2766,8 @@ private Method[] getSortedMethods() { return _allMethods; } -private Method[] allMethods = getSortedMethods();"))))) +private Method[] allMethods = getSortedMethods();"))) + #t)) (add-before 'build 'do-not-use-bundled-qdox (lambda* (#:key inputs #:allow-other-keys) (substitute* "build.xml" @@ -3058,7 +3058,8 @@ reusing it in maven.") (lambda _ ;; Requires an older version of plexus container (delete-file - "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java"))) + "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java") + #t)) (add-before 'build 'copy-resources (lambda _ (mkdir-p "build/classes/META-INF/plexus") @@ -3251,15 +3252,15 @@ Compiler component."))) (add-before 'build 'generate-models (lambda* (#:key inputs #:allow-other-keys) (define (modello-single-mode file version mode) - (zero? (system* "java" - "org.codehaus.modello.ModelloCli" - file mode "src/main/java" version - "false" "true"))) + (invoke "java" + "org.codehaus.modello.ModelloCli" + file mode "src/main/java" version + "false" "true")) (let ((file "src/main/mdo/settings-security.mdo")) - (and (modello-single-mode file "1.0.0" "java") (modello-single-mode file "1.0.0" "xpp3-reader") - (modello-single-mode file "1.0.0" "xpp3-writer"))))) + (modello-single-mode file "1.0.0" "xpp3-writer")) + #t)) (add-before 'build 'generate-components.xml (lambda _ (mkdir-p "build/classes/META-INF/plexus") @@ -3288,10 +3289,12 @@ Compiler component."))) \n \n \n -\n"))))) +\n"))) + #t)) (add-before 'check 'fix-paths (lambda _ - (copy-recursively "src/test/resources" "target")))))) + (copy-recursively "src/test/resources" "target") + #t))))) (inputs `(("java-plexus-cipher" ,java-plexus-cipher))) (native-inputs @@ -3514,7 +3517,8 @@ XSD and documentation.") (with-directory-excursion "modello-plugins/modello-plugin-xml/src/test" (substitute* "java/org/codehaus/modello/plugins/xml/XmlModelloPluginTest.java" - (("src/test") "modello-plugins/modello-plugin-xml/src/test")))))))) + (("src/test") "modello-plugins/modello-plugin-xml/src/test"))) + #t))))) (inputs `(("java-modello-core" ,java-modello-core) ("java-modello-plugins-java" ,java-modello-plugins-java) @@ -3609,9 +3613,9 @@ on the XPP3 API (XML Pull Parser)."))) ;; We cannot use the "jar" target because it depends on a couple ;; of unpackaged, complicated tools. (mkdir "dist") - (zero? (system* "jar" - "-cf" (string-append "dist/asm-" ,version ".jar") - "-C" "output/build/tmp" ".")))) + (invoke "jar" + "-cf" (string-append "dist/asm-" ,version ".jar") + "-C" "output/build/tmp" "."))) (replace 'install (install-jars "dist"))))) (native-inputs @@ -4099,7 +4103,8 @@ are many features, including: (mkdir-p "build/conf") (call-with-output-file "build/conf/MANIFEST.MF" (lambda (file) - (format file "Manifest-Version: 1.0\n"))))) + (format file "Manifest-Version: 1.0\n"))) + #t)) (replace 'install (install-jars "build")))))))) @@ -4345,7 +4350,8 @@ in the @code{java.lang} package. The following classes are included: (property (@ (name "tests.dir") (value "src/org/apache/bsf/test"))) (property (@ (name "build.tests") (value "build/test-classes"))) (property (@ (name "build.dest") (value "build/classes")))) - port))))) + port))) + #t)) (replace 'install (install-jars "build"))))) (native-inputs `(("java-junit" ,java-junit))) @@ -5792,8 +5798,8 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the ;; pom.xml ignores these files in the jar creation process. If we don't, ;; we get the error "This code should have never made it into slf4j-api.jar" (delete-file-recursively "build/classes/org/slf4j/impl") - (zero? (system* "jar" "-cf" "build/jar/slf4j-api.jar" "-C" - "build/classes" ".")))) + (invoke "jar" "-cf" "build/jar/slf4j-api.jar" "-C" + "build/classes" "."))) (add-before 'check 'dont-test-abstract-classes (lambda _ ;; abstract classes are not meant to be run with junit @@ -5801,7 +5807,8 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the (("") (string-append "" "")))))))) + ".java\" />"))) + #t))))) (inputs `(("java-junit" ,java-junit) ("java-hamcrest-core" ,java-hamcrest-core))) @@ -5842,10 +5849,9 @@ time.") (setenv "CLASSPATH" (string-append (getcwd) ":" (getenv "CLASSPATH"))) ;; ... and build test helper classes here: - (zero? - (apply system* - `("javac" "-d" "." - ,@(find-files "slf4j-api/src/test" ".*\\.java"))))))))) + (apply invoke + `("javac" "-d" "." + ,@(find-files "slf4j-api/src/test" ".*\\.java")))))))) (inputs `(("java-junit" ,java-junit) ("java-hamcrest-core" ,java-hamcrest-core) @@ -5944,11 +5950,12 @@ tree walking, and translation.") (add-before 'build 'generate-grammar (lambda _ (with-directory-excursion "src/org/antlr/stringtemplate/language/" - (every (lambda (file) - (format #t "~a\n" file) - (zero? (system* "antlr" file))) - '("template.g" "angle.bracket.template.g" "action.g" - "eval.g" "group.g" "interface.g")))))))) + (for-each (lambda (file) + (format #t "~a\n" file) + (invoke "antlr" file)) + '("template.g" "angle.bracket.template.g" "action.g" + "eval.g" "group.g" "interface.g"))) + #t))))) (native-inputs `(("antlr" ,antlr2) ("java-junit" ,java-junit))) @@ -6006,10 +6013,11 @@ StringTemplate also powers ANTLR.") (add-before 'build 'generate-grammar (lambda _ (with-directory-excursion "src/org/stringtemplate/v4/compiler/" - (every (lambda (file) - (format #t "~a\n" file) - (zero? (system* "antlr3" file))) - '("STParser.g" "Group.g" "CodeGenerator.g")))))))) + (for-each (lambda (file) + (format #t "~a\n" file) + (invoke "antlr3" file)) + '("STParser.g" "Group.g" "CodeGenerator.g"))) + #t))))) (inputs `(("antlr3" ,antlr3-bootstrap) ("antlr2" ,antlr2) @@ -6076,14 +6084,15 @@ StringTemplate also powers ANTLR.") "/lib") ".*\\.jar")) " org.antlr.Tool $*")))) - (chmod (string-append bin "/antlr3") #o755)))) + (chmod (string-append bin "/antlr3") #o755)) + #t)) (add-before 'build 'generate-grammar (lambda _ (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/") (for-each (lambda (file) (display file) (newline) - (system* "antlr3" file)) + (invoke "antlr3" file)) '("ANTLR.g" "ANTLRTreePrinter.g" "ActionAnalysis.g" "AssignTokenTypesWalker.g" "ActionTranslator.g" "TreeToNFAConverter.g" @@ -6094,14 +6103,15 @@ StringTemplate also powers ANTLR.") (substitute* "ANTLRv3Parser.java" (("public Object getTree") "public CommonTree getTree")) (chdir "../../../../../java") - (system* "antlr" "-o" "org/antlr/tool" - "org/antlr/tool/serialize.g") + (invoke "antlr" "-o" "org/antlr/tool" + "org/antlr/tool/serialize.g") (substitute* "org/antlr/tool/LeftRecursiveRuleAnalyzer.java" (("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*; import org.antlr.grammar.v3.ANTLRTreePrinter;")) (substitute* "org/antlr/tool/ErrorManager.java" (("case NO_SUCH_ATTRIBUTE_PASS_THROUGH:") "")) - (chdir "../../../.."))) + (chdir "../../../..") + #t)) (add-before 'build 'fix-build-xml (lambda _ (substitute* "build.xml" @@ -6112,7 +6122,8 @@ import org.antlr.grammar.v3.ANTLRTreePrinter;")) - -") "")) - (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") - ":build/classes" - ":build/test-classes") - "-Dtest.resources.dir=src/test/resources" - "org.testng.TestNG" "src/test/resources/testng.xml"))))))) + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") + ":build/classes" + ":build/test-classes") + "-Dtest.resources.dir=src/test/resources" + "org.testng.TestNG" "src/test/resources/testng.xml")))))) (propagated-inputs `(("junit" ,java-junit) ("java-jsr305" ,java-jsr305) @@ -8177,8 +8206,7 @@ to use.") ":build/classes" ":build/test-classes") "org.testng.TestNG" "-testclass" - "build/test-classes/com/neilalexander/jnacl/NaClTest.class") - #t))))) + "build/test-classes/com/neilalexander/jnacl/NaClTest.class")))))) (native-inputs `(("java-testng" ,java-testng) ("java-fest-util" ,java-fest-util) @@ -8361,8 +8389,7 @@ algorithms and xxHash hashing algorithm.") (replace 'build (lambda _ (invoke "ant" "-f" "ant/jdk15+.xml" "build-provider") - (invoke "ant" "-f" "ant/jdk15+.xml" "build") - #t)) + (invoke "ant" "-f" "ant/jdk15+.xml" "build"))) ;; FIXME: the tests freeze. ;; (replace 'check ;; (lambda _ @@ -8540,7 +8567,8 @@ done to the IDE or continuous integration servers which simplifies adoption.") (add-before 'build 'copy-resources (lambda _ (copy-recursively "powermock-core/src/main/resources" - "build/classes")))))) + "build/classes") + #t))))) (inputs `(("reflect" ,java-powermock-reflect) ("javassist" ,java-jboss-javassist))) @@ -8597,7 +8625,8 @@ done to the IDE or continuous integration servers which simplifies adoption.") ;; Our junit version is 4.12-SNAPSHOT (substitute* (find-files "powermock-modules/powermock-module-junit4" "PowerMockJUnit4MethodValidator.java") - (("4.12") "4.12-SNAPSHOT"))))))) + (("4.12") "4.12-SNAPSHOT")) + #t))))) (inputs `(("core" ,java-powermock-core) ("reflect" ,java-powermock-reflect) @@ -9062,8 +9091,7 @@ that is part of the SWT Tools project.") (string-append "-I" (assoc-ref inputs "jdk") "/include/linux") "-fPIC" "-O2") - (invoke "gcc" "-o" "libjansi.so" "-shared" "jansi_ttyname.o") - #t))) + (invoke "gcc" "-o" "libjansi.so" "-shared" "jansi_ttyname.o")))) (add-before 'build 'install-native (lambda _ (let ((dir (string-append "build/classes/META-INF/native/" @@ -9108,7 +9136,7 @@ console output.") (modify-phases %standard-phases (add-after 'check 'clear-term (lambda _ - (zero? (system* "echo" "-e" "\\e[0m"))))))) + (invoke "echo" "-e" "\\e[0m")))))) (inputs `(("java-jansi-native" ,java-jansi-native))) (native-inputs @@ -9572,7 +9600,8 @@ graphs, and pie charts.") '("src/java/org/apache/commons/httpclient/HttpContentTooLargeException.java" "src/examples/TrivialApp.java" "src/examples/ClientApp.java" "src/test/org/apache/commons/httpclient/TestHttps.java" - "src/test/org/apache/commons/httpclient/TestURIUtil2.java")))) + "src/test/org/apache/commons/httpclient/TestURIUtil2.java")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (invoke "ant" "dist" @@ -9622,7 +9651,8 @@ authentication, HTTP state management, and HTTP connection management.") (lambda _ (for-each delete-file-recursively '("commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav" - "commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs"))))))) + "commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs")) + #t))))) (inputs `(("java-commons-collections4" ,java-commons-collections4) ("java-commons-compress" ,java-commons-compress) @@ -9933,7 +9963,8 @@ jsch-agent-proxy with JSch."))) (find-files "." ".*.properties") (find-files "." ".*.xsd") (find-files "." ".*.xsl") - (find-files "." ".*.xml")))))) + (find-files "." ".*.xml")))) + #t)) (add-before 'build 'fix-vfs (lambda _ (substitute* @@ -9948,8 +9979,7 @@ jsch-agent-proxy with JSch."))) (add-before 'install 'repack (lambda _ (invoke "jar" "-cmf" "build/classes/META-INF/MANIFEST.MF" "build/jar/ivy.jar" - "-C" "build/classes" ".") - #t)) + "-C" "build/classes" "."))) (add-after 'install 'install-bin (lambda* (#:key outputs #:allow-other-keys) (let* ((bin (string-append (assoc-ref outputs "out") "/bin")) @@ -10162,7 +10192,8 @@ and @code{ISimpleCompiler} interfaces.") (modify-phases %standard-phases (add-before 'configure 'chdir (lambda _ - (chdir "janino")))))) + (chdir "janino") + #t))))) (inputs `(("java-commons-compiler" ,java-commons-compiler))) (native-inputs @@ -10187,7 +10218,9 @@ static code analysis or code manipulation."))) "1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi")) (modules '((guix build utils))) (snippet - '(delete-file-recursively "logback-access/lib")))) + '(begin + (delete-file-recursively "logback-access/lib") + #t)))) (build-system ant-build-system) (arguments `(#:jar-name "logback.jar" diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index 87c782d853..d79b4d503b 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -179,10 +179,11 @@ grafting works - and so that the garbage collector doesn't collect dependencies of this jar file." (define (generate-index jar) (invoke "jar" "-i" jar)) - (every (match-lambda - ((output . directory) - (every generate-index (find-files directory "\\.jar$")))) - outputs)) + (for-each (match-lambda + ((output . directory) + (for-each generate-index (find-files directory "\\.jar$")))) + outputs) + #t) (define* (strip-jar-timestamps #:key outputs #:allow-other-keys) diff --git a/guix/build/java-utils.scm b/guix/build/java-utils.scm index 402d377bf8..128be1edeb 100644 --- a/guix/build/java-utils.scm +++ b/guix/build/java-utils.scm @@ -31,7 +31,7 @@ (define* (ant-build-javadoc #:key (target "javadoc") (make-flags '()) #:allow-other-keys) - (zero? (apply system* `("ant" ,target ,@make-flags)))) + (apply invoke `("ant" ,target ,@make-flags))) (define* (install-jars jar-directory) "Install jar files from JAR-DIRECTORY to the default target directory. This From fa41a089a1713601648664242530a55b6f6b1d0c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 28 Jun 2018 05:47:48 -0400 Subject: [PATCH 061/144] gnu: icedtea-7: Return #t from custom check phase. * gnu/packages/java.scm (icedtea-7)[arguments]: Return #t from custom check phase. --- gnu/packages/java.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 043696ca98..747edc18d0 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1330,7 +1330,8 @@ bootstrapping purposes.") (when #f ; skip tests (run-test "check-hotspot") (run-test "check-langtools") - (run-test "check-jdk"))))) + (run-test "check-jdk")) + #t))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((doc (string-append (assoc-ref outputs "doc") From cb4b508cd68df89bfbd5255a0c5569f8318ad50f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 2 Jul 2018 12:07:58 +0200 Subject: [PATCH 062/144] build-system/meson: Really skip the 'fix-runpath' phase on armhf. This follows up commit d5b5a15a4046362377f1a45d466b43bb6e93d4f which doesn't work because %current-system etc expands before the actual build. Fixes . * guix/build-system/meson.scm (meson-build)[builder]: Compare against the already existing "system" variable rather than (%current-system). --- guix/build-system/meson.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm index 529a2b8b0f..e894e1472d 100644 --- a/guix/build-system/meson.scm +++ b/guix/build-system/meson.scm @@ -148,8 +148,7 @@ has a 'meson.build' file." #:search-paths ',(map search-path-specification->sexp search-paths) #:phases - (if (string-prefix? "arm" ,(or (%current-target-system) - (%current-system))) + (if (string-prefix? "arm" ,system) (modify-phases build-phases (delete 'fix-runpath)) build-phases) #:configure-flags ,configure-flags From c67f603d5508ff6fa8bf5b0185c53c40bc8646a3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 8 Jul 2018 18:28:43 +0200 Subject: [PATCH 063/144] gnu: xf86-video-sis: Fix FTBFS with xorg-server >= 1.20. * gnu/packages/patches/xf86-video-sis-xorg-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/xorg.scm (xf86-video-sis)[source](patches): Use it. --- gnu/local.mk | 1 + .../patches/xf86-video-sis-xorg-compat.patch | 18 ++++++++++++++++++ gnu/packages/xorg.scm | 1 + 3 files changed, 20 insertions(+) create mode 100644 gnu/packages/patches/xf86-video-sis-xorg-compat.patch diff --git a/gnu/local.mk b/gnu/local.mk index d2490dd5b7..89bad3d2ab 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1215,6 +1215,7 @@ dist_patch_DATA = \ %D%/packages/patches/xf86-video-i128-remove-mibstore.patch \ %D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \ %D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \ + %D%/packages/patches/xf86-video-sis-xorg-compat.patch \ %D%/packages/patches/xf86-video-tga-remove-mibstore.patch \ %D%/packages/patches/xfce4-panel-plugins.patch \ %D%/packages/patches/xfce4-session-fix-xflock4.patch \ diff --git a/gnu/packages/patches/xf86-video-sis-xorg-compat.patch b/gnu/packages/patches/xf86-video-sis-xorg-compat.patch new file mode 100644 index 0000000000..ebe9715d13 --- /dev/null +++ b/gnu/packages/patches/xf86-video-sis-xorg-compat.patch @@ -0,0 +1,18 @@ +Remove use of interface no longer provided by xorg-server. + +Patch taken from upstream: +https://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=4b1356a2b7fd06e9a05d134caa4033681c939737 + +diff --git a/src/sis_driver.c b/src/sis_driver.c +index 8f06164..513f68b 100644 +--- a/src/sis_driver.c ++++ b/src/sis_driver.c +@@ -2738,7 +2738,7 @@ SiSPrintModes(ScrnInfoPtr pScrn) + float hsync, refresh = 0.0; + char *desc, *desc2, *prefix, *uprefix, *output; + +- xf86DrvMsg(pScrn->scrnIndex, pScrn->virtualFrom, "Virtual size is %dx%d " ++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Virtual size is %dx%d " + "(pitch %d)\n", pScrn->virtualX, pScrn->virtualY, + pScrn->displayWidth); + diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 4ce02b783c..f253d79614 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3266,6 +3266,7 @@ Xorg X server.") "mirror://xorg/individual/driver/xf86-video-sis-" version ".tar.bz2")) + (patches (search-patches "xf86-video-sis-xorg-compat.patch")) (sha256 (base32 "03f1abjjf68y8y1iz768rn95va9d33wmbwfbsqrgl6k0gi0bf9jj")))) From a4edd9ad05821284f532cb912e757955cf656f7e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 8 Jul 2018 18:33:07 +0200 Subject: [PATCH 064/144] gnu: xf86-video-savage: Fix FTBFS with xorg-server >= 1.20. * gnu/packages/patches/xf86-video-savage-xorg-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/xorg.scm (xf86-video-savage)[source](patches): Use it. --- gnu/local.mk | 1 + .../xf86-video-savage-xorg-compat.patch | 33 +++++++++++++++++++ gnu/packages/xorg.scm | 1 + 3 files changed, 35 insertions(+) create mode 100644 gnu/packages/patches/xf86-video-savage-xorg-compat.patch diff --git a/gnu/local.mk b/gnu/local.mk index 89bad3d2ab..47963b6918 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1214,6 +1214,7 @@ dist_patch_DATA = \ %D%/packages/patches/xf86-video-geode-glibc-2.20.patch \ %D%/packages/patches/xf86-video-i128-remove-mibstore.patch \ %D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \ + %D%/packages/patches/xf86-video-savage-xorg-compat.patch \ %D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \ %D%/packages/patches/xf86-video-sis-xorg-compat.patch \ %D%/packages/patches/xf86-video-tga-remove-mibstore.patch \ diff --git a/gnu/packages/patches/xf86-video-savage-xorg-compat.patch b/gnu/packages/patches/xf86-video-savage-xorg-compat.patch new file mode 100644 index 0000000000..9524032676 --- /dev/null +++ b/gnu/packages/patches/xf86-video-savage-xorg-compat.patch @@ -0,0 +1,33 @@ +Fix build against xorg-server >= 1.20. + +Patch taken from upstream: +https://cgit.freedesktop.org/xorg/driver/xf86-video-savage/commit/?id=0ece556daa8a88771b669d8104396abd9166d2d0 + +diff --git a/src/savage_driver.c b/src/savage_driver.c +index 58a294d..3cda923 100644 +--- a/src/savage_driver.c ++++ b/src/savage_driver.c +@@ -2034,8 +2034,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags) + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Detected current MCLK value of %1.3f MHz\n", + mclk / 1000.0); + +- pScrn->maxHValue = 2048 << 3; /* 11 bits of h_total 8-pixel units */ +- pScrn->maxVValue = 2048; /* 11 bits of v_total */ + pScrn->virtualX = pScrn->display->virtualX; + pScrn->virtualY = pScrn->display->virtualY; + +@@ -3637,6 +3635,14 @@ static ModeStatus SavageValidMode(SCRN_ARG_TYPE arg, DisplayModePtr pMode, + (pMode->VDisplay > psav->PanelY))) + return MODE_PANEL; + ++ /* 11 bits of h_total 8-pixel units */ ++ if (pMode->HTotal > (2048 << 3)) ++ return MODE_BAD_HVALUE; ++ ++ /* 11 bits of v_total */ ++ if (pMode->VTotal > 2048) ++ return MODE_BAD_VVALUE; ++ + if (psav->UseBIOS) { + refresh = SavageGetRefresh(pMode); + return (SavageMatchBiosMode(pScrn,pMode->HDisplay, diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index f253d79614..ba3b68020a 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3214,6 +3214,7 @@ This driver is intended for ATI Rage 128 based cards.") "mirror://xorg/individual/driver/xf86-video-savage-" version ".tar.bz2")) + (patches (search-patches "xf86-video-savage-xorg-compat.patch")) (sha256 (base32 "11pcrsdpdrwk0mrgv83s5nsx8a9i4lhmivnal3fjbrvi3zdw94rc")))) From 68ee10da03b09c2acead8891e4b51c718c24d574 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 8 Jul 2018 19:06:14 +0200 Subject: [PATCH 065/144] gnu: xf86-video-r128: Fix FTBFS with xorg-server >= 1.20. * gnu/packages/xorg.scm (xf86-video-r128): Update to 6.10.2-0.c4c878d. [source]: Use GIT-FETCH. [arguments]: Add 'prevent-configure' phase. [native-inputs]: Add AUTOCONF, AUTOMAKE and LIBTOOL. --- gnu/packages/xorg.scm | 64 ++++++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index ba3b68020a..993c004887 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3175,33 +3175,47 @@ This driver is intended for the spice qxl virtio device.") (home-page "http://www.spice-space.org") (license license:x11))) - (define-public xf86-video-r128 - (package - (name "xf86-video-r128") - (version "6.10.2") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://xorg/individual/driver/xf86-video-r128-" - version - ".tar.bz2")) - (sha256 - (base32 - "1pkpka5m4cd6iy0f8iqnmg6xci14nb6887ilvxzn3xrsgx8j3nl4")))) - (build-system gnu-build-system) - (inputs `(("mesa" ,mesa) - ("xorgproto" ,xorgproto) - ("xorg-server" ,xorg-server))) - (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "https://www.x.org/wiki/") - (synopsis "ATI Rage 128 video driver for X server") - (description - "xf86-video-r128 is a video driver for the Xorg X server. + ;; We need a newer version than 6.10.2 to build against the latest xorg-server. + ;; Remove this binding and the bootstrap inputs when >6.10.2 is released. + (let ((commit "c4c878d2ccb75fa75afe46e0e50ee9975c5c57fc") + (revision "0")) + (package + (name "xf86-video-r128") + (version (git-version "6.10.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://anongit.freedesktop.org/git/xorg" + "/driver/" name ".git")) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01pff30zz4zxjhw28h8bn9x2kq7c6iswgn19b72wnfgl0arxb63j")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'bootstrap 'prevent-configure + (lambda _ + ;; Prevent autogen from calling "./configure" as part of + ;; the bootstrap step, which fails due to wrong shebang. + (setenv "NOCONFIGURE" "1") + #t))))) + (inputs `(("mesa" ,mesa) + ("xorgproto" ,xorgproto) + ("xorg-server" ,xorg-server))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (home-page "https://www.x.org/wiki/") + (synopsis "ATI Rage 128 video driver for X server") + (description + "xf86-video-r128 is a video driver for the Xorg X server. This driver is intended for ATI Rage 128 based cards.") - (license license:x11))) - + (license license:x11)))) (define-public xf86-video-savage (package From 2776b5d5bf3514717cf224de34c0bf2d894f1cee Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 9 Jul 2018 23:00:29 +0200 Subject: [PATCH 066/144] gnu: gnome-dictionary: Fix install phase. * gnu/packages/gnome.scm (gnome-dictionary)[arguments]: Add phase to prevent post-install script from running. --- gnu/packages/gnome.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b00076f630..04259e8f89 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6322,7 +6322,16 @@ fit the GNOME desktop.") (base32 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n")))) (build-system meson-build-system) - (arguments '(#:glib-or-gtk? #t)) + (arguments '(#:glib-or-gtk? #t + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-install-script + (lambda _ + ;; This script attempts to compile glib schemas + ;; and create an empty MIME database. We do + ;; that elsewhere, so prevent it from running. + (substitute* "build-aux/post-install.sh" + (("\\[ -z \"\\$DESTDIR\" \\]") "false")) + #t))))) (native-inputs `(("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) From cd6ae1cee95644b9aa712a7192bc9677a04c146b Mon Sep 17 00:00:00 2001 From: Julian Graham Date: Thu, 5 Jul 2018 11:06:02 -0400 Subject: [PATCH 067/144] gnu: gzochi: Update to 0.12. * gnu/packages/game-development.scm (gzochi): Update to 0.12. --- gnu/packages/game-development.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 4131c130ff..afabeb0c62 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2016, 2018 Ricardo Wurmus -;;; Copyright © 2016, 2017 Julian Graham +;;; Copyright © 2016, 2017, 2018 Julian Graham ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017 Peter Mikkelsen @@ -225,14 +225,14 @@ PCM data.") (define-public gzochi (package (name "gzochi") - (version "0.11.1") + (version "0.12") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/gzochi/gzochi-" version ".tar.gz")) (sha256 (base32 - "13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3")))) + "0h8yvk7154kd8zdfa9nqy73blrjq2x19kv305jcnwlmm09vvss59")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases From daf76c7cd54df428abc28d490747c7f83a844df0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 14:28:23 +0200 Subject: [PATCH 068/144] gnu-maintenance: Get GNU metadata from rec files. Suggested by Mike Gerwitz . * guix/gnu-maintenance.scm (%package-list-url): Use the .rec file. (%package-description-url): Likewise. (official-gnu-packages)[read-records]: Skip record descriptors. Rename fields to use underscores instead of hyphens. --- guix/gnu-maintenance.scm | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index c2a7a33b6a..3634f4bb27 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2012, 2013 Nikita Karetnikov ;;; ;;; This file is part of GNU Guix. @@ -82,13 +82,14 @@ (define %package-list-url (string->uri - (string-append %gnumaint-base-url "gnupackages.txt"))) + (string-append %gnumaint-base-url "rec/gnupackages.rec"))) (define %package-description-url ;; This file contains package descriptions in recutils format. - ;; See . + ;; See + ;; and . (string->uri - (string-append %gnumaint-base-url "pkgblurbs.txt"))) + (string-append %gnumaint-base-url "rec/pkgblurbs.rec"))) (define-record-type* gnu-package-descriptor @@ -121,7 +122,12 @@ to fetch the list of GNU packages over HTTP." (if (null? alist) (reverse result) (loop (recutils->alist port) - (cons alist result))))) + + ;; Ignore things like "%rec" (info "(recutils) Record + ;; Descriptors"). + (if (assoc-ref alist "package") + (cons alist result) + result))))) (define official-description (let ((db (read-records (fetch %package-description-url #:text? #t)))) @@ -148,12 +154,12 @@ to fetch the list of GNU packages over HTTP." (alist->record `(("description" . ,(official-description name)) ,@alist) make-gnu-package-descriptor - (list "package" "mundane-name" "copyright-holder" + (list "package" "mundane_name" "copyright_holder" "savannah" "fsd" "language" "logo" - "doc-category" "doc-summary" "description" - "doc-url" - "download-url") - '("doc-url" "language")))) + "doc_category" "doc_summary" "description" + "doc_url" + "download_url") + '("doc_url" "language")))) (let* ((port (fetch %package-list-url #:text? #t)) (lst (read-records port))) (close-port port) From 36adbc4310b6dba5a3c06c9d51fac99964e07431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 15:51:20 +0200 Subject: [PATCH 069/144] gnu: Add emacs-recent-addresses. * gnu/packages/emacs.scm (emacs-recent-addresses): New variable. --- gnu/packages/emacs.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c6c7a1df4b..5a3ba14875 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11410,3 +11410,27 @@ siblings and friends. This visual overview can also be used to browse your entries. You can think of entries as nodes in a mind map, or pages in a wiki.") (license license:expat))) + +(define-public emacs-recent-addresses + (let ((commit "d9da58db542089a1ceb5ef29e420dbfbc4a36373") + (revision "0")) + (package + (name "emacs-recent-addresses") + (home-page "http://nschum.de/src/emacs/recent-addresses/") + (version (git-version "0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nschum/recent-addresses.el") + (commit commit))) + (sha256 + (base32 + "175rvcwmkb5z7ss7q2y5178mvdvp5bhn39irz80qinlvaz8fm4nk")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (synopsis "Record recently-used email addressed and auto-complete them") + (description + "@code{recent-addresses} is an Emacs allows you to quickly look up +previously used email addresses. It can be used alongside the Gnus email +client.") + (license license:gpl2+)))) From d1f90b9bfb3ce3777294bd13b0c501d8546e5576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 16:06:31 +0200 Subject: [PATCH 070/144] gnu: Add emacs-fold-dwim. * gnu/packages/emacs.scm (emacs-fold-dwim): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 5a3ba14875..6bd67dcef2 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11434,3 +11434,26 @@ wiki.") previously used email addresses. It can be used alongside the Gnus email client.") (license license:gpl2+)))) + +(define-public emacs-fold-dwim + (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b") + (revision "0")) + (package + (name "emacs-fold-dwim") + (version (git-version "1.2" revision commit)) + (home-page "https://github.com/emacsattic/fold-dwim") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (sha256 + (base32 + "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (synopsis "Unified user interface for Emacs folding modes") + (description + "DWIM stands for \"do what I mean\", as in the idea that one keystroke +can do different things depending on the context. In this package, it means +that, if the cursor is in a currently hidden folded construction, we want to +show it; if it's not, we want to hide whatever fold the cursor is in.") + (license license:gpl2+)))) From fc83ca2b2f5cbfddc7d64a69bb13730d63e3e3b7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 11 Jul 2018 22:04:12 +0300 Subject: [PATCH 071/144] gnu: btrfs-progs: Update home-page. * gnu/packages/linux.scm (btrfs-progs)[home-page]: Update to redirected home-page. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index cd3924ccee..e9175eb282 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3290,7 +3290,7 @@ and copy/paste text in the console and in xterm.") ("which" ,which) ;; The tests need 'grep' with perl regexp support. ("grep" ,grep))) - (home-page "https://btrfs.wiki.kernel.org/") + (home-page "https://btrfs.wiki.kernel.org/index.php/Main_Page") (synopsis "Create and manage btrfs copy-on-write file systems") (description "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux aimed at implementing advanced features while focusing on fault tolerance, From 1a80f1a9e3b954c7b5a5872bb2b460a98cd9efef Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 11 Jul 2018 22:08:55 +0300 Subject: [PATCH 072/144] gnu: msmtp: Update to 1.6.8. * gnu/packages/mail.scm (msmtp): Update to 1.6.8. [source]: Update to new source location. [home-page]: Update to new home-page. --- gnu/packages/mail.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index bf77b0a7fe..f127e27e3c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1071,15 +1071,15 @@ which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.6.6") + (version "1.6.8") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/msmtp/msmtp/" version + (uri (string-append "https://marlam.de/msmtp/releases/" "/msmtp-" version ".tar.xz")) (sha256 (base32 - "0ppvww0sb09bnsrpqnvlrn8vx231r24xn2iiwpy020mxc8gxn5fs")))) + "1ysrnshvwhzwmvb2walw5i9jdzlvmckj7inr0xnvb26q0jirbzsm")))) (build-system gnu-build-system) (inputs `(("libidn" ,libidn) @@ -1089,7 +1089,7 @@ which can add many functionalities to the base client.") ("gsasl" ,gsasl))) (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "http://msmtp.sourceforge.net/") + (home-page "https://marlam.de/msmtp/") (arguments `(#:configure-flags (list "--with-libgsasl" "--with-libidn" From d1af9a8c224371505258e246b5a95caa0d2f0598 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 15:56:41 +0200 Subject: [PATCH 073/144] gnu: make-u-boot-package: Return #t from "install" phase. * gnu/packages/bootloaders.scm (make-u-boot-package)[arguments]<#:phases> [install]: Return #t. --- gnu/packages/bootloaders.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 73130b7312..17fac73749 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -519,7 +519,8 @@ board-independent tools."))) (let ((target-file (string-append libexec "/" file))) (mkdir-p (dirname target-file)) (copy-file file target-file))) - uboot-files)))))))))) + uboot-files) + #t))))))))) (define-public u-boot-vexpress (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf")) From 10186ee2d33ea54b3d0a9cd1a0275055a3ed2594 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 16:10:36 +0200 Subject: [PATCH 074/144] gnu: u-boot-tools: Install "sunxi-spl-image-builder". * gnu/packages/bootloaders.scm (u-boot-tools)[arguments]<#:phases>[build]: Build sunxi-spl-image-builder. (u-boot-tools)[arguments]<#:phases>[install]: Install sunxi-spl-image-builder. --- gnu/packages/bootloaders.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 17fac73749..6ea0ecba8d 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -426,7 +426,8 @@ def test_ctrl_c")) (replace 'build (lambda* (#:key inputs make-flags #:allow-other-keys) (apply invoke "make" "tools-only" make-flags) - (apply invoke "make" "envtools" make-flags))) + (apply invoke "make" "envtools" make-flags) + (invoke "make" "-C" "tools" "sunxi-spl-image-builder"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -443,7 +444,8 @@ def test_ctrl_c")) "tools/mkimage" "tools/proftool" "tools/fdtgrep" - "tools/env/fw_printenv")) + "tools/env/fw_printenv" + "tools/sunxi-spl-image-builder")) #t))) (delete 'check) (add-after 'install 'check From 9e84a4d6a561bf6516a64392501178be4ba488c9 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 17:05:53 +0200 Subject: [PATCH 075/144] gnu: u-boot-tools: Simplify build. * gnu/packages/bootloaders.scm (u-boot-tools)[arguments]<#:phases>[build]: Modify. --- gnu/packages/bootloaders.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 6ea0ecba8d..7599f4ac25 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -425,9 +425,7 @@ def test_ctrl_c")) (apply invoke "make" "tools_defconfig" make-flags))) (replace 'build (lambda* (#:key inputs make-flags #:allow-other-keys) - (apply invoke "make" "tools-only" make-flags) - (apply invoke "make" "envtools" make-flags) - (invoke "make" "-C" "tools" "sunxi-spl-image-builder"))) + (apply invoke "make" "tools-all" make-flags))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) From e73ed2a1ecd4ad55fe4769bf3ad65d0a161881c6 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 17:03:16 +0200 Subject: [PATCH 076/144] gnu: Add ghc-regex-tdfa-text. * gnu/packages/haskell.scm (ghc-regex-tdfa-text): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2176f07cc4..ab8ed235bc 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2487,6 +2487,31 @@ Haskell library @code{regex-base}.") @code{libtre} (fork by Roman Cheplyaka).") (license license:bsd-3))) +(define-public ghc-regex-tdfa-text + (package + (name "ghc-regex-tdfa-text") + (version "1.0.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/regex-tdfa-text/" + "regex-tdfa-text-" version ".tar.gz")) + (sha256 + (base32 + "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq")))) + (build-system haskell-build-system) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-regex-base" ,ghc-regex-base) + ("ghc-regex-tdfa" ,ghc-regex-tdfa))) + (home-page + "http://hackage.haskell.org/package/regex-tdfa-text") + (synopsis "Text interface for regex-tdfa") + (description + "This provides an extra text interface for regex-tdfa.") + (license license:bsd-3))) + (define-public ghc-parsers (package (name "ghc-parsers") From 66413378e8eb68ebcfeb1e2f4154a4443dfa21ca Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 17:04:56 +0200 Subject: [PATCH 077/144] gnu: Add ghc-xdg-basedir. * gnu/packages/haskell.scm (ghc-xdg-basedir): New variable. --- gnu/packages/haskell.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ab8ed235bc..8d2dcba208 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9703,4 +9703,23 @@ serialization code.") disk space usage.") (license license:bsd-3))) +(define-public ghc-xdg-basedir + (package + (name "ghc-xdg-basedir") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/xdg-basedir/" + "xdg-basedir-" version ".tar.gz")) + (sha256 + (base32 + "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4")))) + (build-system haskell-build-system) + (home-page "http://github.com/willdonnelly/xdg-basedir") + (synopsis "XDG Base Directory library for Haskell") + (description "This package provides a library implementing the XDG Base Directory spec.") + (license license:bsd-3))) + ;;; haskell.scm ends here From f3a422511f793fb6c6cfeec2bb8735965a03294a Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 10 Jul 2018 19:00:48 +0200 Subject: [PATCH 078/144] store: Add `binary-file'. * guix/store.scm (binary-file): New function. * doc/guix.texi (The Store Monad): Describe binary-file. --- doc/guix.texi | 8 +++++++- guix/store.scm | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8026bea356..6900717059 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -27,7 +27,7 @@ Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nils Gillmann@* -Copyright @copyright{} 2016, 2017 Jan Nieuwenhuizen@* +Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* @@ -4916,6 +4916,12 @@ containing @var{text}, a string. @var{references} is a list of store items that resulting text file refers to; it defaults to the empty list. @end deffn +@deffn {Monadic Procedure} binary-file @var{name} @var{data} [@var{references}] +Return as a monadic value the absolute file name in the store of the file +containing @var{data}, a bytevector. @var{references} is a list of store +items that the resulting binary file refers to; it defaults to the empty list. +@end deffn + @deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @ [#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once interned in the store. Use diff --git a/guix/store.scm b/guix/store.scm index bac42f2738..cc5c24a77d 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2018 Jan Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -77,6 +78,7 @@ add-data-to-store add-text-to-store add-to-store + binary-file build-things build query-failed-paths @@ -1362,7 +1364,18 @@ taking the store as its first argument." ;; Store monad operators. ;; -(define* (text-file name text +(define* (binary-file name + data ;bytevector + #:optional (references '())) + "Return as a monadic value the absolute file name in the store of the file +containing DATA, a bytevector. REFERENCES is a list of store items that the +resulting text file refers to; it defaults to the empty list." + (lambda (store) + (values (add-data-to-store store name data references) + store))) + +(define* (text-file name + text ;string #:optional (references '())) "Return as a monadic value the absolute file name in the store of the file containing TEXT, a string. REFERENCES is a list of store items that the From e8e1f295f15fa56660a2c460d422795b1a31bed8 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 10 Jul 2018 19:06:32 +0200 Subject: [PATCH 079/144] gexp: Allow bytevector as content of `plain-file'. This allows for using a package source directly from git, doing something like (define (command->bytevector command) (let ((port (apply open-pipe* OPEN_READ command))) (let ((output (get-bytevector-all port))) (close-port port) output))) (define-public hello-git (package (name "hello") (version "git") (source (let* ((commit "stable-2.0") (content (command->bytevector `("git" "archive" "--format" "tar" "--prefix" ,(string-append commit "/") ,commit))) (file-name (string-append "hello-" commit))) (plain-file file-name content))) ... )) * guix/gexp.scm (): Also allow bytevector content. (plain-file-compiler): Handle bytevector content. * doc/guix.texi (G-Expressions): Describe plain-file now also taking bytevectors. --- doc/guix.texi | 2 +- guix/gexp.scm | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 6900717059..8b286e9d8e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5355,7 +5355,7 @@ procedure (@pxref{The Store Monad, @code{interned-file}}). @deffn {Scheme Procedure} plain-file @var{name} @var{content} Return an object representing a text file called @var{name} with the given -@var{content} (a string) to be added to the store. +@var{content} (a string or a bytevector) to be added to the store. This is the declarative counterpart of @code{text-file}. @end deffn diff --git a/guix/gexp.scm b/guix/gexp.scm index 153b29bd42..cc3613f6f6 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2018 Clément Lassieur +;;; Copyright © 2018 Jan Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ #:use-module (guix derivations) #:use-module (guix grafts) #:use-module (guix utils) + #:use-module (rnrs bytevectors) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) @@ -334,7 +336,7 @@ appears." (%plain-file name content references) plain-file? (name plain-file-name) ;string - (content plain-file-content) ;string + (content plain-file-content) ;string or bytevector (references plain-file-references)) ;list (currently unused) (define (plain-file name content) @@ -349,8 +351,10 @@ This is the declarative counterpart of 'text-file'." (define-gexp-compiler (plain-file-compiler (file ) system target) ;; "Compile" FILE by adding it to the store. (match file - (($ name content references) - (text-file name content references)))) + (($ name (and (? string?) content) references) + (text-file name content references)) + (($ name (and (? bytevector?) content) references) + (binary-file name content references)))) (define-record-type (%computed-file name gexp guile options) From 314b63e0b4372681aec165113ae2a0349eaaa357 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 11:02:51 +0200 Subject: [PATCH 080/144] import: hackage: Support "custom-setup" field. Fixes . * guix/import/cabal.scm (make-cabal-parser): Modify. (is-custom-setup): New variable. (lex-custom-setup): New procedure. (is-id): Modify. (lex-version): Modify. (): New record type. (eval-cabal): Modify. (dependencies): Add parameter. --- guix/import/cabal.scm | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index 09130e4498..1775c38791 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -140,7 +140,7 @@ to the stack." (lalr-parser ;; --- token definitions (CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE - (right: IF FLAG EXEC TEST-SUITE SOURCE-REPO BENCHMARK LIB OCURLY) + (right: IF FLAG EXEC TEST-SUITE CUSTOM-SETUP SOURCE-REPO BENCHMARK LIB OCURLY) (left: OR) (left: PROPERTY AND) (right: ELSE NOT)) @@ -150,6 +150,7 @@ to the stack." (sections source-repo) : (append $1 (list $2)) (sections executables) : (append $1 $2) (sections test-suites) : (append $1 $2) + (sections custom-setup) : (append $1 $2) (sections benchmarks) : (append $1 $2) (sections lib-sec) : (append $1 (list $2)) () : '()) @@ -172,6 +173,7 @@ to the stack." (ts-sec) : (list $1)) (ts-sec (TEST-SUITE OCURLY exprs CCURLY) : `(section test-suite ,$1 ,$3) (TEST-SUITE open exprs close) : `(section test-suite ,$1 ,$3)) + (custom-setup (CUSTOM-SETUP exprs) : (list `(section custom-setup ,$1 ,$2))) (benchmarks (benchmarks bm-sec) : (append $1 (list $2)) (bm-sec) : (list $1)) (bm-sec (BENCHMARK OCURLY exprs CCURLY) : `(section benchmark ,$1 ,$3) @@ -349,6 +351,9 @@ matching a string against the created regexp." (define is-test-suite (make-rx-matcher "^test-suite +([a-z0-9_-]+)" regexp/icase)) +(define is-custom-setup (make-rx-matcher "^(custom-setup)" + regexp/icase)) + (define is-benchmark (make-rx-matcher "^benchmark +([a-z0-9_-]+)" regexp/icase)) @@ -368,7 +373,7 @@ matching a string against the created regexp." (define (is-id s port) (let ((cabal-reserved-words - '("if" "else" "library" "flag" "executable" "test-suite" + '("if" "else" "library" "flag" "executable" "test-suite" "custom-setup" "source-repository" "benchmark")) (spaces (read-while (cut char-set-contains? char-set:blank <>) port)) (c (peek-char port))) @@ -392,8 +397,11 @@ matching a string against the created regexp." (define (lex-version loc port) (make-lexical-token 'VERSION loc - (read-while char-numeric? port - (cut char=? #\. <>) char-numeric?))) + (read-while (lambda (x) + (or (char-numeric? x) + (char=? x #\*) + (char=? x #\.))) + port))) (define* (read-while is? port #:optional (is-if-followed-by? (lambda (c) #f)) @@ -435,6 +443,8 @@ string with the read characters." (define (lex-test-suite ts-rx-res loc) (lex-rx-res ts-rx-res 'TEST-SUITE loc)) +(define (lex-custom-setup ts-rx-res loc) (lex-rx-res ts-rx-res 'CUSTOM-SETUP loc)) + (define (lex-benchmark bm-rx-res loc) (lex-rx-res bm-rx-res 'BENCHMARK loc)) (define (lex-lib loc) (make-lexical-token 'LIB loc #f)) @@ -529,6 +539,7 @@ the current port location." ((is-src-repo s) => (cut lex-src-repo <> loc)) ((is-exec s) => (cut lex-exec <> loc)) ((is-test-suite s) => (cut lex-test-suite <> loc)) + ((is-custom-setup s) => (cut lex-custom-setup <> loc)) ((is-benchmark s) => (cut lex-benchmark <> loc)) ((is-lib s) (lex-lib loc)) ((is-else s) (lex-else loc)) @@ -658,6 +669,12 @@ If #f use the function 'port-filename' to obtain it." (name cabal-test-suite-name) (dependencies cabal-test-suite-dependencies)) ; list of +(define-record-type + (make-cabal-custom-setup name dependencies) + cabal-custom-setup? + (name cabal-custom-setuo-name) + (dependencies cabal-custom-setup-dependencies)) ; list of + (define (cabal-flags->alist flag-list) "Retrun an alist associating the flag name to its default value from a list of objects." @@ -728,7 +745,6 @@ the ordering operation and the version." (let ((value (or (assoc-ref env name) (assoc-ref (cabal-flags->alist (cabal-flags)) name)))) (if (eq? value 'false) #f #t))) - (define (eval sexp) (match sexp (() '()) @@ -755,6 +771,8 @@ the ordering operation and the version." ;; no need to evaluate flag parameters (('section 'flag name parameters) (list 'section 'flag name parameters)) + (('section 'custom-setup parameters) + (list 'section 'custom-setup parameters)) ;; library does not have a name parameter (('section 'library parameters) (list 'section 'library (eval parameters))) @@ -795,12 +813,15 @@ See the manual for limitations."))))))) (define (make-cabal-section sexp section-type) "Given an SEXP as produced by 'read-cabal', produce a list of objects pertaining to SECTION-TYPE sections. SECTION-TYPE must be one of: -'executable, 'flag, 'test-suite, 'source-repository or 'library." +'executable, 'flag, 'test-suite, 'custom-setup, 'source-repository or +'library." (filter-map (cut match <> (('section (? (cut equal? <> section-type)) name parameters) (case section-type ((test-suite) (make-cabal-test-suite name (dependencies parameters))) + ((custom-setup) (make-cabal-custom-setup + name (dependencies parameters "setup-depends"))) ((executable) (make-cabal-executable name (dependencies parameters))) ((source-repository) (make-cabal-source-repository @@ -843,10 +864,10 @@ to be added between the values found in different key/value pairs." (define dependency-name-version-rx (make-regexp "([a-zA-Z0-9_-]+) *(.*)")) -(define (dependencies key-values-list) +(define* (dependencies key-values-list #:optional (key "build-depends")) "Return a list of 'cabal-dependency' objects for the dependencies found in KEY-VALUES-LIST." - (let ((deps (string-tokenize (lookup-join key-values-list "build-depends" ",") + (let ((deps (string-tokenize (lookup-join key-values-list key ",") (char-set-complement (char-set #\,))))) (map (lambda (d) (let ((rx-result (regexp-exec dependency-name-version-rx d))) From ecba50bb79a49b317c4b1e718f4732b36438227f Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 17:07:01 +0200 Subject: [PATCH 081/144] import: hackage: Support "-any" and "-none" version comparison operators. * guix/import/cabal.scm (make-cabal-parser): Modify. (is-any): New variable. (is-none): New variable. (lex-any): New procedure. (lex-none): New procedure. (lex-word): Modify. (eval-cabal): Modify. --- guix/import/cabal.scm | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index 1775c38791..cd0a2953c6 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -139,7 +139,7 @@ to the stack." "Generate a parser for Cabal files." (lalr-parser ;; --- token definitions - (CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE + (CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE -ANY -NONE (right: IF FLAG EXEC TEST-SUITE CUSTOM-SETUP SOURCE-REPO BENCHMARK LIB OCURLY) (left: OR) (left: PROPERTY AND) @@ -213,6 +213,10 @@ to the stack." (FALSE) : 'false (TEST OPAREN ID RELATION VERSION CPAREN) : `(,$1 ,(string-append $3 " " $4 " " $5)) + (TEST OPAREN ID -ANY CPAREN) + : `(,$1 ,(string-append $3 " -any")) + (TEST OPAREN ID -NONE CPAREN) + : `(,$1 ,(string-append $3 " -none")) (TEST OPAREN ID RELATION VERSION AND RELATION VERSION CPAREN) : `(and (,$1 ,(string-append $3 " " $4 " " $5)) (,$1 ,(string-append $3 " " $7 " " $8))) @@ -367,6 +371,10 @@ matching a string against the created regexp." (define (is-false s) (string-ci=? s "false")) +(define (is-any s) (string-ci=? s "-any")) + +(define (is-none s) (string-ci=? s "-none")) + (define (is-and s) (string=? s "&&")) (define (is-or s) (string=? s "||")) @@ -457,6 +465,10 @@ string with the read characters." (define (lex-false loc) (make-lexical-token 'FALSE loc #f)) +(define (lex-any loc) (make-lexical-token '-ANY loc #f)) + +(define (lex-none loc) (make-lexical-token '-NONE loc #f)) + (define (lex-and loc) (make-lexical-token 'AND loc #f)) (define (lex-or loc) (make-lexical-token 'OR loc #f)) @@ -524,6 +536,8 @@ LOC is the current port location." ((is-test w port) (lex-test w loc)) ((is-true w) (lex-true loc)) ((is-false w) (lex-false loc)) + ((is-any w) (lex-any loc)) + ((is-none w) (lex-none loc)) ((is-and w) (lex-and loc)) ((is-or w) (lex-or loc)) ((is-id w port) (lex-id w loc)) @@ -711,13 +725,20 @@ the ordering operation and the version." (let* ((with-ver-matcher-fn (make-rx-matcher "([a-zA-Z0-9_-]+) *([<>=]+) *([0-9.]+) *")) (without-ver-matcher-fn (make-rx-matcher "([a-zA-Z0-9_-]+)")) + (without-ver-matcher-fn-2 (make-rx-matcher "([a-zA-Z0-9_-]+) (-any|-none)")) (name (or (and=> (with-ver-matcher-fn spec) (cut match:substring <> 1)) + (and=> (without-ver-matcher-fn-2 spec) + (cut match:substring <> 1)) (match:substring (without-ver-matcher-fn spec) 1))) - (operator (and=> (with-ver-matcher-fn spec) - (cut match:substring <> 2))) - (version (and=> (with-ver-matcher-fn spec) - (cut match:substring <> 3)))) + (operator (or (and=> (with-ver-matcher-fn spec) + (cut match:substring <> 2)) + (and=> (without-ver-matcher-fn-2 spec) + (cut match:substring <> 2)))) + (version (or (and=> (with-ver-matcher-fn spec) + (cut match:substring <> 3)) + (and=> (without-ver-matcher-fn-2 spec) + (cut match:substring <> 2))))) (values name operator version))) (define (impl haskell) From 6adc6b091e172b190d263548cc953aec0f1abfab Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 12 Jul 2018 10:55:04 -0400 Subject: [PATCH 082/144] gnu: GnuPG: Update to 2.2.9. * gnu/packages/gnupg.scm (gnupg): Update to 2.2.9. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index da0c33565a..c095a966c2 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -245,14 +245,14 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.2.8") + (version "2.2.9") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "1k8dnnfs9888yp713l7kg2jg110lw47s4krx0njna6fjrsw4qyvp")))) + "0r11mx8nkh7ysrnshs560amha5csx8zcaggb5kxcksx1zymyly32")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) From 9b76037e2c9e2f33985991cce2d0714ee3dfa0da Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 15:37:50 +0200 Subject: [PATCH 083/144] gnu: xapian: Update to 1.4.6 [fixes CVE-2018-0499]. * gnu/packages/search.scm (xapian, python-xapian-bindings): Update to 1.4.6. --- gnu/packages/search.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index e9e74817f2..a728f0a314 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -46,14 +46,14 @@ (define-public xapian (package (name "xapian") - (version "1.4.5") + (version "1.4.6") ;; Note: When updating Xapian, remember to update xapian-bindings below. (source (origin (method url-fetch) (uri (string-append "https://oligarchy.co.uk/xapian/" version "/xapian-core-" version ".tar.xz")) (sha256 - (base32 "0axhqrj202hbll9mcx1qdm8gsqj19216w3z02gyjbycxvr9gkdc5")))) + (base32 "166qpfq7pvyrj2w2x07v31ypvqg6c2xyvds5sms9h4g2sg0z23hy")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib) ("util-linux" ,util-linux))) @@ -91,7 +91,7 @@ rich set of boolean query operators.") "/xapian-bindings-" version ".tar.xz")) (sha256 (base32 - "0cwx39764w24xd25w271had4w78lnw1dgz36yvlw1g3i19rqcy34")))) + "0z5ma66n742241ys037i3k66c6lvsywviqf33vqsf4jb7j03qsbi")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-python3") From 03229b36e025175d0d505538e5c5405fa8e23e8b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 15:42:26 +0200 Subject: [PATCH 084/144] gnu: openh264: Update to 1.8.0. * gnu/packages/video.scm (openh264): Update to 1.8.0. [source](uri): Use release tarball. --- gnu/packages/video.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 737844d8fa..1cc0d5dfde 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2410,15 +2410,16 @@ of modern, widely supported codecs.") (define-public openh264 (package (name "openh264") - (version "1.7.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/cisco/" - name "/archive/v" version ".tar.gz")) + name "/releases/download/v" + version "/Source.Code.tar.gz.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0gv571bqkxk7ic64dmavs1q8nr7p59mcf4ibqp4lc070gn6w61ww")))) + "0niha3wnn1jsndvz9vfwy2wyql8mp9j6v75vjsipy0idwan5yzgf")))) (build-system gnu-build-system) (native-inputs `(("nasm" ,nasm) From 69b8820e7b3567e057e9f2f6956653b0e1ad5a99 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 15:45:14 +0200 Subject: [PATCH 085/144] gnu: rng-tools: Update to 6.3. * gnu/packages/linux.scm (rng-tools): Update to 6.3. --- 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 e9175eb282..bcd752dc2a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3595,7 +3595,7 @@ The following service daemons are also provided: (define-public rng-tools (package (name "rng-tools") - (version "6.2") + (version "6.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/nhorman/rng-tools/" @@ -3603,7 +3603,7 @@ The following service daemons are also provided: (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0xy4qmfhvkr5z4jr9j55dn5gnajr2jccdp6n0xsxkipjcgag342j")))) + "1lc2kqw3idwmjyjnf16sqz0f4r1w7c638n4la1j1n5c3188q26bv")))) (build-system gnu-build-system) (arguments `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. From 804863196c9f29b80e294057217f6e6a12941c8d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 15:52:19 +0200 Subject: [PATCH 086/144] gnu: libzip: Update to 1.5.1. * gnu/packages/compression.scm (libzip): Update to 1.5.1. [build-system]: Switch to CMAKE-BUILD-SYSTEM. --- gnu/packages/compression.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 2ca431b2c1..0d73886109 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1889,19 +1889,19 @@ create, manipulate, read, and write Zip archive files.") (define-public libzip (package (name "libzip") - (version "1.3.2") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "https://libzip.org/download/" name "-" version ".tar.xz")) (sha256 (base32 - "11g1hvm2bxa2v5plakfzcwyk5hb5fz4kgrkp38l0xhnv21888xv2")))) + "0wnkkvkq90wyawj9221i77sf3nix1vj3ygzdy59k8yvcjnv3bsh4")))) (native-inputs `(("perl" ,perl))) (inputs `(("zlib" ,zlib))) - (build-system gnu-build-system) + (build-system cmake-build-system) (home-page "https://libzip.org") (synopsis "C library for reading, creating, and modifying zip archives") (description "Libzip is a C library for reading, creating, and modifying From 316ece170c8e72bb21ba17c5910f02815d04bc2f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:02:59 +0200 Subject: [PATCH 087/144] gnu: appstream-glib: Update to 0.7.10. * gnu/packages/glib.scm (appstream-glib): Update to 0.7.10. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 7ea22fe88f..95d7976bf8 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -787,7 +787,7 @@ programming langauage. It also contains the utility (define-public appstream-glib (package (name "appstream-glib") - (version "0.7.5") + (version "0.7.10") (source (origin (method url-fetch) (uri (string-append "https://people.freedesktop.org/~hughsient/" @@ -795,7 +795,7 @@ programming langauage. It also contains the utility "appstream-glib-" version ".tar.xz")) (sha256 (base32 - "0ps80cbqnf3q86rvz3ajqjssdgkjc9kmynqf0wxqfir7ayc9y9ag")))) + "08bs0hnkvdzqv9pakv1y4c4ph77rmzjq22g760w20sv7vs63nia3")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) From 250276a20272dcbf609bb8761b6ef213a2e9f863 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:06:28 +0200 Subject: [PATCH 088/144] gnu: python-pyyaml: Update to 3.13. * gnu/packages/python.scm (python-pyyaml): Update to 3.13. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c9b22e87ee..057a14c501 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2218,14 +2218,14 @@ environments and back.") (define-public python-pyyaml (package (name "python-pyyaml") - (version "3.12") + (version "3.13") (source (origin (method url-fetch) (uri (pypi-uri "PyYAML" version)) (sha256 (base32 - "1aqjl8dk9amd4zr99n8v2qxzgmr2hdvqfma4zh7a41rj6336c9sr")))) + "1gx603g484z46cb74j9rzr6sjlh2vndxayicvlyhxdz98lhhkwry")))) (build-system python-build-system) (inputs `(("libyaml" ,libyaml))) From f9e1cdb87a44d6196d6af6a634a87608b4ae54ca Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:15:29 +0200 Subject: [PATCH 089/144] gnu: talloc: Update to 2.1.14. * gnu/packages/samba.scm (talloc): Update to 2.1.14. --- gnu/packages/samba.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 0ce46056f5..41e37050a5 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -236,14 +236,14 @@ Desktops into Active Directory environments using the winbind daemon.") (define-public talloc (package (name "talloc") - (version "2.1.13") + (version "2.1.14") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/talloc/talloc-" version ".tar.gz")) (sha256 (base32 - "0iv09iv385x69gfzvassq6m3y0rd8ncylls95dm015xdy3drkww4")))) + "1kk76dyav41ip7ddbbf04yfydb4jvywzi2ps0z2vla56aqkn11di")))) (build-system gnu-build-system) (arguments '(#:phases From e4bdd199c072654b33bf60ba3c65be70472a7143 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:15:49 +0200 Subject: [PATCH 090/144] gnu: tevent: Update to 0.9.37. * gnu/packages/samba.scm (tevent): Update to 0.9.37. --- gnu/packages/samba.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 41e37050a5..f81c586186 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -306,14 +306,14 @@ destructors. It is the core memory allocator used in Samba.") (define-public tevent (package (name "tevent") - (version "0.9.36") + (version "0.9.37") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/tevent/tevent-" version ".tar.gz")) (sha256 (base32 - "0k1v4vnlzpf7h3p4khaw8a7damrc68g136bf2xzys08nzpinnaxx")))) + "1q77vbjic2bb79li2a54ffscnrnwwww55fbpry2kgh7acpnlb0qn")))) (build-system gnu-build-system) (arguments '(#:phases From b7a2d2d9a91f6f1a680ef5dbcab4268102d1e1c7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:18:44 +0200 Subject: [PATCH 091/144] gnu: tdb: Update to 1.3.16. * gnu/packages/databases.scm (tdb): Update to 1.3.16. --- 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 0f1e47f485..2a40dc4d23 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1070,14 +1070,14 @@ is in the public domain.") (define-public tdb (package (name "tdb") - (version "1.3.15") + (version "1.3.16") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/tdb/tdb-" version ".tar.gz")) (sha256 (base32 - "0a37jhpij8wr4f4pjqdlwnffy2l6a2vkqdpz1bqxj6v06cwbz8dl")))) + "1ibcz466xwk1x6xvzlgzd5va4lyrjzm3rnjak29kkwk7cmhw4gva")))) (build-system gnu-build-system) (arguments '(#:phases From 041f84edf3a91834026d85f4a3829fdeaa6c7311 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:29:33 +0200 Subject: [PATCH 092/144] gnu: ldb: Downgrade to 1.3.3. LDB 1.4 and above does not support Samba < 4.9; see . * gnu/packages/samba.scm (ldb): Downgrade to 1.3.3. [inputs]: Remove LMDB. [arguments]: Remove #:tests. --- gnu/packages/samba.scm | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index f81c586186..64017224a7 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -341,14 +341,14 @@ many event types, including timers, signals, and the classic file descriptor eve (define-public ldb (package (name "ldb") - (version "1.4.0") + (version "1.3.3") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/ldb/ldb-" version ".tar.gz")) (sha256 (base32 - "1d591ny4j4s409s2afjv4fn7inqlclr0zlyclw3619rkbaixlzm8")) + "14gsrm7dvyjpbpnc60z75j6fz2p187abm2h353lq95kx2bv70c1b")) (modules '((guix build utils))) (snippet '(begin @@ -361,10 +361,7 @@ many event types, including timers, signals, and the classic file descriptor eve #t)))) (build-system gnu-build-system) (arguments - '(;; LMDB is only supported on 64-bit systems, yet the test suite - ;; requires it. - #:tests? (assoc-ref %build-inputs "lmdb") - #:phases + '(#:phases (modify-phases %standard-phases (replace 'configure ;; ldb use a custom configuration script that runs waf. @@ -384,10 +381,7 @@ many event types, including timers, signals, and the classic file descriptor eve `(("talloc" ,talloc) ("tdb" ,tdb))) (inputs - `(,@(if (target-64bit?) - `(("lmdb" ,lmdb)) - '()) - ("popt" ,popt) + `(("popt" ,popt) ("tevent" ,tevent))) (synopsis "LDAP-like embedded database") (home-page "https://ldb.samba.org/") From 2c3434150baf75ca71410c1968852d63b13c527a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:33:00 +0200 Subject: [PATCH 093/144] gnu: xf86-input-libinput: Update to 0.28.0. * gnu/packages/xorg.scm (xf86-input-libinput): Update to 0.28.0. --- 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 895db8ea13..9448fe958b 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2447,7 +2447,7 @@ including most mice, keyboards, tablets and touchscreens.") (define-public xf86-input-libinput (package (name "xf86-input-libinput") - (version "0.27.1") + (version "0.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2455,7 +2455,7 @@ including most mice, keyboards, tablets and touchscreens.") name "-" version ".tar.bz2")) (sha256 (base32 - "1riflw6dc8fp5d74i7zfgsss0zz3z3lsj6zn2lzjm5kgmp2qvbfl")))) + "189h8vl0005yizwrs4d0sng6j8lwkd3xi1zwqg8qavn2bw34v691")))) (build-system gnu-build-system) (arguments '(#:configure-flags From b9ffa82b968830e4da5f6c55f3cfd6591bbf6349 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:36:07 +0200 Subject: [PATCH 094/144] gnu: lsof: Update to 4.91. * gnu/packages/lsof.scm (lsof): Update to 4.91. --- gnu/packages/lsof.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm index 098242dc7a..d3f1321e06 100644 --- a/gnu/packages/lsof.scm +++ b/gnu/packages/lsof.scm @@ -28,7 +28,7 @@ (define-public lsof (package (name "lsof") - (version "4.89") + (version "4.91") (source (origin (method url-fetch) @@ -53,7 +53,7 @@ (string-append "ftp://ftp.mirrorservice.org/sites/" "lsof.itap.purdue.edu/pub/tools/unix/lsof"))))) (sha256 - (base32 "061p18v0mhzq517791xkjs8a5dfynq1418a1mwxpji69zp2jzb41")))) + (base32 "18sh4hbl9jw2szkf0gvgan8g13f3g4c6s2q9h3zq5gsza9m99nn9")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (arguments From 6f6f9ef0ce6c452d7a976e78281e9d25f8dcfb54 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:38:20 +0200 Subject: [PATCH 095/144] gnu: lsof: Return #t from all phases. * gnu/packages/lsof.scm (lsof)[arguments]: Return #t from phases. --- gnu/packages/lsof.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm index d3f1321e06..8b3ebe2945 100644 --- a/gnu/packages/lsof.scm +++ b/gnu/packages/lsof.scm @@ -73,14 +73,16 @@ (add-after 'configure 'patch-timestamps (lambda _ (substitute* "Makefile" - (("`date`") "`date --date=@1`")))) + (("`date`") "`date --date=@1`")) + #t)) (add-before 'check 'disable-failing-tests (lambda _ (substitute* "tests/Makefile" ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’. (("(STDTST=.*) LTsock" _ prefix) prefix) ;; Fails without access to a remote NFS server. - (("(OPTTST=.*) LTnfs" _ prefix) prefix)))) + (("(OPTTST=.*) LTnfs" _ prefix) prefix)) + #t)) (replace 'check (lambda _ (with-directory-excursion "tests" From 483374378bcc6cd0a55f1947547e65206bcbc573 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:48:55 +0200 Subject: [PATCH 096/144] gnu: oniguruma: Update to 6.8.2. * gnu/packages/textutils.scm (oniguruma): Update to 6.8.2. --- gnu/packages/textutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 5dec41428b..9cf324ba15 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -338,7 +338,7 @@ as existing hashing techniques, with provably negligible risk of collisions.") (define-public oniguruma (package (name "oniguruma") - (version "5.9.6") + (version "6.8.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/kkos/" @@ -346,7 +346,7 @@ as existing hashing techniques, with provably negligible risk of collisions.") "/onig-" version ".tar.gz")) (sha256 (base32 - "19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m")))) + "00s9gjgb3srn5sbmx4x9bssn52mi04d868ghizssdhjlddgxmsmd")))) (build-system gnu-build-system) (home-page "https://github.com/kkos/oniguruma") (synopsis "Regular expression library") From fa25b268dc63d5da457da79169054f287e65e710 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:53:20 +0200 Subject: [PATCH 097/144] gnu: iso-codes: Update home page. * gnu/packages/iso-codes.scm (iso-codes)[home-page]: Change to salsa.debian.org. --- gnu/packages/iso-codes.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/iso-codes.scm b/gnu/packages/iso-codes.scm index 9f67cf2868..67c6dc73e5 100644 --- a/gnu/packages/iso-codes.scm +++ b/gnu/packages/iso-codes.scm @@ -45,7 +45,7 @@ `(("gettext" ,gettext-minimal) ("perl" ,perl) ("python" ,python-wrapper))) - (home-page "https://pkg-isocodes.alioth.debian.org/") + (home-page "https://salsa.debian.org/iso-codes-team/iso-codes") (synopsis "Various ISO standards") (description "This package provides lists of various ISO standards (e.g. country, From d5019f9ca750aa2bd49048c5462d9eac220b0644 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:59:56 +0200 Subject: [PATCH 098/144] gnu: php: Build with an older oniguruma. * gnu/packages/textutils.scm (oniguruma-5): New public variable. * gnu/packages/php.scm (php)[inputs]: Change ONIGURUMA to ONIGURUMA-5. --- gnu/packages/php.scm | 2 +- gnu/packages/textutils.scm | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 90e6ab1c1c..1acab0de71 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -318,7 +318,7 @@ ("libxpm" ,libxpm) ("libxslt" ,libxslt) ("libx11" ,libx11) - ("oniguruma" ,oniguruma) + ("oniguruma" ,oniguruma-5) ("openldap" ,openldap) ("openssl" ,openssl) ("pcre" ,pcre) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 9cf324ba15..355683df8a 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -355,6 +355,20 @@ characteristic of this library is that different character encoding for every regular expression object can be specified.") (license license:bsd-2))) +;; PHP < 7.3.0 requires this old version. Remove once no longer needed. +(define-public oniguruma-5 + (package + (inherit oniguruma) + (version "5.9.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/kkos/" + "oniguruma/releases/download/v" version + "/onig-" version ".tar.gz")) + (sha256 + (base32 + "19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m")))))) + (define-public antiword (package (name "antiword") From 8801d7fc72995e20a9767a3c9e6b1466907ad0d0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 17:05:16 +0200 Subject: [PATCH 099/144] gnu: unbound: Update to 1.7.3. * gnu/packages/dns.scm (unbound): Update to 1.7.3. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 78479b2d32..9d728c3464 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -288,7 +288,7 @@ asynchronous fashion.") (define-public unbound (package (name "unbound") - (version "1.6.8") + (version "1.7.3") (source (origin (method url-fetch) @@ -296,7 +296,7 @@ asynchronous fashion.") version ".tar.gz")) (sha256 (base32 - "0jfxhh4gc5amhndikskz1s7da27ycn442j3l20bm992n7zijid73")))) + "0bb0p8nbda77ghx20yfl7hqxm9x709223q35465v99i8v4ay27f1")))) (build-system gnu-build-system) (outputs '("out" "python")) (native-inputs From f42846b2eae3da11ceae2ceae6a1bcee463e43ed Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 17:12:01 +0200 Subject: [PATCH 100/144] gnu: psmisc: Update to 23.1. * gnu/packages/linux.scm (psmisc): Update to 23.1. [source](uri): Use XZ-compressed tarball. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index bcd752dc2a..bd65317a98 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -537,15 +537,15 @@ at login. Local and dynamic reconfiguration are its key features.") (define-public psmisc (package (name "psmisc") - (version "22.21") + (version "23.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "0nhlm1vrrwn4a845p6y4nnnb4liq70n74zbdd5dq844jc6nkqclp")))) + "0c5s94hqpwfmyswx2f96gifa6wdbpxxpkyxcrlzbxpvmrxsd911f")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) (home-page "https://gitlab.com/psmisc/psmisc") From 9a3da9859be2c7b89c344c7aea5b682093932530 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 4 Jul 2018 22:54:09 +0530 Subject: [PATCH 101/144] gnu: Add libqmatrixclient. * gnu/packages/messaging.scm (libqmatrixclient): New variable. --- gnu/packages/messaging.scm | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index cdcd1225f2..69ed7ee88c 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2016, 2017, 2018 Clément Lassieur ;;; Copyright © 2017 Mekeor Melire -;;; Copyright © 2017 Arun Isaac +;;; Copyright © 2017, 2018 Arun Isaac ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Rutger Helling @@ -1644,4 +1644,30 @@ c-toxcore and ncurses. It provides audio calls, sound and desktop notifications, and Python scripting support.") (license license:gpl3+))) +(define-public libqmatrixclient + (package + (name "libqmatrixclient") + (version "0.3.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/QMatrixClient/libqmatrixclient/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0yl7lw0s2z98xkxbklkb3i8xcd9af9qayl1zxl070d8ykl6ayqy3")))) + (build-system cmake-build-system) + (inputs + `(("qt" ,qt))) + (arguments + `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON") + #:tests? #f)) ; No tests + (home-page "https://matrix.org/docs/projects/sdk/libqmatrixclient.html") + (synopsis "Qt5 client library for the Matrix instant messaging protocol") + (description "libqmatrixclient is a Qt5 library to write clients for the +Matrix instant messaging protocol. Quaternion is the reference client +implementation. Quaternion and libqmatrixclient together form the +QMatrixClient project.") + (license license:lgpl2.1+))) ;;; messaging.scm ends here From e81c952a4da21c7772f8104f4fcc44af3f403daf Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 4 Jul 2018 22:54:55 +0530 Subject: [PATCH 102/144] gnu: Add quaternion. * gnu/packages/messaging.scm (quaternion): New variable. --- gnu/packages/messaging.scm | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 69ed7ee88c..1212a06eeb 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1670,4 +1670,51 @@ Matrix instant messaging protocol. Quaternion is the reference client implementation. Quaternion and libqmatrixclient together form the QMatrixClient project.") (license license:lgpl2.1+))) + +(define-public quaternion + (package + (name "quaternion") + (version "0.0.9.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/QMatrixClient/Quaternion/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0s2mpw11s2n21ds1spf94j1p2lj2px2bv5zxldlcx81ch0rb4ng8")))) + (build-system cmake-build-system) + (inputs + `(("libqmatrixclient" ,libqmatrixclient) + ("qt" ,qt))) + (arguments + `(#:tests? #f ; No tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-libqmatrixclient-dynamic-linking + ;; Upstream recommends statically linking with + ;; libqmatrixclient. Patch the source so that we can dynamically + ;; link instead. In a future release, when upstream moves to + ;; dynamic linking, remove this phase. + (lambda _ + (substitute* "CMakeLists.txt" + (("^add_subdirectory\\(lib\\)" all) + (string-append "#" all))) + (for-each + (lambda (file) + (substitute* file + (("#include \"lib/([^\"]*)\"" all header) + (string-append "#include <" header ">")))) + (find-files "client" "\\.(cpp|h)$")) + #t))))) + (home-page "https://matrix.org/docs/projects/client/quaternion.html") + (synopsis "Graphical client for the Matrix instant messaging protocol") + (description "Quaternion is a Qt5 desktop client for the Matrix instant +messaging protocol. It uses libqmatrixclient and is its reference client +implementation. Quaternion and libqmatriclient together form the +QMatrixClient project.") + (license (list license:gpl3+ ; all source code + license:lgpl3+)))) ; icons/breeze + ;;; messaging.scm ends here From fd115bee31d04f1277560b82bb982e6aa19fc977 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 12 Jul 2018 11:23:24 -0400 Subject: [PATCH 103/144] gnu: Syncthing: Fix a crash bug. * gnu/packages/patches/syncthing-fix-crash.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/syncthing.scm (syncthing)[source]: Use it. --- gnu/local.mk | 1 + .../patches/syncthing-fix-crash.patch | 72 +++++++++++++++++++ gnu/packages/syncthing.scm | 2 + 3 files changed, 75 insertions(+) create mode 100644 gnu/packages/patches/syncthing-fix-crash.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8ec1f161ed..72a489210b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1138,6 +1138,7 @@ dist_patch_DATA = \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-format-security.patch \ + %D%/packages/patches/syncthing-fix-crash.patch \ %D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \ diff --git a/gnu/packages/patches/syncthing-fix-crash.patch b/gnu/packages/patches/syncthing-fix-crash.patch new file mode 100644 index 0000000000..d27e543982 --- /dev/null +++ b/gnu/packages/patches/syncthing-fix-crash.patch @@ -0,0 +1,72 @@ +Avoid a crash: + +https://github.com/syncthing/syncthing/issues/5002 + +Patch copied from upstream source repository: + +https://github.com/syncthing/syncthing/commit/35a75a95dc6383b2d73ab645f1407f7907ec1a2c + +From 35a75a95dc6383b2d73ab645f1407f7907ec1a2c Mon Sep 17 00:00:00 2001 +From: Jakob Borg +Date: Wed, 13 Jun 2018 19:07:52 +0200 +Subject: [PATCH] lib/model: Don't panic when rechecking file (fixes #5002) + (#5003) + +--- + lib/model/model.go | 2 +- + lib/model/model_test.go | 26 ++++++++++++++++++++++++++ + 2 files changed, 27 insertions(+), 1 deletion(-) + +diff --git a/lib/model/model.go b/lib/model/model.go +index 5a9146e0..302f06c5 100644 +--- a/lib/model/model.go ++++ b/lib/model/model.go +@@ -1373,7 +1373,7 @@ func (m *Model) recheckFile(deviceID protocol.DeviceID, folderFs fs.Filesystem, + return + } + +- if blockIndex > len(cf.Blocks) { ++ if blockIndex >= len(cf.Blocks) { + l.Debugf("%v recheckFile: %s: %q / %q i=%d: block index too far", m, deviceID, folder, name, blockIndex) + return + } +diff --git a/lib/model/model_test.go b/lib/model/model_test.go +index 295eafc1..456bbc4a 100644 +--- a/lib/model/model_test.go ++++ b/lib/model/model_test.go +@@ -3608,6 +3608,32 @@ func TestIssue4903(t *testing.T) { + } + } + ++func TestIssue5002(t *testing.T) { ++ // recheckFile should not panic when given an index equal to the number of blocks ++ ++ db := db.OpenMemory() ++ m := NewModel(defaultCfgWrapper, protocol.LocalDeviceID, "syncthing", "dev", db, nil) ++ m.AddFolder(defaultFolderConfig) ++ m.StartFolder("default") ++ ++ m.ServeBackground() ++ defer m.Stop() ++ ++ if err := m.ScanFolder("default"); err != nil { ++ t.Error(err) ++ } ++ ++ file, ok := m.CurrentFolderFile("default", "foo") ++ if !ok { ++ t.Fatal("test file should exist") ++ } ++ nBlocks := len(file.Blocks) ++ ++ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks-1, []byte{1, 2, 3, 4}) ++ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks, []byte{1, 2, 3, 4}) // panic ++ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks+1, []byte{1, 2, 3, 4}) ++} ++ + func addFakeConn(m *Model, dev protocol.DeviceID) *fakeConnection { + fc := &fakeConnection{id: dev, model: m} + m.AddConnection(fc, protocol.HelloResult{}) +-- +2.18.0 + diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 14e83b5861..4c0bceedf6 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -24,6 +24,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix licenses) + #:use-module (gnu packages) #:use-module (gnu packages golang)) (define-public syncthing @@ -35,6 +36,7 @@ (uri (string-append "https://github.com/syncthing/syncthing" "/releases/download/v" version "/syncthing-source-v" version ".tar.gz")) + (patches (search-patches "syncthing-fix-crash.patch")) (sha256 (base32 "0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml")) From e39a44f34010e4439fc3fc4925b3f26b7ca6d719 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 12 Jul 2018 14:17:08 +0200 Subject: [PATCH 104/144] import: hackage: Evaluate "-any" and "-none" version comparison operators. * guix/import/cabal.scm (eval-cabal): Modify. * tests/hackage.scm (test-cabal-4): New variable and test. (test-cabal-5): New variable and test. (test-cabal-6): New variable and test. --- guix/import/cabal.scm | 2 ++ tests/hackage.scm | 71 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index cd0a2953c6..4cd09cac29 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -754,6 +754,8 @@ the ordering operation and the version." ((string= spec-op ">") (version>? comp-ver spec-ver)) ((string= spec-op "<=") (not (version>? comp-ver spec-ver))) ((string= spec-op "<") (not (version>=? comp-ver spec-ver))) + ((string= spec-op "-any") #t) + ((string= spec-op "-none") #f) (else (raise (condition (&message (message "Failed to evaluate 'impl' test.")))))) diff --git a/tests/hackage.scm b/tests/hackage.scm index a4de8be91e..e17851a213 100644 --- a/tests/hackage.scm +++ b/tests/hackage.scm @@ -69,6 +69,65 @@ library mtl >= 2.0 && < 3 ") +;; Check "-any", "-none" when name is different. +(define test-cabal-4 + "name: foo +version: 1.0.0 +homepage: http://test.org +synopsis: synopsis +description: description +license: BSD3 +library + if impl(ghcjs -any) + Build-depends: ghc-a + if impl(ghc>=7.2&&<7.6) + Build-depends: ghc-b + if impl(ghc == 7.8) + Build-depends: + HTTP >= 4000.2.5 && < 4000.3, + mtl >= 2.0 && < 3 +") + +;; Check "-any", "-none". +(define test-cabal-5 + "name: foo +version: 1.0.0 +homepage: http://test.org +synopsis: synopsis +description: description +license: BSD3 +library + if impl(ghc == 7.8) + Build-depends: + HTTP >= 4000.2.5 && < 4000.3, + if impl(ghc -any) + Build-depends: mtl >= 2.0 && < 3 + if impl(ghc>=7.2&&<7.6) + Build-depends: ghc-b +") + +;; Check "custom-setup". +(define test-cabal-6 + "name: foo +build-type: Custom +version: 1.0.0 +homepage: http://test.org +synopsis: synopsis +description: description +license: BSD3 +custom-setup + setup-depends: base >= 4.7 && < 5, + Cabal >= 1.24, + haskell-gi == 0.21.* +library + if impl(ghc>=7.2&&<7.6) + Build-depends: ghc-b + if impl(ghc == 7.8) + Build-depends: + HTTP >= 4000.2.5 && < 4000.3, + mtl >= 2.0 && < 3 +") + ;; A fragment of a real Cabal file with minor modification to check precedence ;; of 'and' over 'or', missing final newline, spaces between keywords and ;; parentheses and between key and column. @@ -139,6 +198,18 @@ library (eval-test-with-cabal test-cabal-3 #:cabal-environment '(("impl" . "ghc-7.8")))) +(test-assert "hackage->guix-package test 4" + (eval-test-with-cabal test-cabal-4 + #:cabal-environment '(("impl" . "ghc-7.8")))) + +(test-assert "hackage->guix-package test 5" + (eval-test-with-cabal test-cabal-5 + #:cabal-environment '(("impl" . "ghc-7.8")))) + +(test-assert "hackage->guix-package test 6" + (eval-test-with-cabal test-cabal-6 + #:cabal-environment '(("impl" . "ghc-7.8")))) + (test-assert "read-cabal test 1" (match (call-with-input-string test-read-cabal-1 read-cabal) ((("name" ("test-me")) From 161fbe4a3d2cbd056d745a075d014bdb8d7579b8 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 6 May 2018 15:27:07 +0200 Subject: [PATCH 105/144] gnu: emacs-biblio: Add emacs-dash to inputs. * gnu/packages/emacs.scm (emacs-biblio)[inputs]: Add emacs-dash. --- gnu/packages/emacs.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 6bd67dcef2..6394ab8cb8 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -8516,6 +8516,7 @@ outline-mode), so there is no such thing like an outshine mode, only (base32 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf")))) (build-system emacs-build-system) + (inputs `(("emacs-dash" ,emacs-dash))) (home-page "https://github.com/cpitclaudel/biblio.el") (synopsis "Browse and import bibliographic references") (description "This package provides an extensible Emacs package for From 814bb8166804cc3c1f0dd1f1347786a1f07bd22b Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Thu, 12 Jul 2018 20:39:41 +0200 Subject: [PATCH 106/144] gnu: emacs-helm-bibtex: Add emacs-ivy to inputs. * gnu/packages/emacs.scm (emacs-helm-bibtex)[inputs]: Add emacs-ivy. --- gnu/packages/emacs.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 6394ab8cb8..9238151cff 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -8551,7 +8551,8 @@ automatically fetched from well-curated sources, and formatted as BibTeX.") ("emacs-s" ,emacs-s) ("emacs-dash" ,emacs-dash) ("emacs-f" ,emacs-f) - ("emacs-biblio" ,emacs-biblio))) + ("emacs-biblio" ,emacs-biblio) + ("emacs-ivy" ,emacs-ivy))) (home-page "https://github.com/tmalsburg/helm-bibtex") (synopsis "Bibliography manager based on Helm") (description "This package provides bibliography manager for Emacs, From 701383081a9814d21823d42978ae23ee654e0427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 23:17:37 +0200 Subject: [PATCH 107/144] services: shepherd: Support custom actions. * gnu/services/shepherd.scm ()[actions]: New field. (): New record type. (shepherd-service-file): Pass #:actions to 'make'. * doc/guix.texi (Shepherd Services): Document custom actions. --- doc/guix.texi | 59 +++++++++++++++++++++++++++++++++++++++ gnu/services/shepherd.scm | 23 ++++++++++++++- 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8b286e9d8e..34012a357b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -21969,6 +21969,17 @@ Constructors,,, shepherd, The GNU Shepherd Manual}). They are given as G-expressions that get expanded in the Shepherd configuration file (@pxref{G-Expressions}). +@item @code{actions} (default: @code{'()}) +@cindex actions, of Shepherd services +This is a list of @code{shepherd-action} objects (see below) defining +@dfn{actions} supported by the service, in addition to the standard +@code{start} and @code{stop} actions. Actions listed here become available as +@command{herd} sub-commands: + +@example +herd @var{action} @var{service} [@var{arguments}@dots{}] +@end example + @item @code{documentation} A documentation string, as shown when running: @@ -21986,6 +21997,54 @@ This is the list of modules that must be in scope when @code{start} and @end table @end deftp +@deftp {Data Type} shepherd-action +This is the data type that defines additional actions implemented by a +Shepherd service (see above). + +@table @code +@item name +Symbol naming the action. + +@item documentation +This is a documentation string for the action. It can be viewed by running: + +@example +herd doc @var{service} action @var{action} +@end example + +@item procedure +This should be a gexp that evaluates to a procedure of at least one argument, +which is the ``running value'' of the service (@pxref{Slots of services,,, +shepherd, The GNU Shepherd Manual}). +@end table + +The following example defines an action called @code{say-hello} that kindly +greets the user: + +@example +(shepherd-action + (name 'say-hello) + (documentation "Say hi!") + (procedure #~(lambda (running . args) + (format #t "Hello, friend! arguments: ~s\n" + args) + #t))) +@end example + +Assuming this action is added to the @code{example} service, then you can do: + +@example +# herd say-hello example +Hello, friend! arguments: () +# herd say-hello example a b c +Hello, friend! arguments: ("a" "b" "c") +@end example + +This, as you can see, is a fairly sophisticated way to say hello. +@xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more +info on actions. +@end deftp + @defvr {Scheme Variable} shepherd-root-service-type The service type for the Shepherd ``root service''---i.e., PID@tie{}1. diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 6ca53faa3d..4cd2249841 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -49,6 +49,12 @@ shepherd-service-auto-start? shepherd-service-modules + shepherd-action + shepherd-action? + shepherd-action-name + shepherd-action-documentation + shepherd-action-procedure + %default-modules shepherd-service-file @@ -146,11 +152,20 @@ DEFAULT is given, use it as the service's default value." (start shepherd-service-start) ;g-expression (procedure) (stop shepherd-service-stop ;g-expression (procedure) (default #~(const #f))) + (actions shepherd-service-actions ;list of + (default '())) (auto-start? shepherd-service-auto-start? ;Boolean (default #t)) (modules shepherd-service-modules ;list of module names (default %default-modules))) +(define-record-type* + shepherd-action make-shepherd-action + shepherd-action? + (name shepherd-action-name) ;symbol + (procedure shepherd-action-procedure) ;gexp + (documentation shepherd-action-documentation)) ;string + (define (shepherd-service-canonical-name service) "Return the 'canonical name' of SERVICE." (first (shepherd-service-provision service))) @@ -223,7 +238,13 @@ stored." #:requires '#$(shepherd-service-requirement service) #:respawn? '#$(shepherd-service-respawn? service) #:start #$(shepherd-service-start service) - #:stop #$(shepherd-service-stop service)))))) + #:stop #$(shepherd-service-stop service) + #:actions + (make-actions + #$@(map (match-lambda + (($ name proc doc) + #~(#$name #$doc #$proc))) + (shepherd-service-actions service)))))))) (define (shepherd-configuration-file services) "Return the shepherd configuration file for SERVICES." From 147c5aa5d4e3bd21ee4c4cae70dff8da0bcf94b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 23:40:57 +0200 Subject: [PATCH 108/144] services: mcron: Add 'schedule' action. Inspired by . * gnu/services/mcron.scm (shepherd-schedule-action): New procedure. (mcron-shepherd-services): Add 'actions' field. * gnu/tests/base.scm (run-mcron-test)["schedule action"]: New test. * doc/guix.texi (Scheduled Job Execution): Mention 'herd schedule'. --- doc/guix.texi | 15 +++++++++ gnu/services/herd.scm | 3 ++ gnu/services/mcron.scm | 76 ++++++++++++++++++++++++++++++++---------- gnu/tests/base.scm | 7 ++++ 4 files changed, 84 insertions(+), 17 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 34012a357b..eaec4c422b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10850,6 +10850,21 @@ gexps to introduce job definitions that are passed to mcron for more information on mcron job specifications. Below is the reference of the mcron service. +On a running system, you can use the @code{schedule} action of the service to +visualize the mcron jobs that will be executed next: + +@example +# herd schedule mcron +@end example + +@noindent +The example above lists the next five tasks that will be executed, but you can +also specify the number of tasks to display: + +@example +# herd schedule mcron 10 +@end example + @deffn {Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}] Return an mcron service running @var{mcron} that schedules @var{jobs}, a list of gexps denoting mcron job specifications. diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index d882c232cf..8c96b70731 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -45,6 +45,7 @@ live-service-requirement live-service-running + with-shepherd-action current-services unload-services unload-service @@ -168,6 +169,8 @@ return #f." (define-syntax-rule (with-shepherd-action service (action args ...) result body ...) + "Invoke ACTION on SERVICE with the given ARGS, and evaluate BODY with RESULT +bound to the action's result." (invoke-action service action (list args ...) (lambda (result) body ...))) diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm index 5bee02a587..5757bf8cf6 100644 --- a/gnu/services/mcron.scm +++ b/gnu/services/mcron.scm @@ -60,29 +60,71 @@ (define (job-file job) (scheme-file "mcron-job" job)) +(define (shepherd-schedule-action mcron files) + "Return a Shepherd action that runs MCRON with '--schedule' for the given +files." + (shepherd-action + (name 'schedule) + (documentation + "Display jobs that are going to be scheduled.") + (procedure + #~(lambda* (_ #:optional (n "5")) + ;; XXX: This is a global side effect. + (setenv "GUILE_AUTO_COMPILE" "0") + + ;; Run 'mcron' in a pipe so we can explicitly redirect its output to + ;; 'current-output-port', which at this stage is bound to the client + ;; connection. + (let ((pipe (open-pipe* OPEN_READ + #$(file-append mcron "/bin/mcron") + (string-append "--schedule=" n) + #$@files))) + (let loop () + (match (read-line pipe 'concat) + ((? eof-object?) + (catch 'system-error + (lambda () + (zero? (close-pipe pipe))) + (lambda args + ;; There's with race between the SIGCHLD handler, which + ;; could call 'waitpid' before 'close-pipe' above does. If + ;; we get ECHILD, that means we lost the race, but that's + ;; fine. + (or (= ECHILD (system-error-errno args)) + (apply throw args))))) + (line + (display line) + (loop))))))))) + (define mcron-shepherd-services (match-lambda (($ mcron ()) ;nothing to do! '()) (($ mcron jobs) - (list (shepherd-service - (provision '(mcron)) - (requirement '(user-processes)) - (modules `((srfi srfi-1) - (srfi srfi-26) - ,@%default-modules)) - (start #~(make-forkexec-constructor - (list (string-append #$mcron "/bin/mcron") - #$@(map job-file jobs)) + (let ((files (map job-file jobs))) + (list (shepherd-service + (provision '(mcron)) + (requirement '(user-processes)) + (modules `((srfi srfi-1) + (srfi srfi-26) + (ice-9 popen) ;for the 'schedule' action + (ice-9 rdelim) + (ice-9 match) + ,@%default-modules)) + (start #~(make-forkexec-constructor + (list (string-append #$mcron "/bin/mcron") #$@files) - ;; Disable auto-compilation of the job files and set a - ;; sane value for 'PATH'. - #:environment-variables - (cons* "GUILE_AUTO_COMPILE=0" - "PATH=/run/current-system/profile/bin" - (remove (cut string-prefix? "PATH=" <>) - (environ))))) - (stop #~(make-kill-destructor))))))) + ;; Disable auto-compilation of the job files and set a + ;; sane value for 'PATH'. + #:environment-variables + (cons* "GUILE_AUTO_COMPILE=0" + "PATH=/run/current-system/profile/bin" + (remove (cut string-prefix? "PATH=" <>) + (environ))))) + (stop #~(make-kill-destructor)) + + (actions + (list (shepherd-schedule-action mcron files))))))))) (define mcron-service-type (service-type (name 'mcron) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 0efb4a6e55..f27064af85 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -632,6 +632,13 @@ non-ASCII names from /tmp.") (wait-for-file "/root/witness-touch" marionette #:read '(@ (ice-9 rdelim) read-string))) + ;; Make sure the 'schedule' action is accepted. + (test-equal "schedule action" + '(#t) ;one value, #t + (marionette-eval '(with-shepherd-action 'mcron ('schedule) result + result) + marionette)) + (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) From 01bcc94c2f752be165bfe5b8b157cee6889a5bf8 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:02:28 +0200 Subject: [PATCH 109/144] gnu: Add go-github-com-docker-go-connections. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-github-com-docker-go-connections): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 21783f2ee6..d3694876e2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1840,3 +1840,30 @@ deliver content") store, and deliver content. It's containe Docker Registry 2.0 and libraries to interacting with distribution components.") (license license:asl2.0)))) + +(define-public go-github-com-docker-go-connections + (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d") + (revision "0")) + (package + (name "go-github-com-docker-go-connections") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/docker/go-connections.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/docker/go-connections")) + (home-page "https://github.com/docker/go-connections") + (synopsis "Networking library for Go") + (description + "This packages provides a library to work with network connections in +the Go language. In particular it provides tools to deal with network address +translation (NAT), proxies, sockets, and transport layer security (TLS).") + (license license:asl2.0)))) From af132bcc001e3715e42fd63eb68fbefce487a170 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:06:06 +0200 Subject: [PATCH 110/144] gnu: Add go-github-com-docker-machine. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-github-com-docker-machine): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d3694876e2..a5e61b4365 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1867,3 +1867,30 @@ to interacting with distribution components.") the Go language. In particular it provides tools to deal with network address translation (NAT), proxies, sockets, and transport layer security (TLS).") (license license:asl2.0)))) + +(define-public go-github-com-docker-machine + (let ((commit "7b7a141da84480342357c51838be142bf183b095") + (revision "0")) + (package + (name "go-github-com-docker-machine") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/docker/machine.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/docker/machine")) + (home-page "https://github.com/docker/machine") + (synopsis "Machine management for a container-centric world") + (description + "@dfn{Machine} lets you create Docker hosts on your computer, on +hosting providers, and inside your data center. It creates servers, installs +Docker on them, then configures the Docker client to talk to them.") + (license license:asl2.0)))) From d850e7a0b7c0f35dc3ef39187e9f15c51723bd31 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:06:07 +0200 Subject: [PATCH 111/144] gnu: Add go-github-com-gorhill-cronexpr. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-github-com-gorhill-cronexpr): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a5e61b4365..bcd524dd2a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1894,3 +1894,31 @@ translation (NAT), proxies, sockets, and transport layer security (TLS).") hosting providers, and inside your data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them.") (license license:asl2.0)))) + +(define-public go-github-com-gorhill-cronexpr + (let ((commit "f0984319b44273e83de132089ae42b1810f4933b") + (revision "0")) + (package + (name "go-github-com-gorhill-cronexpr") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gorhill/cronexpr.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/gorhill/cronexpr")) + (home-page "https://github.com/gorhill/cronexpr") + (synopsis "Cron expression parser in the Go language") + (description + "This package provides a cron expression parser in the Go language. +Given a cron expression and a time stamp, you can get the next time stamp +which satisfies the cron expression.") + (license (list license:gpl3+ + license:asl2.0))))) From abd47216b70d6590322a75e6d6f7e85639c82077 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:06:08 +0200 Subject: [PATCH 112/144] gnu: Add go-gopkg-in-check-v1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-gopkg-in-check-v1): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index bcd524dd2a..9393d39d51 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1922,3 +1922,28 @@ Given a cron expression and a time stamp, you can get the next time stamp which satisfies the cron expression.") (license (list license:gpl3+ license:asl2.0))))) + +(define-public go-gopkg-in-check-v1 + (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec") + (revision "0")) + (package + (name "go-gopkg-in-check-v1") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-check/check") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np")))) + (build-system go-build-system) + (arguments + '(#:import-path "gopkg.in/check.v1")) + (home-page "https://gopkg.in/check.v1") + (synopsis "Test framework for the Go language") + (description + "This package provides a test library for the Go language.") + (license license:asl2.0)))) From d2c5e91278f2589e13390ee29630e593fbf41d22 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:06:09 +0200 Subject: [PATCH 113/144] gnu: Add go-gopkg-in-yaml-v2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-gopkg-in-yaml-v2): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9393d39d51..92ce504c52 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1947,3 +1947,31 @@ which satisfies the cron expression.") (description "This package provides a test library for the Go language.") (license license:asl2.0)))) + +(define-public go-gopkg-in-yaml-v2 + (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2") + (revision "0")) + (package + (name "go-gopkg-in-yaml-v2") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/yaml.v2.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah")))) + (build-system go-build-system) + (arguments + '(#:import-path "gopkg.in/yaml.v2")) + (native-inputs + `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1))) + (home-page "https://gopkg.in/yaml.v2") + (synopsis "YAML reader and writer for the Go language") + (description + "This package provides a Go library for encode and decode YAML +values.") + (license license:asl2.0)))) From 105a3625789a697409917141337ebb38173e3d15 Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Wed, 11 Jul 2018 01:34:41 +0200 Subject: [PATCH 114/144] gnu: moka-icon-theme: Update to 5.4.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (moka-icon-theme): Update to 5.4.0. Signed-off-by: Ludovic Courtès --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 19a216aa2a..04c25a2eed 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6508,7 +6508,7 @@ Moka") (package (inherit faba-icon-theme) (name "moka-icon-theme") - (version "5.3.6") + (version "5.4.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/moka-project" @@ -6517,7 +6517,7 @@ Moka") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "04axinv79qnngsxkwqzi5j9lc3hn24rjqps5ai8d42pdnfaf0x37")))) + "1nbwdjj268hxv9lfagd9aylily9f0hhallp841v0i3imljp84bmk")))) (propagated-inputs ;; Moka is based on Faba by using it as a fallback icon set instead of ;; bundling it, so we need to add it as a propagated input. From 2eee7ee3ec6ca1c7d5bae0e288ae51f27ef7cc7e Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Wed, 11 Jul 2018 01:26:26 +0200 Subject: [PATCH 115/144] gnu: faba-icon-theme: Update to 4.3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (faba-icon-theme) Update to 4.3. Signed-off-by: Ludovic Courtès --- gnu/packages/gnome.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 04c25a2eed..90270146fd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -30,6 +30,7 @@ ;;; Copyright © 2017 Brendan Tildesley ;;; Copyright © 2017, 2018 Rutger Helling ;;; Copyright © 2018 Jovany Leandro G.C +;;; Copyright © 2018 Vasile Dumitrascu ;;; ;;; This file is part of GNU Guix. ;;; @@ -6467,7 +6468,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (define-public faba-icon-theme (package (name "faba-icon-theme") - (version "4.1.2") + (version "4.3") (source (origin (method url-fetch) @@ -6476,7 +6477,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hi2dl627ayfnihn3v6x9xzid668m4hp098hb7hrkxvahh4h9by7")))) + "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68")))) (build-system gnu-build-system) (arguments '(#:phases From f6a9b345a739e7512b218bd5c7783779d9c66dd2 Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Wed, 11 Jul 2018 01:27:32 +0200 Subject: [PATCH 116/144] gnu: faba-icon-theme: Switch to meson-build-system. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (faba-icon-theme): [build-system]: Switch to meson-build-system. Signed-off-by: Ludovic Courtès --- gnu/packages/gnome.scm | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 90270146fd..206b52a5c0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6478,22 +6478,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (sha256 (base32 "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68")))) - (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-makefile.am - (lambda _ - (substitute* '("Makefile.am") - (("\\$\\(DESTDIR\\)/usr/share") - "$(datadir)")) - #t)) - (add-after 'unpack 'disable-configure-during-bootstrap - (lambda _ - ;; Do not run configure as part of autogen.sh because references - ;; to /bin are not fixed yet. - (setenv "NOCONFIGURE" "y") - #t))))) + (build-system meson-build-system) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) From 9866825961cbffa6a05f685d9cc71388d21a0a68 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen Date: Thu, 12 Jul 2018 17:08:48 +0200 Subject: [PATCH 117/144] gnu: emacs-biblio: Add missing dependencies. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-biblio)[propagated-inputs]: Add emacs-seq, emacs-dash and emacs-let-alist. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9238151cff..11cd244deb 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -35,6 +35,7 @@ ;;; Copyright © 2018 Sohom Bhattacharjee ;;; Copyright © 2018 Mathieu Lirzin ;;; Copyright © 2018 Pierre Neidhardt +;;; Copyright © 2018 Tim Gesthuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -8516,7 +8517,10 @@ outline-mode), so there is no such thing like an outshine mode, only (base32 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf")))) (build-system emacs-build-system) - (inputs `(("emacs-dash" ,emacs-dash))) + (propagated-inputs + `(("emacs-seq" ,emacs-seq) + ("emacs-dash" ,emacs-dash) + ("emacs-let-alist" ,emacs-let-alist))) (home-page "https://github.com/cpitclaudel/biblio.el") (synopsis "Browse and import bibliographic references") (description "This package provides an extensible Emacs package for From 7519dc95c7628ceeb5ed616604e8c432723a0a50 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 19:54:48 +0200 Subject: [PATCH 118/144] gnu: xapian: Fix notmuch test failure. * gnu/packages/patches/xapian-revert-5489fb2f8.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/search.scm (xapian)[source](patches): Use it. --- gnu/local.mk | 1 + .../patches/xapian-revert-5489fb2f8.patch | 23 +++++++++++++++++++ gnu/packages/search.scm | 1 + 3 files changed, 25 insertions(+) create mode 100644 gnu/packages/patches/xapian-revert-5489fb2f8.patch diff --git a/gnu/local.mk b/gnu/local.mk index 72a489210b..c33bf38494 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1214,6 +1214,7 @@ dist_patch_DATA = \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ %D%/packages/patches/x265-fix-ppc64le-build.patch \ + %D%/packages/patches/xapian-revert-5489fb2f8.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \ %D%/packages/patches/xdotool-fix-makefile.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ diff --git a/gnu/packages/patches/xapian-revert-5489fb2f8.patch b/gnu/packages/patches/xapian-revert-5489fb2f8.patch new file mode 100644 index 0000000000..7b78e2abb5 --- /dev/null +++ b/gnu/packages/patches/xapian-revert-5489fb2f8.patch @@ -0,0 +1,23 @@ +Revert this upstream commit which breaks a test case in "notmuch": + +https://git.xapian.org/?p=xapian;a=commitdiff;h=5489fb2f838c0f0b0a593b4c17df282a93a1fe5a + +See the notmuch FAQ entry: + +https://notmuchmail.org/faq/#index12h2 + +This should be fixed for later releases. + +diff --git a/backends/glass/glass_postlist.cc b/xapian-core/backends/glass/glass_postlist.cc +index 80e578b85..a47f14a68 100644 +--- a/backends/glass/glass_postlist.cc ++++ b/backends/glass/glass_postlist.cc +@@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_, + (void)need_pos; + if (term_.empty()) + RETURN(NULL); +- if (!this_db.get() || this_db->postlist_table.is_modified()) ++ if (!this_db.get() || this_db->postlist_table.is_writable()) + RETURN(NULL); + RETURN(new GlassPostList(this_db, term_, cursor->clone())); + } diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index a728f0a314..386092b358 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -52,6 +52,7 @@ (method url-fetch) (uri (string-append "https://oligarchy.co.uk/xapian/" version "/xapian-core-" version ".tar.xz")) + (patches (search-patches "xapian-revert-5489fb2f8.patch")) (sha256 (base32 "166qpfq7pvyrj2w2x07v31ypvqg6c2xyvds5sms9h4g2sg0z23hy")))) (build-system gnu-build-system) From b11844034d772f3eba71664f77aebbb69a353790 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 12 Jul 2018 10:33:21 -0400 Subject: [PATCH 119/144] gnu: curl: Update replacement to 7.61.0 [fixes CVE-2018-0500]. * gnu/packages/curl.scm (curl)[replacement]: Update to 7.61.0. (curl-7.60.0): Replace with ... (curl-7.61.0): ... new variable. --- gnu/packages/curl.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 65bc698389..e724fd147b 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -51,7 +51,7 @@ (package (name "curl") (version "7.59.0") - (replacement curl-7.60.0) + (replacement curl-7.61.0) (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" @@ -141,10 +141,10 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define-public curl-7.60.0 +(define-public curl-7.61.0 (package (inherit curl) - (version "7.60.0") + (version "7.61.0") (source (origin (method url-fetch) @@ -152,7 +152,7 @@ tunneling, and so on.") version ".tar.xz")) (sha256 (base32 - "1876ck0smbqz3xakm7s6q6gh4zarh9pv3izf4vlzgpc9xn6zydl7")))))) + "080p9r2kln8cbfj0rqfn6wqp5kdn9k5wp720nirkcw845lcmavpg")))))) (define-public kurly (package From 202befb4ae775cfdab1566f4a69ec184406a56be Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 4 Jul 2018 23:35:39 +0530 Subject: [PATCH 120/144] etc: snippets: Add new build systems to package snippet. * etc/snippets/scheme-mode/guix-package: Add android-ndk-build-system and scons-build-system as possibilities for the build-system field. --- etc/snippets/scheme-mode/guix-package | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/etc/snippets/scheme-mode/guix-package b/etc/snippets/scheme-mode/guix-package index d392e82093..48b87e3599 100644 --- a/etc/snippets/scheme-mode/guix-package +++ b/etc/snippets/scheme-mode/guix-package @@ -7,7 +7,8 @@ (name "$1") (version "$2") (source origin...$0) - (build-system ${3:$$(yas-choose-value "ant-build-system" + (build-system ${3:$$(yas-choose-value "android-ndk-build-system" + "ant-build-system" "asdf-build-system" "cargo-build-system" "cmake-build-system" @@ -25,6 +26,7 @@ "python-build-system" "r-build-system" "ruby-build-system" + "scons-build-system" "texlive-build-system" "trivial-build-system" "waf-build-system")}) From 9286c2950494b110e12d58d4ebd693d614120afe Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 5 Jul 2018 17:12:43 +0530 Subject: [PATCH 121/144] etc: snippets: Add guix-commit-message-use-https-home-page. * etc/snippets/text-mode/guix-commit-message-use-https-home-page: New file. * doc/contributing.texi (The Perfect Setup): Document new snippet. --- doc/contributing.texi | 3 ++- .../text-mode/guix-commit-message-use-https-home-page | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 etc/snippets/text-mode/guix-commit-message-use-https-home-page diff --git a/doc/contributing.texi b/doc/contributing.texi index 8feb519b0a..68d8e7e2fb 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -212,7 +212,8 @@ The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files. When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template -for updating a package. +for updating a package; type @code{https} followed by @kbd{TAB} to +insert a template for changing the home page URI of a package to HTTPS. The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}. This snippet also inserts the diff --git a/etc/snippets/text-mode/guix-commit-message-use-https-home-page b/etc/snippets/text-mode/guix-commit-message-use-https-home-page new file mode 100644 index 0000000000..df20d31a80 --- /dev/null +++ b/etc/snippets/text-mode/guix-commit-message-use-https-home-page @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: guix-commit-message-use-https-home-page +# key: https +# condition: git-commit-mode +# -- +gnu: $1: Use HTTPS home page URI. + +* `(car (magit-staged-files))` ($1)[home-page]: Use HTTPS URI. +`(mapconcat (lambda (file) (concat "* " file)) (cdr (magit-staged-files)) "\n")` \ No newline at end of file From d4b8fa5d3a81238f7d484a3685258d6b234d169a Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 13 Jul 2018 14:13:59 +0200 Subject: [PATCH 122/144] gnu: hunspell-dict-fr: Update to 6.2. * gnu/packages/libreoffice.scm (dicollecte-french-dictionary): Update to 6.2. --- gnu/packages/libreoffice.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 33ecdc47f0..dc13be19d2 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -754,7 +754,7 @@ word compounding or character encoding.") (name (match variant ("classique" "hunspell-dict-fr") (_ (string-append "hunspell-dict-fr-" variant)))) - (version "6.1") + (version "6.2") (source (origin (uri (string-append "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v" @@ -762,7 +762,7 @@ word compounding or character encoding.") (method url-fetch) (sha256 (base32 - "0w2hzh36wj3lsj2yd4mh7z7547dg452sywj79vnzx27csclwqshc")))) + "139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9")))) (build-system trivial-build-system) (native-inputs `(("unzip" ,unzip))) (arguments From e3ebfe6ca0dbf7b82169c9333dc31935e8c36226 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 13 Jul 2018 14:59:54 +0200 Subject: [PATCH 123/144] gnu: bind: Update to 9.12.2. * gnu/packages/dns.scm (bind): Update to 9.12.2. * gnu/packages/patches/bind-CVE-2018-5738.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/dns.scm | 5 +- gnu/packages/patches/bind-CVE-2018-5738.patch | 100 ------------------ 3 files changed, 2 insertions(+), 104 deletions(-) delete mode 100644 gnu/packages/patches/bind-CVE-2018-5738.patch diff --git a/gnu/local.mk b/gnu/local.mk index 979c3b4b93..9e875263ac 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -584,7 +584,6 @@ dist_patch_DATA = \ %D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/beignet-correct-file-names.patch \ - %D%/packages/patches/bind-CVE-2018-5738.patch \ %D%/packages/patches/binutils-aarch64-symbol-relocation.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blast+-fix-makefile.patch \ diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 9d728c3464..086012e88e 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -99,16 +99,15 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public isc-bind (package (name "bind") - (version "9.12.1-P2") + (version "9.12.2") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.isc.org/isc/bind9/" version "/" name "-" version ".tar.gz")) - (patches (search-patches "bind-CVE-2018-5738.patch")) (sha256 (base32 - "0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd")))) + "0ll46igs9xfq2qclc5wzqsnj3zv7ssga0544gm24s1m7765lqslz")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs diff --git a/gnu/packages/patches/bind-CVE-2018-5738.patch b/gnu/packages/patches/bind-CVE-2018-5738.patch deleted file mode 100644 index ddef014651..0000000000 --- a/gnu/packages/patches/bind-CVE-2018-5738.patch +++ /dev/null @@ -1,100 +0,0 @@ -Fix CVE-2018-5738: - -https://kb.isc.org/article/AA-01616/0/CVE-2018-5738 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5738 - -diff --git a/bin/named/server.c b/bin/named/server.c -index f63554e..847c4ff 100644 ---- a/bin/named/server.c -+++ b/bin/named/server.c -@@ -3725,10 +3725,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, - CHECKM(named_config_getport(config, &port), "port"); - dns_view_setdstport(view, port); - -- CHECK(configure_view_acl(vconfig, config, named_g_config, -- "allow-query", NULL, actx, -- named_g_mctx, &view->queryacl)); -- - /* - * Make the list of response policy zone names for a view that - * is used for real lookups and so cares about hints. -@@ -4692,21 +4688,35 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, - "allow-query-cache-on", NULL, actx, - named_g_mctx, &view->cacheonacl)); - /* -- * Set "allow-query-cache", "allow-recursion", and -- * "allow-recursion-on" acls if configured in named.conf. -- * (Ignore the global defaults for now, because these ACLs -- * can inherit from each other when only some of them set at -- * the options/view level.) -+ * Set the "allow-query", "allow-query-cache", "allow-recursion", -+ * and "allow-recursion-on" ACLs if configured in named.conf, but -+ * NOT from the global defaults. This is done by leaving the third -+ * argument to configure_view_acl() NULL. -+ * -+ * We ignore the global defaults here because these ACLs -+ * can inherit from each other. If any are still unset after -+ * applying the inheritance rules, we'll look up the defaults at -+ * that time. - */ -- CHECK(configure_view_acl(vconfig, config, NULL, "allow-query-cache", -- NULL, actx, named_g_mctx, &view->cacheacl)); -+ -+ /* named.conf only */ -+ CHECK(configure_view_acl(vconfig, config, NULL, -+ "allow-query", NULL, actx, -+ named_g_mctx, &view->queryacl)); -+ -+ /* named.conf only */ -+ CHECK(configure_view_acl(vconfig, config, NULL, -+ "allow-query-cache", NULL, actx, -+ named_g_mctx, &view->cacheacl)); - - if (strcmp(view->name, "_bind") != 0 && - view->rdclass != dns_rdataclass_chaos) - { -+ /* named.conf only */ - CHECK(configure_view_acl(vconfig, config, NULL, - "allow-recursion", NULL, actx, - named_g_mctx, &view->recursionacl)); -+ /* named.conf only */ - CHECK(configure_view_acl(vconfig, config, NULL, - "allow-recursion-on", NULL, actx, - named_g_mctx, &view->recursiononacl)); -@@ -4744,18 +4754,21 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, - * the global config. - */ - if (view->recursionacl == NULL) { -+ /* global default only */ - CHECK(configure_view_acl(NULL, NULL, named_g_config, - "allow-recursion", NULL, - actx, named_g_mctx, - &view->recursionacl)); - } - if (view->recursiononacl == NULL) { -+ /* global default only */ - CHECK(configure_view_acl(NULL, NULL, named_g_config, - "allow-recursion-on", NULL, - actx, named_g_mctx, - &view->recursiononacl)); - } - if (view->cacheacl == NULL) { -+ /* global default only */ - CHECK(configure_view_acl(NULL, NULL, named_g_config, - "allow-query-cache", NULL, - actx, named_g_mctx, -@@ -4769,6 +4782,14 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, - CHECK(dns_acl_none(mctx, &view->cacheacl)); - } - -+ if (view->queryacl == NULL) { -+ /* global default only */ -+ CHECK(configure_view_acl(NULL, NULL, named_g_config, -+ "allow-query", NULL, -+ actx, named_g_mctx, -+ &view->queryacl)); -+ } -+ - /* - * Ignore case when compressing responses to the specified - * clients. This causes case not always to be preserved, From e29067d22e89743b9d2c7a68987d7b892a3d304a Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 13 Jul 2018 14:24:27 +0200 Subject: [PATCH 124/144] import: hackage: Fix typo. * guix/import/cabal.scm (cabal-custom-setuo-name): Rename to... (cabal-custom-setup-name): ...this. --- guix/import/cabal.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index 4cd09cac29..4b2bfd4a25 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -686,7 +686,7 @@ If #f use the function 'port-filename' to obtain it." (define-record-type (make-cabal-custom-setup name dependencies) cabal-custom-setup? - (name cabal-custom-setuo-name) + (name cabal-custom-setup-name) (dependencies cabal-custom-setup-dependencies)) ; list of (define (cabal-flags->alist flag-list) From ffc3fcade3f7d2c7d26b2fe5245902e6407f9c93 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sun, 8 Jul 2018 13:15:41 +0300 Subject: [PATCH 125/144] git: Call 'url-cache-directory' outside 'update-cached-checkout'. * guix/git.scm (update-cached-checkout): Call 'url-cache-directory' in 'cache-directory' key argument. (latest-repository-commit): Call 'url-cache-directory'. --- guix/git.scm | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/guix/git.scm b/guix/git.scm index 9e89cc0062..193e2df111 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -114,7 +114,8 @@ OID (roughly the commit hash) corresponding to REF." #:key (ref '(branch . "origin/master")) (cache-directory - (%repository-cache-directory))) + (url-cache-directory + url (%repository-cache-directory)))) "Update the cached checkout of URL to REF in CACHE-DIRECTORY. Return two values: the cache directory name, and the SHA1 commit (a string) corresponding to REF. @@ -122,11 +123,10 @@ to REF. REF is pair whose key is [branch | commit | tag] and value the associated data, respectively [ | | ]." (with-libgit2 - (let* ((cache-dir (url-cache-directory url cache-directory)) - (cache-exists? (openable-repository? cache-dir)) + (let* ((cache-exists? (openable-repository? cache-directory)) (repository (if cache-exists? - (repository-open cache-dir) - (clone* url cache-dir)))) + (repository-open cache-directory) + (clone* url cache-directory)))) ;; Only fetch remote if it has not been cloned just before. (when cache-exists? (remote-fetch (remote-lookup repository "origin"))) @@ -138,7 +138,7 @@ data, respectively [ | | ]." 'repository-close!) (repository-close! repository)) - (values cache-dir (oid->string oid)))))) + (values cache-directory (oid->string oid)))))) (define* (latest-repository-commit store url #:key @@ -157,12 +157,14 @@ Git repositories are kept in the cache directory specified by (and (string=? (basename file) ".git") (eq? 'directory (stat:type stat)))) - (let*-values (((checkout commit) - (update-cached-checkout url - #:ref ref - #:cache-directory cache-directory)) - ((name) - (url+commit->name url commit))) + (let*-values + (((checkout commit) + (update-cached-checkout url + #:ref ref + #:cache-directory + (url-cache-directory url cache-directory))) + ((name) + (url+commit->name url commit))) (values (add-to-store store name #t "sha256" checkout #:select? (negate dot-git?)) commit))) From 0bc2d3e42b8800e875f24973f999739297f1f502 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 10 Jul 2018 17:53:02 +0300 Subject: [PATCH 126/144] gnu: Add ddclient. * gnu/packages/dns.scm (ddclient): New variable. --- gnu/packages/dns.scm | 92 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 086012e88e..ffa442f4d6 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 Vasile Dumitrascu ;;; Copyright © 2017 Gregor Giesen +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,7 +30,9 @@ #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages databases) + #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages datastructures) #:use-module (gnu packages flex) @@ -55,7 +58,8 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial)) (define-public dnsmasq (package @@ -575,3 +579,89 @@ synthesis, and on-the-fly re-configuration.") license:lgpl2.0+ ; parts of scr/contrib/ucw license:public-domain ; src/contrib/fnv and possibly murmurhash3 license:gpl3+)))) ; everything else + +(define-public ddclient + (package + (name "ddclient") + (version "3.8.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/ddclient/ddclient/ddclient-" + version "/ddclient-" version ".tar.gz")) + (sha256 + (base32 + "1j8zdn7fy7i0bjk3jf0hxnbnshc2yf054vxq64imxdpfd7n5zgfy")))) + (build-system trivial-build-system) ; no Makefile.PL + (native-inputs + `(("bash" ,bash) + ("gzip" ,gzip) + ("perl" ,perl) + ("tar" ,tar))) + (inputs + `(("net-tools" ,net-tools) + ("inetutils" ,inetutils) ;logger + ("perl-io-socket-ssl" ,perl-io-socket-ssl) + ("perl-digest-sha1" ,perl-digest-sha1))) + (arguments + `(#:modules ((guix build utils) + (ice-9 match) + (srfi srfi-26)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match) + (srfi srfi-26)) + ;; bootstrap + (setenv "PATH" (string-append + (assoc-ref %build-inputs "bash") "/bin" ":" + (assoc-ref %build-inputs "tar") "/bin" ":" + (assoc-ref %build-inputs "gzip") "/bin" ":" + (assoc-ref %build-inputs "perl") "/bin")) + ;; extract source + (invoke "tar" "xvf" (assoc-ref %build-inputs "source")) + ;; package + (with-directory-excursion (string-append ,name "-" ,version) + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin"))) + (let ((file "ddclient")) + (substitute* file + (("/usr/bin/perl") (which "perl")) + ;; Strictly use ‘/etc/ddclient/ddclient.conf’. + (("\\$\\{program\\}\\.conf") "/etc/ddclient/ddclient.conf") + (("\\$etc\\$program.conf") "/etc/ddclient/ddclient.conf") + ;; Strictly use ‘/var/cache/ddclient/ddclient.cache’ + (("\\$cachedir\\$program\\.cache") + "/var/cache/ddclient/ddclient.cache")) + (install-file file bin) + (wrap-program (string-append bin "/" file) + `("PATH" ":" = + ("$PATH" + ,@(map (lambda (input) + (match input + ((name . store) + (string-append store "/bin")))) + %build-inputs))) + `("PERL5LIB" ":" = + ,(delete + "" + (map (match-lambda + (((? (cut string-prefix? "perl-" <>) name) . dir) + (string-append dir "/lib/perl5/site_perl")) + (_ "")) + %build-inputs))))) + (for-each (cut install-file <> (string-append out + "/share/ddclient")) + (find-files "." "sample.*$"))))))) + (home-page "https://sourceforge.net/projects/ddclient/") + (synopsis "Address updating utility for dynamic DNS services") + (description "This package provides a client to update dynamic IP +addresses with several dynamic DNS service providers, such as +@uref{https://www.dyndns.com/account/login.html,DynDNS.com}. + +This makes it possible to use a fixed hostname (such as myhost.dyndns.org) to +access a machine with a dynamic IP address. + +The client supports both dynamic and (near) static services, as well as MX +record and alternative name management. It caches the address, and only +attempts the update when it has changed.") + (license license:gpl2+))) From bc6e291ef0b3c71c07e50d88d7764e5dd334e8b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 Jul 2018 14:33:11 +0200 Subject: [PATCH 127/144] guix package: Use relative symlinks to generations. Reported by Roel Janssen at . * guix/profiles.scm (switch-to-generation): Use (basename generation) as the symlink target. * guix/scripts/package.scm (build-and-use-profile): Likewise, use (basename name) as the symlink target. * tests/guix-package.sh: Adjust --roll-back test accordingly. Add explicitly test with '-p foo/prof'. --- guix/profiles.scm | 2 +- guix/scripts/package.scm | 2 +- tests/guix-package.sh | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index d2a794b187..f34f4fcff6 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1521,7 +1521,7 @@ the generation that was current before switching." (profile profile) (generation number))))) (else - (switch-symlinks profile generation) + (switch-symlinks profile (basename generation)) current)))) (define (switch-to-previous-generation profile) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 29829f52c8..b38a55d01c 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -190,7 +190,7 @@ do not treat collisions in MANIFEST as an error." (let* ((entries (manifest-entries manifest)) (count (length entries))) (switch-symlinks name prof) - (switch-symlinks profile name) + (switch-symlinks profile (basename name)) (unless (string=? profile %current-profile) (register-gc-root store name)) (format #t (N_ "~a package in profile~%" diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 3b3fa35cd8..cef3b3452e 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -185,6 +185,16 @@ grep -E 'emacs[[:blank:]]+42\.5\.9rc7[[:blank:]]+.*-emacs-42.5.9rc7' \ rm "$emacs_tarball" "$tmpfile" rmdir "$module_dir" +# Profiles with a relative file name. Make sure we don't create dangling +# symlinks--see bug report at +# . +mkdir -p "$module_dir/foo" +( cd "$module_dir" ; \ + guix package --bootstrap -i guile-bootstrap -p foo/prof ) +test -f "$module_dir/foo/prof/bin/guile" +rm "$module_dir/foo"/* +rmdir "$module_dir/foo" +rmdir "$module_dir" # # Try with the default profile. @@ -215,7 +225,7 @@ do guix package --bootstrap --roll-back ! test -f "$HOME/.guix-profile/bin" ! test -f "$HOME/.guix-profile/lib" - test "`readlink "$default_profile"`" = "$default_profile-0-link" + test "`readlink "$default_profile"`" = "`basename $default_profile-0-link`" done # Check whether '-p ~/.guix-profile' makes any difference. From 2ca299caf64489f4e1e665ec1158fb0309b0b565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 10 Jul 2018 14:18:36 +0200 Subject: [PATCH 128/144] Add (guix inferior) and (guix scripts repl). * guix/inferior.scm, guix/scripts/repl.scm, tests/inferior.scm: New files. * Makefile.am (MODULES): Add 'guix/scripts/repl.scm' and 'guix/inferior.scm'. (SCM_TESTS): Add 'tests/inferior.scm'. * doc/guix.texi (Invoking guix repl): New node. --- Makefile.am | 3 + doc/guix.texi | 53 +++++++++++ guix/inferior.scm | 197 +++++++++++++++++++++++++++++++++++++++++ guix/scripts/repl.scm | 199 ++++++++++++++++++++++++++++++++++++++++++ tests/inferior.scm | 69 +++++++++++++++ 5 files changed, 521 insertions(+) create mode 100644 guix/inferior.scm create mode 100644 guix/scripts/repl.scm create mode 100644 tests/inferior.scm diff --git a/Makefile.am b/Makefile.am index 618d1653e4..134ab0f142 100644 --- a/Makefile.am +++ b/Makefile.am @@ -85,6 +85,7 @@ MODULES = \ guix/nar.scm \ guix/derivations.scm \ guix/grafts.scm \ + guix/inferior.scm \ guix/gnu-maintenance.scm \ guix/self.scm \ guix/upstream.scm \ @@ -200,6 +201,7 @@ MODULES = \ guix/scripts/substitute.scm \ guix/scripts/authenticate.scm \ guix/scripts/refresh.scm \ + guix/scripts/repl.scm \ guix/scripts/system.scm \ guix/scripts/system/search.scm \ guix/scripts/lint.scm \ @@ -357,6 +359,7 @@ SCM_TESTS = \ tests/profiles.scm \ tests/search-paths.scm \ tests/syscalls.scm \ + tests/inferior.scm \ tests/gremlin.scm \ tests/bournish.scm \ tests/lint.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index eaec4c422b..7a5ddefd4e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -166,6 +166,7 @@ Programming Interface * Derivations:: Low-level interface to package derivations. * The Store Monad:: Purely functional interface to the store. * G-Expressions:: Manipulating build expressions. +* Invoking guix repl:: Fiddling with Guix interactively. Defining Packages @@ -3267,6 +3268,7 @@ package definitions. * Derivations:: Low-level interface to package derivations. * The Store Monad:: Purely functional interface to the store. * G-Expressions:: Manipulating build expressions. +* Invoking guix repl:: Fiddling with Guix interactively. @end menu @node Defining Packages @@ -5544,6 +5546,57 @@ corresponding to @var{obj} for @var{system}, cross-compiling for has an associated gexp compiler, such as a @code{}. @end deffn +@node Invoking guix repl +@section Invoking @command{guix repl} + +@cindex REPL, read-eval-print loop +The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop} +(REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, +GNU Guile Reference Manual}). Compared to just launching the @command{guile} +command, @command{guix repl} guarantees that all the Guix modules and all its +dependencies are available in the search path. You can use it this way: + +@example +$ guix repl +scheme@@(guile-user)> ,use (gnu packages base) +scheme@@(guile-user)> coreutils +$1 = # +@end example + +@cindex inferiors +In addition, @command{guix repl} implements a simple machine-readable REPL +protocol for use by @code{(guix inferior)}, a facility to interact with +@dfn{inferiors}, separate processes running a potentially different revision +of Guix. + +The available options are as follows: + +@table @code +@item --type=@var{type} +@itemx -t @var{type} +Start a REPL of the given @var{TYPE}, which can be one of the following: + +@table @code +@item guile +This is default, and it spawns a standard full-featured Guile REPL. +@item machine +Spawn a REPL that uses the machine-readable protocol. This is the protocol +that the @code{(guix inferior)} module speaks. +@end table + +@item --listen=@var{endpoint} +By default, @command{guix repl} reads from standard input and writes to +standard output. When this option is passed, it will instead listen for +connections on @var{endpoint}. Here are examples of valid options: + +@table @code +@item --listen=tcp:37146 +Accept connections on localhost on port 37146. + +@item --listen=unix:/tmp/socket +Accept connections on the Unix-domain socket @file{/tmp/socket}. +@end table +@end table @c ********************************************************************* @node Utilities diff --git a/guix/inferior.scm b/guix/inferior.scm new file mode 100644 index 0000000000..629c2c4313 --- /dev/null +++ b/guix/inferior.scm @@ -0,0 +1,197 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix inferior) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-9 gnu) + #:use-module (ice-9 match) + #:use-module (ice-9 popen) + #:export (inferior? + open-inferior + close-inferior + inferior-eval + inferior-object? + + inferior-package? + inferior-package-name + inferior-package-version + + inferior-packages + inferior-package-synopsis + inferior-package-description)) + +;;; Commentary: +;;; +;;; This module provides a way to spawn Guix "inferior" processes and to talk +;;; to them. It allows us, from one instance of Guix, to interact with +;;; another instance of Guix coming from a different commit. +;;; +;;; Code: + +;; Inferior Guix process. +(define-record-type + (inferior pid socket version) + inferior? + (pid inferior-pid) + (socket inferior-socket) + (version inferior-version)) ;REPL protocol version + +(define (inferior-pipe directory command) + "Return an input/output pipe on the Guix instance in DIRECTORY. This runs +'DIRECTORY/COMMAND repl' if it exists, or falls back to some other method if +it's an old Guix." + (let ((pipe (with-error-to-port (%make-void-port "w") + (lambda () + (open-pipe* OPEN_BOTH + (string-append directory "/" command) + "repl" "-t" "machine"))))) + (if (eof-object? (peek-char pipe)) + (begin + (close-pipe pipe) + + ;; Older versions of Guix didn't have a 'guix repl' command, so + ;; emulate it. + (open-pipe* OPEN_BOTH "guile" + "-L" (string-append directory "/share/guile/site/" + (effective-version)) + "-C" (string-append directory "/share/guile/site/" + (effective-version)) + "-C" (string-append directory "/lib/guile/" + (effective-version) "/site-ccache") + "-c" + (object->string + `(begin + (primitive-load ,(search-path %load-path + "guix/scripts/repl.scm")) + ((@ (guix scripts repl) machine-repl)))))) + pipe))) + +(define* (open-inferior directory #:key (command "bin/guix")) + "Open the inferior Guix in DIRECTORY, running 'DIRECTORY/COMMAND repl' or +equivalent. Return #f if the inferior could not be launched." + (define pipe + (inferior-pipe directory command)) + + (setvbuf pipe _IOLBF) + (match (read pipe) + (('repl-version 0 rest ...) + (let ((result (inferior 'pipe pipe (cons 0 rest)))) + (inferior-eval '(use-modules (guix)) result) + (inferior-eval '(use-modules (gnu)) result) + (inferior-eval '(define %package-table (make-hash-table)) + result) + result)) + (_ + #f))) + +(define (close-inferior inferior) + "Close INFERIOR." + (close-pipe (inferior-socket inferior))) + +;; Non-self-quoting object of the inferior. +(define-record-type + (inferior-object address appearance) + inferior-object? + (address inferior-object-address) + (appearance inferior-object-appearance)) + +(define (write-inferior-object object port) + (match object + (($ _ appearance) + (format port "#" appearance)))) + +(set-record-type-printer! write-inferior-object) + +(define (inferior-eval exp inferior) + "Evaluate EXP in INFERIOR." + (define sexp->object + (match-lambda + (('value value) + value) + (('non-self-quoting address string) + (inferior-object address string)))) + + (write exp (inferior-socket inferior)) + (newline (inferior-socket inferior)) + (match (read (inferior-socket inferior)) + (('values objects ...) + (apply values (map sexp->object objects))) + (('exception key objects ...) + (apply throw key (map sexp->object objects))))) + + +;;; +;;; Inferior packages. +;;; + +(define-record-type + (inferior-package inferior name version id) + inferior-package? + (inferior inferior-package-inferior) + (name inferior-package-name) + (version inferior-package-version) + (id inferior-package-id)) + +(define (write-inferior-package package port) + (match package + (($ _ name version) + (format port "#" + name version + (number->string (object-address package) 16))))) + +(set-record-type-printer! write-inferior-package) + +(define (inferior-packages inferior) + "Return the list of packages known to INFERIOR." + (let ((result (inferior-eval + '(fold-packages (lambda (package result) + (let ((id (object-address package))) + (hashv-set! %package-table id package) + (cons (list (package-name package) + (package-version package) + id) + result))) + '()) + inferior))) + (map (match-lambda + ((name version id) + (inferior-package inferior name version id))) + result))) + +(define (inferior-package-field package getter) + "Return the field of PACKAGE, an inferior package, accessed with GETTER." + (let ((inferior (inferior-package-inferior package)) + (id (inferior-package-id package))) + (inferior-eval `(,getter (hashv-ref %package-table ,id)) + inferior))) + +(define* (inferior-package-synopsis package #:key (translate? #t)) + "Return the Texinfo synopsis of PACKAGE, an inferior package. When +TRANSLATE? is true, translate it to the current locale's language." + (inferior-package-field package + (if translate? + '(compose (@ (guix ui) P_) package-synopsis) + 'package-synopsis))) + +(define* (inferior-package-description package #:key (translate? #t)) + "Return the Texinfo description of PACKAGE, an inferior package. When +TRANSLATE? is true, translate it to the current locale's language." + (inferior-package-field package + (if translate? + '(compose (@ (guix ui) P_) package-description) + 'package-description))) diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm new file mode 100644 index 0000000000..b157833a49 --- /dev/null +++ b/guix/scripts/repl.scm @@ -0,0 +1,199 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix scripts repl) + #:use-module (guix ui) + #:use-module (guix scripts) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-37) + #:use-module (ice-9 match) + #:use-module (rnrs bytevectors) + #:autoload (system repl repl) (start-repl) + #:autoload (system repl server) + (make-tcp-server-socket make-unix-domain-server-socket) + #:export (machine-repl + guix-repl)) + +;;; Commentary: +;;; +;;; This command provides a Guile REPL + +(define %default-options + `((type . guile))) + +(define %options + (list (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix repl"))) + (option '(#\t "type") #t #f + (lambda (opt name arg result) + (alist-cons 'type (string->symbol arg) result))) + (option '("listen") #t #f + (lambda (opt name arg result) + (alist-cons 'listen arg result))))) + + +(define (show-help) + (display (G_ "Usage: guix repl [OPTIONS...] +Start a Guile REPL in the Guix execution environment.\n")) + (display (G_ " + -t, --type=TYPE start a REPL of the given TYPE")) + (newline) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define (self-quoting? x) + "Return #t if X is self-quoting." + (letrec-syntax ((one-of (syntax-rules () + ((_) #f) + ((_ pred rest ...) + (or (pred x) + (one-of rest ...)))))) + (one-of symbol? string? pair? null? vector? + bytevector? number? boolean?))) + +(define user-module + ;; Module where we execute user code. + (let ((module (resolve-module '(guix-user) #f #f #:ensure #t))) + (beautify-user-module! module) + module)) + +(define* (machine-repl #:optional + (input (current-input-port)) + (output (current-output-port))) + "Run a machine-usable REPL over ports INPUT and OUTPUT. + +The protocol of this REPL is meant to be machine-readable and provides proper +support to represent multiple-value returns, exceptions, objects that lack a +read syntax, and so on. As such it is more convenient and robust than parsing +Guile's REPL prompt." + (define (value->sexp value) + (if (self-quoting? value) + `(value ,value) + `(non-self-quoting ,(object-address value) + ,(object->string value)))) + + (write `(repl-version 0 0) output) + (newline output) + (force-output output) + + (let loop () + (match (read input) + ((? eof-object?) #t) + (exp + (catch #t + (lambda () + (let ((results (call-with-values + (lambda () + + (primitive-eval exp)) + list))) + (write `(values ,@(map value->sexp results)) + output) + (newline output) + (force-output output))) + (lambda (key . args) + (write `(exception ,key ,@(map value->sexp args))) + (newline output) + (force-output output))) + (loop))))) + +(define (call-with-connection spec thunk) + "Dynamically-bind the current input and output ports according to SPEC and +call THUNK." + (if (not spec) + (thunk) + + ;; Note: the "PROTO:" prefix in SPEC is here so that we can eventually + ;; parse things like "fd:123" in a non-ambiguous way. + (match (string-index spec #\:) + (#f + (leave (G_ "~A: invalid listen specification~%") spec)) + (index + (let ((protocol (string-take spec index)) + (address (string-drop spec (+ index 1)))) + (define socket + (match protocol + ("tcp" + (make-tcp-server-socket #:port (string->number address))) + ("unix" + (make-unix-domain-server-socket #:path address)) + (_ + (leave (G_ "~A: unsupported protocol family~%") + protocol)))) + + (listen socket 10) + (let loop () + (match (accept socket) + ((connection . address) + (if (= AF_UNIX (sockaddr:fam address)) + (info (G_ "accepted connection~%")) + (info (G_ "accepted connection from ~a~%") + (inet-ntop (sockaddr:fam address) + (sockaddr:addr address)))) + (dynamic-wind + (const #t) + (lambda () + (parameterize ((current-input-port connection) + (current-output-port connection)) + (thunk))) + (lambda () + (false-if-exception (close-port connection)) + (info (G_ "connection closed~%")))))) + (loop))))))) + + +(define (guix-repl . args) + (define opts + ;; Return the list of package names. + (args-fold* args %options + (lambda (opt name arg result) + (leave (G_ "~A: unrecognized option~%") name)) + (lambda (arg result) + (leave (G_ "~A: extraneous argument~%") arg)) + %default-options)) + + (with-error-handling + (let ((type (assoc-ref opts 'type))) + (call-with-connection (assoc-ref opts 'listen) + (lambda () + (case type + ((guile) + (save-module-excursion + (lambda () + (set-current-module user-module) + (start-repl)))) + ((machine) + (machine-repl)) + (else + (leave (G_ "~a: unknown type of REPL~%") type)))))))) + +;; Local Variables: +;; eval: (put 'call-with-connection 'scheme-indent-function 1) +;; End: diff --git a/tests/inferior.scm b/tests/inferior.scm new file mode 100644 index 0000000000..5e0f8ae66e --- /dev/null +++ b/tests/inferior.scm @@ -0,0 +1,69 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (test-inferior) + #:use-module (guix inferior) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-64)) + +(define %top-srcdir + (dirname (search-path %load-path "guix.scm"))) + +(define %top-builddir + (dirname (search-path %load-compiled-path "guix.go"))) + + +(test-begin "inferior") + +(test-equal "open-inferior" + '(42 #t) + (let ((inferior (open-inferior %top-builddir + #:command "scripts/guix"))) + (and (inferior? inferior) + (let ((a (inferior-eval '(apply * '(6 7)) inferior)) + (b (inferior-eval '(@ (gnu packages base) coreutils) + inferior))) + (close-inferior inferior) + (list a (inferior-object? b)))))) + +(test-equal "inferior-packages" + (take (sort (fold-packages (lambda (package lst) + (alist-cons (package-name package) + (package-version package) + lst)) + '()) + (lambda (x y) + (string Date: Tue, 10 Jul 2018 16:06:32 +0200 Subject: [PATCH 129/144] pull: Use (guix inferior) to display new and upgraded packages. * guix/scripts/pull.scm (display-profile-content): Call 'display-generation'. (display-new/upgraded-packages, display-profile-content-diff): New procedures. (process-query)[list-generation]: Remove. [list-generations]: New procedure. Adjust accordingly. * doc/guix.texi (Invoking guix pull): Update example of '-l'. --- doc/guix.texi | 6 +++ guix/scripts/pull.scm | 109 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 104 insertions(+), 11 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7a5ddefd4e..c759ccb119 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2786,12 +2786,18 @@ Generation 2 Jun 11 2018 11:02:49 repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d + 2 new packages: keepalived, libnfnetlink + 6 packages upgraded: emacs-nix-mode@@2.0.4, + guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac, + heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4 Generation 3 Jun 13 2018 23:31:07 (current) guix 844cc1c repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: 844cc1c8f394f03b404c5bb3aee086922373490c + 28 new packages: emacs-helm-ls-git, emacs-helm-mu, @dots{} + 69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{} @end example This @code{~/.config/guix/current} profile works like any other profile diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 7202e3cc16..aa77434334 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -28,7 +28,9 @@ #:use-module (guix profiles) #:use-module (guix gexp) #:use-module (guix grafts) + #:use-module (guix memoization) #:use-module (guix monads) + #:autoload (guix inferior) (open-inferior) #:use-module (guix scripts build) #:autoload (guix self) (whole-package) #:autoload (gnu packages ssh) (guile-ssh) @@ -45,9 +47,11 @@ #:use-module ((gnu packages certs) #:select (le-certs)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) #:use-module (ice-9 match) + #:use-module (ice-9 vlist) #:export (guix-pull)) (module-autoload! (resolve-module '(guix scripts pull)) @@ -289,6 +293,7 @@ certificates~%")) (define (display-profile-content profile number) "Display the packages in PROFILE, generation NUMBER, in a human-readable way and displaying details about the channel's source code." + (display-generation profile number) (for-each (lambda (entry) (format #t " ~a ~a~%" (manifest-entry-name entry) @@ -310,6 +315,85 @@ way and displaying details about the channel's source code." (manifest-entries (profile-manifest (generation-file-name profile number)))))) +(define (indented-string str indent) + "Return STR with each newline preceded by IDENT spaces." + (define indent-string + (make-list indent #\space)) + + (list->string + (string-fold-right (lambda (chr result) + (if (eqv? chr #\newline) + (cons chr (append indent-string result)) + (cons chr result))) + '() + str))) + +(define profile-package-alist + (mlambda (profile) + "Return a name/version alist representing the packages in PROFILE." + (fold (lambda (package lst) + (alist-cons (inferior-package-name package) + (inferior-package-version package) + lst)) + '() + (let* ((inferior (open-inferior profile)) + (packages (inferior-packages inferior))) + (close-inferior inferior) + packages)))) + +(define (display-new/upgraded-packages alist1 alist2) + "Given the two package name/version alists ALIST1 and ALIST2, display the +list of new and upgraded packages going from ALIST1 to ALIST2." + (let* ((old (fold (match-lambda* + (((name . version) table) + (vhash-cons name version table))) + vlist-null + alist1)) + (new (remove (match-lambda + ((name . _) + (vhash-assoc name old))) + alist2)) + (upgraded (filter-map (match-lambda + ((name . new-version) + (match (vhash-fold* cons '() name old) + (() #f) + ((= (cut sort <> version>?) old-versions) + (and (version>? new-version + (first old-versions)) + (string-append name "@" + new-version)))))) + alist2))) + (match (length new) + (0 #t) + (count + (format #t (N_ " ~h new package: ~a~%" + " ~h new packages: ~a~%" count) + count + (indented-string + (fill-paragraph (string-join (sort (map first new) string (match-lambda (() (exit 1)) ((numbers ...) - (for-each (lambda (generation) - (list-generation display-profile-content generation)) - numbers))))))))) + (list-generations profile numbers))))))))) (define (guix-pull . args) From bca302c67af6969584e60bd1604ea196ecc48c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 Jul 2018 16:59:15 +0200 Subject: [PATCH 130/144] pull: Display new/upgraded packages upon completion. * guix/scripts/pull.scm (display-profile-news): New procedure. (build-and-install): Call it. (display-new/upgraded-packages): Add #:heading and honor it. --- guix/scripts/pull.scm | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index aa77434334..433502b5de 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -33,6 +33,7 @@ #:autoload (guix inferior) (open-inferior) #:use-module (guix scripts build) #:autoload (guix self) (whole-package) + #:use-module (gnu packages) #:autoload (gnu packages ssh) (guile-ssh) #:autoload (gnu packages tls) (gnutls) #:use-module ((guix scripts package) #:select (build-and-use-profile)) @@ -234,12 +235,32 @@ URL, BRANCH, and COMMIT as a property in the manifest entry." (branch ,branch) (commit ,commit)))))))))) +(define (display-profile-news profile) + "Display what's up in PROFILE--new packages, and all that." + (match (memv (generation-number profile) + (reverse (profile-generations profile))) + ((current previous _ ...) + (newline) + (let ((old (fold-packages (lambda (package result) + (alist-cons (package-name package) + (package-version package) + result)) + '())) + (new (profile-package-alist + (generation-file-name profile current)))) + (display-new/upgraded-packages old new + #:heading (G_ "New in this revision:\n")))) + (_ #t))) + (define* (build-and-install source config-dir #:key verbose? url branch commit) "Build the tool from SOURCE, and install it in CONFIG-DIR." (define update-profile (store-lift build-and-use-profile)) + (define profile + (string-append config-dir "/current")) + (mlet* %store-monad ((drv (build-from-source source #:commit commit #:verbose? verbose?)) @@ -247,8 +268,9 @@ URL, BRANCH, and COMMIT as a property in the manifest entry." #:url url #:branch branch #:commit commit))) - (update-profile (string-append config-dir "/current") - (manifest (list entry))))) + (mbegin %store-monad + (update-profile profile (manifest (list entry))) + (return (display-profile-news profile))))) (define (honor-lets-encrypt-certificates! store) "Tell Guile-Git to use the Let's Encrypt certificates." @@ -341,9 +363,11 @@ way and displaying details about the channel's source code." (close-inferior inferior) packages)))) -(define (display-new/upgraded-packages alist1 alist2) +(define* (display-new/upgraded-packages alist1 alist2 + #:key (heading "")) "Given the two package name/version alists ALIST1 and ALIST2, display the -list of new and upgraded packages going from ALIST1 to ALIST2." +list of new and upgraded packages going from ALIST1 to ALIST2. When ALIST1 +and ALIST2 differ, display HEADING upfront." (let* ((old (fold (match-lambda* (((name . version) table) (vhash-cons name version table))) @@ -363,6 +387,9 @@ list of new and upgraded packages going from ALIST1 to ALIST2." (string-append name "@" new-version)))))) alist2))) + (unless (and (null? new) (null? upgraded)) + (display heading)) + (match (length new) (0 #t) (count From f6c8771463de215dedae268a45d2faa64f222a59 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sun, 8 Jul 2018 20:39:24 +0300 Subject: [PATCH 131/144] gnu: Add cppzmq. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/networking.scm (cppzmq): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/networking.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index b72a4734d7..ebf0e86f12 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -22,6 +22,7 @@ ;;; Copyright © 2018 Fis Trivial ;;; Copyright © 2018 Tonton ;;; Copyright © 2018 Clément Lassieur +;;; Copyright © 2018 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -315,6 +316,35 @@ more.") between different versions of ØMQ.") (license license:mpl2.0))) +(define-public cppzmq + (let ((revision "0") + (commit "d9f0f016c07046742738c65e1eb84722ae32d7d4")) + (package + (name "cppzmq") + (version (string-append "4.2.2-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zeromq/cppzmq") + (commit commit))) + (sha256 + (base32 + "1gmqlm00y6xpa5m6d4ajq3ww63n2w7h4sy997wj81vcqmqx45b1f")) + (file-name (string-append name "-" version "-checkout")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; No tests. + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("zeromq" ,zeromq))) + (home-page "http://zeromq.org") + (synopsis "C++ bindings for the ØMQ messaging library") + (description + "This package provides header-only C++ bindings for ØMQ. The header +files contain direct mappings of the abstractions provided by the ØMQ C API.") + (license license:expat)))) + (define-public librdkafka (package (name "librdkafka") From a811bca28908a42b65cf5af0dd3a0801effaa620 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sun, 8 Jul 2018 20:39:25 +0300 Subject: [PATCH 132/144] gnu: Add miniupnpc-monero. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/upnp.scm (monero-miniupnpc): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/upnp.scm | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index 475e1750a8..24b17111e9 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 Sree Harsha Totakura ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,7 +23,9 @@ #:use-module (gnu packages) #:use-module (gnu packages python) #:use-module (guix build-system gnu) + #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix licenses) #:use-module (guix packages)) @@ -76,6 +79,49 @@ over IRC, instant messaging, network games, and most server software.") (license (x11-style "file://LICENSE" "See 'LICENSE' file in the distribution")))) +(define-public monero-miniupnpc + ;; This package is the bundled version of miniupnpc used with monero. + ;; Monero-project has been maintaining its own version of the package since + ;; release 0.12.2.0. It includes security fixes not included in upstream + ;; releases. + (let ((revision "0") + (commit "6a63f9954959119568fbc4af57d7b491b9428d87")) + (package + (inherit miniupnpc) + (name "miniupnpc-monero") + (version (string-append "2.1-monero-0.12.3.0-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/monero-project/miniupnp/") + (commit commit))) + (sha256 + (base32 + "0s67zcz978iapjlq30yy9dl8qda9xhrl3jdi5f99cnbglh5gy16a")) + (file-name (string-append name "-" version "-checkout")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete miniupnp subprojects except for miniupnpc. + (for-each + delete-file-recursively + '("minissdpd" "miniupnpc-async" "miniupnpc-libevent" + "miniupnpd" )) + #t)))) + (arguments + (substitute-keyword-arguments (package-arguments miniupnpc) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'build 'change-directory + (lambda _ + (chdir "miniupnpc") + #t)) + (add-after 'change-directory 'chmod-header-file + (lambda _ + (chmod "miniupnpc.h" #o644) + #t))))))))) + (define-public libupnp (package (name "libupnp") From 34aff57c8223d5ff07d4cf74dbcaccebaab439a7 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 13 Jul 2018 18:36:57 +0200 Subject: [PATCH 133/144] gnu: antlr3: Fix compilation. * gnu/packages/java.scm (antlr3)[arguments]: Fix 'generate-grammar' phase. --- gnu/packages/java.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8d4a29267a..a7d5c9f445 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6164,8 +6164,6 @@ StringTemplate also powers ANTLR.") (substitute* "ANTLRv3Parser.java" (("public Object getTree") "public CommonTree getTree")) (chdir "../../../../../java") - (invoke "antlr" "-o" "org/antlr/tool" - "org/antlr/tool/serialize.g") (substitute* "org/antlr/tool/LeftRecursiveRuleAnalyzer.java" (("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*; import org.antlr.grammar.v3.ANTLRTreePrinter;")) From 00c86a888488b16ce30634d3a3a9d871ed6734a2 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Fri, 13 Jul 2018 19:42:33 +0200 Subject: [PATCH 134/144] gnu: mes: Update to 0.16.1. * gnu/packages/mes.scm (mes): Update to 0.16.1. --- gnu/packages/mes.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 52464e28d4..8bde7b1525 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -25,8 +25,10 @@ #:use-module (gnu packages cross-base) #:use-module (gnu packages gcc) #:use-module (gnu packages guile) + #:use-module (gnu packages man) #:use-module (gnu packages package-management) #:use-module (gnu packages perl) + #:use-module (gnu packages texinfo) #:use-module (guix build-system gnu) #:use-module (guix download) #:use-module (guix git-download) @@ -73,7 +75,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") (let ((triplet "i686-unknown-linux-gnu")) (package (name "mes") - (version "0.16") + (version "0.16.1") (source (origin (method url-fetch) (uri (string-append "https://gitlab.com/janneke/mes" @@ -81,7 +83,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") "/mes-" version ".tar.gz")) (sha256 (base32 - "0c4vz1qw767af5h615055hh8zjwwmwf5mwkb64l0l921zaa9hg2n")))) + "0qghlbx2qn674q8vckxpzsd0p845kclg457bw6r25jpmslgm0bz2")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (propagated-inputs @@ -96,7 +98,9 @@ extensive examples, including parsers for the Javascript and C99 languages.") `(("i686-linux-binutils" ,(cross-binutils triplet)) ("i686-linux-gcc" ,(cross-gcc triplet))) '()) - ("perl" ,perl))) ;build-aux/gitlog-to-changelog + ("help2man" ,help2man) + ("perl" ,perl) ;build-aux/gitlog-to-changelog + ("texinfo" ,texinfo))) (arguments `(#:phases (modify-phases %standard-phases From 82da291abe3ce898d42abb199160d0a40c297a37 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 13 Jul 2018 19:49:53 +0200 Subject: [PATCH 135/144] gnu: faba-icon-theme: Fix build. * gnu/packages/gnome.scm (faba-icon-theme)[arguments]: Disable running gtk-update-icon-cache after installation. --- gnu/packages/gnome.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index dffebe92eb..a571d922cb 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6488,6 +6488,13 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (base32 "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68")))) (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'disable-post-install + (lambda _ + (substitute* "meson.build" + (("meson.add_install_script.*") ""))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) From 92bcccc51fd52571fb62166e787109a07185e329 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 13 Jul 2018 15:53:25 -0400 Subject: [PATCH 136/144] tests: Don't rely on temporary directories being permanent. * tests/gexp.scm ("gexp->script #:module-path", "program-file #:module-path"): Use run-with-store. --- tests/gexp.scm | 56 ++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/tests/gexp.scm b/tests/gexp.scm index 83fe811546..391a0f8be5 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -948,7 +948,7 @@ (return (and (zero? (close-pipe pipe)) (= (expt n 2) (string->number str))))))) -(test-assertm "gexp->script #:module-path" +(test-assert "gexp->script #:module-path" (call-with-temporary-directory (lambda (directory) (define str @@ -961,23 +961,24 @@ (define-public %fake! ,str)) port))) - (mlet* %store-monad ((exp -> (with-imported-modules '((guix base32)) - (gexp (begin - (use-modules (guix base32)) - (write (list %load-path - %fake!)))))) - (drv (gexp->script "guile-thing" exp - #:guile %bootstrap-guile - #:module-path (list directory))) - (out -> (derivation->output-path drv)) - (done (built-derivations (list drv)))) - (let* ((pipe (open-input-pipe out)) - (data (read pipe))) - (return (and (zero? (close-pipe pipe)) - (match data - ((load-path str*) - (and (string=? str* str) - (not (member directory load-path)))))))))))) + (run-with-store %store + (mlet* %store-monad ((exp -> (with-imported-modules '((guix base32)) + (gexp (begin + (use-modules (guix base32)) + (write (list %load-path + %fake!)))))) + (drv (gexp->script "guile-thing" exp + #:guile %bootstrap-guile + #:module-path (list directory))) + (out -> (derivation->output-path drv)) + (done (built-derivations (list drv)))) + (let* ((pipe (open-input-pipe out)) + (data (read pipe))) + (return (and (zero? (close-pipe pipe)) + (match data + ((load-path str*) + (and (string=? str* str) + (not (member directory load-path))))))))))))) (test-assertm "program-file" (let* ((n (random (expt 2 50))) @@ -996,7 +997,7 @@ (return (and (zero? (close-pipe pipe)) (= n (string->number str))))))))) -(test-assertm "program-file #:module-path" +(test-assert "program-file #:module-path" (call-with-temporary-directory (lambda (directory) (define text (random-text)) @@ -1014,14 +1015,15 @@ (file (program-file "program" exp #:guile %bootstrap-guile #:module-path (list directory)))) - (mlet* %store-monad ((drv (lower-object file)) - (out -> (derivation->output-path drv))) - (mbegin %store-monad - (built-derivations (list drv)) - (let* ((pipe (open-input-pipe out)) - (str (get-string-all pipe))) - (return (and (zero? (close-pipe pipe)) - (string=? text str)))))))))) + (run-with-store %store + (mlet* %store-monad ((drv (lower-object file)) + (out -> (derivation->output-path drv))) + (mbegin %store-monad + (built-derivations (list drv)) + (let* ((pipe (open-input-pipe out)) + (str (get-string-all pipe))) + (return (and (zero? (close-pipe pipe)) + (string=? text str))))))))))) (test-assertm "program-file & with-extensions" (let* ((exp (with-extensions (list %extension-package) From 27f7cbc91d1963118e44b14d04fcc669c9618176 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 11 Jul 2018 20:24:29 -0400 Subject: [PATCH 137/144] utils: Really clean up temporary directories. Fixes . * guix/utils.scm (call-with-temporary-directory): Use DELETE-FILE-RECURSIVELY instead of RMDIR. --- guix/utils.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/utils.scm b/guix/utils.scm index f934b6ed13..200bb69e03 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -33,10 +33,11 @@ #:use-module (srfi srfi-35) #:use-module (srfi srfi-39) #:use-module (ice-9 binary-ports) + #:use-module (ice-9 ftw) #:autoload (rnrs io ports) (make-custom-binary-input-port) #:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!)) #:use-module (guix memoization) - #:use-module ((guix build utils) #:select (dump-port mkdir-p)) + #:use-module ((guix build utils) #:select (dump-port mkdir-p delete-file-recursively)) #:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync)) #:use-module (ice-9 format) #:autoload (ice-9 popen) (open-pipe*) @@ -631,7 +632,7 @@ delete it when leaving the dynamic extent of this call." (lambda () (proc tmp-dir)) (lambda () - (false-if-exception (rmdir tmp-dir)))))) + (false-if-exception (delete-file-recursively tmp-dir)))))) (define (with-atomic-file-output file proc) "Call PROC with an output port for the file that is going to replace FILE. From a49eb85c34116dcc776a5b37ad890f0845e7f6ba Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 13 Jul 2018 09:35:27 -0400 Subject: [PATCH 138/144] gnu: Add inchi. * gnu/packages/chemistry.scm (inchi): New variable. --- gnu/packages/chemistry.scm | 81 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index f1359b2cf6..1a5086d622 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Konrad Hinsen +;;; Copyright © 2018 Kei Kebreau ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,9 +21,11 @@ #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) + #:use-module (gnu packages compression) #:use-module (gnu packages gv) #:use-module (gnu packages maths) #:use-module (gnu packages python) + #:use-module (guix build-system gnu) #:use-module (guix build-system python)) (define-public domainfinder @@ -54,6 +57,84 @@ single structure. The software is currently not actively maintained and works only with Python 2 and NumPy < 1.9.") (license license:cecill-c))) +(define-public inchi + (package + (name "inchi") + (version "1.05") + (source (origin + (method url-fetch) + (uri (string-append "http://www.inchi-trust.org/download/" + (string-join (string-split version #\.) "") + "/INCHI-1-SRC.zip")) + (sha256 + (base32 + "081pcjx1z5jm23fs1pl2r3bccia0ww8wfkzcjpb7byhn7b513hsa")) + (file-name (string-append name "-" version ".zip")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-before 'build 'chdir-to-build-directory + (lambda _ (chdir "INCHI_EXE/inchi-1/gcc") #t)) + (add-after 'build 'build-library + (lambda _ + (chdir "../../../INCHI_API/libinchi/gcc") + (invoke "make"))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/inchi")) + (include-dir (string-append out "/include/inchi")) + (lib (string-append out "/lib/inchi")) + (inchi-doc (assoc-ref inputs "inchi-doc")) + (unzip (string-append (assoc-ref inputs "unzip") + "/bin/unzip"))) + (chdir "../../..") + ;; Install binary. + (with-directory-excursion "INCHI_EXE/bin/Linux" + (rename-file "inchi-1" "inchi") + (install-file "inchi" bin)) + ;; Install libraries. + (with-directory-excursion "INCHI_API/bin/Linux" + (for-each (lambda (file) + (install-file file lib)) + (find-files "." "libinchi\\.so\\.1\\.*"))) + ;; Install header files. + (with-directory-excursion "INCHI_BASE/src" + (for-each (lambda (file) + (install-file file include-dir)) + (find-files "." "\\.h$"))) + ;; Install documentation. + (mkdir-p doc) + (invoke unzip "-j" "-d" doc inchi-doc) + #t)))))) + (native-inputs + `(("unzip" ,unzip) + ("inchi-doc" + ,(origin + (method url-fetch) + (uri (string-append "http://www.inchi-trust.org/download/" + (string-join (string-split version #\.) "") + "/INCHI-1-DOC.zip")) + (sha256 + (base32 + "1id1qb2y4lwsiw91qr2yqpn6kxbwjwhjk0hb2rwk4fxhdqib6da6")) + (file-name (string-append name "-" version ".zip")))))) + (home-page "https://www.inchi-trust.org") + (synopsis "Utility for manipulating machine-readable chemical structures") + (description + "The @dfn{InChI} (IUPAC International Chemical Identifier) algorithm turns +chemical structures into machine-readable strings of information. InChIs are +unique to the compound they describe and can encode absolute stereochemistry +making chemicals and chemistry machine-readable and discoverable. A simple +analogy is that InChI is the bar-code for chemistry and chemical structures.") + (license (license:non-copyleft + "file://LICENCE" + "See LICENCE in the distribution.")))) + (define with-numpy-1.8 (package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8)))) From df74221a22e90f9a69fb5e3c289865de99b91332 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 14 Jul 2018 01:42:20 -0400 Subject: [PATCH 139/144] gnu: linux-libre@4.4: Update to 4.4.140. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.140. --- 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 f0dc71a283..68de4a4fd8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -427,8 +427,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.139" - "0x58ykgx7vbv23q763ydifi548mz39nal7wbvrrl4i9ndk7pzfzz" + (make-linux-libre "4.4.140" + "10h4k2c2ncnc1h61kikqb618dh9lp8fmzagz2ydykrdbb5jjiy82" %intel-compatible-systems #:configuration-file kernel-config)) From 16e2bb5cd5bc705d2bffd68d11cc46e6e9238759 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 14 Jul 2018 01:43:11 -0400 Subject: [PATCH 140/144] gnu: linux-libre@4.9: Update to 4.9.112. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.112. --- 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 68de4a4fd8..ca3a66ac98 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -421,8 +421,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.111" - "0ld57627k6mjp14x5bvndakj6lc4l31zp2yq74h7ski2g3k7ppk2" + (make-linux-libre "4.9.112" + "1zrnbvzr7z5ky79r6hpjvn15bxmwcyi8lr7yq2nx1r8ladl8lnb0" %intel-compatible-systems #:configuration-file kernel-config)) From be9bab86547f101af2aace62e133db43d70c907d Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 14 Jul 2018 01:44:01 -0400 Subject: [PATCH 141/144] gnu: linux-libre@4.14: Update to 4.14.55. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.55. (%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 ca3a66ac98..26a3dbeeab 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -411,8 +411,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.54") -(define %linux-libre-4.14-hash "027138z7p5ld1zyrxq1xjc7x3b7wbgikh7gn2xfvwm9gn8qpazki") +(define %linux-libre-4.14-version "4.14.55") +(define %linux-libre-4.14-hash "1rlapfwkjfmyk4ahvqwqap4w9flbw2zag0r04fwrmyqz1y5ijayf") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version From f3c9a5d2d452cdc7a035149cda1edf9bae7fee94 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 14 Jul 2018 01:44:54 -0400 Subject: [PATCH 142/144] gnu: linux-libre: Update to 4.17.6. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.17.6. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 26a3dbeeab..2ce0f56b84 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -402,8 +402,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.17.5") -(define %linux-libre-hash "0pldqw7f4nhziw3r73l339d79aijxhy6anf1ryiy3makip6gkib1") +(define %linux-libre-version "4.17.6") +(define %linux-libre-hash "0d48r5jpj71ikdalz5z756snwq54cpnwnba8bbhg8r2ri3770wcm") (define-public linux-libre (make-linux-libre %linux-libre-version From daf823ad27d2db8a392c269cfe7940ad8cb1f4c1 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Jul 2018 13:18:24 +0200 Subject: [PATCH 143/144] gnu: services: Export virtlog-configuration. * gnu/services/virtualization.scm (virtlog-configuration): Export. --- gnu/services/virtualization.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index bf71e7f26a..705ed84d06 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -37,6 +37,7 @@ #:export (libvirt-configuration libvirt-service-type + virtlog-configuration virtlog-service-type %qemu-platforms From 5908818e309280b124b64f5320e4b98210093061 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sun, 15 Jul 2018 00:43:57 +1000 Subject: [PATCH 144/144] gnu: python-h5py: Update to 2.8.0. * gnu/packages/python.scm (python-h5py): Update to 2.8.0. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0fdc53bdca..d350990c67 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -782,14 +782,14 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of (define-public python-h5py (package (name "python-h5py") - (version "2.7.0") + (version "2.8.0") (source (origin (method url-fetch) (uri (pypi-uri "h5py" version)) (sha256 (base32 - "0433sdv6xc9p7v1xs1gvbxp7p152ywi3nplgjb258q9fvw9469br")))) + "0mdr6wrq02ac93m1aqx9kad0ppfzmm4imlxqgyy1x4l7hmdcc9p6")))) (build-system python-build-system) (arguments `(#:tests? #f ; no test target