From bbdcec5f8b77f14a4d0d4d25cbd11e360d0a8870 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 11 May 2022 12:52:49 +0530 Subject: [PATCH 001/363] gnu: Add cl-lmdb. * gnu/packages/lisp-xyz.scm (sbcl-lmdb, cl-lmdb): New variables. --- gnu/packages/lisp-xyz.scm | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index ab264923c3..c3bf614e9f 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -34,6 +34,7 @@ ;;; Copyright © 2022 Jai Vetrivelan ;;; Copyright © 2022 Paul A. Patience ;;; Copyright © 2022 Thomas Albers Raviola +;;; Copyright © 2022 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,6 +58,7 @@ (define-module (gnu packages lisp-xyz) #:use-module (gnu packages) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -21269,3 +21271,54 @@ of the files and the line numbers where they were found.") (define-public ecl-formgrep (sbcl-package->ecl-package sbcl-formgrep)) + +(define-public sbcl-lmdb + (let ((commit "f439b707939a52769dc9747838ff4a616fab14a3") + (revision "0")) + (package + (name "sbcl-lmdb") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/antimer/lmdb") + (commit commit))) + (file-name (git-file-name "cl-lmdb" version)) + (sha256 + (base32 "0akvimmvd4kcx6gh1j1dzvcclhc0jc4hc9vkh3ldgzb8wyf4vl8q")))) + (build-system asdf-build-system/sbcl) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/lmdb.lisp" + (("\"liblmdb.so\"") + (string-append + "\"" (search-input-file inputs "/lib/liblmdb.so") "\"")))))))) + (inputs + (list lmdb + sbcl-alexandria + sbcl-bordeaux-threads + sbcl-cl-reexport + sbcl-mgl-pax + sbcl-osicat + sbcl-trivial-features + sbcl-trivial-garbage + sbcl-trivial-utf-8)) + (native-inputs + (list sbcl-try)) + (home-page "https://github.com/antimer/lmdb") + (synopsis "LMDB bindings for Common Lisp") + (description + "LMDB, the Lightning Memory-mapped Database, is an ACID key-value +database with multiversion concurrency control. This package is a Common Lisp +wrapper around the C LMDB library. It covers most of C LMDB's functionality, +has a simplified API, much needed safety checks, and comprehensive +documentation.") + (license license:expat)))) + +(define-public cl-lmdb + (sbcl-package->cl-source-package sbcl-lmdb)) From 8aaa9b40aa1c62b1e704e0c1c9672301f2b93b91 Mon Sep 17 00:00:00 2001 From: Michael Rohleder Date: Sat, 14 May 2022 23:08:27 +0200 Subject: [PATCH 002/363] gnu: emacs-buttercup: Update to 1.25. * gnu/packages/emacs-xyz.scm (emacs-buttercup): Update to 1.25. Signed-off-by: Nicolas Goaziou --- 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 8a319fc0ff..bdbed00c28 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -23527,7 +23527,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)") (define-public emacs-buttercup (package (name "emacs-buttercup") - (version "1.24") + (version "1.25") (source (origin (method git-fetch) @@ -23537,7 +23537,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)") (file-name (git-file-name name version)) (sha256 (base32 - "1w02p4bfkyga6sign4flq2kw0hawyvnv63410pyh8nm7acp311gg")))) + "0fsysvsypda6b7azc15bpaprq3bwx4gb6rlq2mj6f8rgwdqc8153")))) (build-system emacs-build-system) (arguments `(#:tests? #t From f40c4b4ec9f1c16c56f7dc9ae511b2c6ee455356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 May 2022 14:31:03 +0200 Subject: [PATCH 003/363] gnu: python-jupyter-console-minimal: Use 'modify-inputs'. * gnu/packages/python-xyz.scm (python-jupyter-console-minimal)[propagated-inputs]: Use 'modify-inputs'. --- gnu/packages/python-xyz.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 199fcf5fb8..36171eb538 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -14041,9 +14041,8 @@ Jupyter kernels such as IJulia and IRKernel.") (assoc-ref outputs "out") "/bin")))))))) ;; Remove the python-ipython propagated input, to avoid the cycle (propagated-inputs - (alist-delete - "python-ipython" - (package-propagated-inputs python-jupyter-console))))) + (modify-inputs (package-propagated-inputs python-jupyter-console) + (delete "python-ipython"))))) (define-public python-qtconsole (package From f0373a0c94566e9883c001503300ac764071ad91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 May 2022 14:47:56 +0200 Subject: [PATCH 004/363] gnu: python-jupyter-console: Depend on python-prompt-toolkit 3.x. Fixes . * gnu/packages/python-xyz.scm (python-jupyter-console)[propagated-inputs]: Change 'python-prompt-toolkit-2' to 'python-prompt-toolkit'. --- gnu/packages/python-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 36171eb538..cf75542f09 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -14009,7 +14009,7 @@ in the data.") "1iqrxhd8hvlyf8cqbc731ssnwm61wrycnbiczy5wsfahd3hlh8i4")))) (build-system python-build-system) (propagated-inputs - (list python-ipykernel python-jupyter-client python-prompt-toolkit-2 + (list python-ipykernel python-jupyter-client python-prompt-toolkit python-pygments)) (native-inputs (list python-nose python-pytest)) From 6a3d23c77a436fd5432b4f8d6aef532e503e225e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 May 2022 14:54:58 +0200 Subject: [PATCH 005/363] gnu: python-pari-jupyter: Do not propagate 'python-ipykernel'. Failing that, Guix-Jupyter sees both kernels in environments containing python-pari-jupyter and its ";;guix environment" command thus fails. * gnu/packages/python-xyz.scm (python-pari-jupyter)[propagated-inputs]: Move PYTHON-IPYKERNEL to... [inputs]: ... here. --- gnu/packages/python-xyz.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index cf75542f09..29b42ea3a0 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -9289,10 +9289,8 @@ installing @code{kernelspec}s for use with Jupyter frontends.") "1ikqvv335qfrhmlji0iclci6pnm2c3fvnxf031jr1d68j79g6ypd")))) (build-system python-build-system) (arguments '(#:tests? #f)) ;no test suite - (propagated-inputs - (list python-ipykernel)) (inputs - (list pari-gp readline)) + (list pari-gp readline python-ipykernel)) (home-page "https://github.com/sagemath/pari-jupyter") (synopsis "Jupyter kernel for PARI/GP") (description "The package provides a PARI/GP kernel for Jupyter.") From 06a4a3634ad6a97423f178449dce206ec9bdcb49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 May 2022 14:56:34 +0200 Subject: [PATCH 006/363] gnu: python-bash-kernel: Do not propagate 'python-ipykernel'. Failing that, Guix-Jupyter sees both kernels in environments containing python-bash-kernel and its ";;guix environment" command thus fails. * gnu/packages/jupyter.scm (python-bash-kernel)[propagated-inputs]: Move everything to... [inputs]: ... here. --- gnu/packages/jupyter.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm index 5bcbd99c24..441e19bf47 100644 --- a/gnu/packages/jupyter.scm +++ b/gnu/packages/jupyter.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2019, 2022 Ludovic Courtès ;;; Copyright © 2021 Ricardo Wurmus ;;; Copyright © 2021 Hugo Lecomte ;;; Copyright © 2022 Marius Bakke @@ -620,9 +620,10 @@ Docker registry.") (invoke "python" "-m" "bash_kernel.install" "--prefix" out) #t)))))) (inputs - (list bash)) - (propagated-inputs - (list python-pexpect python-ipykernel python-jupyter-client)) + (list bash + python-pexpect + python-ipykernel + python-jupyter-client)) (home-page "https://github.com/takluyver/bash_kernel") (synopsis "Jupyter kernel for Bash") (description "A bash shell kernel for Jupyter.") From ecfcdff23a5ce390a7edc019c1f1216c4843dc04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 May 2022 15:29:06 +0200 Subject: [PATCH 007/363] services: bitlbee: Run as user "bitlbee". Fixes . Fixes a bug introduced in 211fe3f66e6dfdaa64974931c458ab1d92afc182 whereby the inetd-spawned process would run as root (it would still run in a separate user namespace, with UID 1000 inside of it, but had the authority of root). * gnu/services/messaging.scm (bitlbee-shepherd-service): Pass #:user and #:group to 'make-inetd-constructor'. Remove "-u bitlbee" argument to BITLBEE*. --- gnu/services/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index 26d47f47de..ec1acba416 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -855,14 +855,14 @@ string, you could instantiate a prosody service like this: (start #~(if (defined? 'make-inetd-constructor) (make-inetd-constructor - (list #$bitlbee* "-I" - "-u" "bitlbee" "-c" #$conf) + (list #$bitlbee* "-I" "-c" #$conf) (addrinfo:addr (car (getaddrinfo #$interface #$(number->string port) (logior AI_NUMERICHOST AI_NUMERICSERV)))) #:service-name-stem "bitlbee" + #:user "bitlbee" #:group "bitlbee" ;; Allow 'bitlbee-purple' to use libpurple plugins. #:environment-variables From 4fdd091cf3ec0d83c2738d8775733b90ad0d9cac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 May 2022 15:37:33 +0200 Subject: [PATCH 008/363] doc: Fix typos in the "Channels" chapter. * doc/guix.texi (Using a Custom Guix Channel) (Replicating Guix): Fix typos. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index e1fb50a634..05dbe8954e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5175,7 +5175,7 @@ write in @code{~/.config/guix/channels.scm} this specification: @noindent From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}. The authentication concern is -addressed below ((@pxref{Channel Authentication}). +addressed below (@pxref{Channel Authentication}). @node Replicating Guix @section Replicating Guix @@ -5202,7 +5202,7 @@ say, on another machine, by providing a channel specification in The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe}). The resulting -file can be used with the -C options of @command{guix pull} +file can be used with the @option{-C} option of @command{guix pull} (@pxref{Invoking guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-machine}). From 94532f75c27001f1fc37bd843b7b0aa1b5d5f782 Mon Sep 17 00:00:00 2001 From: Michael Rohleder Date: Fri, 13 May 2022 03:30:02 +0200 Subject: [PATCH 009/363] gnu: xfce4-terminal: Update to 1.0.3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/xfce.scm (xfce4-terminal): Update to 1.0.3. Signed-off-by: Ludovic Courtès --- gnu/packages/xfce.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 814b11093f..ddd484b165 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -954,7 +954,7 @@ features playback of local media files, DVD/CD and live streams.") (define-public xfce4-terminal (package (name "xfce4-terminal") - (version "1.0.1") + (version "1.0.3") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/" name "/" @@ -962,7 +962,7 @@ features playback of local media files, DVD/CD and live streams.") name "-" version ".tar.bz2")) (sha256 (base32 - "19gbw5cp1qdg59l53y36cczm37l18c2cx2lhw25pzs9z3n3r0dhx")))) + "1vgmgz38q5902m4prbww4zy5j8n10pyq5ni3f46z7fpzxp9acs8w")))) (build-system gnu-build-system) (native-inputs (list pkg-config intltool)) From a588fd6d67c4bbf8d3b51349678278efc1d24d20 Mon Sep 17 00:00:00 2001 From: Zac Berkowitz Date: Fri, 13 May 2022 10:13:55 -0400 Subject: [PATCH 010/363] gnu: taskwarior: update to 2.6.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/task-management.scm (taskwarrior): update to 2.6.2. [source] use https instead of http Signed-off-by: Ludovic Courtès --- gnu/packages/task-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index b917cbd61f..0fddfa9ffb 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -120,14 +120,14 @@ to finish tasks, not organize them.") (define-public taskwarrior (package (name "taskwarrior") - (version "2.6.1") + (version "2.6.2") (source (origin (method url-fetch) (uri (string-append - "http://taskwarrior.org/download/task-" version ".tar.gz")) + "https://taskwarrior.org/download/task-" version ".tar.gz")) (sha256 (base32 - "0kq8n2y4srax48yp7shz7ngac0q75dnvdbr9z9f9ldyqncr61ah0")))) + "1v6gca4cfrlh7adjn95j3jg3qq81w3h68037803dc3yd03qaglxi")))) (build-system cmake-build-system) (inputs (list gnutls From 5ba12f0176300d154b086485ecf363f10f283a9f Mon Sep 17 00:00:00 2001 From: Sughosha Date: Sun, 8 May 2022 21:41:46 +0000 Subject: [PATCH 011/363] gnu: gcolor3: Fix build with libportal-0.5. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/gcolor3-update-libportal-usage.patch: New file. * gnu/packages/gnome.scm (gcolor3)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/gnome.scm | 4 +- .../gcolor3-update-libportal-usage.patch | 55 +++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gcolor3-update-libportal-usage.patch diff --git a/gnu/local.mk b/gnu/local.mk index cfb499915a..79019e8564 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1131,6 +1131,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-9-asan-fix-limits-include.patch \ %D%/packages/patches/gcc-9-strmov-store-file-names.patch \ %D%/packages/patches/gcc-10-cross-environment-variables.patch \ + %D%/packages/patches/gcolor3-update-libportal-usage.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-brect-bounds.patch \ %D%/packages/patches/gd-Revert-fix-303-gdlib.pc.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 654facdbff..ee5d31f5dd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -10321,7 +10321,9 @@ only know by its Unicode name or code point.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc")))) + (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc")) + ;; XXX: Remove when upgrading + (patches (search-patches "gcolor3-update-libportal-usage.patch")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t)) diff --git a/gnu/packages/patches/gcolor3-update-libportal-usage.patch b/gnu/packages/patches/gcolor3-update-libportal-usage.patch new file mode 100644 index 0000000000..3e6d33e544 --- /dev/null +++ b/gnu/packages/patches/gcolor3-update-libportal-usage.patch @@ -0,0 +1,55 @@ +Fix gcolor3 to work with libportal-0.5 + +This patch is extracted from upstream, see here +https://gitlab.gnome.org/World/gcolor3/-/commit/1750369a3fd922aa9db6916207dc460c6f885e14 + +From 1750369a3fd922aa9db6916207dc460c6f885e14 Mon Sep 17 00:00:00 2001 +From: Michal Vasilek +Date: Mon, 27 Dec 2021 13:47:14 +0100 +Subject: [PATCH] Update to libportal 0.5 + +--- + meson.build | 2 ++ + src/gcolor3-color-selection.c | 2 +- + src/meson.build | 1 + + 3 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 6453679..7d6dc50 100644 +--- a/meson.build ++++ b/meson.build +@@ -7,9 +7,11 @@ dep_gtk = dependency('gtk+-3.0', version: '>= 3.20.0', required: true) + dep_libportal = dependency( + 'libportal', + required: true, ++ version: '>= 0.5', + fallback: ['libportal', 'libportal_dep'], + default_options: ['gtk_doc=false'], + ) ++dep_libportal_gtk3 = dependency('libportal-gtk3', version: '>= 0.5', required: true) + cc = meson.get_compiler('c') + dep_lm = cc.find_library('m', required: true) + +diff --git a/src/gcolor3-color-selection.c b/src/gcolor3-color-selection.c +index 7413850..5df9d54 100644 +--- a/src/gcolor3-color-selection.c ++++ b/src/gcolor3-color-selection.c +@@ -41,7 +41,7 @@ + #include + #include + #include +-#include ++#include + + #ifdef ENABLE_NLS + #define P_(String) g_dgettext(GETTEXT_PACKAGE "-properties",String) +diff --git a/src/meson.build b/src/meson.build +index 3998f68..d488e51 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -42,6 +42,7 @@ executable( + dependencies: [ + dep_gtk, + dep_libportal, ++ dep_libportal_gtk3, + dep_lm From 61c8d0fe3dd5415de5617a5251d7ff14dd17a545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 May 2022 15:47:35 +0200 Subject: [PATCH 012/363] gnu: gcolor3: Remove input labels. * gnu/packages/gnome.scm (gcolor3)[native-inputs]: Remove input labels. --- gnu/packages/gnome.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index ee5d31f5dd..4a90245bff 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -10328,11 +10328,9 @@ only know by its Unicode name or code point.") (arguments `(#:glib-or-gtk? #t)) (native-inputs - `(("desktop-file-utils" ,desktop-file-utils) - ("gettext" ,gettext-minimal) - ("glib:bin" ,glib "bin") - ("gtk+:bin" ,gtk+ "bin") - ("pkg-config" ,pkg-config))) + (list desktop-file-utils gettext-minimal + `(,glib "bin") + `(,gtk+ "bin") pkg-config)) (inputs (list gsettings-desktop-schemas gtk+ libportal)) (home-page "https://www.hjdskes.nl/projects/gcolor3/") From fa218d3f8b359444038fd677ea272e94458565fd Mon Sep 17 00:00:00 2001 From: Luis Henrique Gomes Higino Date: Mon, 16 May 2022 11:02:04 -0300 Subject: [PATCH 013/363] gnu: emacs-doom-themes: Update to e9bdd13. * gnu/packages/emacs-xyz.scm (emacs-doom-themes): Update to e9bdd13. Signed-off-by: Nicolas Goaziou --- 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 bdbed00c28..8d66278b8f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -27522,8 +27522,8 @@ contrast and few colors.") (license license:gpl3+)))) (define-public emacs-doom-themes - (let ((commit "e803fc4ac8cf7118e2d1544d8241b848b5e79e9f") - (revision "5") + (let ((commit "e9bdd137116fa2037ed60037b8421cf68c64888d") + (revision "6") (version "2.1.6")) (package (name "emacs-doom-themes") @@ -27535,7 +27535,7 @@ contrast and few colors.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh")))) + (base32 "178ri980kwkndb73dawhsfr1dkl6xjdb451z0iar9ghk8z0r0wpg")))) (build-system emacs-build-system) (native-inputs (list emacs-ert-runner)) From a682b0804d52c1466d6bd7dad796aa2114ef0dc9 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 11 May 2022 10:07:36 +0200 Subject: [PATCH 014/363] gnu: sbcl-cl-webkit: Update to 3.5.1. * gnu/packages/lisp-xyz.scm (sbcl-cl-webkit): Update to 3.5.1. --- gnu/packages/lisp-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index c3bf614e9f..f89a9c228a 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -3401,7 +3401,7 @@ is a library for creating graphical user interfaces.") (define-public sbcl-cl-webkit (package (name "sbcl-cl-webkit") - (version "3.5.0") + (version "3.5.1") (source (origin (method git-fetch) @@ -3411,7 +3411,7 @@ is a library for creating graphical user interfaces.") (file-name (git-file-name "cl-webkit" version)) (sha256 (base32 - "1a16dka15lqzpli0f0qd3afmi14vgdxnfkn9z9d1r4cw9p11s71l")))) + "1zfqwr6vmdd9a2nx3j3ihf8y9sah354wi2rgpq7dy4dkc6wxxd48")))) (build-system asdf-build-system/sbcl) (inputs `(("cffi" ,sbcl-cffi) From 76cc5b9e806635cfb94a2c1101ffe6500eab6976 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 11 May 2022 10:08:47 +0200 Subject: [PATCH 015/363] gnu: sbcl-nfiles: Update to 0.4.1. * gnu/packages/lisp-xyz.scm (sbcl-nfiles): Update to 0.4.1. --- gnu/packages/lisp-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index f89a9c228a..fa234af3c3 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -20820,7 +20820,7 @@ access lexicographic data from WordNet.") (define-public sbcl-nfiles (package (name "sbcl-nfiles") - (version "0.4.0") + (version "0.4.1") (source (origin (method git-fetch) @@ -20830,7 +20830,7 @@ access lexicographic data from WordNet.") (file-name (git-file-name "cl-nfiles" version)) (sha256 (base32 - "0qmyv4ajcz7mlihnslx55wr1n8aaisw4clmsijnjf1w6wxh7lh7w")))) + "05brlj99grcy2iz84dvl76inp10jxnvjyh2r262d1las112rlcrb")))) (build-system asdf-build-system/sbcl) (inputs (list gnupg From 3410e50833a4dfa3667530dd66cb4ca57a2b761f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 15 May 2022 22:05:11 -0400 Subject: [PATCH 016/363] gnu: linux-libre: Update to 5.17.8. * gnu/packages/linux.scm (linux-libre-5.17-version): Update to 5.17.8. (linux-libre-5.17-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 0b30108d7c..079367e053 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -361,7 +361,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-5.17-version "5.17.7") +(define-public linux-libre-5.17-version "5.17.8") (define-public linux-libre-5.17-gnu-revision "gnu") (define deblob-scripts-5.17 (linux-libre-deblob-scripts @@ -371,7 +371,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1zd4ds6ha4a2acqnalp234r2m9rz9p30qmy1aqri78i06aw7flwn"))) (define-public linux-libre-5.17-pristine-source (let ((version linux-libre-5.17-version) - (hash (base32 "16ccf7n6fns9z93c65lchn5v3fgl9c5vkr1v6p0c1xifn7v7xxi2"))) + (hash (base32 "0si34i1hrhbapv1a8xghyvkywij0wgidxhdan23d6y2iqzc62y8i"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.17))) From d233674441e6603aa38ee7e44daa6a1dc8c5bba9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 15 May 2022 22:05:28 -0400 Subject: [PATCH 017/363] gnu: linux-libre 5.15: Update to 5.15.40. * gnu/packages/linux.scm (linux-libre-5.15-version): Update to 5.15.40. (linux-libre-5.15-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 079367e053..3dc73a03fd 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -379,7 +379,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; -(define-public linux-libre-5.15-version "5.15.39") +(define-public linux-libre-5.15-version "5.15.40") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts @@ -389,7 +389,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0gs92qbpvirwd02rpwwnja7771z2azbiy9ppy9ynpr14lxmzxnnh"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "1bfpiyccjggysd04flaana0x69n1lcpckzpw1v6kh3ly9xil31l8"))) + (hash (base32 "0fy3p1ds5yqljy2lpq66f0rqxfaz58ljfj12sd6wmgxbrgpgg1y7"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) From 1dec28c0b4c3f3cc9ccae61be6d16281b66a0642 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 15 May 2022 22:05:42 -0400 Subject: [PATCH 018/363] gnu: linux-libre 5.10: Update to 5.10.116. * gnu/packages/linux.scm (linux-libre-5.10-version): Update to 5.10.116. (linux-libre-5.10-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 3dc73a03fd..26cf282851 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -394,7 +394,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.115") +(define-public linux-libre-5.10-version "5.10.116") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -404,7 +404,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1xyhz0dyrkg2avz382ly3dzpa5v89x49gfzx80c1drpwsk7jg6gp"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "0w9gwizyqjgsj93dqqvlh6bqkmpzjajhj09319nqncc95yrigr7m"))) + (hash (base32 "0j8bsbjirndi74pmibplwbjlmpnvjw0f57vh6ayczy9nfjx94rl0"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) From da2a19bfc81f0130c405a01eca156b520819adeb Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 15 May 2022 22:06:00 -0400 Subject: [PATCH 019/363] gnu: linux-libre 5.4: Update to 5.4.194. * gnu/packages/linux.scm (linux-libre-5.4-version): Update to 5.4.194. (linux-libre-5.4-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 26cf282851..730646be25 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -409,7 +409,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.193") +(define-public linux-libre-5.4-version "5.4.194") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -419,7 +419,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "05i286d98fm2pdf9724x1dsmfcm7gsd7yyyvxqlpisyj1kx14hda"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "187jfk9hf52n5z9yv56vq1knp3kdcbyk5w5k98ziwcbdjm1x65hd"))) + (hash (base32 "1xix3ndgzj7axmj9py7lip3n9qqw1jc4gi6lvls6zwi9364mfh98"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) From 6a06481aae51d1da759513c5b73eddccf7d6a722 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 15 May 2022 22:06:15 -0400 Subject: [PATCH 020/363] gnu: linux-libre 4.19: Update to 4.19.243. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.243. (linux-libre-4.19-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 730646be25..d40ea514ff 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -424,7 +424,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.242") +(define-public linux-libre-4.19-version "4.19.243") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -434,7 +434,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "18k5fbzclk7g657bs8idwqjk7hakzx6256b1a3506sy29q4zvg2r"))) + (hash (base32 "17bsy1nwhkx90fh3zls5iwrs830ky7w68f8knqylxvmwwhqj1v3p"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) From 928a1b39f9e9901c1b00cfbb78b300bf2cf03e55 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 15 May 2022 22:06:29 -0400 Subject: [PATCH 021/363] gnu: linux-libre 4.14: Update to 4.14.279. * gnu/packages/linux.scm (linux-libre-4.14-version): Update to 4.14.279. (linux-libre-4.14-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d40ea514ff..e666cfb2fe 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -439,7 +439,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.278") +(define-public linux-libre-4.14-version "4.14.279") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts @@ -449,7 +449,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "1glb6z3nicd2lzhvwcqj54642agk0bbg022wnc3ckld5ngpd9miw"))) + (hash (base32 "0f8v9lv2sr7r8n4pa4lgvk9ci948a0zwpgdm6k8rdqbafdca4y2k"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) From 4d374b23ecf10672ffa2f541a6508810a4c323f6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 15 May 2022 22:06:42 -0400 Subject: [PATCH 022/363] gnu: linux-libre 4.9: Update to 4.9.314. * gnu/packages/linux.scm (linux-libre-4.9-version): Update to 4.9.314. (linux-libre-4.9-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e666cfb2fe..e179a5c2f7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -454,7 +454,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.313") +(define-public linux-libre-4.9-version "4.9.314") (define-public linux-libre-4.9-gnu-revision "gnu1") (define deblob-scripts-4.9 (linux-libre-deblob-scripts @@ -464,7 +464,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "14jyn2yrbm6ayp0bszs4f9jy3p1qkrj5p5gf5c42spr67aa2lv2v"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "1p3vr1h01ph6x0pxrr6y6k5c4nrhvq650dfngv5mkrgsc5w7ffz0"))) + (hash (base32 "1nd3pkjkivx45k0lh1zlchv4vk7jb6mh9fm1jqnr02xkmld9bcr2"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) From 9726745eb0219c24638ef12da83c2c6f9e7bcc00 Mon Sep 17 00:00:00 2001 From: luishgh <51053603+luishgh@users.noreply.github.com> Date: Mon, 16 May 2022 22:48:44 -0300 Subject: [PATCH 023/363] gnu: emacs-racer: Update to 1e63e98. * gnu/packages/emacs-xyz.scm (emacs-racer): Update to 1e63e98. [arguments]<#:phases>: Remove FIX-MAKEFILE and FIX-FAILING-TESTS phases. Signed-off-by: Nicolas Goaziou --- gnu/packages/emacs-xyz.scm | 71 +++++++++++++++----------------------- 1 file changed, 28 insertions(+), 43 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 8d66278b8f..146e1aedb1 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -22487,52 +22487,37 @@ files. It focuses on highlighting the document to improve readability.") (license license:gpl2+))) (define-public emacs-racer - (package - (name "emacs-racer") - (version "1.2") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/racer-rust/emacs-racer") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6")))) - (arguments - `(#:tests? #t - #:test-command '("make" "test") - #:phases - (modify-phases %standard-phases - (add-before 'check 'fix-makefile - (lambda _ - (substitute* "Makefile" - (("\\$\\{CASK\\} exec ") "")) - #t)) - ;; Two tests are failing with Emacs 27, as reported here: - ;; . Disable - ;; them. - (add-before 'check 'fix-failing-tests - (lambda _ - (substitute* "test/racer-test.el" - (("`Write`") "Write") - (("^\\\\\\[`str\\]:.*") "") - ((" \\[`str`\\]") " str")) - #t))))) - (native-inputs - (list emacs-ert-runner emacs-undercover)) - (propagated-inputs - (list emacs-dash emacs-f emacs-pos-tip emacs-rust-mode emacs-s)) - (build-system emacs-build-system) - (home-page "https://github.com/racer-rust/emacs-racer") - (synopsis "Racer support for Emacs") - (description - "This is the official Emacs package for Racer. It supports code + (let ((commit "1e63e98626737ea9b662d4a9b1ffd6842b1c648c") + (revision "0")) + (package + (name "emacs-racer") + (version (git-version "1.2" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/racer-rust/emacs-racer") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12a429lajk09qp1jxgig54p8z6wndfgr4jwdmgkc9s2df9sw02d3")))) + (arguments + `(#:tests? #t + #:test-command '("ert-runner"))) + (native-inputs + (list emacs-ert-runner emacs-undercover)) + (propagated-inputs + (list emacs-dash emacs-f emacs-pos-tip emacs-rust-mode emacs-s)) + (build-system emacs-build-system) + (home-page "https://github.com/racer-rust/emacs-racer") + (synopsis "Racer support for Emacs") + (description + "This is the official Emacs package for Racer. It supports code completion of variables, functions and modules. It can also jump to definition of functions and types, and show a help buffer based on the docstring of the thing at point.") - (license license:expat))) + (license license:expat)))) (define-public emacs-rust-mode (package From 573531e57ed51244e0208a2dd9cdb0457c7692c4 Mon Sep 17 00:00:00 2001 From: luishgh <51053603+luishgh@users.noreply.github.com> Date: Mon, 16 May 2022 22:48:45 -0300 Subject: [PATCH 024/363] gnu: emacs-explain-pause-mode: Fix build. * gnu/packages/emacs-xyz.scm (emacs-explain-pause-mode)[arguments]<#:phases>: Fix failing tests. Signed-off-by: Nicolas Goaziou --- gnu/packages/emacs-xyz.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 146e1aedb1..4195fe2e7a 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4724,6 +4724,13 @@ keep pressing the key until it selects what you want. There's also (list emacs-buttercup)) (arguments '(#:tests? #t + #:phases + (modify-phases %standard-phases + ;; This causes the byte-compilation before unit-tests to fail. + (add-after 'unpack 'remove-error-on-warn + (lambda _ + (substitute* "Makefile" + (("--eval '\\(setq byte-compile-error-on-warn t\\)'") ""))))) ;; Don't run case-tests as they will fail to create sockets because ;; the path is too long #:test-command '("make" "byte-compile" "unit-tests") From e81f26d2c1d3748e06c75d940a395271821474e9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 May 2022 09:56:10 +0300 Subject: [PATCH 025/363] gnu: atop: Add release-monitoring-url. * gnu/packages/admin.scm (atop)[properties]: New field. --- gnu/packages/admin.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 34e4a6e8ca..13c8a2dfd5 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4746,6 +4746,8 @@ using colors, etc. At regular intervals, it shows system-level activity related to the CPU, memory, swap, disks (including LVM) and network layers, and for every process (and thread) it shows e.g. the CPU utilization, memory growth, disk utilization, priority, username, state, and exit code.") + (properties + `((release-monitoring-url . "https://www.atoptool.nl/downloadatop.php"))) (license license:gpl2+))) ;; TODO: Unvendor u-root (pkg: forth, golang, testutil). From eab070a89d9906359ffe0a90c96b74771d836f19 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 May 2022 10:57:52 +0300 Subject: [PATCH 026/363] gnu: atop: Update to 2.7.1. * gnu/packages/admin.scm (atop): Update to 2.7.1. [arguments]: Remove unnecessary make-flag. Remove unneeded substitutions. --- gnu/packages/admin.scm | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 13c8a2dfd5..34df56d5e7 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4693,21 +4693,19 @@ Netgear devices.") (define-public atop (package (name "atop") - (version "2.6.0") + (version "2.7.1") (source (origin (method url-fetch) (uri (string-append "https://www.atoptool.nl/download/atop-" version ".tar.gz")) (sha256 (base32 - "0wlg0n0h9vwpjp2dcb623jvvqck422jrjpq9mbpzg4hnawxcmhly")))) + "0kjwgf94skbrndv1krlmsrq34smzi3iwk73fbsnyw787gvqx4j6a")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite #:make-flags (list (string-append "CC=" ,(cc-for-target)) - ;; The installer requires a choice between systemd or SysV. - "systemdinstall" (string-append "DESTDIR=" (assoc-ref %outputs "out")) (string-append "BINPATH=/bin") (string-append "SBINPATH=/sbin") @@ -4722,12 +4720,8 @@ Netgear devices.") (modify-phases %standard-phases (delete 'configure) ; No ./configure script (add-before 'build 'patch-build - (lambda* (#:key outputs #:allow-other-keys) + (lambda _ (substitute* "Makefile" - ;; We don't need to chown things in the build environment. - (("chown.*$") "") - ;; We can't toggle the setuid bit in the build environment. - (("chmod 04711") "chmod 0711") ;; Otherwise, it creates a blank configuration file as a "default". (("touch.*DEFPATH)/atop") "") (("chmod.*DEFPATH)/atop") "")) From 2d229578bd50b7137603ff14ce5588784a6c07b9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 May 2022 10:59:36 +0300 Subject: [PATCH 027/363] gnu: atop: Adjust build. * gnu/packages/admin.scm (atop)[arguments]: Adjust custom 'patch-build phase to remove references to '/usr' and adjust make-flags accordingly. Remove trailing #t. --- gnu/packages/admin.scm | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 34df56d5e7..30f51ef4b3 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4707,13 +4707,8 @@ Netgear devices.") #:make-flags (list (string-append "CC=" ,(cc-for-target)) (string-append "DESTDIR=" (assoc-ref %outputs "out")) - (string-append "BINPATH=/bin") - (string-append "SBINPATH=/sbin") (string-append "SYSDPATH=/etc/systemd/system") (string-append "PMPATHD=/etc/systemd/system-sleep") - (string-append "MAN1PATH=/share/man/man1") - (string-append "MAN5PATH=/share/man/man5") - (string-append "MAN8PATH=/share/man/man8") ;; Or else it tries to create /var/log/atop... (string-append "LOGPATH=")) #:phases @@ -4722,10 +4717,11 @@ Netgear devices.") (add-before 'build 'patch-build (lambda _ (substitute* "Makefile" + ;; Don't use /usr as a prefix + (("/usr") "") ;; Otherwise, it creates a blank configuration file as a "default". (("touch.*DEFPATH)/atop") "") - (("chmod.*DEFPATH)/atop") "")) - #t))))) + (("chmod.*DEFPATH)/atop") ""))))))) (inputs `(("ncurses" ,ncurses) ("python" ,python-wrapper) ; for `atopgpud` From ef55192ef8a0d9bd336731350f73b709ffd101a0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 May 2022 12:29:08 +0300 Subject: [PATCH 028/363] gnu: atop: Use new package format. * gnu/packages/admin.scm (atop)[arguments]: Rewrite using g-exps. [inputs]: Remove input labels. --- gnu/packages/admin.scm | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 30f51ef4b3..363f26ed0c 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4703,29 +4703,30 @@ Netgear devices.") "0kjwgf94skbrndv1krlmsrq34smzi3iwk73fbsnyw787gvqx4j6a")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no test suite + (list + #:tests? #f ; no test suite #:make-flags - (list (string-append "CC=" ,(cc-for-target)) - (string-append "DESTDIR=" (assoc-ref %outputs "out")) - (string-append "SYSDPATH=/etc/systemd/system") - (string-append "PMPATHD=/etc/systemd/system-sleep") - ;; Or else it tries to create /var/log/atop... - (string-append "LOGPATH=")) + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "DESTDIR=" #$output) + (string-append "SYSDPATH=/etc/systemd/system") + (string-append "PMPATHD=/etc/systemd/system-sleep") + ;; Or else it tries to create /var/log/atop... + (string-append "LOGPATH=")) #:phases - (modify-phases %standard-phases - (delete 'configure) ; No ./configure script - (add-before 'build 'patch-build - (lambda _ - (substitute* "Makefile" - ;; Don't use /usr as a prefix - (("/usr") "") - ;; Otherwise, it creates a blank configuration file as a "default". - (("touch.*DEFPATH)/atop") "") - (("chmod.*DEFPATH)/atop") ""))))))) + #~(modify-phases %standard-phases + (delete 'configure) ; No ./configure script + (add-before 'build 'patch-build + (lambda _ + (substitute* "Makefile" + ;; Don't use /usr as a prefix. + (("/usr") "") + ;; Otherwise, it creates a blank configuration file as a "default". + (("touch.*DEFPATH)/atop") "") + (("chmod.*DEFPATH)/atop") ""))))))) (inputs - `(("ncurses" ,ncurses) - ("python" ,python-wrapper) ; for `atopgpud` - ("zlib" ,zlib))) + (list ncurses + python-wrapper ; for `atopgpud` + zlib)) (home-page "https://www.atoptool.nl/") (synopsis "Linux performance monitoring console") (description "Atop is an ASCII full-screen performance monitor for Linux From a8848c9df7882fb067e1defe55355c731ef80a86 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 17 May 2022 12:27:47 +0100 Subject: [PATCH 029/363] gnu: guix-data-service: Update to 0.0.1-31.198b6ef. * gnu/packages/web.scm (guix-data-service): Update to 0.0.1-31.198b6ef. --- gnu/packages/web.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index c56ec186f8..600ef0c895 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4673,8 +4673,8 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") license:freebsd-doc)))) ; documentation (define-public guix-data-service - (let ((commit "27c34a9ca5ea010f207a4acad597ce98e84d3567") - (revision "30")) + (let ((commit "198b6ef719745a48918e703990d1e846ffcd65b0") + (revision "31")) (package (name "guix-data-service") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -4686,7 +4686,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") (file-name (git-file-name name version)) (sha256 (base32 - "1jjdvld3gp711dp8qd4rnhicbl7322jjzx4plizkg89k7j4x0xhx")))) + "00ma74v9nrza5xpgpgr757hfdlp1cd9rnrpks99mqpjkz73sj1m6")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) From 6fe3c73b040d7e2bf63ca7d75d2855b0f00a558e Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 17 May 2022 12:30:02 +0100 Subject: [PATCH 030/363] gnu: guix-build-coordinator: Update to 0-52.ed3c806. * gnu/packages/package-management.scm (guix-build-coordinator): Update to 0-52.ed3c806. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 579abb063f..af4f0ddd76 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1318,8 +1318,8 @@ environments.") (license (list license:gpl3+ license:agpl3+ license:silofl1.1)))) (define-public guix-build-coordinator - (let ((commit "fff7454f8f136e2d3b0650d99d9f6b0055fa2e1c") - (revision "51")) + (let ((commit "ed3c806ab83c77c1b8f04bb399c66743f1858178") + (revision "52")) (package (name "guix-build-coordinator") (version (git-version "0" revision commit)) @@ -1330,7 +1330,7 @@ environments.") (commit commit))) (sha256 (base32 - "1pc06wppgnj7zv6nb76agxhy23r1778ffsv82whckw6xdd08llqi")) + "1b2xsax548q43jh95m7jza2lafiljciljxavrvhpx8xsj0nlsffc")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments From edf86bacf294fea4decabeda77dd1cae9308b28e Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 17 May 2022 12:30:28 +0100 Subject: [PATCH 031/363] gnu: nar-herder: Update to 0-7.a24fbd1. * gnu/packages/package-management.scm (nar-herder): Update to 0-7.a24fbd1. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index af4f0ddd76..11d83f7e1e 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1626,8 +1626,8 @@ in an isolated environment, in separate namespaces.") (license license:gpl3+))) (define-public nar-herder - (let ((commit "ea997c68515540e34bda267730b9c7c6f21ff6b4") - (revision "6")) + (let ((commit "a24fbd108f75c8f27d2f68f2d1a051e2f3f3e191") + (revision "7")) (package (name "nar-herder") (version (git-version "0" revision commit)) @@ -1638,7 +1638,7 @@ in an isolated environment, in separate namespaces.") (commit commit))) (sha256 (base32 - "11clylk3aizwy0b5sx4xnwj62bzv20ysb5cjcjsx184f1g8lgbw6")) + "1jm6ks2sjcwih7j4wnp252qd73n8pydg7sd000ismpvg5p21l7fg")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments From 41ed6db81e7b52673e5f973a1edc88b69a274614 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 May 2022 15:10:36 +0300 Subject: [PATCH 032/363] guix: cpu: Add support for reading armhf/aarch64 CPUs. * guix/cpu.scm (current-cpu): Set flags at the beginning of the loop. Read from '/proc/cpuinfo' until the end of the file. Add match options for discovering armhf/aarch64 cpu configurations. --- guix/cpu.scm | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/guix/cpu.scm b/guix/cpu.scm index a44cd082f1..be516bd568 100644 --- a/guix/cpu.scm +++ b/guix/cpu.scm @@ -62,31 +62,51 @@ (lambda (port) (let loop ((vendor #f) (family #f) - (model #f)) + (model #f) + (flags (set))) (match (read-line port) ((? eof-object?) - #f) + (cpu (utsname:machine (uname)) + vendor family model flags)) + ;; vendor for x86_64 and i686 ((? (prefix? "vendor_id") str) (match (string-tokenize str) (("vendor_id" ":" vendor) - (loop vendor family model)))) + (loop vendor family model flags)))) + ;; vendor for aarch64 and armhf + ((? (prefix? "CPU implementer") str) + (match (string-tokenize str) + (("CPU" "implementer" ":" vendor) + (loop vendor family model flags)))) + ;; family for x86_64 and i686 ((? (prefix? "cpu family") str) (match (string-tokenize str) (("cpu" "family" ":" family) - (loop vendor (string->number family) model)))) + (loop vendor (string->number family) model flags)))) + ;; model for x86_64 and i686 ((? (prefix? "model") str) (match (string-tokenize str) (("model" ":" model) - (loop vendor family (string->number model))) + (loop vendor family (string->number model) flags)) (_ - (loop vendor family model)))) + (loop vendor family model flags)))) + ;; model for aarch64 and armhf + ((? (prefix? "CPU part") str) + (match (string-tokenize str) + (("CPU" "part" ":" model) + (loop vendor family (string->number (string-drop model 2) 16) flags)))) + ;; flags for x86_64 and i686 ((? (prefix? "flags") str) (match (string-tokenize str) (("flags" ":" flags ...) - (cpu (utsname:machine (uname)) - vendor family model (list->set flags))))) + (loop vendor family model (list->set flags))))) + ;; flags for aarch64 and armhf + ((? (prefix? "Features") str) + (match (string-tokenize str) + (("Features" ":" flags ...) + (loop vendor family model (list->set flags))))) (_ - (loop vendor family model)))))))) + (loop vendor family model flags)))))))) (define (cpu->gcc-architecture cpu) "Return the architecture name, suitable for GCC's '-march' flag, that From fd00ac7e27c8a6d4b4d4719b4f8797bdce204623 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 May 2022 15:12:20 +0300 Subject: [PATCH 033/363] guix: cpu: Add detection for aarch64 CPUs. * guix/cpu.scm (cpu->gcc-architecture): Add detection logic for aarch64 CPUs. --- guix/cpu.scm | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/guix/cpu.scm b/guix/cpu.scm index be516bd568..83e7dc615c 100644 --- a/guix/cpu.scm +++ b/guix/cpu.scm @@ -211,6 +211,57 @@ corresponds to CPU, a record as returned by 'current-cpu'." ;; TODO: Recognize CENTAUR/CYRIX/NSC? "x86_64")) + ("aarch64" + ;; Transcribed from GCC's list of aarch64 processors in aarch64-cores.def + ;; What to do with big.LITTLE cores? + (match (cpu-vendor cpu) + ("0x41" + (match (cpu-model cpu) + ((or #xd02 #xd04 #xd03 #xd07 #xd08 #xd09) + "armv8-a") + ((or #xd05 #xd0a #xd0b #xd0e #xd0d #xd41 #xd42 #xd4b #xd46 #xd43 #xd44 #xd41 #xd0c #xd4a) + "armv8.2-a") + (#xd40 + "armv8.4-a") + (#xd15 + "armv8-r") + ((or #xd46 #xd47 #xd48 #xd49 #xd4f) + "armv9-a"))) + ("0x42" + "armv8.1-a") + ("0x43" + (match (cpu-model cpu) + ((or #x0a0 #x0a1 #x0a2 #x0a3) + "armv8-a") + (#x0af + "armv8.1-a") + ((or #x0b0 #x0b1 #x0b2 #x0b3 #x0b4 #x0b5) + "armv8.2-a") + (#x0b8 + "armv8.3-a"))) + ("0x46" + "armv8.2-a") + ("0x48" + "armv8.2-a") + ("0x50" + "armv8-a") + ("0x51" + (match (cpu-model cpu) + (#xC00 + "armv8-a") + (#x516 + "armv8.1-a") + (#xC01 + "armv8.4-a"))) + ("0x53" + "armv8-a") + ("0x68" + "armv8-a") + ("0xC0" + "armv8.6-a") + (_ + "armv8-a")) + "armv8-a") (architecture - ;; TODO: AArch64. + ;; TODO: More architectures architecture))) From 0adc984d35555c82240a69a4a098c582234490a2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:02 +0200 Subject: [PATCH 034/363] gnu: guix: Update to 1.3.0-26.fd00ac7. * gnu/packages/package-management.scm (guix): Update to 1.3.0-26.fd00ac7. This follows up on commit fd00ac7e27c8a6d4b4d4719b4f8797bdce204623, to fix . --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 11d83f7e1e..7733d14353 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -159,8 +159,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.3.0") - (commit "c1719a0adf3fa7611b56ca4d75b3ac8cf5c9c8ac") - (revision 25)) + (commit "fd00ac7e27c8a6d4b4d4719b4f8797bdce204623") + (revision 26)) (package (name "guix") @@ -176,7 +176,7 @@ (commit commit))) (sha256 (base32 - "0yaphn5shvmxffi4qw66bpvl3q8gn5n168v61x9c2m3vksjygmrn")) + "1mq3455v6sqyfxmzbp02afcm58cb9l5dwy87l8mpbjdy0c2sb1s7")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments From 5f77ece50821e79c1c04fae732e2ab0542b2da9c Mon Sep 17 00:00:00 2001 From: Aleksandr Vityazev Date: Tue, 17 May 2022 18:09:01 +0000 Subject: [PATCH 035/363] gnu: emacs-debbugs: Update to 0.32. * gnu/packages/emacs-xyz.scm (emacs-debbugs): Update to 0.32. [propagated-inputs]: Replace emacs-async with emacs-soap-client. Signed-off-by: Maxim Cournoyer --- 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 4195fe2e7a..7d014ac02a 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -6432,18 +6432,18 @@ src blocks.") (define-public emacs-debbugs (package (name "emacs-debbugs") - (version "0.31") + (version "0.32") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/debbugs-" version ".tar")) (sha256 - (base32 "11vdjrn5m5g6pirw8jv0602fbwwgdhazfrrwxxplii8x02gqk0sr")))) + (base32 "1xp3mj3ndaljma0g7x9abziphgi2a6j8k1v52sb8xwgn4p5gdvby")))) (build-system emacs-build-system) (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) (propagated-inputs - (list emacs-async)) + (list emacs-soap-client)) (home-page "https://elpa.gnu.org/packages/debbugs.html") (synopsis "Access the Debbugs bug tracker in Emacs") (description From 131acaa28ded1455de291a83a8cdecab77b74a87 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sun, 8 May 2022 17:29:06 +0200 Subject: [PATCH 036/363] doc: Clarify guix shell's DWIM behaviour. * doc/guix.texi ("Invoking guix shell"): Document the exact behaviour, that is which flags go together with which file names. --- doc/guix.texi | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 05dbe8954e..c007c93dd3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5670,17 +5670,22 @@ before @command{guix shell} was invoked. The next garbage collection (@pxref{Invoking guix gc}) may clean up packages that were installed in the environment and that are no longer used outside of it. -As an added convenience, when running from a directory that contains a -@file{manifest.scm} or a @file{guix.scm} file (in this order), possibly -in a parent directory, @command{guix shell} automatically loads the -file---provided the directory is listed in -@file{~/.config/guix/shell-authorized-directories}, and only for -interactive use: +As an added convenience, @command{guix shell} will try to do what you +mean when it is invoked interactively without any other arguments +as in: @example guix shell @end example +If it finds a @file{manifest.scm} in the current working directory or +any of its parents, it uses this manifest as though it was given via @code{--manifest}. +Likewise, if it finds a @file{guix.scm} in the same directories, it uses +it to build a development profile as though both @code{--development} +and @code{--file} were present. +In either case, the file will only be loaded if the directory it +resides in is listed in +@file{~/.config/guix/shell-authorized-directories}. This provides an easy way to define, share, and enter development environments. From 140bdbc29fe92eb2e571c1641eb1af773665d14b Mon Sep 17 00:00:00 2001 From: Christine Lemmer-Webber Date: Tue, 17 May 2022 15:14:37 -0400 Subject: [PATCH 037/363] gnu: guile-sjson: Update to 0.2.2. * gnu/packages/guile-xyz.scm (guile-sjson): Update to 0.2.2. --- gnu/packages/guile-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index f6488e74a5..70aa1e6547 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -850,14 +850,14 @@ HTML (via SXML) or any other format for rendering.") (define-public guile-sjson (package (name "guile-sjson") - (version "0.2.1") + (version "0.2.2") (source (origin (method url-fetch) (uri (string-append "https://dustycloud.org/misc/sjson-" version ".tar.gz")) (sha256 (base32 - "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3")) + "08sr16fg5cqvik3wblav6k4b6djc5ydhgfvxa49bc5bh1irqvrcn")) (modules '((guix build utils))) (snippet '(begin From 665dd8211cb5c7556f0fb83944d33215accf957a Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Tue, 17 May 2022 21:38:06 +0200 Subject: [PATCH 038/363] gnu: emacs-libgit: Fix build. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-libgit)[source]: Drop bundled emacs-module header. [#:phases]: Add “patch-source” phase to fix build failure when building against Emacs 28. --- gnu/packages/emacs-xyz.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 7d014ac02a..529e9329d6 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -789,7 +789,11 @@ on stdout instead of using a socket as the Emacsclient does.") (patches (search-patches ;; Submitted for inclusion upstream (see: ;; https://github.com/magit/libegit2/pull/96). - "emacs-libgit-use-system-libgit2.patch")))) + "emacs-libgit-use-system-libgit2.patch")) + (snippet + #~(begin + ;; bundled, use the one shipped with emacs instead + (delete-file "src/emacs-module.h"))))) ;; Use the cmake-build-system as it provides support for cross builds. (build-system cmake-build-system) (arguments @@ -804,6 +808,13 @@ on stdout instead of using a socket as the Emacsclient does.") (guix build utils)) #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + ;; Use Emacs 28 unibyte strings. + ;; XXX: This now breaks if linked against Emacs <= 26, probably + ;; also 27. + (substitute* "src/egit-blob.c" + (("make_string") "make_unibyte_string")))) (add-after 'unpack 'set-libgit--module-file (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) From 423a3a6b6a254165cd916b7808cdc1767b58c0e2 Mon Sep 17 00:00:00 2001 From: Jack Hill Date: Tue, 17 May 2022 10:05:12 -0400 Subject: [PATCH 039/363] gnu: botan: Update to 2.19.1. * gnu/packages/crypto.scm (botan): Update to 2.19.1. Signed-off-by: Maxim Cournoyer --- gnu/packages/crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index f938d3c115..25aa745b7e 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -946,14 +946,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R (define-public botan (package (name "botan") - (version "2.18.2") + (version "2.19.1") (source (origin (method url-fetch) (uri (string-append "https://botan.randombit.net/releases/" "Botan-" version ".tar.xz")) (sha256 (base32 - "0zih8agygp39ff0dwi3fv8y7dnnzpz3y86kcgjbhzlxry49kn6jl")))) + "0q2mzzg0a40prp9gwjk7d9fn8kwj6z2x6h6mzlm0hr6sxz7h0vp2")))) (build-system gnu-build-system) (arguments '(#:phases From 393bcc012f7a30e9a141499d2f07d56b46354a91 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 17 May 2022 16:04:54 -0400 Subject: [PATCH 040/363] gnu: botan: Use new style and G-Expressions. * gnu/packages/crypto.scm (botan)[phases]: Adjust to use gexps. {check}: Replace 'if' with 'when'. [native-inputs]: Use new style. --- gnu/packages/crypto.scm | 55 +++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 25aa745b7e..e98d9634dc 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -23,6 +23,7 @@ ;;; Copyright © 2021 Maxime Devos ;;; Copyright © 2021, 2022 Brendan Tildesley ;;; Copyright © 2022 Allan Adair +;;; Copyright © 2022 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -956,38 +957,34 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R "0q2mzzg0a40prp9gwjk7d9fn8kwj6z2x6h6mzlm0hr6sxz7h0vp2")))) (build-system gnu-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref %outputs "out")) - (lib (string-append out "/lib"))) - ;; Upstream tests and benchmarks with -O3. - (setenv "CXXFLAGS" "-O3") - (invoke "python" "./configure.py" - (string-append "--prefix=" out) - "--disable-static" + (list + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Upstream tests and benchmarks with -O3. + (setenv "CXXFLAGS" "-O3") + (invoke "python" "./configure.py" + (string-append "--prefix=" #$output) + "--disable-static" - ;; Otherwise, the `botan` executable cannot find - ;; libbotan. - (string-append "--ldflags=-Wl,-rpath=" lib) + ;; Otherwise, the `botan` executable cannot find + ;; libbotan. + (string-append "--ldflags=-Wl,-rpath=" #$output "/lib") - "--with-os-feature=getentropy" - "--with-rst2man" + "--with-os-feature=getentropy" + "--with-rst2man" - ;; Recommended by upstream - "--with-zlib" "--with-bzip2" "--with-sqlite3")))) - (add-before 'check 'library-path-for-tests - (lambda _ (setenv "LD_LIBRARY_PATH" (getcwd)))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (if tests? - (invoke "./botan-test"))))))) - (native-inputs - `(("python" ,python-wrapper) - ("python-docutils" ,python-docutils))) - (inputs - (list sqlite bzip2 zlib)) + ;; Recommended by upstream + "--with-zlib" "--with-bzip2" "--with-sqlite3"))) + (add-before 'check 'library-path-for-tests + (lambda _ (setenv "LD_LIBRARY_PATH" (getcwd)))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./botan-test"))))))) + (native-inputs (list python-wrapper python-docutils)) + (inputs (list sqlite bzip2 zlib)) (synopsis "Cryptographic library in C++11") (description "Botan is a cryptography library, written in C++11, offering the tools necessary to implement a range of practical systems, such as TLS/DTLS, From b6bfe9ea6a1b19159455b34f1af4ac00ef9b94ab Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:00 +0200 Subject: [PATCH 041/363] gnu: guile-git: Use libgit2-1.3. * gnu/packages/guile.scm (guile-git)[inputs]: Substitute libgit2-1.3 for libgit2. --- gnu/packages/guile.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 79680a2c29..a9e04cb476 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2017 Andy Wingo ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017, 2019 Mathieu Othacehe -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2022 Tobias Geerinckx-Rice ;;; Copyright © 2017, 2018 Amirouche ;;; Copyright © 2018 Danny Milosavljevic ;;; Copyright © 2018 Eric Bavier @@ -833,7 +833,9 @@ type system, elevating types to first-class status.") (native-inputs (list pkg-config autoconf automake texinfo guile-3.0 guile-bytestructures)) (inputs - (list guile-3.0 libgit2)) + ;; libgit2@1.4.3 ‘fixed’ a git CVE it never shared, breaking Guix. Use + ;; 1.3 for now; see for alternatives. + (list guile-3.0 libgit2-1.3)) (propagated-inputs (list guile-bytestructures)) (synopsis "Guile bindings for libgit2") From 0ae9e75c31b22ea55093f4cd05954f366b1f8bcc Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 17 May 2022 21:52:24 -0400 Subject: [PATCH 042/363] gnu: emacs-elpy: Disable tests now failing with Emacs 28.1. * gnu/packages/emacs-xyz.scm (emacs-elpy)[phases] {disable-broken-tests}: Delete the elpy-project-find-git-root-test.el test file. Mark the elpy-company-backend-should-add-shell-candidates, elpy-eldoc-documentation-should-show-object-onelinedoc, elpy-shell-send-file-should-accept-large-strings, elpy-shell-should-echo-outputs as expected failures. --- gnu/packages/emacs-xyz.scm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 529e9329d6..df7bc30bc1 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10972,9 +10972,25 @@ indentation guides in Emacs: (with-directory-excursion "test" (for-each delete-file (append (find-files "." "elpy-refactor") - (find-files "." "elpy-multiedit") - (find-files "." "elpy-pdb") - (find-files "." "elpy-promise")))))) + (find-files "." "elpy-multiedit") + (find-files "." "elpy-pdb") + (find-files "." "elpy-promise"))) + ;; These test fail since upgrading Emacs from version 27 to + ;; 28.1 (see: + ;; https://github.com/jorgenschaefer/elpy/issues/1982). + (delete-file "elpy-project-find-git-root-test.el") + (substitute* "elpy-company-backend-test.el" + (("elpy-company-backend-should-add-shell-candidates.*" all) + (string-append all " :expected-result :failed\n"))) + (substitute* "elpy-eldoc-documentation-test.el" + (("elpy-eldoc-documentation-should-show-object-onelinedoc.*" all) + (string-append all " :expected-result :failed\n"))) + (substitute* "elpy-shell-send-file-test.el" + (("elpy-shell-send-file-should-accept-large-strings.*" all) + (string-append all " :expected-result :failed\n"))) + (substitute* "elpy-shell-echo-inputs-and-outputs-test.el" + (("elpy-shell-should-echo-outputs.*" all) + (string-append all " :expected-result :failed\n")))))) ;; The default environment of the RPC uses Virtualenv to install ;; Python dependencies from PyPI. We don't want/need this in Guix. (add-before 'check 'do-not-use-virtualenv From db916e76d6eeea880ab0612fa1c9d9c363f34392 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 17 May 2022 23:03:53 -0400 Subject: [PATCH 043/363] gnu: emacs-nix-mode: Update to 1.4.5-0.8fe2ccf. * gnu/packages/emacs-xyz.scm (emacs-nix-mode): Update to 1.4.5-0.8fe2ccf. [source]: Use latest commit. [inputs]: Turn into... [native-inputs]: ... this. Add emacs-magit. --- gnu/packages/emacs-xyz.scm | 41 ++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index df7bc30bc1..9ecd2be185 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -24020,27 +24020,30 @@ chevron marks.") (license license:gpl3+)))) (define-public emacs-nix-mode - (package - (name "emacs-nix-mode") - (version "1.4.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/NixOS/nix-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1bqlhkxg0faddhvxx909dq46dxdxk4mdyhdpww92dmzgxdpq38sx")))) - (build-system emacs-build-system) - (inputs - (list emacs-company emacs-json-mode emacs-mmm-mode)) - (home-page "https://github.com/NixOS/nix-mode") - (synopsis "Emacs major mode for editing Nix expressions") - (description "@code{nixos-mode} provides an Emacs major mode for editing + ;; Use the latest commit to get unreleased fixes to build with Emacs 28.1. + (let ((commit "8fe2ccf0b01f694a77d2528e06c10f06057784f6") + (revision "0")) + (package + (name "emacs-nix-mode") + (version (git-version "1.4.5" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/NixOS/nix-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08kz9qp4gp55z1i87ig0ysq6pgqgwlgr765g1vp8gsh6lp3myh36")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-company emacs-json-mode emacs-magit emacs-mmm-mode)) + (home-page "https://github.com/NixOS/nix-mode") + (synopsis "Emacs major mode for editing Nix expressions") + (description "@code{nixos-mode} provides an Emacs major mode for editing Nix expressions. It supports syntax highlighting, indenting and refilling of comments.") - (license license:lgpl2.1+))) + (license license:lgpl2.1+)))) (define-public emacs-libmpdel (package From de652e4e81d7150c14c785931f3a871cfcf07aea Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 17 May 2022 23:51:07 -0400 Subject: [PATCH 044/363] gnu: emacs-rpm-spec-mode: Update to 0.16-0.c1c3805. * gnu/packages/emacs-xyz.scm (emacs-rpm-spec-mode) [source]: Fetch from git, and use last commit to update to 0.16-0.c1c3805. [arguments]: New field. --- gnu/packages/emacs-xyz.scm | 59 +++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 9ecd2be185..bf6ebb9ad3 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -15794,27 +15794,46 @@ library.") (license license:gpl3+)))) (define-public emacs-rpm-spec-mode - (package - (name "emacs-rpm-spec-mode") - (version "0.16") - (source - (origin - (method url-fetch) - ;; URI has the Fedora release number instead of the version - ;; number. This will have to updated manually every new release. - (uri (string-append - "https://src.fedoraproject.org/cgit/rpms" - "/emacs-rpm-spec-mode.git/snapshot" - "/emacs-rpm-spec-mode-f26.tar.gz")) - (sha256 - (base32 - "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3")))) - (build-system emacs-build-system) - (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git") - (synopsis "Emacs major mode for editing RPM spec files") - (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for + (let ((commit "c1c38050c48ea330c7cea632b8785d66daeefb2b") + (revision "0")) + (package + (name "emacs-rpm-spec-mode") + (version (git-version "0.16" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stigbjorlykke/rpm-spec-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0427kcvf2ljhzwxskn3jzk0ncrl3f9zcz2sm83d9pmhh5jax2gch")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-for-emacs-28 + (lambda _ + ;; Since Emacs 28, define-obsolete-variable-alias require a + ;; 3rd argument to specify when the deprecation was + ;; introduced. + ;; The rpm-spec-mode.el file is encoded in ISO-8859-1 (iso-latin-1). + (with-fluids ((%default-port-encoding "ISO-8859-1")) + (substitute* "rpm-spec-mode.el" + (("'rpm-spec-completion-ignore-case" all) + (string-append all " \"0.12\"")) + (("'rpm-spec-nobuild" all) + (string-append all " \"0.12\"")) + (("'rpm-spec-initialize-sections" all) + (string-append all " \"0.12\"")) + (("'rpm-spec-insert-changelog-version" all) + (string-append all " \"0.12\""))))))))) + (home-page "https://github.com/stigbjorlykke/rpm-spec-mode") + (synopsis "Emacs major mode for editing RPM spec files") + (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for editing RPM spec files.") - (license license:gpl2+))) + (license license:gpl2+)))) (define-public emacs-lcr (package From 5fc5cc2f735426fbaf72f0f7f38efbbd1b38cc52 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sun, 15 May 2022 14:25:37 -0400 Subject: [PATCH 045/363] gnu: emacs-lispy: Fix failing test under Emacs 28. * gnu/packages/patches/emacs-lispy-fix-thread-last-test.patch: New file. * gnu/packages/emacs-xyz.scm (emacs-lispy): Use it here. * gnu/local.mk (dist_patch_DATA): Register it here. Signed-off-by: Maxim Cournoyer --- gnu/local.mk | 1 + gnu/packages/emacs-xyz.scm | 4 +- .../emacs-lispy-fix-thread-last-test.patch | 39 +++++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/emacs-lispy-fix-thread-last-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index 79019e8564..92e6a14e52 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1034,6 +1034,7 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ %D%/packages/patches/emacs-hyperbole-toggle-messaging.patch \ %D%/packages/patches/emacs-libgit-use-system-libgit2.patch \ + %D%/packages/patches/emacs-lispy-fix-thread-last-test.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ %D%/packages/patches/emacs-telega-path-placeholder.patch \ %D%/packages/patches/emacs-telega-test-env.patch \ diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index bf6ebb9ad3..31a4566c43 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -21,7 +21,7 @@ ;;; Copyright © 2017, 2018, 2019, 2020, 2022 Mathieu Othacehe ;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Clément Lassieur ;;; Copyright © 2017 Vasile Dumitrascu -;;; Copyright © 2017, 2018 Kyle Meyer +;;; Copyright © 2017, 2018, 2022 Kyle Meyer ;;; Copyright © 2017 Kei Kebreau ;;; Copyright © 2017 George Clemmer ;;; Copyright © 2017, 2018 Feng Shu @@ -9726,6 +9726,8 @@ navigate code in a tree-like fashion.") (sha256 (base32 "1q3sgk8ffwajmh8l7c4p4fz36xw4fqds8yqblbi5kardaa8bs8cs")) + (patches + (search-patches "emacs-lispy-fix-thread-last-test.patch")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs diff --git a/gnu/packages/patches/emacs-lispy-fix-thread-last-test.patch b/gnu/packages/patches/emacs-lispy-fix-thread-last-test.patch new file mode 100644 index 0000000000..2690dabdc8 --- /dev/null +++ b/gnu/packages/patches/emacs-lispy-fix-thread-last-test.patch @@ -0,0 +1,39 @@ +From dbe23aec174001c42f6edc7a594863a82a24bcfa Mon Sep 17 00:00:00 2001 +From: Kyle Meyer +Date: Sun, 15 May 2022 13:56:37 -0400 +Subject: [PATCH] lispy-test.el (lispy-toggle-threaded-last): Update for Emacs + 28 + +Starting with Emacs 28.1, thread-first uses `(declare (indent 0) ...)` +rather than `(declare (indent 1) ...)`. +--- + + Proposed upstream at . + + lispy-test.el | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/lispy-test.el b/lispy-test.el +index d946731..87d8c87 100644 +--- a/lispy-test.el ++++ b/lispy-test.el +@@ -150,7 +150,13 @@ (ert-deftest lispy-toggle-threaded-last () + "|(thread-last (a 1) (b 2) (c 3))")) + (should (string= (lispy-with "|(equal 1443070800.0\n (ts-unix\n (ts-parse-org-element\n (org-element-context))))" + (lispy-toggle-thread-last)) +- "|(thread-last (org-element-context)\n (ts-parse-org-element)\n (ts-unix)\n (equal 1443070800.0))")) ++ (let ((indent (make-string ++ (if (version< emacs-version "28.1") 2 13) ++ ?\s))) ++ (concat "|(thread-last (org-element-context)\n" ++ indent "(ts-parse-org-element)\n" ++ indent "(ts-unix)\n" ++ indent "(equal 1443070800.0))")))) + (should (string= (lispy-with "|(thread-last (org-element-context)\n (ts-parse-org-element)\n (ts-unix)\n (equal 1443070800.0))" + (lispy-toggle-thread-last)) + "|(equal 1443070800.0\n (ts-unix\n (ts-parse-org-element\n (org-element-context))))"))) + +base-commit: df1b7e614fb0f73646755343e8892ddda310f427 +-- +2.36.0 + From 5a2b9fc2e6fe868e838ae3865e4a2d2c22cda91d Mon Sep 17 00:00:00 2001 From: Aleksandr Vityazev Date: Mon, 16 May 2022 11:04:14 +0000 Subject: [PATCH 046/363] gnu: emacs-ledger-mode: Update to 4.0.0-0-11e85039. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (emacs-ledger-mode): Update to 4.0.0-0-11e85039. [arguments]: Convert to list of G-Expressions. Use ‘search-input-file’ where possible. Drop trailing ‘#t’s. While here, respect TESTS? in check phase. Co-authored-by: Aleksandr Vityazev Signed-off-by: Maxim Cournoyer --- gnu/packages/finance.scm | 96 +++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index b5ab051a1f..09b979899d 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -26,6 +26,8 @@ ;;; Copyright © 2021 François J ;;; Copyright © 2021 Foo Chuan Wei ;;; Copyright © 2021 John Kehayias +;;; Copyright © 2022 Kyle Meyer +;;; Copyright © 2022 Aleksandr Vityazev ;;; ;;; This file is part of GNU Guix. ;;; @@ -395,51 +397,53 @@ in ability, and easy to use.") "See src/wcwidth.cc in the distribution."))))) (define-public emacs-ledger-mode - (package - (name "emacs-ledger-mode") - (version "4.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ledger/ledger-mode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1r5rcyxd6d1rqwamzpvqdbkbdf1zbj75aaciqijrklnm59ps244y")))) - (build-system emacs-build-system) - (arguments - `(;; ledger-test.el is needed at runtime (but probably not for a good reason). - #:exclude '() - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-path - (lambda* (#:key inputs #:allow-other-keys) - (let ((ledger (assoc-ref inputs "ledger"))) - (make-file-writable "ledger-exec.el") - (emacs-substitute-variables "ledger-exec.el" - ("ledger-binary-path" (string-append ledger "/bin/ledger")))) - #t)) - (add-after 'build 'build-doc - (lambda* (#:key outputs #:allow-other-keys) - (let ((target (string-append (assoc-ref outputs "out") - "/share/info"))) - (mkdir-p target) - (invoke "makeinfo" "-o" target - "../source/doc/ledger-mode.texi")) - #t)) - (replace 'check - (lambda _ - (with-directory-excursion "../source/test" - (invoke "make" "test-batch"))))))) - (inputs - (list ledger)) - (native-inputs - (list texinfo)) - (home-page "https://ledger-cli.org/") - (synopsis "Command-line double-entry accounting program") - (description - "Ledger is a powerful, double-entry accounting system that is + ;; The last release was on Nov 8, 2019 and doesn't build with Emacs 28. + (let ((commit "11e850395448ee7012dba16bd6df103f5552ebfb") + (revision "0")) + (package + (name "emacs-ledger-mode") + (version (git-version "4.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ledger/ledger-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hzky36vrlb7kvpyz4gy3zn01zdlmlx0s58w6ggk5djbcvjc2rfx")))) + (build-system emacs-build-system) + (arguments + (list + ;; ledger-test.el is needed at runtime (but probably not for a good reason). + #:exclude #~'() + #:tests? #t + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (make-file-writable "ledger-exec.el") + (emacs-substitute-variables "ledger-exec.el" + ("ledger-binary-path" (search-input-file inputs "/bin/ledger"))))) + (add-after 'build 'build-doc + (lambda _ + (let ((target (string-append #$output "/share/info"))) + (mkdir-p target) + (invoke "makeinfo" "-o" target + "../source/doc/ledger-mode.texi")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "../source/test" + (invoke "make" "test-batch")))))))) + (inputs + (list ledger)) + (native-inputs + (list texinfo)) + (home-page "https://ledger-cli.org/") + (synopsis "Command-line double-entry accounting program") + (description + "Ledger is a powerful, double-entry accounting system that is accessed from the UNIX command-line. This may put off some users, since there is no flashy UI, but for those who want unparalleled reporting access to their data there are few alternatives. @@ -453,7 +457,7 @@ a graph or html instead. Ledger is simple in concept, surprisingly rich in ability, and easy to use. This package provides the Emacs mode.") - (license license:gpl2+))) + (license license:gpl2+)))) (define-public geierlein (package From a028eafcc2c6beffcb370296a4c5a90fe34fbcca Mon Sep 17 00:00:00 2001 From: Aleksandr Vityazev Date: Sun, 15 May 2022 21:16:12 +0000 Subject: [PATCH 047/363] gnu: emacs-haskell-snippets: Update to 0.1.0-1-1c29c4a6. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-haskell-snippets): Update to 0.1.0-1-1c29c4a6. [arguments]: Convert to list of G-Expressions. Drop trailing ‘#t’s. Signed-off-by: Maxim Cournoyer --- gnu/packages/emacs-xyz.scm | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 31a4566c43..015c7682a8 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -29579,11 +29579,12 @@ conventions.") (license license:gpl3+))) (define-public emacs-haskell-snippets - ;; The commit below is 5 commits ahead of release, and includes a build fix. - (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a")) + ;; The commit below is 7 commits ahead of release, and includes a build fix. + ;; And also a fix in one snippet. + (let ((commit "1c29c4a68ce89848b8d371c6510d1de3b586c8b3")) (package (name "emacs-haskell-snippets") - (version (git-version "0.1.0" "0" commit)) + (version (git-version "0.1.0" "1" commit)) (source (origin (method git-fetch) @@ -29593,20 +29594,19 @@ conventions.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci")))) + (base32 "1lwnggarmavyf164cfzbzzkq9ffahhd3bz7gw644czs49sndcawf")))) (build-system emacs-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-snippets - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (snippets + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'install-snippets + (lambda _ + (let ((snippets (string-append - out "/share/emacs/site-lisp/snippets/haskell-mode"))) - (mkdir-p snippets) - (copy-recursively "snippets/haskell-mode" snippets) - #t)))))) + #$output "/share/emacs/site-lisp/snippets/haskell-mode"))) + (mkdir-p snippets) + (copy-recursively "snippets/haskell-mode" snippets))))))) (propagated-inputs (list emacs-yasnippet)) (home-page "https://github.com/haskell/haskell-snippets") From d58c9ca9e2f62047e3c9201be51a33597c6d682c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 18 May 2022 13:04:58 +0200 Subject: [PATCH 048/363] gnu: emacs-evil: Update to 1.14.2. * gnu/packages/emacs-xyz.scm (emacs-evil): Update to 1.14.2. [arguments]: Rewrite in gexp style. --- gnu/packages/emacs-xyz.scm | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 015c7682a8..c43fa5aed8 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12075,7 +12075,7 @@ news items, openrc and runscripts.") (define-public emacs-evil (package (name "emacs-evil") - (version "1.14.0") + (version "1.14.2") (source (origin (method git-fetch) @@ -12085,20 +12085,20 @@ news items, openrc and runscripts.") (file-name (git-file-name name version)) (sha256 (base32 - "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p")))) + "1mhm1hd6gzxc2vvihh1w1j8f30xp0ssqcxnp8fx22niz04fk5df8")))) (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'fix-test-helpers - (lambda _ - (substitute* "evil-test-helpers.el" - (("\\(undo-tree-mode 1\\)") "")) - #t)) - (add-before 'install 'make-info - (lambda _ - (with-directory-excursion "doc/build/texinfo" - (invoke "makeinfo" "--no-split" - "-o" "evil.info" "evil.texi"))))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'fix-test-helpers + (lambda _ + (substitute* "evil-test-helpers.el" + (("\\(undo-tree-mode 1\\)") "")))) + (add-before 'install 'make-info + (lambda _ + (with-directory-excursion "doc/build/texinfo" + (invoke "makeinfo" "--no-split" + "-o" "evil.info" "evil.texi"))))))) (build-system emacs-build-system) (native-inputs (list texinfo)) (home-page "https://github.com/emacs-evil/evil") From 69ec5baaf7aa6ed3ce5ecaad9bb66d122f91c3ec Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Wed, 11 May 2022 07:56:30 -0400 Subject: [PATCH 049/363] gnu: git: Update to 2.36.1. From f5fbd1e920120720ad9e983ab0bf740603250a06 Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Tue, 10 May 2022 14:17:25 +0000 Subject: [PATCH] gnu: git: Update to 2.36.1. * gnu/packages/version-control.scm (git): Update to 2.36.1. Signed-off-by: Maxim Cournoyer --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 3e275b3287..db5b53147c 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -222,14 +222,14 @@ Python 3.3 and later, rather than on Python 2.") (define-public git (package (name "git") - (version "2.36.0") + (version "2.36.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "1ly13j37h1y8bgcj3h0cl43vcpwk9j4gsasssk8gar44cp0vypmg")))) + "0w43a35mhc2qf2gjkxjlnkf2lq8g0snf34iy5gqx2678yq7llpa0")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -249,7 +249,7 @@ Python 3.3 and later, rather than on Python 2.") version ".tar.xz")) (sha256 (base32 - "0p6vc6nyaibx2lxirjj2nm5spk5q6svz8l3w0pqnaa3i7l7c6qy0")))) + "0vsfjs6xg228yhqcpaiwkpncaqcghnm0pwdxmgibz0rj6d8ydrmi")))) ;; For subtree documentation. ("asciidoc" ,asciidoc) ("docbook-xsl" ,docbook-xsl) From 8deed9d086981600c6e82dc2e8987a62a69eae77 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 May 2022 16:19:28 +0200 Subject: [PATCH 050/363] gnu: guile-redis: Update to 2.2.0. * gnu/packages/guile-xyz.scm (guile-redis): Update to 2.2.0. --- gnu/packages/guile-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 70aa1e6547..06e3ffb485 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2571,7 +2571,7 @@ interface for reading articles in any format.") (define-public guile-redis (package (name "guile-redis") - (version "2.1.1") + (version "2.2.0") (home-page "https://github.com/aconchillo/guile-redis") (source (origin (method git-fetch) @@ -2581,7 +2581,7 @@ interface for reading articles in any format.") (file-name (git-file-name name version)) (sha256 (base32 - "0pvk4yadgx64wk81cpisdc7zqhk6ww58xi5fs5fs6s28wb6l5bfj")))) + "0cb31vj88f3hj93v1lzxcqjyz7ym2gmpk31gv5i2dqv721frnlyj")))) (build-system gnu-build-system) (arguments '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) From 93ef1eecd96a0dd0ebfe44adac8b027151697f2e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 May 2022 16:20:25 +0200 Subject: [PATCH 051/363] gnu: python-rich: Update to 12.4.1. * gnu/packages/python-xyz.scm (python-rich): Update to 12.4.1. --- gnu/packages/python-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 29b42ea3a0..2eebf774bb 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -16497,13 +16497,13 @@ is made as zipfile like as possible.") (define-public python-rich (package (name "python-rich") - (version "10.2.2") + (version "12.4.1") (source (origin (method url-fetch) (uri (pypi-uri "rich" version)) (sha256 (base32 - "1z5m5brcdf3vndpavcqj5nl35xby4x5rfj48klhwqycfqf3g9cqp")))) + "149vjb4cpf9mz14iig0b6d8065dm8aslp6pc45g9ipmp1wf00ffj")))) (build-system python-build-system) (arguments `(#:phases @@ -16532,7 +16532,7 @@ is made as zipfile like as possible.") (file-name (git-file-name name version)) (sha256 (base32 - "19f4svb363sn5708qkpa6lakmiwzyb25h8kmh7bqrsbbrvi9hr70")))))) + "17c3gljn8zv32xnpsgd3fqgqn4r7cdfqri41hridcpbhssdgkyp9")))))) (home-page "https://github.com/willmcgugan/rich") (synopsis "Render rich text and more to the terminal") (description From 7f672327c0755c20f062819fee4d3d4ff3b9829d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 052/363] gnu: bind: Update to 9.16.29 [fixes CVE-2022-1183]. * gnu/packages/dns.scm (bind): Update to 9.16.29. --- 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 6fccce33b1..24672f7260 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -333,14 +333,14 @@ and BOOTP/TFTP for network booting of diskless machines.") ;; When updating, check whether isc-dhcp's bundled copy should be as well. ;; The BIND release notes are available here: ;; https://www.isc.org/bind/ - (version "9.16.27") + (version "9.16.29") (source (origin (method url-fetch) (uri (string-append "https://ftp.isc.org/isc/bind9/" version "/bind-" version ".tar.xz")) (sha256 - (base32 "0rpmighbbim9wi24p2bg814x5z20xkvv5y6nfnfh30ac22pjm44h")) + (base32 "0rklj342khnycs462nd3k35yymsdv6ibv352jv1nymmxxfc8yh68")) (patches (search-patches "bind-re-add-attr-constructor-priority.patch")))) (build-system gnu-build-system) From 1259d320fc53c79668db9943b2e33ead874276d9 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Tue, 4 Jan 2022 22:23:14 +0000 Subject: [PATCH 053/363] gnu: freedroidrpg: Update to 1.0rc2. * gnu/packages/games.scm (freedroidrpg): Update to 1.0rc2. [source]: Handle rc suffix in version number. [configure-flags]: Use gexps. [inputs]: Use new style. Add glew. Signed-off-by: Maxim Cournoyer Modified-by: Maxim Cournoyer --- gnu/packages/games.scm | 62 ++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index c6d23298ff..77b990a4ce 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1353,44 +1353,48 @@ effects and music to make a completely free game.") (define-public freedroidrpg (package (name "freedroidrpg") - (version "0.16.1") + (version "1.0rc2") (source (origin (method url-fetch) - (uri (string-append "http://ftp.osuosl.org/pub/freedroid/" - "freedroidRPG-" (version-major+minor version) "/" - "freedroidRPG-" version ".tar.gz")) + (uri (let ((major+minor + (version-major+minor + (string-replace-substring version "rc" ".")))) + (string-append "http://ftp.osuosl.org/pub/freedroid/" + "freedroidRPG-" major+minor "/" + "freedroidRPG-" version ".tar.gz"))) (sha256 - (base32 "0n4kn38ncmcy3lrxmq8fjry6c1z50z4q1zcqfig0j4jb0dsz2va2")))) + (base32 "10jknaad2ph9j5bs4jxvpnl8rq5yjlq0nasv98f4mki2hh8yiczy")))) (build-system gnu-build-system) (arguments - `(#:configure-flags - (list - (string-append "CFLAGS=" - "-fcommon " ; XXX needed to build with GCC 10 - "-I" (assoc-ref %build-inputs "sdl-gfx") "/include/SDL " - "-I" (assoc-ref %build-inputs "sdl-image") "/include/SDL " - "-I" (assoc-ref %build-inputs "sdl-mixer") "/include/SDL") - "--enable-opengl") - ;; FIXME: the test suite fails with the following error output: - ;; 4586 Segmentation fault env SDL_VIDEODRIVER=dummy \ - ;; SDL_AUDIODRIVER=dummy ./src/freedroidRPG -nb text - #:tests? #f)) + (list + #:configure-flags + #~(list + (string-append "CFLAGS=-fcommon " + "-I" #$(this-package-input "sdl-gfx") "/include/SDL " + "-I" #$(this-package-input "sdl-image") "/include/SDL " + "-I" #$(this-package-input "sdl-mixer") "/include/SDL") + "--enable-opengl") + ;; FIXME: the test suite fails with the following error output: + ;; 4586 Segmentation fault env SDL_VIDEODRIVER=dummy \ + ;; SDL_AUDIODRIVER=dummy ./src/freedroidRPG -nb text + #:tests? #f)) (native-inputs (list pkg-config)) (inputs - `(("glu" ,glu) - ("libjpeg" ,libjpeg-turbo) - ("libogg" ,libogg) - ("libpng" ,libpng) - ("libvorbis" ,libvorbis) - ("mesa" ,mesa) - ("python" ,python-wrapper) - ("sdl" ,sdl) - ("sdl-gfx" ,sdl-gfx) - ("sdl-image" ,sdl-image) - ("sdl-mixer" ,sdl-mixer) - ("zlib" ,zlib))) + (list glew + glu + libjpeg-turbo + libogg + libpng + libvorbis + mesa + python-wrapper + sdl + sdl-gfx + sdl-image + sdl-mixer + zlib)) (home-page "https://www.freedroid.org/") (synopsis "Isometric role-playing game against killer robots") (description From fe9d14552a918ab3d064e56d7cb8f8342e87d2d4 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Wed, 11 May 2022 18:36:20 +0000 Subject: [PATCH 054/363] gnu: python-tldextract: Update to 3.3.0. * gnu/packages/python-xyz.scm (python-tldextract): Update to 3.3.0. [propagated-inputs]: Add python-filelock. [native-inputs]: Add python-setuptools-scm. Signed-off-by: Maxim Cournoyer --- gnu/packages/python-xyz.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 2eebf774bb..5094ef068c 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -23684,19 +23684,19 @@ identifying what the file is.") (define-public python-tldextract (package (name "python-tldextract") - (version "2.2.0") + (version "3.3.0") (source (origin (method url-fetch) (uri (pypi-uri "tldextract" version)) (sha256 (base32 - "1d5s8v6kpsgazyahflhji1cfdcf89rv7l7z55v774bhzvcjp2y99")))) + "1wac4yvcpgqjvls770mfx165amvy7gr00nnd2w24bqqwyamj9kdd")))) (build-system python-build-system) (native-inputs - (list python-pytest python-responses)) + (list python-pytest python-responses python-setuptools-scm)) (propagated-inputs - (list python-idna python-requests python-requests-file)) + (list python-filelock python-idna python-requests python-requests-file)) (home-page "https://github.com/john-kurkowski/tldextract") (synopsis From 894b89c17bef61eec61e96f9c5acdd749aec119b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 18 May 2022 10:24:21 -0400 Subject: [PATCH 055/363] gnu: python-scrapy: Fix indentation * gnu/packages/python-web.scm (python-scrapy): Fix indentation. --- gnu/packages/python-web.scm | 82 ++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 7636931091..aa510b57b7 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6901,52 +6901,52 @@ regular expressions.") (name "python-scrapy") (version "2.6.1") (source - (origin - (method url-fetch) - (uri (pypi-uri "Scrapy" version)) - (sha256 - (base32 "09rqalbwcz9ix8h0992mzjs50sssxsmmh8w9abkrqchgknjmbzan")))) + (origin + (method url-fetch) + (uri (pypi-uri "Scrapy" version)) + (sha256 + (base32 "09rqalbwcz9ix8h0992mzjs50sssxsmmh8w9abkrqchgknjmbzan")))) (build-system python-build-system) (arguments `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" - ;; requires network access - "--ignore" "tests/test_command_check.py" - "-k" - (string-append - ;; Failing for unknown reasons - "not test_server_set_cookie_domain_suffix_public_private" - " and not test_user_set_cookie_domain_suffix_public_private" - " and not test_pformat") - "tests"))))))) + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" + ;; requires network access + "--ignore" "tests/test_command_check.py" + "-k" + (string-append + ;; Failing for unknown reasons + "not test_server_set_cookie_domain_suffix_public_private" + " and not test_user_set_cookie_domain_suffix_public_private" + " and not test_pformat") + "tests"))))))) (propagated-inputs - (list python-botocore ; Optional: For S3FeedStorage class. - python-cryptography - python-cssselect - python-itemadapter - python-itemloaders - python-lxml - python-parsel - python-protego - python-pydispatcher - python-pyopenssl - python-queuelib - python-service-identity - python-setuptools - python-tldextract - python-twisted - python-w3lib - python-zope-interface)) + (list python-botocore ; Optional: For S3FeedStorage class. + python-cryptography + python-cssselect + python-itemadapter + python-itemloaders + python-lxml + python-parsel + python-protego + python-pydispatcher + python-pyopenssl + python-queuelib + python-service-identity + python-setuptools + python-tldextract + python-twisted + python-w3lib + python-zope-interface)) (native-inputs - (list python-pytest - python-pyftpdlib - python-sybil - python-testfixtures - python-uvloop)) + (list python-pytest + python-pyftpdlib + python-sybil + python-testfixtures + python-uvloop)) (home-page "https://scrapy.org") (synopsis "High-level Web crawling and Web scraping framework") (description "Scrapy is a fast high-level web crawling and web From 1c4241d91515b75d4dab160be6b2ad840ceb6335 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 18 May 2022 10:25:14 -0400 Subject: [PATCH 056/363] gnu: python-scrapy: Parallelize test suite. * gnu/packages/python-web.scm (python-scrapy)[phases]{check}: Run in parallel. Disable problematic (when run in parallel) tests. Use complete sentences for comments. [native-inputs]: Add python-pytest-xdist. [description]: Use double space between sentences. --- gnu/packages/python-web.scm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index aa510b57b7..2a688b53df 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6914,11 +6914,17 @@ regular expressions.") (lambda* (#:key tests? #:allow-other-keys) (when tests? (invoke "pytest" - ;; requires network access + "-n" (number->string (parallel-job-count)) + ;; These tests fail when run in parallel (see: + ;; https://github.com/scrapy/scrapy/issues/5502). + "--ignore" "tests/test_engine.py" + "--ignore" "tests/test_engine_stop_download_bytes.py" + "--ignore" "tests/test_engine_stop_download_headers.py" + ;; This test require network access. "--ignore" "tests/test_command_check.py" "-k" (string-append - ;; Failing for unknown reasons + ;; The followin tests fail for unknown reasons. "not test_server_set_cookie_domain_suffix_public_private" " and not test_user_set_cookie_domain_suffix_public_private" " and not test_pformat") @@ -6943,6 +6949,7 @@ regular expressions.") python-zope-interface)) (native-inputs (list python-pytest + python-pytest-xdist python-pyftpdlib python-sybil python-testfixtures @@ -6951,6 +6958,6 @@ regular expressions.") (synopsis "High-level Web crawling and Web scraping framework") (description "Scrapy is a fast high-level web crawling and web scraping framework, used to crawl websites and extract structured data -from their pages. It can be used for a wide range of purposes, from data +from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing.") (license license:bsd-3))) From b1cfd39d0164bcbd6aa97672eb87bad234de6ca4 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Wed, 18 May 2022 18:31:25 +0200 Subject: [PATCH 057/363] gnu: freecad: Fix build. * gnu/packages/engineering.scm (freecad)[inputs]: Add fontconfig. --- gnu/packages/engineering.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index fe9e06e05a..7d44789578 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -2468,6 +2468,7 @@ comments."))) coin3D double-conversion eigen + fontconfig freetype gl2ps glew From 4f7cd5daa2291ac976ad47a66306b982033c09f0 Mon Sep 17 00:00:00 2001 From: Maze Date: Thu, 19 May 2022 01:25:26 +0800 Subject: [PATCH 058/363] gnu: emacs-evil: Update to commit 008a6cdb12f15e748979a7d1c2f26c34c84dedbf. * gnu/packages/emacs-xyz.scm (emacs-evil): Update to commit 008a6cdb12f15e748979a7d1c2f26c34c84dedbf. [version]: Bump main version part to 1.15.0. Signed-off-by: Liliana Marie Prikler --- gnu/packages/emacs-xyz.scm | 70 ++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index c43fa5aed8..eed2f4b71c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12073,41 +12073,45 @@ news items, openrc and runscripts.") (license license:gpl2+))) (define-public emacs-evil - (package - (name "emacs-evil") - (version "1.14.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-evil/evil") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1mhm1hd6gzxc2vvihh1w1j8f30xp0ssqcxnp8fx22niz04fk5df8")))) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-before 'check 'fix-test-helpers - (lambda _ - (substitute* "evil-test-helpers.el" - (("\\(undo-tree-mode 1\\)") "")))) - (add-before 'install 'make-info - (lambda _ - (with-directory-excursion "doc/build/texinfo" - (invoke "makeinfo" "--no-split" - "-o" "evil.info" "evil.texi"))))))) - (build-system emacs-build-system) - (native-inputs (list texinfo)) - (home-page "https://github.com/emacs-evil/evil") - (synopsis "Extensible Vi layer for Emacs") - (description - "Evil is an extensible vi layer for Emacs. It emulates the + ;; Commit message claims this is 1.15.0, but there's no tag for it, so we + ;; use full git-version instead + (let ((commit "008a6cdb12f15e748979a7d1c2f26c34c84dedbf") + (revision "0")) + (package + (name "emacs-evil") + (version (git-version "1.15.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-evil/evil") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hxhw1rsm0wbrhz85gfabncanijpxd47g5yrdnl3bbm499z1gsvg")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-test-helpers + (lambda _ + (substitute* "evil-test-helpers.el" + (("\\(undo-tree-mode 1\\)") "")) + #t)) + (add-before 'install 'make-info + (lambda _ + (with-directory-excursion "doc/build/texinfo" + (invoke "makeinfo" "--no-split" + "-o" "evil.info" "evil.texi"))))))) + (build-system emacs-build-system) + (native-inputs (list texinfo)) + (home-page "https://github.com/emacs-evil/evil") + (synopsis "Extensible Vi layer for Emacs") + (description + "Evil is an extensible vi layer for Emacs. It emulates the main features of Vim, and provides facilities for writing custom extensions.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-evil-collection (package From 1f3a155548c1203480bfb7fceed82acfe9087ce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 May 2022 18:27:59 +0200 Subject: [PATCH 059/363] gnu: 0ad: Use regular symbol syntax. * gnu/packages/games.scm (0ad)[inputs]: Use regular symbol syntax for '0ad-data'. --- gnu/packages/games.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 77b990a4ce..37a245c570 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -6677,7 +6677,7 @@ fight against their plot and save his fellow rabbits from slavery.") ;; A snippet here would cause a build failure because of timestamps ;; reset. See https://bugs.gnu.org/26734. (inputs - (list #{0ad-data}# + (list 0ad-data curl enet fmt From 9a5d68692314bebd16dbcdc0d4e4e52fa4d5812f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 May 2022 23:39:17 +0200 Subject: [PATCH 060/363] services: Add more description fields. * gnu/services.scm (simple-service): Add 'description' field. * gnu/services/base.scm (udev-rules-service): Likewise. * gnu/system/install.scm (configuration-template-service-type): Likewise. * gnu/tests.scm (marionette-service-type): Likewise. --- gnu/services.scm | 3 ++- gnu/services/base.scm | 3 ++- gnu/system/install.scm | 6 ++++-- gnu/tests.scm | 7 +++++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/gnu/services.scm b/gnu/services.scm index e3d4fcc232..234ee372b8 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -292,7 +292,8 @@ for service of type '~a'") singleton service type NAME, of which the returned service is an instance." (let* ((extension (service-extension target identity)) (type (service-type (name name) - (extensions (list extension))))) + (extensions (list extension)) + (description "This is a simple service.")))) (service type value))) (define-syntax %modify-service diff --git a/gnu/services/base.scm b/gnu/services/base.scm index bcec888587..3fb92e6da0 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -2191,7 +2191,8 @@ instance." (service-extension account-service-type account-extension) (service-extension - udev-service-type udev-extension)))))) + udev-service-type udev-extension))) + (description "This service adds udev rules.")))) (service type #f))) (define (swap-space->shepherd-service-name space) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 073d7df1db..2fbf08f676 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès +;;; Copyright © 2014-2022 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2017 Marius Bakke @@ -252,7 +252,9 @@ the user's target storage device rather than on the RAM disk." (service-type (name 'configuration-template) (extensions (list (service-extension etc-service-type - /etc/configuration-files))))) + /etc/configuration-files))) + (description "Install the operating system configuration file +templates under @file{/etc/configuration}."))) (define %configuration-template-service (service configuration-template-service-type #t)) diff --git a/gnu/tests.scm b/gnu/tests.scm index 85f38ae8c9..ca677d315b 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès +;;; Copyright © 2016-2020, 2022 Ludovic Courtès ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2021 Maxime Devos @@ -161,7 +161,10 @@ (service-type (name 'marionette-repl) (extensions (list (service-extension shepherd-root-service-type - marionette-shepherd-service))))) + marionette-shepherd-service))) + (description "The @dfn{marionette} service allows a guest +system (virtual machine) to be manipulated by the host. It is used for system +tests."))) (define* (marionette-operating-system os #:key From 3948ac25b1dccc40c7fdf56377f94a0775a835ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 May 2022 23:40:34 +0200 Subject: [PATCH 061/363] services: Make 'description' field mandatory. * gnu/services.scm ()[description]: Remove default value. * tests/services.scm: Add 'description' field to each 'service-type' form. --- gnu/services.scm | 3 +-- tests/services.scm | 38 ++++++++++++++++++++------------------ 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/gnu/services.scm b/gnu/services.scm index 234ee372b8..6f0f4d5bdc 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -183,8 +183,7 @@ (default &no-default-value)) ;; Meta-data. - (description service-type-description ;string - (default #f)) + (description service-type-description) ;string (location service-type-location ; (default (and=> (current-source-location) source-properties->location)) diff --git a/tests/services.scm b/tests/services.scm index e64b3e8de8..8e35758209 100644 --- a/tests/services.scm +++ b/tests/services.scm @@ -30,8 +30,10 @@ (test-equal "services, default value" '(42 123 234 error) - (let* ((t1 (service-type (name 't1) (extensions '()))) + (let* ((t1 (service-type (name 't1) (extensions '()) + (description ""))) (t2 (service-type (name 't2) (extensions '()) + (description "") (default-value 42)))) (list (service-value (service t2)) (service-value (service t2 123)) @@ -40,13 +42,13 @@ (service t1))))) (test-assert "service-back-edges" - (let* ((t1 (service-type (name 't1) (extensions '()) + (let* ((t1 (service-type (name 't1) (extensions '()) (description "") (compose +) (extend *))) - (t2 (service-type (name 't2) + (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 (const '())))) (compose +) (extend *))) - (t3 (service-type (name 't3) + (t3 (service-type (name 't3) (description "") (extensions (list (service-extension t2 identity) (service-extension t1 list))))) @@ -63,16 +65,16 @@ ;; from services of type T3; 'xyz 60' comes from the service of type T2, ;; where 60 = 15 × 4 = (1 + 2 + 3 + 4 + 5) × 4. '(initial-value 5 4 3 2 1 xyz 60) - (let* ((t1 (service-type (name 't1) (extensions '()) + (let* ((t1 (service-type (name 't1) (extensions '()) (description "") (compose concatenate) (extend cons))) - (t2 (service-type (name 't2) + (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 (cut list 'xyz <>)))) (compose (cut reduce + 0 <>)) (extend *))) - (t3 (service-type (name 't3) + (t3 (service-type (name 't3) (description "") (extensions (list (service-extension t2 identity) (service-extension t1 list))))) @@ -86,10 +88,10 @@ (service-value r)))) (test-assert "fold-services, ambiguity" - (let* ((t1 (service-type (name 't1) (extensions '()) + (let* ((t1 (service-type (name 't1) (extensions '()) (description "") (compose concatenate) (extend cons))) - (t2 (service-type (name 't2) + (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 list))))) (s (service t2 42))) @@ -105,8 +107,8 @@ #f))) (test-assert "fold-services, missing target" - (let* ((t1 (service-type (name 't1) (extensions '()))) - (t2 (service-type (name 't2) + (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) + (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 list))))) (s (service t2 42))) @@ -119,11 +121,11 @@ #f))) (test-assert "instantiate-missing-services" - (let* ((t1 (service-type (name 't1) (extensions '()) + (let* ((t1 (service-type (name 't1) (extensions '()) (description "") (default-value 'dflt) (compose concatenate) (extend cons))) - (t2 (service-type (name 't2) + (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 list))))) (s1 (service t1 'hey!)) @@ -135,17 +137,17 @@ (instantiate-missing-services (list s1 s2)))))) (test-assert "instantiate-missing-services, indirect" - (let* ((t1 (service-type (name 't1) (extensions '()) + (let* ((t1 (service-type (name 't1) (extensions '()) (description "") (default-value 'dflt) (compose concatenate) (extend cons))) - (t2 (service-type (name 't2) + (t2 (service-type (name 't2) (description "") (default-value 'dflt2) (compose concatenate) (extend cons) (extensions (list (service-extension t1 list))))) - (t3 (service-type (name 't3) + (t3 (service-type (name 't3) (description "") (extensions (list (service-extension t2 list))))) (s1 (service t1)) @@ -160,8 +162,8 @@ (instantiate-missing-services (list s2 s3)))))) (test-assert "instantiate-missing-services, no default value" - (let* ((t1 (service-type (name 't1) (extensions '()))) - (t2 (service-type (name 't2) + (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) + (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 list))))) (s (service t2 42))) From 32916e04f7e1729b7ea5ab768607eb08183c015d Mon Sep 17 00:00:00 2001 From: "yarl-baudig@mailoo.org" Date: Tue, 17 May 2022 23:08:54 +0200 Subject: [PATCH 062/363] daemon: runChild() is forbidden to talk during environment set up MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DerivationGoal::startBuilder() is waiting for an empty line as a check that the environment set up is fine. Fixes . * nix/libstore/build.cc (DerivationGoal::runChild): Remove 'debug' statement corresponding to bind mounts. Signed-off-by: Ludovic Courtès --- nix/libstore/build.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index f6431bb726..9305208009 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -2057,7 +2057,6 @@ void DerivationGoal::runChild() Path source = i->second; Path target = chrootRootDir + i->first; if (source == "/proc") continue; // backwards compatibility - debug(format("bind mounting `%1%' to `%2%'") % source % target); if (stat(source.c_str(), &st) == -1) throw SysError(format("getting attributes of path `%1%'") % source); if (S_ISDIR(st.st_mode)) From 42772a2fa7bba87168d8e9e6803d3152b4899acd Mon Sep 17 00:00:00 2001 From: Luis Henrique Gomes Higino Date: Wed, 18 May 2022 10:32:22 -0300 Subject: [PATCH 063/363] gnu: lua-luv: Update to 1.43.0-0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/libevent.scm (libuv-for-luv): New variable * gnu/packages/lua.scm (lua-luv): Update to 1.43.0-0. [inputs]: Change libuv to libuv-for-luv. [native-inputs]: Update lua-compat-5.3 to 0.10. Signed-off-by: Ludovic Courtès --- gnu/packages/libevent.scm | 17 +++++++++++++++++ gnu/packages/lua.scm | 13 +++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index b3a5cd915e..d807315906 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Pierre Neidhardt +;;; Copyright © 2022 Luis Henrique Gomes Higino ;;; ;;; This file is part of GNU Guix. ;;; @@ -169,6 +170,22 @@ resolution, asynchronous file system operations, and threading primitives.") (home-page "https://github.com/JuliaLang/libuv") (properties '((hidden? . #t)))))) +(define-public libuv-for-luv + ;; When upgrading make-lua-luv, also upgrade this. Get the version from + ;; https://github.com/luvit/luv/blob/master/CMakeLists.txt + (package + (inherit libuv) + (name "libuv") + (version "1.43.0") + (source (origin + (method url-fetch) + (uri (string-append "https://dist.libuv.org/dist/v" version + "/libuv-v" version ".tar.gz")) + (sha256 + (base32 + "194kwq3jfj9s628kzkchdca534rikjw0xiyas0cjbphqmsvjpmwh")))) + (properties '((hidden? . #t))))) + (define-public perl-anyevent (package (name "perl-anyevent") diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index ee4b7727e0..0662b2d064 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2021 Vinícius dos Santos Oliveira ;;; Copyright © 2021 Greg Hogan ;;; Copyright © 2022 Brandon Lucas +;;; Copyright © 2022 Luis Henrique Gomes Higino ;;; ;;; This file is part of GNU Guix. ;;; @@ -785,7 +786,7 @@ Grammars (PEGs).") (define (make-lua-luv name lua) (package (name name) - (version "1.32.0-0") + (version "1.43.0-0") (source (origin ;; The release tarball includes the sources of libuv but does ;; not include the pkg-config files. @@ -796,7 +797,7 @@ Grammars (PEGs).") (file-name (git-file-name name version)) (sha256 (base32 - "0c65c1lhbl0axnyks3910gjs0z0hw7w6jvl07g8kbpnbvfl4qajh")))) + "1yzi4bm845vl84wyv2qw4z1n1v285lgwm681swmp84brfy2s7czp")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there are none @@ -813,22 +814,22 @@ Grammars (PEGs).") (copy-recursively (assoc-ref inputs "lua-compat") "lua-compat") (setenv "CPATH" - (string-append (getcwd) "/lua-compat:" + (string-append (getcwd) "/lua-compat/c-api:" (or (getenv "CPATH") ""))) #t))))) (inputs - (list lua libuv)) + (list lua libuv-for-luv)) (native-inputs `(("lua-compat" ,(origin (method git-fetch) (uri (git-reference (url "https://github.com/keplerproject/lua-compat-5.3") - (commit "daebe77a2f498817713df37f0bb316db1d82222f"))) + (commit "v0.10"))) (file-name "lua-compat-5.3-checkout") (sha256 (base32 - "02a14nvn7aggg1yikj9h3dcf8aqjbxlws1bfvqbpfxv9d5phnrpz")))))) + "1caxn228gx48g6kymp9w7kczgxcg0v0cd5ixsx8viybzkd60dcn4")))))) (home-page "https://github.com/luvit/luv/") (synopsis "Libuv bindings for Lua") (description From 2db523a4a8c483f64e2f02bf1aba770892c9aaf0 Mon Sep 17 00:00:00 2001 From: Luis Henrique Gomes Higino Date: Wed, 18 May 2022 10:32:23 -0300 Subject: [PATCH 064/363] gnu: lua-luv: Use gexps. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/lua.scm (lua-luv)[arguments]: Rewrite using gexps. Signed-off-by: Ludovic Courtès --- gnu/packages/lua.scm | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 0662b2d064..afebc6bc1f 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -800,23 +800,23 @@ Grammars (PEGs).") "1yzi4bm845vl84wyv2qw4z1n1v285lgwm681swmp84brfy2s7czp")))) (build-system cmake-build-system) (arguments - `(#:tests? #f ; there are none - #:configure-flags - '("-DWITH_LUA_ENGINE=Lua" - "-DWITH_SHARED_LIBUV=On" - "-DBUILD_MODULE=Off" - "-DBUILD_SHARED_LIBS=On" - "-DLUA_BUILD_TYPE=System") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'copy-lua-compat - (lambda* (#:key inputs #:allow-other-keys) - (copy-recursively (assoc-ref inputs "lua-compat") - "lua-compat") - (setenv "CPATH" - (string-append (getcwd) "/lua-compat/c-api:" - (or (getenv "CPATH") ""))) - #t))))) + (list #:tests? #f ; there are none + #:configure-flags + #~'("-DWITH_LUA_ENGINE=Lua" + "-DWITH_SHARED_LIBUV=On" + "-DBUILD_MODULE=Off" + "-DBUILD_SHARED_LIBS=On" + "-DLUA_BUILD_TYPE=System") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'copy-lua-compat + (lambda* _ + (copy-recursively #+(this-package-native-input "lua-compat") + "lua-compat") + (setenv "CPATH" + (string-append (getcwd) "/lua-compat/c-api:" + (or (getenv "CPATH") ""))) + #t))))) (inputs (list lua libuv-for-luv)) (native-inputs From e49a2d03bbfcc0cc6b69f2299ba661f2e581301e Mon Sep 17 00:00:00 2001 From: Luis Henrique Gomes Higino Date: Wed, 18 May 2022 10:32:24 -0300 Subject: [PATCH 065/363] gnu: neovim: Update to 0.7.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/vim.scm (neovim): Update to 0.7.0. Signed-off-by: Ludovic Courtès --- gnu/packages/vim.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index bb459933b0..21a22570ad 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -658,7 +658,7 @@ are detected, the user is notified."))) (define-public neovim (package (name "neovim") - (version "0.6.1") + (version "0.7.0") (source (origin (method git-fetch) @@ -667,7 +667,7 @@ are detected, the user is notified."))) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "10p6lg5yv9n6wcwdprwvvi56dfcm4wsj54nm0invyx3mhf7374lx")))) + (base32 "1m7xmry66pn27gvk7qj9di83xa1h7zjp4c6ygnf218pqhr08x06g")))) (build-system cmake-build-system) (arguments `(#:modules ((srfi srfi-26) @@ -713,7 +713,7 @@ are detected, the user is notified."))) (("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc")) #t))))) (inputs - `(("libuv" ,libuv) + `(("libuv" ,libuv-for-luv) ("msgpack" ,msgpack) ("libtermkey" ,libtermkey) ("libvterm" ,libvterm) From 182b25fbf5893772276132e7bc791970a5422f6a Mon Sep 17 00:00:00 2001 From: Luis Henrique Gomes Higino Date: Wed, 18 May 2022 10:32:25 -0300 Subject: [PATCH 066/363] gnu: neovim: Use new style. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/vim.scm (neovim): Use new style. [source]: Rewrite using gexps. [arguments]: Rewrite using gexps. [inputs and native-inputs]: Remove input labels. [description]: Run `guix style`. Signed-off-by: Ludovic Courtès --- gnu/packages/vim.scm | 156 ++++++++++++++++++++++--------------------- 1 file changed, 81 insertions(+), 75 deletions(-) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 21a22570ad..caf9ea85b3 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -659,84 +659,89 @@ are detected, the user is notified."))) (package (name "neovim") (version "0.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/neovim/neovim") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1m7xmry66pn27gvk7qj9di83xa1h7zjp4c6ygnf218pqhr08x06g")))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/neovim/neovim") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1m7xmry66pn27gvk7qj9di83xa1h7zjp4c6ygnf218pqhr08x06g")))) (build-system cmake-build-system) (arguments - `(#:modules ((srfi srfi-26) - (guix build cmake-build-system) - (guix build utils)) - #:configure-flags - (list ,@(if (member (if (%current-target-system) - (gnu-triplet->nix-system (%current-target-system)) - (%current-system)) - (package-supported-systems luajit)) - '() - '("-DPREFER_LUA:BOOL=YES"))) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-lua-paths - (lambda* (#:key inputs #:allow-other-keys) - (let* ((lua-version "5.1") - (lua-cpath-spec - (lambda (prefix) - (let ((path (string-append prefix "/lib/lua/" lua-version))) - (string-append path "/?.so;" path "/?/?.so")))) - (lua-path-spec - (lambda (prefix) - (let ((path (string-append prefix "/share/lua/" lua-version))) - (string-append path "/?.lua;" path "/?/?.lua")))) - (lua-inputs (map (cute assoc-ref inputs <>) - '("lua" - "lua-luv" - "lua-lpeg" - "lua-bitop" - "lua-libmpack")))) - (setenv "LUA_PATH" - (string-join (map lua-path-spec lua-inputs) ";")) - (setenv "LUA_CPATH" - (string-join (map lua-cpath-spec lua-inputs) ";")) - #t))) - (add-after 'unpack 'prevent-embedding-gcc-store-path - (lambda _ - ;; nvim remembers its build options, including the compiler with - ;; its complete path. This adds gcc to the closure of nvim, which - ;; doubles its size. We remove the refirence here. - (substitute* "cmake/GetCompileFlags.cmake" - (("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc")) - #t))))) - (inputs - `(("libuv" ,libuv-for-luv) - ("msgpack" ,msgpack) - ("libtermkey" ,libtermkey) - ("libvterm" ,libvterm) - ("unibilium" ,unibilium) - ("jemalloc" ,jemalloc) - ("lua" ,(if (member (if (%current-target-system) - (gnu-triplet->nix-system (%current-target-system)) - (%current-system)) - (package-supported-systems luajit)) - luajit - lua-5.1)) - ("lua-luv" ,lua5.1-luv) - ("lua-lpeg" ,lua5.1-lpeg) - ("lua-bitop" ,lua5.1-bitop) - ("lua-libmpack" ,lua5.1-libmpack) - ("tree-sitter" ,tree-sitter))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("gettext" ,gettext-minimal) - ("gperf" ,gperf))) + (list #:modules + '((srfi srfi-26) (guix build cmake-build-system) + (guix build utils)) + #:configure-flags + #~(list #$@(if (member (if (%current-target-system) + (gnu-triplet->nix-system (%current-target-system)) + (%current-system)) + (package-supported-systems luajit)) + '() + '("-DPREFER_LUA:BOOL=YES"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-lua-paths + (lambda* _ + (let* ((lua-version "5.1") + (lua-cpath-spec (lambda (prefix) + (let ((path (string-append + prefix + "/lib/lua/" + lua-version))) + (string-append + path + "/?.so;" + path + "/?/?.so")))) + (lua-path-spec (lambda (prefix) + (let ((path (string-append prefix + "/share/lua/" + lua-version))) + (string-append path "/?.lua;" + path "/?/?.lua")))) + (lua-inputs (list (or #$(this-package-input "lua") + #$(this-package-input "luajit")) + #$lua5.1-luv + #$lua5.1-lpeg + #$lua5.1-bitop + #$lua5.1-libmpack))) + (setenv "LUA_PATH" + (string-join (map lua-path-spec lua-inputs) ";")) + (setenv "LUA_CPATH" + (string-join (map lua-cpath-spec lua-inputs) ";")) + #t))) + (add-after 'unpack 'prevent-embedding-gcc-store-path + (lambda _ + ;; nvim remembers its build options, including the compiler with + ;; its complete path. This adds gcc to the closure of nvim, which + ;; doubles its size. We remove the refirence here. + (substitute* "cmake/GetCompileFlags.cmake" + (("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc")) + #t))))) + (inputs (list libuv-for-luv + msgpack + libtermkey + libvterm + unibilium + jemalloc + (if (member (if (%current-target-system) + (gnu-triplet->nix-system (%current-target-system)) + (%current-system)) + (package-supported-systems luajit)) + luajit + lua-5.1) + lua5.1-luv + lua5.1-lpeg + lua5.1-bitop + lua5.1-libmpack + tree-sitter)) + (native-inputs (list pkg-config gettext-minimal gperf)) (home-page "https://neovim.io") (synopsis "Fork of vim focused on extensibility and agility") - (description "Neovim is a project that seeks to aggressively + (description + "Neovim is a project that seeks to aggressively refactor Vim in order to: @itemize @@ -744,7 +749,8 @@ refactor Vim in order to: @item Split the work between multiple developers @item Enable advanced external UIs without modifications to the core @item Improve extensibility with a new plugin architecture -@end itemize\n") +@end itemize +") ;; Neovim is licensed under the terms of the Apache 2.0 license, ;; except for parts that were contributed under the Vim license. (license (list license:asl2.0 license:vim)))) From db713662207fb254bdf68c34d00c4ad9419926ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Gabriel?= Date: Sat, 16 Apr 2022 18:05:44 -0300 Subject: [PATCH 067/363] gnu: Add utsushi. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/scanner.scm (utsushi): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/scanner.scm | 61 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm index e7a5a2b210..25495a62cc 100644 --- a/gnu/packages/scanner.scm +++ b/gnu/packages/scanner.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2017, 2019, 2020, 2022 Tobias Geerinckx-Rice ;;; Copyright © 2018 Efraim Flashner +;;; Copyright © 2022 João Gabriel ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) + #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) @@ -31,6 +33,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) @@ -250,6 +253,64 @@ proving access to any raster image scanner hardware (flatbed scanner, hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The package contains the library and drivers."))) +(define-public utsushi + (let ((commit "839d06a5a80b353cb604eb9f7d352a1648ab1fdf")) + (package + (name "utsushi") + (version (git-version "0.65.0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/utsushi/utsushi") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0i6ipqy61abbsmqqqy5sii0vlib146snvp975sgjmv4nzy9mwf24")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:configure-flags + (list (string-append "--with-boost-libdir=" + (assoc-ref %build-inputs "boost") "/lib") + "CXXFLAGS=-Wno-error") + #:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'zap-unnecessary-git-dependency + (lambda _ + (substitute* "configure.ac" + (("-m4_esyscmd_s\\(\\[git describe --always\\]\\)") "")))) + (add-after 'install 'install-udev-rules + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/lib/udev/rules.d")) + (install-file "drivers/esci/utsushi-esci.rules" + (string-append out "/lib/udev/rules.d")))))))) + (inputs (list boost + eudev + sane-backends-minimal + libusb + libjpeg-turbo + imagemagick + libtiff + zlib)) + (native-inputs (list util-linux + autoconf + autoconf-archive + automake + gettext-minimal + libtool + libxslt + pkg-config)) + (home-page "https://gitlab.com/utsushi/utsushi") + (synopsis "Image scanning software for EPSON devices") + (description + "Utsushi is a set of applications for image scanning with +support for a number of EPSON scanners, including a compatibility driver to +interface with software built around the @acronym{SANE, Scanner Access Now Easy} +standard.") + (license license:gpl3+)))) + (define-public scanbd (package (name "scanbd") From df72ba9e8895c957708f466be918c119f0f3996f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 May 2022 22:28:08 +0200 Subject: [PATCH 068/363] gnu: utsushi: Turn arguments into a gexp. * gnu/packages/scanner.scm (utsushi)[arguments]: Change to a gexp and use 'this-package-input' and #$output. --- gnu/packages/scanner.scm | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm index 25495a62cc..0128956688 100644 --- a/gnu/packages/scanner.scm +++ b/gnu/packages/scanner.scm @@ -269,23 +269,23 @@ package contains the library and drivers."))) "0i6ipqy61abbsmqqqy5sii0vlib146snvp975sgjmv4nzy9mwf24")))) (build-system gnu-build-system) (arguments - `(#:tests? #f - #:configure-flags - (list (string-append "--with-boost-libdir=" - (assoc-ref %build-inputs "boost") "/lib") - "CXXFLAGS=-Wno-error") - #:phases - (modify-phases %standard-phases - (add-before 'bootstrap 'zap-unnecessary-git-dependency - (lambda _ - (substitute* "configure.ac" - (("-m4_esyscmd_s\\(\\[git describe --always\\]\\)") "")))) - (add-after 'install 'install-udev-rules - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/lib/udev/rules.d")) - (install-file "drivers/esci/utsushi-esci.rules" - (string-append out "/lib/udev/rules.d")))))))) + (list #:tests? #f + #:configure-flags + #~(list (string-append "--with-boost-libdir=" + #$(this-package-input "boost") "/lib") + "CXXFLAGS=-Wno-error") + #:phases + #~(modify-phases %standard-phases + (add-before 'bootstrap 'zap-unnecessary-git-dependency + (lambda _ + (substitute* "configure.ac" + (("-m4_esyscmd_s\\(\\[git describe --always\\]\\)") "")))) + (add-after 'install 'install-udev-rules + (lambda* (#:key outputs #:allow-other-keys) + (mkdir-p (string-append #$output "/lib/udev/rules.d")) + (install-file "drivers/esci/utsushi-esci.rules" + (string-append #$output + "/lib/udev/rules.d"))))))) (inputs (list boost eudev sane-backends-minimal From 3ae7632ca0a1edca9d8c3c766efb0dcc8aa5da37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 May 2022 23:20:21 +0200 Subject: [PATCH 069/363] tests: Ensure test OpenPGP keys never expire. All these keys had expiration dates. 'tests/keys/ed25519.pub' expired on 2022-04-24. Fixes . * tests/keys/ed25519.pub, tests/keys/ed25519-2.pub, tests/keys/ed25519-3.pub: Remove expiration date. --- tests/keys/ed25519-2.pub | 11 +++++------ tests/keys/ed25519-3.pub | 10 +++++----- tests/keys/ed25519.pub | 10 +++++----- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/tests/keys/ed25519-2.pub b/tests/keys/ed25519-2.pub index f5329105d5..ef050e3845 100644 --- a/tests/keys/ed25519-2.pub +++ b/tests/keys/ed25519-2.pub @@ -1,10 +1,9 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- mDMEXtVsNhYJKwYBBAHaRw8BAQdAnLsYdh3BpeK1xDguJE80XW2/MSmqeeP6pbQw -8jAw0OG0IkNoYXJsaWUgR3VpeCA8Y2hhcmxpZUBleGFtcGxlLm9yZz6IlgQTFggA -PhYhBKBDaY1jer75FlruS4IkDtyrgNqDBQJe1Ww2AhsDBQkDwmcABQsJCAcCBhUK -CQgLAgQWAgMBAh4BAheAAAoJEIIkDtyrgNqDM6cA/idDdoxo9SU+witdTXt24APH -yRzHbX9Iyh4dZNIek9JwAP9E0BwSvDHB4LY9z4RWf2hJp3dm/yZ/jEpK+w4BGN4J -Ag== -=JIU0 +8jAw0OG0IkNoYXJsaWUgR3VpeCA8Y2hhcmxpZUBleGFtcGxlLm9yZz6IkAQTFggA +OAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBKBDaY1jer75FlruS4IkDtyr +gNqDBQJihWJtAAoJEIIkDtyrgNqDbs0BAPOaGSYf3pX3DReEe1zbxxVQrolX9/AZ +VP0AOt0TAgkzAP0Sr7G1NuCtjWWGK1WmlyTFPhOWLhNriKgZFkBZrGypAw== +=pdTB -----END PGP PUBLIC KEY BLOCK----- diff --git a/tests/keys/ed25519-3.pub b/tests/keys/ed25519-3.pub index 72f311984c..057f29577e 100644 --- a/tests/keys/ed25519-3.pub +++ b/tests/keys/ed25519-3.pub @@ -1,9 +1,9 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- mDMEYVH/7xYJKwYBBAHaRw8BAQdALMLeUhjEG2/UPCJj2j/debFwwAK5gT3G0l5d -ILfFldm0FTxleGFtcGxlQGV4YW1wbGUuY29tPoiWBBMWCAA+FiEEjO6M85jMSK68 -7tINGBzA7NyoagkFAmFR/+8CGwMFCQPCZwAFCwkIBwIGFQoJCAsCBBYCAwECHgEC -F4AACgkQGBzA7Nyoagl3lgEAw6yqIlX11lTqwxBGhZk/Oy34O13cbJSZCGv+m0ja -+hcA/3DCNOmT+oXjgO/w6enQZUQ1m/d6dUjCc2wOLlLz+ZoG -=+r3i +ILfFldm0FTxleGFtcGxlQGV4YW1wbGUuY29tPoiQBBMWCAA4AhsDBQsJCAcCBhUK +CQgLAgQWAgMBAh4BAheAFiEEjO6M85jMSK687tINGBzA7NyoagkFAmKFYrUACgkQ +GBzA7Nyoagm2/AD9GSZqQAtEsauo5/LvH3XF7bDDnYCo/SmVCzyLM98+qCsA/2fy +kKnsGE5kwTGRrNvgn+5ROCCcHFSpwxzWcAwd9S4H +=OEKB -----END PGP PUBLIC KEY BLOCK----- diff --git a/tests/keys/ed25519.pub b/tests/keys/ed25519.pub index f6bf906783..5a2fccc9f9 100644 --- a/tests/keys/ed25519.pub +++ b/tests/keys/ed25519.pub @@ -2,9 +2,9 @@ mDMEXqNaoBYJKwYBBAHaRw8BAQdArviKtelb4g0I3zx9xyDS40Oz8i1/LRXqppG6 b23Hdim0KEVkIFR3by1GaWZ0eSA8bHVkbyt0ZXN0LWVjY0BjaGJvdWliLm9yZz6I -lgQTFggAPhYhBETTHiGvcTj5tjIoCncfScv6rgctBQJeo1qgAhsDBQkDwmcABQsJ -CAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEHcfScv6rgctq4MA/1R9G0roEwrHwmTd -DHxt211eLqupwXE0Z7xY2FH6DHk9AP4owEefBU7jQprSAzBS+c6gdS3SCCKKqAh6 -ToZ4LmbKAw== -=FXMK +kAQTFggAOAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBETTHiGvcTj5tjIo +CncfScv6rgctBQJihWH6AAoJEHcfScv6rgctfPMBAPv+yPmEgM+J6D1nZjXsO4zW ++4e3y2Ez+QxgI2tn8Z2xAQDBUWyyu0X+8dguGmVlsaiQdkazaUSpexvIhh9zONYw +Bg== +=s4Vp -----END PGP PUBLIC KEY BLOCK----- From ba6ba1a5af4aae36f9abc22ca5e6128f49576c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 12 May 2022 23:16:11 +0200 Subject: [PATCH 070/363] store: 'mcached' users can specify a cache ID. Users of 'mcached' can now specify a cache ID; furthermore, the cache hit rate is automatically recorded for all the caches accessed with 'mcached'. * guix/store.scm (%max-store-connection-caches) (%store-connection-cache-names): New variables. (recorder-for-cache): New procedure. (record-cache-lookup!): Add 'cache-id' parameter and rewrite in terms of 'recorder-for-cache'. (lookup-cached-object): Add 'cache-id' parameter and honor it. (%mcached): Add #:cache parameter and honor it. (mcached): Add '=>' keyword and corresponding clauses. --- guix/store.scm | 65 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 53 insertions(+), 12 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index 1d176fb99d..220901f6ce 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès +;;; Copyright © 2012-2022 Ludovic Courtès ;;; Copyright © 2018 Jan Nieuwenhuizen ;;; Copyright © 2019, 2020 Mathieu Othacehe ;;; Copyright © 2020 Florian Pelz @@ -1793,6 +1793,14 @@ This makes sense only when the daemon was started with '--cache-failures'." ;; the 'caches' vector of . (define %store-connection-caches (make-atomic-box 0)) +(define %max-store-connection-caches + ;; Maximum number of caches returned by 'allocate-store-connection-cache'. + 32) + +(define %store-connection-cache-names + ;; Mapping of cache ID to symbol. + (make-vector %max-store-connection-caches)) + (define (allocate-store-connection-cache name) "Allocate a new cache for store connections and return its identifier. Said identifier can be passed as an argument to " @@ -1800,7 +1808,9 @@ identifier can be passed as an argument to " (let ((previous (atomic-box-compare-and-swap! %store-connection-caches current (+ current 1)))) (if (= previous current) - current + (begin + (vector-set! %store-connection-cache-names current name) + current) (loop current))))) (define %object-cache-id @@ -1926,16 +1936,37 @@ whether the cache lookup was a hit, and the actual cache (a vhash)." (lambda (x y) #t))) -(define record-cache-lookup! - (cache-lookup-recorder "object-cache" "Store object cache")) +(define recorder-for-cache + (let ((recorders (make-vector %max-store-connection-caches))) + (lambda (cache-id) + "Return a procedure to record lookup stats for CACHE-ID." + (match (vector-ref recorders cache-id) + ((? unspecified?) + (let* ((name (symbol->string + (vector-ref %store-connection-cache-names cache-id))) + (description + (string-titlecase + (string-map (match-lambda + (#\- #\space) + (chr chr)) + name)))) + (let ((proc (cache-lookup-recorder name description))) + (vector-set! recorders cache-id proc) + proc))) + (proc proc))))) -(define-inlinable (lookup-cached-object object keys vhash-fold*) - "Return the cached object in the store connection corresponding to OBJECT +(define (record-cache-lookup! cache-id value cache) + "Record the lookup of VALUE in CACHE-ID, whose current value is CACHE." + (let ((record! (recorder-for-cache cache-id))) + (record! value cache))) + +(define-inlinable (lookup-cached-object cache-id object keys vhash-fold*) + "Return the object in store cache CACHE-ID corresponding to OBJECT and KEYS; use VHASH-FOLD* to look for OBJECT in the cache. KEYS is a list of additional keys to match against, and which are compared with 'equal?'. Return #f on failure and the cached result otherwise." (lambda (store) - (let* ((cache (store-connection-cache store %object-cache-id)) + (let* ((cache (store-connection-cache store cache-id)) ;; Escape as soon as we find the result. This avoids traversing ;; the whole vlist chain and significantly reduces the number of @@ -1949,40 +1980,50 @@ Return #f on failure and the cached result otherwise." result)))) #f object cache)))) - (record-cache-lookup! value cache) + (record-cache-lookup! cache-id value cache) (values value store)))) (define* (%mcached mthunk object #:optional (keys '()) #:key + (cache %object-cache-id) (vhash-cons vhash-consq) (vhash-fold* vhash-foldq*)) "Bind the monadic value returned by MTHUNK, which supposedly corresponds to OBJECT/KEYS, or return its cached value. Use VHASH-CONS to insert OBJECT into the cache, and VHASH-FOLD* to look it up." - (mlet %store-monad ((cached (lookup-cached-object object keys + (mlet %store-monad ((cached (lookup-cached-object cache object keys vhash-fold*))) (if cached (return cached) (>>= (mthunk) (lambda (result) (cache-object-mapping object keys result + #:cache cache #:vhash-cons vhash-cons)))))) (define-syntax mcached - (syntax-rules (eq? equal?) + (syntax-rules (eq? equal? =>) "Run MVALUE, which corresponds to OBJECT/KEYS, and cache it; or return the value associated with OBJECT/KEYS in the store's object cache if there is one." - ((_ eq? mvalue object keys ...) + ((_ eq? (=> cache) mvalue object keys ...) (%mcached (lambda () mvalue) object (list keys ...) + #:cache cache #:vhash-cons vhash-consq #:vhash-fold* vhash-foldq*)) - ((_ equal? mvalue object keys ...) + ((_ equal? (=> cache) mvalue object keys ...) (%mcached (lambda () mvalue) object (list keys ...) + #:cache cache #:vhash-cons vhash-cons #:vhash-fold* vhash-fold*)) + ((_ eq? mvalue object keys ...) + (mcached eq? (=> %object-cache-id) + mvalue object keys ...)) + ((_ equal? mvalue object keys ...) + (mcached equal? (=> %object-cache-id) + mvalue object keys ...)) ((_ mvalue object keys ...) (mcached eq? mvalue object keys ...)))) From 001f4afd0771bafe1f17e709070b8ef56b5bdfea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 May 2022 09:01:16 +0200 Subject: [PATCH 071/363] packages: Use separate package/graft cache. * guix/packages.scm (%package-graft-cache): New variable. (input-graft): Add (=> %package-graft-cache). --- guix/packages.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index a79b36d03d..7ee65e9b6b 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -1618,6 +1618,11 @@ and return it." (&package-error (package package)))))))))))) +(define %package-graft-cache + ;; Cache mapping records to records, for packages that + ;; have a replacement. + (allocate-store-connection-cache 'package-graft-cache)) + (define (input-graft system) "Return a monadic procedure that, given a package with a graft, returns a graft, and #f otherwise." @@ -1626,9 +1631,8 @@ graft, and #f otherwise." (((? package? package) output) (let ((replacement (package-replacement package))) (if replacement - ;; XXX: We should use a separate cache instead of abusing the - ;; object cache. - (mcached (mlet %store-monad ((orig (package->derivation package system + (mcached eq? (=> %package-graft-cache) + (mlet %store-monad ((orig (package->derivation package system #:graft? #f)) (new (package->derivation replacement system #:graft? #t))) @@ -1637,7 +1641,7 @@ graft, and #f otherwise." (origin-output output) (replacement new) (replacement-output output)))) - package 'graft output system) + package output system) (return #f)))) (_ (return #f))))) From 2f170893719e6e9fc8e19cc5f0568e20a95d92b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 May 2022 16:47:49 +0200 Subject: [PATCH 072/363] store: Use a decaying cutoff in 'map/accumulate-builds'. This reduces the wall-clock time of: ./pre-inst-env guix system vm gnu/system/examples/desktop.tmpl -n from 2m13s to 53s (the timings depend on which derivations have already been built and are in store; in this case, many were missing). * guix/store.scm (default-cutoff): New variable. (map/accumulate-builds): Use it. Parameterize it in recursive calls to have decaying cutoff. --- guix/store.scm | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index 220901f6ce..a3240eb2e0 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1362,8 +1362,12 @@ object, only for build requests on EXPECTED-STORE." (unresolved things continue) (continue #t)))) +(define default-cutoff + ;; Default cutoff parameter for 'map/accumulate-builds'. + (make-parameter 32)) + (define* (map/accumulate-builds store proc lst - #:key (cutoff 30)) + #:key (cutoff (default-cutoff))) "Apply PROC over each element of LST, accumulating 'build-things' calls and coalescing them into a single call. @@ -1377,21 +1381,24 @@ CUTOFF is the threshold above which we stop accumulating unresolved nodes." (build-accumulator store)) (define-values (result rest) - (let loop ((lst lst) - (result '()) - (unresolved 0)) - (match lst - ((head . tail) - (match (with-build-handler accumulator - (proc head)) - ((? unresolved? obj) - (if (>= unresolved cutoff) - (values (reverse (cons obj result)) tail) - (loop tail (cons obj result) (+ 1 unresolved)))) - (obj - (loop tail (cons obj result) unresolved)))) - (() - (values (reverse result) lst))))) + ;; Have the default cutoff decay as we go deeper in the call stack to + ;; avoid pessimal behavior. + (parameterize ((default-cutoff (quotient cutoff 2))) + (let loop ((lst lst) + (result '()) + (unresolved 0)) + (match lst + ((head . tail) + (match (with-build-handler accumulator + (proc head)) + ((? unresolved? obj) + (if (>= unresolved cutoff) + (values (reverse (cons obj result)) tail) + (loop tail (cons obj result) (+ 1 unresolved)))) + (obj + (loop tail (cons obj result) unresolved)))) + (() + (values (reverse result) lst)))))) (match (append-map (lambda (obj) (if (unresolved? obj) From e0e30c9202d6a960ae0ccec7b4e722f38013c208 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 18 May 2022 21:22:13 -0400 Subject: [PATCH 073/363] gnu: Add emacs-font-lock-studio. * gnu/packages/emacs-xyz.scm (emacs-font-lock-studio): New variable. --- gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index eed2f4b71c..df34da9200 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -3196,6 +3196,33 @@ environment set through Direnv.") that the binary uses instead of the actual binary contents.") (license license:gpl3+))) +(define-public emacs-font-lock-studio + (package + (name "emacs-font-lock-studio") + (version "20170127.2051") ;melpa version + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Lindydancer/font-lock-studio") + (commit "12c35967b31233e06946c70627aa3152dacfe261"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q0s6f5vi3sfifj7vq2nnsmgyyivp1sd3idk32858md5ri71qif0")))) + (build-system emacs-build-system) + (home-page "https://github.com/Lindydancer/font-lock-studio") + (synopsis "Interactive debugger for Font Lock keywords") + (description + "Font Lock Studio is an interactive debugger for Emacs syntax highlighting +rules, also called Font Lock keywords. It can @emph{single-step} Font Lock +keywords -- matchers, highlights, and anchored rules, to see what happens when +a buffer is fontified. Breakpoints can be set on or inside rules. When +inside a rule, matches are visualized using a palette of background colors. +The explainer can describe a rule in plain-text English. Finally, tight +integration with Edebug allows stepping into Lisp expressions that are part of +the Font Lock keywords.") + (license license:gpl3+))) + (define-public emacs-form-feed (package (name "emacs-form-feed") From 77a41cb98c3c5d87a7b72c1f9ee7252d1709b926 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Thu, 19 May 2022 20:23:13 +0200 Subject: [PATCH 074/363] gnu: emacs-ess: Fix build failure. * gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch: New file. * gnu/packages/statistics.scm (emacs-ess)[source]: Add it here... * gnu/local.mk (dist_patch_DATA): ... and here. --- gnu/local.mk | 1 + ...macs-ess-fix-obsolete-function-alias.patch | 23 +++++++++++++++++++ gnu/packages/statistics.scm | 4 +++- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch diff --git a/gnu/local.mk b/gnu/local.mk index 92e6a14e52..21b8a9758d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1028,6 +1028,7 @@ dist_patch_DATA = \ %D%/packages/patches/elm-compiler-fix-map-key.patch \ %D%/packages/patches/elogind-revert-polkit-detection.patch \ %D%/packages/patches/emacs-exec-path.patch \ + %D%/packages/patches/emacs-ess-fix-obsolete-function-alias.patch \ %D%/packages/patches/emacs-git-email-missing-parens.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \ diff --git a/gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch b/gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch new file mode 100644 index 0000000000..f7b61391c3 --- /dev/null +++ b/gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch @@ -0,0 +1,23 @@ +From 9cc5520e1998d03f5dec0fbb1fe71b7cdec38b65 Mon Sep 17 00:00:00 2001 +From: Alex Branham +Date: Wed, 6 Jan 2021 06:41:20 -0500 +Subject: [PATCH] Add required when to obsolete function alias + +Closes #1085 +--- + lisp/ess-r-package.el | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lisp/ess-r-package.el b/lisp/ess-r-package.el +index 260959955..397ce14e6 100644 +--- a/lisp/ess-r-package.el ++++ b/lisp/ess-r-package.el +@@ -577,7 +577,7 @@ package mode. Use this function if state of the buffer such as + (error "As of ESS 16.04, `ess-developer' is deprecated. Use `ess-r-set-evaluation-env' instead")) + + (defalias 'ess-toggle-developer 'ess-developer) +-(define-obsolete-function-alias 'ess-r-devtools-check-package-buildwin 'ess-r-devtools-check-with-winbuilder) ++(define-obsolete-function-alias 'ess-r-devtools-check-package-buildwin 'ess-r-devtools-check-with-winbuilder "18.04") + (define-obsolete-function-alias 'ess-r-devtools-ask 'ess-r-devtools-execute-command "18.04") + + (make-obsolete-variable 'ess-developer "Please use `ess-developer-select-package' and `ess-r-set-evaluation-env' instead." "16.04") diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 244a2f3ecb..aad329400f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -6347,7 +6347,9 @@ Java package that provides routines for various statistical distributions.") "$(MAKE) -C lisp install; $(MAKE) -C doc install") (("\\$\\(INSTALL) -R \\./\\* \\$\\(ESSDESTDIR)/") "$(MAKE) -C etc install")) - #t)))) + #t)) + (patches + (search-patches "emacs-ess-fix-obsolete-function-alias.patch")))) (build-system gnu-build-system) (arguments (let ((base-directory "/share/emacs/site-lisp")) From a0461f9fbd7e641f520eb543e967e59afdae31ea Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Thu, 19 May 2022 20:33:22 +0200 Subject: [PATCH 075/363] gnu: emacs-font-lock-studio: Follow packaging guidelines. * gnu/packages/emacs-xyz.scm (emacs-font-lock-studio): Use git-version as outlined in the documentation on version numbers. For the base version, use "0.0.7" as specified in the "Version:" comment in the source and the README. --- gnu/packages/emacs-xyz.scm | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index df34da9200..6482c9bfc3 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -3197,23 +3197,25 @@ that the binary uses instead of the actual binary contents.") (license license:gpl3+))) (define-public emacs-font-lock-studio - (package - (name "emacs-font-lock-studio") - (version "20170127.2051") ;melpa version - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Lindydancer/font-lock-studio") - (commit "12c35967b31233e06946c70627aa3152dacfe261"))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0q0s6f5vi3sfifj7vq2nnsmgyyivp1sd3idk32858md5ri71qif0")))) - (build-system emacs-build-system) - (home-page "https://github.com/Lindydancer/font-lock-studio") - (synopsis "Interactive debugger for Font Lock keywords") - (description - "Font Lock Studio is an interactive debugger for Emacs syntax highlighting + (let ((commit "12c35967b31233e06946c70627aa3152dacfe261") + (revision "1")) + (package + (name "emacs-font-lock-studio") + (version (git-version "0.0.7" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Lindydancer/font-lock-studio") + (commit "12c35967b31233e06946c70627aa3152dacfe261"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q0s6f5vi3sfifj7vq2nnsmgyyivp1sd3idk32858md5ri71qif0")))) + (build-system emacs-build-system) + (home-page "https://github.com/Lindydancer/font-lock-studio") + (synopsis "Interactive debugger for Font Lock keywords") + (description + "Font Lock Studio is an interactive debugger for Emacs syntax highlighting rules, also called Font Lock keywords. It can @emph{single-step} Font Lock keywords -- matchers, highlights, and anchored rules, to see what happens when a buffer is fontified. Breakpoints can be set on or inside rules. When @@ -3221,7 +3223,7 @@ inside a rule, matches are visualized using a palette of background colors. The explainer can describe a rule in plain-text English. Finally, tight integration with Edebug allows stepping into Lisp expressions that are part of the Font Lock keywords.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-form-feed (package From cf17cbbc1b16dd15c8ec2e637d240de7ae5c3a44 Mon Sep 17 00:00:00 2001 From: jgart Date: Thu, 19 May 2022 10:27:31 -0500 Subject: [PATCH 076/363] gnu: Add emacs-terminal-here. * gnu/packages/emacs-xyz.scm (emacs-terminal-here): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/emacs-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6482c9bfc3..ae81f4e395 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -485,6 +485,28 @@ repositories through the server}. The main advantage compared to @code{vc-hg} is speed.") (license license:gpl3+))) +(define-public emacs-terminal-here + (package + (name "emacs-terminal-here") + (version "2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/davidshepherd7/terminal-here") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1iv1c2mbvhn00ha46c6f98j9syc71xhjpk8m5wa5p32sk4wcc9f4")))) + (build-system emacs-build-system) + (home-page "https://github.com/davidshepherd7/terminal-here") + (synopsis "Open external terminals from Emacs") + (description + "This package provides commands to open external terminal emulators from +Emacs, whose initial working directories are determined in relation to the +current buffer.") + (license license:gpl3+))) + (define-public emacs-hgignore-mode ;; From 2021-03-14. ;; No releases available. From 8d0ac5697c0b6cb37bbf5f7464298da525535e36 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 09:45:47 +0200 Subject: [PATCH 077/363] gnu: Add python-py-tes. * gnu/packages/python-xyz.scm (python-py-tes): New variable. --- gnu/packages/python-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 5094ef068c..eaaa58d3fb 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -10074,6 +10074,25 @@ generate MPS or LP files and call GLPK, COIN CLP/CBC, CPLEX, and GUROBI to solve linear problems.") (license license:expat))) +(define-public python-py-tes + (package + (name "python-py-tes") + (version "0.4.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "py-tes" version)) + (sha256 + (base32 "0b272y392v0mnq0f3sm5kgcx8fn4qwfbym89hhvqxz3xkganr4pn")))) + (build-system python-build-system) + (propagated-inputs + (list python-attrs python-dateutil python-future python-requests)) + (home-page "https://github.com/ohsu-comp-bio/py-tes") + (synopsis "Library for communicating with the GA4GH Task Execution API") + (description "This package provides a library for communicating with the +GA4GH Task Execution API.") + (license license:expat))) + (define-public python-toposort (package (name "python-toposort") From 62a4ed258c27d19bf168095981ebf7bb1d381051 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 09:47:11 +0200 Subject: [PATCH 078/363] gnu: Add python-connection-pool. * gnu/packages/python-xyz.scm (python-connection-pool): New variable. --- gnu/packages/python-xyz.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index eaaa58d3fb..cdb6300117 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -14398,6 +14398,23 @@ be set via config files and/or environment variables.") (home-page "https://github.com/bw2/ConfigArgParse") (license license:expat))) +(define-public python-connection-pool + (package + (name "python-connection-pool") + (version "0.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "connection_pool" version)) + (sha256 + (base32 "1p6hfkcl4n3hhhcgjbaxn21i7b1yipag6j7dnilir4k5xxx9whmz")))) + (build-system python-build-system) + (home-page "https://github.com/zhouyl/ConnectionPool") + (synopsis "Thread-safe connection pool") + (description "This package provides a library implementing a thread-safe +connection pool.") + (license license:expat))) + (define-public python-argparse-manpage (package (name "python-argparse-manpage") From 1f50f11aefe0fb1937cb15d4e327e0ffd94071d7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 09:48:45 +0200 Subject: [PATCH 079/363] gnu: python-google: Add missing input. * gnu/packages/python-web.scm (python-google)[propagated-inputs]: Add python-beautifulsoup4. --- gnu/packages/python-web.scm | 49 +++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 2a688b53df..ed047a7faa 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -4494,6 +4494,8 @@ users, gradebooks, and more.") (build-system python-build-system) (arguments `(#:tests? #f)) ; There are no tests. + (propagated-inputs + (list python-beautifulsoup4)) (home-page "https://breakingcode.wordpress.com/") (synopsis "Python bindings to the Google search engine") (description "This package provides Python bindings for using the @@ -6538,6 +6540,53 @@ through the network, it only deals with the implementation details of the SOCKS protocols. It can be paired with any I/O library.") (license license:expat))) +(define-public python-msrest + (package + (name "python-msrest") + (version "0.6.21") + (source + (origin + (method url-fetch) + (uri (pypi-uri "msrest" version)) + (sha256 + (base32 "1n389m3hcsyjskzimq4j71nyw9pjkrp0n5wg1q2c4bfwpv3inrkj")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" + "-k" + ;; These attempt to connect to bing.com. + (string-append + "not test_basic_aiohttp" + " and not test_basic_async_requests" + " and not test_conf_async_requests" + " and not test_conf_async_trio_requests" + " and not test_basic_aiohttp" + " and not test_basic_async_requests" + " and not test_conf_async_requests" + " and not test_conf_async_trio_requests")))))))) + (propagated-inputs + (list python-aiohttp + python-certifi + python-isodate + python-requests + python-requests-oauthlib)) + (native-inputs + (list python-httpretty + python-pytest + python-pytest-aiohttp + python-pytest-asyncio + python-pytest-trio)) + (home-page "https://github.com/Azure/msrest-for-python") + (synopsis "AutoRest swagger generator Python client runtime.") + (description "This package provides the runtime library @code{msrest} for +AutoRest-generated Python clients.") + (license license:expat))) + (define-public python-azure-nspkg (package (name "python-azure-nspkg") From 04ed3821cc7b15a22946ca972525626b41d71763 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 09:49:23 +0200 Subject: [PATCH 080/363] gnu: Add python-test-utils. * gnu/packages/python-check.scm (python-test-utils): New variable. --- gnu/packages/python-check.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index b86f75dc1b..d788935caa 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -2166,6 +2166,24 @@ Python objects. It tries to use the objects available in the standard @code{unittest} module.") (license license:expat))) +(define-public python-test-utils + (package + (name "python-test-utils") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "test-utils" version)) + (sha256 + (base32 "0cs0gyihnkj8ya4yg3ld3ly73mpxrkn2gq9acamclhqvhxsv7zd6")))) + (build-system python-build-system) + (home-page "https://github.com/Kami/python-test-utils/") + (synopsis "Utilities for functional and integration tests") + (description + "This package provides a collection of utility functions and classes +which make writing and running functional and integration tests easier.") + (license license:asl2.0))) + (define-public python-sybil (package (name "python-sybil") From 5f8491ea95d7ba88801aa28b6d2b98f30b033186 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 09:50:39 +0200 Subject: [PATCH 081/363] gnu: python-protobuf: Update to 3.20.1. * gnu/packages/protobuf.scm (python-protobuf): Update to 3.20.1. [native-inputs]: Remove python-wheel. [propagated-inputs]: Remove python-six. --- gnu/packages/protobuf.scm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index 3a74a4c613..8991fc8c57 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -233,19 +233,15 @@ encoder in C++. The developer using protozero has to manually translate the (define-public python-protobuf (package (name "python-protobuf") - (version "3.12.4") + (version "3.20.1") (source (origin (method url-fetch) (uri (pypi-uri "protobuf" version)) (sha256 (base32 - "0mj6z58aiw532s1mq48m9xdrm3gdyp2vv9cdinfb5wmnfpm5m7n9")))) + "1ja2vpk9nklllmsirmil2s4l7ni9yfqvbvj47zz5xx17s1k1bhxd")))) (build-system python-build-system) - (native-inputs - (list python-wheel)) - (propagated-inputs - (list python-six)) (home-page "https://github.com/google/protobuf") (synopsis "Protocol buffers is a data interchange format") (description From 04ea577b75adaf4d3110f2909e14eefb5e75cdf7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 10:02:44 +0200 Subject: [PATCH 082/363] gnu: Add python-pyu2f. * gnu/packages/python-crypto.scm (python-pyu2f): New variable. --- gnu/packages/python-crypto.scm | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 7f358659f0..0bdcc693ac 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2016, 2017 Nikita ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017, 2019, 2022 Ricardo Wurmus ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016, 2017, 2020 Arun Isaac ;;; Copyright © 2017 Carlo Zancanaro @@ -1699,6 +1699,31 @@ It can create and verify RSA, DSA, and ECDSA signatures, at the moment. It can also encrypt and decrypt messages using RSA and ECDH.") (license license:bsd-3))) +(define-public python-pyu2f + (package + (name "python-pyu2f") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyu2f" version)) + (sha256 + (base32 "0srhzdbgdsqwpcw7awqm19yg3xbabqckfvrp8rbpvz2232hs7jm3")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ;none included + (propagated-inputs (list python-six)) + (native-inputs + (list python-mock + python-pyfakefs + python-pytest + python-unittest2)) + (home-page "https://github.com/google/pyu2f/") + (synopsis "U2F host library for interacting with a U2F device over USB") + (description + "Pyu2f is a Python-based U2F host library. It provides functionality for +interacting with a U2F device over USB.") + (license license:asl2.0))) + (define-public python-sop (package (name "python-sop") From 78280e2e4a749a980886b71a5ac911193c370267 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 11:15:39 +0200 Subject: [PATCH 083/363] gnu: Add python-azure-common. * gnu/packages/python-web.scm (python-azure-common): New variable. --- gnu/packages/python-web.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index ed047a7faa..5c03ec1544 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6627,6 +6627,25 @@ AutoRest-generated Python clients.") communicate with Microsoft Azure Storage services.") (license license:expat))) +(define-public python-azure-common + (package + (name "python-azure-common") + (version "1.1.28") + (source + (origin + (method url-fetch) + (uri (pypi-uri "azure-common" version ".zip")) + (sha256 + (base32 "18q4cy1xl2zly3rk7a1sc14w932x59r8c9j4d8dnlsz32hrcvh2a")))) + (build-system python-build-system) + (propagated-inputs (list python-azure-nspkg)) + (native-inputs (list unzip)) + (home-page "https://github.com/Azure/azure-sdk-for-python") + (synopsis "Microsoft Azure Client library for Python") + (description "This package provides the Microsoft Azure Client library for +Python.") + (license license:expat))) + (define-public python-w3lib (package (name "python-w3lib") From c2bb0beef7d67f56aaa35f6d0969084b999bdd30 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 11:39:51 +0200 Subject: [PATCH 084/363] gnu: Add python-azure-core. * gnu/packages/python-web.scm (python-azure-core): New variable. --- gnu/packages/python-web.scm | 67 +++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 5c03ec1544..eb94cb3de6 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6646,6 +6646,73 @@ communicate with Microsoft Azure Storage services.") Python.") (license license:expat))) +(define-public python-azure-core + (package + (name "python-azure-core") + (version "1.24.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "azure-core" version ".zip")) + (sha256 + (base32 "1r8bpn3zz02mj00qbaks5qq49wqd3mznkm90bchd1mxa3w21nnrl")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (when tests? + ;; This fails because devtools_testutils doesn't exist. + (delete-file "tests/test_connection_string_parsing.py") + ;; Needs network. + (for-each delete-file + '("tests/async_tests/test_streaming_async.py" + "tests/test_streaming.py")) + (add-installed-pythonpath inputs outputs) + (setenv "PYTHONPATH" + (string-append (getcwd) "/tests/testserver_tests/coretestserver:" + (getenv "GUIX_PYTHONPATH"))) + (invoke "pytest" + ;; Most of these need network access. + "-m" "not asyncio and not live_test_only" + "-k" + ;; These need network access. + (string-append + "not test_example_raw_response_hook" + " and not test_example_headers_policy" + " and not test_example_request_id_policy" + " and not test_example_user_agent_policy" + " and not test_example_requests" + " and not test_example_pipeline" + " and not test_example_pipeline_client" + " and not test_example_redirect_policy" + " and not test_example_no_redirects" + " and not test_example_retry_policy" + " and not test_example_no_retries" + " and not test_decompress_plain_no_header" + " and not test_compress_plain_no_header" + " and not test_decompress_compressed_no_header")))))))) + (propagated-inputs + (list python-aiohttp + python-requests + python-six + python-trio + python-typing-extensions)) + (native-inputs + (list python-flask + python-msrest + python-pytest + python-pytest-aiohttp + python-pytest-asyncio + python-pytest-trio + unzip)) + (home-page "https://github.com/Azure/azure-sdk-for-python") + (synopsis "Microsoft Azure Core library for Python") + (description "This package provides the Microsoft Azure Core library for +Python.") + (license license:expat))) + (define-public python-w3lib (package (name "python-w3lib") From da88e39ce0d9a7aaae36a7a5fe8706ab15cde18e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 11:44:52 +0200 Subject: [PATCH 085/363] gnu: Add python-azure-storage-blob. * gnu/packages/python-web.scm (python-azure-storage-blob): New variable. --- gnu/packages/python-web.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index eb94cb3de6..689a99b518 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6713,6 +6713,26 @@ Python.") Python.") (license license:expat))) +(define-public python-azure-storage-blob + (package + (name "python-azure-storage-blob") + (version "12.12.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "azure-storage-blob" version ".zip")) + (sha256 + (base32 "1xv23ph822qywjxs81say9xi5dzmvxcii6sww6d1hvd83iyz1npn")))) + (build-system python-build-system) + (propagated-inputs + (list python-azure-core python-cryptography python-msrest)) + (native-inputs (list unzip)) + (home-page "https://github.com/Azure/azure-sdk-for-python/") + (synopsis "Microsoft Azure Blob Storage client library for Python") + (description "This package provides the Microsoft Azure Blob Storage +Client Library for Python.") + (license license:expat))) + (define-public python-w3lib (package (name "python-w3lib") From 97d9741f0be56d4a2860dc8620b56f859aefefee Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:04:25 +0200 Subject: [PATCH 086/363] gnu: Add python-google-crc32c. * gnu/packages/python-web.scm (python-google-crc32c): New variable. --- gnu/packages/python-web.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 689a99b518..04cf3b5e3c 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6733,6 +6733,25 @@ Python.") Client Library for Python.") (license license:expat))) +(define-public python-google-crc32c + (package + (name "python-google-crc32c") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "google-crc32c" version)) + (sha256 + (base32 "1ps4qaccij6cixs91772y9f9r1n702yfzy4qqmds6x5h7qkycv97")))) + (build-system python-build-system) + (native-inputs (list python-pytest)) + (home-page "https://github.com/googleapis/python-crc32c") + (synopsis "Python wrapper of Google CRC32C") + (description + "This package provides a Python wrapper of the C library implementation +of the CRC32C hashing algorithm.") + (license license:asl2.0))) + (define-public python-w3lib (package (name "python-w3lib") From c63164188fc893c9500c4c953c808d24c12b6894 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:18:56 +0200 Subject: [PATCH 087/363] gnu: Add python-googleapis-common-protos. * gnu/packages/python-web.scm (python-googleapis-common-protos): New variable. --- gnu/packages/python-web.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 04cf3b5e3c..51e03ed56f 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -88,6 +88,7 @@ #:use-module (gnu packages node) #:use-module (gnu packages openstack) #:use-module (gnu packages pcre) + #:use-module (gnu packages protobuf) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-build) @@ -6752,6 +6753,34 @@ Client Library for Python.") of the CRC32C hashing algorithm.") (license license:asl2.0))) +(define-public python-googleapis-common-protos + (package + (name "python-googleapis-common-protos") + (version "1.56.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "googleapis-common-protos" version)) + (sha256 + (base32 "16x1pjc34mrj9w130j40r23ndpykhsqivvk5xfl63ss6qsfyapkb")))) + (build-system python-build-system) + (arguments + `(#:tests? #false ;fails for unknown reasons + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) + (propagated-inputs (list python-protobuf)) + (native-inputs + (list python-pytest)) + (home-page "https://github.com/googleapis/python-api-common-protos") + (synopsis "Common protobufs used in Google APIs") + (description "This package contains Python classes generated from the +common protos in the @code{googleapis/api-common-protos} repository.") + (license license:asl2.0))) + (define-public python-w3lib (package (name "python-w3lib") From 359e2db4b2543425ca526162264d60a08cd2e368 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:21:54 +0200 Subject: [PATCH 088/363] gnu: Add python-google-auth. * gnu/packages/python-web.scm (python-google-auth): New variable. --- gnu/packages/python-web.scm | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 51e03ed56f..46e7e28615 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6753,6 +6753,46 @@ Client Library for Python.") of the CRC32C hashing algorithm.") (license license:asl2.0))) +(define-public python-google-auth + (package + (name "python-google-auth") + (version "2.6.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "google-auth" version)) + (sha256 + (base32 "04ikassansqkkw4pa98in7q9r4z001m6bi2r3ssxwwrb0f79790v")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) + (propagated-inputs + (list python-cachetools + python-cryptography + python-pyasn1-modules + python-rsa + python-six)) + (native-inputs + (list python-flask + python-freezegun + python-oauth2client + python-pyopenssl + python-pytest + python-pytest-localserver + python-pyu2f + python-requests + python-responses)) + (home-page "https://github.com/googleapis/google-auth-library-python") + (synopsis "Google Authentication Library") + (description "This library simplifies using Google's various +server-to-server authentication mechanisms to access Google APIs.") + (license license:asl2.0))) + (define-public python-googleapis-common-protos (package (name "python-googleapis-common-protos") From 0873ab4d54f169c32d04cc2a2df92426e748f546 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:24:02 +0200 Subject: [PATCH 089/363] gnu: Add python-google-resumable-media. * gnu/packages/python-web.scm (python-google-resumable-media): New variable. --- gnu/packages/python-web.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 46e7e28615..7f50ede8bf 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6793,6 +6793,38 @@ of the CRC32C hashing algorithm.") server-to-server authentication mechanisms to access Google APIs.") (license license:asl2.0))) +(define-public python-google-resumable-media + (package + (name "python-google-resumable-media") + (version "2.3.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "google-resumable-media" version)) + (sha256 + (base32 "04qm6rd4mpbbym8ci5xrb6fymc3mmm8x2z9f43q5iwbr3s5lx4h6")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; The system tests fail to find test_utils.retry. + (delete-file-recursively "tests/system/") + (invoke "pytest"))))))) + (propagated-inputs (list python-google-crc32c)) + (native-inputs + (list python-google-auth + python-pytest + python-requests + python-test-utils)) + (home-page "https://github.com/googleapis/google-resumable-media-python") + (synopsis "Utilities for Google Media Downloads and Resumable Uploads") + (description "This package provides utilities for Google Media Downloads +and Resumable Uploads.") + (license license:asl2.0))) + (define-public python-googleapis-common-protos (package (name "python-googleapis-common-protos") From f8a6ae18a69f5d37c7e6aba8641ff6b0a8b9fd60 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:29:15 +0200 Subject: [PATCH 090/363] gnu: Add python-proto-plus. * gnu/packages/protobuf.scm (python-proto-plus): New variable. --- gnu/packages/protobuf.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index 8991fc8c57..e525a55fc6 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 Ludovic Courtès ;;; Copyright © 2016 Daniel Pimentel ;;; Copyright © 2016 Leo Famulari -;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus +;;; Copyright © 2017, 2018, 2019, 2022 Ricardo Wurmus ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020, 2021 Maxim Cournoyer ;;; Copyright © 2020 Vinicius Monego @@ -302,6 +302,26 @@ structured data.") (base32 "04bqb12smlckzmgkj6vgmpbr3cby0n6726cmz33bqr7kn1vb728l")))))) +(define-public python-proto-plus + (package + (name "python-proto-plus") + (version "1.20.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "proto-plus" version)) + (sha256 + (base32 "1raad9qnmfva94nm33k40bcwrckgljbfky5pdwh4xhg6r5dj52zj")))) + (build-system python-build-system) + (propagated-inputs (list python-protobuf)) + (home-page "https://github.com/googleapis/proto-plus-python.git") + (synopsis "Pythonic protocol buffers") + (description "This is a wrapper around protocol buffers. Protocol buffers +is a specification format for APIs, such as those inside Google. This library +provides protocol buffer message classes and objects that largely behave like +native Python types.") + (license license:asl2.0))) + (define-public emacs-protobuf-mode (package (name "emacs-protobuf-mode") From e41ca0a49a2c9b73a6bf54202b91aaf3be701863 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:32:10 +0200 Subject: [PATCH 091/363] gnu: Add python-google-api-core. * gnu/packages/python-web.scm (python-google-api-core): New variable. --- gnu/packages/python-web.scm | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 7f50ede8bf..df6c3f3e40 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6853,6 +6853,45 @@ and Resumable Uploads.") common protos in the @code{googleapis/api-common-protos} repository.") (license license:asl2.0))) +(define-public python-google-api-core + (package + (name "python-google-api-core") + (version "2.7.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "google-api-core" version)) + (sha256 + (base32 "0ydwvg9gzp75cd11s62db5w3jhj643yrw095rv95psfb0h3pz58p")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; These don't work because it doesn't find AsyncMock even when + ;; we add it to the inputs. + (for-each delete-file + '("tests/asyncio/test_page_iterator_async.py" + "tests/asyncio/test_retry_async.py")) + (invoke "pytest"))))))) + (propagated-inputs + (list python-google-auth + python-googleapis-common-protos + python-protobuf + python-proto-plus + python-requests)) + (native-inputs + (list python-mock + python-pytest + python-pytest-asyncio)) + (home-page "https://github.com/googleapis/python-api-core") + (synopsis "Google API client core library") + (description "This library defines common helpers used by all Google API +clients.") + (license license:asl2.0))) + (define-public python-w3lib (package (name "python-w3lib") From 6934f094a627a0e663db15f6eab2a0c97d104ad1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:40:39 +0200 Subject: [PATCH 092/363] gnu: Add python-google-cloud-core. * gnu/packages/python-web.scm (python-google-cloud-core): New variable. --- gnu/packages/python-web.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index df6c3f3e40..e49653441b 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -97,6 +97,7 @@ #:use-module (gnu packages python-science) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages rpc) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) @@ -6892,6 +6893,33 @@ common protos in the @code{googleapis/api-common-protos} repository.") clients.") (license license:asl2.0))) +(define-public python-google-cloud-core + (package + (name "python-google-cloud-core") + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "google-cloud-core" version)) + (sha256 + (base32 "0sa66kidgr32dfq9ngha9l362xnqvnqqmssn5my1gd3lc6g65apx")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) + (propagated-inputs (list python-google-api-core python-google-auth)) + (native-inputs + (list python-grpcio python-pytest)) + (home-page "https://github.com/googleapis/python-cloud-core") + (synopsis "Google Cloud API client core library") + (description "This library defines common helpers (e.g. base @code{Client} +classes) used by all of the @code{google-cloud-*} packages.") + (license license:asl2.0))) + (define-public python-w3lib (package (name "python-w3lib") From 1aaeff86501cd38cb903f3c6c2b288f652c3bd5d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:43:07 +0200 Subject: [PATCH 093/363] gnu: Add python-google-cloud-storage. * gnu/packages/python-web.scm (python-google-cloud-storage): New variable. --- gnu/packages/python-web.scm | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index e49653441b..f3cd3e521b 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6920,6 +6920,47 @@ clients.") classes) used by all of the @code{google-cloud-*} packages.") (license license:asl2.0))) +(define-public python-google-cloud-storage + (package + (name "python-google-cloud-storage") + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "google-cloud-storage" version)) + (sha256 + (base32 "0nwg9ic29s70kpvi71gmjv1y4w5a3vc9gj6d16f8w8hpbvgb1jzl")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (for-each delete-file-recursively + (list + ;; The system tests fail to find test_utils.retry. + "tests/system/" + ;; Needs docker. + "tests/conformance/")) + (invoke "pytest"))))))) + (native-inputs + (list python-pytest python-test-utils)) + (propagated-inputs + (list python-google-api-core + python-google-auth + python-google-cloud-core + python-google-resumable-media + python-protobuf + python-requests)) + (home-page "https://github.com/googleapis/python-storage") + (synopsis "Google Cloud Storage API client library") + (description "Google Cloud Storage allows you to store data on Google +infrastructure, and it can be used to distribute large data objects to users +via direct download. This package provides a Google Cloud Storage API client +library for Python.") + (license license:asl2.0))) + (define-public python-w3lib (package (name "python-w3lib") From 192c7229284b9499257b6b4ac46a17b93ffd0c52 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:50:26 +0200 Subject: [PATCH 094/363] gnu: Add python-smart-open. * gnu/packages/python-web.scm (python-smart-open): New variable. --- gnu/packages/python-web.scm | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index f3cd3e521b..b4a2bc365b 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -6961,6 +6961,49 @@ via direct download. This package provides a Google Cloud Storage API client library for Python.") (license license:asl2.0))) +(define-public python-smart-open + (package + (name "python-smart-open") + (version "6.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "smart_open" version)) + (sha256 + (base32 "1c12ilanx9hgpcc5chjkaqnx1hx14iazyindy7syvjhbdywhc0fn")))) + (build-system python-build-system) + (arguments + `(#:tests? #false ;none included + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) + (propagated-inputs + (list python-azure-common + python-azure-core + python-azure-storage-blob + python-boto3 + python-google-cloud-storage + python-requests)) + (native-inputs + (list python-flask + python-flask-cors + python-graphql-core + python-moto + python-paramiko + python-pathlib2 + python-pytest + python-pytest-rerunfailures + python-responses)) + (home-page "https://github.com/piskvorky/smart_open") + (synopsis "Utilities for streaming large files") + (description + "This package provides utilities for streaming large files (S3, HDFS, +GCS, Azure Blob Storage, gzip, bz2, etc.)") + (license license:expat))) + (define-public python-w3lib (package (name "python-w3lib") From 5fd82d7bbd30e17fa1e542037dd48e34a0a1c776 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 13:59:38 +0200 Subject: [PATCH 095/363] gnu: Add snakemake-6. * gnu/packages/python-xyz.scm (snakemake-6): New variable. --- gnu/packages/python-xyz.scm | 68 +++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index cdb6300117..96a739f90e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -10194,6 +10194,74 @@ providing a clean and modern domain specific specification language (DSL) in Python style, together with a fast and comfortable execution environment.") (license license:expat))) +(define-public snakemake-6 + (package + (inherit snakemake) + (name "snakemake") + (version "6.15.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/snakemake/snakemake") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09yrpi9f86r9yvcm2dfjs5zy87c4j31bxama77kfd6y8yfrrjlai")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; For cluster execution Snakemake will call Python. Since there is + ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail. We + ;; fix this by calling the snakemake wrapper instead. + + ;; XXX: There is another instance of sys.executable on line 692, but + ;; it is not clear how to patch it. + (add-after 'unpack 'call-wrapper-not-wrapped-snakemake + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "snakemake/executors/__init__.py" + (("\\{sys.executable\\} -m snakemake") + (string-append (assoc-ref outputs "out") + "/bin/snakemake"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "HOME" "/tmp") + ;; This test attempts to change S3 buckets on AWS and fails + ;; because there are no AWS credentials. + (delete-file "tests/test_tibanna.py") + (invoke "pytest"))))))) + (inputs + (list python-appdirs + python-configargparse + python-connection-pool + python-datrie + python-docutils + python-filelock + python-gitpython + python-jinja2 + python-jsonschema + python-nbformat + python-networkx + python-psutil + python-pulp + python-pyyaml + python-py-tes + python-ratelimiter + python-requests + python-smart-open + python-stopit + python-tabulate + python-toposort + python-wrapt)) + (native-inputs + (list git-minimal + python-wrapper + python-pytest + python-pandas + python-requests-mock)))) + (define-public python-pyqrcode (package (name "python-pyqrcode") From 8d32ec335b35948d190b3fee3b561f19b9ed24ff Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 14:43:52 +0200 Subject: [PATCH 096/363] gnu: Add snakemake-7. * gnu/packages/python-xyz.scm (snakemake-7): New variable. --- gnu/packages/python-xyz.scm | 73 +++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 96a739f90e..738dfd61cd 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -10262,6 +10262,79 @@ Python style, together with a fast and comfortable execution environment.") python-pandas python-requests-mock)))) +(define-public snakemake-7 + (package + (inherit snakemake-6) + (name "snakemake") + (version "7.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/snakemake/snakemake") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qrqbmx4cbis0wxr6dl2rdjv9v627sbirsz6v5c31vlbqwkvs04q")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; For cluster execution Snakemake will call Python. Since there is + ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail. We + ;; fix this by calling the snakemake wrapper instead. + + ;; XXX: There is another instance of sys.executable on line 692, but + ;; it is not clear how to patch it. + (add-after 'unpack 'call-wrapper-not-wrapped-snakemake + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "snakemake/executors/__init__.py" + (("\\{sys.executable\\} -m snakemake") + (string-append (assoc-ref outputs "out") + "/bin/snakemake"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "HOME" "/tmp") + ;; This test attempts to change S3 buckets on AWS and fails + ;; because there are no AWS credentials. + (delete-file "tests/test_tibanna.py") + ;; It's a similar story with this test, which requires access + ;; to the Google Storage service. + (delete-file "tests/test_google_lifesciences.py") + (invoke "pytest"))))))) + (inputs + (list python-appdirs + python-configargparse + python-connection-pool + python-datrie + python-docutils + python-filelock + python-gitpython + python-jinja2 + python-jsonschema + python-nbformat + python-networkx + python-psutil + python-pulp + python-pyyaml + python-py-tes + python-ratelimiter + python-requests + python-retry + python-smart-open + python-stopit + python-tabulate + python-toposort + python-wrapt + python-yte)) + (native-inputs + (list git-minimal + python-wrapper + python-pytest + python-pandas + python-requests-mock)))) + (define-public python-pyqrcode (package (name "python-pyqrcode") From 102e3833601b75e019acb6c0d96dc2ed68b947cb Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 19 May 2022 16:43:06 +0530 Subject: [PATCH 097/363] gnu: Add cl-listopia. * gnu/packages/lisp-xyz.scm (sbcl-listopia, cl-listopia, ecl-listopia): New variables. --- gnu/packages/lisp-xyz.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index fa234af3c3..7fa0db59f9 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -21322,3 +21322,31 @@ documentation.") (define-public cl-lmdb (sbcl-package->cl-source-package sbcl-lmdb)) + +(define-public sbcl-listopia + (package + (name "sbcl-listopia") + (version "0.12.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Dimercel/listopia") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07xa2s2s60h9f40az3zdacybl5pk1x8bhvga9phsra0czbv44lx2")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-prove)) + (home-page "https://github.com/Dimercel/listopia") + (synopsis "List manipulation library for Common Lisp") + (description "This package is a list manipulation library for Common Lisp +inspired by Haskell package @code{Data.List}.") + (license license:llgpl))) + +(define-public cl-listopia + (sbcl-package->cl-source-package sbcl-listopia)) + +(define-public ecl-listopia + (sbcl-package->ecl-package sbcl-listopia)) From a4994d739306abcf3f36706012fb88b35a970e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 May 2022 17:12:01 +0200 Subject: [PATCH 098/363] inferior: Close duplicate socketpair file descriptor. * guix/inferior.scm (open-bidirectional-pipe): Pass SOCK_CLOEXEC to 'socketpair'. * tests/inferior.scm ("close-inferior"): Add test. --- guix/inferior.scm | 6 +++++- tests/inferior.scm | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/guix/inferior.scm b/guix/inferior.scm index 6949bb3687..54200b75e4 100644 --- a/guix/inferior.scm +++ b/guix/inferior.scm @@ -141,7 +141,11 @@ regular file port (socket). This is equivalent to (open-pipe* OPEN_BOTH ...) except that the result is a regular file port that can be passed to 'select' ('open-pipe*' returns a custom binary port)." - (match (socketpair AF_UNIX SOCK_STREAM 0) + ;; Make sure the sockets are close-on-exec; failing to do that, a second + ;; inferior (for instance) would inherit the underlying file descriptor, and + ;; thus (close-port PARENT) in the original process would have no effect: + ;; the REPL process wouldn't get EOF on standard input. + (match (socketpair AF_UNIX (logior SOCK_STREAM SOCK_CLOEXEC) 0) ((parent . child) (match (primitive-fork) (0 diff --git a/tests/inferior.scm b/tests/inferior.scm index 9992077cb2..56b2fcb7bc 100644 --- a/tests/inferior.scm +++ b/tests/inferior.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès +;;; Copyright © 2018-2022 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +62,20 @@ (close-inferior inferior) (list a (inferior-object? b)))))) +(test-equal "close-inferior" + '((hello) (world)) + (let* ((inferior1 (open-inferior %top-builddir #:command "scripts/guix")) + (lst1 (inferior-eval '(list 'hello) inferior1)) + (inferior2 (open-inferior %top-builddir #:command "scripts/guix")) + (lst2 (inferior-eval '(list 'world) inferior2))) + ;; This call succeeds if and only if INFERIOR2 does not also hold a file + ;; descriptor to the socketpair beneath INFERIOR1; otherwise it blocks. + ;; See . + (close-inferior inferior1) + + (close-inferior inferior2) + (list lst1 lst2))) + (test-equal "&inferior-exception" '(a b c d) (let ((inferior (open-inferior %top-builddir From 598f7289db9955584457ffc11c8504f3938a1618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 May 2022 18:45:24 +0200 Subject: [PATCH 099/363] cuirass: Close each inferior upon completion. * build-aux/cuirass/evaluate.scm : Add 'close-inferior' call. --- build-aux/cuirass/evaluate.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/build-aux/cuirass/evaluate.scm b/build-aux/cuirass/evaluate.scm index fc0744ad2a..0bd9e2481f 100644 --- a/build-aux/cuirass/evaluate.scm +++ b/build-aux/cuirass/evaluate.scm @@ -96,6 +96,7 @@ (channels . ,channels)))))) (file (string-append directory "/jobs-" system ".scm"))) + (close-inferior inferior) (call-with-output-file file (lambda (port) (write jobs port))))))) From d02b7abe24fac84ef1fb1880f51d56fc9fb6cfef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 May 2022 19:51:53 +0200 Subject: [PATCH 100/363] gnu: guix: Update to 598f728. * gnu/packages/package-management.scm (guix): Update to 598f728. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 7733d14353..4d39aca8e0 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -159,8 +159,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.3.0") - (commit "fd00ac7e27c8a6d4b4d4719b4f8797bdce204623") - (revision 26)) + (commit "598f7289db9955584457ffc11c8504f3938a1618") + (revision 27)) (package (name "guix") @@ -176,7 +176,7 @@ (commit commit))) (sha256 (base32 - "1mq3455v6sqyfxmzbp02afcm58cb9l5dwy87l8mpbjdy0c2sb1s7")) + "0i4rdmh74dws57i8cjsrcdxrb3r8lph3mnvwafdqlfripxvn7yry")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments From 0b1473e967fd2fe25edae8f223928bb761061425 Mon Sep 17 00:00:00 2001 From: Petr Hodina Date: Thu, 12 May 2022 12:26:16 +0200 Subject: [PATCH 101/363] gnu: glmark2: Update to 2021.12. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gl.scm (glmark2): Update to 2021.12. [build-system]: Switch to meson build system. [arguments]: Adjust arguments to meson build system. Signed-off-by: Ludovic Courtès --- gnu/packages/gl.scm | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 0ff39dc24d..f4313b4151 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2020 Kei Kebreau ;;; Copyright © 2021 Ivan Gankevich ;;; Copyright © 2021 John Kehayias +;;; Copyright © 2022 Petr Hodina ;;; ;;; This file is part of GNU Guix. ;;; @@ -1091,7 +1092,7 @@ is written in a way that can be used for any general C# application.") (define-public glmark2 (package (name "glmark2") - (version "2020.04") + (version "2021.12") (source (origin (method git-fetch) (uri (git-reference @@ -1100,20 +1101,12 @@ is written in a way that can be used for any general C# application.") (file-name (git-file-name name version)) (sha256 (base32 - "0ywpzp0imi3f8iyp7d1739576zx2nsr3db5hp2as4yhflfyq1as2")) - (modules '((guix build utils))) - ;; Fix Python 3 incompatibility. - (snippet - '(begin - (substitute* "wscript" - (("(sorted\\()FLAVORS\\.keys\\(\\)(.*)" _ beginning end) - (string-append beginning "list(FLAVORS)" end))) - #t)))) - (build-system waf-build-system) + "1aydqbrg9i74s19rrdrsscx94m885yvc43v3sdqlgyh675ms98jb")))) + (build-system meson-build-system) (arguments '(#:tests? #f ; no check target #:configure-flags - (list (string-append "--with-flavors=" + (list (string-append "-Dflavors=" (string-join '("x11-gl" "x11-glesv2" "drm-gl" "drm-glesv2" "wayland-gl" "wayland-glesv2") From 7b6818359c0f920ee7513b046d1c589665c3a6f0 Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Thu, 12 May 2022 11:05:16 -0400 Subject: [PATCH 102/363] gnu: zfs: Use new package style. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/file-systems.scm (zfs): Comment style. [arguments]: Rewrite using gexps. [inputs]: Remove labels. Signed-off-by: Ludovic Courtès --- gnu/packages/file-systems.scm | 248 ++++++++++++++++++---------------- 1 file changed, 128 insertions(+), 120 deletions(-) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 6b446971f6..216e4cfcda 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -1158,128 +1158,136 @@ with the included @command{xfstests-check} helper.") (base32 "1xmcy4f0damf1pkb1sy1339ir1jkky0dwzd8vhwgc1pqjgac0liv")))) (build-system linux-module-build-system) (arguments - `(;; The ZFS kernel module should not be downloaded since the license - ;; terms don't allow for distributing it, only building it locally. - #:substitutable? #f - ;; Tests cannot run in an unprivileged build environment. - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'configure 'really-configure - (lambda* (#:key outputs inputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "configure" - (("-/bin/sh") (string-append "-" (which "sh")))) - (invoke "./configure" - "--with-config=all" - (string-append "--prefix=" out) - (string-append "--with-dracutdir=" out "/lib/dracut") - (string-append "--with-udevdir=" out "/lib/udev") - (string-append "--with-mounthelperdir=" out "/sbin") - (string-append "--with-linux=" - (assoc-ref inputs "linux-module-builder") - "/lib/modules/build"))))) - (add-after 'unpack 'patch-source - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (src (assoc-ref outputs "src")) - (util-linux (assoc-ref inputs "util-linux")) - (nfs-utils (assoc-ref inputs "nfs-utils")) - (kmod (assoc-ref inputs "kmod-runtime"))) - ;; New feature "compatibility=" in 2.1.0. - ;; This feature looks up in two locations: - ;; /etc/zfs/compatibility.d/ - ;; /usr/share/zfs/compatibility.d/ - ;; The first is intended for system-specific compatibility - ;; sets, while the second is what is installed with the - ;; OpenZFS package, so use the absolute path for the first - ;; (which requires patching in the file) and the store path - ;; for the second (which it gets by default). - (substitute* "include/sys/fs/zfs.h" - (("#define\tZPOOL_SYSCONF_COMPAT_D.*$") - ; Use absolute path. - "#define\tZPOOL_SYSCONF_COMPAT_D\t\"/etc/zfs/compatibility.d\"\n")) - ;; Also update the manual, which uses absolute paths, so that - ;; /usr/share/zfs/compatibility.d/ is referred via the store. - (substitute* '("man/man7/zpoolprops.7" - "man/man7/zpool-features.7") - (("/usr/share/zfs/compatibility.d") - (string-append out "/share/zfs/compatibility.d"))) - (substitute* "etc/Makefile.in" - ;; This just contains an example configuration file for - ;; configuring ZFS on traditional init systems, skip it - ;; since we cannot use it anyway; the install target becomes - ;; misdirected. - (("= default ") "= ")) - (substitute* "lib/libzfs/os/linux/libzfs_util_os.c" - ;; Use path to /gnu/store/*-kmod in actual path that is exec'ed. - (("\"/sbin/modprobe\"") - (string-append "\"" kmod "/bin/modprobe" "\"")) - ;; Just use 'modprobe' in message to user, since Guix - ;; does not have a traditional /sbin/ - (("'/sbin/modprobe ") "'modprobe ")) - (substitute* "contrib/Makefile.in" - ;; This is not configurable nor is its hard-coded /usr prefix. - ((" initramfs") "")) - (substitute* "module/os/linux/zfs/zfs_ctldir.c" - (("/usr/bin/env\", \"umount") - (string-append util-linux "/bin/umount\", \"-n")) - (("/usr/bin/env\", \"mount") - (string-append util-linux "/bin/mount\", \"-n"))) - (substitute* "lib/libzfs/os/linux/libzfs_mount_os.c" - (("/bin/mount") (string-append util-linux "/bin/mount")) - (("/bin/umount") (string-append util-linux "/bin/umount"))) - (substitute* "lib/libshare/os/linux/nfs.c" - (("/usr/sbin/exportfs") - (string-append nfs-utils "/sbin/exportfs"))) - (substitute* "config/zfs-build.m4" - (("\\$sysconfdir/init.d") (string-append out "/etc/init.d"))) - (substitute* '("etc/zfs/Makefile.am" - "cmd/zed/Makefile.am") - (("\\$\\(sysconfdir)") (string-append out "/etc"))) - (substitute* "cmd/vdev_id/vdev_id" - (("PATH=/bin:/sbin:/usr/bin:/usr/sbin") - (string-append "PATH=" - (dirname (which "chmod")) ":" - (dirname (which "grep")) ":" - (dirname (which "sed")) ":" - (dirname (which "gawk"))))) - (substitute* "contrib/pyzfs/Makefile.in" - ((".*install-lib.*") "")) - (substitute* '("Makefile.am" "Makefile.in") - (("\\$\\(prefix)/src") (string-append src "/src"))) - (substitute* (find-files "udev/rules.d/" ".rules.in$") - (("/sbin/modprobe") (string-append kmod "/bin/modprobe")))))) - (replace 'build - (lambda _ (invoke "make"))) - (replace 'install - (lambda* (#:key outputs inputs native-inputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (moddir (assoc-ref outputs "module")) - (kmod (assoc-ref (or native-inputs inputs) "kmod"))) - (invoke "make" "install" - (string-append "DEFAULT_INITCONF_DIR=" out "/etc/default") - (string-append "DEPMOD=" kmod "/bin/depmod") - (string-append "INSTALL_PATH=" out) - (string-append "INSTALL_MOD_PATH=" moddir) - "INSTALL_MOD_STRIP=1") - (install-file "contrib/bash_completion.d/zfs" - (string-append out - "/share/bash-completion/completions")))))))) + (list + ;; The ZFS kernel module should not be downloaded since the license + ;; terms don't allow for distributing it, only building it locally. + #:substitutable? #f + ;; Tests cannot run in an unprivileged build environment. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'configure 'really-configure + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "configure" + (("-/bin/sh") (string-append "-" (which "sh")))) + (invoke "./configure" + "--with-config=all" + (string-append "--prefix=" #$output) + (string-append "--with-dracutdir=" #$output + "/lib/dracut") + (string-append "--with-udevdir=" #$output + "/lib/udev") + (string-append "--with-mounthelperdir=" #$output + "/sbin") + (string-append "--with-linux=" + (search-input-directory + inputs + "lib/modules/build"))))) + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + ;; New feature "compatibility=" in 2.1.0. + ;; This feature looks up in two locations: + ;; /etc/zfs/compatibility.d/ + ;; /usr/share/zfs/compatibility.d/ + ;; The first is intended for system-specific compatibility + ;; sets, while the second is what is installed with the + ;; OpenZFS package, so use the absolute path for the first + ;; (which requires patching in the file) and the store path + ;; for the second (which it gets by default). + (substitute* "include/sys/fs/zfs.h" + (("#define\tZPOOL_SYSCONF_COMPAT_D.*$") + ;; Use absolute path. + "#define\tZPOOL_SYSCONF_COMPAT_D\t\"/etc/zfs/compatibility.d\"\n")) + ;; Also update the manual, which uses absolute paths, so that + ;; /usr/share/zfs/compatibility.d/ is referred via the store. + (substitute* '("man/man7/zpoolprops.7" + "man/man7/zpool-features.7") + (("/usr/share/zfs/compatibility.d") + (string-append #$output "/share/zfs/compatibility.d"))) + (substitute* "etc/Makefile.in" + ;; This just contains an example configuration file for + ;; configuring ZFS on traditional init systems, skip it + ;; since we cannot use it anyway; the install target becomes + ;; misdirected. + (("= default ") "= ")) + (substitute* "lib/libzfs/os/linux/libzfs_util_os.c" + ;; Use path to /gnu/store/*-kmod in actual path that is + ;; exec'ed. + (("\"/sbin/modprobe\"") + (string-append "\"" + (search-input-file inputs "/bin/modprobe") + "\"")) + ;; Just use 'modprobe' in message to user, since Guix + ;; does not have a traditional /sbin/ + (("'/sbin/modprobe ") "'modprobe ")) + (substitute* "contrib/Makefile.in" + ;; This is not configurable nor is its hard-coded /usr prefix. + ((" initramfs") "")) + (substitute* "module/os/linux/zfs/zfs_ctldir.c" + (("/usr/bin/env\", \"umount") + (string-append (search-input-file inputs "/bin/umount") + "\", \"-n")) + (("/usr/bin/env\", \"mount") + (string-append (search-input-file inputs "/bin/mount") + "\", \"-n"))) + (substitute* "lib/libzfs/os/linux/libzfs_mount_os.c" + (("/bin/mount") (search-input-file inputs "/bin/mount")) + (("/bin/umount") (search-input-file inputs "/bin/umount"))) + (substitute* "lib/libshare/os/linux/nfs.c" + (("/usr/sbin/exportfs") + (search-input-file inputs "/sbin/exportfs"))) + (substitute* "config/zfs-build.m4" + (("\\$sysconfdir/init.d") + (string-append #$output "/etc/init.d"))) + (substitute* '("etc/zfs/Makefile.am" + "cmd/zed/Makefile.am") + (("\\$\\(sysconfdir)") (string-append #$output "/etc"))) + (substitute* "cmd/vdev_id/vdev_id" + (("PATH=/bin:/sbin:/usr/bin:/usr/sbin") + (string-append "PATH=" + (dirname (which "chmod")) ":" + (dirname (which "grep")) ":" + (dirname (which "sed")) ":" + (dirname (which "gawk"))))) + (substitute* "contrib/pyzfs/Makefile.in" + ((".*install-lib.*") "")) + (substitute* '("Makefile.am" "Makefile.in") + (("\\$\\(prefix)/src") (string-append #$output:src "/src"))) + (substitute* (find-files "udev/rules.d/" ".rules.in$") + (("/sbin/modprobe") + (search-input-file inputs "/bin/modprobe"))))) + (replace 'build + (lambda _ (invoke "make"))) + (replace 'install + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let* ((kmod (assoc-ref (or native-inputs inputs) "kmod"))) + (invoke "make" "install" + (string-append "DEFAULT_INITCONF_DIR=" + #$output "/etc/default") + (string-append "DEPMOD=" + (search-input-file + (or native-inputs inputs) + "/bin/depmod")) + (string-append "INSTALL_PATH=" #$output) + (string-append "INSTALL_MOD_PATH=" #$output:module) + "INSTALL_MOD_STRIP=1") + (install-file + "contrib/bash_completion.d/zfs" + (string-append #$output + "/share/bash-completion/completions")))))))) (native-inputs (list attr kmod pkg-config)) - (inputs - `(("eudev" ,eudev) - ("kmod-runtime" ,kmod) - ("libaio" ,libaio) - ("libtirpc" ,libtirpc) - ("nfs-utils" ,nfs-utils) - ("openssl" ,openssl) - ("python" ,python) - ("python-cffi" ,python-cffi) - ("util-linux" ,util-linux) - ("util-linux:lib" ,util-linux "lib") - ("zlib" ,zlib))) + (inputs (list eudev + kmod + libaio + libtirpc + nfs-utils + openssl + python + python-cffi + util-linux + `(,util-linux "lib") + zlib)) (home-page "https://zfsonlinux.org/") (synopsis "OpenZFS on Linux") (description From bbb7957881af7cf359d30f041247a0d786aa3888 Mon Sep 17 00:00:00 2001 From: Ryan Prior Date: Sun, 8 May 2022 01:45:25 +0000 Subject: [PATCH 103/363] gnu: python-kivy: Update to 2.1.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-kivy): Update to 2.1.0. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 738dfd61cd..4794195c8f 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18632,7 +18632,7 @@ for Kivy, the multitouch application platform.") (define-public python-kivy (package (name "python-kivy") - (version "1.10.1") + (version "2.1.0") (source (origin (method url-fetch) @@ -18640,7 +18640,7 @@ for Kivy, the multitouch application platform.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1zzxjdp78hfjjiklzr82l4zwibwcq4j6kgicspqs6iyyfn5yisbw")))) + "1cq4djfn7h8560mvz94dydsldg2jpp5w9rby7nafgmbh7fxg65is")))) (build-system python-build-system) (arguments `(#:tests? #f ; Tests require many optional packages @@ -18650,7 +18650,7 @@ for Kivy, the multitouch application platform.") (lambda* (#:key inputs #:allow-other-keys) (setenv "KIVY_SDL2_PATH" (search-input-directory inputs "/include/SDL2")))) - (add-before 'sanity-check 'set-home + (add-before 'build 'set-home (lambda _ ;; 'kivy/__init__.py' wants to create $HOME/.kivy. (setenv "HOME" (getcwd))))))) From 1594d6c93a5c7d927bd7505c689e267560df73db Mon Sep 17 00:00:00 2001 From: Ryan Prior Date: Sun, 8 May 2022 01:45:36 +0000 Subject: [PATCH 104/363] gnu: Add python-kivymd. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-kivymd): New symbol. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 4794195c8f..b8fd857fd6 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18670,6 +18670,35 @@ for Kivy, the multitouch application platform.") multitouch applications.") (license license:expat))) +(define-public python-kivymd + (package + (name "python-kivymd") + (version "0.104.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "kivymd" version)) + (sha256 + (base32 "04lwy6j0agrdwa4a6dl6qs97nx9ysmscmm8psvdzjpyj8aa1zg4p")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ;tests require network + #:phases + (modify-phases %standard-phases + (add-before 'sanity-check 'set-home + (lambda _ + ;; 'kivy/__init__.py' wants to create $HOME/.kivy. + (setenv "HOME" (getcwd))))))) + (native-inputs (list python-docutils)) + (propagated-inputs + (list python-kivy python-pillow python-pygments python-kivy-garden)) + (home-page "https://github.com/kivymd/KivyMD") + (synopsis "Material Design compliant widgets for use with Kivy") + (description + "This package provides Kivy widgets that approximate Google's Material +Design spec without sacrificing ease of use or application performance.") + (license license:expat))) + (define-public python2-kivy (package-with-python2 python-kivy)) From be21ae6861c879509e14672437a3788899030340 Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Tue, 10 May 2022 19:57:17 +0800 Subject: [PATCH 105/363] gnu: Use license: prefix for gnu/packages/gnustep.scm. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnustep.scm (gnustep-make)[license]: Use "license:" prefix. (windowmaker): Ditto. (wmbattery): Ditto. (wmnd): Ditto. (wmcpuload): Ditto. (wmclock): Ditto. (wmfire): Ditto. Signed-off-by: Ludovic Courtès --- gnu/packages/gnustep.scm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index eef3863949..a6c7c800a8 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ricardo Wurmus +;;; Copyright © 2022 Zhu Zihao ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,7 +24,7 @@ #:use-module (guix download) #:use-module (guix packages) #:use-module (guix build-system gnu) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages xorg) @@ -62,7 +63,7 @@ to write makefiles for a GNUstep-based project. It allows the user to write a project without having to deal with the complex issues associated with configuration, building, installation, and packaging. It also allows the user to easily create cross-compiled binaries.") - (license gpl3+))) + (license license:gpl3+))) (define-public windowmaker (package @@ -153,7 +154,7 @@ possible, it reproduces the elegant look and feel of the NeXTSTEP user interface. It is fast, feature rich, easy to configure, and easy to use.") ;; Artwork is distributed under the WTFPL. - (license gpl2+))) + (license license:gpl2+))) (define-public wmbattery (package @@ -180,7 +181,7 @@ interface. It is fast, feature rich, easy to configure, and easy to use.") This includes if it is plugged in, if the battery is charging, how many minutes of battery life remain, battery life remaining (with both a percentage and a graph), and battery status (high - green, low - yellow, or critical - red).") - (license gpl2))) + (license license:gpl2))) (define-public wmnd (package @@ -204,7 +205,7 @@ graph), and battery status (high - green, low - yellow, or critical - red).") (description "WMND is a dockapp for monitoring network interfaces under WindowMaker and other compatible window managers.") - (license gpl2+))) + (license license:gpl2+))) (define-public wmcpuload (package @@ -231,7 +232,7 @@ chart, and has an LCD look-alike user interface. The back-light may be turned on and off by clicking the mouse button over the application. If the CPU usage hits a certain threshold, an alarm-mode will alert you by turning back-light on.") - (license gpl2+))) + (license license:gpl2+))) (define-public wmclock (package @@ -257,7 +258,7 @@ on.") "wmclock is an applet for Window Maker which displays the date and time in a dockable tile. It features multiple language support, 24h or 12h time display, and can run a user-specified program on mouse click.") - (license gpl2+))) + (license license:gpl2+))) (define-public wmfire (package @@ -286,4 +287,4 @@ memory, network load, a file or just be set to show a pretty flame. On entering the dock a burning spot replaces the cursor, and after two seconds symbols to represent the current monitor are \"burnt\" onscreen. The flame colour can also be changed.") - (license gpl2+))) + (license license:gpl2+))) From fd94ccf8f185f6439905f23bbb46e5f85d87fd3a Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Tue, 10 May 2022 19:27:25 +0800 Subject: [PATCH 106/363] gnu: clang: Add OBJC_INCLUDE_PATH to native-search-paths. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clang is also a compiler for Objective-C. * gnu/packages/llvm.scm (clang-for-llvm): Add OBJC_INCLUDE_PATH to native-search-paths. Signed-off-by: Ludovic Courtès --- gnu/packages/llvm.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index b84d987dbb..4d5a948236 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -388,6 +388,9 @@ given PATCHES. When TOOLS-EXTRA is given, it must point to the (search-path-specification (variable "CPLUS_INCLUDE_PATH") (files '("include/c++" "include"))) + (search-path-specification + (variable "OBJC_INCLUDE_PATH") + (files '("include"))) (search-path-specification (variable "LIBRARY_PATH") (files '("lib" "lib64"))))) From 31a9003d4f47fe54df61d2313728bc09a21f20d0 Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Sun, 27 Mar 2022 01:11:15 +0800 Subject: [PATCH 107/363] gnu: Add libobjc2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/libobjc2-unbundle-robin-map.patch: New file. * gnu/local.mk (dist_patch_DATA): Add corresponding file entry. * gnu/packages/gnustep.scm (libobjc2): New variable. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/gnustep.scm | 47 +++++++++++++++++++ .../patches/libobjc2-unbundle-robin-map.patch | 47 +++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 gnu/packages/patches/libobjc2-unbundle-robin-map.patch diff --git a/gnu/local.mk b/gnu/local.mk index 21b8a9758d..37e0107e4a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1335,6 +1335,7 @@ dist_patch_DATA = \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/libffi-3.3-powerpc-fixes.patch \ %D%/packages/patches/libffi-float128-powerpc64le.patch \ + %D%/packages/patches/libobjc2-unbundle-robin-map.patch \ %D%/packages/patches/librime-fix-build-with-gcc10.patch \ %D%/packages/patches/libvirt-add-install-prefix.patch \ %D%/packages/patches/libziparchive-add-includes.patch \ diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index a6c7c800a8..0314983559 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -22,15 +22,21 @@ (define-module (gnu packages gnustep) #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages datastructures) #:use-module (gnu packages xorg) #:use-module (gnu packages libffcall) + #:use-module (gnu packages gcc) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages llvm) #:use-module (gnu packages texinfo) #:use-module (gnu packages autotools) #:use-module (gnu packages glib) @@ -65,6 +71,47 @@ configuration, building, installation, and packaging. It also allows the user to easily create cross-compiled binaries.") (license license:gpl3+))) +(define-public libobjc2 + (package + (name "libobjc2") + (version "2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gnustep/libobjc2") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1zjryzvy06gjf36gz6zrkg9icwz6wsf80mp94x6bq1109vkl40b5")) + (file-name (git-file-name name version)) + (patches + (search-patches "libobjc2-unbundle-robin-map.patch")))) + (build-system cmake-build-system) + (arguments + (list + ;; XXX: Cannot use GCC to compile ObjC code due to + ;; https://issues.guix.gnu.org/29644. + #:configure-flags #~(list "-DCMAKE_C_COMPILER=clang" + "-DCMAKE_CXX_COMPILER=clang++"))) + (inputs + (list clang robin-map)) + (home-page "http://www.gnustep.org/") + (synopsis "Objective-C runtime library for Clang") + (description "Libobjc2 is an Objective-C runtime library designed as a +drop-in replacment for GCC runtime. It supports following features beyond +GCC runtime. + +@itemize +@item Modern Objective-C runtime APIs. +@item Blocks (Closures). +@item Synthesised property accessors. +@item Efficient support for @code{@@synchronized()}. +@item Type-dependent dispatch. +@item Associated reference API. +@item Automatic Reference Counting. +@end itemize") + (license license:expat))) + (define-public windowmaker (package (name "windowmaker") diff --git a/gnu/packages/patches/libobjc2-unbundle-robin-map.patch b/gnu/packages/patches/libobjc2-unbundle-robin-map.patch new file mode 100644 index 0000000000..b828a64221 --- /dev/null +++ b/gnu/packages/patches/libobjc2-unbundle-robin-map.patch @@ -0,0 +1,47 @@ +From 2c5b0d5d6eba3bda4e83f489da546060fa8f3a2b Mon Sep 17 00:00:00 2001 +From: Zhu Zihao +Date: Sat, 26 Mar 2022 16:54:43 +0800 +Subject: [PATCH] Unbundle robin-map. + +This patch makes libobjc2 use robin-map header from system instead of cloning +from submodule. +--- + CMakeLists.txt | 8 -------- + arc.mm | 2 +- + 2 files changed, 1 insertion(+), 9 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e2746e9..cf731f1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -86,14 +86,6 @@ else () + list(APPEND libobjc_C_SRCS eh_personality.c) + endif (WIN32) + +-if (NOT EXISTS "${CMAKE_SOURCE_DIR}/third_party/robin-map/include/tsl/robin_map.h") +- message(FATAL_ERROR "Git submodules not present, please run:\n\n" +- " $ git submodule init && git submodule update\n\n" +- "If you did not checkout via git, you will need to" +- "fetch the submodule's contents from" +- "https://github.com/Tessil/robin-map/") +-endif () +- + # For release builds, we disable spamming the terminal with warnings about + # selector type mismatches + if (CMAKE_BUILD_TYPE STREQUAL Release) +diff --git a/arc.mm b/arc.mm +index c96681f..cc93e7f 100644 +--- a/arc.mm ++++ b/arc.mm +@@ -3,7 +3,7 @@ + #include + #include + #include +-#include "third_party/robin-map/include/tsl/robin_map.h" ++#include + #import "lock.h" + #import "objc/runtime.h" + #import "objc/blocks_runtime.h" +-- +2.34.0 + From d1bdead83842d12208fd00eef7de9fdbff5fee53 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 14:49:27 +0200 Subject: [PATCH 108/363] gnu: Add python-aplus. * gnu/packages/python-science.scm (python-aplus): New variable. --- gnu/packages/python-science.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index bf7c7ce45f..90809e8e56 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -1222,3 +1222,20 @@ stack such as numpy arrays or pandas and xarray data structures. These are out of the scope of the main traitlets project but are a common requirement to build applications with traitlets in combination with the scipy stack.") (license license:bsd-3))) + +(define-public python-aplus + (package + (name "python-aplus") + (version "0.11.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aplus" version)) + (sha256 + (base32 "1rznc26nlp641rn8gpdngfp79a3fji38yavqakxi35mx2da04msg")))) + (build-system python-build-system) + (home-page "https://github.com/xogeny/aplus") + (synopsis "Promises/A+ for Python") + (description "This package is an implementation of the Promises/A+ +specification and test suite in Python.") + (license license:expat))) From e35c08d2f910ddab027bc45188a0ba838958e5f6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 20:39:48 +0200 Subject: [PATCH 109/363] guix: Remove duplicate definitions of dump-port. * guix/store.scm (dump-port): Remove procedure; autoload from (guix build utils) instead. * guix/store/deduplication.scm (dump-port): Remove procedure; unhide dump-port from (guix build utils). --- guix/store.scm | 24 +----------------------- guix/store/deduplication.scm | 27 +-------------------------- 2 files changed, 2 insertions(+), 49 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index a3240eb2e0..82fca14cd9 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -33,6 +33,7 @@ #:use-module (gcrypt hash) #:use-module (guix profiling) #:autoload (guix build syscalls) (terminal-columns) + #:autoload (guix build utils) (dump-port) #:use-module (rnrs bytevectors) #:use-module (ice-9 binary-ports) #:use-module ((ice-9 control) #:select (let/ec)) @@ -682,29 +683,6 @@ automatically close the store when the dynamic extent of EXP is left." ;; The port where build output is sent. (make-parameter (current-error-port))) -(define* (dump-port in out - #:optional len - #:key (buffer-size 16384)) - "Read LEN bytes from IN (or as much as possible if LEN is #f) and write it -to OUT, using chunks of BUFFER-SIZE bytes." - (define buffer - (make-bytevector buffer-size)) - - (let loop ((total 0) - (bytes (get-bytevector-n! in buffer 0 - (if len - (min len buffer-size) - buffer-size)))) - (or (eof-object? bytes) - (and len (= total len)) - (let ((total (+ total bytes))) - (put-bytevector out buffer 0 bytes) - (loop total - (get-bytevector-n! in buffer 0 - (if len - (min (- len total) buffer-size) - buffer-size))))))) - (define %newlines ;; Newline characters triggering a flush of 'current-build-output-port'. ;; Unlike Guile's 'line, we flush upon #\return so that progress reports diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm index 370df4a74c..ab982e3b3d 100644 --- a/guix/store/deduplication.scm +++ b/guix/store/deduplication.scm @@ -22,7 +22,7 @@ (define-module (guix store deduplication) #:use-module (gcrypt hash) - #:use-module ((guix build utils) #:hide (dump-port)) + #:use-module (guix build utils) #:use-module (guix build syscalls) #:use-module (guix base32) #:use-module (srfi srfi-11) @@ -38,31 +38,6 @@ dump-file/deduplicate copy-file/deduplicate)) -;; TODO: Remove once 'dump-port' in (guix build utils) has an optional 'len' -;; parameter. -(define* (dump-port in out - #:optional len - #:key (buffer-size 16384)) - "Read LEN bytes from IN (or as much as possible if LEN is #f) and write it -to OUT, using chunks of BUFFER-SIZE bytes." - (define buffer - (make-bytevector buffer-size)) - - (let loop ((total 0) - (bytes (get-bytevector-n! in buffer 0 - (if len - (min len buffer-size) - buffer-size)))) - (or (eof-object? bytes) - (and len (= total len)) - (let ((total (+ total bytes))) - (put-bytevector out buffer 0 bytes) - (loop total - (get-bytevector-n! in buffer 0 - (if len - (min (- len total) buffer-size) - buffer-size))))))) - (define (nar-sha256 file) "Gives the sha256 hash of a file and the size of the file in nar form." (let-values (((port get-hash) (open-sha256-port))) From dd19b191d6e0c97cd116434e92a149e9d279a501 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2022 20:42:05 +0200 Subject: [PATCH 110/363] guix: Remove unused import. * guix/scripts/pull.scm: Do not import with-file-lock/no-wait from (guix build syscalls). --- guix/scripts/pull.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 7402782ff3..8eb9b31288 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -40,8 +40,6 @@ #:use-module (guix scripts build) #:use-module (guix scripts describe) #:autoload (guix build utils) (which mkdir-p) - #:use-module ((guix build syscalls) - #:select (with-file-lock/no-wait)) #:use-module (guix git) #:use-module (git) #:autoload (gnu packages) (fold-available-packages) From 48c748226e2a94d2dec9bfdf84601455f00d6f5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 May 2022 20:41:02 +0200 Subject: [PATCH 111/363] Revert "installer: user: Remove useless filtering." This reverts commit c2125e59d0774cda3e559adeb056459a5f23586b. Fixes . --- gnu/installer/user.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/installer/user.scm b/gnu/installer/user.scm index b042c9790d..c894a91dc8 100644 --- a/gnu/installer/user.scm +++ b/gnu/installer/user.scm @@ -69,5 +69,10 @@ (supplementary-groups '("wheel" "netdev" "audio" "video")))) - `((users (cons* ,@(map user->sexp users) - %base-user-accounts)))) + `((users (cons* + ,@(filter-map (lambda (user) + ;; Do not emit a 'user-account' form for "root". + (and (not (string=? (user-name user) "root")) + (user->sexp user))) + users) + %base-user-accounts)))) From d9f15a0b7b857483a74e9baa8848e0276df07784 Mon Sep 17 00:00:00 2001 From: kiasoc5 Date: Wed, 18 May 2022 22:51:14 -0400 Subject: [PATCH 112/363] gnu: clamav: Use new style and G-expressions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/antivirus.scm (clamav)[source]: Remove trailing #t from snippet. [inputs]: Use new input style. [arguments]: Use G-expressions. Remove trailing #t from phases [configure-flags]: Adjust to new input style. Signed-off-by: Ludovic Courtès --- gnu/packages/antivirus.scm | 128 ++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm index 80126a5b59..4f8fbff34c 100644 --- a/gnu/packages/antivirus.scm +++ b/gnu/packages/antivirus.scm @@ -21,6 +21,7 @@ (define-module (gnu packages antivirus) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -59,8 +60,7 @@ '("win32" ; unnecessary "libclamav/c++/llvm" ; use system llvm "libclamav/tomsfastmath" ; use system tomsfastmath - "libclamunrar")) ; non-free license - #t)) + "libclamunrar")))) ; non-free license (patches (search-patches "clamav-system-tomsfastmath.patch" "clamav-config-llvm-libs.patch")))) @@ -72,70 +72,70 @@ libtool pkg-config)) (inputs - `(("bzip2" ,bzip2) - ("libcurl" ,curl) - ("libjson" ,json-c) - ("libltdl" ,libltdl) - ("libmspack" ,libmspack) - ("llvm" ,llvm-3.6) ; requires <3.7, for JIT/verifier - ("ncurses" ,ncurses) - ("openssl" ,libressl) - ("pcre2" ,pcre2) - ("sasl" ,cyrus-sasl) ; for linking curl with libtool - ("tomsfastmath" ,tomsfastmath) - ("xml" ,libxml2) - ("zlib" ,zlib))) + (list bzip2 + curl + json-c + libltdl + libmspack + llvm-3.6 ; requires <3.7, for JIT/verifier + ncurses + libressl + pcre2 + cyrus-sasl ; for linking curl with libtool + tomsfastmath + libxml2 + zlib)) (arguments - `(#:configure-flags - (let-syntax ((with (syntax-rules () - ((_ name) + (list #:configure-flags + #~(let-syntax ((with (syntax-rules () + ((_ name use) (string-append "--with-" name "=" - (assoc-ref %build-inputs name)))))) - (list "--disable-unrar" - "--enable-llvm" - "--with-system-llvm" - "--with-system-libmspack" - "--without-included-ltdl" - (with "xml") - (with "openssl") - (with "libjson") - (with "pcre2") - (with "zlib") - (with "libcurl") - ;; For sanity, specifying --enable-* flags turns - ;; "support unavailable" warnings into errors. - "--enable-bzip2" - "--enable-check" - "--sysconfdir=/etc/clamav" - ;; Default database directory needs to be writeable - "--with-dbdir=/var/db/clamav")) - ;; install sample .conf files to %output/etc rather than /etc/clamav - #:make-flags (list (string-append "sysconfdir=" %output "/etc")) - #:phases (modify-phases %standard-phases - ;; Regenerate configure script. Without this we don't get - ;; the correct value for LLVM linker variables. - (add-after 'unpack 'reconf - (lambda _ (invoke "autoreconf" "-vfi"))) - (add-before 'configure 'patch-llvm-config - (lambda _ - (substitute* '("libclamav/c++/detect.cpp" - "libclamav/c++/ClamBCRTChecks.cpp" - "libclamav/c++/bytecode2llvm.cpp") - (("llvm/Config/config.h") "llvm/Config/llvm-config.h")) - ;; `llvm-config --libfiles` inappropriately lists lib*.a - ;; libraries, rather than the lib*.so's that our llvm - ;; contains. They're used only for listing extra build - ;; dependencies, so ignore them until that's fixed. - (substitute* "libclamav/c++/Makefile.in" - (("@LLVMCONFIG_LIBFILES@") "")) - #t)) - (add-before 'check 'skip-clamd-tests - ;; XXX: The check?_clamd tests fail inside the build - ;; chroot, but pass outside. - (lambda _ - (substitute* "unit_tests/Makefile" - (("check2_clamd.sh.*check4_clamd.sh") "")) - #t))))) + (assoc-ref %build-inputs use)))))) + (list "--disable-unrar" + "--enable-llvm" + "--with-system-llvm" + "--with-system-libmspack" + "--without-included-ltdl" + (with "xml" "libxml2") + (with "openssl" "libressl") + (with "libjson" "json-c") + (with "pcre2" "pcre2") + (with "zlib" "zlib") + (with "libcurl" "curl") + ;; For sanity, specifying --enable-* flags turns + ;; "support unavailable" warnings into errors. + "--enable-bzip2" + "--enable-check" + "--sysconfdir=/etc/clamav" + ;; Default database directory needs to be writeable + "--with-dbdir=/var/db/clamav")) + ;; install sample .conf files to %output/etc rather than /etc/clamav + #:make-flags + #~(list (string-append "sysconfdir=" %output "/etc")) + #:phases + #~(modify-phases %standard-phases + ;; Regenerate configure script. Without this we don't get + ;; the correct value for LLVM linker variables. + (add-after 'unpack 'reconf + (lambda _ (invoke "autoreconf" "-vfi"))) + (add-before 'configure 'patch-llvm-config + (lambda _ + (substitute* '("libclamav/c++/detect.cpp" + "libclamav/c++/ClamBCRTChecks.cpp" + "libclamav/c++/bytecode2llvm.cpp") + (("llvm/Config/config.h") "llvm/Config/llvm-config.h")) + ;; `llvm-config --libfiles` inappropriately lists lib*.a + ;; libraries, rather than the lib*.so's that our llvm + ;; contains. They're used only for listing extra build + ;; dependencies, so ignore them until that's fixed. + (substitute* "libclamav/c++/Makefile.in" + (("@LLVMCONFIG_LIBFILES@") "")))) + (add-before 'check 'skip-clamd-tests + ;; XXX: The check?_clamd tests fail inside the build + ;; chroot, but pass outside. + (lambda _ + (substitute* "unit_tests/Makefile" + (("check2_clamd.sh.*check4_clamd.sh") ""))))))) (home-page "https://www.clamav.net") (synopsis "Antivirus engine") (description From 20b498b7dbeb7756a41d4d565b66813a6d1eba9a Mon Sep 17 00:00:00 2001 From: kiasoc5 Date: Sun, 15 May 2022 03:37:58 -0400 Subject: [PATCH 113/363] gnu: clamav: Update to 0.103.6 [fixes CVE-2022-{20803,20770,20796,20771,20785,20792}]. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/antivirus.scm (clamav): Update to 0.103.6. Signed-off-by: Ludovic Courtès --- gnu/packages/antivirus.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm index 4f8fbff34c..cda3fc942b 100644 --- a/gnu/packages/antivirus.scm +++ b/gnu/packages/antivirus.scm @@ -45,14 +45,14 @@ (define-public clamav (package (name "clamav") - (version "0.103.3") + (version "0.103.6") (source (origin (method url-fetch) (uri (string-append "https://www.clamav.net/downloads/production/" "clamav-" version ".tar.gz")) (sha256 (base32 - "1sba4zccgwjqk29b5qkgfc9gm794hmk6j7bpj8wilgcz8hc3svlz")) + "0cxsv5m9pqxxb56qd7hlj11pwmdgm07s3msh3hxk47czq4yjx8da")) (modules '((guix build utils))) (snippet '(begin From b29358f1988c0b1a5dc456115f2e753c69198088 Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" Date: Sat, 14 May 2022 11:59:07 +0300 Subject: [PATCH 114/363] gnu: Add python-murmurhash3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-murmurhash3): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index b8fd857fd6..1802867d17 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -121,6 +121,7 @@ ;;; Copyright © 2022 Peter Polidoro ;;; Copyright © 2022 Wamm K. D. ;;; Copyright © 2022 Jai Vetrivelan +;;; Copyright © 2022 Artyom V. Poptsov ;;; ;;; This file is part of GNU Guix. ;;; @@ -31383,3 +31384,37 @@ object, which can be useful if you want to force your objects into a table.") "The @code{deep-merge} Python library provides a toolset to deeply merge nested data structures in Python like lists and dictionaries.") (license license:expat))) + +(define-public python-murmurhash3 + (package + (name "python-murmurhash3") + (version "2.3.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "murmurhash3" version)) + (sha256 + (base32 + "1gdzys1212dx70byz07ipknbw1awbqskh6aznlkm85js8b8qfczm")))) + (build-system python-build-system) + (native-inputs (list python-cython python-pytest)) + (inputs (list python)) + (arguments + (list #:modules + '((ice-9 ftw) (ice-9 match) + (guix build utils) + (guix build python-build-system)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-source-file-times-to-1980 + (lambda _ + (let ((circa-1980 (* 10 366 24 60 60))) + (ftw "." + (lambda (file stat flag) + (utime file circa-1980 circa-1980) #t)))))))) + (home-page "https://github.com/veegee/mmh3") + (synopsis "Python wrapper for MurmurHash (MurmurHash3)") + (description + "@code{murmurhash3} is a Python library for MurmurHash (MurmurHash3), a set +of fast and robust hash functions. This library is a Python extension module +written in C.") + (license license:public-domain))) From 4df064f37ae3934e8f5a0672ea3f54b8f1130cde Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" Date: Sat, 14 May 2022 22:22:06 +0300 Subject: [PATCH 115/363] gnu: Add python-murmurhash. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-murmurhash): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 1802867d17..3c4fa16d16 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -31418,3 +31418,34 @@ nested data structures in Python like lists and dictionaries.") of fast and robust hash functions. This library is a Python extension module written in C.") (license license:public-domain))) + +(define-public python-murmurhash + (package + (name "python-murmurhash") + (version "1.0.7") + (source (origin + (method url-fetch) + (uri (pypi-uri "murmurhash" version)) + (sha256 + (base32 + "0vwkn98c703nvsigl2nz99rax2pafkx3djjfkgc49jiipmp3j2k3")))) + (build-system python-build-system) + (native-inputs (list python-cython python-pytest)) + (inputs (list python python-murmurhash3)) + (arguments + (list #:modules + '((ice-9 ftw) (ice-9 match) + (guix build utils) + (guix build python-build-system)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-source-file-times-to-1980 + (lambda _ + (let ((circa-1980 (* 10 366 24 60 60))) + (ftw "." + (lambda (file stat flag) + (utime file circa-1980 circa-1980) #t)))))))) + (home-page "https://github.com/explosion/murmurhash") + (synopsis "Cython bindings for MurmurHash2") + (description "This package provides Cython bindings for MurmurHash2.") + (license license:expat))) From 09d0d0f6a5280200d15f2d102c963a712c681b14 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Wed, 18 May 2022 19:21:11 +0000 Subject: [PATCH 116/363] gnu: python-geopandas: Fix build. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/geo.scm (python-geopandas)[arguments]: Disable broken tests. Re-enable test_fillna_no_op_returns_copy which does not fail anymore. Signed-off-by: Ludovic Courtès --- gnu/packages/geo.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index c2569c27d4..0c9240eea7 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -715,9 +715,14 @@ pyproj, Rtree, and Shapely.") (lambda* (#:key tests? #:allow-other-keys) (when tests? (invoke "pytest" - ; Disable test that fails with - ; NotImplementedError in pandas. - "-k" "not test_fillna_no_op_returns_copy" + ; Disable tests that fail due to incompatibilities + ; with our pandas version. + "-k" + (string-append + "not test_getitem_invalid" + " and not test_value_counts" + " and not test_setitem_invalid" + " and not test_insert_invalid") ; Disable tests that require internet access. "-m" "not web"))))))) (propagated-inputs From 59e8037312aa69b578fcba72da541d4296f62a8f Mon Sep 17 00:00:00 2001 From: Olivier Dion Date: Wed, 18 May 2022 13:12:42 -0400 Subject: [PATCH 117/363] gnu: liburcu: Fix license MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/datastructures.scm (liburcu): Fix license. [license]: Set to lgpl2.1 and expat. Signed-off-by: Ludovic Courtès --- gnu/packages/datastructures.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm index f247231ecf..4fa38ee3d4 100644 --- a/gnu/packages/datastructures.scm +++ b/gnu/packages/datastructures.scm @@ -155,7 +155,7 @@ synchronisation library. It provides read-side access that scales linearly with the number of cores. liburcu-cds provides efficient data structures based on RCU and lock-free algorithms. These structures include hash tables, queues, stacks, and doubly-linked lists.") - (license license:lgpl2.1+))) + (license (list license:lgpl2.1 license:expat)))) (define-public uthash (package From c95e9ddd6f813e834bb83c6127e78aca34781c4b Mon Sep 17 00:00:00 2001 From: Olivier Dion Date: Wed, 18 May 2022 14:11:19 -0400 Subject: [PATCH 118/363] gnu: lttng-ust: Fix license. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/instrumentation.scm (lttng-ust): Fix license. [license]: Set to lgpl2.1 and expat. Signed-off-by: Ludovic Courtès --- gnu/packages/instrumentation.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm index ab986bfcc7..c9ca9083e4 100644 --- a/gnu/packages/instrumentation.scm +++ b/gnu/packages/instrumentation.scm @@ -223,7 +223,7 @@ with the script @command{flamegraph.pl} and many stackcollapse scripts.") user space tracer. It receives commands from a session daemon, for example to enable and disable specific instrumentation points, and writes event records to ring buffers shared with a consumer daemon.") - (license license:lgpl2.1+))) + (license (list license:lgpl2.1 license:expat)))) (define-public lttng-tools (package From f1bc3536e719990f490f77197537a3c3f2cc7816 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 May 2022 21:57:25 -0400 Subject: [PATCH 119/363] gnu: linux-libre: Update to 5.17.9. * gnu/packages/linux.scm (linux-libre-5.17-version): Update to 5.17.9. (linux-libre-5.17-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e179a5c2f7..94df48b184 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -361,7 +361,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-5.17-version "5.17.8") +(define-public linux-libre-5.17-version "5.17.9") (define-public linux-libre-5.17-gnu-revision "gnu") (define deblob-scripts-5.17 (linux-libre-deblob-scripts @@ -371,7 +371,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1zd4ds6ha4a2acqnalp234r2m9rz9p30qmy1aqri78i06aw7flwn"))) (define-public linux-libre-5.17-pristine-source (let ((version linux-libre-5.17-version) - (hash (base32 "0si34i1hrhbapv1a8xghyvkywij0wgidxhdan23d6y2iqzc62y8i"))) + (hash (base32 "0y2rmn86z3cvgv71b6sjjyafnlbanlib1kjpjjqzjbgg86y2890p"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.17))) From 732ba8acd787b346047832d583e2397f90d2522e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 May 2022 21:58:44 -0400 Subject: [PATCH 120/363] gnu: linux-libre 5.15: Update to 5.15.41. * gnu/packages/linux.scm (linux-libre-5.15-version): Update to 5.15.41. (linux-libre-5.15-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 94df48b184..4a9a580a94 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -379,7 +379,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; -(define-public linux-libre-5.15-version "5.15.40") +(define-public linux-libre-5.15-version "5.15.41") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts @@ -389,7 +389,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0gs92qbpvirwd02rpwwnja7771z2azbiy9ppy9ynpr14lxmzxnnh"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "0fy3p1ds5yqljy2lpq66f0rqxfaz58ljfj12sd6wmgxbrgpgg1y7"))) + (hash (base32 "07jrsr54rvhry3g401h58r1773zinq49dbrkb9v1p6q27gyb2z1w"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) From 11f2cd9b7b579bf146544c46e86d331305e712db Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 May 2022 21:59:02 -0400 Subject: [PATCH 121/363] gnu: linux-libre 5.10: Update to 5.10.117. * gnu/packages/linux.scm (linux-libre-5.10-version): Update to 5.10.117. (linux-libre-5.10-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 4a9a580a94..9d7547fe11 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -394,7 +394,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.116") +(define-public linux-libre-5.10-version "5.10.117") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -404,7 +404,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1xyhz0dyrkg2avz382ly3dzpa5v89x49gfzx80c1drpwsk7jg6gp"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "0j8bsbjirndi74pmibplwbjlmpnvjw0f57vh6ayczy9nfjx94rl0"))) + (hash (base32 "1iyw3nmsga2binmrhfnzsf1pvn2bs21a8jw6vm89k26z5h8zfgkh"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) From 61b8f98c36155210f00e013d35dbd51ede8ee872 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 May 2022 21:59:28 -0400 Subject: [PATCH 122/363] gnu: linux-libre 5.4: Update to 5.4.195. * gnu/packages/linux.scm (linux-libre-5.4-version): Update to 5.4.195. (linux-libre-5.4-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 9d7547fe11..69edd83932 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -409,7 +409,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.194") +(define-public linux-libre-5.4-version "5.4.195") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -419,7 +419,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "05i286d98fm2pdf9724x1dsmfcm7gsd7yyyvxqlpisyj1kx14hda"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1xix3ndgzj7axmj9py7lip3n9qqw1jc4gi6lvls6zwi9364mfh98"))) + (hash (base32 "078380qhds2jwfmrchna6p27wpfb74pvnj4xiyc5k38gysfmnbzj"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) From 52418e9928a1c4d8d795815d902503eb98cd3396 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 May 2022 21:59:44 -0400 Subject: [PATCH 123/363] gnu: linux-libre 4.19: Update to 4.19.244. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.244. (linux-libre-4.19-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 69edd83932..e7175d86b0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -424,7 +424,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.243") +(define-public linux-libre-4.19-version "4.19.244") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -434,7 +434,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "17bsy1nwhkx90fh3zls5iwrs830ky7w68f8knqylxvmwwhqj1v3p"))) + (hash (base32 "1g9562v6ny196rw2n3kj43nrz65qa7imwnmfasvj6x8fm8bdhz79"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) From ff6b693d1beb21b8828c3b094e467cef669880a9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 May 2022 22:00:07 -0400 Subject: [PATCH 124/363] gnu: linux-libre 4.14: Update to 4.14.280. * gnu/packages/linux.scm (linux-libre-4.14-version): Update to 4.14.280. (linux-libre-4.14-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e7175d86b0..46731d61eb 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -439,7 +439,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.279") +(define-public linux-libre-4.14-version "4.14.280") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts @@ -449,7 +449,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "0f8v9lv2sr7r8n4pa4lgvk9ci948a0zwpgdm6k8rdqbafdca4y2k"))) + (hash (base32 "01jr0f7mq919s7xxvv8sc1mg6isc1ggij33l2s0n6jvykm23ghrr"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) From cb38c7c169e467fd5c2a4e556fe9df8ff56ddb5d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 May 2022 22:00:26 -0400 Subject: [PATCH 125/363] gnu: linux-libre 4.9: Update to 4.9.315. * gnu/packages/linux.scm (linux-libre-4.9-version): Update to 4.9.315. (linux-libre-4.9-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 46731d61eb..8c29776b64 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -454,7 +454,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.314") +(define-public linux-libre-4.9-version "4.9.315") (define-public linux-libre-4.9-gnu-revision "gnu1") (define deblob-scripts-4.9 (linux-libre-deblob-scripts @@ -464,7 +464,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "14jyn2yrbm6ayp0bszs4f9jy3p1qkrj5p5gf5c42spr67aa2lv2v"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "1nd3pkjkivx45k0lh1zlchv4vk7jb6mh9fm1jqnr02xkmld9bcr2"))) + (hash (base32 "1171p90s00jxg1clyz8kp81ilmdzygg131mxysr6lpkaisahkjg6"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) From 39a9404c996e5e686ab2d8745a4bbc5597430289 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 14 May 2022 01:30:44 -0400 Subject: [PATCH 126/363] system: Improve warning when using LUKS mapped devices without UUIDs. This corrects two problems with the previous mapped devices warning: 1. It wasn't clear how to correct the situation. 2. The output would be repeated multiple times, as many times as the procedure is called during a system reconfigure. * gnu/system.scm (operating-system-bootloader-crypto-devices): Memoize procedure. Include the mapped devices source location information in the warnings. Add a hint to help users fix the warning. --- gnu/system.scm | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index c3810cbeeb..ba3a1865d7 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -33,6 +33,7 @@ (define-module (gnu system) #:use-module (guix inferior) #:use-module (guix store) + #:use-module (guix memoization) #:use-module (guix monads) #:use-module (guix gexp) #:use-module (guix records) @@ -42,6 +43,7 @@ #:use-module ((guix utils) #:select (substitute-keyword-arguments)) #:use-module (guix i18n) #:use-module (guix diagnostics) + #:use-module (guix ui) #:use-module (gnu packages admin) #:use-module (gnu packages base) #:use-module (gnu packages bash) @@ -78,11 +80,13 @@ #:use-module (gnu system uuid) #:use-module (gnu system file-systems) #:use-module (gnu system mapped-devices) + #:use-module (ice-9 format) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) + #:use-module (srfi srfi-71) #:use-module (rnrs bytevectors) #:export (operating-system operating-system? @@ -600,25 +604,26 @@ from the initrd." (any file-system-needed-for-boot? users))) devices))) -(define (operating-system-bootloader-crypto-devices os) - "Return the subset of mapped devices that the bootloader must open. -Only devices specified by uuid are supported." - (define (valid-crypto-device? dev) - (or (uuid? dev) - (begin - (warning (G_ "\ -mapped-device '~a' may not be mounted by the bootloader.~%") - dev) - #f))) - (filter-map (match-lambda - ((and (= mapped-device-type type) - (= mapped-device-source source)) - (and (eq? luks-device-mapping type) - (valid-crypto-device? source) - source)) - (_ #f)) - ;; XXX: Ordering is important, we trust the returned one. - (operating-system-boot-mapped-devices os))) +(define operating-system-bootloader-crypto-devices + (mlambdaq (os) ;to avoid duplicated output + "Return the sources of the LUKS mapped devices specified by UUID." + ;; XXX: Device ordering is important, we trust the returned one. + (let* ((luks-devices (filter (lambda (m) + (eq? luks-device-mapping + (mapped-device-type m))) + (operating-system-boot-mapped-devices os))) + (uuid-crypto-devices non-uuid-crypto-devices + (partition (compose uuid? mapped-device-source) + luks-devices))) + (when (not (null? non-uuid-crypto-devices)) + (for-each (lambda (dev) + (warning + (source-properties->location (mapped-device-location dev)) + (G_ "mapped device '~a' may be ignored by bootloader~%") + (mapped-device-source dev))) + non-uuid-crypto-devices) + (display-hint "Specify mapped device sources via their LUKS UUID.")) + (map mapped-device-source uuid-crypto-devices)))) (define (device-mapping-services os) "Return the list of device-mapping services for OS as a list." From a3759646031f067a85b833f8ffd228c742f1b8f6 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sun, 17 Apr 2022 12:01:47 +0200 Subject: [PATCH 127/363] gnu: mpd: Add support for socket activation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mpd.scm (mpd)[#:configure-flags]: Convert to G-Expression. Add “-Dsystemd=enabled”. [#:phases]: New argument. [inputs]: Add elogind. --- gnu/packages/mpd.scm | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index dde233b337..541326d5d3 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -47,6 +47,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages cdrom) #:use-module (gnu packages cmake) ;for MPD + #:use-module (gnu packages freedesktop) ;elogind #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) @@ -119,12 +120,28 @@ interfacing MPD in the C, C++ & Objective C languages.") "04c2fr4akiylafb7wdjzn7r7d90rmzilbnagrifqyf3wf6ncn3cn")))) (build-system meson-build-system) (arguments - `(#:configure-flags '("-Ddocumentation=enabled"))) + (list + #:configure-flags #~(list "-Ddocumentation=enabled" + "-Dsystemd=enabled") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'enable-elogind + (lambda _ + (substitute* "src/lib/systemd/meson.build" + (("libsystemd") "libelogind")) + ;; XXX: systemd dependency overwritten internally, leads to bad + ;; errors + (substitute* "src/lib/systemd/meson.build" + (("systemd_dep = declare_dependency" all) + (string-append "_" all))) + (substitute* "meson.build" + (("systemd_dep,") "systemd_dep, _systemd_dep,"))))))) (inputs (list ao alsa-lib avahi boost curl + elogind ffmpeg flac fmt From 1ff8fc79265e6f934e1a9772feb53eb34084008f Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Fri, 20 May 2022 21:40:48 +0100 Subject: [PATCH 128/363] gnu: cl-hunchentoot: Update to 1.3.0-1.7686239. * gnu/packages/lisp-xyz.scm (sbcl-hunchentoot): Update to 1.3.0-1.7686239. Signed-off-by: Guillaume Le Vaillant --- gnu/packages/lisp-xyz.scm | 70 +++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 7fa0db59f9..84de670884 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -4242,44 +4242,44 @@ sockets, SSL, continuable uploads, file uploads, cookies, and more.") (sbcl-package->ecl-package sbcl-drakma)) (define-public sbcl-hunchentoot - (package - (name "sbcl-hunchentoot") - (version "1.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/edicl/hunchentoot") - (commit (string-append "v" version)))) - (file-name (git-file-name "hunchentoot" version)) - (sha256 - (base32 "1z0m45lp6rv59g69l44gj3q3d2bmjlhqzpii0vgkniam21dcimy9")))) - (build-system asdf-build-system/sbcl) - (native-inputs - (list sbcl-cl-who sbcl-drakma)) - (inputs - (list sbcl-chunga - sbcl-cl-base64 - sbcl-cl-fad - sbcl-cl-ppcre - sbcl-flexi-streams - sbcl-cl+ssl - sbcl-md5 - sbcl-rfc2388 - sbcl-trivial-backtrace - sbcl-usocket)) - (arguments - `(;; FIXME: Tests fail because they fail to open the file - ;; "/proc/sys/kernel/osrelease" - #:tests? #f)) - (home-page "https://edicl.github.io/hunchentoot/") - (synopsis "Web server written in Common Lisp") - (description - "Hunchentoot is a web server written in Common Lisp and at the same + ;; NOTE: (Sharlatan-20220520T213309+0100): The latest commit fixed tests, + ;; switch to the version tag when release is ready. + (let ((commit "76862391040c20255c7275e815c2175e46bfd080") + (revision "1")) + (package + (name "sbcl-hunchentoot") + (version (git-version "1.3.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/edicl/hunchentoot") + (commit commit))) + (file-name (git-file-name "cl-hunchentoot" version)) + (sha256 + (base32 "1h7ggmmzvgwr4p6j3ai0dqrw30q5309l13w4c03gqrapvwrb65l0")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-cl-who sbcl-drakma)) + (inputs + (list sbcl-chunga + sbcl-cl-base64 + sbcl-cl-fad + sbcl-cl-ppcre + sbcl-flexi-streams + sbcl-cl+ssl + sbcl-md5 + sbcl-rfc2388 + sbcl-trivial-backtrace + sbcl-usocket)) + (home-page "https://edicl.github.io/hunchentoot/") + (synopsis "Web server written in Common Lisp") + (description + "Hunchentoot is a web server written in Common Lisp and at the same time a toolkit for building dynamic websites. As a stand-alone web server, Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent connections (keep-alive), and SSL.") - (license license:bsd-2))) + (license license:bsd-2)))) (define-public cl-hunchentoot (sbcl-package->cl-source-package sbcl-hunchentoot)) From 624eac9a6ecffefdaed04aa5678cab06627517af Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Fri, 20 May 2022 21:02:08 +0100 Subject: [PATCH 129/363] gnu: Add cl-clog. * gnu/packages/lisp-xyz.scm (sbcl-clog, ecl-clog, cl-clog): New variables. Signed-off-by: Guillaume Le Vaillant --- gnu/packages/lisp-xyz.scm | 52 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 84de670884..d245bba7f7 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -20,7 +20,7 @@ ;;; Copyright © 2020 Dimakis Dimakakos ;;; Copyright © 2020 Oleg Pykhalov ;;; Copyright © 2020, 2021, 2022 Adam Kandur -;;; Copyright © 2020, 2021 Sharlatan Hellseher +;;; Copyright © 2020, 2021, 2022 Sharlatan Hellseher ;;; Copyright © 2021, 2022 Aurora ;;; Copyright © 2021 Matthew James Kraai ;;; Copyright © 2021, 2022 André A. Gomes @@ -21350,3 +21350,53 @@ inspired by Haskell package @code{Data.List}.") (define-public ecl-listopia (sbcl-package->ecl-package sbcl-listopia)) + +(define-public sbcl-clog + (package + (name "sbcl-clog") + (version "1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rabbibotton/clog") + (commit (string-append "v" version)))) + (file-name (git-file-name "cl-clog" version)) + (sha256 + (base32 "0f4i6571nm0j704zgnh60sc9slifs11byb2gs8gamqjcfh931dap")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-3bmd + sbcl-alexandria + sbcl-bordeaux-threads + sbcl-cl-ppcre + sbcl-cl-sqlite + sbcl-cl-template + sbcl-clack + sbcl-closer-mop + sbcl-colorize + sbcl-dbi + sbcl-hunchentoot + sbcl-lack + sbcl-mgl-pax + sbcl-parse-float + sbcl-quri + sbcl-trivial-open-browser + sbcl-websocket-driver)) + (arguments + '(#:asd-systems '("clog" "clog/docs" "clog/tools"))) + (home-page "https://github.com/rabbibotton/clog") + (synopsis "Common Lisp Omnificent GUI") + (description + "This package provides a Common Lisp web framework for building GUI +applications. CLOG can take the place, or work along side, most cross platform +GUI frameworks and website frameworks. The CLOG package starts up the +connectivity to the browser or other websocket client (often a browser embedded +in a native template application).") + (license license:bsd-3))) + +(define-public cl-clog + (sbcl-package->cl-source-package sbcl-clog)) + +(define-public ecl-clog + (sbcl-package->ecl-package sbcl-clog)) From 94b28247d1b976e9c01c75794663603b7b81eaeb Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sat, 21 May 2022 10:39:57 +0200 Subject: [PATCH 130/363] gnu: cl-burgled-batteries3: Fix build with Python 3.9. * gnu/packages/lisp-xyz.scm (sbcl-burgled-batteries3)[arguments]: Rename 'adjust-for-python-3.8' phase to 'adjust-for-python-3.9' and update it. [inputs]: Remove labels. --- gnu/packages/lisp-xyz.scm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index d245bba7f7..3b8591fb4a 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -5495,7 +5495,7 @@ high-level way. This library provides such operators.") (uri (git-reference (url "https://github.com/snmsts/burgled-batteries3") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cl-burgled-batteries3" version)) (sha256 (base32 "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa")) @@ -5519,21 +5519,21 @@ high-level way. This library provides such operators.") (setenv "BB_PYTHON3_DYLIB" (string-append python "/lib/libpython3.so")) #t))) - (add-after 'unpack 'adjust-for-python-3.8 + (add-after 'unpack 'adjust-for-python-3.9 (lambda _ - ;; This method is no longer part of the public API. + ;; These methods are no longer part of the public API. (substitute* "ffi-interface.lisp" - ((".*PyEval_ReInitThreads.*") - "")) - #t))))) + ((".*PyEval_ReInitThreads.*") "") + ((".*\"PyErr_Warn\".*") "") + ((".*\"PyFloat_ClearFreeList\".*") ""))))))) (native-inputs (list sbcl-cl-fad sbcl-lift sbcl-cl-quickcheck)) (inputs - `(("python" ,python) - ("sbcl-cffi" ,sbcl-cffi) - ("sbcl-alexandria" , sbcl-alexandria) - ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations) - ("sbcl-trivial-garbage" ,sbcl-trivial-garbage))) + (list python + sbcl-alexandria + sbcl-cffi + sbcl-parse-declarations + sbcl-trivial-garbage)) (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)") (description "This package provides a shim between Python3 (specifically, the From b03f7b598b669ff7e83b64d18efc56ff1fa7c87b Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 7 May 2022 11:46:23 +0200 Subject: [PATCH 131/363] gnu: wine: Update to 7.8. * gnu/packages/wine.scm (wine): Update to 7.8. --- gnu/packages/wine.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 7ca2b9d0c7..5d8e9f5b90 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -74,7 +74,7 @@ (define-public wine (package (name "wine") - (version "7.0") + (version "7.8") (source (origin (method url-fetch) @@ -86,7 +86,7 @@ (string-append "https://dl.winehq.org/wine/source/" dir "wine-" version ".tar.xz"))) (sha256 - (base32 "0sq8vsr8jf1a8fanh76rq7vyxm8h0cc4ckirjy7v2p08biyy4hsv")))) + (base32 "1f0r00b6lk59cmpj42b7f2jrd58d7vxfvpp54j7arwjhdg4yjxlg")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) From fc49a68f28a6c3113236d7812d9e6872daa1b6d3 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 7 May 2022 11:47:45 +0200 Subject: [PATCH 132/363] gnu: wine-staging: Update to 7.8. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/wine.scm (wine-staging-patchset-data): Update to 7.8. (wine-staging, wine64-staging)[arguments]: Reuse arguments from wine and wine64 respectively via substitute-keyword-arguments. <#:phases>: Rename ‘patch-source-wine-staging’ to ‘apply-wine-staging-patches’. Reorder, so that ‘patch-SHELL’ is applied afterwards. Drop trailing #t. --- gnu/packages/wine.scm | 170 +++++++----------------------------------- 1 file changed, 29 insertions(+), 141 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 5d8e9f5b90..b064b892cf 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -353,7 +353,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "6.6") + (version "7.8") (source (origin (method git-fetch) @@ -362,7 +362,7 @@ integrate Windows applications into your desktop.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0d5m9pvafr0iw99ny7rgzfmw7zw45q5wfcw68zj88mvzs47xkgms")))) + (base32 "02rgpymhqrdr3aamvv6yvpgh82rj1n4adr36mi26cs3zbkx8zb55")))) (build-system trivial-build-system) (native-inputs (list bash coreutils)) @@ -412,7 +412,7 @@ integrate Windows applications into your desktop.") "wine-" wine-version ".tar.xz")) (file-name (string-append name "-" wine-version ".tar.xz")) (sha256 - (base32 "1bc4zmqpdqs1ncz3qisp8a313pqzi5a31gq1s99ivb60vk325rcr"))))) + (base32 "1f0r00b6lk59cmpj42b7f2jrd58d7vxfvpp54j7arwjhdg4yjxlg"))))) (inputs (modify-inputs (package-inputs wine) (prepend autoconf ; for autoreconf ffmpeg @@ -423,54 +423,19 @@ integrate Windows applications into your desktop.") util-linux ; for hexdump wine-staging-patchset-data))) (arguments - `(#:phases - (modify-phases %standard-phases - ;; Explicitly set the 32-bit version of vulkan-loader when installing - ;; to i686-linux or x86_64-linux. - ;; TODO: Add more JSON files as they become available in Mesa. - ,@(match (%current-system) - ((or "i686-linux" "x86_64-linux") - `((add-after 'install 'wrap-executable - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (icd (string-append out "/share/vulkan/icd.d"))) - (mkdir-p icd) - (copy-file (search-input-file inputs - "/share/vulkan/icd.d/radeon_icd.i686.json") - (string-append icd "/radeon_icd.i686.json")) - (copy-file (search-input-file inputs - "/share/vulkan/icd.d/intel_icd.i686.json") - (string-append icd "/intel_icd.i686.json")) - (wrap-program (string-append out "/bin/wine-preloader") - `("VK_ICD_FILENAMES" ":" = - (,(string-append icd - "/radeon_icd.i686.json" ":" - icd "/intel_icd.i686.json")))) - #t))))) - (_ - `()) - ) - (add-before 'configure 'patch-source-wine-staging - (lambda* (#:key outputs #:allow-other-keys) - (let* ((source (assoc-ref %build-inputs "source")) - (script (string-append (assoc-ref %build-inputs - "wine-staging-patchset-data") - "/share/wine-staging/patches/patchinstall.sh"))) - (invoke script (string-append "DESTDIR=" ".") "--all") - #t))) - (add-after 'configure 'patch-dlopen-paths - ;; Hardcode dlopened sonames to absolute paths. - (lambda _ - (let* ((library-path (search-path-as-string->list - (getenv "LIBRARY_PATH"))) - (find-so (lambda (soname) - (search-path library-path soname)))) - (substitute* "include/config.h" - (("(#define SONAME_.* )\"(.*)\"" _ defso soname) - (format #f "~a\"~a\"" defso (find-so soname)))) - #t)))) - ,@(strip-keyword-arguments '(#:phases) - (package-arguments wine)))) + (substitute-keyword-arguments (package-arguments wine) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'patch-SHELL) + (add-before 'configure 'apply-wine-staging-patches + (lambda* (#:key inputs #:allow-other-keys) + (invoke (search-input-file + inputs + "/share/wine-staging/patches/patchinstall.sh") + "DESTDIR=." + "--all"))) + (add-after 'apply-wine-staging-patches 'patch-SHELL + (assoc-ref #$phases 'patch-SHELL)))))) (synopsis "Implementation of the Windows API (staging branch, 32-bit only)") (description "Wine-Staging is the testing area of Wine. It contains bug fixes and features, which have not been integrated into @@ -493,96 +458,19 @@ integrated into the main branch.") (inputs (modify-inputs (package-inputs wine-staging) (prepend wine-staging))) (arguments - `(#:make-flags - (list "SHELL=bash" - (string-append "libdir=" %output "/lib/wine64")) - #:phases - (modify-phases %standard-phases - ;; Explicitly set both the 64-bit and 32-bit versions of vulkan-loader - ;; when installing to x86_64-linux so both are available. - ;; TODO: Add more JSON files as they become available in Mesa. - ,@(match (%current-system) - ((or "x86_64-linux") - `((add-after 'copy-wine32-binaries 'wrap-executable - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/wine-preloader") - `("VK_ICD_FILENAMES" ":" = - (,(string-append (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/radeon_icd.x86_64.json" ":" - (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/intel_icd.x86_64.json" ":" - (assoc-ref inputs "wine-staging") - "/share/vulkan/icd.d/radeon_icd.i686.json" ":" - (assoc-ref inputs "wine-staging") - "/share/vulkan/icd.d/intel_icd.i686.json")))) - (wrap-program (string-append out "/bin/wine64-preloader") - `("VK_ICD_FILENAMES" ":" = - (,(string-append (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/radeon_icd.x86_64.json" - ":" (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/intel_icd.x86_64.json" - ":" (assoc-ref inputs "wine-staging") - "/share/vulkan/icd.d/radeon_icd.i686.json" - ":" (assoc-ref inputs "wine-staging") - "/share/vulkan/icd.d/intel_icd.i686.json")))) - #t))))) - (_ - `()) - ) - (add-before 'configure 'patch-source-wine-staging - (lambda* (#:key outputs #:allow-other-keys) - (let* ((source (assoc-ref %build-inputs "source")) - (script (string-append (assoc-ref %build-inputs - "wine-staging-patchset-data") - "/share/wine-staging/patches/patchinstall.sh"))) - (invoke script (string-append "DESTDIR=" ".") "--all") - #t))) - (add-after 'install 'copy-wine32-binaries - (lambda* (#:key outputs #:allow-other-keys) - (let* ((wine32 (assoc-ref %build-inputs "wine-staging")) - (out (assoc-ref %outputs "out"))) - ;; Copy the 32-bit binaries needed for WoW64. - (copy-file (string-append wine32 "/bin/wine") - (string-append out "/bin/wine")) - ;; Copy the real 32-bit wine-preloader instead of the wrapped - ;; version. - (copy-file (string-append wine32 "/bin/.wine-preloader-real") - (string-append out "/bin/wine-preloader")) - #t))) - (add-after 'install 'copy-wine32-libraries - (lambda* (#:key outputs #:allow-other-keys) - (let* ((wine32 (assoc-ref %build-inputs "wine-staging")) - (out (assoc-ref %outputs "out"))) - (copy-recursively (string-append wine32 "/lib/wine32") - (string-append out "/lib/wine32")) - #t))) - (add-after 'compress-documentation 'copy-wine32-manpage - (lambda* (#:key outputs #:allow-other-keys) - (let* ((wine32 (assoc-ref %build-inputs "wine-staging")) - (out (assoc-ref %outputs "out"))) - ;; Copy the missing man file for the wine binary from - ;; wine-staging. - (copy-file (string-append wine32 "/share/man/man1/wine.1.gz") - (string-append out "/share/man/man1/wine.1.gz")) - #t))) - (add-after 'configure 'patch-dlopen-paths - ;; Hardcode dlopened sonames to absolute paths. - (lambda _ - (let* ((library-path (search-path-as-string->list - (getenv "LIBRARY_PATH"))) - (find-so (lambda (soname) - (search-path library-path soname)))) - (substitute* "include/config.h" - (("(#define SONAME_.* )\"(.*)\"" _ defso soname) - (format #f "~a\"~a\"" defso (find-so soname)))) - #t)))) - #:configure-flags - (list "--enable-win64" - (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib/wine64")) - ,@(strip-keyword-arguments '(#:configure-flags #:make-flags #:phases - #:system) - (package-arguments wine-staging)))) + (substitute-keyword-arguments (package-arguments wine64) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'patch-SHELL) + (add-before 'configure 'apply-wine-staging-patches + (lambda* (#:key inputs #:allow-other-keys) + (invoke (search-input-file + inputs + "/share/wine-staging/patches/patchinstall.sh") + "DESTDIR=." + "--all"))) + (add-after 'apply-wine-staging-patches 'patch-SHELL + (assoc-ref #$phases 'patch-SHELL)))))) (synopsis "Implementation of the Windows API (staging branch, WoW64 version)") (supported-systems '("x86_64-linux" "aarch64-linux")))) From 98e9cabd13716cf1b32d058fe1e4677069e5cb30 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 7 May 2022 17:36:07 +0200 Subject: [PATCH 133/363] gnu: wine: Use new package style. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/wine.scm (wine)[inputs, native-inputs]: Drop labels. [arguments]: Convert to list of G-Expressions. <#:configure-flags,#:make-flags>: Replace ‘%output’ with ‘#$output’. <#:phases>: Use ‘search-input-file’ instead of input labels. --- gnu/packages/wine.scm | 187 +++++++++++++++++++++--------------------- 1 file changed, 92 insertions(+), 95 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index b064b892cf..8db1193f7d 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017, 2020 Nicolas Goaziou ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2019 Pierre Neidhardt +;;; Copyright © 2022 Liliana Marie Prikler ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ (define-module (gnu packages wine) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix gexp) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) @@ -89,118 +91,113 @@ (base32 "1f0r00b6lk59cmpj42b7f2jrd58d7vxfvpp54j7arwjhdg4yjxlg")))) (build-system gnu-build-system) (native-inputs - `(("bison" ,bison) - ("flex" ,flex) - ("gettext" ,gettext-minimal) - ("perl" ,perl) - ("pkg-config" ,pkg-config))) + (list bison flex gettext-minimal perl pkg-config)) (inputs ;; Some libraries like libjpeg are now compiled into native PE objects. ;; The ELF objects provided by Guix packages are of no use. Whilst this ;; is technically bundling, it's quite defensible. It might be possible ;; to build some of these from Guix PACKAGE-SOURCE but attempts were not ;; fruitful so far. See . - `(("alsa-lib" ,alsa-lib) - ("dbus" ,dbus) - ("cups" ,cups) - ("eudev" ,eudev) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("gnutls" ,gnutls) - ("gst-plugins-base" ,gst-plugins-base) - ("libgphoto2" ,libgphoto2) - ("libldap" ,openldap) - ("libnetapi" ,samba) - ("libsane" ,sane-backends) - ("libpcap" ,libpcap) - ("libusb" ,libusb) - ("libICE" ,libice) - ("libX11" ,libx11) - ("libXi" ,libxi) - ("libXext" ,libxext) - ("libXcursor" ,libxcursor) - ("libXrender" ,libxrender) - ("libXrandr" ,libxrandr) - ("libXinerama" ,libxinerama) - ("libXxf86vm" ,libxxf86vm) - ("libXcomposite" ,libxcomposite) - ("mit-krb5" ,mit-krb5) - ("openal" ,openal) - ("pulseaudio" ,pulseaudio) - ("sdl2" ,sdl2) - ("unixodbc" ,unixodbc) - ("v4l-utils" ,v4l-utils) - ("vkd3d" ,vkd3d) - ("vulkan-loader" ,vulkan-loader))) + (list alsa-lib + cups + dbus + eudev + fontconfig + freetype + gnutls + gst-plugins-base + libgphoto2 + openldap + samba + sane-backends + libpcap + libusb + libice + libx11 + libxi + libxext + libxcursor + libxrender + libxrandr + libxinerama + libxxf86vm + libxcomposite + mit-krb5 + openal + pulseaudio + sdl2 + unixodbc + v4l-utils + vkd3d + vulkan-loader)) (arguments - `(;; Force a 32-bit build targeting a similar architecture, i.e.: - ;; armhf for armhf/aarch64, i686 for i686/x86_64. - #:system ,@(match (%current-system) - ((or "armhf-linux" "aarch64-linux") - `("armhf-linux")) - (_ - `("i686-linux"))) + (list + ;; Force a 32-bit build targeting a similar architecture, i.e.: + ;; armhf for armhf/aarch64, i686 for i686/x86_64. + #:system (match (%current-system) + ((or "armhf-linux" "aarch64-linux") "armhf-linux") + (_ "i686-linux")) ;; XXX: There's a test suite, but it's unclear whether it's supposed to ;; pass. #:tests? #f #:configure-flags - (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib/wine32")) + #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine32")) #:make-flags - (list "SHELL=bash" - (string-append "libdir=" %output "/lib/wine32")) + #~(list "SHELL=bash" + (string-append "libdir=" #$output "/lib/wine32")) #:phases - (modify-phases %standard-phases - ;; Explicitly set the 32-bit version of vulkan-loader when installing - ;; to i686-linux or x86_64-linux. - ;; TODO: Add more JSON files as they become available in Mesa. - ,@(match (%current-system) - ((or "i686-linux" "x86_64-linux") - `((add-after 'install 'wrap-executable - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (icd (string-append out "/share/vulkan/icd.d"))) - (mkdir-p icd) - (copy-file (string-append - (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/radeon_icd.i686.json") - (string-append icd "/radeon_icd.i686.json")) - (copy-file (string-append - (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/intel_icd.i686.json") - (string-append icd "/intel_icd.i686.json")) - (wrap-program (string-append out "/bin/wine-preloader") - `("VK_ICD_FILENAMES" ":" = - (,(string-append icd - "/radeon_icd.i686.json" ":" - icd "/intel_icd.i686.json"))))))))) - (_ - `())) - (add-after 'unpack 'patch-SHELL - (lambda _ - (substitute* "configure" - ;; configure first respects CONFIG_SHELL, clobbers SHELL later. - (("/bin/sh") - (which "bash"))))) - (add-after 'configure 'patch-dlopen-paths - ;; Hardcode dlopened sonames to absolute paths. - (lambda _ - (let* ((library-path (search-path-as-string->list - (getenv "LIBRARY_PATH"))) - (find-so (lambda (soname) - (search-path library-path soname)))) - (substitute* "include/config.h" - (("(#define SONAME_.* )\"(.*)\"" _ defso soname) - (format #f "~a\"~a\"" defso (find-so soname))))))) - (add-after 'patch-generated-file-shebangs 'patch-makedep - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "tools/makedep.c" - (("output_filenames\\( unix_libs \\);" all) - (string-append all - "output ( \" -Wl,-rpath=%s \", so_dir );")))))))) + #~(modify-phases %standard-phases + ;; Explicitly set the 32-bit version of vulkan-loader when installing + ;; to i686-linux or x86_64-linux. + ;; TODO: Add more JSON files as they become available in Mesa. + #$@(match (%current-system) + ((or "i686-linux" "x86_64-linux") + `((add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (icd (string-append out "/share/vulkan/icd.d"))) + (mkdir-p icd) + (copy-file (search-input-file + inputs + "/share/vulkan/icd.d/radeon_icd.i686.json") + (string-append icd "/radeon_icd.i686.json")) + (copy-file (search-input-file + inputs + "/share/vulkan/icd.d/intel_icd.i686.json") + (string-append icd "/intel_icd.i686.json")) + (wrap-program (string-append out "/bin/wine-preloader") + `("VK_ICD_FILENAMES" ":" = + (,(string-append icd + "/radeon_icd.i686.json" ":" + icd "/intel_icd.i686.json"))))))))) + (_ + `())) + (add-after 'unpack 'patch-SHELL + (lambda _ + (substitute* "configure" + ;; configure first respects CONFIG_SHELL, clobbers SHELL later. + (("/bin/sh") + (which "bash"))))) + (add-after 'configure 'patch-dlopen-paths + ;; Hardcode dlopened sonames to absolute paths. + (lambda _ + (let* ((library-path (search-path-as-string->list + (getenv "LIBRARY_PATH"))) + (find-so (lambda (soname) + (search-path library-path soname)))) + (substitute* "include/config.h" + (("(#define SONAME_.* )\"(.*)\"" _ defso soname) + (format #f "~a\"~a\"" defso (find-so soname))))))) + (add-after 'patch-generated-file-shebangs 'patch-makedep + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "tools/makedep.c" + (("output_filenames\\( unix_libs \\);" all) + (string-append all + "output ( \" -Wl,-rpath=%s \", so_dir );")))))))) (home-page "https://www.winehq.org/") (synopsis "Implementation of the Windows API (32-bit only)") (description From 14384d95864fab420dae4af5002445a95a08c26d Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 7 May 2022 17:39:25 +0200 Subject: [PATCH 134/363] gnu: wine64: Use new package style. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/wine.scm (wine64)[arguments]: Convert to list of G-Expessions. <#:configure-flags,#:make-flags>: Use ‘#$output’ instead of ‘%output’. <#:phases>: Replace labels with search-input-file. --- gnu/packages/wine.scm | 169 ++++++++++++++++++++---------------------- 1 file changed, 79 insertions(+), 90 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 8db1193f7d..231366c5de 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -219,96 +219,85 @@ integrate Windows applications into your desktop.") (inputs (modify-inputs (package-inputs wine) (prepend wine))) (arguments - `(#:make-flags - (list "SHELL=bash" - (string-append "libdir=" %output "/lib/wine64")) - #:phases - (modify-phases %standard-phases - ;; Explicitly set both the 64-bit and 32-bit versions of vulkan-loader - ;; when installing to x86_64-linux so both are available. - ;; TODO: Add more JSON files as they become available in Mesa. - ,@(match (%current-system) - ((or "x86_64-linux") - `((add-after 'copy-wine32-binaries 'wrap-executable - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/wine-preloader") - `("VK_ICD_FILENAMES" ":" = - (,(string-append - (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/radeon_icd.x86_64.json" ":" - (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/intel_icd.x86_64.json" ":" - (assoc-ref inputs "wine") - "/share/vulkan/icd.d/radeon_icd.i686.json" ":" - (assoc-ref inputs "wine") - "/share/vulkan/icd.d/intel_icd.i686.json")))) - (wrap-program (string-append out "/bin/wine64-preloader") - `("VK_ICD_FILENAMES" ":" = - (,(string-append - (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/radeon_icd.x86_64.json" - ":" (assoc-ref inputs "mesa") - "/share/vulkan/icd.d/intel_icd.x86_64.json" - ":" (assoc-ref inputs "wine") - "/share/vulkan/icd.d/radeon_icd.i686.json" - ":" (assoc-ref inputs "wine") - "/share/vulkan/icd.d/intel_icd.i686.json")))) - #t))))) - (_ - `())) - (add-after 'unpack 'patch-SHELL - (lambda _ - (substitute* "configure" - ;; configure first respects CONFIG_SHELL, clobbers SHELL later. - (("/bin/sh") - (which "bash"))))) - (add-after 'patch-generated-file-shebangs 'patch-makedep - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "tools/makedep.c" - (("output_filenames\\( unix_libs \\);" all) - (string-append all - "output ( \" -Wl,-rpath=%s \", so_dir );"))))) - (add-after 'install 'copy-wine32-binaries - (lambda* (#:key outputs #:allow-other-keys) - (let* ((wine32 (assoc-ref %build-inputs "wine")) - (out (assoc-ref %outputs "out"))) - ;; Copy the 32-bit binaries needed for WoW64. - (copy-file (string-append wine32 "/bin/wine") - (string-append out "/bin/wine")) - ;; Copy the real 32-bit wine-preloader instead of the wrapped - ;; version. - (copy-file (string-append wine32 "/bin/.wine-preloader-real") - (string-append out "/bin/wine-preloader"))))) - (add-after 'install 'copy-wine32-libraries - (lambda* (#:key outputs #:allow-other-keys) - (let* ((wine32 (assoc-ref %build-inputs "wine")) - (out (assoc-ref %outputs "out"))) - (copy-recursively (string-append wine32 "/lib/wine32") - (string-append out "/lib/wine32"))))) - (add-after 'compress-documentation 'copy-wine32-manpage - (lambda* (#:key outputs #:allow-other-keys) - (let* ((wine32 (assoc-ref %build-inputs "wine")) - (out (assoc-ref %outputs "out"))) - ;; Copy the missing man file for the wine binary from wine. - (copy-file (string-append wine32 "/share/man/man1/wine.1.gz") - (string-append out "/share/man/man1/wine.1.gz"))))) - (add-after 'configure 'patch-dlopen-paths - ;; Hardcode dlopened sonames to absolute paths. - (lambda _ - (let* ((library-path (search-path-as-string->list - (getenv "LIBRARY_PATH"))) - (find-so (lambda (soname) - (search-path library-path soname)))) - (substitute* "include/config.h" - (("(#define SONAME_.* )\"(.*)\"" _ defso soname) - (format #f "~a\"~a\"" defso (find-so soname)))))))) - #:configure-flags - (list "--enable-win64" - (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib/wine64")) - ,@(strip-keyword-arguments '(#:configure-flags #:make-flags #:phases - #:system) - (package-arguments wine)))) + (cons* + #:make-flags + #~(list "SHELL=bash" + (string-append "libdir=" #$output "/lib/wine64")) + #:phases + #~(modify-phases %standard-phases + ;; Explicitly set both the 64-bit and 32-bit versions of vulkan-loader + ;; when installing to x86_64-linux so both are available. + ;; TODO: Add more JSON files as they become available in Mesa. + #$@(match (%current-system) + ((or "x86_64-linux") + `((add-after 'copy-wine32-binaries 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (icd-files (map + (lambda (basename) + (search-input-file + inputs + (string-append "/share/vulkan/icd.d/" + basename))) + '("radeon_icd.x86_64.json" + "intel_icd.x86_64.json" + "radeon_icd.i686.json" + "intel_icd.i686.json")))) + (wrap-program (string-append out "/bin/wine-preloader") + `("VK_ICD_FILENAMES" ":" = ,icd-files)) + (wrap-program (string-append out "/bin/wine64-preloader") + `("VK_ICD_FILENAMES" ":" = ,icd-files))))))) + (_ + `())) + (add-after 'unpack 'patch-SHELL + (lambda _ + (substitute* "configure" + ;; configure first respects CONFIG_SHELL, clobbers SHELL later. + (("/bin/sh") + (which "bash"))))) + (add-after 'patch-generated-file-shebangs 'patch-makedep + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "tools/makedep.c" + (("output_filenames\\( unix_libs \\);" all) + (string-append all + "output ( \" -Wl,-rpath=%s \", so_dir );"))))) + (add-after 'install 'copy-wine32-binaries + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref %outputs "out"))) + ;; Copy the 32-bit binaries needed for WoW64. + (copy-file (search-input-file inputs "/bin/wine") + (string-append out "/bin/wine")) + ;; Copy the real 32-bit wine-preloader instead of the wrapped + ;; version. + (copy-file (search-input-file inputs "/bin/.wine-preloader-real") + (string-append out "/bin/wine-preloader"))))) + (add-after 'install 'copy-wine32-libraries + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref %outputs "out"))) + (copy-recursively (search-input-directory inputs "/lib/wine32") + (string-append out "/lib/wine32"))))) + (add-after 'compress-documentation 'copy-wine32-manpage + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref %outputs "out"))) + ;; Copy the missing man file for the wine binary from wine. + (copy-file (search-input-file inputs "/share/man/man1/wine.1.gz") + (string-append out "/share/man/man1/wine.1.gz"))))) + (add-after 'configure 'patch-dlopen-paths + ;; Hardcode dlopened sonames to absolute paths. + (lambda _ + (let* ((library-path (search-path-as-string->list + (getenv "LIBRARY_PATH"))) + (find-so (lambda (soname) + (search-path library-path soname)))) + (substitute* "include/config.h" + (("(#define SONAME_.* )\"(.*)\"" _ defso soname) + (format #f "~a\"~a\"" defso (find-so soname)))))))) + #:configure-flags + #~(list "--enable-win64" + (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine64")) + (strip-keyword-arguments '(#:configure-flags #:make-flags #:phases + #:system) + (package-arguments wine)))) (synopsis "Implementation of the Windows API (WoW64 version)") (supported-systems '("x86_64-linux" "aarch64-linux")))) From 40e2eeed63280ef137dd142a361219c0a1d93850 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 135/363] gnu: knot: Update to 3.1.8. * gnu/packages/dns.scm (knot): Update to 3.1.8. --- 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 24672f7260..fea255c930 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -871,7 +871,7 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "3.1.6") + (version "3.1.8") (source (origin (method git-fetch) @@ -880,7 +880,7 @@ Extensions} (DNSSEC).") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0rwcp55fvmm0vhad1368knfn0ri642sigh8nykvvikdlx06d21cj")) + (base32 "0v3rh27qnyihdqp5nm8bnn9xd5rl2fbwhj4cmdpc8ik4qs21xyf4")) (modules '((guix build utils))) (snippet '(begin From fac0e3cb80dabf05cb5941804fc4d5913de644f3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:00 +0200 Subject: [PATCH 136/363] doc: Remove duplicate sddm-configuration. * doc/guix.texi (X Window): Remove duplicate sddm-configuration @deftp, after merging the better parts into the remaining one. Reported by dgcampea in #guix. --- doc/guix.texi | 67 +++++++++++++++++++-------------------------------- 1 file changed, 25 insertions(+), 42 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index c007c93dd3..faa35060ef 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20276,10 +20276,31 @@ The default SLiM theme and its name. @end defvr +@cindex login manager +@cindex X11 login +@defvr {Scheme Variable} sddm-service-type +This is the type of the service to run the +@uref{https://github.com/sddm/sddm,SDDM display manager}. Its value +must be a @code{sddm-configuration} record (see below). + +Here's an example use: + +@lisp +(service sddm-service-type + (sddm-configuration + (auto-login-user "alice") + (auto-login-session "xfce.desktop"))) +@end lisp +@end defvr + @deftp {Data Type} sddm-configuration -This is the data type representing the SDDM service configuration. +This data type represents the configuration of the SDDM login manager. +The available fields are: @table @asis +@item @code{sddm} (default: @code{sddm}) +The SDDM package to use. + @item @code{display-server} (default: "x11") Select display server to use for the greeter. Valid values are @samp{"x11"} or @samp{"wayland"}. @@ -20355,10 +20376,11 @@ Directory to look for desktop files starting X sessions. Minimum VT to use. @item @code{auto-login-user} (default "") -User to use for auto-login. +User account that will be automatically logged in. +Setting this to the empty string disables auto-login. @item @code{auto-login-session} (default "") -Desktop file to use for auto-login. +The @file{.desktop} file name to use as the auto-login session, or the empty string. @item @code{relogin?} (default #f) Relogin after logout. @@ -20366,45 +20388,6 @@ Relogin after logout. @end table @end deftp -@cindex login manager -@cindex X11 login -@defvr {Scheme Variable} sddm-service-type -This is the type of the service to run the -@uref{https://github.com/sddm/sddm,SDDM display manager}. Its value -must be a @code{sddm-configuration} record (see below). - -Here's an example use: - -@lisp -(service sddm-service-type - (sddm-configuration - (auto-login-user "alice") - (auto-login-session "xfce.desktop"))) -@end lisp -@end defvr - -@deftp {Data Type} sddm-configuration -This data type represents the configuration of the SDDM login manager. -The available fields are: - -@table @asis -@item @code{sddm} (default: @code{sddm}) -The SDDM package to use. - -@item @code{display-server} (default: @code{"x11"}) -This must be either @code{"x11"} or @code{"wayland"}. - -@c FIXME: Add more fields. - -@item @code{auto-login-user} (default: @code{""}) -If non-empty, this is the user account under which to log in -automatically. - -@item @code{auto-login-session} (default: @code{""}) -If non-empty, this is the @file{.desktop} file name to use as the -auto-login session. -@end table -@end deftp @cindex Xorg, configuration @deftp {Data Type} xorg-configuration From 014f97544dbe4f08405320d129a1a5d9c1f775f0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:06 +0200 Subject: [PATCH 137/363] gnu: btrfs-progs: Fix cross-compilation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/linux.scm (btrfs-progs)[arguments]: Add "--disable-python" support to #:configure-flags. [inputs]: Move eudev here… [native-inputs]: …from here. Reported by Pavel Shlyak . --- gnu/packages/linux.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8c29776b64..7b564e7ef1 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -5549,7 +5549,11 @@ and copy/paste text in the console and in xterm.") (outputs '("out" "static")) ; static versions of the binaries in "out" (arguments - '(#:phases (modify-phases %standard-phases + '(#:configure-flags + ;; The ‘Python support’ was never actually installed by previous + ;; versions of this package, but did prevent cross-compilation. + (list "--disable-python") + #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-makefile (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" @@ -5576,6 +5580,7 @@ and copy/paste text in the console and in xterm.") #:test-target "test" #:parallel-tests? #f)) ; tests fail when run in parallel (inputs `(("e2fsprogs" ,e2fsprogs) ; for btrfs-convert + ("eudev" ,eudev) ("lzo" ,lzo) ("util-linux:lib" ,util-linux "lib") ;for libblkid and libuuid ("util-linux:static" ,util-linux "static") ;ditto @@ -5594,7 +5599,6 @@ and copy/paste text in the console and in xterm.") ("acl" ,acl) ("which" ,which) ("dmsetup" ,lvm2) - ("udevadm" ,eudev) ;; The tests need 'grep' with perl regexp support. ("grep" ,grep))) (home-page "https://btrfs.wiki.kernel.org/index.php/Main_Page") From 4e99510deadff2fe1f0e8ee5e030e0ff28d569f0 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:48 -0400 Subject: [PATCH 138/363] gnu: elm-compiler: Update to 0.19.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/elm-compiler-disable-reactor.patch, gnu/packages/patches/elm-compiler-fix-map-key.patch: Delete files. * gnu/packages/patches/elm-reactor-static-files.patch: New file. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/elm.scm (elm-compiler): Update to 0.19.1. [origin]: Remove stale patches. Add new patch. [arguments]: Use G-expressions. Add #:configure-flags for new patch. [inputs]: Remove ghc-file-embed. Add ghc-filelock. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 3 +- gnu/packages/elm.scm | 44 +-- .../elm-compiler-disable-reactor.patch | 71 ----- .../patches/elm-compiler-fix-map-key.patch | 38 --- .../patches/elm-reactor-static-files.patch | 251 ++++++++++++++++++ 5 files changed, 280 insertions(+), 127 deletions(-) delete mode 100644 gnu/packages/patches/elm-compiler-disable-reactor.patch delete mode 100644 gnu/packages/patches/elm-compiler-fix-map-key.patch create mode 100644 gnu/packages/patches/elm-reactor-static-files.patch diff --git a/gnu/local.mk b/gnu/local.mk index 37e0107e4a..70efa16c63 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1024,8 +1024,7 @@ dist_patch_DATA = \ %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-path-length.patch \ - %D%/packages/patches/elm-compiler-disable-reactor.patch \ - %D%/packages/patches/elm-compiler-fix-map-key.patch \ + %D%/packages/patches/elm-reactor-static-files.patch \ %D%/packages/patches/elogind-revert-polkit-detection.patch \ %D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-ess-fix-obsolete-function-alias.patch \ diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index ca7c61041b..988cc02de1 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Robert Vollmert +;;; Copyright © 2022 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,18 +25,24 @@ #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages haskell-web) #:use-module (guix build-system haskell) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages)) -;; The full elm build calls out to itself via Template Haskell to -;; compile the elm reactor web app. elm reactor isn't required to -;; compile elm applications, so we take this part out of this -;; bootstrap package. +;; The `elm` build usually calls out to itself via Template Haskell to compile +;; the `elm reactor` web app (which depends on additional Elm packages) and +;; embeds the static files into itself. The reactor isn't required to compile +;; Elm applications, so we want to skip it for the bootstrap package, but we +;; also want to be able to enable it once we can build it. We patch Elm to +;; instead look for the files on disk relative to the executable and to have +;; `elm reactor` exit with a useful error message if they aren't there. +(define %reactor-root-base + "share/elm/reactor-") (define-public elm-compiler (package (name "elm-compiler") - (version "0.19.0") + (version "0.19.1") (source (origin (method git-fetch) @@ -44,24 +51,29 @@ (url "https://github.com/elm/compiler/") (commit version))) (sha256 - (base32 "0s93z9vr0vp5w894ghc5s34nsq09sg1msf59zfiba87sid5vgjqy")) + (base32 "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w")) (patches - (search-patches "elm-compiler-disable-reactor.patch" - "elm-compiler-fix-map-key.patch")))) + (search-patches "elm-reactor-static-files.patch")))) (build-system haskell-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'update-constraints - (lambda _ - (substitute* "elm.cabal" - (("(ansi-terminal|containers|network|http-client|language-glsl)\\s+[^,]+" all dep) - dep))))))) + (list + #:configure-flags + #~(list (string-append "--ghc-option=-DGUIX_REACTOR_STATIC_REL_ROOT=" + "\"../" #$%reactor-root-base + #$(package-version this-package) + "\"")) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'update-constraints + (lambda _ + (substitute* "elm.cabal" + (("(ansi-terminal|containers|network|http-client|language-glsl)\\s+[^,]+" all dep) + dep))))))) (inputs (list ghc-ansi-terminal ghc-ansi-wl-pprint ghc-edit-distance - ghc-file-embed + ghc-filelock ghc-http ghc-http-client ghc-http-client-tls diff --git a/gnu/packages/patches/elm-compiler-disable-reactor.patch b/gnu/packages/patches/elm-compiler-disable-reactor.patch deleted file mode 100644 index 9871b55e8d..0000000000 --- a/gnu/packages/patches/elm-compiler-disable-reactor.patch +++ /dev/null @@ -1,71 +0,0 @@ -commit 20d80e2323b565a36751c9455e535d8f73fa32f7 -Author: Robert Vollmert -Date: Fri Jun 14 16:05:47 2019 +0200 - - disable reactor - -diff --git a/elm.cabal b/elm.cabal -index c75f9689..ece63c46 100644 ---- a/elm.cabal -+++ b/elm.cabal -@@ -45,9 +45,6 @@ Executable elm - builder/src - ui/terminal/src - -- other-extensions: -- TemplateHaskell -- - Main-Is: - Main.hs - -@@ -56,8 +53,6 @@ Executable elm - Develop - Develop.Generate.Help - Develop.Generate.Index -- Develop.StaticFiles -- Develop.StaticFiles.Build - Diff - Init - Install -diff --git a/ui/terminal/src/Develop.hs b/ui/terminal/src/Develop.hs -index 4b2252e1..7ed7716e 100644 ---- a/ui/terminal/src/Develop.hs -+++ b/ui/terminal/src/Develop.hs -@@ -23,7 +23,6 @@ import Snap.Util.FileServe - import qualified Elm.Project as Project - import qualified Develop.Generate.Help as Generate - import qualified Develop.Generate.Index as Index --import qualified Develop.StaticFiles as StaticFiles - import qualified Generate.Output as Output - import qualified Json.Encode as Encode - import qualified Reporting.Exit as Exit -@@ -219,16 +218,7 @@ compileToHtmlBuilder mode file = - - - serveAssets :: Snap () --serveAssets = -- do file <- getSafePath -- case StaticFiles.lookup file of -- Nothing -> -- pass -- -- Just (content, mimeType) -> -- do modifyResponse (setContentType (mimeType <> ";charset=utf-8")) -- writeBS content -- -+serveAssets = pass - - - -- MIME TYPES -diff --git a/ui/terminal/src/Main.hs b/terminal/src/Main.hs -index 7000f3ca..2c76965a 100644 ---- a/ui/terminal/src/Main.hs -+++ b/ui/terminal/src/Main.hs -@@ -39,7 +39,6 @@ main = - complex intro outro - [ repl - , init -- , reactor - , make - , install - , bump diff --git a/gnu/packages/patches/elm-compiler-fix-map-key.patch b/gnu/packages/patches/elm-compiler-fix-map-key.patch deleted file mode 100644 index 4f05ded530..0000000000 --- a/gnu/packages/patches/elm-compiler-fix-map-key.patch +++ /dev/null @@ -1,38 +0,0 @@ -commit e3512d887df41a8162c3e361171c04beca08415b -Author: Tom Stejskal -Date: Mon Nov 19 20:09:43 2018 +0100 - - Fix Map.!: given key is not an element in the map - -diff --git a/compiler/src/Elm/Compiler/Type/Extract.hs b/compiler/src/Elm/Compiler/Type/Extract.hs -index 1aafe1d4..99763392 100644 ---- a/compiler/src/Elm/Compiler/Type/Extract.hs -+++ b/compiler/src/Elm/Compiler/Type/Extract.hs -@@ -10,6 +10,7 @@ module Elm.Compiler.Type.Extract - - - import Data.Map ((!)) -+import qualified Data.Map as Map - import qualified Data.Maybe as Maybe - import qualified Data.Set as Set - -@@ -134,11 +135,15 @@ extractUnion interfaces (Opt.Global home name) = - else - let - pname = toPublicName home name -- unions = I._unions (interfaces ! home) -+ maybeUnions = I._unions <$> Map.lookup home interfaces - in -- case I.toUnionInternals (unions ! name) of -- Can.Union vars ctors _ _ -> -- T.Union pname vars <$> traverse extractCtor ctors -+ case Map.lookup name =<< maybeUnions of -+ Just union -> -+ case I.toUnionInternals union of -+ Can.Union vars ctors _ _ -> -+ T.Union pname vars <$> traverse extractCtor ctors -+ Nothing -> -+ return $ T.Union pname [] [] - - - extractCtor :: Can.Ctor -> Extractor (N.Name, [T.Type]) diff --git a/gnu/packages/patches/elm-reactor-static-files.patch b/gnu/packages/patches/elm-reactor-static-files.patch new file mode 100644 index 0000000000..94c4aa0cd1 --- /dev/null +++ b/gnu/packages/patches/elm-reactor-static-files.patch @@ -0,0 +1,251 @@ +From 41d219a29b03f3114af7a0521c8b2dbbb487c3e1 Mon Sep 17 00:00:00 2001 +From: Philip McGrath +Date: Wed, 13 Apr 2022 18:45:58 -0400 +Subject: [PATCH] reactor: look for static files relative to executable + +Must built with `-DGUIX_REACTOR_STATIC_REL_ROOT="../path/to/reactor"`. + +This lets us build a version of Elm without the `elm reactor` for +bootstrapping, then simply put the files in place in the final package. +--- + elm.cabal | 2 +- + terminal/src/Develop.hs | 32 +++++++++++---- + terminal/src/Develop/StaticFiles.hs | 37 ++++++++++------- + terminal/src/Develop/StaticFiles/Build.hs | 50 ++++++++++++++--------- + 4 files changed, 79 insertions(+), 42 deletions(-) + +diff --git a/elm.cabal b/elm.cabal +index bf1cfcf0..93161072 100644 +--- a/elm.cabal ++++ b/elm.cabal +@@ -50,6 +50,7 @@ Executable elm + + other-extensions: + TemplateHaskell ++ CPP + + Main-Is: + Main.hs +@@ -211,7 +212,6 @@ Executable elm + containers >= 0.5.8.2 && < 0.6, + directory >= 1.2.3.0 && < 2.0, + edit-distance >= 0.2 && < 0.3, +- file-embed, + filelock, + filepath >= 1 && < 2.0, + ghc-prim >= 0.5.2, +diff --git a/terminal/src/Develop.hs b/terminal/src/Develop.hs +index 00339364..6855b03e 100644 +--- a/terminal/src/Develop.hs ++++ b/terminal/src/Develop.hs +@@ -33,6 +33,7 @@ import qualified Reporting.Exit as Exit + import qualified Reporting.Task as Task + import qualified Stuff + ++import System.Exit as SysExit + + + -- RUN THE DEV SERVER +@@ -45,13 +46,29 @@ data Flags = + + + run :: () -> Flags -> IO () +-run () (Flags maybePort) = ++run () flags = do ++ frontEnd <- StaticFiles.prepare ++ case frontEnd of ++ Right lookup -> ++ reallyRun lookup flags ++ Left missing -> ++ SysExit.die $ unlines ++ [ "The `reactor` command is not available." ++ , "" ++ , "On Guix, these files are needed for `elm reactor` to work," ++ , "but they are missing:" ++ , "" ++ , unlines (map (\pth -> " " ++ (show pth)) missing) ++ ] ++ ++reallyRun :: StaticFiles.Lookup -> Flags -> IO () ++reallyRun lookup (Flags maybePort) = + do let port = maybe 8000 id maybePort + putStrLn $ "Go to http://localhost:" ++ show port ++ " to see your project dashboard." + httpServe (config port) $ + serveFiles + <|> serveDirectoryWith directoryConfig "." +- <|> serveAssets ++ <|> serveAssets lookup + <|> error404 + + +@@ -169,16 +186,15 @@ compile path = + -- SERVE STATIC ASSETS + + +-serveAssets :: Snap () +-serveAssets = ++serveAssets :: StaticFiles.Lookup -> Snap () ++serveAssets lookup = + do path <- getSafePath +- case StaticFiles.lookup path of ++ case lookup path of + Nothing -> + pass + +- Just (content, mimeType) -> +- do modifyResponse (setContentType (mimeType <> ";charset=utf-8")) +- writeBS content ++ Just (fsPath, mimeType) -> ++ serveFileAs (mimeType <> ";charset=utf-8") fsPath + + + +diff --git a/terminal/src/Develop/StaticFiles.hs b/terminal/src/Develop/StaticFiles.hs +index 94ee72dc..3227d617 100644 +--- a/terminal/src/Develop/StaticFiles.hs ++++ b/terminal/src/Develop/StaticFiles.hs +@@ -2,7 +2,8 @@ + {-# LANGUAGE OverloadedStrings #-} + {-# LANGUAGE TemplateHaskell #-} + module Develop.StaticFiles +- ( lookup ++ ( prepare ++ , Lookup + , cssPath + , elmPath + , waitingPath +@@ -11,9 +12,7 @@ module Develop.StaticFiles + + import Prelude hiding (lookup) + import qualified Data.ByteString as BS +-import Data.FileEmbed (bsToExp) + import qualified Data.HashMap.Strict as HM +-import Language.Haskell.TH (runIO) + import System.FilePath (()) + + import qualified Develop.StaticFiles.Build as Build +@@ -26,20 +25,29 @@ import qualified Develop.StaticFiles.Build as Build + type MimeType = + BS.ByteString + ++type Lookup = FilePath -> Maybe (FilePath, MimeType) + +-lookup :: FilePath -> Maybe (BS.ByteString, MimeType) +-lookup path = ++prepare :: IO (Either [FilePath] Lookup) ++prepare = do ++ found <- Build.findReactorFrontEnd expectedFiles ++ return $ case found of ++ Left missing -> ++ Left missing ++ Right resolved -> ++ Right (mkLookup (HM.fromList resolved)) ++ ++mkLookup :: HM.HashMap FilePath (FilePath, MimeType) -> Lookup ++mkLookup dict path = + HM.lookup path dict + + +-dict :: HM.HashMap FilePath (BS.ByteString, MimeType) +-dict = +- HM.fromList +- [ faviconPath ==> (favicon , "image/x-icon") +- , elmPath ==> (elm , "application/javascript") +- , cssPath ==> (css , "text/css") +- , codeFontPath ==> (codeFont, "font/ttf") +- , sansFontPath ==> (sansFont, "font/ttf") ++expectedFiles :: [(FilePath, MimeType)] ++expectedFiles = ++ [ faviconPath ==> "image/x-icon" ++ , elmPath ==> "application/javascript" ++ , cssPath ==> "text/css" ++ , codeFontPath ==> "font/ttf" ++ , sansFontPath ==> "font/ttf" + ] + + +@@ -82,7 +90,7 @@ sansFontPath = + "_elm" "source-sans-pro.ttf" + + +- ++{- + -- ELM + + +@@ -121,3 +129,4 @@ sansFont = + favicon :: BS.ByteString + favicon = + $(bsToExp =<< runIO (Build.readAsset "favicon.ico")) ++-} +diff --git a/terminal/src/Develop/StaticFiles/Build.hs b/terminal/src/Develop/StaticFiles/Build.hs +index c61fae57..c39b08b0 100644 +--- a/terminal/src/Develop/StaticFiles/Build.hs ++++ b/terminal/src/Develop/StaticFiles/Build.hs +@@ -1,28 +1,39 @@ + {-# LANGUAGE OverloadedStrings #-} ++{-# LANGUAGE CPP #-} + module Develop.StaticFiles.Build +- ( readAsset +- , buildReactorFrontEnd ++ ( findReactorFrontEnd + ) + where + +- +-import qualified Data.ByteString as BS +-import qualified Data.ByteString.Builder as B +-import qualified Data.ByteString.Lazy as LBS +-import qualified Data.NonEmptyList as NE + import qualified System.Directory as Dir +-import System.FilePath (()) +- +-import qualified BackgroundWriter as BW +-import qualified Build +-import qualified Elm.Details as Details +-import qualified Generate +-import qualified Reporting +-import qualified Reporting.Exit as Exit +-import qualified Reporting.Task as Task +- +- +- ++import System.FilePath ((), takeDirectory) ++import System.Environment (getExecutablePath) ++import Data.Either as Either ++ ++reactorStaticRelRoot :: FilePath ++reactorStaticRelRoot = GUIX_REACTOR_STATIC_REL_ROOT ++ ++type Resolved a = (FilePath, (FilePath, a)) ++ ++findReactorFrontEnd :: [(FilePath, a)] -> IO (Either [FilePath] [Resolved a]) ++findReactorFrontEnd specs = do ++ exe <- getExecutablePath ++ let dir = takeDirectory exe reactorStaticRelRoot ++ dirExists <- Dir.doesDirectoryExist dir ++ files <- sequence (map (findFile dir) specs) ++ return $ case Either.lefts files of ++ [] -> ++ Right (Either.rights files) ++ missing -> ++ Left $ if dirExists then missing else [dir] ++ ++findFile :: FilePath -> (FilePath, a) -> IO (Either FilePath (Resolved a)) ++findFile dir (rel, rhs) = do ++ let abs = dir rel ++ exists <- Dir.doesFileExist abs ++ return $ if not exists then Left abs else Right (rel, (abs, rhs)) ++ ++{- + -- ASSETS + + +@@ -71,3 +82,4 @@ runTaskUnsafe task = + \\nCompile with `elm make` directly to figure it out faster\ + \\n--------------------------------------------------------\ + \\n" ++-} +-- +2.32.0 + From 0d480d4c624fba4e192a0718d1500a5924d688f7 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:49 -0400 Subject: [PATCH 139/363] gnu: elm: Rename package to match the command. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-compiler): Rename to ... (elm): ... this variable, leaving 'elm-compiler' as a deprecated alias. [description]: Tweak. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 988cc02de1..a3863e6e6f 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -39,9 +39,9 @@ ;; `elm reactor` exit with a useful error message if they aren't there. (define %reactor-root-base "share/elm/reactor-") -(define-public elm-compiler +(define-public elm (package - (name "elm-compiler") + (name "elm") (version "0.19.1") (source (origin @@ -93,7 +93,11 @@ (home-page "https://elm-lang.org") (synopsis "Programming language for Web applications") (description - "This package provides Elm, a statically-typed functional programming -language for the browser. It includes commands for developers such as -@command{elm make} and @command{elm repl}.") + "Elm is a statically-typed, purely-functional programming language for +the browser. The @command{elm} exectable includes commands for developers +such as @command{elm make} and @command{elm repl}.") (license license:bsd-3))) + +;; The 'elm' package used to be called 'elm-compiler'. +(define-public elm-compiler + (deprecated-package "elm-compiler" elm)) From aefcfdd0ae2aa41adb3d1106752b6a291ef1d80f Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:50 -0400 Subject: [PATCH 140/363] guix: Add elm-build-system. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/elm-offline-package-registry.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/elm.scm (elm): Use it. * guix/build-system/elm.scm, guix/build/elm-build-system.scm, tests/elm.scm: New files. * Makefile.scm (MODULES, SCM_TESTS): Add them. * doc/guix.texi (Build Systems): Document 'elm-build-system'. * doc/contributing.texi (Elm Packages): New section. Document naming conventions and utilities. Signed-off-by: Ludovic Courtès --- Makefile.am | 3 + doc/contributing.texi | 82 ++++ doc/guix.texi | 52 +++ gnu/local.mk | 1 + gnu/packages/elm.scm | 4 +- .../elm-offline-package-registry.patch | 71 ++++ guix/build-system/elm.scm | 172 ++++++++ guix/build/elm-build-system.scm | 380 ++++++++++++++++++ tests/elm.scm | 97 +++++ 9 files changed, 861 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/elm-offline-package-registry.patch create mode 100644 guix/build-system/elm.scm create mode 100644 guix/build/elm-build-system.scm create mode 100644 tests/elm.scm diff --git a/Makefile.am b/Makefile.am index 85a22be99c..9ca92c407c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -141,6 +141,7 @@ MODULES = \ guix/build-system/cmake.scm \ guix/build-system/dub.scm \ guix/build-system/dune.scm \ + guix/build-system/elm.scm \ guix/build-system/emacs.scm \ guix/build-system/font.scm \ guix/build-system/go.scm \ @@ -192,6 +193,7 @@ MODULES = \ guix/build/cmake-build-system.scm \ guix/build/dub-build-system.scm \ guix/build/dune-build-system.scm \ + guix/build/elm-build-system.scm \ guix/build/emacs-build-system.scm \ guix/build/meson-build-system.scm \ guix/build/minify-build-system.scm \ @@ -472,6 +474,7 @@ SCM_TESTS = \ tests/derivations.scm \ tests/discovery.scm \ tests/egg.scm \ + tests/elm.scm \ tests/elpa.scm \ tests/file-systems.scm \ tests/gem.scm \ diff --git a/doc/contributing.texi b/doc/contributing.texi index 862dcbf12a..555b9bb961 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -447,6 +447,7 @@ needed is to review and apply the patch. * Perl Modules:: Little pearls. * Java Packages:: Coffee break. * Rust Crates:: Beware of oxidation. +* Elm Packages:: Trees of browser code * Fonts:: Fond of fonts. @end menu @@ -898,6 +899,87 @@ developed for a different Operating System, depend on features from the Nightly Rust compiler, or the test suite may have atrophied since it was released. +@node Elm Packages +@subsection Elm Packages + +@cindex Elm +Elm applications can be named like other software: their names need not +mention Elm. + +Packages in the Elm sense (see @code{elm-build-system} under @ref{Build +Systems}) are required use names of the format +@var{author}@code{/}@var{project}, where both the @var{author} and the +@var{project} may contain hyphens internally, and the @var{author} sometimes +contains uppercase letters. + +To form the Guix package name from the upstream name, we follow a convention +similar to Python packages (@pxref{Python Modules}), adding an @code{elm-} +prefix unless the name would already begin with @code{elm-}. + +In many cases we can reconstruct an Elm package's upstream name heuristically, +but, since conversion to a Guix-style name involves a loss of information, +this is not always possible. Care should be taken to add the +@code{'upstream-name} property when necessary so that tools +will work correctly. The most notable scenarios +when explicitly specifying the upstream name is necessary are: + +@enumerate +@item +When the @var{author} is @code{elm} and the @var{project} contains one or more +hyphens, as with @code{elm/virtual-dom}; and + +@item +When the @var{author} contains hyphens or uppercase letters, as with +@code{Elm-Canvas/raster-shapes}---unless the @var{author} is +@code{elm-explorations}, which is handled as a special case, so packages like +@code{elm-explorations/markdown} do @emph{not} need to use the +@code{'upstream-name} property. +@end enumerate + +The module @code{(guix build-system elm)} provides the following utilities for +working with names and related conventions: + +@deffn {Scheme procedure} elm-package-origin @var{elm-name} @var{version} @ + @var{hash} +Returns a Git origin using the repository naming and tagging regime required +for a published Elm package with the upstream name @var{elm-name} at version +@var{version} with sha256 checksum @var{hash}. + +For example: +@lisp +(package + (name "elm-html") + (version "1.0.0") + (source + (elm-package-origin + "elm/html" + version + (base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a"))) + ...) +@end lisp +@end deffn + +@deffn {Scheme procedure} elm->package-name @var{elm-name} +Returns the Guix-style package name for an Elm package with upstream name +@var{elm-name}. + +Note that there is more than one possible @var{elm-name} for which +@code{elm->package-name} will produce a given result. +@end deffn + +@deffn {Scheme procedure} guix-package->elm-name @var{package} +Given an Elm @var{package}, returns the possibly-inferred upstream name, or +@code{#f} the upstream name is not specified via the @code{'upstream-name} +property and can not be inferred by @code{infer-elm-package-name}. +@end deffn + +@deffn {Scheme procedure} infer-elm-package-name @var{guix-name} +Given the @var{guix-name} of an Elm package, returns the inferred upstream +name, or @code{#f} if the upstream name can't be inferred. If the result is +not @code{#f}, supplying it to @code{elm->package-name} would produce +@var{guix-name}. +@end deffn + @node Fonts @subsection Fonts diff --git a/doc/guix.texi b/doc/guix.texi index faa35060ef..3eff660f0e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -102,6 +102,7 @@ Copyright @copyright{} 2021 Sarah Morgensen@* Copyright @copyright{} 2021 Josselin Poiret@* Copyright @copyright{} 2022 Remco van 't Veer@* Copyright @copyright{} 2022 Aleksandr Vityazev@* +Copyright @copyright{} 2022 Philip M@sup{c}Grath@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -8717,6 +8718,57 @@ only one of them. This is equivalent to passing the @code{-p} argument to @end defvr +@defvr {Scheme variable} elm-build-system +This variable is exported by @code{(guix build-system elm)}. It implements a +build procedure for @url{https://elm-lang.org, Elm} packages similar to +@samp{elm install}. + +The build system adds an Elm compiler package to the set of inputs. The +default compiler package (currently @code{elm}) can be overridden +using the @code{#:elm} argument. Additionally, Elm packages needed by the +build system itself are added as implicit inputs if they are not already +present: to suppress this behavior, use the +@code{#:implicit-elm-package-inputs?} argument, which is primarily useful for +bootstrapping. + +The @code{"dependencies"} and @code{"test-dependencies"} in an Elm package's +@file{elm.json} file correspond to @code{propagated-inputs} and @code{inputs}, +respectively. + +Elm requires a particular structure for package names: @pxref{Elm Packages} +for more details, including utilities provided by @code{(guix build-system +elm)}. + +There are currently a few noteworthy limitations to @code{elm-build-system}: + +@itemize +@item +The build system is focused on @dfn{packages} in the Elm sense of the word: +Elm @dfn{projects} which declare @code{@{ "type": "package" @}} in their +@file{elm.json} files. Using @code{elm-build-system} to build Elm +@dfn{applications} (which declare @code{@{ "type": "application" @}}) is +possible, but requires ad-hoc modifications to the build phases. + +@item +Elm supports multiple versions of a package coexisting simultaneously under +@env{ELM_HOME}, but this does not yet work well with @code{elm-build-system}. +This limitation primarily affects Elm applications, because they specify +exact versions for their dependencies, whereas Elm packages specify supported +version ranges. As a workaround, you can use +the @code{patch-application-dependencies} procedure provided by +@code{(guix build elm-build-system)} to rewrite their @file{elm.json} files to +refer to the package versions actually present in the build environment. +Alternatively, Guix package transformations (@pxref{Defining Package +Variants}) could be used to rewrite an application's entire dependency graph. + +@item +We are not yet able to run tests for Elm projects because neither +@url{https://github.com/mpizenberg/elm-test-rs, @command{elm-test-rs}} nor the +Node.js-based @url{https://github.com/rtfeldman/node-test-runner, +@command{elm-test}} runner has been packaged for Guix yet. +@end itemize +@end defvr + @defvr {Scheme Variable} go-build-system This variable is exported by @code{(guix build-system go)}. It implements a build procedure for Go packages using the standard diff --git a/gnu/local.mk b/gnu/local.mk index 70efa16c63..6274f43566 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1024,6 +1024,7 @@ dist_patch_DATA = \ %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-path-length.patch \ + %D%/packages/patches/elm-offline-package-registry.patch \ %D%/packages/patches/elm-reactor-static-files.patch \ %D%/packages/patches/elogind-revert-polkit-detection.patch \ %D%/packages/patches/emacs-exec-path.patch \ diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index a3863e6e6f..35bdcc65f5 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -25,6 +25,7 @@ #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages haskell-web) #:use-module (guix build-system haskell) + #:use-module (guix build-system elm) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) @@ -53,7 +54,8 @@ (sha256 (base32 "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w")) (patches - (search-patches "elm-reactor-static-files.patch")))) + (search-patches "elm-reactor-static-files.patch" + "elm-offline-package-registry.patch")))) (build-system haskell-build-system) (arguments (list diff --git a/gnu/packages/patches/elm-offline-package-registry.patch b/gnu/packages/patches/elm-offline-package-registry.patch new file mode 100644 index 0000000000..761ec69878 --- /dev/null +++ b/gnu/packages/patches/elm-offline-package-registry.patch @@ -0,0 +1,71 @@ +From 06563409e6f2b1cca7bc1b27e31efd07a7569da8 Mon Sep 17 00:00:00 2001 +From: Philip McGrath +Date: Thu, 14 Apr 2022 22:41:04 -0400 +Subject: [PATCH] minimal support for offline builds + +Normally, Elm performs HTTP requests before building to obtain or +update its list of all registed packages and their versions. +This is problematic in the Guix build environment. + +This patch causes Elm to check if the `GUIX_ELM_OFFLINE_REGISTRY_FILE` +is set and, if so, to use the contents of the file it specifies as +though it were the response from +https://package.elm-lang.org/all-packages. + +This patch does not attempt to add more general support for offline +builds. In particular, it does not attempt to support incremental +updates to the package registry cache file. See also discussion at +https://discourse.elm-lang.org/t/private-package-tool-spec/6779/25. +--- + builder/src/Deps/Registry.hs | 25 +++++++++++++++++++++---- + 1 file changed, 21 insertions(+), 4 deletions(-) + +diff --git a/builder/src/Deps/Registry.hs b/builder/src/Deps/Registry.hs +index 8d7def98..70cf3622 100644 +--- a/builder/src/Deps/Registry.hs ++++ b/builder/src/Deps/Registry.hs +@@ -18,6 +18,8 @@ import Control.Monad (liftM2) + import Data.Binary (Binary, get, put) + import qualified Data.List as List + import qualified Data.Map.Strict as Map ++import System.Environment as Env ++import qualified Data.ByteString as BS + + import qualified Deps.Website as Website + import qualified Elm.Package as Pkg +@@ -190,13 +192,28 @@ getVersions' name (Registry _ versions) = + post :: Http.Manager -> String -> D.Decoder x a -> (a -> IO b) -> IO (Either Exit.RegistryProblem b) + post manager path decoder callback = + let +- url = Website.route path [] +- in +- Http.post manager url [] Exit.RP_Http $ +- \body -> ++ mkBodyCallback url body = + case D.fromByteString decoder body of + Right a -> Right <$> callback a + Left _ -> return $ Left $ Exit.RP_Data url body ++ postOnline url cb = ++ Http.post manager url [] Exit.RP_Http cb ++ performPost f url = ++ f url (mkBodyCallback url) ++ in ++ do ++ maybeFile <- Env.lookupEnv "GUIX_ELM_OFFLINE_REGISTRY_FILE" ++ case (path, maybeFile) of ++ ( "/all-packages", Just file ) -> ++ performPost postOffline file ++ ( _, _ ) -> ++ -- don't know how to handle other endpoints yet ++ performPost postOnline (Website.route path []) ++ ++postOffline :: String -> (BS.ByteString -> IO a) -> IO a ++postOffline file callback = do ++ body <- BS.readFile file ++ callback body + + + +-- +2.32.0 + diff --git a/guix/build-system/elm.scm b/guix/build-system/elm.scm new file mode 100644 index 0000000000..b54954bf4e --- /dev/null +++ b/guix/build-system/elm.scm @@ -0,0 +1,172 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Philip McGrath +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system elm) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix search-paths) + #:use-module (guix git-download) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:export (elm->package-name + guix-package->elm-name + infer-elm-package-name + elm-package-origin + %elm-build-system-modules + %elm-default-modules + elm-build + elm-build-system)) + +(define (elm->package-name name) + "Given the NAME of an Elm package, return a Guix-style package name." + (let ((converted + (string-join (string-split (string-downcase name) #\/) "-"))) + (if (string-prefix? "elm-" converted) + converted + (string-append "elm-" converted)))) + +(define (guix-package->elm-name package) + "Given an Elm PACKAGE, return the possibly-inferred upstream name, or #f the +upstream name is not specified and can't be inferred." + (or (assoc-ref (package-properties package) 'upstream-name) + (infer-elm-package-name (package-name package)))) + +(define (infer-elm-package-name guix-name) + "Given the GUIX-NAME of an Elm package, return the inferred upstream name, +or #f if it can't be inferred. If the result is not #f, supplying it to +'elm->package-name' would produce GUIX-NAME. + +See also 'guix-package->elm-name', which respects the 'upstream-name' +property." + (define (parts-join part0 parts) + (string-join (cons part0 parts) "-")) + (match (string-split guix-name #\-) + (("elm" "explorations" part0 parts ...) + (string-append "elm-explorations/" + (parts-join part0 parts))) + (("elm" owner part0 parts ...) + (string-append owner "/" (parts-join part0 parts))) + (("elm" repo) + (string-append "elm/" repo)) + (_ + #f))) + +(define (elm-package-origin elm-name version hash) + "Return an origin for the Elm package with upstream name ELM-NAME at the +given VERSION with sha256 checksum HASH." + ;; elm requires this very specific repository structure and tagging regime + (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/" elm-name)) + (commit version))) + (file-name (git-file-name (elm->package-name elm-name) version)) + (sha256 hash))) + +(define %elm-build-system-modules + ;; Build-side modules imported by default. + `((guix build elm-build-system) + (guix build json) + (guix build union) + ,@%gnu-build-system-modules)) + +(define %elm-default-modules + ;; Modules in scope in the build-side environment. + '((guix build elm-build-system) + (guix build utils) + (guix build json) + (guix build union))) + +(define (default-elm) + "Return the default Elm package for builds." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((elm (resolve-interface '(gnu packages elm)))) + (module-ref elm 'elm))) + +(define* (lower name + #:key source inputs native-inputs outputs system target + (implicit-elm-package-inputs? #t) + (elm (default-elm)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:target #:implicit-elm-package-inputs? #:elm #:inputs #:native-inputs)) + (cond + (target + ;; Cross-compilation is not yet supported. It should be easy, though, + ;; since the build products are all platform-independent. + #f) + (else + (bag + (name name) + (system system) + (host-inputs + `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + ("elm" ,elm) + ;; TODO: probably don't need most of (standard-packages) + ,@(standard-packages))) + (outputs outputs) + (build elm-build) + (arguments (strip-keyword-arguments private-keywords arguments)))))) + +(define* (elm-build name inputs + #:key + source + (tests? #t) + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules %elm-build-system-modules) + (modules %elm-default-modules)) + "Build SOURCE using ELM." + (define builder + (with-imported-modules imported-modules + #~(begin + (use-modules #$@(sexp->gexp modules)) + (elm-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:phases #$phases + #:outputs #$(outputs->gexp outputs) + #:search-paths '#$(sexp->gexp + (map search-path-specification->sexp + search-paths)) + #:inputs #$(input-tuples->gexp inputs))))) + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system #:graft? #f))) + (gexp->derivation name builder + #:system system + #:guile-for-build guile))) + +(define elm-build-system + (build-system + (name 'elm) + (description "The Elm build system") + (lower lower))) diff --git a/guix/build/elm-build-system.scm b/guix/build/elm-build-system.scm new file mode 100644 index 0000000000..02d7c029dd --- /dev/null +++ b/guix/build/elm-build-system.scm @@ -0,0 +1,380 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Philip McGrath +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build elm-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (guix build json) + #:use-module (guix build union) + #:use-module (ice-9 ftw) + #:use-module (ice-9 rdelim) + #:use-module (ice-9 regex) + #:use-module (ice-9 match) + #:use-module (ice-9 popen) + #:use-module (ice-9 vlist) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-71) + #:export (%standard-phases + patch-application-dependencies + patch-json-string-escapes + read-offline-registry->vhash + elm-build)) + +;;; Commentary: +;;; +;;; Elm draws a sharp distinction between "projects" with `{"type":"package"}` +;;; vs. `{"type":"application"}` in the "elm.json" file: see +;;; and +;;; . +;;; For now, `elm-build-system` is designed for "package"s: packaging +;;; "application"s requires ad-hoc replacements for some phases---but see +;;; `patch-application-dependencies`, which helps to work around a known issue +;;; discussed below. It would be nice to add more streamlined support for +;;; "application"s one we have more experience building them in Guix. For +;;; example, we could incorporate the `uglifyjs` advice from +;;; . +;;; +;;; We want building an Elm "package" to produce: +;;; +;;; - a "docs.json" file with extracted documentation; and +;;; +;;; - an "artifacts.dat" file with compilation results for use in building +;;; "package"s and "application"s. +;;; +;;; Unfortunately, there isn't an entry point to the Elm compiler that builds +;;; those files directly. Building with `elm make` does something different, +;;; more oriented toward development, testing, and building "application"s. +;;; We work around this limitation by staging the "package" we're building as +;;; though it were already installed in ELM_HOME, generating a trivial Elm +;;; "application" that depends on the "package", and building the +;;; "application", which causes the files for the "package" to be built. +;;; +;;; Much of the ceremony involved is to avoid using `elm` in ways that would +;;; make it try to do network IO beyond the bare minimum functionality for +;;; which we've patched a replacement into our `elm`. On the other hand, we +;;; get to take advantage of the very regular structure required of Elm +;;; packages. +;;; +;;; *Known issue:* Elm itself supports multiple versions of "package"s +;;; coexisting simultaneously under ELM_HOME, but we do not support this yet. +;;; Sometimes, parallel versions coexisting causes `elm` to try to write to +;;; built "artifacts.dat" files. For now, two workarounds are possible: +;;; +;;; - Use `patch-application-dependencies` to rewrite an "application"'s +;;; "elm.json" file to refer to the versions of its inputs actually +;;; packaged in Guix. +;;; +;;; - Use a Guix package transformation to rewrite your "application"'s +;;; dependencies recursively, so that only one version of each Elm +;;; "package" is included in your "application"'s build environment. +;;; +;;; Patching `elm` more extensively---perhaps adding an `elm guix` +;;; subcommand`---might let us address these issues more directly. +;;; +;;; Code: +;;; + +(define %essential-elm-packages + ;; elm/json isn't essential in a fundamental sense, + ;; but it's required for a {"type":"application"}, + ;; which we are generating to trigger the build + '("elm/core" "elm/json")) + +(define* (target-elm-version #:optional elm) + "Return the version of ELM or whichever 'elm' is in $PATH. +Return #false if it cannot be determined." + (let* ((pipe (open-pipe* OPEN_READ + (or elm "elm") + "--version")) + (line (read-line pipe))) + (and (zero? (close-pipe pipe)) + (string? line) + line))) + +(define* (prepare-elm-home #:key native-inputs inputs #:allow-other-keys) + "Set the ELM_HOME environment variable and populate the indicated directory +with the union of the Elm \"package\" inputs. Also, set GUIX_ELM_VERSION to +the version of the Elm compiler in use." + (let* ((elm (search-input-file (or native-inputs inputs) "/bin/elm")) + (elm-version (target-elm-version elm))) + (setenv "GUIX_ELM_VERSION" elm-version) + (mkdir "../elm-home") + (with-directory-excursion "../elm-home" + (union-build elm-version + (search-path-as-list + (list (string-append "share/elm/" elm-version)) + (map cdr inputs)) + #:create-all-directories? #t) + (setenv "ELM_HOME" (getcwd))))) + +(define* (stage #:key native-inputs inputs #:allow-other-keys) + "Extract the installable files from the Elm \"package\" into a staging +directory and link it into the ELM_HOME tree. Also, set GUIX_ELM_PKG_NAME and +GUIX_ELM_PKG_VERSION to the name and version, respectively, of the Elm package +being built, as defined in its \"elm.json\" file." + (let* ((elm-version (getenv "GUIX_ELM_VERSION")) + (elm-home (getenv "ELM_HOME")) + (info (match (call-with-input-file "elm.json" read-json) + (('@ . alist) alist))) + (name (assoc-ref info "name")) + (version (assoc-ref info "version")) + (rel-dir (string-append elm-version "/packages/" name "/" version)) + (staged-dir (string-append elm-home "/../staged/" rel-dir))) + (setenv "GUIX_ELM_PKG_NAME" name) + (setenv "GUIX_ELM_PKG_VERSION" version) + (mkdir-p staged-dir) + (mkdir-p (string-append elm-home "/" (dirname rel-dir))) + (symlink staged-dir + (string-append elm-home "/" rel-dir)) + (copy-recursively "src" (string-append staged-dir "/src")) + (install-file "elm.json" staged-dir) + (install-file "README.md" staged-dir) + (when (file-exists? "LICENSE") + (install-file "LICENSE" staged-dir)))) + +(define (patch-json-string-escapes file) + "Work around a bug in the Elm compiler's JSON parser by attempting to +replace REVERSE-SOLIDUS--SOLIDUS escape sequences in FILE with unescaped +SOLIDUS characters." + ;; https://github.com/elm/compiler/issues/2255 + (substitute* file + (("\\\\/") + "/"))) + +(define (directory-list dir) + "Like DIRECTORY-LIST from 'racket/base': lists the contents of DIR, not +including the special \".\" and \"..\" entries." + (scandir dir (lambda (f) + (not (member f '("." "..")))))) + +(define* (make-offline-registry-file #:key inputs #:allow-other-keys) + "Generate an \"offline-package-registry.json\" file and set +GUIX_ELM_OFFLINE_REGISTRY_FILE to its path, cooperating with a patch to `elm` +to avoid attempting to download a list of all published Elm package names and +versions from the internet." + (let* ((elm-home (getenv "ELM_HOME")) + (elm-version (getenv "GUIX_ELM_VERSION")) + (registry-file + (string-append elm-home "/../offline-package-registry.json")) + (registry-alist + ;; here, we don't need to look up entries, so we build the + ;; alist directly, rather than using a vhash + (with-directory-excursion + (string-append elm-home "/" elm-version "/packages") + (append-map (lambda (org) + (with-directory-excursion org + (map (lambda (repo) + (cons (string-append org "/" repo) + (directory-list repo))) + (directory-list ".")))) + (directory-list "."))))) + (call-with-output-file registry-file + (lambda (out) + (write-json `(@ ,@registry-alist) out))) + (patch-json-string-escapes registry-file) + (setenv "GUIX_ELM_OFFLINE_REGISTRY_FILE" registry-file))) + +(define (read-offline-registry->vhash) + "Return a vhash mapping Elm \"package\" names to lists of available version +strings." + (alist->vhash + (match (call-with-input-file (getenv "GUIX_ELM_OFFLINE_REGISTRY_FILE") + read-json) + (('@ . alist) alist)))) + +(define (find-indirect-dependencies registry-vhash root-pkg root-version) + "Return the recursive dependencies of ROOT-PKG, an Elm \"package\" name, at +version ROOT-VERSION as an alist mapping Elm \"package\" names to (single) +versions. The resulting alist will not include entries for +%ESSENTIAL-ELM-PACKAGES or for ROOT-PKG itself. The REGISTRY-VHASH is used in +conjunction with the ELM_HOME environment variable to find dependencies." + (with-directory-excursion + (string-append (getenv "ELM_HOME") + "/" (getenv "GUIX_ELM_VERSION") + "/packages") + (define (get-dependencies pkg version acc) + (let* ((elm-json-alist + (match (call-with-input-file + (string-append pkg "/" version "/elm.json") + read-json) + (('@ . alist) alist))) + (deps-alist + (match (assoc-ref elm-json-alist "dependencies") + (('@ . alist) alist))) + (deps-names + (filter-map (match-lambda + ((name . range) + (and (not (member name %essential-elm-packages)) + name))) + deps-alist))) + (fold register-dependency acc deps-names))) + (define (register-dependency pkg acc) + ;; Using vhash-cons unconditionally would add duplicate entries, + ;; which would then cause problems when we must emit JSON. + ;; Plus, we can avoid needlessly duplicating work. + (if (vhash-assoc pkg acc) + acc + (match (vhash-assoc pkg registry-vhash) + ((_ version . _) + ;; in the rare case that multiple versions are present, + ;; just picking an arbitrary one seems to work well enough for now + (get-dependencies pkg version (vhash-cons pkg version acc)))))) + (vlist->list + (get-dependencies root-pkg root-version vlist-null)))) + +(define* (patch-application-dependencies #:key inputs #:allow-other-keys) + "Rewrites the \"elm.json\" file in the working directory---which must be of +`\"type\":\"application\"`, not `\"type\":\"package\"`---to refer to the +dependency versions actually provided via Guix. The +GUIX_ELM_OFFLINE_REGISTRY_FILE environment variable is used to find available +versions." + (let* ((registry-vhash (read-offline-registry->vhash)) + (rewrite-dep-version + (match-lambda + ((name . _) + (cons name (match (vhash-assoc name registry-vhash) + ((_ version) ;; no dot + version)))))) + (rewrite-direct/indirect + (match-lambda + ;; a little checking to avoid confusing misuse with "package" + ;; project dependencies, which have a different shape + (((and key (or "direct" "indirect")) + '@ . alist) + `(,key @ ,@(map rewrite-dep-version alist))))) + (rewrite-json-section + (match-lambda + (((and key (or "dependencies" "test-dependencies")) + '@ . alist) + `(,key @ ,@(map rewrite-direct/indirect alist))) + ((k . v) + (cons k v)))) + (rewrite-elm-json + (match-lambda + (('@ . alist) + `(@ ,@(map rewrite-json-section alist)))))) + (with-atomic-file-replacement "elm.json" + (lambda (in out) + (write-json (rewrite-elm-json (read-json in)) + out))) + (patch-json-string-escapes "elm.json"))) + +(define* (configure #:key native-inputs inputs #:allow-other-keys) + "Generate a trivial Elm \"application\" with a direct dependency on the Elm +\"package\" currently being built." + (let* ((info (match (call-with-input-file "elm.json" read-json) + (('@ . alist) alist))) + (name (getenv "GUIX_ELM_PKG_NAME")) + (version (getenv "GUIX_ELM_PKG_VERSION")) + (elm-home (getenv "ELM_HOME")) + (registry-vhash (read-offline-registry->vhash)) + (app-dir (string-append elm-home "/../fake-app"))) + (mkdir-p (string-append app-dir "/src")) + (with-directory-excursion app-dir + (call-with-output-file "elm.json" + (lambda (out) + (write-json + `(@ ("type" . "application") + ("source-directories" "src") ;; intentionally no dot + ("elm-version" . ,(getenv "GUIX_ELM_VERSION")) + ("dependencies" + @ ("direct" + @ ,@(map (lambda (pkg) + (match (vhash-assoc pkg registry-vhash) + ((_ pkg-version . _) + (cons pkg + (if (equal? pkg name) + version + pkg-version))))) + (if (member name %essential-elm-packages) + %essential-elm-packages + (cons name %essential-elm-packages)))) + ("indirect" + @ ,@(if (member name %essential-elm-packages) + '() + (find-indirect-dependencies registry-vhash + name + version)))) + ("test-dependencies" + @ ("direct" @) + ("indirect" @))) + out))) + (patch-json-string-escapes "elm.json") + (with-output-to-file "src/Main.elm" + ;; the most trivial possible elm program + (lambda () + (display "module Main exposing (..) +main : Program () () () +main = Platform.worker + { init = \\_ -> ( (), Cmd.none ) + , update = \\_ -> \\_ -> ( (), Cmd.none ) + , subscriptions = \\_ -> Sub.none }")))))) + +(define* (build #:key native-inputs inputs #:allow-other-keys) + "Run `elm make` to build the Elm \"application\" generated by CONFIGURE." + (with-directory-excursion (string-append (getenv "ELM_HOME") "/../fake-app") + (invoke (search-input-file (or native-inputs inputs) "/bin/elm") + "make" + "src/Main.elm"))) + +(define* (check #:key tests? #:allow-other-keys) + "Does nothing, because the `elm-test` executable has not yet been packaged +for Guix." + (when tests? + (display "elm-test has not yet been packaged for Guix\n"))) + +(define* (install #:key outputs #:allow-other-keys) + "Installs the contents of the directory generated by STAGE, including any +files added by BUILD, to the Guix package output." + (copy-recursively + (string-append (getenv "ELM_HOME") "/../staged") + (string-append (assoc-ref outputs "out") "/share/elm"))) + +(define* (validate-compiled #:key outputs #:allow-other-keys) + "Checks that the files \"artifacts.dat\" and \"docs.json\" have been +installed." + (let ((base (string-append "/share/elm/" + (getenv "GUIX_ELM_VERSION") + "/packages/" + (getenv "GUIX_ELM_PKG_NAME") + "/" + (getenv "GUIX_ELM_PKG_VERSION"))) + (expected '("artifacts.dat" "docs.json"))) + (for-each (lambda (name) + (search-input-file outputs (string-append base "/" name))) + expected))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (add-after 'unpack 'prepare-elm-home prepare-elm-home) + (delete 'bootstrap) + (add-after 'patch-source-shebangs 'stage stage) + (add-after 'stage 'make-offline-registry-file make-offline-registry-file) + (replace 'configure configure) + (delete 'patch-generated-file-shebangs) + (replace 'build build) + (replace 'check check) + (replace 'install install) + (add-before 'validate-documentation-location 'validate-compiled + validate-compiled))) + +(define* (elm-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Builds the given Elm project, applying all of the PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) diff --git a/tests/elm.scm b/tests/elm.scm new file mode 100644 index 0000000000..96f958f060 --- /dev/null +++ b/tests/elm.scm @@ -0,0 +1,97 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Philip McGrath +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (test-elm) + #:use-module (guix build-system elm) + #:use-module (srfi srfi-64)) + +(test-begin "elm") + +(test-group "elm->package-name and infer-elm-package-name" + (test-group "round trip" + ;; Cases when our heuristics can find the upstream name. + (define-syntax-rule (test-round-trip elm guix) + (test-group elm + (test-equal "elm->package-name" guix + (elm->package-name elm)) + (test-equal "infer-elm-package-name" elm + (infer-elm-package-name guix)))) + (test-round-trip "elm/core" "elm-core") + (test-round-trip "elm/html" "elm-html") + (test-round-trip "elm-explorations/markdown" "elm-explorations-markdown") + (test-round-trip "elm-explorations/test" "elm-explorations-test") + (test-round-trip "elm-explorations/foo-bar" "elm-explorations-foo-bar") + (test-round-trip "elm/explorations" "elm-explorations") + (test-round-trip "terezka/intervals" "elm-terezka-intervals") + (test-round-trip "justinmimbs/time-extra" "elm-justinmimbs-time-extra") + (test-round-trip "danhandrea/elm-date-format" + "elm-danhandrea-elm-date-format")) + (test-group "upstream-name needed" + ;; Upstream names that our heuristic can't infer. We still check that the + ;; round-trip behavior of 'infer-elm-package-name' works as promised for + ;; the hypothetical Elm name it doesn't infer. + (define-syntax-rule (test-upstream-needed elm guix inferred) + (test-group elm + (test-equal "elm->package-name" guix + (elm->package-name elm)) + (test-group "infer-elm-package-name" + (test-equal "infers other name" inferred + (infer-elm-package-name guix)) + (test-equal "infered name round-trips" guix + (elm->package-name inferred))))) + (test-upstream-needed "elm/virtual-dom" + "elm-virtual-dom" + "virtual/dom") + (test-upstream-needed "elm/project-metadata-utils" + "elm-project-metadata-utils" + "project/metadata-utils") + (test-upstream-needed "explorations/foo" + "elm-explorations-foo" + "elm-explorations/foo") + (test-upstream-needed "explorations/foo-bar" + "elm-explorations-foo-bar" + "elm-explorations/foo-bar") + (test-upstream-needed "explorations-central/foo" + "elm-explorations-central-foo" + "elm-explorations/central-foo") + (test-upstream-needed "explorations-central/foo-bar" + "elm-explorations-central-foo-bar" + "elm-explorations/central-foo-bar") + (test-upstream-needed "elm-xyz/foo" + "elm-xyz-foo" + "xyz/foo") + (test-upstream-needed "elm-xyz/foo-bar" + "elm-xyz-foo-bar" + "xyz/foo-bar") + (test-upstream-needed "elm-explorations-xyz/foo" + "elm-explorations-xyz-foo" + "elm-explorations/xyz-foo") + (test-upstream-needed "elm-explorations-xyz/foo-bar" + "elm-explorations-xyz-foo-bar" + "elm-explorations/xyz-foo-bar")) + (test-group "no inferred Elm name" + ;; Cases that 'infer-elm-package-name' should not attempt to handle, + ;; because 'elm->package-name' would never produce such names. + (define-syntax-rule (test-not-inferred guix) + (test-assert guix (not (infer-elm-package-name guix)))) + (test-not-inferred "elm") + (test-not-inferred "guile") + (test-not-inferred "gcc-toolchain") + (test-not-inferred "font-adobe-source-sans-pro"))) + +(test-end "elm") From d16b2a1421716225c97a21442d3005d14ed87239 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:51 -0400 Subject: [PATCH 141/363] gnu: Add elm-core and elm-json. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both of these packages are needed for 'elm-build-system' to work. * gnu/packages/elm.scm (elm-core, elm-json, elm-json-bootstrap): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 35bdcc65f5..4ad3a000cb 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -103,3 +103,58 @@ such as @command{elm make} and @command{elm repl}.") ;; The 'elm' package used to be called 'elm-compiler'. (define-public elm-compiler (deprecated-package "elm-compiler" elm)) + +(define-public elm-core + (package + (name "elm-core") + (version "1.0.5") + (source + (elm-package-origin + "elm/core" + version + (base32 "0g3xbi8f9k5q45s95nx3jfvzwdf4b2n63a52wr4027d2xjx0pmvl"))) + (build-system elm-build-system) + (inputs (list elm-json-bootstrap)) + (arguments + (list #:implicit-elm-package-inputs? #f)) + (home-page "https://package.elm-lang.org/packages/elm/core/1.0.5") + (synopsis "Elm's standard libraries") + (description "Every Elm project needs this package!") + (license license:bsd-3))) + +(define-public elm-json + (package + (name "elm-json") + (version "1.1.3") + (source + (elm-package-origin + "elm/json" + version + (base32 "1hx986yqw1v2bpkrh6brszl8n8awwg1s8zi7v5qg0p1rqwvjlicz"))) + (build-system elm-build-system) + (propagated-inputs (list elm-core)) + (arguments + (list #:implicit-elm-package-inputs? #f)) + (home-page "https://package.elm-lang.org/packages/elm/json/1.1.3") + (synopsis "Encode and decode JSON values in Elm") + (description + "This package helps you convert between Elm values and JSON values.") + (license license:bsd-3))) + +(define-public elm-json-bootstrap + ;; elm/core doesn't depend on elm/json, + ;; but elm-build-system's strategy for building it + ;; (and everything else) does + (hidden-package + (package + (inherit elm-json) + (name "elm-json-bootstrap") + (properties '((upstream-name . "elm/json"))) + (propagated-inputs '()) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (delete 'validate-compiled)) + #:implicit-elm-package-inputs? #f))))) From dce724dc82c4ec4b55288b539e23239eb9677350 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:52 -0400 Subject: [PATCH 142/363] build-system/elm: Add implicit Elm inputs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/build-system/elm.scm (default-elm-core): New variable. (default-elm-json): Likewise (lower): Use them as implicit inputs when applicable. Signed-off-by: Ludovic Courtès --- guix/build-system/elm.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/guix/build-system/elm.scm b/guix/build-system/elm.scm index b54954bf4e..293bcbfb64 100644 --- a/guix/build-system/elm.scm +++ b/guix/build-system/elm.scm @@ -103,6 +103,18 @@ given VERSION with sha256 checksum HASH." (let ((elm (resolve-interface '(gnu packages elm)))) (module-ref elm 'elm))) +(define (default-elm-core) + "Return the default elm-core package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((elm (resolve-interface '(gnu packages elm)))) + (module-ref elm 'elm-core))) + +(define (default-elm-json) + "Return the default elm-json package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((elm (resolve-interface '(gnu packages elm)))) + (module-ref elm 'elm-json))) + (define* (lower name #:key source inputs native-inputs outputs system target (implicit-elm-package-inputs? #t) @@ -127,6 +139,28 @@ given VERSION with sha256 checksum HASH." '()) ,@inputs ("elm" ,elm) + ,@(cond + (implicit-elm-package-inputs? + ;; These are needed for elm-build-system even if not actually + ;; needed by the package being built. But "elm/json" is often + ;; present in practice, and "elm/core" always is: only add the + ;; default packages if no suitable inputs have been given + ;; explicitly. + (filter-map + (match-lambda + ((name get-default) + (cond + ((find (match-lambda + ((_ pkg . _) + (equal? name (guix-package->elm-name pkg)))) + inputs) + #f) + (else + `(,name ,(get-default)))))) + `(("elm/core" ,default-elm-core) + ("elm/json" ,default-elm-json)))) + (else + '())) ;; TODO: probably don't need most of (standard-packages) ,@(standard-packages))) (outputs outputs) From 00a5a07bb2af8b46169944ba772ad46d4e6e9172 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:53 -0400 Subject: [PATCH 143/363] http-client: Accept '#:headers' in 'http-fetched/cached'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Callers can supply alternative headers as with 'http-fetch'. * guix/http-client.scm (http-fetch/cached): Add '#:headers' argument. Signed-off-by: Ludovic Courtès --- guix/http-client.scm | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/guix/http-client.scm b/guix/http-client.scm index a367c41afa..699f5dfd57 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -296,6 +296,7 @@ returning." #f #f base64url-alphabet)))) (define* (http-fetch/cached uri #:key (ttl (%http-cache-ttl)) text? + (headers '((user-agent . "GNU Guile"))) (write-cache dump-port) (cache-miss (const #t)) (log-port (current-error-port)) @@ -307,6 +308,9 @@ Call WRITE-CACHE with the HTTP input port and the cache output port to write the data to cache. Call CACHE-MISS with URI just before fetching data from URI. +HEADERS is an alist of extra HTTP headers, to which cache-related headers are +added automatically as appropriate. + TIMEOUT specifies the timeout in seconds for connection establishment. Write information about redirects to LOG-PORT." @@ -316,12 +320,12 @@ Write information about redirects to LOG-PORT." (and cache-port (stat:mtime (stat cache-port)))) - (define headers - `((user-agent . "GNU Guile") - ,@(if cache-time - `((if-modified-since - . ,(time-utc->date (make-time time-utc 0 cache-time)))) - '()))) + (define extended-headers + (if cache-time + `((if-modified-since + . ,(time-utc->date (make-time time-utc 0 cache-time))) + ,@headers) + headers)) ;; Update the cache and return an input port. (guard (c ((http-get-error? c) @@ -332,7 +336,8 @@ Write information about redirects to LOG-PORT." (raise c)))) (let ((port (http-fetch uri #:text? text? #:log-port log-port - #:headers headers #:timeout timeout))) + #:headers extended-headers + #:timeout timeout))) (cache-miss uri) (mkdir-p (dirname file)) (when cache-port From ae533e3084b726188e78d1519f058e05c8388960 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:54 -0400 Subject: [PATCH 144/363] http-client: 'http-fetch/cached' converts strings to URIs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/http-client.scm (http-fetch/cached): Use 'string->uri' if URI is a string, as with 'http-fetch'. Signed-off-by: Ludovic Courtès --- guix/http-client.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/http-client.scm b/guix/http-client.scm index 699f5dfd57..9138a627ac 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -314,7 +314,10 @@ added automatically as appropriate. TIMEOUT specifies the timeout in seconds for connection establishment. Write information about redirects to LOG-PORT." - (let ((file (cache-file-for-uri uri))) + (let* ((uri (if (string? uri) + (string->uri uri) + uri)) + (file (cache-file-for-uri uri))) (define (update-cache cache-port) (define cache-time (and cache-port From 9a47fd56dd927995e68a2c894a237aed11aa32f7 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:55 -0400 Subject: [PATCH 145/363] import: json: Accept '#:http-fetch' in 'json-fetch'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For example, supplying 'http-fetch/cached' would enable caching. * guix/import/json.scm (json-fetch): Add '#:http-fetch' argument. Signed-off-by: Ludovic Courtès --- guix/import/json.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/guix/import/json.scm b/guix/import/json.scm index 0c98bb25b8..ae00ee929e 100644 --- a/guix/import/json.scm +++ b/guix/import/json.scm @@ -35,13 +35,16 @@ json->scheme-file)) (define* (json-fetch url + #:key + (http-fetch http-fetch) ;; Note: many websites returns 403 if we omit a ;; 'User-Agent' header. - #:key (headers `((user-agent . "GNU Guile") - (Accept . "application/json")))) + (headers `((user-agent . "GNU Guile") + (Accept . "application/json")))) "Return a representation of the JSON resource URL (a list or hash table), or #f if URL returns 403 or 404. HEADERS is a list of HTTP headers to pass in -the query." +the query. HTTP-FETCH is called to perform the request: for example, to +enable caching, supply 'http-fetch/cached'." (guard (c ((and (http-get-error? c) (let ((error (http-get-error-code c))) (or (= 403 error) From 903c82583e1cec4c9ff09d5895c5cc646c37b661 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:56 -0400 Subject: [PATCH 146/363] import: Add Elm importer. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/import/elm.scm, guix/scripts/import/elm.scm: New files. * Makefile.am (MODULES): Add them. * guix/scripts/import.scm (importers): Add "elm". * doc/guix.texi (Invoking guix import): Document Elm importer. * doc/contributing.texi (Elm Packages): Mention it. * tests/elm.scm ("(guix import elm)"): New test group. Signed-off-by: Ludovic Courtès --- Makefile.am | 2 + doc/contributing.texi | 4 +- doc/guix.texi | 25 +++++ guix/import/elm.scm | 210 ++++++++++++++++++++++++++++++++++++ guix/scripts/import.scm | 3 +- guix/scripts/import/elm.scm | 107 ++++++++++++++++++ tests/elm.scm | 171 +++++++++++++++++++++++++++++ 7 files changed, 519 insertions(+), 3 deletions(-) create mode 100644 guix/import/elm.scm create mode 100644 guix/scripts/import/elm.scm diff --git a/Makefile.am b/Makefile.am index 9ca92c407c..5a42bb90b2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -259,6 +259,7 @@ MODULES = \ guix/import/cran.scm \ guix/import/crate.scm \ guix/import/egg.scm \ + guix/import/elm.scm \ guix/import/elpa.scm \ guix/import/gem.scm \ guix/import/git.scm \ @@ -310,6 +311,7 @@ MODULES = \ guix/scripts/import/crate.scm \ guix/scripts/import/cran.scm \ guix/scripts/import/egg.scm \ + guix/scripts/import/elm.scm \ guix/scripts/import/elpa.scm \ guix/scripts/import/gem.scm \ guix/scripts/import/gnu.scm \ diff --git a/doc/contributing.texi b/doc/contributing.texi index 555b9bb961..2354874cb0 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -919,8 +919,8 @@ prefix unless the name would already begin with @code{elm-}. In many cases we can reconstruct an Elm package's upstream name heuristically, but, since conversion to a Guix-style name involves a loss of information, this is not always possible. Care should be taken to add the -@code{'upstream-name} property when necessary so that tools -will work correctly. The most notable scenarios +@code{'upstream-name} property when necessary so that @samp{guix import elm} +will work correctly (@pxref{Invoking guix import}). The most notable scenarios when explicitly specifying the upstream name is necessary are: @enumerate diff --git a/doc/guix.texi b/doc/guix.texi index 3eff660f0e..5a07c995b9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13157,6 +13157,31 @@ and generate package expressions for all those packages that are not yet in Guix. @end table +@item elm +@cindex elm +Import metadata from the Elm package repository +@uref{https://package.elm-lang.org, package.elm-lang.org}, as in this example: + +@example +guix import elm elm-explorations/webgl +@end example + +The Elm importer also allows you to specify a version string: + +@example +guix import elm elm-explorations/webgl@@1.1.3 +@end example + +Additional options include: + +@table @code +@item --recursive +@itemx -r +Traverse the dependency graph of the given upstream package recursively +and generate package expressions for all those packages that are not yet +in Guix. +@end table + @item opam @cindex OPAM @cindex OCaml diff --git a/guix/import/elm.scm b/guix/import/elm.scm new file mode 100644 index 0000000000..74902b8617 --- /dev/null +++ b/guix/import/elm.scm @@ -0,0 +1,210 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Philip McGrath +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix import elm) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 vlist) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) + #:use-module (guix utils) + #:use-module (guix base32) + #:use-module (guix hash) + #:use-module (guix http-client) + #:use-module (guix memoization) + #:use-module (guix diagnostics) + #:use-module (guix i18n) + #:use-module ((guix ui) #:select (display-hint)) + #:use-module ((guix build utils) + #:select ((package-name->name+version + . hyphen-package-name->name+version) + find-files + invoke)) + #:use-module (guix import utils) + #:use-module (guix git) + #:use-module (guix import json) + #:autoload (gcrypt hash) (hash-algorithm sha256) + #:use-module (json) + #:use-module (guix packages) + #:use-module (guix upstream) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system elm) + #:export (elm-recursive-import + %elm-package-registry + %current-elm-checkout + elm->guix-package)) + +(define %registry-url + ;; It is much nicer to fetch this small (< 40 KB gzipped) + ;; file once than to do many HTTP requests. + "https://package.elm-lang.org/all-packages") + +(define %elm-package-registry + ;; This is a parameter to support both testing and memoization. + ;; In pseudo-code, it has the contract: + ;; (parameter/c (-> json/c) + ;; (promise/c (vhash/c string? (listof string?)))) + ;; To set the parameter, provide a thunk that returns a value suitable + ;; as an argument to 'json->registry-vhash'. Accessing the parameter + ;; returns a promise wrapping the resulting vhash. + (make-parameter + (lambda () + (cond + ((json-fetch %registry-url #:http-fetch http-fetch/cached)) + (else + (raise (formatted-message + (G_ "error downloading Elm package registry from ~a") + %registry-url))))) + (lambda (thunk) + (delay (json->registry-vhash (thunk)))))) + +(define (json->registry-vhash jsobject) + "Parse the '(json)' module's representation of the Elm package registry to a +vhash mapping package names to lists of available versions, sorted from latest +to oldest." + (fold (lambda (entry vh) + (match entry + ((name . vec) + (vhash-cons name + (sort (vector->list vec) version>?) + vh)))) + vlist-null + jsobject)) + +(define (json->direct-dependencies jsobject) + "Parse the '(json)' module's representation of an 'elm.json' file's +'dependencies' or 'test-dependencies' field to a list of strings naming direct +dependencies, handling both the 'package' and 'application' grammars." + (cond + ;; *unspecified* + ((not (pair? jsobject)) + '()) + ;; {"type":"application"} + ((every (match-lambda + (((or "direct" "indirect") (_ . _) ...) + #t) + (_ + #f)) + jsobject) + (map car (or (assoc-ref jsobject "direct") '()))) + ;; {"type":"package"} + (else + (map car jsobject)))) + +;; handles both {"type":"package"} and {"type":"application"} +(define-json-mapping make-project-info project-info? + json->project-info + (dependencies project-info-dependencies + "dependencies" json->direct-dependencies) + (test-dependencies project-info-test-dependencies + "test-dependencies" json->direct-dependencies) + ;; "synopsis" and "license" may be missing for {"type":"application"} + (synopsis project-info-synopsis + "summary" (lambda (x) + (if (string? x) + x + ""))) + (license project-info-license + "license" (lambda (x) + (if (string? x) + (spdx-string->license x) + #f)))) + +(define %current-elm-checkout + ;; This is a parameter for testing purposes. + (make-parameter + (lambda (name version) + (define-values (checkout _commit _relation) + ;; Elm requires that packages use this very specific format + (update-cached-checkout (string-append "https://github.com/" name) + #:ref `(tag . ,version))) + checkout))) + +(define (make-elm-package-sexp name version) + "Return two values: the `package' s-expression for the Elm package with the +given NAME and VERSION, and a list of Elm packages it depends on." + (define checkout + ((%current-elm-checkout) name version)) + (define info + (call-with-input-file (string-append checkout "/elm.json") + json->project-info)) + (define dependencies + (project-info-dependencies info)) + (define test-dependencies + (project-info-test-dependencies info)) + (define guix-name + (elm->package-name name)) + (values + `(package + (name ,guix-name) + (version ,version) + (source (elm-package-origin + ,name + version ;; no , + (base32 + ,(bytevector->nix-base32-string + (file-hash* checkout + #:algorithm (hash-algorithm sha256) + #:recursive? #t))))) + (build-system elm-build-system) + ,@(maybe-propagated-inputs (map elm->package-name dependencies)) + ,@(maybe-inputs (map elm->package-name test-dependencies)) + (home-page ,(string-append "https://package.elm-lang.org/packages/" + name "/" version)) + (synopsis ,(project-info-synopsis info)) + (description + ;; Try to use the first paragraph of README.md (which Elm requires), + ;; or fall back to synopsis otherwise. + ,(beautify-description + (match (chunk-lines (call-with-input-file + (string-append checkout "/README.md") + read-lines)) + ((_ par . _) + (string-join par " ")) + (_ + (project-info-synopsis info))))) + ,@(let ((inferred-name (infer-elm-package-name guix-name))) + (if (equal? inferred-name name) + '() + `((properties '((upstream-name . ,name)))))) + (license ,(project-info-license info))) + (append dependencies test-dependencies))) + +(define elm->guix-package + (memoize + (lambda* (package-name #:key repo version) + "Fetch the metadata for PACKAGE-NAME, an Elm package registered at +package.elm.org, and return two values: the `package' s-expression +corresponding to that package (or #f on failure) and a list of Elm +dependencies." + (cond + ((vhash-assoc package-name (force (%elm-package-registry))) + => (match-lambda + ((_found latest . _versions) + (make-elm-package-sexp package-name (or version latest))))) + (else + (values #f '())))))) + +(define* (elm-recursive-import package-name #:optional version) + (recursive-import package-name + #:version version + #:repo->guix-package elm->guix-package + #:guix-name elm->package-name)) diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index 40fa6759ae..fa79f3211e 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2019 Ricardo Wurmus ;;; Copyright © 2021 Simon Tournier ;;; Copyright © 2021 Xinglu Chen +;;; Copyright © 2022 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,7 +81,7 @@ rather than \\n." (define importers '("gnu" "pypi" "cpan" "hackage" "stackage" "egg" "elpa" "gem" "go" "cran" "crate" "texlive" "json" "opam" - "minetest")) + "minetest" "elm")) (define (resolve-importer name) (let ((module (resolve-interface diff --git a/guix/scripts/import/elm.scm b/guix/scripts/import/elm.scm new file mode 100644 index 0000000000..68dcbf1070 --- /dev/null +++ b/guix/scripts/import/elm.scm @@ -0,0 +1,107 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Philip McGrath +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix scripts import elm) + #:use-module (guix ui) + #:use-module (guix utils) + #:use-module (guix scripts) + #:use-module (guix import elm) + #:use-module (guix scripts import) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-37) + #:use-module (srfi srfi-71) + #:use-module (ice-9 match) + #:use-module (ice-9 format) + #:export (guix-import-elm)) + + +;;; +;;; Command-line options. +;;; + +(define %default-options + '()) + +(define (show-help) + (display (G_ "Usage: guix import elm PACKAGE-NAME + +Import and convert the Elm package PACKAGE-NAME. Optionally, a version +can be specified after the arobas (@) character.\n")) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -r, --recursive import packages recursively")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define %options + ;; Specification of the command-line options. + (cons* (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix import elm"))) + (option '(#\r "recursive") #f #f + (lambda (opt name arg result) + (alist-cons 'recursive #t result))) + %standard-import-options)) + + +;;; +;;; Entry point. +;;; + +(define (guix-import-elm . args) + (define (parse-options) + ;; Return the alist of option values. + (parse-command-line args %options (list %default-options) + #:build-options? #f)) + + (let* ((opts (parse-options)) + (args (filter-map (match-lambda + (('argument . value) + value) + (_ #f)) + (reverse opts)))) + (match args + ((spec) + (with-error-handling + (let ((name version (package-name->name+version spec))) + (if (assoc-ref opts 'recursive) + ;; Recursive import + (map (match-lambda + ((and ('package ('name name) . rest) pkg) + `(define-public ,(string->symbol name) + ,pkg)) + (_ #f)) + (elm-recursive-import name version)) + ;; Single import + (let ((sexp (elm->guix-package name #:version version))) + (unless sexp + (leave (G_ "failed to download meta-data for package '~a'~%") + name)) + sexp))))) + (() + (leave (G_ "too few arguments~%"))) + ((many ...) + (leave (G_ "too many arguments~%")))))) diff --git a/tests/elm.scm b/tests/elm.scm index 96f958f060..c30623da03 100644 --- a/tests/elm.scm +++ b/tests/elm.scm @@ -18,6 +18,13 @@ (define-module (test-elm) #:use-module (guix build-system elm) + #:use-module (guix import elm) + #:use-module (guix base32) + #:use-module (guix hash) + #:use-module (guix utils) + #:autoload (gcrypt hash) (hash-algorithm sha256) + #:use-module (json) + #:use-module (ice-9 match) #:use-module (srfi srfi-64)) (test-begin "elm") @@ -94,4 +101,168 @@ (test-not-inferred "gcc-toolchain") (test-not-inferred "font-adobe-source-sans-pro"))) +(define test-package-registry-json + ;; we intentionally list versions in different orders here + "{ + \"elm/core\": [\"1.0.0\", \"1.0.1\", \"1.0.2\", \"1.0.3\", \"1.0.4\"], + \"elm-guix/demo\": [\"2.0.0\", \"3.0.0\", \"1.0.0\"] +}") + +(define test-elm-core-json + "{ + \"type\": \"package\", + \"name\": \"elm/core\", + \"summary\": \"Elm's standard libraries\", + \"license\": \"BSD-3-Clause\", + \"version\": \"1.0.4\", + \"exposed-modules\": { + \"Primitives\": [ + \"Basics\", + \"String\", + \"Char\", + \"Bitwise\", + \"Tuple\" + ], + \"Collections\": [ + \"List\", + \"Dict\", + \"Set\", + \"Array\" + ], + \"Error Handling\": [ + \"Maybe\", + \"Result\" + ], + \"Debug\": [ + \"Debug\" + ], + \"Effects\": [ + \"Platform.Cmd\", + \"Platform.Sub\", + \"Platform\", + \"Process\", + \"Task\" + ] + }, + \"elm-version\": \"0.19.0 <= v < 0.20.0\", + \"dependencies\": {}, + \"test-dependencies\": {} +}") + +(define test-elm-core-readme + "# Core Libraries + +Every Elm project needs this package! + +It provides **basic functionality** like addition and subtraction as well as +**data structures** like lists, dictionaries, and sets.") + +(define test-elm-guix-demo-json + "{ + \"type\": \"package\", + \"name\": \"elm-guix/demo\", + \"summary\": \"A test for `(guix import elm)`\", + \"license\": \"GPL-3.0-or-later\", + \"version\": \"3.0.0\", + \"exposed-modules\": [ + \"Guix.Demo\" + ], + \"elm-version\": \"0.19.0 <= v < 0.20.0\", + \"dependencies\": { + \"elm/core\": \"1.0.0 <= v < 2.0.0\" + }, + \"test-dependencies\": { + \"elm/json\": \"1.0.0 <= v < 2.0.0\" + } +}") + +(define test-elm-guix-demo-readme + ;; intentionally left blank + "") + +(define (directory-sha256 directory) + "Returns the string representing the hash of DIRECTORY as would be used in a +package definition." + (bytevector->nix-base32-string + (file-hash* directory + #:algorithm (hash-algorithm sha256) + #:recursive? #t))) + +(test-group "(guix import elm)" + (call-with-temporary-directory + (lambda (dir) + ;; Initialize our fake git checkouts. + (define elm-core-dir + (string-append dir "/test-elm-core-1.0.4")) + (define elm-guix-demo-dir + (string-append dir "/test-elm-guix-demo-3.0.0")) + (for-each (match-lambda + ((dir json readme) + (mkdir dir) + (with-output-to-file (string-append dir "/elm.json") + (lambda () + (display json))) + (with-output-to-file (string-append dir "/README.md") + (lambda () + (display readme))))) + `((,elm-core-dir ,test-elm-core-json ,test-elm-core-readme) + (,elm-guix-demo-dir + ,test-elm-guix-demo-json + ,test-elm-guix-demo-readme))) + ;; Replace network resources with sample data. + (parameterize ((%elm-package-registry + (lambda () + (json-string->scm test-package-registry-json))) + (%current-elm-checkout + (lambda (name version) + (match (list name version) + (("elm/core" "1.0.4") + elm-core-dir) + (("elm-guix/demo" "3.0.0") + elm-guix-demo-dir))))) + (test-assert "(elm->guix-package \"elm/core\")" + (match (elm->guix-package "elm/core") + (`(package + (name "elm-core") + (version "1.0.4") + (source (elm-package-origin + "elm/core" + version + (base32 ,(? string? hash)))) + (build-system elm-build-system) + (home-page + "https://package.elm-lang.org/packages/elm/core/1.0.4") + (synopsis "Elm's standard libraries") + (description "Every Elm project needs this package!") + (license license:bsd-3)) + (equal? (directory-sha256 elm-core-dir) + hash)) + (x + (raise-exception x)))) + (test-assert "(elm-recursive-import \"elm-guix/demo\")" + (match (elm-recursive-import "elm-guix/demo") + (`((package + (name "elm-guix-demo") + (version "3.0.0") + (source (elm-package-origin + "elm-guix/demo" + version + (base32 ,(? string? hash)))) + (build-system elm-build-system) + (propagated-inputs + ,'`(("elm-core" ,elm-core))) + (inputs + ,'`(("elm-json" ,elm-json))) + (home-page + "https://package.elm-lang.org/packages/elm-guix/demo/3.0.0") + (synopsis "A test for `(guix import elm)`") + (description + "This package provides a test for `(guix import elm)`") + (properties '((upstream-name . "elm-guix/demo"))) + (license license:gpl3+))) + (equal? (directory-sha256 elm-guix-demo-dir) + hash)) + (x + (raise-exception x)))))))) + (test-end "elm") From 205457f814a9fe3e997777acb699d611472288d2 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:57 -0400 Subject: [PATCH 147/363] gnu: Add elm-virtual-dom. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-virtual-dom): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 4ad3a000cb..c2ccd6c557 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -158,3 +158,24 @@ such as @command{elm make} and @command{elm repl}.") (delete 'build) (delete 'validate-compiled)) #:implicit-elm-package-inputs? #f))))) + +(define-public elm-virtual-dom + (package + (name "elm-virtual-dom") + (version "1.0.3") + (source + (elm-package-origin + "elm/virtual-dom" + version + (base32 "1bjyyws7l0qvgp4ixzaimwriq86ncx5bvrzaksvjx3pv7bmkbx69"))) + (build-system elm-build-system) + (propagated-inputs (list elm-json elm-core)) + (home-page "https://package.elm-lang.org/packages/elm/virtual-dom/1.0.2") + (synopsis + "Elm's low-level virtual DOM implementation") + (description + "This package provides a virtual DOM implementation that backs Elm's +core libraries for HTML and SVG. You should almost certainly use those +higher-level libraries directly.") + (properties '((upstream-name . "elm/virtual-dom"))) + (license license:bsd-3))) From 7ecc85525491986256af62febe3d154ebec9bc05 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:58 -0400 Subject: [PATCH 148/363] gnu: Add elm-html. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-html): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index c2ccd6c557..98b60c48f7 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -179,3 +179,22 @@ core libraries for HTML and SVG. You should almost certainly use those higher-level libraries directly.") (properties '((upstream-name . "elm/virtual-dom"))) (license license:bsd-3))) + +(define-public elm-html + (package + (name "elm-html") + (version "1.0.0") + (source + (elm-package-origin + "elm/html" + version + (base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-virtual-dom + elm-json + elm-core)) + (home-page "https://package.elm-lang.org/packages/elm/html/1.0.0") + (synopsis "Fast HTML, rendered with virtual DOM diffing") + (description "This package provides Elm's HTML rendering library.") + (license license:bsd-3))) From db6b8d5e2c705b1e69815b2edae4117c76c9b2de Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:10:59 -0400 Subject: [PATCH 149/363] gnu: Add elm-svg. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-svg): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 98b60c48f7..5ba6743399 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -198,3 +198,25 @@ higher-level libraries directly.") (synopsis "Fast HTML, rendered with virtual DOM diffing") (description "This package provides Elm's HTML rendering library.") (license license:bsd-3))) + +(define-public elm-svg + (package + (name "elm-svg") + (version "1.0.1") + (source + (elm-package-origin + "elm/svg" + version + (base32 "1iqsc3p129j56lp1y3z3mfc6x1shvrmx3pkhri2777ylhyw90qvl"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-html + elm-virtual-dom + elm-json + elm-core)) + (home-page "https://package.elm-lang.org/packages/elm/svg/1.0.1") + (synopsis "Fast SVG, rendered with virtual DOM diffing") + (description + "This package provides Elm's @acronym{SVG, Scalable Vector Graphics} +library.") + (license license:bsd-3))) From c69d91a1b58ef21bbb59ac764337115b7d3b0963 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:00 -0400 Subject: [PATCH 150/363] gnu: Add elm-time. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-time): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 5ba6743399..2b9ee3594a 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -220,3 +220,22 @@ higher-level libraries directly.") "This package provides Elm's @acronym{SVG, Scalable Vector Graphics} library.") (license license:bsd-3))) + +(define-public elm-time + (package + (name "elm-time") + (version "1.0.0") + (source + (elm-package-origin + "elm/time" + version + (base32 "0wqa2vhl1zf8z0j2yd3yjwfhr0dydfns43bbzll3k4rhnjadxr1l"))) + (build-system elm-build-system) + (propagated-inputs (list elm-core)) + (home-page "https://package.elm-lang.org/packages/elm/time/1.0.0") + (synopsis + "POSIX time and time zones in Elm") + (description + "This package provides an Elm library for working with POSIX times, time +zones, formatting, and the clock.") + (license license:bsd-3))) From 31ee69721ae33ae883c8adbfd4ac0663ccad4fea Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:01 -0400 Subject: [PATCH 151/363] gnu: Add elm-url. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-url): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 2b9ee3594a..d7d11e0d91 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -239,3 +239,31 @@ library.") "This package provides an Elm library for working with POSIX times, time zones, formatting, and the clock.") (license license:bsd-3))) + +(define-public elm-url + (package + (name "elm-url") + (version "1.0.0") + (source + (elm-package-origin + "elm/url" + version + (base32 "1f2ij4i7zmijnj2i50qf19lpkr14bhms8dkq029inb5mydi9f8gs"))) + (build-system elm-build-system) + (propagated-inputs (list elm-core)) + (home-page "https://package.elm-lang.org/packages/elm/url/1.0.0") + (synopsis + "Create and parse URLs in Elm") + (description + "This package helps you: + +@enumerate +@item +build new URLs; and + +@item +parse existing URLs into nice Elm data structures. +@end enumerate + +Use it for HTTP and for @dfn{routing} in @acronym{SPAs, single-page apps}.") + (license license:bsd-3))) From 951ad86e816d23224e64c46632dc0f06aeb09bec Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:02 -0400 Subject: [PATCH 152/363] gnu: Add elm-browser. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-browser): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index d7d11e0d91..714a49a3dd 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -267,3 +267,28 @@ parse existing URLs into nice Elm data structures. Use it for HTTP and for @dfn{routing} in @acronym{SPAs, single-page apps}.") (license license:bsd-3))) + +(define-public elm-browser + (package + (name "elm-browser") + (version "1.0.2") + (source + (elm-package-origin + "elm/browser" + version + (base32 "0863nw2hhbpm3s03lm1imi5x28wwknzrwg2p79s5mydgvdvgwjf0"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-virtual-dom + elm-url + elm-time + elm-json + elm-html + elm-core)) + (home-page "https://package.elm-lang.org/packages/elm/browser/1.0.2") + (synopsis + "Run Elm in browsers") + (description + "This package allows you to create Elm programs that run in browsers, +with access to browser history for @acronym{SPAs, single-page apps}.") + (license license:bsd-3))) From dfae053d73a5f0c45af86658379c52e3d70dcff7 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:03 -0400 Subject: [PATCH 153/363] gnu: Add elm-bytes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-bytes): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 714a49a3dd..ac10bd8672 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -292,3 +292,21 @@ Use it for HTTP and for @dfn{routing} in @acronym{SPAs, single-page apps}.") "This package allows you to create Elm programs that run in browsers, with access to browser history for @acronym{SPAs, single-page apps}.") (license license:bsd-3))) + +(define-public elm-bytes + (package + (name "elm-bytes") + (version "1.0.8") + (source + (elm-package-origin + "elm/bytes" + version + (base32 "0n411j2cyz9m241q6vszfzpq3fraradwal5m0gigp2505mdfpz3x"))) + (build-system elm-build-system) + (propagated-inputs (list elm-core)) + (home-page "https://package.elm-lang.org/packages/elm/bytes/1.0.8") + (synopsis "Work with sequences of bytes in Elm") + (description "This package provides an Elm library for working with +densely packed sequences of bytes, such as @code{ArrayBuffer}, typed arrays, +and @code{DataView}.") + (license license:bsd-3))) From 324b404804d46e95a37bad778e8aae90d8d575fc Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:04 -0400 Subject: [PATCH 154/363] gnu: Add elm-file. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-file): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index ac10bd8672..3bf3b66a6e 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -310,3 +310,24 @@ with access to browser history for @acronym{SPAs, single-page apps}.") densely packed sequences of bytes, such as @code{ArrayBuffer}, typed arrays, and @code{DataView}.") (license license:bsd-3))) + +(define-public elm-file + (package + (name "elm-file") + (version "1.0.5") + (source + (elm-package-origin + "elm/file" + version + (base32 "0aimgicrdpys0v89m2wjx413561zil14cczjh6mkn9jcgckx6yng"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-time + elm-json + elm-core + elm-bytes)) + (home-page "https://package.elm-lang.org/packages/elm/file/1.0.5") + (synopsis "Work with files in Elm") + (description "This package enables Elm programs to select files, download +files, and work with file content.") + (license license:bsd-3))) From 2ea11208f24a23d5aa9dd4b8639f0eec44c86705 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:05 -0400 Subject: [PATCH 155/363] gnu: Add elm-http. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-http): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 3bf3b66a6e..68636c3192 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -331,3 +331,24 @@ and @code{DataView}.") (description "This package enables Elm programs to select files, download files, and work with file content.") (license license:bsd-3))) + +(define-public elm-http + (package + (name "elm-http") + (version "2.0.0") + (source + (elm-package-origin + "elm/http" + version + (base32 "0mfbz0lkfidmq5xpv5csw8943q0yrpvj0rwd2vb0gc8rbsfc9dg8"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-json + elm-file + elm-core + elm-bytes)) + (home-page "https://package.elm-lang.org/packages/elm/http/2.0.0") + (synopsis "Make HTTP requests in Elm") + (description "This package enables Elm programs to make HTTP requests and +talk to servers.") + (license license:bsd-3))) From e46c530d506cff05138c44f0516d5c02a3664684 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:06 -0400 Subject: [PATCH 156/363] gnu: Add elm-parser. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-parser): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 68636c3192..4120fcaaf4 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -352,3 +352,23 @@ files, and work with file content.") (description "This package enables Elm programs to make HTTP requests and talk to servers.") (license license:bsd-3))) + +(define-public elm-parser + (package + (name "elm-parser") + (version "1.1.0") + (source + (elm-package-origin + "elm/parser" + version + (base32 "06xx29rmagc5r45qfpvrd393lz83ylngidfp08432f1qc8y6r3lh"))) + (build-system elm-build-system) + (propagated-inputs (list elm-core)) + (home-page "https://package.elm-lang.org/packages/elm/parser/1.1.0") + (synopsis + "Parsing library for Elm") + (description + "Regular expressions are quite confusing and difficult to use. This +library provides a coherent alternative that handles more cases and produces +clearer code. It is focused on simplicity and great error messages.") + (license license:bsd-3))) From 1e0e94c35e5f0d803f5ef2119338fbe0370f978d Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:07 -0400 Subject: [PATCH 157/363] gnu: Add elm-project-metadata-utils. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-project-metadata-utils): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 4120fcaaf4..48594613f3 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -372,3 +372,28 @@ talk to servers.") library provides a coherent alternative that handles more cases and produces clearer code. It is focused on simplicity and great error messages.") (license license:bsd-3))) + +(define-public elm-project-metadata-utils + (package + (name "elm-project-metadata-utils") + (version "1.0.2") + (source + (elm-package-origin + "elm/project-metadata-utils" + version + (base32 "1wj7chfy4knwwyc3k0hy431c80hs7hc686qsr34ayn8gip73x2jj"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-parser + elm-json + elm-core)) + (home-page + "https://package.elm-lang.org/packages/elm/project-metadata-utils/1.0.2") + (synopsis "Work with @file{elm.json} and @file{docs.json} files in Elm") + (description + "This package is meant for people creating Elm tooling, like editor +plugins. If you just want to make stuff in Elm, there is nothing here for +you.") + (properties '((upstream-name . "elm/project-metadata-utils"))) + (license license:bsd-3))) + From 796045b2c2989761be2122f24528853171d58110 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:08 -0400 Subject: [PATCH 158/363] gnu: Add elm-explorations-markdown. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-explorations-markdown): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 48594613f3..8f92eea041 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -397,3 +397,22 @@ you.") (properties '((upstream-name . "elm/project-metadata-utils"))) (license license:bsd-3))) +(define-public elm-explorations-markdown + (package + (name "elm-explorations-markdown") + (version "1.0.0") + (source + (elm-package-origin + "elm-explorations/markdown" + version + (base32 "1f57ikdpbbhchcpwj32216gxjxijrc3sdpg27s1cgzia9pnkqk6p"))) + (build-system elm-build-system) + (propagated-inputs (list elm-html elm-core)) + (home-page + "https://package.elm-lang.org/packages/elm-explorations/markdown/1.0.0") + (synopsis "Fast markdown parsing and rendering in Elm") + (description + "This package is for markdown parsing and rendering in Elm. It is based +on the @code{marked} project, which focuses on speed.") + (license license:bsd-3))) + From 9885c2fd07a26a48a40e0fda859a1c9ae0b3e973 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:09 -0400 Subject: [PATCH 159/363] gnu: elm: Support 'elm reactor'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm): Rename to ... (elm-sans-reactor): ... this new variable. [synopsis, description]: Tweak. (elm): New variable. * guix/build-system/elm.scm (default-elm): Use elm-sans-reactor. * doc/guix.texi (Build Systems)[elm-build-system]: Update accordingly. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 7 ++-- gnu/packages/elm.scm | 75 +++++++++++++++++++++++++++++++++++++-- guix/build-system/elm.scm | 2 +- 3 files changed, 79 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 5a07c995b9..27d0c69dad 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -8724,7 +8724,7 @@ build procedure for @url{https://elm-lang.org, Elm} packages similar to @samp{elm install}. The build system adds an Elm compiler package to the set of inputs. The -default compiler package (currently @code{elm}) can be overridden +default compiler package (currently @code{elm-sans-reactor}) can be overridden using the @code{#:elm} argument. Additionally, Elm packages needed by the build system itself are added as implicit inputs if they are not already present: to suppress this behavior, use the @@ -8747,7 +8747,10 @@ The build system is focused on @dfn{packages} in the Elm sense of the word: Elm @dfn{projects} which declare @code{@{ "type": "package" @}} in their @file{elm.json} files. Using @code{elm-build-system} to build Elm @dfn{applications} (which declare @code{@{ "type": "application" @}}) is -possible, but requires ad-hoc modifications to the build phases. +possible, but requires ad-hoc modifications to the build phases. For +an example, see the definition of +the @code{elm} package itself (because the front-end for the +@samp{elm reactor} command is an Elm application). @item Elm supports multiple versions of a package coexisting simultaneously under diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 8f92eea041..d515d68e8f 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -40,9 +40,9 @@ ;; `elm reactor` exit with a useful error message if they aren't there. (define %reactor-root-base "share/elm/reactor-") -(define-public elm +(define-public elm-sans-reactor (package - (name "elm") + (name "elm-sans-reactor") (version "0.19.1") (source (origin @@ -93,6 +93,77 @@ ghc-vector ghc-zip-archive)) (home-page "https://elm-lang.org") + (synopsis "Minimal variant of @command{elm}") + (description + "This package provides a version of the Elm compiler without support for +the @command{elm reactor} development command.") + (license license:bsd-3))) + +(define-public elm + (package + (name "elm") + (version (package-version elm-sans-reactor)) + (source (package-source elm-sans-reactor)) + (native-inputs (list elm-sans-reactor)) + (inputs (list elm-sans-reactor + elm-browser + elm-core + elm-html + elm-http + elm-json + elm-project-metadata-utils + elm-svg + elm-explorations-markdown)) + (build-system elm-build-system) + (arguments + (list + #:modules + `((srfi srfi-26) + ,@%elm-default-modules) + #:phases + #~(modify-phases %standard-phases + (delete 'stage) + (replace 'configure + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (with-directory-excursion "reactor" + (patch-application-dependencies)))) + (replace 'build + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (with-directory-excursion "reactor" + (invoke (search-input-file (or native-inputs inputs) + "/bin/elm") + "make" + "--optimize" + "src/NotFound.elm" + "src/Errors.elm" + "src/Index.elm")))) + (replace 'install + (lambda* (#:key inputs #:allow-other-keys) + (let* ((out-dir #$output) + (bin-dir (string-append out-dir "/bin")) + (reactor-dir (string-append out-dir + "/" + #$%reactor-root-base + (getenv "GUIX_ELM_VERSION"))) + (reactor-subdir (string-append reactor-dir "/_elm"))) + ;; We can't use a symlink here because Haskell's + ;; `getExecutablePath` follows all symlinks. + ;; Guix can make it a hard link later. + (install-file (search-input-file inputs ;; NOT native-inputs + "/bin/elm") + bin-dir) + (install-file "reactor/assets/favicon.ico" reactor-dir) + (for-each (cut install-file <> reactor-subdir) + '("reactor/elm.js" + "reactor/assets/styles.css" + ;; TODO: these are source-code-pro v1.017 and + ;; source-sans-pro v1.050: there may be breaking + ;; changes in Guix's existing + ;; font-adobe-source-{code,sans}-pro packages + "reactor/assets/source-code-pro.ttf" + "reactor/assets/source-sans-pro.ttf"))))) + (delete 'validate-compiled)))) + (home-page "https://elm-lang.org") (synopsis "Programming language for Web applications") (description "Elm is a statically-typed, purely-functional programming language for diff --git a/guix/build-system/elm.scm b/guix/build-system/elm.scm index 293bcbfb64..f5321f811b 100644 --- a/guix/build-system/elm.scm +++ b/guix/build-system/elm.scm @@ -101,7 +101,7 @@ given VERSION with sha256 checksum HASH." "Return the default Elm package for builds." ;; Lazily resolve the binding to avoid a circular dependency. (let ((elm (resolve-interface '(gnu packages elm)))) - (module-ref elm 'elm))) + (module-ref elm 'elm-sans-reactor))) (define (default-elm-core) "Return the default elm-core package." From b6c0f18dee39d0adb2b8e7019e3d7cc5be9f933d Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:10 -0400 Subject: [PATCH 160/363] gnu: Add elm-todomvc. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-todomvc): New variable. * doc/guix.texi (Build Systems)[elm-build-system]: Mention it. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 4 ++-- gnu/packages/elm.scm | 53 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 27d0c69dad..9cdee15d55 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -8748,7 +8748,7 @@ Elm @dfn{projects} which declare @code{@{ "type": "package" @}} in their @file{elm.json} files. Using @code{elm-build-system} to build Elm @dfn{applications} (which declare @code{@{ "type": "application" @}}) is possible, but requires ad-hoc modifications to the build phases. For -an example, see the definition of +examples, see the definitions of the @code{elm-todomvc} example application and the @code{elm} package itself (because the front-end for the @samp{elm reactor} command is an Elm application). @@ -8757,7 +8757,7 @@ Elm supports multiple versions of a package coexisting simultaneously under @env{ELM_HOME}, but this does not yet work well with @code{elm-build-system}. This limitation primarily affects Elm applications, because they specify exact versions for their dependencies, whereas Elm packages specify supported -version ranges. As a workaround, you can use +version ranges. As a workaround, the example applications mentioned above use the @code{patch-application-dependencies} procedure provided by @code{(guix build elm-build-system)} to rewrite their @file{elm.json} files to refer to the package versions actually present in the build environment. diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index d515d68e8f..9d3a58bcb5 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -487,3 +487,56 @@ you.") on the @code{marked} project, which focuses on speed.") (license license:bsd-3))) +(define-public elm-todomvc + (let ((commit "f236e7e56941c7705aba6e42cb020ff515fe3290") + (revision "1")) + (package + (name "elm-todomvc") + (version (git-version "1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/evancz/elm-todomvc") + (commit commit))) + (sha256 + (base32 "0g37bglzshkf79s4n7aq9ib44h5qn8ng7n72sh2xslgd20h05nfw")) + (file-name (git-file-name name version)))) + (inputs (list elm-browser elm-core elm-html elm-json)) + (build-system elm-build-system) + (arguments + (list + #:modules + `((srfi srfi-26) + ,@%elm-default-modules) + #:phases + #~(modify-phases %standard-phases + (delete 'stage) + (replace 'configure + patch-application-dependencies) + (replace 'build + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (invoke (search-input-file (or native-inputs inputs) + "/bin/elm") + "make" + "src/Main.elm" + "--output=elm.js"))) + (replace 'install + (lambda args + (let* ((out-dir #$output) + (dest-dir + (string-append out-dir + "/share/" + (strip-store-file-name out-dir)))) + (for-each (cut install-file <> dest-dir) + `("elm.js" + "index.html" + "style.css" + "README.md"))))) + (delete 'validate-compiled)))) + (home-page "https://github.com/evancz/elm-todomvc") + (synopsis "TodoMVC in Elm") + (description "This is the official Elm implementation of +@url{https://todomvc.com,TodoMVC}, a simple to-do--list application used to +compare front-end web frameworks.") + (license license:bsd-3)))) From 955638d8acf65f6296f6f5771508fd13f494a59a Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:11 -0400 Subject: [PATCH 161/363] gnu: Add elm-debois-elm-dom. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-debois-elm-dom): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 9d3a58bcb5..d17a3f2487 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -540,3 +540,23 @@ on the @code{marked} project, which focuses on speed.") @url{https://todomvc.com,TodoMVC}, a simple to-do--list application used to compare front-end web frameworks.") (license license:bsd-3)))) + +(define-public elm-debois-elm-dom + (package + (name "elm-debois-elm-dom") + (version "1.3.0") + (source + (elm-package-origin + "debois/elm-dom" + version + (base32 "0w4z4w6ip118lk5g80w6mbbfxhfmivbmdkdm6wsmk63x85gscmqx"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-json elm-html elm-core)) + (home-page "https://package.elm-lang.org/packages/debois/elm-dom/1.3.0") + (synopsis "DOM traversal for Elm event-handlers") + (description + "This package provides a library for reading information off the DOM. +Use this if you need to discover geometry information (width, position, etc.) +of rendered elements.") + (license license:asl2.0))) From 4522741c1d5746d159b82f6203735b80b8f88ab8 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:12 -0400 Subject: [PATCH 162/363] gnu: Add elm-random. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-random): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index d17a3f2487..c2e4b65b77 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -560,3 +560,21 @@ compare front-end web frameworks.") Use this if you need to discover geometry information (width, position, etc.) of rendered elements.") (license license:asl2.0))) + +(define-public elm-random + (package + (name "elm-random") + (version "1.0.0") + (source + (elm-package-origin + "elm/random" + version + (base32 "0z0znkwfs35xiabk6pa9yqwsq03jssgd7jmsj1kk000mikfm7f39"))) + (build-system elm-build-system) + (propagated-inputs (list elm-time elm-core)) + (home-page "https://package.elm-lang.org/packages/elm/random/1.0.0") + (synopsis "Generate random numbers and values in Elm") + (description + "Need to generate random numbers? How about random game boards? Or +random positions in 3D space? This is the package for you!") + (license license:bsd-3))) From 297ae57bed14abc5f949f36e6b98bad0f5a86993 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:13 -0400 Subject: [PATCH 163/363] gnu: Add elm-explorations-test. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-explorations-test): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index c2e4b65b77..edd13a0b8a 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -578,3 +578,28 @@ of rendered elements.") "Need to generate random numbers? How about random game boards? Or random positions in 3D space? This is the package for you!") (license license:bsd-3))) + +(define-public elm-explorations-test + (package + (name "elm-explorations-test") + (version "1.2.2") + (source + (elm-package-origin + "elm-explorations/test" + version + (base32 "0kw32x0lr6nh5j9xk56vgg7x7c705g38grghh7cdp49frwdd6w3l"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-virtual-dom + elm-random + elm-json + elm-html + elm-core)) + (home-page + "https://package.elm-lang.org/packages/elm-explorations/test/1.2.2") + (synopsis "Testing framework for Elm") + (description "This package enables writing unit and fuzz tests for Elm +code. To actually run the tests, you need the command-line tool from +@url{https://github.com/rtfeldman/node-test-runner}, which has not yet been +packaged for Guix.") + (license license:bsd-3))) From 34f4542154558388810258e49b7fe1c91bff9253 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:14 -0400 Subject: [PATCH 164/363] gnu: Add elm-danhandrea-elm-date-format. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-danhandrea-elm-date-format): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index edd13a0b8a..2e37f4c5fc 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -603,3 +603,22 @@ code. To actually run the tests, you need the command-line tool from @url{https://github.com/rtfeldman/node-test-runner}, which has not yet been packaged for Guix.") (license license:bsd-3))) + +(define-public elm-danhandrea-elm-date-format + (package + (name "elm-danhandrea-elm-date-format") + (version "2.0.1") + (source + (elm-package-origin + "danhandrea/elm-date-format" + version + (base32 "03mglzyywij5sm56m7q2jhhbsv7f9rdirgwmq0q41ghir81bzpv6"))) + (build-system elm-build-system) + (propagated-inputs (list elm-time elm-core)) + (inputs (list elm-explorations-test)) + (home-page + "https://package.elm-lang.org/packages/danhandrea/elm-date-format/2.0.1") + (synopsis "Date formatting for Elm") + (description "This package enhances @code{elm/time} with support for +format strings and internationalization of dates.") + (license license:bsd-3))) From 4d50052cf3417c77d878a75c491151fc6eaa9efb Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:15 -0400 Subject: [PATCH 165/363] gnu: Add elm-danhandrea-elm-time-extra. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-danhandrea-elm-time-extra): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 2e37f4c5fc..69e60cd3bd 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -622,3 +622,24 @@ packaged for Guix.") (description "This package enhances @code{elm/time} with support for format strings and internationalization of dates.") (license license:bsd-3))) + +(define-public elm-danhandrea-elm-time-extra + (package + (name "elm-danhandrea-elm-time-extra") + (version "1.1.0") + (source + (elm-package-origin + "danhandrea/elm-time-extra" + version + (base32 "0z13q8x148d5amcc89f846yzql89n9gyan8fr48y91dhhn7vxibf"))) + (build-system elm-build-system) + (propagated-inputs (list elm-time elm-core)) + (inputs + (list elm-explorations-test + elm-danhandrea-elm-date-format)) + (home-page + "https://package.elm-lang.org/packages/danhandrea/elm-time-extra/1.1.0") + (synopsis "Extra utilities for POSIX time in Elm") + (description "This package enhances @code{elm/time} with extra utilities +for working with POSIX times.") + (license license:bsd-3))) From f0b7c8dca0fd42481734f0c19df4fa41570ea446 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:16 -0400 Subject: [PATCH 166/363] gnu: Add elm-justinmimbs-date. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-justinmimbs-date): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 69e60cd3bd..e92a2e222f 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -643,3 +643,24 @@ format strings and internationalization of dates.") (description "This package enhances @code{elm/time} with extra utilities for working with POSIX times.") (license license:bsd-3))) + +(define-public elm-justinmimbs-date + (package + (name "elm-justinmimbs-date") + (version "4.0.1") + (source + (elm-package-origin + "justinmimbs/date" + version + (base32 "13mf97137f0yb3gx1mxbya2y70qciah4hp5bcnpj8166vgzb7l3l"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-time + elm-parser + elm-core)) + (home-page "https://package.elm-lang.org/packages/justinmimbs/date/4.0.1") + (synopsis "Work with dates without times or zones in Elm") + (description + "This Elm package provides a simple @code{Date} type for working with +dates without times or zones.") + (license license:bsd-3))) From 0fbf000f6835218a8ffcd79628f2f5a9711f947e Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:17 -0400 Subject: [PATCH 167/363] gnu: Add elm-justinmimbs-time-extra. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-justinmimbs-time-extra): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index e92a2e222f..45f137dcdc 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -664,3 +664,25 @@ for working with POSIX times.") "This Elm package provides a simple @code{Date} type for working with dates without times or zones.") (license license:bsd-3))) + +(define-public elm-justinmimbs-time-extra + (package + (name "elm-justinmimbs-time-extra") + (version "1.1.1") + (source + (elm-package-origin + "justinmimbs/time-extra" + version + (base32 "1gmgvzlpzkysvm86d0md75ply10pz28bg699m4763frss0jvrngh"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-justinmimbs-date + elm-time + elm-core)) + (home-page + "https://package.elm-lang.org/packages/justinmimbs/time-extra/1.1.1") + (synopsis "Extra functions for POSIX times in Elm") + (description + "This package provides extra functions for working with @code{Posix} +times from @code{elm/time}.") + (license license:bsd-3))) From 71841da6f7b1186bcaa43b12c30b533e2cecf966 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:18 -0400 Subject: [PATCH 168/363] gnu: Add elm-myrho-elm-round. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-myrho-elm-round): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index 45f137dcdc..a4fb99625a 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -686,3 +686,24 @@ dates without times or zones.") "This package provides extra functions for working with @code{Posix} times from @code{elm/time}.") (license license:bsd-3))) + +(define-public elm-myrho-elm-round + (package + (name "elm-myrho-elm-round") + (version "1.0.4") + (source + (elm-package-origin + "myrho/elm-round" + version + (base32 "0y3j43wr815cvwz5310zalnqzpg3hw8h127zjjlf6x8ynapc2mdb"))) + (build-system elm-build-system) + (propagated-inputs (list elm-core)) + (inputs (list elm-explorations-test)) + (home-page "https://package.elm-lang.org/packages/myrho/elm-round/1.0.4") + (synopsis "Flexible rounding of Elm @code{Float}s") + (description + "This library converts a @code{Float} to a @code{String} with ultimate +control how many digits after the decimal point are shown and how the +remaining digits are rounded. It rounds, floors and ceils the @dfn{common} +way (i.e. half up) or the @dfn{commerical} way (ie. half away from zero).") + (license license:bsd-3))) From 1b8d1f7d48f1d4cfb44fe1163e76609c8ee8e722 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:19 -0400 Subject: [PATCH 169/363] gnu: Add elm-ryannhg-date-format. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-ryannhg-date-format): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index a4fb99625a..a9b24b3b00 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -707,3 +707,25 @@ control how many digits after the decimal point are shown and how the remaining digits are rounded. It rounds, floors and ceils the @dfn{common} way (i.e. half up) or the @dfn{commerical} way (ie. half away from zero).") (license license:bsd-3))) + +(define-public elm-ryannhg-date-format + (package + (name "elm-ryannhg-date-format") + (version "2.3.0") + (source + (elm-package-origin + "ryannhg/date-format" + version + (base32 "0razh6im5qwmla10knk67j8w11mqlqlyfnclykbfl06kaksfm3sp"))) + (build-system elm-build-system) + (propagated-inputs (list elm-time elm-core)) + (inputs (list elm-explorations-test)) + (home-page + "https://package.elm-lang.org/packages/ryannhg/date-format/2.3.0") + (synopsis "Reliable advanced dates formatting for Elm") + (description + "This package provides Elm programs with reliable, powerful tools for +formatting dates and times. It uses Elm's type system instead of format +strings, which makes formatting code more readable and can catch some errors +at compile time.") + (license license:bsd-3))) From f8e080691d95fd3b056de1808c51b702f3683979 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:20 -0400 Subject: [PATCH 170/363] gnu: Add elm-terezka-intervals. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-terezka-intervals): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index a9b24b3b00..cf203addd5 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -729,3 +729,34 @@ formatting dates and times. It uses Elm's type system instead of format strings, which makes formatting code more readable and can catch some errors at compile time.") (license license:bsd-3))) + +(define-public elm-terezka-intervals + (package + (name "elm-terezka-intervals") + (version "2.0.1") + (source + (elm-package-origin + "terezka/intervals" + version + (base32 "0h3im58sa6awyppch1v8ppcrzwc5h48yn45crx98m8zs4isx91lj"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-ryannhg-date-format + elm-myrho-elm-round + elm-justinmimbs-time-extra + elm-time + elm-svg + elm-json + elm-html + elm-core + elm-danhandrea-elm-time-extra)) + (inputs (list elm-explorations-test)) + (home-page "https://package.elm-lang.org/packages/terezka/intervals/2.0.1") + (synopsis "Produce nice intervals for Elm charts") + (description + "This package provides an Elm library for producing nice intervals for +charts. It's useful in combination with @code{terezka/elm-charts}. When I +say ``nice'', I just mean that I try to calculate intervals which begin with +10, 5, 3, 2, or 1 (adjusted to magnitude, of course!). For dates, I try to +hit whole days, weeks, and months or hours, minutes, and seconds.") + (license license:bsd-3))) From 7a2eb7d231c69e81f0851eb27cbae6aae93bf594 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 18 May 2022 14:11:21 -0400 Subject: [PATCH 171/363] gnu: Add elm-terezka-elm-charts. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elm.scm (elm-terezka-elm-charts): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/elm.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm index cf203addd5..74a43a4ff2 100644 --- a/gnu/packages/elm.scm +++ b/gnu/packages/elm.scm @@ -760,3 +760,35 @@ say ``nice'', I just mean that I try to calculate intervals which begin with 10, 5, 3, 2, or 1 (adjusted to magnitude, of course!). For dates, I try to hit whole days, weeks, and months or hours, minutes, and seconds.") (license license:bsd-3))) + +(define-public elm-terezka-elm-charts + (package + (name "elm-terezka-elm-charts") + (version "3.0.0") ;; NOTE! Tags like 5.1.0 are from an OLDER version. + (source + (elm-package-origin + "terezka/elm-charts" + version + (base32 "17syq73jwldc7fk7snm5k8s85nsvxyprb34rs1rwjsapc1vii7hc"))) + (build-system elm-build-system) + (propagated-inputs + (list elm-terezka-intervals + elm-ryannhg-date-format + elm-time + elm-svg + elm-json + elm-html + elm-core + elm-debois-elm-dom)) + (home-page + "https://elm-charts.org") + (synopsis "SVG chart components in Elm") + (description + "Make SVG charts in all Elm. The package can draw charts at a variety of +different levels of customization, from basic charts with standard features to +very custom styles. The library also allows including your very own SVG +elements while still easily utilizing the coordinate system calculated from +your data, as well as editing the SVGs made by the package. It has great +support for interactivity, layering different charts, and adding irregular +details.") + (license license:bsd-3))) From b782d11f9b92d22abedb0a31edb69456be11f4c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 May 2022 01:41:56 +0200 Subject: [PATCH 172/363] news: Add entry for 'guix import elm'. * etc/news.scm: Add entry. --- etc/news.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/etc/news.scm b/etc/news.scm index 326be8392e..da5d86076b 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -25,6 +25,37 @@ (channel-news (version 0) + (entry (commit "903c82583e1cec4c9ff09d5895c5cc646c37b661") + (title + (en "New @command{guix import elm} command") + (fr "Nouvelle commande @command{guix import elm}")) + (body + (en "The new @command{guix import elm} command allows packagers to +generate a package definition or given the name of a package for Elm, a +functional programming language for the Web: + +@example +guix import elm elm/bytes +@end example + +Run @command{info \"(guix) Invoking guix import\"} for more info. + +This comes with a new build system for Elm packages---run @command{info +\"(guix) Build Systems\"} for details.") + (fr "La nouvelle commande @command{guix import elm} permet de générer +une définition de paquet reposant sur Elm, un langage de programmation +fonctionnelle pour le Web: + +@example +guix import elm elm/bytes +@end example + +Lancer @command{info \"(guix.fr) Invoquer guix import\"} pour plus +d'informations. + +Cela vient avec un nouveau système de construction pour paquets Elm---lancer +@command{info \"(guix.fr) Systèmes de construction\"} pour plus de détails."))) + (entry (commit "b6b2de2a0d52530bc1ee128c61580bed662ee15c") (title (en "Linux-libre kernel updated to 5.17") (de "Linux-libre-Kernel wird auf 5.17 aktualisiert")) From d52d5ee4ec96c09d4b5db5be2bb644c4d0ea7646 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:05 +0200 Subject: [PATCH 173/363] gnu: pigz: Remove unused git input. * gnu/packages/compression.scm (libjcat)[inputs]: Remove git. --- gnu/packages/compression.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 802d4d7ff8..123be4b2f1 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1103,8 +1103,7 @@ tarballs.") (native-inputs (list gobject-introspection help2man pkg-config)) (inputs - (list git - glib + (list glib gnupg gnutls gpgme From b247d7a46979c4ff63867de9243a186b6adaca7e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:02 +0200 Subject: [PATCH 174/363] gnu: pigz: Update to 2.7. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/compression.scm (pigz): Update to 2.7. [arguments]: Run ‘make test’ rather than ‘tests’. The latter tests the NOTHREAD build that's never installed, and broken. [native-inputs]: Add which. --- gnu/packages/compression.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 123be4b2f1..778cf55a51 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -980,14 +980,14 @@ byte-for-byte identical output.") (define-public pigz (package (name "pigz") - (version "2.6") + (version "2.7") (source (origin (method url-fetch) (uri (string-append "http://zlib.net/pigz/" name "-" version ".tar.gz")) (sha256 (base32 - "0z9avc4mifwcpj3qdsf9m2rjw9jx03b2r9pj0c4xgla9fh6ppv9f")))) + "01y7n7lafp6maqnp4jrmasawnv67najh1bd7gjrmv3d08h1ydjdl")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1004,7 +1004,8 @@ byte-for-byte identical output.") #t)))) #:make-flags (list ,(string-append "CC=" (cc-for-target))) - #:test-target "tests")) + #:test-target "test")) + (native-inputs (list which)) (inputs (list zlib)) (home-page "https://zlib.net/pigz/") (synopsis "Parallel implementation of gzip") From d1ad5ad828c3300fd53b3959925b22f28b6de977 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:05 +0200 Subject: [PATCH 175/363] gnu: pigz: Use G-expressions. * gnu/packages/compression.scm (pigz)[arguments]: Rewrite as G-expressions. Don't explicitly return #t from phases. --- gnu/packages/compression.scm | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 778cf55a51..b78537b3a1 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -52,6 +52,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages compression) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (guix packages) @@ -990,21 +991,19 @@ byte-for-byte identical output.") "01y7n7lafp6maqnp4jrmasawnv67najh1bd7gjrmv3d08h1ydjdl")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (man (string-append out "/share/man/man1"))) - (install-file "pigz" bin) - (symlink "pigz" (string-append bin "/unpigz")) - (install-file "pigz.1" man) - #t)))) - #:make-flags - (list ,(string-append "CC=" (cc-for-target))) - #:test-target "test")) + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target))) + #:test-target "test" + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (let* ((bin (string-append #$output "/bin")) + (man (string-append #$output "/share/man/man1"))) + (install-file "pigz" bin) + (symlink "pigz" (string-append bin "/unpigz")) + (install-file "pigz.1" man))))))) (native-inputs (list which)) (inputs (list zlib)) (home-page "https://zlib.net/pigz/") From c9512e6dc5e127ec4d72e5ed03fad9fad02279eb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:06 +0200 Subject: [PATCH 176/363] gnu: libjcat: Update to 0.1.11. * gnu/packages/compression.scm (libjcat): Update to 0.1.11. --- gnu/packages/compression.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index b78537b3a1..9310b5293e 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1088,7 +1088,7 @@ tarballs.") (define-public libjcat (package (name "libjcat") - (version "0.1.9") + (version "0.1.11") (source (origin (method git-fetch) @@ -1098,7 +1098,7 @@ tarballs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "02cgznk6qdylqpcyks6qykmvhpz1pplvnxp72bjzji1y6yj3zpkj")))) + (base32 "08zywwhm9q8m8v17w2mp23w3w93p40ir1w4x18zrlbhs10xnhiys")))) (build-system meson-build-system) (native-inputs (list gobject-introspection help2man pkg-config)) From 054c55cac995e2ac8f40959f7274965051025a5d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:00 +0200 Subject: [PATCH 177/363] gnu: libdeflate: Omit static library. * gnu/packages/compression.scm (libdeflate)[arguments]: Add a new 'skip-static-library-installation phase. --- gnu/packages/compression.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 9310b5293e..ada6a927a8 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -2664,6 +2664,10 @@ to their original, binary CD format.") (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases + (add-after 'unpack 'skip-static-library-installation + (lambda _ + (substitute* "Makefile" + (("install .*\\$\\(STATIC_LIB\\).*") "")))) (delete 'configure)))) (inputs (list zlib)) From 17799fe97a050e76901ded3b2b0f92721e6984ec Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 178/363] gnu: libdeflate: Update to 1.10. * gnu/packages/compression.scm (libdeflate): Update to 1.10. --- gnu/packages/compression.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index ada6a927a8..449d3e34bb 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -2647,7 +2647,7 @@ to their original, binary CD format.") (define-public libdeflate (package (name "libdeflate") - (version "1.8") + (version "1.10") (source (origin (method git-fetch) (uri (git-reference @@ -2656,7 +2656,7 @@ to their original, binary CD format.") (file-name (git-file-name name version)) (sha256 (base32 - "0nw1zhr2s6ffcc3s0n5wsshvjb6pmybwapagli135zzn2fx1pdiz")))) + "0v5qh1cz787xj86l15x6brkkaw0jbxhqj5f85275q0l945qazvwm")))) (build-system gnu-build-system) (arguments `(#:make-flags From ad07af353877f8f438d92b04eeb4955f077ca499 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 179/363] gnu: diffoscope: Update to 213. * gnu/packages/diffoscope.scm (diffoscope): Update to 213. --- gnu/packages/diffoscope.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index b4279a3fb5..bd091fedfc 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2017, 2021 Ricardo Wurmus -;;; Copyright © 2017–2021 Tobias Geerinckx-Rice +;;; Copyright © 2017–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018 Julien Lepiller ;;; Copyright © 2018, 2019 Rutger Helling ;;; Copyright © 2019 Vagrant Cascadian @@ -74,7 +74,7 @@ (define-public diffoscope (package (name "diffoscope") - (version "212") + (version "213") (source (origin (method git-fetch) @@ -83,7 +83,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1yzxqynrbr9kj7f5qxfzcxr8vb86xygm2yzgq8rqqc1khzsl7q90")) + (base32 "075zrraj7pibwgi731pa506pkq5i06mpilqa03w3dd548b1jc9py")) (patches (search-patches "diffoscope-fix-llvm-test.patch")))) (build-system python-build-system) From 6e0b2adf5f80d42f3a0e09e7de2bcfe188678997 Mon Sep 17 00:00:00 2001 From: Leo Prikler Date: Mon, 24 May 2021 10:46:45 +0200 Subject: [PATCH 180/363] gnu: Add font-ipa-ex. * gnu/packages/fonts.scm (font-ipa-ex): New variable. Co-authored-by: Maxim Cournoyer --- gnu/packages/fonts.scm | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 89c9afedeb..eaa11b1c81 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -48,6 +48,7 @@ ;;; Copyright © 2021 Wamm K. D. ;;; Copyright © 2022 Jai Vetrivelan ;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2021 Liliana Marie Prikler ;;; ;;; This file is part of GNU Guix. ;;; @@ -2250,6 +2251,53 @@ orthography of Roman glyphs of Meera Inimai are also based on this characteristic so that they sit smoothly with the Tamil glyphs.") (license license:silofl1.1))) +(define-public font-ipa-ex + (package + (name "font-ipa-ex") + (version "004.01") + (source (origin + (method url-fetch/zipbomb) + (uri (string-append + "https://moji.or.jp/wp-content/ipafont/IPAexfont/" + "IPAexfont" (string-join (string-split version #\.) "") + ".zip")) + (sha256 + (base32 + "0jwpszgisrls1lsgq1ngcm99zjaikb8hshr02512qrzrnd53gy5w")))) + (build-system font-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'make-read-only + (lambda _ + ;; Otherwise the files have the executable bit set. + (for-each (lambda (file) + (chmod file #o444)) + (find-files "." #:directories? #f)))) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((font+version + #$(string-append + "IPAexfont" + (string-join (string-split version #\.) ""))) + (doc-dir (string-append #$output "/share/doc/" #$name))) + (with-directory-excursion font+version + (mkdir-p doc-dir) + (copy-file (string-append "Readme_" font+version ".txt") + (string-append doc-dir "/README")) + (copy-file "IPA_Font_License_Agreement_v1.0.txt" + (string-append doc-dir "/LICENSE"))))))))) + (home-page "https://moji.or.jp/ipafont/") + (synopsis "Japanese font from the Information-technology Promotion Agency") + (description "IPAex Fonts are suitable for both display and printing. +This is a modernized version of IPA Fonts that aims to provide a good balance +for authoring Japanese documents mixed with Western characters, while +following Japanese printing tradition. Japanese characters (Kanji, Kana and +punctuation marks) are full width mono-space pitch, and Western characters are +proportional pitch.") + (license license:ipa))) + (define-public font-ipa-mj-mincho (package (name "font-ipa-mj-mincho") From 31f7696be4a2b2f9e54639a549f7ded32e68260b Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 2 May 2022 12:54:44 +0200 Subject: [PATCH 181/363] platform: Introduce new platforms. * gnu/platforms/intel.scm: New file. * gnu/platforms/mips.scm: Ditto. * gnu/platforms/powerpc.scm: Ditto. * gnu/platforms/riscv.scm: Ditto. * gnu/platforms/s390.scm: Ditto. * gnu/local.mk (GNU_SYSTEM_MODULES): Add them. Signed-off-by: Mathieu Othacehe --- gnu/local.mk | 6 +++- gnu/platforms/mips.scm | 29 +++++++++++++++ gnu/platforms/powerpc.scm | 36 +++++++++++++++++++ gnu/platforms/riscv.scm | 29 +++++++++++++++ gnu/platforms/{hurd.scm => s390.scm} | 13 +++---- gnu/platforms/x86.scm | 53 ++++++++++++++++++++++++++++ 6 files changed, 159 insertions(+), 7 deletions(-) create mode 100644 gnu/platforms/mips.scm create mode 100644 gnu/platforms/powerpc.scm create mode 100644 gnu/platforms/riscv.scm rename gnu/platforms/{hurd.scm => s390.scm} (78%) create mode 100644 gnu/platforms/x86.scm diff --git a/gnu/local.mk b/gnu/local.mk index 6274f43566..2a74677509 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -632,7 +632,11 @@ GNU_SYSTEM_MODULES = \ %D%/packages/zwave.scm \ \ %D%/platforms/arm.scm \ - %D%/platforms/hurd.scm \ + %D%/platforms/mips.scm \ + %D%/platforms/powerpc.scm \ + %D%/platforms/riscv.scm \ + %D%/platforms/s390.scm \ + %D%/platforms/x86.scm \ \ %D%/services.scm \ %D%/services/admin.scm \ diff --git a/gnu/platforms/mips.scm b/gnu/platforms/mips.scm new file mode 100644 index 0000000000..84a492699d --- /dev/null +++ b/gnu/platforms/mips.scm @@ -0,0 +1,29 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Mathieu Othacehe +;;; +;;; 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 platforms mips) + #:use-module (gnu platform) + #:use-module (gnu packages linux) + #:use-module (guix records) + #:export (mips64-linux)) + +(define mips64-linux + (platform + (target "mips64el-linux-gnu") + (system "mips64el-linux") + (linux-architecture "mips"))) diff --git a/gnu/platforms/powerpc.scm b/gnu/platforms/powerpc.scm new file mode 100644 index 0000000000..8fadfe88de --- /dev/null +++ b/gnu/platforms/powerpc.scm @@ -0,0 +1,36 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Mathieu Othacehe +;;; +;;; 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 platforms powerpc) + #:use-module (gnu platform) + #:use-module (gnu packages linux) + #:use-module (guix records) + #:export (powerpc-linux + powerpc64le-linux)) + +(define powerpc-linux + (platform + (target "powerpc-linux-gnu") + (system "powerpc-linux") + (linux-architecture "powerpc"))) + +(define powerpc64le-linux + (platform + (target "powerpc64le-linux-gnu") + (system "powerpc64le-linux") + (linux-architecture "powerpc"))) diff --git a/gnu/platforms/riscv.scm b/gnu/platforms/riscv.scm new file mode 100644 index 0000000000..29a34402a2 --- /dev/null +++ b/gnu/platforms/riscv.scm @@ -0,0 +1,29 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Mathieu Othacehe +;;; +;;; 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 platforms riscv) + #:use-module (gnu platform) + #:use-module (gnu packages linux) + #:use-module (guix records) + #:export (riscv64-linux)) + +(define riscv64-linux + (platform + (target "riscv64-linux-gnu") + (system "riscv64-linux") + (linux-architecture "riscv"))) diff --git a/gnu/platforms/hurd.scm b/gnu/platforms/s390.scm similarity index 78% rename from gnu/platforms/hurd.scm rename to gnu/platforms/s390.scm index 0e5c58fd08..c8caafbe45 100644 --- a/gnu/platforms/hurd.scm +++ b/gnu/platforms/s390.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2021 Mathieu Othacehe +;;; Copyright © 2022 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -16,13 +16,14 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu platforms hurd) +(define-module (gnu platforms s390) #:use-module (gnu platform) #:use-module (gnu packages linux) #:use-module (guix records) - #:export (hurd)) + #:export (s390x-linux)) -(define hurd +(define s390x-linux (platform - (target "i586-pc-gnu") - (system "i586-gnu"))) + (target "s390x-linux-gnu") + (system "s390x-linux") + (linux-architecture "s390"))) diff --git a/gnu/platforms/x86.scm b/gnu/platforms/x86.scm new file mode 100644 index 0000000000..1a5d6a3284 --- /dev/null +++ b/gnu/platforms/x86.scm @@ -0,0 +1,53 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Mathieu Othacehe +;;; +;;; 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 platforms x86) + #:use-module (gnu platform) + #:use-module (gnu packages linux) + #:use-module (guix records) + #:export (i686-linux + x86_64-linux + i686-mingw + x86_64-mingw)) + +(define i686-linux + (platform + (target "i686-linux-gnu") + (system "i686-linux") + (linux-architecture "i386"))) + +(define x86_64-linux + (platform + (target "x86_64-linux-gnu") + (system "x86_64-linux") + (linux-architecture "x86_64"))) + +(define i686-mingw + (platform + (target "i686-w64-mingw32") + (system #f))) + +(define x86_64-mingw + (platform + (target "x86_64-w64-mingw32") + (system #f))) + +(define hurd + (platform + (target "i586-pc-gnu") + (system "i586-gnu"))) From 4f2320f79d97410ed6568c0c65054b71a1ca59c2 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 2 May 2022 12:56:16 +0200 Subject: [PATCH 182/363] platform: Add discovery support. * gnu/platform.scm (platform-modules, systems, targets, lookup-platform-by-system, lookup-platform-by-target, lookup-platform-by-target-or-system platform-system->target, platform-target->system): New procedures. (%platforms): New variable. Signed-off-by: Mathieu Othacehe --- gnu/platform.scm | 101 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 98 insertions(+), 3 deletions(-) diff --git a/gnu/platform.scm b/gnu/platform.scm index bb6519c71a..4c5211e107 100644 --- a/gnu/platform.scm +++ b/gnu/platform.scm @@ -17,22 +17,117 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu platform) + #:use-module (guix discovery) + #:use-module (guix memoization) #:use-module (guix records) + #:use-module (guix ui) + #:use-module (srfi srfi-1) #:export (platform platform? platform-target platform-system - platform-linux-architecture)) + platform-linux-architecture + + platform-modules + platforms + lookup-platform-by-system + lookup-platform-by-target + lookup-platform-by-target-or-system + platform-system->target + platform-target->system + + systems + targets)) ;;; ;;; Platform record. ;;; -;; Description of a platform supported by the GNU system. +;; Description of a platform supported by GNU Guix. +;; +;; The 'target' field must be a valid GNU triplet as defined here: +;; https://www.gnu.org/software/autoconf/manual/autoconf-2.68/html_node/Specifying-Target-Triplets.html. +;; It is used for cross-compilation purposes. +;; +;; The 'system' field is the name of the corresponding system as defined in +;; the (gnu packages bootstrap) module. It can be for instance +;; "aarch64-linux" or "armhf-linux". It is used to emulate a different host +;; architecture, for instance i686-linux on x86_64-linux-gnu, or armhf-linux +;; on x86_64-linux, using the QEMU binfmt transparent emulation mechanism. +;; +;; The 'linux-architecture' is only relevant if the kernel is Linux. In that +;; case, it corresponds to the ARCH variable used when building Linux. (define-record-type* platform make-platform platform? (target platform-target) ;"x86_64-linux-gnu" (system platform-system) ;"x86_64-linux" - (linux-architecture platform-linux-architecture ;"amd64" + (linux-architecture platform-linux-architecture ;"x86" (default #f))) + +;;; +;;; Platforms. +;;; + +(define (platform-modules) + "Return the list of platform modules." + (all-modules (map (lambda (entry) + `(,entry . "gnu/platforms")) + %load-path) + #:warn warn-about-load-error)) + +(define platforms + ;; The list of publically-known platforms. + (memoize + (lambda () + (fold-module-public-variables (lambda (obj result) + (if (platform? obj) + (cons obj result) + result)) + '() + (platform-modules))))) + +(define (lookup-platform-by-system system) + "Return the platform corresponding to the given SYSTEM." + (find (lambda (platform) + (let ((s (platform-system platform))) + (and (string? s) (string=? s system)))) + (platforms))) + +(define (lookup-platform-by-target target) + "Return the platform corresponding to the given TARGET." + (find (lambda (platform) + (let ((t (platform-target platform))) + (and (string? t) (string=? t target)))) + (platforms))) + +(define (lookup-platform-by-target-or-system target-or-system) + "Return the platform corresponding to the given TARGET or SYSTEM." + (or (lookup-platform-by-target target-or-system) + (lookup-platform-by-system target-or-system))) + +(define (platform-system->target system) + "Return the target matching the given SYSTEM if it exists or false +otherwise." + (let ((platform (lookup-platform-by-system system))) + (and=> platform platform-target))) + +(define (platform-target->system target) + "Return the system matching the given TARGET if it exists or false +otherwise." + (let ((platform (lookup-platform-by-target system))) + (and=> platform platform-system))) + + +;;; +;;; Systems & Targets. +;;; + +(define (systems) + "Return the list of supported systems." + (delete-duplicates + (filter-map platform-system (platforms)))) + +(define (targets) + "Return the list of supported targets." + (map platform-target (platforms))) From dd970122ddf3679482f658f73dd68307496c6215 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 2 May 2022 12:58:00 +0200 Subject: [PATCH 183/363] ci: Do not rely on hardcoded cross-targets lists. * gnu/ci.scm (%cross-targets): Remove it ... (cross-jobs): ... and use the targets procedure instead. * etc/release-manifest.scm: Adapt it. Signed-off-by: Mathieu Othacehe --- etc/release-manifest.scm | 4 ++-- gnu/ci.scm | 15 ++------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/etc/release-manifest.scm b/etc/release-manifest.scm index e7e64efda4..1098f491ba 100644 --- a/etc/release-manifest.scm +++ b/etc/release-manifest.scm @@ -23,7 +23,7 @@ (use-modules (gnu packages) (guix packages) (guix profiles) - ((gnu ci) #:select (%cross-targets)) + ((gnu platform) #:select (targets)) ((gnu services xorg) #:select (%default-xorg-modules)) (guix utils) (srfi srfi-1) @@ -144,7 +144,7 @@ TARGET." %packages-to-cross-build))) ;; XXX: Important bits like libsigsegv and libffi don't support ;; RISCV at the moment, so don't require RISCV support. - (delete "riscv64-linux-gnu" %cross-targets)))) + (delete "riscv64-linux-gnu" (targets))))) (define %cross-bootstrap-manifest (manifest diff --git a/gnu/ci.scm b/gnu/ci.scm index 35fd583f75..9de1b54fc8 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -55,6 +55,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages make-bootstrap) #:use-module (gnu packages package-management) + #:use-module (gnu platform) #:use-module (gnu system) #:use-module (gnu system image) #:use-module (gnu system vm) @@ -71,7 +72,6 @@ image->job %core-packages - %cross-targets channel-source->package arguments->systems @@ -169,17 +169,6 @@ SYSTEM." (drop-right %core-packages 6) %core-packages)) -(define %cross-targets - '("mips64el-linux-gnu" - "arm-linux-gnueabihf" - "aarch64-linux-gnu" - "powerpc-linux-gnu" - "powerpc64le-linux-gnu" - "riscv64-linux-gnu" - "i586-pc-gnu" ;aka. GNU/Hurd - "i686-w64-mingw32" - "x86_64-w64-mingw32")) - (define (cross-jobs store system) "Return a list of cross-compilation jobs for SYSTEM." (define (from-32-to-64? target) @@ -221,7 +210,7 @@ SYSTEM." package target system)) (packages-to-cross-build target))) (remove (either from-32-to-64? same? pointless?) - %cross-targets))) + (targets)))) (define* (guix-jobs store systems #:key source commit) "Return a list of jobs for Guix itself." From ec42d287b4558b4d1908e3e71dcf9358d5c6ae8c Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 2 May 2022 12:59:14 +0200 Subject: [PATCH 184/363] scripts: Add --list-systems and --list-targets options. Also factorize the --system and --target build options. Check that the passed system and target arguments are known platforms. * doc/guix.texi (Additional Build Options): Document the new --list-systems and --list-targets options. * guix/scripts/build.scm (show-cross-build-options-help, show-emulated-build-options-help, list-systems, list-targets): New procedures. (%standard-cross-build-options, %standard-emulated-build-options): New variables. (show-help): Remove --system and --target entries and use show-cross-build-options-help and show-emulated-build-options-help procedures instead. (%options): Remove --system and --target entries and use %standard-cross-build-options and %standard-emulated-build-options variables instead. * guix/scripts/archive.scm (show-help, %options): Adapt them. * guix/scripts/environment.scm: Ditto. * guix/scripts/graph.scm: Ditto. * guix/scripts/pack.scm: Ditto. * guix/scripts/pull.scm: Ditto. * guix/scripts/size.scm: Ditto. * guix/scripts/weather.scm: Ditto. Signed-off-by: Mathieu Othacehe --- doc/guix.texi | 8 ++++ guix/scripts/archive.scm | 20 +++------ guix/scripts/build.scm | 84 ++++++++++++++++++++++++++++++------ guix/scripts/environment.scm | 11 ++--- guix/scripts/graph.scm | 15 +++---- guix/scripts/pack.scm | 20 +++------ guix/scripts/pull.scm | 12 +++--- guix/scripts/size.scm | 13 +++--- guix/scripts/weather.scm | 11 +++-- 9 files changed, 120 insertions(+), 74 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 9cdee15d55..761fceb9c3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -12397,6 +12397,14 @@ Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{"aarch64-linux-gnu"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf}). +@item --list-systems +List all the supported systems, that can be passed as an argument to +@option{--system}. + +@item --list-targets +List all the supported targets, that can be passed as an argument to +@option{--target}. + @anchor{build-check} @item --check @cindex determinism, checking diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index f8678aa5f9..1e961c84e6 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -93,14 +93,14 @@ Export/import one or more packages from/to the store.\n")) (display (G_ " -S, --source build the packages' source derivations")) (display (G_ " - -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) - (display (G_ " - --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"")) - (display (G_ " -v, --verbosity=LEVEL use the given verbosity LEVEL")) (newline) (show-build-options-help) + (newline) + (show-cross-build-options-help) + (newline) + (show-native-build-options-help) (newline) (display (G_ " @@ -166,14 +166,6 @@ Export/import one or more packages from/to the store.\n")) (option '(#\S "source") #f #f (lambda (opt name arg result) (alist-cons 'source? #t result))) - (option '(#\s "system") #t #f - (lambda (opt name arg result) - (alist-cons 'system arg - (alist-delete 'system result eq?)))) - (option '("target") #t #f - (lambda (opt name arg result) - (alist-cons 'target arg - (alist-delete 'target result eq?)))) (option '(#\e "expression") #t #f (lambda (opt name arg result) (alist-cons 'expression arg result))) @@ -186,7 +178,9 @@ Export/import one or more packages from/to the store.\n")) (lambda (opt name arg result) (alist-cons 'dry-run? #t result))) - %standard-build-options)) + (append %standard-build-options + %standard-cross-build-options + %standard-native-build-options))) (define (derivation-from-expression store str package-derivation system source?) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index d9cdb6e5e0..a09c54451f 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -47,6 +47,7 @@ #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) #:use-module (gnu packages) + #:use-module (gnu platform) #:use-module ((guix status) #:select (with-status-verbosity)) #:use-module ((guix progress) #:select (current-terminal-columns)) #:use-module ((guix build syscalls) #:select (terminal-columns)) @@ -54,9 +55,15 @@ #:export (log-url %standard-build-options + %standard-cross-build-options + %standard-native-build-options + set-build-options-from-command-line set-build-options-from-command-line* + show-build-options-help + show-cross-build-options-help + show-native-build-options-help guix-build register-root @@ -184,6 +191,18 @@ options handled by 'set-build-options-from-command-line', and listed in (display (G_ " --debug=LEVEL produce debugging output at LEVEL"))) +(define (show-cross-build-options-help) + (display (G_ " + --list-targets list available targets")) + (display (G_ " + --target=TRIPLET cross-build for TRIPLET--e.g., \"aarch64-linux-gnu\""))) + +(define (show-native-build-options-help) + (display (G_ " + --list-systems list available systems")) + (display (G_ " + -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\""))) + (define (set-build-options-from-command-line store opts) "Given OPTS, an alist as returned by 'args-fold' given '%standard-build-options', set the corresponding build options on STORE." @@ -319,6 +338,52 @@ use '--no-offload' instead~%"))) (leave (G_ "not a number: '~a' option argument: ~a~%") name arg))))))) +(define (list-systems) + "Print the available systems." + (display (G_ "The available systems are:\n")) + (newline) + (format #t "~{ - ~a ~%~}" + (sort (systems) stringthings-to-build opts) "Read the arguments from OPTS and return a list of high-level objects to diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 07b54cd89b..3216235937 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -96,8 +96,6 @@ shell'." (display (G_ " --search-paths display needed environment variable definitions")) (display (G_ " - -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) - (display (G_ " -r, --root=FILE make FILE a symlink to the result, and register it as a garbage collector root")) (display (G_ " @@ -145,6 +143,8 @@ COMMAND or an interactive shell in that environment.\n")) (newline) (show-build-options-help) (newline) + (show-native-build-options-help) + (newline) (show-transformation-options-help) (newline) (display (G_ " @@ -226,10 +226,6 @@ use '--preserve' instead~%")) (option '(#\n "dry-run") #f #f (lambda (opt name arg result) (alist-cons 'dry-run? #t result))) - (option '(#\s "system") #t #f - (lambda (opt name arg result) - (alist-cons 'system arg - (alist-delete 'system result eq?)))) (option '(#\C "container") #f #f (lambda (opt name arg result) (alist-cons 'container? #t result))) @@ -273,7 +269,8 @@ use '--preserve' instead~%")) (alist-cons 'bootstrap? #t result))) (append %transformation-options - %standard-build-options))) + %standard-build-options + %standard-native-build-options))) (define (pick-all alist key) "Return a list of values in ALIST associated with KEY." diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index 535875c858..2f102180c9 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -39,7 +39,9 @@ options->transformation %transformation-options)) #:use-module ((guix scripts build) - #:select (%standard-build-options)) + #:select (%standard-build-options + %standard-native-build-options + show-native-build-options-help)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) @@ -504,10 +506,6 @@ package modules, while attempting to retain user package modules." (option '(#\e "expression") #t #f (lambda (opt name arg result) (alist-cons 'expression arg result))) - (option '(#\s "system") #t #f - (lambda (opt name arg result) - (alist-cons 'system arg - (alist-delete 'system result eq?)))) (find (lambda (option) (member "load-path" (option-names option))) %standard-build-options) @@ -519,7 +517,8 @@ package modules, while attempting to retain user package modules." (lambda args (show-version-and-exit "guix graph"))) - %transformation-options)) + (append %transformation-options + %standard-native-build-options))) (define (show-help) ;; TRANSLATORS: Here 'dot' is the name of a program; it must not be @@ -540,8 +539,6 @@ Emit a representation of the dependency graph of PACKAGE...\n")) --path display the shortest path between the given nodes")) (display (G_ " -e, --expression=EXPR consider the package EXPR evaluates to")) - (display (G_ " - -s, --system=SYSTEM consider the graph for SYSTEM--e.g., \"i686-linux\"")) (newline) (display (G_ " -L, --load-path=DIR prepend DIR to the package module search path")) @@ -553,6 +550,8 @@ Emit a representation of the dependency graph of PACKAGE...\n")) (display (G_ " -V, --version display version information and exit")) (newline) + (show-native-build-options-help) + (newline) (show-bug-report-information)) (define %default-options diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 32f0d3abb1..d3ee69840c 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -1244,17 +1244,9 @@ last resort for relocation." (option '(#\m "manifest") #t #f (lambda (opt name arg result) (alist-cons 'manifest arg result))) - (option '(#\s "system") #t #f - (lambda (opt name arg result) - (alist-cons 'system arg - (alist-delete 'system result eq?)))) (option '("entry-point") #t #f (lambda (opt name arg result) (alist-cons 'entry-point arg result))) - (option '("target") #t #f - (lambda (opt name arg result) - (alist-cons 'target arg - (alist-delete 'target result eq?)))) (option '(#\C "compression") #t #f (lambda (opt name arg result) (alist-cons 'compressor (lookup-compressor arg) @@ -1305,13 +1297,19 @@ last resort for relocation." (append %deb-format-options %transformation-options - %standard-build-options))) + %standard-build-options + %standard-cross-build-options + %standard-native-build-options))) (define (show-help) (display (G_ "Usage: guix pack [OPTION]... PACKAGE... Create a bundle of PACKAGE.\n")) (show-build-options-help) (newline) + (show-cross-build-options-help) + (newline) + (show-native-build-options-help) + (newline) (show-transformation-options-help) (newline) (show-deb-format-options) @@ -1325,10 +1323,6 @@ Create a bundle of PACKAGE.\n")) (display (G_ " -e, --expression=EXPR consider the package EXPR evaluates to")) (display (G_ " - -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) - (display (G_ " - --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"")) - (display (G_ " -C, --compression=TOOL compress using TOOL--e.g., \"lzip\"")) (display (G_ " -S, --symlink=SPEC create symlinks to the profile according to SPEC")) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 8eb9b31288..f01764637b 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -116,12 +116,13 @@ Download and deploy the latest version of Guix.\n")) -p, --profile=PROFILE use PROFILE instead of ~/.config/guix/current")) (display (G_ " -v, --verbosity=LEVEL use the given verbosity LEVEL")) - (display (G_ " - -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) (display (G_ " --bootstrap use the bootstrap Guile to build the new Guix")) (newline) (show-build-options-help) + (newline) + (show-native-build-options-help) + (newline) (display (G_ " -h, --help display this help and exit")) (display (G_ " @@ -182,10 +183,6 @@ Download and deploy the latest version of Guix.\n")) (lambda (opt name arg result) (alist-cons 'profile (canonicalize-profile arg) result))) - (option '(#\s "system") #t #f - (lambda (opt name arg result) - (alist-cons 'system arg - (alist-delete 'system result eq?)))) (option '(#\n "dry-run") #f #f (lambda (opt name arg result) (alist-cons 'dry-run? #t result))) @@ -206,7 +203,8 @@ Download and deploy the latest version of Guix.\n")) (lambda args (show-version-and-exit "guix pull"))) - %standard-build-options)) + (append %standard-build-options + %standard-native-build-options))) (define (warn-about-backward-updates channel start commit relation) "Warn about non-forward updates of CHANNEL from START to COMMIT, without diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index e46983382a..5bb970443c 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -235,8 +235,6 @@ Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n")) (display (G_ " --substitute-urls=URLS fetch substitute from URLS if they are authorized")) - (display (G_ " - -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"")) ;; TRANSLATORS: "closure" and "self" must not be translated. (display (G_ " --sort=KEY sort according to KEY--\"closure\" or \"self\"")) @@ -251,15 +249,13 @@ Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n")) (display (G_ " -V, --version display version information and exit")) (newline) + (show-native-build-options-help) + (newline) (show-bug-report-information)) (define %options ;; Specifications of the command-line options. - (list (option '(#\s "system") #t #f - (lambda (opt name arg result) - (alist-cons 'system arg - (alist-delete 'system result eq?)))) - (option '("substitute-urls") #t #f + (cons* (option '("substitute-urls") #t #f (lambda (opt name arg result . rest) (apply values (alist-cons 'substitute-urls @@ -287,7 +283,8 @@ Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n")) (exit 0))) (option '(#\V "version") #f #f (lambda args - (show-version-and-exit "guix size"))))) + (show-version-and-exit "guix size"))) + %standard-native-build-options)) (define %default-options `((system . ,(%current-system)) diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm index adba614b8c..b7d8165262 100644 --- a/guix/scripts/weather.scm +++ b/guix/scripts/weather.scm @@ -40,6 +40,7 @@ #:use-module (guix ci) #:use-module (guix sets) #:use-module (guix graph) + #:use-module (guix scripts build) #:autoload (guix scripts graph) (%bag-node-type) #:use-module (gnu packages) #:use-module (web uri) @@ -339,18 +340,18 @@ Report the availability of substitutes.\n")) COUNT dependents")) (display (G_ " --display-missing display the list of missing substitutes")) - (display (G_ " - -s, --system=SYSTEM consider substitutes for SYSTEM--e.g., \"i686-linux\"")) (newline) (display (G_ " -h, --help display this help and exit")) (display (G_ " -V, --version display version information and exit")) (newline) + (show-native-build-options-help) + (newline) (show-bug-report-information)) (define %options - (list (option '(#\h "help") #f #f + (cons* (option '(#\h "help") #f #f (lambda args (show-help) (exit 0))) @@ -380,9 +381,7 @@ Report the availability of substitutes.\n")) (option '("display-missing") #f #f (lambda (opt name arg result) (alist-cons 'display-missing? #t result))) - (option '(#\s "system") #t #f - (lambda (opt name arg result) - (alist-cons 'system arg result))))) + %standard-native-build-options)) (define %default-options `((substitute-urls . ,%default-substitute-urls))) From 4cf7d0f836d08fd41aab02e1f6793146ce3cad8d Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 7 May 2022 17:02:51 +0200 Subject: [PATCH 185/363] platform: Add glibc-dynamic-linker field. * gnu/platform.scm ()[glibc-dynamic-linker]: New field. (platform-glibc-dynamic-linker, lookup-platform-by-system): New procedures. * gnu/platforms/arm.scm (armhf-linux, aarch64-linux): Add the glibc-dynamic-linker field. * gnu/platforms/hurd.scm (hurd): Ditto. * gnu/platforms/intel.scm (intel32-linux, intel64-linux, intel32-mingw, intel64-linux): Ditto. * gnu/platforms/mips.scm (mips64el-linux): Ditto. * gnu/platforms/powerpc.scm (powerpc-linux, powerpc64-linux): Ditto. * gnu/platforms/riscv.scm (riscv64-linux): Ditto. * gnu/platforms/s390.scm (riscv64-linux): Ditto. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Adapt it. --- gnu/packages/bootstrap.scm | 47 ++++++++++++++++++-------------------- gnu/platform.scm | 14 ++++++++---- gnu/platforms/arm.scm | 6 +++-- gnu/platforms/hurd.scm | 29 +++++++++++++++++++++++ gnu/platforms/mips.scm | 3 ++- gnu/platforms/powerpc.scm | 6 +++-- gnu/platforms/riscv.scm | 3 ++- gnu/platforms/s390.scm | 3 ++- gnu/platforms/x86.scm | 15 ++++++++---- 9 files changed, 85 insertions(+), 41 deletions(-) create mode 100644 gnu/platforms/hurd.scm diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 8bd0c4eaf3..5337617a53 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -26,6 +26,7 @@ (define-module (gnu packages bootstrap) #:use-module (guix licenses) #:use-module (gnu packages) + #:use-module (gnu platform) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system) @@ -314,33 +315,29 @@ or false to signal an error." (%current-system)))) "Return the name of Glibc's dynamic linker for SYSTEM." ;; See the 'SYSDEP_KNOWN_INTERPRETER_NAMES' cpp macro in libc. - (cond ((string=? system "x86_64-linux") "/lib/ld-linux-x86-64.so.2") - ((string=? system "i686-linux") "/lib/ld-linux.so.2") - ((string=? system "armhf-linux") "/lib/ld-linux-armhf.so.3") - ((string=? system "mips64el-linux") "/lib/ld.so.1") - ((string=? system "i586-gnu") "/lib/ld.so.1") - ((string=? system "i686-gnu") "/lib/ld.so.1") - ((string=? system "aarch64-linux") "/lib/ld-linux-aarch64.so.1") - ((string=? system "powerpc-linux") "/lib/ld.so.1") - ((string=? system "powerpc64-linux") "/lib/ld64.so.1") - ((string=? system "powerpc64le-linux") "/lib/ld64.so.2") - ((string=? system "alpha-linux") "/lib/ld-linux.so.2") - ((string=? system "s390x-linux") "/lib/ld64.so.1") - ((string=? system "riscv64-linux") "/lib/ld-linux-riscv64-lp64d.so.1") + (let ((platform (lookup-platform-by-system system))) + (cond + ((platform? platform) + (platform-glibc-dynamic-linker platform)) - ;; XXX: This one is used bare-bones, without a libc, so add a case - ;; here just so we can keep going. - ((string=? system "arm-elf") "no-ld.so") - ((string=? system "arm-eabi") "no-ld.so") - ((string=? system "xtensa-elf") "no-ld.so") - ((string=? system "avr") "no-ld.so") - ((string=? system "propeller-elf") "no-ld.so") - ((string=? system "i686-mingw") "no-ld.so") - ((string=? system "x86_64-mingw") "no-ld.so") - ((string=? system "vc4-elf") "no-ld.so") + ;; TODO: Define those as platforms. + ((string=? system "i686-gnu") "/lib/ld.so.1") + ((string=? system "powerpc64-linux") "/lib/ld64.so.1") + ((string=? system "alpha-linux") "/lib/ld-linux.so.2") - (else (error "dynamic linker name not known for this system" - system)))) + ;; XXX: This one is used bare-bones, without a libc, so add a case + ;; here just so we can keep going. + ((string=? system "arm-elf") "no-ld.so") + ((string=? system "arm-eabi") "no-ld.so") + ((string=? system "xtensa-elf") "no-ld.so") + ((string=? system "avr") "no-ld.so") + ((string=? system "propeller-elf") "no-ld.so") + ((string=? system "i686-mingw") "no-ld.so") + ((string=? system "x86_64-mingw") "no-ld.so") + ((string=? system "vc4-elf") "no-ld.so") + + (else (error "dynamic linker name not known for this system" + system))))) ;;; diff --git a/gnu/platform.scm b/gnu/platform.scm index 4c5211e107..fdc3685e7c 100644 --- a/gnu/platform.scm +++ b/gnu/platform.scm @@ -27,6 +27,7 @@ platform-target platform-system platform-linux-architecture + platform-glibc-dynamic-linker platform-modules platforms @@ -58,12 +59,17 @@ ;; ;; The 'linux-architecture' is only relevant if the kernel is Linux. In that ;; case, it corresponds to the ARCH variable used when building Linux. +;; +;; The 'glibc-dynamic-linker' field is the name of Glibc's dynamic linker for +;; the corresponding system. (define-record-type* platform make-platform platform? - (target platform-target) ;"x86_64-linux-gnu" - (system platform-system) ;"x86_64-linux" - (linux-architecture platform-linux-architecture ;"x86" - (default #f))) + (target platform-target) + (system platform-system) + (linux-architecture platform-linux-architecture + (default #f)) + (glibc-dynamic-linker platform-glibc-dynamic-linker)) + ;;; ;;; Platforms. diff --git a/gnu/platforms/arm.scm b/gnu/platforms/arm.scm index 1e61741a35..bf68b2d00f 100644 --- a/gnu/platforms/arm.scm +++ b/gnu/platforms/arm.scm @@ -27,10 +27,12 @@ (platform (target "arm-linux-gnueabihf") (system "armhf-linux") - (linux-architecture "arm"))) + (linux-architecture "arm") + (glibc-dynamic-linker "/lib/ld-linux-armhf.so.3"))) (define aarch64-linux (platform (target "aarch64-linux-gnu") (system "aarch64-linux") - (linux-architecture "arm64"))) + (linux-architecture "arm64") + (glibc-dynamic-linker "/lib/ld-linux-aarch64.so.1"))) diff --git a/gnu/platforms/hurd.scm b/gnu/platforms/hurd.scm new file mode 100644 index 0000000000..328e9818ad --- /dev/null +++ b/gnu/platforms/hurd.scm @@ -0,0 +1,29 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Mathieu Othacehe +;;; +;;; 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 platforms hurd) + #:use-module (gnu platform) + #:use-module (gnu packages linux) + #:use-module (guix records) + #:export (hurd)) + +(define hurd + (platform + (target "i586-pc-gnu") + (system "i586-gnu") + (glibc-dynamic-linker "/lib/ld.so.1"))) diff --git a/gnu/platforms/mips.scm b/gnu/platforms/mips.scm index 84a492699d..174657da13 100644 --- a/gnu/platforms/mips.scm +++ b/gnu/platforms/mips.scm @@ -26,4 +26,5 @@ (platform (target "mips64el-linux-gnu") (system "mips64el-linux") - (linux-architecture "mips"))) + (linux-architecture "mips") + (glibc-dynamic-linker "/lib/ld.so.1"))) diff --git a/gnu/platforms/powerpc.scm b/gnu/platforms/powerpc.scm index 8fadfe88de..1d0b5cb666 100644 --- a/gnu/platforms/powerpc.scm +++ b/gnu/platforms/powerpc.scm @@ -27,10 +27,12 @@ (platform (target "powerpc-linux-gnu") (system "powerpc-linux") - (linux-architecture "powerpc"))) + (linux-architecture "powerpc") + (glibc-dynamic-linker "/lib/ld.so.1"))) (define powerpc64le-linux (platform (target "powerpc64le-linux-gnu") (system "powerpc64le-linux") - (linux-architecture "powerpc"))) + (linux-architecture "powerpc") + (glibc-dynamic-linker "/lib/ld64.so.2"))) diff --git a/gnu/platforms/riscv.scm b/gnu/platforms/riscv.scm index 29a34402a2..c2b4850e55 100644 --- a/gnu/platforms/riscv.scm +++ b/gnu/platforms/riscv.scm @@ -26,4 +26,5 @@ (platform (target "riscv64-linux-gnu") (system "riscv64-linux") - (linux-architecture "riscv"))) + (linux-architecture "riscv") + (glibc-dynamic-linker "/lib/ld-linux-riscv64-lp64d.so.1"))) diff --git a/gnu/platforms/s390.scm b/gnu/platforms/s390.scm index c8caafbe45..d3b1133974 100644 --- a/gnu/platforms/s390.scm +++ b/gnu/platforms/s390.scm @@ -26,4 +26,5 @@ (platform (target "s390x-linux-gnu") (system "s390x-linux") - (linux-architecture "s390"))) + (linux-architecture "s390") + (glibc-dynamic-linker "/lib/ld64.so.1"))) diff --git a/gnu/platforms/x86.scm b/gnu/platforms/x86.scm index 1a5d6a3284..927d359ae8 100644 --- a/gnu/platforms/x86.scm +++ b/gnu/platforms/x86.scm @@ -29,25 +29,30 @@ (platform (target "i686-linux-gnu") (system "i686-linux") - (linux-architecture "i386"))) + (linux-architecture "i386") + (glibc-dynamic-linker "/lib/ld-linux.so.2"))) (define x86_64-linux (platform (target "x86_64-linux-gnu") (system "x86_64-linux") - (linux-architecture "x86_64"))) + (linux-architecture "x86_64") + (glibc-dynamic-linker "/lib/ld-linux-x86-64.so.2"))) (define i686-mingw (platform (target "i686-w64-mingw32") - (system #f))) + (system #f) + (glibc-dynamic-linker #f))) (define x86_64-mingw (platform (target "x86_64-w64-mingw32") - (system #f))) + (system #f) + (glibc-dynamic-linker #f))) (define hurd (platform (target "i586-pc-gnu") - (system "i586-gnu"))) + (system "i586-gnu") + (glibc-dynamic-linker "/lib/ld.so.1"))) From b55310603f0df7d5ae02d47cb8d4be58bf1d41ca Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 7 May 2022 16:45:40 +0200 Subject: [PATCH 186/363] linux: Remove system->linux-architecture procedure. * gnu/packages/linux.scm (system->linux-architecture): Remove it. (make-linux-libre-headers*, make-linux-libre*): Adapt them. * guix/build-system/linux-module.scm (system->arch): Adapt it. * gnu/packages/instrumentation.scm (uftrace): Ditto. * gnu/packages/cross-base.scm (cross-kernel-headers): Ditto. * gnu/packages/bioinformatics.scm (ncbi-vdb): Ditto. * doc/guix.texi (Porting to a new platform): Update it. --- doc/guix.texi | 28 ++++++++++++------------ gnu/packages/bioinformatics.scm | 11 ++++++---- gnu/packages/cross-base.scm | 4 +++- gnu/packages/instrumentation.scm | 8 ++++--- gnu/packages/linux.scm | 34 +++++++++++------------------- guix/build-system/linux-module.scm | 4 ++-- 6 files changed, 44 insertions(+), 45 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 761fceb9c3..df9cbf4851 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -40276,20 +40276,22 @@ one: guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs @end example -For this to work, the @code{glibc-dynamic-linker} procedure in -@code{(gnu packages bootstrap)} must be augmented to return the right -file name for libc's dynamic linker on that platform; likewise, -@code{system->linux-architecture} in @code{(gnu packages linux)} must be -taught about the new platform. +For this to work, it is first required to register a new platform as +defined in the @code{(gnu platform)} module. A platform is making the +connection between a GNU triplet (@pxref{Specifying Target Triplets, GNU +configuration triplets,, autoconf, Autoconf}), the equivalent +@var{system} in Nix notation, the name of the +@var{glibc-dynamic-linker}, and the corresponding Linux architecture +name if applicable. -Once these are built, the @code{(gnu packages bootstrap)} module needs -to be updated to refer to these binaries on the target platform. That -is, the hashes and URLs of the bootstrap tarballs for the new platform -must be added alongside those of the currently supported platforms. The -bootstrap Guile tarball is treated specially: it is expected to be -available locally, and @file{gnu/local.mk} has rules to download it for -the supported architectures; a rule for the new platform must be added -as well. +Once the bootstrap tarball are built, the @code{(gnu packages +bootstrap)} module needs to be updated to refer to these binaries on the +target platform. That is, the hashes and URLs of the bootstrap tarballs +for the new platform must be added alongside those of the currently +supported platforms. The bootstrap Guile tarball is treated specially: +it is expected to be available locally, and @file{gnu/local.mk} has +rules to download it for the supported architectures; a rule for the new +platform must be added as well. In practice, there may be some complications. First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 33bf0921d1..2a312b1989 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -161,6 +161,7 @@ #:use-module (gnu packages wget) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) + #:use-module (gnu platform) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match)) @@ -6576,10 +6577,12 @@ simultaneously.") ;; architecture name ("i386") instead of the target system prefix ;; ("i686"). (mkdir (string-append (assoc-ref outputs "out") "/ilib")) - (copy-recursively (string-append "build/ncbi-vdb/linux/gcc/" - ,(system->linux-architecture - (or (%current-target-system) - (%current-system))) + (copy-recursively (string-append + "build/ncbi-vdb/linux/gcc/" + ,(platform-linux-architecture + (lookup-platform-by-target-or-system + (or (%current-target-system) + (%current-system)))) "/rel/ilib") (string-append (assoc-ref outputs "out") "/ilib")) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 66412b9e92..427fefbcd2 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages hurd) #:use-module (gnu packages mingw) + #:use-module (gnu platform) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -345,7 +346,8 @@ target that libc." `(modify-phases ,phases (replace 'build (lambda _ - (setenv "ARCH" ,(system->linux-architecture target)) + (setenv "ARCH" ,(platform-linux-architecture + (lookup-platform-by-target target))) (format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH")) diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm index c9ca9083e4..c5062388f8 100644 --- a/gnu/packages/instrumentation.scm +++ b/gnu/packages/instrumentation.scm @@ -42,6 +42,7 @@ #:use-module (gnu packages swig) #:use-module (gnu packages tbb) #:use-module (gnu packages xml) + #:use-module (gnu platform) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) @@ -312,9 +313,10 @@ line for tracing control, a @code{lttng-ctl} library for tracing control and a (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs target #:allow-other-keys) - (let ((arch ,(system->linux-architecture - (or (%current-target-system) - (%current-system))))) + (let ((arch ,(platform-linux-architecture + (lookup-platform-by-target-or-system + (or (%current-target-system) + (%current-system)))))) (setenv "ARCH" (cond ((string=? arch "arm64") "aarch64") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7b564e7ef1..4101d4897b 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -158,6 +158,7 @@ #:use-module (gnu packages groff) #:use-module (gnu packages selinux) #:use-module (gnu packages swig) + #:use-module (gnu platform) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) @@ -181,20 +182,6 @@ #:use-module (ice-9 match) #:use-module (ice-9 regex)) -(define-public (system->linux-architecture arch) - "Return the Linux architecture name for ARCH, a Guix system name such as -\"x86_64-linux\" or a target triplet such as \"arm-linux-gnueabihf\"." - (let ((arch (car (string-split arch #\-)))) - (cond ((string=? arch "i686") "i386") - ((string-prefix? "mips" arch) "mips") - ((string-prefix? "arm" arch) "arm") - ((string-prefix? "aarch64" arch) "arm64") - ((string-prefix? "alpha" arch) "alpha") - ((string-prefix? "powerpc" arch) "powerpc") ;including "powerpc64le" - ((string-prefix? "s390" arch) "s390") - ((string-prefix? "riscv" arch) "riscv") - (else arch)))) - (define-public (system->defconfig system) "Some systems (notably powerpc-linux) require a special target for kernel defconfig. Return the appropriate make target if applicable, otherwise return @@ -567,9 +554,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (delete 'configure) (replace 'build (lambda _ - (let ((arch ,(system->linux-architecture - (or (%current-target-system) - (%current-system)))) + (let ((arch ,(platform-linux-architecture + (lookup-platform-by-target-or-system + (or (%current-target-system) + (%current-system))))) (defconfig ,(system->defconfig (or (%current-target-system) (%current-system)))) @@ -807,8 +795,9 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." ,@(match (and configuration-file (configuration-file - (system->linux-architecture - (or (%current-target-system) (%current-system))) + (platform-linux-architecture + (lookup-platform-by-target-or-system + (or (%current-target-system) (%current-system)))) #:variant (version-major+minor version))) (#f ;no config for this platform '()) @@ -839,9 +828,10 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (setenv "KBUILD_BUILD_HOST" "guix") ;; Set ARCH and CROSS_COMPILE. - (let ((arch #$(system->linux-architecture - (or (%current-target-system) - (%current-system))))) + (let ((arch #$(platform-linux-architecture + (lookup-platform-by-target-or-system + (or (%current-target-system) + (%current-system)))))) (setenv "ARCH" arch) (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")) diff --git a/guix/build-system/linux-module.scm b/guix/build-system/linux-module.scm index e82a9ca65c..761ebe25b1 100644 --- a/guix/build-system/linux-module.scm +++ b/guix/build-system/linux-module.scm @@ -50,8 +50,8 @@ (module-ref module 'linux-libre))) (define (system->arch system) - (let ((module (resolve-interface '(gnu packages linux)))) - ((module-ref module 'system->linux-architecture) system))) + (let ((module (resolve-interface '(gnu platform)))) + ((module-ref module 'lookup-platform-by-target-or-system) system))) (define (make-linux-module-builder linux) (package From 051c087d7187d705e98015e8654dd20f66ce23d4 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 8 May 2022 18:52:33 +0200 Subject: [PATCH 187/363] scripts: build: Highlight the current system with --list-systems. * guix/scripts/build.scm (list-systems): Highlight it. --- guix/scripts/build.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index a09c54451f..4383a399a0 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -21,6 +21,7 @@ (define-module (guix scripts build) #:use-module (guix ui) + #:use-module (guix colors) #:use-module (guix scripts) #:autoload (guix import json) (json->scheme-file) #:use-module (guix store) @@ -342,8 +343,15 @@ use '--no-offload' instead~%"))) "Print the available systems." (display (G_ "The available systems are:\n")) (newline) - (format #t "~{ - ~a ~%~}" - (sort (systems) string Date: Sun, 8 May 2022 19:43:47 +0200 Subject: [PATCH 188/363] doc: Add a 'Foreign architectures' chapter. * doc/guix.texi ("Foreign architectures"): New chapter. --- doc/guix.texi | 173 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 172 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index df9cbf4851..184206bec8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -41,7 +41,7 @@ Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* -Copyright @copyright{} 2017, 2018, 2020, 2021 Mathieu Othacehe@* +Copyright @copyright{} 2017, 2018, 2020, 2021, 2022 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* @@ -174,6 +174,7 @@ Weblate} (@pxref{Translating Guix}). * Development:: Guix-aided software development. * Programming Interface:: Using Guix in Scheme. * Utilities:: Package management commands. +* Foreign architectures:: Build for foreign architectures. * System Configuration:: Configuring the operating system. * Home Configuration:: Configuring the home environment. * Documentation:: Browsing software user manuals. @@ -322,6 +323,10 @@ Invoking @command{guix build} * Additional Build Options:: Options specific to 'guix build'. * Debugging Build Failures:: Real life packaging experience. +Foreign architectures +* Using cross-compilation:: Build for foreign architecture using cross-compilation. +* Using native building:: Build for foreign architectures natively. + System Configuration * Using the Configuration System:: Customizing your GNU system. @@ -15211,6 +15216,172 @@ Session_PID: 4278 @end table @end table +@node Foreign architectures +@chapter Foreign architectures + +GNU Guix can target computers of different CPU architectures when +producing packages (@pxref{Invoking guix package}), packs +(@pxref{Invoking guix pack}) or full systems (@pxref{Invoking guix +system}). + +GNU Guix supports two distinct mechanisms to target foreign +architectures: + +@enumerate +@item +The traditional +@uref{https://en.wikipedia.org/wiki/Cross_compiler,cross-compilation} +mechanism. +@item +The native building mechanism which consists in building using the CPU +instruction set of the foreign system you are targeting. It often +requires emulation, using the QEMU program for instance. +@end enumerate + +@menu +* Using cross-compilation:: Build for foreign architecture using cross-compilation. +* Using native building:: Build for foreign architectures natively. +@end menu + +@node Using cross-compilation +@section Using cross-compilation + +@cindex foreign architectures +The GNU Guix commands supporting cross-compilation are proposing the +@option{--list-targets} and @option{--target} options. + +The @option{--list-targets} option lists all the supported targets that +can be passed as an argument to @option{--target}. + +@example +$ guix build --list-targets +The available targets are: + + - aarch64-linux-gnu + - arm-linux-gnueabihf + - i586-pc-gnu + - i686-linux-gnu + - i686-w64-mingw32 + - mips64el-linux-gnu + - powerpc-linux-gnu + - powerpc64le-linux-gnu + - riscv64-linux-gnu + - s390x-linux-gnu + - x86_64-linux-gnu + - x86_64-w64-mingw32 +@end example + +The targets are specified as GNU triplets (@pxref{Specifying Target +Triplets, GNU configuration triplets,, autoconf, Autoconf}). + +Those triplets are passed to GCC and the other underlying compilers +possibly involved when building a package, a system image or any other +GNU Guix output. + +@example +$ guix build --target=aarch64-linux-gnu hello +/gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12 + +$ file /gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello +/gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello: ELF +64-bit LSB executable, ARM aarch64 @dots{} +@end example + +The major benefit of cross-compilation is that there are no performance +penaly compared to emulation using QEMU. There are however higher risks +that some packages fail to cross-compile because few GNU Guix users are +using this mecanism extensively. + +@node Using native building +@section Using native building + +The GNU Guix commands that support impersonating a specific system have +the @option{--list-systems} and @option{--system} options. + +The @option{--list-systems} option lists all the supported systems that +can be passed as an argument to @option{--system}. + +@example +$ guix build --list-systems +The available systems are: + + - x86_64-linux [current] + - aarch64-linux + - armhf-linux + - i586-gnu + - i686-linux + - mips64el-linux + - powerpc-linux + - powerpc64le-linux + - riscv64-linux + - s390x-linux + +$ guix build --system=i686-linux hello +/gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12 + +$ file /gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12/bin/hello +/gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12/bin/hello: ELF +32-bit LSB executable, Intel 80386 @dots{} +@end example + +In the above example, the GNU Guix current system is @var{x86_64-linux}. +The @var{hello} package is however built for the @var{i686-linux} +system. + +This is possible because the @var{i686} CPU instruction set is a subset +of the @var{x86_64}, hence @var{i686} targeting binaries can be run on +@var{x86_64}. + +Still in the context of the previous example, if picking the +@var{aarch64-linux} system and the @command{guix build +--system=aarch64-linux hello} has to build some derivations, an extra +step might be needed. + +The @var{aarch64-linux} targeting binaries cannot directly be run on a +@var{x86_64-linux} system. An emulation layer is requested. The GNU +Guix daemon can take advantage of the Linux kernel +@uref{https://en.wikipedia.org/wiki/Binfmt_misc,binfmt_misc} mechanism +for that. In short, the Linux kernel can defer the execution of a +binary targeting a foreign platform, here @var{aarch64-linux}, to a +userspace program, usually an emulator. + +There is a GNU Guix service that registers QEMU as a backend for the +@code{binfmt_misc} mechanism (@pxref{Virtualization Services, +@code{qemu-binfmt-service-type}}). On Debian based foreign +distributions, the alternative would be the @code{qemu-user-static} +package. + +If the @code{binfmt_misc} mechanism is not setup correctly, the building +will fail this way: + +@example +$ guix build --system=armhf-linux hello --check +@dots{} +@ unsupported-platform /gnu/store/jjn969pijv7hff62025yxpfmc8zy0aq0-hello-2.12.drv aarch64-linux +while setting up the build environment: a `aarch64-linux' is required to +build `/gnu/store/jjn969pijv7hff62025yxpfmc8zy0aq0-hello-2.12.drv', but +I am a `x86_64-linux'@dots{} +@end example + +whereas, with the @code{binfmt_misc} mechanism correctly linked with +QEMU, one can expect to see: + +@example +$ guix build --system=armhf-linux hello --check +/gnu/store/13xz4nghg39wpymivlwghy08yzj97hlj-hello-2.12 +@end example + +The main advantage of native building compared to cross-compiling, is +that more packages are likely to build correctly. However it comes at a +price: compilation backed by QEMU is @emph{way slower} than +cross-compilation, because every instruction needs to be emulated. + +The availability of substitutes for the architecture targeted by the +@code{--system} option can mitigate this problem. An other way to work +around it is to install GNU Guix on a machine which CPU is supporting +the targeted instruction set, an set it up as an offload machine +(@pxref{Daemon Offload Setup}). + @node System Configuration @chapter System Configuration From 0c4d3847a4e6d0a503c6d824d4b10f2845458c1e Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 22 May 2022 15:18:28 +0200 Subject: [PATCH 189/363] platforms: x86: Add a missing export. * gnu/platforms/x86.scm (hurd): Export it. --- gnu/platforms/x86.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/platforms/x86.scm b/gnu/platforms/x86.scm index 927d359ae8..fba7dd4fc0 100644 --- a/gnu/platforms/x86.scm +++ b/gnu/platforms/x86.scm @@ -23,7 +23,8 @@ #:export (i686-linux x86_64-linux i686-mingw - x86_64-mingw)) + x86_64-mingw + hurd)) (define i686-linux (platform From 08756c831cda0dc8cc8a58221378bcf76a4ceff4 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 22 May 2022 16:06:07 +0200 Subject: [PATCH 190/363] self: Ship platform files. * guix/self.scm (compiled-guix): Ship them. --- guix/self.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/self.scm b/guix/self.scm index 943bb0b498..9fff0ade04 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -887,7 +887,8 @@ itself." ,@(scheme-modules* source "gnu/bootloader") ,@(scheme-modules* source "gnu/system") ,@(scheme-modules* source "gnu/services") - ,@(scheme-modules* source "gnu/machine")) + ,@(scheme-modules* source "gnu/machine") + ,@(scheme-modules* source "gnu/platforms/")) (list *core-package-modules* *package-modules* *extra-modules* *core-modules*) #:extensions dependencies From f0e9048e98f0789aa98de88984f4ee0fc9687f52 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sun, 22 May 2022 17:20:18 +0200 Subject: [PATCH 191/363] gnu: sbcl: Improve reproducilbility. This should fix the runtime error of the maxima package: fatal error encountered in SBCL pid 26911 tid 26911: core was built for runtime "localhost-nixbld-2022-03-03-15-45-58" but this is "localhost-nixbld-2022-03-03-08-51-27" * gnu/packages/lisp.scm (sbcl)[arguments]: Add 'fix-build-id' phase. --- gnu/packages/lisp.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index d5f1e94269..ca85cab2b9 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -464,6 +464,18 @@ an interpreter, a compiler, a debugger, and much more.") #:phases (modify-phases %standard-phases (delete 'configure) + (add-after 'unpack 'fix-build-id + ;; One of the build scripts makes a build id using the current date. + ;; Replace it with a reproducible id using a part of the output hash. + (lambda* (#:key outputs #:allow-other-keys) + (let ((hash (substring (assoc-ref outputs "out") + (+ (string-length (%store-directory)) 1) + (+ (string-length (%store-directory)) 9)))) + (substitute* "make-config.sh" + (("echo .* > output/build-id.inc") + (string-append "echo '\"'guix-sbcl-" + hash + "'\"' > output/build-id.inc")))))) (add-after 'unpack 'replace-asdf ;; SBCL developers have not committed to keeping ASDF up to date ;; due to breaking changes [1]. Guix can handle this situation From b25b029a3cc249c970b718d23e9b0a3737234212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 May 2022 18:13:53 +0200 Subject: [PATCH 192/363] gnu: guile-fibers@1.1: Update to c25dcb9. * gnu/packages/guile-xyz.scm (guile-fibers-1.1): Update to c25dcb9. [arguments]: Remove 'regenerate-autotools' phase. --- gnu/packages/guile-xyz.scm | 138 ++++++++++++++++++------------------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 06e3ffb485..6e0ba891bf 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -607,73 +607,73 @@ Unix-style DSV format and RFC 4180 format.") (propagated-inputs `(("guile-lib" ,guile2.2-lib))))) (define-public guile-fibers-1.1 - (package - (name "guile-fibers") - (version "1.1.0") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/wingo/fibers/releases/download/v" - version "/fibers-" version ".tar.gz")) - (sha256 - (base32 - "1lqz39shlhif5fhpyv2wili0yzb0nhf5ciiv7mdqsq0vljirhrm0")) - (patches - (search-patches "guile-fibers-wait-for-io-readiness.patch")))) - (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - ;; This is required to make - ;; "guile-fibers-wait-for-io-readiness.patch" work. - (add-after 'unpack 'regenerate-autotools - (lambda _ - (delete-file "configure"))) - (add-after 'unpack 'support-cross-compilation - (lambda* (#:key target #:allow-other-keys) - ;; Support cross-compilation. These issues are fixed in - ;; Fibers commit c4756b9c336374546a41ac90a4431fcc8f7e98ee - ;; and this phase can be removed for 1.1.1. - (when target - (substitute* "build-aux/guile.am" - (("\\$\\(AM_V_GEN\\)" all) - (string-append all " FIBERS_CROSS_COMPILING=yes ")) - (("compile") - (string-append "compile --target=" target - " -L $(abs_top_srcdir)"))) - (substitute* "fibers/epoll.scm" - (("\\(dynamic-call") - "(unless (getenv \"FIBERS_CROSS_COMPILING\") (dynamic-call") - (("\\(dynamic-link.*" all) - (string-append all ")\n")) - (("#,(%sizeof|%offsetof)" _ prefix) - prefix))))) - (add-after 'install 'mode-guile-objects - (lambda* (#:key outputs #:allow-other-keys) - ;; .go files are installed to "lib/guile/X.Y/cache". - ;; This phase moves them to "…/site-ccache". - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib/guile")) - (old (car (find-files lib "^ccache$" - #:directories? #t))) - (new (string-append (dirname old) - "/site-ccache"))) - (rename-file old new) - #t)))))) - (native-inputs - (list texinfo pkg-config autoconf automake libtool - guile-3.0 ;for 'guild compile - ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS' - gettext-minimal)) - (inputs - (list guile-3.0)) ;for libguile-3.0.so - (supported-systems - ;; This version requires 'epoll' and is thus limited to Linux-based - ;; systems, but this may change soon: - ;; . - (filter (cut string-suffix? "-linux" <>) %supported-systems)) - (synopsis "Lightweight concurrency facility for Guile") - (description - "Fibers is a Guile library that implements a a lightweight concurrency + ;; Pick one commit above 1.1.0, which fixes a bug that's critical for the + ;; Shepherd: . + (let ((commit "c25dcb9cc4b5b977474ffe555b40ce2f1d0d1edc") + (revision "0")) + (package + (name "guile-fibers") + (version (git-version "1.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wingo/fibers") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jwr0y5x8mv8fm4df2vc3ll38fwwbkrm2iwfsfxa8l783a1a6143")) + (patches + (search-patches "guile-fibers-wait-for-io-readiness.patch")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'support-cross-compilation + (lambda* (#:key target #:allow-other-keys) + ;; Support cross-compilation. These issues are fixed in + ;; Fibers commit c4756b9c336374546a41ac90a4431fcc8f7e98ee + ;; and this phase can be removed for 1.1.1. + (when target + (substitute* "build-aux/guile.am" + (("\\$\\(AM_V_GEN\\)" all) + (string-append all " FIBERS_CROSS_COMPILING=yes ")) + (("compile") + (string-append "compile --target=" target + " -L $(abs_top_srcdir)"))) + (substitute* "fibers/epoll.scm" + (("\\(dynamic-call") + "(unless (getenv \"FIBERS_CROSS_COMPILING\") (dynamic-call") + (("\\(dynamic-link.*" all) + (string-append all ")\n")) + (("#,(%sizeof|%offsetof)" _ prefix) + prefix))))) + (add-after 'install 'mode-guile-objects + (lambda* (#:key outputs #:allow-other-keys) + ;; .go files are installed to "lib/guile/X.Y/cache". + ;; This phase moves them to "…/site-ccache". + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib/guile")) + (old (car (find-files lib "^ccache$" + #:directories? #t))) + (new (string-append (dirname old) + "/site-ccache"))) + (rename-file old new) + #t)))))) + (native-inputs + (list texinfo pkg-config autoconf automake libtool + guile-3.0 ;for 'guild compile + ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS' + gettext-minimal)) + (inputs + (list guile-3.0)) ;for libguile-3.0.so + (supported-systems + ;; This version requires 'epoll' and is thus limited to Linux-based + ;; systems, but this may change soon: + ;; . + (filter (cut string-suffix? "-linux" <>) %supported-systems)) + (synopsis "Lightweight concurrency facility for Guile") + (description + "Fibers is a Guile library that implements a a lightweight concurrency facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is like a \"goroutine\" from the Go language: a lightweight thread-like abstraction. Systems built with Fibers can scale up to millions of concurrent @@ -683,8 +683,8 @@ communication between fibers. Note that Fibers makes use of some Guile 2.1/2.2-specific features and is not available for Guile 2.0.") - (home-page "https://github.com/wingo/fibers") - (license license:lgpl3+))) + (home-page "https://github.com/wingo/fibers") + (license license:lgpl3+)))) (define-public guile-fibers (package From 81fed81aeb40a728d4ef278244648f6d9f832831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 May 2022 20:15:55 +0200 Subject: [PATCH 193/363] gnu: guile-fibers: Add 'upstream-name' property. * gnu/packages/guile-xyz.scm (guile-fibers-1.1)[properties]: New field. --- gnu/packages/guile-xyz.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 6e0ba891bf..15d4b099f5 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -684,6 +684,7 @@ communication between fibers. Note that Fibers makes use of some Guile 2.1/2.2-specific features and is not available for Guile 2.0.") (home-page "https://github.com/wingo/fibers") + (properties '((upstream-name . "fibers"))) (license license:lgpl3+)))) (define-public guile-fibers From 8a588eb8715acfa204144329abb080c91018716b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 May 2022 18:22:44 +0200 Subject: [PATCH 194/363] gnu: shepherd: Update to 0.9.1. * gnu/packages/admin.scm (shepherd-0.9): Update to 0.9.1. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 363f26ed0c..f763cb5c19 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -315,14 +315,14 @@ interface and is based on GNU Guile.") (define-public shepherd-0.9 (package (inherit shepherd) - (version "0.9.0") + (version "0.9.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/shepherd/shepherd-" version ".tar.gz")) (sha256 (base32 - "1rdwhrcibs2ly4hjwwb5kmzb133ccjmrfvb0a70cqkv9jy1pg061")))) + "0l2arn6gsyw88xk9phxnyplvv1mn8sqp3ipgyyb0nszdzvxlgd36")))) (arguments (list #:configure-flags #~'("--localstatedir=/var") #:make-flags #~'("GUILE_AUTO_COMPILE=0") From 52aceda4fd61970db118f23d316784ea8df244e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 May 2022 18:23:27 +0200 Subject: [PATCH 195/363] marionette: Add #:address parameter to 'wait-for-tcp-port'. * gnu/build/marionette.scm (wait-for-tcp-port): Add #:address parameter. Honor it, and improve error reporting in the 'failure case. --- gnu/build/marionette.scm | 45 +++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index b336024610..0d2af642c8 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès +;;; Copyright © 2016-2022 Ludovic Courtès ;;; Copyright © 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. @@ -196,31 +196,38 @@ FILE has not shown up after TIMEOUT seconds, raise an error." (error "file didn't show up" file)))) (define* (wait-for-tcp-port port marionette - #:key (timeout 20)) + #:key + (timeout 20) + (address `(make-socket-address AF_INET + INADDR_LOOPBACK + ,port))) "Wait for up to TIMEOUT seconds for PORT to accept connections in -MARIONETTE. Raise an error on failure." +MARIONETTE. ADDRESS must be an expression that returns a socket address, +typically a call to 'make-socket-address'. Raise an error on failure." ;; Note: The 'connect' loop has to run within the guest because, when we ;; forward ports to the host, connecting to the host never raises ;; ECONNREFUSED. (match (marionette-eval - `(begin - (let ((sock (socket PF_INET SOCK_STREAM 0))) - (let loop ((i 0)) - (catch 'system-error - (lambda () - (connect sock AF_INET INADDR_LOOPBACK ,port) - (close-port sock) - 'success) - (lambda args - (if (< i ,timeout) - (begin - (sleep 1) - (loop (+ 1 i))) - 'failure)))))) + `(let* ((address ,address) + (sock (socket (sockaddr:fam address) SOCK_STREAM 0))) + (let loop ((i 0)) + (catch 'system-error + (lambda () + (connect sock address) + (close-port sock) + 'success) + (lambda args + (if (< i ,timeout) + (begin + (sleep 1) + (loop (+ 1 i))) + (list 'failure address)))))) marionette) ('success #t) - ('failure - (error "nobody's listening on port" port)))) + (('failure address) + (error "nobody's listening on port" + (list (inet-ntop (sockaddr:fam address) (sockaddr:addr address)) + (sockaddr:port address)))))) (define* (wait-for-unix-socket file-name marionette #:key (timeout 20)) From d2b3400f79ffaed3357650307376ab69a7ec3b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 May 2022 20:12:27 +0200 Subject: [PATCH 196/363] services: openssh: Listen on both IPv4 and IPv6. Fixes . Reported by Christopher Baines . * gnu/services/ssh.scm (openssh-shepherd-service)[inetd-style?]: New variable. : Use it. When using 'make-inetd-constructor', pass a list of endpoints as is possible with the Shepherd 0.9.1. : Adjust accordingly. * gnu/tests/ssh.scm (run-ssh-test)["wait for port 22"]: Rename to... ["wait for port 22, IPv4"]: ... this. ["wait for port 22, IPv6"]: New test. --- gnu/services/ssh.scm | 21 +++++++++++++++++---- gnu/tests/ssh.scm | 12 +++++++++++- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 7fbbe383e5..be5d029374 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -528,19 +528,32 @@ of user-name/file-like tuples." #~(list (string-append #$(openssh-configuration-openssh config) "/sbin/sshd") "-D" "-f" #$(openssh-config-file config))) + (define inetd-style? + ;; Whether to use 'make-inetd-constructor'. That procedure appeared in + ;; Shepherd 0.9.0, but in 0.9.0, 'make-inetd-constructor' wouldn't let us + ;; pass a list of endpoints, and it wouldn't let us define a service + ;; listening on both IPv4 and IPv6, hence the conditional below. + #~(and (defined? 'make-inetd-constructor) + (not (string=? (@ (shepherd config) Version) "0.9.0")))) + (list (shepherd-service (documentation "OpenSSH server.") (requirement '(syslogd loopback)) (provision '(ssh-daemon ssh sshd)) - (start #~(if (defined? 'make-inetd-constructor) + + (start #~(if #$inetd-style? (make-inetd-constructor (append #$openssh-command '("-i")) - (make-socket-address AF_INET INADDR_ANY - #$port-number) + (list (endpoint + (make-socket-address AF_INET INADDR_ANY + #$port-number)) + (endpoint + (make-socket-address AF_INET6 IN6ADDR_ANY + #$port-number))) #:max-connections #$max-connections) (make-forkexec-constructor #$openssh-command #:pid-file #$pid-file))) - (stop #~(if (defined? 'make-inetd-destructor) + (stop #~(if #$inetd-style? (make-inetd-destructor) (make-kill-destructor))) (auto-start? (openssh-auto-start? config))))) diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm index e3dd601603..3f550db5ea 100644 --- a/gnu/tests/ssh.scm +++ b/gnu/tests/ssh.scm @@ -136,9 +136,19 @@ root with an empty password." (= pid (wait-for-file #$pid-file marionette)) pid))) - (test-assert "wait for port 22" + (test-assert "wait for port 22, IPv4" (wait-for-tcp-port 22 marionette)) + (test-assert "wait for port 22, IPv6" + ;; Make sure it's also available as IPv6. + ;; See . + (wait-for-tcp-port 22 marionette + #:address + `(make-socket-address + AF_INET6 + (inet-pton AF_INET6 "::1") + 22))) + ;; Connect to the guest over SSH. Make sure we can run a shell ;; command there. (test-equal "shell command" From 1151ad7cadb3764e9ceb3e7879674b0b1b8abd98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 May 2022 21:53:42 +0200 Subject: [PATCH 197/363] gnu: parted: Reintroduce version 3.4. * gnu/packages/disk.scm (parted-3.4): New variable. --- gnu/packages/disk.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 2a583c64c1..40886a9e79 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -22,7 +22,7 @@ ;;; Copyright © 2021 Mathieu Othacehe ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Justin Veilleux -;;; Copyright © 2014 Ludovic Courtès +;;; Copyright © 2014, 2022 Ludovic Courtès ;;; Copyright © 2022 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. @@ -272,6 +272,18 @@ tmpfs/ramfs filesystems.") tables. It includes a library and command-line utility.") (license license:gpl3+))) +(define-public parted-3.4 + (package + (inherit parted) + (version "3.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/parted/parted-" + version ".tar.xz")) + (sha256 + (base32 + "0hjkv84x1bs2qqyx1fnzjqyyqrhv7kpdbq9bgydmi99d8wi80ag1")))))) + (define-public fdisk (package (name "fdisk") From 81f7bb1691dc9dc69fc6e584ad8c6e36e495c103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 22 May 2022 21:55:18 +0200 Subject: [PATCH 198/363] gnu: guile-parted: Depend on Parted 3.4. Fixes . * gnu/packages/guile-xyz.scm (guile-parted)[inputs]: Replace 'parted' by 'parted-3.4'. --- gnu/packages/guile-xyz.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 15d4b099f5..2c18fc138c 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1445,7 +1445,9 @@ microblogging service.") '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings (inputs - (list guile-3.0 parted)) + ;; XXX: Use Parted 3.4 to work around issues when using 3.5 in the Guix + ;; System installer: . + (list guile-3.0 parted-3.4)) (propagated-inputs (list guile-bytestructures)) (native-inputs From a2b7adcd4f20ba4423b010b5576120785d41c365 Mon Sep 17 00:00:00 2001 From: Cees de Groot Date: Fri, 13 May 2022 15:21:24 -0400 Subject: [PATCH 199/363] gnu: erlang: Update to 24.3.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/erlang.scm (erlang): Update to 24.3.4. Signed-off-by: Ludovic Courtès --- gnu/packages/erlang.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 888a0f4f1e..779024cbeb 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -41,7 +41,7 @@ (define-public erlang (package (name "erlang") - (version "24.2.1") + (version "24.3.4") (source (origin (method git-fetch) ;; The tarball from http://erlang.org/download contains many @@ -53,7 +53,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0glbdh4la0k4ikygj6rssvlbxbzybjn0bpp276wq170d6rgahlf6")) + "0rrnppglh261x81w9bzmh6wvxy8xjqiiw3nvv4q2214pmc1pxilr")) (patches (search-patches "erlang-man-path.patch")))) (build-system gnu-build-system) (native-inputs @@ -67,7 +67,7 @@ (version-major+minor version) ".tar.gz")) (sha256 (base32 - "0k2zghkkqmf8g66hfb6zff2b7q5sl3r9y6lmv56ky03wzh9lpbjn")))))) + "057nrw8563nyd98l5zp9ffi3npw6h3jx06j1hv110wzpxqi25bb8")))))) (inputs (list ncurses openssl wxwidgets)) (propagated-inputs From 4ba4cb1d49d70a00f7236f60bd92e5eccef573dd Mon Sep 17 00:00:00 2001 From: Cees de Groot Date: Fri, 13 May 2022 15:36:24 -0400 Subject: [PATCH 200/363] gnu: elixir: Update to 1.13.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elixir.scm (elixir): Update to 1.13.4. Signed-off-by: Ludovic Courtès --- gnu/packages/elixir.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 1336a99a0b..0261a40458 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -36,7 +36,7 @@ (define-public elixir (package (name "elixir") - (version "1.13.2") + (version "1.13.4") (source (origin (method git-fetch) @@ -45,7 +45,7 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1d3mk7abn3rk536vmsfbm4smj52rljff6s40sndg0i7p6dl3kzxa")) + (base32 "1z19hwnv7czmg3p56hdk935gqxig3x7z78yxckh8fs1kdkmslqn4")) (patches (search-patches "elixir-path-length.patch")))) (build-system gnu-build-system) (arguments From 17e3b7d28fd030f88e1824a937179d80432fcc8a Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 23 May 2022 09:03:51 +0200 Subject: [PATCH 201/363] system: image: Fix indentation. * gnu/system/image.scm: Fix it. --- gnu/system/image.scm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index 42e215f614..251615a757 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -295,11 +295,12 @@ used in the image." ;; the hdimage format (raw disk-image) is supported. (cond ((memq format '(disk-image compressed-qcow2)) "hdimage") - (else - (raise (condition - (&message - (message - (format #f (G_ "Unsupported image type ~a~%.") format)))))))) + (else + (raise (condition + (&message + (message + (format #f (G_ "Unsupported image type ~a~%.") + format)))))))) (define (partition->dos-type partition) ;; Return the MBR partition type corresponding to the given PARTITION. @@ -396,10 +397,10 @@ used in the image." (define (genimage-type-options image-type image) (cond - ((equal? image-type "hdimage") - (format #f "~%~/~/gpt = ~a~%~/" - (if (gpt-image? image) "true" "false"))) - (else ""))) + ((equal? image-type "hdimage") + (format #f "~%~/~/gpt = ~a~%~/" + (if (gpt-image? image) "true" "false"))) + (else ""))) (let* ((format (image-format image)) (image-type (format->image-type format)) From db3193f55b455440958c8ce0386a88cf8f75b1e5 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 23 May 2022 09:16:30 +0200 Subject: [PATCH 202/363] system: image: Tweak error message. * gnu/system/image.scm (system-disk-image): Tweak it. --- gnu/system/image.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index 251615a757..2cd035e4e7 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -299,7 +299,7 @@ used in the image." (raise (condition (&message (message - (format #f (G_ "Unsupported image type ~a~%.") + (format #f (G_ "unsupported image type: ~a") format)))))))) (define (partition->dos-type partition) From 76139eb2535b6b4ac53178c7066d92550f817d7e Mon Sep 17 00:00:00 2001 From: Pavel Shlyak Date: Sun, 22 May 2022 16:52:45 +0300 Subject: [PATCH 203/363] system: image: Support MBR vfat partitions. * gnu/system/image.scm (system-disk-image): Support them. Signed-off-by: Mathieu Othacehe --- gnu/system/image.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index 2cd035e4e7..cdb6c09633 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020, 2021 Mathieu Othacehe ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2022 Pavel Shlyak ;;; ;;; This file is part of GNU Guix. ;;; @@ -305,10 +306,18 @@ used in the image." (define (partition->dos-type partition) ;; Return the MBR partition type corresponding to the given PARTITION. ;; See: https://en.wikipedia.org/wiki/Partition_type. - (let ((flags (partition-flags partition))) + (let ((flags (partition-flags partition)) + (file-system (partition-file-system partition))) (cond ((member 'esp flags) "0xEF") - (else "0x83")))) + ((string-prefix? "ext" file-system) "0x83") + ((string=? file-system "vfat") "0x0E") + (else + (raise (condition + (&message + (message + (format #f (G_ "unsupported partition type: ~a") + file-system))))))))) (define (partition->gpt-type partition) ;; Return the genimage GPT partition type code corresponding to PARTITION. From 6e99c020b8c19e140635d1a52815d5b3298ed1ec Mon Sep 17 00:00:00 2001 From: Pavel Shlyak Date: Sun, 22 May 2022 16:53:30 +0300 Subject: [PATCH 204/363] system: image: Support GPT vfat partitions. * gnu/system/image.scm (system-disk-image): Support them. Signed-off-by: Mathieu Othacehe --- gnu/system/image.scm | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index cdb6c09633..e86e8c0867 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -320,12 +320,21 @@ used in the image." file-system))))))))) (define (partition->gpt-type partition) - ;; Return the genimage GPT partition type code corresponding to PARTITION. - ;; See https://github.com/pengutronix/genimage/blob/master/README.rst - (let ((flags (partition-flags partition))) + ;; Return the genimage GPT partition type code corresponding to the + ;; given PARTITION. See: + ;; https://github.com/pengutronix/genimage/blob/master/README.rst + (let ((flags (partition-flags partition)) + (file-system (partition-file-system partition))) (cond - ((member 'esp flags) "U") - (else "L")))) + ((member 'esp flags) "U") + ((string-prefix? "ext" file-system) "L") + ((string=? file-system "vfat") "F") + (else + (raise (condition + (&message + (message + (format #f (G_ "unsupported partition type: ~a") + file-system))))))))) (define (partition-image partition) ;; Return as a file-like object, an image of the given PARTITION. A From bb662d71e6e3db69114645d690bc033c5ffa1ac5 Mon Sep 17 00:00:00 2001 From: Pavel Shlyak Date: Sun, 22 May 2022 16:53:49 +0300 Subject: [PATCH 205/363] image: Add bootable flag support. * gnu/build/image.scm (sexp->partition): Add flags support. * gnu/system/image.scm (partition->gexp): Ditto. (system-disk-image): Set the genimage bootable flag if it is part of the partition flags. Signed-off-by: Mathieu Othacehe --- gnu/build/image.scm | 7 +++++-- gnu/system/image.scm | 11 ++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/gnu/build/image.scm b/gnu/build/image.scm index 81caa424f8..3e8b94e2d6 100644 --- a/gnu/build/image.scm +++ b/gnu/build/image.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice ;;; Copyright © 2020 Mathieu Othacehe +;;; Copyright © 2022 Pavel Shlyak ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,12 +49,13 @@ "Take SEXP, a tuple as returned by 'partition->gexp', and turn it into a record." (match sexp - ((size file-system file-system-options label uuid) + ((size file-system file-system-options label uuid flags) (partition (size size) (file-system file-system) (file-system-options file-system-options) (label label) - (uuid uuid))))) + (uuid uuid) + (flags flags))))) (define (size-in-kib size) "Convert SIZE expressed in bytes, to kilobytes and return it as a string." @@ -78,6 +80,7 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum." (fs-options (partition-file-system-options partition)) (label (partition-label partition)) (uuid (partition-uuid partition)) + (flags (partition-flags partition)) (journal-options "lazy_itable_init=1,lazy_journal_init=1")) (apply invoke `("fakeroot" "mke2fs" "-t" ,fs "-d" ,root diff --git a/gnu/system/image.scm b/gnu/system/image.scm index e86e8c0867..74b81d02f6 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -219,7 +219,8 @@ set to the given OS." #$(partition-file-system-options partition) #$(partition-label partition) #$(and=> (partition-uuid partition) - uuid-bytevector))) + uuid-bytevector) + #$(partition-flags partition))) (define gcrypt-sqlite3&co ;; Guile-Gcrypt, Guile-SQLite3, and their propagated inputs. @@ -401,17 +402,21 @@ used in the image." (partition-type-values image partition))) (let ((label (partition-label partition)) (image (partition-image partition)) - (offset (partition-offset partition))) + (offset (partition-offset partition)) + (bootable (if (memq 'boot (partition-flags partition)) + "true" "false" ))) #~(format #f "~/partition ~a { ~/~/~a = ~a ~/~/image = \"~a\" ~/~/offset = \"~a\" + ~/~/bootable = \"~a\" ~/}" #$label #$partition-type-attribute #$partition-type-value #$image - #$offset)))) + #$offset + #$bootable)))) (define (genimage-type-options image-type image) (cond From a6da02217ec340aaf8fc23ea9c42b6b623892309 Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Mon, 23 May 2022 11:34:19 +0200 Subject: [PATCH 206/363] news: Add 'de' translation. * etc/news.scm: Add German translation of 'guix import elm' entry. --- etc/news.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/etc/news.scm b/etc/news.scm index da5d86076b..a74ca94b8a 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -28,6 +28,7 @@ (entry (commit "903c82583e1cec4c9ff09d5895c5cc646c37b661") (title (en "New @command{guix import elm} command") + (de "Neuer Befehl @command{guix import elm}") (fr "Nouvelle commande @command{guix import elm}")) (body (en "The new @command{guix import elm} command allows packagers to @@ -42,6 +43,19 @@ Run @command{info \"(guix) Invoking guix import\"} for more info. This comes with a new build system for Elm packages---run @command{info \"(guix) Build Systems\"} for details.") + (de "Mit dem neuen Befehl @command{guix import elm} können Paketautoren +eine Paketdefinition anhand des Namens eines Pakets für Elm, einer funktionalen +Programmiersprache für das Web, erzeugen: + +@example +guix import elm elm/bytes +@end example + +Führen Sie @command{info \"(guix.de) Aufruf von guix import\"} aus, um mehr +Informationen zu bekommen. + +Dazu kommt ein neues Erstellungssystem für Elm-Pakete. Führen Sie +@command{info \"(guix.de) Erstellungssysteme\"} aus, um mehr zu erfahren.") (fr "La nouvelle commande @command{guix import elm} permet de générer une définition de paquet reposant sur Elm, un langage de programmation fonctionnelle pour le Web: From aaf547824e389b68c028c9b3fd4d15fd2991dc31 Mon Sep 17 00:00:00 2001 From: Josselin Poiret Date: Mon, 9 May 2022 16:54:10 +0200 Subject: [PATCH 207/363] scripts: package: Transform before creating manifest entries. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/scripts/package.scm (options->installable): Add TRANSFORM argument, to be able to directly transform the new packages before creating their manifest entries. (process-actions): Remove transform-entry, and step3, transforming directly in step2. * tests/guix-package.sh: Add test. Signed-off-by: Ludovic Courtès --- guix/scripts/package.scm | 36 ++++++++++++------------------------ tests/guix-package.sh | 30 ++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 24 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index d007005607..4673cf18b2 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2020 Ricardo Wurmus ;;; Copyright © 2020 Simon Tournier ;;; Copyright © 2018 Steve Sprang +;;; Copyright © 2022 Josselin Poiret ;;; ;;; This file is part of GNU Guix. ;;; @@ -694,10 +695,10 @@ the resulting manifest entry." (manifest-entry-with-provenance (package->manifest-entry package output))) -(define (options->installable opts manifest transaction) - "Given MANIFEST, the current manifest, and OPTS, the result of 'args-fold', -return an variant of TRANSACTION that accounts for the specified installations -and upgrades." +(define (options->installable opts manifest transform transaction) + "Given MANIFEST, the current manifest, OPTS, and TRANSFORM, the result of +'args-fold', return an variant of TRANSACTION that accounts for the specified +installations, upgrades and transformations." (define upgrade? (options->upgrade-predicate opts)) @@ -714,13 +715,14 @@ and upgrades." (('install . (? package? p)) ;; When given a package via `-e', install the first of its ;; outputs (XXX). - (package->manifest-entry* p "out")) + (package->manifest-entry* (transform p) "out")) (('install . (? string? spec)) (if (store-path? spec) (store-item->manifest-entry spec) (let-values (((package output) (specification->package+output spec))) - (package->manifest-entry* package output)))) + (package->manifest-entry* (transform package) + output)))) (('install . obj) (leave (G_ "cannot install non-package object: ~s~%") obj)) @@ -979,16 +981,6 @@ processed, #f otherwise." (define profile (or (assoc-ref opts 'profile) %current-profile)) (define transform (options->transformation opts)) - (define (transform-entry entry) - (let ((item (transform (manifest-entry-item entry)))) - (manifest-entry-with-transformations - (manifest-entry - (inherit entry) - (item item) - (version (if (package? item) - (package-version item) - (manifest-entry-version entry))))))) - (when (equal? profile %current-profile) ;; Normally the daemon created %CURRENT-PROFILE when we connected, unless ;; it's a version that lacks the fix for @@ -1021,16 +1013,12 @@ processed, #f otherwise." (map load-manifest files)))))) (step1 (options->removable opts manifest (manifest-transaction))) - (step2 (options->installable opts manifest step1)) - (step3 (manifest-transaction - (inherit step2) - (install (map transform-entry - (manifest-transaction-install step2))))) - (new (manifest-perform-transaction manifest step3)) + (step2 (options->installable opts manifest transform step1)) + (new (manifest-perform-transaction manifest step2)) (trans (if (null? files) - step3 + step2 (fold manifest-transaction-install-entry - step3 + step2 (manifest-entries manifest))))) (warn-about-old-distro) diff --git a/tests/guix-package.sh b/tests/guix-package.sh index d1b383d2ad..dedba2fd74 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -1,6 +1,7 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2012-2022 Ludovic Courtès # Copyright © 2013 Nikita Karetnikov +# Copyright © 2022 Josselin Poiret # # This file is part of GNU Guix. # @@ -210,6 +211,35 @@ test "$(readlink -f "$profile/bin/guile")" \ test ! -f "$profile/bin/sed" rm "$profile" "$profile"-[0-9]-link +# Make sure transformations apply to propagated inputs and don't lead to +# conflicts when installing them alongside, see +# . +mkdir "$module_dir" +cat > "$module_dir/test.scm" <. From 95b0544fcfa1a663435a9ac84db94312b938022b Mon Sep 17 00:00:00 2001 From: Nicolas Graves Date: Wed, 27 Apr 2022 07:39:27 +0200 Subject: [PATCH 208/363] import: utils: Update list of SPDX licenses. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/import/utils.scm (spdx-string->license): Update. Signed-off-by: Ludovic Courtès --- guix/import/utils.scm | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 9cadbb3d5f..646921c73b 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -132,7 +132,7 @@ of the string VERSION is replaced by the symbol 'version." "Convert STR, a SPDX formatted license identifier, to a license object. Return #f if STR does not match any known identifiers." ;; https://spdx.org/licenses/ - ;; The psfl, gfl1.0, nmap, repoze + ;; The gfl1.0, nmap, repoze ;; licenses doesn't have SPDX identifiers ;; ;; Please update guix/licenses.scm when modifying @@ -143,14 +143,17 @@ of the string VERSION is replaced by the symbol 'version." ;; or "GPL-N-or-later" as appropriate. Likewise for LGPL ;; and AGPL ("AGPL-1.0" 'license:agpl1) + ("AGPL-1.0-only" 'license:agpl1) ("AGPL-3.0" 'license:agpl3) ("AGPL-3.0-only" 'license:agpl3) ("AGPL-3.0-or-later" 'license:agpl3+) ("Apache-1.1" 'license:asl1.1) ("Apache-2.0" 'license:asl2.0) + ("APSL-2.0" 'license:apsl2) ("BSL-1.0" 'license:boost1.0) ("0BSD" 'license:bsd-0) - ("BSD-2-Clause-FreeBSD" 'license:bsd-2) + ("BSD-2-Clause" 'license:bsd-2) + ("BSD-2-Clause-FreeBSD" 'license:bsd-2) ;flagged as deprecated on spdx ("BSD-3-Clause" 'license:bsd-3) ("BSD-4-Clause" 'license:bsd-4) ("CC0-1.0" 'license:cc0) @@ -161,17 +164,29 @@ of the string VERSION is replaced by the symbol 'version." ("CC-BY-SA-3.0" 'license:cc-by-sa3.0) ("CC-BY-SA-4.0" 'license:cc-by-sa4.0) ("CDDL-1.0" 'license:cddl1.0) + ("CDDL-1.1" 'license:cddl1.1) + ("CECILL-2.1" 'license:cecill) + ("CECILL-B" 'license:cecill-b) ("CECILL-C" 'license:cecill-c) ("Artistic-2.0" 'license:artistic2.0) ("ClArtistic" 'license:clarified-artistic) + ("copyleft-next-0.3.0" 'license:copyleft-next) ("CPL-1.0" 'license:cpl1.0) ("EPL-1.0" 'license:epl1.0) + ("EPL-2.0" 'license:epl2.0) + ("EUPL-1.2" 'license:eupl1.2) ("MIT" 'license:expat) ("FTL" 'license:freetype) + ("FreeBSD-DOC" 'license:freebsd-doc) ("Freetype" 'license:freetype) + ("FSFAP" 'license:fsf-free) + ("FSFUL" 'license:fsf-free) ("GFDL-1.1" 'license:fdl1.1+) + ("GFDL-1.1-or-later" 'license:fdl1.1+) ("GFDL-1.2" 'license:fdl1.2+) + ("GFDL-1.2-or-later" 'license:fdl1.2+) ("GFDL-1.3" 'license:fdl1.3+) + ("GFDL-1.3-or-later" 'license:fdl1.3+) ("Giftware" 'license:giftware) ("GPL-1.0" 'license:gpl1) ("GPL-1.0-only" 'license:gpl1) @@ -204,14 +219,24 @@ of the string VERSION is replaced by the symbol 'version." ("LGPL-3.0-only" 'license:lgpl3) ("LGPL-3.0+" 'license:lgpl3+) ("LGPL-3.0-or-later" 'license:lgpl3+) + ("LPPL-1.0" 'license:lppl) + ("LPPL-1.1" 'license:lppl) + ("LPPL-1.2" 'license:lppl1.2) + ("LPPL-1.3a" 'license:lppl1.3a) + ("LPPL-1.3c" 'license:lppl1.3c) + ("MirOS" 'license:miros) ("MPL-1.0" 'license:mpl1.0) ("MPL-1.1" 'license:mpl1.1) ("MPL-2.0" 'license:mpl2.0) ("MS-PL" 'license:ms-pl) ("NCSA" 'license:ncsa) + ("OGL-UK-1.0" 'license:ogl-psi1.0) ("OpenSSL" 'license:openssl) ("OLDAP-2.8" 'license:openldap2.8) + ("OPL-1.0" 'license:opl1.0+) ("CUA-OPL-1.0" 'license:cua-opl1.0) + ("PSF-2.0" 'license:psfl) + ("OSL-2.1" 'license:osl2.1) ("QPL-1.0" 'license:qpl) ("Ruby" 'license:ruby) ("SGI-B-2.0" 'license:sgifreeb2.0) @@ -220,6 +245,9 @@ of the string VERSION is replaced by the symbol 'version." ("TCL" 'license:tcl/tk) ("Unlicense" 'license:unlicense) ("Vim" 'license:vim) + ("W3C" 'license:w3c) + ("WTFPL" 'license:wtfpl2) + ("wxWindow" 'license:wxwindows3.1+) ;flagged as deprecated on spdx ("X11" 'license:x11) ("ZPL-2.1" 'license:zpl2.1) ("Zlib" 'license:zlib) From 5437c90953e679503c413552b2496e74e0c51fcf Mon Sep 17 00:00:00 2001 From: kiasoc5 Date: Sun, 27 Mar 2022 15:26:08 -0400 Subject: [PATCH 209/363] gnu: python-plotly: Update to 5.6.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/graph.scm (python-plotly): Update to 5.6.0. Signed-off-by: Ludovic Courtès --- gnu/packages/graph.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 981c4d4793..6d1575a0bd 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -212,7 +212,7 @@ lines.") (define-public python-plotly (package (name "python-plotly") - (version "4.14.3") + (version "5.6.0") (source (origin (method git-fetch) (uri (git-reference @@ -221,11 +221,15 @@ lines.") (file-name (git-file-name name version)) (sha256 (base32 - "02wlgy7gf3v5ckiq9ab3prm53cckxkavlghqgkk9xw2sfmmrn61q")))) + "0kc9v5ampq2paw6sls6zdchvqvis7b1z8xhdvlhz5xxdr1vj5xnn")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases + (add-before 'build 'skip-npm + ;; npm is not packaged so build without it + (lambda _ + (setenv "SKIP_NPM" "T"))) (add-after 'unpack 'chdir (lambda _ (chdir "packages/python/plotly") @@ -247,6 +251,7 @@ lines.") python-requests python-retrying python-six + python-tenacity python-statsmodels)) (home-page "https://plotly.com/python/") (synopsis "Interactive plotting library for Python") From 4a6acd04c34b237a18a2b5a7a6f1c4751c07b3f2 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Mon, 2 May 2022 21:16:44 +0000 Subject: [PATCH 210/363] gnu: python-meshio: Remove input labels. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/simulation.scm (python-meshio)[inputs, native-inputs, propagated-inputs]: Remove labels. Signed-off-by: Ludovic Courtès --- gnu/packages/simulation.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index b15743f747..03d8517168 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -792,13 +792,13 @@ river flooding.") #t)))) (build-system python-build-system) (inputs - `(("h5py" ,python-h5py) - ("netcdf4" ,python-netcdf4))) + (list python-h5py + python-netcdf4)) (native-inputs - `(("pytest" ,python-pytest))) + (list python-pytest)) (propagated-inputs - `(("importlib-metadata" ,python-importlib-metadata) - ("numpy" ,python-numpy))) + (list python-importlib-metadata + python-numpy)) (arguments `(#:phases (modify-phases %standard-phases From c76ba2766237af97e6b4bbe32c9b0d0d0b7c7152 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Mon, 2 May 2022 21:16:49 +0000 Subject: [PATCH 211/363] gnu: python-meshio: Remove trailing booleans. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/simulation.scm (python-meshio)[snippet]: Remove trailing boolean (and therefore the 'begin'). [arguments]: Remove trailing boolean. Signed-off-by: Ludovic Courtès --- gnu/packages/simulation.scm | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index 03d8517168..cbd4a1d3e7 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -785,11 +785,9 @@ river flooding.") (base32 "0kv832s2vyff30zz8yqypw5jifwdanvh5x56d2bzkvy94h4jlddy")) (snippet - '(begin - (let ((file (open-file "setup.py" "a"))) - (display "from setuptools import setup\nsetup()" file) - (close-port file)) - #t)))) + '(let ((file (open-file "setup.py" "a"))) + (display "from setuptools import setup\nsetup()" file) + (close-port file))))) (build-system python-build-system) (inputs (list python-h5py @@ -805,8 +803,7 @@ river flooding.") (replace 'check (lambda* (#:key outputs inputs #:allow-other-keys) (add-installed-pythonpath inputs outputs) - (invoke "python" "-m" "pytest" "-v" "tests") - #t))))) + (invoke "python" "-m" "pytest" "-v" "tests")))))) (home-page "https://github.com/nschloe/meshio") (synopsis "I/O for mesh files") (description "There are various file formats available for From ec27aafcd32da20059c5d5545878af2f9395da13 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Mon, 2 May 2022 21:16:58 +0000 Subject: [PATCH 212/363] gnu: python-meshio: Honor #:tests? flag. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/simulation.scm (python-meshio)[arguments]: Adjust custom 'check' phase to honor the #:tests? flag. Remove unnecessary 'add-installed-pythonpath' call. Signed-off-by: Ludovic Courtès --- gnu/packages/simulation.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index cbd4a1d3e7..b7b8010ef2 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -798,12 +798,12 @@ river flooding.") (list python-importlib-metadata python-numpy)) (arguments - `(#:phases + '(#:phases (modify-phases %standard-phases (replace 'check - (lambda* (#:key outputs inputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" "-m" "pytest" "-v" "tests")))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "-m" "pytest" "-v" "tests"))))))) (home-page "https://github.com/nschloe/meshio") (synopsis "I/O for mesh files") (description "There are various file formats available for From 6803a29db4b3cd8eafd9b2c153876f66ae65d32b Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Mon, 2 May 2022 21:17:10 +0000 Subject: [PATCH 213/363] gnu: python-meshio: Update to 5.3.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/simulation.scm (python-meshio): Update to 5.3.4. [source]: Reindent. [propagated-inputs]: Add python-rich. Signed-off-by: Ludovic Courtès --- gnu/packages/simulation.scm | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index b7b8010ef2..7afc36786d 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -776,18 +776,18 @@ river flooding.") (define-public python-meshio (package (name "python-meshio") - (version "4.4.6") + (version "5.3.4") (source - (origin - (method url-fetch) - (uri (pypi-uri "meshio" version)) - (sha256 - (base32 - "0kv832s2vyff30zz8yqypw5jifwdanvh5x56d2bzkvy94h4jlddy")) - (snippet - '(let ((file (open-file "setup.py" "a"))) - (display "from setuptools import setup\nsetup()" file) - (close-port file))))) + (origin + (method url-fetch) + (uri (pypi-uri "meshio" version)) + (sha256 + (base32 + "1w39qcg0rw5kb04j7sa45fnqd6k20fsdgrf62cmw2ygjgwnnjh72")) + (snippet + '(let ((file (open-file "setup.py" "a"))) + (display "from setuptools import setup\nsetup()" file) + (close-port file))))) (build-system python-build-system) (inputs (list python-h5py @@ -796,7 +796,8 @@ river flooding.") (list python-pytest)) (propagated-inputs (list python-importlib-metadata - python-numpy)) + python-numpy + python-rich)) (arguments '(#:phases (modify-phases %standard-phases From 62f16063a1eae0be6242a27dead1e2430b40a2d6 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Mon, 2 May 2022 21:17:17 +0000 Subject: [PATCH 214/363] gnu: Add python-pyperf. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-pyperf): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 3c4fa16d16..95ed00da50 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -31144,6 +31144,53 @@ uses the parsed regular expression, so you get a much more accurate result than trying to just split strings.") (license license:asl2.0))) +(define-public python-pyperf + (package + (name "python-pyperf") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyperf" version)) + (sha256 + (base32 "189qf9wdbig0fk4n3bavx8acgdbay5lllfvw48jvbfaafb7y5hja")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + ;; Some of these tests fail with: + ;; + ;; ModuleNotFoundError: No module named 'pyperf' + ;; + ;; even when calling ‘add-installed-pythonpath’ in the ‘check’ + ;; phase. + (delete-file "pyperf/tests/test_examples.py"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; From tox.ini's ‘testenv.commands’. + (invoke "python" "-bb" "-Wd" + "-m" "unittest" "discover" + "-s" "pyperf/tests/" "-v"))))))) + (native-inputs + (list python-psutil)) + (home-page "https://github.com/psf/pyperf") + (synopsis "Toolkit for running Python benchmarks") + (description "The Python @code{pyperf} module is a toolkit for writing, +running and analyzing benchmarks. It features a simple API that can: + +@itemize +@item automatically calibrate a benchmark for a time budget; +@item spawn multiple worker processes; +@item compute the mean and standard deviation; +@item detect if a benchmark result seems unstable; +@item store benchmark results in JSON format; +@item support multiple units: seconds, bytes and integer. +@end itemize") + (license license:expat))) + (define-public python-pydispatcher (package (name "python-pydispatcher") From 3a36e5409c8f6513fb8858f199065d28f227e80a Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Mon, 2 May 2022 21:17:23 +0000 Subject: [PATCH 215/363] gnu: Add python-pyvips. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-pyvips): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 60 +++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 95ed00da50..78954db2e3 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -179,6 +179,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages inkscape) #:use-module (gnu packages image) + #:use-module (gnu packages image-processing) #:use-module (gnu packages imagemagick) #:use-module (gnu packages jupyter) #:use-module (gnu packages kerberos) @@ -7739,6 +7740,65 @@ write a wide range of image data, including animated images, video, volumetric data, and scientific formats.") (license license:bsd-2))) +(define-public python-pyvips + (package + (name "python-pyvips") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyvips" version)) + (sha256 + (base32 "0lq71iiic4pc8qhxr60gi141w25pjnn4vsh05d5l0fjkgjsv137b")))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + ;; Maybe switch to API mode (i.e., build the C extension)? + ;; It is advertised as faster to start up and run. + ;; However, even with ‘pkg-config’ and ‘python-pkgconfig’ in + ;; ‘native-inputs’, the API mode build fails with: + ;; + ;; Falling back to ABI mode. Details: unable to find pkg-config package "vips" + ;; + ;; The build doesn't actually fail without the below + ;; substitution, it's just slower because ‘setup.py’ tries + ;; (unsuccessfully) to download the Python ‘pkgconfig’ module. + (add-after 'unpack 'fix-build + (lambda _ + (substitute* "setup.py" + (("^( +setup_)API\\(\\)\n" _ prefix) + (string-append prefix "ABI()\n"))))) + (add-after 'unpack 'fix-paths + (lambda _ + (substitute* "pyvips/__init__.py" + (("^( +_vips_libname) = '(libvips.so.42)'" + _ var libname) + (format #f "~a = '~a/lib/~a'" + var #$(this-package-input "vips") libname)) + (("^( +_gobject_libname) = '(libgobject-2.0.so.0)'" + _ var libname) + (format #f "~a = '~a/lib/~a'" + var #$(this-package-input "glib") libname))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "setup.py" "test"))))))) + (native-inputs + (list python-pyperf + python-pytest + python-pytest-flake8 + python-pytest-runner)) + (inputs + (list glib vips)) + (propagated-inputs + (list python-cffi)) + (home-page "https://github.com/libvips/pyvips") + (synopsis "Python bindings for VIPS") + (description "The @code{pyvips} package provides Python bindings for VIPS, +a multithreaded image-processing system with low memory needs.") + (license license:expat))) + (define-public python-pycparser (package (name "python-pycparser") From e09496eb5dd51fb924fd4d98d7c21c41043df926 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Mon, 2 May 2022 21:17:33 +0000 Subject: [PATCH 216/363] gnu: Add python-scooby. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-pyvips-for-python-scooby, python-scooby): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 81 +++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 78954db2e3..ea1261d17e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -122,6 +122,7 @@ ;;; Copyright © 2022 Wamm K. D. ;;; Copyright © 2022 Jai Vetrivelan ;;; Copyright © 2022 Artyom V. Poptsov +;;; Copyright © 2022 Paul A. Patience ;;; ;;; This file is part of GNU Guix. ;;; @@ -31556,3 +31557,83 @@ written in C.") (synopsis "Cython bindings for MurmurHash2") (description "This package provides Cython bindings for MurmurHash2.") (license license:expat))) + +;; Scooby requires for its test suite a ‘pyvips’ package that is missing its +;; VIPS dependency. +(define python-pyvips-for-python-scooby + (package + (inherit python-pyvips) + (name "python-pyvips-for-python-scooby") + (arguments + (substitute-keyword-arguments (package-arguments python-pyvips) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'fix-paths) + ;; The checks won't succeed without VIPS. + (delete 'check) + (delete 'sanity-check))))) + (inputs + (modify-inputs (package-inputs python-pyvips) + (delete "vips"))) + (synopsis "pyvips for Scooby's test suite"))) + +(define-public python-scooby + (package + (name "python-scooby") + (version "0.5.12") + (source + ;; The PyPI tarball does not contain the tests. + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/banesullivan/scooby") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gkpmz8wl3jg8ylf1na35308sznw2g9wx33zqlyq5i2gpy2ml9mw")))) + (build-system python-build-system) + (native-inputs + (list python-beautifulsoup4 + python-numpy + python-pytest + python-pytest-cov + python-pyvips-for-python-scooby + python-scipy)) + (propagated-inputs + (list python-psutil)) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "tests/test_scooby.py" + ;; The test suite uses the no-version PyPI package + ;; (https://pypi.org/project/no-version/), + ;; but it doesn't seem worth packaging in Guix just for this. + (("scooby\\.report\\.VERSION_NOT_FOUND") + "scooby.report.MODULE_NOT_FOUND") + (("^ +import no_version # noqa.*") "")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) + (home-page "https://github.com/banesullivan/scooby") + (synopsis "Report hardware information and Python package versions") + (description + "The Scooby package reports the following information about the currently +running system: + +@itemize +@item operating system name; +@item hardware information including machine type (e.g., @samp{i386}, +@samp{x86_64}, etc.), CPU count and total RAM; +@item Python environment (e.g., Python, IPython, etc.); +@item file system name; +@item Python version; +@item versions of specified Python packages. +@end itemize + +It can generate reports as HTML tables or plain text lists. + +Scooby has no required dependencies, and only few optional dependencies.") + (license license:expat))) From 4ab5c8348d29fb71c98a920a478f4b319faacf29 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Mon, 2 May 2022 21:17:40 +0000 Subject: [PATCH 217/363] gnu: Add python-pyvista. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-science.scm (python-pyvista): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/python-science.scm | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 90809e8e56..6bc726fc83 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -1187,6 +1187,58 @@ pandas code.") aggregated sum and more.") (license license:bsd-3))) +(define-public python-pyvista + (package + (name "python-pyvista") + (version "0.34.0") + (source + ;; The PyPI tarball does not contain the tests. + ;; (However, we don't yet actually run the tests.) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pyvista/pyvista") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f2x2wvi5pkpv5h3jrnx8zxnaj51navfqp2fdna1l9rpjgjjf94g")))) + (build-system python-build-system) + (propagated-inputs + (list python-appdirs + python-imageio + python-matplotlib + python-meshio + python-numpy + python-pillow + python-scooby + vtk)) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; Disable tests for now because they require several modules + ;; currently unpackaged in Guix. + (delete 'check) + ;; Disable the sanity check, which fails with the following error: + ;; + ;; ...checking requirements: ERROR: pyvista==0.34.0 DistributionNotFound(Requirement.parse('vtk'), {'pyvista'}) + (delete 'sanity-check)))) + (home-page "https://docs.pyvista.org/") + (synopsis "3D plotting and mesh analysis through VTK") + (description + "PyVista is... + +@itemize +@item @emph{Pythonic VTK}: a high-level API to the Visualization +Toolkit (VTK); +@item mesh data structures and filtering methods for spatial datasets; +@item 3D plotting made simple and built for large/complex data geometries. +@end itemize + +This package provides a Pythonic, well-documented interface exposing VTK's +powerful visualization backend to facilitate rapid prototyping, analysis, and +visual integration of spatially referenced datasets.") + (license license:expat))) + (define-public python-traittypes (package (name "python-traittypes") From 71de612e10e3669b9dadba521664bd91d233a521 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sun, 22 May 2022 18:28:04 -0400 Subject: [PATCH 218/363] licenses: Add Expat No Attribution license. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/licenses.scm (expat-0): New variable. * guix/import/utils.scm (spdx-string->license): Add MIT-0. Signed-off-by: Ludovic Courtès --- guix/import/utils.scm | 2 ++ guix/licenses.scm | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 646921c73b..26eebfece5 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2021 Sarah Morgensen ;;; Copyright © 2021 Xinglu Chen ;;; Copyright © 2022 Alice Brenon +;;; Copyright © 2022 Kyle Meyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -176,6 +177,7 @@ of the string VERSION is replaced by the symbol 'version." ("EPL-2.0" 'license:epl2.0) ("EUPL-1.2" 'license:eupl1.2) ("MIT" 'license:expat) + ("MIT-0" 'license:expat-0) ("FTL" 'license:freetype) ("FreeBSD-DOC" 'license:freebsd-doc) ("Freetype" 'license:freetype) diff --git a/guix/licenses.scm b/guix/licenses.scm index 82ca44f42e..3b820ae07e 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Felix Gruber ;;; Copyright © 2021 Xinglu Chen ;;; Copyright © 2021 Noisytoot +;;; Copyright © 2021 Kyle Meyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,7 +58,7 @@ epl1.0 epl2.0 eupl1.2 - expat + expat expat-0 freetype freebsd-doc giftware @@ -315,6 +316,13 @@ at URI, which may be a file:// URI pointing the package's tree." "http://directory.fsf.org/wiki/License:Expat" "https://www.gnu.org/licenses/license-list.html#Expat")) +(define expat-0 + (license "Expat No Attribution" + ;; Note: There is a later formulation of the same license at + ;; . + "https://romanrm.net/mit-zero" + "Expat license with the attribution paragraph removed.")) + (define freetype (license "Freetype" "http://directory.fsf.org/wiki/License:Freetype" From 7cc707b43a47c61132234431237edf0a1372908b Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sun, 22 May 2022 18:28:05 -0400 Subject: [PATCH 219/363] gnu: Add patatt. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/version-control.scm (patatt): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/version-control.scm | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index db5b53147c..044cde460a 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014, 2016, 2019, 2021 Eric Bavier ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner -;;; Copyright © 2015, 2018, 2020, 2021 Kyle Meyer +;;; Copyright © 2015, 2018, 2020, 2021, 2022 Kyle Meyer ;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus ;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2016, 2017, 2018 Nikita @@ -2577,6 +2577,28 @@ collections efficiently. Mirrors decide to clone and update repositories based on a manifest file published by servers.") (license license:gpl3+))) +(define-public patatt + (package + (name "patatt") + (version "0.4.9") + (source + (origin + (method url-fetch) + (uri (pypi-uri "patatt" version)) + (sha256 + (base32 "0fpbkmdlnz9s1lakw11jlrzpz4mb6f4dksdiir9g1ppq0g34sy58")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. + (propagated-inputs + (list python-pynacl)) + (home-page "https://git.kernel.org/pub/scm/utils/patatt/patatt.git") + (synopsis "Tool for cryptographic patch attestation") + (description "This utility provides end-to-end cryptographic attestation +of patches sent via mail. It does so by adapting the DKIM email signature +standard to include cryptographic signatures via the X-Developer-Signature +email header.") + (license license:expat-0))) + (define-public b4 (package (name "b4") From c7b625655432722ad6c3814088841775bfe4e4a6 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sun, 22 May 2022 18:28:06 -0400 Subject: [PATCH 220/363] gnu: b4: Drop now unneeded snippet. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/version-control.scm (b4) [source]: Drop snippet for issue that is now fixed upstream. Signed-off-by: Ludovic Courtès --- gnu/packages/version-control.scm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 044cde460a..43ae1eec46 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -2608,15 +2608,7 @@ email header.") (method url-fetch) (uri (pypi-uri "b4" version)) (sha256 - (base32 "115ysciq15sxc8fd9hf7p0f4wnd5xapcfkmq8g33y1c8nbdxclbx")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Fixes issue with dependency requirements being too strict. See upstream commit: - ;; https://git.kernel.org/pub/scm/utils/b4/b4.git/commit/?id=31348a14afdb1d39e7faf9576eaddea1ced76e19 - (substitute* "setup.py" - (("~=") ">=")) - #t)))) + (base32 "115ysciq15sxc8fd9hf7p0f4wnd5xapcfkmq8g33y1c8nbdxclbx")))) (build-system python-build-system) (arguments (list #:tests? #f ;no tests From ca53f7eb1d85226a00e98006ff787d508da2b04a Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sun, 22 May 2022 18:28:07 -0400 Subject: [PATCH 221/363] gnu: b4: Enable patch attestation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/version-control.scm (b4) [propagated-inputs]: Add patatt. Signed-off-by: Ludovic Courtès --- gnu/packages/version-control.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 43ae1eec46..5badc28fc5 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -2620,6 +2620,8 @@ email header.") (delete 'sanity-check)))) (inputs (list python-dkimpy python-dnspython python-requests)) + (propagated-inputs + (list patatt)) (home-page "https://git.kernel.org/pub/scm/utils/b4/b4.git") (synopsis "Tool for working with patches in public-inbox archives") (description From 81a801d3200494ce0c50da4efd9bb74492061a4f Mon Sep 17 00:00:00 2001 From: Pradana AUMARS Date: Sun, 27 Feb 2022 17:25:16 +0100 Subject: [PATCH 222/363] gnu: python-django: Add 3.1.14. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/django.scm (python-django-3.1.14): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/django.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index d62f4376b6..46b95eb640 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2020, 2021, 2022 Marius Bakke ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Luis Felipe López Acevedo +;;; Copyright © 2022 Pradana Aumars ;;; ;;; This file is part of GNU Guix. ;;; @@ -153,6 +154,22 @@ to the @dfn{don't repeat yourself} (DRY) principle.") ;; Django 4.0 deprecated pytz in favor of Pythons built-in zoneinfo. (append python-pytz))))) +;; archivebox requires django>=3.1.3,<3.2 +(define-public python-django-3.1.14 + (package + (inherit python-django-3.2) + (version "3.1.14") + (source (origin + (method url-fetch) + (uri (pypi-uri "Django" version)) + (sha256 + (base32 + "0ix3v2wlnplv78zxjrlw8z3hiap2d5mxvk0ny2fc65526shsb93j")))) + (propagated-inputs + (modify-inputs (package-propagated-inputs python-django-3.2) + ;; Django 4.0 deprecated pytz in favor of Pythons built-in zoneinfo. + (append python-pytz))))) + (define-public python-django-2.2 (package (inherit python-django-3.2) From b0471fb0aaea8038f24f755c0cb22ffd2cec59cc Mon Sep 17 00:00:00 2001 From: Pradana AUMARS Date: Sun, 22 May 2022 15:27:02 +0200 Subject: [PATCH 223/363] gnu: Add archivebox. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/web.scm (archivebox): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/web.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 600ef0c895..ffcb709e82 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -56,6 +56,7 @@ ;;; Copyright © 2021 Denis 'GNUtoo' Carikli ;;; Copyright © 2021 Vinicius Monego ;;; Copyright © 2022 cage +;;; Copyright © 2022 Pradana Aumars ;;; ;;; This file is part of GNU Guix. ;;; @@ -112,6 +113,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) + #:use-module (gnu packages django) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages emacs) @@ -154,6 +156,7 @@ #:use-module (gnu packages markup) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) + #:use-module (gnu packages node) #:use-module (gnu packages nss) #:use-module (gnu packages openldap) #:use-module (gnu packages openstack) @@ -162,6 +165,8 @@ #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) @@ -177,7 +182,9 @@ #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) #:use-module (gnu packages version-control) + #:use-module (gnu packages video) #:use-module (gnu packages vim) + #:use-module (gnu packages wget) #:use-module (gnu packages xml) #:use-module ((srfi srfi-1) #:select (delete-duplicates))) @@ -8218,3 +8225,40 @@ provided by a TLS reverse proxy (e.g. tlstunnel, hitch or stunnel).") ;; "cpe:2.3:a:comelz:quark" package. The proper fix is for (guix cve) ;; to account for "vendor names". (properties '((lint-hidden-cve . ("CVE-2019-15520"))))))) + +(define-public archivebox + (package + (name "archivebox") + (version "0.6.2") + (source (origin + (method url-fetch) + (uri (pypi-uri name version)) + (sha256 + (base32 + "1mnq82ynq01l7vx957bbx4bvgwdh59qsnx6pdydaqszbakp74yyc")))) + (build-system python-build-system) + (propagated-inputs + (list curl + node)) + (inputs + (list python + youtube-dl + wget + git + python-w3lib + python-ipython + python-croniter + python-crontab + python-dateparser + python-django-extensions + python-django-3.1.14 + python-mypy-extensions)) + (native-inputs + (list python-wheel)) + (synopsis "Self-hosted Web archiving") + (description "ArchiveBox is a powerful, self-hosted Web archiving +solution to collect, save, and view sites you want to preserve offline. +You can feed it URLs one at a time, or schedule regular imports. It saves +snapshots of the URLs you feed it in several formats.") + (home-page "https://archivebox.io/") + (license license:expat))) From 2f58393d995de9638140962cf4c40e5f2ba08c3a Mon Sep 17 00:00:00 2001 From: Andrew Tropin Date: Tue, 3 May 2022 13:22:53 +0300 Subject: [PATCH 224/363] gnu: emacs-org-contrib: Do not propogate cider to profile. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-org-contrib)[native-inputs]: A emacs-cider is an optional dependency, move it from propogated-inputs. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index ae81f4e395..2191b05ea5 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12830,9 +12830,10 @@ programming and reproducible research.") (add-after 'unpack 'enter-source-directory (lambda _ (chdir "lisp")))))) + (native-inputs + (list emacs-cider)) (propagated-inputs (list emacs-arduino-mode ;XXX: remove after 0.4+ release. - emacs-cider emacs-org)) (home-page "https://git.sr.ht/~bzg/org-contrib") (synopsis "Unmaintained add-ons for Org mode") From 217ac6440a565af9f7c6bebe9a2246c237ffc27d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:02 +0200 Subject: [PATCH 225/363] gnu: haveged: Update to 1.9.18. * gnu/packages/linux.scm (haveged): Update to 1.9.18. --- 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 4101d4897b..e3a37a7698 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -6401,7 +6401,7 @@ cpufreq sub-system is enabled or not.") (define-public haveged (package (name "haveged") - (version "1.9.17") + (version "1.9.18") (source (origin (method git-fetch) @@ -6410,7 +6410,7 @@ cpufreq sub-system is enabled or not.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "119iy8qrvdjkfwnzn1nfjzh2bbihb1vl44qhd6yzzcacjm6pwndr")))) + (base32 "1y1p3qhjzhpgd20xz5ffms3w1bdvpk883y38ydwsmp9mc0kzy8kz")))) (build-system gnu-build-system) (arguments `(#:configure-flags From 4771e67c049043a0c894bd6ef2a59aedec0cc85c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 226/363] gnu: mailutils: Update to 3.15. * gnu/packages/mail.scm (mailutils): Update to 3.15. --- 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 c4ccc53e84..7094a9c081 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -265,14 +265,14 @@ example, modify the message headers or body, or encrypt or sign the message.") (define-public mailutils (package (name "mailutils") - (version "3.14") + (version "3.15") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mailutils/mailutils-" version ".tar.xz")) (sha256 (base32 - "0fbi2b144mgblq9qhdyhj9855mbglzr8fr23rnps8icbxa7v7if0")) + "1nrd9wsidxami3wa86l9z8hnnwv6rhbxdkvqg7dcgz2jqf3c5l5p")) (patches (search-patches "mailutils-variable-lookup.patch")))) (build-system gnu-build-system) From 52e17b9f3ff5d6d933179db0db6b4c8a80f2666d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:02 +0200 Subject: [PATCH 227/363] gnu: mailutils: Omit static library. * gnu/packages/mail.scm (mailutils)[arguments]: Add "--disable-static" to #:configure-flags. --- gnu/packages/mail.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 7094a9c081..0794fd921c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -337,6 +337,7 @@ example, modify the message headers or body, or encrypt or sign the message.") (string-append "\"" (which "sh") "\"")))))) #:configure-flags #~(list "--sysconfdir=/etc" + "--disable-static" ;; Add "/X.Y" to the installation directory. (string-append "--with-guile-site-dir=" From 302a5e1e7cb81472f696d924582c93a5ce538acc Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:00 +0200 Subject: [PATCH 228/363] gnu: hangups: Update to 0.4.18. * gnu/packages/messaging.scm (hangups): Update to 0.4.18. --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 677dc4b930..5dc49503ec 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -2485,13 +2485,13 @@ QMatrixClient project.") (define-public hangups (package (name "hangups") - (version "0.4.16") + (version "0.4.18") (source (origin (method url-fetch) (uri (pypi-uri "hangups" version)) (sha256 - (base32 "11szzszwfszc28xvlsh0bahxy3cgibzsirbfjh5m8vj60lzipqm3")))) + (base32 "12mq22lygh6vz2h5dpvyjk18hx3jphb4kkavqsy298c7hw60hn7l")))) (build-system python-build-system) (arguments `(#:phases From f262ec40a5eb468e9ba62b5ad4f25e70c491a63c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:04 +0200 Subject: [PATCH 229/363] gnu: aircrack-ng: Update to 1.7. * gnu/packages/networking.scm (aircrack-ng): Update to 1.7. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/networking.scm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 9010e1f120..9d19fbade9 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015, 2016, 2017, 2021 Stefan Reichör ;;; Copyright © 2016 Raimon Grau -;;; Copyright © 2016–2021 Tobias Geerinckx-Rice +;;; Copyright © 2016–2022 Tobias Geerinckx-Rice ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016-2022 Nicolas Goaziou ;;; Copyright © 2016 Eric Bavier @@ -1863,14 +1863,14 @@ live network and disk I/O bandwidth monitor.") (define-public aircrack-ng (package (name "aircrack-ng") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) (uri (string-append "https://download.aircrack-ng.org/aircrack-ng-" version ".tar.gz")) (sha256 - (base32 "0ix2k64qg7x3w0bzdsbk1m50kcpq1ws59g3zkwiafvpwdr4gs2sg")))) + (base32 "1hsq1gwmafka4bahs6rc8p98yi542h9a502h64bjlygpr3ih99q5")))) (build-system gnu-build-system) (native-inputs (list autoconf automake libtool pkg-config which)) @@ -1894,16 +1894,14 @@ live network and disk I/O bandwidth monitor.") ;; ‘patch-shebangs’ phase has had a chance to run. (substitute* "evalrev" (("/bin/sh") - (which "sh"))) - #t)) + (which "sh"))))) (add-after 'build 'absolutize-tools (lambda* (#:key inputs #:allow-other-keys) (let ((ethtool (search-input-file inputs "/sbin/ethtool"))) (substitute* "scripts/airmon-ng" (("ethtool ") - (string-append ethtool " "))) - #t)))))) + (string-append ethtool " "))))))))) (home-page "https://www.aircrack-ng.org") (synopsis "Assess WiFi network security") (description From f9e20e979eda9df70fea4ee530231ebb9d1bad71 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:10 +0200 Subject: [PATCH 230/363] gnu: aircrack-ng: Improve SMP performance. * gnu/packages/networking.scm (aircrack-ng)[inputs]: Add hwloc:lib. --- gnu/packages/networking.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 9d19fbade9..0a1176da5b 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -116,6 +116,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages kerberos) + #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) #:use-module (gnu packages openldap) @@ -1875,7 +1876,8 @@ live network and disk I/O bandwidth monitor.") (native-inputs (list autoconf automake libtool pkg-config which)) (inputs - (list libgcrypt + (list `(,hwloc "lib") ; speed boost on SMP machines + libgcrypt libnl libpcap ethtool From 12c9411899428311f15b96a426638ff9dc94c742 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:06 +0200 Subject: [PATCH 231/363] gnu: aircrack-ng: Run more tests. * gnu/packages/networking.scm (aircrack-ng)[native-inputs]: Add expect. --- gnu/packages/networking.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 0a1176da5b..caca79f5c0 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1874,7 +1874,9 @@ live network and disk I/O bandwidth monitor.") (base32 "1hsq1gwmafka4bahs6rc8p98yi542h9a502h64bjlygpr3ih99q5")))) (build-system gnu-build-system) (native-inputs - (list autoconf automake libtool pkg-config which)) + (list autoconf automake libtool pkg-config which + ;; For tests. + expect)) (inputs (list `(,hwloc "lib") ; speed boost on SMP machines libgcrypt From a8a3d31dec5d24b67ae09cb10fd5e49c684ae314 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:00 +0200 Subject: [PATCH 232/363] gnu: openvpn: Update to 2.5.6. * gnu/packages/vpn.scm (openvpn): Update to 2.5.6. --- gnu/packages/vpn.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index f3da89675e..e33821c97f 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -748,15 +748,15 @@ this process. It is compatible with Fortinet VPNs.") (define-public openvpn (package (name "openvpn") - (version "2.5.5") + (version "2.5.6") (source (origin (method url-fetch) (uri (string-append "https://swupdate.openvpn.org/community/releases/openvpn-" - version ".tar.xz")) + version ".tar.gz")) (sha256 (base32 - "0fq0nvgpbyvdxc8vwka51whgm3kkvjb3c9xarpv3h211l2gxd6qi")))) + "0gdd88rcan9vfiwkzsqn6fxxdim7kb1bsxrcra59c5xksprpwfik")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-iproute2=yes"))) From 7730b45bf8f456bece97135b244a26e41df00838 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 233/363] gnu: clang@14: Include the extras. * gnu/packages/llvm.scm (clang-14): Add a matching #:tools-extra origin. Reported by foobarxyz on #guix. --- gnu/packages/llvm.scm | 11 ++++++++++- gnu/packages/patchutils.scm | 6 +++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 4d5a948236..c93c1db7fe 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -627,7 +627,16 @@ of programming tools as well as libraries with equivalent functionality.") ,@(package-native-inputs template)))))) (define-public clang-14 - (let ((template (clang-from-llvm llvm-14 clang-runtime-14))) + (let ((template + (clang-from-llvm llvm-14 clang-runtime-14 + #:tools-extra + (origin + (method url-fetch) + (uri (llvm-uri "clang-tools-extra" + (package-version llvm-14))) + (sha256 + (base32 + "188hh6l956gkl6hgjzzdraj5jp538zhhhllxvy23gml6slrmbj7j")))))) (package (inherit template) (arguments diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm index 5f16deaffa..856413d83c 100644 --- a/gnu/packages/patchutils.scm +++ b/gnu/packages/patchutils.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2018 Eric Bavier ;;; Copyright © 2015, 2018 Leo Famulari -;;; Copyright © 2018–2021 Tobias Geerinckx-Rice +;;; Copyright © 2018–2022 Tobias Geerinckx-Rice ;;; Copyright © 2019 Christopher Baines ;;; Copyright © 2021 Xinglu Chen ;;; @@ -158,7 +158,7 @@ refreshed, and more.") (define-public colordiff (package (name "colordiff") - (version "1.0.19") + (version "1.0.20") (source (origin (method url-fetch) @@ -167,7 +167,7 @@ refreshed, and more.") (string-append "http://www.colordiff.org/archive/colordiff-" version ".tar.gz"))) (sha256 - (base32 "069vzzgs7b44bmfh3ks2psrdb26s1w19gp9w4xxbgi7nhx6w3s26")))) + (base32 "1kbv3lsyzzrwca4v3ajpnv8q5j0h53r94lxiqgmikxmrxrxh3cp3")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests From 1cb10f696813ef23678029612471a9190ef9d08a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 16 Jan 2022 00:35:21 -0500 Subject: [PATCH 234/363] gnu: Add FFmpeg 5.0. * gnu/packages/video.scm (ffmpeg-5): New variable Co-authored-by: Marius Bakke --- gnu/packages/video.scm | 191 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 190 insertions(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 78d6b26c99..cd06ac72bd 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -24,7 +24,7 @@ ;;; Copyright © 2018 Roel Janssen ;;; Copyright © 2018-2022 Marius Bakke ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt -;;; Copyright © 2018, 2019, 2020 Leo Famulari +;;; Copyright © 2018, 2019, 2020, 2022 Leo Famulari ;;; Copyright © 2018 Brendan Tildesley ;;; Copyright © 2018 Arun Isaac ;;; Copyright © 2018 Björn Höfling @@ -1546,6 +1546,195 @@ These tools require a supported graphics chip, driver, and VA-API back end to operate properly.") (license license:expat))) +(define-public ffmpeg-5 + (package + (name "ffmpeg") + (version "5.0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" + version ".tar.xz")) + (sha256 + (base32 + "0yq0jcdc4qm5znrzylj3dsicrkk2n3n8bv28vr0a506fb7iglbpg")))) + (build-system gnu-build-system) + (inputs + (append + ;; XXX: rav1e depends on rust, which currently only works on x86_64. + ;; See also the related configure flag when changing this. + (if (target-x86-64?) (list rav1e) '()) + (list dav1d + fontconfig + freetype + frei0r-plugins + gnutls + opus + ladspa + lame + libaom + libass + libbluray + libcaca + libcdio-paranoia + libdrm + libtheora + libva + libvdpau + libvorbis + libvpx + libx11 + libx264 + mesa + openal + pulseaudio + sdl2 + soxr + speex + srt + twolame + vidstab + x265 + xvid + zlib))) + (native-inputs + (list bc + perl + pkg-config + texinfo + speex + yasm)) + (arguments + (list + #:test-target "fate" + #:configure-flags + ;; possible additional inputs: + ;; --enable-avisynth enable reading of AviSynth script + ;; files [no] + ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no] + ;; --enable-libcelt enable CELT decoding via libcelt [no] + ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 + ;; and libraw1394 [no] + ;; --enable-libfaac enable AAC encoding via libfaac [no] + ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] + ;; --enable-libflite enable flite (voice synthesis) support via + ;; libflite [no] + ;; --enable-libgme enable Game Music Emu via libgme [no] + ;; --enable-libgsm enable GSM de/encoding via libgsm [no] + ;; --enable-libiec61883 enable iec61883 via libiec61883 [no] + ;; --enable-libilbc enable iLBC de/encoding via libilbc [no] + ;; --enable-libmodplug enable ModPlug via libmodplug [no] + ;; --enable-libnut enable NUT (de)muxing via libnut, + ;; native (de)muxer exists [no] + ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via + ;; libopencore-amrnb [no] + ;; --enable-libopencore-amrwb enable AMR-WB decoding via + ;; libopencore-amrwb [no] + ;; --enable-libopencv enable video filtering via libopencv [no] + ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via + ;; OpenJPEG [no] + ;; --enable-librtmp enable RTMP[E] support via librtmp [no] + ;; --enable-libschroedinger enable Dirac de/encoding via + ;; libschroedinger [no] + ;; --enable-libshine enable fixed-point MP3 encoding via + ;; libshine [no] + ;; --enable-libssh enable SFTP protocol via libssh [no] + ;; (libssh2 does not work) + ;; --enable-libstagefright-h264 enable H.264 decoding via + ;; libstagefright [no] + ;; --enable-libutvideo enable Ut Video encoding and decoding via + ;; libutvideo [no] + ;; --enable-libv4l2 enable libv4l2/v4l-utils [no] + ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no] + ;; --enable-libvo-amrwbenc enable AMR-WB encoding via + ;; libvo-amrwbenc [no] + ;; --enable-libwavpack enable wavpack encoding via libwavpack [no] + ;; --enable-libxavs enable AVS encoding via xavs [no] + ;; --enable-libzmq enable message passing via libzmq [no] + ;; --enable-libzvbi enable teletext support via libzvbi [no] + ;; --enable-opencl enable OpenCL code + #~(list + "--enable-gpl" ;enable optional gpl licensed parts + "--enable-shared" + "--enable-frei0r" + "--enable-fontconfig" + "--enable-gnutls" + "--enable-ladspa" + "--enable-libaom" + "--enable-libass" + "--enable-libbluray" + "--enable-libcaca" + "--enable-libcdio" + "--enable-libdav1d" + "--enable-libfreetype" + "--enable-libmp3lame" + "--enable-libopus" + "--enable-libpulse" + #$@(if (target-x86-64?) + '("--enable-librav1e") + '()) + "--enable-libsoxr" + "--enable-libspeex" + "--enable-libsrt" + "--enable-libtheora" + "--enable-libtwolame" + "--enable-libvidstab" + "--enable-libvorbis" + "--enable-libvpx" + "--enable-libxvid" + "--enable-libx264" + "--enable-libx265" + "--enable-openal" + "--enable-opengl" + "--enable-libdrm" + "--enable-vaapi" + + "--enable-runtime-cpudetect" + + ;; The HTML pages take 7.2 MiB + "--disable-htmlpages" + + ;; The static libraries are 23 MiB + "--disable-static" + + ;; Runtime cpu detection is not implemented on + ;; MIPS, so we disable some features. + "--disable-mips32r2" + "--disable-mipsdsp" + "--disable-mipsdspr2" + "--disable-mipsfpu") + #:phases + #~(modify-phases %standard-phases + (replace 'configure + ;; configure does not work followed by "SHELL=..." and + ;; "CONFIG_SHELL=..."; set environment variables instead + (lambda* (#:key outputs configure-flags #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "configure" + (("#! /bin/sh") (string-append "#!" (which "sh")))) + (setenv "SHELL" (which "bash")) + (setenv "CONFIG_SHELL" (which "bash")) + (apply invoke + "./configure" + (string-append "--prefix=" out) + ;; Add $libdir to the RUNPATH of all the binaries. + (string-append "--extra-ldflags=-Wl,-rpath=" + out "/lib") + configure-flags)))) + (add-before 'check 'set-ld-library-path + (lambda _ + ;; Allow $(top_builddir)/ffmpeg to find its dependencies when + ;; running tests. + (let* ((dso (find-files "." "\\.so$")) + (path (string-join (map dirname dso) ":"))) + (format #t "setting LD_LIBRARY_PATH to ~s~%" path) + (setenv "LD_LIBRARY_PATH" path))))))) + (home-page "https://www.ffmpeg.org/") + (synopsis "Audio and video framework") + (description "FFmpeg is a complete, cross-platform solution to record, +convert and stream audio and video. It includes the libavcodec +audio/video codec library.") + (license license:gpl2+))) + (define-public ffmpeg (package (name "ffmpeg") From a50fa212fed5e26ea83126ed60ddf4b5de64dff4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 23 May 2022 19:13:15 +0200 Subject: [PATCH 235/363] gnu: ffmpeg@4: Inherit from ffmpeg@5. While at it, introduce a versioned 'ffmpeg-4' variable. * gnu/packages/video.scm (ffmpeg): Rename to ... (ffmpeg-4): ... this. Remove all fields, except... [arguments]: Preserve "--enable-avresample" in #:configure-flags. (ffmpeg-3.4): Inherit from FFMPEG-4. [arguments]: Use G-expression. (ffmpeg-2.8): Inherit from FFMPEG-3.4. [inputs]: Remove. (ffmpeg): Define as alias for FFMPEG-4. (ffmpeg-for-stepmania): Inherit from FFMPEG-4. [arguments]: Use G-expression. --- gnu/packages/video.scm | 236 +++++------------------------------------ 1 file changed, 28 insertions(+), 208 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index cd06ac72bd..70ea39a45b 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1735,9 +1735,9 @@ convert and stream audio and video. It includes the libavcodec audio/video codec library.") (license license:gpl2+))) -(define-public ffmpeg +(define-public ffmpeg-4 (package - (name "ffmpeg") + (inherit ffmpeg-5) (version "4.4.1") (source (origin (method url-fetch) @@ -1746,192 +1746,14 @@ audio/video codec library.") (sha256 (base32 "00hfwd8ld6jnd26pl9f0wcd2mag4zacxxgqgabsja2xkkagavnza")))) - (build-system gnu-build-system) - (inputs - `(("dav1d" ,dav1d) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("frei0r-plugins" ,frei0r-plugins) - ("gnutls" ,gnutls) - ("opus" ,opus) - ("ladspa" ,ladspa) - ("lame" ,lame) - ("libaom" ,libaom) - ("libass" ,libass) - ("libbluray" ,libbluray) - ("libcaca" ,libcaca) - ("libcdio-paranoia" ,libcdio-paranoia) - ("libdrm" ,libdrm) - ("libtheora" ,libtheora) - ("libva" ,libva) - ("libvdpau" ,libvdpau) - ("libvorbis" ,libvorbis) - ("libvpx" ,libvpx) - ("libx11" ,libx11) - ("libx264" ,libx264) - ("mesa" ,mesa) - ("openal" ,openal) - ("pulseaudio" ,pulseaudio) - ;; XXX: rav1e depends on rust, which currently only works on x86_64. - ;; See also the related configure flag when changing this. - ,@(if (string-prefix? "x86_64" (or (%current-target-system) - (%current-system))) - `(("rav1e" ,rav1e)) - '()) - ("sdl" ,sdl2) - ("soxr" ,soxr) - ("speex" ,speex) - ("srt" ,srt) - ("twolame" ,twolame) - ("vidstab" ,vidstab) - ("x265" ,x265) - ("xvid" ,xvid) - ("zlib" ,zlib))) - (native-inputs - (list bc - perl - pkg-config - texinfo - speex - yasm)) (arguments - `(#:test-target "fate" - #:configure-flags - ;; possible additional inputs: - ;; --enable-avisynth enable reading of AviSynth script - ;; files [no] - ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no] - ;; --enable-libcelt enable CELT decoding via libcelt [no] - ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 - ;; and libraw1394 [no] - ;; --enable-libfaac enable AAC encoding via libfaac [no] - ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] - ;; --enable-libflite enable flite (voice synthesis) support via - ;; libflite [no] - ;; --enable-libgme enable Game Music Emu via libgme [no] - ;; --enable-libgsm enable GSM de/encoding via libgsm [no] - ;; --enable-libiec61883 enable iec61883 via libiec61883 [no] - ;; --enable-libilbc enable iLBC de/encoding via libilbc [no] - ;; --enable-libmodplug enable ModPlug via libmodplug [no] - ;; --enable-libnut enable NUT (de)muxing via libnut, - ;; native (de)muxer exists [no] - ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via - ;; libopencore-amrnb [no] - ;; --enable-libopencore-amrwb enable AMR-WB decoding via - ;; libopencore-amrwb [no] - ;; --enable-libopencv enable video filtering via libopencv [no] - ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via - ;; OpenJPEG [no] - ;; --enable-librtmp enable RTMP[E] support via librtmp [no] - ;; --enable-libschroedinger enable Dirac de/encoding via - ;; libschroedinger [no] - ;; --enable-libshine enable fixed-point MP3 encoding via - ;; libshine [no] - ;; --enable-libssh enable SFTP protocol via libssh [no] - ;; (libssh2 does not work) - ;; --enable-libstagefright-h264 enable H.264 decoding via - ;; libstagefright [no] - ;; --enable-libutvideo enable Ut Video encoding and decoding via - ;; libutvideo [no] - ;; --enable-libv4l2 enable libv4l2/v4l-utils [no] - ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no] - ;; --enable-libvo-amrwbenc enable AMR-WB encoding via - ;; libvo-amrwbenc [no] - ;; --enable-libwavpack enable wavpack encoding via libwavpack [no] - ;; --enable-libxavs enable AVS encoding via xavs [no] - ;; --enable-libzmq enable message passing via libzmq [no] - ;; --enable-libzvbi enable teletext support via libzvbi [no] - ;; --enable-opencl enable OpenCL code - '("--enable-avresample" - "--enable-gpl" ; enable optional gpl licensed parts - "--enable-shared" - "--enable-frei0r" - "--enable-fontconfig" - "--enable-gnutls" - "--enable-ladspa" - "--enable-libaom" - "--enable-libass" - "--enable-libbluray" - "--enable-libcaca" - "--enable-libcdio" - "--enable-libdav1d" - "--enable-libfreetype" - "--enable-libmp3lame" - "--enable-libopus" - "--enable-libpulse" - ,@(if (string-prefix? "x86_64" (or (%current-target-system) - (%current-system))) - '("--enable-librav1e") - '()) - "--enable-libsoxr" - "--enable-libspeex" - "--enable-libsrt" - "--enable-libtheora" - "--enable-libtwolame" - "--enable-libvidstab" - "--enable-libvorbis" - "--enable-libvpx" - "--enable-libxvid" - "--enable-libx264" - "--enable-libx265" - "--enable-openal" - "--enable-opengl" - "--enable-libdrm" - "--enable-vaapi" - - "--enable-runtime-cpudetect" - - ;; The HTML pages take 7.2 MiB - "--disable-htmlpages" - - ;; The static libraries are 23 MiB - "--disable-static" - - ;; Runtime cpu detection is not implemented on - ;; MIPS, so we disable some features. - "--disable-mips32r2" - "--disable-mipsdsp" - "--disable-mipsdspr2" - "--disable-mipsfpu") - #:phases - (modify-phases %standard-phases - (replace - 'configure - ;; configure does not work followed by "SHELL=..." and - ;; "CONFIG_SHELL=..."; set environment variables instead - (lambda* (#:key outputs configure-flags #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "configure" - (("#! /bin/sh") (string-append "#!" (which "sh")))) - (setenv "SHELL" (which "bash")) - (setenv "CONFIG_SHELL" (which "bash")) - (apply invoke - "./configure" - (string-append "--prefix=" out) - ;; Add $libdir to the RUNPATH of all the binaries. - (string-append "--extra-ldflags=-Wl,-rpath=" - out "/lib") - configure-flags)))) - (add-before - 'check 'set-ld-library-path - (lambda _ - ;; Allow $(top_builddir)/ffmpeg to find its dependencies when - ;; running tests. - (let* ((dso (find-files "." "\\.so$")) - (path (string-join (map dirname dso) ":"))) - (format #t "setting LD_LIBRARY_PATH to ~s~%" path) - (setenv "LD_LIBRARY_PATH" path) - #t)))))) - (home-page "https://www.ffmpeg.org/") - (synopsis "Audio and video framework") - (description "FFmpeg is a complete, cross-platform solution to record, -convert and stream audio and video. It includes the libavcodec -audio/video codec library.") - (license license:gpl2+))) + (substitute-keyword-arguments (package-arguments ffmpeg-5) + ((#:configure-flags flags ''()) + #~(cons "--enable-avresample" #$flags)))))) (define-public ffmpeg-3.4 (package - (inherit ffmpeg) + (inherit ffmpeg-4) (version "3.4.9") (source (origin (method url-fetch) @@ -1941,23 +1763,22 @@ audio/video codec library.") (base32 "0d8nkd9c85rkjlgsq1hidmykkrksi883ygqzhhj6wh4nqflv8vs9")))) (arguments - (substitute-keyword-arguments (package-arguments ffmpeg) + (substitute-keyword-arguments (package-arguments ffmpeg-4) ((#:modules modules %gnu-build-system-modules) `((srfi srfi-1) ,@modules)) ((#:configure-flags flags) - `(fold delete - ,flags - '("--enable-libdav1d" - "--enable-libaom" - "--enable-librav1e" - "--enable-libsrt"))))) - (inputs (modify-inputs (package-inputs ffmpeg) + #~(fold delete #$flags + '("--enable-libdav1d" + "--enable-libaom" + "--enable-librav1e" + "--enable-libsrt"))))) + (inputs (modify-inputs (package-inputs ffmpeg-4) (delete "dav1d" "libaom" "rav1e" "srt"))))) (define-public ffmpeg-2.8 (package - (inherit ffmpeg) + (inherit ffmpeg-3.4) (version "2.8.18") (source (origin (method url-fetch) @@ -1999,15 +1820,14 @@ audio/video codec library.") (let* ((dso (find-files "." "\\.so$")) (path (string-join (map dirname dso) ":"))) (format #t "setting LD_LIBRARY_PATH to ~s~%" path) - (setenv "LD_LIBRARY_PATH" path) - #t)))))) - (inputs (modify-inputs (package-inputs ffmpeg) - (delete "dav1d" "libaom" "rav1e" "srt"))))) + (setenv "LD_LIBRARY_PATH" path))))))))) + +(define-public ffmpeg ffmpeg-4) (define-public ffmpeg-for-stepmania (hidden-package (package - (inherit ffmpeg) + (inherit ffmpeg-4) (version "2.1.3") (source (origin @@ -2019,17 +1839,17 @@ audio/video codec library.") (base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb")) (file-name (git-file-name "ffmpeg" version)))) (arguments - (substitute-keyword-arguments (package-arguments ffmpeg) + (substitute-keyword-arguments (package-arguments ffmpeg-4) ((#:configure-flags flags) - '(list "--disable-programs" - "--disable-doc" - "--disable-debug" - "--disable-avdevice" - "--disable-swresample" - "--disable-postproc" - "--disable-avfilter" - "--disable-shared" - "--enable-static")))) + #~(list "--disable-programs" + "--disable-doc" + "--disable-debug" + "--disable-avdevice" + "--disable-swresample" + "--disable-postproc" + "--disable-avfilter" + "--disable-shared" + "--enable-static")))) (inputs '())))) (define-public ffmpegthumbnailer From f38ff1d7fb82dacf8b09b61bcf48aec8c6bc77e9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 23 May 2022 19:20:15 +0200 Subject: [PATCH 236/363] gnu: ffmpeg@4: Update to 4.4.2. * gnu/packages/video.scm (ffmpeg-4): Update to 4.4.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 70ea39a45b..6d72f5d859 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1738,14 +1738,14 @@ audio/video codec library.") (define-public ffmpeg-4 (package (inherit ffmpeg-5) - (version "4.4.1") + (version "4.4.2") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "00hfwd8ld6jnd26pl9f0wcd2mag4zacxxgqgabsja2xkkagavnza")))) + "14xadxm1yaamp216nq09xwasxg5g133v86dbb33mdg5di1zrlhdg")))) (arguments (substitute-keyword-arguments (package-arguments ffmpeg-5) ((#:configure-flags flags ''()) From 2bd17f8a15f414471b63412d0a2d4c2253e760c0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 19 May 2022 15:24:45 +0300 Subject: [PATCH 237/363] gnu: dpkg: Fix calling dpkg from perl modules. * gnu/packages/debian.scm (dpkg)[arguments]: Add phase to wrap perl scripts with PERL5LIB and the path to dpkg itself. [inputs]: Add guile-3.0. --- gnu/packages/debian.scm | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index aec65e3386..65132d9259 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -33,6 +33,7 @@ #:use-module (gnu packages dbm) #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) + #:use-module (gnu packages guile) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -361,7 +362,40 @@ other apt sources typically provided by open source developers.") (setenv "PERL_LIBDIR" (string-append out "/lib/perl5/site_perl/" - ,(package-version perl))))))))) + ,(package-version perl)))))) + (add-after 'install 'wrap-scripts + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion (string-append out "/bin") + (for-each + (lambda (file) + (wrap-script file + ;; Make sure all perl scripts in "bin" find the + ;; required Perl modules at runtime. + `("PERL5LIB" ":" prefix + (,(string-append out + "/lib/perl5/site_perl") + ,(getenv "PERL5LIB"))) + ;; DPKG perl modules always expect dpkg to be installed. + ;; Work around this by adding dpkg to the path of the scripts. + `("PATH" ":" prefix (,(string-append out "/bin"))))) + (list "dpkg-architecture" + "dpkg-buildflags" + "dpkg-buildpackage" + "dpkg-checkbuilddeps" + "dpkg-distaddfile" + "dpkg-genbuildinfo" + "dpkg-genchanges" + "dpkg-gencontrol" + "dpkg-gensymbols" + "dpkg-mergechangelogs" + "dpkg-name" + "dpkg-parsechangelog" + "dpkg-scanpackages" + "dpkg-scansources" + "dpkg-shlibdeps" + "dpkg-source" + "dpkg-vendor"))))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -371,6 +405,7 @@ other apt sources typically provided by open source developers.") ("perl-io-string" ,perl-io-string))) (inputs (list bzip2 + guile-3.0 ; For wrap-script libmd ncurses perl From 658525f6ecdfdf4929910a5a45d33150d0e43f6e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 May 2022 15:10:28 +0300 Subject: [PATCH 238/363] gnu: debootstrap: Patch reference to dpkg. * gnu/packages/debian.scm (debootstrap)[arguments]: Adjust 'patch-source phase to also patch a reference to dpkg. [inputs]: Add dpkg. --- gnu/packages/debian.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 65132d9259..6b471d6cc5 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -208,6 +208,7 @@ contains the archive keys used for that.") (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (tzdata (assoc-ref inputs "tzdata")) + (dpkg (assoc-ref inputs "dpkg")) (debian (assoc-ref inputs "debian-keyring")) (ubuntu (assoc-ref inputs "ubuntu-keyring"))) (substitute* "Makefile" @@ -224,7 +225,8 @@ contains the archive keys used for that.") (substitute* "scripts/gutsy" (("/usr") ubuntu)) (substitute* "debootstrap" - (("=/usr") (string-append "=" out))) + (("=/usr") (string-append "=" out)) + (("/usr/bin/dpkg") (string-append dpkg "/bin/dpkg"))) ;; Ensure PATH works both in guix and within the debian chroot ;; workaround for: https://bugs.debian.org/929889 (substitute* "functions" @@ -252,6 +254,7 @@ contains the archive keys used for that.") (inputs `(("debian-keyring" ,debian-archive-keyring) ("ubuntu-keyring" ,ubuntu-keyring) + ("dpkg" ,dpkg) ("tzdata" ,tzdata) ;; Called at run-time from various places, needs to be in PATH. From 83fd96ed389801baa16d6e995499d86ef34f87d5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 May 2022 18:08:51 +0300 Subject: [PATCH 239/363] gnu: debootstrap: Remove trailing booleans. * gnu/packages/debian.scm (debootstrap)[arguments]: Remove trailing #t from phases. --- gnu/packages/debian.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 6b471d6cc5..22f51d2db6 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -233,22 +233,19 @@ contains the archive keys used for that.") (("PATH=/sbin:/usr/sbin:/bin:/usr/bin") "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin")) (substitute* (find-files "scripts" ".") - (("/usr/share/zoneinfo") (string-append tzdata "/share/zoneinfo"))) - #t))) + (("/usr/share/zoneinfo") (string-append tzdata "/share/zoneinfo")))))) (add-after 'install 'install-man-file (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (install-file "debootstrap.8" - (string-append out "/share/man/man8")) - #t))) + (string-append out "/share/man/man8"))))) (add-after 'install 'wrap-executable (lambda* (#:key outputs #:allow-other-keys) (let ((debootstrap (string-append (assoc-ref outputs "out") "/sbin/debootstrap")) (path (getenv "PATH"))) (wrap-program debootstrap - `("PATH" ":" prefix (,path))) - #t)))) + `("PATH" ":" prefix (,path))))))) #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) #:tests? #f)) ; no tests (inputs From d660d3f337e77850d40c0ee84930e3ee4c847017 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 May 2022 18:18:46 +0300 Subject: [PATCH 240/363] gnu: debootstrap: Rewrite using new style. * gnu/packages/debian.scm (debootstrap)[arguments]: Rewrite using g-exps. [inputs]: Remove input labels. --- gnu/packages/debian.scm | 104 ++++++++++++++++++++-------------------- 1 file changed, 51 insertions(+), 53 deletions(-) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 22f51d2db6..615367baa3 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -22,6 +22,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) @@ -201,62 +202,59 @@ contains the archive keys used for that.") (base32 "0hfx6k86kby4xf0xqskpllq00g159j4khh66hfi6dhcdb91dgyd7")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'patch-source - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (tzdata (assoc-ref inputs "tzdata")) - (dpkg (assoc-ref inputs "dpkg")) - (debian (assoc-ref inputs "debian-keyring")) - (ubuntu (assoc-ref inputs "ubuntu-keyring"))) - (substitute* "Makefile" - (("/usr") "") - (("-o root -g root") "") - (("chown root.*") "\n")) - (substitute* '("scripts/etch" - "scripts/potato" - "scripts/sarge" - "scripts/sid" - "scripts/woody" - "scripts/woody.buildd") - (("/usr") debian)) - (substitute* "scripts/gutsy" - (("/usr") ubuntu)) - (substitute* "debootstrap" - (("=/usr") (string-append "=" out)) - (("/usr/bin/dpkg") (string-append dpkg "/bin/dpkg"))) - ;; Ensure PATH works both in guix and within the debian chroot - ;; workaround for: https://bugs.debian.org/929889 - (substitute* "functions" - (("PATH=/sbin:/usr/sbin:/bin:/usr/bin") - "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin")) - (substitute* (find-files "scripts" ".") - (("/usr/share/zoneinfo") (string-append tzdata "/share/zoneinfo")))))) - (add-after 'install 'install-man-file - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) + (list + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'patch-source + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((debian #$(this-package-input "debian-archive-keyring")) + (ubuntu #$(this-package-input "ubuntu-keyring"))) + (substitute* "Makefile" + (("/usr") "") + (("-o root -g root") "") + (("chown root.*") "\n")) + (substitute* '("scripts/etch" + "scripts/potato" + "scripts/sarge" + "scripts/sid" + "scripts/woody" + "scripts/woody.buildd") + (("/usr") debian)) + (substitute* "scripts/gutsy" + (("/usr") ubuntu)) + (substitute* "debootstrap" + (("=/usr") (string-append "=" #$output)) + (("/usr/bin/dpkg") (search-input-file inputs "/bin/dpkg"))) + ;; Ensure PATH works both in guix and within the debian chroot + ;; workaround for: https://bugs.debian.org/929889 + (substitute* "functions" + (("PATH=/sbin:/usr/sbin:/bin:/usr/bin") + "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin")) + (substitute* (find-files "scripts") + (("/usr/share/zoneinfo") + (search-input-directory inputs "/share/zoneinfo")))))) + (add-after 'install 'install-man-file + (lambda* (#:key outputs #:allow-other-keys) (install-file "debootstrap.8" - (string-append out "/share/man/man8"))))) - (add-after 'install 'wrap-executable - (lambda* (#:key outputs #:allow-other-keys) - (let ((debootstrap (string-append (assoc-ref outputs "out") - "/sbin/debootstrap")) - (path (getenv "PATH"))) - (wrap-program debootstrap - `("PATH" ":" prefix (,path))))))) - #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) - #:tests? #f)) ; no tests + (string-append #$output "/share/man/man8")))) + (add-after 'install 'wrap-executable + (lambda* (#:key outputs #:allow-other-keys) + (let ((debootstrap (string-append #$output "/sbin/debootstrap")) + (path (getenv "PATH"))) + (wrap-program debootstrap + `("PATH" ":" prefix (,path))))))) + #:make-flags #~(list (string-append "DESTDIR=" #$output)) + #:tests? #f)) ; no tests (inputs - `(("debian-keyring" ,debian-archive-keyring) - ("ubuntu-keyring" ,ubuntu-keyring) - ("dpkg" ,dpkg) - ("tzdata" ,tzdata) + (list debian-archive-keyring + ubuntu-keyring + dpkg + tzdata - ;; Called at run-time from various places, needs to be in PATH. - ("gnupg" ,gnupg) - ("wget" ,wget))) + ;; Called at run-time from various places, needs to be in PATH. + gnupg + wget)) (native-inputs (list perl)) (home-page "https://tracker.debian.org/pkg/debootstrap") From 1a1f9e7050a9b787b2111cb5af677510a0122e2b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 May 2022 18:20:32 +0300 Subject: [PATCH 241/363] gnu: debootstrap: Add missing input. * gnu/packages/debian.scm (debootstrap)[inputs]: Add bash-minimal. --- gnu/packages/debian.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 615367baa3..2efd8114be 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages dbm) @@ -249,6 +250,7 @@ contains the archive keys used for that.") (inputs (list debian-archive-keyring ubuntu-keyring + bash-minimal dpkg tzdata From 404c42c4bd949c2927ba863cfb57db553ea453e6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:02 +0200 Subject: [PATCH 242/363] gnu: synthv1: Update to 0.9.25. * gnu/packages/music.scm (synthv1): Update to 0.9.25. --- gnu/packages/music.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 210af3b166..ebefc9afad 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2017–2022 Nicolas Goaziou ;;; Copyright © 2017, 2018, 2019, 2021 Pierre Langlois ;;; Copyright © 2017 Arun Isaac -;;; Copyright © 2017–2021 Tobias Geerinckx-Rice +;;; Copyright © 2017–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018 nee ;;; Copyright © 2018, 2021 Stefan Reichör ;;; Copyright © 2018 Pierre Neidhardt @@ -2277,7 +2277,7 @@ perform creative live mixes with digital music files.") (define-public synthv1 (package (name "synthv1") - (version "0.9.24") + (version "0.9.25") (source (origin (method url-fetch) (uri @@ -2285,7 +2285,7 @@ perform creative live mixes with digital music files.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "0m9xpl7kq0zlain8598q5cqrh1c7ima2w8jrpq7ds8vh97r7p1bl")))) + "1i16036f9wm52c5pxkllq7ir749jcknbh35i9wcxd5n88p6mzw02")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests From 466a030ed8187389bb0cf207d155fb44e43608a2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 243/363] gnu: drumkv1: Update to 0.9.25. * gnu/packages/music.scm (drumkv1): Update to 0.9.25. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index ebefc9afad..7db897bda2 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2308,7 +2308,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.9.24") + (version "0.9.25") (source (origin (method url-fetch) (uri @@ -2316,7 +2316,7 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "04k0mkvlz9ka0mlck4g7c86s1rhb9pkhml6j6n9b5hwlbq8a9mxk")))) + "0p50b4k4zldagiwxs0micmdbqib46ysipdj8lkxqdv0pysmd72fc")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests From 5b2f5e182c836ffef401ca03e0fce59083c062a6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 244/363] gnu: samplv1: Update to 0.9.25. * gnu/packages/music.scm (samplv1): Update to 0.9.25. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 7db897bda2..110a93eb44 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2340,7 +2340,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.9.24") + (version "0.9.25") (source (origin (method url-fetch) (uri @@ -2348,7 +2348,7 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "1c3ksd02dfqvzc3zk4x282b6gxr1l4ya9c4l04dcn55mrymgn2zz")))) + "0d05b03knrwh1zr4p0kcyn58scy6a392f0xxm78cqf0gikd3bw5c")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests From 96089de63be6f384753bd93bda1cb1da4650a247 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 245/363] gnu: padthv1: Update to 0.9.25. * gnu/packages/music.scm (padthv1): Update to 0.9.25. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 110a93eb44..796d52d3db 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2372,7 +2372,7 @@ effects.") (define-public padthv1 (package (name "padthv1") - (version "0.9.24") + (version "0.9.25") (source (origin (method url-fetch) (uri @@ -2380,7 +2380,7 @@ effects.") "/padthv1-" version ".tar.gz")) (sha256 (base32 - "0p3qp2lzhmj8i17bcqzsi0782nz7s90hx3s8vax6bxl4mqxsvnxb")))) + "11fa2794g7dqsiw674wr2m4k0xdw89imqwa8mgms0igskxxbvjka")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests From 959bf37cd827f5de47b26569e316b82db402e17b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:00 +0200 Subject: [PATCH 246/363] gnu: qtractor: Update to 0.9.26. * gnu/packages/music.scm (qtractor): Update to 0.9.26. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 796d52d3db..2a9fdb9cdb 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3320,14 +3320,14 @@ from the command line.") (define-public qtractor (package (name "qtractor") - (version "0.9.25") + (version "0.9.26") (source (origin (method url-fetch) (uri (string-append "https://downloads.sourceforge.net/qtractor/" "qtractor-" version ".tar.gz")) (sha256 (base32 - "0x99yjabznr2pl867j3h9zdsjzkxzxm2c0xk1xwk50gfp8gwg9bh")))) + "02r4dhhbn3dzhqi5cnm2vwimqk10bdlpy233n4a3590qg4krnqkd")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no "check" target From c776d7da260dd279cc889e127e6581b4f20c4915 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 247/363] gnu: aalib: Don't build static library. * gnu/packages/video.scm (aalib)[arguments]: Add "--disable-static" to #:configure-flags. --- gnu/packages/video.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 6d72f5d859..2329746d55 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -745,6 +745,7 @@ stream decoding") (ncurses (assoc-ref inputs "ncurses"))) (setenv "CONFIG_SHELL" (which "bash")) (invoke "./configure" + "--disable-static" (string-append "--prefix=" out) (string-append "--build=" build) (string-append "--with-ncurses=" From eda49020323e2fc24cb4fce003a16078eebbadc3 Mon Sep 17 00:00:00 2001 From: Josselin Poiret via Guix-patches via Date: Mon, 23 May 2022 22:46:21 +0200 Subject: [PATCH 248/363] gnu: acpi-call-linux-module: Update hash because of upstream retag. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The old hash was for commit 9f1c0b5d046bdfdec769809435257647fd475473, 6 commits behind commit fe9dc95a83a95e4826c1a7c809d41c2f16de40a6, to which the ‘v1.2.2’ tag now points. No functional changes; only to the README, VERSION file, and an example. * gnu/packages/linux.scm (acpi-call-linux-module): Update hash. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e3a37a7698..580fef6d30 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1186,7 +1186,7 @@ It has been modified to remove all non-free binary blobs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1s7h9y3adyfhw7cjldlfmid79lrwz3vqlvziw9nwd6x5qdj4w9vp")))) + (base32 "09ljx0jl987753r2kjqj5kxms95bijw0xn14kf82ryn38ck5c8cf")))) (build-system linux-module-build-system) (arguments (list #:tests? #f ; no tests From 00be2fcb0b79641790a793df7640344e96283a2a Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 23 May 2022 23:18:30 +0100 Subject: [PATCH 249/363] lint: check-derivation: Catch all exceptions. Rather than raising the exception. I'm looking at this as the linux-module-build-system is broken in such a way that this causes the derivation linter to error. With this change, it correctly reports the issue. * guix/lint.scm (check-derivation): Catch all exceptions. --- guix/lint.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/guix/lint.scm b/guix/lint.scm index e535eb8158..375f189335 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -1348,7 +1348,11 @@ descriptions maintained upstream." (formatted-message-arguments c)))) (make-warning package (G_ "failed to create ~a derivation: ~a") - (list system str))))) + (list system str)))) + (else + (make-warning package + (G_ "failed to create ~a derivation: ~a") + (list system c)))) (parameterize ((%graft? #f)) (package-derivation store package system #:graft? #f) From 4e0d811e679fb97daa90f3c2764974b6fbdbf1bb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:03 +0200 Subject: [PATCH 250/363] gnu: readymedia: Update to 1.3.1. * gnu/packages/upnp.scm (readymedia): Update to 1.3.1. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/upnp.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index 22d3f88cd0..e442027c5a 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Sree Harsha Totakura ;;; Copyright © 2015 Federico Beffa -;;; Copyright © 2016, 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice +;;; Copyright © 2016–2018, 2020–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018 Theodoros Foradis ;;; Copyright © 2019 Jens Mølgaard ;;; Copyright © 2020 Jan Wielkiewicz @@ -126,7 +126,7 @@ and others.") (define-public readymedia (package (name "readymedia") - (version "1.3.0") + (version "1.3.1") (source (origin (method git-fetch) @@ -136,8 +136,7 @@ and others.") "v" (string-replace-substring version "." "_"))))) (file-name (git-file-name name version)) (sha256 - (base32 - "0g04lffj37wdv5bnpl5faxpnmlj6bbk8y7ziaz2wp6h82g6kb5wj")))) + (base32 "09fg3697wshg0j46mi3bp2i6ypiqm39vmzx52bci8r6j07yz7fwx")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-os-name=Linux") ; uname -s @@ -146,8 +145,7 @@ and others.") (add-after 'unpack 'patch-source (lambda _ (substitute* "Makefile.am" - ((".*LIBAVUTIL_LIBS.*") "")) - #t))))) + ((".*LIBAVUTIL_LIBS.*") ""))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) From 9d4d2fd5cc4b75891f0e29d368ef70e7ccc0dbf1 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 251/363] gnu: readymedia: Remove input labels. * gnu/packages/upnp.scm (readymedia)[native-inputs, inputs]: Remove input labels. --- gnu/packages/upnp.scm | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index e442027c5a..5718235109 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -146,19 +146,16 @@ and others.") (lambda _ (substitute* "Makefile.am" ((".*LIBAVUTIL_LIBS.*") ""))))))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("gettext" ,gettext-minimal))) + (native-inputs (list autoconf automake gettext-minimal)) (inputs - `(("ffmpeg" ,ffmpeg) - ("flac" ,flac) - ("libexif" ,libexif) - ("libid3tag" ,libid3tag) - ("libjpeg" ,libjpeg-turbo) - ("libvorbis" ,libvorbis) - ("sqlite" ,sqlite) - ("zlib" ,zlib))) + (list ffmpeg + flac + libexif + libid3tag + libjpeg-turbo + libvorbis + sqlite + zlib)) (home-page "https://sourceforge.net/projects/minidlna/") (synopsis "DLNA/UPnP-AV media server") (description "ReadyMedia (formerly known as MiniDLNA) is a simple media From 6d1980d01b4dd3540be63a80b370d04de6e0b727 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:00 +0200 Subject: [PATCH 252/363] gnu: mlterm: Update to 3.9.2. * gnu/packages/terminals.scm (mlterm): Update to 3.9.2. --- gnu/packages/terminals.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index c5877affc2..f249fcade8 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -424,14 +424,14 @@ combining, and so on, with a simple interface.") (define-public mlterm (package (name "mlterm") - (version "3.9.1") + (version "3.9.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/mlterm/01release/mlterm-" version "/mlterm-" version ".tar.gz")) (sha256 - (base32 "03fnynwv7d1aicwk2rp31sgncv5m65agvygqvsgn59v9di40gnnb")))) + (base32 "0br1sdpxw3r7qv814b3qjb8mpigljr9wd5c5422ah76f09zh0h5r")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests From 1d40b466d0de987c81c9f582cf120698e105b80c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 253/363] gnu: mlterm: Remove input labels. * gnu/packages/terminals.scm (mlterm)[native-inputs, inputs]: Remove input labels. --- gnu/packages/terminals.scm | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index f249fcade8..2d8047dbc5 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -440,19 +440,17 @@ combining, and so on, with a simple interface.") "--disable-static" "--enable-optimize-redrawing" "--with-imagelib=gdk-pixbuf"))) - (native-inputs - `(("gettext" ,gettext-minimal) - ("pkg-config" ,pkg-config))) + (native-inputs (list gettext-minimal pkg-config)) (inputs - `(("cairo" ,cairo) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("fribidi" ,fribidi) - ("gdk-pixbuf" ,gdk-pixbuf) - ("gtk+" ,gtk+) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxft" ,libxft))) + (list cairo + fontconfig + freetype + fribidi + gdk-pixbuf + gtk+ + libx11 + libxext + libxft)) (home-page "http://mlterm.sourceforge.net/") (synopsis "Multi-Lingual TERMinal emulator") (description From 1f13cbb4395f4369263829325ef1c2d2c823fb7a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:00 +0200 Subject: [PATCH 254/363] gnu: mlterm: Remove redundant --prefix argument. * gnu/packages/terminals.scm (mlterm)[arguments]: Remove "--prefix" from #:configure-flags. --- gnu/packages/terminals.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 2d8047dbc5..83e0e46377 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -436,8 +436,7 @@ combining, and so on, with a simple interface.") (arguments `(#:tests? #f ; no tests #:configure-flags - (list (string-append "--prefix=" (assoc-ref %outputs "out")) - "--disable-static" + (list "--disable-static" "--enable-optimize-redrawing" "--with-imagelib=gdk-pixbuf"))) (native-inputs (list gettext-minimal pkg-config)) From d999e0d47658ab11e30b35f5c7d83d451d331ff4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 15 May 2022 02:00:01 +0200 Subject: [PATCH 255/363] gnu: musl: Update to 1.2.3. * gnu/packages/musl.scm (musl): Update to 1.2.3. --- gnu/packages/musl.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm index e8c51036d7..d61d6b2461 100644 --- a/gnu/packages/musl.scm +++ b/gnu/packages/musl.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Vincent Legoll ;;; Copyright © 2016 Ricardo Wurmus -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2018–2020, 2022 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,14 +28,14 @@ (define-public musl (package (name "musl") - (version "1.2.2") + (version "1.2.3") (source (origin (method url-fetch) (uri (string-append "https://www.musl-libc.org/releases/" "musl-" version ".tar.gz")) (sha256 (base32 - "1p8r6bac64y98ln0wzmnixysckq3crca69ys7p16sy9d04i975lv")))) + "196lrzw0qy5axiz9p5ay50q2mls8hbfckr4rw0klc7jjc9h0nnvx")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; musl has no tests From 47f49fbe2adef665a55344935d21521d74a0be80 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:02 +0200 Subject: [PATCH 256/363] gnu: espeak-ng: Update to 1.51. * gnu/packages/speech.scm (espeak-ng): Update to 1.51. [source]: Just keep building from Git. Un-over-factor HOME-PAGE. --- gnu/packages/speech.scm | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index f6ca6099de..d6d554f97d 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016 David Thompson ;;; Copyright © 2016, 2019, 2020 Marius Bakke ;;; Copyright © 2017 Leo Famulari -;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2020–2022 Tobias Geerinckx-Rice ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2019, 2021 Ricardo Wurmus ;;; Copyright © 2020 Nicolas Goaziou @@ -179,18 +179,16 @@ based on human speech recordings.") (define-public espeak-ng (package (name "espeak-ng") - (version "1.50") - (home-page "https://github.com/espeak-ng/espeak-ng") - ;; Note: eSpeak NG publishes release tarballs, but the 1.50 tarball is - ;; broken: . - ;; Download the raw repository to work around it; remove 'native-inputs' - ;; below when switching back to the release tarball. - (source (origin - (method git-fetch) - (uri (git-reference (url home-page) (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0jkqhf2h94vbqq7mg7mmm23bq372fa7mdk941my18c3vkldcir1b")))) + (version "1.51") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/espeak-ng/espeak-ng") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xhgdmvpgi464x9ba586c6hvscfkbhry75cv796hl9pz1nawq31b")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-static") @@ -202,6 +200,7 @@ based on human speech recordings.") (list autoconf automake libtool which)) (inputs (list libcap pcaudiolib)) + (home-page "https://github.com/espeak-ng/espeak-ng") (synopsis "Software speech synthesizer") (description "eSpeak NG is a software speech synthesizer for more than 100 languages. From 921b6f07faeae692b62fa929c05cb172e237da23 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 257/363] gnu: espeak: Omit static library. * gnu/packages/speech.scm (espeak)[arguments]: Don't install the static library. --- gnu/packages/speech.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index d6d554f97d..042c157e43 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -162,8 +162,8 @@ building tools.") ;; corresponding file to be sure that espeak compiles correctly. (copy-file "portaudio19.h" "portaudio.h") (substitute* "Makefile" - (("/bin/ln") "ln")) - #t))))) + (("/bin/ln") "ln") + (("\\$\\(INSTALL\\).*\\$\\(STATIC_LIB.*") ""))))))) (inputs (list portaudio pulseaudio)) (native-inputs (list unzip)) From b8d5cbb767d587e39fc3537a8606c872948ed192 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 258/363] gnu: hss: Update to 1.9. * gnu/packages/ssh.scm (hss): Update to 1.9. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/ssh.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 7f3b02013e..58dd55de2a 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -80,16 +80,16 @@ (define-public hss (package (name "hss") - (version "1.8") + (version "1.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/six-ddc/hss") - (commit (string-append "v" version)))) + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1rpysj65j9ls30bf2c5k5hykzzjfknrihs58imp178bx1wqzw4jl")))) + "12578xhvkg70ma411yh8nbpcpnys420bnm9g0dzypb0vn3jxpz8q")))) (inputs (list readline)) (arguments @@ -103,8 +103,7 @@ (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "Makefile" (("/usr/local/opt/readline") - (assoc-ref inputs "readline"))) - #t)) + (assoc-ref inputs "readline"))))) (delete 'configure)))) ; no configure script (build-system gnu-build-system) (home-page "https://github.com/six-ddc/hss/") From b25e18407b0ad8a848d6c9619b500a359470e70a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 259/363] gnu: hss: Use G-expressions. * gnu/packages/ssh.scm (hss)[arguments]: Rewrite as G-expressions. --- gnu/packages/ssh.scm | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 58dd55de2a..2e2be68770 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -72,6 +72,7 @@ #:use-module (guix build-system python) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) @@ -93,18 +94,18 @@ (inputs (list readline)) (arguments - `(#:make-flags - (list ,(string-append "CC=" (cc-for-target)) - (string-append "INSTALL_BIN=" (assoc-ref %outputs "out") "/bin")) - #:tests? #f ; no tests - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-file-names - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "Makefile" - (("/usr/local/opt/readline") - (assoc-ref inputs "readline"))))) - (delete 'configure)))) ; no configure script + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "INSTALL_BIN=" #$output "/bin")) + #:tests? #f ; no tests + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-file-names + (lambda _ + (substitute* "Makefile" + (("/usr/local/opt/readline") + #$(this-package-input "readline"))))) + (delete 'configure)))) ; no configure script (build-system gnu-build-system) (home-page "https://github.com/six-ddc/hss/") (synopsis "Interactive SSH client for multiple servers") From 271394b4344900be47b4cc9b1c40fedbaee918f4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:02 +0200 Subject: [PATCH 260/363] gnu: libostree: Update to 2022.2. * gnu/packages/package-management.scm (libostree): Update to 2022.2. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/package-management.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 4d39aca8e0..ce97314481 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2017 Muriithi Frederick Muriuki ;;; Copyright © 2017, 2018 Oleg Pykhalov ;;; Copyright © 2017 Roel Janssen -;;; Copyright © 2017–2021 Tobias Geerinckx-Rice +;;; Copyright © 2017–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018 Julien Lepiller ;;; Copyright © 2018, 2019 Rutger Helling ;;; Copyright © 2018 Sou Bunnbu @@ -1796,7 +1796,7 @@ for packaging and deployment of cross-compiled Windows applications.") (define-public libostree (package (name "libostree") - (version "2022.1") + (version "2022.2") (source (origin (method url-fetch) @@ -1804,7 +1804,7 @@ for packaging and deployment of cross-compiled Windows applications.") "https://github.com/ostreedev/ostree/releases/download/v" (version-major+minor version) "/libostree-" version ".tar.xz")) (sha256 - (base32 "1mfakwm0sjvb1vvl3jhc451yyf723k7c4vv1yqs8law4arw0x823")))) + (base32 "0sv70dqmf2w2lshp80sfh9m6qv5mrg72zqqbx63bd32dg2szbqkn")))) (build-system gnu-build-system) (arguments '(#:phases @@ -1813,8 +1813,7 @@ for packaging and deployment of cross-compiled Windows applications.") (lambda _ ;; Don't try to use the non-existing '/var/tmp' as test ;; directory. - (setenv "TEST_TMPDIR" (getenv "TMPDIR")) - #t))) + (setenv "TEST_TMPDIR" (getenv "TMPDIR"))))) ;; XXX: fails with: ;; tap-driver.sh: missing test plan ;; tap-driver.sh: internal error getting exit status From 3a44c8204b9dba000229ea01a3df58544087ff2a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 261/363] gnu: img2pdf: Update to 0.4.4. * gnu/packages/pdf.scm (img2pdf): Update to 0.4.4. --- gnu/packages/pdf.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index db04f21242..1f5c1b3005 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2017, 2018 Leo Famulari ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017, 2018 Rene Saavedra -;;; Copyright © 2017–2021 Tobias Geerinckx-Rice +;;; Copyright © 2017–2022 Tobias Geerinckx-Rice ;;; Copyright © 2019 Alex Griffin ;;; Copyright © 2019 Ben Sturmfels ;;; Copyright © 2019,2020 Hartmut Goebel @@ -1102,13 +1102,13 @@ the PDF pages.") (define-public img2pdf (package (name "img2pdf") - (version "0.4.3") + (version "0.4.4") (source (origin (method url-fetch) (uri (pypi-uri "img2pdf" version)) (sha256 - (base32 "17z0bn8kihiyqjd1m5jr80m7ry06l1qn0l8v918xg5gs7q2calcf")))) + (base32 "0g3rpq68y5phnlgxrqn39k10j9nmgksg6m5ic8wgs8v5cjlrij4f")))) (build-system python-build-system) (propagated-inputs (list python-pikepdf python-pillow From adf5ae5a412ed13302186dd4ce8e2df783d4515d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:07 +0200 Subject: [PATCH 262/363] gnu: proxychains-ng: Update to 4.16. * gnu/packages/networking.scm (proxychains-ng): Update to 4.16. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index caca79f5c0..9bd9500638 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2298,14 +2298,14 @@ libproxy only have to specify which proxy to use.") (define-public proxychains-ng (package (name "proxychains-ng") - (version "4.15") + (version "4.16") (source (origin (method url-fetch) (uri (string-append "http://ftp.barfooze.de/pub/sabotage/tarballs/" "proxychains-ng-" version ".tar.xz")) (sha256 - (base32 "10ch6rmbw2lwrq1bc9w4glxkws7hvsy5ihasvzf3yg053xzsn1rj")))) + (base32 "04k80jbv1wcr7ccsa0qyly33syw275kvkvzyihwwqmsqk4yria9p")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests From 93f601d97ca2d9b82c41afeb86879ee37eae39e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 May 2022 22:06:12 +0200 Subject: [PATCH 263/363] profiles: 'manifest->gexp' emits 'properties' field only when needed. Partly fixes . Reported by Ricardo Wurmus . For a profile built with: guix install r-seurat r-cistopic r-monocle3 r-cicero-monocle3 this reduces the size of the 'manifest' file from 6.4M to 5.6M (12%). * guix/profiles.scm (manifest->gexp)[entry->gexp]: When PROPERTIES is empty, do not emit a 'properties' field. --- guix/profiles.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 3a547de492..bf50c00a1e 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -462,7 +462,9 @@ denoting a specific output of a package." (propagated-inputs #$(map entry->gexp deps)) (search-paths #$(map search-path-specification->sexp search-paths)) - (properties . #$properties))) + #$@(if (null? properties) + #~() + #~((properties . #$properties))))) (($ name version output package (deps ...) (search-paths ...) _ (properties ...)) #~(#$name #$version #$output @@ -470,7 +472,9 @@ denoting a specific output of a package." (propagated-inputs #$(map entry->gexp deps)) (search-paths #$(map search-path-specification->sexp search-paths)) - (properties . #$properties))))) + #$@(if (null? properties) + #~() + #~((properties . #$properties))))))) (match manifest (($ (entries ...)) From dc9503dd5ef6f2e0aaeeced6d1b2f4ee8f8d9676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2022 14:16:12 +0200 Subject: [PATCH 264/363] gnu: gcc@11: Update 'compiler-cpu-architectures' property. * gnu/packages/gcc.scm (%gcc-11-aarch64-micro-architectures) (%gcc-11-armhf-micro-architectures) (%gcc-11-x86_64-micro-architectures): New variables. (gcc-11)[properties]: Use them. --- gnu/packages/gcc.scm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 43519f45f2..2d62d9d207 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -583,6 +583,20 @@ Go. It also includes runtime support libraries for these languages.") "znver2" "znver3"))) +(define %gcc-11-aarch64-micro-architectures + ;; Suitable '-march' values for GCC 11. + %gcc-10-aarch64-micro-architectures) ;unchanged + +(define %gcc-11-armhf-micro-architectures + %gcc-10-armhf-micro-architectures) + +(define %gcc-11-x86_64-micro-architectures + ;; Suitable '-march' values for GCC 11. + (append %gcc-10-x86_64-micro-architectures + '("sapphirerapids" "alterlake" "rocketlake" ;Intel + + "btver1" "btver2"))) ;AMD + (define-public gcc-7 (package (inherit gcc-6) @@ -678,8 +692,11 @@ It also includes runtime support libraries for these languages.") (modules '((guix build utils))) (snippet gcc-canadian-cross-objdump-snippet))) - ;; TODO: Add newly supported micro-architectures. - (properties (package-properties gcc-10)))) + (properties + `((compiler-cpu-architectures + ("aarch64" ,@%gcc-11-aarch64-micro-architectures) + ("armhf" ,@%gcc-11-armhf-micro-architectures) + ("x86_64" ,@%gcc-11-x86_64-micro-architectures)))))) ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions. From 37e29ccd332f371aacedc71388e805fbc9e947fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2022 14:54:30 +0200 Subject: [PATCH 265/363] gnu: gcc: Add 12.1.0. * gnu/packages/gcc.scm (gcc-12): New variable. --- gnu/packages/gcc.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 2d62d9d207..6823b41ee0 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -698,6 +698,24 @@ It also includes runtime support libraries for these languages.") ("armhf" ,@%gcc-11-armhf-micro-architectures) ("x86_64" ,@%gcc-11-x86_64-micro-architectures)))))) +(define-public gcc-12 + (package + (inherit gcc-11) + ;; Note: 'compiler-cpu-architectures' is unchanged compared to GCC 11. + (version "12.1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.xz")) + (sha256 + (base32 + "0ywws66myjxcwsmla721g35d2ymlckq6ii7j9av0477ki5467zb2")) + (patches (search-patches "gcc-12-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")) + (modules '((guix build utils))) + (snippet gcc-canadian-cross-objdump-snippet))))) + + ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions. (define-public gcc gcc-10) From ba708a52fdeb062443dc7174f683665f94b4b48b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2022 17:18:07 +0200 Subject: [PATCH 266/363] gnu: gcc-toolchain: Add 12.1.0. * gnu/packages/commencement.scm (gcc-toolchain-12): New variable. --- gnu/packages/commencement.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 3f8f463b79..89fc325208 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -3871,6 +3871,9 @@ is the GNU Compiler Collection.") (define-public gcc-toolchain-11 (make-gcc-toolchain gcc-11)) +(define-public gcc-toolchain-12 + (make-gcc-toolchain gcc-12)) + (define-public gcc-toolchain-aka-gcc ;; It's natural for users to try "guix install gcc". This package ;; automatically "redirects" them to 'gcc-toolchain'. From 3e59d41df031a86e48f6b8ee1ac7a72d3c183f69 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Mon, 23 May 2022 20:54:18 +0200 Subject: [PATCH 267/363] gnu: sssd: Update to 2.7.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add support for renewing AD membership with adcli. Wrap binaries with LDB_MODULES_PATH. Fix the sss_analyze utility to run without systemd libraries. Add native inputs to generate man pages and run additional tests during build. * gnu/packages/sssd.scm (sssd): Update to 2.7.0. [patches]: Drop patches applied upstream. Add a patch for sss_analyze. [inputs]: Add adcli, bash-minimal, jose, keyutils, libnl, pcre2, python. Drop augeas, pcre. [native-inputs]: Add cmocka, doxygen, gettext-minimal, libfaketime, libtool, openssh, po4a, softhsm. [arguments]: Rewrite in gexp style. Fix configure checks. Remove static library from install. Wrap binaries to set correct paths. * gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch, gnu/packages/patches/sssd-fix-samba-4.15.3.patch, gnu/packages/patches/sssd-fix-samba.patch: Delete files. * gnu/packages/patches/sssd-optional-systemd.patch: New file. * gnu/local.mk (dist_patch_DATA): Update accordingly. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 4 +- ...d-collision-with-external-nss-symbol.patch | 71 --- .../patches/sssd-fix-samba-4.15.3.patch | 523 ------------------ gnu/packages/patches/sssd-fix-samba.patch | 50 -- .../patches/sssd-optional-systemd.patch | 45 ++ .../patches/sssd-system-directories.patch | 44 +- gnu/packages/sssd.scm | 207 ++++--- 7 files changed, 204 insertions(+), 740 deletions(-) delete mode 100644 gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch delete mode 100644 gnu/packages/patches/sssd-fix-samba-4.15.3.patch delete mode 100644 gnu/packages/patches/sssd-fix-samba.patch create mode 100644 gnu/packages/patches/sssd-optional-systemd.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2a74677509..2cadb8c42c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1614,8 +1614,6 @@ dist_patch_DATA = \ %D%/packages/patches/sdl-pango-sans-serif.patch \ %D%/packages/patches/smalltalk-multiplication-overflow.patch \ %D%/packages/patches/sqlite-hurd.patch \ - %D%/packages/patches/sssd-collision-with-external-nss-symbol.patch \ - %D%/packages/patches/sssd-fix-samba-4.15.3.patch \ %D%/packages/patches/strace-readlink-tests.patch \ %D%/packages/patches/sunxi-tools-remove-sys-io.patch \ %D%/packages/patches/p11-kit-hurd.patch \ @@ -1829,7 +1827,7 @@ dist_patch_DATA = \ %D%/packages/patches/snappy-add-inline-for-GCC.patch \ %D%/packages/patches/sphinxbase-fix-doxygen.patch \ %D%/packages/patches/spice-vdagent-glib-2.68.patch \ - %D%/packages/patches/sssd-fix-samba.patch \ + %D%/packages/patches/sssd-optional-systemd.patch \ %D%/packages/patches/sssd-system-directories.patch \ %D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/suitesparse-mongoose-cmake.patch \ diff --git a/gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch b/gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch deleted file mode 100644 index 9d59ae91be..0000000000 --- a/gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch +++ /dev/null @@ -1,71 +0,0 @@ -From fe9eeb51be06059721e873f77092b1e9ba08e6c1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michal=20=C5=BDidek?= -Date: Thu, 27 Feb 2020 06:50:40 +0100 -Subject: [PATCH] nss: Collision with external nss symbol -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -One of our internal static function names started -to collide with external nss symbol. Additional -sss_ suffix was added to avoid the collision. - -This is needed to unblock Fedora Rawhide's -SSSD build. - -Reviewed-by: Pavel Březina ---- - src/responder/nss/nss_cmd.c | 18 ++++++++++-------- - 1 file changed, 10 insertions(+), 8 deletions(-) - -diff --git a/src/responder/nss/nss_cmd.c b/src/responder/nss/nss_cmd.c -index 356aea1564..02706c4b94 100644 ---- a/src/responder/nss/nss_cmd.c -+++ b/src/responder/nss/nss_cmd.c -@@ -731,11 +731,13 @@ static void nss_getent_done(struct tevent_req *subreq) - talloc_free(cmd_ctx); - } - --static void nss_setnetgrent_done(struct tevent_req *subreq); -+static void sss_nss_setnetgrent_done(struct tevent_req *subreq); - --static errno_t nss_setnetgrent(struct cli_ctx *cli_ctx, -- enum cache_req_type type, -- nss_protocol_fill_packet_fn fill_fn) -+/* This function's name started to collide with external nss symbol, -+ * so it has additional sss_* prefix unlike other functions here. */ -+static errno_t sss_nss_setnetgrent(struct cli_ctx *cli_ctx, -+ enum cache_req_type type, -+ nss_protocol_fill_packet_fn fill_fn) - { - struct nss_ctx *nss_ctx; - struct nss_state_ctx *state_ctx; -@@ -777,7 +779,7 @@ static errno_t nss_setnetgrent(struct cli_ctx *cli_ctx, - goto done; - } - -- tevent_req_set_callback(subreq, nss_setnetgrent_done, cmd_ctx); -+ tevent_req_set_callback(subreq, sss_nss_setnetgrent_done, cmd_ctx); - - ret = EOK; - -@@ -790,7 +792,7 @@ static errno_t nss_setnetgrent(struct cli_ctx *cli_ctx, - return EOK; - } - --static void nss_setnetgrent_done(struct tevent_req *subreq) -+static void sss_nss_setnetgrent_done(struct tevent_req *subreq) - { - struct nss_cmd_ctx *cmd_ctx; - errno_t ret; -@@ -1040,8 +1042,8 @@ static errno_t nss_cmd_initgroups_ex(struct cli_ctx *cli_ctx) - - static errno_t nss_cmd_setnetgrent(struct cli_ctx *cli_ctx) - { -- return nss_setnetgrent(cli_ctx, CACHE_REQ_NETGROUP_BY_NAME, -- nss_protocol_fill_setnetgrent); -+ return sss_nss_setnetgrent(cli_ctx, CACHE_REQ_NETGROUP_BY_NAME, -+ nss_protocol_fill_setnetgrent); - } - - static errno_t nss_cmd_getnetgrent(struct cli_ctx *cli_ctx) diff --git a/gnu/packages/patches/sssd-fix-samba-4.15.3.patch b/gnu/packages/patches/sssd-fix-samba-4.15.3.patch deleted file mode 100644 index 731daa0ed9..0000000000 --- a/gnu/packages/patches/sssd-fix-samba-4.15.3.patch +++ /dev/null @@ -1,523 +0,0 @@ -From 3ba88c317fd64b69b000adbdf881c88383f325d1 Mon Sep 17 00:00:00 2001 -From: Noel Power -Date: Tue, 24 Mar 2020 13:37:07 +0000 -Subject: [PATCH] Use ndr_pull_steal_switch_value for modern samba versions -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -commit bc56b10aea999284458dcc293b54cf65288e325d attempted to -fix the build error resulting from removal of 'ndr_pull_get_switch' - -This change uses the new replacement method -'ndr_pull_steal_switch_value' however depending on the samba version -the ndr_pull_steal_switch_value abi is different. - -Note: ndr_pull_steal_switch_value is used since samba 4.10 for - the affected methods - -Note: the following methods have been refreshed from samba-4.12 generated - code; - - o ndr_pull_security_ace_object_type - o ndr_pull_security_ace_object_inherited_type - o ndr_pull_security_ace_object_ctr - -Signed-off-by: Noel Power - -Reviewed-by: Pavel Březina -(cherry picked from commit 1fdd8fa2fded1985fbfc6aa67394eebcdbb6a2fc) - -Reviewed-by: Pavel Březina ---- - src/external/samba.m4 | 9 ++++++- - src/providers/ad/ad_gpo_ndr.c | 45 ++++++++++++++++++++--------------- - 2 files changed, 34 insertions(+), 20 deletions(-) - -diff --git a/src/external/samba.m4 b/src/external/samba.m4 -index 089f602a60..8e06174ead 100644 ---- a/src/external/samba.m4 -+++ b/src/external/samba.m4 -@@ -132,8 +132,15 @@ int main(void) - AC_DEFINE_UNQUOTED(SMB_IDMAP_DOMAIN_HAS_DOM_SID, 1, - [Samba's struct idmap_domain has dom_sid member]) - AC_MSG_NOTICE([Samba's struct idmap_domain has dom_sid member]) -+ if test $samba_minor_version -ge 12 ; then -+ AC_DEFINE_UNQUOTED(SMB_HAS_NEW_NDR_PULL_STEAL_SWITCH, 1, -+ [Samba's new push/pull switch functions]) -+ AC_MSG_NOTICE([Samba has support for new ndr_push_steal_switch_value and ndr_pull_steal_switch_value functions]) -+ else -+ AC_MSG_NOTICE([Samba supports old ndr_pull_steal_switch_value and ndr_pull_steal_switch_value functions]) -+ fi - else - AC_MSG_NOTICE([Samba's struct idmap_domain does not have dom_sid member]) -+ AC_MSG_NOTICE([Samba supports old ndr_pull_steal_switch_value and ndr_pull_steal_switch_value functions]) - fi -- - fi - - SAVE_CFLAGS=$CFLAGS -diff --git a/src/providers/ad/ad_gpo_ndr.c b/src/providers/ad/ad_gpo_ndr.c -index 49c49d71b2..3d389e513d 100644 ---- a/src/providers/ad/ad_gpo_ndr.c -+++ b/src/providers/ad/ad_gpo_ndr.c -@@ -105,9 +105,14 @@ ndr_pull_security_ace_object_type(struct ndr_pull *ndr, - union security_ace_object_type *r) - { - uint32_t level; -- level = ndr_token_peek(&ndr->switch_list, r); - NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); - if (ndr_flags & NDR_SCALARS) { -+ /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */ -+#ifdef SMB_HAS_NEW_NDR_PULL_STEAL_SWITCH -+ NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level)); -+#else -+ level = ndr_pull_steal_switch_value(ndr, r); -+#endif - NDR_CHECK(ndr_pull_union_align(ndr, 4)); - switch (level) { - case SEC_ACE_OBJECT_TYPE_PRESENT: { -@@ -117,14 +122,6 @@ ndr_pull_security_ace_object_type(struct ndr_pull *ndr, - break; } - } - } -- if (ndr_flags & NDR_BUFFERS) { -- switch (level) { -- case SEC_ACE_OBJECT_TYPE_PRESENT: -- break; -- default: -- break; -- } -- } - return NDR_ERR_SUCCESS; - } - -@@ -135,9 +132,14 @@ ndr_pull_security_ace_object_inherited_type(struct ndr_pull *ndr, - union security_ace_object_inherited_type *r) - { - uint32_t level; -- level = ndr_token_peek(&ndr->switch_list, r); - NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); - if (ndr_flags & NDR_SCALARS) { -+ /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */ -+#ifdef SMB_HAS_NEW_NDR_PULL_STEAL_SWITCH -+ NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level)); -+#else -+ level = ndr_pull_steal_switch_value(ndr, r); -+#endif - NDR_CHECK(ndr_pull_union_align(ndr, 4)); - switch (level) { - case SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT: { -@@ -149,14 +151,6 @@ ndr_pull_security_ace_object_inherited_type(struct ndr_pull *ndr, - break; } - } - } -- if (ndr_flags & NDR_BUFFERS) { -- switch (level) { -- case SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT: -- break; -- default: -- break; -- } -- } - return NDR_ERR_SUCCESS; - } - -@@ -198,9 +192,14 @@ ndr_pull_security_ace_object_ctr(struct ndr_pull *ndr, - union security_ace_object_ctr *r) - { - uint32_t level; -- level = ndr_token_peek(&ndr->switch_list, r); - NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); - if (ndr_flags & NDR_SCALARS) { -+ /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */ -+#ifdef SMB_HAS_NEW_NDR_PULL_STEAL_SWITCH -+ NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level)); -+#else -+ level = ndr_pull_steal_switch_value(ndr, r); -+#endif - NDR_CHECK(ndr_pull_union_align(ndr, 4)); - switch (level) { - case SEC_ACE_TYPE_ACCESS_ALLOWED_OBJECT: { -@@ -224,6 +223,14 @@ ndr_pull_security_ace_object_ctr(struct ndr_pull *ndr, - } - } - if (ndr_flags & NDR_BUFFERS) { -+ if (!(ndr_flags & NDR_SCALARS)) { -+ /* We didn't get it above, and the token is not needed after this. */ -+#ifdef SMB_HAS_NEW_NDR_PULL_STEAL_SWITCH -+ NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level)); -+#else -+ level = ndr_pull_steal_switch_value(ndr, r); -+#endif -+ } - switch (level) { - case SEC_ACE_TYPE_ACCESS_ALLOWED_OBJECT: - NDR_CHECK(ndr_pull_security_ace_object -From 5285a1896ee19bb8f1ff752380547bc6d7a43334 Mon Sep 17 00:00:00 2001 -From: Noel Power -Date: Tue, 24 Mar 2020 18:14:34 +0000 -Subject: [PATCH] ad_gpo_ndr.c: refresh ndr_ methods from samba-4.12 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Noel Power - -Reviewed-by: Pavel Březina -(cherry picked from commit c031adde4f532f39845a0efd78693600f1f8b2f4) - -Reviewed-by: Pavel Březina ---- - src/providers/ad/ad_gpo_ndr.c | 201 ++++++++++++++++++---------------- - 1 file changed, 106 insertions(+), 95 deletions(-) - -diff --git a/src/providers/ad/ad_gpo_ndr.c b/src/providers/ad/ad_gpo_ndr.c -index 3d389e513d..a64b1a0f84 100644 ---- a/src/providers/ad/ad_gpo_ndr.c -+++ b/src/providers/ad/ad_gpo_ndr.c -@@ -177,8 +177,16 @@ ndr_pull_security_ace_object(struct ndr_pull *ndr, - NDR_CHECK(ndr_pull_trailer_align(ndr, 4)); - } - if (ndr_flags & NDR_BUFFERS) { -+ NDR_CHECK(ndr_pull_set_switch_value -+ (ndr, -+ &r->type, -+ r->flags & SEC_ACE_OBJECT_TYPE_PRESENT)); - NDR_CHECK(ndr_pull_security_ace_object_type - (ndr, NDR_BUFFERS, &r->type)); -+ NDR_CHECK(ndr_pull_set_switch_value -+ (ndr, -+ &r->inherited_type, -+ r->flags & SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT)); - NDR_CHECK(ndr_pull_security_ace_object_inherited_type - (ndr, NDR_BUFFERS, &r->inherited_type)); - } -@@ -342,7 +350,7 @@ ndr_pull_security_acl(struct ndr_pull *ndr, - (ndr, NDR_SCALARS, &r->revision)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_aces)); -- if (r->num_aces > 1000) { -+ if (r->num_aces > 2000) { - return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); - } - size_aces_0 = r->num_aces; -@@ -408,107 +416,110 @@ ad_gpo_ndr_pull_security_descriptor(struct ndr_pull *ndr, - TALLOC_CTX *_mem_save_sacl_0; - uint32_t _ptr_dacl; - TALLOC_CTX *_mem_save_dacl_0; -- uint32_t _flags_save_STRUCT = ndr->flags; -- uint32_t _relative_save_offset; -- -- ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN); -- NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); -- if (ndr_flags & NDR_SCALARS) { -- NDR_CHECK(ndr_pull_align(ndr, 5)); -- NDR_CHECK(ndr_pull_security_descriptor_revision(ndr, -+ { -+ uint32_t _flags_save_STRUCT = ndr->flags; -+ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN); -+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); -+ if (ndr_flags & NDR_SCALARS) { -+ NDR_CHECK(ndr_pull_align(ndr, 5)); -+ NDR_CHECK(ndr_pull_security_descriptor_revision(ndr, -+ NDR_SCALARS, -+ &r->revision)); -+ NDR_CHECK(ndr_pull_security_descriptor_type(ndr, - NDR_SCALARS, -- &r->revision)); -- NDR_CHECK(ndr_pull_security_descriptor_type(ndr, -- NDR_SCALARS, -- &r->type)); -- NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_owner_sid)); -- if (_ptr_owner_sid) { -- NDR_PULL_ALLOC(ndr, r->owner_sid); -- NDR_CHECK(ndr_pull_relative_ptr1(ndr, -- r->owner_sid, -- _ptr_owner_sid)); -- } else { -- r->owner_sid = NULL; -- } -- NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_sid)); -- if (_ptr_group_sid) { -- NDR_PULL_ALLOC(ndr, r->group_sid); -- NDR_CHECK(ndr_pull_relative_ptr1(ndr, -- r->group_sid, -- _ptr_group_sid)); -- } else { -- r->group_sid = NULL; -- } -- NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sacl)); -- if (_ptr_sacl) { -- NDR_PULL_ALLOC(ndr, r->sacl); -- NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sacl, _ptr_sacl)); -- } else { -- r->sacl = NULL; -- } -- NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dacl)); -- if (_ptr_dacl) { -- NDR_PULL_ALLOC(ndr, r->dacl); -- NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dacl, _ptr_dacl)); -- } else { -- r->dacl = NULL; -- } -- NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); -- } -- if (ndr_flags & NDR_BUFFERS) { -- if (r->owner_sid) { -- _relative_save_offset = ndr->offset; -- NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->owner_sid)); -- _mem_save_owner_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); -- NDR_PULL_SET_MEM_CTX(ndr, r->owner_sid, 0); -- NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->owner_sid)); -- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_owner_sid_0, 0); -- if (ndr->offset > ndr->relative_highest_offset) { -- ndr->relative_highest_offset = ndr->offset; -+ &r->type)); -+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_owner_sid)); -+ if (_ptr_owner_sid) { -+ NDR_PULL_ALLOC(ndr, r->owner_sid); -+ NDR_CHECK(ndr_pull_relative_ptr1(ndr, -+ r->owner_sid, -+ _ptr_owner_sid)); -+ } else { -+ r->owner_sid = NULL; - } -- ndr->offset = _relative_save_offset; -- } -- if (r->group_sid) { -- _relative_save_offset = ndr->offset; -- NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->group_sid)); -- _mem_save_group_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); -- NDR_PULL_SET_MEM_CTX(ndr, r->group_sid, 0); -- NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->group_sid)); -- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_sid_0, 0); -- if (ndr->offset > ndr->relative_highest_offset) { -- ndr->relative_highest_offset = ndr->offset; -+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_sid)); -+ if (_ptr_group_sid) { -+ NDR_PULL_ALLOC(ndr, r->group_sid); -+ NDR_CHECK(ndr_pull_relative_ptr1(ndr, -+ r->group_sid, -+ _ptr_group_sid)); -+ } else { -+ r->group_sid = NULL; - } -- ndr->offset = _relative_save_offset; -- } -- if (r->sacl) { -- _relative_save_offset = ndr->offset; -- NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sacl)); -- _mem_save_sacl_0 = NDR_PULL_GET_MEM_CTX(ndr); -- NDR_PULL_SET_MEM_CTX(ndr, r->sacl, 0); -- NDR_CHECK(ndr_pull_security_acl(ndr, -- NDR_SCALARS|NDR_BUFFERS, -- r->sacl)); -- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sacl_0, 0); -- if (ndr->offset > ndr->relative_highest_offset) { -- ndr->relative_highest_offset = ndr->offset; -+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sacl)); -+ if (_ptr_sacl) { -+ NDR_PULL_ALLOC(ndr, r->sacl); -+ NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sacl, _ptr_sacl)); -+ } else { -+ r->sacl = NULL; - } -- ndr->offset = _relative_save_offset; -+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dacl)); -+ if (_ptr_dacl) { -+ NDR_PULL_ALLOC(ndr, r->dacl); -+ NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dacl, _ptr_dacl)); -+ } else { -+ r->dacl = NULL; -+ } -+ NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); - } -- if (r->dacl) { -- _relative_save_offset = ndr->offset; -- NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dacl)); -- _mem_save_dacl_0 = NDR_PULL_GET_MEM_CTX(ndr); -- NDR_PULL_SET_MEM_CTX(ndr, r->dacl, 0); -- NDR_CHECK(ndr_pull_security_acl(ndr, -- NDR_SCALARS|NDR_BUFFERS, -- r->dacl)); -- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dacl_0, 0); -- if (ndr->offset > ndr->relative_highest_offset) { -- ndr->relative_highest_offset = ndr->offset; -+ if (ndr_flags & NDR_BUFFERS) { -+ if (r->owner_sid) { -+ uint32_t _relative_save_offset; -+ _relative_save_offset = ndr->offset; -+ NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->owner_sid)); -+ _mem_save_owner_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); -+ NDR_PULL_SET_MEM_CTX(ndr, r->owner_sid, 0); -+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->owner_sid)); -+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_owner_sid_0, 0); -+ if (ndr->offset > ndr->relative_highest_offset) { -+ ndr->relative_highest_offset = ndr->offset; -+ } -+ ndr->offset = _relative_save_offset; -+ } -+ if (r->group_sid) { -+ uint32_t _relative_save_offset; -+ _relative_save_offset = ndr->offset; -+ NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->group_sid)); -+ _mem_save_group_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); -+ NDR_PULL_SET_MEM_CTX(ndr, r->group_sid, 0); -+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->group_sid)); -+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_sid_0, 0); -+ if (ndr->offset > ndr->relative_highest_offset) { -+ ndr->relative_highest_offset = ndr->offset; -+ } -+ ndr->offset = _relative_save_offset; -+ } -+ if (r->sacl) { -+ uint32_t _relative_save_offset; -+ _relative_save_offset = ndr->offset; -+ NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sacl)); -+ _mem_save_sacl_0 = NDR_PULL_GET_MEM_CTX(ndr); -+ NDR_PULL_SET_MEM_CTX(ndr, r->sacl, 0); -+ NDR_CHECK(ndr_pull_security_acl(ndr, -+ NDR_SCALARS|NDR_BUFFERS, -+ r->sacl)); -+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sacl_0, 0); -+ if (ndr->offset > ndr->relative_highest_offset) { -+ ndr->relative_highest_offset = ndr->offset; -+ } -+ ndr->offset = _relative_save_offset; -+ } -+ if (r->dacl) { -+ uint32_t _relative_save_offset; -+ _relative_save_offset = ndr->offset; -+ NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dacl)); -+ _mem_save_dacl_0 = NDR_PULL_GET_MEM_CTX(ndr); -+ NDR_PULL_SET_MEM_CTX(ndr, r->dacl, 0); -+ NDR_CHECK(ndr_pull_security_acl(ndr, -+ NDR_SCALARS|NDR_BUFFERS, -+ r->dacl)); -+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dacl_0, 0); -+ if (ndr->offset > ndr->relative_highest_offset) { -+ ndr->relative_highest_offset = ndr->offset; -+ } -+ ndr->offset = _relative_save_offset; - } -- ndr->offset = _relative_save_offset; - } -- - ndr->flags = _flags_save_STRUCT; - } - return NDR_ERR_SUCCESS; -From d5809f6f41ec0dc3fd38f9e4ae917a38bf7dfa43 Mon Sep 17 00:00:00 2001 -From: Sumit Bose -Date: Thu, 28 May 2020 15:02:43 +0200 -Subject: [PATCH] ad_gpo_ndr.c: more ndr updates -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This patch add another update to the ndr code which was previously -updated by commit c031adde4f532f39845a0efd78693600f1f8b2f4 and -1fdd8fa2fded1985fbfc6aa67394eebcdbb6a2fc. - -As missing update in ndr_pull_security_ace() cased -a failure in ad_gpo_parse_sd(). A unit-test for ad_gpo_parse_sd() was -added to prevent similar issues in future. - -Resolves: https://github.com/SSSD/sssd/issues/5183 - -Reviewed-by: Pavel Březina -(cherry picked from commit a7c755672cd277497da3df4714f6d9457b6ac5ae) - -Reviewed-by: Pavel Březina ---- - src/providers/ad/ad_gpo_ndr.c | 1 + - src/tests/cmocka/test_ad_gpo.c | 57 ++++++++++++++++++++++++++++++++++ - 2 files changed, 58 insertions(+) - -diff --git a/src/providers/ad/ad_gpo_ndr.c b/src/providers/ad/ad_gpo_ndr.c -index a64b1a0f84..9f040dfb03 100644 ---- a/src/providers/ad/ad_gpo_ndr.c -+++ b/src/providers/ad/ad_gpo_ndr.c -@@ -317,6 +317,7 @@ ndr_pull_security_ace(struct ndr_pull *ndr, - ndr->offset += pad; - } - if (ndr_flags & NDR_BUFFERS) { -+ NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->type)); - NDR_CHECK(ndr_pull_security_ace_object_ctr - (ndr, NDR_BUFFERS, &r->object)); - } -diff --git a/src/tests/cmocka/test_ad_gpo.c b/src/tests/cmocka/test_ad_gpo.c -index 0589adcc3d..97dbe01794 100644 ---- a/src/tests/cmocka/test_ad_gpo.c -+++ b/src/tests/cmocka/test_ad_gpo.c -@@ -329,6 +329,60 @@ void test_ad_gpo_ace_includes_client_sid_false(void **state) - ace_dom_sid, false); - } - -+uint8_t test_sid_data[] = { -+0x01, 0x00, 0x04, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x34, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, -+0xbd, 0x00, 0x0e, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x15, 0x00, 0x00, 0x00, -+0xda, 0x0e, 0xba, 0x60, 0x0f, 0xa2, 0xf4, 0x55, 0xb5, 0x57, 0x47, 0xf8, 0x00, 0x02, 0x00, 0x00, -+0x00, 0x0a, 0x24, 0x00, 0xff, 0x00, 0x0f, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, -+0x15, 0x00, 0x00, 0x00, 0xda, 0x0e, 0xba, 0x60, 0x0f, 0xa2, 0xf4, 0x55, 0xb5, 0x57, 0x47, 0xf8, -+0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0xbd, 0x00, 0x0e, 0x00, 0x01, 0x05, 0x00, 0x00, -+0x00, 0x00, 0x00, 0x05, 0x15, 0x00, 0x00, 0x00, 0xda, 0x0e, 0xba, 0x60, 0x0f, 0xa2, 0xf4, 0x55, -+0xb5, 0x57, 0x47, 0xf8, 0x07, 0x02, 0x00, 0x00, 0x00, 0x0a, 0x24, 0x00, 0xff, 0x00, 0x0f, 0x00, -+0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x15, 0x00, 0x00, 0x00, 0xda, 0x0e, 0xba, 0x60, -+0x0f, 0xa2, 0xf4, 0x55, 0xb5, 0x57, 0x47, 0xf8, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, -+0xbd, 0x00, 0x0e, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x15, 0x00, 0x00, 0x00, -+0xda, 0x0e, 0xba, 0x60, 0x0f, 0xa2, 0xf4, 0x55, 0xb5, 0x57, 0x47, 0xf8, 0x00, 0x02, 0x00, 0x00, -+0x00, 0x0a, 0x14, 0x00, 0xff, 0x00, 0x0f, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, -+0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0xff, 0x00, 0x0f, 0x00, 0x01, 0x01, 0x00, 0x00, -+0x00, 0x00, 0x00, 0x05, 0x12, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x94, 0x00, 0x02, 0x00, -+0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0b, 0x00, 0x00, 0x00, 0x05, 0x02, 0x28, 0x00, -+0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8f, 0xfd, 0xac, 0xed, 0xb3, 0xff, 0xd1, 0x11, -+0xb4, 0x1d, 0x00, 0xa0, 0xc9, 0x68, 0xf9, 0x39, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, -+0x0b, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x94, 0x00, 0x02, 0x00, 0x01, 0x01, 0x00, 0x00, -+0x00, 0x00, 0x00, 0x05, 0x09, 0x00, 0x00, 0x00 -+}; -+ -+void test_ad_gpo_parse_sd(void **state) -+{ -+ int ret; -+ struct security_descriptor *sd = NULL; -+ -+ ret = ad_gpo_parse_sd(test_ctx, NULL, 0, &sd); -+ assert_int_equal(ret, EINVAL); -+ -+ ret = ad_gpo_parse_sd(test_ctx, test_sid_data, sizeof(test_sid_data), &sd); -+ assert_int_equal(ret, EOK); -+ assert_non_null(sd); -+ assert_int_equal(sd->revision, 1); -+ assert_int_equal(sd->type, 39940); -+ assert_null(sd->owner_sid); -+ assert_null(sd->group_sid); -+ assert_null(sd->sacl); -+ assert_non_null(sd->dacl); -+ assert_int_equal(sd->dacl->revision, 4); -+ assert_int_equal(sd->dacl->size, 308); -+ assert_int_equal(sd->dacl->num_aces, 10); -+ assert_int_equal(sd->dacl->aces[0].type, 0); -+ assert_int_equal(sd->dacl->aces[0].flags, 0); -+ assert_int_equal(sd->dacl->aces[0].size, 36); -+ assert_int_equal(sd->dacl->aces[0].access_mask, 917693); -+ /* There are more components and ACEs in the security_descriptor struct -+ * which are not checked here. */ -+ -+ talloc_free(sd); -+} -+ - int main(int argc, const char *argv[]) - { - poptContext pc; -@@ -364,6 +418,9 @@ int main(int argc, const char *argv[]) - cmocka_unit_test_setup_teardown(test_ad_gpo_ace_includes_client_sid_false, - ad_gpo_test_setup, - ad_gpo_test_teardown), -+ cmocka_unit_test_setup_teardown(test_ad_gpo_parse_sd, -+ ad_gpo_test_setup, -+ ad_gpo_test_teardown), - }; - - /* Set debug level to invalid value so we can decide if -d 0 was used. */ diff --git a/gnu/packages/patches/sssd-fix-samba.patch b/gnu/packages/patches/sssd-fix-samba.patch deleted file mode 100644 index 714968337a..0000000000 --- a/gnu/packages/patches/sssd-fix-samba.patch +++ /dev/null @@ -1,50 +0,0 @@ -From bc56b10aea999284458dcc293b54cf65288e325d Mon Sep 17 00:00:00 2001 -From: Stephen Gallagher -Date: Fri, 24 Jan 2020 15:17:39 +0100 -Subject: [PATCH] Fix build failure against samba 4.12.0rc1 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The ndr_pull_get_switch() function was dropped, but it was just a wrapper -around the ndr_token_peek() function, so we can use this approach on both -old and new versions of libndr. - -Signed-off-by: Stephen Gallagher - -Reviewed-by: Pavel Březina ---- - src/providers/ad/ad_gpo_ndr.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/providers/ad/ad_gpo_ndr.c b/src/providers/ad/ad_gpo_ndr.c -index d573033494..8f405aa62b 100644 ---- a/src/providers/ad/ad_gpo_ndr.c -+++ b/src/providers/ad/ad_gpo_ndr.c -@@ -105,7 +105,7 @@ ndr_pull_security_ace_object_type(struct ndr_pull *ndr, - union security_ace_object_type *r) - { - uint32_t level; -- level = ndr_pull_get_switch_value(ndr, r); -+ level = ndr_token_peek(&ndr->switch_list, r); - NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_union_align(ndr, 4)); -@@ -135,7 +135,7 @@ ndr_pull_security_ace_object_inherited_type(struct ndr_pull *ndr, - union security_ace_object_inherited_type *r) - { - uint32_t level; -- level = ndr_pull_get_switch_value(ndr, r); -+ level = ndr_token_peek(&ndr->switch_list, r); - NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_union_align(ndr, 4)); -@@ -198,7 +198,7 @@ ndr_pull_security_ace_object_ctr(struct ndr_pull *ndr, - union security_ace_object_ctr *r) - { - uint32_t level; -- level = ndr_pull_get_switch_value(ndr, r); -+ level = ndr_token_peek(&ndr->switch_list, r); - NDR_PULL_CHECK_FLAGS(ndr, ndr_flags); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_union_align(ndr, 4)); diff --git a/gnu/packages/patches/sssd-optional-systemd.patch b/gnu/packages/patches/sssd-optional-systemd.patch new file mode 100644 index 0000000000..0784fdc7aa --- /dev/null +++ b/gnu/packages/patches/sssd-optional-systemd.patch @@ -0,0 +1,45 @@ +Allow running sss_analyze without Python modules for systemd. +Upstream PR: https://github.com/SSSD/sssd/pull/6125 + +diff --git a/src/tools/analyzer/modules/request.py b/src/tools/analyzer/modules/request.py +index b96a23c05..28ac2f194 100644 +--- a/src/tools/analyzer/modules/request.py ++++ b/src/tools/analyzer/modules/request.py +@@ -1,8 +1,6 @@ + import re + import logging + +-from sssd.source_files import Files +-from sssd.source_journald import Journald + from sssd.parser import SubparsersAction + from sssd.parser import Option + +@@ -77,8 +75,10 @@ class RequestAnalyzer: + Instantiated source object + """ + if args.source == "journald": ++ from sssd.source_journald import Journald + source = Journald() + else: ++ from sssd.source_files import Files + source = Files(args.logdir) + return source + +@@ -143,7 +143,7 @@ class RequestAnalyzer: + self.consumed_logs.append(line.rstrip(line[-1])) + else: + # files source includes newline +- if isinstance(source, Files): ++ if type(source).__name__ == 'Files': + print(line, end='') + else: + print(line) +@@ -225,7 +225,7 @@ class RequestAnalyzer: + source.set_component(component, False) + self.done = "" + for line in self.matched_line(source, patterns): +- if isinstance(source, Journald): ++ if type(source).__name__ == 'Journald': + print(line) + else: + self.print_formatted(line, args.verbose) diff --git a/gnu/packages/patches/sssd-system-directories.patch b/gnu/packages/patches/sssd-system-directories.patch index f2ab0182e1..ce0dcf5d4d 100644 --- a/gnu/packages/patches/sssd-system-directories.patch +++ b/gnu/packages/patches/sssd-system-directories.patch @@ -1,29 +1,29 @@ Do not attempt to create $localstatedir and $sysconfdir (i.e., /var and /etc) upon "make install". -diff --git a/Makefile.in b/Makefile.in -index c32cb7d..77a5c00 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -7991,7 +7991,7 @@ sssdconfdir = $(sysconfdir)/sssd - sssddatadir = $(datadir)/sssd +diff --git a/Makefile.am b/Makefile.am +index 0de53a2c8..51ad57bf1 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -58,7 +58,7 @@ sssddatadir = $(datadir)/sssd sssdapiplugindir = $(sssddatadir)/sssd.api.d sssdtapscriptdir = $(sssddatadir)/systemtap + krb5snippetsdir = $(sssddatadir)/krb5-snippets -dbuspolicydir = $(sysconfdir)/dbus-1/system.d +dbuspolicydir = $(prefix)/etc/dbus-1/system.d dbusservicedir = $(datadir)/dbus-1/system-services sss_statedir = $(localstatedir)/lib/sss - pamlibdir = @pammoddir@ -@@ -8000,7 +8000,7 @@ nfslibdir = @nfsidmaplibdir@ - keytabdir = $(sss_statedir)/keytabs - pkgconfigdir = $(libdir)/pkgconfig + runstatedir = @runstatedir@ +@@ -85,7 +85,7 @@ pkgconfigdir = $(libdir)/pkgconfig + krb5rcachedir = @krb5rcachedir@ sudolibdir = @sudolibpath@ + polkitdir = @polkitdir@ -pamconfdir = $(sysconfdir)/pam.d +pamconfdir = $(prefix)/etc/pam.d systemtap_tapdir = @tapset_dir@ sssdkcmdatadir = $(datadir)/sssd-kcm deskprofilepath = $(sss_statedir)/deskprofile -@@ -43733,7 +43733,6 @@ installsssddirs:: +@@ -5195,7 +5195,6 @@ installsssddirs:: $(DESTDIR)$(bindir) \ $(DESTDIR)$(sbindir) \ $(DESTDIR)$(mandir) \ @@ -31,15 +31,18 @@ index c32cb7d..77a5c00 100644 $(DESTDIR)$(pluginpath) \ $(DESTDIR)$(libdir)/ldb \ $(DESTDIR)$(dbuspolicydir) \ -@@ -43743,22 +43742,9 @@ installsssddirs:: +@@ -5205,24 +5204,12 @@ installsssddirs:: $(DESTDIR)$(sssddatadir) \ $(DESTDIR)$(sudolibdir) \ $(DESTDIR)$(autofslibdir) \ - $(DESTDIR)$(pipepath)/private \ + $(DESTDIR)$(krb5snippetsdir) \ - $(SSSD_USER_DIRS) \ $(NULL); - @SSSD_USER_TRUE@ -chown $(SSSD_USER):$(SSSD_USER) $(SSSD_USER_DIRS) - @SSSD_USER_TRUE@ -chown $(SSSD_USER) $(DESTDIR)$(pipepath)/private + if SSSD_USER + -chown $(SSSD_USER):$(SSSD_USER) $(SSSD_USER_DIRS) + -chown $(SSSD_USER) $(DESTDIR)$(pipepath)/private + endif - $(INSTALL) -d -m 0700 $(DESTDIR)$(dbpath) $(DESTDIR)$(logpath) \ - $(DESTDIR)$(keytabdir) \ - $(NULL) @@ -50,7 +53,14 @@ index c32cb7d..77a5c00 100644 - $(INSTALL) -d -m 0711 $(DESTDIR)$(sssdconfdir) \ - $(DESTDIR)$(sssdconfdir)/conf.d \ - $(DESTDIR)$(sssdconfdir)/pki --@BUILD_SECRETS_TRUE@ $(MKDIR_P) $(DESTDIR)$(secdbpath) - @HAVE_DOXYGEN_TRUE@docs: - @HAVE_DOXYGEN_TRUE@ $(DOXYGEN) src/doxy.config + if HAVE_DOXYGEN + docs: +@@ -5338,7 +5325,6 @@ if BUILD_SAMBA + endif + if BUILD_KCM + $(MKDIR_P) $(DESTDIR)/$(sssdkcmdatadir) +- $(MKDIR_P) $(DESTDIR)$(secdbpath) + endif + + uninstall-hook: diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm index 5457991952..2b4322d6d8 100644 --- a/gnu/packages/sssd.scm +++ b/gnu/packages/sssd.scm @@ -24,22 +24,28 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix utils) + #:use-module (guix build utils) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages) #:use-module (gnu packages adns) #:use-module (gnu packages augeas) #:use-module (gnu packages autotools) + #:use-module (gnu packages bash) #:use-module (gnu packages check) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) #:use-module (gnu packages dns) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) + #:use-module (gnu packages gettext) #:use-module (gnu packages glib) + #:use-module (gnu packages jose) #:use-module (gnu packages kerberos) #:use-module (gnu packages libunistring) #:use-module (gnu packages linux) @@ -49,8 +55,11 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages popt) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages samba) + #:use-module (gnu packages security-token) #:use-module (gnu packages selinux) + #:use-module (gnu packages ssh) #:use-module (gnu packages web) #:use-module (gnu packages xml)) @@ -136,93 +145,128 @@ dynamically-growing, reference-counted array; libbasicobjects, a set of fundamental object types for C.") (license license:lgpl3+))) -;; Note: This package installs modules for ldb and nss. For the former we -;; need to set LDB_MODULES_PATH. For the latter LD_PRELOAD or LD_LIBRARY_PATH -;; is needed. (define-public sssd (package (name "sssd") - (version "1.16.5") - (source (origin - (method url-fetch) - (uri (string-append "https://releases.pagure.org/SSSD/sssd/" - "sssd-" version ".tar.gz")) - (sha256 - (base32 - "1h6hwibaf3xa2w6qpzjiiywmfj6zkgbz4r2isf3gd0xm6vq7n6if")) - (patches (search-patches "sssd-fix-samba.patch" - "sssd-system-directories.patch" - "sssd-collision-with-external-nss-symbol.patch" - "sssd-fix-samba-4.15.3.patch")))) + (version "2.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SSSD/sssd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05pw5lg410vc2yc3k4hqfsbyr9k4k18qb61gbh9xz7fcjpcysqv8")) + (patches (search-patches "sssd-optional-systemd.patch" + "sssd-system-directories.patch")))) (build-system gnu-build-system) (arguments - `(#:make-flags - (list (string-append "DOCBOOK_XSLT=" - (assoc-ref %build-inputs "docbook-xsl") - "/xml/xsl/docbook-xsl-" - ,(package-version docbook-xsl) - "/manpages/docbook.xsl") - ;; Remove "--postvalid" option, because that requires access to - ;; online DTDs. - "XMLLINT_FLAGS = --catalogs --nonet --noent --xinclude --noout") - #:configure-flags - (list "--localstatedir=/var" ;for /var/lib/sss, /var/run/sssd.pid, etc. - "--sysconfdir=/etc" ;/etc/sssd + (list + #:make-flags + #~(list (string-append "CFLAGS=-DRENEWAL_PROG_PATH=\\\"" + #$(this-package-input "adcli") "/sbin/adcli" + "\\\"") + (string-append "DOCBOOK_XSLT=" + #$(this-package-native-input "docbook-xsl") + "/xml/xsl/docbook-xsl-" + #$(package-version (this-package-native-input "docbook-xsl")) + "/manpages/docbook.xsl") + ;; Remove "--postvalid" option, because that requires access to + ;; online DTDs. + "XMLLINT_FLAGS = --catalogs --nonet --noent --xinclude --noout") + #:configure-flags + #~(list "--localstatedir=/var" ; for /var/lib/sss, /var/run/sssd.pid, etc. + "--sysconfdir=/etc" ; /etc/sssd - "--disable-cifs-idmap-plugin" - "--without-nfsv4-idmapd-plugin" - "--without-python2-bindings" - "--without-python3-bindings" - (string-append "--with-plugin-path=" - (assoc-ref %outputs "out") - "/lib/sssd") - (string-append "--with-krb5-plugin-path=" - (assoc-ref %outputs "out") - "/lib/krb5/plugins/libkrb5") - (string-append "--with-cifs-plugin-path=" - (assoc-ref %outputs "out") - "/lib/cifs-utils") - (string-append "--with-init-dir=" - (assoc-ref %outputs "out") - "/etc/init.d") - (string-append "--with-ldb-lib-dir=" - (assoc-ref %outputs "out") - "/lib/ldb/modules/ldb") - (string-append "--with-xml-catalog-path=" - (assoc-ref %build-inputs "docbook-xml") - "/xml/dtd/docbook/catalog.xml")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-failing-test - (lambda _ - (substitute* "src/tests/responder_socket_access-tests.c" - (("tcase_add_test\\(tc_utils, resp_str_to_array_test\\);") "")) - #t)) - (add-after 'unpack 'add-config-in - (lambda _ - (let ((config.h (open-file "config.h.in" "a"))) - (display (string-append " -/* Missing in commits on original repo, dunno why but won't work without. */ -#undef SMB_HAS_NEW_NDR_PULL_STEAL_SWITCH -") - config.h) - (close config.h)))) - (add-before 'configure 'autoconf - (lambda _ - (invoke "autoconf")))))) + "--disable-cifs-idmap-plugin" + "--without-nfsv4-idmapd-plugin" + (string-append "--with-plugin-path=" + #$output "/lib/sssd") + (string-append "--with-krb5-plugin-path=" + #$output "/lib/krb5/plugins/libkrb5") + (string-append "--with-cifs-plugin-path=" + #$output "/lib/cifs-utils") + (string-append "--with-init-dir=" + #$output "/etc/init.d") + (string-append "--with-ldb-lib-dir=" + #$output "/lib/ldb/modules/ldb") + (string-append "--with-xml-catalog-path=" + #$(this-package-native-input "docbook-xml") + "/xml/dtd/docbook/catalog.xml")) + #:phases + #~(modify-phases %standard-phases + (add-after 'patch-source-shebangs 'patch-more-shebangs + (lambda _ + (substitute* '("src/tools/analyzer/sss_analyze" + "src/tools/sss_obfuscate") + (("#!/usr/bin/.*python") + (string-append "#!" #$(this-package-input "python") "/bin/python3"))))) + (add-before 'bootstrap 'fix-configure-macros + (lambda _ + ;; A configure test for nsupdate realm support fails without this. + (substitute* "src/external/nsupdate.m4" + (("\\$NSUPDATE ") "$NSUPDATE -i ")) + ;; Let tests find softhsm lib. + (substitute* "src/external/test_ca.m4" + (("/usr/lib/softhsm") + (string-append #$(this-package-native-input "softhsm") + "/lib/softhsm"))))) + (add-before 'configure 'disable-failing-tests + (lambda _ + ;; Disable tests that needs /etc/passwd. + (substitute* "Makefile.am" + (("pam-srv-tests") "") + (("test-negcache") "")) + ;; This test fails for unknown reason. + (substitute* "src/tests/responder_socket_access-tests.c" + (("tcase_add_test\\(tc_utils, resp_str_to_array_test\\);") "")))) + (add-before 'check 'set-libpython-path + (lambda _ + (setenv "LD_LIBRARY_PATH" + (string-append #$(this-package-input "python") "/lib")))) + (add-after 'install 'remove-static-libs + (lambda _ + ;; Remove a static library that produces a (harmless) warning + ;; when starting a program that uses sssd’s LDB modules. + (delete-file + (string-append #$output "/lib/ldb/modules/ldb/memberof.la")))) + (add-after 'install 'wrap-binaries + (lambda _ + (with-directory-excursion #$output + ;; Set path to LDB modules for sssd and utilities. + (for-each (lambda (bin) + (wrap-program (string-append "sbin/" bin) + `("LDB_MODULES_PATH" ":" prefix + (,(string-append #$output "/lib/ldb/modules/ldb"))))) + '("sssd" "sssctl" "sss_cache" "sss_override" "sss_seed")) + ;; Set path to sssd’s site-packages for scripts. + (for-each (lambda (script) + (wrap-program script + `("GUIX_PYTHONPATH" ":" prefix + (,(string-append #$output "/lib/python" + #$(version-major+minor + (package-version + (this-package-input "python"))) + "/site-packages"))))) + '("libexec/sssd/sss_analyze" "sbin/sss_obfuscate")))))))) (inputs - (list augeas - `(,isc-bind "utils") + (list adcli + bash-minimal c-ares - curl + curl ; for OpenID Connect support cyrus-sasl dbus ding-libs glib gnutls http-parser + `(,isc-bind "utils") jansson + jose ; for OpenID Connect support + keyutils ldb + libnl libselinux libsemanage libunistring @@ -231,21 +275,32 @@ fundamental object types for C.") nss openldap openssl - pcre + p11-kit ; for PKCS#11 support + pcre2 popt + python samba talloc tdb tevent)) (native-inputs - (list autoconf-2.69 - check-0.14 - docbook-xsl + (list autoconf + automake + check ; for tests + cmocka ; for tests docbook-xml + docbook-xsl + doxygen + gettext-minimal + libfaketime ; for tests + libtool libxml2 ; for xmllint libxslt + openssh ; for tests pkg-config - `(,util-linux "lib"))) ;for uuid.h, reqired for KCM + po4a + softhsm ; for tests + `(,util-linux "lib"))) ; for uuid.h, reqired for KCM (home-page "https://pagure.io/SSSD/sssd/") (synopsis "System security services daemon") (description "SSSD is a system daemon. Its primary function is to provide From 29c931780897b78c8d1499b648692a84a7b5063d Mon Sep 17 00:00:00 2001 From: ykonai Date: Mon, 23 May 2022 21:39:08 +0200 Subject: [PATCH 268/363] services: Add log rotation to most networking services. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds a simple log rotation extension to every networking service that specifies a #:log-file in its Shepherd service, which should prevent some logs from accumulating indefinitely. * gnu/services/networking.scm (%ntp-log-rotation): New variable. (ntp-service-type): Extend 'rottlog-service-type'. (openntpd-shepherd-service): Change #:log-file argument to "/var/log/ntpd.log". (openntpd-service-type): Extend 'rottlog-service-type'. (%tor-log-rotation): New variable. (tor-service-type): Extend 'rottlog-service-type'. (%connman-log-rotation): New variable. (connman-service-type): Extend 'rottlog-service-type'. (%hostapd-log-rotation): New variable. (hostapd-service-type): Extend 'rottlog-service-type'. (%pagekite-log-rotation): New variable. (pagekite-service-type): Extend 'rottlog-service-type'. (%yggdrasil-log-rotation): New variable. (yggdrasil-service-type): Extend 'rottlog-service-type'. (%ipfs-log-rotation): New variable. (ipfs-service-type): Extend 'rottlog-service-type'. (%keepalived-log-rotation): New variable. (keepalived-service-type): Extend 'rottlog-service-type'. Signed-off-by: Ludovic Courtès --- gnu/services/networking.scm | 72 +++++++++++++++++++++++++++++++------ 1 file changed, 62 insertions(+), 10 deletions(-) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 399cd03c1d..d8fe638940 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -41,6 +41,7 @@ #:use-module (gnu services linux) #:use-module (gnu services shepherd) #:use-module (gnu services dbus) + #:use-module (gnu services admin) #:use-module (gnu system shadow) #:use-module (gnu system pam) #:use-module ((gnu system file-systems) #:select (file-system-mapping)) @@ -384,6 +385,11 @@ daemon is responsible for allocating IP addresses to its client."))) ;;; NTP. ;;; + +(define %ntp-log-rotation + (list (log-rotation + (files '("/var/log/ntpd.log"))))) + (define ntp-server-types (make-enumeration '(pool server @@ -532,7 +538,9 @@ restrict source notrap nomodify noquery\n")) (service-extension account-service-type (const %ntp-accounts)) (service-extension activation-service-type - ntp-service-activation))) + ntp-service-activation) + (service-extension rottlog-service-type + (const %ntp-log-rotation)))) (description "Run the @command{ntpd}, the Network Time Protocol (NTP) daemon of the @uref{http://www.ntp.org, Network Time Foundation}. The daemon @@ -614,7 +622,7 @@ will keep the system clock synchronized with that of the given servers.") ;; When ntpd is daemonized it repeatedly tries to respawn ;; while running, leading shepherd to disable it. To ;; prevent spamming stderr, redirect output to logfile. - #:log-file "/var/log/ntpd")) + #:log-file "/var/log/ntpd.log")) (stop #~(make-kill-destructor)))))) (define (openntpd-service-activation config) @@ -640,7 +648,9 @@ will keep the system clock synchronized with that of the given servers.") (service-extension profile-service-type (compose list openntpd-configuration-openntpd)) (service-extension activation-service-type - openntpd-service-activation))) + openntpd-service-activation) + (service-extension rottlog-service-type + (const %ntp-log-rotation)))) (default-value (openntpd-configuration)) (description "Run the @command{ntpd}, the Network Time Protocol (NTP) @@ -987,6 +997,10 @@ HiddenServicePort ~a ~a~%" (stop #~(make-kill-destructor)) (documentation "Run the Tor anonymous network overlay.")))))))) +(define %tor-log-rotation + (list (log-rotation + (files '("/var/log/tor.log"))))) + (define (tor-activation config) "Set up directories for Tor and its hidden services, if any." #~(begin @@ -1032,7 +1046,9 @@ HiddenServicePort ~a ~a~%" (service-extension account-service-type (const %tor-accounts)) (service-extension activation-service-type - tor-activation))) + tor-activation) + (service-extension rottlog-service-type + (const %tor-log-rotation)))) ;; This can be extended with hidden services. (compose concatenate) @@ -1314,6 +1330,10 @@ wireless networking.")))) #:log-file "/var/log/connman.log")) (stop #~(make-kill-destructor))))))) +(define %connman-log-rotation + (list (log-rotation + (files '("/var/log/connman.log"))))) + (define connman-service-type (let ((connman-package (compose list connman-configuration-connman))) (service-type (name 'connman) @@ -1328,7 +1348,9 @@ wireless networking.")))) connman-activation) ;; Add connman to the system profile. (service-extension profile-service-type - connman-package))) + connman-package) + (service-extension rottlog-service-type + (const %connman-log-rotation)))) (default-value (connman-configuration)) (description "Run @url{https://01.org/connman,Connman}, @@ -1570,12 +1592,18 @@ extra-settings "\n")))) #:log-file "/var/log/hostapd.log")) (stop #~(make-kill-destructor))))) +(define %hostapd-log-rotation + (list (log-rotation + (files '("/var/log/hostapd.log"))))) + (define hostapd-service-type (service-type (name 'hostapd) (extensions (list (service-extension shepherd-root-service-type - hostapd-shepherd-services))) + hostapd-shepherd-services) + (service-extension rottlog-service-type + (const %hostapd-log-rotation)))) (description "Run the @uref{https://w1.fi/hostapd/, hostapd} daemon for Wi-Fi access points and authentication servers."))) @@ -1867,6 +1895,10 @@ table inet filter { ;; SIGTERM doesn't always work for some reason. (stop #~(make-kill-destructor SIGINT)))))) +(define %pagekite-log-rotation + (list (log-rotation + (files '("/var/log/pagekite.log"))))) + (define %pagekite-accounts (list (user-group (name "pagekite") (system? #t)) (user-account @@ -1885,7 +1917,9 @@ table inet filter { (list (service-extension shepherd-root-service-type (compose list pagekite-shepherd-service)) (service-extension account-service-type - (const %pagekite-accounts)))) + (const %pagekite-accounts)) + (service-extension rottlog-service-type + (const %pagekite-log-rotation)))) (description "Run @url{https://pagekite.net/,PageKite}, a tunneling solution to make local servers publicly accessible on the web, even behind NATs and firewalls."))) @@ -1976,6 +2010,10 @@ local servers publicly accessible on the web, even behind NATs and firewalls.")) #:group "yggdrasil")) (stop #~(make-kill-destructor))))) +(define %yggdrasil-log-rotation + (list (log-rotation + (files '("/var/log/yggdrasil.log"))))) + (define %yggdrasil-accounts (list (user-group (name "yggdrasil") (system? #t)))) @@ -1991,7 +2029,9 @@ See @command{yggdrasil -genconf} for config options.") (service-extension account-service-type (const %yggdrasil-accounts)) (service-extension profile-service-type - (compose list yggdrasil-configuration-package)))))) + (compose list yggdrasil-configuration-package)) + (service-extension rottlog-service-type + (const %yggdrasil-log-rotation)))))) ;;; @@ -2061,6 +2101,10 @@ See @command{yggdrasil -genconf} for config options.") #:environment-variables #$%ipfs-environment)) (stop #~(make-kill-destructor))))) +(define %ipfs-log-rotation + (list (log-rotation + (files '("/var/log/ipfs.log"))))) + (define (%ipfs-activation config) "Return an activation gexp for IPFS with CONFIG" (define (exec-command . args) @@ -2116,7 +2160,9 @@ See @command{yggdrasil -genconf} for config options.") (service-extension activation-service-type %ipfs-activation) (service-extension shepherd-root-service-type - ipfs-shepherd-service))) + ipfs-shepherd-service) + (service-extension rottlog-service-type + (const %ipfs-log-rotation)))) (default-value (ipfs-configuration)) (description "Run @command{ipfs daemon}, the reference implementation @@ -2153,10 +2199,16 @@ of the IPFS peer-to-peer storage network."))) (respawn? #f) (stop #~(make-kill-destructor))))))) +(define %keepalived-log-rotation + (list (log-rotation + (files '("/var/log/keepalived.log"))))) + (define keepalived-service-type (service-type (name 'keepalived) (extensions (list (service-extension shepherd-root-service-type - keepalived-shepherd-service))) + keepalived-shepherd-service) + (service-extension rottlog-service-type + (const %keepalived-log-rotation)))) (description "Run @uref{https://www.keepalived.org/, Keepalived} routing software."))) From 1ffee0cf985399406ca79c3d14fe4b1c2fd85455 Mon Sep 17 00:00:00 2001 From: kiasoc5 Date: Mon, 16 May 2022 22:51:53 -0400 Subject: [PATCH 269/363] gnu: python-tldr: Update to 3.1.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-tldr): Update to 3.1.0. [phases]: Add phase to build docs. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index ea1261d17e..ddb7e9b0bb 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -23982,7 +23982,7 @@ Public Suffix List's private domains as well.") (define-public python-tldr (package (name "python-tldr") - (version "1.2.1") + (version "3.1.0") (source (origin ;; There's no test in PyPI. @@ -23992,20 +23992,23 @@ Public Suffix List's private domains as well.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0n9wqvjxspm18vlxf9j9slrcydshk4rkv5nwkrqhfq606n6zvks4")))) + (base32 "1hxmprqg8c4cvs19n7f80f3y7jj74i8sc2dmq2gdjmsdrb54bbzc")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases + (add-after 'build 'build-doc + (lambda _ + (invoke "make" "-C" "docs"))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? ;; This test fails. It tries to open a network socket. (invoke "pytest" "-vv" "-k" "not test_error_message"))))))) (native-inputs - (list python-pytest python-pytest-runner)) + (list python-pytest python-pytest-runner python-sphinx-argparse)) (inputs - (list python-argcomplete python-colorama python-termcolor)) + (list python-argcomplete python-colorama python-termcolor python-shtab)) (home-page "https://github.com/tldr-pages/tldr-python-client") (synopsis "Python command-line client for tldr pages") (description "This package provides the @code{tldr} command allowing users From bb03318a59560e0e7c8f66fa55b48cc030a787f7 Mon Sep 17 00:00:00 2001 From: kiasoc5 Date: Mon, 16 May 2022 22:57:39 -0400 Subject: [PATCH 270/363] gnu: python-tldr: Use g-exp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-tldr)[arguments]: Rewrite with (guix gexp). Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index ddb7e9b0bb..0148f482fc 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -23995,16 +23995,16 @@ Public Suffix List's private domains as well.") (base32 "1hxmprqg8c4cvs19n7f80f3y7jj74i8sc2dmq2gdjmsdrb54bbzc")))) (build-system python-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'build 'build-doc - (lambda _ - (invoke "make" "-C" "docs"))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; This test fails. It tries to open a network socket. - (invoke "pytest" "-vv" "-k" "not test_error_message"))))))) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'build 'build-doc + (lambda _ + (invoke "make" "-C" "docs"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; This test fails. It tries to open a network socket. + (invoke "pytest" "-vv" "-k" "not test_error_message"))))))) (native-inputs (list python-pytest python-pytest-runner python-sphinx-argparse)) (inputs From d442fe5eeef37ed70eff4f5ff95ad6dcd6f835a9 Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" Date: Thu, 12 May 2022 22:43:29 +0300 Subject: [PATCH 271/363] gnu: Add python-cymem MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-cymem): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 0148f482fc..7e1f16649c 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -31640,3 +31640,46 @@ It can generate reports as HTML tables or plain text lists. Scooby has no required dependencies, and only few optional dependencies.") (license license:expat))) + +(define-public python-cymem + (package + (name "python-cymem") + (version "2.0.6") + (source (origin + (method url-fetch) + (uri (pypi-uri "cymem" version)) + (sha256 + (base32 + "0pkyy60zk9654sj991w111p1l0m8wvz36nslw96x6nb9h6sjb5qn")))) + (build-system python-build-system) + (native-inputs + (list python-cython + python-pytest)) + (inputs + (list python)) + (arguments + (list + #:modules '((ice-9 ftw) + (ice-9 match) + (guix build utils) + (guix build python-build-system)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-source-file-times-to-1980 + ;; XXX One of the tests uses a ZIP library to pack up some of the + ;; source tree, and fails with "ZIP does not support timestamps + ;; before 1980". Work around this by setting the file times in the + ;; source tree to sometime in early 1980. + (lambda _ + (let ((circa-1980 (* 10 366 24 60 60))) + (ftw "." (lambda (file stat flag) + (utime file circa-1980 circa-1980) + #t)))))))) + (home-page "https://github.com/explosion/cymem") + (synopsis "Cython memory pool for RAII-style memory management") + (description + "Cymem provides two small memory-management helpers for Cython. They make it +easy to tie memory to a Python object's life-cycle, so that the memory is freed +when the object is garbage collected.") + (license license:expat))) + From 02a0c1fad9086dae50572a1e9c1fc97296d55c07 Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" Date: Sat, 21 May 2022 11:37:47 +0300 Subject: [PATCH 272/363] gnu: Add python-preshed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-preshed): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 7e1f16649c..a661b1403f 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -31683,3 +31683,35 @@ easy to tie memory to a Python object's life-cycle, so that the memory is freed when the object is garbage collected.") (license license:expat))) +(define-public python-preshed + (package + (name "python-preshed") + (version "3.0.6") + (source (origin + (method url-fetch) + (uri (pypi-uri "preshed" version)) + (sha256 + (base32 + "0akpydd23xqxx9d04drsnw9140rb3cv07r1zpzqz5wm0lf47afzv")))) + (build-system python-build-system) + (native-inputs (list python-cython python-cymem python-pytest)) + (inputs (list python python-cymem python-murmurhash)) + (arguments + (list #:modules + '((ice-9 ftw) (ice-9 match) + (guix build utils) + (guix build python-build-system)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-source-file-times-to-1980 + (lambda _ + (let ((circa-1980 (* 10 366 24 60 60))) + (ftw "." + (lambda (file stat flag) + (utime file circa-1980 circa-1980) #t)))))))) + (home-page "https://github.com/explosion/preshed") + (synopsis "Cython hash tables that assume keys are pre-hashed") + (description + "Simple but high performance Cython hash table mapping pre-randomized keys +to void* values.") + (license license:expat))) From d6e4ed34a7fc4ac5c2c76ecaf3f097fa06fecac2 Mon Sep 17 00:00:00 2001 From: Foo Chuan Wei Date: Fri, 20 May 2022 03:55:11 +0000 Subject: [PATCH 273/363] gnu: dumb: Fix build. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/music.scm (dumb, dumb-allegro4): Fix failing build of "dumb" caused by missing allegro-4 dependency. Signed-off-by: Ludovic Courtès --- gnu/packages/music.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 2a9fdb9cdb..b224a145d5 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -705,7 +705,8 @@ background while you work.") (arguments '(#:tests? #f ; no check target #:configure-flags - (list "-DBUILD_SHARED_LIBS=ON" + (list "-DBUILD_ALLEGRO4=OFF" + "-DBUILD_SHARED_LIBS=ON" "-DBUILD_EXAMPLES=OFF"))) (home-page "https://github.com/kode54/dumb") (synopsis "Module audio renderer library") @@ -729,7 +730,7 @@ settings (aliasing, linear interpolation and cubic interpolation).") (arguments (substitute-keyword-arguments (package-arguments dumb) ((#:configure-flags flags) - `(cons "-DBUILD_ALLEGRO4=ON" ,flags)))) + `(cons "-DBUILD_ALLEGRO4=ON" ,(delete "-DBUILD_ALLEGRO4=OFF" flags))))) (inputs (list allegro-4)))) From 01793ed03e8aa0960bff7adc21fd270e1527e68e Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Wed, 18 May 2022 17:22:04 +0000 Subject: [PATCH 274/363] gnu: cpuid: Update to 20220224. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/linux.scm (cpuid): Update to 20220224. Signed-off-by: Ludovic Courtès --- 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 580fef6d30..84fd8a4faf 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -7754,14 +7754,14 @@ available in the kernel Linux.") (define-public cpuid (package (name "cpuid") - (version "20211210") + (version "20220224") (source (origin (method url-fetch) (uri (string-append "http://www.etallen.com/cpuid/cpuid-" version ".src.tar.gz")) (sha256 (base32 - "0i2z1r0zwsmvnx2azwsz3x6van6dj9480lh26s1ny6ny01bqjag0")))) + "178zv8jclzg3hqm3g5bpjnsp898rbbxfq6ydavw49vla24mdw6aa")))) (build-system gnu-build-system) (arguments `(#:make-flags From dc5707f27cbb6718e4313ccc2111fa23e1f713dc Mon Sep 17 00:00:00 2001 From: "(unmatched-parenthesis" Date: Sun, 8 May 2022 21:21:55 +0100 Subject: [PATCH 275/363] gnu: Add qbe. * gnu/packages/c.scm (qbe): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/c.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index e14e56ad71..e4a87d5dad 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020, 2021 Greg Hogan ;;; Copyright © 2021 David Dashyan ;;; Copyright © 2021 Foo Chuan Wei +;;; Copyright © 2022 (unmatched parenthesis ;;; ;;; This file is part of GNU Guix. ;;; @@ -145,6 +146,46 @@ compiler while still keeping it small, simple, fast and understandable.") ;; preferred. See http://pcc.ludd.ltu.se/licenses/ for more details. (license (list license:bsd-2 license:bsd-3)))) +(define-public qbe + (let ((commit "2caa26e388b1c904d2f12fb09f84df7e761d8331") + (revision "1")) + (package + (name "qbe") + (version (git-version "0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://c9x.me/qbe") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gv03ym0gqrl4wkbhysa82025xwrkr1fg44z814b6vnggwlqgljc")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'allow-cross-compilation + (lambda _ + (substitute* "Makefile" + (("`uname -m`") #$(or (%current-target-system) + (%current-system)))))) + (add-after 'allow-cross-compilation 'use-$CC-for-tests + (lambda _ + (substitute* "tools/test.sh" + (("cc=\"cc -no-pie\"") "cc=\"${CC} -no-pie\"")))) + (delete 'configure)))) + (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux")) + (synopsis "Simple compiler backend") + (description + "QBE is a small compiler backend using an SSA-based intermediate +language as input.") + (home-page "https://c9x.me/compile/") + (license license:expat)))) + (define-public python-pcpp (package (name "python-pcpp") From cdb6b19b5fc6fec94d7a27062ef87dca9e4bbcee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2022 21:51:59 +0200 Subject: [PATCH 276/363] gnu: gcc@12: Add missing file. Fixes . Reported by Tim Rakowski . This is a followup to 37e29ccd332f371aacedc71388e805fbc9e947fa. * gnu/packages/patches/gcc-12-strmov-store-file-names.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../gcc-12-strmov-store-file-names.patch | 114 ++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 gnu/packages/patches/gcc-12-strmov-store-file-names.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2cadb8c42c..00a6649404 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1136,6 +1136,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-8-strmov-store-file-names.patch \ %D%/packages/patches/gcc-9-asan-fix-limits-include.patch \ %D%/packages/patches/gcc-9-strmov-store-file-names.patch \ + %D%/packages/patches/gcc-12-strmov-store-file-names.patch \ %D%/packages/patches/gcc-10-cross-environment-variables.patch \ %D%/packages/patches/gcolor3-update-libportal-usage.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ diff --git a/gnu/packages/patches/gcc-12-strmov-store-file-names.patch b/gnu/packages/patches/gcc-12-strmov-store-file-names.patch new file mode 100644 index 0000000000..091fc3f576 --- /dev/null +++ b/gnu/packages/patches/gcc-12-strmov-store-file-names.patch @@ -0,0 +1,114 @@ +Make sure that statements such as: + + strcpy (dst, "/gnu/store/…"); + +or + + static const char str[] = "/gnu/store/…"; + … + strcpy (dst, str); + +do not result in chunked /gnu/store strings that are undetectable by +Guix's GC and its grafting code. See +and . + +diff --git a/gcc/builtins.cc b/gcc/builtins.cc +index 5b085e3a1..480bc0b54 100644 +--- a/gcc/builtins.cc ++++ b/gcc/builtins.cc +@@ -3363,6 +3363,58 @@ expand_builtin_mempcpy (tree exp, rtx target) + target, exp, /*retmode=*/ RETURN_END); + } + ++extern void debug_tree (tree); ++ ++/* Return true if STR contains the string "/gnu/store". */ ++ ++bool ++store_reference_p (tree str) ++{ ++ if (getenv ("GUIX_GCC_DEBUG") != NULL) ++ debug_tree (str); ++ ++ if (TREE_CODE (str) == ADDR_EXPR) ++ str = TREE_OPERAND (str, 0); ++ ++ if (TREE_CODE (str) == VAR_DECL ++ && TREE_STATIC (str) ++ && TREE_READONLY (str)) ++ { ++ /* STR may be a 'static const' variable whose initial value ++ is a string constant. See . */ ++ str = DECL_INITIAL (str); ++ if (str == NULL_TREE) ++ return false; ++ } ++ ++ if (TREE_CODE (str) != STRING_CST) ++ return false; ++ ++ int len; ++ const char *store; ++ ++ store = getenv ("NIX_STORE") ? getenv ("NIX_STORE") : "/gnu/store"; ++ len = strlen (store); ++ ++ /* Size of the hash part of store file names, including leading slash and ++ trailing hyphen. */ ++ const int hash_len = 34; ++ ++ if (TREE_STRING_LENGTH (str) < len + hash_len) ++ return false; ++ ++ /* We cannot use 'strstr' because 'TREE_STRING_POINTER' returns a string ++ that is not necessarily NUL-terminated. */ ++ ++ for (int i = 0; i < TREE_STRING_LENGTH (str) - (len + hash_len); i++) ++ { ++ if (strncmp (TREE_STRING_POINTER (str) + i, store, len) == 0) ++ return true; ++ } ++ ++ return false; ++} ++ + /* Helper function to do the actual work for expand of memory copy family + functions (memcpy, mempcpy, stpcpy). Expansing should assign LEN bytes + of memory from SRC to DEST and assign to TARGET if convenient. Return +@@ -3384,6 +3436,13 @@ expand_builtin_memory_copy_args (tree dest, tree src, tree len, + + bool is_move_done; + ++ /* Do not emit block moves, which translate to the 'movabs' instruction on ++ x86_64, when SRC refers to store items. That way, store references ++ remain visible to the Guix GC and grafting code. See ++ . */ ++ if (store_reference_p (src)) ++ return NULL_RTX; ++ + /* If DEST is not a pointer type, call the normal function. */ + if (dest_align == 0) + return NULL_RTX; +diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc +index 863ee3d39..4cc46c265 100644 +--- a/gcc/gimple-fold.cc ++++ b/gcc/gimple-fold.cc +@@ -856,6 +856,8 @@ var_decl_component_p (tree var) + && TREE_CODE (TREE_OPERAND (inner, 0)) == ADDR_EXPR)); + } + ++extern bool store_reference_p (tree); ++ + /* Return TRUE if the SIZE argument, representing the size of an + object, is in a range of values of which exactly zero is valid. */ + +@@ -960,6 +962,9 @@ gimple_fold_builtin_memory_op (gimple_stmt_iterator *gsi, + = build_int_cst (build_pointer_type_for_mode (char_type_node, + ptr_mode, true), 0); + ++ if (store_reference_p (src)) ++ return false; ++ + /* If we can perform the copy efficiently with first doing all loads + and then all stores inline it that way. Currently efficiently + means that we can load all the memory into a single integer From caa51b5d1032e31f674a7ccd1bf0a6408a5825ff Mon Sep 17 00:00:00 2001 From: zimoun Date: Tue, 24 May 2022 20:08:50 +0200 Subject: [PATCH 277/363] gnu: Add r-pscbs. * gnu/packages/bioconductor.scm (r-pscbs): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/bioconductor.scm | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 80cf28c954..4baa80dcb1 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4560,6 +4560,48 @@ the results is also provided. All PCA methods make use of the same data structure (pcaRes) to provide a common interface to the PCA results.") (license license:gpl3+))) +;; This is a CRAN package, but it depends on a Bioconductor package: +;; r-aroma-light, r-dnacopy.. +(define-public r-pscbs + (package + (name "r-pscbs") + (version "0.66.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "PSCBS" version)) + (sha256 + (base32 "14rs2wywipbkia3dbzfhpnkmfgdvm2bf586lggsx63sywlv5d02q")))) + (properties `((upstream-name . "PSCBS"))) + (build-system r-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'change-home-dir + (lambda _ + ;; Change from /homeless-shelter to /tmp for write permission. + (setenv "HOME" "/tmp")))))) + (propagated-inputs + (list r-aroma-light + r-dnacopy + r-future + r-listenv + r-matrixstats + r-r-cache + r-r-methodss3 + r-r-oo + r-r-utils)) + (native-inputs + (list r-r-rsp ;used to build vignettes + r-r-devices)) + (home-page "https://github.com/HenrikBengtsson/PSCBS") + (synopsis "Analysis of parent-specific DNA copy numbers") + (description + "This is a package for segmentation of allele-specific DNA copy number +data and detection of regions with abnormal copy number within each parental +chromosome. Both tumor-normal paired and tumor-only analyses are supported.") + (license license:gpl2+))) + (define-public r-protgenerics (package (name "r-protgenerics") From a927a9e25b4a269c9f76ca9f424750466e2e2daa Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 278/363] gnu: busybox: Update to 1.34.1. * gnu/packages/busybox.scm (busybox): Update to 1.34.1. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/busybox.scm | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 7a548582f3..6a09b550cf 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner -;;; Copyright © 2018–2021 Tobias Geerinckx-Rice +;;; Copyright © 2018–2022 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,7 +34,7 @@ (define-public busybox (package (name "busybox") - (version "1.33.1") + (version "1.34.1") (source (origin (method url-fetch) (uri (string-append @@ -42,22 +42,20 @@ version ".tar.bz2")) (sha256 (base32 - "0a0dcvsh7nxnhxc5y73fky0z30i9p7r30qfidm2akn0n5fywdkhj")))) + "0jfm9fik7nv4w21zqdg830pddgkdjmplmna9yjn9ck1lwn4vsps1")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'disable-timestamps (lambda _ - (setenv "KCONFIG_NOTIMESTAMP" "1") - #t)) + (setenv "KCONFIG_NOTIMESTAMP" "1"))) (add-before 'configure 'disable-taskset ;; This feature fails its tests in the build environment, ;; was default 'n' until after 1.26.2. (lambda _ (substitute* "util-linux/taskset.c" - (("default y") "default n")) - #t)) + (("default y") "default n")))) (replace 'configure (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "defconfig" make-flags))) @@ -65,8 +63,7 @@ (lambda _ (substitute* ".config" (("# CONFIG_INSTALL_NO_USR is not set") - "CONFIG_INSTALL_NO_USR=y")) - #t)) + "CONFIG_INSTALL_NO_USR=y")))) (replace 'check (lambda* (#:key make-flags #:allow-other-keys) (substitute* '("testsuite/du/du-s-works" From 1290fce44db244967d204a675c0dc2bb8dc75732 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 279/363] gnu: ytnef: Update to 2.0. * gnu/packages/mail.scm (ytnef): Update to 2.0. [source]: Remove patches. * gnu/packages/patches/ytnef-CVE-2021-3403.patch, gnu/packages/patches/ytnef-CVE-2021-3404.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 2 -- gnu/packages/mail.scm | 6 ++-- .../patches/ytnef-CVE-2021-3403.patch | 32 ------------------- .../patches/ytnef-CVE-2021-3404.patch | 30 ----------------- 4 files changed, 2 insertions(+), 68 deletions(-) delete mode 100644 gnu/packages/patches/ytnef-CVE-2021-3403.patch delete mode 100644 gnu/packages/patches/ytnef-CVE-2021-3404.patch diff --git a/gnu/local.mk b/gnu/local.mk index 00a6649404..06826ee0cc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1988,8 +1988,6 @@ dist_patch_DATA = \ %D%/packages/patches/xterm-370-explicit-xcursor.patch \ %D%/packages/patches/xygrib-fix-finding-data.patch \ %D%/packages/patches/yggdrasil-extra-config.patch \ - %D%/packages/patches/ytnef-CVE-2021-3403.patch \ - %D%/packages/patches/ytnef-CVE-2021-3404.patch \ %D%/packages/patches/zig-use-system-paths.patch MISC_DISTRO_FILES = \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 0794fd921c..49325116fb 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -4024,7 +4024,7 @@ It is a replacement for the @command{urlview} program.") (define-public ytnef (package (name "ytnef") - (version "1.9.3") + (version "2.0") (source (origin (method git-fetch) (uri (git-reference @@ -4033,9 +4033,7 @@ It is a replacement for the @command{urlview} program.") (file-name (git-file-name name version)) (sha256 (base32 - "07h48s5qf08503pp9kafqbwipdqghiif22ghki7z8j67gyp04l6l")) - (patches (search-patches "ytnef-CVE-2021-3403.patch" - "ytnef-CVE-2021-3404.patch")))) + "0pk7jp8yc91nahcb7659khwdid0ibfi7n0135kwfnasak8gr75rz")))) (build-system gnu-build-system) (native-inputs (list autoconf automake libtool)) diff --git a/gnu/packages/patches/ytnef-CVE-2021-3403.patch b/gnu/packages/patches/ytnef-CVE-2021-3403.patch deleted file mode 100644 index 4b1c9d659f..0000000000 --- a/gnu/packages/patches/ytnef-CVE-2021-3403.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f2380a53fb84d370eaf6e6c3473062c54c57fac7 Mon Sep 17 00:00:00 2001 -From: Oliver Giles -Date: Mon, 1 Feb 2021 10:12:16 +1300 -Subject: [PATCH] Prevent potential double-free in TNEFSubjectHandler - -If TNEFSubjectHandler is called multiple times, but the last time -failed due to the PREALLOCCHECK, the subject.data member will be -a freed, but invalid pointer. To prevent a double-free next time -TNEFSubjectHandler is entered, set it to zero after freeing. - -Resolves: #85 -Reported-by: jasperla ---- - lib/ytnef.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/lib/ytnef.c b/lib/ytnef.c -index b148719..b06c807 100644 ---- a/lib/ytnef.c -+++ b/lib/ytnef.c -@@ -301,8 +301,10 @@ int TNEFFromHandler STD_ARGLIST { - } - // ----------------------------------------------------------------------------- - int TNEFSubjectHandler STD_ARGLIST { -- if (TNEF->subject.data) -+ if (TNEF->subject.data) { - free(TNEF->subject.data); -+ TNEF->subject.data = NULL; -+ } - - PREALLOCCHECK(size, 100); - TNEF->subject.data = calloc(size+1, sizeof(BYTE)); diff --git a/gnu/packages/patches/ytnef-CVE-2021-3404.patch b/gnu/packages/patches/ytnef-CVE-2021-3404.patch deleted file mode 100644 index e991d6aff1..0000000000 --- a/gnu/packages/patches/ytnef-CVE-2021-3404.patch +++ /dev/null @@ -1,30 +0,0 @@ -From f9ff4a203b8c155d51a208cadadb62f224fba715 Mon Sep 17 00:00:00 2001 -From: Oliver Giles -Date: Mon, 1 Feb 2021 10:18:17 +1300 -Subject: [PATCH] Ensure the size of the version field is 4 bytes - -A corrupted version field size can cause TNEFVersion to access outside -of allocated memory. Check the version is the expected size and raise -an error if not. - -Resolves: #86 -Reported-by: jasperla ---- - lib/ytnef.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/lib/ytnef.c b/lib/ytnef.c -index b148719..ffede44 100644 ---- a/lib/ytnef.c -+++ b/lib/ytnef.c -@@ -335,6 +335,10 @@ int TNEFRendData STD_ARGLIST { - int TNEFVersion STD_ARGLIST { - WORD major; - WORD minor; -+ if (size != 2 * sizeof(WORD)) { -+ printf("Incorrect size of version field, suspected corruption\n"); -+ return -1; -+ } - minor = SwapWord((BYTE*)data, size); - major = SwapWord((BYTE*)data + 2, size - 2); - From 954db7378ed4360daebdcd754bb4350b9c5a2436 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 280/363] gnu: ytnef: Don't build static library. * gnu/packages/mail.scm (ytnef)[arguments]: Add "--disable-static" to #:configure-flags. --- gnu/packages/mail.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 49325116fb..aa152b242d 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -4035,6 +4035,9 @@ It is a replacement for the @command{urlview} program.") (base32 "0pk7jp8yc91nahcb7659khwdid0ibfi7n0135kwfnasak8gr75rz")))) (build-system gnu-build-system) + (arguments + (list #:configure-flags + '(list "--disable-static"))) (native-inputs (list autoconf automake libtool)) (home-page "https://github.com/Yeraze/ytnef/") From 428bc13434686a583b66ce687558e3d7d402412c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 281/363] gnu: mbuffer: Update to 20220418. * gnu/packages/networking.scm (mbuffer): Update to 20220418. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 9bd9500638..99145b2b47 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -982,7 +982,7 @@ or server shell scripts with network connections.") (define-public mbuffer (package (name "mbuffer") - (version "20211018") + (version "20220418") (source (origin (method url-fetch) (uri (string-append @@ -990,7 +990,7 @@ or server shell scripts with network connections.") version ".tgz")) (sha256 (base32 - "1qxnbpyly00kml3sjan9iqg6pqacsi3yqq66x25w455cwkjc2h72")))) + "1iq0lcl350r7qja7yyv911aay26d0dd8n0h33mfl84gzypwh2n3f")))) (build-system gnu-build-system) (native-inputs (list which)) From 6e5b956b8d053c8b12e274d3f662cf5385fc0971 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 282/363] gnu: perl-mail-dkim: Update to 1.20220520. * gnu/packages/mail.scm (perl-mail-dkim): Update to 1.20220520. --- 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 aa152b242d..2b6c5ebb8f 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2590,7 +2590,7 @@ Authentication-Results header seen in the wild.") (define-public perl-mail-dkim (package (name "perl-mail-dkim") - (version "1.20200907") + (version "1.20220520") (source (origin (method url-fetch) (uri (string-append @@ -2599,7 +2599,7 @@ Authentication-Results header seen in the wild.") ".tar.gz")) (sha256 (base32 - "1x8v4pa0447c1xqri1jn96i8vlyjpl6jmz63nb1vifbp16yi3zxb")))) + "0iiny8s1a60pksxzlpkk9b6x6z907m4pdxjbsaih1bdz9g4bii4a")))) (build-system perl-build-system) (propagated-inputs (list perl-crypt-openssl-rsa perl-mail-authenticationresults From 3d00f10ed592adb923eb3ac87d53220b07019f60 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 283/363] gnu: psmisc: Update to 23.5. * gnu/packages/linux.scm (psmisc): Update to 23.5. --- 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 84fd8a4faf..8c1e2aa279 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1784,14 +1784,14 @@ deviation, and minimum and maximum values. It can show a nice histogram too.") (define-public psmisc (package (name "psmisc") - (version "23.4") + (version "23.5") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-" version ".tar.xz")) (sha256 - (base32 "0y8n1jd2dn4cvc5mh806d66qnq8xl0xmzczbycjwal10rvmcw33z")))) + (base32 "12z5786dnf37n8wvv73wdcqp3nvsqzhwdk3ajna0mag4yz1fqdyw")))) (build-system gnu-build-system) (arguments `(,@(if (%current-target-system) From 1f6c2efccccf01f0be94405117598e012832269f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:02 +0200 Subject: [PATCH 284/363] gnu: fakeroot: Update to 1.28. * gnu/packages/linux.scm (fakeroot): Update to 1.28. --- gnu/packages/linux.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8c1e2aa279..d74e7c738c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -8407,7 +8407,7 @@ the superuser to make device nodes.") (define-public fakeroot (package (name "fakeroot") - (version "1.26") + (version "1.28") (source (origin ;; There are no tags in the repository, so take this snapshot. @@ -8416,8 +8416,7 @@ the superuser to make device nodes.") "fakeroot/fakeroot_" version ".orig.tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "1sg8inv1zzp4h9ncbbmxip3svd11sd86j22cvxrjwnf5zn7mf2j8")) + (base32 "1hlh77b6m2cfm42lcav372mbjni5akbgs25yg4wgi1gndzihbm2n")) (modules '((guix build utils) (ice-9 ftw))) (snippet From 23a01dddcf88af66f3c194e0513b0602a09b890f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 285/363] gnu: jitterentropy-rngd: Update to 1.2.7. * gnu/packages/linux.scm (jitterentropy-rngd): Update to 1.2.7. --- 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 d74e7c738c..2716e229e6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2680,7 +2680,7 @@ Both commands are targeted at system administrators.") (define-public jitterentropy-rngd (package (name "jitterentropy-rngd") - (version "1.2.6") + (version "1.2.7") (source (origin (method git-fetch) @@ -2689,7 +2689,7 @@ Both commands are targeted at system administrators.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "03cbcxkscjcmn6ybkmssq7i39sn5cfsap9fv058pi0k2mr90djwq")))) + (base32 "098hx09bsizin9405gh1c4rzbs2fr7qknqlr3glgyjpm3nm7bx28")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite From a4fa00332eef1726a41f746c5b893cd8f29d7f45 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 286/363] gnu: libinih: Update to 55. * gnu/packages/linux.scm (libinih): Update to 55. --- 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 2716e229e6..77ffaa4507 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -8239,7 +8239,7 @@ IP addresses and routes, and configure IPsec.") (define-public libinih (package (name "libinih") - (version "53") + (version "55") (source (origin (method git-fetch) (uri (git-reference @@ -8248,7 +8248,7 @@ IP addresses and routes, and configure IPsec.") (file-name (git-file-name name version)) (sha256 (base32 - "0dqf5j2sw4hq68rqvxbrsf44ygfzx9ypiyzipk4cvp9aimbvsbc6")))) + "0g6dkcphlzgxvh9zyf6rj82gigccca6x5acjxn01gz6rykfg0lnn")))) (build-system meson-build-system) ;; Install static libraries for use by the initrd's xfsprogs/static. (outputs (list "out" "static")) From 69d99f76deb03842f464abccac4bf03534ea34d6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 287/363] gnu: libnfnetlink: Update to 1.0.2. * gnu/packages/linux.scm (libnfnetlink): Update to 1.0.2. --- 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 77ffaa4507..4b679507a8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -8190,7 +8190,7 @@ introduced in Linux 2.6.31.") (define-public libnfnetlink (package (name "libnfnetlink") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (string-append @@ -8198,7 +8198,7 @@ introduced in Linux 2.6.31.") "libnfnetlink-" version ".tar.bz2")) (sha256 (base32 - "06mm2x4b01k3m7wnrxblk9j0mybyr4pfz28ml7944xhjx6fy2w7j")))) + "0xn3rcrzxr6g82kfxzs9bqn2zvl2kf2yda30drwb9vr6sk1wfr5h")))) (build-system gnu-build-system) (home-page "https://www.netfilter.org/projects/libnfnetlink/") (synopsis "Low-level netfilter netlink communication library") From c9038edc4fb74b7af5d320ff915603807e901d34 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:03 +0200 Subject: [PATCH 288/363] gnu: libite: Update to 2.5.2. * gnu/packages/linux.scm (libite): Update to 2.5.2. --- gnu/packages/linux.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 4b679507a8..cfd8909b24 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4920,7 +4920,7 @@ capabilities of the Linux kernel.") (define-public libite (package (name "libite") - (version "2.5.1") + (version "2.5.2") (source (origin (method git-fetch) @@ -4929,8 +4929,7 @@ capabilities of the Linux kernel.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "14i0q0nxns6g4zh86zdqy97dwljkqdr5l85ammljzccsrijg9m8v")))) + (base32 "0i27ppb557kdc1hm7nf0f5r7sxvqma31pr57h79whl6qcp28gy4a")))) (build-system gnu-build-system) (arguments `(#:phases From 23c281424ccb7909478a21ac9092893c846c614a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 289/363] gnu: libite: Don't build static library. * gnu/packages/linux.scm (libite)[arguments]: Add "--disable-static" to #:configure-flags. --- gnu/packages/linux.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index cfd8909b24..8469f4380d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4932,7 +4932,9 @@ capabilities of the Linux kernel.") (base32 "0i27ppb557kdc1hm7nf0f5r7sxvqma31pr57h79whl6qcp28gy4a")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:configure-flags + (list "--disable-static") + #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-tests (lambda* (#:key inputs #:allow-other-keys) From 39033592a819893a067fc699c3c35f3e544c5c99 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:04 +0200 Subject: [PATCH 290/363] gnu: ropgadget: Use HTTPS home page. * gnu/packages/cybersecurity.scm (ropgadget)[home-page]: Use HTTPS. --- gnu/packages/cybersecurity.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm index 0801c00c4f..7bca251d06 100644 --- a/gnu/packages/cybersecurity.scm +++ b/gnu/packages/cybersecurity.scm @@ -112,7 +112,7 @@ Refresh}in-DRAM mitigations effectively and as such can trigger bit flips.") (build-system python-build-system) (propagated-inputs (list python-capstone)) - (home-page "http://shell-storm.org/project/ROPgadget/") + (home-page "https://shell-storm.org/project/ROPgadget/") (synopsis "Semiautomatic return oriented programming") (description "This tool lets you search for @acronym{ROP, Return Oriented Programming} From 362be0b7f8715c259f144f24d498b0b99ffc75e4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:03 +0200 Subject: [PATCH 291/363] gnu: asco: Update to 0.4.11. * gnu/packages/engineering.scm (asco): Update to 0.4.11. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/engineering.scm | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 7d44789578..47422dd97d 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1732,14 +1732,14 @@ it suitable for security research and analysis.") (define-public asco (package (name "asco") - (version "0.4.10") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/asco/asco/" version "/ASCO-" - version ".tar.gz")) - (sha256 - (base32 - "119rbc2dc8xzwxvykgji0v0nrzvymjmlizr1bc2mihspj686kxsl")))) + (version "0.4.11") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/asco/asco/" version "/ASCO-" + version ".tar.gz")) + (sha256 + (base32 "0ggxv0p1zmfbvd1k17p2j1cskbjsa83fansz8ihxn7ax9qdicljv")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -1756,8 +1756,7 @@ it suitable for security research and analysis.") (("nice") (string-append coreutils "/bin/nice"))) (substitute* "Makefile" - (("/bin/mpicc") (which "mpicc"))) - #t))) + (("/bin/mpicc") (which "mpicc")))))) (replace 'install ; no install target (lambda* (#:key outputs #:allow-other-keys) (for-each (lambda (file) @@ -1765,8 +1764,7 @@ it suitable for security research and analysis.") (assoc-ref outputs "out") "/bin"))) '("asco" "asco-mpi" "asco-test" - "tools/alter/alter" "tools/log/log")) - #t))))) + "tools/alter/alter" "tools/log/log"))))))) (native-inputs `(("mpi" ,openmpi))) (inputs From 182956b99d1263385e10cc0d43c8b10a2e0ff9c6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:03 +0200 Subject: [PATCH 292/363] gnu: asco: Use SEARCH-INPUT-FILE. * gnu/packages/engineering.scm (asco)[arguments]: Use SEARCH-INPUT-FILE. --- gnu/packages/engineering.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 47422dd97d..d19fde7ca4 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1751,10 +1751,10 @@ it suitable for security research and analysis.") (lambda* (#:key inputs #:allow-other-keys) (let ((coreutils (assoc-ref inputs "coreutils-minimal"))) (substitute* '("errfunc.c" "asco.c") - (("cp ") - (string-append coreutils "/bin/cp ")) - (("nice") - (string-append coreutils "/bin/nice"))) + (("(cp|nice) " _ command) + (string-append + (search-input-file inputs (string-append "bin/" command)) + " "))) (substitute* "Makefile" (("/bin/mpicc") (which "mpicc")))))) (replace 'install ; no install target From b38069a4c9a0352faf0988f94a34c0251568dd8d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 293/363] gnu: cowsay: Update to 3.7.0. * gnu/packages/games.scm (cowsay): Update to 3.7.0. [arguments]: Convert to using G-expressions. Adjust to new upstream build system. --- gnu/packages/games.scm | 48 +++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 37a245c570..94aec5b80e 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1062,34 +1062,34 @@ more. This package does @emph{not} provide the game assets.") license:bsd-3)))) ; CorsixTH/Src/random.c (define-public cowsay + ;; This is a continuation of Tony Monroe's now-unmaintained original, that + ;; aims to become the ‘canonical modern fork’. We'll see. What it gives + ;; us today is a bunch of fixes that other distros shipped as patches. (package (name "cowsay") - (version "3.04") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tnalpgge/rank-amateur-cowsay") - (commit (string-append name "-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "06455kq37hvq1xb7adyiwrx0djs50arsxvjgixyxks16lm1rlc7n")))) + (version "3.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cowsay-org/cowsay") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yrgwwacrhsgpyp14c3imkd4bb9b4i68q4df9cq1i1fh4fc2nn5p")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure) ; no configure script - (delete 'build) ; nothing to be built - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (invoke "sh" "install.sh" - (assoc-ref outputs "out")))) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key outputs #:allow-other-keys) - (invoke (string-append (assoc-ref outputs "out") - "/bin/cowsay") - "We're done!")))))) + (list #:make-flags + #~(list (string-append "prefix=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ; no configure script + (delete 'check) + (add-after 'install 'check + (lambda* (#:key outputs #:allow-other-keys) + (invoke (string-append (assoc-ref outputs "out") + "/bin/cowsay") + "We're done!")))))) (inputs (list perl)) (home-page (string-append "https://web.archive.org/web/20071026043648/" From 00dcdfd73170cdc89f2f033a5164e452d8b827fe Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:02 +0200 Subject: [PATCH 294/363] gnu: iotop: Update to 0.6-0.a14256a. * gnu/packages/linux.scm (iotop): Update to 0.6-0.a14256a. [source]: Build from Git. --- gnu/packages/linux.scm | 61 +++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8469f4380d..4664641509 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3184,35 +3184,40 @@ the command line or a script.") (license license:gpl2+))) (define-public iotop - (package - (name "iotop") - (version "0.6") - (source - (origin - (method url-fetch) - (uri (string-append "http://guichaz.free.fr/iotop/files/iotop-" - version ".tar.gz")) - (sha256 (base32 - "1kp8mqg2pbxq4xzpianypadfxcsyfgwcaqgqia6h9fsq6zyh4z0s")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-build-with-python3 - (lambda _ - (substitute* "setup.py" - (("itervalues") "values")) - #t))) - ;; There are currently no checks in the package. - #:tests? #f)) - (native-inputs (list python)) - (home-page "http://guichaz.free.fr/iotop/") - (synopsis - "Displays the IO activity of running processes") - (description - "Iotop is a Python program with a top like user interface to show the + ;; The last release is from 2013 and gives a misleading CONFIG_TASK_DELAY_ACCT + ;; error on ‘newer’ kernels. + (let ((revision "0") + (commit "a14256a3ff74eeee59493ac088561f1bafab85a7")) + (package + (name "iotop") + (version (git-version "0.6" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://repo.or.cz/iotop.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00h5p8fk1zi237q8mqds8apqbis9iw0yih1hl0pr63dsnyzmmrpw")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build-with-python3 + (lambda _ + (substitute* "setup.py" + (("itervalues") "values"))))) + ;; There are currently no checks in the package. + #:tests? #f)) + (native-inputs (list python)) + (home-page "http://guichaz.free.fr/iotop/") + (synopsis + "Displays the IO activity of running processes") + (description + "Iotop is a Python program with a top like user interface to show the processes currently causing I/O.") - (license license:gpl2+))) + (license license:gpl2+)))) (define-public fuse (package From 4275299e1105cc22e86b8f84c73459cc10e74661 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 295/363] gnu: iotop: Rename to iotop-python. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This package is in maintenance mode, and is slower whilst having fewer features than the C implementation added in a following commit. * gnu/packages/linux.scm (iotop-python): New variable name of… (iotop): …this removed variable. --- 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 4664641509..517e3628e7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3183,13 +3183,13 @@ settings.") the command line or a script.") (license license:gpl2+))) -(define-public iotop +(define-public iotop-python ;; The last release is from 2013 and gives a misleading CONFIG_TASK_DELAY_ACCT ;; error on ‘newer’ kernels. (let ((revision "0") (commit "a14256a3ff74eeee59493ac088561f1bafab85a7")) (package - (name "iotop") + (name "iotop-python") (version (git-version "0.6" revision commit)) (source (origin From ecdc633a05aa9f9e19f6c947062d7a7281d1d522 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 296/363] gnu: Add iotop, now in C. * gnu/packages/linux.scm (iotop): New public variable. --- gnu/packages/linux.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 517e3628e7..048fdcec98 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3219,6 +3219,43 @@ the command line or a script.") processes currently causing I/O.") (license license:gpl2+)))) +(define-public iotop + (package + (name "iotop") + (version "1.21") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Tomas-M/iotop") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03wdnkfl51dapilg6r9vjga1xrl9lxlypfz07k50nscvbq8v8fb7")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:tests? #f ; no tests + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) ; no configure script + (native-inputs (list pkg-config)) + (inputs (list ncurses)) + (home-page "https://github.com/Tomas-M/iotop") + (synopsis "Interactive @command{top}-like input/output activity monitor") + (description + "iotop identifies which processes and threads are most responsible for +@acronym{I/O, input/output} activity such as disc reads and writes. It sorts +them in a live, interactive table overview similar to that of the well-known +@command{top}. + +This information makes it much easier for an administrator to see which tasks +are blocking others and adjust their priority (using @command{ionice}) or stop +or kill them altogether.") + (license license:gpl2+))) + (define-public fuse (package (name "fuse") From 25215181f40b6f78d0613d31248d952185916981 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 297/363] gnu: ltris: Update to 1.2.4. * gnu/packages/games.scm (ltris): Update to 1.2.4. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 94aec5b80e..e29172dc98 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1956,14 +1956,14 @@ Chess). It is similar to standard chess but this variant is far more complicate (define-public ltris (package (name "ltris") - (version "1.2.3") + (version "1.2.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/lgames/ltris/" "ltris-" version ".tar.gz")) (sha256 - (base32 "1a2m17jwkyar8gj07bn5jk01j2ps4vvc48z955jjjsh67q2svi0f")))) + (base32 "10wg6v12w3jms8ka2x9a87p06l9gzpr94ai9v428c9r320q7psyn")))) (build-system gnu-build-system) (arguments '(#:phases From 0aac7fba79dbcdb83c30c10b461dbf29f63e2b6a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 298/363] gnu: editres: Update to 1.0.8. * gnu/packages/xorg.scm (editres): Update to 1.0.8. --- gnu/packages/xorg.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index e3c24c4bb2..aa5d2a0be5 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -416,17 +416,16 @@ provided.") (define-public editres (package (name "editres") - (version "1.0.7") + (version "1.0.8") (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/app/" name "-" version - ".tar.bz2")) + ".tar.xz")) (sha256 - (base32 - "04awfwmy3f9f0bchidc4ssbgrbicn5gzasg3jydpfnp5513d76h8")))) + (base32 "1ydn32x9qh2zkn90w6nfv33gcq75z67w93bakkykadl8n7zmvkw3")))) (build-system gnu-build-system) (arguments `(#:configure-flags From ee44a72409017f1bb74b1bc4c2e82fe03ac18c5c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 299/363] gnu: criu: Update to 3.17. * gnu/packages/virtualization.scm (criu): Update to 3.17. [arguments]: Set the correct and unused PLUGINDIR. --- gnu/packages/virtualization.scm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index f3396e7c94..750b08f651 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1547,7 +1547,7 @@ domains, their live performance and resource utilization statistics.") (define-public criu (package (name "criu") - (version "3.16.1") + (version "3.17") (source (origin (method git-fetch) @@ -1556,15 +1556,17 @@ domains, their live performance and resource utilization statistics.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1riw15197fnrs254jl7wks9x8bdml76kf1vnqkkgyypr13dnq55g")))) + (base32 "1qql1xp2zkkd7z50vp0nylx3rqrp8xa3c6x25c886d5i1j9pak5x")))) (build-system gnu-build-system) (arguments `(#:test-target "test" #:tests? #f ; tests require mounting as root #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - (string-append "LIBDIR=" (assoc-ref %outputs "out") - "/lib") + (string-append "LIBDIR=$(PREFIX)/lib") + ;; Upstream mistakenly puts binaries in /var. Now, in practice no + ;; plugins are built, but the build system still fails otherwise. + (string-append "PLUGINDIR=$(LIBDIR)/criu") (string-append "ASCIIDOC=" (search-input-file %build-inputs "/bin/asciidoc")) @@ -1586,10 +1588,14 @@ domains, their live performance and resource utilization statistics.") ,(package-version docbook-xsl) "/manpages/docbook.xsl"))))) (add-after 'unpack 'hardcode-variables - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) ;; Hardcode arm version detection (substitute* "Makefile" - (("ARMV.*:=.*") "ARMV := 7\n")))) + (("ARMV.*:=.*") "ARMV := 7\n")) + ;; Hard-code the correct PLUGINDIR above. + (substitute* "criu/include/plugin.h" + (("/var") (string-append (assoc-ref outputs "out")))) + )) (add-before 'build 'fix-symlink (lambda* (#:key inputs #:allow-other-keys) ;; The file 'images/google/protobuf/descriptor.proto' points to From 578d1b6374df8f5f0239f62409e326ae138acd15 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 300/363] gnu: Add python-fastbencode. * gnu/packages/python-xyz.scm (python-fastbencode): New public variable. --- gnu/packages/python-xyz.scm | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index a661b1403f..6ca759e2e2 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -31,7 +31,7 @@ ;;; Copyright © 2016, 2017, 2019 Alex Vong ;;; Copyright © 2016, 2017, 2018, 2021 Arun Isaac ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Julien Lepiller -;;; Copyright © 2016–2021 Tobias Geerinckx-Rice +;;; Copyright © 2016–2022 Tobias Geerinckx-Rice ;;; Copyright © 2016, 2017 Thomas Danckaert ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Frederick M. Muriithi @@ -13725,6 +13725,34 @@ Debian-related files, such as: JSON Reference and JSON Pointer.") (license license:bsd-3))) +(define-public python-fastbencode + (package + (name "python-fastbencode") + (version "0.0.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fastbencode" version)) + (sha256 + (base32 "1r66w3vpmvfmssshjpgqaj2m14c8p94nymr96mwn61idajz9mg5n")))) + (build-system python-build-system) + (home-page "https://github.com/breezy-team/fastbencode") + (synopsis "Python Bencode (de)serializer with optional fast C extensions") + (description + "The fastbencode Python package implements the bencode serialization +format for storing and transmitting loosely structured data, originally used +by BitTorrent. + +The format can encode four different types of values: byte strings, integers, +lists, and dictionaries (associative arrays). It's simple and unaffected by +endianness, + +This package includes both a pure-Python version and an optional C extension +based on Cython. Both provide the same functionality, but the C version has +significantly better performance.") + (license (list license:expat ; _bencode_py.py + license:gpl2+)))) ; __init__.py + (define-public python-fastjsonschema (package (name "python-fastjsonschema") From d129d962e437fd215c5e9428fc1b26e2d72ffbda Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 301/363] gnu: breezy: Update to 3.2.2. * gnu/packages/version-control.scm (breezy): Update to 3.2.2. [inputs]: Add python-fastbencode. --- gnu/packages/version-control.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 5badc28fc5..9d0786d2d9 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus ;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2016, 2017, 2018 Nikita -;;; Copyright © 2017–2021 Tobias Geerinckx-Rice +;;; Copyright © 2017–2022 Tobias Geerinckx-Rice ;;; Copyright © 2017 Vasile Dumitrascu ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017, 2020 EuAndreh @@ -180,7 +180,7 @@ as well as the classic centralized workflow.") (define-public breezy (package (name "breezy") - (version "3.2.1") + (version "3.2.2") (source (origin (method url-fetch) @@ -188,14 +188,14 @@ as well as the classic centralized workflow.") (version-major+minor version) "/" version "/+download/breezy-" version ".tar.gz")) (sha256 - (base32 - "0p6q545xpmxa6fgvkjglfpqpybg33817vhw0a82az8i83bmnicp0")))) + (base32 "1md4b6ajawf5h50fqizmjj0g833ihc674dh7fn0mvl4d412nwyhq")))) (build-system python-build-system) ;; TODO: Maybe regenerate C files with Cython? (inputs `(("gettext" ,gettext-minimal) ("python-configobj" ,python-configobj) ("python-dulwich" ,python-dulwich) + ("python-fastbencode" ,python-fastbencode) ("python-fastimport" ,python-fastimport) ("python-paramiko" ,python-paramiko) ("python-patiencediff" ,python-patiencediff) From dab819d5c4c55609efae098c8e3c2f2757c34e5b Mon Sep 17 00:00:00 2001 From: Josselin Poiret Date: Mon, 23 May 2022 22:37:26 +0200 Subject: [PATCH 302/363] Move (gnu platform) and (gnu platforms ...) to guix/. * gnu/platform.scm: * gnu/platforms/arm.scm: * gnu/platforms/hurd.scm: * gnu/platforms/mips.scm: * gnu/platforms/powerpc.scm: * gnu/platforms/riscv.scm: * gnu/platforms/s390.scm: * gnu/platforms/x86.scm: Move to guix/. * Makefile.am: * doc/guix.texi (Porting to a New Platform): * etc/release-manifest.scm: * gnu/ci.scm: * gnu/image.scm: * gnu/local.mk: * gnu/packages/bioinformatics.scm: * gnu/packages/bootstrap.scm: * gnu/packages/cross-base.scm: * gnu/packages/instrumentation.scm: * gnu/packages/linux.scm: * gnu/system/image.scm: * gnu/system/images/hurd.scm: * gnu/system/images/novena.scm: * gnu/system/images/pine64.scm: * gnu/system/images/pinebook-pro.scm: * gnu/system/images/rock64.scm: * guix/scripts/build.scm: * guix/scripts/system.scm: * guix/self.scm: Update (gnu platform...) to (guix platform...). Signed-off-by: Mathieu Othacehe --- Makefile.am | 8 ++++++++ doc/guix.texi | 2 +- etc/release-manifest.scm | 2 +- gnu/ci.scm | 2 +- gnu/image.scm | 2 +- gnu/local.mk | 8 -------- gnu/packages/bioinformatics.scm | 2 +- gnu/packages/bootstrap.scm | 2 +- gnu/packages/cross-base.scm | 2 +- gnu/packages/instrumentation.scm | 2 +- gnu/packages/linux.scm | 2 +- gnu/system/image.scm | 2 +- gnu/system/images/hurd.scm | 2 +- gnu/system/images/novena.scm | 2 +- gnu/system/images/pine64.scm | 2 +- gnu/system/images/pinebook-pro.scm | 2 +- gnu/system/images/rock64.scm | 2 +- {gnu => guix}/platform.scm | 4 ++-- {gnu => guix}/platforms/arm.scm | 5 ++--- {gnu => guix}/platforms/hurd.scm | 5 ++--- {gnu => guix}/platforms/mips.scm | 5 ++--- {gnu => guix}/platforms/powerpc.scm | 5 ++--- {gnu => guix}/platforms/riscv.scm | 5 ++--- {gnu => guix}/platforms/s390.scm | 5 ++--- {gnu => guix}/platforms/x86.scm | 5 ++--- guix/scripts/build.scm | 2 +- guix/scripts/system.scm | 2 +- guix/self.scm | 2 +- 28 files changed, 42 insertions(+), 49 deletions(-) rename {gnu => guix}/platform.scm (98%) rename {gnu => guix}/platforms/arm.scm (92%) rename {gnu => guix}/platforms/hurd.scm (90%) rename {gnu => guix}/platforms/mips.scm (90%) rename {gnu => guix}/platforms/powerpc.scm (92%) rename {gnu => guix}/platforms/riscv.scm (91%) rename {gnu => guix}/platforms/s390.scm (90%) rename {gnu => guix}/platforms/x86.scm (94%) diff --git a/Makefile.am b/Makefile.am index 5a42bb90b2..e993552fe9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -132,6 +132,14 @@ MODULES = \ guix/workers.scm \ guix/least-authority.scm \ guix/ipfs.scm \ + guix/platform.scm \ + guix/platforms/arm.scm \ + guix/platforms/hurd.scm \ + guix/platforms/mips.scm \ + guix/platforms/powerpc.scm \ + guix/platforms/riscv.scm \ + guix/platforms/s390.scm \ + guix/platforms/x86.scm \ guix/build-system.scm \ guix/build-system/android-ndk.scm \ guix/build-system/ant.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 184206bec8..d3a6966a4c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -40448,7 +40448,7 @@ guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs @end example For this to work, it is first required to register a new platform as -defined in the @code{(gnu platform)} module. A platform is making the +defined in the @code{(guix platform)} module. A platform is making the connection between a GNU triplet (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf}), the equivalent @var{system} in Nix notation, the name of the diff --git a/etc/release-manifest.scm b/etc/release-manifest.scm index 1098f491ba..dd70068490 100644 --- a/etc/release-manifest.scm +++ b/etc/release-manifest.scm @@ -23,7 +23,7 @@ (use-modules (gnu packages) (guix packages) (guix profiles) - ((gnu platform) #:select (targets)) + ((guix platform) #:select (targets)) ((gnu services xorg) #:select (%default-xorg-modules)) (guix utils) (srfi srfi-1) diff --git a/gnu/ci.scm b/gnu/ci.scm index 9de1b54fc8..f476e22731 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -55,7 +55,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages make-bootstrap) #:use-module (gnu packages package-management) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module (gnu system) #:use-module (gnu system image) #:use-module (gnu system vm) diff --git a/gnu/image.scm b/gnu/image.scm index 0b3a5a096b..e10a495d3d 100644 --- a/gnu/image.scm +++ b/gnu/image.scm @@ -17,7 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu image) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module (guix records) #:export (partition partition? diff --git a/gnu/local.mk b/gnu/local.mk index 06826ee0cc..a4250248ca 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -89,7 +89,6 @@ GNU_SYSTEM_MODULES = \ %D%/home/services/utils.scm \ %D%/home/services/xdg.scm \ %D%/image.scm \ - %D%/platform.scm \ %D%/packages.scm \ %D%/packages/abduco.scm \ %D%/packages/abiword.scm \ @@ -631,13 +630,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/zile.scm \ %D%/packages/zwave.scm \ \ - %D%/platforms/arm.scm \ - %D%/platforms/mips.scm \ - %D%/platforms/powerpc.scm \ - %D%/platforms/riscv.scm \ - %D%/platforms/s390.scm \ - %D%/platforms/x86.scm \ - \ %D%/services.scm \ %D%/services/admin.scm \ %D%/services/audio.scm \ diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 2a312b1989..474d85f320 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -161,7 +161,7 @@ #:use-module (gnu packages wget) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match)) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 5337617a53..d2914fb5a7 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -26,7 +26,7 @@ (define-module (gnu packages bootstrap) #:use-module (guix licenses) #:use-module (gnu packages) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 427fefbcd2..93e4f8a445 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -30,7 +30,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages hurd) #:use-module (gnu packages mingw) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm index c5062388f8..2db21aef1b 100644 --- a/gnu/packages/instrumentation.scm +++ b/gnu/packages/instrumentation.scm @@ -42,7 +42,7 @@ #:use-module (gnu packages swig) #:use-module (gnu packages tbb) #:use-module (gnu packages xml) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 048fdcec98..bd24fce432 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -158,7 +158,7 @@ #:use-module (gnu packages groff) #:use-module (gnu packages selinux) #:use-module (gnu packages swig) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index 74b81d02f6..dd32e58c2d 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -32,7 +32,7 @@ #:use-module (gnu bootloader) #:use-module (gnu bootloader grub) #:use-module (gnu image) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu system) diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm index 4c38c46a89..36b6f3a200 100644 --- a/gnu/system/images/hurd.scm +++ b/gnu/system/images/hurd.scm @@ -23,7 +23,7 @@ #:use-module (gnu bootloader grub) #:use-module (gnu image) #:use-module (gnu packages ssh) - #:use-module (gnu platforms hurd) + #:use-module (guix platforms hurd) #:use-module (gnu services) #:use-module (gnu services ssh) #:use-module (gnu system) diff --git a/gnu/system/images/novena.scm b/gnu/system/images/novena.scm index 5b625e56c5..b9ff6dcfea 100644 --- a/gnu/system/images/novena.scm +++ b/gnu/system/images/novena.scm @@ -22,7 +22,7 @@ #:use-module (gnu bootloader u-boot) #:use-module (gnu image) #:use-module (gnu packages linux) - #:use-module (gnu platforms arm) + #:use-module (guix platforms arm) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu system) diff --git a/gnu/system/images/pine64.scm b/gnu/system/images/pine64.scm index aaec458766..99c4ed6ceb 100644 --- a/gnu/system/images/pine64.scm +++ b/gnu/system/images/pine64.scm @@ -21,7 +21,7 @@ #:use-module (gnu bootloader u-boot) #:use-module (gnu image) #:use-module (gnu packages linux) - #:use-module (gnu platforms arm) + #:use-module (guix platforms arm) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu system) diff --git a/gnu/system/images/pinebook-pro.scm b/gnu/system/images/pinebook-pro.scm index 1bfac7a8bb..7e8910427e 100644 --- a/gnu/system/images/pinebook-pro.scm +++ b/gnu/system/images/pinebook-pro.scm @@ -21,7 +21,7 @@ #:use-module (gnu bootloader u-boot) #:use-module (gnu image) #:use-module (gnu packages linux) - #:use-module (gnu platforms arm) + #:use-module (guix platforms arm) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu system) diff --git a/gnu/system/images/rock64.scm b/gnu/system/images/rock64.scm index d25d55e528..68cb65f115 100644 --- a/gnu/system/images/rock64.scm +++ b/gnu/system/images/rock64.scm @@ -21,7 +21,7 @@ #:use-module (gnu bootloader u-boot) #:use-module (gnu image) #:use-module (gnu packages linux) - #:use-module (gnu platforms arm) + #:use-module (guix platforms arm) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services networking) diff --git a/gnu/platform.scm b/guix/platform.scm similarity index 98% rename from gnu/platform.scm rename to guix/platform.scm index fdc3685e7c..361241cb2e 100644 --- a/gnu/platform.scm +++ b/guix/platform.scm @@ -16,7 +16,7 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu platform) +(define-module (guix platform) #:use-module (guix discovery) #:use-module (guix memoization) #:use-module (guix records) @@ -78,7 +78,7 @@ (define (platform-modules) "Return the list of platform modules." (all-modules (map (lambda (entry) - `(,entry . "gnu/platforms")) + `(,entry . "guix/platforms")) %load-path) #:warn warn-about-load-error)) diff --git a/gnu/platforms/arm.scm b/guix/platforms/arm.scm similarity index 92% rename from gnu/platforms/arm.scm rename to guix/platforms/arm.scm index bf68b2d00f..32c0fbc032 100644 --- a/gnu/platforms/arm.scm +++ b/guix/platforms/arm.scm @@ -16,9 +16,8 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu platforms arm) - #:use-module (gnu platform) - #:use-module (gnu packages linux) +(define-module (guix platforms arm) + #:use-module (guix platform) #:use-module (guix records) #:export (armv7-linux aarch64-linux)) diff --git a/gnu/platforms/hurd.scm b/guix/platforms/hurd.scm similarity index 90% rename from gnu/platforms/hurd.scm rename to guix/platforms/hurd.scm index 328e9818ad..baa6c23b41 100644 --- a/gnu/platforms/hurd.scm +++ b/guix/platforms/hurd.scm @@ -16,9 +16,8 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu platforms hurd) - #:use-module (gnu platform) - #:use-module (gnu packages linux) +(define-module (guix platforms hurd) + #:use-module (guix platform) #:use-module (guix records) #:export (hurd)) diff --git a/gnu/platforms/mips.scm b/guix/platforms/mips.scm similarity index 90% rename from gnu/platforms/mips.scm rename to guix/platforms/mips.scm index 174657da13..e6fa9eb292 100644 --- a/gnu/platforms/mips.scm +++ b/guix/platforms/mips.scm @@ -16,9 +16,8 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu platforms mips) - #:use-module (gnu platform) - #:use-module (gnu packages linux) +(define-module (guix platforms mips) + #:use-module (guix platform) #:use-module (guix records) #:export (mips64-linux)) diff --git a/gnu/platforms/powerpc.scm b/guix/platforms/powerpc.scm similarity index 92% rename from gnu/platforms/powerpc.scm rename to guix/platforms/powerpc.scm index 1d0b5cb666..9d0b343bc3 100644 --- a/gnu/platforms/powerpc.scm +++ b/guix/platforms/powerpc.scm @@ -16,9 +16,8 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu platforms powerpc) - #:use-module (gnu platform) - #:use-module (gnu packages linux) +(define-module (guix platforms powerpc) + #:use-module (guix platform) #:use-module (guix records) #:export (powerpc-linux powerpc64le-linux)) diff --git a/gnu/platforms/riscv.scm b/guix/platforms/riscv.scm similarity index 91% rename from gnu/platforms/riscv.scm rename to guix/platforms/riscv.scm index c2b4850e55..c716c12c12 100644 --- a/gnu/platforms/riscv.scm +++ b/guix/platforms/riscv.scm @@ -16,9 +16,8 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu platforms riscv) - #:use-module (gnu platform) - #:use-module (gnu packages linux) +(define-module (guix platforms riscv) + #:use-module (guix platform) #:use-module (guix records) #:export (riscv64-linux)) diff --git a/gnu/platforms/s390.scm b/guix/platforms/s390.scm similarity index 90% rename from gnu/platforms/s390.scm rename to guix/platforms/s390.scm index d3b1133974..b5477f1e5e 100644 --- a/gnu/platforms/s390.scm +++ b/guix/platforms/s390.scm @@ -16,9 +16,8 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu platforms s390) - #:use-module (gnu platform) - #:use-module (gnu packages linux) +(define-module (guix platforms s390) + #:use-module (guix platform) #:use-module (guix records) #:export (s390x-linux)) diff --git a/gnu/platforms/x86.scm b/guix/platforms/x86.scm similarity index 94% rename from gnu/platforms/x86.scm rename to guix/platforms/x86.scm index fba7dd4fc0..5338049d6f 100644 --- a/gnu/platforms/x86.scm +++ b/guix/platforms/x86.scm @@ -16,9 +16,8 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu platforms x86) - #:use-module (gnu platform) - #:use-module (gnu packages linux) +(define-module (guix platforms x86) + #:use-module (guix platform) #:use-module (guix records) #:export (i686-linux x86_64-linux diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 4383a399a0..75bbb701ae 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -48,7 +48,7 @@ #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) #:use-module (gnu packages) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module ((guix status) #:select (with-status-verbosity)) #:use-module ((guix progress) #:select (current-terminal-columns)) #:use-module ((guix build syscalls) #:select (terminal-columns)) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 73e3c299c1..eaa245eb44 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -66,7 +66,7 @@ (device-module-aliases matching-modules) #:use-module (gnu system linux-initrd) #:use-module (gnu image) - #:use-module (gnu platform) + #:use-module (guix platform) #:use-module (gnu system) #:use-module (gnu bootloader) #:use-module (gnu system file-systems) diff --git a/guix/self.scm b/guix/self.scm index 9fff0ade04..9a64051c32 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -888,7 +888,7 @@ itself." ,@(scheme-modules* source "gnu/system") ,@(scheme-modules* source "gnu/services") ,@(scheme-modules* source "gnu/machine") - ,@(scheme-modules* source "gnu/platforms/")) + ,@(scheme-modules* source "guix/platforms/")) (list *core-package-modules* *package-modules* *extra-modules* *core-modules*) #:extensions dependencies From 9e2b0dc9e51505e409d5db58e658d7cdab314564 Mon Sep 17 00:00:00 2001 From: Josselin Poiret Date: Mon, 23 May 2022 22:37:27 +0200 Subject: [PATCH 303/363] build-system: linux-module: Directly use-module (guix platform). * guix/build-system/linux-module.scm (system->arch): Remove module-ref shenanigans. Signed-off-by: Mathieu Othacehe --- guix/build-system/linux-module.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/build-system/linux-module.scm b/guix/build-system/linux-module.scm index 761ebe25b1..94a293da13 100644 --- a/guix/build-system/linux-module.scm +++ b/guix/build-system/linux-module.scm @@ -28,6 +28,7 @@ #:use-module (guix build-system) #:use-module (guix build-system gnu) #:use-module (guix packages) + #:use-module (guix platform) #:use-module (ice-9 match) #:export (%linux-module-build-system-modules linux-module-build @@ -50,8 +51,7 @@ (module-ref module 'linux-libre))) (define (system->arch system) - (let ((module (resolve-interface '(gnu platform)))) - ((module-ref module 'lookup-platform-by-target-or-system) system))) + (platform-linux-architecture (lookup-platform-by-target-or-system system))) (define (make-linux-module-builder linux) (package From d276a7dd6162d101b7790cc8ea902abfec1eafcb Mon Sep 17 00:00:00 2001 From: Josselin Poiret Date: Tue, 24 May 2022 17:55:22 +0200 Subject: [PATCH 304/363] tests: Fix wrong target triplets. * tests/gexp.scm (ungexp + ungexp-native, input list + ungexp-native, input list splicing + ungexp-native-splicing, gexp list splicinng + ungexp-splicing, gexp->derivation, cross-compilation, gexp->derivation, ungexp-native, gexp->derivation, ungexp + ungexp-native, gexp->derivation, ungexp-native + composed gexps): Change mips64el-linux to mips64el-linux-gnu. * tests/guix-pack.sh: Change arm-unknown-linux-gnueabihf to arm-linux-gnueabihf. Signed-off-by: Mathieu Othacehe --- tests/gexp.scm | 12 ++++++------ tests/guix-pack.sh | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/gexp.scm b/tests/gexp.scm index 35bd99e6d4..07e940ffdc 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -502,7 +502,7 @@ (ungexp coreutils) (ungexp-native glibc) (ungexp binutils)))) - (target "mips64el-linux") + (target "mips64el-linux-gnu") (guile (derivation->output-path (package-derivation %store %bootstrap-guile))) (cu (derivation->output-path @@ -547,7 +547,7 @@ (gexp->sexp* exp))))) (test-assert "input list + ungexp-native" - (let* ((target "mips64el-linux") + (let* ((target "mips64el-linux-gnu") (exp (gexp (display (cons '(ungexp-native (list %bootstrap-guile coreutils)) '(ungexp (list glibc binutils)))))) @@ -764,7 +764,7 @@ intd))))) (test-assertm "gexp->derivation, cross-compilation" - (mlet* %store-monad ((target -> "mips64el-linux") + (mlet* %store-monad ((target -> "mips64el-linux-gnu") (exp -> (gexp (list (ungexp coreutils) (ungexp output)))) (xdrv (gexp->derivation "foo" exp @@ -778,7 +778,7 @@ (not (member (derivation-file-name cu) refs)))))) (test-assertm "gexp->derivation, ungexp-native" - (mlet* %store-monad ((target -> "mips64el-linux") + (mlet* %store-monad ((target -> "mips64el-linux-gnu") (exp -> (gexp (list (ungexp-native coreutils) (ungexp output)))) (xdrv (gexp->derivation "foo" exp @@ -788,7 +788,7 @@ (derivation-file-name xdrv))))) (test-assertm "gexp->derivation, ungexp + ungexp-native" - (mlet* %store-monad ((target -> "mips64el-linux") + (mlet* %store-monad ((target -> "mips64el-linux-gnu") (exp -> (gexp (list (ungexp-native coreutils) (ungexp glibc) (ungexp output)))) @@ -802,7 +802,7 @@ (member (derivation-file-name xglibc) refs))))) (test-assertm "gexp->derivation, ungexp-native + composed gexps" - (mlet* %store-monad ((target -> "mips64el-linux") + (mlet* %store-monad ((target -> "mips64el-linux-gnu") (exp0 -> (gexp (list 1 2 (ungexp coreutils)))) (exp -> (gexp (list 0 (ungexp-native exp0)))) diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh index 1356a74083..f19a0f754e 100644 --- a/tests/guix-pack.sh +++ b/tests/guix-pack.sh @@ -107,7 +107,7 @@ guix pack --dry-run --bootstrap -f docker -S /opt/gnu=/ guile-bootstrap # Build a tarball pack of cross-compiled software. Use coreutils because # guile-bootstrap is not intended to be cross-compiled. -guix pack --dry-run --bootstrap --target=arm-unknown-linux-gnueabihf coreutils +guix pack --dry-run --bootstrap --target=arm-linux-gnueabihf coreutils # Likewise, 'guix pack -R' requires a full-blown toolchain (because # 'glibc-bootstrap' lacks 'libc.a'), hence '--dry-run'. From 436afdfe46f6aac173ae161eb52367b7fdc30944 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 25 May 2022 09:46:15 +0200 Subject: [PATCH 305/363] doc: Improve the Foreign Architectures section. * doc/guix.texi (Foreign Architectures): Capitalize the chapter title, remove most of "GNU Guix" occurences and other small improvements. --- doc/guix.texi | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index d3a6966a4c..cb2efacd3e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -174,7 +174,7 @@ Weblate} (@pxref{Translating Guix}). * Development:: Guix-aided software development. * Programming Interface:: Using Guix in Scheme. * Utilities:: Package management commands. -* Foreign architectures:: Build for foreign architectures. +* Foreign Architectures:: Build for foreign architectures. * System Configuration:: Configuring the operating system. * Home Configuration:: Configuring the home environment. * Documentation:: Browsing software user manuals. @@ -323,9 +323,9 @@ Invoking @command{guix build} * Additional Build Options:: Options specific to 'guix build'. * Debugging Build Failures:: Real life packaging experience. -Foreign architectures +Foreign Architectures * Using cross-compilation:: Build for foreign architecture using cross-compilation. -* Using native building:: Build for foreign architectures natively. +* Using native builds:: Build for foreign architectures natively. System Configuration @@ -15216,13 +15216,12 @@ Session_PID: 4278 @end table @end table -@node Foreign architectures -@chapter Foreign architectures +@node Foreign Architectures +@chapter Foreign Architectures -GNU Guix can target computers of different CPU architectures when -producing packages (@pxref{Invoking guix package}), packs -(@pxref{Invoking guix pack}) or full systems (@pxref{Invoking guix -system}). +You can target computers of different CPU architectures when producing +packages (@pxref{Invoking guix package}), packs (@pxref{Invoking guix +pack}) or full systems (@pxref{Invoking guix system}). GNU Guix supports two distinct mechanisms to target foreign architectures: @@ -15240,14 +15239,14 @@ requires emulation, using the QEMU program for instance. @menu * Using cross-compilation:: Build for foreign architecture using cross-compilation. -* Using native building:: Build for foreign architectures natively. +* Using native builds:: Build for foreign architectures natively. @end menu @node Using cross-compilation @section Using cross-compilation @cindex foreign architectures -The GNU Guix commands supporting cross-compilation are proposing the +The commands supporting cross-compilation are proposing the @option{--list-targets} and @option{--target} options. The @option{--list-targets} option lists all the supported targets that @@ -15271,7 +15270,7 @@ The available targets are: - x86_64-w64-mingw32 @end example -The targets are specified as GNU triplets (@pxref{Specifying Target +Targets are specified as GNU triplets (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf}). Those triplets are passed to GCC and the other underlying compilers @@ -15289,14 +15288,14 @@ $ file /gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello The major benefit of cross-compilation is that there are no performance penaly compared to emulation using QEMU. There are however higher risks -that some packages fail to cross-compile because few GNU Guix users are -using this mecanism extensively. +that some packages fail to cross-compile because few users are using +this mecanism extensively. -@node Using native building -@section Using native building +@node Using native builds +@section Using native builds -The GNU Guix commands that support impersonating a specific system have -the @option{--list-systems} and @option{--system} options. +The commands that support impersonating a specific system have the +@option{--list-systems} and @option{--system} options. The @option{--list-systems} option lists all the supported systems that can be passed as an argument to @option{--system}. @@ -15324,9 +15323,8 @@ $ file /gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12/bin/hello 32-bit LSB executable, Intel 80386 @dots{} @end example -In the above example, the GNU Guix current system is @var{x86_64-linux}. -The @var{hello} package is however built for the @var{i686-linux} -system. +In the above example, the current system is @var{x86_64-linux}. The +@var{hello} package is however built for the @var{i686-linux} system. This is possible because the @var{i686} CPU instruction set is a subset of the @var{x86_64}, hence @var{i686} targeting binaries can be run on @@ -15345,7 +15343,7 @@ for that. In short, the Linux kernel can defer the execution of a binary targeting a foreign platform, here @var{aarch64-linux}, to a userspace program, usually an emulator. -There is a GNU Guix service that registers QEMU as a backend for the +There is a service that registers QEMU as a backend for the @code{binfmt_misc} mechanism (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}). On Debian based foreign distributions, the alternative would be the @code{qemu-user-static} From c4ad2757097b5989adc753565c22611f5a2c45cb Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Wed, 25 May 2022 09:18:07 +0100 Subject: [PATCH 306/363] gnu: guix-build-coordinator: Update to 0-53.3de63f1. * gnu/packages/package-management.scm (guix-build-coordinator): Update to 0-53.3de63f1. * gnu/services/guix.scm (guix-build-coordinator-queue-builds-configuration-guix-data-service-build-server-id): New procedure. (guix-build-coordinator-queue-builds-shepherd-services): Use the guix-data-service-build-server-id. * doc/guix.texi (Guix Build Coordinator): Document the new queue builds configuration field. --- doc/guix.texi | 6 ++++++ gnu/packages/package-management.scm | 6 +++--- gnu/services/guix.scm | 14 +++++++++++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index cb2efacd3e..55c992ca25 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -34845,6 +34845,12 @@ derivations to build. The Guix Data Service instance from which to query to find out about derivations to build. +@item @code{guix-data-service-build-server-id} (default: @code{#f}) +The Guix Data Service build server ID coresponding to the builds being +submitted. Providing this speeds up the submitting of builds as +derivations that have already been submitted can be skipped before +asking the coordinator to build them. + @item @code{processed-commits-file} (default: @code{"/var/cache/guix-build-coordinator-queue-builds/processed-commits"}) A file to record which commits have been processed, to avoid needlessly processing them again if the service is restarted. diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index ce97314481..619458a0d3 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1318,8 +1318,8 @@ environments.") (license (list license:gpl3+ license:agpl3+ license:silofl1.1)))) (define-public guix-build-coordinator - (let ((commit "ed3c806ab83c77c1b8f04bb399c66743f1858178") - (revision "52")) + (let ((commit "3de63f1f66d5f0eb157ee60bc864404f386ee2b0") + (revision "53")) (package (name "guix-build-coordinator") (version (git-version "0" revision commit)) @@ -1330,7 +1330,7 @@ environments.") (commit commit))) (sha256 (base32 - "1b2xsax548q43jh95m7jza2lafiljciljxavrvhpx8xsj0nlsffc")) + "1ld761c48ad925p3kisnjvad50p6hyk77z0yjcr29681n73xzzz4")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm index 83c293bbb5..413bf51ad8 100644 --- a/gnu/services/guix.scm +++ b/gnu/services/guix.scm @@ -92,6 +92,7 @@ guix-build-coordinator-queue-builds-configuration-systems guix-build-coordinator-queue-builds-configuration-system-and-targets guix-build-coordinator-queue-builds-configuration-guix-data-service + guix-build-coordinator-queue-builds-configuration-guix-data-service-build-server-id guix-build-coordinator-queue-builds-configuration-processed-commits-file guix-build-coordinator-queue-builds-service-type @@ -230,6 +231,9 @@ (guix-data-service guix-build-coordinator-queue-builds-configuration-guix-data-service (default "https://data.guix.gnu.org")) + (guix-data-service-build-server-id + guix-build-coordinator-queue-builds-configuration-guix-data-service-build-server-id + (default #f)) (processed-commits-file guix-build-coordinator-queue-builds-configuration-processed-commits-file (default "/var/cache/guix-build-coordinator-queue-builds/processed-commits"))) @@ -494,7 +498,9 @@ (define (guix-build-coordinator-queue-builds-shepherd-services config) (match-record config (package user coordinator systems systems-and-targets - guix-data-service processed-commits-file) + guix-data-service + guix-data-service-build-server-id + processed-commits-file) (list (shepherd-service (documentation "Guix Build Coordinator queue builds from Guix Data Service") @@ -517,6 +523,12 @@ #$@(if guix-data-service #~(#$(string-append "--guix-data-service=" guix-data-service)) #~()) + #$@(if guix-data-service-build-server-id + #~(#$(simple-format + #f + "--guix-data-service-build-server-id=~A" + guix-data-service-build-server-id)) + #~()) #$@(if processed-commits-file #~(#$(string-append "--processed-commits-file=" processed-commits-file)) From d18673dbf2deb105d10667362a18dd8fb1cecc80 Mon Sep 17 00:00:00 2001 From: Peter Polidoro Date: Wed, 18 May 2022 10:38:59 -0400 Subject: [PATCH 307/363] gnu: west: Update to 0.13.1. * gnu/packages/embedded.scm (west): Update to 0.13.1. Signed-off-by: Mathieu Othacehe --- gnu/packages/embedded.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 9257eea3b0..010f5b84d2 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -1415,16 +1415,18 @@ raw USB commands.") (define-public west (package (name "west") - (version "0.6.3") + (version "0.13.1") (source (origin (method url-fetch) (uri (pypi-uri "west" version)) (sha256 (base32 - "0ql6ij1hrj2ir5wkxm96zgig5qwvfwa75w77wh2y13w6b9cqcr4b")))) + "1hw9qas8ry8prn24iqka8kw2nv7ndxr95mvwr5lww53w2sr7p807")))) (propagated-inputs - (list python-colorama python-configobj python-pykwalify + (list python-colorama + python-packaging + python-pykwalify python-pyyaml)) (build-system python-build-system) (home-page "https://github.com/zephyrproject-rtos/west") From a9dcd60bc11afb3934c11fbad159a16f0f223fd1 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 25 May 2022 13:01:15 +0200 Subject: [PATCH 308/363] platforms: Remove the hurd module. The hurd platform is now defined in the (guix platforms x86) module. * guix/platforms/hurd.scm: Remove it. * Makefile.am (MODULES): Adapt it. --- Makefile.am | 1 - guix/platforms/hurd.scm | 28 ---------------------------- 2 files changed, 29 deletions(-) delete mode 100644 guix/platforms/hurd.scm diff --git a/Makefile.am b/Makefile.am index e993552fe9..bc114c9dae 100644 --- a/Makefile.am +++ b/Makefile.am @@ -134,7 +134,6 @@ MODULES = \ guix/ipfs.scm \ guix/platform.scm \ guix/platforms/arm.scm \ - guix/platforms/hurd.scm \ guix/platforms/mips.scm \ guix/platforms/powerpc.scm \ guix/platforms/riscv.scm \ diff --git a/guix/platforms/hurd.scm b/guix/platforms/hurd.scm deleted file mode 100644 index baa6c23b41..0000000000 --- a/guix/platforms/hurd.scm +++ /dev/null @@ -1,28 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2021 Mathieu Othacehe -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (guix platforms hurd) - #:use-module (guix platform) - #:use-module (guix records) - #:export (hurd)) - -(define hurd - (platform - (target "i586-pc-gnu") - (system "i586-gnu") - (glibc-dynamic-linker "/lib/ld.so.1"))) From be43625159de560b651d3a744db5b79b4f1fe55f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 25 May 2022 14:45:39 +0300 Subject: [PATCH 309/363] images: hurd: Adjust module imports. Follow-up to a9dcd60bc11afb3934c11fbad159a16f0f223fd1. * gnu/system/images/hurd.scm: Adjust module imports to changes in code structure. --- gnu/system/images/hurd.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm index 36b6f3a200..6da09b855a 100644 --- a/gnu/system/images/hurd.scm +++ b/gnu/system/images/hurd.scm @@ -23,7 +23,7 @@ #:use-module (gnu bootloader grub) #:use-module (gnu image) #:use-module (gnu packages ssh) - #:use-module (guix platforms hurd) + #:use-module (guix platforms x86) #:use-module (gnu services) #:use-module (gnu services ssh) #:use-module (gnu system) From e0e1bf440937b3f68d29839fb7c5d70061a3129d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 25 May 2022 15:40:58 +0300 Subject: [PATCH 310/363] gnu: nano: Update to 6.3. * gnu/packages/nano.scm (nano): Update to 6.3. --- gnu/packages/nano.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index a07fe0cbc9..40d79a508e 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner +;;; Copyright © 2015-2022 Efraim Flashner ;;; Copyright © 2016 Rene Saavedra ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2022 Jai Vetrivelan @@ -31,13 +31,13 @@ (define-public nano (package (name "nano") - (version "6.2") + (version "6.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz")) (sha256 - (base32 "1cvwlz34p1msgylhbhgfc3c5xdcvfkj5dxwisx5aysmdpq21ijib")))) + (base32 "11w6dxg8159bhcap9gzv11nlcnl8mfx5ss0ga05p6wjnk2j2slzb")))) (build-system gnu-build-system) (inputs (list gettext-minimal ncurses)) From d2c06bf2ff424c6076b3e847119a3952f7a6ce40 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 25 May 2022 17:04:51 +0200 Subject: [PATCH 311/363] platforms: Remove the s390x platform. Turns out this platform doesn't have a bootstrap tarball and should be considered as not supported for now. * guix/platforms/s390.scm: Remove it. * Makefile.am (MODULES): Adapt it. * doc/guix.texi (Foreign Architectures): Ditto. --- Makefile.am | 1 - doc/guix.texi | 2 -- guix/platforms/s390.scm | 29 ----------------------------- 3 files changed, 32 deletions(-) delete mode 100644 guix/platforms/s390.scm diff --git a/Makefile.am b/Makefile.am index bc114c9dae..968bde8131 100644 --- a/Makefile.am +++ b/Makefile.am @@ -137,7 +137,6 @@ MODULES = \ guix/platforms/mips.scm \ guix/platforms/powerpc.scm \ guix/platforms/riscv.scm \ - guix/platforms/s390.scm \ guix/platforms/x86.scm \ guix/build-system.scm \ guix/build-system/android-ndk.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 55c992ca25..bcc193366f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -15265,7 +15265,6 @@ The available targets are: - powerpc-linux-gnu - powerpc64le-linux-gnu - riscv64-linux-gnu - - s390x-linux-gnu - x86_64-linux-gnu - x86_64-w64-mingw32 @end example @@ -15313,7 +15312,6 @@ The available systems are: - powerpc-linux - powerpc64le-linux - riscv64-linux - - s390x-linux $ guix build --system=i686-linux hello /gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12 diff --git a/guix/platforms/s390.scm b/guix/platforms/s390.scm deleted file mode 100644 index b5477f1e5e..0000000000 --- a/guix/platforms/s390.scm +++ /dev/null @@ -1,29 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2022 Mathieu Othacehe -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (guix platforms s390) - #:use-module (guix platform) - #:use-module (guix records) - #:export (s390x-linux)) - -(define s390x-linux - (platform - (target "s390x-linux-gnu") - (system "s390x-linux") - (linux-architecture "s390") - (glibc-dynamic-linker "/lib/ld64.so.1"))) From b55d0f553b4823afd49f3ebd979b90b94d54da22 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:02 +0200 Subject: [PATCH 312/363] gnu: toybox: Update to 0.8.7. * gnu/packages/busybox.scm (toybox): Update to 0.8.7. --- gnu/packages/busybox.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 6a09b550cf..8624f1f816 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -120,7 +120,7 @@ any small or embedded system.") (define-public toybox (package (name "toybox") - (version "0.8.6") + (version "0.8.7") (source (origin (method url-fetch) (uri (string-append @@ -128,7 +128,7 @@ any small or embedded system.") version ".tar.gz")) (sha256 (base32 - "0jq3368jps6jg717ikzhlc6whml3k2s9xy69zpj4i0r35c5ck622")))) + "150lvp7hf9ndafvmr42kb8xi86hxjd2zj4binwwhgjw2dwrvy25m")))) (build-system gnu-build-system) (arguments (list #:phases From 38787e36c1fc8108e93bcc702c5de44000a161ca Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 313/363] gnu: toybox: Use #:make-flags. * gnu/packages/busybox.scm (toybox)[arguments]: Add #:make-flags to replace ad hoc use of environment variables and custom phases. Remove the 'set-environment-variables and custom 'install phase. --- gnu/packages/busybox.scm | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 8624f1f816..4468d71088 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -131,14 +131,15 @@ any small or embedded system.") "150lvp7hf9ndafvmr42kb8xi86hxjd2zj4binwwhgjw2dwrvy25m")))) (build-system gnu-build-system) (arguments - (list #:phases + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "HOSTCC=gcc") + (string-append "PREFIX=" #$output)) + #:phases #~(modify-phases %standard-phases - (add-before 'configure 'set-environment-variables - (lambda _ - (setenv "CC" #$(cc-for-target)) - (setenv "HOSTCC" (which "gcc")))) (replace 'configure - (lambda _ (invoke "make" "defconfig"))) + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "defconfig" make-flags))) (add-before 'check 'fix-or-skip-broken-tests (lambda _ ;; Some tests expect $USER to magically be the current user. @@ -148,11 +149,6 @@ any small or embedded system.") ;; Delete tests that expect a root or 0 user to exist. (substitute* "tests/id.test" (("^testing .*[ \\(]root.*") "")))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (invoke "make" - (string-append "PREFIX=" #$output) - "install"))) (add-after 'install 'remove-usr-directory (lambda* (#:key outputs #:allow-other-keys) (delete-file-recursively (string-append #$output "/usr"))))) From 7b570a69044a93cfc8c2c0a31822e9e0ca8fbfd9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 314/363] gnu: qjackctl: Update to 0.9.7. * gnu/packages/audio.scm (qjackctl): Update to 0.9.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 6b16269670..3639fe4b1a 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2974,14 +2974,14 @@ different audio devices such as ALSA or PulseAudio.") (define-public qjackctl (package (name "qjackctl") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" version "/qjackctl-" version ".tar.gz")) (sha256 (base32 - "0sqni9ppwadc01fnyqj6lkwy30ql1vccqglv9imd3zdchffjpjir")))) + "104hfvr15v8cbkzil8slrqj48y3fl7lx060alj80q1sjh5hl6j2j")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no check target From 4a0e0fc7b2183688dc69d15fb0389c56a0002ac6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:04 +0200 Subject: [PATCH 315/363] gnu: libbytesize: Update to 2.6. * gnu/packages/c.scm (libbytesize): Update to 2.6. --- gnu/packages/c.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index e4a87d5dad..08405bd4e8 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2018 Ludovic Courtès ;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus -;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2020–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Pierre Neidhardt ;;; Copyright © 2019, 2020 Efraim Flashner ;;; Copyright © 2019, 2021 Guillaume Le Vaillant @@ -220,7 +220,7 @@ Python.") (define-public libbytesize (package (name "libbytesize") - (version "2.2") + (version "2.6") (source (origin (method url-fetch) (uri (string-append @@ -228,7 +228,7 @@ Python.") "download/" version "/libbytesize-" version ".tar.gz")) (sha256 (base32 - "1aivwypmnqcaj2230pifvf3jcgl5chja8rspkxf0j3480asm8g5r")))) + "0h87ryi0mp8msq43h1cna453cqaw5knx1xaggfzm4fxvn8sjpapg")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) From 067b746ed7d916f39b7cdc3cb10a787039ec7ee3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 316/363] gnu: libbytesize: Remove input labels. * gnu/packages/c.scm (libbytesize)[native-inputs]: Remove input labels. --- gnu/packages/c.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 08405bd4e8..216cc8de8a 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -233,9 +233,7 @@ Python.") (arguments `(#:tests? #f)) (native-inputs - `(("gettext" ,gettext-minimal) - ("pkg-config" ,pkg-config) - ("python" ,python))) + (list gettext-minimal pkg-config python)) (inputs (list mpfr pcre2)) (home-page "https://github.com/storaged-project/libbytesize") From 31d037ecf347cd07432a436ff68da62d6d7c8b6a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 317/363] gnu: libhx: Update to 4.3. * gnu/packages/c.scm (libhx): Update to 4.3. --- gnu/packages/c.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 216cc8de8a..e0623beec4 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -320,14 +320,14 @@ whose behaviour is inconsistent across *NIX flavours.") (define-public libhx (package (name "libhx") - (version "4.2") + (version "4.3") (source (origin (method url-fetch) (uri (string-append "https://inai.de/files/libhx/" "libHX-" version ".tar.xz")) (sha256 - (base32 "1ri3sxiw5a8br27j7f20s40kihfvq6mmxzcrx68zydiwyxjvf5jj")))) + (base32 "06zkzaya6j3vaafz80qcgn5qcri047003bhmjisv5sbikcw97jqy")))) (build-system gnu-build-system) (home-page "https://inai.de/projects/libhx/") (synopsis "C library with common data structures and functions") From a9b3854eb7d889f25bcc1c94beebb8de02ba3f43 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:05 +0200 Subject: [PATCH 318/363] gnu: python-cli-helpers: Update to 2.2.1. * gnu/packages/python-xyz.scm (python-cli-helpers): Update to 2.2.1. [propagated-inputs]: Remove python-terminaltables. --- gnu/packages/python-xyz.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 6ca759e2e2..22bb8e715f 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3592,7 +3592,7 @@ files.") (define-public python-cli-helpers (package (name "python-cli-helpers") - (version "2.0.1") + (version "2.2.1") (source (origin ;; There's no source tarball on PyPI. @@ -3602,13 +3602,12 @@ files.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1bg2iw9l5dip0kbs00hajdk2v18wvhssbnq8hdf71278qf0wks5l")))) + (base32 "1hzavh9v9lkd1dn9f0nvg80f7v4banxvcrj10zy72przqz51k1sb")))) (build-system python-build-system) (native-inputs (list python-pytest)) (propagated-inputs - (list python-wcwidth python-configobj python-tabulate - python-terminaltables)) + (list python-wcwidth python-configobj python-tabulate)) (home-page "https://github.com/dbcli/cli_helpers") (synopsis "Helpers for building command-line apps") (description From a5be54b9c14ae78020e17cf8ea5fec7f010b070f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 319/363] gnu: litecli: Update to 1.8.0. * gnu/packages/databases.scm (litecli): Update to 1.8.0. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index feedfe68e7..c9127b99bd 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -688,13 +688,13 @@ replacement for the code@{python-memcached} library.") (define-public litecli (package (name "litecli") - (version "1.6.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (pypi-uri "litecli" version)) (sha256 - (base32 "1yb706mgzizzijm1k0fbny98jf58qh5q6f2870rbplxlfla4w9sd")))) + (base32 "0ghh8hq5bw3y2ybiy4ibbdfz55jxvilg1s6zmhxmqikhg5s95xh2")))) (build-system python-build-system) (propagated-inputs (list python-cli-helpers From 39bf5220750ef7106a1a323e9e641ab83425f64d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 320/363] gnu: pelican: Update to 4.7.2. * gnu/packages/python-xyz.scm (pelican): Update to 4.7.2. --- 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 22bb8e715f..cdfcf9f625 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -5643,13 +5643,13 @@ interested parties to subscribe to events, or \"signals\".") (define-public pelican (package (name "pelican") - (version "4.7.1") + (version "4.7.2") (source (origin (method url-fetch) (uri (pypi-uri "pelican" version)) (sha256 - (base32 "1sfckd3fhgnj305002fi3fdhkynric1ck7a5i8qany7k3vdsbasv")))) + (base32 "0m1kndc98hhnlq0yl05f4lzccw555pkxnrajj6lks18yh491kw8w")))) (build-system python-build-system) (inputs (list python-blinker From e490aacde1f8d9bb30cb7bdd4ea72810ca1a3837 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:03 +0200 Subject: [PATCH 321/363] gnu: lynis: Update to 3.0.8. * gnu/packages/admin.scm (lynis): Update to 3.0.8. --- gnu/packages/admin.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index f763cb5c19..38239e1f05 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4367,7 +4367,7 @@ Logitech Unifying Receiver.") (package (name "lynis") ;; Also update the ‘lynis-sdk’ input to the commit matching this release. - (version "3.0.6") + (version "3.0.8") (source (origin (method git-fetch) @@ -4376,7 +4376,7 @@ Logitech Unifying Receiver.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1a1n8alcq6zil1rwk9940cg3x2nz3igcxfad99505pdh7ccz9324")) + (base32 "19kz1ffbbd431cdfw7fjcl5hjkks3gfkwk3w2zkwsxgyiky1gx3w")) (modules '((guix build utils))) (snippet '(begin @@ -4392,10 +4392,10 @@ Logitech Unifying Receiver.") (method git-fetch) (uri (git-reference (url "https://github.com/CISOfy/lynis-sdk") - (commit "1c4e5f60a03e29a1525ca9ec17c793461058253d"))) + (commit "dffe5d352e4d6029ea95a84d50604ccd97cb8999"))) (file-name (git-file-name "lynis-sdk" version)) (sha256 - (base32 "060k8k1q4c7nvrv3cwscxq8md2v75q3nrwwim1hgfw20divw3npy")))))) + (base32 "05qq4395x8f0kyl1ppm74npsf8sb3hhgz0ck4fya91sy6a26b4ja")))))) (arguments `(#:phases (modify-phases %standard-phases From 52431e42ef92beb89ef31e3fd3ec178254b8d630 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 322/363] gnu: lynis: Work. Work around . * gnu/packages/admin.scm (lynis)[arguments]: Add a custom 'unpack phase that doesn't MAKE-FILE-WRITABLE. --- gnu/packages/admin.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 38239e1f05..d22753c64f 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4399,6 +4399,13 @@ Logitech Unifying Receiver.") (arguments `(#:phases (modify-phases %standard-phases + (replace 'unpack + ;; XXX Remove after fixing . + (lambda* (#:key source #:allow-other-keys) + (mkdir "source") + (chdir "source") + (copy-recursively source "." + #:keep-mtime? #t))) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "lynis" From 4c12fcfe43cd65c71161a4a80179cc7d336062f8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 323/363] gnu: parallel: Update to 20220522. * gnu/packages/parallel.scm (parallel): Update to 20220522. --- gnu/packages/parallel.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 96e8cb5df4..5502b415a4 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2016, 2020, 2021 Ricardo Wurmus ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2017, 2018 Rutger Helling -;;; Copyright © 2018–2021 Tobias Geerinckx-Rice +;;; Copyright © 2018–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018 Clément Lassieur ;;; Copyright © 2019-2022 Ludovic Courtès ;;; Copyright © 2020 Roel Janssen @@ -62,14 +62,14 @@ (define-public parallel (package (name "parallel") - (version "20220422") + (version "20220522") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parallel/parallel-" version ".tar.bz2")) (sha256 - (base32 "19rwnxqbwbfhrrifyq5chsg6qgz9n8xf96l838agq0hkzwzvgr4n")))) + (base32 "07wczb3ra65xn8xar4lsfmdvqscbqk9n99r6vcxqzrk4v7w9aqxv")))) (build-system gnu-build-system) (arguments `(#:phases From 5e3cfe9f63716834ae68e8349ea28604b193fc4d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:04 +0200 Subject: [PATCH 324/363] gnu: dpkg: Update to 1.21.8 [fixes CVE-2022-1664]. * gnu/packages/debian.scm (dpkg): Update to 1.21.8. --- gnu/packages/debian.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 2efd8114be..62bddede02 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -336,7 +336,7 @@ other apt sources typically provided by open source developers.") (define-public dpkg (package (name "dpkg") - (version "1.21.0") + (version "1.21.8") (source (origin (method git-fetch) @@ -345,14 +345,14 @@ other apt sources typically provided by open source developers.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0g33cyd0qbyfdrphcw8m8ikj2hxqpjbyxbhvnp751515c8hgc4rx")))) + (base32 "1whb78pywdlm4v1ablgvvplqjn15b6qrwqkj0pihw5j77aakyz2s")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-before 'bootstrap 'patch-version (lambda _ - (patch-shebang "get-version") + (patch-shebang "build-aux/get-version") (with-output-to-file ".dist-version" (lambda () (display ,version))))) (add-after 'unpack 'set-perl-libdir From cb1bd6afcdc8ab6b8f7e626864d2d7253dcd737c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 325/363] gnu: dpkg: Run OpenPGP tests. * gnu/packages/debian.scm (dpkg)[native-inputs]: Add gnupg. --- gnu/packages/debian.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 62bddede02..2056d8c6a5 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -400,6 +400,7 @@ other apt sources typically provided by open source developers.") `(("autoconf" ,autoconf) ("automake" ,automake) ("gettext" ,gettext-minimal) + ("gnupg" ,gnupg) ; to run t/Dpkg_OpenPGP.t ("libtool" ,libtool) ("pkg-config" ,pkg-config) ("perl-io-string" ,perl-io-string))) From 07101ac33fc0596a0ad4b7a59a12f4dbd5c0cd58 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 326/363] gnu: dpkg: Remove input labels. * gnu/packages/debian.scm (dpkg)[native-inputs]: Remove input labels. --- gnu/packages/debian.scm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 2056d8c6a5..03a1778a36 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -397,16 +397,16 @@ other apt sources typically provided by open source developers.") "dpkg-source" "dpkg-vendor"))))))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("gettext" ,gettext-minimal) - ("gnupg" ,gnupg) ; to run t/Dpkg_OpenPGP.t - ("libtool" ,libtool) - ("pkg-config" ,pkg-config) - ("perl-io-string" ,perl-io-string))) + (list autoconf + automake + gettext-minimal + gnupg ; to run t/Dpkg_OpenPGP.t + libtool + pkg-config + perl-io-string)) (inputs (list bzip2 - guile-3.0 ; For wrap-script + guile-3.0 ; for wrap-script libmd ncurses perl From 0504acace738324709327775cc0635b858f2041b Mon Sep 17 00:00:00 2001 From: Vinicius Monego Date: Wed, 25 May 2022 21:49:59 -0300 Subject: [PATCH 327/363] gnu: python-funcparserlib: Update to 1.0.0. * gnu/packages/python-xyz.scm (python-funcparserlib): Update to 1.0.0. --- 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 cdfcf9f625..44eeb0d7fe 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -26482,13 +26482,13 @@ scripts to load entry points more quickly.") (define-public python-funcparserlib (package (name "python-funcparserlib") - (version "1.0.0a0") ; last stable release was in 2013 + (version "1.0.0") (source (origin (method url-fetch) (uri (pypi-uri "funcparserlib" version)) (sha256 - (base32 "0ama5w5lswxlp3l4qfqq3zlg7i6qkw45jfl1f7p8w1vnj8m47yz6")))) + (base32 "0swbqf53x7lfnczvi566s1g3nkf5mfrxz7sbpyymricz57a3vlvx")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; no tests in PyPI and no setup.py in GitHub From 1f5fcc68cb77b4e34afd9cff3394a50190fc3809 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 328/363] gnu: emacs-rec-mode: Update to 1.8.3. * gnu/packages/databases.scm (emacs-rec-mode): Update to 1.8.3. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index c9127b99bd..8e45708dfb 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1599,14 +1599,14 @@ types are supported, as is encryption.") (define-public emacs-rec-mode (package (name "emacs-rec-mode") - (version "1.8.2") + (version "1.8.3") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "rec-mode-" version ".tar")) (sha256 (base32 - "06mjj1la2v8zdhsflj3mwcp7qnkj7gxzm8wbk2pli1h8vnq2zvd0")) + "0lkmvvdj4xx3qhxqggizrcdawav0accyrza2wmhfdq88g2zh5575")) (snippet '(begin (delete-file "rec-mode.info"))))) (build-system emacs-build-system) (arguments From 928085d828a055c1eebc48f778673f7fbdc4c35b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 329/363] gnu: emacs-rec-mode: Remove input labels. * gnu/packages/databases.scm (emacs-rec-mode)[native-inputs]: Remove input labels. --- gnu/packages/databases.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 8e45708dfb..2161340ef9 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1617,7 +1617,7 @@ types are supported, as is encryption.") (invoke "makeinfo" "--no-split" "-o" "rec-mode.info" "rec-mode.texi")))))) (native-inputs - `(("texinfo" ,texinfo))) + (list texinfo)) (home-page "https://www.gnu.org/software/recutils/") (synopsis "Emacs mode for working with recutils database files") (description "This package provides an Emacs major mode @code{rec-mode} From 197d019f247a08e010c23e4693a1459f0087a4dd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 330/363] gnu: emacs-beginend: Update to 2.3.0. * gnu/packages/emacs-xyz.scm (emacs-beginend): Update to 2.3.0. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 2191b05ea5..63f4f1b260 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -19603,7 +19603,7 @@ buffer.") (define-public emacs-beginend (package (name "emacs-beginend") - (version "2.2.0") + (version "2.3.0") (source (origin (method git-fetch) @@ -19612,7 +19612,7 @@ buffer.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35")))) + (base32 "17r8v1sjvgcmprywny9fdg54x4pssp8p7a9ivv5mrygkqjz1vykk")))) ;; TODO: Run tests. (build-system emacs-build-system) (inputs From b575ed6a8b624038ef356827a5e7dfcccdbc3d7e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 331/363] gnu: emacs-org: Update to 9.5.3. * gnu/packages/emacs-xyz.scm (emacs-org): Update to 9.5.3. --- 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 63f4f1b260..eba298b4a5 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12745,7 +12745,7 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "9.5.2") + (version "9.5.3") (source (origin (method git-fetch) @@ -12754,7 +12754,7 @@ passive voice.") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "19fg3drf5h7k46fkdn3b09s69rx8a909cslg7vp2k3b2yji77fdp")))) + (base32 "0h1n6gqxv3kj3y98n5547rhpw4qnp03lfar79npb4paqgpxf76wb")))) (build-system emacs-build-system) (arguments `(#:tests? #t From 2337d6a0516d09165149f3ff9a33f2e27b38a257 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 332/363] gnu: emacs-djvu: Update to 1.1.2. * gnu/packages/emacs-xyz.scm (emacs-djvu): Update to 1.1.2. --- 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 eba298b4a5..a0a207c983 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -3526,14 +3526,14 @@ filters, new key bindings and faces. It can be enabled by (define-public emacs-djvu (package (name "emacs-djvu") - (version "1.1.1") + (version "1.1.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" - "djvu-" version ".el")) + "djvu-" version ".tar")) (sha256 - (base32 "0z2qk1v4qkvcwl27ycqfb8vyszq5v6b8ci29b4la00yaki16p04i")))) + (base32 "0i7xwgg2fxndy81lnng6fh9iknals8xvx4f1nmxq7c099bzwb57c")))) (build-system emacs-build-system) (inputs (list djview djvulibre)) (arguments From 47b371b61399c7db89092586ac03e9a41342464b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 333/363] gnu: emacs-org-roam-bibtex: Update hash. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ‘v0.6.2’ tag advanced by one commit (070a7a7) to fix ‘breaking bibtex-completion’. * gnu/packages/emacs-xyz.scm (emacs-org-roam-bibtex)[source]: Update hash. --- 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 a0a207c983..173071102e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -29745,7 +29745,7 @@ personal wiki.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "00zclyh600865ys7pqiryp3k5li9h20bypvfp2bzqi3588hn9n4i")))) + (base32 "166n1q30xamms4lfqq9vp0yknq33gwlk54qaravxxwz01fdpgb25")))) (build-system emacs-build-system) (propagated-inputs (list emacs-helm-bibtex emacs-org-ref emacs-org-roam)) From a170622d200fba766f36ec1dfd78bbbfe69ca287 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 334/363] gnu: libngspice: Update to 37. * gnu/packages/engineering.scm (libngspice): Update to 37. [arguments]: Remove old "--with-readline=no" work-around from #:configure-flags. --- gnu/packages/engineering.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index d19fde7ca4..dc902ef40f 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1782,7 +1782,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.") ;; See . (package (name "libngspice") - (version "36") + (version "37") (source (origin (method url-fetch) @@ -1793,7 +1793,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.") "old-releases/" version "/ngspice-" version ".tar.gz"))) (sha256 - (base32 "133za6m9grpnnlb46sijkda7ky41mrbvfdb60i0m695sxy3q50ag")))) + (base32 "1gpcic6b6xk3g4956jcsqljf33kj5g43cahmydq6m8rn39sadvlv")))) (build-system gnu-build-system) (arguments `(;; No tests for libngspice exist. @@ -1819,10 +1819,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.") (list "--enable-openmp" "--enable-ciderlib" "--enable-xspice" - "--with-ngshared" - ;; Readline must be disabled to build KiCad with ngspice 34. See - ;; https://bugs.archlinux.org/task/70563 for reference. - "--with-readline=no"))) + "--with-ngshared"))) (native-inputs (list bison flex)) (inputs From 24f0beea421315f7ea9d24f9a3cb5367cc463fc1 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 335/363] gnu: openttd: Update to 12.2. * gnu/packages/games.scm (openttd): Update to 12.2. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index e29172dc98..8dfca4f8eb 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -4258,14 +4258,14 @@ world}, @uref{http://evolonline.org, Evol Online} and (define openttd-engine (package (name "openttd-engine") - (version "12.1") + (version "12.2") (source (origin (method url-fetch) (uri (string-append "https://cdn.openttd.org/openttd-releases/" version "/openttd-" version "-source.tar.xz")) (sha256 (base32 - "1qz7ld55m9cvgr4mkv6c11y0zf2aph3ba605l45qj41hk2wzb2r5")))) + "0p79mi6hnj9138911l56zxxzy7rqz02nmxbf455jc31sx46qyl41")))) (build-system cmake-build-system) (inputs (list allegro From afa96117d063bed29f06494b3d600eb5fe70d58b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:02 +0200 Subject: [PATCH 336/363] gnu: rinutils: Update to 0.10.1. * gnu/packages/games.scm (rinutils): Update to 0.10.1. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8dfca4f8eb..703ad5a2a2 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -7589,7 +7589,7 @@ original.") (define-public rinutils (package (name "rinutils") - (version "0.10.0") + (version "0.10.1") (source (origin (method git-fetch) (uri (git-reference @@ -7598,7 +7598,7 @@ original.") (file-name (git-file-name name version)) (sha256 (base32 - "05h9sq3w900mx8xij7qgqgqcbdk1x5gvbpz7prw2pfbzrrbiq2ns")))) + "0r90kncf6mvyklifpdsnm50iya7w2951nz35nlgndmqnr82gvdwf")))) (build-system cmake-build-system) (arguments (list #:phases From d62474af1b67b7df8bbe578001a93e1a78d46d10 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 337/363] gnu: fortune-mod: Update to 3.14.0. * gnu/packages/games.scm (fortune-mod): Update to 3.14.0. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 703ad5a2a2..2fb772bbe4 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -7648,7 +7648,7 @@ original.") (define-public fortune-mod (package (name "fortune-mod") - (version "3.12.0") + (version "3.14.0") (source (origin (method git-fetch) @@ -7657,7 +7657,7 @@ original.") (commit (string-append "fortune-mod-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1iq3bxrw8758jqvfqaasd7w1zm0g28g9n25qccnzvr98997h6r2n")))) + (base32 "1f2zif3s6vddbhph4jr1cymdsn7gagg59grrxs0yap6myqmy8shg")))) (build-system cmake-build-system) (arguments (list #:test-target "check" From 2baff98ce810555e9f39442f1debcda3cb4d3f55 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 338/363] gnu: node-inherits: Fix typo in description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/node-xyz.scm (node-inherits)[description]: Fix ‘constructer’ typo. --- gnu/packages/node-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 87892410f9..9dcb5c3d16 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -391,7 +391,7 @@ if desired.") (home-page "https://github.com/isaacs/inherits") (synopsis "Browser-friendly object inheritance") (description "This package provides an alternative implementation of -Node's @code{inherits} constructer that can be used in browsers, while +Node's @code{inherits} constructor that can be used in browsers, while defaulting to Node's implementation otherwise.") (license license:isc))) From 499b57e7eb9ac81b4b8502fc6f1adbd31fe70928 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 339/363] gnu: stex-bootstrap: Fix typo in synopsis. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/chez.scm (stex-bootstrap)[synopsis]: Fix ‘embeded’ typo. --- gnu/packages/chez.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 7e6273f26a..1b831a2ce3 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -712,7 +712,7 @@ Chez Scheme."))) (else (format #t "not making docs~%")))))))) (home-page "https://github.com/dybvig/stex") - (synopsis "LaTeX with embeded Scheme code and HTML generation") + (synopsis "LaTeX with embedded Scheme code and HTML generation") (description "The @code{stex} package extends LaTeX with a handful of commands for including Scheme code (or pretty much any other kind of code, as long as you don't plan to use the Scheme-specific transcript support) in a From 69437fa88a0a8cb437b4fc76a9fab2efd2108f71 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 340/363] gnu: julia-ellipsisnotation: Fix typo in synopsis. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/julia-xyz.scm (julia-ellipsisnotation)[synopsis]: Fix ‘elipsis’ typo. --- gnu/packages/julia-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 5d45c07115..56cff1ea6f 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -1650,7 +1650,7 @@ combinations of dual numbers with predefined Julia numeric types.") (propagated-inputs (list julia-arrayinterface)) (home-page "https://github.com/ChrisRackauckas/EllipsisNotation.jl") - (synopsis "Elipsis notation implementation") + (synopsis "Ellipsis notation implementation") (description "This implements the notation @code{..} for indexing arrays. It's similar to the Python @code{...} in that it means \"all of the columns before (or after)\".") From a504a446f07489126271eb8eb026579a8f526f8a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 341/363] gnu: racket-vm-cs: Fix typo in description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/racket.scm (racket-vm-cs)[description]: Fix ‘implemetation’ typo. --- gnu/packages/racket.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 10617d732c..d60a749d91 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -407,7 +407,7 @@ collector, 3M (``Moving Memory Manager'').") (synopsis "Racket CS implementation") (description "The Racket CS implementation, which uses ``Chez Scheme'' as its core compiler and runtime system, has been the default Racket VM -implemetation since Racket 8.0. It performs better than the Racket BC +implementation since Racket 8.0. It performs better than the Racket BC implementation for most programs. Using the Racket VM packages directly is not recommended: instead, install the From 47f29069fca455bffd2a0544c5245b4c2a38fbe6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 342/363] gnu: libobjc2: Fix typo in description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnustep.scm (libobjc2)[description]: Fix ‘replacment’ typo. --- gnu/packages/gnustep.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index 0314983559..ba7060504c 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -98,7 +98,7 @@ to easily create cross-compiled binaries.") (home-page "http://www.gnustep.org/") (synopsis "Objective-C runtime library for Clang") (description "Libobjc2 is an Objective-C runtime library designed as a -drop-in replacment for GCC runtime. It supports following features beyond +drop-in replacement for GCC runtime. It supports following features beyond GCC runtime. @itemize From 48e1f21b3fea4d9dac98b347bf11d13893970f78 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 343/363] gnu: r-lmds: Fix typo in description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cran.scm (r-lmds)[description]: Fix ‘scaleable’ typo. --- gnu/packages/cran.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 5c05f20ea7..deaf6ca4e6 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -969,7 +969,7 @@ variables.") (home-page "https://github.com/dynverse/lmds") (synopsis "Landmark multi-dimensional scaling") (description - "This package provides a fast dimensionality reduction method scaleable + "This package provides a fast dimensionality reduction method scalable to large numbers of samples. @dfn{Landmark Multi-Dimensional Scaling} (LMDS) is an extension of classical Torgerson MDS, but rather than calculating a complete distance matrix between all pairs of samples, only the distances From 7a82889156378bc19ebad83accfdb7e3041dddc0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:01 +0200 Subject: [PATCH 344/363] gnu: chez-scheme-bootstrap-bootfiles: Fix typo in description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/chez.scm (chez-scheme-bootstrap-bootfiles)[description]: Fix ‘upsream’ typo. --- gnu/packages/chez.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 1b831a2ce3..b037efe8d4 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -529,7 +529,7 @@ current platform. (Chez can then cross-compile bootfiles for all other supported platforms.) This package provides bootstrap bootfiles for upstream Chez Scheme. -Currently, it simply packages the binaries checked in to the upsream +Currently, it simply packages the binaries checked in to the upstream repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to work with upstream Chez Scheme so that we can bootstrap these files from source."))) From 61427c1f1db52e12ebf19ff79b98739db586102f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 345/363] gnu: texlive-inputenx: Edit description. * gnu/packages/tex.scm (texlive-inputenx)[descripton]: Edit & fix spelling. --- gnu/packages/tex.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 818316a4e5..520e8598f4 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -2833,9 +2833,9 @@ UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r.") (synopsis "Enhanced input encoding handling") (description "This package deals with input encodings. It provides a wider range of input -encodings using standard mappings, than does inputenc; it also covers nearly all -slots. In this way, it serves as more uptodate replacement for package -inputenc.") +encodings using standard mappings, than does inputenc. It also covers nearly all +slots. In this way, it serves as more up to date replacement for the inputenc +package.") (license license:lppl1.3+))) (define-public texlive-kpathsea From 7649327da7cd6918455f9da22cdc12c487a41fdb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 346/363] doc: Fix typos. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Guix Services): Fix ‘coresponding’ typo. (Using cross-compilation): Fix ‘mecanism’ typo. (Desktop Services): Fix ‘superceeded’ typo. * doc/contributing.texi (Translating Guix): Fix ‘everytime’ typo. --- doc/contributing.texi | 2 +- doc/guix.texi | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/contributing.texi b/doc/contributing.texi index 2354874cb0..e1902f120f 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -2008,7 +2008,7 @@ When a language is included, it may be removed in the future if it stays out of sync and falls below 60% completion. The manual and cookbook are automatically added in the default compilation -target. Everytime we synchronize translations, developers need to +target. Every time we synchronize translations, developers need to recompile all the translated manuals and cookbooks. This is useless for what is essentially the English manual or cookbook. Therefore, we will only include a new language when it reaches 10% completion in the component. diff --git a/doc/guix.texi b/doc/guix.texi index bcc193366f..88e009fe7c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -15288,7 +15288,7 @@ $ file /gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello The major benefit of cross-compilation is that there are no performance penaly compared to emulation using QEMU. There are however higher risks that some packages fail to cross-compile because few users are using -this mecanism extensively. +this mechanism extensively. @node Using native builds @section Using native builds @@ -22343,23 +22343,23 @@ LE scanning interval used for connection establishment. LE scanning window used for connection establishment. @item @code{min-connection-interval} (default: @code{#f}) -LE default minimum connection interval. This value is superceeded by any specific +LE default minimum connection interval. This value is superseded by any specific value provided via the Load Connection Parameters interface. @item @code{max-connection-interval} (default: @code{#f}) -LE default maximum connection interval. This value is superceeded by any specific +LE default maximum connection interval. This value is superseded by any specific value provided via the Load Connection Parameters interface. @item @code{connection-latency} (default: @code{#f}) -LE default connection latency. This value is superceeded by any specific +LE default connection latency. This value is superseded by any specific value provided via the Load Connection Parameters interface. @item @code{connection-supervision-timeout} (default: @code{#f}) -LE default connection supervision timeout. This value is superceeded by any specific +LE default connection supervision timeout. This value is superseded by any specific value provided via the Load Connection Parameters interface. @item @code{autoconnect-timeout} (default: @code{#f}) -LE default autoconnect timeout. This value is superceeded by any specific +LE default autoconnect timeout. This value is superseded by any specific value provided via the Load Connection Parameters interface. @item @code{adv-mon-allowlist-scan-duration} (default: @code{300}) @@ -34844,7 +34844,7 @@ The Guix Data Service instance from which to query to find out about derivations to build. @item @code{guix-data-service-build-server-id} (default: @code{#f}) -The Guix Data Service build server ID coresponding to the builds being +The Guix Data Service build server ID corresponding to the builds being submitted. Providing this speeds up the submitting of builds as derivations that have already been submitted can be skipped before asking the coordinator to build them. From b015a15c5736758c8c94be971a7d0b3c256462b9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: [PATCH 347/363] gnu: Fix all this damn packages. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/bioinformatics.scm (r-icellnet)[description]: Fix ‘this packages’ typo. * gnu/packages/cran.scm (r-add2ggplot)[description]: Likewise. * gnu/packages/crates-io.scm (rust-const-oid-0.6, rust-pem-rfc7468-0.2) (rust-scrypt-0.8)[description]: Likewise. --- gnu/packages/bioinformatics.scm | 2 +- gnu/packages/cran.scm | 2 +- gnu/packages/crates-io.scm | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 474d85f320..239a8c13df 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7824,7 +7824,7 @@ single-cell data.") r-rlist)) (home-page "https://github.com/soumelis-lab/ICELLNET") (synopsis "Transcriptomic-based framework to dissect cell communication") - (description "This packages provides a a transcriptomic-based framework + (description "This package provides a a transcriptomic-based framework to dissect cell communication in a global manner. It integrates an original expert-curated database of ligand-receptor interactions taking into account multiple subunits expression. Based on transcriptomic profiles (gene diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index deaf6ca4e6..0fdcfb3cb9 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -28198,7 +28198,7 @@ geometric models.") (native-inputs (list r-knitr)) (home-page "https://github.com/JiaxiangBU/add2ggplot") (synopsis "Extension for ggplot2") - (description "This packages provides tools to create themes and color + (description "This package provides tools to create themes and color palettes for the package ggplot2.") (license license:expat))) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 136e5fe727..7301084382 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -12781,7 +12781,7 @@ const functions with conditional compilations.") (home-page "https://github.com/RustCrypto/formats/tree/master/const-oid") (synopsis "Implementation of the ISO/IEC Object Identifier (OID)") (description - "This packages is a const-friendly implementation of the ISO/IEC Object + "This package is a const-friendly implementation of the ISO/IEC Object Identifier (OID) standard as defined in ITU X.660, with support for BER/DER encoding/decoding as well as heapless no_std (i.e., embedded) support.") (license (list license:asl2.0 license:expat)))) @@ -41728,7 +41728,7 @@ PEM-encoded data.") (synopsis "PEM Encoding implementing a subset of Privacy-Enhanced Mail encoding") (description - "This packages provides PEM Encoding (RFC 7468) for PKIX, PKCS, and CMS + "This package provides PEM Encoding (RFC 7468) for PKIX, PKCS, and CMS Structures, implementing a strict subset of the original Privacy-Enhanced Mail encoding intended specifically for use with cryptographic keys, certificates, and other messages. It provides a no_std-friendly, constant-time @@ -52866,7 +52866,7 @@ clean}.") (home-page "https://github.com/RustCrypto/password-hashes") (synopsis "Scrypt password-based key derivation function") (description - "This packages provides a Scrypt password-based key derivation + "This package provides a Scrypt password-based key derivation function.") (license (list license:expat license:asl2.0)))) From 1f29ed4a812f86c45e2d9c37fd9f80f6d0418293 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Thu, 26 May 2022 08:10:01 +0300 Subject: [PATCH 348/363] services: ssh: Fix extend-openssh-authorized-keys. Fixes #55359. * gnu/services/ssh.scm (extend-openssh-authorized-keys): Use KEYS argument. --- gnu/services/ssh.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index be5d029374..95646ac033 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -571,7 +571,7 @@ of user-name/file-like tuples." (openssh-configuration (inherit config) (authorized-keys - (match (openssh-configuration-authorized-keys config) + (match (append (openssh-configuration-authorized-keys config) keys) (((users _ ...) ...) ;; Build a user/key-list mapping. (let ((user-keys (alist->vhash From 8dc47f9ee4f471cf4c2499bfbd90d281ba5c5368 Mon Sep 17 00:00:00 2001 From: Roman Riabenko Date: Tue, 24 May 2022 09:25:24 +0300 Subject: [PATCH 349/363] gnu: robotfindskitten: Fix typo in description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/games.scm (robotfindskitten)[description]: Use correct spelling of “humorously”. --- gnu/packages/games.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 2fb772bbe4..3e4369f474 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2283,7 +2283,7 @@ utilizing the art assets from the @code{SuperTux} project.") (synopsis "Thematic meditative game") (description "You are a robot moving around in a realm filled with ASCII characters. -Examine humourously described though useless items as you search for a kitten +Examine humorously described though useless items as you search for a kitten among them. The theme of this Zen simulation is continued in its documentation.") (home-page "http://robotfindskitten.org/") From 4e13ee4b573f1829fbf41147febac9ca8b919034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 25 May 2022 23:32:21 +0200 Subject: [PATCH 350/363] guix package: Sort search results by package version. Fixes . Reported by Greg Hogan . * guix/scripts/package.scm (find-packages-by-description): When PACKAGE1 and PACKAGE2 have the same name, sort by version. --- guix/scripts/package.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 4673cf18b2..99a6cfaa29 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -204,8 +204,12 @@ non-zero relevance score." (match m2 ((package2 . score2) (if (= score1 score2) - (string>? (package-full-name package1) - (package-full-name package2)) + (if (string=? (package-name package1) + (package-name package2)) + (version>? (package-version package1) + (package-version package2)) + (string>? (package-name package1) + (package-name package2))) (> score1 score2)))))))))) (define (transaction-upgrade-entry store entry transaction) From dcb7ce1eb6911f9d503e7cd2bfe380058cee956b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2022 00:11:45 +0200 Subject: [PATCH 351/363] gnu: cuirass: Depend on an older Guix snapshot. Works around . * gnu/packages/package-management.scm (guix-for-cuirass): New variable. * gnu/packages/ci.scm (cuirass)[inputs]: Use it. --- gnu/packages/ci.scm | 9 ++++++++- gnu/packages/package-management.scm | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index ab421fe870..9cd2f6884e 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -164,7 +164,14 @@ ;; FIXME: this is propagated by "guile-git", but it needs to be among ;; the inputs to add it to GUILE_LOAD_PATH. guile-bytestructures - guix)) + + ;; FIXME: The 'cuirass evaluate' command is multithreaded, but it + ;; uses 'open-inferior', which calls 'primitive-fork', thus + ;; potentially creating child processes that deadlock. To work + ;; around that, use the last revision of Guix where + ;; 'open-inferior' was using 'open-pipe*' rather than + ;; 'primitive-fork'. See . + guix-for-cuirass)) (native-inputs (list autoconf automake pkg-config texinfo ephemeralpg)) (native-search-paths diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 619458a0d3..16ad4fe9db 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -489,6 +489,30 @@ the Nix package manager.") (license license:gpl3+) (properties '((ftp-server . "alpha.gnu.org")))))) +(define-public guix-for-cuirass + ;; Known-good revision before commit + ;; bd86bbd300474204878e927f6cd3f0defa1662a5, which introduced + ;; 'primitive-fork' in 'open-inferior'. + (let ((version "1.3.0") + (commit "a27e47f9d1e22dc32bb250cfeef88cfacb930e23") + (revision 23)) + (package + (inherit guix) + (version (string-append version "-" + (number->string revision) + "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/guix.git") + (commit commit))) + (sha256 + (base32 + "12jmvagbw05hmmlrb82i0qazhlv7mcfnl4dmknwx3a9hd760g9y1")) + (file-name (string-append "guix-" version "-checkout")))) + (properties `((hidden? . #t) + ,@(package-properties guix)))))) + (define-public guix-daemon ;; This package is for internal consumption: it allows us to quickly build ;; the 'guix-daemon' program and use that in (guix self), used by 'guix From 98a6642298be6663b9d318b7dea46d1dba275839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2022 00:14:29 +0200 Subject: [PATCH 352/363] cuirass: Fork inferior processes before creating threads. Works around . Start from commit bd86bbd300474204878e927f6cd3f0defa1662a5, 'open-inferior' uses 'primitive-fork' instead of 'open-pipe*'. As a result, child process could potentially hang before calling 'execl' due to undefined behavior when forking a multi-threaded process. * build-aux/cuirass/evaluate.scm : Call 'open-inferior' before 'n-par-for-each'. --- build-aux/cuirass/evaluate.scm | 53 +++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/build-aux/cuirass/evaluate.scm b/build-aux/cuirass/evaluate.scm index 0bd9e2481f..5beac1b37c 100644 --- a/build-aux/cuirass/evaluate.scm +++ b/build-aux/cuirass/evaluate.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2018, 2020 Ludovic Courtès +;;; Copyright © 2016-2018, 2020, 2022 Ludovic Courtès ;;; Copyright © 2017 Jan Nieuwenhuizen ;;; Copyright © 2021 Mathieu Othacehe ;;; @@ -78,29 +78,34 @@ ;; up the evaluation speed as the evaluations can be performed ;; concurrently. It also decreases the amount of memory needed per ;; evaluation process. - (n-par-for-each - (/ (current-processor-count) 2) - (lambda (system) - (with-store store - (let ((inferior - (open-inferior (derivation->output-path derivation))) - (channels (map channel-instance->sexp instances))) - (inferior-eval '(use-modules (gnu ci)) inferior) - (let ((jobs - (inferior-eval-with-store - inferior store - `(lambda (store) - (cuirass-jobs store - '((subset . all) - (systems . ,(list system)) - (channels . ,channels)))))) - (file - (string-append directory "/jobs-" system ".scm"))) - (close-inferior inferior) - (call-with-output-file file - (lambda (port) - (write jobs port))))))) - %cuirass-supported-systems)))))) + ;; + ;; Fork inferior processes upfront before we have created any + ;; threads. + (let ((inferiors (map (lambda _ + (open-inferior (derivation->output-path derivation))) + %cuirass-supported-systems))) + (n-par-for-each + (/ (current-processor-count) 2) + (lambda (system inferior) + (with-store store + (let ((channels (map channel-instance->sexp instances))) + (inferior-eval '(use-modules (gnu ci)) inferior) + (let ((jobs + (inferior-eval-with-store + inferior store + `(lambda (store) + (cuirass-jobs store + '((subset . all) + (systems . ,(list system)) + (channels . ,channels)))))) + (file + (string-append directory "/jobs-" system ".scm"))) + (close-inferior inferior) + (call-with-output-file file + (lambda (port) + (write jobs port))))))) + %cuirass-supported-systems + inferiors))))))) (x (format (current-error-port) "Wrong command: ~a~%." x) (exit 1))) From d90bd5642a3663cc7d5124068fadbf8fa28b3207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2022 00:17:56 +0200 Subject: [PATCH 353/363] cuirass: Create just as many threads as needed. * build-aux/cuirass/evaluate.scm (command-line): Change second argument to 'n-par-for-each'. --- build-aux/cuirass/evaluate.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build-aux/cuirass/evaluate.scm b/build-aux/cuirass/evaluate.scm index 5beac1b37c..7ae5c266d1 100644 --- a/build-aux/cuirass/evaluate.scm +++ b/build-aux/cuirass/evaluate.scm @@ -85,7 +85,8 @@ (open-inferior (derivation->output-path derivation))) %cuirass-supported-systems))) (n-par-for-each - (/ (current-processor-count) 2) + (min (length %cuirass-supported-systems) + (current-processor-count)) (lambda (system inferior) (with-store store (let ((channels (map channel-instance->sexp instances))) From 2262ee2c63fd92a17836ff7450623db76ed39d92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2022 12:22:59 +0200 Subject: [PATCH 354/363] gnu: linux-libre: Do not call 'configuration-file' on non-Linux targets. Starting from commit b55310603f0df7d5ae02d47cb8d4be58bf1d41ca, a command like: guix build linux-libre -s i586-gnu -n would crash on a wrong-type-arg error in 'kernel-config' because it was getting #f as the 'arch' argument. This commit fixes it. * gnu/packages/linux.scm (make-linux-libre*)[inputs]: Check whether 'platform-linux-architecture' returns #f, as is the case for example on i586-gnu, before calling CONFIGURATION-FILE. --- gnu/packages/linux.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index bd24fce432..18bd229dcf 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -793,12 +793,14 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." ("mpfr" ,mpfr) ("mpc" ,mpc) - ,@(match (and configuration-file - (configuration-file - (platform-linux-architecture - (lookup-platform-by-target-or-system - (or (%current-target-system) (%current-system)))) - #:variant (version-major+minor version))) + ,@(match (let ((arch (platform-linux-architecture + (lookup-platform-by-target-or-system + (or (%current-target-system) + (%current-system)))))) + (and configuration-file arch + (configuration-file + arch + #:variant (version-major+minor version)))) (#f ;no config for this platform '()) ((? string? config) From 5645307ffb524558ec5c48c1d23d151bf60a15a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2022 13:17:41 +0200 Subject: [PATCH 355/363] gnu: guile-emacs: Use gexps. This is a followup to 64557bc695f074af3fcf1eeed8f6696921ef18c5. * gnu/packages/emacs.scm (guile-emacs)[arguments]: Use gexps. --- gnu/packages/emacs.scm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index a5d246f7a5..3b68de977a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2021 Ludovic Courtès +;;; Copyright © 2013-2017, 2019, 2021-2022 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver @@ -474,18 +474,18 @@ editor (with wide ints)" ) #:tests? #f ,@(package-arguments emacs)) ((#:configure-flags flags ''()) - `(delete "--with-cairo" ,flags)) + #~(delete "--with-cairo" #$flags)) ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'autogen - (lambda _ - (invoke "sh" "autogen.sh"))) - ;; Build sometimes fails: deps/dispnew.d: No such file or directory - (add-before 'build 'make-deps-dir - (lambda _ - (invoke "mkdir" "-p" "src/deps"))) - (delete 'restore-emacs-pdmp) - (delete 'strip-double-wrap)))))))) + #~(modify-phases #$phases + (add-after 'unpack 'autogen + (lambda _ + (invoke "sh" "autogen.sh"))) + ;; Build sometimes fails: deps/dispnew.d: No such file or directory + (add-before 'build 'make-deps-dir + (lambda _ + (invoke "mkdir" "-p" "src/deps"))) + (delete 'restore-emacs-pdmp) + (delete 'strip-double-wrap)))))))) (define-public m17n-db (package From 6b819f82857c5c2515d579dce94e89ea7d8547fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2022 13:19:42 +0200 Subject: [PATCH 356/363] gnu: guile-emacs: Remove input labels. * gnu/packages/emacs.scm (guile-emacs)[native-inputs]: Remove labels. --- gnu/packages/emacs.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3b68de977a..78560b477d 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -463,10 +463,8 @@ editor (with wide ints)" ) (base32 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6")))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("guile" ,guile-for-guile-emacs) - ,@(package-native-inputs emacs))) + (modify-inputs (package-native-inputs emacs) + (prepend autoconf automake guile-for-guile-emacs))) (arguments (substitute-keyword-arguments `(;; Build fails if we allow parallel build. #:parallel-build? #f From 5a29cc9adea70d58f45bff974627a4c691df982e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 24 May 2022 17:12:46 +0200 Subject: [PATCH 357/363] gnu: vlc: Update to 3.0.17.3. * gnu/packages/video.scm (vlc): Update to 3.0.17.3. --- 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 2329746d55..61f8bd924d 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1884,7 +1884,7 @@ videoformats depend on the configuration flags of ffmpeg.") (define-public vlc (package (name "vlc") - (version "3.0.16") + (version "3.0.17.3") (source (origin (method url-fetch) (uri (string-append @@ -1893,7 +1893,7 @@ videoformats depend on the configuration flags of ffmpeg.") "/vlc-" version ".tar.xz")) (sha256 (base32 - "1xhhjhwihkz74dag25r5fscvw1v2byy4c8qxaxsw29gncky3bbpz")))) + "0510vqf35f0v9c498yki5441aig3fdqq3nv4vsb1vlvki7pr0zkg")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) From dcae16e50bbb5b2c30bc4ac17450c6eec53372ed Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 26 May 2022 12:35:46 +0200 Subject: [PATCH 358/363] gnu: ungoogled-chromium: Update to 102.0.5005.61-1. * gnu/packages/chromium.scm (%preserved-third-party-files): Adjust for M102. (%chromium-version): Set to 102.0.5005.61. (%debian-revision): Set to debian/102.0.5005.61. (%ungoogled-origin): Update hash. (%debian-origin): New variable. (debian-patch): Rewrite to take from %DEBIAN-ORIGIN. (%debian-patches): Add three more patches. (%ungoogled-chromium-unroll-ffmpeg.patch): New variable. (ungoogled-chromium-snippet): Apply the above patch. (ungoogled-chromium)[source]: Update hash. [arguments]: Disable building Dawn tests; remove obsolete configure flag. Disable compiler flags that are not supported by Clang 14. --- gnu/packages/chromium.scm | 81 +++++++++++++++++++++++++++------------ 1 file changed, 57 insertions(+), 24 deletions(-) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index f9fbf6b700..4c62acd2b5 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -131,7 +131,7 @@ "third_party/dawn" ;ASL2.0 ;; TODO: can likely be unbundled when Vulkan is updated. "third_party/dawn/third_party/khronos" ;ASL2.0 - "third_party/dawn/third_party/tint" ;ASL2.0 + "third_party/dawn/third_party/gn/webgpu-cts" ;BSD-3 "third_party/depot_tools/owners.py" ;BSD-3 "third_party/devtools-frontend" ;BSD-3 "third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat @@ -175,7 +175,6 @@ "third_party/khronos" ;Expat, SGI "third_party/leveldatabase" ;BSD-3 "third_party/libavif" ;BSD-2 - "third_party/libXNVCtrl" ;Expat "third_party/libaddressinput" ;ASL2.0 "third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0" "third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3 @@ -260,13 +259,13 @@ "third_party/swiftshader/third_party/marl" ;ASL2.0 "third_party/swiftshader/third_party/subzero" ;NCSA "third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style + "third_party/swiftshader/third_party/SPIRV-Tools" ;ASL2.0 "third_party/tensorflow-text" ;ASL2.0 "third_party/tflite" ;ASL2.0 "third_party/tflite/src/third_party/eigen3" ;MPL2.0 "third_party/tflite/src/third_party/fft2d" ;ASL2.0 "third_party/ukey2" ;ASL2.0 "third_party/usb_ids" ;BSD-3 - "third_party/usrsctp" ;BSD-2 "third_party/utf" ;Expat "third_party/vulkan-deps" ;ASL2.0, BSD-3, Expat "third_party/vulkan_memory_allocator" ;Expat @@ -313,9 +312,9 @@ ;; run the Blink performance tests, just remove everything to save ~70MiB. '("third_party/blink/perf_tests")) -(define %chromium-version "101.0.4951.64") +(define %chromium-version "102.0.5005.61") (define %ungoogled-revision (string-append %chromium-version "-1")) -(define %debian-revision "debian/101.0.4951.41-2") +(define %debian-revision "debian/102.0.5005.61-1") (define %ungoogled-origin (origin @@ -325,27 +324,48 @@ (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (sha256 (base32 - "0k7w6xvjf1yzyak9ywvcdw762d8zbx6d8haz35q87jz0mxfn2mr3")))) + "1hlyi6k894blkkqmqsizx72bag2vj6wlpza0fvi8db5wp6i5b58g")))) -(define* (debian-patch name hash #:optional (revision %debian-revision)) +(define %debian-origin (origin - (method url-fetch) - (uri (string-append "https://salsa.debian.org/chromium-team/chromium/-/raw/" - revision "/debian/patches/" name)) - (file-name (match (string-split name #\/) - ((category name) - (string-append "ungoogled-chromium-" category "-" name)))) - (sha256 (base32 hash)))) + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/chromium-team/chromium.git") + (commit %debian-revision))) + (file-name (git-file-name "debian-chromium-patches" + (match (string-split %debian-revision #\/) + ((_ version) version)))) + (sha256 + (base32 + "1ln6r1qzlr7dsgvcbssvvc34my4mpkwv9hmvlb2dhjncs7isp65j")))) + +(define (debian-patch name) + (computed-file + (basename name) + #~(symlink (string-append #$%debian-origin "/debian/patches/" #$name) + #$output))) (define %debian-patches - (list (debian-patch "upstream/libxml.patch" - "0fnmidh3sbmi4khw25rpqpd4i9kj8rb42s40n242h55z30hc36qr") - (debian-patch "system/jsoncpp.patch" - "092jkvbkiw474lin62hbkv5vm251qpg0vz3j2qwavqln7qv6mcw1") - (debian-patch "system/zlib.patch" - "1iw4k8in5j6a1qxf12qd5z3sjayvnh5sq5z3qqg8m3cp0v4p947r") - (debian-patch "system/openjpeg.patch" - "1dq4zffhjahw8yd5w7d0zzvjpdb5dzhyfd4icjflrdb7fyf5ykc2"))) + (map debian-patch + '("upstream/libxml.patch" + "upstream/dawn-version-fix.patch" + "upstream/blink-ftbfs.patch" + "upstream/nested-nested-nested-nested-nested-nested-regex-patterns.patch" + "system/jsoncpp.patch" + "system/zlib.patch" + "system/openjpeg.patch"))) + +;; Take a patch from Arch that reverts a change which requires an unreleased +;; version of ffmpeg. +(define %ungoogled-chromium-unroll-ffmpeg.patch + (origin + (method url-fetch) + (uri "https://raw.githubusercontent.com/archlinux/svntogit-packages\ +/f3225f99b900e11ac900725992ea883142d7309c/trunk/roll-src-third_party-ffmpeg.patch") + (file-name "ungoogled-chromium-unroll-ffmpeg.patch") + (sha256 + (base32 + "0i7crn6fcwq09kd6a4smqnffaldyv61lmv2p0drcnpfrwalmkprh")))) (define %guix-patches (list (local-file @@ -387,6 +407,9 @@ patch "--no-backup-if-mismatch")) (append '#+%debian-patches '#+%guix-patches)) + (invoke "patch" "-Rp1" "--force" "--input" "--no-backup-if-mismatch" + "--input" #$%ungoogled-chromium-unroll-ffmpeg.patch) + (with-directory-excursion #+%ungoogled-origin (format #t "Ungooglifying...~%") (force-output) @@ -454,7 +477,7 @@ %chromium-version ".tar.xz")) (sha256 (base32 - "1xyqm32y9v1hn8ji6qfw6maynqgg3266j58dq4x4aqsm2gj9cn4w")) + "07vbi3gn9g4n04b2qi2hm34r122snrqaifa46yk3pyh1d79rfdqs")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) @@ -500,6 +523,8 @@ "build_with_tflite_lib=false" ;; Avoid dependency on code formatting tools. "blink_enable_generated_code_formatting=false" + ;; Don't bother building Dawn tests. + "build_dawn_tests=false" ;; Define a custom toolchain that simply looks up CC, AR and ;; friends from the environment. @@ -560,7 +585,6 @@ "rtc_build_libvpx=true" "rtc_build_opus=false" "rtc_build_libsrtp=true" ;FIXME: fails to find headers - "rtc_build_usrsctp=true" ;TODO: package this "rtc_build_ssl=true") ;XXX: requires BoringSSL #:phases #~(modify-phases %standard-phases @@ -702,6 +726,15 @@ (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm") (setenv "CC" "clang") (setenv "CXX" "clang++") + ;; Disable compiler flags that require Clang 15. + (substitute* "build/config/compiler/BUILD.gn" + (("\"-no-opaque-pointers\",") + "") + (("\"-Wno-unqualified-std-cast-call\"") + "") + (("\"-Wno-deprecated-non-prototype\"") + "")) + ;; TODO: pre-compile instead. Avoids a race condition. (setenv "PYTHONDONTWRITEBYTECODE" "1") From a8f402370555c8437e1e239292fb00a64f9a07d5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 26 May 2022 16:30:28 +0300 Subject: [PATCH 359/363] gnu: qutebrowser: Update to 2.5.1. * gnu/packages/web-browsers.scm (qutebrowser): Update to 2.5.1. [inputs]: Remove python-cssutils and python-pypeg2. --- gnu/packages/web-browsers.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 198d289ef3..31504fe2af 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -466,7 +466,7 @@ interface.") (define-public qutebrowser (package (name "qutebrowser") - (version "2.4.0") + (version "2.5.1") (source (origin (method url-fetch) @@ -474,18 +474,16 @@ interface.") "qutebrowser/releases/download/v" version "/" "qutebrowser-" version ".tar.gz")) (sha256 - (base32 "1v4jhlmgfm8v9sbf7i3xg1vjh6dy8y2gpckk0mizkazb2jxrmkgj")))) + (base32 "1g7dfrnjgifvbmz1523iq9qxhrsciajr8dv3pak6dlacm235i276")))) (build-system python-build-system) (native-inputs (list python-attrs)) ; for tests (inputs (list bash-minimal python-colorama - python-cssutils python-jinja2 python-markupsafe python-pygments - python-pypeg2 python-pyyaml ;; FIXME: python-pyqtwebengine needs to come before python-pyqt so ;; that it's __init__.py is used first. From 7fb0207aa22330b80294bb5d49fb6907458ce5a0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 26 May 2022 16:42:30 +0300 Subject: [PATCH 360/363] gnu: qutebrowser: Install more scripts. * gnu/packages/web-browsers.scm (qutebrowser)[arguments]: Rewrite cutsom 'install-more phase to use included makefile. --- gnu/packages/web-browsers.scm | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 31504fe2af..b12582dfed 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -504,25 +504,12 @@ interface.") (setenv "QT_QPA_PLATFORM" "offscreen"))) (add-after 'install 'install-more (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (app (string-append out "/share/applications")) - (hicolor (string-append out "/share/icons/hicolor"))) - (install-file "doc/qutebrowser.1" - (string-append out "/share/man/man1")) - (for-each - (lambda (i) - (let ((src (format #f "icons/qutebrowser-~dx~d.png" i i)) - (dest (format #f "~a/~dx~d/apps/qutebrowser.png" - hicolor i i))) - (mkdir-p (dirname dest)) - (copy-file src dest))) - '(16 24 32 48 64 128 256 512)) - (install-file "icons/qutebrowser.svg" - (string-append hicolor "/scalable/apps")) - (substitute* "misc/org.qutebrowser.qutebrowser.desktop" - (("Exec=qutebrowser") - (string-append "Exec=" out "/bin/qutebrowser"))) - (install-file "misc/org.qutebrowser.qutebrowser.desktop" app)))) + (let ((out (assoc-ref outputs "out"))) + (rename-file "misc/Makefile" "Makefile") + (substitute* "Makefile" + ((".*setup\\.py.*") "")) + (invoke "make" "install" (string-append "PREFIX=" out)) + (delete-file-recursively (string-append out "/share/metainfo"))))) (add-after 'wrap 'wrap-qt-process-path (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) From 2b8d715da510357e9386ceaf15371c99019ce596 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 26 May 2022 17:28:04 +0300 Subject: [PATCH 361/363] gnu: qutebrowser: Find and wrap scripts. * gnu/packages/web-browsers.scm (qutebrowser)[inputs]: Add python-pynacl. [arguments]: Add custom phase to tell qutebrowser where to find installed userscripts. Add custom phase to wrap scripts with python libraries. --- gnu/packages/web-browsers.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index b12582dfed..01d71324ba 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -88,6 +88,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) @@ -484,6 +485,7 @@ interface.") python-jinja2 python-markupsafe python-pygments + python-pynacl python-pyyaml ;; FIXME: python-pyqtwebengine needs to come before python-pyqt so ;; that it's __init__.py is used first. @@ -499,6 +501,13 @@ interface.") #:tests? #f #:phases (modify-phases %standard-phases + (add-after 'unpack 'find-userscripts + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "qutebrowser/commands/userscripts.py" + (("os.path.join.*system=True)") + (string-append "os.path.join(\"" + (assoc-ref outputs "out") + "\", \"share\", \"qutebrowser\""))))) (add-before 'check 'set-env-offscreen (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen"))) @@ -510,6 +519,24 @@ interface.") ((".*setup\\.py.*") "")) (invoke "make" "install" (string-append "PREFIX=" out)) (delete-file-recursively (string-append out "/share/metainfo"))))) + (add-after 'install-more 'wrap-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (python (assoc-ref inputs "python")) + (path (string-append out "/lib/python" + ,(version-major+minor (package-version + python)) + "/site-packages:" + (getenv "GUIX_PYTHONPATH")))) + (for-each + (lambda (file) + (wrap-program file + `("GUIX_PYTHONPATH" ":" prefix (,path)))) + (append + (find-files + (string-append out "/share/qutebrowser/scripts") "\\.py$") + (find-files + (string-append out "/share/qutebrowser/userscripts"))))))) (add-after 'wrap 'wrap-qt-process-path (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) From 0dc63ce519c5f98b2186d1871176e2fac3a6926b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2022 16:38:51 +0200 Subject: [PATCH 362/363] services: openssh: Fix computation of the authorized-key directory. Fixes a bug introduced in 1f29ed4a812f86c45e2d9c37fd9f80f6d0418293, whereby 'authorized-key-directory' would end up creating empty files for authorized keys passed as an extension. See . * gnu/services/ssh.scm (extend-openssh-authorized-keys): Call 'alist->vhash' on the alist resulting from the 'append' call. --- gnu/services/ssh.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 95646ac033..aa024599a1 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -572,10 +572,9 @@ of user-name/file-like tuples." (inherit config) (authorized-keys (match (append (openssh-configuration-authorized-keys config) keys) - (((users _ ...) ...) + ((and alist ((users _ ...) ...)) ;; Build a user/key-list mapping. - (let ((user-keys (alist->vhash - (openssh-configuration-authorized-keys config)))) + (let ((user-keys (alist->vhash alist))) ;; Coalesce the key lists associated with each user. (map (lambda (user) `(,user From 4577f3c6b60ea100e521c246fb169d6c05214b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2022 17:00:33 +0200 Subject: [PATCH 363/363] services: openssh: Remove authorized_keys.d before copying the new one. Fixes . * gnu/services/ssh.scm (openssh-activation): Fix typo in 'delete-file-recursively' call. --- gnu/services/ssh.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index aa024599a1..57d3ad218c 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -394,7 +394,7 @@ The other options should be self-descriptive." ;; authorized-key directory to /etc. (catch 'system-error (lambda () - (delete-file-recursively "/etc/authorized_keys.d")) + (delete-file-recursively "/etc/ssh/authorized_keys.d")) (lambda args (unless (= ENOENT (system-error-errno args)) (apply throw args))))