From e3887d0666e9b684bd12b08c904bb969cfaf9d77 Mon Sep 17 00:00:00 2001 From: Diego Nicola Barbato Date: Thu, 10 Oct 2019 09:42:00 +0200 Subject: [PATCH 01/97] gnu: emacs-org-tree-slide: Update to 2.8.14. * gnu/packages/emacs-xyz.scm (emacs-org-tree-slide): Update to 2.8.14. --- gnu/packages/emacs-xyz.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index e6cf4bd1eb..69ba1dbd0e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10657,20 +10657,22 @@ (define-public groovy-emacs-modes (deprecated-package "groovy-emacs-modes" emacs-groovy-modes)) (define-public emacs-org-tree-slide - (let ((commit "dff8f1a4a64c8dd0a1fde0b0131e2fe186747134") - (revision "0")) + (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5") + (revision "2")) (package (name "emacs-org-tree-slide") - (version (git-version "0.1" revision commit)) - (home-page "https://github.com/takaxp/org-tree-slide") + (version (git-version "2.8.4" revision commit)) (source (origin (method git-fetch) - (uri (git-reference (url home-page) (commit commit))) + (uri (git-reference + (url "https://github.com/takaxp/org-tree-slide.git") + (commit commit))) (sha256 (base32 - "153bg0x7ypla11pq51jmsgzfjklwwnrq56xgpbfhk1j16xwz9hyf")) + "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk")) (file-name (git-file-name name version)))) (build-system emacs-build-system) + (home-page "https://github.com/takaxp/org-tree-slide") (synopsis "Presentation tool for org-mode") (description "Org-tree-slide provides a slideshow mode to view org-mode files. Use From 423c680d877d1d0f793bfdf53b83e8328a8d55bb Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 Oct 2019 16:23:26 +0200 Subject: [PATCH 02/97] gnu: mate-utils: Build with a fixed version of yelp-tools. * gnu/packages/mate.scm (mate-utils)[native-inputs]: Replace YELP-TOOLS with YELP-TOOLS/FIXED. --- gnu/packages/mate.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index fb3c5ab6df..d55d1b4461 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -1279,7 +1279,7 @@ (define-public mate-utils ("pkg-config" ,pkg-config) ("scrollkeeper" ,scrollkeeper) ("xorgproto" ,xorgproto) - ("yelp-tools" ,yelp-tools))) + ("yelp-tools" ,yelp-tools/fixed))) (inputs `(("atk" ,atk) ("cairo" ,cairo) From 2d064a466a3029b1fb4be9a28d42d96892dde2a9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 10 Oct 2019 20:49:10 +0300 Subject: [PATCH 03/97] gnu: python-efl: Update to 1.23.0. * gnu/packages/enlightenment.scm (python-efl): Update to 1.23.0. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 8384f4c0ed..63854bf5ae 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -365,7 +365,7 @@ (define-public enlightenment (define-public python-efl (package (name "python-efl") - (version "1.22.0") + (version "1.23.0") (source (origin (method url-fetch) @@ -373,7 +373,7 @@ (define-public python-efl "python/python-efl-" version ".tar.xz")) (sha256 (base32 - "1qhy63c3fs2bxkx2np5z14hyxbr12ii030crsjnhpbyw3mic0s63")) + "16yn6a1b9167nfmryyi44ma40m20ansfpwgrvqzfvwix7qaz9pib")) (modules '((guix build utils))) ;; Remove files generated by Cython (snippet From 2d821e4c7fd8968639bd793f5e1485447fe49374 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 10 Oct 2019 19:36:49 +0200 Subject: [PATCH 04/97] gnu: guix: Fix source checksum. This is a follow-up to commit 6c50e1dc0625f89884cff40b22627091efa37708. * gnu/packages/package-management.scm (guix)[source](sha256): Update hash. --- gnu/packages/package-management.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 40fcb5a66c..3b7d4b18dd 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -127,7 +127,7 @@ (define-public guix (commit commit))) (sha256 (base32 - "1j2d9anxgybv86pxcn1zdv121hb4nmjjp5ngx365fnd0mcg8q1iw")) + "0yx19hxvmkr6ar65ym87xd83n6hz02mr7ibwis7i8wah85ypfq26")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments From f8026a797c467981f9598169acc2e82ed943e7f2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 10 Oct 2019 16:01:46 +0200 Subject: [PATCH 05/97] gnu: libsoup: Update to 2.68.2. * gnu/packages/gnome.scm (libsoup): Update to 2.68.2. [arguments]: Update #:configure-flags. Skip tests that attempts to resolve "subdomain.localhost". [propagated-inputs]: Add GOOGLE-BROTLI and ZLIB. --- gnu/packages/gnome.scm | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2a664e3db7..af869760fd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2690,7 +2690,7 @@ (define-public rest (define-public libsoup (package (name "libsoup") - (version "2.66.2") + (version "2.68.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -2698,7 +2698,7 @@ (define-public libsoup "libsoup-" version ".tar.xz")) (sha256 (base32 - "0amfw1yvy1kjrg41rfh2vvrw5gkwnyckqbw1fab50hm6xc1acbmx")))) + "0crr9qprmacr626fx83cx81ggk85zsgxr4mn577kpzj6m40k1bai")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments @@ -2706,7 +2706,7 @@ (define-public libsoup (guix build meson-build-system) (ice-9 popen)) - #:configure-flags '("-Ddoc=true") + #:configure-flags '("-Dgtk_doc=true") #:phases (modify-phases %standard-phases (add-after 'unpack 'adjust-tests @@ -2716,6 +2716,16 @@ (define-public libsoup (substitute* "tests/socket-test.c" ((".*/sockets/unconnected.*") "")) + ;; These fail because "subdomain.localhost" does not resolve in + ;; the build environment. + (substitute* "tests/hsts-test.c" + ((".*/hsts/basic.*") "") + ((".*/hsts/subdomains.*") "") + ((".*/hsts/superdomain.*") "") + ((".*/hsts/utf8-address.*") "")) + (substitute* "tests/hsts-db-test.c" + ((".*/hsts-db/subdomains.*") "")) + ;; Generate a self-signed certificate that has "localhost" as its ;; 'dnsName'. Failing to do that, and starting with GnuTLS ;; 3.5.12, tests such as "ssl-tests" fail: @@ -2784,10 +2794,12 @@ (define-public libsoup ("httpd" ,httpd))) (propagated-inputs ;; libsoup-2.4.pc refers to all these. - `(("glib" ,glib) + `(("brotli" ,google-brotli) + ("glib" ,glib) ("libpsl" ,libpsl) ("libxml2" ,libxml2) - ("sqlite" ,sqlite))) + ("sqlite" ,sqlite) + ("zlib" ,zlib))) (inputs `(("glib-networking" ,glib-networking) ("mit-krb5" ,mit-krb5))) From d1eb423478b455e31935c238d6f17992f0e229b2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 10 Oct 2019 17:05:11 +0200 Subject: [PATCH 06/97] gnu: strace: Update to 5.3. * gnu/packages/patches/strace-ipc-tests.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/linux.scm (strace): Update to 5.3. [source](patches): Remove. [arguments]: Remove obsolete phase. --- gnu/local.mk | 1 - gnu/packages/linux.scm | 16 +++-------- gnu/packages/patches/strace-ipc-tests.patch | 30 --------------------- 3 files changed, 3 insertions(+), 44 deletions(-) delete mode 100644 gnu/packages/patches/strace-ipc-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index 99f2cfd772..e768c3cefb 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1327,7 +1327,6 @@ dist_patch_DATA = \ %D%/packages/patches/sooperlooper-build-with-wx-30.patch \ %D%/packages/patches/soundconverter-remove-gconf-dependency.patch \ %D%/packages/patches/steghide-fixes.patch \ - %D%/packages/patches/strace-ipc-tests.patch \ %D%/packages/patches/streamlink-update-test.patch \ %D%/packages/patches/stumpwm-fix-broken-read-one-line.patch \ %D%/packages/patches/supercollider-boost-1.70-build-fix.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e4abeadaa0..88db31ee7e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1459,18 +1459,15 @@ (define-public zerofree (define-public strace (package (name "strace") - (version "5.2") + (version "5.3") (home-page "https://strace.io") (source (origin (method url-fetch) (uri (string-append home-page "/files/" version "/strace-" version ".tar.xz")) - ;; XXX Remove the 'regenerate-tests' phase below when - ;; "strace-ipc-tests.patch" is no longer applied. - (patches (search-patches "strace-ipc-tests.patch")) (sha256 (base32 - "1li49i75wrdw91hchyyd8spnzfcmxcfyfb5g9zbaza89aq4bq4ym")))) + "0ix06z4vnc49mv76f22kixz8dsh7daqv9mpgwcgl0mlnfjc124vc")))) (build-system gnu-build-system) (arguments '(#:phases @@ -1479,14 +1476,7 @@ (define-public strace (lambda _ (substitute* "strace.c" (("/bin/sh") (which "sh"))) - #t)) - (add-before 'configure 'regenerate-tests - ;; XXX Remove this phase when "strace-ipc-tests.patch" is no longer - ;; applied in the 'source' field above. This phase is needed to - ;; regenerate many other files from tests/gen_tests.in, which is - ;; modified by the aforementioned patch. - (lambda _ - (invoke "tests/gen_tests.sh")))) + #t))) ;; Don't fail if the architecture doesn't support different personalities. #:configure-flags '("--enable-mpers=check") ;; See . diff --git a/gnu/packages/patches/strace-ipc-tests.patch b/gnu/packages/patches/strace-ipc-tests.patch deleted file mode 100644 index 49341765ca..0000000000 --- a/gnu/packages/patches/strace-ipc-tests.patch +++ /dev/null @@ -1,30 +0,0 @@ -Fix a test failure on some systems. - -Taken from upstream: -https://github.com/strace/strace/commit/4377e3a1535a0ec3a42da8a1366ad6943f4efa0e - -diff --git a/tests/gen_tests.in b/tests/gen_tests.in -index 4a506b94c..4fdf4722c 100644 ---- a/tests/gen_tests.in -+++ b/tests/gen_tests.in -@@ -168,16 +168,16 @@ ipc_msg-Xabbrev +ipc.sh -Xabbrev -a26 - ipc_msg-Xraw +ipc.sh -Xraw -a16 - ipc_msg-Xverbose +ipc.sh -Xverbose -a34 - ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev --ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22 -+ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a20 - ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose - ipc_sem +ipc.sh -a29 - ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 - ipc_sem-Xraw +ipc.sh -Xraw -a19 - ipc_sem-Xverbose +ipc.sh -Xverbose -a36 --ipc_shm +ipc.sh -a29 --ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29 -+ipc_shm +ipc.sh -a26 -+ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26 - ipc_shm-Xraw +ipc.sh -Xraw -a19 --ipc_shm-Xverbose +ipc.sh -Xverbose -a36 -+ipc_shm-Xverbose +ipc.sh -Xverbose -a34 - kcmp -a22 - kcmp-y -a22 -y -e trace=kcmp - kern_features -a16 From d519bc1350b0dd8af2e974d530ff634fcaf0a6aa Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 10 Oct 2019 17:05:59 +0200 Subject: [PATCH 07/97] gnu: appstream-glib: Update to 0.7.16. * gnu/packages/glib.scm (appstream-glib): Update to 0.7.16. --- 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 c3dadbdfd3..c558d9fcb6 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -839,7 +839,7 @@ (define-public dbus-c++ (define-public appstream-glib (package (name "appstream-glib") - (version "0.7.15") + (version "0.7.16") (source (origin (method url-fetch) (uri (string-append "https://people.freedesktop.org/~hughsient/" @@ -847,7 +847,7 @@ (define-public appstream-glib "appstream-glib-" version ".tar.xz")) (sha256 (base32 - "17ram4j3cvs78si0gi1labarr91pw68zn8kam41cqbvlwdyr89vy")))) + "14jr1psx5kxywdprgbqn79w309yz8lrqlsq7288hfrf87gbr1wh4")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) From d253719300f301a067ba393febac58c2510dec0f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 10 Oct 2019 17:06:26 +0200 Subject: [PATCH 08/97] gnu: whois: Update to 5.5.2. * gnu/packages/networking.scm (whois): Update to 5.5.2. --- gnu/packages/networking.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 753e73d9d1..c0597c7e45 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -551,14 +551,15 @@ (define-public iodine (define-public whois (package (name "whois") - (version "5.5.1") + (version "5.5.2") (source (origin (method url-fetch) (uri (string-append "mirror://debian/pool/main/w/whois/" "whois_" version ".tar.xz")) (sha256 - (base32 "10mc7iqhdnvd1kk8gnnhihd5ga2rw3sz69n3nd6x8fb65qpq13gf")))) + (base32 + "1h55zs3cj4w9b0hq0x3z7s2mn46v0jyc39gz320ra4hwr0xlsnf0")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite From 3f7a3ea890ce0a2e68dfa6b7485ff24926ce43ee Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 10 Oct 2019 17:06:46 +0200 Subject: [PATCH 09/97] gnu: tbb: Update to 2019_U9. * gnu/packages/tbb.scm (tbb): Update to 2019_U9. --- gnu/packages/tbb.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm index f6d7e9b8b4..926e1caca1 100644 --- a/gnu/packages/tbb.scm +++ b/gnu/packages/tbb.scm @@ -28,7 +28,7 @@ (define-module (gnu packages tbb) (define-public tbb (package (name "tbb") - (version "2019_U8") + (version "2019_U9") (source (origin (method git-fetch) (uri (git-reference @@ -37,7 +37,7 @@ (define-public tbb (file-name (git-file-name name version)) (sha256 (base32 - "0z0kh1a5g28gckcxlv3x7qqskh5fsl8knf2ypbbvk7z9ln9k3wfq")) + "1a39nflw7b2n51jfp3fdprnkpgzaspzww1dckfvaigflfli9s8rj")) (modules '((guix build utils))) (snippet '(begin From ef42bc3e56b159b36207303dd5b54b6c52574c40 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 10 Oct 2019 17:07:11 +0200 Subject: [PATCH 10/97] gnu: fluidsynth: Update to 2.0.7. * gnu/packages/audio.scm (fluidsynth): Update to 2.0.7. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 49ec474ffd..58547a2cca 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1109,7 +1109,7 @@ (define-public g2reverb (define-public fluidsynth (package (name "fluidsynth") - (version "2.0.6") + (version "2.0.7") (source (origin (method git-fetch) (uri (git-reference @@ -1118,7 +1118,7 @@ (define-public fluidsynth (file-name (git-file-name name version)) (sha256 (base32 - "0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a")))) + "1h1dj3wmjwzny2hgr41k3p67w4kxvzn365kkqwyfd6yk0v3rahic")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check target From ff0efc8f6c35606878ca009f3582f5257db2c9e3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 10 Oct 2019 19:13:15 +0200 Subject: [PATCH 11/97] gnu: python-bleach: Update to 3.1.0. * gnu/packages/check.scm (python-pytest-runner-2, python2-pytest-runner-2): New public variables. * gnu/packages/python-xyz.scm (python-bleach): Update to 3.1.0. [propagated-inputs]: Remove PYTHON-HTML5LIB-0.9. Add PYTHON-WEBENCODINGS. [native-inputs]: Remove PYTHON-NOSE. Add PYTHON-PYTEST and PYTHON-PYTEST-RUNNER-2. --- gnu/packages/check.scm | 16 ++++++++++++++++ gnu/packages/python-xyz.scm | 9 +++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index dab0bd39c3..c7d8615b0b 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -816,6 +816,22 @@ (define-public python-pytest-runner (define-public python2-pytest-runner (package-with-python2 python-pytest-runner)) +;; python-bleach 3.1.0 requires this ancient version of pytest-runner. +;; Remove once no longer needed. +(define-public python-pytest-runner-2 + (package/inherit + python-pytest-runner + (version "2.12.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest-runner" version)) + (sha256 + (base32 + "11ivjj9hfphkv4yfb2g74av4yy86y8gcbf7gbif0p1hcdfnxg3w6")))))) + +(define-public python2-pytest-runner-2 + (package-with-python2 python-pytest-runner-2)) + (define-public python-pytest-mock (package (name "python-pytest-mock") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 10fe5ee553..b6a50de503 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -7742,20 +7742,21 @@ (define-public python2-nbformat (define-public python-bleach (package (name "python-bleach") - (version "1.4.3") + (version "3.1.0") (source (origin (method url-fetch) (uri (pypi-uri "bleach" version)) (sha256 (base32 - "0jvg3jxrvnx7xmm9gj262v60ib452xlnwlb0navyp7jsvcd0d4qj")))) + "1yhrgrhkln8bd6gn3imj69g1h4xqah9gaz9q26crqr6gmmvpzprz")))) (build-system python-build-system) (propagated-inputs - `(("python-html5lib" ,python-html5lib-0.9) + `(("python-webencodings" ,python-webencodings) ("python-six" ,python-six))) (native-inputs - `(("python-nose" ,python-nose))) + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner-2))) (home-page "https://github.com/jsocol/bleach") (synopsis "Whitelist-based HTML-sanitizing tool") (description "Bleach is an easy whitelist-based HTML-sanitizing tool.") From 666f51f9e1bcd7354f4a85a2a8b1b4c6a6cb0d12 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 10 Oct 2019 19:00:03 -0400 Subject: [PATCH 12/97] gnu: apfs-fuse: Fix build. * gnu/packages/file-systems.scm (apfs-fuse)[arguments]: Install the LICENSE file with the default 'install-license-files' phase. --- gnu/packages/file-systems.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 3a7e3284a9..85bfd8dd38 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -316,7 +316,6 @@ (define-public apfs-fuse (install-file "apfs-dump-quick" bin) (install-file "apfs-fuse" bin) (install-file "libapfs.a" lib) - (install-file "../source/LICENSE" doc) #t)))))) (inputs `(("bzip2" ,bzip2) From 3fcdd99f71475e868b95cc8a5a52ece19a1641e9 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 11 Oct 2019 01:27:13 +0200 Subject: [PATCH 13/97] gnu: emacs-rspec: Update to 1.11-1.66ea7cc. * gnu/packages/emacs-xyz.scm (emacs-rspec): Update to 1.11-1.66ea7cc. --- gnu/packages/emacs-xyz.scm | 42 ++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 69ba1dbd0e..67b178f974 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2946,29 +2946,35 @@ (define-public emacs-robot-mode (license license:gpl3+)))) (define-public emacs-rspec - (package - (name "emacs-rspec") - (version "1.11") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pezra/rspec-mode.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0hrn5n7aaymwimk511kjij44vqaxbmhly1gwmlmsrnbvvma7f2mp")))) - (build-system emacs-build-system) - (home-page "https://github.com/pezra/rspec-mode") - (synopsis "Provides a rspec mode for working with RSpec") - (description - "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to + (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20") + (revision "1")) + (package + (name "emacs-rspec") + (version (git-version "1.11" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pezra/rspec-mode.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8")))) + (build-system emacs-build-system) + (arguments + `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include) + #:tests? #t + #:test-command '("make" "test"))) + (home-page "https://github.com/pezra/rspec-mode") + (synopsis "Provides a rspec mode for working with RSpec") + (description + "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to verify the spec associated with the current buffer, or entire project, as well as moving between the spec files, and corresponding code files. Also included are keybindings for spec files and Dired buffers, as well as snippets for yasnippet.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-smart-mode-line (package From 8f1471149f6baa77a04348ee44db4cdadb4edd5c Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 11 Oct 2019 01:58:26 +0200 Subject: [PATCH 14/97] gnu: emacs-racket-mode: Update to 0.0.2-4.2a9a102. * gnu/packages/emacs-xyz.scm (emacs-racket-mode): Update to 0.0.2-4.2a9a102. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 67b178f974..bc74e8fb4c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13534,8 +13534,8 @@ (define-public emacs-faceup (license license:gpl3+)))) (define-public emacs-racket-mode - (let ((commit "5300aa004f08535c3fac99f1af78462f129aca81") - (revision "3")) + (let ((commit "2a9a102a097d04fbcd2a443fec84078036c2e277") + (revision "4")) (package (name "emacs-racket-mode") (version (git-version "0.0.2" revision commit)) @@ -13548,7 +13548,7 @@ (define-public emacs-racket-mode (file-name (git-file-name name version)) (sha256 (base32 - "1gkpm4fl1ybsm9qqgrkwyjbd9znddy438x266k27fs90lkxrfray")))) + "1n71dxxh62jixq20b5haapv651dxc0zyrxpl1d0yqsg8ncp726bl")))) (build-system emacs-build-system) (arguments `(#:include '("\\.el$" "\\.rkt$"))) From f7b3d9104e7149d1aca0ac257932eb759956b790 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 11 Oct 2019 02:41:21 +0200 Subject: [PATCH 15/97] gnu: emacs-helm-org-ql: Remove patch file. * gnu/local.mk (emacs-helm-org-ql): Remove entry. * gnu/packages/emacs-xyz.scm: Remove patch file. * gnu/packages/patches/emacs-helm-org-ql.patch: Delete file. --- gnu/local.mk | 1 - gnu/packages/emacs-xyz.scm | 15 ++++--- gnu/packages/patches/emacs-helm-org-ql.patch | 42 -------------------- 3 files changed, 10 insertions(+), 48 deletions(-) delete mode 100644 gnu/packages/patches/emacs-helm-org-ql.patch diff --git a/gnu/local.mk b/gnu/local.mk index e768c3cefb..2451698503 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -791,7 +791,6 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-dired-toggle-sudo-emacs-26.patch \ %D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ - %D%/packages/patches/emacs-helm-org-ql.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index bc74e8fb4c..6893711d87 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11753,7 +11753,7 @@ (define-public emacs-peg (define-public emacs-org-ql (let ((commit "949a06c3ab50482b749fd2d4350837a197660d96") - (revision "2")) + (revision "3")) (package (name "emacs-org-ql") (version (git-version "0.3.1" revision commit)) @@ -11765,9 +11765,6 @@ (define-public emacs-org-ql (sha256 (base32 "0apcg63xm0242mjgsgw0jrcda4p4iqj7fy3sgh0p7khi4hrs5ch0")) - (patches - (search-patches - "emacs-helm-org-ql.patch")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs @@ -11784,7 +11781,15 @@ (define-public emacs-org-ql (native-inputs `(("emacs-buttercup" ,emacs-buttercup))) (arguments - `(#:tests? #t + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'require-helm + (lambda _ + (substitute* "helm-org-ql.el" + (("^;;;; Requirements") + ";;;; Requirements\n(require 'helm)\n(require 'helm-org)")) + #t))) + #:tests? #t #:test-command '("buttercup" "-L" "."))) (home-page "https://github.com/alphapapa/org-ql/") (synopsis "Query language for Org buffers") diff --git a/gnu/packages/patches/emacs-helm-org-ql.patch b/gnu/packages/patches/emacs-helm-org-ql.patch deleted file mode 100644 index 362e3d7d15..0000000000 --- a/gnu/packages/patches/emacs-helm-org-ql.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 3918944856834ef4a7ed613243a1612424d2daba Mon Sep 17 00:00:00 2001 -From: Brian Leung -Date: Thu, 10 Oct 2019 06:54:33 +0200 -Subject: [PATCH] Use require statements. - ---- - helm-org-ql.el | 19 ++----------------- - 1 file changed, 2 insertions(+), 17 deletions(-) - -diff --git a/helm-org-ql.el b/helm-org-ql.el -index 26beab9..113b7f2 100644 ---- a/helm-org-ql.el -+++ b/helm-org-ql.el -@@ -35,23 +35,8 @@ - (require 'org-ql) - (require 'org-ql-search) - --;; (require 'helm) --;; (require 'helm-org) -- --;;;; Compatibility -- --;; Declare Helm functions since Helm may not be installed. --(declare-function helm "ext:helm") --(declare-function helm-run-after-exit "ext:helm") --(declare-function helm-window "ext:helm-lib") --(declare-function helm-buffer-get "ext:helm-lib") --(declare-function helm-make-source "ext:helm-source") --(declare-function helm-org-goto-marker "ext:helm-org") -- --;; Silence byte-compiler about variables. --(defvar helm-map) --(defvar helm-pattern) --(defvar helm-input-idle-delay) -+(require 'helm) -+(require 'helm-org) - - ;;;; Variables - --- -2.23.0 - From 46274d89875432f15eb96c887f781c6adbb3f139 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 11 Oct 2019 04:14:39 +0200 Subject: [PATCH 16/97] gnu: emacs-git-annex: Update to 1.1-2.1324d3f. * gnu/packages/emacs-xyz.scm (emacs-git-annex): Update to 1.1-2.1324d3f. --- gnu/packages/emacs-xyz.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6893711d87..5e9e9b2113 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -15578,11 +15578,11 @@ (define-public emacs-magit-todos (define-public emacs-git-annex ;; Unreleased version has a fontification fix. - (let ((commit "ebdb44aef1883f1b2b8058e05d30fb9315b03707") - (revision "1")) + (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b") + (revision "2")) (package (name "emacs-git-annex") - (version (string-append "1.1-" revision "." (string-take commit 8))) + (version (git-version "1.1" revision commit)) (source (origin (method git-fetch) @@ -15592,7 +15592,7 @@ (define-public emacs-git-annex (file-name (git-file-name name version)) (sha256 (base32 - "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh")))) + "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh")))) (build-system emacs-build-system) (home-page "https://github.com/jwiegley/git-annex-el") (synopsis "Emacs integration for git-annex") From 5b9b1c6b7214b8af7468847be6e21bca44a2e50e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 11 Oct 2019 04:50:44 +0200 Subject: [PATCH 17/97] gnu: Add emacs-annalist. * gnu/packages/emacs-xyz.scm (emacs-annalist): New variable. --- gnu/packages/emacs-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 5e9e9b2113..d403413bbf 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16228,6 +16228,42 @@ (define-public emacs-arduino-mode (home-page "https://github.com/bookest/arduino-mode") (license license:gpl3+)))) +(define-public emacs-annalist + (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6") + (revision "1")) + (package + (name "emacs-annalist") + (version (git-version "1.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/noctuid/annalist.el.git") + (commit commit))) + (sha256 + (base32 + "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (native-inputs + `(("emacs-buttercup" ,emacs-buttercup) + ("emacs-lispy" ,emacs-lispy) + ("emacs-evil" ,emacs-evil))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-makefile + (lambda _ + (substitute* "Makefile" + (("cask exec ") "")) + #t))) + #:tests? #t + #:test-command '("make" "test"))) + (home-page "https://github.com/noctuid/annalist.el") + (synopsis "Record and display information with Org headings and tables") + (description "This package allows for keybindings, settings, hooks, and +advice to be recorded and displayed.") + (license license:gpl3+)))) + (define-public emacs-general (let ((commit "f38fb2294bd29261374b772f765730f2fa168b3e") (revision "3")) From ecf3a3ac9b9ff7efa757b2f9b61edff58c3f60e5 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 11 Oct 2019 06:57:44 +0200 Subject: [PATCH 18/97] gnu: emacs-evil-collection: Update to 0.0.3-11.bf2400a. * gnu/packages/emacs-xyz.scm (emacs-evil-collection): Update to 0.0.3-11.bf2400a. --- gnu/packages/emacs-xyz.scm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d403413bbf..5ae3db83cd 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -7013,11 +7013,11 @@ (define-public emacs-evil (license license:gpl3+))) (define-public emacs-evil-collection - (let ((commit "986ca7eb0b75eccd843bdad2f7fdb48f4ca6ac22") - (revision "10")) + (let ((commit "bf4200a57c81c2302a3bf5b2058d74c6f90a3e6c") + (revision "11")) (package (name "emacs-evil-collection") - (version (git-version "0.0.2" revision commit)) + (version (git-version "0.0.3" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -7026,10 +7026,13 @@ (define-public emacs-evil-collection (file-name (git-file-name name version)) (sha256 (base32 - "172sx5w50x5wrs5w0sb6rkbj3q22s7mmsnk4c6pwknhbz3vwlvwz")))) + "01xw0m5gj14ly42y8ikvldpab5my28sylf6l9gvwd5cf909bd445")))) (build-system emacs-build-system) (propagated-inputs - `(("emacs-evil" ,emacs-evil))) + `(("emacs-evil" ,emacs-evil) + ("emacs-annalist" ,emacs-annalist))) + (arguments + `(#:include (cons* "^modes\\/" %default-include))) (home-page "https://github.com/emacs-evil/evil-collection") (synopsis "Collection of Evil bindings for many major and minor modes") (description "This is a collection of Evil bindings for the parts of From 07bec45dd3a1c5fa05f7ebfdb60ddbcf098bd01f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 11 Oct 2019 15:54:57 +0200 Subject: [PATCH 19/97] gnu: knot: Update to 2.9.0. * gnu/packages/dns.scm (knot): Update to 2.9.0. --- 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 5f3686347d..5167cf8379 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -578,14 +578,14 @@ (define-public yadifa (define-public knot (package (name "knot") - (version "2.8.2") + (version "2.9.0") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" "knot-" version ".tar.xz")) (sha256 - (base32 "0dx1lp4w33rpa54nns41k4vfdfin6naaskwh132r4qs0l9hl7lh0")) + (base32 "18i1kdyaqaskjyhmq888wml4d2p4ic1sbjynlb6ggfxsxzm38x6z")) (modules '((guix build utils))) (snippet '(begin From e214a22007450187c3db5d9fdef6ee021be6e953 Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Wed, 11 Sep 2019 15:43:19 -0400 Subject: [PATCH 20/97] gnu: Add nsis-x86_64 and nsis-i686. * guix/build-system/scons.scm (scons-build): Add build-targets and install-targets parameters. * guix/build/scons-build-system.scm (build, install): Adjust accordingly. * doc/guix.texi (Build Systems): Document it. * gnu/packages/installers.scm: New file, (make-nsis): New procedure, (nsis-x86_64, nsis-i686): New variables. * gnu/packages/patches/nsis-env-passthru.patch: New file. * gnu/local.mk (dist_patch_DATA, GNU_SYSTEM_MODULES): Adjust accordingly. --- doc/guix.texi | 8 +- gnu/local.mk | 2 + gnu/packages/installers.scm | 116 +++++++++++++++++++ gnu/packages/patches/nsis-env-passthru.patch | 12 ++ guix/build-system/scons.scm | 4 + guix/build/scons-build-system.scm | 9 +- 6 files changed, 144 insertions(+), 7 deletions(-) create mode 100644 gnu/packages/installers.scm create mode 100644 gnu/packages/patches/nsis-env-passthru.patch diff --git a/doc/guix.texi b/doc/guix.texi index 97d797c13f..6703c2756c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6405,9 +6405,11 @@ tool. This build system runs @code{scons} to build the package, the package. Additional flags to be passed to @code{scons} can be specified with the -@code{#:scons-flags} parameter. The version of Python used to run SCons -can be specified by selecting the appropriate SCons package with the -@code{#:scons} parameter. +@code{#:scons-flags} parameter. The default build and install targets +can be overridden with @code{#:build-targets} and +@code{#:install-targets} respectively. The version of Python used to +run SCons can be specified by selecting the appropriate SCons package +with the @code{#:scons} parameter. @end defvr @defvr {Scheme Variable} haskell-build-system diff --git a/gnu/local.mk b/gnu/local.mk index 2451698503..0a4ee7c986 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -261,6 +261,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/imagemagick.scm \ %D%/packages/inklingreader.scm \ %D%/packages/inkscape.scm \ + %D%/packages/installers.scm \ %D%/packages/ipfs.scm \ %D%/packages/irc.scm \ %D%/packages/iso-codes.scm \ @@ -1145,6 +1146,7 @@ dist_patch_DATA = \ %D%/packages/patches/nfs-utils-missing-headers.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/nm-plugin-path.patch \ + %D%/packages/patches/nsis-env-passthru.patch \ %D%/packages/patches/nss-freebl-stubs.patch \ %D%/packages/patches/nss-increase-test-timeout.patch \ %D%/packages/patches/nss-pkgconfig.patch \ diff --git a/gnu/packages/installers.scm b/gnu/packages/installers.scm new file mode 100644 index 0000000000..3a5f08b95a --- /dev/null +++ b/gnu/packages/installers.scm @@ -0,0 +1,116 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Carl Dong +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages installers) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages cross-base) + #:use-module (gnu packages python-xyz) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system scons) + #:use-module (guix utils)) + +(define(make-nsis machine target-arch nsis-target-type) + (let ((triplet (string-append machine "-" "w64-mingw32"))) + (package + (name (string-append "nsis-" machine)) + (version "3.04") + (source (origin + (method url-fetch) + (uri (string-append "http://prdownloads.sourceforge.net/nsis/nsis-" + version "-src.tar.bz2")) + (sha256 + (base32 + "1xgllk2mk36ll2509hd31mfq6blgncmdzmwxj3ymrwshdh23d5b0")) + (patches (search-patches "nsis-env-passthru.patch")))) + (build-system scons-build-system) + (native-inputs `(("xgcc" ,(cross-gcc triplet #:libc (cross-libc triplet))) + ("xbinutils" ,(cross-binutils triplet)) + ("mingw-w64" ,(cross-libc triplet)))) + (inputs `(("zlib" ,zlib))) + (arguments + `(#:scons ,scons-python2 + #:modules ((srfi srfi-1) + (guix build utils) + (guix build scons-build-system)) + #:tests? #f + #:scons-flags `("UNICODE=yes" + "SKIPUTILS=MakeLangId,Makensisw,NSIS Menu,SubStart,zip2exe" + "SKIPDOC=COPYING" + "STRIP_CP=no" + ,(string-append "PREFIX=" %output) + ,(string-append "TARGET_ARCH=" ,target-arch) + ,(string-append "XGCC_W32_PREFIX=" ,triplet "-") + ,(string-append "PREFIX_PLUGINAPI_INC=" (assoc-ref %build-inputs "mingw-w64") "/include/") + ,(string-append "PREFIX_PLUGINAPI_LIB=" (assoc-ref %build-inputs "mingw-w64") "/lib/")) + #:build-targets '("makensis" + "stubs" + "plugins" + "utils") + #:install-targets '("install-stubs" + "install-plugins" + "install-data" + "install-utils" + "install-compiler" + "install-conf") + #:phases (modify-phases %standard-phases + (add-before 'build 'fix-env + (lambda _ + (define* (filter-delimited-string delimited-string predicate #:optional (delimiter #\:)) + ;; Given a DELIMITED-STRING delimited by DELIMITER, + ;; only keep items that satisfy PREDICATE + (string-join + (filter predicate (string-split delimited-string delimiter)) + (string delimiter))) + (define (mingw-path? path) + (string-prefix? (assoc-ref %build-inputs "mingw-w64") path)) + (for-each + (lambda (env-name) + (let ((env-val (getenv env-name))) + ;; Remove all mingw-w64 paths from env vars meant + ;; for native toolchain + (setenv env-name + (filter-delimited-string env-val (negate mingw-path?))) + ;; Add the removed paths back into + ;; CROSS_-prefixed version of env vars + (setenv (string-append "CROSS_" env-name) + (filter-delimited-string env-val mingw-path?)))) + '("CPLUS_INCLUDE_PATH" "LIBRARY_PATH" "C_INCLUDE_PATH")))) + (add-before 'build 'fix-target-detection + (lambda _ + ;; NSIS target detection is screwed up, manually + ;; change it ourselves + (substitute* "Source/build.cpp" (("m_target_type=TARGET_X86ANSI") + (string-append "m_target_type=" ,nsis-target-type)))))))) + (home-page "http://nsis.sourceforge.net/") + (synopsis "A professional open source system to create Windows installers") + (description + "NSIS (Nullsoft Scriptable Install System) is a professional open +source system to create Windows installers. It is designed to be as small and +flexible as possible and is therefore very suitable for internet +distribution.") + (license (license:non-copyleft "file://COPYING" + "See COPYING in the distribution."))))) + +(define-public nsis-x86_64 + (make-nsis "x86_64" "amd64" "TARGET_AMD64")) + +(define-public nsis-i686 + (make-nsis "i686" "x86" "TARGET_X86UNICODE")) diff --git a/gnu/packages/patches/nsis-env-passthru.patch b/gnu/packages/patches/nsis-env-passthru.patch new file mode 100644 index 0000000000..36b4092230 --- /dev/null +++ b/gnu/packages/patches/nsis-env-passthru.patch @@ -0,0 +1,12 @@ +--- nsis-3.04-src/SConstruct 2019-05-30 14:53:30.276775332 -0400 ++++ nsis-3.04-src/SConstruct 2019-05-30 14:54:17.901232914 -0400 +@@ -77,6 +77,9 @@ + if not toolset and not path: + defenv = Environment(TARGET_ARCH = arch) + ++import os; ++defenv['ENV'] = os.environ ++ + Export('defenv') + + ###################################################################### diff --git a/guix/build-system/scons.scm b/guix/build-system/scons.scm index 5e76d64180..aad455c419 100644 --- a/guix/build-system/scons.scm +++ b/guix/build-system/scons.scm @@ -76,7 +76,9 @@ (define* (scons-build store name inputs #:key (tests? #t) (scons-flags ''()) + (build-targets ''()) (test-target "test") + (install-targets ''("install")) (phases '(@ (guix build scons-build-system) %standard-phases)) (outputs '("out")) @@ -101,8 +103,10 @@ (define builder source)) #:scons-flags ,scons-flags #:system ,system + #:build-targets ,build-targets #:test-target ,test-target #:tests? ,tests? + #:install-targets ,install-targets #:phases ,phases #:outputs %outputs #:search-paths ',(map search-path-specification->sexp diff --git a/guix/build/scons-build-system.scm b/guix/build/scons-build-system.scm index eb013f03b6..17a0b7b877 100644 --- a/guix/build/scons-build-system.scm +++ b/guix/build/scons-build-system.scm @@ -29,7 +29,7 @@ (define-module (guix build scons-build-system) ;; ;; Code: -(define* (build #:key outputs (scons-flags '()) (parallel-build? #t) #:allow-other-keys) +(define* (build #:key outputs (build-targets '()) (scons-flags '()) (parallel-build? #t) #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (mkdir-p out) (apply invoke "scons" @@ -37,7 +37,8 @@ (define* (build #:key outputs (scons-flags '()) (parallel-build? #t) #:allow-oth (list "-j" (number->string (parallel-job-count))) (list)) - scons-flags)))) + scons-flags + build-targets)))) (define* (check #:key tests? test-target (scons-flags '()) #:allow-other-keys) "Run the test suite of a given SCons application." @@ -46,9 +47,9 @@ (define* (check #:key tests? test-target (scons-flags '()) #:allow-other-keys) (format #t "test suite not run~%")) #t) -(define* (install #:key outputs (scons-flags '()) #:allow-other-keys) +(define* (install #:key outputs (install-targets '("install")) (scons-flags '()) #:allow-other-keys) "Install a given SCons application." - (apply invoke "scons" "install" scons-flags)) + (apply invoke "scons" (append scons-flags install-targets))) (define %standard-phases (modify-phases gnu:%standard-phases From a7d03e96b653e94cab0bc4d14bf6b10b049ea2db Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Fri, 11 Oct 2019 11:46:03 -0400 Subject: [PATCH 21/97] gnu: Fix typo for nsis. * gnu/packages/installers.scm (make-nsis): Add space between define and open bracket. --- gnu/packages/installers.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/installers.scm b/gnu/packages/installers.scm index 3a5f08b95a..c987254d61 100644 --- a/gnu/packages/installers.scm +++ b/gnu/packages/installers.scm @@ -27,7 +27,7 @@ (define-module (gnu packages installers) #:use-module (guix build-system scons) #:use-module (guix utils)) -(define(make-nsis machine target-arch nsis-target-type) +(define (make-nsis machine target-arch nsis-target-type) (let ((triplet (string-append machine "-" "w64-mingw32"))) (package (name (string-append "nsis-" machine)) From be6f2f5634fc9d3639beb0330a04f4fa21020e64 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 11 Oct 2019 12:23:06 -0400 Subject: [PATCH 22/97] gnu: PyJWT: Update to 1.7.1. * gnu/packages/python-xyz.scm (python-pyjwt): Update to 1.7.1. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index b6a50de503..8137d665fd 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2197,14 +2197,14 @@ (define-public python2-unidecode (define-public python-pyjwt (package (name "python-pyjwt") - (version "1.5.3") + (version "1.7.1") (source (origin (method url-fetch) (uri (pypi-uri "PyJWT" version)) (sha256 (base32 - "1rxsg14i33vm2i6lz0my628108c81k43v10n4h3p0gx62xdyf2sh")) + "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd")) (modules '((guix build utils))) (snippet '(begin From 5b811ddc671777780233f23a819054ef62dcbacb Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sat, 12 Oct 2019 12:09:26 +0200 Subject: [PATCH 23/97] gnu: emacs-wgrep: Update to 2.3.1. * gnu/packages/emacs-xyz.scm (emacs-wgrep): Update to 2.3.1. --- gnu/packages/emacs-xyz.scm | 39 ++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 5ae3db83cd..a55282a0a9 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -6601,26 +6601,29 @@ (define-public emacs-web-mode (license license:gpl3+))) (define-public emacs-wgrep - (package - (name "emacs-wgrep") - (version "2.3.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mhayashi1120/Emacs-wgrep") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0pgyf9vfcahb495q01hi1mvkmv846w4rj6zyf52is8x7sjj7x44s")))) - (build-system emacs-build-system) - (home-page "https://github.com/mhayashi1120/Emacs-wgrep") - (synopsis "Edit a grep buffer and apply those changes to the files") - (description - "Emacs wgrep allows you to edit a grep buffer and apply those changes + ;; Tag is missing, so we use the commit directly. + ;; https://github.com/mhayashi1120/Emacs-wgrep/issues/64 + (let ((commit "379afd89ebd76f63842c8589127d66096a8bb595")) + (package + (name "emacs-wgrep") + (version "2.3.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mhayashi1120/Emacs-wgrep") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v1qx8z1xj9qzirlycbihnkpwcklyi3a0j8lil78pmdpixdbgh47")))) + (build-system emacs-build-system) + (home-page "https://github.com/mhayashi1120/Emacs-wgrep") + (synopsis "Edit a grep buffer and apply those changes to the files") + (description + "Emacs wgrep allows you to edit a grep buffer and apply those changes to the file buffer. Several backends are supported beside the classic grep: ack, ag, helm and pt.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-helm (package From 9a45a24f7f3172750d8ea8a877527f219b4ed94b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 11 Oct 2019 17:23:13 +0200 Subject: [PATCH 24/97] gnu: Remove unnecessary uses of 'package-with-bootstrap-guile'. This reduces the object graph returned by: guix graph -e '(@@ (gnu packages commencement) glibc-final-with-bootstrap-bash) from 333 nodes (1542 edges) to 148 nodes (886 edges). This improves 'package-derivation' memoization and, consequently, the 'add-data-to-store' cache shown by: GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd goes from 10948 lookups to 8935 lookups. * gnu/packages/commencement.scm (mes-boot): Remove call to 'package-with-bootstrap-guile'. Call 'bootstrap-origin' on the source of NYACC-0.86. (tcc-boot0): Likewise. (tcc-boot): Remove call to 'package-with-bootstrap-guile' and call 'bootstrap-origin' on its source. (make-mesboot0): Remove call to 'package-with-bootstrap-guile'. (diffutils-mesboot): Likewise. (binutils-mesboot0): Likewise, and call 'bootstrap-origin' for its source. (gcc-core-mesboot): Likewise. (mesboot-headers): Remove call to 'package-with-bootstrap-guile'. (glibc-mesboot0): Likewise, and call 'bootstrap-origin' for its source. (gcc-mesboot0): Remove call to 'package-with-bootstrap-guile'. (binutils-mesboot): Likewise. (make-mesboot): Likewise. (gcc-mesboot1): Likewise, and call 'bootstrap-origin' for its source. (gcc-mesboot1-wrapper): Remove call to 'package-with-bootstrap-guile'. (glibc-headers-mesboot): Likewise, and call 'bootstrap-origin' for its source. (glibc-mesboot): Remove call to 'package-with-bootstrap-guile'. (gcc-mesboot): Likewise, and call to 'bootstrap-origin' for its source. (gcc-mesboot-wrapper): Remove call to 'package-with-bootstrap-guile'. (m4-mesboot): Likewise. (gnu-make-boot0): Likewise, and call 'bootstrap-origin' for its source. --- gnu/packages/commencement.scm | 2319 ++++++++++++++++----------------- 1 file changed, 1156 insertions(+), 1163 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index fd98c80dc3..f5f610c67c 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -85,80 +85,80 @@ (define-module (gnu packages commencement) ;;; Code: (define mes-boot - (package-with-bootstrap-guile - (package - (inherit mes) - (name "mes-boot") - (version "0.19") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/mes/" - "mes-" version ".tar.gz")) - (sha256 - (base32 - "15h4yhaywdc0djpjlin2jz1kzahpqxfki0r0aav1qm9nxxmnp1l0")))) - (inputs '()) - (propagated-inputs '()) - (native-inputs - `(("mescc-tools" ,%bootstrap-mescc-tools) - ("nyacc-source" ,(package-source nyacc-0.86)) + (package + (inherit mes) + (name "mes-boot") + (version "0.19") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/mes/" + "mes-" version ".tar.gz")) + (sha256 + (base32 + "15h4yhaywdc0djpjlin2jz1kzahpqxfki0r0aav1qm9nxxmnp1l0")))) + (inputs '()) + (propagated-inputs '()) + (native-inputs + `(("mescc-tools" ,%bootstrap-mescc-tools) + ("nyacc-source" ,(bootstrap-origin + (package-source nyacc-0.86))) - ("coreutils" , %bootstrap-coreutils&co) - ("bootstrap-mes" ,%bootstrap-mes))) - (arguments - `(#:implicit-inputs? #f - #:guile ,%bootstrap-guile - #:strip-binaries? #f ; binutil's strip b0rkes MesCC/M1/hex2 binaries - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-seeds - (lambda _ - (let ((nyacc-source (assoc-ref %build-inputs "nyacc-source")) - (bootstrap-mes (assoc-ref %build-inputs "bootstrap-mes"))) - (with-directory-excursion ".." - (mkdir-p "nyacc-source") - (invoke "tar" "--strip=1" "-C" "nyacc-source" "-xvf" nyacc-source) - (symlink (string-append bootstrap-mes "/share/mes/lib") "mes-seed")) - #t))) - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref %outputs "out"))) - (setenv "GUILE" "mes") - (setenv "GUILE_EFFECTIVE_VERSION" "2.2") - (setenv "GUILE_LOAD_PATH" "nyacc") - (symlink (string-append "../nyacc-source/module") "nyacc") - (invoke "bash" "configure.sh" - (string-append "--prefix=" out))))) - (replace 'build - (lambda _ - (let ((mes (assoc-ref %build-inputs "bootstrap-mes"))) - (setenv "MES_PREFIX" (string-append mes "/share/mes")) - (setenv "MES_ARENA" "100000000") - (setenv "MES_MAX_ARENA" "100000000") - (setenv "MES_STACK" "10000000") - (invoke "sh" "bootstrap.sh")))) - (replace 'check - (lambda _ - (setenv "DIFF" "sh scripts/diff.scm") - ;; fail fast tests - ;; (invoke "sh" "-x" "build-aux/test.sh" "scaffold/tests/t") - ;; (invoke "sh" "-x" "build-aux/test.sh" "scaffold/tests/63-struct-cell") - (invoke "sh" "check.sh"))) - (replace 'install - (lambda _ - (invoke "sh" "install.sh")))))) - (native-search-paths - ;; Use the language-specific variables rather than 'CPATH' because they - ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. - ;; The intent is to allow headers that are in the search path to be - ;; treated as "system headers" (headers exempt from warnings) just like - ;; the typical /usr/include headers on an FHS system. - (list (search-path-specification - (variable "C_INCLUDE_PATH") - (files '("share/mes/include"))) - (search-path-specification - (variable "LIBRARY_PATH") - (files '("share/mes/lib")))))))) + ("coreutils" , %bootstrap-coreutils&co) + ("bootstrap-mes" ,%bootstrap-mes))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:strip-binaries? #f ; binutil's strip b0rkes MesCC/M1/hex2 binaries + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-seeds + (lambda _ + (let ((nyacc-source (assoc-ref %build-inputs "nyacc-source")) + (bootstrap-mes (assoc-ref %build-inputs "bootstrap-mes"))) + (with-directory-excursion ".." + (mkdir-p "nyacc-source") + (invoke "tar" "--strip=1" "-C" "nyacc-source" "-xvf" nyacc-source) + (symlink (string-append bootstrap-mes "/share/mes/lib") "mes-seed")) + #t))) + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref %outputs "out"))) + (setenv "GUILE" "mes") + (setenv "GUILE_EFFECTIVE_VERSION" "2.2") + (setenv "GUILE_LOAD_PATH" "nyacc") + (symlink (string-append "../nyacc-source/module") "nyacc") + (invoke "bash" "configure.sh" + (string-append "--prefix=" out))))) + (replace 'build + (lambda _ + (let ((mes (assoc-ref %build-inputs "bootstrap-mes"))) + (setenv "MES_PREFIX" (string-append mes "/share/mes")) + (setenv "MES_ARENA" "100000000") + (setenv "MES_MAX_ARENA" "100000000") + (setenv "MES_STACK" "10000000") + (invoke "sh" "bootstrap.sh")))) + (replace 'check + (lambda _ + (setenv "DIFF" "sh scripts/diff.scm") + ;; fail fast tests + ;; (invoke "sh" "-x" "build-aux/test.sh" "scaffold/tests/t") + ;; (invoke "sh" "-x" "build-aux/test.sh" "scaffold/tests/63-struct-cell") + (invoke "sh" "check.sh"))) + (replace 'install + (lambda _ + (invoke "sh" "install.sh")))))) + (native-search-paths + ;; Use the language-specific variables rather than 'CPATH' because they + ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. + ;; The intent is to allow headers that are in the search path to be + ;; treated as "system headers" (headers exempt from warnings) just like + ;; the typical /usr/include headers on an FHS system. + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("share/mes/include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("share/mes/lib"))))))) (define tcc-boot0 ;; Pristine tcc cannot be built by MesCC, we are keeping a delta of 11 @@ -170,348 +170,349 @@ (define tcc-boot0 (let ((version "0.9.26") (revision "6") (commit "c004e9a34fb026bb44d211ab98bb768e79900eef")) - (package-with-bootstrap-guile - (package - (inherit tcc) - (name "tcc-boot0") - (version (string-append version "-" revision "." (string-take commit 7))) - (source (origin - (method url-fetch) - (uri (string-append "https://gitlab.com/janneke/tinycc" - "/-/archive/" commit - "/tinycc-" commit ".tar.gz")) - (sha256 - (base32 - "1hmzn1pq0x22ppd80hyrn5qzqq94mxd0ychzj6vrr2vnj2frjv5b")))) - (build-system gnu-build-system) - (supported-systems '("i686-linux" "x86_64-linux")) - (inputs '()) - (propagated-inputs '()) - (native-inputs - `(("mes" ,mes-boot) - ("mescc-tools" ,%bootstrap-mescc-tools) - ("nyacc-source" ,(package-source nyacc-0.86)) + (package + (inherit tcc) + (name "tcc-boot0") + (version (string-append version "-" revision "." (string-take commit 7))) + (source (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/janneke/tinycc" + "/-/archive/" commit + "/tinycc-" commit ".tar.gz")) + (sha256 + (base32 + "1hmzn1pq0x22ppd80hyrn5qzqq94mxd0ychzj6vrr2vnj2frjv5b")))) + (build-system gnu-build-system) + (supported-systems '("i686-linux" "x86_64-linux")) + (inputs '()) + (propagated-inputs '()) + (native-inputs + `(("mes" ,mes-boot) + ("mescc-tools" ,%bootstrap-mescc-tools) + ("nyacc-source" ,(bootstrap-origin + (package-source nyacc-0.86))) - ("coreutils" , %bootstrap-coreutils&co) - ("bootstrap-mes" ,%bootstrap-mes))) - (arguments - `(#:implicit-inputs? #f - #:guile ,%bootstrap-guile - #:strip-binaries? #f ; binutil's strip b0rkes MesCC/M1/hex2 binaries - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-seeds - (lambda* (#:key outputs #:allow-other-keys) - (let* ((coreutils (assoc-ref %build-inputs "coreutils")) - (nyacc-source (assoc-ref %build-inputs "nyacc-source")) - (bootstrap-mes (assoc-ref %build-inputs "bootstrap-mes"))) - (setenv "PATH" (string-append - coreutils "/bin")) - (format (current-error-port) "PATH=~s\n" (getenv "PATH")) - (with-directory-excursion ".." - (mkdir-p "nyacc-source") - (invoke "tar" "--strip=1" "-C" "nyacc-source" - "-xvf" nyacc-source) - (symlink (string-append bootstrap-mes "/share/mes/lib") "mes-seed")) - #t))) - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref %outputs "out")) - (dir (with-directory-excursion ".." (getcwd))) - (coreutils (assoc-ref %build-inputs "coreutils")) - (mes (assoc-ref %build-inputs "mes")) - (mescc-tools (assoc-ref %build-inputs "mescc-tools")) - (libc (assoc-ref %build-inputs "libc")) - (interpreter (if libc - ;; also for x86_64-linux, we are still on i686-linux - (string-append libc ,(glibc-dynamic-linker "i686-linux")) - (string-append mes "/lib/mes-loader")))) - (setenv "PATH" (string-append - coreutils "/bin" - ":" mes "/bin" - ":" mescc-tools "/bin")) - (format (current-error-port) "PATH=~s\n" (getenv "PATH")) + ("coreutils" , %bootstrap-coreutils&co) + ("bootstrap-mes" ,%bootstrap-mes))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:strip-binaries? #f ; binutil's strip b0rkes MesCC/M1/hex2 binaries + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-seeds + (lambda* (#:key outputs #:allow-other-keys) + (let* ((coreutils (assoc-ref %build-inputs "coreutils")) + (nyacc-source (assoc-ref %build-inputs "nyacc-source")) + (bootstrap-mes (assoc-ref %build-inputs "bootstrap-mes"))) + (setenv "PATH" (string-append + coreutils "/bin")) + (format (current-error-port) "PATH=~s\n" (getenv "PATH")) + (with-directory-excursion ".." + (mkdir-p "nyacc-source") + (invoke "tar" "--strip=1" "-C" "nyacc-source" + "-xvf" nyacc-source) + (symlink (string-append bootstrap-mes "/share/mes/lib") "mes-seed")) + #t))) + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref %outputs "out")) + (dir (with-directory-excursion ".." (getcwd))) + (coreutils (assoc-ref %build-inputs "coreutils")) + (mes (assoc-ref %build-inputs "mes")) + (mescc-tools (assoc-ref %build-inputs "mescc-tools")) + (libc (assoc-ref %build-inputs "libc")) + (interpreter (if libc + ;; also for x86_64-linux, we are still on i686-linux + (string-append libc ,(glibc-dynamic-linker "i686-linux")) + (string-append mes "/lib/mes-loader")))) + (setenv "PATH" (string-append + coreutils "/bin" + ":" mes "/bin" + ":" mescc-tools "/bin")) + (format (current-error-port) "PATH=~s\n" (getenv "PATH")) - (setenv "PREFIX" out) - (symlink (string-append mes "/share/mes") "mes") - (symlink (string-append "../nyacc-source/module") "nyacc") - (setenv "MES_PREFIX" "mes") - (setenv "MES_ARENA" "100000000") - (setenv "MES_MAX_ARENA" "100000000") - (setenv "MES_STACK" "10000000") - (setenv "MES" "mes") - (setenv "GUILE_LOAD_PATH" "nyacc") - (invoke "sh" "configure" - "--prefix=$PREFIX" - (string-append "--elfinterp=" interpreter) - "--crtprefix=." - "--tccdir=.")))) - (replace 'build - (lambda _ - (substitute* "bootstrap.sh" - (("^ cmp") "# cmp")) - (invoke "sh" "bootstrap.sh"))) - (replace 'check - (lambda _ - (setenv "DIFF" "diff.scm") - (setenv "OBJDUMP" "true") - ;; fail fast tests - ;; (invoke "sh" "test.sh" "mes/scaffold/tests/30-strlen") - ;; (invoke "sh" "-x" "test.sh" "mes/scaffold/tinycc/00_assignment") - (setenv "TCC" "./tcc") - (invoke "sh" "check.sh"))) - (replace 'install - (lambda _ - (invoke "sh" "install.sh")))))) - (native-search-paths - ;; Use the language-specific variables rather than 'CPATH' because they - ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. - ;; The intent is to allow headers that are in the search path to be - ;; treated as "system headers" (headers exempt from warnings) just like - ;; the typical /usr/include headers on an FHS system. - (list (search-path-specification - (variable "C_INCLUDE_PATH") - (files '("include"))) - (search-path-specification - (variable "LIBRARY_PATH") - (files '("lib"))))))))) + (setenv "PREFIX" out) + (symlink (string-append mes "/share/mes") "mes") + (symlink (string-append "../nyacc-source/module") "nyacc") + (setenv "MES_PREFIX" "mes") + (setenv "MES_ARENA" "100000000") + (setenv "MES_MAX_ARENA" "100000000") + (setenv "MES_STACK" "10000000") + (setenv "MES" "mes") + (setenv "GUILE_LOAD_PATH" "nyacc") + (invoke "sh" "configure" + "--prefix=$PREFIX" + (string-append "--elfinterp=" interpreter) + "--crtprefix=." + "--tccdir=.")))) + (replace 'build + (lambda _ + (substitute* "bootstrap.sh" + (("^ cmp") "# cmp")) + (invoke "sh" "bootstrap.sh"))) + (replace 'check + (lambda _ + (setenv "DIFF" "diff.scm") + (setenv "OBJDUMP" "true") + ;; fail fast tests + ;; (invoke "sh" "test.sh" "mes/scaffold/tests/30-strlen") + ;; (invoke "sh" "-x" "test.sh" "mes/scaffold/tinycc/00_assignment") + (setenv "TCC" "./tcc") + (invoke "sh" "check.sh"))) + (replace 'install + (lambda _ + (invoke "sh" "install.sh")))))) + (native-search-paths + ;; Use the language-specific variables rather than 'CPATH' because they + ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. + ;; The intent is to allow headers that are in the search path to be + ;; treated as "system headers" (headers exempt from warnings) just like + ;; the typical /usr/include headers on an FHS system. + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib")))))))) (define tcc-boot - (package-with-bootstrap-guile - (package - (inherit tcc-boot0) - (name "tcc-boot") - (version "0.9.27") - (source (origin + (package + (inherit tcc-boot0) + (name "tcc-boot") + (version "0.9.27") + (source (bootstrap-origin + (origin (inherit (package-source tcc)) - (patches (search-patches "tcc-boot-0.9.27.patch")))) - (build-system gnu-build-system) - (inputs '()) - (propagated-inputs '()) - (native-inputs - `(("mes" ,mes-boot) - ("tcc" ,tcc-boot0) + (patches (search-patches "tcc-boot-0.9.27.patch"))))) + (build-system gnu-build-system) + (inputs '()) + (propagated-inputs '()) + (native-inputs + `(("mes" ,mes-boot) + ("tcc" ,tcc-boot0) - ("coreutils" , %bootstrap-coreutils&co))) - (arguments - `(#:implicit-inputs? #f - #:guile ,%bootstrap-guile - #:strip-binaries? #f ; binutil's strip b0rkes MesCC/M1/hex2 - ; binaries, tcc-boot also comes with - ; MesCC/M1/hex2-built binaries - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref %outputs "out")) - (coreutils (assoc-ref %build-inputs "coreutils")) - (mes (assoc-ref %build-inputs "mes")) - (tcc (assoc-ref %build-inputs "tcc")) - (libc (assoc-ref %build-inputs "libc")) - (interpreter (if libc - ;; also for x86_64-linux, we are still on i686-linux - (string-append libc ,(glibc-dynamic-linker "i686-linux")) - (string-append mes "/lib/mes-loader")))) - ;; unpack - (setenv "PATH" (string-append - coreutils "/bin" - ":" tcc "/bin")) - (format (current-error-port) "PATH=~s\n" (getenv "PATH")) - (invoke "sh" "configure" - (string-append "--cc=tcc") - (string-append "--cpu=i386") - (string-append "--prefix=" out) - (string-append "--elfinterp=" interpreter) - (string-append "--crtprefix=" tcc "/lib") - (string-append "--sysincludepaths=" tcc "/include") - (string-append "--libpaths=" tcc "/lib"))))) - (replace 'build - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref %outputs "out")) - (mes (assoc-ref %build-inputs "mes")) - (tcc (assoc-ref %build-inputs "tcc")) - (libc (assoc-ref %build-inputs "libc")) - (interpreter (if libc - ;; also for x86_64-linux, we are still on i686-linux - (string-append libc ,(glibc-dynamic-linker "i686-linux")) - (string-append mes "/lib/mes-loader")))) - (invoke "tcc" - "-vvv" - "-D" "BOOTSTRAP=1" - "-D" "ONE_SOURCE=1" - "-D" "TCC_TARGET_I386=1" - "-D" "CONFIG_TCC_STATIC=1" - "-D" "CONFIG_USE_LIBGCC=1" - "-D" (string-append "CONFIG_TCCDIR=\"" out "/lib/tcc\"") - "-D" (string-append "CONFIG_TCC_CRTPREFIX=\"" out "/lib:{B}/lib:.\"") - "-D" (string-append "CONFIG_TCC_CRTPREFIX=\"" out "/lib:{B}/lib:.\"") - "-D" (string-append "CONFIG_TCC_ELFINTERP=\"" interpreter "\"") - "-D" (string-append "CONFIG_TCC_LIBPATHS=\"" tcc "/lib:{B}/lib:.\"") - "-D" (string-append "CONFIG_TCC_SYSINCLUDEPATHS=\"" tcc "/include" ":/include:{B}/include\"") - "-D" (string-append "TCC_LIBGCC=\"" tcc "/lib/libc.a\"") - "-o" "tcc" - "tcc.c")))) - (replace 'check - (lambda _ - ;; FIXME: add sensible check target (without depending on make) - ;; ./check.sh ? - (= 1 (status:exit-val (system* "./tcc" "--help"))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref %outputs "out")) - (tcc (assoc-ref %build-inputs "tcc"))) - (mkdir-p (string-append out "/bin")) - (copy-file "tcc" (string-append out "/bin/tcc")) - (mkdir-p (string-append out "/lib/tcc")) - (copy-recursively (string-append tcc "/include") - (string-append out "/include")) - (copy-recursively (string-append tcc "/lib") - (string-append out "/lib")) - (invoke "tcc" "-D" "TCC_TARGET_I386=1" "-c" "-o" "libtcc1.o" "lib/libtcc1.c") - (invoke "tcc" "-ar" "rc" "libtcc1.a" "libtcc1.o") - (copy-file "libtcc1.a" (string-append out "/lib/libtcc1.a")) - (delete-file (string-append out "/lib/tcc/libtcc1.a")) - (copy-file "libtcc1.a" (string-append out "/lib/tcc/libtcc1.a")) - #t))))))))) + ("coreutils" , %bootstrap-coreutils&co))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + + ;; Binutils' 'strip' b0rkes MesCC/M1/hex2 binaries, tcc-boot also comes + ;; with MesCC/M1/hex2-built binaries. + #:strip-binaries? #f + + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref %outputs "out")) + (coreutils (assoc-ref %build-inputs "coreutils")) + (mes (assoc-ref %build-inputs "mes")) + (tcc (assoc-ref %build-inputs "tcc")) + (libc (assoc-ref %build-inputs "libc")) + (interpreter (if libc + ;; also for x86_64-linux, we are still on i686-linux + (string-append libc ,(glibc-dynamic-linker "i686-linux")) + (string-append mes "/lib/mes-loader")))) + ;; unpack + (setenv "PATH" (string-append + coreutils "/bin" + ":" tcc "/bin")) + (format (current-error-port) "PATH=~s\n" (getenv "PATH")) + (invoke "sh" "configure" + (string-append "--cc=tcc") + (string-append "--cpu=i386") + (string-append "--prefix=" out) + (string-append "--elfinterp=" interpreter) + (string-append "--crtprefix=" tcc "/lib") + (string-append "--sysincludepaths=" tcc "/include") + (string-append "--libpaths=" tcc "/lib"))))) + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref %outputs "out")) + (mes (assoc-ref %build-inputs "mes")) + (tcc (assoc-ref %build-inputs "tcc")) + (libc (assoc-ref %build-inputs "libc")) + (interpreter (if libc + ;; also for x86_64-linux, we are still on i686-linux + (string-append libc ,(glibc-dynamic-linker "i686-linux")) + (string-append mes "/lib/mes-loader")))) + (invoke "tcc" + "-vvv" + "-D" "BOOTSTRAP=1" + "-D" "ONE_SOURCE=1" + "-D" "TCC_TARGET_I386=1" + "-D" "CONFIG_TCC_STATIC=1" + "-D" "CONFIG_USE_LIBGCC=1" + "-D" (string-append "CONFIG_TCCDIR=\"" out "/lib/tcc\"") + "-D" (string-append "CONFIG_TCC_CRTPREFIX=\"" out "/lib:{B}/lib:.\"") + "-D" (string-append "CONFIG_TCC_CRTPREFIX=\"" out + "/lib:{B}/lib:.\"") + "-D" (string-append "CONFIG_TCC_ELFINTERP=\"" interpreter "\"") + "-D" (string-append "CONFIG_TCC_LIBPATHS=\"" tcc "/lib:{B}/lib:.\"") + "-D" (string-append "CONFIG_TCC_SYSINCLUDEPATHS=\"" tcc "/include" ":/include:{B}/include\"") + "-D" (string-append "TCC_LIBGCC=\"" tcc "/lib/libc.a\"") + "-o" "tcc" + "tcc.c")))) + (replace 'check + (lambda _ + ;; FIXME: add sensible check target (without depending on make) + ;; ./check.sh ? + (= 1 (status:exit-val (system* "./tcc" "--help"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref %outputs "out")) + (tcc (assoc-ref %build-inputs "tcc"))) + (mkdir-p (string-append out "/bin")) + (copy-file "tcc" (string-append out "/bin/tcc")) + (mkdir-p (string-append out "/lib/tcc")) + (copy-recursively (string-append tcc "/include") + (string-append out "/include")) + (copy-recursively (string-append tcc "/lib") + (string-append out "/lib")) + (invoke "tcc" "-D" "TCC_TARGET_I386=1" "-c" "-o" "libtcc1.o" "lib/libtcc1.c") + (invoke "tcc" "-ar" "rc" "libtcc1.a" "libtcc1.o") + (copy-file "libtcc1.a" (string-append out "/lib/libtcc1.a")) + (delete-file (string-append out "/lib/tcc/libtcc1.a")) + (copy-file "libtcc1.a" (string-append out "/lib/tcc/libtcc1.a")) + #t)))))))) (define make-mesboot0 - (package-with-bootstrap-guile - (package - (inherit gnu-make) - (name "make-mesboot0") - (version "3.80") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/make/make-" - version ".tar.gz")) - (sha256 - (base32 - "1pb7fb7fqf9wz9najm85qdma1xhxzf1rhj5gwrlzdsz2zm0hpcv4")))) - (supported-systems '("i686-linux" "x86_64-linux")) - (inputs '()) - (propagated-inputs '()) - (native-inputs `(("tcc" ,tcc-boot) + (package + (inherit gnu-make) + (name "make-mesboot0") + (version "3.80") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/make/make-" + version ".tar.gz")) + (sha256 + (base32 + "1pb7fb7fqf9wz9najm85qdma1xhxzf1rhj5gwrlzdsz2zm0hpcv4")))) + (supported-systems '("i686-linux" "x86_64-linux")) + (inputs '()) + (propagated-inputs '()) + (native-inputs `(("tcc" ,tcc-boot) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co))) - (arguments - `(#:implicit-inputs? #f - #:tests? #f ; check depends on perl - #:guile ,%bootstrap-guile - #:configure-flags `("CC=tcc -DO_RDONLY=0" - "LD=tcc" - "--disable-nls") - #:phases - (modify-phases %standard-phases - (add-after 'configure 'configure-fixup - (lambda _ - (substitute* "build.sh" - (("^REMOTE=.*") "REMOTE=stub\n") - (("^extras=.*") "extras=getloadavg.c\n")) - (substitute* "make.h" - (("^extern long int lseek.*" all) (string-append "// " all))) - #t)) - (delete 'patch-generated-file-shebangs) ; no perl - (replace 'build - (lambda _ - (invoke "sh" "./build.sh"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (install-file "make" bin) - #t))))))))) + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co))) + (arguments + `(#:implicit-inputs? #f + #:tests? #f ; check depends on perl + #:guile ,%bootstrap-guile + #:configure-flags `("CC=tcc -DO_RDONLY=0" + "LD=tcc" + "--disable-nls") + #:phases + (modify-phases %standard-phases + (add-after 'configure 'configure-fixup + (lambda _ + (substitute* "build.sh" + (("^REMOTE=.*") "REMOTE=stub\n") + (("^extras=.*") "extras=getloadavg.c\n")) + (substitute* "make.h" + (("^extern long int lseek.*" all) (string-append "// " all))) + #t)) + (delete 'patch-generated-file-shebangs) ; no perl + (replace 'build + (lambda _ + (invoke "sh" "./build.sh"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "make" bin) + #t)))))))) (define diffutils-mesboot - (package-with-bootstrap-guile - (package - (inherit diffutils) - (name "diffutils-mesboot") - (version "2.7") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/diffutils/diffutils-" - version ".tar.gz")) - (sha256 - (base32 - "1mirn5i825bn5w7rh6mgn0r8aj9xqanav95dwcl1b8sn82f4iwnm")))) - (supported-systems '("i686-linux" "x86_64-linux")) - (inputs '()) - (propagated-inputs '()) - (native-inputs `(("mes" ,mes-boot) - ("tcc" ,tcc-boot) + (package + (inherit diffutils) + (name "diffutils-mesboot") + (version "2.7") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/diffutils/diffutils-" + version ".tar.gz")) + (sha256 + (base32 + "1mirn5i825bn5w7rh6mgn0r8aj9xqanav95dwcl1b8sn82f4iwnm")))) + (supported-systems '("i686-linux" "x86_64-linux")) + (inputs '()) + (propagated-inputs '()) + (native-inputs `(("mes" ,mes-boot) + ("tcc" ,tcc-boot) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("make" ,make-mesboot0))) - (arguments - `(#:implicit-inputs? #f - #:guile ,%bootstrap-guile - #:parallel-build? #f - #:tests? #f ; check is naive, also checks non-built PROGRAMS - #:strip-binaries? #f ; no strip yet - #:phases - (modify-phases %standard-phases - ;; diffutils-2.7 needs more traditional configure - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (bash (assoc-ref %build-inputs "bash"))) - (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) - (setenv "CC" "tcc") - (setenv "LD" "tcc") - (invoke "./configure" (string-append "--prefix=" out))))) - (add-before 'configure 'remove-diff3-sdiff - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile.in" - (("PROGRAMS = .*" all) "PROGRAMS = cmp diff")) - #t)))))))) + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("make" ,make-mesboot0))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:parallel-build? #f + #:tests? #f ; check is naive, also checks non-built PROGRAMS + #:strip-binaries? #f ; no strip yet + #:phases + (modify-phases %standard-phases + ;; diffutils-2.7 needs more traditional configure + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (bash (assoc-ref %build-inputs "bash"))) + (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) + (setenv "CC" "tcc") + (setenv "LD" "tcc") + (invoke "./configure" (string-append "--prefix=" out))))) + (add-before 'configure 'remove-diff3-sdiff + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Makefile.in" + (("PROGRAMS = .*" all) "PROGRAMS = cmp diff")) + #t))))))) (define binutils-mesboot0 - (package-with-bootstrap-guile - (package - (inherit binutils) - (name "binutils-mesboot0") - (version "2.20.1a") - (source (origin + (package + (inherit binutils) + (name "binutils-mesboot0") + (version "2.20.1a") + (source (bootstrap-origin + (origin (method url-fetch) (uri (string-append "mirror://gnu/binutils/binutils-" version ".tar.bz2")) (patches (search-patches "binutils-boot-2.20.1a.patch")) (sha256 (base32 - "0r7dr0brfpchh5ic0z9r4yxqn4ybzmlh25sbp30cacqk8nb7rlvi")))) - (inputs '()) - (propagated-inputs '()) - (native-inputs `(("tcc" ,tcc-boot) + "0r7dr0brfpchh5ic0z9r4yxqn4ybzmlh25sbp30cacqk8nb7rlvi"))))) + (inputs '()) + (propagated-inputs '()) + (native-inputs `(("tcc" ,tcc-boot) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("make" ,make-mesboot0))) - (supported-systems '("i686-linux" "x86_64-linux")) - (arguments - `(#:implicit-inputs? #f - #:guile ,%bootstrap-guile - #:tests? #f ; runtest: command not found - #:parallel-build? #f - #:strip-binaries? #f ; no strip yet - #:configure-flags - (let ((cppflags (string-append " -D __GLIBC_MINOR__=6" - " -D MES_BOOTSTRAP=1")) - (bash (assoc-ref %build-inputs "bash"))) - `(,(string-append "CONFIG_SHELL=" bash "/bin/sh") - ,(string-append "CPPFLAGS=" cppflags) - "AR=tcc -ar" - "CXX=false" - "RANLIB=true" - ,(string-append "CC=tcc" cppflags) - "--disable-nls" - "--disable-shared" - "--disable-werror" - "--build=i686-unknown-linux-gnu" - "--host=i686-unknown-linux-gnu" - "--with-sysroot=/"))))))) + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("diffutils" ,diffutils-mesboot) + ("make" ,make-mesboot0))) + (supported-systems '("i686-linux" "x86_64-linux")) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:tests? #f ; runtest: command not found + #:parallel-build? #f + #:strip-binaries? #f ; no strip yet + #:configure-flags + (let ((cppflags (string-append " -D __GLIBC_MINOR__=6" + " -D MES_BOOTSTRAP=1")) + (bash (assoc-ref %build-inputs "bash"))) + `(,(string-append "CONFIG_SHELL=" bash "/bin/sh") + ,(string-append "CPPFLAGS=" cppflags) + "AR=tcc -ar" + "CXX=false" + "RANLIB=true" + ,(string-append "CC=tcc" cppflags) + "--disable-nls" + "--disable-shared" + "--disable-werror" + "--build=i686-unknown-linux-gnu" + "--host=i686-unknown-linux-gnu" + "--with-sysroot=/")))))) (define gcc-core-mesboot ;; Gcc-2.95.3 is the most recent GCC that is supported by what the Mes C @@ -519,12 +520,12 @@ (define gcc-core-mesboot ;; library, such as dir.h/struct DIR/readdir, locales, signals... Also, ;; with gcc-2.95.3, binutils-boot-2.20.1a and glibc-2.2.5 we found a GNU ;; toolchain triplet "that works". - (package-with-bootstrap-guile - (package - (inherit gcc) - (name "gcc-core-mesboot") - (version "2.95.3") - (source (origin + (package + (inherit gcc) + (name "gcc-core-mesboot") + (version "2.95.3") + (source (bootstrap-origin + (origin (method url-fetch) (uri (string-append "mirror://gnu/gcc/gcc-2.95.3/gcc-core-" version @@ -532,162 +533,161 @@ (define gcc-core-mesboot (patches (search-patches "gcc-boot-2.95.3.patch")) (sha256 (base32 - "1xvfy4pqhrd5v2cv8lzf63iqg92k09g6z9n2ah6ndd4h17k1x0an")))) - (supported-systems '("i686-linux" "x86_64-linux")) - (inputs '()) - (propagated-inputs '()) - (native-inputs `(("binutils" ,binutils-mesboot0) - ("tcc" ,tcc-boot) + "1xvfy4pqhrd5v2cv8lzf63iqg92k09g6z9n2ah6ndd4h17k1x0an"))))) + (supported-systems '("i686-linux" "x86_64-linux")) + (inputs '()) + (propagated-inputs '()) + (native-inputs `(("binutils" ,binutils-mesboot0) + ("tcc" ,tcc-boot) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("make" ,make-mesboot0))) - (outputs '("out")) - (arguments - `(#:implicit-inputs? #f - #:guile ,%bootstrap-guile - #:tests? #f - #:parallel-build? #f - #:strip-binaries? #f - #:configure-flags - (let ((out (assoc-ref %outputs "out"))) - `("--enable-static" - "--disable-shared" - "--disable-werror" - "--build=i686-unknown-linux-gnu" - "--host=i686-unknown-linux-gnu" - ,(string-append "--prefix=" out))) - #:make-flags (list - "CC=tcc -static -D __GLIBC_MINOR__=6" - "OLDCC=tcc -static -D __GLIBC_MINOR__=6" - "CC_FOR_BUILD=tcc -static -D __GLIBC_MINOR__=6" - "AR=ar" - "RANLIB=ranlib" - (string-append "LIBGCC2_INCLUDES=-I " - (assoc-ref %build-inputs "tcc") - "/include") - "LANGUAGES=c" - (string-append "BOOT_LDFLAGS=" - " -B" (assoc-ref %build-inputs "tcc") - "/lib/")) - #:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) - #:phases - (modify-phases %standard-phases - ;; gcc-2.95.3 needs more traditional configure - (add-before 'configure 'setenv - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (bash (assoc-ref %build-inputs "bash")) - (tcc (assoc-ref %build-inputs "tcc")) - (cppflags " -D __GLIBC_MINOR__=6")) - (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) - (setenv "CPPFLAGS" cppflags) - (setenv "CC" (string-append "tcc" cppflags)) - (setenv "CC_FOR_BUILD" (string-append "tcc" cppflags)) - (setenv "CPP" (string-append "tcc -E" cppflags)) - (with-output-to-file "config.cache" - (lambda _ - (display " + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("diffutils" ,diffutils-mesboot) + ("make" ,make-mesboot0))) + (outputs '("out")) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:tests? #f + #:parallel-build? #f + #:strip-binaries? #f + #:configure-flags + (let ((out (assoc-ref %outputs "out"))) + `("--enable-static" + "--disable-shared" + "--disable-werror" + "--build=i686-unknown-linux-gnu" + "--host=i686-unknown-linux-gnu" + ,(string-append "--prefix=" out))) + #:make-flags (list + "CC=tcc -static -D __GLIBC_MINOR__=6" + "OLDCC=tcc -static -D __GLIBC_MINOR__=6" + "CC_FOR_BUILD=tcc -static -D __GLIBC_MINOR__=6" + "AR=ar" + "RANLIB=ranlib" + (string-append "LIBGCC2_INCLUDES=-I " + (assoc-ref %build-inputs "tcc") + "/include") + "LANGUAGES=c" + (string-append "BOOT_LDFLAGS=" + " -B" (assoc-ref %build-inputs "tcc") + "/lib/")) + #:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases + (modify-phases %standard-phases + ;; gcc-2.95.3 needs more traditional configure + (add-before 'configure 'setenv + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (bash (assoc-ref %build-inputs "bash")) + (tcc (assoc-ref %build-inputs "tcc")) + (cppflags " -D __GLIBC_MINOR__=6")) + (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) + (setenv "CPPFLAGS" cppflags) + (setenv "CC" (string-append "tcc" cppflags)) + (setenv "CC_FOR_BUILD" (string-append "tcc" cppflags)) + (setenv "CPP" (string-append "tcc -E" cppflags)) + (with-output-to-file "config.cache" + (lambda _ + (display " ac_cv_c_float_format='IEEE (little-endian)' "))) - #t))) - (replace 'configure - (lambda* (#:key configure-flags #:allow-other-keys) - (format (current-error-port) - "running ./configure ~a\n" (string-join configure-flags)) - (apply invoke "./configure" configure-flags))) - (add-after 'configure 'remove-info - (lambda _ - ;; no info at this stage - (delete-file-recursively "texinfo") - (invoke "touch" "gcc/cpp.info" "gcc/gcc.info"))) - (add-after 'install 'install2 - (lambda* (#:key outputs #:allow-other-keys) - (let* ((tcc (assoc-ref %build-inputs "tcc")) - (tcc-lib (string-append tcc "/lib/x86-mes-gcc")) - (out (assoc-ref outputs "out")) - (gcc-dir (string-append - out "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3"))) - (mkdir-p "tmp") - (zero? (system (string-append "set -x; cd tmp && ar x ../gcc/libgcc2.a"))) - (zero? (system (string-append "set -x; cd tmp && ar r " gcc-dir "/libgcc.a *.o"))) - (copy-file "gcc/libgcc2.a" (string-append out "/lib/libgcc2.a")) - (copy-file (string-append tcc "/lib/libtcc1.a") - (string-append out "/lib/libtcc1.a")) - (invoke "ar" "r" (string-append gcc-dir "/libc.a") - (string-append tcc-lib "/libc+gnu.o") - (string-append tcc-lib "/libtcc1.o")) - (invoke "ar" "r" (string-append out "/lib/libc.a") - (string-append tcc-lib "/libc+gnu.o") - (string-append tcc-lib "/libtcc1.o")) - (invoke "ls" "-ltrF" gcc-dir) - (copy-recursively (string-append tcc "/include") - (string-append out "/include")) - #t)))))) - (native-search-paths - ;; Use the language-specific variables rather than 'CPATH' because they - ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. - ;; The intent is to allow headers that are in the search path to be - ;; treated as "system headers" (headers exempt from warnings) just like - ;; the typical /usr/include headers on an FHS system. - (list (search-path-specification - (variable "C_INCLUDE_PATH") - (files '("include" "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3/include"))) - (search-path-specification - (variable "LIBRARY_PATH") - (files '("lib")))))))) + #t))) + (replace 'configure + (lambda* (#:key configure-flags #:allow-other-keys) + (format (current-error-port) + "running ./configure ~a\n" (string-join configure-flags)) + (apply invoke "./configure" configure-flags))) + (add-after 'configure 'remove-info + (lambda _ + ;; no info at this stage + (delete-file-recursively "texinfo") + (invoke "touch" "gcc/cpp.info" "gcc/gcc.info"))) + (add-after 'install 'install2 + (lambda* (#:key outputs #:allow-other-keys) + (let* ((tcc (assoc-ref %build-inputs "tcc")) + (tcc-lib (string-append tcc "/lib/x86-mes-gcc")) + (out (assoc-ref outputs "out")) + (gcc-dir (string-append + out "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3"))) + (mkdir-p "tmp") + (zero? (system (string-append "set -x; cd tmp && ar x ../gcc/libgcc2.a"))) + (zero? (system (string-append "set -x; cd tmp && ar r " gcc-dir "/libgcc.a *.o"))) + (copy-file "gcc/libgcc2.a" (string-append out "/lib/libgcc2.a")) + (copy-file (string-append tcc "/lib/libtcc1.a") + (string-append out "/lib/libtcc1.a")) + (invoke "ar" "r" (string-append gcc-dir "/libc.a") + (string-append tcc-lib "/libc+gnu.o") + (string-append tcc-lib "/libtcc1.o")) + (invoke "ar" "r" (string-append out "/lib/libc.a") + (string-append tcc-lib "/libc+gnu.o") + (string-append tcc-lib "/libtcc1.o")) + (invoke "ls" "-ltrF" gcc-dir) + (copy-recursively (string-append tcc "/include") + (string-append out "/include")) + #t)))))) + (native-search-paths + ;; Use the language-specific variables rather than 'CPATH' because they + ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. + ;; The intent is to allow headers that are in the search path to be + ;; treated as "system headers" (headers exempt from warnings) just like + ;; the typical /usr/include headers on an FHS system. + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("include" "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3/include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib"))))))) (define mesboot-headers - (package-with-bootstrap-guile - (package - (inherit mes-boot) - (name "mesboot-headers") - (supported-systems '("i686-linux" "x86_64-linux")) - (inputs '()) - (propagated-inputs '()) - (native-inputs `(("coreutils" ,%bootstrap-coreutils&co) - ("headers" ,%bootstrap-linux-libre-headers))) - (arguments - `(#:implicit-inputs? #f - #:guile ,%bootstrap-guile - #:tests? #f - #:strip-binaries? #f - #:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'build) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (include (string-append out "/include")) - (headers (assoc-ref %build-inputs "headers" ))) - (mkdir-p include) - (copy-recursively "include" out) - (copy-recursively headers out) - #t)))))) - (native-search-paths - ;; Use the language-specific variables rather than 'CPATH' because they - ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. - ;; The intent is to allow headers that are in the search path to be - ;; treated as "system headers" (headers exempt from warnings) just like - ;; the typical /usr/include headers on an FHS system. - (list (search-path-specification - (variable "C_INCLUDE_PATH") - (files '("include")))))))) + (package + (inherit mes-boot) + (name "mesboot-headers") + (supported-systems '("i686-linux" "x86_64-linux")) + (inputs '()) + (propagated-inputs '()) + (native-inputs `(("coreutils" ,%bootstrap-coreutils&co) + ("headers" ,%bootstrap-linux-libre-headers))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:tests? #f + #:strip-binaries? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (include (string-append out "/include")) + (headers (assoc-ref %build-inputs "headers" ))) + (mkdir-p include) + (copy-recursively "include" out) + (copy-recursively headers out) + #t)))))) + (native-search-paths + ;; Use the language-specific variables rather than 'CPATH' because they + ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. + ;; The intent is to allow headers that are in the search path to be + ;; treated as "system headers" (headers exempt from warnings) just like + ;; the typical /usr/include headers on an FHS system. + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("include"))))))) (define glibc-mesboot0 ;; GNU C Library 2.2.5 is the most recent glibc that we managed to build ;; using gcc-2.95.3. Newer versions (2.3.x, 2.6, 2.1x) seem to need a newer ;; gcc. - (package-with-bootstrap-guile - (package - (inherit glibc) - (name "glibc-mesboot0") - (version "2.2.5") - (source (origin + (package + (inherit glibc) + (name "glibc-mesboot0") + (version "2.2.5") + (source (bootstrap-origin + (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" version @@ -695,211 +695,208 @@ (define glibc-mesboot0 (patches (search-patches "glibc-boot-2.2.5.patch")) (sha256 (base32 - "1vl48i16gx6h68whjyhgnn1s57vqq32f9ygfa2fls7pdkbsqvp2q")))) - (supported-systems '("i686-linux" "x86_64-linux")) - (inputs '()) - (propagated-inputs '()) - (native-inputs `(("binutils" ,binutils-mesboot0) - ("gcc" ,gcc-core-mesboot) + "1vl48i16gx6h68whjyhgnn1s57vqq32f9ygfa2fls7pdkbsqvp2q"))))) + (supported-systems '("i686-linux" "x86_64-linux")) + (inputs '()) + (propagated-inputs '()) + (native-inputs `(("binutils" ,binutils-mesboot0) + ("gcc" ,gcc-core-mesboot) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("headers" ,mesboot-headers) - ("make" ,make-mesboot0))) - (outputs '("out")) - (arguments - `(#:implicit-inputs? #f - #:guile ,%bootstrap-guile - #:tests? #f - #:strip-binaries? #f - #:parallel-build? #f ; gcc-2.95.3 ICEs on massively parallel builds - #:make-flags (list (string-append - "SHELL=" - (assoc-ref %build-inputs "bash") - "/bin/sh")) - #:configure-flags - (let ((out (assoc-ref %outputs "out")) - (headers (assoc-ref %build-inputs "headers"))) - (list - "--disable-shared" - "--enable-static" - "--disable-sanity-checks" - "--build=i686-unknown-linux-gnu" - "--host=i686-unknown-linux-gnu" - (string-append "--with-headers=" headers "/include") - "--enable-static-nss" - "--without-__thread" - "--without-cvs" - "--without-gd" - "--without-tls" - (string-append "--prefix=" out))) - #:phases - (modify-phases %standard-phases - (add-before 'configure 'setenv - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bash (assoc-ref %build-inputs "bash")) - (gcc (assoc-ref %build-inputs "gcc")) - (headers (assoc-ref %build-inputs "headers")) - (cppflags (string-append - ;;" -D __STDC__=1" - " -D MES_BOOTSTRAP=1" - " -D BOOTSTRAP_GLIBC=1")) - (cflags (string-append " -L " (getcwd)))) - (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) - (setenv "SHELL" (getenv "CONFIG_SHELL")) - (setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags)) - (setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags)) - #t))) - ;; glibc-2.2.5 needs a more classic invocation of configure - ;; configure: warning: CONFIG_SHELL=/gnu/store/…-bash-minimal-4.4.12/bin/bash: invalid host type - (replace 'configure - (lambda* (#:key configure-flags #:allow-other-keys) - (format (current-error-port) - "running ./configure ~a\n" (string-join configure-flags)) - (apply invoke "./configure" configure-flags)))))) - (native-search-paths - ;; Use the language-specific variables rather than 'CPATH' because they - ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. - ;; The intent is to allow headers that are in the search path to be - ;; treated as "system headers" (headers exempt from warnings) just like - ;; the typical /usr/include headers on an FHS system. - (list (search-path-specification - (variable "C_INCLUDE_PATH") - (files '("include"))) - (search-path-specification - (variable "CPLUS_INCLUDE_PATH") - (files '("include"))) - (search-path-specification - (variable "LIBRARY_PATH") - (files '("lib")))))))) + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("diffutils" ,diffutils-mesboot) + ("headers" ,mesboot-headers) + ("make" ,make-mesboot0))) + (outputs '("out")) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:tests? #f + #:strip-binaries? #f + #:parallel-build? #f ; gcc-2.95.3 ICEs on massively parallel builds + #:make-flags (list (string-append + "SHELL=" + (assoc-ref %build-inputs "bash") + "/bin/sh")) + #:configure-flags + (let ((out (assoc-ref %outputs "out")) + (headers (assoc-ref %build-inputs "headers"))) + (list + "--disable-shared" + "--enable-static" + "--disable-sanity-checks" + "--build=i686-unknown-linux-gnu" + "--host=i686-unknown-linux-gnu" + (string-append "--with-headers=" headers "/include") + "--enable-static-nss" + "--without-__thread" + "--without-cvs" + "--without-gd" + "--without-tls" + (string-append "--prefix=" out))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'setenv + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bash (assoc-ref %build-inputs "bash")) + (gcc (assoc-ref %build-inputs "gcc")) + (headers (assoc-ref %build-inputs "headers")) + (cppflags (string-append + ;;" -D __STDC__=1" + " -D MES_BOOTSTRAP=1" + " -D BOOTSTRAP_GLIBC=1")) + (cflags (string-append " -L " (getcwd)))) + (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) + (setenv "SHELL" (getenv "CONFIG_SHELL")) + (setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags)) + (setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags)) + #t))) + ;; glibc-2.2.5 needs a more classic invocation of configure + ;; configure: warning: CONFIG_SHELL=/gnu/store/…-bash-minimal-4.4.12/bin/bash: invalid host type + (replace 'configure + (lambda* (#:key configure-flags #:allow-other-keys) + (format (current-error-port) + "running ./configure ~a\n" (string-join configure-flags)) + (apply invoke "./configure" configure-flags)))))) + (native-search-paths + ;; Use the language-specific variables rather than 'CPATH' because they + ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. + ;; The intent is to allow headers that are in the search path to be + ;; treated as "system headers" (headers exempt from warnings) just like + ;; the typical /usr/include headers on an FHS system. + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "CPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib"))))))) (define gcc-mesboot0 - (package-with-bootstrap-guile - (package - (inherit gcc-core-mesboot) - (name "gcc-mesboot0") - (native-inputs `(("binutils" ,binutils-mesboot0) - ("gcc" ,gcc-core-mesboot) - ("libc" ,glibc-mesboot0) + (package + (inherit gcc-core-mesboot) + (name "gcc-mesboot0") + (native-inputs `(("binutils" ,binutils-mesboot0) + ("gcc" ,gcc-core-mesboot) + ("libc" ,glibc-mesboot0) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("kernel-headers" ,%bootstrap-linux-libre-headers) - ("make" ,make-mesboot0))) - (arguments - (substitute-keyword-arguments (package-arguments gcc-core-mesboot) - ((#:phases phases) - `(modify-phases ,phases - (replace 'setenv - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (bash (assoc-ref %build-inputs "bash")) - (gcc (assoc-ref %build-inputs "gcc")) - (glibc (assoc-ref %build-inputs "libc")) - (kernel-headers (assoc-ref %build-inputs "kernel-headers"))) - (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) - (format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH")) - (setenv "C_INCLUDE_PATH" (string-append - gcc "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3/include" - ":" kernel-headers "/include" - ":" glibc "/include")) - (format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH")) - (format (current-error-port) "LIBRARY_PATH=~a\n" (getenv "LIBRARY_PATH")) - ;; FIXME: add glibc dirs to paths manually - (setenv "LIBRARY_PATH" (string-join - (list (string-append glibc "/lib") - (getenv "LIBRARY_PATH")) - ":")) - (format (current-error-port) "LIBRARY_PATH=~a\n" (getenv "LIBRARY_PATH")) - (with-output-to-file "config.cache" - (lambda _ - (display " + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("diffutils" ,diffutils-mesboot) + ("kernel-headers" ,%bootstrap-linux-libre-headers) + ("make" ,make-mesboot0))) + (arguments + (substitute-keyword-arguments (package-arguments gcc-core-mesboot) + ((#:phases phases) + `(modify-phases ,phases + (replace 'setenv + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (bash (assoc-ref %build-inputs "bash")) + (gcc (assoc-ref %build-inputs "gcc")) + (glibc (assoc-ref %build-inputs "libc")) + (kernel-headers (assoc-ref %build-inputs "kernel-headers"))) + (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) + (format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH")) + (setenv "C_INCLUDE_PATH" (string-append + gcc "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3/include" + ":" kernel-headers "/include" + ":" glibc "/include")) + (format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH")) + (format (current-error-port) "LIBRARY_PATH=~a\n" (getenv "LIBRARY_PATH")) + ;; FIXME: add glibc dirs to paths manually + (setenv "LIBRARY_PATH" (string-join + (list (string-append glibc "/lib") + (getenv "LIBRARY_PATH")) + ":")) + (format (current-error-port) "LIBRARY_PATH=~a\n" (getenv "LIBRARY_PATH")) + (with-output-to-file "config.cache" + (lambda _ + (display " ac_cv_c_float_format='IEEE (little-endian)' "))) - #t))) - (replace 'install2 - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (gcc-dir (string-append - out "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3"))) - (mkdir-p "tmp") - (zero? (system (string-append "set -x; cd tmp && ar x ../gcc/libgcc2.a"))) - (zero? (system (string-append "set -x; cd tmp && ar r " gcc-dir "/libgcc.a *.o"))) - (copy-file "gcc/libgcc2.a" (string-append out "/lib/libgcc2.a")) - #t))))) - ((#:configure-flags configure-flags) - `(let ((out (assoc-ref %outputs "out"))) - `("--disable-shared" - "--disable-werror" - "--build=i686-unknown-linux-gnu" - "--host=i686-unknown-linux-gnu" - ,(string-append "--prefix=" out)))) - ((#:make-flags make-flags) - `(let ((gcc (assoc-ref %build-inputs "gcc"))) - `("RANLIB=true" - ,(string-append "LIBGCC2_INCLUDES=-I " gcc "/include") - "LANGUAGES=c")))))))) + #t))) + (replace 'install2 + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (gcc-dir (string-append + out "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3"))) + (mkdir-p "tmp") + (zero? (system (string-append "set -x; cd tmp && ar x ../gcc/libgcc2.a"))) + (zero? (system (string-append "set -x; cd tmp && ar r " gcc-dir "/libgcc.a *.o"))) + (copy-file "gcc/libgcc2.a" (string-append out "/lib/libgcc2.a")) + #t))))) + ((#:configure-flags configure-flags) + `(let ((out (assoc-ref %outputs "out"))) + `("--disable-shared" + "--disable-werror" + "--build=i686-unknown-linux-gnu" + "--host=i686-unknown-linux-gnu" + ,(string-append "--prefix=" out)))) + ((#:make-flags make-flags) + `(let ((gcc (assoc-ref %build-inputs "gcc"))) + `("RANLIB=true" + ,(string-append "LIBGCC2_INCLUDES=-I " gcc "/include") + "LANGUAGES=c"))))))) (define binutils-mesboot - (package-with-bootstrap-guile - (package - (inherit binutils-mesboot0) - (name "binutils-mesboot") - (native-inputs `(("binutils" ,binutils-mesboot0) - ("libc" ,glibc-mesboot0) - ("gcc" ,gcc-mesboot0) + (package + (inherit binutils-mesboot0) + (name "binutils-mesboot") + (native-inputs `(("binutils" ,binutils-mesboot0) + ("libc" ,glibc-mesboot0) + ("gcc" ,gcc-mesboot0) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("kernel-headers" ,%bootstrap-linux-libre-headers) - ("make" ,make-mesboot0))) - (arguments - (substitute-keyword-arguments (package-arguments binutils-mesboot0) - ((#:configure-flags configure-flags) - '(list "--disable-nls" - "--disable-shared" - "--disable-werror" - "--build=i686-unknown-linux-gnu" - "--host=i686-unknown-linux-gnu" - "--with-sysroot=/"))))))) + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("diffutils" ,diffutils-mesboot) + ("kernel-headers" ,%bootstrap-linux-libre-headers) + ("make" ,make-mesboot0))) + (arguments + (substitute-keyword-arguments (package-arguments binutils-mesboot0) + ((#:configure-flags configure-flags) + '(list "--disable-nls" + "--disable-shared" + "--disable-werror" + "--build=i686-unknown-linux-gnu" + "--host=i686-unknown-linux-gnu" + "--with-sysroot=/")))))) (define make-mesboot - (package-with-bootstrap-guile - (package - (inherit make-mesboot0) - (name "make-mesboot") - (version "3.82") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/make/make-" - version ".tar.gz")) - (sha256 - (base32 - "1rs2f9hmvy3q6zkl15jnlmnpgffm0bhw5ax0h5c7q604wqrip69x")))) - (native-inputs `(("binutils" ,binutils-mesboot0) - ("libc" ,glibc-mesboot0) - ("gcc" ,gcc-mesboot0) - ("make" ,make-mesboot0) + (package + (inherit make-mesboot0) + (name "make-mesboot") + (version "3.82") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/make/make-" + version ".tar.gz")) + (sha256 + (base32 + "1rs2f9hmvy3q6zkl15jnlmnpgffm0bhw5ax0h5c7q604wqrip69x")))) + (native-inputs `(("binutils" ,binutils-mesboot0) + ("libc" ,glibc-mesboot0) + ("gcc" ,gcc-mesboot0) + ("make" ,make-mesboot0) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("kernel-headers" ,%bootstrap-linux-libre-headers))) - (arguments - (substitute-keyword-arguments (package-arguments make-mesboot0) - ((#:configure-flags configure-flags) - `(let ((out (assoc-ref %outputs "out"))) - `(,(string-append "--prefix=" out)))) - ((#:phases phases) - `(modify-phases ,phases - (delete 'configure-fixup) - (add-before 'configure 'setenv - (lambda _ - (setenv "LIBS" "-lc -lnss_files -lnss_dns -lresolv") - #t))))))))) + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("kernel-headers" ,%bootstrap-linux-libre-headers))) + (arguments + (substitute-keyword-arguments (package-arguments make-mesboot0) + ((#:configure-flags configure-flags) + `(let ((out (assoc-ref %outputs "out"))) + `(,(string-append "--prefix=" out)))) + ((#:phases phases) + `(modify-phases ,phases + (delete 'configure-fixup) + (add-before 'configure 'setenv + (lambda _ + (setenv "LIBS" "-lc -lnss_files -lnss_dns -lresolv") + #t)))))))) (define gmp-boot (package @@ -936,158 +933,157 @@ (define mpc-boot "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1")))))) (define gcc-mesboot1 - (package-with-bootstrap-guile - (package - (inherit gcc-mesboot0) - (name "gcc-mesboot1") - (version "4.7.4") - (source (origin (inherit (package-source gcc-4.7)) - (patches (search-patches "gcc-boot-4.7.4.patch")))) - (inputs `(("gmp-source" ,(package-source gmp-boot)) - ("mpfr-source" ,(package-source mpfr-boot)) - ("mpc-source" ,(package-source mpc-boot)))) - (native-inputs `(("binutils" ,binutils-mesboot) - ("gcc" ,gcc-mesboot0) - ("libc" ,glibc-mesboot0) + (package + (inherit gcc-mesboot0) + (name "gcc-mesboot1") + (version "4.7.4") + (source (bootstrap-origin + (origin (inherit (package-source gcc-4.7)) + (patches (search-patches "gcc-boot-4.7.4.patch"))))) + (inputs `(("gmp-source" ,(package-source gmp-boot)) + ("mpfr-source" ,(package-source mpfr-boot)) + ("mpc-source" ,(package-source mpc-boot)))) + (native-inputs `(("binutils" ,binutils-mesboot) + ("gcc" ,gcc-mesboot0) + ("libc" ,glibc-mesboot0) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("kernel-headers" ,%bootstrap-linux-libre-headers) - ("make" ,make-mesboot))) - (arguments - (substitute-keyword-arguments (package-arguments gcc-core-mesboot) - ((#:make-flags make-flags) - `(let* ((libc (assoc-ref %build-inputs "libc")) - (ldflags (string-append - "-B" libc "/lib " - "-Wl,-dynamic-linker " - "-Wl," libc - ,(glibc-dynamic-linker "i686-linux")))) - (list (string-append "LDFLAGS=" ldflags) - (string-append "LDFLAGS_FOR_TARGET=" ldflags)))) - ((#:phases phases) - `(modify-phases ,phases - ;; c&p from commencement.scm:gcc-boot0 - (add-after 'unpack 'unpack-gmp&co - (lambda* (#:key inputs #:allow-other-keys) - (let ((gmp (assoc-ref %build-inputs "gmp-source")) - (mpfr (assoc-ref %build-inputs "mpfr-source")) - (mpc (assoc-ref %build-inputs "mpc-source"))) + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("diffutils" ,diffutils-mesboot) + ("kernel-headers" ,%bootstrap-linux-libre-headers) + ("make" ,make-mesboot))) + (arguments + (substitute-keyword-arguments (package-arguments gcc-core-mesboot) + ((#:make-flags make-flags) + `(let* ((libc (assoc-ref %build-inputs "libc")) + (ldflags (string-append + "-B" libc "/lib " + "-Wl,-dynamic-linker " + "-Wl," libc + ,(glibc-dynamic-linker "i686-linux")))) + (list (string-append "LDFLAGS=" ldflags) + (string-append "LDFLAGS_FOR_TARGET=" ldflags)))) + ((#:phases phases) + `(modify-phases ,phases + ;; c&p from commencement.scm:gcc-boot0 + (add-after 'unpack 'unpack-gmp&co + (lambda* (#:key inputs #:allow-other-keys) + (let ((gmp (assoc-ref %build-inputs "gmp-source")) + (mpfr (assoc-ref %build-inputs "mpfr-source")) + (mpc (assoc-ref %build-inputs "mpc-source"))) - ;; To reduce the set of pre-built bootstrap inputs, build - ;; GMP & co. from GCC. - (for-each (lambda (source) - (or (invoke "tar" "xvf" source) - (error "failed to unpack tarball" - source))) - (list gmp mpfr mpc)) + ;; To reduce the set of pre-built bootstrap inputs, build + ;; GMP & co. from GCC. + (for-each (lambda (source) + (or (invoke "tar" "xvf" source) + (error "failed to unpack tarball" + source))) + (list gmp mpfr mpc)) - ;; Create symlinks like `gmp' -> `gmp-x.y.z'. - ,@(map (lambda (lib) - ;; Drop trailing letters, as gmp-6.0.0a unpacks - ;; into gmp-6.0.0. - `(symlink ,(string-trim-right - (package-full-name lib "-") - char-set:letter) - ,(package-name lib))) - (list gmp-boot mpfr-boot mpc-boot)) - #t))) - (delete 'remove-info) - (replace 'setenv - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (binutils (assoc-ref %build-inputs "binutils")) - (bash (assoc-ref %build-inputs "bash")) - (gcc (assoc-ref %build-inputs "gcc")) - (glibc (assoc-ref %build-inputs "libc")) - (kernel-headers (assoc-ref %build-inputs "kernel-headers"))) - (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) - (setenv "C_INCLUDE_PATH" (string-append - gcc "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3/include" - ":" kernel-headers "/include" - ":" glibc "/include" - ":" (getcwd) "/mpfr/src")) - (setenv "LIBRARY_PATH" (string-append glibc "/lib" - ":" gcc "/lib")) - (format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH")) - (format (current-error-port) "LIBRARY_PATH=~a\n" (getenv "LIBRARY_PATH")) - #t))) - (delete 'install2))) - ((#:configure-flags configure-flags) - `(let ((out (assoc-ref %outputs "out")) - (glibc (assoc-ref %build-inputs "libc"))) - (list (string-append "--prefix=" out) - "--build=i686-unknown-linux-gnu" - "--host=i686-unknown-linux-gnu" + ;; Create symlinks like `gmp' -> `gmp-x.y.z'. + ,@(map (lambda (lib) + ;; Drop trailing letters, as gmp-6.0.0a unpacks + ;; into gmp-6.0.0. + `(symlink ,(string-trim-right + (package-full-name lib "-") + char-set:letter) + ,(package-name lib))) + (list gmp-boot mpfr-boot mpc-boot)) + #t))) + (delete 'remove-info) + (replace 'setenv + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (binutils (assoc-ref %build-inputs "binutils")) + (bash (assoc-ref %build-inputs "bash")) + (gcc (assoc-ref %build-inputs "gcc")) + (glibc (assoc-ref %build-inputs "libc")) + (kernel-headers (assoc-ref %build-inputs "kernel-headers"))) + (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) + (setenv "C_INCLUDE_PATH" (string-append + gcc "/lib/gcc-lib/i686-unknown-linux-gnu/2.95.3/include" + ":" kernel-headers "/include" + ":" glibc "/include" + ":" (getcwd) "/mpfr/src")) + (setenv "LIBRARY_PATH" (string-append glibc "/lib" + ":" gcc "/lib")) + (format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH")) + (format (current-error-port) "LIBRARY_PATH=~a\n" (getenv "LIBRARY_PATH")) + #t))) + (delete 'install2))) + ((#:configure-flags configure-flags) + `(let ((out (assoc-ref %outputs "out")) + (glibc (assoc-ref %build-inputs "libc"))) + (list (string-append "--prefix=" out) + "--build=i686-unknown-linux-gnu" + "--host=i686-unknown-linux-gnu" - (string-append "--with-native-system-header-dir=" glibc "/include") - (string-append "--with-build-sysroot=" glibc "/include") + (string-append "--with-native-system-header-dir=" glibc "/include") + (string-append "--with-build-sysroot=" glibc "/include") - "--disable-bootstrap" - "--disable-decimal-float" - "--disable-libatomic" - "--disable-libcilkrts" - "--disable-libgomp" - "--disable-libitm" - "--disable-libmudflap" - "--disable-libquadmath" - "--disable-libsanitizer" - "--disable-libssp" - "--disable-libvtv" - "--disable-lto" - "--disable-lto-plugin" - "--disable-multilib" - "--disable-plugin" - "--disable-threads" - "--enable-languages=c,c++" + "--disable-bootstrap" + "--disable-decimal-float" + "--disable-libatomic" + "--disable-libcilkrts" + "--disable-libgomp" + "--disable-libitm" + "--disable-libmudflap" + "--disable-libquadmath" + "--disable-libsanitizer" + "--disable-libssp" + "--disable-libvtv" + "--disable-lto" + "--disable-lto-plugin" + "--disable-multilib" + "--disable-plugin" + "--disable-threads" + "--enable-languages=c,c++" - "--enable-static" - ;; libstdc++.so: error: depends on 'libgcc_s.so.1', which cannot be found in RUNPATH () - "--disable-shared" - "--enable-threads=single" + "--enable-static" + ;; libstdc++.so: error: depends on 'libgcc_s.so.1', which cannot be found in RUNPATH () + "--disable-shared" + "--enable-threads=single" - ;; No pre-compiled libstdc++ headers, to save space. - "--disable-libstdcxx-pch" + ;; No pre-compiled libstdc++ headers, to save space. + "--disable-libstdcxx-pch" - ;; for libcpp ... - "--disable-build-with-cxx")))))))) + ;; for libcpp ... + "--disable-build-with-cxx"))))))) (define gcc-mesboot1-wrapper ;; We need this so gcc-mesboot1 can be used to create shared binaries that ;; have the correct interpreter, otherwise configuring gcc-mesboot using ;; --enable-shared will fail. - (package-with-bootstrap-guile - (package - (inherit gcc-mesboot1) - (name "gcc-mesboot1-wrapper") - (source #f) - (inputs '()) - (native-inputs `(("bash" ,%bootstrap-coreutils&co) - ("libc" ,glibc-mesboot) - ("gcc" ,gcc-mesboot1))) - (arguments - `(#:implicit-inputs? #f - #:guile ,%bootstrap-guile - #:phases - (modify-phases %standard-phases - (delete 'unpack) - (delete 'configure) - (delete 'install) - (replace 'build - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bash (assoc-ref %build-inputs "bash")) - (libc (assoc-ref %build-inputs "libc")) - (gcc (assoc-ref %build-inputs "gcc")) - (bin (string-append out "/bin"))) - (mkdir-p bin) - (for-each - (lambda (program) - (let ((wrapper (string-append bin "/" program))) - (with-output-to-file wrapper - (lambda _ - (display (string-append "#! " bash "/bin/bash + (package + (inherit gcc-mesboot1) + (name "gcc-mesboot1-wrapper") + (source #f) + (inputs '()) + (native-inputs `(("bash" ,%bootstrap-coreutils&co) + ("libc" ,glibc-mesboot) + ("gcc" ,gcc-mesboot1))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:phases + (modify-phases %standard-phases + (delete 'unpack) + (delete 'configure) + (delete 'install) + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bash (assoc-ref %build-inputs "bash")) + (libc (assoc-ref %build-inputs "libc")) + (gcc (assoc-ref %build-inputs "gcc")) + (bin (string-append out "/bin"))) + (mkdir-p bin) + (for-each + (lambda (program) + (let ((wrapper (string-append bin "/" program))) + (with-output-to-file wrapper + (lambda _ + (display (string-append "#! " bash "/bin/bash exec " gcc "/bin/" program " -Wl,--dynamic-linker" ;; also for x86_64-linux, we are still on i686-linux @@ -1096,28 +1092,28 @@ (define gcc-mesboot1-wrapper " -Wl," libc "/lib" " \"$@\" ")) - (chmod wrapper #o555))))) - '( - "gcc" - "g++" - "i686-unknown-linux-gnu-gcc" - "i686-unknown-linux-gnu-g++" - )) - #t))) - (replace 'check - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (program (string-append bin "/gcc"))) - (invoke program "--help")))))))))) + (chmod wrapper #o555))))) + '( + "gcc" + "g++" + "i686-unknown-linux-gnu-gcc" + "i686-unknown-linux-gnu-g++" + )) + #t))) + (replace 'check + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (program (string-append bin "/gcc"))) + (invoke program "--help"))))))))) (define glibc-headers-mesboot - (package-with-bootstrap-guile - (package - (inherit glibc-mesboot0) - (name "glibc-headers-mesboot") - (version "2.16.0") - (source (origin + (package + (inherit glibc-mesboot0) + (name "glibc-headers-mesboot") + (version "2.16.0") + (source (bootstrap-origin + (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" version @@ -1126,273 +1122,269 @@ (define glibc-headers-mesboot "glibc-bootstrap-system-2.16.0.patch")) (sha256 (base32 - "0vlz4x6cgz7h54qq4528q526qlhnsjzbsvgc4iizn76cb0bfanx7")))) - (native-inputs `(("binutils" ,binutils-mesboot) - ("libc" ,glibc-mesboot0) - ("gcc" ,gcc-mesboot1) - ("headers" ,mesboot-headers) + "0vlz4x6cgz7h54qq4528q526qlhnsjzbsvgc4iizn76cb0bfanx7"))))) + (native-inputs `(("binutils" ,binutils-mesboot) + ("libc" ,glibc-mesboot0) + ("gcc" ,gcc-mesboot1) + ("headers" ,mesboot-headers) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("kernel-headers" ,%bootstrap-linux-libre-headers) - ("make" ,make-mesboot))) + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("diffutils" ,diffutils-mesboot) + ("kernel-headers" ,%bootstrap-linux-libre-headers) + ("make" ,make-mesboot))) - (arguments - (substitute-keyword-arguments (package-arguments glibc-mesboot0) - ((#:configure-flags configure-flags) - `(let ((out (assoc-ref %outputs "out")) - (headers (assoc-ref %build-inputs "headers"))) - (list - (string-append "--prefix=" out) - "--disable-obsolete-rpc" - "--host=i686-unknown-linux-gnu" - (string-append "--with-headers=" headers "/include") - "--enable-static-nss" - "--with-pthread" - "--without-cvs" - "--without-gd" - "--enable-add-ons=nptl"))) - ((#:make-flags make-flags) - `(let ((bash (assoc-ref %build-inputs "bash"))) - (list (string-append "SHELL=" bash "/bin/sh") - "install-bootstrap-headers=yes" "install-headers"))) - ((#:phases phases) - `(modify-phases ,phases - (replace 'setenv - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (headers (assoc-ref %build-inputs "headers")) - (bash (assoc-ref %build-inputs "bash")) - (coreutils (assoc-ref %build-inputs "coreutils")) - (libc (assoc-ref %build-inputs "libc")) - (gcc (assoc-ref %build-inputs "gcc")) - (cppflags (string-append - " -I " (getcwd) "/nptl/sysdeps/pthread/bits" - " -D BOOTSTRAP_GLIBC=1")) - (cflags (string-append " -L " (getcwd) - " -L " libc "/lib"))) - (setenv "libc_cv_friendly_stddef" "yes") - (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) - (setenv "SHELL" (getenv "CONFIG_SHELL")) - (format (current-error-port) "CONFIG_SHELL=~s\n" (getenv "CONFIG_SHELL")) + (arguments + (substitute-keyword-arguments (package-arguments glibc-mesboot0) + ((#:configure-flags configure-flags) + `(let ((out (assoc-ref %outputs "out")) + (headers (assoc-ref %build-inputs "headers"))) + (list + (string-append "--prefix=" out) + "--disable-obsolete-rpc" + "--host=i686-unknown-linux-gnu" + (string-append "--with-headers=" headers "/include") + "--enable-static-nss" + "--with-pthread" + "--without-cvs" + "--without-gd" + "--enable-add-ons=nptl"))) + ((#:make-flags make-flags) + `(let ((bash (assoc-ref %build-inputs "bash"))) + (list (string-append "SHELL=" bash "/bin/sh") + "install-bootstrap-headers=yes" "install-headers"))) + ((#:phases phases) + `(modify-phases ,phases + (replace 'setenv + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (headers (assoc-ref %build-inputs "headers")) + (bash (assoc-ref %build-inputs "bash")) + (coreutils (assoc-ref %build-inputs "coreutils")) + (libc (assoc-ref %build-inputs "libc")) + (gcc (assoc-ref %build-inputs "gcc")) + (cppflags (string-append + " -I " (getcwd) "/nptl/sysdeps/pthread/bits" + " -D BOOTSTRAP_GLIBC=1")) + (cflags (string-append " -L " (getcwd) + " -L " libc "/lib"))) + (setenv "libc_cv_friendly_stddef" "yes") + (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) + (setenv "SHELL" (getenv "CONFIG_SHELL")) + (format (current-error-port) "CONFIG_SHELL=~s\n" (getenv "CONFIG_SHELL")) - (setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags)) - (setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags)) + (setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags)) + (setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags)) - ;; avoid -fstack-protector - (setenv "libc_cv_ssp" "false") - (substitute* "configure" - (("/bin/pwd") (string-append coreutils "/bin/pwd"))) - (setenv "C_INCLUDE_PATH" (string-append libc "/include" - headers "/include")) - (setenv "LIBRARY_PATH" (string-append libc "/lib")) - #t))) - (replace 'install - (lambda* (#:key outputs make-flags #:allow-other-keys) - (let ((kernel-headers (assoc-ref %build-inputs "kernel-headers")) - (out (assoc-ref outputs "out"))) - (apply invoke "make" make-flags) - (copy-recursively kernel-headers out) - #t))) - (replace 'configure - (lambda* (#:key configure-flags #:allow-other-keys) - (format (current-error-port) "running ../configure ~a\n" (string-join configure-flags)) - (mkdir-p "build") - (chdir "build") - (apply invoke "../configure" configure-flags))) - (add-after 'configure 'remove-sunrpc - (lambda _ - (invoke "make" (string-append (getcwd) "/sysd-sorted" ) - (string-append "SHELL=" (getenv "CONFIG_SHELL"))) - (substitute* "sysd-sorted" - ((" sunrpc") " ") - ((" nis") " ")) - ;; 'rpcgen' needs native libc headers to be built. - (substitute* "../Makefile" - (("^SHELL := /bin/sh") (string-append "SHELL := " (getenv "CONFIG_SHELL")))) - (substitute* "../Makeconfig" - (("^SHELL := /bin/sh") (string-append "SHELL := " (getenv "CONFIG_SHELL")))) - (substitute* "../elf/Makefile" - (("^SHELL := /bin/sh") (string-append "SHELL := " (getenv "CONFIG_SHELL"))))))))))))) + ;; avoid -fstack-protector + (setenv "libc_cv_ssp" "false") + (substitute* "configure" + (("/bin/pwd") (string-append coreutils "/bin/pwd"))) + (setenv "C_INCLUDE_PATH" (string-append libc "/include" + headers "/include")) + (setenv "LIBRARY_PATH" (string-append libc "/lib")) + #t))) + (replace 'install + (lambda* (#:key outputs make-flags #:allow-other-keys) + (let ((kernel-headers (assoc-ref %build-inputs "kernel-headers")) + (out (assoc-ref outputs "out"))) + (apply invoke "make" make-flags) + (copy-recursively kernel-headers out) + #t))) + (replace 'configure + (lambda* (#:key configure-flags #:allow-other-keys) + (format (current-error-port) "running ../configure ~a\n" (string-join configure-flags)) + (mkdir-p "build") + (chdir "build") + (apply invoke "../configure" configure-flags))) + (add-after 'configure 'remove-sunrpc + (lambda _ + (invoke "make" (string-append (getcwd) "/sysd-sorted" ) + (string-append "SHELL=" (getenv "CONFIG_SHELL"))) + (substitute* "sysd-sorted" + ((" sunrpc") " ") + ((" nis") " ")) + ;; 'rpcgen' needs native libc headers to be built. + (substitute* "../Makefile" + (("^SHELL := /bin/sh") (string-append "SHELL := " (getenv "CONFIG_SHELL")))) + (substitute* "../Makeconfig" + (("^SHELL := /bin/sh") (string-append "SHELL := " (getenv "CONFIG_SHELL")))) + (substitute* "../elf/Makefile" + (("^SHELL := /bin/sh") (string-append "SHELL := " (getenv "CONFIG_SHELL")))))))))))) (define glibc-mesboot - (package-with-bootstrap-guile - (package - (inherit glibc-headers-mesboot) - (name "glibc-mesboot") - (native-inputs `(("binutils" ,binutils-mesboot) - ("libc" ,glibc-mesboot0) - ("headers" ,glibc-headers-mesboot) - ("gcc" ,gcc-mesboot1) + (package + (inherit glibc-headers-mesboot) + (name "glibc-mesboot") + (native-inputs `(("binutils" ,binutils-mesboot) + ("libc" ,glibc-mesboot0) + ("headers" ,glibc-headers-mesboot) + ("gcc" ,gcc-mesboot1) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("kernel-headers" ,%bootstrap-linux-libre-headers) - ("make" ,make-mesboot))) + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("diffutils" ,diffutils-mesboot) + ("kernel-headers" ,%bootstrap-linux-libre-headers) + ("make" ,make-mesboot))) - (arguments - `(#:validate-runpath? #f ; fails when using --enable-shared - ,@(substitute-keyword-arguments (package-arguments glibc-headers-mesboot) - ((#:make-flags make-flags) - `(let ((bash (assoc-ref %build-inputs "bash"))) - (list (string-append "SHELL=" bash "/bin/sh")))) - ((#:phases phases) - `(modify-phases ,phases - (replace 'install - (lambda* (#:key outputs make-flags #:allow-other-keys) - (let* ((kernel-headers (assoc-ref %build-inputs "kernel-headers")) - (out (assoc-ref outputs "out")) - (install-flags (cons "install" make-flags))) - (apply invoke "make" install-flags) - (copy-recursively kernel-headers out) - #t)))))))) - (native-search-paths ;; FIXME: move to glibc-mesboot0 - ;; Use the language-specific variables rather than 'CPATH' because they - ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. - ;; The intent is to allow headers that are in the search path to be - ;; treated as "system headers" (headers exempt from warnings) just like - ;; the typical /usr/include headers on an FHS system. - (list (search-path-specification - (variable "C_INCLUDE_PATH") - (files '("include"))) - (search-path-specification - (variable "CPLUS_INCLUDE_PATH") - (files '("include"))) - (search-path-specification - (variable "LIBRARY_PATH") - (files '("lib")))))))) + (arguments + `(#:validate-runpath? #f ; fails when using --enable-shared + ,@(substitute-keyword-arguments (package-arguments glibc-headers-mesboot) + ((#:make-flags make-flags) + `(let ((bash (assoc-ref %build-inputs "bash"))) + (list (string-append "SHELL=" bash "/bin/sh")))) + ((#:phases phases) + `(modify-phases ,phases + (replace 'install + (lambda* (#:key outputs make-flags #:allow-other-keys) + (let* ((kernel-headers (assoc-ref %build-inputs "kernel-headers")) + (out (assoc-ref outputs "out")) + (install-flags (cons "install" make-flags))) + (apply invoke "make" install-flags) + (copy-recursively kernel-headers out) + #t)))))))) + (native-search-paths ;; FIXME: move to glibc-mesboot0 + ;; Use the language-specific variables rather than 'CPATH' because they + ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. + ;; The intent is to allow headers that are in the search path to be + ;; treated as "system headers" (headers exempt from warnings) just like + ;; the typical /usr/include headers on an FHS system. + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "CPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib"))))))) (define gcc-mesboot - (package-with-bootstrap-guile - (package - (inherit gcc-mesboot1) - (name "gcc-mesboot") - (version "4.9.4") - (source (package-source gcc-4.9)) - (native-inputs `(("binutils" ,binutils-mesboot) - ("gcc-wrapper" ,gcc-mesboot1-wrapper) - ("gcc" ,gcc-mesboot1) - ("libc" ,glibc-mesboot) + (package + (inherit gcc-mesboot1) + (name "gcc-mesboot") + (version "4.9.4") + (source (bootstrap-origin (package-source gcc-4.9))) + (native-inputs `(("binutils" ,binutils-mesboot) + ("gcc-wrapper" ,gcc-mesboot1-wrapper) + ("gcc" ,gcc-mesboot1) + ("libc" ,glibc-mesboot) - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("kernel-headers" ,%bootstrap-linux-libre-headers) - ("make" ,make-mesboot))) - (arguments - `(#:validate-runpath? #f - ,@(substitute-keyword-arguments (package-arguments gcc-mesboot1) - ((#:configure-flags configure-flags) - `(let ((out (assoc-ref %outputs "out")) - (glibc (assoc-ref %build-inputs "libc"))) - (list (string-append "--prefix=" out) - "--build=i686-unknown-linux-gnu" - "--host=i686-unknown-linux-gnu" + ("bash" ,%bootstrap-coreutils&co) + ("coreutils" ,%bootstrap-coreutils&co) + ("diffutils" ,diffutils-mesboot) + ("kernel-headers" ,%bootstrap-linux-libre-headers) + ("make" ,make-mesboot))) + (arguments + `(#:validate-runpath? #f + ,@(substitute-keyword-arguments (package-arguments gcc-mesboot1) + ((#:configure-flags configure-flags) + `(let ((out (assoc-ref %outputs "out")) + (glibc (assoc-ref %build-inputs "libc"))) + (list (string-append "--prefix=" out) + "--build=i686-unknown-linux-gnu" + "--host=i686-unknown-linux-gnu" - "--with-host-libstdcxx=-lsupc++" + "--with-host-libstdcxx=-lsupc++" - (string-append "--with-native-system-header-dir=" glibc "/include") - (string-append "--with-build-sysroot=" glibc "/include") + (string-append "--with-native-system-header-dir=" glibc "/include") + (string-append "--with-build-sysroot=" glibc "/include") - "--disable-bootstrap" - "--disable-decimal-float" - "--disable-libatomic" - "--disable-libcilkrts" - "--disable-libgomp" - "--disable-libitm" - "--disable-libmudflap" - "--disable-libquadmath" - "--disable-libsanitizer" - "--disable-libssp" - "--disable-libvtv" - "--disable-lto" - "--disable-lto-plugin" - "--disable-multilib" - "--disable-plugin" - "--disable-threads" - "--enable-languages=c,c++" + "--disable-bootstrap" + "--disable-decimal-float" + "--disable-libatomic" + "--disable-libcilkrts" + "--disable-libgomp" + "--disable-libitm" + "--disable-libmudflap" + "--disable-libquadmath" + "--disable-libsanitizer" + "--disable-libssp" + "--disable-libvtv" + "--disable-lto" + "--disable-lto-plugin" + "--disable-multilib" + "--disable-plugin" + "--disable-threads" + "--enable-languages=c,c++" - "--enable-static" - "--enable-shared" - "--enable-threads=single" + "--enable-static" + "--enable-shared" + "--enable-threads=single" - ;; No pre-compiled libstdc++ headers, to save space. - "--disable-libstdcxx-pch" + ;; No pre-compiled libstdc++ headers, to save space. + "--disable-libstdcxx-pch" - ;; for libcpp ... - "--disable-build-with-cxx"))) - ((#:phases phases) - `(modify-phases ,phases - (replace 'setenv - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (binutils (assoc-ref %build-inputs "binutils")) - (bash (assoc-ref %build-inputs "bash")) - (gcc (assoc-ref %build-inputs "gcc")) - (glibc (assoc-ref %build-inputs "libc")) - (kernel-headers (assoc-ref %build-inputs "kernel-headers"))) - (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) - (setenv "C_INCLUDE_PATH" (string-append - gcc "/lib/gcc-lib/i686-unknown-linux-gnu/4.7.4/include" - ":" kernel-headers "/include" - ":" glibc "/include" - ":" (getcwd) "/mpfr/src")) - (setenv "CPLUS_INCLUDE_PATH" (string-append - gcc "/lib/gcc-lib/i686-unknown-linux-gnu/4.7.4/include" - ":" kernel-headers "/include" - ":" glibc "/include" - ":" (getcwd) "/mpfr/src")) - (setenv "LIBRARY_PATH" (string-append glibc "/lib" - ":" gcc "/lib")) - (format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH")) - (format (current-error-port) "CPLUS_INCLUDE_PATH=~a\n" (getenv "CPLUS_INCLUDE_PATH")) - (format (current-error-port) "LIBRARY_PATH=~a\n" (getenv "LIBRARY_PATH")) - #t))))))))))) + ;; for libcpp ... + "--disable-build-with-cxx"))) + ((#:phases phases) + `(modify-phases ,phases + (replace 'setenv + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (binutils (assoc-ref %build-inputs "binutils")) + (bash (assoc-ref %build-inputs "bash")) + (gcc (assoc-ref %build-inputs "gcc")) + (glibc (assoc-ref %build-inputs "libc")) + (kernel-headers (assoc-ref %build-inputs "kernel-headers"))) + (setenv "CONFIG_SHELL" (string-append bash "/bin/sh")) + (setenv "C_INCLUDE_PATH" (string-append + gcc "/lib/gcc-lib/i686-unknown-linux-gnu/4.7.4/include" + ":" kernel-headers "/include" + ":" glibc "/include" + ":" (getcwd) "/mpfr/src")) + (setenv "CPLUS_INCLUDE_PATH" (string-append + gcc "/lib/gcc-lib/i686-unknown-linux-gnu/4.7.4/include" + ":" kernel-headers "/include" + ":" glibc "/include" + ":" (getcwd) "/mpfr/src")) + (setenv "LIBRARY_PATH" (string-append glibc "/lib" + ":" gcc "/lib")) + (format (current-error-port) "C_INCLUDE_PATH=~a\n" (getenv "C_INCLUDE_PATH")) + (format (current-error-port) "CPLUS_INCLUDE_PATH=~a\n" (getenv "CPLUS_INCLUDE_PATH")) + (format (current-error-port) "LIBRARY_PATH=~a\n" (getenv "LIBRARY_PATH")) + #t)))))))))) (define gcc-mesboot-wrapper ;; We need this so gcc-mesboot can be used to create shared binaries that ;; have the correct interpreter and runpath to libc. - (package-with-bootstrap-guile - (package - (inherit gcc-mesboot1-wrapper) - (name "gcc-mesboot-wrapper") - (version (package-version gcc-mesboot)) - (source #f) - (inputs '()) - (native-inputs `(("bash" ,%bootstrap-coreutils&co) - ("libc" ,glibc-mesboot) - ("gcc" ,gcc-mesboot)))))) + (package + (inherit gcc-mesboot1-wrapper) + (name "gcc-mesboot-wrapper") + (version (package-version gcc-mesboot)) + (source #f) + (inputs '()) + (native-inputs `(("bash" ,%bootstrap-coreutils&co) + ("libc" ,glibc-mesboot) + ("gcc" ,gcc-mesboot))))) (define m4-mesboot - (package-with-bootstrap-guile - (package - (inherit m4) - (name "m4-mesboot") - (version "1.4") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/m4/m4-" - version ".tar.gz")) - (sha256 - (base32 - "1f9bxj176kf3pvs350w2dfs8jgwhminywri5pyn01b11yc4yhsjw")))) - (supported-systems '("i686-linux" "x86_64-linux")) - (native-inputs `(("mes" ,mes-boot) - ("tcc" ,tcc-boot))) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (setenv "CONFIG_SHELL" (string-append - (assoc-ref %build-inputs "bash") - "/bin/sh")) - (setenv "CC" "tcc -static") - (setenv "CPP" "tcc -E") - (invoke "./configure" (string-append "--prefix=" out))))))))))) + (package + (inherit m4) + (name "m4-mesboot") + (version "1.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/m4/m4-" + version ".tar.gz")) + (sha256 + (base32 + "1f9bxj176kf3pvs350w2dfs8jgwhminywri5pyn01b11yc4yhsjw")))) + (supported-systems '("i686-linux" "x86_64-linux")) + (native-inputs `(("mes" ,mes-boot) + ("tcc" ,tcc-boot))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "CONFIG_SHELL" (string-append + (assoc-ref %build-inputs "bash") + "/bin/sh")) + (setenv "CC" "tcc -static") + (setenv "CPP" "tcc -E") + (invoke "./configure" (string-append "--prefix=" out)))))))))) (define (%bootstrap-inputs+toolchain) ;; The traditional bootstrap-inputs. For the i686-linux Reduced Binary Seed @@ -1409,27 +1401,28 @@ (define (%bootstrap-inputs+toolchain) (%bootstrap-inputs)))) (define gnu-make-boot0 - (package-with-bootstrap-guile - (package (inherit gnu-make) - (name "make-boot0") - (arguments - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - #:tests? #f ; cannot run "make check" - ,@(substitute-keyword-arguments (package-arguments gnu-make) - ((#:phases phases) - `(modify-phases ,phases - (replace 'build - (lambda _ - (invoke "./build.sh"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (install-file "make" bin) - #t)))))))) - (native-inputs '()) ; no need for 'pkg-config' - (inputs (%bootstrap-inputs+toolchain))))) + (package + (inherit gnu-make) + (source (bootstrap-origin (package-source gnu-make))) + (name "make-boot0") + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + #:tests? #f ; cannot run "make check" + ,@(substitute-keyword-arguments (package-arguments gnu-make) + ((#:phases phases) + `(modify-phases ,phases + (replace 'build + (lambda _ + (invoke "./build.sh"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "make" bin) + #t)))))))) + (native-inputs '()) ; no need for 'pkg-config' + (inputs (%bootstrap-inputs+toolchain)))) (define diffutils-boot0 (package-with-bootstrap-guile From 99b73d0f0ce9fdb397fdf211839d73f98e3ddec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 12 Oct 2019 11:35:43 +0200 Subject: [PATCH 25/97] gnu: commencement: Reduce the graph of package objects. The graph returned by: guix graph -e '(@@ (gnu packages commencement) guile-final)' now contains 94 nodes (664 edges) instead of 394 (2674 edges). Likewise, this command: GUIX_PROFILING=add-data-to-store-cache guix build coreutils -nd shows that the number of lookups to the 'add-data-to-store' caches goes from 8935 to 5303. Overall, "guix build libreoffice -nd" goes from 3.17s to 2.60s (-18%). * gnu/packages/commencement.scm (diffutils-boot0): Remove call to 'package-with-bootstrap-guile' and 'package-with-explicit-inputs', and adjust accordingly. (findutils-boot0, file-boot0, binutils-boot0, libstdc++-boot0) (gcc-boot0, perl-boot0, m4-boot0, bison-boot0, flex-boot0) (linux-libre-headers-boot0, texinfo-boot0, python-boot0) (ld-wrapper-boot0, glibc-final-with-bootstrap-bash) (static-bash-for-glibc, gettext-boot0, glibc-final, binutils-final) (libstdc++, zlib-final, bash-final): Likewise. (expat-sans-tests)[inputs]: New field. [arguments]: Add #:implicit-inputs? and #:guile. (m4-boot0*): New variable. --- gnu/packages/commencement.scm | 974 +++++++++++++++++----------------- 1 file changed, 496 insertions(+), 478 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index f5f610c67c..5bd139f30d 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1425,43 +1425,46 @@ (define gnu-make-boot0 (inputs (%bootstrap-inputs+toolchain)))) (define diffutils-boot0 - (package-with-bootstrap-guile - (let ((p (package-with-explicit-inputs diffutils - (lambda _ - `(("make" ,gnu-make-boot0) - ,@(%bootstrap-inputs+toolchain))) - #:guile %bootstrap-guile))) - (package (inherit p) - (name "diffutils-boot0") - (native-inputs `()) - (arguments `(#:tests? #f ; the test suite needs diffutils - ,@(package-arguments p))))))) + (package + (inherit diffutils) + (name "diffutils-boot0") + (native-inputs `()) + (inputs + `(("make" ,gnu-make-boot0) + ,@(%bootstrap-inputs+toolchain))) + (arguments + `(#:tests? #f ; the test suite needs diffutils + #:guile ,%bootstrap-guile + #:implicit-inputs? #f + ,@(package-arguments diffutils))))) (define findutils-boot0 - (package-with-bootstrap-guile - (package-with-explicit-inputs (package - (inherit findutils) - (name "findutils-boot0")) - (lambda _ - `(("make" ,gnu-make-boot0) - ("diffutils" ,diffutils-boot0) ; for tests - ,@(%bootstrap-inputs+toolchain))) - (current-source-location) - #:guile %bootstrap-guile))) + (package + (inherit findutils) + (name "findutils-boot0") + (source (bootstrap-origin (package-source findutils))) + (inputs + `(("make" ,gnu-make-boot0) + ("diffutils" ,diffutils-boot0) ; for tests + ,@(%bootstrap-inputs+toolchain))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + ,@(package-arguments findutils))))) (define file-boot0 - (package-with-bootstrap-guile - (package-with-explicit-inputs (package - (inherit file) - (name "file-boot0") - (arguments - '(#:strip-binaries? #f - #:validate-runpath? #f))) - (lambda _ - `(("make" ,gnu-make-boot0) - ,@(%bootstrap-inputs+toolchain))) - (current-source-location) - #:guile %bootstrap-guile))) + (package + (inherit file) + (source (bootstrap-origin (package-source file))) + (name "file-boot0") + (inputs + `(("make" ,gnu-make-boot0) + ,@(%bootstrap-inputs+toolchain))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:strip-binaries? #f + #:validate-runpath? #f)))) (define (%boot0-inputs) `(("make" ,gnu-make-boot0) @@ -1482,47 +1485,49 @@ (define* (boot-triplet #:optional (system (%current-system))) ;; reference to the target libc. (define binutils-boot0 - (package-with-bootstrap-guile - (package (inherit binutils) - (name "binutils-cross-boot0") - (arguments - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f + (package + (inherit binutils) + (source (bootstrap-origin (package-source binutils))) + (name "binutils-cross-boot0") + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f - #:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 ftw)) ; for 'scandir' - #:phases (modify-phases %standard-phases - (add-after 'install 'add-symlinks - (lambda* (#:key outputs #:allow-other-keys) - ;; The cross-gcc invokes 'as', 'ld', etc, without the - ;; triplet prefix, so add symlinks. - (let ((out (assoc-ref outputs "out")) - (triplet-prefix (string-append ,(boot-triplet) "-"))) - (define (has-triplet-prefix? name) - (string-prefix? triplet-prefix name)) - (define (remove-triplet-prefix name) - (substring name (string-length triplet-prefix))) - (with-directory-excursion (string-append out "/bin") - (for-each (lambda (name) - (symlink name (remove-triplet-prefix name))) - (scandir "." has-triplet-prefix?))) - #t)))) + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw)) ; for 'scandir' + #:phases (modify-phases %standard-phases + (add-after 'install 'add-symlinks + (lambda* (#:key outputs #:allow-other-keys) + ;; The cross-gcc invokes 'as', 'ld', etc, without the + ;; triplet prefix, so add symlinks. + (let ((out (assoc-ref outputs "out")) + (triplet-prefix (string-append ,(boot-triplet) "-"))) + (define (has-triplet-prefix? name) + (string-prefix? triplet-prefix name)) + (define (remove-triplet-prefix name) + (substring name (string-length triplet-prefix))) + (with-directory-excursion (string-append out "/bin") + (for-each (lambda (name) + (symlink name (remove-triplet-prefix name))) + (scandir "." has-triplet-prefix?))) + #t)))) - ,@(substitute-keyword-arguments (package-arguments binutils) - ((#:configure-flags cf) - `(cons ,(string-append "--target=" (boot-triplet)) - ,cf))))) - (inputs (%boot0-inputs))))) + ,@(substitute-keyword-arguments (package-arguments binutils) + ((#:configure-flags cf) + `(cons ,(string-append "--target=" (boot-triplet)) + ,cf))))) + (inputs (%boot0-inputs)))) (define libstdc++-boot0 ;; GCC's libcc1 is always built as a shared library (the top-level ;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer ;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on ;; C++14 features missing in some of our bootstrap compilers. - (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-4.9)))) + (let ((lib (make-libstdc++ gcc-4.9))) (package (inherit lib) + (source (bootstrap-origin (package-source lib))) (name "libstdc++-boot0") (arguments `(#:guile ,%bootstrap-guile @@ -1548,86 +1553,87 @@ (define libstdc++-boot0 (native-inputs '())))) (define gcc-boot0 - (package-with-bootstrap-guile - (package (inherit gcc) - (name "gcc-cross-boot0") - (arguments - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - #:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 regex) - (srfi srfi-1) - (srfi srfi-26)) - ,@(substitute-keyword-arguments (package-arguments gcc) - ((#:configure-flags flags) - `(append (list ,(string-append "--target=" (boot-triplet)) + (package + (inherit gcc) + (name "gcc-cross-boot0") + (source (bootstrap-origin (package-source gcc))) + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 regex) + (srfi srfi-1) + (srfi srfi-26)) + ,@(substitute-keyword-arguments (package-arguments gcc) + ((#:configure-flags flags) + `(append (list ,(string-append "--target=" (boot-triplet)) - ;; No libc yet. - "--without-headers" + ;; No libc yet. + "--without-headers" - ;; Disable features not needed at this stage. - "--disable-shared" - "--enable-languages=c,c++" + ;; Disable features not needed at this stage. + "--disable-shared" + "--enable-languages=c,c++" - ;; libstdc++ cannot be built at this stage - ;; ("Link tests are not allowed after - ;; GCC_NO_EXECUTABLES."). - "--disable-libstdc++-v3" + ;; libstdc++ cannot be built at this stage + ;; ("Link tests are not allowed after + ;; GCC_NO_EXECUTABLES."). + "--disable-libstdc++-v3" - "--disable-threads" - "--disable-libmudflap" - "--disable-libatomic" - "--disable-libsanitizer" - "--disable-libitm" - "--disable-libgomp" - "--disable-libmpx" - "--disable-libcilkrts" - "--disable-libvtv" - "--disable-libssp" - "--disable-libquadmath" - "--disable-decimal-float") - (remove (cut string-match - "--(with-system-zlib|enable-languages.*)" <>) - ,flags))) - ((#:make-flags flags) - `(let* ((libc (assoc-ref %build-inputs "libc")) - (libc-native (or (assoc-ref %build-inputs "libc-native") - libc))) - `(,(string-append "LDFLAGS=" - "-Wl,-rpath=" libc-native "/lib " - "-Wl,-dynamic-linker " - "-Wl," libc-native ,(glibc-dynamic-linker - (match (%current-system) - ("x86_64-linux" "i686-linux") - (_ (%current-system)))))))) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'unpack-gmp&co - (lambda* (#:key inputs #:allow-other-keys) - (let ((gmp (assoc-ref %build-inputs "gmp-source")) - (mpfr (assoc-ref %build-inputs "mpfr-source")) - (mpc (assoc-ref %build-inputs "mpc-source"))) + "--disable-threads" + "--disable-libmudflap" + "--disable-libatomic" + "--disable-libsanitizer" + "--disable-libitm" + "--disable-libgomp" + "--disable-libmpx" + "--disable-libcilkrts" + "--disable-libvtv" + "--disable-libssp" + "--disable-libquadmath" + "--disable-decimal-float") + (remove (cut string-match + "--(with-system-zlib|enable-languages.*)" <>) + ,flags))) + ((#:make-flags flags) + `(let* ((libc (assoc-ref %build-inputs "libc")) + (libc-native (or (assoc-ref %build-inputs "libc-native") + libc))) + `(,(string-append "LDFLAGS=" + "-Wl,-rpath=" libc-native "/lib " + "-Wl,-dynamic-linker " + "-Wl," libc-native ,(glibc-dynamic-linker + (match (%current-system) + ("x86_64-linux" "i686-linux") + (_ (%current-system)))))))) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'unpack-gmp&co + (lambda* (#:key inputs #:allow-other-keys) + (let ((gmp (assoc-ref %build-inputs "gmp-source")) + (mpfr (assoc-ref %build-inputs "mpfr-source")) + (mpc (assoc-ref %build-inputs "mpc-source"))) - ;; To reduce the set of pre-built bootstrap inputs, build - ;; GMP & co. from GCC. - (for-each (lambda (source) - (invoke "tar" "xvf" source)) - (list gmp mpfr mpc)) + ;; To reduce the set of pre-built bootstrap inputs, build + ;; GMP & co. from GCC. + (for-each (lambda (source) + (invoke "tar" "xvf" source)) + (list gmp mpfr mpc)) - ;; Create symlinks like `gmp' -> `gmp-x.y.z'. - ,@(map (lambda (lib) - ;; Drop trailing letters, as gmp-6.0.0a unpacks - ;; into gmp-6.0.0. - `(symlink ,(string-trim-right - (package-full-name lib "-") - char-set:letter) - ,(package-name lib))) - (list gmp-6.0 mpfr mpc)) - #t))) - ,(match (%current-system) - ((or "i686-linux" "x86_64-linux") - '(add-before 'configure 'fix-libcc1 + ;; Create symlinks like `gmp' -> `gmp-x.y.z'. + ,@(map (lambda (lib) + ;; Drop trailing letters, as gmp-6.0.0a unpacks + ;; into gmp-6.0.0. + `(symlink ,(string-trim-right + (package-full-name lib "-") + char-set:letter) + ,(package-name lib))) + (list gmp-6.0 mpfr mpc)) + #t))) + ,(match (%current-system) + ((or "i686-linux" "x86_64-linux") + '(add-before 'configure 'fix-libcc1 (lambda* (#:key inputs #:allow-other-keys) ;; libcc1.so NEEDs libgcc_s.so, so provide one here ;; to placate the 'validate-runpath' phase. @@ -1639,127 +1645,137 @@ (define gcc-boot0 (substitute* "libcc1/configure" (("g\\+\\+ -v") "true")) #t))) - (_ '(add-before 'configure 'return-true - (lambda _ #t)))) - (add-after 'install 'symlink-libgcc_eh - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "lib"))) - ;; Glibc wants to link against libgcc_eh, so provide - ;; it. - (with-directory-excursion - (string-append out "/lib/gcc/" - ,(boot-triplet) - "/" ,(package-version gcc)) - (symlink "libgcc.a" "libgcc_eh.a")) - #t)))))))) + (_ '(add-before 'configure 'return-true + (lambda _ #t)))) + (add-after 'install 'symlink-libgcc_eh + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "lib"))) + ;; Glibc wants to link against libgcc_eh, so provide + ;; it. + (with-directory-excursion + (string-append out "/lib/gcc/" + ,(boot-triplet) + "/" ,(package-version gcc)) + (symlink "libgcc.a" "libgcc_eh.a")) + #t)))))))) - (inputs `(("gmp-source" ,(package-source gmp-6.0)) - ("mpfr-source" ,(package-source mpfr)) - ("mpc-source" ,(package-source mpc)) - ("binutils-cross" ,binutils-boot0) + (inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp-6.0))) + ("mpfr-source" ,(bootstrap-origin (package-source mpfr))) + ("mpc-source" ,(bootstrap-origin (package-source mpc))) + ("binutils-cross" ,binutils-boot0) - ;; The libstdc++ that libcc1 links against. - ("libstdc++" ,libstdc++-boot0) + ;; The libstdc++ that libcc1 links against. + ("libstdc++" ,libstdc++-boot0) - ;; Call it differently so that the builder can check whether - ;; the "libc" input is #f. - ("libc-native" ,@(assoc-ref (%boot0-inputs) "libc")) - ,@(alist-delete "libc" (%boot0-inputs)))) + ;; Call it differently so that the builder can check whether + ;; the "libc" input is #f. + ("libc-native" ,@(assoc-ref (%boot0-inputs) "libc")) + ,@(alist-delete "libc" (%boot0-inputs)))) - ;; No need for the native-inputs to build the documentation at this stage. - (native-inputs `())))) + ;; No need for the native-inputs to build the documentation at this stage. + (native-inputs `()))) (define perl-boot0 - (let ((perl (package - (inherit perl) - (name "perl-boot0") - (arguments - ;; At the very least, this must not depend on GCC & co. - (let ((args `(#:validate-runpath? #f - #:disallowed-references - ,(list %bootstrap-binutils)))) - `(,@args - ,@(substitute-keyword-arguments (package-arguments perl) - ((#:phases phases) - `(modify-phases ,phases - ;; Pthread support is missing in the bootstrap compiler - ;; (broken spec file), so disable it. - (add-before 'configure 'disable-pthreads - (lambda _ - (substitute* "Configure" - (("^libswanted=(.*)pthread" _ before) - (string-append "libswanted=" before))) - #t)))) - ;; Do not configure with '-Dusethreads' since pthread - ;; support is missing. - ((#:configure-flags configure-flags) - `(delete "-Dusethreads" ,configure-flags))))))))) - (package-with-bootstrap-guile - (package-with-explicit-inputs perl - %boot0-inputs - (current-source-location) - #:guile %bootstrap-guile)))) + (package + (inherit perl) + (name "perl-boot0") + (source (bootstrap-origin (package-source perl))) + (inputs (%boot0-inputs)) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:validate-runpath? #f + + ;; At the very least, this must not depend on GCC & co. + #:disallowed-references ,(list %bootstrap-binutils) + + ,@(substitute-keyword-arguments (package-arguments perl) + ((#:phases phases) + `(modify-phases ,phases + ;; Pthread support is missing in the bootstrap compiler + ;; (broken spec file), so disable it. + (add-before 'configure 'disable-pthreads + (lambda _ + (substitute* "Configure" + (("^libswanted=(.*)pthread" _ before) + (string-append "libswanted=" before))) + #t)))) + ;; Do not configure with '-Dusethreads' since pthread + ;; support is missing. + ((#:configure-flags configure-flags) + `(delete "-Dusethreads" ,configure-flags))))))) (define m4-boot0 - (package-with-bootstrap-guile - (package - (inherit m4) - (name "m4-boot0") - (inputs (%boot0-inputs)) - (arguments - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - ,@(package-arguments m4)))))) + (package + (inherit m4) + (name "m4-boot0") + (source (bootstrap-origin (package-source m4))) + (inputs (%boot0-inputs)) + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + ,@(package-arguments m4))))) + +(define m4-boot0* + (package + ;; TODO: On the next rebuild cycle, use M4-BOOT0 as is. + (inherit m4-boot0) + (name "m4"))) (define bison-boot0 ;; This Bison is needed to build MiG so we need it early in the process. ;; Recent versions of Linux-Libre headers also depend on this. - (let* ((bison (package (inherit bison) - (propagated-inputs `(("m4" ,m4))) - (inputs '()) ;remove Flex... - (arguments - `(#:tests? #f ;... and thus disable tests + (package + (inherit bison) + ;; TODO: On the next build cycle, do: + ;;(name "bison-boot0") + (propagated-inputs `(("m4" ,m4-boot0*))) + (native-inputs `(("perl" ,perl-boot0))) + (inputs (%boot0-inputs)) ;remove Flex... + (arguments + `(#:tests? #f ;... and thus disable tests + #:implicit-inputs? #f + #:guile ,%bootstrap-guile - ;; XXX: These flags should be unconditional, but for now - ;; we just add them on x86 to avoid a full rebuild. - ;; TODO: On the next core-updates, use - ;; 'substitute-keyword-arguments' to inherit them from - ;; BISON. - ,@(if (member (%current-system) - '("x86_64-linux" "i686-linux")) - '(#:parallel-build? #f - #:parallel-tests? #f) - '()) + ;; XXX: These flags should be unconditional, but for now + ;; we just add them on x86 to avoid a full rebuild. + ;; TODO: On the next core-updates, use + ;; 'substitute-keyword-arguments' to inherit them from + ;; BISON. + ,@(if (member (%current-system) + '("x86_64-linux" "i686-linux")) + '(#:parallel-build? #f + #:parallel-tests? #f) + '()) - ;; Zero timestamps in liby.a; this must be done - ;; explicitly here because the bootstrap Binutils don't - ;; do that (default is "cru".) - #:make-flags `("ARFLAGS=crD" - ,,(match (%current-system) - ;; ranlib: '-D': No such file - ((or "i686-linux" "x86_64-linux") - "RANLIB=ranlib") - (_ - "RANLIB=ranlib -D")) - "V=1")))))) - (package - (inherit (package-with-bootstrap-guile - (package-with-explicit-inputs bison %boot0-inputs - (current-source-location) - #:guile %bootstrap-guile))) - (native-inputs `(("perl" ,perl-boot0)))))) + ;; Zero timestamps in liby.a; this must be done + ;; explicitly here because the bootstrap Binutils don't + ;; do that (default is "cru".) + #:make-flags `("ARFLAGS=crD" + ,,(match (%current-system) + ;; ranlib: '-D': No such file + ((or "i686-linux" "x86_64-linux") + "RANLIB=ranlib") + (_ + "RANLIB=ranlib -D")) + "V=1"))))) (define flex-boot0 ;; This Flex is needed to build MiG as well as Linux-Libre headers. - (let* ((flex (package (inherit flex) - (native-inputs `(("bison" ,bison-boot0))) - (propagated-inputs `(("m4" ,m4))) - (inputs '()) - (arguments '(#:tests? #f))))) - (package-with-bootstrap-guile - (package-with-explicit-inputs flex %boot0-inputs - (current-source-location) - #:guile %bootstrap-guile)))) + (package + (inherit flex) + (native-inputs `(("bison" ,bison-boot0))) + (propagated-inputs + ;; XXX: Here we use an 'm4-boot0' package that's not eq? so that it + ;; appears twice in '%build-inputs', like when we were using + ;; 'package-with-explicit-inputs'. + ;; TODO: Remove this hack on the next rebuild cycle. + `(("m4" ,(package (inherit m4-boot0*))))) + (inputs (%boot0-inputs)) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:tests? #f)))) (define linux-libre-headers-boot0 (mlambda () @@ -1768,18 +1784,19 @@ (define linux-libre-headers-boot0 ;; between (gnu packages linux) and this module. Additionally, memoize ;; the result to play well with further memoization and code that relies ;; on pointer identity; see . - (package-with-bootstrap-guile - (package (inherit linux-libre-headers) - (arguments `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - ,@(package-arguments linux-libre-headers))) - (native-inputs - `(("perl" ,perl-boot0) + (package + (inherit linux-libre-headers) + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + ,@(package-arguments linux-libre-headers))) + (native-inputs + `(("perl" ,perl-boot0) - ;; Flex and Bison are required since version 4.16. - ("flex" ,flex-boot0) - ("bison" ,bison-boot0) - ,@(%boot0-inputs))))))) + ;; Flex and Bison are required since version 4.16. + ("flex" ,flex-boot0) + ("bison" ,bison-boot0) + ,@(%boot0-inputs)))))) (define gnumach-headers-boot0 (package-with-bootstrap-guile @@ -1844,81 +1861,86 @@ (define texinfo-boot0 ;; We build without ncurses because it fails to build at this stage, and ;; because we don't need the stand-alone Info reader. ;; Also, use (%BOOT0-INPUTS) to avoid building Perl once more. - (let ((texinfo (package (inherit texinfo) - (native-inputs '()) - (inputs `(("perl" ,perl-boot0))) + (package + (inherit texinfo) + (native-inputs '()) + (inputs `(,@(%boot0-inputs) + ("perl" ,perl-boot0))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile - ;; Some of Texinfo 6.1's tests would fail with "Couldn't - ;; set UTF-8 character type in locale" but we don't have a - ;; UTF-8 locale at this stage, so skip them. - (arguments '(#:tests? #f))))) - (package-with-bootstrap-guile - (package-with-explicit-inputs texinfo %boot0-inputs - (current-source-location) - #:guile %bootstrap-guile)))) + ;; Some of Texinfo 6.1's tests would fail with "Couldn't set UTF-8 + ;; character type in locale" but we don't have a UTF-8 locale at this + ;; stage, so skip them. + #:tests? #f)))) (define expat-sans-tests (package (inherit expat) + (inputs (%boot0-inputs)) (arguments ;; XXX: Linking 'runtestscpp' fails with things like: ;; ;; ld: Dwarf Error: found dwarf version '3789', this reader only handles version 2 and 3 information. ;; ;; Skip tests altogether. - (substitute-keyword-arguments (package-arguments expat) - ((#:configure-flags flags ''()) - ;; Since we're not passing the right -Wl,-rpath flags, build the - ;; static library to avoid RUNPATH validation failure. - `(cons "--disable-shared" ,flags)) - ((#:tests? _ #f) #f))))) + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + + ,@(substitute-keyword-arguments (package-arguments expat) + ((#:configure-flags flags ''()) + ;; Since we're not passing the right -Wl,-rpath flags, build the + ;; static library to avoid RUNPATH validation failure. + `(cons "--disable-shared" ,flags)) + ((#:tests? _ #f) #f)))))) (define python-boot0 - (let ((python (package - (inherit python-minimal) - ;; We cannot use Python 3.7 and later here, because they require - ;; pthreads, which is missing on non-x86 platforms at this stage. - ;; Python 3.6 technically supports being built without threading - ;; support, but requires additional patches. - (version "3.5.7") - (source (origin - (inherit (package-source python)) - (uri (string-append "https://www.python.org/ftp/python/" - version "/Python-" version ".tar.xz")) - (patches '()) - (sha256 - (base32 - "1p67pnp2ca5przx2s45r8m55dcn6f5hsm0l4s1zp7mglkf4r4n18")))) - (inputs - `(("expat" ,expat-sans-tests))) ;remove OpenSSL, zlib, etc. - (native-inputs '()) ;and pkg-config - (arguments - (substitute-keyword-arguments (package-arguments - python-minimal) - ;; Disable features that cannot be built at this stage. - ((#:configure-flags _ ''()) - `(list "--without-ensurepip" - "--without-threads")) - ;; Clear #:make-flags, such that changes to the regular - ;; Python package won't interfere with this one. - ((#:make-flags _ ''()) ''()) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'configure 'disable-modules - (lambda _ - (substitute* "setup.py" - ;; Disable ctypes, since it requires libffi. - (("extensions\\.append\\(ctypes\\)") "") - ;; Prevent the 'ossaudiodev' extension from being - ;; built, since it requires Linux headers. - (("'linux', ") "")) - #t)) - (delete 'set-TZDIR))) - ((#:tests? _ #f) #f)))))) - (package-with-bootstrap-guile - (package-with-explicit-inputs python %boot0-inputs - (current-source-location) - #:guile %bootstrap-guile)))) + (package + (inherit python-minimal) + ;; We cannot use Python 3.7 and later here, because they require + ;; pthreads, which is missing on non-x86 platforms at this stage. + ;; Python 3.6 technically supports being built without threading + ;; support, but requires additional patches. + (version "3.5.7") + (source (bootstrap-origin + (origin + (inherit (package-source python)) + (uri (string-append "https://www.python.org/ftp/python/" + version "/Python-" version ".tar.xz")) + (patches '()) + (sha256 + (base32 + "1p67pnp2ca5przx2s45r8m55dcn6f5hsm0l4s1zp7mglkf4r4n18"))))) + (inputs + `(,@(%boot0-inputs) + ("expat" ,expat-sans-tests))) ;remove OpenSSL, zlib, etc. + (native-inputs '()) ;and pkg-config + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + + ,@(substitute-keyword-arguments (package-arguments python-minimal) + ;; Disable features that cannot be built at this stage. + ((#:configure-flags _ ''()) + `(list "--without-ensurepip" + "--without-threads")) + ;; Clear #:make-flags, such that changes to the regular + ;; Python package won't interfere with this one. + ((#:make-flags _ ''()) ''()) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'configure 'disable-modules + (lambda _ + (substitute* "setup.py" + ;; Disable ctypes, since it requires libffi. + (("extensions\\.append\\(ctypes\\)") "") + ;; Prevent the 'ossaudiodev' extension from being + ;; built, since it requires Linux headers. + (("'linux', ") "")) + #t)) + (delete 'set-TZDIR))) + ((#:tests? _ #f) #f)))))) (define (ld-wrapper-boot0) ;; We need this so binaries on Hurd will have libmachuser and libhurduser @@ -1942,65 +1964,66 @@ (define glibc-final-with-bootstrap-bash ;; store path has no dependencies. Actually, the really-final libc is ;; built just below; the only difference is that this one uses the ;; bootstrap Bash. - (package-with-bootstrap-guile - (package (inherit glibc) - (name "glibc-intermediate") - (arguments - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f + (package + (inherit glibc) + (name "glibc-intermediate") + (source (bootstrap-origin (package-source glibc))) + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f - ,@(substitute-keyword-arguments (package-arguments glibc) - ((#:configure-flags flags) - `(append (list ,(string-append "--host=" (boot-triplet)) - ,(string-append "--build=" - (nix-system->gnu-triplet))) - ,flags)) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - ;; Don't clobber CPATH with the bootstrap libc. - (setenv "NATIVE_CPATH" (getenv "CPATH")) - (unsetenv "CPATH") + ,@(substitute-keyword-arguments (package-arguments glibc) + ((#:configure-flags flags) + `(append (list ,(string-append "--host=" (boot-triplet)) + ,(string-append "--build=" + (nix-system->gnu-triplet))) + ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Don't clobber CPATH with the bootstrap libc. + (setenv "NATIVE_CPATH" (getenv "CPATH")) + (unsetenv "CPATH") - ;; Tell 'libpthread' where to find 'libihash' on Hurd systems. - ,@(if (hurd-triplet? (%current-system)) - `((substitute* "libpthread/Makefile" - (("LDLIBS-pthread.so =.*") - (string-append "LDLIBS-pthread.so = " - (assoc-ref %build-inputs "kernel-headers") - "/lib/libihash.a\n")))) - '()) + ;; Tell 'libpthread' where to find 'libihash' on Hurd systems. + ,@(if (hurd-triplet? (%current-system)) + `((substitute* "libpthread/Makefile" + (("LDLIBS-pthread.so =.*") + (string-append "LDLIBS-pthread.so = " + (assoc-ref %build-inputs "kernel-headers") + "/lib/libihash.a\n")))) + '()) - ;; 'rpcgen' needs native libc headers to be built. - (substitute* "sunrpc/Makefile" - (("sunrpc-CPPFLAGS =.*" all) - (string-append "CPATH = $(NATIVE_CPATH)\n" - "export CPATH\n" - all "\n"))) - #t))))))) - (propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0)))) - (native-inputs - `(("bison" ,bison-boot0) - ("texinfo" ,texinfo-boot0) - ("perl" ,perl-boot0) - ("python" ,python-boot0))) - (inputs - `(;; The boot inputs. That includes the bootstrap libc. We don't want - ;; it in $CPATH, hence the 'pre-configure' phase above. - ,@(%boot1-inputs) + ;; 'rpcgen' needs native libc headers to be built. + (substitute* "sunrpc/Makefile" + (("sunrpc-CPPFLAGS =.*" all) + (string-append "CPATH = $(NATIVE_CPATH)\n" + "export CPATH\n" + all "\n"))) + #t))))))) + (propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0)))) + (native-inputs + `(("bison" ,bison-boot0) + ("texinfo" ,texinfo-boot0) + ("perl" ,perl-boot0) + ("python" ,python-boot0))) + (inputs + `( ;; The boot inputs. That includes the bootstrap libc. We don't want + ;; it in $CPATH, hence the 'pre-configure' phase above. + ,@(%boot1-inputs) - ;; A native MiG is needed to build Glibc on Hurd. - ,@(if (hurd-triplet? (%current-system)) - `(("mig" ,mig-boot0)) - '()) + ;; A native MiG is needed to build Glibc on Hurd. + ,@(if (hurd-triplet? (%current-system)) + `(("mig" ,mig-boot0)) + '()) - ;; A native GCC is needed to build `cross-rpcgen'. - ("native-gcc" ,@(assoc-ref (%boot0-inputs) "gcc")) + ;; A native GCC is needed to build `cross-rpcgen'. + ("native-gcc" ,@(assoc-ref (%boot0-inputs) "gcc")) - ;; Here, we use the bootstrap Bash, which is not satisfactory - ;; because we don't want to depend on bootstrap tools. - ("static-bash" ,@(assoc-ref (%boot0-inputs) "bash"))))))) + ;; Here, we use the bootstrap Bash, which is not satisfactory + ;; because we don't want to depend on bootstrap tools. + ("static-bash" ,@(assoc-ref (%boot0-inputs) "bash")))))) (define (cross-gcc-wrapper gcc binutils glibc bash) "Return a wrapper for the pseudo-cross toolchain GCC/BINUTILS/GLIBC @@ -2064,99 +2087,92 @@ (define (gcc-boot0-intermediate-wrapped) (define static-bash-for-glibc ;; A statically-linked Bash to be used by GLIBC-FINAL in system(3) & co. - (let ((bash (package - (inherit static-bash) - (arguments - (substitute-keyword-arguments - (package-arguments static-bash) - ((#:guile _ #f) - '%bootstrap-guile) - ((#:configure-flags flags '()) - ;; Add a '-L' flag so that the pseudo-cross-ld of - ;; BINUTILS-BOOT0 can find libc.a. - `(append ,flags - (list (string-append "LDFLAGS=-static -L" - (assoc-ref %build-inputs - "libc:static") - "/lib"))))))))) - (package-with-bootstrap-guile - (package-with-explicit-inputs - bash - (lambda _ - `(("gcc" ,(gcc-boot0-intermediate-wrapped)) - ("libc" ,glibc-final-with-bootstrap-bash) - ("libc:static" ,glibc-final-with-bootstrap-bash "static") - ,@(fold alist-delete (%boot1-inputs) - '("gcc" "libc")))) - (current-source-location) - #:guile %bootstrap-guile)))) + (package + (inherit static-bash) + (source (bootstrap-origin (package-source static-bash))) + (inputs `(("gcc" ,(gcc-boot0-intermediate-wrapped)) + ("libc" ,glibc-final-with-bootstrap-bash) + ("libc:static" ,glibc-final-with-bootstrap-bash "static") + ,@(fold alist-delete (%boot1-inputs) + '("gcc" "libc")))) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + + ,@(substitute-keyword-arguments (package-arguments static-bash) + ((#:configure-flags flags '()) + ;; Add a '-L' flag so that the pseudo-cross-ld of + ;; BINUTILS-BOOT0 can find libc.a. + `(append ,flags + (list (string-append "LDFLAGS=-static -L" + (assoc-ref %build-inputs + "libc:static") + "/lib"))))))))) (define gettext-boot0 ;; A minimal gettext used during bootstrap. - (let ((gettext-minimal - (package (inherit gettext-minimal) - (name "gettext-boot0") - ;; Newer versions of GNU gettext depends on libxml2 and ncurses. To - ;; simplify the dependency chain, we stick to this version here. - (version "0.19.8.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gettext/gettext-" - version ".tar.gz")) - (sha256 - (base32 - "0hsw28f9q9xaggjlsdp2qmbp2rbd1mp0njzan2ld9kiqwkq2m57z")))) - (inputs '()) ;zero dependencies - (arguments - `(#:tests? #f - #:phases (modify-phases %standard-phases - ;; Build only the tools. - (add-after 'unpack 'chdir - (lambda _ - (chdir "gettext-tools") - #t)) + (package + (inherit gettext-minimal) + (name "gettext-boot0") + ;; Newer versions of GNU gettext depends on libxml2 and ncurses. To + ;; simplify the dependency chain, we stick to this version here. + (version "0.19.8.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gettext/gettext-" + version ".tar.gz")) + (sha256 + (base32 + "0hsw28f9q9xaggjlsdp2qmbp2rbd1mp0njzan2ld9kiqwkq2m57z")))) + (inputs (%boot1-inputs)) ;zero dependencies + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + #:tests? #f + #:phases (modify-phases %standard-phases + ;; Build only the tools. + (add-after 'unpack 'chdir + (lambda _ + (chdir "gettext-tools") + #t)) - ;; Some test programs require pthreads, which we don't have. - (add-before 'configure 'no-test-programs - (lambda _ - (substitute* "tests/Makefile.in" - (("^PROGRAMS =.*$") - "PROGRAMS =\n")) - #t)))))))) - (package-with-bootstrap-guile - (package-with-explicit-inputs gettext-minimal - %boot1-inputs - (current-source-location) - #:guile %bootstrap-guile)))) + ;; Some test programs require pthreads, which we don't have. + (add-before 'configure 'no-test-programs + (lambda _ + (substitute* "tests/Makefile.in" + (("^PROGRAMS =.*$") + "PROGRAMS =\n")) + #t))))))) (define glibc-final ;; The final glibc, which embeds the statically-linked Bash built above. ;; Use 'package/inherit' so we get the 'replacement' of 'glibc', if any. - (let ((glibc (package-with-bootstrap-guile glibc))) - (package/inherit glibc - (name "glibc") - (inputs `(("static-bash" ,static-bash-for-glibc) - ,@(alist-delete - "static-bash" - (package-inputs glibc-final-with-bootstrap-bash)))) + (package/inherit + glibc + (name "glibc") + (source (bootstrap-origin (package-source glibc))) + (inputs `(("static-bash" ,static-bash-for-glibc) + ,@(alist-delete + "static-bash" + (package-inputs glibc-final-with-bootstrap-bash)))) - ;; This time we need 'msgfmt' to install all the libc.mo files. - (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash) - ("gettext" ,gettext-boot0))) + ;; This time we need 'msgfmt' to install all the libc.mo files. + (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash) + ("gettext" ,gettext-boot0))) - (propagated-inputs - (package-propagated-inputs glibc-final-with-bootstrap-bash)) + (propagated-inputs + (package-propagated-inputs glibc-final-with-bootstrap-bash)) - ;; The final libc only refers to itself, but the 'debug' output contains - ;; references to GCC-BOOT0 and to the Linux headers. XXX: Would be great - ;; if 'allowed-references' were per-output. - (arguments - `(#:allowed-references - ,(cons* `(,gcc-boot0 "lib") (kernel-headers-boot0) - static-bash-for-glibc - (package-outputs glibc-final-with-bootstrap-bash)) + ;; The final libc only refers to itself, but the 'debug' output contains + ;; references to GCC-BOOT0 and to the Linux headers. XXX: Would be great + ;; if 'allowed-references' were per-output. + (arguments + `(#:allowed-references + ,(cons* `(,gcc-boot0 "lib") (kernel-headers-boot0) + static-bash-for-glibc + (package-outputs glibc-final-with-bootstrap-bash)) - ,@(package-arguments glibc-final-with-bootstrap-bash)))))) + ,@(package-arguments glibc-final-with-bootstrap-bash))))) (define (gcc-boot0-wrapped) ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the @@ -2172,21 +2188,23 @@ (define (%boot2-inputs) ,@(fold alist-delete (%boot1-inputs) '("libc" "gcc" "linux-libre-headers")))) (define binutils-final - (package-with-bootstrap-guile - (package (inherit binutils) - (arguments - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - #:allowed-references ("out" ,glibc-final) - ,@(package-arguments binutils))) - (inputs (%boot2-inputs))))) + (package + (inherit binutils) + (source (bootstrap-origin (package-source binutils))) + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + #:allowed-references ("out" ,glibc-final) + ,@(package-arguments binutils))) + (inputs (%boot2-inputs)))) (define libstdc++ ;; Intermediate libstdc++ that will allow us to build the final GCC ;; (remember that GCC-BOOT0 cannot build libstdc++.) - (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc)))) + (let ((lib (make-libstdc++ gcc))) (package (inherit lib) + (source (bootstrap-origin (package-source lib))) (arguments `(#:guile ,%bootstrap-guile #:implicit-inputs? #f @@ -2211,15 +2229,14 @@ (define libstdc++ (define zlib-final ;; Zlib used by GCC-FINAL. - (package-with-bootstrap-guile - (package - (inherit zlib) - (arguments - `(#:guile ,%bootstrap-guile - #:implicit-inputs? #f - #:allowed-references ("out" ,glibc-final) - ,@(package-arguments zlib))) - (inputs (%boot2-inputs))))) + (package + (inherit zlib) + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + #:allowed-references ("out" ,glibc-final) + ,@(package-arguments zlib))) + (inputs (%boot2-inputs)))) (define (ld-wrapper-boot3) ;; A linker wrapper that uses the bootstrap Guile. @@ -2328,17 +2345,18 @@ (define bash-final ;; Link with `-static-libgcc' to make sure we don't retain a reference ;; to the bootstrap GCC. Use "bash-minimal" to avoid an extra dependency ;; on Readline and ncurses. - (let ((bash (package - (inherit bash-minimal) - (arguments - `(#:disallowed-references - ,(assoc-ref (%boot3-inputs) "coreutils&co") - ,@(package-arguments bash-minimal)))))) - (package-with-bootstrap-guile - (package-with-explicit-inputs (static-libgcc-package bash) - %boot3-inputs - (current-source-location) - #:guile %bootstrap-guile)))) + (let ((bash (static-libgcc-package bash-minimal))) + (package + (inherit bash) + (source (bootstrap-origin (package-source bash))) + (inputs (%boot3-inputs)) + (arguments + `(#:implicit-inputs? #f + #:guile ,%bootstrap-guile + + #:disallowed-references ,(assoc-ref (%boot3-inputs) "coreutils&co") + + ,@(package-arguments bash)))))) (define (%boot4-inputs) ;; Now use the final Bash. From 81a4ca08f7716c730c75ebb2911cf0f5f57dfd3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 12 Oct 2019 12:22:18 +0200 Subject: [PATCH 26/97] gnu: mescc-tools: Use 'git-fetch'. * gnu/packages/mes.scm (mescc-tools-0.5.2)[source]: Use 'git-fetch'. (mescc-tools)[source]: Likewise. --- gnu/packages/mes.scm | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 1b5bb331f5..3174c0c115 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -159,16 +159,16 @@ (define-public mescc-tools-0.5.2 (version "0.5.2")) (package (name "mescc-tools") - (version (string-append version "-" revision "." (string-take commit 7))) + (version (git-version version revision commit)) (source (origin - (method url-fetch) - (uri (string-append - "https://git.savannah.nongnu.org/cgit/mescc-tools.git/snapshot/" - name "-" commit - ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.nongnu.org/r/mescc-tools.git") + (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 - "1h6j57wyf91i42b26f8msbv6451cw3nm4nmpl1fckp9c7vi8mwkh")))) + "1nc6rnax66vmhqsjg0kgx23pihdcxmww6v325ywf59vsq1jqjvff")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (arguments @@ -191,15 +191,14 @@ (define-public mescc-tools (name "mescc-tools") (version "0.6.1") (source (origin - (method url-fetch) - (uri (string-append - "http://git.savannah.nongnu.org/cgit/mescc-tools.git/snapshot/" - name "-Release_" version - ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.nongnu.org/r/mescc-tools.git") + (commit (string-append "Release_" version)))) + (file-name (string-append "mescc-tools-" version "-checkout")) (sha256 (base32 - "06jpvq6xfjzn2al6b4rdwd3zv3h4cvilc4n9gqcnjr9cr6wjpw2n")))) + "1cgxcdza6ws725x84i31la7jxmlk5a3nsij5shz1zljg0i36kj99")))) (arguments (substitute-keyword-arguments (package-arguments mescc-tools-0.5.2) ((#:make-flags _) From d7e29a2b265a249d053f4763edd00e717ce8388d Mon Sep 17 00:00:00 2001 From: Jesse Gibbons Date: Fri, 11 Oct 2019 13:16:35 -0600 Subject: [PATCH 27/97] gnu: python-scikit-learn: Update to 0.20.4. Fixes . * gnu/packages/machine-learning.scm (python-scikit-learn): Update to 0.20.4. Signed-off-by: Marius Bakke --- gnu/packages/machine-learning.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index b1fd2a451c..3a40d9c093 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -794,7 +794,7 @@ (define-public dlib (define-public python-scikit-learn (package (name "python-scikit-learn") - (version "0.20.3") + (version "0.20.4") (source (origin (method git-fetch) @@ -804,7 +804,7 @@ (define-public python-scikit-learn (file-name (git-file-name name version)) (sha256 (base32 - "08aaby5zphfxy83mggg35bwyka7wk91l2qijh8kk0bl08dikq8dl")))) + "08zbzi8yx5wdlxfx9jap61vg1malc9ajf576w7a0liv6jvvrxlpj")))) (build-system python-build-system) (arguments `(#:phases From 099dbc4fd332d27a5010f17093f1d6b09d26212e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 12 Oct 2019 14:42:36 +0200 Subject: [PATCH 28/97] gnu: Improve memoization of 'package-with-bootstrap-guile'. Before that, the command: GUIX_PROFILING=memoization guix build -e '(@@ (gnu packages commencement) gnu-make-final)' -nd would show that 'package-with-bootstrap-guile' was called 2256 times (hit rate: 89%). Now, it is called 745 times (hit rate: 85%). "guix build libreoffice -nd" goes from 2.60s to 2.40s (-8%). * gnu/packages/commencement.scm (gnu-make-final) (coreutils-final, grep-final, sed-final, %final-inputs): Call 'package-with-bootstrap-guile' before 'package-with-explicit-inputs'. --- gnu/packages/commencement.scm | 55 +++++++++++++++++------------------ 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 5bd139f30d..f234fa0a8a 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -2403,34 +2403,33 @@ (define (%boot5-inputs) (define gnu-make-final ;; The final GNU Make, which uses the final Guile. - (package-with-bootstrap-guile - (package-with-explicit-inputs gnu-make - (lambda _ - `(("guile" ,guile-final) - ,@(%boot5-inputs))) - (current-source-location)))) + (package-with-explicit-inputs (package-with-bootstrap-guile gnu-make) + (lambda _ + `(("guile" ,guile-final) + ,@(%boot5-inputs))) + (current-source-location))) (define coreutils-final ;; The final Coreutils. Treat them specially because some packages, such as ;; Findutils, keep a reference to the Coreutils they were built with. - (package-with-bootstrap-guile - (package-with-explicit-inputs coreutils - %boot5-inputs - (current-source-location) + (package-with-explicit-inputs (package-with-bootstrap-guile coreutils) + %boot5-inputs + (current-source-location) - ;; Use the final Guile, linked against the - ;; final libc with working iconv, so that - ;; 'substitute*' works well when touching - ;; test files in Gettext. - #:guile guile-final))) + ;; Use the final Guile, linked against the + ;; final libc with working iconv, so that + ;; 'substitute*' works well when touching + ;; test files in Gettext. + #:guile guile-final)) (define grep-final ;; The final grep. Gzip holds a reference to it (via zgrep), so it must be ;; built before gzip. - (let ((grep (package-with-bootstrap-guile - (package-with-explicit-inputs grep %boot5-inputs - (current-source-location) - #:guile guile-final)))) + (let ((grep (package-with-explicit-inputs + (package-with-bootstrap-guile grep) + %boot5-inputs + (current-source-location) + #:guile guile-final))) (package/inherit grep (inputs (alist-delete "pcre" (package-inputs grep))) (native-inputs `(("perl" ,perl-boot0)))))) @@ -2443,10 +2442,10 @@ (define (%boot6-inputs) (define sed-final ;; The final sed. - (let ((sed (package-with-bootstrap-guile - (package-with-explicit-inputs sed %boot6-inputs - (current-source-location) - #:guile guile-final)))) + (let ((sed (package-with-explicit-inputs (package-with-bootstrap-guile sed) + %boot6-inputs + (current-source-location) + #:guile guile-final))) (package/inherit sed (native-inputs `(("perl" ,perl-boot0)))))) (define-public %final-inputs @@ -2454,12 +2453,12 @@ (define-public %final-inputs ;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are ;; used for origins that have patches, thereby avoiding circular ;; dependencies. - (let ((finalize (compose package-with-bootstrap-guile - (cut package-with-explicit-inputs <> %boot6-inputs - (current-source-location))))) + (let ((finalize (compose (cut package-with-explicit-inputs <> %boot6-inputs + (current-source-location)) + package-with-bootstrap-guile))) `(,@(map (match-lambda - ((name package) - (list name (finalize package)))) + ((name package) + (list name (finalize package)))) `(("tar" ,tar) ("gzip" ,gzip) ("bzip2" ,bzip2) From dab669e07584409d9c9a9dc2afa1c108aa948097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 12 Oct 2019 15:01:50 +0200 Subject: [PATCH 29/97] gnu: ld-wrapper: Memoize. The command: guix graph -e '(@@ (gnu packages commencement) coreutils-final)' now shows 93 nodes (992 edges) instead of 176 nodes (1241 edges). * gnu/packages/commencement.scm (ld-wrapper-boot0): Use 'mlambda' instead of 'lambda'. (ld-wrapper-boot3): Likewise. --- gnu/packages/commencement.scm | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index f234fa0a8a..d113acaba8 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1942,15 +1942,16 @@ (define python-boot0 (delete 'set-TZDIR))) ((#:tests? _ #f) #f)))))) -(define (ld-wrapper-boot0) - ;; We need this so binaries on Hurd will have libmachuser and libhurduser - ;; in their RUNPATH, otherwise validate-runpath will fail. - (make-ld-wrapper "ld-wrapper-boot0" - #:target boot-triplet - #:binutils binutils-boot0 - #:guile %bootstrap-guile - #:bash (car (assoc-ref (%boot0-inputs) "bash")) - #:guile-for-build %bootstrap-guile)) +(define ld-wrapper-boot0 + (mlambda () + ;; We need this so binaries on Hurd will have libmachuser and libhurduser + ;; in their RUNPATH, otherwise validate-runpath will fail. + (make-ld-wrapper "ld-wrapper-boot0" + #:target boot-triplet + #:binutils binutils-boot0 + #:guile %bootstrap-guile + #:bash (car (assoc-ref (%boot0-inputs) "bash")) + #:guile-for-build %bootstrap-guile))) (define (%boot1-inputs) ;; 2nd stage inputs. @@ -2238,13 +2239,14 @@ (define zlib-final ,@(package-arguments zlib))) (inputs (%boot2-inputs)))) -(define (ld-wrapper-boot3) - ;; A linker wrapper that uses the bootstrap Guile. - (make-ld-wrapper "ld-wrapper-boot3" - #:binutils binutils-final - #:guile %bootstrap-guile - #:bash (car (assoc-ref (%boot2-inputs) "bash")) - #:guile-for-build %bootstrap-guile)) +(define ld-wrapper-boot3 + (mlambda () + ;; A linker wrapper that uses the bootstrap Guile. + (make-ld-wrapper "ld-wrapper-boot3" + #:binutils binutils-final + #:guile %bootstrap-guile + #:bash (car (assoc-ref (%boot2-inputs) "bash")) + #:guile-for-build %bootstrap-guile))) (define gcc-final ;; The final GCC. From e4892ae3678e2ce7c726bd5f0bc12a08b5678639 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sat, 12 Oct 2019 13:16:48 +0100 Subject: [PATCH 30/97] gnu: re2c: Update to 1.2.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/re2c.scm (re2c): Update to 1.2.1. Signed-off-by: Sergei Trofimovich Signed-off-by: Ludovic Courtès --- gnu/packages/re2c.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/re2c.scm b/gnu/packages/re2c.scm index e9668cba26..f81d4f67f7 100644 --- a/gnu/packages/re2c.scm +++ b/gnu/packages/re2c.scm @@ -26,15 +26,15 @@ (define-module (gnu packages re2c) (define-public re2c (package (name "re2c") - (version "1.1.1") + (version "1.2.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/skvadrik/" name "/releases/download/" version "/" - name "-" version ".tar.gz")) + name "-" version ".tar.xz")) (sha256 (base32 - "1ksifjn18v6nra935dpqllmvkqgcdsggfjgmj77282x0gqrrfrc5")))) + "05xq0571mkgr20v827jm63nhsirr8arghg4fszzswrmrnl3dfk0s")))) (build-system gnu-build-system) (home-page "http://re2c.org/") (synopsis "Lexer generator for C/C++") From 748ca12f97bf317fabfd0d8c2d827c1f6349187b Mon Sep 17 00:00:00 2001 From: Reza Alizadeh Majd Date: Fri, 11 Oct 2019 23:23:21 +0330 Subject: [PATCH 31/97] gnu: Add uchardet. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (uchardet): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 8a302ba5bc..4339f14f35 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2018 Stefan Stefanović +;;; Copyright © 2019 Reza Alizadeh Majd ;;; ;;; This file is part of GNU Guix. ;;; @@ -1414,3 +1415,26 @@ (define-public perl-file-mimeinfo their MIME type. @end itemize") (license license:perl-license))) + +(define-public uchardet + (package + (name "uchardet") + (version "0.0.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.freedesktop.org/software/" + name "/releases/" name "-" version ".tar.xz")) + (sha256 + (base32 "0q9c02b6nmw41yfsiqsnphgc3f0yg3fj31wkccp47cmwvy634lc3")))) + (build-system cmake-build-system) + (home-page "https://www.freedesktop.org/wiki/Software/uchardet/") + (synopsis "Encoding detector library") + (description "uchardet is an encoding detector library, which takes a +sequence of bytes in an unknown character encoding without any additional +information, and attempts to determine the encoding of the text. Returned +encoding names are iconv-compatible.") + + ;; This combines code under MPL 1.1, LGPL 2.1+, and GPL 2.0+, so the + ;; combination is GPL 2.0+. + (license license:gpl2+))) From bae08e22dc9eba5a460d3e0270c1b153d3021060 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 12 Oct 2019 15:22:12 +0200 Subject: [PATCH 32/97] gnu: lightning: Update to 2.1.3. * gnu/packages/assembly.scm (lightning): Update to 2.1.3. --- gnu/packages/assembly.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 527555abfc..26a6d23a8a 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -117,14 +117,14 @@ (define-public yasm (define-public lightning (package (name "lightning") - (version "2.1.2") + (version "2.1.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/lightning/lightning-" version ".tar.gz")) (sha256 (base32 - "0sbs2lm8b9in2m8d52zf0x9gpp40x6r7sl6sha92yq3pr78rwa4v")))) + "1jgxbq2cm51dzi3zhz38mmgwdcgs328mfl8iviw8dxn6dn36p1gd")))) (build-system gnu-build-system) (native-inputs `(("zlib" ,zlib))) (synopsis "Library for generating assembly code at runtime") From 09c4e43f81eb765997b8861fc07dcc94bc4644d2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 12 Oct 2019 15:41:52 +0200 Subject: [PATCH 33/97] gnu: amtk: Update to 5.0.1. * gnu/packages/gnome.scm (amtk): Update to 5.0.1. --- gnu/packages/gnome.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index af869760fd..ec8a208f64 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3407,7 +3407,7 @@ (define-public aisleriot (define-public amtk (package (name "amtk") - (version "5.0.0") + (version "5.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3415,13 +3415,13 @@ (define-public amtk name "-" version ".tar.xz")) (sha256 (base32 - "1zriix7bdwcg0868mfc7jy6zbwjwdmjwbh0ah6dbddrhiabrda8j")))) + "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-gtk-doc"))) (native-inputs `(("gobject-introspection" ,gobject-introspection) - ("glib:bin" ,glib "bin") ; for glib-mkenums + ("glib:bin" ,glib "bin") ; for glib-mkenums ("gtk-doc" ,gtk-doc) ("pkg-config" ,pkg-config))) (inputs From bf92ba6b7bfe91c529195a500eb10ff173f4b5ad Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 12 Oct 2019 15:41:58 +0200 Subject: [PATCH 34/97] gnu: amtk: Don't use NAME in source URI. * gnu/packages/gnome.scm (amtk)[source]: Hard-code NAME. --- 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 ec8a208f64..91a781bfba 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3410,9 +3410,9 @@ (define-public amtk (version "5.0.1") (source (origin (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" + (uri (string-append "mirror://gnome/sources/amtk/" (version-major+minor version) "/" - name "-" version ".tar.xz")) + "amtk-" version ".tar.xz")) (sha256 (base32 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d")))) From c6a99354f3b61f8ebf88e04962daede883f1091c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 12 Oct 2019 16:04:30 +0200 Subject: [PATCH 35/97] gnu: mailutils: Update to 3.7. * gnu/packages/mail.scm (mailutils): Update to 3.7. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index f937f50d6d..a994e4d344 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -140,14 +140,14 @@ (define-module (gnu packages mail) (define-public mailutils (package (name "mailutils") - (version "3.6") + (version "3.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mailutils/mailutils-" version ".tar.xz")) (sha256 (base32 - "07phzpwrnkdclx6jvirljk9zcavl8wh02kpx3mfba9msr99kpqj6")))) + "1gwajsl39f1dkzrjld0dm9px8hrj7l7rwzazz00h5rwghk9mhwhq")))) (build-system gnu-build-system) (arguments '(#:phases From 5ce153b1106fe44a9910d08663b4b9cd2a27b2d6 Mon Sep 17 00:00:00 2001 From: wednesday Date: Tue, 30 Apr 2019 22:43:45 +0100 Subject: [PATCH 36/97] gnu: emacs: Add mailutils to inputs. * gnu/packages/emacs.scm (emacs)[inputs]: Add mailutils. Signed-off-by: Tobias Geerinckx-Rice --- gnu/packages/emacs.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 5a3577350d..6c6f0e4567 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2018 Efraim Flashner ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2019 Jesse John Gildersleve ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,12 +50,13 @@ (define-module (gnu packages emacs) #:use-module (gnu packages gd) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) - #:use-module (gnu packages gnome) ; for librsvg + #:use-module (gnu packages gnome) ; for librsvg #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) - #:use-module (gnu packages linux) ; alsa-lib + #:use-module (gnu packages linux) ; alsa-lib + #:use-module (gnu packages mail) ; for mailutils #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages texinfo) @@ -146,6 +148,10 @@ (define-public emacs `(("gnutls" ,gnutls) ("ncurses" ,ncurses) + ;; Avoid Emacs's limited movemail substitute that retrieves POP3 email + ;; only via insecure channels. This is not needed for (modern) IMAP. + ("mailutils" ,mailutils) + ;; TODO: Add the optional dependencies. ("libx11" ,libx11) ("gtk+" ,gtk+) From d72bfe075cc906d228e960c6bb515b7cd863dbd4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 14:46:09 +0200 Subject: [PATCH 37/97] gnu: BOINC: Remove redundant comment. * gnu/packages/distributed.scm (boinc-client)[description]: Don't mention license terms. --- gnu/packages/distributed.scm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/gnu/packages/distributed.scm b/gnu/packages/distributed.scm index 0eaa1d8b83..e78d62d3d5 100644 --- a/gnu/packages/distributed.scm +++ b/gnu/packages/distributed.scm @@ -72,10 +72,7 @@ (define-public boinc-client (description "BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational -resources). It supports virtualized, parallel, and GPU-based applications. - -BOINC is distributed under the LGPL open source license. It can be used for -commercial purposes, and applications need not be open source.") +resources). It supports virtualized, parallel, and GPU-based applications.") (home-page "https://boinc.berkeley.edu/") (license license:gpl3+))) From c21dae9b890d4bff598fe55134fde13a189a2c07 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 14:50:29 +0200 Subject: [PATCH 38/97] gnu: BOINC: Update license. * gnu/packages/distributed.scm (boinc-client)[license]: Add LGPL3+. --- gnu/packages/distributed.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/distributed.scm b/gnu/packages/distributed.scm index e78d62d3d5..46f5cc535f 100644 --- a/gnu/packages/distributed.scm +++ b/gnu/packages/distributed.scm @@ -74,7 +74,8 @@ (define-public boinc-client computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications.") (home-page "https://boinc.berkeley.edu/") - (license license:gpl3+))) + ;; BOINC is distributed as LGPL3+, with some individual modules under GPL3+. + (license (list license:lgpl3+ license:gpl3+)))) (define-public boinc-server (package (inherit boinc-client) From ecfc86a21dc257a2e495f69d9dc9d0fccb059d90 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 14:52:33 +0200 Subject: [PATCH 39/97] gnu: BOINC: Add a source file name. While at it, future-proof the URL as well. * gnu/packages/distributed.scm (boinc-client)[source](file-name): New field. --- gnu/packages/distributed.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/distributed.scm b/gnu/packages/distributed.scm index 46f5cc535f..4e1acc4b67 100644 --- a/gnu/packages/distributed.scm +++ b/gnu/packages/distributed.scm @@ -18,6 +18,7 @@ (define-module (gnu packages distributed) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) @@ -47,8 +48,9 @@ (define-public boinc-client (uri (git-reference (url "https://github.com/boinc/boinc.git") (commit (string-append "client_release/" - "7.16/" - version)))) + (version-major+minor version) + "/" version)))) + (file-name (git-file-name "boinc" version)) (sha256 (base32 "0w2qimcwyjhapk3z7zyq7jkls23hsnmm35iw7m4s4if04fp70dx0")))) From 37e47aa73d70d59ebb3f21963bbe55d34483761f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 14:54:21 +0200 Subject: [PATCH 40/97] gnu: arx-libertatis: Update description. * gnu/packages/games.scm (arx-libertatis)[description]: Remove "open source". --- gnu/packages/games.scm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 1b6849a9aa..2ed505bbc4 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -6828,13 +6828,12 @@ (define-public arx-libertatis ("innoextract" ,innoextract))) (home-page "https://arx-libertatis.org/") (synopsis "Port of Arx Fatalis, a first-person role-playing game") - (description "Arx Libertatis is a cross-platform, open source port of Arx -Fatalis, a 2002 first-person role-playing game / dungeon crawler developed by -Arkane Studios. This port however does not include the game data, so you need -to obtain a copy of the original Arx Fatalis or its demo to play Arx -Libertatis. Arx Fatalis features crafting, melee and ranged combat, as well -as a unique casting system where the player draws runes in real time to effect -the desired spell.") + (description "Arx Libertatis is a cross-platform port of Arx Fatalis, a 2002 +first-person role-playing game / dungeon crawler developed by Arkane Studios. +This port however does not include the game data, so you need to obtain a copy +of the original Arx Fatalis or its demo to play Arx Libertatis. Arx Fatalis +features crafting, melee and ranged combat, as well as a unique casting system +where the player draws runes in real time to effect the desired spell.") (license license:gpl3+))) (define-public edgar From bd2bd80df8b319aeb5af5939fdfe92ff539092e9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 14:55:29 +0200 Subject: [PATCH 41/97] gnu: FANN: Update description. * gnu/packages/machine-learning.scm (fann)[description]: Remove "open source". --- gnu/packages/machine-learning.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 3a40d9c093..33f8c7149a 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -109,9 +109,9 @@ (define-public fann (home-page "http://leenissen.dk/fann/wp/") (synopsis "Fast Artificial Neural Network") (description - "FANN is a free open source neural network library, which implements -multilayer artificial neural networks in C with support for both fully -connected and sparsely connected networks.") + "FANN is a neural network library, which implements multilayer +artificial neural networks in C with support for both fully connected and +sparsely connected networks.") (license license:lgpl2.1)))) (define-public libsvm From 0effc65cc9dcd3471167001a9ef28a6a0ef72e53 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 14:56:30 +0200 Subject: [PATCH 42/97] gnu: gRPC: Update description. * gnu/packages/machine-learning.scm (grpc)[description]: Remove "open source". --- gnu/packages/machine-learning.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 33f8c7149a..254ee59c4a 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1306,12 +1306,12 @@ (define-public grpc ("python" ,python-wrapper))) (home-page "https://grpc.io") (synopsis "High performance universal RPC framework") - (description "gRPC is a modern open source high performance @dfn{Remote -Procedure Call} (RPC) framework that can run in any environment. It can -efficiently connect services in and across data centers with pluggable support -for load balancing, tracing, health checking and authentication. It is also -applicable in last mile of distributed computing to connect devices, mobile -applications and browsers to backend services.") + (description "gRPC is a modern high performance @dfn{Remote Procedure Call} +(RPC) framework that can run in any environment. It can efficiently connect +services in and across data centers with pluggable support for load balancing, +tracing, health checking and authentication. It is also applicable in last +mile of distributed computing to connect devices, mobile applications and +browsers to backend services.") (license license:asl2.0))) ;; Note that Tensorflow includes a "third_party" directory, which seems to not From fa0f774b2623848b9ac16688e3371257aea49709 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 15:39:10 +0200 Subject: [PATCH 43/97] gnu: python-django: Update to 1.11.25 [security fixes]. * gnu/packages/django.scm (python-django): Update to 1.11.25. --- gnu/packages/django.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index dcef7370bd..8e43447921 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -41,13 +41,13 @@ (define-module (gnu packages django) (define-public python-django (package (name "python-django") - (version "1.11.21") + (version "1.11.25") (source (origin (method url-fetch) (uri (pypi-uri "Django" version)) (sha256 (base32 - "0adhcw8sx2mgwk9y2j760y96pqbip1ni3sf2v2ls5zxc9x93wwms")))) + "0rpgx212n8gh61nwizkyldvskna808xpcvawmavk5mc5c9cfh52k")))) (build-system python-build-system) (arguments '(#:modules ((srfi srfi-1) From 72e7cba286f07ed6702e3a7a523cbc40e554f4e5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 15:39:37 +0200 Subject: [PATCH 44/97] gnu: kodi: Update to 18.4. * gnu/packages/kodi.scm (kodi): Update to 18.4. --- gnu/packages/kodi.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index a9b5b85a47..0e032d05db 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -271,7 +271,7 @@ (define-public fstrcmp (define-public kodi (package (name "kodi") - (version "18.3") + (version "18.4") (source (origin (method git-fetch) (uri (git-reference @@ -280,7 +280,7 @@ (define-public kodi (file-name (git-file-name name version)) (sha256 (base32 - "18fbl5hs3aqccrn0m3x7hp95wlafjav0yvrwmb5q3gj24mwf6jld")) + "1m0295czxabdcqyqf5m94av9d88pzhnzjvyfs1q07xqq82h313p7")) (patches (search-patches "kodi-skip-test-449.patch" "kodi-set-libcurl-ssl-parameters.patch")) (snippet From 196e35794c8598d28613d702311c365d4d9e0c36 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 15:44:03 +0200 Subject: [PATCH 45/97] gnu: twolame: Update to 0.4.0. * gnu/packages/audio.scm (twolame): Update to 0.4.0. [source](snippet): Remove. --- gnu/packages/audio.scm | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 58547a2cca..88f3b5eccd 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2771,22 +2771,14 @@ (define-public soxr (define-public twolame (package (name "twolame") - (version "0.3.13") + (version "0.4.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/twolame/twolame/" version "/twolame-" version ".tar.gz")) (sha256 - (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq")) - (modules '((guix build utils))) - ;; The tests break with Perl 5.24: - ;; https://github.com/njh/twolame/issues/21 - ;; TODO: Remove this snippet when upgrading twolame. - (snippet - '(begin - (substitute* "tests/test.pl" (("\\(@_\\)") "($_[0])")) - #t)))) + (base32 "0zf8sxqb02w07ah55b1y7ab643zmpbhn62spa9pqra0rc17l4dfc")))) (build-system gnu-build-system) (inputs `(("libsndfile" ,libsndfile))) From e14d8dcff3e2882a5d0896c164f5bbde4f7a74fd Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 16:10:28 +0200 Subject: [PATCH 46/97] gnu: Add doctest. * gnu/packages/check.scm (doctest): New public variable. --- gnu/packages/check.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index c7d8615b0b..6a48c08064 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -354,6 +354,25 @@ (define-public cxxtest and it supports a very flexible form of test discovery.") (license license:lgpl3+))) +(define-public doctest + (package + (name "doctest") + (version "2.3.5") + (home-page "https://github.com/onqtam/doctest") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rddlzhnv0f5036q0m0p019pismka7sx6x8cnzk65sk77b1dsbhg")))) + (build-system cmake-build-system) + (synopsis "C++ test framework") + (description + "doctest is a single-header testing framework for C++11 and later. It +has been designed to be fast, light and unintrusive.") + (license license:expat))) + (define-public go-gopkg.in-check.v1 (let ((commit "788fd78401277ebd861206a03c884797c6ec5541") (revision "1")) From ff97c862958095c9df0b41eb0574e7529ffab123 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 16:49:41 +0200 Subject: [PATCH 47/97] gnu: json-modern-cxx: Update to 3.7.0. * gnu/packages/cpp.scm (json-modern-cxx): Update to 3.7.0. [source](snippet): Adjust for new doctest requirement. [native-inputs]: Add DOCTEST. [inputs]: Remove CATCH-FRAMEWORK2. --- gnu/packages/cpp.scm | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 1c98e381ab..6aac60d284 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -206,7 +206,7 @@ (define-public fifo-map (define-public json-modern-cxx (package (name "json-modern-cxx") - (version "3.1.2") + (version "3.7.0") (home-page "https://github.com/nlohmann/json") (source (origin @@ -215,30 +215,34 @@ (define-public json-modern-cxx (commit (string-append "v" version)))) (sha256 (base32 - "1mpr781fb2dfbyscrr7nil75lkxsazg4wkm749168lcf2ksrrbfi")) + "0v7xih4zjixxxfvkfbs7a8j9qcvpwlsv4vrkbyns3hc7b44nb8ap")) (file-name (git-file-name name version)) (modules '((guix build utils))) (snippet '(begin - (delete-file-recursively "./third_party") - (delete-file-recursively "./test/thirdparty") - (delete-file-recursively "./benchmarks/thirdparty") - ;; Splits catch and fifo_map + ;; Delete bundled software. Preserve doctest_compatibility.h, which + ;; is a wrapper library added by this package. + (install-file "./test/thirdparty/doctest/doctest_compatibility.h" "/tmp") + (for-each delete-file-recursively + '("./third_party" "./test/thirdparty" "./benchmarks/thirdparty")) + (install-file "/tmp/doctest_compatibility.h" "./test/thirdparty/doctest") + + ;; Adjust for the unbundled fifo_map and doctest. + (substitute* "./test/thirdparty/doctest/doctest_compatibility.h" + (("#include \"doctest\\.h\"") + "#include ")) (with-directory-excursion "test/src" - (let ((files (find-files "." ".*\\.cpp"))) - (substitute* files - (("#include ?\"(catch.hpp)\"" all catch-hpp) - (string-append "#include "))) + (let ((files (find-files "." "\\.cpp$"))) (substitute* files (("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp) (string-append "#include "))))) #t)))) (native-inputs - `(("amalgamate" ,amalgamate))) + `(("amalgamate" ,amalgamate) + ("doctest" ,doctest))) (inputs - `(("catch2" ,catch-framework2) - ("fifo-map" ,fifo-map))) + `(("fifo-map" ,fifo-map))) (build-system cmake-build-system) (synopsis "JSON parser and printer library for C++") (description "JSON for Modern C++ is a C++ JSON library that provides From 9f294736b247c55c65bb1a7053e1c98d9bfa161c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 18:37:29 +0200 Subject: [PATCH 48/97] gnu: python-jupyter-kernel-test: Use PYTHON-VERSION. * gnu/packages/jupyter.scm (python-jupyter-kernel-test)[arguments]: Use PYTHON-VERSION to determite Python version. --- gnu/packages/jupyter.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm index 7ec987b2a4..fbb4367ea5 100644 --- a/gnu/packages/jupyter.scm +++ b/gnu/packages/jupyter.scm @@ -118,9 +118,7 @@ (define-public python-jupyter-kernel-test (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (version ((@@ (guix build python-build-system) - get-python-version) - (assoc-ref inputs "python"))) + (version (python-version (assoc-ref inputs "python"))) (pydir (string-append out "/lib/python" version "/site-packages/" "jupyter_kernel_test"))) From bc0873ef33488b37190f14ce73a63c807a5e1a9a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 12 Oct 2019 20:57:15 +0300 Subject: [PATCH 49/97] gnu: efl: Update to 1.23.1. * gnu/packages/enlightenment.scm (efl): Update to 1.23.1. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 63854bf5ae..1da6d2aea2 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -67,7 +67,7 @@ (define-module (gnu packages enlightenment) (define-public efl (package (name "efl") - (version "1.23.0") + (version "1.23.1") (source (origin (method url-fetch) (uri (string-append @@ -75,7 +75,7 @@ (define-public efl version ".tar.xz")) (sha256 (base32 - "1iawq5k1ggas41h3vrwc0y98hf83vr0vh3phfgw22iij3cb2b5nd")))) + "0q9g4j7k10s1a8rv2ca9v9lydh7ml3zsrqvgncc4qhvdl76208nn")))) (build-system meson-build-system) (native-inputs `(("check" ,check) From 93ae28c029a75234e802121486759797c931360e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 12 Oct 2019 21:44:26 +0200 Subject: [PATCH 50/97] gnu: e2fsprogs: Update to 1.45.4 [fixes CVE-2019-5094]. * gnu/packages/linux.scm (e2fsprogs): Update to 1.45.4. --- 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 88db31ee7e..bc39757da2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1279,7 +1279,7 @@ (define-public usbutils (define-public e2fsprogs (package (name "e2fsprogs") - (version "1.45.2") + (version "1.45.4") (source (origin (method url-fetch) (uri (string-append @@ -1288,7 +1288,7 @@ (define-public e2fsprogs name "-" version ".tar.xz")) (sha256 (base32 - "02g0cm72sgz709s9pkg4mvj56m7bgs7rwnyc2cp7cvg3j6pcjlj9")))) + "00nwl1ppjalxbnx40dsm895r3q793p8nni6n81saj7faj2szdyk5")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (native-inputs `(("pkg-config" ,pkg-config) From 6ad7e3578b6ec924ceddabc908decdab8e453eca Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 12 Oct 2019 17:54:26 +0200 Subject: [PATCH 51/97] gnu: parted: Update to 3.3. * gnu/packages/disk.scm (parted): Update to 3.3. --- gnu/packages/disk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 4de0745190..eb3934155f 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -78,7 +78,7 @@ (define-module (gnu packages disk) (define-public parted (package (name "parted") - (version "3.2") + (version "3.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parted/parted-" @@ -86,7 +86,7 @@ (define-public parted (patches (search-patches "parted-glibc-compat.patch")) (sha256 (base32 - "1r3qpg3bhz37mgvp9chsaa3k0csby3vayfvz8ggsqz194af5i2w5")))) + "0i1xp367wpqw75b20c3jnism3dg3yqj4a7a22p2jb1h1hyyv9qjp")))) (build-system gnu-build-system) (arguments `(#:phases From 54b74cc6680c40ef612d4cedf0d3fe31250e475a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 12 Oct 2019 19:16:32 +0200 Subject: [PATCH 52/97] gnu: eog-plugins: Update to 3.26.4. * gnu/packages/gnome.scm (eog-plugins): Update to 3.26.4. --- 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 91a781bfba..d6f7037831 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4146,7 +4146,7 @@ (define-public eog-plugins ;; 'XDG_DATA_DIRS' appropriately set. (package (name "eog-plugins") - (version "3.26.3") + (version "3.26.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/eog-plugins/" @@ -4154,7 +4154,7 @@ (define-public eog-plugins "eog-plugins-" version ".tar.xz")) (sha256 (base32 - "06fnjs2p18ad5vk07z685cx26sc7d3azywss00w9xvz794b2i1g3")))) + "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx")))) (build-system gnu-build-system) (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins") (synopsis "Extensions for the Eye of GNOME image viewer") From a1c6fb52f71b5095037d1c68e3dc9f6b658a22e8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 12 Oct 2019 22:15:37 +0200 Subject: [PATCH 53/97] gnu: shotwell: Update to 0.30.7. * gnu/packages/gnome.scm (shotwell): Update to 0.30.7. --- 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 d6f7037831..c86cd8c227 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4721,7 +4721,7 @@ (define-public gexiv2 (define-public shotwell (package (name "shotwell") - (version "0.30.4") + (version "0.30.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4729,7 +4729,7 @@ (define-public shotwell name "-" version ".tar.xz")) (sha256 (base32 - "1yiz3j0y2yg6985y3alb3hpkfbv68n8ibys5gpwcjdhmhf3czg5p")))) + "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t)) From 5497d68257fb5a7521886b203aa72e0428d86ac8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 12 Oct 2019 22:15:41 +0200 Subject: [PATCH 54/97] gnu: shotwell: Don't use NAME in source URI. * gnu/packages/gnome.scm (shotwell)[source]: Hard-code NAME. --- 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 c86cd8c227..aeec3dbcfb 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4724,9 +4724,9 @@ (define-public shotwell (version "0.30.7") (source (origin (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" + (uri (string-append "mirror://gnome/sources/shotwell/" (version-major+minor version) "/" - name "-" version ".tar.xz")) + "shotwell-" version ".tar.xz")) (sha256 (base32 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l")))) From e60e1cb24477cb1061459ec277ef8d55542fb7bf Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sat, 12 Oct 2019 18:32:07 +0200 Subject: [PATCH 55/97] gnu: emacs-sly: Update to 20191003. * gnu/packages/emacs-xyz.scm (emacs-sly): Update to 20191003. [native-inputs]: Add texinfo to build doc. [arguments]: Include "contrib" and "slink" folders so that SLY can start. Add "install-doc" phase. --- gnu/packages/emacs-xyz.scm | 55 +++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a55282a0a9..a3f56b34ed 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -6898,14 +6898,14 @@ (define-public emacs-cider CIDER).") (license license:gpl3+))) -;; There hasn't been a tag or release since 2015, so we take the latest +;; There hasn't been a tag or release since 2016, so we take the latest ;; commit. (define-public emacs-sly - (let ((commit "486bfbe95612bcdc0960c490207970a188e0fbb9") - (revision "1")) + (let ((commit "29dccc0735283897a6dbd97e0b6828a45c2985e2") + (revision "2")) (package (name "emacs-sly") - (version (string-append "1.0.0-" revision "." (string-take commit 9))) + (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) @@ -6915,14 +6915,45 @@ (define-public emacs-sly (file-name (git-file-name name version)) (sha256 (base32 - "0ib4q4k3h3qn88pymyjjmlmnpizdn1mfg5gpk5a715nqsgxlg09l")))) + "0d0skgyqn422130xn8lrdp04m5cjk3sl18w6lf2wrmrndc1crqxk")))) (build-system emacs-build-system) + (native-inputs + `(("texinfo" ,texinfo))) (arguments - `(#:include (cons "^lib\\/" %default-include) + `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include) #:phases ;; The package provides autoloads. (modify-phases %standard-phases - (delete 'make-autoloads)))) + (delete 'make-autoloads) + (add-before 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (info-dir (string-append out "/share/info")) + (doc-dir (string-append out "/share/doc/" + ,name "-" ,version)) + (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below. + "README.md" "NEWS.md" "PROBLEMS.md" + "CONTRIBUTING.md"))) + (with-directory-excursion "doc" + (substitute* "Makefile" + (("infodir=/usr/local/info") + (string-append "infodir=" info-dir)) + ;; Don't rebuild contributors.texi since we are not in + ;; the git repo. + (("contributors.texi: Makefile texinfo-tabulate.awk") + "contributors.texi:")) + (invoke "make" "html/index.html") + (invoke "make" "sly.info") + ;; TODO: We need minimal texlive with "preprint" package + ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf") + (install-file "sly.info" info-dir) + (copy-recursively "html" (string-append doc-dir "/html"))) + (for-each (lambda (f) + (install-file f doc-dir) + (delete-file f)) + doc-files) + (delete-file-recursively "doc") + #t)))))) (home-page "https://github.com/joaotavora/sly") (synopsis "Sylvester the Cat's Common Lisp IDE") (description @@ -6931,13 +6962,13 @@ (define-public emacs-sly @enumerate @item Completely redesigned REPL based on Emacs's own full-featured - @code{comint.el} -@item Live code annotations via a new @code{sly-stickers} contrib + @code{comint.el}. +@item Live code annotations via a new @code{sly-stickers} contrib. @item Consistent interactive button interface. Everything can be copied to the REPL. -@item Multiple inspectors with independent history -@item Regexp-capable @code{M-x sly-apropos} -@item Contribs are first class SLY citizens and enabled by default +@item Multiple inspectors with independent history. +@item Regexp-capable @code{M-x sly-apropos}. +@item Contribs are first class SLY citizens and enabled by default. @item Use ASDF to loads contribs on demand. @end enumerate From 4dfb02690d007b8ec723e8071b85791688c7854c Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sat, 12 Oct 2019 19:56:45 +0200 Subject: [PATCH 56/97] gnu: Add emacs-sly-quicklisp. * gnu/packages/emacs-xyz.scm (emacs-sly-quicklisp): New variable. --- gnu/packages/emacs-xyz.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a3f56b34ed..85e8dd28f7 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -6976,6 +6976,38 @@ (define-public emacs-sly xref, etc...) are still available, but with better integration.") (license license:gpl3+)))) +(define-public emacs-sly-quicklisp + (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c") + (revision "1")) + (package + (name "emacs-sly-quicklisp") + (version (git-version "0.0.0" revision commit)) + (home-page "https://github.com/joaotavora/sly-quicklisp") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-sly" ,emacs-sly))) + (arguments + `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include) + #:phases + ;; The package provides autoloads. + (modify-phases %standard-phases + (delete 'make-autoloads)))) + (synopsis "Quicklisp support for SLY") + (description + "@command{sly-quicklisp} is an external contrib for SLY that provides a +sly-quickload command that prompts the user for a package to install. ") + (license license:gpl3+)))) + (define-public emacs-lua-mode (let ((commit "95c64bb5634035630e8c59d10d4a1d1003265743") (revision "2")) From b51c402f23e77a17c564a035887e55b61ef7aecf Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sat, 12 Oct 2019 21:01:14 +0200 Subject: [PATCH 57/97] gnu: Add emacs-sly-asdf. * gnu/packages/emacs-xyz.scm (emacs-sly-asdf): New variable. --- gnu/packages/emacs-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 85e8dd28f7..fbeca8022c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -7008,6 +7008,43 @@ (define-public emacs-sly-quicklisp sly-quickload command that prompts the user for a package to install. ") (license license:gpl3+)))) +(define-public emacs-sly-asdf + (let ((commit "355739e42c91b9b2339f84453292b938b6d17b0d") + (revision "1")) + (package + (name "emacs-sly-asdf") + (version (git-version "0.1.0" revision commit)) + (home-page "https://github.com/mmgeorge/sly-asdf") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1plkqh4dj35c3cf8ykan8fcvqmxcdqragh4j6xg0sls27mjjz1bq")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-sly" ,emacs-sly))) + (arguments + `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-autoload + ;; TODO: Reported upstream: https://github.com/mmgeorge/sly-asdf/pull/11 + (lambda _ + (substitute* "sly-asdf.el" + (("\\(add-to-list 'sly-contribs 'sly-asdf 'append\\)") + "(with-eval-after-load 'sly + (add-to-list 'sly-contribs 'sly-asdf 'append))"))))))) + (synopsis "ASDF contrib for SLY") + (description + "@command{sly-asdf} is an external contrib for SLY that provides +additional support for working with ASDF projects.") + (license license:gpl3+)))) + (define-public emacs-lua-mode (let ((commit "95c64bb5634035630e8c59d10d4a1d1003265743") (revision "2")) From 20e015733361033667a730e09af94939aef8873a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 12:48:26 +0200 Subject: [PATCH 58/97] gnu: parted: Complete the 3.3 update. Fixes . Reported by Jesse Gibbons . This is a follow-up to commit 6ad7e3578b6ec924ceddabc908decdab8e453eca. * gnu/packages/patches/parted-glibc-compat.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/disk.scm (parted)[source](patches): Remove. [native-inputs]: Add E2FSPROGS. --- gnu/local.mk | 1 - gnu/packages/disk.scm | 2 +- gnu/packages/patches/parted-glibc-compat.patch | 17 ----------------- 3 files changed, 1 insertion(+), 19 deletions(-) delete mode 100644 gnu/packages/patches/parted-glibc-compat.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0a4ee7c986..912e9c67e3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1187,7 +1187,6 @@ dist_patch_DATA = \ %D%/packages/patches/p7zip-CVE-2016-9296.patch \ %D%/packages/patches/p7zip-CVE-2017-17969.patch \ %D%/packages/patches/p7zip-remove-unused-code.patch \ - %D%/packages/patches/parted-glibc-compat.patch \ %D%/packages/patches/patchelf-page-size.patch \ %D%/packages/patches/patchelf-rework-for-arm.patch \ %D%/packages/patches/patchutils-test-perms.patch \ diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index eb3934155f..c00df73a22 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -83,7 +83,6 @@ (define-public parted (method url-fetch) (uri (string-append "mirror://gnu/parted/parted-" version ".tar.xz")) - (patches (search-patches "parted-glibc-compat.patch")) (sha256 (base32 "0i1xp367wpqw75b20c3jnism3dg3yqj4a7a22p2jb1h1hyyv9qjp")))) @@ -105,6 +104,7 @@ (define-public parted (native-inputs `(("gettext" ,gettext-minimal) ;; For the tests. + ("e2fsprogs" ,e2fsprogs) ("perl" ,perl) ("python" ,python-2))) (home-page "https://www.gnu.org/software/parted/") diff --git a/gnu/packages/patches/parted-glibc-compat.patch b/gnu/packages/patches/parted-glibc-compat.patch deleted file mode 100644 index edf4afb0d1..0000000000 --- a/gnu/packages/patches/parted-glibc-compat.patch +++ /dev/null @@ -1,17 +0,0 @@ -Include for "major" and "minor". - -Taken from upstream: -https://git.savannah.gnu.org/cgit/parted.git/commit/?id=ba5e0451b51c983e40afd123b6e0d3eddb55e610 - -diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c -index 31b98ab..7e86b51 100644 ---- a/libparted/arch/linux.c -+++ b/libparted/arch/linux.c -@@ -41,6 +41,7 @@ - #include /* for uname() */ - #include - #include -+#include - #ifdef ENABLE_DEVICE_MAPPER - #include - #endif From bd321df37abb4a2d32c7223ffafd8fa46cc64114 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 12:49:15 +0200 Subject: [PATCH 59/97] gnu: parted: End phases on #t. * gnu/packages/disk.scm (parted)[arguments]: End phase on #t and reindent. --- gnu/packages/disk.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index c00df73a22..8421682924 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -90,13 +90,13 @@ (define-public parted (arguments `(#:phases (modify-phases %standard-phases - (add-after - 'unpack 'fix-locales-and-python - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "tests/t0251-gpt-unicode.sh" - (("C.UTF-8") "en_US.utf8")) ;not in Glibc locales - (substitute* "tests/msdos-overlap" - (("/usr/bin/python") (which "python")))))))) + (add-after 'unpack 'fix-locales-and-python + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "tests/t0251-gpt-unicode.sh" + (("C.UTF-8") "en_US.utf8")) ;not in Glibc locales + (substitute* "tests/msdos-overlap" + (("/usr/bin/python") (which "python"))) + #t))))) (inputs `(("lvm2" ,lvm2) ("readline" ,readline) From b5f6700fb454edad46e84cc46edb3654e42b5172 Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Sat, 12 Oct 2019 22:29:18 +0100 Subject: [PATCH 60/97] gnu: id3lib: Apply patch for UTF16 writing bug. * gnu/packages/patches/id3lib-UTF16-writing-bug.patch: New file. * gnu/packages/mp3.scm (id3lib)[source](patches): Add it. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Danny Milosavljevic --- gnu/local.mk | 1 + gnu/packages/mp3.scm | 5 ++- .../patches/id3lib-UTF16-writing-bug.patch | 39 +++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/id3lib-UTF16-writing-bug.patch diff --git a/gnu/local.mk b/gnu/local.mk index 912e9c67e3..3caaec4046 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -975,6 +975,7 @@ dist_patch_DATA = \ %D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch \ %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ + %D%/packages/patches/id3lib-UTF16-writing-bug.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ %D%/packages/patches/ilmbase-openexr-pkg-config.patch \ %D%/packages/patches/inkscape-poppler-0.76.patch \ diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index a218071edb..9a1cf60c2e 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Thomas Danckaert -;;; Copyright © 2017 Pierre Langlois +;;; Copyright © 2017, 2019 Pierre Langlois ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. @@ -123,7 +123,8 @@ (define-public id3lib (modules '((guix build utils))) ;; Don't use bundled zlib (snippet '(begin (delete-file-recursively "zlib") #t)) - (patches (search-patches "id3lib-CVE-2007-4460.patch")))) + (patches (search-patches "id3lib-CVE-2007-4460.patch" + "id3lib-UTF16-writing-bug.patch")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) (arguments diff --git a/gnu/packages/patches/id3lib-UTF16-writing-bug.patch b/gnu/packages/patches/id3lib-UTF16-writing-bug.patch new file mode 100644 index 0000000000..4a8f69b321 --- /dev/null +++ b/gnu/packages/patches/id3lib-UTF16-writing-bug.patch @@ -0,0 +1,39 @@ +diff -ruN id3lib-3.8.3.orig/ChangeLog id3lib-3.8.3/ChangeLog +--- id3lib-3.8.3.orig/ChangeLog 2003-03-02 01:23:00.000000000 +0100 ++++ id3lib-3.8.3/ChangeLog 2006-02-22 00:33:59.946214472 +0100 +@@ -1,3 +1,8 @@ ++2006-02-17 Jerome Couderc ++ ++ * Patch from Spoon to fix UTF-16 writing bug ++ http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979 ++ + 2003-03-02 Sunday 17:38 Thijmen Klok + + * THANKS (1.20): added more people +diff -ruN id3lib-3.8.3.orig/src/io_helpers.cpp id3lib-3.8.3/src/io_helpers.cpp +--- id3lib-3.8.3.orig/src/io_helpers.cpp 2003-03-02 01:23:00.000000000 +0100 ++++ id3lib-3.8.3/src/io_helpers.cpp 2006-02-22 00:35:02.926639992 +0100 +@@ -363,11 +363,22 @@ + // Write the BOM: 0xFEFF + unicode_t BOM = 0xFEFF; + writer.writeChars((const unsigned char*) &BOM, 2); ++ // Patch from Spoon : 2004-08-25 14:17 ++ // http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979 ++ // Wrong code ++ //for (size_t i = 0; i < size; i += 2) ++ //{ ++ // unicode_t ch = (data[i] << 8) | data[i+1]; ++ // writer.writeChars((const unsigned char*) &ch, 2); ++ //} ++ // Right code ++ unsigned char *pdata = (unsigned char *) data.c_str(); + for (size_t i = 0; i < size; i += 2) + { +- unicode_t ch = (data[i] << 8) | data[i+1]; ++ unicode_t ch = (pdata[i] << 8) | pdata[i+1]; + writer.writeChars((const unsigned char*) &ch, 2); + } ++ // End patch + } + return writer.getCur() - beg; + } From 55af64560543409789b4ab61d9bf4c2457e8a3ac Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Sat, 12 Oct 2019 22:30:08 +0100 Subject: [PATCH 61/97] gnu: easytag: Fix mp3 support. * gnu/packages/music.scm (easytag)[arguments]: Add 'Name', 'Description' and 'Version' entries to temporary id3tag.pc pkg-config file. Terminate phases with #t. Signed-off-by: Danny Milosavljevic --- gnu/packages/music.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index ac4333168c..4c74ae5ffa 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Rodger Fox ;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou -;;; Copyright © 2017, 2018 Pierre Langlois +;;; Copyright © 2017, 2018, 2019 Pierre Langlois ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 nee @@ -593,12 +593,17 @@ (define-public easytag "prefix=~@*~a~@ libdir=${prefix}/lib~@ includedir=${prefix}/include~@ + + Name: libid3tag~@ + Description:~@ + Version:~@ Libs: -L${libdir} -lid3tag -lz~@ Cflags: -I${includedir}~%" libid3tag))) (setenv "PKG_CONFIG_PATH" (string-append (getenv "PKG_CONFIG_PATH") - ":" (getcwd) "/pkgconfig"))))) + ":" (getcwd) "/pkgconfig")) + #t))) (add-after 'unpack 'patch-makefile (lambda _ (substitute* "Makefile.in" @@ -606,7 +611,8 @@ (define-public easytag ;; script with /bin/sh hard-coded. (("/bin/sh") (which "sh")) ;; Don't create 'icon-theme.cache'. - (("gtk-update-icon-cache") "true"))))))) + (("gtk-update-icon-cache") "true")) + #t))))) (home-page "https://wiki.gnome.org/Apps/EasyTAG") (synopsis "Simple application for viewing and editing tags in audio files") (description From 0163b9002ab6fac5f2fc470e2d3baf6a188ccfc7 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Mon, 7 Oct 2019 23:29:07 -0500 Subject: [PATCH 62/97] gnu: Add pragha. * gnu/packages/music.scm (pragha): New variable. --- gnu/packages/music.scm | 51 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 4c74ae5ffa..66ff861dc3 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2014, 2019 Eric Bavier ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2016 Al McElrath @@ -4628,3 +4628,52 @@ (define-public mloop @item Adjust tempo; Playback speed of loops can be adjusted on the fly. @end itemize\n") (license license:gpl2)))) + +(define-public pragha + (package + (name "pragha") + (version "1.3.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/pragha-music-player/pragha/" + "releases/download/v" version "/pragha-" version + ".tar.bz2")) + (sha256 + (base32 + "19kbhq99bkimx3aqrdzln0vlr4slkpx6kq66j731jvqyq76nlkp5")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib) + ("grilo" ,grilo) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good) + ("gtk+" ,gtk+) + ("libcddb" ,libcddb) + ("libcdio" ,libcdio) + ("libcdio-paranoia" ,libcdio-paranoia) + ("libgudev" ,libgudev) + ("libnotify" ,libnotify) + ("libpeas" ,libpeas) + ("libsoup" ,libsoup) + ("sqlite" ,sqlite) + ("taglib" ,taglib))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))) + (wrap-program (string-append out "/bin/pragha") + `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))) + #t)))))) + (home-page "https://pragha-music-player.github.io") + (synopsis "Music player") + (description "Pragha is a lightweight music player based on Gtk and +sqlite. It is constructed to be fast, light, and simultaneously tries to be +complete without obstructing your daily work.") + (license license:gpl3+))) From a4a70cc4d75666ce5b29d934016fdcc463db3e5b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 17:23:28 +0200 Subject: [PATCH 63/97] gnu: util-linux: Adjust indentation. * gnu/packages/linux.scm (util-linux): Re-indent. --- gnu/packages/linux.scm | 75 ++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index bc39757da2..6cfe47f90c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1090,7 +1090,7 @@ (define-public util-linux #t)))) (build-system gnu-build-system) (outputs '("out" - "static")) ; >2 MiB of static .a libraries + "static")) ;>2 MiB of static .a libraries (arguments `(#:configure-flags (list "--disable-use-tty-group" "--enable-fs-paths-default=/run/current-system/profile/sbin" @@ -1102,45 +1102,42 @@ (define-public util-linux (assoc-ref %outputs "out") "/etc/bash_completion.d")) #:phases (modify-phases %standard-phases - (add-before - 'build 'set-umount-file-name - (lambda* (#:key outputs #:allow-other-keys) - ;; Tell 'eject' the right file name of 'umount'. - (let ((out (assoc-ref outputs "out"))) - (substitute* "sys-utils/eject.c" - (("\"/bin/umount\"") - (string-append "\"" out "/bin/umount\""))) - #t))) - (add-before - 'check 'pre-check - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (net (assoc-ref inputs "net-base"))) - ;; Change the test to refer to the right file. - (substitute* "tests/ts/misc/mcookie" - (("/etc/services") - (string-append net "/etc/services"))) - #t))) - (add-after - 'install 'move-static-libraries - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (static (assoc-ref outputs "static"))) - (mkdir-p (string-append static "/lib")) - (with-directory-excursion out - (for-each (lambda (file) - (rename-file file - (string-append static "/" - file))) - (find-files "lib" "\\.a$")) + (add-before 'build 'set-umount-file-name + (lambda* (#:key outputs #:allow-other-keys) + ;; Tell 'eject' the right file name of 'umount'. + (let ((out (assoc-ref outputs "out"))) + (substitute* "sys-utils/eject.c" + (("\"/bin/umount\"") + (string-append "\"" out "/bin/umount\""))) + #t))) + (add-before 'check 'pre-check + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (net (assoc-ref inputs "net-base"))) + ;; Change the test to refer to the right file. + (substitute* "tests/ts/misc/mcookie" + (("/etc/services") + (string-append net "/etc/services"))) + #t))) + (add-after 'install 'move-static-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (static (assoc-ref outputs "static"))) + (mkdir-p (string-append static "/lib")) + (with-directory-excursion out + (for-each (lambda (file) + (rename-file file + (string-append static "/" + file))) + (find-files "lib" "\\.a$")) - ;; Remove references to the static library from the '.la' - ;; files so that Libtool does the right thing when both - ;; the shared and static library is available. - (substitute* (find-files "lib" "\\.la$") - (("old_library=.*") "old_library=''\n"))) + ;; Remove references to the static library from the '.la' + ;; files so that Libtool does the right thing when both + ;; the shared and static library is available. + (substitute* (find-files "lib" "\\.la$") + (("old_library=.*") "old_library=''\n"))) - #t)))))) + #t)))))) (inputs `(("zlib" ,zlib) ("ncurses" ,ncurses) @@ -1150,7 +1147,7 @@ (define-public util-linux '()))) (native-inputs `(("perl" ,perl) - ("net-base" ,net-base))) ;for tests + ("net-base" ,net-base))) ;for tests (home-page "https://www.kernel.org/pub/linux/utils/util-linux/") (synopsis "Collection of utilities for the Linux kernel") (description "Util-linux is a diverse collection of Linux kernel From 068d0a1c345104983a9b43f5e2cf4f7e70ab3c07 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 17:41:58 +0200 Subject: [PATCH 64/97] gnu: tcl: Update home page. * gnu/packages/tcl.scm (tcl)[home-page]: Use HTTPS. --- gnu/packages/tcl.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 21ca185066..1e4aa13cc9 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -81,7 +81,7 @@ (define-public tcl ;; likely related to name resolution), but that doesn't cause ;; `make' to fail. #:test-target "test")) - (home-page "http://www.tcl.tk/") + (home-page "https://www.tcl.tk/") (synopsis "The Tcl scripting language") (description "The Tcl (Tool Command Language) scripting language.") (license license:tcl/tk))) From c7adcb7cf8c20fed954bfa3897f56cdca34a0f8a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 17:53:51 +0200 Subject: [PATCH 65/97] gnu: ao: Specify CPE name. * gnu/packages/xiph.scm (ao)[properties]: New field. --- gnu/packages/xiph.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index bac6ac0d4d..ab41219feb 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -230,6 +230,7 @@ (define ao @end enumerate ") (license license:gpl2+) + (properties '((cpe-name . "libao"))) (home-page "https://www.xiph.org/ao/"))) (define flac From c2734ff80987de8f0bb3e31d4339e5496a9821d2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 18:00:11 +0200 Subject: [PATCH 66/97] gnu: ao: Update to 1.2.2-5-g20dc8ed [fixes CVE-2017-11548]. * gnu/packages/xiph.scm (ao): Update to 1.2.2-5-g20dc8ed. [source]: Switch to GIT-FETCH. [native-inputs]: Add AUTOCONF, AUTOMAKE and LIBTOOL. --- gnu/packages/xiph.scm | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index ab41219feb..51719a2b4f 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015, 2016, 2017, 2019 Efraim Flashner -;;; Copyright © 2017, 2018 Marius Bakke +;;; Copyright © 2017, 2018, 2019 Marius Bakke ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Leo Famulari ;;; @@ -27,6 +27,7 @@ (define-module (gnu packages xiph) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages bison) #:use-module (gnu packages compression) #:use-module (gnu packages curl) @@ -41,6 +42,7 @@ (define-module (gnu packages xiph) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:export (libogg libvorbis @@ -185,15 +187,17 @@ (define speexdsp (define ao (package (name "ao") - (version "1.2.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://downloads.xiph.org/releases/ao/libao-" - version ".tar.gz")) - (sha256 - (base32 - "1bwwv1g9lchaq6qmhvj1pp3hnyqr64ydd4j38x94pmprs4d27b83")))) + ;; We need a few commits on top of 1.2.2 to fix CVE-2017-11548. + (version "1.2.2-5-g20dc8ed") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.xiph.org/libao.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d1b3g2a7jd43c32242yq6nfysqsmp7rjslhvbrmpgk119l5fnbj")))) (build-system gnu-build-system) ;; FIXME: Add further backends, see the summary printed after configure. ;; XXX: Should back-ends be pushed to different outputs? For instance, @@ -203,7 +207,10 @@ (define ao `(("alsa-lib" ,alsa-lib) ("pulseaudio" ,pulseaudio))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) (synopsis "Cross platform audio library") (description "Libao is a cross-platform audio library that allows programs to From fd82f7ae9b4b008b4fc856a929717a11bf0e2667 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 14 Aug 2019 23:12:48 +0300 Subject: [PATCH 67/97] gnu: emacs-magit: Update to 2.90.1-2.c761d28. * gnu/packages/emacs-xyz.scm (emacs-magit): Update to 2.90.1-2.c761d28. [arguments]: Add patch phase. --- gnu/packages/emacs-xyz.scm | 52 +++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index fbeca8022c..6533682b37 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -265,21 +265,28 @@ (define-public emacs-with-editor (license license:gpl3+))) (define-public emacs-magit - ;; Version 2.90.1 has trouble loading the transient library, - ;; so we use a more recent commit that fixes it. - (let ((commit "b4aec016b5577afa8d889f258b499814d1bb1d94")) + ;; `magit-setup-buffer' macro introduced in c761d28d and required in + ;; `emacs-forge'. + (let ((commit "c761d28d49e5238037512b898db0ec9b40d85770")) (package (name "emacs-magit") - (version (git-version "2.90.1" "1" commit)) + (version (git-version "2.90.1" "2" commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/magit/magit") + (url "https://github.com/magit/magit.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "0zl7v6z0y50pcgqsf2r8c1k3r5nwjad9ba7r6sgrnf4rc62br7jv")))) + "16qx0404l05q1m6w7y5j8ck1z5nfmpinm00w0p2yh1hn5zzwy6dd")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix syntax error + (substitute* "lisp/magit-extras.el" + (("rev\\)\\)\\)\\)\\)\\)") "rev)))))")) + #t)))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-minimal))) @@ -318,6 +325,39 @@ (define-public emacs-magit #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (chmod "lisp/magit-extras.el" #o644) + (emacs-batch-edit-file "lisp/magit-extras.el" + `(progn (progn + (goto-char (point-min)) + (re-search-forward "(defun magit-copy-buffer-revision ()") + (forward-sexp 2) + (kill-sexp) + (insert ,(format #f "~S" + '(if (use-region-p) + (copy-region-as-kill nil nil 'region) + (when-let ((rev (cl-case major-mode + ((magit-cherry-mode + magit-log-select-mode + magit-reflog-mode + magit-refs-mode + magit-revision-mode + magit-stash-mode + magit-stashes-mode) + (car magit-refresh-args)) + ((magit-diff-mode magit-log-mode) + (let ((r (caar magit-refresh-args))) + (if (string-match "\\.\\.\\.?\\(.+\\)" r) + (match-string 1 r) + r))) + (magit-status-mode "HEAD")))) + (when (magit-commit-p rev) + (setq rev (magit-rev-parse rev)) + (push (list rev default-directory) magit-revision-stack) + (kill-new (message "%s" rev)))))))) + (basic-save-buffer))) + #t)) (delete 'configure) (add-before 'build 'patch-exec-paths From 2485f1725614cab0d15bef3738ad89cf1b6e91a4 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Wed, 14 Aug 2019 08:04:20 +0200 Subject: [PATCH 68/97] gnu: emacs-ghub: Update to 3.2.0-1.cf0b13a. * gnu/packages/emacs-xyz.scm (emacs-ghub): Update to 3.2.0-1.cf0b13a. Signed-off-by: Oleg Pykhalov --- gnu/packages/emacs-xyz.scm | 62 ++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6533682b37..a2e09bead9 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -564,39 +564,41 @@ (define-public emacs-graphql (license license:gpl3+))) (define-public emacs-ghub - (package - (name "emacs-ghub") - (version "3.2.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/magit/ghub") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0lp52qygyavddl1lrgsyb6mq7hcf9h89dy2pzya3mb2va49f0vvl")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'install 'make-info - (lambda _ - (invoke "make" "info")))))) - (native-inputs - `(("texinfo" ,texinfo))) - (propagated-inputs - `(("dash" ,emacs-dash) - ("graphql" ,emacs-graphql) - ("treepy" ,emacs-treepy))) - (home-page "https://github.com/magit/ghub") - (synopsis "Emacs client libraries for the APIs of various Git forges") - (description - "Ghub provides basic support for using the APIs of various Git forges from + ;; We need a newer commit to avoid problems in emacs-forge. + (let ((commit "cf0b13aeba4df3798e49c205cac2d8fefd53a137") + (revision "1")) + (package + (name "emacs-ghub") + (version (git-version "3.2.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/magit/ghub") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fzayvcysk80vv4q332axcjf80x6gsnpcbl0svmpb017ii6wxhid")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'make-info + (lambda _ + (invoke "make" "info")))))) + (native-inputs + `(("texinfo" ,texinfo))) + (propagated-inputs + `(("dash" ,emacs-dash) + ("treepy" ,emacs-treepy))) + (home-page "https://github.com/magit/ghub") + (synopsis "Emacs client libraries for the APIs of various Git forges") + (description + "Ghub provides basic support for using the APIs of various Git forges from Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab, Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a handful of functions that are not resource-specific.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-scribble-mode (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2") From 735a972eaee88a693557e1b2a6cdb3fcba9c6b68 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sat, 5 Oct 2019 20:42:48 +0300 Subject: [PATCH 69/97] gnu: emacs-closql: Update to 1.0.0-1.70b98db. * gnu/packages/emacs-xyz.scm (emacs-closql): Update to 1.0.0-1.70b98db. --- gnu/packages/emacs-xyz.scm | 44 ++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a2e09bead9..060259e2e1 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11503,31 +11503,33 @@ (define-public emacs-emacsql (license license:gpl3+))) (define-public emacs-closql - (package - (name "emacs-closql") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacscollective/closql.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1xhpfjjkjqfc1k2rj77cscclz5r7gpvv3hi202x178vdcpipjwar")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-emacsql" ,emacs-emacsql))) - (home-page "https://github.com/emacscollective/closql") - (synopsis "Store EIEIO objects using EmacSQL") - (description - "This package allows to store uniform EIEIO objects in an EmacSQL + ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3. + (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef")) + (package + (name "emacs-closql") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacscollective/closql.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-emacsql" ,emacs-emacsql))) + (home-page "https://github.com/emacscollective/closql") + (synopsis "Store EIEIO objects using EmacSQL") + (description + "This package allows to store uniform EIEIO objects in an EmacSQL database. SQLite is used as backend. This library imposes some restrictions on what kind of objects can be stored; it isn't intended to store arbitrary objects. All objects have to share a common superclass and subclasses cannot add any additional instance slots.") - (license license:gpl3))) + (license license:gpl3)))) (define-public emacs-epkg ;; The release version is to old for the current database scheme. From 0475c88d6f751eac63a928e3a4fd367f2251eb89 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sat, 10 Aug 2019 19:17:12 +0300 Subject: [PATCH 70/97] gnu: Add emacs-forge. * gnu/packages/emacs-xyz.scm (emacs-forge): New variable. --- gnu/packages/emacs-xyz.scm | 79 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 060259e2e1..4f0f262f93 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17295,6 +17295,85 @@ (define-public emacs-transient a suffix) we prefer to call it just a \"transient\".") (license license:gpl3+)))) +(define-public emacs-forge + (let ((commit "a6721c071226ae8da6852e9330f2bdcba92a4577")) + (package + (name "emacs-forge") + (version (git-version "0.1.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/magit/forge.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gzr1di29a9szkzm6kjznq7c8md71cm5761pznf08nmmk63dl3zm")))) + (build-system gnu-build-system) + (native-inputs + `(("texinfo" ,texinfo) + ("emacs" ,emacs-minimal))) + (propagated-inputs + `(("emacs-closql" ,emacs-closql) + ("emacs-dash" ,emacs-dash) + ("emacs-emacsql-sqlite" ,emacs-emacsql) + ("emacs-ghub" ,emacs-ghub) + ("emacs-let-alist" ,emacs-let-alist) + ("emacs-magit" ,emacs-magit) + ("emacs-markdown-mode" ,emacs-markdown-mode) + ("emacs-transient" ,emacs-transient))) + (arguments + `(#:tests? #f ;no tests + #:modules ((srfi srfi-26) + (guix build gnu-build-system) + ((guix build emacs-build-system) #:prefix emacs:) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-build-system) + (guix build emacs-utils)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'install) + (add-after 'unpack 'delete-doc-targets + (lambda _ + (substitute* "./Makefile" + (("lisp docs") "lisp")))) + (add-after 'delete-doc-targets 'emacs-set-emacs-load-path + (assoc-ref emacs:%standard-phases 'set-emacs-load-path)) + (add-after 'emacs-set-emacs-load-path 'chdir-lisp + (lambda _ + (chdir "lisp"))) + (add-after 'chdir-lisp 'emacs-install + (assoc-ref emacs:%standard-phases 'install)) + (add-after 'emacs-install 'emacs-make-autoloads + (assoc-ref emacs:%standard-phases 'make-autoloads)) + (add-after 'build 'install-elc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (el-dir (string-append + out "/share/emacs/site-lisp/guix.d/forge-" + ,version))) + (for-each (cut install-file <> el-dir) + (find-files "." "\\.elc")) + #t))) + (add-after 'install-elc 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (info (string-append out "/share/info"))) + (with-directory-excursion "../docs" + (invoke "makeinfo" "forge.texi") + (install-file "forge.info" info) + #t))))))) + (home-page "https://github.com/magit/ghub/") + (synopsis "Access Git forges from Magit") + (description + "Work with Git forges, such as Github and Gitlab, from the comfort of +Magit and the rest of Emacs.") + (license license:gpl3+)))) + (define-public emacs-matcha (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9")) (package From d6718086f8904c72eb97a8c274cd156a9c08072a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 20:50:18 +0200 Subject: [PATCH 71/97] gnu: OpenSSL@1.0: Replace with 1.0.2t [fixes CVE-2019-1547, CVE-2019-1563]. * gnu/packages/tls.scm (openssl-1.0.2t): New variable. (openssl-1.0)[replacement]: New field. --- gnu/packages/tls.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index c45767c1b3..2def6ee703 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -392,6 +392,7 @@ (define-public openssl-1.0 (inherit openssl) (name "openssl") (version "1.0.2s") + (replacement openssl-1.0.2t) (source (origin (method url-fetch) (uri (list (string-append "https://www.openssl.org/source/openssl-" @@ -473,6 +474,27 @@ (define-public openssl-1.0 ,version "/misc")) #t))))))))) +(define openssl-1.0.2t + (package + (inherit openssl) + (version "1.0.2t") + (source (origin + (inherit (package-source openssl-1.0)) + (uri (list (string-append "https://www.openssl.org/source/openssl-" + version ".tar.gz") + (string-append "ftp://ftp.openssl.org/source/" + "openssl-" version ".tar.gz") + (string-append "ftp://ftp.openssl.org/source/old/" + (string-trim-right version char-set:letter) + "/openssl-" version ".tar.gz"))) + (sha256 + (base32 + "1g67ra0ph7gpz6fgvv1i96d792jmd6ymci5kk53vbikszr74djql")))) + (arguments + (substitute-keyword-arguments (package-arguments openssl-1.0) + ;; Parallel build is not supported in 1.0.x. + ((#:parallel-build? _ #f) #f))))) + (define-public libressl (package (name "libressl") From cb867883ea5cfc56dd7fe5bc6c29fda491d374c2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 20:50:47 +0200 Subject: [PATCH 72/97] gnu: nghttp2: Replace with 1.39.2 [fixes CVE-2019-9511, CVE-2019-9513]. * gnu/packages/web.scm (nghttp2-1.39.2): New variable. (nghttp2)[replacement]: New field. --- gnu/packages/web.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 7b0bb915ca..728fb6046c 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -6530,6 +6530,7 @@ (define-public nghttp2 (package (name "nghttp2") (version "1.39.1") + (replacement nghttp2-1.39.2) (source (origin (method url-fetch) @@ -6607,6 +6608,19 @@ (define-public nghttp2 @end itemize\n") (license license:expat))) +(define nghttp2-1.39.2 + (package + (inherit nghttp2) + (version "1.39.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/nghttp2/nghttp2/" + "releases/download/v" version "/" + "nghttp2-" version ".tar.xz")) + (sha256 + (base32 + "12yfsjghbaypp4w964d45ih9vs38g6anih80wbsflaxx192idlm2")))))) + (define-public hpcguix-web (let ((commit "f39c90b35e99e4122b0866ec4337020d61c81508") (revision "4")) From 046915dead530a0a7918063739e8ac0de5cd5890 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 20:51:17 +0200 Subject: [PATCH 73/97] gnu: curl: Replace with 7.66.0 [fixes CVE-2019-5481, CVE-2019-5482]. * gnu/packages/curl.scm (curl-7.66.0): New variable. (curl)[replacement]: New field. --- gnu/packages/curl.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 5e1e7eb400..aa5d24c401 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2015 Ludovic Courtès ;;; Copyright © 2016, 2017, 2019 Leo Famulari -;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017, 2019 Marius Bakke ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Roel Janssen @@ -51,6 +51,7 @@ (define-public curl (package (name "curl") (version "7.65.3") + (replacement curl-7.66.0) (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" @@ -142,6 +143,18 @@ (define-public curl "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) +(define curl-7.66.0 + (package + (inherit curl) + (version "7.66.0") + (source (origin + (method url-fetch) + (uri (string-append "https://curl.haxx.se/download/curl-" + version ".tar.xz")) + (sha256 + (base32 + "1hcqxpibhknhjy56wcxz5vd6m9ggx3ykwp3wp5wx05ih36481d6v")))))) + (define-public kurly (package (name "kurly") From 24496210ea55bb1a573dcb80f4aa4bd13b861f1d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 21:02:08 +0200 Subject: [PATCH 74/97] gnu: libgcrypt: Replace with 1.8.5 [fixes CVE-2019-13627]. * gnu/packages/gnupg.scm (libgcrypt-1.8.5): New variable. (libgcrypt)[replacement]: New field. --- gnu/packages/gnupg.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 4ee7ed6634..06e5f6782f 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Petter ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice -;;; Copyright © 2018 Marius Bakke +;;; Copyright © 2018, 2019 Marius Bakke ;;; Copyright © 2018 Björn Höfling ;;; ;;; This file is part of GNU Guix. @@ -111,6 +111,7 @@ (define-public libgcrypt (package (name "libgcrypt") (version "1.8.4") + (replacement libgcrypt-1.8.5) (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" @@ -143,6 +144,18 @@ (define-public libgcrypt (properties '((ftp-server . "ftp.gnupg.org") (ftp-directory . "/gcrypt/libgcrypt"))))) +(define-public libgcrypt-1.8.5 + (package + (inherit libgcrypt) + (version "1.8.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" + version ".tar.bz2")) + (sha256 + (base32 + "1hvsazms1bfd769q0ngl0r9g5i4m9mpz9jmvvrdzyzk3rfa2ljiv")))))) + (define-public libassuan (package (name "libassuan") From e436379c9412cf1550a6c977a5ede1aa4b8a1e04 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 21:06:53 +0200 Subject: [PATCH 75/97] gnu: expat: Replace with 2.2.9 [fixes CVE-2019-15903]. * gnu/packages/xml.scm (expat-2.2.9): New variable. (expat)[replacement]: New field. --- gnu/packages/xml.scm | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 54dc92f3f2..59f30116a3 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice -;;; Copyright © 2016, 2017, 2018 Marius Bakke +;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke ;;; Copyright © 2017 Adriano Peluso ;;; Copyright © 2017 Gregor Giesen ;;; Copyright © 2017 Alex Vong @@ -67,6 +67,7 @@ (define-public expat (package (name "expat") (version "2.2.7") + (replacement expat-2.2.9) (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c)))) (origin (method url-fetch) @@ -88,6 +89,23 @@ (define-public expat things the parser might find in the XML document (like start tags).") (license license:expat))) +(define expat-2.2.9 + (package + (inherit expat) + (version "2.2.9") + (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c)))) + (origin + (method url-fetch) + (uri (list (string-append "mirror://sourceforge/expat/expat/" + version "/expat-" version ".tar.xz") + (string-append + "https://github.com/libexpat/libexpat/releases/download/R_" + (string-map dot->underscore version) + "/expat-" version ".tar.xz"))) + (sha256 + (base32 + "1960mmgbb4cm64n1p0nz3hrs1pw03hkrfcw8prmnn4622mdrd9hy"))))))) + (define-public libebml (package (name "libebml") From 64855281c18bab87a61c77a18c9001e6e222fb08 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Oct 2019 21:18:19 +0200 Subject: [PATCH 76/97] gnu: librsvg: Update to 2.46.0. * gnu/packages/gnome.scm (librsvg-next): Update to 2.46.0. [arguments]: Patch SHELL in "po/Makefile.in.in". [native-inputs]: Replace RUST-1.27 with RUST-1.34. --- gnu/packages/gnome.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index aeec3dbcfb..7f16b17499 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1397,7 +1397,7 @@ (define-public librsvg (define-public librsvg-next (package (name "librsvg") - (version "2.44.12") + (version "2.46.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1405,7 +1405,7 @@ (define-public librsvg-next name "-" version ".tar.xz")) (sha256 (base32 - "1h3qnqhr0l7pd2bxg69ki6ckl4srdwgr471dpp4jq9i4784hp0v6")))) + "1la3az2af2ccm6rp86b6wh0kq7kxzl4n8pli5qxhyic1rd91xj4n")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1423,6 +1423,7 @@ (define-public librsvg-next (lambda _ (for-each patch-shebang '("tap-driver.sh" "tap-test")) (patch-/usr/bin/file "configure") + (patch-makefile-SHELL "po/Makefile.in.in") #t)) (add-before 'configure 'pre-configure (lambda* (#:key inputs #:allow-other-keys) @@ -1460,9 +1461,9 @@ (define-public librsvg-next #t))))) (native-inputs `(("pkg-config" ,pkg-config) - ;; This is the minimum supported Rust version in Librsvg 2.44. - ("rust" ,rust-1.27) - ("cargo" ,rust-1.27 "cargo") + ;; This is the minimum supported Rust version in Librsvg 2.46. + ("rust" ,rust-1.34) + ("cargo" ,rust-1.34 "cargo") ("vala" ,vala) ("glib" ,glib "bin") ; glib-mkenums, etc. ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc. From f618134e4c518e87ea916d717eb25934a0fe7282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 13 Oct 2019 23:07:56 +0200 Subject: [PATCH 77/97] build-system/gnu: 'package-with-explicit-inputs' uses 'package-mapping'. * guix/build-system/gnu.scm (package-with-explicit-inputs): Rename to... (package-with-explicit-inputs/deprecated): ... this. (package-with-explicit-inputs*): New procedure. (package-with-explicit-inputs): Define as a 'case-lambda*'. --- guix/build-system/gnu.scm | 59 ++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 7 deletions(-) diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm index c9140074b7..3cc89f8852 100644 --- a/guix/build-system/gnu.scm +++ b/guix/build-system/gnu.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,12 +57,16 @@ (define %default-modules '((guix build gnu-build-system) (guix build utils))) -(define* (package-with-explicit-inputs p inputs - #:optional - (loc (current-source-location)) - #:key (native-inputs '()) - guile) - "Rewrite P, which is assumed to use GNU-BUILD-SYSTEM, to take INPUTS and +(define* (package-with-explicit-inputs/deprecated p inputs + #:optional + (loc (current-source-location)) + #:key (native-inputs '()) + guile) + "This variant is deprecated because it is inefficient: it memoizes only +temporarily instead of memoizing across all transformations where INPUTS is +the same. + +Rewrite P, which is assumed to use GNU-BUILD-SYSTEM, to take INPUTS and NATIVE-INPUTS as explicit inputs instead of the implicit default, and return it. INPUTS and NATIVE-INPUTS can be either input lists or thunks; in the latter case, they will be called in a context where the `%current-system' and @@ -124,6 +128,47 @@ (define rewritten-input ,@(map rewritten-input (filtered (package-inputs p))))))))) +(define* (package-with-explicit-inputs* inputs #:optional guile) + "Return a procedure that rewrites the given package and all its dependencies +so that they use INPUTS (a thunk) instead of implicit inputs." + (define (duplicate-filter package-inputs) + (let ((names (match (inputs) + (((name _ ...) ...) + name)))) + (fold alist-delete package-inputs names))) + + (define (add-explicit-inputs p) + (if (and (eq? (package-build-system p) gnu-build-system) + (not (memq #:implicit-inputs? (package-arguments p)))) + (package + (inherit p) + (inputs (append (inputs) + (duplicate-filter (package-inputs p)))) + (arguments + (ensure-keyword-arguments (package-arguments p) + `(#:implicit-inputs? #f + #:guile ,guile)))) + p)) + + (define (cut? p) + (and (eq? (package-build-system p) gnu-build-system) + (memq #:implicit-inputs? (package-arguments p)))) + + (package-mapping add-explicit-inputs cut?)) + +(define package-with-explicit-inputs + (case-lambda* + ((inputs #:optional guile) + (package-with-explicit-inputs* inputs guile)) + ((p inputs #:optional (loc (current-source-location)) + #:key (native-inputs '()) guile) + ;; deprecated + (package-with-explicit-inputs/deprecated p inputs + loc + #:native-inputs + native-inputs + #:guile guile)))) + (define (package-with-extra-configure-variable p variable value) "Return a version of P with VARIABLE=VALUE specified as an extra `configure' flag, recursively. An example is LDFLAGS=-static. If P already has configure From 8f417ed28061c11c7ff2649cfa15e35b00ef9a0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 13 Oct 2019 23:12:44 +0200 Subject: [PATCH 78/97] gnu: commencement: Further optimize the package object graph. For a package like: (define-public xxx (package (inherit (@ (gnu packages base) coreutils)) (name "xxx") (inputs (@ (gnu packages commencement) %final-inputs)) (native-inputs '()) (propagated-inputs '()) (arguments '(#:implicit-inputs? #f)))) this reduces the package object graph from 176 nodes (1852 edges) to 113 nodes (1114 edges). The number of 'add-data-to-store' calls in "guix build coreutils -nd" drops from 2045 to 1301, and the number of memoization tables drops from 102 to 40. "guix build libreoffice -nd" goes from 2.40s to 2.27s. * gnu/packages/commencement.scm (with-boot4): New variable. (guile-final, glibc-utf8-locales-final): Use it. (with-boot4, with-boot5): New variable. (gnu-make-final): Rewrite to avoid 'package-with-explicit-inputs'. (coreutils-final): Use 'with-boot5' instead of 'package-with-explicit-inputs'. (grep-final): Likewise. (with-boot6): New variable. (sed-final, %final-inputs): Use it. --- gnu/packages/commencement.scm | 74 +++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index d113acaba8..fd976e0c2f 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -2365,14 +2365,14 @@ (define (%boot4-inputs) `(("bash" ,bash-final) ,@(alist-delete "bash" (%boot3-inputs)))) +(define with-boot4 + (package-with-explicit-inputs %boot4-inputs %bootstrap-guile)) + (define-public guile-final ;; This package must be public because other modules refer to it. However, ;; mark it as hidden so that 'fold-packages' ignores it. - (package-with-bootstrap-guile - (package-with-explicit-inputs (hidden-package guile-2.2/fixed) - %boot4-inputs - (current-source-location) - #:guile %bootstrap-guile))) + (with-boot4 (hidden-package + (package-with-bootstrap-guile guile-2.2/fixed)))) (define glibc-utf8-locales-final ;; Now that we have GUILE-FINAL, build the UTF-8 locales. They are needed @@ -2384,10 +2384,7 @@ (define glibc-utf8-locales-final (inherit glibc-utf8-locales) (native-inputs `(("glibc" ,glibc-final) - ("gzip" - ,(package-with-explicit-inputs gzip %boot4-inputs - (current-source-location) - #:guile %bootstrap-guile)))))) + ("gzip" ,(with-boot4 gzip)))))) (define-public ld-wrapper ;; The final 'ld' wrapper, which uses the final Guile and Binutils. @@ -2403,35 +2400,45 @@ (define (%boot5-inputs) `(("locales" ,glibc-utf8-locales-final) ,@(%boot4-inputs))) +(define with-boot5 + (package-with-explicit-inputs %boot5-inputs)) + (define gnu-make-final ;; The final GNU Make, which uses the final Guile. - (package-with-explicit-inputs (package-with-bootstrap-guile gnu-make) - (lambda _ - `(("guile" ,guile-final) - ,@(%boot5-inputs))) - (current-source-location))) + ;; FIXME: This is a mistake: we shouldn't be propagating GUILE-FINAL to + ;; PKG-CONFIG. + ;; TODO: Fix that on the next rebuild cycle. + (let ((pkg-config (package + (inherit pkg-config) + (inputs `(("guile" ,guile-final) + ,@(%boot5-inputs))) + (arguments + `(#:implicit-inputs? #f + ,@(package-arguments pkg-config)))))) + (package + (inherit (package-with-bootstrap-guile gnu-make)) + (inputs `(("guile" ,guile-final) + ,@(%boot5-inputs))) + (native-inputs `(("pkg-config" ,pkg-config))) + (arguments + `(#:implicit-inputs? #f + ,@(package-arguments gnu-make)))))) + (define coreutils-final ;; The final Coreutils. Treat them specially because some packages, such as ;; Findutils, keep a reference to the Coreutils they were built with. - (package-with-explicit-inputs (package-with-bootstrap-guile coreutils) - %boot5-inputs - (current-source-location) - - ;; Use the final Guile, linked against the - ;; final libc with working iconv, so that - ;; 'substitute*' works well when touching - ;; test files in Gettext. - #:guile guile-final)) + (with-boot5 (package-with-bootstrap-guile coreutils) + ;; Use the final Guile, linked against the + ;; final libc with working iconv, so that + ;; 'substitute*' works well when touching + ;; test files in Gettext. + )) (define grep-final ;; The final grep. Gzip holds a reference to it (via zgrep), so it must be ;; built before gzip. - (let ((grep (package-with-explicit-inputs - (package-with-bootstrap-guile grep) - %boot5-inputs - (current-source-location) - #:guile guile-final))) + (let ((grep (with-boot5 (package-with-bootstrap-guile grep)))) (package/inherit grep (inputs (alist-delete "pcre" (package-inputs grep))) (native-inputs `(("perl" ,perl-boot0)))))) @@ -2442,12 +2449,12 @@ (define (%boot6-inputs) ("grep" ,grep-final) ,@(%boot5-inputs))) +(define with-boot6 + (package-with-explicit-inputs %boot6-inputs)) + (define sed-final ;; The final sed. - (let ((sed (package-with-explicit-inputs (package-with-bootstrap-guile sed) - %boot6-inputs - (current-source-location) - #:guile guile-final))) + (let ((sed (with-boot6 (package-with-bootstrap-guile sed)))) (package/inherit sed (native-inputs `(("perl" ,perl-boot0)))))) (define-public %final-inputs @@ -2455,8 +2462,7 @@ (define-public %final-inputs ;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are ;; used for origins that have patches, thereby avoiding circular ;; dependencies. - (let ((finalize (compose (cut package-with-explicit-inputs <> %boot6-inputs - (current-source-location)) + (let ((finalize (compose with-boot6 package-with-bootstrap-guile))) `(,@(map (match-lambda ((name package) From efa8fddabedbfcec85f19a6d8b431f0adabfe537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 13 Oct 2019 23:36:39 +0200 Subject: [PATCH 79/97] gnu: commencement: Use 'package-with-explicit-inputs' for Hurd packages. * gnu/packages/commencement.scm (with-boot0): New procedure. (gnumach-headers-boot0, mig-boot0) (hurd-headers-boot0, hurd-minimal-boot0) (hurd-core-headers-boot0): Use it instead of 'package-with-explicit-inputs'. --- gnu/packages/commencement.scm | 45 ++++++++++++++--------------------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index fd976e0c2f..54746151ce 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1798,15 +1798,16 @@ (define linux-libre-headers-boot0 ("bison" ,bison-boot0) ,@(%boot0-inputs)))))) +(define with-boot0 + (package-with-explicit-inputs %boot0-inputs + %bootstrap-guile)) + (define gnumach-headers-boot0 - (package-with-bootstrap-guile - (package-with-explicit-inputs gnumach-headers - (%boot0-inputs) - (current-source-location) - #:guile %bootstrap-guile))) + (with-boot0 (package-with-bootstrap-guile gnumach-headers))) (define mig-boot0 - (let* ((mig (package (inherit mig) + (let* ((mig (package + (inherit (package-with-bootstrap-guile mig)) (native-inputs `(("bison" ,bison-boot0) ("flex" ,flex-boot0))) (inputs `(("flex" ,flex-boot0))) @@ -1814,42 +1815,32 @@ (define mig-boot0 `(#:configure-flags `(,(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %build-inputs "flex") "/lib/"))))))) - (package-with-bootstrap-guile - (package-with-explicit-inputs mig (%boot0-inputs) - (current-source-location) - #:guile %bootstrap-guile)))) + (with-boot0 mig))) (define hurd-headers-boot0 (let ((hurd-headers (package (inherit hurd-headers) (native-inputs `(("mig" ,mig-boot0))) (inputs '())))) - (package-with-bootstrap-guile - (package-with-explicit-inputs hurd-headers (%boot0-inputs) - (current-source-location) - #:guile %bootstrap-guile)))) + (with-boot0 (package-with-bootstrap-guile hurd-headers)))) (define hurd-minimal-boot0 (let ((hurd-minimal (package (inherit hurd-minimal) (native-inputs `(("mig" ,mig-boot0))) (inputs '())))) - (package-with-bootstrap-guile - (package-with-explicit-inputs hurd-minimal (%boot0-inputs) - (current-source-location) - #:guile %bootstrap-guile)))) + (with-boot0 (package-with-bootstrap-guile hurd-minimal)))) (define hurd-core-headers-boot0 (mlambda () "Return the Hurd and Mach headers as well as initial Hurd libraries for the bootstrap environment." - (package-with-bootstrap-guile - (package (inherit hurd-core-headers) - (arguments `(#:guile ,%bootstrap-guile - ,@(package-arguments hurd-core-headers))) - (inputs - `(("gnumach-headers" ,gnumach-headers-boot0) - ("hurd-headers" ,hurd-headers-boot0) - ("hurd-minimal" ,hurd-minimal-boot0) - ,@(%boot0-inputs))))))) + (package (inherit (package-with-bootstrap-guile hurd-core-headers)) + (arguments `(#:guile ,%bootstrap-guile + ,@(package-arguments hurd-core-headers))) + (inputs + `(("gnumach-headers" ,gnumach-headers-boot0) + ("hurd-headers" ,hurd-headers-boot0) + ("hurd-minimal" ,hurd-minimal-boot0) + ,@(%boot0-inputs)))))) (define* (kernel-headers-boot0 #:optional (system (%current-system))) (match system From ff73bbf410316b23dd46efb3c638c9f561b7dec0 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Thu, 10 Oct 2019 17:49:25 -0400 Subject: [PATCH 80/97] gnu: git-annex: Update to 7.20191009. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell-apps.scm (git-annex): Update to 7.20191009. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell-apps.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index e09285d63a..13d228b856 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -245,7 +245,7 @@ (define-public darcs (define-public git-annex (package (name "git-annex") - (version "7.20190912") + (version "7.20191009") (source (origin (method url-fetch) @@ -253,7 +253,7 @@ (define-public git-annex "git-annex/git-annex-" version ".tar.gz")) (sha256 (base32 - "1a3jvl5cx32v78s3015i10cx00jprm1391rpww4mzkk1vskzn9cv")))) + "10ycvjl9b3aa81zdz239ngjbbambfjrzds1a23wdlbjkn12nsg4g")))) (build-system haskell-build-system) (arguments `(#:configure-flags From 1c463524c8325c434a437f358e71cd7191dce267 Mon Sep 17 00:00:00 2001 From: David Wilson Date: Thu, 10 Oct 2019 22:06:43 -0700 Subject: [PATCH 81/97] gnu: Add playerctl. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/music.scm (playerctl): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/music.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 66ff861dc3..250f3136bb 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -23,6 +23,7 @@ ;;; Copyright © 2019 Timotej Lazar ;;; Copyright © 2019 Jakob L. Kreuze ;;; Copyright © 2019 raingloom +;;; Copyright © 2019 David Wilson ;;; ;;; This file is part of GNU Guix. ;;; @@ -4677,3 +4678,33 @@ (define-public pragha sqlite. It is constructed to be fast, light, and simultaneously tries to be complete without obstructing your daily work.") (license license:gpl3+))) + +(define-public playerctl + (package + (name "playerctl") + (version "2.0.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/altdesktop/playerctl.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1f3njnpd52djx3dmhh9a8p5a67f0jmr1gbk98icflr2q91149gjz")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-Dintrospection=false" "-Dgtk-doc=false"))) + (inputs `(("python-pygobject" ,python-pygobject))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("pkg-config" ,pkg-config))) + (synopsis "Control MPRIS-supporting media player applications") + (description + "Playerctl is a command-line utility and library for controlling media +players that implement the MPRIS D-Bus Interface Specification. Playerctl +makes it easy to bind player actions, such as play and pause, to media keys. +You can also get metadata about the playing track such as the artist and title +for integration into status line generators or other command-line tools.") + (home-page "https://github.com/altdesktop/playerctl") + (license license:lgpl3+))) From a201b0973eb5e7679b88ef7ef56783b6a5316707 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 13 Oct 2019 14:56:45 +0200 Subject: [PATCH 82/97] gnu: starman: Update to 0.4015. * gnu/packages/web.scm (starman): Update to 0.4015. --- gnu/packages/web.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 728fb6046c..f84214b8be 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -464,15 +464,14 @@ (define-public fcgiwrap (define-public starman (package (name "starman") - (version "0.4014") + (version "0.4015") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/" "Starman-" version ".tar.gz")) (sha256 - (base32 - "1sbb5rb3vs82rlh1fjkgkcmj5pj62b4y9si4ihh45sl9m8c2qxx5")))) + (base32 "1y1kn4929k299fbf6sw9lxcsdlq9fvq777p6yrzk591rr9xhkx8h")))) (build-system perl-build-system) (native-inputs `(("perl-libwww" ,perl-libwww) From ca49db2735d28aae737430532baa4277a1ab9fd7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 13 Oct 2019 15:34:41 +0200 Subject: [PATCH 83/97] gnu: emacs-debbugs: Update to 0.20. * gnu/packages/emacs-xyz.scm (emacs-debbugs): Update to 0.20. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 4f0f262f93..91c52ad9ab 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -3354,14 +3354,14 @@ (define-public emacs-ob-ipython (define-public emacs-debbugs (package (name "emacs-debbugs") - (version "0.19") + (version "0.20") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/debbugs-" version ".tar")) (sha256 (base32 - "0cpby8f088cqb5mpd756a2mb706x763k15cg2xdmmsxl415k3yw4")))) + "03mmb1zvbqlsznl5agq8k3xrlcz310vnsa2zn0y8myanm4ra51zm")))) (build-system emacs-build-system) (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) (propagated-inputs From 5aa51871283bfcccb2800796e25f55643e75f733 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 13 Oct 2019 15:34:50 +0200 Subject: [PATCH 84/97] gnu: emacs-load-relative: Update to 1.3.1. * gnu/packages/emacs-xyz.scm (emacs-load-relative): Update to 1.3.1. --- gnu/packages/emacs-xyz.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 91c52ad9ab..77a12c3862 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5026,15 +5026,14 @@ (define-public emacs-test-simple (define-public emacs-load-relative (package (name "emacs-load-relative") - (version "1.3") + (version "1.3.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/load-relative-" version ".el")) (sha256 - (base32 - "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps")))) + (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj")))) (build-system emacs-build-system) (home-page "http://github.com/rocky/emacs-load-relative") (synopsis "Emacs Lisp relative file loading related functions") From 80fd37978480e9ea84d5b4a8fd3840df4f154055 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 13 Oct 2019 15:35:21 +0200 Subject: [PATCH 85/97] gnu: emacs-csv-mode: Update to 1.9. * gnu/packages/emacs-xyz.scm (emacs-csv-mode): Update to 1.9. --- gnu/packages/emacs-xyz.scm | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 77a12c3862..8d783c9b18 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10502,20 +10502,17 @@ (define-public emacs-easy-kill (define-public emacs-csv-mode (package (name "emacs-csv-mode") - (version "1.7") + (version "1.9") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/csv-mode-" version ".el")) (sha256 - (base32 - "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6")))) + (base32 "0sdnyi9in904k49yy5imapypnmk75lv14k9c1yyjhjpalvvh6br1")))) (build-system emacs-build-system) - (home-page - "http://elpa.gnu.org/packages/csv-mode.html") - (synopsis - "Major mode for editing comma/char separated values") + (home-page "http://elpa.gnu.org/packages/csv-mode.html") + (synopsis "Major mode for editing comma/char separated values") (description "This Emacs package implements CSV mode, a major mode for editing records in a generalized CSV (character-separated values) format.") From d0b9fc9a892a01da5fc8cf4f66c32e72121f4554 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 13 Oct 2019 15:36:04 +0200 Subject: [PATCH 86/97] gnu: emacs-csv-mode: Use HTTPS. * gnu/packages/emacs-xyz.scm (emacs-csv-mode)[source, home-page]: Use HTTPS. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 8d783c9b18..beba840cc8 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10506,12 +10506,12 @@ (define-public emacs-csv-mode (source (origin (method url-fetch) - (uri (string-append "http://elpa.gnu.org/packages/csv-mode-" + (uri (string-append "https://elpa.gnu.org/packages/csv-mode-" version ".el")) (sha256 (base32 "0sdnyi9in904k49yy5imapypnmk75lv14k9c1yyjhjpalvvh6br1")))) (build-system emacs-build-system) - (home-page "http://elpa.gnu.org/packages/csv-mode.html") + (home-page "https://elpa.gnu.org/packages/csv-mode.html") (synopsis "Major mode for editing comma/char separated values") (description "This Emacs package implements CSV mode, a major mode for editing records From d3dfeaa8fe5cbdcf91db86d87a442af2ddbf4f5a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 13 Oct 2019 15:36:15 +0200 Subject: [PATCH 87/97] gnu: emacs-let-alist: Update to 1.0.6. * gnu/packages/emacs-xyz.scm (emacs-let-alist): Update to 1.0.6. --- gnu/packages/emacs-xyz.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index beba840cc8..61234e0e05 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12583,15 +12583,14 @@ (define-public emacs-m-buffer-el (define-public emacs-let-alist (package (name "emacs-let-alist") - (version "1.0.5") + (version "1.0.6") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/let-alist-" version ".el")) (sha256 - (base32 - "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw")))) + (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/let-alist.html") (synopsis "Easily let-bind values of an assoc-list by their names") From fc319fde1a52562f5903d11b2ce380cfa65eb374 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 13 Oct 2019 15:36:23 +0200 Subject: [PATCH 88/97] gnu: emacs-darkroom: Update to 0.2. * gnu/packages/emacs-xyz.scm (emacs-darkroom): Update to 0.2. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 61234e0e05..4aea1f0163 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13547,14 +13547,14 @@ (define-public emacs-highlight-numbers (define-public emacs-darkroom (package (name "emacs-darkroom") - (version "0.1") + (version "0.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/darkroom-" version ".el")) (sha256 (base32 - "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak")))) + "1a528brhz4vckhp77n2c1phkyqdliykpj9kzk3f834f4rwnb5mp0")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/darkroom.html") (synopsis "Remove visual distractions and focus on writing") From d915065bac5eee69f5ddd767dc9abd3172ec6d6c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 13 Oct 2019 15:36:40 +0200 Subject: [PATCH 89/97] gnu: emacs-nhexl-mode: Update to 1.3. * gnu/packages/emacs-xyz.scm (emacs-nhexl-mode): Update to 1.3. --- gnu/packages/emacs-xyz.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 4aea1f0163..ac7d2e37e9 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -18327,7 +18327,7 @@ (define-public emacs-semantic-refactor (define-public emacs-nhexl-mode (package (name "emacs-nhexl-mode") - (version "1.2") + (version "1.3") (source (origin (method url-fetch) @@ -18335,8 +18335,7 @@ (define-public emacs-nhexl-mode "https://elpa.gnu.org/packages/nhexl-mode-" version ".el")) (sha256 - (base32 - "031h22p564qdvr9khs05qcba06pmsk68cr7zyc7c04hfr3y3ziaf")))) + (base32 "1fcy4ybr12dvswmzaqkv4798snb1x1y7ldxwrsgjv5sx7bb5j60z")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/nhexl-mode.html") (synopsis "Minor mode to edit files via hex-dump format") From 9cdf9468dd2b9d504c2a3e33f1d8e527439b3700 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 13 Oct 2019 15:37:04 +0200 Subject: [PATCH 90/97] gnu: emacs-nhexl-mode: Use HTTPS home page. * gnu/packages/emacs-xyz.scm (emacs-nhexl-mode)[home-page]: Use HTTPS. --- gnu/packages/emacs-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index ac7d2e37e9..1f32280daa 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -18337,7 +18337,7 @@ (define-public emacs-nhexl-mode (sha256 (base32 "1fcy4ybr12dvswmzaqkv4798snb1x1y7ldxwrsgjv5sx7bb5j60z")))) (build-system emacs-build-system) - (home-page "http://elpa.gnu.org/packages/nhexl-mode.html") + (home-page "https://elpa.gnu.org/packages/nhexl-mode.html") (synopsis "Minor mode to edit files via hex-dump format") (description "This package implements NHexl mode, a minor mode for editing files From 509551c2a8980acbf79973da9d6b3387b5e451e4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 14 Oct 2019 00:30:10 +0200 Subject: [PATCH 91/97] gnu: xwininfo: Update to 1.1.5. * gnu/packages/xorg.scm (xwininfo): Update to 1.1.5. --- 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 3bc83a6175..0567e4dd92 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4400,7 +4400,7 @@ (define-public xwd (define-public xwininfo (package (name "xwininfo") - (version "1.1.4") + (version "1.1.5") (source (origin (method url-fetch) @@ -4410,7 +4410,7 @@ (define-public xwininfo ".tar.bz2")) (sha256 (base32 - "00avrpw4h5mr1klp41lv2j4dmq465v6l5kb5bhm4k5ml8sm9i543")))) + "03h8clirhw5ki1xxp18xbf5vynm7r0dwspsgfin6cxn4vx0m8h3s")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) From 217f22d16ab8ba333f84d6f24bf687c46a6b8390 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 14 Oct 2019 00:40:15 +0200 Subject: [PATCH 92/97] gnu: xwd: Fix typo in description. * gnu/packages/xorg.scm (xwd)[description]: Fix typo. --- gnu/packages/xorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 0567e4dd92..c670b3fe1d 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4393,7 +4393,7 @@ (define-public xwd redisplay, printing, editing, formatting, archiving, image processing, etc. The target window is selected by clicking the pointer in the desired window. The keyboard bell is rung once at the beginning of the -dump and twice whenthe dump is completed.") +dump and twice when the dump is completed.") (license license:x11))) From 136e3b392b768d767be752bb736c7c388fb7196e Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 13 Oct 2019 22:11:28 -0500 Subject: [PATCH 93/97] gnu: stress-make: Fix build and update. * gnu/packages/debug.scm (stress-make)[version]: Update to latest upstream commit. Bump revision. Use 'git-version'. [source]: Update url. Use 'git-file-name'. [home-page]: Update url likewise. [arguments]: Add 'setup-go' phase. [license]: Update license file name. --- gnu/packages/debug.scm | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 82631deef6..3372fc89e1 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -264,21 +264,21 @@ (define-public american-fuzzy-lop (license asl2.0)))) (define-public stress-make - (let ((commit "506e6cfd98d165f22bee91c408b7c20117a682c4") - (revision "0")) ;No official source distribution + (let ((commit "9e92dff8f0157f012aaf31de5b8b8112ad720100") + (revision "1")) ;No official source distribution (package (name "stress-make") - (version (string-append "1.0-" revision "." (string-take commit 7))) + (version (git-version "1.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/losalamos/stress-make.git") + (url "https://github.com/lanl/stress-make.git") (commit commit))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 - "1j330yqhc7plwin04qxbh8afpg5nfnw1xvnmh8rk6mmqg9w6ik70")))) + "1z1yiwnqyzv3v6152fnjbfh2lr8q8fi5xxfdclnr8l8sd4c1rasp")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -308,8 +308,12 @@ (define-public stress-make (which "sh")))))) (add-before 'configure 'repack-make (lambda _ - (invoke "tar" "cJf" "./make.tar.xz" ,make-dir))))))) - (home-page "https://github.com/losalamos/stress-make") + (invoke "tar" "cJf" "./make.tar.xz" ,make-dir))) + (add-before 'build 'setup-go + ;; The Go cache is required starting in Go 1.12, and it needs + ;; to be writable. + (lambda _ (setenv "GOCACHE" "/tmp/go-cache") #t)))))) + (home-page "https://github.com/lanl/stress-make") (synopsis "Expose race conditions in Makefiles") (description "Stress Make is a customized GNU Make that explicitly manages the order @@ -320,7 +324,7 @@ (define-public stress-make conditions.") ;; stress-make wrapper is under BSD-3-modifications-must-be-indicated, ;; and patched GNU Make is under its own license. - (license (list (non-copyleft "COPYING.md") + (license (list (non-copyleft "LICENSE.md") (package-license gnu-make)))))) (define-public zzuf From bd04fe878627a14533d908ccdf5b906050d6e0a4 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 13 Oct 2019 22:54:12 -0500 Subject: [PATCH 94/97] gnu: HandBrake: Update to 1.2.2. * gnu/packages/video.scm (handbrake): Update to 1.2.2. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index dcd586c97a..8f4019b9c0 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2637,14 +2637,14 @@ (define-public mps-youtube (define-public handbrake (package (name "handbrake") - (version "1.2.0") + (version "1.2.2") (source (origin (method url-fetch) (uri (string-append "https://download.handbrake.fr/releases/" version "/HandBrake-" version "-source.tar.bz2")) (sha256 (base32 - "03clkknaq3mz84p85cvr21gsy9b8vv2g4vvyfz44hz8la253jfqi")) + "0k2yaqy7zi06k8mkp9az2mn9dlgj3a1339vacakfh2nn2zsics6z")) (modules '((guix build utils))) (snippet ;; Remove "contrib" and source not necessary for From 34d2367dc13e0fd85f4a088d98e563428b9e2e8d Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 13 Oct 2019 14:24:31 -0700 Subject: [PATCH 95/97] gnu: emacs-ivy-rich: Update to 0.1.4-2.7a667b1. * gnu/packages/emacs-xyz.scm (emacs-ivy-rich): Update to 0.1.4-2.7a667b1. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 1f32280daa..f6a88f6915 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5313,12 +5313,11 @@ (define-public emacs-ivy-yasnippet (define-public emacs-ivy-rich ;; The latest release version has a small mistake that has since been fixed, ;; so we use a more recent commit. - (let ((commit "f6bfa293c6df0b43cc411876b665816ec3f03d08") - (version "0.1.4") - (revision "1")) + (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3") + (revision "2")) (package (name "emacs-ivy-rich") - (version (git-version version revision commit)) + (version (git-version "0.1.4" revision commit)) (source (origin (method git-fetch) @@ -5327,7 +5326,7 @@ (define-public emacs-ivy-rich (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1s8nwwb1z6lkc58g02pi8w99qms948k8d02lw8k8cq47dw87i219")))) + (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-ivy" ,emacs-ivy))) From 92f92a0fc8b206a343287ab4790e6fce38e55953 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 13 Oct 2019 16:03:02 -0700 Subject: [PATCH 96/97] gnu: emacs-unpackaged-el: Update to 0-3.746801a. * gnu/packages/emacs-xyz.scm (emacs-unpackaged-el): Update to 0-3.746801a. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index f6a88f6915..bbafd548b1 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -652,8 +652,8 @@ (define-public emacs-shroud (license license:gpl3+))) (define-public emacs-unpackaged-el - (let ((commit "c0d58cf81e531b2b6fa1bd5dd612dc1b93d4d186") - (revision "2")) + (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad") + (revision "3")) (package (name "emacs-unpackaged-el") (version (git-version "0" revision commit)) @@ -666,7 +666,7 @@ (define-public emacs-unpackaged-el (file-name (git-file-name name version)) (sha256 (base32 - "0y3sgvd51l4pb3acps92bazfk49da6nim1f1hyxzy1ravg4kbw83")))) + "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) From 396b05f04ed5c5ad6141bd1b4f70f51561a97aad Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 18 Aug 2019 11:00:23 +0200 Subject: [PATCH 97/97] gexp: Use cross extensions when cross-compiling. * guix/gexp.scm (load-path-expression): Use ungexp-splicing instead of ungexp-native-splicing so that the cross extensions are used when target is set. --- guix/gexp.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index 600750e846..7323277511 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1508,7 +1508,7 @@ (define* (load-path-expression modules #:optional (path %load-path) (gexp (eval-when (expand load eval) ;; Augment the load paths and delete duplicates. Do that ;; without loading (srfi srfi-1) or anything. - (let ((extensions '((ungexp-native-splicing extensions))) + (let ((extensions '((ungexp-splicing extensions))) (prepend (lambda (items lst) ;; This is O(N²) but N is typically small. (let loop ((items items)