From 3080abba40c819933d1857abe4abaaa3cf65baab Mon Sep 17 00:00:00 2001 From: Kaelyn Takata Date: Sat, 16 Dec 2023 01:00:51 +0000 Subject: [PATCH 001/158] gnu: xorgproto: Update to 2023.2. * gnu/packages/xorg.scm (xorgproto): Update to 2023.2. Change-Id: Ie0e4712e4ec3fe9620d160bedcfe74452fa6ae5d Signed-off-by: John Kehayias --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 382075237a..723b3e0c4e 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -245,14 +245,14 @@ which can be read by any architecture.") (define-public xorgproto (package (name "xorgproto") - (version "2022.2") + (version "2023.2") (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/proto" "/xorgproto-" version ".tar.xz")) (sha256 (base32 - "17kbq1x68jl9mz69ays5c0w72lpkqi937raxk0im7y88pvrdn4sx")))) + "0b4c27aq25w1fccks49p020avf9jzh75kaq5qwnww51bp1yvq7xn")))) (build-system gnu-build-system) (propagated-inputs ;; To get util-macros in (almost?) all package inputs. From 158502e40d800407f1bd697dd5dd0437086730bf Mon Sep 17 00:00:00 2001 From: Kaelyn Takata Date: Sat, 16 Dec 2023 01:00:57 +0000 Subject: [PATCH 002/158] gnu: xorg-server-xwayland: Update to 23.2.3 [security fixes]. Fixes CVE-2023-5367 and CVE-2023-5380. See the X.Org security advisory for more information. Also fixes CVE-2023-6377 and CVE-2023-6478. See the X.Org security advisory for more information. * gnu/packages/xorg.scm (xorg-server-xwayland): Update to 23.2.3. [inputs]: Add libxcvt. [properties]: Set upstream-name. Change-Id: I05427b1d93d07a4210466f290621c1ca5effb4af Signed-off-by: John Kehayias --- gnu/packages/xorg.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 723b3e0c4e..a761fb2fbd 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5250,7 +5250,7 @@ EGLStream families of extensions.") (define-public xorg-server-xwayland (package (name "xorg-server-xwayland") - (version "21.1.3") + (version "23.2.3") (source (origin (method url-fetch) @@ -5258,7 +5258,7 @@ EGLStream families of extensions.") "/xserver/xwayland-" version ".tar.xz")) (sha256 (base32 - "18pqvg76grbsyxa3mm3j06i1l8cwb28nbn2gcnqpsk7x75zpbhpb")))) + "00p30yyikh7h9xsqgir66xb06pspgjlibv1mi0n42irc4fkrm7gb")))) (inputs (list font-dejavu dbus egl-wayland @@ -5268,6 +5268,7 @@ EGLStream families of extensions.") libepoxy libgcrypt libtirpc + libxcvt libxfont2 libxkbfile pixman @@ -5283,6 +5284,7 @@ EGLStream families of extensions.") wayland wayland-protocols) '()))) + (properties '((upstream-name . "xwayland"))) (build-system meson-build-system) (arguments `(#:configure-flags From bc7713fa8878ab8a2158c8660d9b2bbb8fb2f77e Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Sun, 17 Dec 2023 01:11:32 -0500 Subject: [PATCH 003/158] gnu: curl: Update to 8.5.0 [security fixes]. Fixes CVE-2023-46218 and CVE-2023-46219. See and respectively. * gnu/packages/curl.scm (curl): Update to 8.5.0. * gnu/packages/patches/curl-use-ssl-cert-env.patch: Update patch. Change-Id: Iaa6aa5de0f45576dc06bf5eca1eec502e5c83332 --- gnu/packages/curl.scm | 11 +++++--- .../patches/curl-use-ssl-cert-env.patch | 26 +++++++++---------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index b33f4d36d4..0bf6d996e6 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -65,14 +65,14 @@ (define-public curl (package (name "curl") - (version "8.4.0") + (version "8.5.0") (source (origin (method url-fetch) (uri (string-append "https://curl.se/download/curl-" version ".tar.xz")) (sha256 (base32 - "0bd8y8v66biyqvg70ka1sdd0aixs6yzpnvfsig907xzh9af2mihn")) + "1sqfflilf7mcz1g03lazyr6v6pf1rsrzprrknsir10hdwawqvas2")) (patches (search-patches "curl-use-ssl-cert-env.patch")))) (build-system gnu-build-system) (outputs '("out" @@ -127,6 +127,9 @@ (if parallel-tests? (number->string (parallel-job-count)) "1"))) + ;; Ignore test 1477 due to a missing file in the 8.5.0 + ;; release. See + ;; . (arguments `("-C" "tests" "test" ,@make-flags ,(if #$(or (system-hurd?) @@ -134,8 +137,10 @@ (target-aarch64?)) ;; protocol FAIL (string-append "TFLAGS=\"~1474 " + "~1477 " job-count "\"") - (string-append "TFLAGS=" job-count))))) + (string-append "TFLAGS=\"~1477 " + job-count "\""))))) ;; The top-level "make check" does "make -C tests quiet-test", which ;; is too quiet. Use the "test" target instead, which is more ;; verbose. diff --git a/gnu/packages/patches/curl-use-ssl-cert-env.patch b/gnu/packages/patches/curl-use-ssl-cert-env.patch index 24be6e31d9..c39c1f7e98 100644 --- a/gnu/packages/patches/curl-use-ssl-cert-env.patch +++ b/gnu/packages/patches/curl-use-ssl-cert-env.patch @@ -5,37 +5,37 @@ must be called when no other threads exist). This fixes network functionality in rust:cargo, and probably removes the need for other future workarounds. =================================================================== ---- curl-7.66.0.orig/lib/easy.c 2020-01-02 15:43:11.883921171 +0100 -+++ curl-7.66.0/lib/easy.c 2020-01-02 16:18:54.691882797 +0100 -@@ -134,6 +134,9 @@ - # pragma warning(default:4232) /* MSVC extension, dllimport identity */ +--- curl-8.5.0.orig/lib/easy.c 2023-12-17 00:36:32.400468561 -0500 ++++ curl-8.5.0/lib/easy.c 2023-12-17 00:39:08.898612331 -0500 +@@ -137,6 +137,9 @@ + static char *leakpointer; #endif - + +char * Curl_ssl_cert_dir = NULL; +char * Curl_ssl_cert_file = NULL; + /** * curl_global_init() globally initializes curl given a bitwise set of the * different features of what to initialize. -@@ -155,6 +158,9 @@ - #endif +@@ -163,6 +166,9 @@ + goto fail; } - + + Curl_ssl_cert_dir = curl_getenv("SSL_CERT_DIR"); + Curl_ssl_cert_file = curl_getenv("SSL_CERT_FILE"); + if(!Curl_ssl_init()) { DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n")); - return CURLE_FAILED_INIT; -@@ -260,6 +266,9 @@ + goto fail; +@@ -287,6 +293,9 @@ Curl_ssl_cleanup(); Curl_resolver_global_cleanup(); - + + free(Curl_ssl_cert_dir); + free(Curl_ssl_cert_file); + - #ifdef WIN32 - Curl_win32_cleanup(init_flags); + #ifdef _WIN32 + Curl_win32_cleanup(easy_init_flags); #endif diff -ur curl-7.66.0.orig/lib/url.c curl-7.66.0/lib/url.c --- curl-7.66.0.orig/lib/url.c 2020-01-02 15:43:11.883921171 +0100 From 1b0e216ad68cf5a893d4007d1373cdc30c820df6 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Sun, 17 Dec 2023 01:12:45 -0500 Subject: [PATCH 004/158] gnu: mesa: Update to 23.3.1. * gnu/packages/gl.scm (mesa): Update to 23.3.1. Change-Id: Idf4393b4fa5b7df7a78bd88d7591385023460b5b --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index c02a6f0a84..b8827de85e 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -267,7 +267,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "23.2.1") + (version "23.3.1") (source (origin (method url-fetch) @@ -277,7 +277,7 @@ also known as DXTn or DXTC) for Mesa.") "mesa-" version ".tar.xz"))) (sha256 (base32 - "1k61pgw0vcjrlb4299q98cy7iqmk2r7jmb5ika91z01dzhb0dpk4")))) + "1rhxnifvzf168lys0qq6by1xrzs15q6climjzq7z5czxf1ni4j3f")))) (build-system meson-build-system) (propagated-inputs ;; The following are in the Requires.private field of gl.pc. From d55a4431f3d2b2d61a5b505a8cbbb4cbbd7a8090 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Mon, 18 Dec 2023 18:37:11 -0500 Subject: [PATCH 005/158] gnu: gtk: Skip failing test. The 'gtk:tools / validate' test started failing for unknown reasons after updating mesa to 23.3.1 and xorgproto to 2023.2. Skip for now. * gnu/packages/gtk.scm (gtk)[arguments]{phases}: Skip the 'gtk:tools / validate' test using the 'patch' phase. Change-Id: I7d0a459c0cbbb979f4589f929eb637f00f642225 --- gnu/packages/gtk.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index cc33c9f672..1a3bb56945 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1178,7 +1178,11 @@ application suites.") ;; The unaligned-offscreen test fails for unknown reasons, also ;; on different distributions (see: ;; https://gitlab.gnome.org/GNOME/gtk/-/issues/4889). - ((" 'unaligned-offscreen',") "")) + ((" 'unaligned-offscreen',") "") + ;; This test, 'gtk:tools / validate', started failing for + ;; unknown reasons after updating mesa to 23.3.1 and xorgproto + ;; to 2023.2. + ((" 'validate',") "")) (substitute* "testsuite/reftests/meson.build" (("[ \t]*'label-wrap-justify.ui',") "") ;; The inscription-markup.ui fails due to /etc/machine-id From ebd3b3e9020f978e65f7be7f4eb0ffff9bbca31f Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Mon, 18 Dec 2023 18:49:40 -0500 Subject: [PATCH 006/158] gnu: mesa: Enable zink support. * gnu/packages/gl.scm (mesa)[arguments]: Add zink to gallium-drivers in configure-flags. Change-Id: I1fc7e38a8307b589a7c48bc0b923fccd9ffcd8b8 --- gnu/packages/gl.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index b8827de85e..8c5e61dfd2 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -324,16 +324,16 @@ also known as DXTn or DXTC) for Mesa.") ((target-aarch64?) ;; TODO: Fix svga driver for non-Intel architectures. '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\ -panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl")) +panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl,zink")) ((target-arm32?) ;; Freedreno FTBFS when built on a 64-bit machine. '("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,\ -r300,r600,swrast,tegra,v3d,vc4,virgl")) +r300,r600,swrast,tegra,v3d,vc4,virgl,zink")) ((or (target-ppc64le?) (target-ppc32?) (target-riscv64?)) - '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl")) + '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl,zink")) (else '("-Dgallium-drivers=crocus,iris,nouveau,r300,r600,radeonsi,\ -svga,swrast,virgl"))) +svga,swrast,virgl,zink"))) ;; Enable various optional features. TODO: opencl requires libclc, ;; omx requires libomxil-bellagio "-Dplatforms=x11,wayland" From bdab356332e391e09d0feafe0fcac9c52388a07d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Dec 2023 11:36:20 +0200 Subject: [PATCH 007/158] gnu: curl: Fix test suite on arm platforms. * gnu/packages/curl.scm (curl)[arguments]: Adjust the flags in the custom 'check phase to skip a test instead of ignoring the test result. Change-Id: Ib2098137b04766988507d2f86832871150cd0af7 --- gnu/packages/curl.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 0bf6d996e6..f73aed679d 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -136,9 +136,9 @@ (target-arm32?) (target-aarch64?)) ;; protocol FAIL - (string-append "TFLAGS=\"~1474 " - "~1477 " - job-count "\"") + (string-append "TFLAGS=~1474 " + "!1477 " + job-count) (string-append "TFLAGS=\"~1477 " job-count "\""))))) ;; The top-level "make check" does "make -C tests quiet-test", which From 42c448ee6e13d165807d83e8c48941bead4847c1 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Thu, 28 Dec 2023 23:49:15 -0500 Subject: [PATCH 008/158] gnu: mesa: Update to 23.3.2. * gnu/packages/gl.scm (mesa): Update to 23.3.2. Change-Id: Ic348c48f4045e8766646a5fe62209619a0247059 --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index ce99b33441..dfe9be73c0 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -294,7 +294,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "23.3.1") + (version "23.3.2") (source (origin (method url-fetch) @@ -304,7 +304,7 @@ also known as DXTn or DXTC) for Mesa.") "mesa-" version ".tar.xz"))) (sha256 (base32 - "1rhxnifvzf168lys0qq6by1xrzs15q6climjzq7z5czxf1ni4j3f")))) + "1p4swrbmz3kb1805kdj973hf8virgmix4m9qprmcb2bgl4gviz1w")))) (build-system meson-build-system) (propagated-inputs ;; The following are in the Requires.private field of gl.pc. From c61532c4b472f9c438c1837a423f3d8f024423d5 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Thu, 4 Jan 2024 15:02:50 +0100 Subject: [PATCH 009/158] gnu: emacs-ess: Update to 18.10.2-1.3691ecc. * gnu/packages/statistics.scm (emacs-ess): Update to 18.10.2-1.3691ecc. [arguments]: Skip failing tests. * gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch: Delete file. * gnu/local.mk: Apply file removal. Change-Id: If8cd54c32c44cd2465f2cdb78317e8f8339f6bc3 --- gnu/local.mk | 1 - ...macs-ess-fix-obsolete-function-alias.patch | 23 ------------ gnu/packages/statistics.scm | 35 ++++++++++++++----- 3 files changed, 27 insertions(+), 32 deletions(-) delete mode 100644 gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch diff --git a/gnu/local.mk b/gnu/local.mk index ee25e1535e..f804f4ef5b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1111,7 +1111,6 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch \ %D%/packages/patches/emacs-elpy-dup-test-name.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 deleted file mode 100644 index f7b61391c3..0000000000 --- a/gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch +++ /dev/null @@ -1,23 +0,0 @@ -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 c2cf68fca8..b3a2f44ecd 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -6757,11 +6757,9 @@ Java package that provides routines for various statistical distributions.") (license license:gpl2+))) (define-public emacs-ess - ;; Latest release is old. This is not the latest commit either due to bug - ;; reported here: . - (let ((commit "24da603184ce39246611dd5b8602e769d7ebd5bf") + (let ((commit "3691ecc642eab5d016887e42699648e0eeeef566") (version "18.10.2") - (revision "0")) + (revision "1")) (package (name "emacs-ess") (version (git-version version revision commit)) @@ -6772,7 +6770,7 @@ Java package that provides routines for various statistical distributions.") (url "https://github.com/emacs-ess/ESS") (commit commit))) (sha256 - (base32 "0j98lv07nzwzd54d4dgcfz01wy5gj48m0mnirxzh5r45ik2myh1r")) + (base32 "19p8djsbgvahpsx1w8i6h3qvpbdr4isjwm3wi82yk2648ri0qsq1")) (file-name (git-file-name name version)) (modules '((guix build utils))) (snippet @@ -6803,9 +6801,7 @@ 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)) - (patches - (search-patches "emacs-ess-fix-obsolete-function-alias.patch")))) + #t)))) (build-system gnu-build-system) (arguments (let ((base-directory "/share/emacs/site-lisp")) @@ -6819,6 +6815,29 @@ Java package that provides routines for various statistical distributions.") #:phases (modify-phases %standard-phases (delete 'configure) + (add-before 'check 'skip-failing-tests + ;; XXX: Skip 10 failing tests (out of 187). + (lambda _ + (let-syntax + ((disable-tests + (syntax-rules () + ((_ file ()) + (syntax-error "test names list must not be empty")) + ((_ file (test-name ...)) + (substitute* file + (((string-append "^\\(ert-deftest " test-name ".*") all) + (string-append all "(skip-unless nil)\n")) ...))))) + (disable-tests (list "test/ess-test-inf.el" "test/ess-test-r.el") + ("ess--derive-connection-path" + "ess-eval-line-test" + "ess-eval-region-test" + "ess-mock-remote-process" + "ess-r-load-ESSR-github-fetch-no" + "ess-r-load-ESSR-github-fetch-yes" + "ess-r-eval-ns-env-roxy-tracebug-test" + "ess-r-eval-sink-freeze-test" + "ess-set-working-directory-test" + "ess-test-r-startup-directory"))))) (replace 'check (lambda _ (invoke "make" "test"))))))) (native-inputs From 650b9021a1979fd96635001d542d2fc660a3dd87 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Thu, 4 Jan 2024 15:12:10 +0100 Subject: [PATCH 010/158] gnu: emacs-ess: Improve package style. * gnu/packages/statistics.scm (emacs-ess)[origin]: Remove trailing #T from snippet. Use G-expressions. [arguments]: Use G-expressions. [inputs]: Remove labels. Change-Id: Iaaf6371577e00c2cc1da0192e5f9f9102b4e76b0 --- gnu/packages/statistics.scm | 130 ++++++++++++++++++------------------ 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index b3a2f44ecd..db2a11d791 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -6774,77 +6774,77 @@ Java package that provides routines for various statistical distributions.") (file-name (git-file-name name version)) (modules '((guix build utils))) (snippet - '(begin - ;; Stop ESS from trying to bundle an external julia-mode.el. - (substitute* "lisp/Makefile" - ((" \\$\\(JULIAS)") "") - (("\ttest.*julia-mode.*\\.el") "")) - ;; Only build docs in info format. - (substitute* "doc/Makefile" - (("all : info text") - "all : info") - (("install: install-info install-other-docs") - "install: install-info")) - ;; Stop install-info from trying to update the info directory. - (substitute* "doc/Makefile" - ((".*/dir.*") "")) - ;; Fix r-help-mode test. - (substitute* "test/ess-test-r.el" - (("\\(equal ess-help-object \"plot.default\")") "t")) - ;; Avoid generating ess-autoloads.el twice. - (substitute* "Makefile" - (("all: lisp doc etc autoloads") - "all: lisp doc etc")) - ;; Install to correct directories. - (substitute* "Makefile" - (("mkdir -p \\$\\(ESSDESTDIR)") - "$(MAKE) -C lisp install; $(MAKE) -C doc install") - (("\\$\\(INSTALL) -R \\./\\* \\$\\(ESSDESTDIR)/") - "$(MAKE) -C etc install")) - #t)))) + #~(begin + ;; Stop ESS from trying to bundle an external julia-mode.el. + (substitute* "lisp/Makefile" + ((" \\$\\(JULIAS)") "") + (("\ttest.*julia-mode.*\\.el") "")) + ;; Only build docs in info format. + (substitute* "doc/Makefile" + (("all : info text") + "all : info") + (("install: install-info install-other-docs") + "install: install-info")) + ;; Stop install-info from trying to update the info directory. + (substitute* "doc/Makefile" + ((".*/dir.*") "")) + ;; Fix r-help-mode test. + (substitute* "test/ess-test-r.el" + (("\\(equal ess-help-object \"plot.default\")") "t")) + ;; Avoid generating ess-autoloads.el twice. + (substitute* "Makefile" + (("all: lisp doc etc autoloads") + "all: lisp doc etc")) + ;; Install to correct directories. + (substitute* "Makefile" + (("mkdir -p \\$\\(ESSDESTDIR)") + "$(MAKE) -C lisp install; $(MAKE) -C doc install") + (("\\$\\(INSTALL) -R \\./\\* \\$\\(ESSDESTDIR)/") + "$(MAKE) -C etc install")))))) (build-system gnu-build-system) (arguments (let ((base-directory "/share/emacs/site-lisp")) - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "ETCDIR=" %output - ,base-directory "/etc") - (string-append "LISPDIR=" %output - ,base-directory) - (string-append "INFODIR=" %output - "/share/info")) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-before 'check 'skip-failing-tests - ;; XXX: Skip 10 failing tests (out of 187). - (lambda _ - (let-syntax - ((disable-tests - (syntax-rules () - ((_ file ()) - (syntax-error "test names list must not be empty")) - ((_ file (test-name ...)) - (substitute* file - (((string-append "^\\(ert-deftest " test-name ".*") all) - (string-append all "(skip-unless nil)\n")) ...))))) - (disable-tests (list "test/ess-test-inf.el" "test/ess-test-r.el") - ("ess--derive-connection-path" - "ess-eval-line-test" - "ess-eval-region-test" - "ess-mock-remote-process" - "ess-r-load-ESSR-github-fetch-no" - "ess-r-load-ESSR-github-fetch-yes" - "ess-r-eval-ns-env-roxy-tracebug-test" - "ess-r-eval-sink-freeze-test" - "ess-set-working-directory-test" - "ess-test-r-startup-directory"))))) - (replace 'check - (lambda _ (invoke "make" "test"))))))) + (list + #:make-flags + #~(list (string-append "PREFIX=" #$output) + (string-append "ETCDIR=" #$output #$base-directory "/etc") + (string-append "LISPDIR=" #$output #$base-directory) + (string-append "INFODIR=" #$output "/share/info")) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'check 'skip-failing-tests + ;; XXX: Skip 10 failing tests (out of 187). + (lambda _ + (let-syntax + ((disable-tests + (syntax-rules () + ((_ file ()) + (syntax-error "test names list must not be empty")) + ((_ file (test-name ...)) + (substitute* file + (((string-append "^\\(ert-deftest " test-name ".*") + all) + (string-append all "(skip-unless nil)\n")) + ...))))) + (disable-tests (list "test/ess-test-inf.el" + "test/ess-test-r.el") + ("ess--derive-connection-path" + "ess-eval-line-test" + "ess-eval-region-test" + "ess-mock-remote-process" + "ess-r-load-ESSR-github-fetch-no" + "ess-r-load-ESSR-github-fetch-yes" + "ess-r-eval-ns-env-roxy-tracebug-test" + "ess-r-eval-sink-freeze-test" + "ess-set-working-directory-test" + "ess-test-r-startup-directory"))))) + (replace 'check + (lambda _ (invoke "make" "test"))))))) (native-inputs (list perl r-roxygen2 texinfo)) (inputs - `(("emacs" ,emacs-minimal) - ("r-minimal" ,r-minimal))) + (list emacs-minimal r-minimal)) (propagated-inputs (list emacs-julia-mode)) (home-page "https://ess.r-project.org/") From 3c1f25fc7b3cd1942c33a48e71697f94c4c86bc2 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Thu, 4 Jan 2024 16:13:55 +0100 Subject: [PATCH 011/158] gnu: emacs-ess: Fix build. * gnu/packages/statistics.scm (emacs-ess)[arguments]<#:phases>: Fix test file lists for skipped tests. Change-Id: I0ef581080811535dbf32118c3ed37f91e9f58cfe --- gnu/packages/statistics.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index db2a11d791..d5747ef9f7 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -6828,7 +6828,8 @@ Java package that provides routines for various statistical distributions.") (string-append all "(skip-unless nil)\n")) ...))))) (disable-tests (list "test/ess-test-inf.el" - "test/ess-test-r.el") + "test/ess-test-r.el" + "test/ess-test-r-eval.el") ("ess--derive-connection-path" "ess-eval-line-test" "ess-eval-region-test" From c69230c81f9657fd6338c1cd625139a1c1d1c39f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 2 Jan 2024 09:27:32 +0200 Subject: [PATCH 012/158] gnu: Add support for x86_64-linux-gnux32. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add entry for x86_64-linux-gnux32. * gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add configure-flag for x86_64-linux-gnux32. * guix/platforms/x86.scm (x86_64-linux-gnux32): New variable. * guix/utils.scm (gnu-triplet->nix-system): Force x86_64-linux-gnux32 to output a different nix-system than x86_64-linux-gnu. Change-Id: I519fea2f8357e4b9895ede05fe8a5e373e9b034a Signed-off-by: Efraim Flashner --- gnu/packages/bootstrap.scm | 5 ++++- gnu/packages/gcc.scm | 5 ++++- guix/platforms/x86.scm | 10 ++++++++++ guix/utils.scm | 4 +++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 602d8f26c5..a36bb289cd 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver -;;; Copyright © 2017, 2020 Efraim Flashner +;;; Copyright © 2017, 2020, 2024 Efraim Flashner ;;; Copyright © 2018, 2020, 2022 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2019 Carl Dong ;;; Copyright © 2019 Léo Le Bouter @@ -323,6 +323,9 @@ or false to signal an error." ((string=? system "powerpc64-linux") "/lib/ld64.so.1") ((string=? system "alpha-linux") "/lib/ld-linux.so.2") + ;; TODO: Differentiate between x86_64-linux-gnu and x86_64-linux-gnux32. + ((string=? system "x86_64-linux-gnux32") "/lib/ld-linux-x32.so.2") + ;; XXX: This one is used bare-bones, without a libc, so add a case ;; here just so we can keep going. ((string=? system "arm-eabi") "no-ld.so") diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index a8b74a3632..5590cd3d7e 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus ;;; Copyright © 2015, 2023 Andreas Enge -;;; Copyright © 2015-2018, 2020-2023 Efraim Flashner +;;; Copyright © 2015-2018, 2020-2024 Efraim Flashner ;;; Copyright © 2016 Carlos Sánchez de La Lama ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2020, 2022 Marius Bakke @@ -75,6 +75,9 @@ where the OS part is overloaded to denote a specific ABI---into GCC "--with-mode=thumb" "--with-fpu=neon")) + ((string-match "x86_64-linux-gnux32" target) + '("--with-abi=mx32")) + ((and (string-suffix? "-gnu" target) (not (string-contains target "-linux"))) ;; Cross-compilation of libcilkrts in GCC 5.5.0 to GNU/Hurd fails diff --git a/guix/platforms/x86.scm b/guix/platforms/x86.scm index 4ed5638c14..0c8fc7296c 100644 --- a/guix/platforms/x86.scm +++ b/guix/platforms/x86.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 Mathieu Othacehe +;;; Copyright © 2023, 2024 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ #:use-module (guix records) #:export (i686-linux x86_64-linux + x86_64-linux-x32 i686-mingw x86_64-mingw i586-gnu)) @@ -41,6 +43,14 @@ (rust-target "x86_64-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld-linux-x86-64.so.2"))) +(define x86_64-linux-x32 + (platform + (target "x86_64-linux-gnux32") + (system #f) + (linux-architecture "x86_64") + (rust-target "x86_64-unknown-linux-gnux32") + (glibc-dynamic-linker "/lib/ld-linux-x32.so.2"))) + (define i686-mingw (platform (target "i686-w64-mingw32") diff --git a/guix/utils.scm b/guix/utils.scm index 8e71f97e1c..f4bf965e9a 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015 David Thompson ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2018, 2020 Marius Bakke -;;; Copyright © 2020, 2021 Efraim Flashner +;;; Copyright © 2020, 2021, 2024 Efraim Flashner ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer ;;; Copyright © 2021 Simon Tournier ;;; Copyright © 2021 Chris Marusich @@ -634,6 +634,8 @@ returned by `config.guess'." (else triplet)))) (cond ((string-match "^arm[^-]*-([^-]+-)?linux-gnueabihf" triplet) "armhf-linux") + ;; Otherwise it will show up as x86_64-linux... which isn't wrong. + ((string-match "x86_64-linux-gnux32" triplet) "x86_64-linux-gnux32") ((string-match "^([^-]+)-([^-]+-)?linux-gnu.*" triplet) => (lambda (m) From 433b680dd6ac100ef6940c20b4aeb4e5c64f0e05 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 2 Jan 2024 09:27:33 +0200 Subject: [PATCH 013/158] gnu: Add target-x32?. * guix/utils.scm (target-x32?): New procedure. Change-Id: Ia16c7edce64de01d5ccb126c7bd9a6736f327b5f Signed-off-by: Efraim Flashner --- guix/utils.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/guix/utils.scm b/guix/utils.scm index f4bf965e9a..e4e9d922e7 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -97,6 +97,7 @@ target-x86-32? target-x86-64? target-x86? + target-x32? target-arm32? target-aarch64? target-arm? @@ -712,6 +713,13 @@ a character other than '@'." architecture (x86_64)?" (string-prefix? "x86_64-" target)) +(define* (target-x32? #:optional (target (or (%current-target-system) + (%current-system)))) + "Is the architecture of TARGET a variant of Intel/AMD's 64-bit +architecture (x86_64) using 32-bit data types?" + (and (target-x86-64? target) + (string-suffix? "gnux32" target))) + (define* (target-x86? #:optional (target (or (%current-target-system) (%current-system)))) (or (target-x86-32? target) (target-x86-64? target))) From 568c12d7266c7372f04f16bcb91cbe0f88d9e70b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 2 Jan 2024 09:27:34 +0200 Subject: [PATCH 014/158] gnu: openssl: Fix building on x86_64-linux-gnux32. * gnu/packages/tls.scm (target->openssl-target): Add entry for x86_64-linux-gnux32. Change-Id: Icbbdb76134da0811b8493c55ca2d3acdb77c5883 Signed-off-by: Efraim Flashner --- gnu/packages/tls.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 75e6370c72..208a7ff640 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari -;;; Copyright © 2016, 2017, 2019, 2021-2023 Efraim Flashner +;;; Copyright © 2016, 2017, 2019, 2021-2024 Efraim Flashner ;;; Copyright © 2016, 2017, 2018 Nikita ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Ricardo Wurmus @@ -429,6 +429,8 @@ OpenSSL for TARGET." (cond ((target-x86-32? target) "x86") + ((target-x32? target) + "x32") ((target-x86-64? target) "x86_64") ((target-mips64el? target) From 744e06c867925b29682a75f8a1a19bb7b775fb13 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 2 Jan 2024 09:27:35 +0200 Subject: [PATCH 015/158] gnu: gmp: Fix building on x86_64-linux-gnux32. * gnu/packages/multiprecision.scm (gmp)[arguments]: When building for x86_64-linux-gnux32 add a configure-flag to use the x32 ABI. Change-Id: I321c707b3f7df5eeb338f03dacf08b29181ecf53 Signed-off-by: Efraim Flashner --- gnu/packages/multiprecision.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 0c6255c129..591170b508 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Eric Bavier -;;; Copyright © 2018, 2019, 2021, 2023 Efraim Flashner +;;; Copyright © 2018, 2019, 2021, 2023, 2024 Efraim Flashner ;;; Copyright © 2021 Vinicius Monego ;;; Copyright © 2022 Maxim Cournoyer ;;; Copyright © 2023 Janneke Nieuwenhuizen @@ -71,6 +71,8 @@ ;; they produce different headers. We need shared. `("--disable-static" "--enable-shared")) + ((target-x32?) + `("ABI=x32")) (else '()))) ;; Remove after core-updates merge. ;; Workaround for gcc-7 transition breakage, -system and cross-build, From 9816a5371663396bc092eb359222635e5675b174 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 2 Jan 2024 09:27:36 +0200 Subject: [PATCH 016/158] gnu: libsigsegv: Fix cross-compiling. * gnu/packages/libsigsegv.scm (libsigsegv)[arguments]: When cross-compiling add a phase to not include extra headers. Change-Id: Ie2d23fd037ed533dacf08acf52771b7ab1d446ac Signed-off-by: Efraim Flashner --- gnu/packages/libsigsegv.scm | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/gnu/packages/libsigsegv.scm b/gnu/packages/libsigsegv.scm index ebbdd2ad90..71afb35be0 100644 --- a/gnu/packages/libsigsegv.scm +++ b/gnu/packages/libsigsegv.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2018 Ludovic Courtès -;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017, 2024 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu)) (define-public libsigsegv @@ -40,21 +41,15 @@ (arguments `(;; The shared library isn't built by default but some packages need it. #:configure-flags '("--enable-shared") - - ;; On MIPS, work around this error: - ;; - ;; In file included from fault-linux-mips-old.h:18:0, - ;; [...] - ;; linux-libre-headers-cross-mips64el-linux-gnu-3.3.8/include/asm/sigcontext.h:57:8: error: redefinition of 'struct sigcontext' - ,@(if (string-contains (or (%current-target-system) (%current-system)) - "mips64el") - `(#:phases (modify-phases %standard-phases - (add-before 'configure 'patch-mips-old-h - (lambda _ - (substitute* "src/fault-linux-mips-old.h" - (("#include ") "")) - #t)))) - '()))) + ;; On some architectures 'struct sigcontext' gets redefined from + ;; %linux-libre-headers/include/asm/sigcontext.h + ,@(cond ((%current-target-system) + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'patch-asm-sigcontext-h + (lambda _ + (substitute* (find-files "src" "^fault-.*-old\\.h$") + (("#include ") ""))))))) + (else '())))) (description "GNU libsigsegv is a library to handle page faults, which occur when a program tries to access an unavailable region of memory, in user mode. By From be1d05c10766a979dd0720b677889ed950d3b895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Wed, 20 Dec 2023 14:40:24 +0100 Subject: [PATCH 017/158] gnu: icecat-minimal: Fix WM Class. * gnu/packages/gnuzilla.scm (icecat-minimal)[arguments]: Set the MOZ_APP_REMOTINGNAME environment variable and replace "Navigator" with "Icecat" in icecat.desktop. The WM Class should be "Navigator, Icecat" instead of "Navigator, icecat-default". StartupWMClass in icecat.desktop should be "Icecat" instead of "Navigator" so that other browsers (they often have the "Navigator" class) won't be associated with Icecat. Change-Id: I57bec957938c56e8acf9cd5c955e57dbad081678 --- gnu/packages/gnuzilla.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index bf9bf34e3a..188aa02293 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -1034,6 +1034,9 @@ variable defined below. It requires guile-json to be installed." (setenv "MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE" "system") (setenv "MOZ_BUILD_DATE" #$%icecat-build-id) ; avoid timestamp + ;; WM_CLASS (default is "$MOZ_APP_NAME-$MOZ_UPDATE_CHANNEL"). + (setenv "MOZ_APP_REMOTINGNAME" "Icecat") + ;; XXX TODO: Fix this to work on systems other than x86_64-linux. (setenv "GUIX_PYTHONPATH" (string-append (getcwd) @@ -1126,7 +1129,7 @@ variable defined below. It requires guile-json to be installed." (("NewWindow") "new-window") (("NewPrivateWindow") "new-private-window") (("StartupNotify=true") - "StartupNotify=true\nStartupWMClass=Navigator")) + "StartupNotify=true\nStartupWMClass=Icecat")) (install-file desktop-file applications)))) (add-after 'install-desktop-entry 'install-icons (lambda _ From a59922dab6e2b957ca882113a231c1e318ee8269 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Mon, 23 Oct 2023 00:04:07 +0100 Subject: [PATCH 018/158] gnu: Add python-av. * gnu/packages/python-xyz.scm (python-av): New variable. --- gnu/packages/python-xyz.scm | 99 +++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 2afce6c667..898e849997 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -9236,6 +9236,105 @@ converting, and viewing many of the proprietary file formats used to store experimental data and metadata at the Laboratory for Fluorescence Dynamics.") (license license:bsd-3))) +(define-public python-av + (package + (name "python-av") + (version "10.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "av" version)) + (sha256 + (base32 "01byqsjclkg65mhr6b4i2r2n4y7af9kdd2c35lxny27121b3vzca")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list + ;; Tests require outbound access to download data samples from + ;; http://fate.ffmpeg.org/fate-suite: + ;; + ;; E urllib.error.URLError: + ;; + "--ignore=tests/test_doctests.py" + "--ignore=tests/test_timeout.py" + "-k" + (string-append + "not test_data" + " and not test_container_probing" + " and not test_stream_probing" + " and not test_transcode" + " and not test_codec_tag" + " and not test_parse" + " and not test_decode_audio_sample_count" + " and not test_decoded_motion_vectors" + " and not test_decoded_motion_vectors_no_flag" + " and not test_decoded_time_base" + " and not test_decoded_video_frame_count" + " and not test_encoding_aac" + " and not test_encoding_dnxhd" + " and not test_encoding_dvvideo" + " and not test_encoding_h264" + " and not test_encoding_mjpeg" + " and not test_encoding_mp2" + " and not test_encoding_mpeg1video" + " and not test_encoding_mpeg4" + " and not test_encoding_pcm_s24le" + " and not test_encoding_png" + " and not test_encoding_tiff" + " and not test_encoding_xvid" + " and not test_reading_from_buffer" + " and not test_reading_from_buffer_no_seek" + " and not test_reading_from_file" + " and not test_reading_from_pipe_readonly" + " and not test_reading_from_write_readonly" + " and not test_writing_to_custom_io_dash" + " and not test_writing_to_custom_io_image2" + " and not test_decode_half" + " and not test_seek_end" + " and not test_seek_float" + " and not test_seek_int64" + " and not test_seek_middle" + " and not test_seek_start" + " and not test_stream_seek" + " and not test_selection" + " and not test_stream_tuples" + " and not test_movtext" + " and not test_vobsub" + " and not test_roundtrip" + " and not test_stream_probing")) + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'build-extensions + (lambda _ + (invoke "python" "setup.py" "build_ext" "--inplace")))))) + (native-inputs + (list pkg-config + python-cython + python-editorconfig + python-numpy + python-pillow + python-pytest)) + (inputs + ;; XXX: Build is failing with FFmpeg 6.0, unresolved upstream. + ;; See https://github.com/PyAV-Org/PyAV/issues/1106 + (list ffmpeg-5)) + (home-page "https://github.com/PyAV-Org/PyAV") + (synopsis "Pythonic bindings for FFmpeg's libraries") + (description + "PyAV is a Python library that allows for direct and precise manipulation +of media through containers, streams, packets, codecs, and frames. It provides +access to the powerful FFmpeg libraries while managing the complex details as +much as possible. +PyAV also facilitates data transformation and integration with +other packages such as Numpy and Pillow. However, working with media is a +challenging task and PyAV cannot abstract it away or make all the best decisions +for you. If you can accomplish your tasks with the ffmpeg command, PyAV may not +be necessary. Nonetheless, PyAV is an essential tool when working with media +that requires its specific capabilities.") + (license license:bsd-3))) + (define-public python-ffmpeg-python ;; The latest release (0.2.0) is old and its test suite crashs on Python 3.10. (let ((commit "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6") (revision "0")) From 2ef73c6bf5a6885153f2ab0594961878ee0dbf04 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Mon, 23 Oct 2023 00:04:08 +0100 Subject: [PATCH 019/158] gnu: Add python-djitellopy. * gnu/packages/python-xyz.scm (python-djitellopy): New variable. Modified-by: Maxim Cournoyer Change-Id: I3e1fe9ecc7c02cb22a979c494fd76db678019e2e --- gnu/packages/python-xyz.scm | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 898e849997..f8bb943122 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -30275,6 +30275,45 @@ heterogeneous and multi-platform clusters (including clusters running other applications with variable CPU loads).") (license license:bsd-3))) +(define-public python-djitellopy + (package + (name "python-djitellopy") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "djitellopy" version)) + (sha256 + (base32 "1kc0syb4hpn7fay0rxpazmczag6jw3pncrrc6v762jj0afiwkrps")))) + (build-system pyproject-build-system) + (arguments + (list + #:tests? #f ;no test suite + #:phases + #~(modify-phases %standard-phases + ;; OpenCV does not ship metadata files for its Python library, which + ;; makes it invisible to the sanity_check script (see: + ;; https://github.com/opencv/opencv/issues/24810). + (delete 'sanity-check)))) + (propagated-inputs + (list opencv ;for opencv-python + python-av + python-numpy + python-pillow)) + (home-page "https://github.com/damiafuentes/DJITelloPy") + (synopsis + "DJI Tello drone video streaming, swarms and state packets library") + (description + "DJI Tello drone Python interface using the official Tello SDK and Tello +EDU SDK. This library has the following features: +@itemize +@item Implementation of all tello commands +@item Retrieve a video stream easily +@item Receive and parse state packets +@item Control a swarm of drones. +@end itemize") + (license license:expat))) + (define-public python-djvulibre (package (name "python-djvulibre") From 6702118c94d05f8410e89781f661e1fd3858b365 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Fri, 8 Dec 2023 16:09:49 +0100 Subject: [PATCH 020/158] build: test-driver.scm: Set mode. Emacs auto-detects the build-aux/test-driver.scm as sh-mode, due to the shebang. So override the auto-detection using a local variable forcing scheme-mode. * build-aux/test-driver.scm: Set mode to scheme. Change-Id: I07f12656dba5fb7b52447b94569307a2a605ffc1 Signed-off-by: Maxim Cournoyer --- build-aux/test-driver.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build-aux/test-driver.scm b/build-aux/test-driver.scm index 1cdd4ff8f7..901f6ab9ec 100755 --- a/build-aux/test-driver.scm +++ b/build-aux/test-driver.scm @@ -3,7 +3,7 @@ exec guile --no-auto-compile -e main -s "$0" "$@" !# ;;;; test-driver.scm - Guile test driver for Automake testsuite harness -(define script-version "2021-02-02.05") ;UTC +(define script-version "2023-12-08.14") ;UTC ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2021 Maxim Cournoyer @@ -274,6 +274,7 @@ cases based on their names." (exit 0))) ;;; Local Variables: +;;; mode: scheme ;;; eval: (add-hook 'write-file-functions 'time-stamp) ;;; time-stamp-start: "(define script-version \"" ;;; time-stamp-format: "%:y-%02m-%02d.%02H" From e963dcd2e2e1b494d1d8e02453866d00ba3419fa Mon Sep 17 00:00:00 2001 From: kiasoc5 Date: Sat, 23 Dec 2023 16:38:57 -0500 Subject: [PATCH 021/158] gnu: grml-zsh-config: Update to 0.19.6. * gnu/packages/shellutils.scm (grml-zsh-config): Update to 0.19.6. Change-Id: I0609ec27e98fe1c842cb76d0aaebb491b2e966fe Signed-off-by: Maxim Cournoyer --- gnu/packages/shellutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 9993c0b807..00352dc327 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -331,7 +331,7 @@ particularly in catching syntax errors.") (define-public grml-zsh-config (package (name "grml-zsh-config") - (version "0.19.5") + (version "0.19.6") (source (origin (method url-fetch) (uri (string-append @@ -339,7 +339,7 @@ particularly in catching syntax errors.") version ".tar.gz")) (sha256 (base32 - "0ifw490z3v9ljccbmm04adz39fj2dmx8mjgayxqj0a9ln90yfdc4")))) + "1k1m2fbmvw73qy9mc6k2ygjg6zz8h7nn3d9pvj6jbjadnx4pz770")))) (build-system copy-build-system) (arguments (list From cf075984fc630465bae1361c14552178450b41db Mon Sep 17 00:00:00 2001 From: Adam Faiz Date: Mon, 25 Dec 2023 07:54:58 +0800 Subject: [PATCH 022/158] gnu: irrlicht-for-minetest: Update to 1.9.0mt13. Message-ID: <33df226b8a59a668741a971401024bea785d203d.1703461178.git.adam.faiz@disroot.org> In-Reply-To: References: From: AwesomeAdam54321 Date: Mon, 25 Dec 2023 07:16:25 +0800 Subject: [PATCH 1/2] gnu: irrlicht-for-minetest: Update to 1.9.0mt13. * gnu/packages/games.scm (irrlicht-for-minetest): Update to 1.9.0mt13. Signed-off-by: Maxim Cournoyer --- 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 c7813790a1..8117886583 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3833,7 +3833,7 @@ for common mesh file formats, and collision detection.") (package (inherit irrlicht) (name "irrlicht-for-minetest") - (version "1.9.0mt10") + (version "1.9.0mt13") (source (origin (method git-fetch) @@ -3843,7 +3843,7 @@ for common mesh file formats, and collision detection.") (file-name (git-file-name name version)) (sha256 (base32 - "0y5vchz91khs8dmrkpgc7sqmvzx2yjj6svivvm80r4yppv7s03rw")))) + "11pxg0yh50ym1hvh8va5jbbcjz5dsshj3xxvm3qhkgg96vpism06")))) (build-system cmake-build-system) (arguments ;; No check target. From f96590fb3662300058022f0aaee594e766f8941f Mon Sep 17 00:00:00 2001 From: Adam Faiz Date: Mon, 25 Dec 2023 07:56:21 +0800 Subject: [PATCH 023/158] gnu: minetest: Update to 5.8.0. Message-ID: In-Reply-To: <33df226b8a59a668741a971401024bea785d203d.1703461038.git.adam.faiz@disroot.org> References: <33df226b8a59a668741a971401024bea785d203d.1703461038.git.adam.faiz@disroot.org> From: AwesomeAdam54321 Date: Mon, 25 Dec 2023 07:19:27 +0800 Subject: [PATCH 2/2] gnu: minetest: Update to 5.8.0. * gnu/packages/minetest.scm (minetest, minetest-data): Update to 5.8.0. Signed-off-by: Maxim Cournoyer --- gnu/packages/minetest.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index bf0df314a7..14c47430e3 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -52,7 +52,7 @@ (define-public minetest (package (name "minetest") - (version "5.7.0") + (version "5.8.0") (source (origin (method git-fetch) (uri (git-reference @@ -61,7 +61,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "008l44zwwsarwk4hn7wx2nj2m21b1iqsphl7g69rrlxj760zl0pl")) + "1sww17h8z77w38jk19nsqxn8xcj27msq0glbil7pyj4i0ffprjrr")) (modules '((guix build utils))) (snippet '(begin @@ -166,7 +166,7 @@ in different ways.") (file-name (git-file-name name version)) (sha256 (base32 - "02kbj1h6jsq6k8x4v2ir0njczdz7nyx6dbym85ixxp3mrqxiws61")))) + "1pq4rm15lzwcqv6npgyz6v89hi3zj8zybw25n9i0d27qj786xc4z")))) (build-system copy-build-system) (arguments (list #:install-plan From 05fad99a431c6708ec18c7d0db67178bd8d36597 Mon Sep 17 00:00:00 2001 From: Feng Shu Date: Mon, 25 Dec 2023 12:10:43 +0800 Subject: [PATCH 024/158] gnu: sddm: Update to 0.20.0. * gnu/packages/display-managers.scm (sddm)[version]: Update to 0.20.0. [source]: Remove snippet and use git-fetch method instead. [arguments]: Use gexp, remove outdate comment and handle /include/qt5 dir of qtdeclarative. Change-Id: I6f6bd80291c36b1b80c9ff7f2154593cea2c9d87 Signed-off-by: Maxim Cournoyer --- gnu/packages/display-managers.scm | 80 ++++++++++++++----------------- 1 file changed, 37 insertions(+), 43 deletions(-) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 7120c2ad75..2df4e6311b 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -69,25 +69,16 @@ (define-public sddm (package (name "sddm") - (version "0.19.0") + (version "0.20.0") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/sddm/sddm" - "/releases/download/v" version "/" - "sddm-" version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/sddm/sddm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0hcdysw8ibr66vk8i7v56l0v5ijvhlq67v4460mc2xf2910g2m72")) - (snippet - #~(begin - ;; https://github.com/sddm/sddm/issues/1536 - ;; https://github.com/sddm/sddm/commit/e93bf95c54ad8c2a1604f8d7be05339164b19308 - ;; Commit comes shortly after the 0.19.0 release. - (use-modules ((guix build utils))) - (substitute* "src/daemon/XorgDisplayServer.cpp" - (("m_cookie\\[i\\] = digits\\[dis\\(gen\\)\\]") - "m_cookie[i] = QLatin1Char(digits[dis(gen)])")))))) + "1450zv03d3mbid27986p4mdshw9qf3ar8crl4idybf7khxgan22y")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules pkg-config qttools-5)) @@ -109,36 +100,39 @@ shadow wayland)) (arguments - `(#:configure-flags - ,#~(list - ;; This option currently does nothing, but will presumably be enabled - ;; if/when is merged. - "-DENABLE_WAYLAND=ON" - "-DENABLE_PAM=ON" - ;; Both flags are required for elogind support. - "-DNO_SYSTEMD=ON" "-DUSE_ELOGIND=ON" - "-DCONFIG_FILE=/etc/sddm.conf" - ;; Set path to /etc/login.defs. - ;; An alternative would be to use -DUID_MIN and -DUID_MAX. - (string-append "-DLOGIN_DEFS_PATH=" - #$(this-package-input "shadow") - "/etc/login.defs") - (string-append "-DQT_IMPORTS_DIR=" - #$output "/lib/qt5/qml") - (string-append "-DCMAKE_INSTALL_SYSCONFDIR=" - #$output "/etc")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'embed-loginctl-reference - (lambda _ - (substitute* "CMakeLists.txt" - (("/usr/bin/loginctl") (which "loginctl"))) - #t))))) + (list + #:configure-flags + #~(list + "-DENABLE_WAYLAND=ON" + "-DENABLE_PAM=ON" + ;; Both flags are required for elogind support. + "-DNO_SYSTEMD=ON" + "-DUSE_ELOGIND=ON" + "-DCONFIG_FILE=/etc/sddm.conf" + ;; Set path to /etc/login.defs. + ;; An alternative would be to use -DUID_MIN and -DUID_MAX. + (string-append "-DLOGIN_DEFS_PATH=" + #$(this-package-input "shadow") + "/etc/login.defs") + (string-append "-DCMAKE_CXX_FLAGS=-I" + #$(this-package-input + "qtdeclarative") "/include/qt5") + (string-append "-DQT_IMPORTS_DIR=" + #$output "/lib/qt5/qml") + (string-append "-DCMAKE_INSTALL_SYSCONFDIR=" + #$output "/etc")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'embed-loginctl-reference + (lambda _ + (substitute* "CMakeLists.txt" + (("/usr/bin/loginctl") + (which "loginctl")))))))) (synopsis "QML based X11 and Wayland display manager") (description "SDDM is a display manager for X11 and Wayland aiming to be fast, simple and beautiful. SDDM is themeable and puts no restrictions on the -user interface design. It uses QtQuick which gives the designer the ability to -create smooth, animated user interfaces.") +user interface design. It uses QtQuick which gives the designer the ability +to create smooth, animated user interfaces.") (home-page "https://github.com/sddm/sddm") ;; QML files are MIT licensed and images are CC BY 3.0. (license (list license:gpl2+ license:expat license:cc-by3.0)))) From 036d2fc88afb641a5765dd57308a8bd228c7575c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 Jan 2024 08:40:40 +0100 Subject: [PATCH 025/158] gnu: python-tbb: Fix build. * gnu/packages/tbb.scm (python-tbb)[arguments]: Call "python setup.py install" with "--root" argument. Change-Id: I290c45f3d64c0bb6ec57a0e406132b4f42808eec --- gnu/packages/tbb.scm | 46 +++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm index ec630a029f..da3ea74fb6 100644 --- a/gnu/packages/tbb.scm +++ b/gnu/packages/tbb.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2022 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2022, 2024 Ricardo Wurmus ;;; Copyright © 2016 Nikita ;;; Copyright © 2019 Tobias Geerinckx-Rice ;;; Copyright © 2021 Guillaume Le Vaillant @@ -51,31 +51,31 @@ `(#:configure-flags '(,@(if (or (target-riscv64?) (target-ppc32?)) - '("-DTBB_TEST_LINK_FLAGS=-latomic") - `()) + '("-DTBB_TEST_LINK_FLAGS=-latomic") + `()) ,@(if (or (target-arm32?) (target-ppc32?)) - '("-DTBB_TEST_COMPILE_FLAGS=-DTBB_TEST_LOW_WORKLOAD") - `()) - "-DTBB_STRICT=OFF") ;; Don't fail on warnings + '("-DTBB_TEST_COMPILE_FLAGS=-DTBB_TEST_LOW_WORKLOAD") + `()) + "-DTBB_STRICT=OFF") ;; Don't fail on warnings #:phases (modify-phases %standard-phases ,@(cond - ((target-arm32?) - `((add-after 'unpack 'adjust-test-suite - (lambda _ - (substitute* "test/CMakeLists.txt" - ;; Bus error, skipped on mips. - ((".*test_malloc_pools.*") "")))))) - ((target-ppc32?) - `((add-after 'unpack 'adjust-test-suite - (lambda _ - (substitute* "test/CMakeLists.txt" - ;; These tests hang forever. - ((".*test_function_node.*") "") - ((".*test_multifunction_node.*") "") - ((".*test_async_node.*") "")))))) - (else '()))))) + ((target-arm32?) + `((add-after 'unpack 'adjust-test-suite + (lambda _ + (substitute* "test/CMakeLists.txt" + ;; Bus error, skipped on mips. + ((".*test_malloc_pools.*") "")))))) + ((target-ppc32?) + `((add-after 'unpack 'adjust-test-suite + (lambda _ + (substitute* "test/CMakeLists.txt" + ;; These tests hang forever. + ((".*test_function_node.*") "") + ((".*test_multifunction_node.*") "") + ((".*test_async_node.*") "")))))) + (else '()))))) (home-page "https://www.threadingbuildingblocks.org") (synopsis "C++ library for parallel programming") (description @@ -101,7 +101,9 @@ tasks, synchronization primitives, atomic operations, and more.") (lambda _ (substitute* "python/CMakeLists.txt" (("\\$\\{PYTHON_BUILD_WORK_DIR\\}/build") - #$output)) + #$output) + (("install --prefix.*-f" m) + (string-append m " --root=/"))) (substitute* "python/setup.py" (("extra_link_args=tbb_flag,") (string-append "extra_link_args=['-Wl,-rpath=" From d2a6480e8e7156a14f834a21af01f164ab16a624 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 Jan 2024 08:43:29 +0100 Subject: [PATCH 026/158] gnu: Add r-scrnaseq. * gnu/packages/bioconductor.scm (r-scrnaseq): New variable. Change-Id: Iee25b59af0000f4d2fd7482183b43404840a336c --- gnu/packages/bioconductor.scm | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 1ea5e47321..bf38afb762 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015-2023 Ricardo Wurmus +;;; Copyright © 2015-2024 Ricardo Wurmus ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Roel Janssen ;;; Copyright © 2016 Pjotr Prins ;;; Copyright © 2016 Ben Woodcroft @@ -10510,6 +10510,38 @@ expression information. The package functions as a wrapper for Startrac and powerTCR R packages.") (license license:gpl2))) +(define-public r-scrnaseq + (package + (name "r-scrnaseq") + (version "2.16.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "scRNAseq" version + 'experiment)) + (sha256 + (base32 "0dbh3sqq7lkkdf7vls5qg7fbn6y74c7hsigb4d69pvk934ll88aw")))) + (properties `((upstream-name . "scRNAseq"))) + (build-system r-build-system) + (propagated-inputs (list r-annotationdbi + r-annotationhub + r-biocgenerics + r-ensembldb + r-experimenthub + r-genomicfeatures + r-genomicranges + r-s4vectors + r-singlecellexperiment + r-summarizedexperiment)) + (native-inputs (list r-knitr)) + (home-page "https://bioconductor.org/packages/scRNAseq") + (synopsis "Collection of public single-cell RNA-seq datasets") + (description + "This package contains gene-level counts for a collection of public +@code{scRNA-seq} datasets, provided as @code{SingleCellExperiment} objects +with cell- and gene-level metadata.") + (license license:cc0))) + (define-public r-scry (package (name "r-scry") From cc0fb54f7794bf770bff21c0d56c709bf2578b7f Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 5 Jan 2024 10:55:25 +0100 Subject: [PATCH 027/158] gnu: emacs-ess: Fix build (part 2). * gnu/packages/statistics.scm (emacs-ess)[arguments]<#:phases>: Use a different process in order to disable two tests. This is a followup to 3c1f25fc7b3cd1942c33a48e71697f94c4c86bc2. Change-Id: I78ee735ef7ee1dea86af602dc714d88bf8185da5 --- gnu/packages/statistics.scm | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index d5747ef9f7..712b1a9c37 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -6805,6 +6805,12 @@ Java package that provides routines for various statistical distributions.") (arguments (let ((base-directory "/share/emacs/site-lisp")) (list + #:modules '((guix build gnu-build-system) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules `(,@%gnu-build-system-modules + (guix build emacs-build-system) + (guix build emacs-utils)) #:make-flags #~(list (string-append "PREFIX=" #$output) (string-append "ETCDIR=" #$output #$base-directory "/etc") @@ -6828,18 +6834,26 @@ Java package that provides routines for various statistical distributions.") (string-append all "(skip-unless nil)\n")) ...))))) (disable-tests (list "test/ess-test-inf.el" - "test/ess-test-r.el" - "test/ess-test-r-eval.el") + "test/ess-test-r.el") ("ess--derive-connection-path" "ess-eval-line-test" "ess-eval-region-test" "ess-mock-remote-process" "ess-r-load-ESSR-github-fetch-no" "ess-r-load-ESSR-github-fetch-yes" - "ess-r-eval-ns-env-roxy-tracebug-test" - "ess-r-eval-sink-freeze-test" "ess-set-working-directory-test" - "ess-test-r-startup-directory"))))) + "ess-test-r-startup-directory"))) + ;; The two tests below use a different syntax. + (emacs-batch-edit-file "test/ess-test-r-eval.el" + '(progn + (mapc (lambda (test) + (goto-char (point-min)) + (search-forward (format "etest-deftest %s " test)) + (beginning-of-line) + (kill-sexp)) + '("ess-r-eval-ns-env-roxy-tracebug-test" + "ess-r-eval-sink-freeze-test")) + (basic-save-buffer))))) (replace 'check (lambda _ (invoke "make" "test"))))))) (native-inputs From b43e11643cf3b28a1d53b0779cdd737e7d77193d Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 5 Jan 2024 11:08:21 +0100 Subject: [PATCH 028/158] gnu: emacs-tagedit: Fix build. * gnu/packages/emacs-xyz.scm (emacs-tagedit)[arguments]: Add phases to remove a spurious require. Change-Id: I37fe4fb9ed0a44514d650d709a49f0e4ae20cbef --- 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 979c55bb99..be34f2ef42 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10105,6 +10105,13 @@ constants and units into an Emacs buffer.") (sha256 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb")))) (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-spurious-require + (lambda _ + (substitute* "tagedit.el" + (("\\(require 'assoc\\)") ""))))))) (propagated-inputs (list emacs-s emacs-dash)) (home-page "https://github.com/magnars/tagedit") From ac69b423865f12310cef5662d9c303aa4b90c869 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 5 Jan 2024 11:10:16 +0100 Subject: [PATCH 029/158] gnu: emacs-tagedit: Improve package style. * gnu/packages/emacs-xyz.scm (emacs-tagedit)[propagated-inputs]: Reorder inputs alphabetically. [synopsis, description]: Use proper capitalization. Change-Id: I9361a67d61165bf1492df8760f632fef3fe107aa --- gnu/packages/emacs-xyz.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index be34f2ef42..f2953295c2 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10113,12 +10113,12 @@ constants and units into an Emacs buffer.") (substitute* "tagedit.el" (("\\(require 'assoc\\)") ""))))))) (propagated-inputs - (list emacs-s emacs-dash)) + (list emacs-dash emacs-s)) (home-page "https://github.com/magnars/tagedit") - (synopsis "Some paredit-like features for html-mode") + (synopsis "Some Paredit-like features for HTML mode") (description - "This package provides a collection of paredit-like functions for editing -in @code{html-mode}.") + "This package provides a collection of Paredit-like functions for editing +in HTML mode.") (license license:gpl3+))) (define-public emacs-slime From 03ae69f5874b68f7b74ff678d0aa9b25eaf4569f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 Jan 2024 12:12:33 +0100 Subject: [PATCH 030/158] gnu: onnx: Relax requirement on python-protobuf. * gnu/packages/machine-learning.scm (onnx)[arguments]: Add phase 'relax-requirements. (onnx-for-torch2)[arguments]: Delete 'relax-requirements phase. (onnx-optimizer)[arguments]: Same. Change-Id: If3bde363d06f16f2b82e175076041441d29e8d6e --- gnu/packages/machine-learning.scm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 14fc2a0a72..b4651c80e5 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015-2023 Ricardo Wurmus +;;; Copyright © 2015-2024 Ricardo Wurmus ;;; Copyright © 2016, 2020-2023 Efraim Flashner ;;; Copyright © 2016, 2017, 2020 Marius Bakke ;;; Copyright © 2016 Hartmut Goebel @@ -1151,6 +1151,11 @@ in terms of new algorithms.") (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + ;; Does this difference really matter? + (substitute* "requirements.txt" + (("3.20.1") "3.20.2")))) (add-before 'build 'pass-cmake-arguments (lambda* (#:key outputs #:allow-other-keys) ;; Pass options to the CMake-based build process. @@ -1235,7 +1240,13 @@ operators and standard data types.") '(begin (delete-file-recursively "third_party") (substitute* "onnx/backend/test/runner/__init__.py" - (("urlretrieve\\(.*") "raise unittest.SkipTest('Skipping download')\n")))))))) + (("urlretrieve\\(.*") "raise unittest.SkipTest('Skipping download')\n")))))) + (arguments + ;; reuse build system tweaks + (substitute-keyword-arguments (package-arguments onnx) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'relax-requirements))))))) (define-public python-onnx ;; This used to be called "python-onnx" because it provided nothing but @@ -1262,7 +1273,12 @@ operators and standard data types.") (modules '((guix build utils))) (snippet '(delete-file-recursively "third_party")))) (build-system python-build-system) - (arguments (package-arguments onnx)) ;reuse build system tweaks + (arguments + ;; reuse build system tweaks + (substitute-keyword-arguments (package-arguments onnx) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'relax-requirements))))) (native-inputs (list cmake python-pytest python-pytest-runner python-nbval python-coverage)) From 9476bf870190aaff796043c6d74b60843dff3c4f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 Jan 2024 15:25:11 +0100 Subject: [PATCH 031/158] gnu: scvelo: Disable two broken tests. * gnu/packages/bioinformatics.scm (scvelo)[build-system]: Use pyproject-build-system. [arguments]: Disable test_perfect_fit and test_perfect_fit_2d tests because they fail with unexpected results; use G-expression. Change-Id: Ied22a2bc044167012ffaaee15a9626e9f5bccdd5 --- gnu/packages/bioinformatics.scm | 38 ++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 2ceb0190b6..fa22399136 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -20521,24 +20521,28 @@ aligner.") (uri (pypi-uri "scvelo" version)) (sha256 (base32 "0h5ha1459ljs0qgpnlfsw592i8dxqn6p9bl08l1ikpwk36baxb7z")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - ;; Numba needs a writable dir to cache functions. - (add-before 'check 'set-numba-cache-dir - (lambda _ - (setenv "NUMBA_CACHE_DIR" "/tmp"))) - (replace 'check - (lambda* (#:key outputs tests? #:allow-other-keys) - (when tests? - ;; The discovered test file names must match the names of the - ;; compiled files, so we cannot run the tests from - ;; /tmp/guix-build-*. - (with-directory-excursion - (string-append (assoc-ref outputs "out") - "/lib/python3.10/site-packages/scvelo/core/tests/") - (invoke "pytest" "-v")))))))) + (list + #:test-flags + ;; XXX: these two tests fail for unknown reasons + '(list "-k" "not test_perfect_fit and not test_perfect_fit_2d") + #:phases + #~(modify-phases %standard-phases + ;; Numba needs a writable dir to cache functions. + (add-before 'check 'set-numba-cache-dir + (lambda _ + (setenv "NUMBA_CACHE_DIR" "/tmp"))) + (replace 'check + (lambda* (#:key tests? test-flags #:allow-other-keys) + (when tests? + ;; The discovered test file names must match the names of the + ;; compiled files, so we cannot run the tests from + ;; /tmp/guix-build-*. + (with-directory-excursion + (string-append #$output + "/lib/python3.10/site-packages/scvelo/core/tests/") + (apply invoke "pytest" "-v" test-flags)))))))) (propagated-inputs (list python-anndata python-hnswlib From 5cec983e043259d2b13c194bff0a70459eed11d3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 Jan 2024 17:17:33 +0100 Subject: [PATCH 032/158] gnu: r-edger: Update to 4.0.5. * gnu/packages/bioconductor.scm (r-edger): Update to 4.0.5. Change-Id: Ibf41684a81da1a842f1a8e41309113fb50db6ef9 --- gnu/packages/bioconductor.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index bf38afb762..a7af5c42ce 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -7324,13 +7324,13 @@ global-scaling and full-quantile normalization.") (define-public r-edger (package (name "r-edger") - (version "4.0.3") + (version "4.0.5") (source (origin (method url-fetch) (uri (bioconductor-uri "edgeR" version)) (sha256 (base32 - "0sz46pwa1bsqrff2igswfhhj1fcwzn34zrlawy4fnb58z48kccb0")))) + "16cghh83v14jdq5n6xkm3jxj87n6l6zrxjgqdwb2ffgc26vkpb7w")))) (properties `((upstream-name . "edgeR"))) (build-system r-build-system) (propagated-inputs From 4e431fda5f2ec76b6d6a271be7c30b1324431329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 5 Jan 2024 00:20:50 +0100 Subject: [PATCH 033/158] =?UTF-8?q?services:=20shepherd:=20Remove=20?= =?UTF-8?q?=E2=80=98dynamic-wind=E2=80=99=20in=20=E2=80=98call-with-*-file?= =?UTF-8?q?=E2=80=99.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . The ‘dynamic-wind’ was causing files to be closed prematurely when leaving the dynamic extent of PROC for instance via a delimited continuation, using Fibers (that ‘dynamic-wind’ call was also semantically incorrect in the first place). * gnu/services/shepherd.scm (shepherd-configuration-file) [config](call-with-file): Remove. (call-with-input-file, call-with-output-file): Rewrite in terms of ‘call-with-port’. Change-Id: Ica8af71a04f525a15be99985552063cb98cd6ee8 --- gnu/services/shepherd.scm | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index e9d3a631c2..8e122f1aab 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013-2016, 2018-2023 Ludovic Courtès +;;; Copyright © 2013-2016, 2018-2024 Ludovic Courtès ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2018 Carlo Zancanaro ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen @@ -371,17 +371,6 @@ as shepherd package." (use-modules (srfi srfi-34) (system repl error-handling)) - (define (call-with-file file flags proc) - (let ((port #f)) - (dynamic-wind - (lambda () - (set! port (open file flags))) - (lambda () - (proc port)) - (lambda () - (close-port port) - (set! port #f))))) - ;; There's code run from shepherd that uses 'call-with-input-file' & ;; co.--e.g., the 'urandom-seed' service. Starting from Shepherd ;; 0.9.2, users need to make sure not to leak non-close-on-exec file @@ -389,12 +378,12 @@ as shepherd package." ;; standard bindings with O_CLOEXEC variants. (set! call-with-input-file (lambda (file proc) - (call-with-file file (logior O_RDONLY O_CLOEXEC) - proc))) + (call-with-port (open file (logior O_RDONLY O_CLOEXEC)) + proc))) (set! call-with-output-file (lambda (file proc) - (call-with-file file (logior O_WRONLY O_CREAT O_CLOEXEC) - proc))) + (call-with-port (open file (logior O_WRONLY O_CREAT O_CLOEXEC)) + proc))) ;; Specify the default environment visible to all the services. ;; Without this statement, all the environment variables of PID 1 From 526e485489a5091166f61b157213aca7fca1d4b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 18 Dec 2023 18:53:50 +0100 Subject: [PATCH 034/158] =?UTF-8?q?teams:=20Add=20=E2=80=98core-packages?= =?UTF-8?q?=E2=80=99=20team.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * etc/teams.scm (bootstrap): Add “gnu/packages/commencement.scm”. (core-packages): New team. (Ludovic Courtès): Add to ‘core-packages’ team. Change-Id: I25f22d436a4dc9bf4c8f577f94cc178cbaa80768 --- etc/teams.scm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/etc/teams.scm b/etc/teams.scm index fba9010130..98f51c13e1 100755 --- a/etc/teams.scm +++ b/etc/teams.scm @@ -310,7 +310,8 @@ asdf-build-system." (define-team bootstrap (team 'bootstrap #:name "Bootstrap" - #:scope (list "gnu/packages/mes.scm"))) + #:scope (list "gnu/packages/commencement.scm" + "gnu/packages/mes.scm"))) (define-team embedded (team 'embedded @@ -424,6 +425,21 @@ asdf-build-system." (make-regexp* "^guix/scripts/") (make-regexp* "^guix/store/")))) +(define-team core-packages + (team 'core-packages + #:name "Core packages" + #:description "Core packages: the GNU tool chain, Guile, Coreutils, etc." + #:scope (list "gnu/packages/base.scm" + "gnu/packages/bootstrap.scm" + "gnu/packages/commencement.scm" + "gnu/packages/cross-base.scm" + "gnu/packages/gcc.scm" + "gnu/packages/guile.scm" + "gnu/packages/make-bootstrap.scm" + "guix/build/gnu-build-system.scm" + "guix/build/utils.scm" + "guix/build-system/gnu.scm"))) + (define-team games (team 'games #:name "Games and Toys" @@ -556,7 +572,7 @@ GLib/GIO, GTK, GStreamer and Webkit." (define-member (person "Ludovic Courtès" "ludo@gnu.org") - core home bootstrap installer mentors) + core home bootstrap core-packages installer mentors) (define-member (person "Andreas Enge" "andreas@enge.fr") From dc5e9c0130abda909c0e2d30c245aa441f75060e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 5 Jan 2024 12:03:35 +0100 Subject: [PATCH 035/158] =?UTF-8?q?ui:=20It=E2=80=99s=202024=20now!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/ui.scm (show-version-and-exit): Change year to 2024. Change-Id: I00fc2754da2b93d8b595a35aacdff087124df706 --- guix/ui.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index e3bf07212f..962d291d2e 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2023 Ludovic Courtès +;;; Copyright © 2012-2024 Ludovic Courtès ;;; Copyright © 2013, 2018 Mark H Weaver ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014 Cyril Roelandt @@ -555,7 +555,7 @@ See the \"Application Setup\" section in the manual, for more info.\n")) (leave-on-EPIPE (simple-format #t "~a (~a) ~a~%" command %guix-package-name %guix-version) - (format #t "Copyright ~a 2023 ~a" + (format #t "Copyright ~a 2024 ~a" ;; TRANSLATORS: Translate "(C)" to the copyright symbol ;; (C-in-a-circle), if this symbol is available in the user's ;; locale. Otherwise, do not translate "(C)"; leave it as-is. */ From d5724111ea2a8f5312b47fe9aae2bc74278c127e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 17 Dec 2023 15:30:44 +0100 Subject: [PATCH 036/158] =?UTF-8?q?daemon:=20Change=20default=20=E2=80=98t?= =?UTF-8?q?imeout=E2=80=99=20and=20=E2=80=98max-silent-time=E2=80=99=20val?= =?UTF-8?q?ues.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Having a timeout seems generally preferable as it makes sure build slots are not kept busy for no good reason (few package builds, if any, are expected to exceed these values). * nix/libstore/globals.cc (Settings::Settings): Change ‘maxSilentTime’ and ‘buildTimeout’. * gnu/services/base.scm ()[max-silent-time] [timeout]: Change default values. * doc/guix.texi (Invoking guix-daemon, Base Services): Adjust accordingly. Change-Id: I25c50893f3f7fcca451b8f093d9d4d1a15fa58d8 --- doc/guix.texi | 8 ++++---- gnu/services/base.scm | 4 ++-- nix/libstore/globals.cc | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 924dbf23ba..a648a106b3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1799,7 +1799,7 @@ Setup}), or simply fail. When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure. -The default value is @code{0}, which disables the timeout. +The default value is @code{3600} (one hour). The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--max-silent-time}}). @@ -1808,7 +1808,7 @@ Build Options, @option{--max-silent-time}}). Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure. -The default value is @code{0}, which disables the timeout. +The default value is 24 hours. The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--timeout}}). @@ -19455,8 +19455,8 @@ few seconds when enough entropy is available and is only done once; you might want to turn it off for instance in a virtual machine that does not need it and where the extra boot time is a problem. -@item @code{max-silent-time} (default: @code{0}) -@itemx @code{timeout} (default: @code{0}) +@item @code{max-silent-time} (default: @code{3600}) +@itemx @code{timeout} (default: @code{(* 3600 24)}) The number of seconds of silence and the number of seconds of activity, respectively, after which a build process times out. A value of zero disables the timeout. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 6539bfd6ce..60388a22dd 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1798,9 +1798,9 @@ archive' public keys, with GUIX." (chroot-directories guix-configuration-chroot-directories ;list of file-like/strings (default '())) (max-silent-time guix-configuration-max-silent-time ;integer - (default 0)) + (default 3600)) (timeout guix-configuration-timeout ;integer - (default 0)) + (default (* 3600 24))) (log-compression guix-configuration-log-compression (default 'gzip)) (discover? guix-configuration-discover? diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc index d4f9a46a74..89add1f107 100644 --- a/nix/libstore/globals.cc +++ b/nix/libstore/globals.cc @@ -32,8 +32,8 @@ Settings::Settings() buildCores = 1; readOnlyMode = false; thisSystem = SYSTEM; - maxSilentTime = 0; - buildTimeout = 0; + maxSilentTime = 3600; + buildTimeout = 3600 * 24; useBuildHook = true; printBuildTrace = false; multiplexedBuildOutput = false; From 5dbfd2db62354d96eb69d30a66422f362688ebbb Mon Sep 17 00:00:00 2001 From: Yuval Langer Date: Sat, 16 Dec 2023 02:09:20 +0200 Subject: [PATCH 037/158] gnu: Add guile-srfi-133. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/guile-xyz.scm (guile-srfi-133): New variable. Co-authored-by: Ludovic Courtès Change-Id: I9466a7def7a90aeabf40c92bd8d78608e8011021 --- gnu/packages/guile-xyz.scm | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index afd8900848..328c2cdf18 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3565,6 +3565,80 @@ structures. This package re-uses the SRFI sample implementation.") ;; contains ISC code from the SRFI sample implementation license:isc)))) +(define-public guile-srfi-133 + (package + (name "guile-srfi-133") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/scheme-requests-for-implementation/srfi-133") + (commit "db81a114cd3e23375f024baec15482614ec90453"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a7srl72291yah0aj6rwddhj041v2spximhknjj7hczlparsrm7f")))) + (build-system guile-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-create-and-delete-files + (lambda _ + (rename-file "vectors" "srfi") + (rename-file "srfi/vectors-test.scm" "srfi/srfi-test.scm") + (rename-file "srfi/vectors-impl.scm" "srfi/srfi-impl.scm") + (with-output-to-file "srfi/srfi-133.scm" + (lambda () + (display "(define-module (srfi srfi-133) + #:replace (;; Constructors + vector-copy + + ;; Mutators + vector-fill! vector-copy! + + ;; Conversion + vector->list list->vector) + #:export (;; Constructors + vector-unfold vector-unfold-right vector-reverse-copy + vector-append vector-concatenate vector-append-subvectors + + ;; Predicates + vector-empty? vector= + + ;; Iteration + vector-fold vector-fold-right vector-map vector-map! + vector-for-each vector-count vector-cumulate + + ;; Searching + vector-index vector-index-right vector-skip vector-skip-right + vector-binary-search vector-any vector-every vector-partition + + ;; Mutators + vector-swap! vector-reverse! + vector-reverse-copy! vector-unfold! vector-unfold-right! + + ;; Conversion + reverse-vector->list reverse-list->vector + vector->string string->vector)) + +(include \"srfi-impl.scm\")"))) + (for-each (lambda (filename) + (delete-file filename)) + '("tests/run.scm" + "srfi/vectors.sld" + "srfi/vectors.scm"))))))) + (native-inputs + (list guile-3.0)) + (home-page "https://github.com/scheme-requests-for-implementation/srfi-133") + (synopsis "R7RS-compatible vector library for Guile") + (description + "This package provides a Guile implementation of +@uref{https://srfi.schemers.org/srfi-133/srfi-133.html, SRFI-133}, a +comprehensive library of vector operations.") + (license license:expat))) + (define-public guile-srfi-145 (package (name "guile-srfi-145") From 65af293c3736b2147c0af764414f2efe720e521e Mon Sep 17 00:00:00 2001 From: Feng Shu Date: Thu, 14 Dec 2023 11:02:51 +0800 Subject: [PATCH 038/158] =?UTF-8?q?services:=20xorg:=20=E2=80=98dbus-daemo?= =?UTF-8?q?n-wrapper=E2=80=99=20handles=20Home=20profile.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/xorg.scm (dbus-daemon-wrapper): Handle Home profile. Co-authored-by: Ludovic Courtès Change-Id: Ib2f2330b7ea017ddf33d636de71aaa1c316808cb --- gnu/services/xorg.scm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index f8cf9f25b6..1ee15ea90c 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -981,6 +981,11 @@ argument."))) (lambda (pw) (string-append (passwd:dir pw) "/.guix-profile")))) + (define home-profile + (and=> (getpw (getuid)) + (lambda (pw) + (string-append (passwd:dir pw) "/.guix-home/profile")))) + ;; If we are able to find the user's profile, we can add it to ;; the search paths set below. We need to do this so that D-Bus ;; can start services installed by the user. This allows @@ -988,9 +993,13 @@ argument."))) ;; 'evolution') to work even if those services are only available ;; in the user's profile. See . (define profiles - (if user-profile - (list user-profile system-profile) - (list system-profile))) + (append (if home-profile + (list home-profile) + '()) + (if user-profile + (list user-profile) + '()) + (list system-profile))) (setenv "XDG_CONFIG_DIRS" (string-join (map (cut string-append <> "/etc/xdg") profiles) From 5279bd453f354cbbaafff44e46c6fa03a39bc10a Mon Sep 17 00:00:00 2001 From: Yuval Langer Date: Mon, 11 Dec 2023 03:00:50 +0200 Subject: [PATCH 039/158] gnu: Add guile-srfi-232. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/guile-xyz.scm (guile-srfi-232): New variable. Signed-off-by: Ludovic Courtès Change-Id: Id5b3511d51a7f8f391231c2129bec96b78887880 --- gnu/packages/guile-xyz.scm | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 328c2cdf18..75e3754046 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3840,6 +3840,56 @@ Either represents the concept of values which are either correct (Right) or errors (Left).") (license license:expat)))) +(define-public guile-srfi-232 + (package + (name "guile-srfi-232") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/scheme-requests-for-implementation/srfi-232") + (commit "c3f580d220778cd71492aba4fdd0c7040968e705"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0lp4zcqjjj6hwfh3ix71wak1nffgg4npzsg7cdxfn9hf6iwf9xby")))) + (build-system guile-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-and-delete-things + (lambda _ + (let* ((srfi-directory (string-append #$output "/srfi"))) + (mkdir-p "srfi") + (with-output-to-file "srfi/srfi-232.scm" + (lambda () + (display "(define-library (srfi srfi-232) + (export curried define-curried) + (import (only (guile) import) + (scheme base)) + (include \"../srfi-232.scm\"))"))) + (for-each (lambda (filename) + (delete-file filename)) + '("test-body.scm" + "test-chibi.scm" + "test-srfi-64.scm")))))))) + (native-inputs + (list guile-3.0)) + (home-page "https://github.com/scheme-requests-for-implementation/srfi-232") + (synopsis "Flexible curried procedures") + (description + " This package provides an implementation of +@uref{https://srfi.schemers.org/srfi-232/srfi-232.html, SRFI-232}, which +describes @code{curried}, a variant of @code{lambda} that creates true curried +procedures which also behave just like ordinary Scheme procedures. They can +be applied to their arguments one by one, all at once, or anywhere in between, +without any novel syntax. @code{curried} also supports nullary and variadic +procedures, and procedures created with it have predictable behavior when +applied to surplus arguments.") + (license license:expat))) + (define-public emacsy (package (name "emacsy") From 41f0de65b498477da0783a69226dfa92848897ad Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 Jan 2024 17:44:54 +0100 Subject: [PATCH 040/158] gnu: Add trinityrnaseq. * gnu/packages/bioinformatics.scm (trinityrnaseq): New variable. Change-Id: Ia2c45623576e7e2e51b040b1001b1dd88c1324bb --- gnu/packages/bioinformatics.scm | 121 ++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index fa22399136..4bed2e4fe8 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -130,6 +130,7 @@ #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) + #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages protobuf) @@ -4999,6 +5000,126 @@ be of arbitrary length. Repeats with pattern size in the range from 1 to 2000 bases are detected.") (license license:agpl3+))) +(define-public trinityrnaseq + (package + (name "trinityrnaseq") + (version "2.13.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/trinityrnaseq/trinityrnaseq.git") + (commit (string-append "Trinity-v" version)) + (recursive? #true))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qszrxqbx4q5pavpgm4rkrh1z1v1mf7qx83vv3fnlqdmncnsf1gv")))) + (build-system gnu-build-system) + (arguments + (list + #:test-target "test" + #:modules + '((guix build gnu-build-system) + (guix build utils) + (ice-9 match) + (srfi srfi-1)) + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + ;; Do not require version.h, which triggers a local build of a + ;; vendored htslib. + (substitute* "trinity-plugins/bamsifter/Makefile" + (("sift_bam_max_cov.cpp htslib/version.h") + "sift_bam_max_cov.cpp")))) + (add-after 'build 'build-plugins + (lambda _ + ;; Run this in the subdirectory to avoid running the + ;; tests right here. + (with-directory-excursion "trinity-plugins" + (invoke "make" "plugins")))) + ;; The install script uses rsync, provides no overrides for the + ;; default location at /usr/local/bin, and patching it would change + ;; all lines that do something. + (replace 'install + (lambda* (#:key inputs #:allow-other-keys) + (let ((share (string-append #$output "/share/trinity/")) + (bin (string-append #$output "/bin/"))) + (mkdir-p bin) + (copy-recursively "." share) + (delete-file (string-append share "/Chrysalis/build/CMakeFiles/CMakeOutput.log")) + (delete-file (string-append share "/Inchworm/build/CMakeFiles/CMakeOutput.log")) + + (wrap-program (string-append share "Trinity") + `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE"))) + `("PERL5LIB" ":" = (,(getenv "PERL5LIB"))) + `("PYTHONPATH" ":" = (,(getenv "GUIX_PYTHONPATH"))) + `("PATH" ":" = + ,(cons (string-append share "/trinity-plugins/BIN") + (filter-map (match-lambda + ((name . dir) + (string-append dir "/bin"))) + inputs)))) + (symlink (string-append share "Trinity") + (string-append bin "Trinity")))))))) + (inputs + (list blast+ + bowtie + fastqc + hisat + htslib + icedtea-8 + jellyfish + kallisto + multiqc + perl + perl-uri-escape + python-numpy + python-wrapper + r-ape + r-argparse + r-biobase + r-ctc + r-deseq2 + r-edger + r-fastcluster + r-glimma + r-goplot + r-goseq + r-gplots + r-minimal + r-qvalue + r-rots + r-sm + r-tidyverse + rsem + salmon + samtools + sra-tools + star + zlib)) + (propagated-inputs + (list coreutils + gzip + which)) + (native-inputs (list cmake)) + (home-page "https://github.com/trinityrnaseq/trinityrnaseq/wiki") + (synopsis "Trinity RNA-Seq de novo transcriptome assembly") + (description "Trinity assembles transcript sequences from Illumina RNA-Seq +data. Trinity represents a novel method for the efficient and robust de novo +reconstruction of transcriptomes from RNA-seq data. Trinity combines three +independent software modules: Inchworm, Chrysalis, and Butterfly, applied +sequentially to process large volumes of RNA-seq reads. Trinity partitions +the sequence data into many individual de Bruijn graphs, each representing the +transcriptional complexity at a given gene or locus, and then processes each +graph independently to extract full-length splicing isoforms and to tease +apart transcripts derived from paralogous genes.") + (license license:bsd-3))) + (define-public repeat-masker (package (name "repeat-masker") From cb15b360aabb9a572dd8f4a697e50cba4481902e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 Jan 2024 17:55:17 +0100 Subject: [PATCH 041/158] gnu: Add python-snaptools. * gnu/packages/bioinformatics.scm (python-snaptools): New variable. Change-Id: I4f4b32cbbb64472e65d2d88184173b6e1a75e8d2 --- gnu/packages/bioinformatics.scm | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 4bed2e4fe8..a363298386 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2366,6 +2366,40 @@ sequencing data and the end result are tables of UMI-unique DamID and CEL-Seq counts.") (license license:expat))) +(define-public python-snaptools + (package + (name "python-snaptools") + (version "1.4.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "snaptools" version)) + (sha256 + (base32 + "1s5373g5jjbshh3q39zy7dlxr7nda6ksxq9d1gw46h82c4fsmfbn")))) + (build-system pyproject-build-system) + (propagated-inputs + (list python-future + python-h5py + python-louvain + python-numpy + python-pybedtools + python-pysam)) + (home-page "https://github.com/r3fang/SnapTools") + (synopsis "Tools for processing snap files" ) + (description + "@code{SnapTools} can operate on snap files the following types of +operations: + +@itemize +@item index the reference genome before alignment; +@item align reads to the corresponding reference genome; +@item pre-process by convert pair-end reads into fragments, checking the + mapping quality score, alingment and filtration; +@item create the cell-by-bin matrix. +@end itemize") + (license license:asl2.0))) + (define-public python-bioframe (package (name "python-bioframe") From 657fd534fb3ba3daf3852780f5f1eb9be50e6842 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 Jan 2024 18:11:52 +0100 Subject: [PATCH 042/158] gnu: Add python-louvain-igraph. * gnu/packages/graph.scm (python-louvain-igraph): New variable. Change-Id: I773ee905af81731a12b60ebfa0c2f94e9cb50c45 --- gnu/packages/graph.scm | 50 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index a40b580417..26b9d03a73 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018, 2019, 2020, 2022, 2023 Ricardo Wurmus +;;; Copyright © 2017-2024 Ricardo Wurmus ;;; Copyright © 2018 Joshua Sierles, Nextjournal ;;; Copyright © 2018, 2020, 2022 Tobias Geerinckx-Rice ;;; Copyright © 2019, 2021, 2022 Efraim Flashner @@ -426,6 +426,48 @@ algorithm for community detection in large networks.") large networks.") (license license:gpl3+))) +(define-public python-louvain-igraph + (package + (name "python-louvain-igraph") + (version "0.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vtraag/louvain-igraph") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1j2ybihvvzggwjb9zvm829aqb5b94q10h8bw6v0h42xd9w75z9sv")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'find-igraph + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) + (substitute* "setup.py" + (("/usr/include/igraph") + (string-append #$(this-package-input "igraph") + "/include/igraph")))))))) + (propagated-inputs (list python-igraph)) + (inputs (list igraph)) + (native-inputs + (list python-ddt + python-setuptools-scm + pkg-config)) + (home-page "https://github.com/vtraag/louvain-igraph") + (synopsis "Implementation of the Louvain algorithm") + (description "This package implements the Louvain algorithm for community +detection in C++ and exposes it to Python. Besides the relative flexibility +of the implementation, it also scales well, and can be run on graphs of +millions of nodes (as long as they can fit in memory). The core function is +@code{find_partition} which finds the optimal partition using the louvain +algorithm for a number of different methods.") + (license license:gpl3+))) + (define-public faiss (package (name "faiss") @@ -449,8 +491,8 @@ large networks.") (build-system cmake-build-system) (arguments `(#:configure-flags - (list "-DBUILD_WITH_GPU=OFF" ; thanks, but no thanks, CUDA. - "-DBUILD_TUTORIAL=OFF") ; we don't need those + (list "-DBUILD_WITH_GPU=OFF" ; thanks, but no thanks, CUDA. + "-DBUILD_TUTORIAL=OFF") ; we don't need those #:phases (modify-phases %standard-phases (add-after 'unpack 'prepare-build @@ -466,7 +508,7 @@ large networks.") '())))))) (substitute* "CMakeLists.txt" (("-m64") "") - (("-mpopcnt") "") ; only some architectures + (("-mpopcnt") "") ; only some architectures (("-msse4") (string-append (string-join features) From 9068dc9f29a81f8f061f66e1b1105361cea7242d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 5 Jan 2024 18:21:06 +0100 Subject: [PATCH 043/158] gnu: Add bustools. * gnu/packages/bioinformatics.scm (bustools): New variable. Change-Id: I24a936ad1d630663a41855a833e35fb9caa0155c --- gnu/packages/bioinformatics.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index a363298386..7dbebcf3da 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -575,6 +575,30 @@ BED, GFF/GTF, VCF.") whole-genome bisulfite sequencing (WGBS) reads from directional protocol.") (license license:asl2.0))) +(define-public bustools + (package + (name "bustools") + (version "0.43.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BUStools/bustools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "068kjlc4d528269nl5mc3j8h2c95r1v545d3fi1iw1ckg8rba0hg")))) + (build-system cmake-build-system) + (arguments (list #:tests? #f)) ;no test target + (inputs (list zlib)) + (home-page "https://bustools.github.io") + (synopsis "Tools for working with BUS files") + (description "bustools is a program for manipulating BUS files for single +cell RNA-Seq datasets. It can be used to error correct barcodes, collapse +UMIs, produce gene count or transcript compatibility count matrices, and is useful +for many other tasks.") + (license license:bsd-2))) + (define-public cellsnp-lite ;; Last release is from November 2021 and does not contain fixes. (let ((commit "0885d746b0b1ea65c8ef92f8943ca7669ca9734a") From dd865cb515b752d04794c44cd1a6e1b941b7aafe Mon Sep 17 00:00:00 2001 From: Wilko Meyer Date: Tue, 2 Jan 2024 00:25:10 +0100 Subject: [PATCH 044/158] gnu: Update my copyright. * gnu/packages/linux.scm: Update copyright header. Change-Id: Idaa9c90e05eba9d0f417f11e86a80bf8119a7a65 Signed-off-by: Leo Famulari --- 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 1c359cb300..18fb2ffeab 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -76,7 +76,7 @@ ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 dan ;;; Copyright © 2023 Foundation Devices, Inc. -;;; Copyright © 2023 Wilko Meyer +;;; Copyright © 2023, 2024 Wilko Meyer ;;; Copyright © 2023 Jaeme Sifat ;;; ;;; This file is part of GNU Guix. From 8873e4cc1671e68fcd0d1f3c6a36815492d751d8 Mon Sep 17 00:00:00 2001 From: Wilko Meyer Date: Tue, 2 Jan 2024 00:25:11 +0100 Subject: [PATCH 045/158] gnu: linux-libre 6.6: Update to 6.6.9. * gnu/packages/linux.scm (linux-libre-6.6-version): Update to 6.6.9. (linux-libre-6.6-pristine-source, deblob-scripts-6.6): Update hashes. Change-Id: Id68891618879662b08e539f684482c4a8ef02541 Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 18fb2ffeab..dfd47418b2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -494,17 +494,17 @@ 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-6.6-version "6.6.8") +(define-public linux-libre-6.6-version "6.6.9") (define-public linux-libre-6.6-gnu-revision "gnu") (define deblob-scripts-6.6 (linux-libre-deblob-scripts linux-libre-6.6-version linux-libre-6.6-gnu-revision (base32 "0g8m0rb15b0231dv8ji456s75a67szsaim71may3yprplycz6pav") - (base32 "1hg3ck1j8288fhlhcvhgs1zzwh3i62nfvphw7x3vsaqr75kiwbjp"))) + (base32 "0kavbby960k7wg355p3hjb9v1c4gnk8dv3lkfhpz44ayhv7kihg5"))) (define-public linux-libre-6.6-pristine-source (let ((version linux-libre-6.6-version) - (hash (base32 "05i4ayj9wyjkd1s8ixx7bxwcyagqyx8rhj1zvbc3cjqyw4sc8djh"))) + (hash (base32 "1cs8ym3yq9czjx6sbxpmn16l6a577mc4c1ff7nk1p2gw1jpnbg4f"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.6))) From 9abca269ddc5cd1b689ec6137e6def2402ccce19 Mon Sep 17 00:00:00 2001 From: Wilko Meyer Date: Tue, 2 Jan 2024 00:25:12 +0100 Subject: [PATCH 046/158] gnu: linux-libre 6.1: Update to 6.1.70. * gnu/packages/linux.scm (linux-libre-6.1-version): Update to 6.1.70. (linux-libre-6.1-pristine-source, deblob-scripts-6.1): Update hashes. Change-Id: I5bcebd56f3b4d6cc7ad7419264c78c56c6f3ff95 Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index dfd47418b2..0fe64bacf3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -512,17 +512,17 @@ 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-6.1-version "6.1.69") +(define-public linux-libre-6.1-version "6.1.70") (define-public linux-libre-6.1-gnu-revision "gnu") (define deblob-scripts-6.1 (linux-libre-deblob-scripts linux-libre-6.1-version linux-libre-6.1-gnu-revision (base32 "1sf80f2i4vf888xjcn84ymn4w5ynn30ib9033zwmv7f09yvfhapy") - (base32 "1hdibv43xbn1lv83i6qjgfmf1bvqxvq17fryfsq4r4sjgs9212js"))) + (base32 "1jg2v1nxd6i5x536vmd1l14xhpzrcimpmjfipb1zkrwil102y25f"))) (define-public linux-libre-6.1-pristine-source (let ((version linux-libre-6.1-version) - (hash (base32 "0hdm28k49kmy9r96hckps0bvvaq9m06l72n8ih305rccs6a2cgby"))) + (hash (base32 "1vxgardfm2fi4c7zkxpljqicllfqqnp835a9lyb7dh2nchk6a4zd"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.1))) From deeb7d1f53d7ddfa977b3eadd760312bbd0a2509 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 5 Jan 2024 13:12:31 -0500 Subject: [PATCH 047/158] gnutls: Update to 3.8.2 (fixes CVE-2023-5981). * gnu/packages/tls.scm (gnutls): Graft with gnutls-3.8.2. (gnutls-3.8.1): Replace with... (gnutls-3.8.2): ... this. Remove obsolete set-path-max phase, and make the variable private. Change-Id: Ib5cd276c9ecc87d1adc2f4f9633d49676cfe856d --- gnu/packages/tls.scm | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 208a7ff640..806a761d9b 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2018 Clément Lassieur ;;; Copyright © 2019 Mathieu Othacehe ;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen -;;; Copyright © 2020, 2021, 2023 Maxim Cournoyer +;;; Copyright © 2020, 2021, 2023, 2024 Maxim Cournoyer ;;; Copyright © 2021 Solene Rapenne ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxime Devos @@ -200,7 +200,7 @@ living in the same process.") (package (name "gnutls") (version "3.7.7") - (replacement gnutls-3.8.1) + (replacement gnutls-3.8.2) (source (origin (method url-fetch) ;; Note: Releases are no longer on ftp.gnu.org since the @@ -305,11 +305,11 @@ required structures.") (define-deprecated/public-alias gnutls-latest gnutls) ;; Replacement for gnutls@3.7.7 to address GNUTLS-SA-2020-07-14 / -;; CVE-2023-0361 -(define-public gnutls-3.8.1 +;; CVE-2023-0361 and GNUTLS-SA-2023-10-23 / CVE-2023-5981. +(define gnutls-3.8.2 (package (inherit gnutls) - (version "3.8.1") + (version "3.8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnutls/v" @@ -318,20 +318,7 @@ required structures.") (patches (search-patches "gnutls-skip-trust-store-test.patch")) (sha256 (base32 - "1742jiigwsfhx7nj5rz7dwqr8d46npsph6b68j7siar0mqarx2xs")))) - (arguments - (if (target-hurd?) - ;; Fix reference to undefined 'PATH_MAX'. This is fixed in GnuTLS - ;; commit 3b6ec1e01de4e96d36276dfe34ee9e183f285264. - (substitute-keyword-arguments (package-arguments gnutls) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (add-after 'unpack 'set-path-max - (lambda _ - (substitute* "lib/pathbuf.h" - (("^#define GNUTLS_PATH_MAX PATH_MAX") - "#define GNUTLS_PATH_MAX 8192\n"))))))) - (package-arguments gnutls))))) + "0xzgmp1ck5ifvdki4jg29r278w2p1m3a0qz38g99v6zsdw0yarg7")))))) (define-public gnutls/dane ;; GnuTLS with build libgnutls-dane, implementing DNS-based From 67c9cdfdce6b33bf0f3f90ad1f8db82086c8142a Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 5 Jan 2024 14:36:51 -0500 Subject: [PATCH 048/158] gnu: ffmpeg: Update to 6.1.1 (fixes CVE-2023-47342, CVE-2023-47344). * gnu/packages/video.scm (ffmpeg): Update to 6.1.1. Fixes CVE-2023-47342 and CVE-2023-47344 (see: https://ffmpeg.org/security.html) Change-Id: I5196a62fc56341809ed597389b431dae32bd50da --- 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 6da4897a57..e70aa5352e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1657,14 +1657,14 @@ operate properly.") (define-public ffmpeg (package (name "ffmpeg") - (version "6.0") + (version "6.1.1") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "10kh2f4y4isfqj4xpcqqnzk611jh89ywcjyjnq9c2jcv5p18ggjp")))) + "0s7r2qv8gh2a3w568n9xxgcz0q8j5ww1jdsci1hm9f4l1yqg9146")))) (outputs '("out" "debug")) (build-system gnu-build-system) (inputs From ce0d654bb5bbb94881b8d20ca9f1ca9cc8511e90 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 5 Jan 2024 17:03:58 -0500 Subject: [PATCH 049/158] gnu: mpd: Update to 0.23.15. * gnu/packages/mpd.scm (mpd): Update to 0.23.15. Change-Id: I584f33d5be6b1b62a97b014a758dfbecc8a6fa99 --- gnu/packages/mpd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index e462f0f01d..c5e8f2bdff 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -117,7 +117,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.23.14") + (version "0.23.15") (source (origin (method url-fetch) (uri @@ -126,7 +126,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "1lh9nn4a7ng6i08df7rbs8c4nbgmz883pss9p2gswa6m4rsadfc5")))) + "06k60ych9crifyx6zfc98hdcihixq5nba1c9rwngib6ik8ik40am")))) (build-system meson-build-system) (arguments (list From c0e21e523d93081153a2ffc91e5a9f06afe62b91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leo=20Nikkil=C3=A4?= Date: Fri, 1 Dec 2023 05:58:44 +0200 Subject: [PATCH 050/158] gnu: mpd: Add D-Bus dependency. MPD requires D-Bus for Zeroconf support. Avahi is currently included as a dependency, but Zeroconf isn't actually enabled due D-Bus. This also enables udisks support. Before this change, `mpd -V' returns: Other features: epoll icu inotify ipv6 systemd tcp un After this change, `mpd -V' returns: Other features: avahi dbus udisks epoll icu inotify ipv6 systemd tcp un * gnu/packages/mpd.scm (mpd): Add D-Bus dependency. [inputs]: Add dbus. Signed-off-by: Maxim Cournoyer --- gnu/packages/mpd.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index c5e8f2bdff..e16c6bb964 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -162,6 +162,7 @@ interfacing MPD in the C, C++ & Objective C languages.") boost chromaprint curl + dbus elogind expat ffmpeg From 837e5f737e263f7f0da8bef84ec347e209839f1e Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Fri, 5 Jan 2024 03:03:30 +0000 Subject: [PATCH 051/158] gnu: go-github-com-hjson-hjson-go: Fix commit. This package was updated in ada2152893eda2301890e6a438c3e9fb4e0f190d and moved with lower version which broke yggdrasil. Author: Artyom V. Poptsov AuthorDate: Wed Nov 1 00:15:16 2023 +0300 Commit: Christopher Baines CommitDate: Fri Nov 3 10:14:06 2023 +0000 gnu: go-github-com-hjson-hjson-go: Update to 4.3.1. * gnu/packages/golang.scm (go-github-com-hjson-hjson-go): Update to 4.3.1. Change-Id: Iee2aef614686cbf79f388e2dd9435745d5502e2a Signed-off-by: Andrew Tropin --- gnu/packages/golang-web.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 7759916c35..3e60bfaf33 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -21,6 +21,7 @@ ;;; Copyright © 2023 Hilton Chain ;;; Copyright © 2023 Katherine Cox-Buday ;;; Copyright © 2023 Nicolas Graves +;;; Copyright © 2023 Artyom V. Poptsov ;;; ;;; This file is part of GNU Guix. ;;; @@ -870,7 +871,7 @@ protocol.") (define-public go-github-com-hjson-hjson-go (package (name "go-github-com-hjson-hjson-go") - (version "3.1.0") + (version "4.3.1") (source (origin (method git-fetch) @@ -879,7 +880,7 @@ protocol.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dfdiahimg6z9idg8jiqxwnlwjnmasbjccx8gnag49cz4yfqskaz")))) + (base32 "138vmbnrwzxf64cia27k407clrydvs2jx927dlv6ziydiqyvy7m3")))) (build-system go-build-system) (arguments '(#:import-path "github.com/hjson/hjson-go")) From 50514b8d5559d78f542fb97b476736cada61cec2 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Fri, 5 Jan 2024 03:03:31 +0000 Subject: [PATCH 052/158] gnu: yggdrasil: Sort inputs alphabetically. * gnu/packages/networking.scm (yggdrasil)[propagated-inputs]: Sort alphabetically to ease maintenance. Change-Id: I336307433842bd1dce0cfb62d93be767e0a92dbb Signed-off-by: Andrew Tropin --- gnu/packages/networking.scm | 42 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index c3796f7328..bf72fd7de2 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -4450,31 +4450,31 @@ QUIC protocol.") #:deep? #true))) (cons go-golang-org-x-sys-0.8 (map p - (list go-golang-zx2c4-com-wireguard - go-golang-org-x-text - go-golang-org-x-net - go-golang-org-x-crypto - go-golang-org-x-tools - go-netns - go-netlink + (list go-github-com-arceliar-ironwood + go-github-com-arceliar-phony go-github-com-bits-and-blooms-bitset go-github-com-bits-and-blooms-bloom - go-github-com-quic-go-quic-go - go-github-com-hjson-hjson-go - go-github-com-olekukonko-tablewriter - go-github-com-mitchellh-mapstructure - go-github-com-mattn-go-runewidth - go-github-com-mattn-go-isatty - go-github-com-mattn-go-colorable - go-github-com-kardianos-minwinsvc - go-github-com-hjson-hjson-go - go-github-com-hashicorp-go-syslog - go-github-com-gologme-log - go-github-com-fatih-color go-github-com-cheggaaa-pb-v3 + go-github-com-fatih-color + go-github-com-gologme-log + go-github-com-hashicorp-go-syslog + go-github-com-hjson-hjson-go + go-github-com-hjson-hjson-go + go-github-com-kardianos-minwinsvc + go-github-com-mattn-go-colorable + go-github-com-mattn-go-isatty + go-github-com-mattn-go-runewidth + go-github-com-mitchellh-mapstructure + go-github-com-olekukonko-tablewriter + go-github-com-quic-go-quic-go go-github-com-vividcortex-ewma - go-github-com-arceliar-phony - go-github-com-arceliar-ironwood))))) + go-golang-org-x-crypto + go-golang-org-x-net + go-golang-org-x-text + go-golang-org-x-tools + go-golang-zx2c4-com-wireguard + go-netlink + go-netns))))) (home-page "https://yggdrasil-network.github.io/blog.html") (synopsis "Experiment in scalable routing as an encrypted IPv6 overlay network") From e994bc0abf39db228fa61f1aaf24840c19c47647 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Fri, 5 Jan 2024 03:03:32 +0000 Subject: [PATCH 053/158] gnu: yggdrasil: Remove duplicated input. * gnu/packages/networking.scm (yggdrasil)[propagated-inputs]: Remove duplicated go-github-com-hjson-hjson-go. Change-Id: I13b1808ffcbf80a2b4fd17188a8b62557a943d24 Signed-off-by: Andrew Tropin --- gnu/packages/networking.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index bf72fd7de2..9844430656 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -4459,7 +4459,6 @@ QUIC protocol.") go-github-com-gologme-log go-github-com-hashicorp-go-syslog go-github-com-hjson-hjson-go - go-github-com-hjson-hjson-go go-github-com-kardianos-minwinsvc go-github-com-mattn-go-colorable go-github-com-mattn-go-isatty From 9891dd881489be65980f326d87ca580c0001c778 Mon Sep 17 00:00:00 2001 From: Wilko Meyer Date: Sat, 30 Dec 2023 20:25:50 +0100 Subject: [PATCH 054/158] gnu: Add qcheckers. * gnu/packages/games.scm (qcheckers): New variable. Change-Id: I399ac6aa0c268a8fcf68aabe716fe2d2d5e42605 Signed-off-by: Guillaume Le Vaillant --- gnu/packages/games.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8117886583..4a2b2fd832 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -79,6 +79,7 @@ ;;; Copyright © 2023 Florian Pelz ;;; Copyright © 2023 Ivana Drazovic ;;; Copyright © 2023 gemmaro +;;; Copyright © 2023 Wilko Meyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -10115,6 +10116,36 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.") (home-page "https://github.com/bernds/q5Go") (license license:gpl2+))) +(define-public qcheckers + (package + (name "qcheckers") + (version "0.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/portnov/qcheckers") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05wzql6abzdf6l0vdzki4rfy2zn31mcplh1wkw3ddk8w81pvaymw")))) + (build-system qt-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "qmake" + (string-append "PREFIX=" #$output))))))) + (inputs (list qtbase-5 qtsvg-5)) + (home-page "https://portnov.github.io/qcheckers/") + (synopsis "Qt-based checkers boardgame") + (description "QCheckers, formely known as KCheckers, is a is a Qt version +of the classic boardgame checkers (also known as draughts).") + (license license:gpl2+))) + (define-public xmoto (package (name "xmoto") From 157ad70182ade608203e9c0a42fb45b022039698 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sat, 6 Jan 2024 15:30:57 +0100 Subject: [PATCH 055/158] gnu: p2pool: Update to 3.10. * gnu/packages/finance.scm (p2pool): Update to 3.10. Change-Id: Iebc332cdbd1204a43d5cb53b78994c11191429ca --- gnu/packages/finance.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 749f741710..eadaa46102 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -2300,7 +2300,7 @@ mining.") (define-public p2pool (package (name "p2pool") - (version "3.7") + (version "3.10") (source (origin (method git-fetch) @@ -2309,7 +2309,7 @@ mining.") (commit (string-append "v" version)) (recursive? #t))) (file-name (git-file-name name version)) - (sha256 (base32 "1sghdk8yq8si0bq0z83fji48q8yrq0ymvsxbbh5mscw6223syrjq")) + (sha256 (base32 "0lp9slfwaq3wp4x6xpsiazam5lv6dz57m20adzlzzk0anb1ascr0")) (modules '((guix build utils))) (snippet #~(for-each delete-file-recursively From aec0dea1f63fe3b7e64bb611274590d570205b95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 30 Dec 2023 16:14:53 +0800 Subject: [PATCH 056/158] gnu: catfish: Update to 4.18.0. * gnu/packages/xfce.scm (catfish): Update to 4.18.0. Change-Id: Ibc9a9774b20d918ea7aa17404d093d2043ce6855 --- 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 73889c945e..5bde8de444 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -216,7 +216,7 @@ to share commonly used Xfce widgets among the Xfce applications.") (define-public catfish (package (name "catfish") - (version "4.16.4") + (version "4.18.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/" @@ -224,7 +224,7 @@ to share commonly used Xfce widgets among the Xfce applications.") "/catfish-" version ".tar.bz2")) (sha256 (base32 - "1z5m9f4cj473n68rrhhbkq3x5df5k394qp4n27lqqyny6k2h2p3f")))) + "16cbsnki7qragwhbfs3h0ja7xg8xlf59ajxhddqm0jkmrirrpbpx")))) (build-system python-build-system) (arguments '(#:phases From fc973ae399584c4a345b6c3080c611d64b321495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 30 Dec 2023 16:17:37 +0800 Subject: [PATCH 057/158] gnu: elementary-xfce-icon-theme: Update to 0.18. * gnu/packages/xfce.scm (elementary-xfce-icon-theme): Update to 0.18. Change-Id: Ibcb595e20553c18893db3cad5d95bd85ef1c04fc --- 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 5bde8de444..a44a871ba2 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -270,7 +270,7 @@ it to your needs by using several command line options.") (define-public elementary-xfce-icon-theme (package (name "elementary-xfce-icon-theme") - (version "0.17") + (version "0.18") (source (origin (method git-fetch) (uri @@ -280,7 +280,7 @@ it to your needs by using several command line options.") (file-name (git-file-name name version)) (sha256 (base32 - "0jlawp6rg55w5cm4d7836r660i2pnc5gkzpdjsq7w5875i85arzm")))) + "124bdgghkjkpcsfn9a2ad6zqy233pi9jqmv8w8a3ha6q3al2s11s")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no check target From e661c1f31d66dcc06316ae58850c8c0773845e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 31 Dec 2023 11:26:17 +0800 Subject: [PATCH 058/158] gnu: bbcsdl: Update to 1.39a. * gnu/packages/game-development.scm (bbcsdl): Update to 1.39a. [arguments]: Replace bundled "DejaVuSans-Oblique.ttf" with symlink in the 'install' phase. Change-Id: I7b7c8ec8a8216812e1c7a1fab74695b14f4d3ca2 --- gnu/packages/game-development.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 73f93a9992..37d8442222 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -3269,16 +3269,16 @@ progresses the level, or you may regenerate tiles as the world changes.") (define-public bbcsdl (package (name "bbcsdl") - (version "1.35a") + (version "1.39a") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/rtrussell/BBCSDL/") - (commit "b9b2a3eb438cb799edb2766055b3c38e9518e3e3"))) + (commit "93b0ffae960f4c4f45fdc2202bc6e83ee5ca277c"))) (file-name (git-file-name name version)) (sha256 (base32 - "1d03xmhrl6ba6w0vwfk46mpyc9d0w3bixxj2d4irx7wl7bh3bfic")))) + "03ga14k2hbhflnaynbyx9lwlbxlzx3rv6zqq21yhl183s6d4c0wa")))) (build-system gnu-build-system) (arguments (list @@ -3318,6 +3318,7 @@ progresses the level, or you may regenerate tiles as the world changes.") inputs (string-append "share/fonts/truetype/" font)) (string-append opt "/lib/" font))) '("DejaVuSans.ttf" "DejaVuSansMono.ttf" + "DejaVuSans-Oblique.ttf" "FreeSans.ttf" "FreeMono.ttf" "FreeSerif.ttf")) (mkdir bin) (symlink (string-append opt "/bbcsdl") From 2538a773c53e0f7fce4de0c49b6ec1d41acc25c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 31 Dec 2023 17:15:57 +0800 Subject: [PATCH 059/158] plan9port: Install into "$output/plan9" instead of "$output". This fixes . * gnu/packages/plan9.scm (plan9port)[arguments]: Add 'strip-directories'. : Use "$output/plan9" as PLAN9_TARGET. Remove 'wrap-executables phase, instead invoke "./INSTALL -c" to change hard-coded /usr/local/plan9 paths. Change-Id: I7e24f64445c9b6cdcc0d803239e10b226931a845 --- gnu/packages/plan9.scm | 130 ++++++++++++++++++++--------------------- 1 file changed, 63 insertions(+), 67 deletions(-) diff --git a/gnu/packages/plan9.scm b/gnu/packages/plan9.scm index f78c26e215..5af0f2f74f 100644 --- a/gnu/packages/plan9.scm +++ b/gnu/packages/plan9.scm @@ -94,73 +94,69 @@ reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.") (build-system gnu-build-system) (arguments (list #:tests? #f ;no tests - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'setup - (lambda _ - (delete-file "src/cmd/mk/mk.pdf") - (substitute* "src/cmd/acme/acme.c" - (("/lib/font/bit/lucsans/euro.8.font") - (string-append #$output - "/font/fixed/unicode.5x8.font")) - (("/lib/font/bit/lucm/unicode.9.font") - (string-append #$output - "/font/fixed/unicode.6x9.font"))) - (substitute* (find-files "src") - (("/lib/font/bit") - (string-append #$output "/font"))) - (substitute* "bin/9c" - (("which") - (which "which"))) - (substitute* "src/cmd/fontsrv/freetyperules.sh" - (("'\\$i'/freetype2") - (string-append "-I" - #$freetype - "/include/freetype2"))) - (with-output-to-file "LOCAL.config" - (lambda _ - (format #t "CC9=~a~%" #$(cc-for-target)) - (format #t "FONTSRV=fontsrv~%"))) - (setenv "X11" - #$libx11) - (setenv "PLAN9" - (getcwd)) - (setenv "PLAN9_TARGET" - #$output))) - (delete 'configure) ;no configure - (replace 'build - (lambda _ - (invoke "./INSTALL" "-b"))) - (replace 'install - (lambda _ - (for-each (lambda (x) - (let ((out (string-append #$output - "/" x))) - (mkdir-p out) - (copy-recursively x out))) - ;; TODO: use external sky and dict packages - '("bin" "face" - "font" - "include" - "lib" - "lp" - "mail" - "man" - "ndb" - "plumb" - "tmac" - "troff" - "postscript")) - (install-file "rcmain" #$output))) - (add-after 'install 'wrap-executables - (lambda _ - (for-each (lambda (exe) - (wrap-program exe - `("PLAN9" ":" prefix - (,#$output)))) - (find-files - (string-append #$output "/bin"))))) - ;; Plan9 doesn't compress man pages - (delete 'compress-documentation)))) + #:strip-directories #~'("plan9/bin") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'setup + (lambda _ + (let ((dest (string-append #$output "/plan9"))) + (delete-file "src/cmd/mk/mk.pdf") + (substitute* "src/cmd/acme/acme.c" + (("/lib/font/bit/lucsans/euro.8.font") + (string-append dest + "/font/fixed/unicode.5x8.font")) + (("/lib/font/bit/lucm/unicode.9.font") + (string-append dest + "/font/fixed/unicode.6x9.font"))) + (substitute* (find-files "src") + (("/lib/font/bit") + (string-append dest "/font"))) + (substitute* "bin/9c" + (("which") + (which "which"))) + (substitute* "src/cmd/fontsrv/freetyperules.sh" + (("'\\$i'/freetype2") + (string-append "-I" + #$freetype + "/include/freetype2"))) + (with-output-to-file "LOCAL.config" + (lambda _ + (format #t "CC9=~a~%" #$(cc-for-target)) + (format #t "FONTSRV=fontsrv~%"))) + (setenv "X11" #$libx11) + (setenv "PLAN9" (getcwd)) + (setenv "PLAN9_TARGET" dest)))) + (delete 'configure) ;no configure + (replace 'build + (lambda _ + (invoke "./INSTALL" "-b"))) + (replace 'install + (lambda _ + (invoke "./INSTALL" "-c") + (let ((dest (getenv "PLAN9_TARGET"))) + (for-each (lambda (x) + (let ((out (string-append dest "/" x))) + (mkdir-p out) + (copy-recursively x out))) + ;; TODO: use external sky and dict packages + '("bin" "face" + "font" + "include" + "lib" + "lp" + "mail" + "man" + "ndb" + "plumb" + "tmac" + "troff" + "postscript")) + (install-file "rcmain" dest) + (mkdir-p (string-append #$output "/bin")) + (symlink (string-append dest "/bin/9") + (string-append #$output "/bin/9"))))) + ;; Plan9 doesn't compress man pages + (delete 'compress-documentation)))) (native-inputs (list perl which)) (inputs (list bash-minimal ;for 'wrap-program' fontconfig libx11 libxext libxt)) From 25bcf4eda05b501758b11a53823867dc500ac7d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 31 Dec 2023 17:18:44 +0800 Subject: [PATCH 060/158] plan9port: Update to 0.1.0-1.f8681ac. * gnu/packages/plan9.scm (plan9port): Update to 0.1.0-1.f8681ac. Change-Id: I35eb40eb4213478db48989d8ed2c5865e7ce7afc --- gnu/packages/plan9.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/plan9.scm b/gnu/packages/plan9.scm index 5af0f2f74f..b2d8d75471 100644 --- a/gnu/packages/plan9.scm +++ b/gnu/packages/plan9.scm @@ -73,8 +73,8 @@ reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.") (define-public plan9port ;; no releases - (let ((commit "cc4571fec67407652b03d6603ada6580de2194dc") - (revision "0")) + (let ((commit "f8681acb374fa0d5ed1568dbedb00a4abe1ca6f1") + (revision "1")) (package (name "plan9port") (version (git-version "0.1.0" revision commit)) @@ -86,7 +86,7 @@ reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.") (file-name (git-file-name name version)) (sha256 (base32 - "1g2kzlghcghs560na6xalfsjq5zwp015wv9wk8wxn26981zs759x")) + "01343jvn8kr63i78h8xlgscn6wihdsr44xzh1cylvhigjbqw8n2x")) (modules '((guix build utils))) (snippet #~(for-each delete-file-recursively '("font/luc" ;nonfree From 11136fb0ad90937516ce0421a352e3a4513fca3b Mon Sep 17 00:00:00 2001 From: Wilko Meyer Date: Sun, 31 Dec 2023 14:17:33 +0100 Subject: [PATCH 061/158] gnu: Add morris. * gnu/packages/games.scm (morris): New variable. Change-Id: I35158d1f5cfd5f7267dcb8295d8102e2dd3f575c Signed-off-by: Liliana Marie Prikler --- gnu/packages/games.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4a2b2fd832..4883d33374 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -10446,6 +10446,31 @@ sunfish, but is written in C rather than Python. It also has TUI tools for using any UCI engine and also to connect UCI engines to Lichess.") (license license:agpl3+)))) +(define-public morris + (package + (name "morris") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/farindk/morris") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kkcnpkzgybm7rqg7nafd7sqd5m4alns6l4j5zcf3p41jdc9s3iv")))) + (build-system glib-or-gtk-build-system) + (inputs (list automake autoconf pkg-config intltool + gnu-gettext libtool glib gtk+-2 boost)) + (arguments `(#:tests? #f)) + (home-page "http://nine-mens-morris.net/downloads.html") + (synopsis "Morris is an implementation of the board game Nine Men's Morris") + (description "Morris is an implementation of the board game Nine Men's Morris. +It supports not only the standard game, but also several rule-variants and different +board layouts. You can play against the computer, or simply use the program to +present the board, but play against another human opponent.") + (license license:gpl3))) + (define-public barrage (package (name "barrage") From 3b4e71c4734910f1850b40fa636cd7d52f2b0b5e Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 31 Dec 2023 15:08:45 +0100 Subject: [PATCH 062/158] gnu: dds: Update to 2.9.0-1.d2bc4c2. * gnu/packages/game-development.scm (dds): Update to 2.9.0-1.d2bc4c2. Change-Id: I3c6db4e81d70112f020f2d7a0f7db26069c7591f Signed-off-by: Liliana Marie Prikler --- gnu/packages/game-development.scm | 124 +++++++++++++++--------------- 1 file changed, 63 insertions(+), 61 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 37d8442222..ea1adf0ecf 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -196,69 +196,71 @@ is used in some video games and movies.") (license license:zlib))) (define-public dds - (package - (name "dds") - (version "2.9.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dds-bridge/dds") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1iv09qic43nvla02lm8zgnkqpjgnc95p8zh3wyifmnmlh1rz02yj")))) - (build-system gnu-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ - (chdir "src"))) - (replace 'configure - ;; Configuration is done by copying the appropriate - ;; make file in the working directory. There is no - ;; configure script. - (lambda _ - (copy-file "Makefiles/Makefile_linux_shared" - "Makefile"))) - (replace 'check - ;; There is no "check" traget. We must compile - ;; a "dtest" program and apply it on a data set. - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (install-file "libdds.so" "../test") - (with-directory-excursion "../test" - (copy-file "Makefiles/Makefile_linux" - "Makefile") - (substitute* "Makefile" - (("-Werror") "")) - (invoke "make") - (invoke "./dtest" "-f" "../hands/list100.txt"))))) - (replace 'install - ;; "install" target merely moves ".so" file around - ;; the source directory. We install it in the store, - ;; along with all shipped documentation (which cannot - ;; be built from source unfortunately). - (lambda _ - (install-file "libdds.so" - (string-append #$output "/lib")) - (let ((doc (string-append #$output - "/share/doc/" - #$name "-" #$version))) - (install-file "../LICENSE" doc) - (copy-recursively "../doc" doc))))))) - (native-inputs - (list gawk procps)) - (inputs - (list boost)) - (home-page "https://privat.bahnhof.se/wb758135/") - (synopsis "Double dummy solver for the bridge card game") - (description "DDS is a double-dummy solver of bridge hands. It supports + (let ((commit "d2bc4c2c703941664fc1d73e69caa5233cdeac18") + (revision "1")) + (package + (name "dds") + (version (git-version "2.9.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dds-bridge/dds") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ishbb69cvyv96xdxshnly0m5ydwljgdf8fwa1cr9rj2qj40q4rm")))) + (build-system gnu-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "src"))) + (replace 'configure + ;; Configuration is done by copying the appropriate + ;; make file in the working directory. There is no + ;; configure script. + (lambda _ + (copy-file "Makefiles/Makefile_linux_shared" + "Makefile"))) + (replace 'check + ;; There is no "check" traget. We must compile + ;; a "dtest" program and apply it on a data set. + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (install-file "libdds.so" "../test") + (with-directory-excursion "../test" + (copy-file "Makefiles/Makefile_linux" + "Makefile") + (substitute* "Makefile" + (("-Werror") "")) + (invoke "make") + (invoke "./dtest" "-f" "../hands/list100.txt"))))) + (replace 'install + ;; "install" target merely moves ".so" file around + ;; the source directory. We install it in the store, + ;; along with all shipped documentation (which cannot + ;; be built from source unfortunately). + (lambda _ + (install-file "libdds.so" + (string-append #$output "/lib")) + (let ((doc (string-append #$output + "/share/doc/" + #$name "-" #$version))) + (install-file "../LICENSE" doc) + (copy-recursively "../doc" doc))))))) + (native-inputs + (list gawk procps)) + (inputs + (list boost)) + (home-page "https://privat.bahnhof.se/wb758135/") + (synopsis "Double dummy solver for the bridge card game") + (description "DDS is a double-dummy solver of bridge hands. It supports single-threading and multi-threading for improved performance. DDS offers a wide range of functions, including par-score calculations.") - (license license:asl2.0))) + (license license:asl2.0)))) (define-public deutex (package From a8f2c03a60e7f3fa93d537dd81c98b2f11ceab81 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 31 Dec 2023 15:08:46 +0100 Subject: [PATCH 063/158] gnu: Add redeal. * gnu/packages/games.scm (redeal): New variable. Change-Id: I89c000c7afdd594af3555bf23b0f028f99219ec3 Signed-off-by: Liliana Marie Prikler --- gnu/packages/games.scm | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4883d33374..6f4f8c14ac 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -231,6 +231,7 @@ #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) #:use-module (guix build-system qt) #:use-module (guix build-system scons) #:use-module (guix build-system trivial) @@ -2368,6 +2369,55 @@ Every puzzle has a complete solution, although there may be more than one.") "PrBoom+ is a Doom source port developed from the original PrBoom project.") (license license:gpl2+))) +(define-public redeal + (let ((commit "e2e81a477fd31ae548a340b5f0f380594d3d0ad6") + (revision "1")) + (package + (name "redeal") + (version (git-version "0.2.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/anntzer/redeal") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1vac36bg4ah9gs4hgmp745xq6nnmd7s71vsq99d72ng3sxap0wa3")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unbundle-dds + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "setup.py" + (("cmdclass=.*") "")) + (let ((libdds (search-input-file inputs "lib/libdds.so"))) + (substitute* "redeal/dds.py" + ((" and os.path.exists\\(dll_path\\)") "") + (("dll = DLL\\(dll_path\\)") + (format #f "dll = DLL(~s)" libdds)))))) + (add-after 'install 'install-examples + (lambda _ + (let* ((doc (string-append #$output "/share/doc/")) + (examples + (string-append doc #$name "-" #$version "/examples"))) + (mkdir-p examples) + (copy-recursively "examples" examples))))))) + (inputs (list dds `(,python "tk"))) + (propagated-inputs (list python-colorama)) + (home-page "https://github.com/anntzer/redeal") + (synopsis + "Deal generator for bridge card game, written in Python") + (description + "Redeal is a deal generator written in Python. It outputs deals +satisfying whatever conditions you specify --- deals with a double void, deals +with a strong 2♣ opener opposite a yarborough, etc. Using Bo Haglund's double +dummy solver, it can even solve the hands it has generated for you.") + (license license:gpl3)))) + (define-public retux (let ((release "1.6.1") (revision 0)) From 33e6572beea174a087809c02bd33ead97e14bf33 Mon Sep 17 00:00:00 2001 From: gemmaro Date: Sat, 6 Jan 2024 11:20:51 +0900 Subject: [PATCH 064/158] gnu: taisei: Use new package style. * gnu/packages/games.scm (taisei)[arguments]: Convert to list of G-Expressions. [license]: Reformat with guix style. Change-Id: I717a7e408f5ae274c5aafa0f3e20bb7bca377b3a Signed-off-by: Liliana Marie Prikler --- gnu/packages/games.scm | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 6f4f8c14ac..c4284e54c4 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -78,7 +78,7 @@ ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Florian Pelz ;;; Copyright © 2023 Ivana Drazovic -;;; Copyright © 2023 gemmaro +;;; Copyright © 2023, 2024 gemmaro ;;; Copyright © 2023 Wilko Meyer ;;; ;;; This file is part of GNU Guix. @@ -3447,12 +3447,12 @@ a C library, so they can easily be integrated into other programs.") (base32 "1g53fcyrlzmvlsb40pw90gaglysv6n1w42hk263iv61ibhdmzh6v")))) (build-system meson-build-system) (arguments - `(#:build-type "release" ;comment out for bug-reporting (and cheats) - #:configure-flags - (list "-Dr_default=gles30" - "-Dr_gles20=true" - "-Dr_gles30=true" - "-Dshader_transpiler=true"))) + (list + #:build-type "release" ;comment out for bug-reporting (and cheats) + #:configure-flags #~(list "-Dr_default=gles30" + "-Dr_gles20=true" + "-Dr_gles30=true" + "-Dshader_transpiler=true"))) (native-inputs (list pkg-config python python-docutils python-pygments)) (inputs @@ -3475,14 +3475,15 @@ a C library, so they can easily be integrated into other programs.") "The player controls a character (one of three: Good, Bad, and Dead), dodges the missiles (lots of it cover the screen, but the character's hitbox is very small), and shoot at the adversaries that keep appear on the screen.") - (license (list ;;game - license:expat - ;;resources/00-taisei.pkgdir/bgm/ - ;;atlas/portraits/ - license:cc-by4.0 - ;;miscellaneous - license:cc0 - license:public-domain)))) + (license (list + ;; game + license:expat + ;; resources/00-taisei.pkgdir/bgm/ + ;; atlas/portraits/ + license:cc-by4.0 + ;; miscellaneous + license:cc0 + license:public-domain)))) (define-public cmatrix (package From b212e6934643e085f168a5364cb593f61aa616ba Mon Sep 17 00:00:00 2001 From: gemmaro Date: Sat, 6 Jan 2024 11:20:52 +0900 Subject: [PATCH 065/158] gnu: taisei: Update to 1.4. * gnu/packages/games.scm (taisei): Update to 1.4. [inputs]: Add zstd:lib. [native-inputs]: Add python-zstd. Change-Id: Ic83c4b9f77affe7782b62812be86f3c376c7ef28 Signed-off-by: Liliana Marie Prikler --- gnu/packages/games.scm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index c4284e54c4..cf2e38f49c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -194,6 +194,7 @@ #:use-module (gnu packages protobuf) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages python-compression) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) @@ -3436,15 +3437,15 @@ a C library, so they can easily be integrated into other programs.") (define-public taisei (package (name "taisei") - (version "1.3.2") + (version "1.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/taisei-project/" "taisei/releases/download/v" version - "/taisei-v" version ".tar.xz")) + "/taisei-" version ".tar.xz")) (sha256 - (base32 "1g53fcyrlzmvlsb40pw90gaglysv6n1w42hk263iv61ibhdmzh6v")))) + (base32 "1glrr99xiyz674d1izgvmk9w1zxanc94d34pacd0wya66bbml0nc")))) (build-system meson-build-system) (arguments (list @@ -3454,7 +3455,11 @@ a C library, so they can easily be integrated into other programs.") "-Dr_gles30=true" "-Dshader_transpiler=true"))) (native-inputs - (list pkg-config python python-docutils python-pygments)) + (list pkg-config + python + python-docutils + python-pygments + python-zstandard)) (inputs (list cglm freetype @@ -3468,7 +3473,8 @@ a C library, so they can easily be integrated into other programs.") sdl2-mixer shaderc spirv-cross - zlib)) + zlib + (list zstd "lib"))) (home-page "https://taisei-project.org/") (synopsis "Shoot'em up fangame and libre clone of Touhou Project") (description From 6dc7307cfbe276aa540936199e9bf3c350b39b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 5 Jan 2024 10:12:17 +0100 Subject: [PATCH 066/158] gnu: shepherd: Update to 0.10.3. * gnu/packages/admin.scm (shepherd-0.10): Update to 0.10.3. Change-Id: I6b14a41c22a18bcf0c5bd380d7f118276d0f761c --- 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 5442714665..3f1de1e6b6 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -373,14 +373,14 @@ interface and is based on GNU Guile.") (define-public shepherd-0.10 (package (inherit shepherd-0.9) - (version "0.10.2") + (version "0.10.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/shepherd/shepherd-" version ".tar.gz")) (sha256 (base32 - "0v9ld9gbqdp5ya380fbkdsxa0iqr90gi6yk004ccz3n792nq6wlj")))) + "1vxghlxnxajx2iciqmjia49c5hkir8li0gv29kl55frhn2zgxilf")))) (native-inputs (modify-inputs (package-native-inputs shepherd-0.9) (replace "guile-fibers" ;; Work around From 59a68a6c2a4765b0e9bb17d3a7e65d565dd799dd Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Tue, 5 Dec 2023 19:51:29 +0000 Subject: [PATCH 067/158] gnu: valgrind: Update to 3.22.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/valgrind.scm (valgrind): Update to 3.22.0. Change-Id: I336c4208d0a15e54ea8ae0238b898b8a909eea62 Signed-off-by: Ludovic Courtès --- gnu/packages/valgrind.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm index 06622548a5..b50dabf9ca 100644 --- a/gnu/packages/valgrind.scm +++ b/gnu/packages/valgrind.scm @@ -39,7 +39,7 @@ (define-public valgrind (package (name "valgrind") - (version "3.20.0") + (version "3.22.0") (source (origin (method url-fetch) (uri (list (string-append "https://sourceware.org/pub/valgrind" @@ -48,7 +48,7 @@ "/valgrind-" version ".tar.bz2"))) (sha256 (base32 - "1ipkp6yi202pml2r0qwflysmq86dkqd8iyi1y51d6y70vcqw0dl5")))) + "0k1ddnzxfpbng2sp5r31jjxsmp35g977rx6a8jcp4prcvmddn4f8")))) (build-system gnu-build-system) (outputs '("doc" ;16 MB "out")) From f896382594f96d6d41965bd5c6dba856b7991f12 Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" Date: Sat, 9 Dec 2023 11:09:26 +0300 Subject: [PATCH 068/158] gnu: go-golang-org-x-sys: Update to 0.8.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-golang-org-x-sys): Update to 0.8.0. (go-golang-org-x-sys-0.8): Remove. (go-github-com-quic-go-quic-go, go-github-com-quic-go-qtls-go1-20): Use the new version of "go-golang-org-x-sys". * gnu/packages/networking.scm (yggdrasil): Use the new version of "go-golang-org-x-sys". [propagated-inputs]: Don't rewrite inputs; add "go-golang-org-x-sys". Change-Id: I969dd402427e345550038918f6de607413c44a61 Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 52 ++++++++++------------------------- gnu/packages/networking.scm | 55 ++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 66 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 36e2c4b23e..58681af958 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3959,11 +3959,11 @@ packages.") (license license:bsd-3)))) (define-public go-golang-org-x-sys - (let ((commit "b60007cc4e6f966b1c542e343d026d06723e5653") + (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78") (revision "0")) (package (name "go-golang-org-x-sys") - (version (git-version "0.4.0" revision commit)) + (version (git-version "0.8.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -3972,7 +3972,7 @@ packages.") (file-name (git-file-name name version)) (sha256 (base32 - "0fr2d6fnpbqx6n89sg9lsinqkdaw49y068kqj2g0cxlhbh69hzii")))) + "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq")))) (build-system go-build-system) (arguments (list @@ -3989,24 +3989,6 @@ support for low-level interaction with the operating system.") (home-page "https://go.googlesource.com/sys") (license license:bsd-3)))) -;; XXX: This version is required for "go-github-com-quic-go-qtls-go1-20". -(define-public go-golang-org-x-sys-0.8 - (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78") - (revision "0")) - (package - (inherit go-golang-org-x-sys) - (name "go-golang-org-x-sys") - (version (git-version "0.8.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://go.googlesource.com/sys") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq"))))))) - (define-public go-golang-org-x-text (package (name "go-golang-org-x-text") @@ -7269,7 +7251,7 @@ implementation of generics.") #:import-path "github.com/quic-go/qtls-go1-20" #:go go-1.20)) (propagated-inputs (list go-golang-org-x-crypto - go-golang-org-x-sys-0.8)) + go-golang-org-x-sys)) (synopsis "TLS 1.3 for QUIC") (description "Go standard library TLS 1.3 implementation, modified for QUIC. For @@ -7330,21 +7312,17 @@ the Go standard library}.") #:tests? #f #:go go-1.20)) (propagated-inputs - (let ((p (package-input-rewriting - `((,go-golang-org-x-sys . ,go-golang-org-x-sys-0.8)) - #:deep? #true))) - (cons go-golang-org-x-sys-0.8 - (map p - (list go-github-com-quic-go-qtls-go1-20 - go-github-com-quic-go-qpack - go-golang-org-x-crypto - go-github-com-cheekybits-genny - go-github-com-marten-seemann-chacha20 - go-github-com-golang-protobuf-proto - go-golang-org-x-crypto - go-golang-org-x-exp - go-golang-org-x-net - go-golang-org-x-sync))))) + (list go-github-com-quic-go-qtls-go1-20 + go-github-com-quic-go-qpack + go-golang-org-x-crypto + go-github-com-cheekybits-genny + go-github-com-marten-seemann-chacha20 + go-github-com-golang-protobuf-proto + go-golang-org-x-crypto + go-golang-org-x-exp + go-golang-org-x-net + go-golang-org-x-sys + go-golang-org-x-sync)) (synopsis "QUIC in Go") (description "This package provides a Go language implementation of the QUIC network protocol.") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 9844430656..cc6f1a1e04 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -4445,35 +4445,32 @@ QUIC protocol.") "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl" "github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys")))))))) (propagated-inputs - (let ((p (package-input-rewriting - `((,go-golang-org-x-sys . ,go-golang-org-x-sys-0.8)) - #:deep? #true))) - (cons go-golang-org-x-sys-0.8 - (map p - (list go-github-com-arceliar-ironwood - go-github-com-arceliar-phony - go-github-com-bits-and-blooms-bitset - go-github-com-bits-and-blooms-bloom - go-github-com-cheggaaa-pb-v3 - go-github-com-fatih-color - go-github-com-gologme-log - go-github-com-hashicorp-go-syslog - go-github-com-hjson-hjson-go - go-github-com-kardianos-minwinsvc - go-github-com-mattn-go-colorable - go-github-com-mattn-go-isatty - go-github-com-mattn-go-runewidth - go-github-com-mitchellh-mapstructure - go-github-com-olekukonko-tablewriter - go-github-com-quic-go-quic-go - go-github-com-vividcortex-ewma - go-golang-org-x-crypto - go-golang-org-x-net - go-golang-org-x-text - go-golang-org-x-tools - go-golang-zx2c4-com-wireguard - go-netlink - go-netns))))) + (list go-golang-zx2c4-com-wireguard + go-golang-org-x-text + go-golang-org-x-net + go-golang-org-x-crypto + go-golang-org-x-tools + go-golang-org-x-sys + go-netns + go-netlink + go-github-com-bits-and-blooms-bitset + go-github-com-bits-and-blooms-bloom + go-github-com-quic-go-quic-go + go-github-com-hjson-hjson-go + go-github-com-olekukonko-tablewriter + go-github-com-mitchellh-mapstructure + go-github-com-mattn-go-runewidth + go-github-com-mattn-go-isatty + go-github-com-mattn-go-colorable + go-github-com-kardianos-minwinsvc + go-github-com-hjson-hjson-go + go-github-com-hashicorp-go-syslog + go-github-com-gologme-log + go-github-com-fatih-color + go-github-com-cheggaaa-pb-v3 + go-github-com-vividcortex-ewma + go-github-com-arceliar-phony + go-github-com-arceliar-ironwood)) (home-page "https://yggdrasil-network.github.io/blog.html") (synopsis "Experiment in scalable routing as an encrypted IPv6 overlay network") From c784c0f43f496e134ef68dbcfbb78d95283796fa Mon Sep 17 00:00:00 2001 From: Rostislav Svoboda Date: Sun, 19 Nov 2023 10:30:59 +0100 Subject: [PATCH 069/158] gnu: Add emacs-color-identifiers-mode. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-color-identifiers-mode): New variable. Change-Id: I1243d468f0ebb39715438fb814d0691dac785515 Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index f2953295c2..64cc7e163d 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11395,6 +11395,30 @@ package provides a light and a dark variant.") Solarized color scheme.") (license license:expat)))) +(define-public emacs-color-identifiers-mode + (let ((commit "a26d00d898e0a3295cb7da9323046397223ea1fe") + (revision "0")) + (package + (name "emacs-color-identifiers-mode") + (version (git-version "1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ankurdave/color-identifiers-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kky827f922ziiwasrfnv97vqdf62fp9yml36x1fjsm2h6qw0c8v")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-dash)) + (home-page "https://github.com/ankurdave/color-identifiers-mode") + (synopsis "Minor mode for coloring identifiers based on their names") + (description + "This package provides an Emacs minor mode to highlight each source +code identifier uniquely based on its name.") + (license license:gpl3+)))) + (define-public emacs-poet-theme (let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70") (revision "1")) From 4cafd86f77d23a9635e079f36c59b643a86fd3f5 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Sat, 18 Nov 2023 23:54:03 +0100 Subject: [PATCH 070/158] build-system/zig: Add cross-compilation support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/build/zig-build-system.scm (zig-cross-build): New function (lower): Add cross-compilation support * guix/build-system/zig.scm (build): Add --target flag with target input (check): Disable with cross compilation Change-Id: I5f42ff897bfe00c92c6576900221a15ef210d669 Signed-off-by: Ludovic Courtès --- guix/build-system/zig.scm | 118 ++++++++++++++++++++++++++------ guix/build/zig-build-system.scm | 7 +- 2 files changed, 103 insertions(+), 22 deletions(-) diff --git a/guix/build-system/zig.scm b/guix/build-system/zig.scm index 215178ceb4..1fa4782a2e 100644 --- a/guix/build-system/zig.scm +++ b/guix/build-system/zig.scm @@ -83,6 +83,79 @@ #:system system #:guile-for-build guile))) +(define* (zig-cross-build name + #:key + source target + build-inputs target-inputs host-inputs + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (native-search-paths '()) + (tests? #t) + (test-target #f) + (zig-build-flags ''()) + (zig-test-flags ''()) + (zig-destdir "out") + (zig-test-destdir "test-out") + (zig-release-type #f) + (system (%current-system)) + (guile #f) + (imported-modules %zig-build-system-modules) + (modules '((guix build zig-build-system) + (guix build utils)))) + "Build SOURCE using Zig, and with INPUTS." + (define builder + (with-imported-modules imported-modules + #~(begin + (use-modules #$@(sexp->gexp modules)) + + (define %build-host-inputs + #+(input-tuples->gexp build-inputs)) + + (define %build-target-inputs + (append #$(input-tuples->gexp host-inputs) + #+(input-tuples->gexp target-inputs))) + + (define %build-inputs + (append %build-host-inputs %build-target-inputs)) + + (define %outputs + #$(outputs->gexp outputs)) + + (zig-build #:name #$name + #:source #+source + #:system #$system + #:phases #$phases + #:outputs %outputs + #:target #$target + #:test-target #$test-target + #:inputs %build-target-inputs + #:native-inputs %build-host-inputs + #:search-paths '#$(map search-path-specification->sexp + search-paths) + #:native-search-paths '#$(map + search-path-specification->sexp + native-search-paths) + #:zig-build-flags #$zig-build-flags + #:zig-test-flags #$zig-test-flags + #:zig-release-type #$zig-release-type + #:zig-destdir #$zig-destdir + #:zig-test-destdir #$zig-test-destdir + #:tests? #$tests? + #:search-paths '#$(sexp->gexp + (map search-path-specification->sexp + search-paths)))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system #:graft? #f))) + (gexp->derivation name builder + #:system system + #:target target + #:graft? #f + #:substitutable? substitutable? + #:guile-for-build guile))) + + (define* (lower name #:key source inputs native-inputs outputs system target (zig (default-zig)) @@ -93,27 +166,30 @@ (define private-keywords '(#:target #:zig #:inputs #:native-inputs #:outputs)) - ;; TODO: support cross-compilation - ;; It's as simple as adding some build flags to `zig-build-flags` - ;; -Dtarget=aarch64-linux-musl, for example. - (and (not target) - (bag - (name name) - (system system) - (target target) - (host-inputs `(,@(if source - `(("source" ,source)) - '()) - ,@inputs - - ;; Keep the standard inputs of 'gnu-build-system' - ;; TODO: do we need this? - ,@(standard-packages))) - (build-inputs `(("zig" ,zig) - ,@native-inputs)) - (outputs outputs) - (build zig-build) - (arguments (strip-keyword-arguments private-keywords arguments))))) + (bag + (name name) + (system system) + (target target) + (build-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@`(("zig" ,zig)) + ,@native-inputs + ,@(if target '() inputs) + ,@(if target + ;; Use the standard cross inputs of + ;; 'gnu-build-system'. + (standard-cross-packages target 'host) + '()) + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (host-inputs (if target inputs '())) + (target-inputs (if target + (standard-cross-packages target 'target) + '())) + (outputs outputs) + (build (if target zig-cross-build zig-build)) + (arguments (strip-keyword-arguments private-keywords arguments)))) (define zig-build-system (build-system diff --git a/guix/build/zig-build-system.scm b/guix/build/zig-build-system.scm index d414ebfb17..8352a73324 100644 --- a/guix/build/zig-build-system.scm +++ b/guix/build/zig-build-system.scm @@ -47,6 +47,7 @@ zig-build-flags zig-release-type ;; "safe", "fast" or "small" empty for a ;; debug build" + target #:allow-other-keys) "Build a given Zig package." @@ -56,6 +57,9 @@ "--prefix-lib-dir" "lib" "--prefix-exe-dir" "bin" "--prefix-include-dir" "include" + ,@(if target + (list (string-append "-Dtarget=" target)) + '()) ,@(if zig-release-type (list (string-append "-Drelease-" zig-release-type)) '()) @@ -65,9 +69,10 @@ (define* (check #:key tests? zig-test-flags + target #:allow-other-keys) "Run all the tests" - (when tests? + (when (and tests? (not target)) (let ((old-destdir (getenv "DESTDIR"))) (setenv "DESTDIR" "test-out") ;; Avoid colisions with the build output (let ((call `("zig" "build" "test" From 51d25c771cfb7e26f5bd0d675893f68a8cbb92dc Mon Sep 17 00:00:00 2001 From: Troy Figiel Date: Fri, 17 Nov 2023 21:48:02 +0100 Subject: [PATCH 071/158] gnu: python-uqbar: Update to 0.5.9. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/graphviz.scm (python-uqbar): Update to 0.5.9. [source]: Add patch for Python 3.10 compatibility. [arguments]: Remove outdated patch phase. Change-Id: I81d83efd69bd07fe12790981c48a6e82297908f0 Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/graphviz.scm | 12 +++------- .../patches/python-uqbar-python3.10.patch | 23 +++++++++++++++++++ 3 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 gnu/packages/patches/python-uqbar-python3.10.patch diff --git a/gnu/local.mk b/gnu/local.mk index f804f4ef5b..3548b5eb3d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1782,6 +1782,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \ %D%/packages/patches/python-telingo-fix-comparison.patch \ %D%/packages/patches/python-typeguard-python3.10.patch \ + %D%/packages/patches/python-uqbar-python3.10.patch \ %D%/packages/patches/python-wxwidgets-type-errors.patch \ %D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \ %D%/packages/patches/qtdeclarative-disable-qmlcache.patch \ diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index b91c365e3c..c5507e036c 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -195,7 +195,7 @@ structure and layout algorithms.") (define-public python-uqbar (package (name "python-uqbar") - (version "0.5.6") + (version "0.5.9") (source (origin (method git-fetch) @@ -205,18 +205,12 @@ structure and layout algorithms.") (file-name (git-file-name name version)) (sha256 (base32 - "1ml3x2mf7nlnvrh9lari5yk0sz2mmg39jwsbjxnpzhnw4kcwpdrs")))) + "0c573nzpm51qgz2g296f8pw8ys0i3r6daynxk06zagk5l5fgw9ar")) + (patches (search-patches "python-uqbar-python3.10.patch")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch - (lambda _ - (substitute* "setup.py" - ;; Latest versions of sphink-rtd-theme require npm to build. - (("sphinx-rtd-theme >= 0.5.0") "sphinx-rtd-theme >= 0.2.4") - (("black") "black >= 19.10b0")) - #t)) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? diff --git a/gnu/packages/patches/python-uqbar-python3.10.patch b/gnu/packages/patches/python-uqbar-python3.10.patch new file mode 100644 index 0000000000..164f0c0c64 --- /dev/null +++ b/gnu/packages/patches/python-uqbar-python3.10.patch @@ -0,0 +1,23 @@ +Since Python 3.10 the output of a CLI program created with argparse +uses "options" instead of "optional arguments". This behaviour breaks +the tests in python-uqbar. + +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -84,7 +84,7 @@ def test_call_help(): + + speak like a cat + +- optional arguments: ++ options: + -h, --help show this help message and exit + --version show program's version number and exit + --loud be adamant +@@ -101,6 +101,6 @@ def test_help(): + """ + usage: vox-aggregator [-h] [--version] {help,list,birds,mammals} ... + +- optional arguments: ++ options: + -h, --help show this help message and exit + --version show program's version number and exit From b6106e8fff83c1fdf1d46527813b7b1f2fc90801 Mon Sep 17 00:00:00 2001 From: Tristan Cottam Date: Sat, 18 Nov 2023 12:31:13 +0100 Subject: [PATCH 072/158] gnu: Add emacs-adwaita-dark-theme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-adwaita-dark-theme): New variable. Change-Id: Id6e6d0d6aa27e7c1cc6ec0fc11c3a5f09231d751 Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 64cc7e163d..99c16f382d 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2017,6 +2017,27 @@ Apprentice and Sourcerer.") theme but now takes more inspiration from the Nano theme.") (license license:gpl3+))) +(define-public emacs-adwaita-dark-theme + ;; Version 1.1.1 isn't tagged upstream. + (package + (name "emacs-adwaita-dark-theme") + (version "1.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/jessieh/adwaita-dark-theme") + (commit "057c39313341907b35c68d2179226886a0c276fd"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1g7hyg2hfvn24gaw4lca4g8lw10q2wg9nfrgl7pfdggz202m027c")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/jessieh/adwaita-dark-theme") + (synopsis "Adwaita-inspired dark color scheme for Emacs") + (description + "This package provides an Adwaita-inspired dark color scheme for Emacs.") + (license license:gpl2+))) + (define-public emacs-treepy (package (name "emacs-treepy") From ce4fbea7bb3ec43a220ee3654c19fc52c00cc9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoine=20C=C3=B4t=C3=A9?= Date: Mon, 20 Nov 2023 14:51:52 +0000 Subject: [PATCH 073/158] gnu: libmatroska: Update to 1.7.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/video.scm (libmatroska): Update to 1.7.1. Change-Id: Ia2c943743636f0a01b1446be871b6dcd663ad0d3 Signed-off-by: Ludovic Courtès --- 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 e70aa5352e..f7d720f89d 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1505,14 +1505,14 @@ SMPTE 314M.") (define-public libmatroska (package (name "libmatroska") - (version "1.6.3") + (version "1.7.1") (source (origin (method url-fetch) (uri (string-append "https://dl.matroska.org/downloads/" "libmatroska/libmatroska-" version ".tar.xz")) (sha256 - (base32 "06h81sxyz2riic0gpzik6ffcnq32wrqphi8c6k55glcdymiimyfs")))) + (base32 "1cqq61qgv6x3xjzjrw71dya7lbsbrsmi9raqm2k4hgfrp0rk0ajp")))) (build-system cmake-build-system) (inputs (list libebml)) From 5d97fdb608a89e8653f093bf34720e0822124805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoine=20C=C3=B4t=C3=A9?= Date: Mon, 20 Nov 2023 14:51:53 +0000 Subject: [PATCH 074/158] gnu: mkvtoolnix: Update to 80.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/video.scm (mkvtoolnix): Update to 80.0. [inputs]: Add GMP and QTSVG. Replace QT*-5 by their non-suffixed variant. [native-inputs]: Likewise, and change to RUBY-3.2. Change-Id: If01ce578c9f9ac50e1c99e96c110687e8872177c Signed-off-by: Ludovic Courtès --- gnu/packages/video.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index f7d720f89d..d1b163dc8b 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1047,14 +1047,14 @@ H.264 (MPEG-4 AVC) video streams.") (define-public mkvtoolnix (package (name "mkvtoolnix") - (version "52.0.0") + (version "80.0") (source (origin (method url-fetch) (uri (string-append "https://mkvtoolnix.download/sources/" "mkvtoolnix-" version ".tar.xz")) (sha256 - (base32 "15y7ahlifsclnkl70wn5w34dil8nwcwcjnw3k2ydqc6dz4vb0j5s")) + (base32 "1x9k9pmw7mzm2amvm251a45dlj9p9iqfank5p4w2fizxkapws25v")) (modules '((guix build utils))) (snippet '(begin ;; Delete bundled libraries. @@ -1070,6 +1070,7 @@ H.264 (MPEG-4 AVC) video streams.") (outputs '("out" "gui")) ; "mkvtoolnix-gui" brings the closure size from ~300 MB to 1.5+ GB. (inputs (list boost + gmp bzip2 cmark libebml @@ -1083,8 +1084,9 @@ H.264 (MPEG-4 AVC) video streams.") lzo pcre2 pugixml - qtbase-5 - qtmultimedia-5 + qtbase + qtmultimedia + qtsvg utfcpp zlib)) (native-inputs @@ -1096,8 +1098,8 @@ H.264 (MPEG-4 AVC) video streams.") ("perl" ,perl) ("pkg-config" ,pkg-config) ("po4a" ,po4a) - ("qttools-5" ,qttools-5) - ("ruby" ,ruby-2.7))) + ("qttools" ,qttools) + ("ruby" ,ruby-3.2))) (arguments `(#:configure-flags (list (string-append "--with-boost=" From 5f8a993aa85554ca09bd27139230d7664107e1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 7 Jan 2024 16:27:09 +0100 Subject: [PATCH 075/158] gnu: mkvtoolnix: Remove input labels and use gexps. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/video.scm (mkvtoolnix)[native-inputs]: Remove labels. [arguments]: Use gexps and ‘this-package-input’ & co. Change-Id: I12b6638cd78c8c957ac9856c0e19025f4941847e --- gnu/packages/video.scm | 157 ++++++++++++++++++++++------------------- 1 file changed, 83 insertions(+), 74 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index d1b163dc8b..4181013b0d 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1090,81 +1090,90 @@ H.264 (MPEG-4 AVC) video streams.") utfcpp zlib)) (native-inputs - `(("docbook-xsl" ,docbook-xsl) - ("gettext" ,gettext-minimal) - ("googletest" ,googletest) - ("libxslt" ,libxslt) - ("nlohmann-json" ,nlohmann-json) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("po4a" ,po4a) - ("qttools" ,qttools) - ("ruby" ,ruby-3.2))) + (list docbook-xsl + gettext-minimal + googletest + libxslt + nlohmann-json + perl + pkg-config + po4a + qttools + ruby-3.2)) (arguments - `(#:configure-flags - (list (string-append "--with-boost=" - (assoc-ref %build-inputs "boost")) - (string-append "--with-docbook-xsl-root=" - (assoc-ref %build-inputs "docbook-xsl") - "/xml/xsl/docbook-xsl-" - ,(package-version docbook-xsl)) - "--enable-update-check=no" - "--enable-precompiled-headers=no") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-utfcpp-include - (lambda _ - (substitute* "src/common/strings/utf8.cpp" - (("") - "")))) - (add-after 'unpack 'patch-relative-file-names - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "src/mkvtoolnix-gui/util/settings.cpp" - (("mkvmerge" match) - (string-append out "/bin/" match))) - #t))) - (add-before 'configure 'add-googletest - (lambda* (#:key inputs #:allow-other-keys) - (symlink (search-input-directory inputs "/include/gtest") - "lib/gtest"))) - (replace 'build - (lambda _ - (let ((-j (list "-j" (number->string (parallel-job-count))))) - (apply invoke "rake" -j)))) - (replace 'check - (lambda _ - (invoke "rake" "tests/unit"))) - (replace 'install - (lambda _ - (invoke "rake" "install"))) - (add-after 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - ;; Move the Qt interface to "gui". - (let* ((out (assoc-ref outputs "out")) - (gui (assoc-ref outputs "gui")) - (strip-store-dir (lambda (path) - (substring path (string-prefix-length out path))))) - (for-each - (lambda (file) - (mkdir-p (string-append gui (dirname file))) - (rename-file (string-append out file) - (string-append gui file))) - (append '("/bin/mkvtoolnix-gui" - "/share/applications/org.bunkus.mkvtoolnix-gui.desktop" - "/share/metainfo/org.bunkus.mkvtoolnix-gui.appdata.xml" - "/share/mime/packages/org.bunkus.mkvtoolnix-gui.xml") - (map strip-store-dir (find-files out "\\.ogg$")) - (map strip-store-dir (find-files out "mkvtoolnix-gui\\.png$")) - (map strip-store-dir (find-files out "mkvtoolnix-gui\\.1")))) - (for-each - (lambda (file) - (delete-file-recursively (string-append out file))) - '("/share/applications" - "/share/metainfo" - "/share/mime" - "/share/mkvtoolnix"))) - #t))))) + (list + #:configure-flags + #~(list (string-append "--with-boost=" + #$(this-package-input "boost")) + (string-append "--with-docbook-xsl-root=" + #$(this-package-native-input "docbook-xsl") + "/xml/xsl/docbook-xsl-" + #$(package-version + (this-package-native-input "docbook-xsl"))) + "--enable-update-check=no" + "--enable-precompiled-headers=no") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-utfcpp-include + (lambda _ + (substitute* "src/common/strings/utf8.cpp" + (("") + "")))) + (add-after 'unpack 'patch-relative-file-names + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "src/mkvtoolnix-gui/util/settings.cpp" + (("mkvmerge" match) + (string-append out "/bin/" match))) #t))) + (add-before 'configure 'add-googletest + (lambda* (#:key inputs #:allow-other-keys) + (symlink (search-input-directory inputs + "/include/gtest") + "lib/gtest"))) + (replace 'build + (lambda _ + (let ((-j (list "-j" + (number->string (parallel-job-count))))) + (apply invoke "rake" -j)))) + (replace 'check + (lambda _ + (invoke "rake" "tests/unit"))) + (replace 'install + (lambda _ + (invoke "rake" "install"))) + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + ;; Move the Qt interface to "gui". + (let* ((out (assoc-ref outputs "out")) + (gui (assoc-ref outputs "gui")) + (strip-store-dir (lambda (path) + (substring path + (string-prefix-length + out path))))) + (for-each (lambda (file) + (mkdir-p (string-append gui + (dirname + file))) + (rename-file (string-append out file) + (string-append gui file))) + (append '("/bin/mkvtoolnix-gui" + "/share/applications/org.bunkus.mkvtoolnix-gui.desktop" + "/share/metainfo/org.bunkus.mkvtoolnix-gui.appdata.xml" + "/share/mime/packages/org.bunkus.mkvtoolnix-gui.xml") + (map strip-store-dir + (find-files out "\\.ogg$")) + (map strip-store-dir + (find-files out + "mkvtoolnix-gui\\.png$")) + (map strip-store-dir + (find-files out + "mkvtoolnix-gui\\.1")))) + (for-each (lambda (file) + (delete-file-recursively + (string-append out file))) + '("/share/applications" + "/share/metainfo" "/share/mime" + "/share/mkvtoolnix")))))))) (home-page "https://mkvtoolnix.download") (synopsis "Tools to create, alter and inspect Matroska files") (description From 7b58443bc5506a56ea78aaf44006ce6209ee6cc8 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Sat, 6 Jan 2024 17:17:48 +0100 Subject: [PATCH 076/158] Update mailmap. * .mailmap: Add entry for Tomas Volf. Change-Id: I0a8b43b3b7f71c3020f96118adcbad8937a290fb Signed-off-by: Mathieu Othacehe --- .mailmap | 1 + 1 file changed, 1 insertion(+) diff --git a/.mailmap b/.mailmap index ee6dd3f4f2..39b01335ee 100644 --- a/.mailmap +++ b/.mailmap @@ -90,6 +90,7 @@ Taylan Ulrich Bayırlı/Kammer Theodoros Foradis Thomas Danckaert Tobias Geerinckx-Rice +Tomas Volf <~@wolfsden.cz> Tomáš Čech Vincent Legoll Zheng Junjie <873216071@qq.com> Z572 <873216071@qq.com> From 0c75999d19e97fa30e246d0a698828f467dc1c5a Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Sat, 6 Jan 2024 14:59:54 +0100 Subject: [PATCH 077/158] gnu: cgit: Update to 1.2.3-793c420. * gnu/packages/version-control.scm (cgit): Update to 793c420897e18eb3474c751d54cf4e0983f85433. [inputs]: Update git to 2.43.0. Change-Id: I3441e9e2837d22ae208f5cccc53d815cc3e0f042 Signed-off-by: Mathieu Othacehe --- gnu/packages/version-control.scm | 211 ++++++++++++++++--------------- 1 file changed, 107 insertions(+), 104 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 40d7a00dae..4d5d1a9720 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1072,115 +1072,118 @@ collaboration using typical untrusted file hosts or services.") (license license:gpl3+))) (define-public cgit - (package - (name "cgit") - ;; Update the ‘git-source’ input as well. - (version "1.2.3") - (source (origin - (method url-fetch) - (uri (string-append - "https://git.zx2c4.com/cgit/snapshot/cgit-" - version ".tar.xz")) - (sha256 - (base32 - "193d990ym10qlslk0p8mjwp2j6rhqa7fq0y1iff65lvbyv914pss")))) - (build-system gnu-build-system) - (arguments - (list - #:tests? #f ; XXX: fail to build the in-source git. - #:test-target "test" - #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) - "SHELL_PATH=sh") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'unpack-git - (lambda* (#:key inputs #:allow-other-keys) - ;; Unpack the source of git into the 'git' directory. - (invoke "tar" "--strip-components=1" "-C" "git" "-xf" - (assoc-ref inputs "git-source")))) - (add-after 'unpack 'patch-absolute-file-names - (lambda* (#:key inputs #:allow-other-keys) - (define (quoted-file-name input path) - (string-append "\"" input path "\"")) - (substitute* "ui-snapshot.c" - (("\"gzip\"") - (quoted-file-name (assoc-ref inputs "gzip") "/bin/gzip")) - (("\"bzip2\"") - (quoted-file-name (assoc-ref inputs "bzip2") "/bin/bzip2")) - (("\"xz\"") - (quoted-file-name (assoc-ref inputs "xz") "/bin/xz"))) + (let ((commit "793c420897e18eb3474c751d54cf4e0983f85433") + (rev "1")) + (package + (name "cgit") + ;; Update the ‘git-source’ input as well. + (version (git-version "1.2.3" rev commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.zx2c4.com/cgit") + (commit commit))) + (sha256 + (base32 + "1mhrm14wpqvralf9j33ih5ai6naiq3g2jg2z91gnw9dhh8f9ilwz")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; XXX: fail to build the in-source git. + #:test-target "test" + #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) + "SHELL_PATH=sh") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-git + (lambda* (#:key inputs #:allow-other-keys) + ;; Unpack the source of git into the 'git' directory. + (invoke "tar" "--strip-components=1" "-C" "git" "-xf" + (assoc-ref inputs "git-source")))) + (add-after 'unpack 'patch-absolute-file-names + (lambda* (#:key inputs #:allow-other-keys) + (define (quoted-file-name input path) + (string-append "\"" input path "\"")) + (substitute* "ui-snapshot.c" + (("\"gzip\"") + (quoted-file-name (assoc-ref inputs "gzip") "/bin/gzip")) + (("\"bzip2\"") + (quoted-file-name (assoc-ref inputs "bzip2") "/bin/bzip2")) + (("\"xz\"") + (quoted-file-name (assoc-ref inputs "xz") "/bin/xz"))) - (substitute* "filters/about-formatting.sh" - (("$\\(dirname $0\\)") (string-append (assoc-ref outputs "out") - "/lib/cgit/filters")) - (("\\| tr") (string-append "| " (which "tr")))) + (substitute* "filters/about-formatting.sh" + (("$\\(dirname $0\\)") (string-append (assoc-ref outputs "out") + "/lib/cgit/filters")) + (("\\| tr") (string-append "| " (which "tr")))) - (substitute* "filters/html-converters/txt2html" - (("sed") (which "sed"))) + (substitute* "filters/html-converters/txt2html" + (("sed") (which "sed"))) - (substitute* "filters/html-converters/man2html" - (("groff") (which "groff"))) + (substitute* "filters/html-converters/man2html" + (("groff") (which "groff"))) - (substitute* "filters/html-converters/rst2html" - (("rst2html\\.py") (which "rst2html.py"))))) - (delete 'configure) ; no configure script - (add-after 'build 'build-man - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "doc-man" make-flags))) - (replace 'install - (lambda* (#:key make-flags outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (apply invoke - "make" "install" "install-man" - (string-append "prefix=" out) - (string-append "CGIT_SCRIPT_PATH=" out "/share/cgit") - make-flags) - ;; Move the platform-dependent 'cgit.cgi' into lib to get it - ;; stripped. - (rename-file (string-append out "/share/cgit/cgit.cgi") - (string-append out "/lib/cgit/cgit.cgi"))))) - (add-after 'install 'wrap-python-scripts - (lambda* (#:key outputs #:allow-other-keys) - (for-each - (lambda (file) - (wrap-program (string-append (assoc-ref outputs "out") - "/lib/cgit/filters/" file) - `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))) - '("syntax-highlighting.py" - "html-converters/md2html"))))))) - (native-inputs - ;; For building manpage. - (list asciidoc)) - (inputs - `(;; Building cgit requires a Git source tree. - ("git-source" - ,(origin - (method url-fetch) - ;; cgit is tightly bound to git. Use GIT_VER from the Makefile, - ;; which may not match the current (package-version git). - (uri "mirror://kernel.org/software/scm/git/git-2.25.4.tar.xz") - (sha256 - (base32 "11am6s46wmn1yll5614smjhzlghbqq6gysgcs64igjr9y5wzpdxq")))) - ("bash-minimal" ,bash-minimal) - ("openssl" ,openssl) - ("python" ,python) - ("python-docutils" ,python-docutils) - ("python-markdown" ,python-markdown) - ("python-pygments" ,python-pygments) - ("zlib" ,zlib) - ;; bzip2, groff, gzip and xz are inputs (not native inputs) - ;; since they are actually substituted into cgit source and - ;; referenced by the built package output. - ("bzip2" ,bzip2) - ("groff" ,groff) - ("gzip" ,gzip) - ("xz" ,xz))) - (home-page "https://git.zx2c4.com/cgit/") - (synopsis "Web frontend for git repositories") - (description - "CGit is an attempt to create a fast web interface for the Git SCM, using + (substitute* "filters/html-converters/rst2html" + (("rst2html\\.py") (which "rst2html.py"))))) + (delete 'configure) ; no configure script + (add-after 'build 'build-man + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "doc-man" make-flags))) + (replace 'install + (lambda* (#:key make-flags outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (apply invoke + "make" "install" "install-man" + (string-append "prefix=" out) + (string-append "CGIT_SCRIPT_PATH=" out "/share/cgit") + make-flags) + ;; Move the platform-dependent 'cgit.cgi' into lib to get it + ;; stripped. + (rename-file (string-append out "/share/cgit/cgit.cgi") + (string-append out "/lib/cgit/cgit.cgi"))))) + (add-after 'install 'wrap-python-scripts + (lambda* (#:key outputs #:allow-other-keys) + (for-each + (lambda (file) + (wrap-program (string-append (assoc-ref outputs "out") + "/lib/cgit/filters/" file) + `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))) + '("syntax-highlighting.py" + "html-converters/md2html"))))))) + (native-inputs + ;; For building manpage. + (list asciidoc)) + (inputs + `( ;; Building cgit requires a Git source tree. + ("git-source" + ,(origin + (method url-fetch) + ;; cgit is tightly bound to git. Use GIT_VER from the Makefile, + ;; which may not match the current (package-version git). + (uri "mirror://kernel.org/software/scm/git/git-2.43.0.tar.xz") + (sha256 + (base32 "1v3nkfm3gw8wr7595qy86qla8xyjvi85fmly4lfph4frfcz60ijl")))) + ("bash-minimal" ,bash-minimal) + ("openssl" ,openssl) + ("python" ,python) + ("python-docutils" ,python-docutils) + ("python-markdown" ,python-markdown) + ("python-pygments" ,python-pygments) + ("zlib" ,zlib) + ;; bzip2, groff, gzip and xz are inputs (not native inputs) + ;; since they are actually substituted into cgit source and + ;; referenced by the built package output. + ("bzip2" ,bzip2) + ("groff" ,groff) + ("gzip" ,gzip) + ("xz" ,xz))) + (home-page "https://git.zx2c4.com/cgit/") + (synopsis "Web frontend for git repositories") + (description + "CGit is an attempt to create a fast web interface for the Git SCM, using a built-in cache to decrease server I/O pressure.") - (license license:gpl2))) + (license license:gpl2)))) (define-public cgit-pink (package From a5d5c5b357515ec9365ee0b678fa29ac1f86288d Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Sat, 6 Jan 2024 14:15:35 +0100 Subject: [PATCH 078/158] gnu: ovmf: Update to 202311. * gnu/packages/firmware.scm (ovmf): Update to 202311. Change-Id: I32b6d7587b37211b0de6a118024cb4f854ce112d Signed-off-by: Mathieu Othacehe --- gnu/packages/firmware.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 5cebf515bf..e691bf33da 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -875,7 +875,7 @@ Executables included are: (let ((toolchain-ver "GCC5")) (package (name "ovmf") - (version "202308") + (version "202311") (source (origin (method git-fetch) (uri (git-reference @@ -886,7 +886,7 @@ Executables included are: (file-name (git-file-name name version)) (sha256 (base32 - "04rnfnaqr2c7ayplj7ib730zp1snw157zx5rmykz5hz1zz2vb20j")))) + "136dl5cxpjpg37whzlqq7jrrjsgybmwrgkbbmks8xaixqmzwhbw0")))) (build-system gnu-build-system) (arguments (list From 224499f2d466b1a3f3a45e44a709a983185b69ca Mon Sep 17 00:00:00 2001 From: Mattia Bunel Date: Fri, 5 Jan 2024 14:50:53 +0100 Subject: [PATCH 079/158] gnu: Add laszip. * gnu/packages/geo.scm (laszip): New variable. Signed-off-by: Mathieu Othacehe Change-Id: I8baf25f1d51c9ac90bcea4a1e9a564e21e0a9ee6 --- gnu/packages/geo.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 31abb2cc36..73b7aa3d11 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -3228,3 +3228,31 @@ For maps, it can uses its own \"binfile\" map format, or Garmin map file format, and data from OpenStreetMap, Garmin maps, Marco Polo Grosser Reiseplaner, Routeplaner Europa 2007, Map + Route.") (license license:gpl2))) + +(define-public laszip + (package + (name "laszip") + (version "3.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LASzip/LASzip") + (commit "3.4.3"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09lcsgxwv0jq50fhsgfhx0npbf1zcwn3hbnq6q78fshqksbxmz7m")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags #~(list "-DLASZIP_BUILD_STATIC=NO") + #:build-type "Release" + ;; No tests. + #:tests? #f)) + (home-page "https://laszip.org/") + (synopsis "Compression library for LAS files") + (description + "LASzip is a library for compressing @code{LAS} files and uncompressing +@code{LAZ} files. The @code{LAS} format is a file format designed for the +interchange and archiving of lidar point cloud data.") + (license license:asl2.0))) From 9c634835e5d4418095257dee71eb0bfaaddffa05 Mon Sep 17 00:00:00 2001 From: Georgios Athanasiou Date: Sun, 7 Jan 2024 13:27:07 +0200 Subject: [PATCH 080/158] gnu: Add guile-yamlpp. * gnu/packages/guile-xyz.scm (guile-yamlpp): New variable. Change-Id: I54694eeea17e414df4d7778a2e119f3f995c20e4 Signed-off-by: Mathieu Othacehe --- gnu/packages/guile-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 75e3754046..9dc1176797 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1839,6 +1839,33 @@ written in pure Scheme by using Guile's foreign function interface.") library}.") (license license:gpl3+))) +(define-public guile-yamlpp + (package + (name "guile-yamlpp") + (version "0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/yorgath/guile-yamlpp") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14mlqi7hw7pi9scwk1g432issnqcn185pd8na2plijxq55cy0iq7")))) + (build-system gnu-build-system) + (native-inputs (list autoconf automake libtool pkg-config)) + (inputs (list guile-3.0 yaml-cpp)) + (native-search-paths + (list (search-path-specification + (variable "GUILE_EXTENSIONS_PATH") + (files (list "lib/guile/3.0"))))) + (home-page "https://gitlab.com/yorgath/guile-yamlpp") + (synopsis "Guile YAML reader/writer based on @code{yaml-cpp}") + (description + "A module for GNU Guile to read and write YAML files. It works using +bindings to the @code{yaml-cpp} C++ library.") + (license license:gpl3+))) + (define-public guile-dbi (package (name "guile-dbi") From 1fb02d45eb7c102f7ca0e9ccac1ccd767eccd23d Mon Sep 17 00:00:00 2001 From: Andy Tai Date: Sat, 6 Jan 2024 18:32:06 -0800 Subject: [PATCH 081/158] gnu: s7: Update to 618de30. * gnu/packages/lisp.scm (s7): Update to commit 618de30. Change-Id: I34d92b77a4e8de84f18de0ce7af984928e338282 Signed-off-by: Mathieu Othacehe --- gnu/packages/lisp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 4a895984e7..e89e02e1e4 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1485,7 +1485,7 @@ includes a compiler as well as an interpreter.") (define-public s7-bootstrap ;; Need s7-bootstrap to build libc_s7.so (for the REPL) and run tests - (let ((commit "a5b4bb49f8bcd7c33ae2366065fc8c254b734460") ;no releases + (let ((commit "618de30e0f9851515724245e3ebbfa1be4de6906") ;no releases (revision "0")) (hidden-package (package @@ -1499,7 +1499,7 @@ includes a compiler as well as an interpreter.") (file-name (git-file-name name version)) (sha256 (base32 - "03n1axdlypzmbgzrhlwfqwa1xiw36hi25j2hwc7vw77mz90cd9f8")))) + "0kh1f49g24ppjpr16v1nc9lr7pvr5nzb82bpw8c6q8ll7pqalqaf")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no tests in bootstrap From 2b5fcd70d07e693b1677387573e8a5e810fe5fa4 Mon Sep 17 00:00:00 2001 From: kiasoc5 Date: Sat, 6 Jan 2024 14:28:30 -0500 Subject: [PATCH 082/158] gnu: txt2tags: Update to 3.9. * gnu/packages/textutils.scm (txt2tags): Update to 3.9. Change-Id: Ia825f5807c87941504feffdb317594f5b1fa62ef Signed-off-by: Mathieu Othacehe --- gnu/packages/textutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index ea182b1925..494e6b5ef5 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -996,13 +996,13 @@ and Cython.") (define-public txt2tags (package (name "txt2tags") - (version "3.7") + (version "3.9") (source (origin (method url-fetch) (uri (pypi-uri "txt2tags" version)) (sha256 (base32 - "12hpnvdy7dgarq6ini9jp7dp2zcmvpax04zbl3jb84kd423r75i7")))) + "0ik7gpr3gymgxnj0p86k8768kyxncbncv93zq67sbak3dbdl8hky")))) (build-system python-build-system) (native-inputs (list python-tox)) (home-page "https://txt2tags.org") From b920ee31a6b8e3be38242da5d725def7816163d8 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 6 Jan 2024 19:21:08 +0800 Subject: [PATCH 083/158] gnu: font-sarasa-gothic: Update to 1.0.3. * gnu/packages/fonts.scm (font-sarasa-gothic): Update to 1.0.3. [source]: Update the URI. Change-Id: I227632d725fb341199c738a5aa6ac17e7ea635cb Signed-off-by: Mathieu Othacehe --- gnu/packages/fonts.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 7516e1642b..68c0770d78 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -1952,15 +1952,15 @@ weights and five widths in both Roman and Italic, plus variable fonts.") (define-public font-sarasa-gothic (package (name "font-sarasa-gothic") - (version "0.42.6") + (version "1.0.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/be5invis/Sarasa-Gothic" "/releases/download/v" version - "/sarasa-gothic-ttc-" version ".7z")) + "/Sarasa-TTC-" version ".7z")) (sha256 - (base32 "0czx10yph2lxg2k4w6qjnil73zb2pgg3g400apm9gay41m04990v")))) + (base32 "1cgqf15fhg567s2bwjpal3xfcdnbgyy0iav5181zkn6b4k56dgl4")))) (build-system font-build-system) (arguments `(#:phases (modify-phases %standard-phases From ccce23bd81b3386bdccddb8c65bd1718da13497f Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sat, 6 Jan 2024 14:57:36 +0800 Subject: [PATCH 084/158] gnu: Add font-cardo. * gnu/packages/fonts.scm (font-cardo): New variable. Change-Id: I60edadc74c33690bb14dff209979a57f22dd5277 Signed-off-by: Mathieu Othacehe --- gnu/packages/fonts.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 68c0770d78..e050f4fde9 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -123,6 +123,29 @@ titling.") (license license:silofl1.1))) +(define-public font-cardo + (package + (name "font-cardo") + (version "1.04") + (source (origin + (method url-fetch) + (uri (string-append "https://scholarsfonts.net/cardo" + (string-delete #\. version) ".zip")) + (sha256 + (base32 + "0ps55zjva4fzmg47w2i8srrh8sqxz1wkcclihwgzlwfbaxixn0cl")))) + (build-system font-build-system) + (home-page "https://scholarsfonts.net/cardofnt.html") + (synopsis "Unicode font for classical scholarship") + (description + "Cardo is a large unicode font specifically designed for the needs of +classicists, biblical scholars, medievalists, and linguists. Since it may be +used to prepare materials for publication, it also contains features that are +required for high-quality typography, such as ligatures, text figures (also +known as old style numerals), true small capitals and a variety of punctuation +and space characters.") + (license license:silofl1.1))) + (define-public font-chivo (let ((commit "dc61c468d79781eb5183426e88e844af16cdc3e5") (revision "0")) From 51735eac1cc21356dc1cb59356ebe96a460b5b59 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 24 Dec 2023 16:59:57 +0100 Subject: [PATCH 085/158] gnu: dtc: Update to 1.7.0. Enable the python bindings and switch to the meson build system that handles the python bindings better than the Makefile build system here. * gnu/packages/patches/dtc-meson-cell-overflow.patch: New file * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/bootloaders.scm (dtc): Update to 1.7.0. [build-system]: Switch to the meson-build-system. [arguments]: Remove #:make-flags. Add a new 'preparations phase. Do not edit the Makefile in the 'patch-pkg-config phase. Remove the 'configure phase. Change-Id: Ie61c920829ab3a8c32f4924c694dba6bda807711 Signed-off-by: Mathieu Othacehe --- gnu/local.mk | 1 + gnu/packages/bootloaders.scm | 58 ++++++++++++------- .../patches/dtc-meson-cell-overflow.patch | 32 ++++++++++ 3 files changed, 71 insertions(+), 20 deletions(-) create mode 100644 gnu/packages/patches/dtc-meson-cell-overflow.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3548b5eb3d..46da9a8adc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1092,6 +1092,7 @@ dist_patch_DATA = \ %D%/packages/patches/doxygen-hurd.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ + %D%/packages/patches/dtc-meson-cell-overflow.patch \ %D%/packages/patches/dune-common-skip-failing-tests.patch \ %D%/packages/patches/dune-grid-add-missing-include-cassert.patch \ %D%/packages/patches/dune-istl-fix-solver-playground.patch \ diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index bd8b621e35..c73a0e665d 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -55,9 +55,12 @@ #:use-module (gnu packages man) #:use-module (gnu packages mtools) #:use-module (gnu packages ncurses) + #:use-module (gnu packages ninja) + #:use-module (gnu packages package-management) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) @@ -71,6 +74,7 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system pyproject) #:use-module (guix build-system trivial) #:use-module (guix download) @@ -631,7 +635,7 @@ The SUBDIR argument defaults to \"efi/Guix\", as it is also the case for (define-public dtc (package (name "dtc") - (version "1.6.1") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append @@ -639,42 +643,56 @@ The SUBDIR argument defaults to \"efi/Guix\", as it is also the case for "dtc-" version ".tar.gz")) (sha256 (base32 - "0xm38h31jb29xfh2sfyk48d8wdfq4b8lmb412zx9vjr35izjb9iq")))) - (build-system gnu-build-system) + "0cij9399snpn672pdbda8qbxljdkfg068kvv3g5811rz6yslx124")) + (patches + (search-patches "dtc-meson-cell-overflow.patch")))) + (build-system meson-build-system) (arguments (list - #:modules `(,@%gnu-build-system-modules (srfi srfi-26)) - #:make-flags - #~(list (string-append "CC=" #$(cc-for-target)) - ;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1. - (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") - (string-append "PREFIX=" #$output) - (string-append "SETUP_PREFIX=" #$output) - "INSTALL=install") + #:modules '((guix build meson-build-system) + (guix build utils) + (srfi srfi-26)) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'patch-pkg-config + (add-after 'unpack 'preparations (lambda _ - (substitute* '("Makefile" - "tests/run_tests.sh") - (("pkg-config") - #$(pkg-config-for-target))))) - (delete 'configure) ;no configure script - (add-before 'build 'install-doc + ;; The version string is usually derived via setuptools-scm, but + ;; without the git metadata available this fails. + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) + + ;; Needed by setup.py. + (setenv "DESTDIR" "/") + + ;; Native gcc needed by run_test.sh. + (setenv "CC" "gcc") + + ;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1. + (setenv "LDFLAGS" + (string-append "-Wl,-rpath=" #$output "/lib")))) + (add-after 'unpack 'install-doc (lambda _ (with-directory-excursion "Documentation" (for-each (cut install-file <> (string-append #$output "/share/doc/dtc/")) '("dts-format.txt" "dt-object-internal.txt" - "manual.txt")))))))) + "manual.txt"))))) + (add-after 'unpack 'patch-pkg-config + (lambda _ + (substitute* '("tests/run_tests.sh") + (("pkg-config") + #$(pkg-config-for-target)))))))) (native-inputs (append (list bison flex libyaml + ninja pkg-config - swig) + python + python-setuptools-scm + swig + which) (if (member (%current-system) (package-supported-systems valgrind)) (list valgrind) '()))) diff --git a/gnu/packages/patches/dtc-meson-cell-overflow.patch b/gnu/packages/patches/dtc-meson-cell-overflow.patch new file mode 100644 index 0000000000..1c319312f7 --- /dev/null +++ b/gnu/packages/patches/dtc-meson-cell-overflow.patch @@ -0,0 +1,32 @@ +Taken from upstream: +https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=32174a66efa4ad19fc6a2a6422e4af2ae4f055cb + +From 32174a66efa4ad19fc6a2a6422e4af2ae4f055cb Mon Sep 17 00:00:00 2001 +From: David Gibson +Date: Tue, 28 Feb 2023 10:33:58 +1100 +Subject: [PATCH] meson: Fix cell overflow tests when running from meson + +Because meson always builds out-of-tree we need to reference things in the +original source tree via $SRCDIR from run_tests.sh. We forgot a couple of +cases for the cell overflow tests. Fix them. + +Signed-off-by: David Gibson +--- + tests/run_tests.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/run_tests.sh b/tests/run_tests.sh +index 91350ad3..f899d8cb 100755 +--- a/tests/run_tests.sh ++++ b/tests/run_tests.sh +@@ -519,8 +519,8 @@ libfdt_tests () { + check_tests "$SRCDIR/phandle-args-overflow.dts" clocks_property + + ## https://github.com/dgibson/dtc/issues/74 +- run_dtc_test -I dts -O dtb -o cell-overflow-results.test.dtb cell-overflow-results.dts +- run_dtc_test -I dts -O dtb -o cell-overflow.test.dtb cell-overflow.dts ++ run_dtc_test -I dts -O dtb -o cell-overflow-results.test.dtb "$SRCDIR/cell-overflow-results.dts" ++ run_dtc_test -I dts -O dtb -o cell-overflow.test.dtb "$SRCDIR/cell-overflow.dts" + run_test dtbs_equal_ordered cell-overflow.test.dtb cell-overflow-results.test.dtb + + # check full tests From 63bafb05bc71874cc195ccc12f09f95a461e2987 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Sat, 6 Jan 2024 16:52:35 +0100 Subject: [PATCH 086/158] doc: Delete trailing whitespace. * doc/guix.texi: Delete trailing whitespace. Change-Id: Ibf99a551f890044b8ce5772bdebb8a0b02ab1c21 Signed-off-by: Mathieu Othacehe --- doc/guix.texi | 94 +++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a648a106b3..fc18deb85b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -45243,25 +45243,25 @@ PulseAudio clients to use PipeWire transparently. @node Mail Home Services @subsection Mail Home Services - + The @code{(gnu home services mail)} module provides services that help you set up the tools to work with emails in your home environment. - + @cindex msmtp @uref{https://marlam.de/msmtp, MSMTP} is a @acronym{SMTP, Simple Mail Transfer Protocol} client. It sends mail to a predefined SMTP server that takes care of proper delivery. - + The service reference is given below. - + @defvar home-msmtp-service-type This is the service type for @command{msmtp}. Its value must be a @code{home-msmtp-configuration}, as shown below. It provides the @file{~/.config/msmtp/config} file. - + As an example, here is how you would configure @code{msmtp} for a single account: - + @lisp (service home-msmtp-service-type (home-msmtp-configuration @@ -45279,101 +45279,101 @@ account: @end defvar @c %start of fragment - + @deftp {Data Type} home-msmtp-configuration Available @code{home-msmtp-configuration} fields are: - + @table @asis @item @code{defaults} (type: msmtp-configuration) The configuration that will be set as default for all accounts. - + @item @code{accounts} (default: @code{'()}) (type: list-of-msmtp-accounts) A list of @code{msmtp-account} records which contain information about all your accounts. - + @item @code{default-account} (type: maybe-string) Set the default account. - + @item @code{extra-content} (default: @code{""}) (type: string) Extra content appended as-is to the configuration file. Run @command{man msmtp} for more information about the configuration file format. - + @end table - + @end deftp - -@c %end of fragment - -@c %start of fragment - -@deftp {Data Type} msmtp-account -Available @code{msmtp-account} fields are: - -@table @asis -@item @code{name} (type: string) -The unique name of the account. - -@item @code{configuration} (type: msmtp-configuration) -The configuration for this given account. - -@end table - -@end deftp - + @c %end of fragment @c %start of fragment - + +@deftp {Data Type} msmtp-account +Available @code{msmtp-account} fields are: + +@table @asis +@item @code{name} (type: string) +The unique name of the account. + +@item @code{configuration} (type: msmtp-configuration) +The configuration for this given account. + +@end table + +@end deftp + +@c %end of fragment + +@c %start of fragment + @deftp {Data Type} msmtp-configuration Available @code{msmtp-configuration} fields are: - + @table @asis @item @code{auth?} (type: maybe-boolean) Enable or disable authentication. - + @item @code{tls?} (type: maybe-boolean) Enable or disable TLS (also known as SSL) for secured connections. - + @item @code{tls-starttls?} (type: maybe-boolean) Choose the TLS variant: start TLS from within the session (‘on’, default), or tunnel the session through TLS (‘off’). - + @item @code{tls-trust-file} (type: maybe-string) Activate server certificate verification using a list of trusted Certification Authorities (CAs). - + @item @code{log-file} (type: maybe-string) Enable logging to the specified file. An empty argument disables logging. The file name ‘-’ directs the log information to standard output. - + @item @code{host} (type: maybe-string) The SMTP server to send the mail to. - + @item @code{port} (type: maybe-integer) The port that the SMTP server listens on. The default is 25 ("smtp"), unless TLS without STARTTLS is used, in which case it is 465 ("smtps"). - + @item @code{user} (type: maybe-string) Set the user name for authentication. - + @item @code{from} (type: maybe-string) Set the envelope-from address. - + @item @code{password-eval} (type: maybe-string) Set the password for authentication to the output (stdout) of the command cmd. - + @item @code{extra-content} (default: @code{""}) (type: string) Extra content appended as-is to the configuration block. Run @command{man msmtp} for more information about the configuration file format. - + @end table - + @end deftp - + @c %end of fragment @node Messaging Home Services From fdafa8060f9661d321291f0d348d98391aec5d62 Mon Sep 17 00:00:00 2001 From: Andy Tai Date: Thu, 4 Jan 2024 21:56:12 -0800 Subject: [PATCH 087/158] gnu: icewm: Update to 3.4.5 * gnu/packages/wm.scm (icewm): Update to 3.4.5 Change-Id: Ibf30644fbc01dd89378f41f978201e84e0ca39ad Signed-off-by: Mathieu Othacehe --- gnu/packages/wm.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index a87eb20428..bd7589b2a6 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -787,7 +787,7 @@ desktop environment.") (define-public icewm (package (name "icewm") - (version "3.4.4") + (version "3.4.5") (source (origin (method url-fetch) (uri (string-append @@ -795,7 +795,7 @@ desktop environment.") version "/icewm-" version ".tar.lz")) (sha256 (base32 - "0cdsb2d45dwcr2dm4jfh0z5g6pkb0ghd4jaybxqiz74mbw5rmjhv")))) + "1wd5k0whh2b43a72223cy19pwc29fhrhd2dnc61fha2y5ndgw6ld")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs (list fontconfig From cd9c90823452fa7b88c5e2f2133dac51d9e2bd1e Mon Sep 17 00:00:00 2001 From: Roman Scherer Date: Fri, 5 Jan 2024 11:53:04 +0100 Subject: [PATCH 088/158] gnu: mesa: Build asahi driver on aarch64. * gnu/packages/gl.scm (mesa): Build asahi driver on aarch64. Change-Id: I597e70732b9ebd18960131f1b664b2dc83683b8e Signed-off-by: Mathieu Othacehe --- gnu/packages/gl.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index b0ee413acd..9d1a8a1e72 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -350,7 +350,7 @@ also known as DXTn or DXTC) for Mesa.") #$@(cond ((target-aarch64?) ;; TODO: Fix svga driver for non-Intel architectures. - '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\ + '("-Dgallium-drivers=asahi,etnaviv,freedreno,kmsro,lima,nouveau,\ panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl")) ((target-arm32?) ;; Freedreno FTBFS when built on a 64-bit machine. From 0a9fd5536aa4ba446b47b8cb5fb72a8856e54bff Mon Sep 17 00:00:00 2001 From: Andy Tai Date: Thu, 4 Jan 2024 21:49:07 -0800 Subject: [PATCH 089/158] gnu: parallel: Update to 20231222 * gnu/packages/parallel.scm (parallel): Update to 20231222 Change-Id: I4a32d93e7d7d5e79280d8d804701bb4a7ed57bb9 Signed-off-by: Mathieu Othacehe --- gnu/packages/parallel.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index e12035e47d..8f59331a02 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -64,14 +64,14 @@ (define-public parallel (package (name "parallel") - (version "20231122") + (version "20231222") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parallel/parallel-" version ".tar.bz2")) (sha256 - (base32 "1qpa3dhmdddw7l5906y8ck8rnri66kqkxcbxhsnj058pmbw9qb42")) + (base32 "1alvva2dlnlq5rbbklzc2a7l84mg550l1xc632zdgfx9dzf6sihr")) (snippet '(begin (use-modules (guix build utils)) From e7403acb345a59d580607fbfe7ef2aa0c410767a Mon Sep 17 00:00:00 2001 From: Andy Tai Date: Sun, 31 Dec 2023 13:16:35 -0800 Subject: [PATCH 090/158] gnu: swig-next: Update to 4.2.0 * gnu/packages/swig.scm (swig-next): Update to 4.2.0 Change-Id: Ic6580f0d2c3ab578de6bc0bd9a98c61b28cc1cd6 Signed-off-by: Mathieu Othacehe --- gnu/packages/swig.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm index 3f38cd9f9f..7025d05038 100644 --- a/gnu/packages/swig.scm +++ b/gnu/packages/swig.scm @@ -79,7 +79,7 @@ you tailor the wrapping process to suit your application.") (package (inherit swig) (name "swig") - (version "4.1.1") + (version "4.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" @@ -87,5 +87,5 @@ you tailor the wrapping process to suit your application.") name "-" version ".tar.gz")) (sha256 (base32 - "16xc767gf5ip40jh698wbdrxrghli5v2c966bkdmrmpwv378mw1a")))) + "15wwh9215rdkflpr85r7zxr2nmrib03jr4bvh5i0f9lyb3bs4716")))) (inputs (list pcre2)))) From 560cc91e46c1955f830c0196f6cb972410338a3a Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 7 Jan 2024 22:34:15 +0100 Subject: [PATCH 091/158] Revert "gnu: mesa: Build asahi driver on aarch64." This reverts commit cd9c90823452fa7b88c5e2f2133dac51d9e2bd1e. Move it to mesa-updates. --- gnu/packages/gl.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 9d1a8a1e72..b0ee413acd 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -350,7 +350,7 @@ also known as DXTn or DXTC) for Mesa.") #$@(cond ((target-aarch64?) ;; TODO: Fix svga driver for non-Intel architectures. - '("-Dgallium-drivers=asahi,etnaviv,freedreno,kmsro,lima,nouveau,\ + '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\ panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl")) ((target-arm32?) ;; Freedreno FTBFS when built on a 64-bit machine. From 3de361d9c9d320aefbd43710124d7b07af891de1 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 7 Jan 2024 22:54:54 +0100 Subject: [PATCH 092/158] gnu: fet: Update to 6.15.0. * gnu/packages/education.scm (fet): Update to 6.15.0. Change-Id: Iec5ed880fd09dcc63e1650ceffc0f072c1236190 --- gnu/packages/education.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 2fd1d4a632..7b72ed0349 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017-2023 Efraim Flashner ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice -;;; Copyright © 2018-2023 Nicolas Goaziou +;;; Copyright © 2018-2024 Nicolas Goaziou ;;; Copyright © 2020 Robert Smith ;;; Copyright © 2020 Guy Fleury Iteriteka ;;; Copyright © 2020 Jakub Kądziołka @@ -564,7 +564,7 @@ a pen-tablet display and a beamer.") (define-public fet (package (name "fet") - (version "6.9.0") + (version "6.15.0") (source (origin (method url-fetch) @@ -573,7 +573,7 @@ a pen-tablet display and a beamer.") (list (string-append directory base) (string-append directory "old/" base)))) (sha256 - (base32 "1lnw58ga1ldhqfznclmk9l21698pg152w3slq2cwmr69ywqr5wys")))) + (base32 "0mmk9f0b23lmmk40mv25wf9vgb7wdgfn5zsa1qrkvkh7dh1hjpax")))) (build-system gnu-build-system) (arguments (list From 728d471d73c3731b86cbf5f3dee22229d3a92d4b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 7 Jan 2024 22:21:19 +0200 Subject: [PATCH 093/158] gnu: json-glib: Fix cross-compiling. * gnu/packages/gnome.scm (json-glib)[native-inputs]: Only add more inputs when not cross-compiling. Change-Id: I987f382f02d9f7b79b6e281d1f6f6824c1b2dfd3 --- gnu/packages/gnome.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b2d4b73088..b43e533769 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2023 Ricardo Wurmus ;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver ;;; Copyright © 2015 David Thompson -;;; Copyright © 2015-2023 Efraim Flashner +;;; Copyright © 2015-2024 Efraim Flashner ;;; Copyright © 2016, 2017, 2018 Rene Saavedra ;;; Copyright © 2016 Jochem Raat ;;; Copyright © 2016, 2017, 2019 Kei Kebreau @@ -4781,12 +4781,15 @@ GLib and GObject, and integrates JSON with GLib data types.") (string-append #$output:doc "/share/gtk-doc")))))))))) (native-inputs - (modify-inputs (package-native-inputs json-glib-minimal) - (prepend docbook-xml-4.3 - docbook-xsl - gobject-introspection - gtk-doc - libxslt))))) + (if (%current-target-system) + ;; No docs, no additional inputs. + (package-native-inputs json-glib-minimal) + (modify-inputs (package-native-inputs json-glib-minimal) + (prepend docbook-xml-4.3 + docbook-xsl + gobject-introspection + gtk-doc + libxslt)))))) (define-public libxklavier (package From 9018c6af4907c4532a95017df9f45d9439c30064 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sat, 6 Jan 2024 18:24:56 +0300 Subject: [PATCH 094/158] gnu: obs: Fix VLC plugin. * gnu/packages/video.scm (obs)[arguments]<#:phases>: Wrap LD_LIBRARY_PATH. Change-Id: If22b5294284ea500da0e6d9ee4d4bbcc765c6771 --- gnu/packages/video.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4181013b0d..de812ac762 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3642,7 +3642,10 @@ be used for realtime video capture via Linux-specific APIs.") (lambda* _ (let ((plugin-path (getenv "QT_PLUGIN_PATH"))) (wrap-program (string-append #$output "/bin/obs") - `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))))))) + `("QT_PLUGIN_PATH" ":" prefix (,plugin-path)) + `("LD_LIBRARY_PATH" ":" prefix + (,(string-append #$(this-package-input "vlc") + "/lib")))))))))) (native-search-paths (list (search-path-specification (variable "OBS_PLUGINS_DIRECTORY") From 7d5168a2af3ed922c6a46985124fb73402cc8844 Mon Sep 17 00:00:00 2001 From: Graham James Addis Date: Wed, 12 Jul 2023 09:17:13 +0100 Subject: [PATCH 095/158] guix: pack: Add '--entry-point-argument' option. * guix/scripts/pack.scm: (entry-point-argument-spec-option-parser): New procedure. (docker-image, %default-options, %docker-format-options, show-docker-format-options/detailed, %options, show-docker-format-options, guix-pack): Handle '--entry-point-argument' option. * doc/guix.texi: (Invoking guix pack): Document this Signed-off-by: Oleg Pykhalov Change-Id: I1124feff6af39dcc63c85fd6cc7ad50f398489dc --- doc/guix.texi | 14 +++++++++++- guix/scripts/pack.scm | 50 +++++++++++++++++++++++++++++++++++-------- 2 files changed, 54 insertions(+), 10 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index fc18deb85b..27ebed137d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -122,6 +122,7 @@ Copyright @copyright{} 2023 Felix Lechner@* Copyright @copyright{} 2023 Foundation Devices, Inc.@* Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2023 Saku Laesvuori@* +Copyright @copyright{} 2023 Graham James Addis@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -7406,7 +7407,7 @@ execution engines listed above by setting the @env{GUIX_EXECUTION_ENGINE} environment variable accordingly. @end quotation -@cindex entry point, for Docker images +@cindex entry point, for Docker and Singularity images @item --entry-point=@var{command} Use @var{command} as the @dfn{entry point} of the resulting pack, if the pack format supports it---currently @code{docker} and @code{squashfs} (Singularity) @@ -7429,6 +7430,17 @@ docker load -i pack.tar.gz docker run @var{image-id} @end example +@cindex entry point arguments, for docker images +@item --entry-point-argument=@var{command} +@itemx -A @var{command} +Use @var{command} as an argument to @dfn{entry point} of the resulting pack. +This option is only valid in conjunction with @code{--entry-point} and can +appear multiple times on the command line. + +@example +guix pack -f docker --entry-point=bin/guile --entry-point-argument="--help" guile +@end example + @item --expression=@var{expr} @itemx -e @var{expr} Consider the package @var{expr} evaluates to. diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 8071840de1..4c0a602eb1 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer ;;; Copyright © 2020 Eric Bavier ;;; Copyright © 2022 Alex Griffin +;;; Copyright © 2023 Graham James Addis ;;; ;;; This file is part of GNU Guix. ;;; @@ -202,6 +203,16 @@ target the profile's @file{bin/env} file: (leave (G_ "~a: invalid symlink specification~%") arg)))) +(define (entry-point-argument-spec-option-parser opt name arg result) + "A SRFI-37 opion parser for the --entry-point-argument option. The spec +takes multiple occurances. The entries are used in the exec form for the +docker entry-point. The values are used as parameters in conjunction with +the --entry-point option which is used as the first value in the exec form." + (let ((entry-point-argument (assoc-ref result 'entry-point-argument))) + (alist-cons 'entry-point-argument + (append entry-point-argument (list arg)) + (alist-delete 'entry-point-argument result eq?)))) + (define (set-utf8-locale profile) "Configure the environment to use the \"en_US.utf8\" locale provided by the GLIBC-UT8-LOCALES package." @@ -562,10 +573,22 @@ the image. EXTRA-OPTIONS may contain the IMAGE-TAG keyword argument." `((directory "/tmp" ,(getuid) ,(getgid) #o1777) ,@(append-map symlink->directives '#$symlinks))) + (define (form-entry-point prefix entry-point entry-point-argument) + ;; Construct entry-point parameter for build-docker-image. The + ;; first entry is constructed by prefixing the entry-point with + ;; the supplied index subsequent entries are taken from the + ;; --entry-point-argument options. + (and=> entry-point + (lambda (entry-point) + (cons* (string-append prefix "/" entry-point) + entry-point-argument)))) + (setenv "PATH" #+(file-append archiver "/bin")) (let-keywords '#$extra-options #f - ((image-tag #f)) + ((image-tag #f) + (entry-point-argument #f)) + (build-docker-image #$output (map store-info-item (call-with-input-file "profile" @@ -578,11 +601,10 @@ the image. EXTRA-OPTIONS may contain the IMAGE-TAG keyword argument." #:database #+database #:system (or #$target %host-type) #:environment environment - #:entry-point - #$(and entry-point - #~(list - (string-append #$profile "/" - #$entry-point))) + #:entry-point (form-entry-point + #$profile + #$entry-point + entry-point-argument) #:extra-files directives #:compressor #+(compressor-command compressor) @@ -1264,6 +1286,7 @@ last resort for relocation." (debug . 0) (verbosity . 1) (symlinks . ()) + (entry-point-argument . ()) (compressor . ,(first %compressors)))) (define %formats @@ -1299,7 +1322,9 @@ last resort for relocation." rest)))) (define %docker-format-options - (list (required-option 'image-tag))) + (list (required-option 'image-tag) + (option '(#\A "entry-point-argument") #t #f + entry-point-argument-spec-option-parser))) (define (show-docker-format-options) (display (G_ " @@ -1308,7 +1333,12 @@ last resort for relocation." (define (show-docker-format-options/detailed) (display (G_ " --image-tag=NAME - Use the given NAME for the Docker image repository")) + Use the given NAME for the Docker image repository + + -A, --entry-point-argument=COMMAND/PARAMETER + Value(s) to use for the Docker EntryPoint arguments. + Multiple instances are accepted. This is only valid + in conjunction with the --entry-point option")) (newline) (exit 0)) @@ -1619,7 +1649,9 @@ Create a bundle of PACKAGE.\n")) (extra-options (match pack-format ('docker (list #:image-tag - (assoc-ref opts 'image-tag))) + (assoc-ref opts 'image-tag) + #:entry-point-argument + (assoc-ref opts 'entry-point-argument))) ('deb (list #:control-file (process-file-arg opts 'control-file) From bdf0ba4ca1c6596aac079a3eac61c01b99c13bec Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 26 Dec 2023 01:35:17 +0300 Subject: [PATCH 096/158] tests: docker-system: Increase image size. * gnu/tests/docker.scm (run-docker-system-test)[vm]: Increase 'disk-image-size'. Change-Id: If88588d8981efdfdc539460900f1cbb9a663f9cb --- gnu/tests/docker.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm index edc9804414..9e9d2e2d07 100644 --- a/gnu/tests/docker.scm +++ b/gnu/tests/docker.scm @@ -212,7 +212,7 @@ inside %DOCKER-OS." (virtual-machine (operating-system os) (volatile? #f) - (disk-image-size (* 5500 (expt 2 20))) + (disk-image-size (* 6000 (expt 2 20))) (memory-size 2048) (port-forwardings '()))) From d3d3eedf7f7e80d4066d0c86713ad9be107cf221 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 26 Dec 2023 03:46:35 +0300 Subject: [PATCH 097/158] guix: docker: Build layered images. * guix/docker.scm (%docker-image-max-layers): New variable. (size-sorted-store-items, create-empty-tar): New procedures. (config, manifest, build-docker-image): Build layered images. Change-Id: I4c8846bff0a3ceccb77e6bdf95d4942e5c3efe41 --- guix/docker.scm | 212 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 166 insertions(+), 46 deletions(-) diff --git a/guix/docker.scm b/guix/docker.scm index 5e6460f43f..1c6f59568f 100644 --- a/guix/docker.scm +++ b/guix/docker.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017, 2018, 2019, 2021 Ludovic Courtès ;;; Copyright © 2018 Chris Marusich ;;; Copyright © 2021 Maxim Cournoyer +;;; Copyright © 2023 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,16 +30,27 @@ with-directory-excursion invoke)) #:use-module (gnu build install) + #:use-module ((guix build store-copy) + #:select (file-size)) #:use-module (json) ;guile-json #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-71) #:use-module ((texinfo string-utils) #:select (escape-special-chars)) #:use-module (rnrs bytevectors) #:use-module (ice-9 ftw) #:use-module (ice-9 match) - #:export (build-docker-image)) + #:export (%docker-image-max-layers + build-docker-image)) + +;; The maximum number of layers allowed in a Docker image is typically around +;; 128, although it may vary depending on the Docker daemon. However, we +;; recommend setting the limit to 100 to ensure sufficient room for future +;; extensions. +(define %docker-image-max-layers + #f) ;; Generate a 256-bit identifier in hexadecimal encoding for the Docker image. (define docker-id @@ -92,12 +104,12 @@ Return a version of TAG that follows these rules." (make-string (- min-length l) padding-character))) (_ normalized-name)))) -(define* (manifest path id #:optional (tag "guix")) +(define* (manifest path layers #:optional (tag "guix")) "Generate a simple image manifest." (let ((tag (canonicalize-repository-name tag))) `#(((Config . "config.json") (RepoTags . #(,(string-append tag ":latest"))) - (Layers . #(,(string-append id "/layer.tar"))))))) + (Layers . ,(list->vector layers)))))) ;; According to the specifications this is required for backwards ;; compatibility. It duplicates information provided by the manifest. @@ -106,8 +118,8 @@ Return a version of TAG that follows these rules." `((,(canonicalize-repository-name tag) . ((latest . ,id))))) ;; See https://github.com/opencontainers/image-spec/blob/master/config.md -(define* (config layer time arch #:key entry-point (environment '())) - "Generate a minimal image configuration for the given LAYER file." +(define* (config layers-diff-ids time arch #:key entry-point (environment '())) + "Generate a minimal image configuration for the given LAYERS files." ;; "architecture" must be values matching "platform.arch" in the ;; runtime-spec at ;; https://github.com/opencontainers/runtime-spec/blob/v1.0.0-rc2/config.md#platform @@ -125,7 +137,7 @@ Return a version of TAG that follows these rules." (container_config . #nil) (os . "linux") (rootfs . ((type . "layers") - (diff_ids . #(,(layer-diff-id layer))))))) + (diff_ids . ,(list->vector layers-diff-ids)))))) (define directive-file ;; Return the file or directory created by a 'evaluate-populate-directive' @@ -136,6 +148,26 @@ Return a version of TAG that follows these rules." (('directory name _ ...) (string-trim name #\/)))) +(define (size-sorted-store-items items max-layers) + "Split list of ITEMS at %MAX-LAYERS and sort by disk usage." + (let* ((items-length (length items)) + (head tail + (split-at + (map (match-lambda ((size . item) item)) + (sort (map (lambda (item) + (cons (file-size item) item)) + items) + (lambda (item1 item2) + (< (match item2 ((size . _) size)) + (match item1 ((size . _) size)))))) + (if (>= items-length max-layers) + (- max-layers 2) + (1- items-length))))) + (list head tail))) + +(define (create-empty-tar file) + (invoke "tar" "-cf" file "--files-from" "/dev/null")) + (define* (build-docker-image image paths prefix #:key (repository "guix") @@ -146,11 +178,13 @@ Return a version of TAG that follows these rules." entry-point (environment '()) compressor - (creation-time (current-time time-utc))) - "Write to IMAGE a Docker image archive containing the given PATHS. PREFIX -must be a store path that is a prefix of any store paths in PATHS. REPOSITORY -is a descriptive name that will show up in \"REPOSITORY\" column of the output -of \"docker images\". + (creation-time (current-time time-utc)) + max-layers + root-system) + "Write to IMAGE a layerer Docker image archive containing the given PATHS. +PREFIX must be a store path that is a prefix of any store paths in PATHS. +REPOSITORY is a descriptive name that will show up in \"REPOSITORY\" column of +the output of \"docker images\". When DATABASE is true, copy it to /var/guix/db in the image and create /var/guix/gcroots and friends. @@ -172,7 +206,14 @@ non-empty directory, then its contents will be recursively added, as well. SYSTEM is a GNU triplet (or prefix thereof) of the system the binaries in PATHS are for; it is used to produce metadata in the image. Use COMPRESSOR, a command such as '(\"gzip\" \"-9n\"), to compress IMAGE. Use CREATION-TIME, a -SRFI-19 time-utc object, as the creation time in metadata." +SRFI-19 time-utc object, as the creation time in metadata. + +When MAX-LAYERS is not false build layered image, providing a Docker +image with store paths splitted in their own layers to improve sharing +between images. + +ROOT-SYSTEM is a directory with a provisioned root file system, which will be +added to image as a layer." (define (sanitize path-fragment) (escape-special-chars ;; GNU tar strips the leading slash off of absolute paths before applying @@ -203,6 +244,59 @@ SRFI-19 time-utc object, as the creation time in metadata." (if (eq? '() transformations) '() `("--transform" ,(transformations->expression transformations)))) + (define (seal-layer) + ;; Add 'layer.tar' to 'image.tar' under the right name. Return its hash. + (let* ((file-hash (layer-diff-id "layer.tar")) + (file-name (string-append file-hash "/layer.tar"))) + (mkdir file-hash) + (rename-file "layer.tar" file-name) + (invoke "tar" "-rf" "image.tar" file-name) + (delete-file file-name) + file-hash)) + (define layers-hashes + ;; Generate a tarball that includes container image layers as tarballs, + ;; along with a manifest.json file describing the layer and config file + ;; locations. + (match-lambda + (((head ...) (tail ...) id) + (create-empty-tar "image.tar") + (let* ((head-layers + (map + (lambda (file) + (invoke "tar" "cf" "layer.tar" file) + (seal-layer)) + head)) + (tail-layer + (begin + (create-empty-tar "layer.tar") + (for-each (lambda (file) + (invoke "tar" "-rf" "layer.tar" file)) + tail) + (let* ((file-hash (layer-diff-id "layer.tar")) + (file-name (string-append file-hash "/layer.tar"))) + (mkdir file-hash) + (rename-file "layer.tar" file-name) + (invoke "tar" "-rf" "image.tar" file-name) + (delete-file file-name) + file-hash))) + (customization-layer + (let* ((file-id (string-append id "/layer.tar")) + (file-hash (layer-diff-id file-id)) + (file-name (string-append file-hash "/layer.tar"))) + (mkdir file-hash) + (rename-file file-id file-name) + (invoke "tar" "-rf" "image.tar" file-name) + file-hash)) + (all-layers + (append head-layers (list tail-layer customization-layer)))) + (with-output-to-file "manifest.json" + (lambda () + (scm->json (manifest prefix + (map (cut string-append <> "/layer.tar") + all-layers) + repository)))) + (invoke "tar" "-rf" "image.tar" "manifest.json") + all-layers)))) (let* ((directory "/tmp/docker-image") ;temporary working directory (id (docker-id prefix)) (time (date->string (time-utc->date creation-time) "~4")) @@ -229,26 +323,39 @@ SRFI-19 time-utc object, as the creation time in metadata." (with-output-to-file "json" (lambda () (scm->json (image-description id time)))) - ;; Create a directory for the non-store files that need to go into the - ;; archive. - (mkdir "extra") + (if root-system + (let ((directory (getcwd))) + (with-directory-excursion root-system + (apply invoke "tar" + "-cf" (string-append directory "/layer.tar") + `(,@transformation-options + ,@(tar-base-options) + ,@(scandir "." + (lambda (file) + (not (member file '("." ".."))))))))) + (begin + ;; Create a directory for the non-store files that need to go + ;; into the archive. + (mkdir "extra") - (with-directory-excursion "extra" - ;; Create non-store files. - (for-each (cut evaluate-populate-directive <> "./") - extra-files) + (with-directory-excursion "extra" + ;; Create non-store files. + (for-each (cut evaluate-populate-directive <> "./") + extra-files) - (when database - ;; Initialize /var/guix, assuming PREFIX points to a profile. - (install-database-and-gc-roots "." database prefix)) + (when database + ;; Initialize /var/guix, assuming PREFIX points to a + ;; profile. + (install-database-and-gc-roots "." database prefix)) - (apply invoke "tar" "-cf" "../layer.tar" - `(,@transformation-options - ,@(tar-base-options) - ,@paths - ,@(scandir "." - (lambda (file) - (not (member file '("." "..")))))))) + (apply invoke "tar" "-cf" "../layer.tar" + `(,@transformation-options + ,@(tar-base-options) + ,@(if max-layers '() paths) + ,@(scandir "." + (lambda (file) + (not (member file '("." "..")))))))) + (delete-file-recursively "extra"))) ;; It is possible for "/" to show up in the archive, especially when ;; applying transformations. For example, the transformation @@ -261,24 +368,37 @@ SRFI-19 time-utc object, as the creation time in metadata." ;; error messages. (with-error-to-port (%make-void-port "w") (lambda () - (system* "tar" "--delete" "/" "-f" "layer.tar"))) - - (delete-file-recursively "extra")) + (system* "tar" "--delete" "/" "-f" "layer.tar")))) (with-output-to-file "config.json" (lambda () - (scm->json (config (string-append id "/layer.tar") - time arch - #:environment environment - #:entry-point entry-point)))) - (with-output-to-file "manifest.json" - (lambda () - (scm->json (manifest prefix id repository)))) - (with-output-to-file "repositories" - (lambda () - (scm->json (repositories prefix id repository))))) - - (apply invoke "tar" "-cf" image "-C" directory - `(,@(tar-base-options #:compressor compressor) - ".")) + (scm->json + (config (if max-layers + (layers-hashes + (append (size-sorted-store-items paths max-layers) + (list id))) + (list (layer-diff-id (string-append id "/layer.tar")))) + time arch + #:environment environment + #:entry-point entry-point)))) + (if max-layers + (begin + (invoke "tar" "-rf" "image.tar" "config.json") + (if compressor + (begin + (apply invoke `(,@compressor "image.tar")) + (copy-file "image.tar.gz" image)) + (copy-file "image.tar" image))) + (begin + (with-output-to-file "manifest.json" + (lambda () + (scm->json (manifest prefix + (list (string-append id "/layer.tar")) + repository)))) + (with-output-to-file "repositories" + (lambda () + (scm->json (repositories prefix id repository)))) + (apply invoke "tar" "-cf" image + `(,@(tar-base-options #:compressor compressor) + "."))))) (delete-file-recursively directory))) From 0cf75c9b2f23869201144917cea7f6ad49683d3d Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 26 Dec 2023 03:54:12 +0300 Subject: [PATCH 098/158] guix: pack: Build layered images. * guix/scripts/pack.scm (docker-image, guix-pack, %default-options, %docker-format-options, show-docker-format-options/detailed): Handle '--max-layers' option. * doc/guix.texi (Invoking guix pack): Document this. Change-Id: I90660b2421fcdde891f003469fe2e2edaac7da41 --- doc/guix.texi | 26 ++++++++++++++++++- guix/scripts/pack.scm | 60 +++++++++++++++++++++++++++++-------------- tests/pack.scm | 50 ++++++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 20 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 27ebed137d..96035bd97c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -56,7 +56,7 @@ Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2023 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* -Copyright @copyright{} 2018, 2021 Oleg Pykhalov@* +Copyright @copyright{} 2018, 2021, 2023 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* @@ -7441,6 +7441,30 @@ appear multiple times on the command line. guix pack -f docker --entry-point=bin/guile --entry-point-argument="--help" guile @end example +@cindex maximum layers argument, for docker images +@item --max-layers=@code{n} +Specifies the maximum number of Docker image layers allowed when +building an image. + +@example +guix pack -f docker --max-layers=100 guile +@end example + +This option allows you to limit the number of layers in a Docker image. +Docker images are comprised of multiple layers, and each layer adds to +the overall size and complexity of the image. By setting a maximum +number of layers, you can control the following effects: + +@itemize +@item Disk Usage: +Increasing the number of layers can help optimize the disk space +required to store multiple images built with a similar package graph. + +@item Pulling: +When transferring images between different nodes or systems, having more +layers can reduce the time required to pull the image. +@end itemize + @item --expression=@var{expr} @itemx -e @var{expr} Consider the package @var{expr} evaluates to. diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 4c0a602eb1..d0acc6cfd8 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2020 Eric Bavier ;;; Copyright © 2022 Alex Griffin ;;; Copyright © 2023 Graham James Addis +;;; Copyright © 2023 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,6 +49,7 @@ #:use-module (guix scripts build) #:use-module (guix transformations) #:use-module ((guix self) #:select (make-config.scm)) + #:use-module ((guix docker) #:select (%docker-image-max-layers)) #:use-module (gnu compression) #:use-module (gnu packages) #:use-module (gnu packages bootstrap) @@ -204,10 +206,10 @@ target the profile's @file{bin/env} file: arg)))) (define (entry-point-argument-spec-option-parser opt name arg result) - "A SRFI-37 opion parser for the --entry-point-argument option. The spec -takes multiple occurances. The entries are used in the exec form for the -docker entry-point. The values are used as parameters in conjunction with -the --entry-point option which is used as the first value in the exec form." + "A SRFI-37 option parser for the --entry-point-argument option. The spec +takes multiple occurrences. The entries are used in the exec form for the +docker entry-point. The values are used as parameters in conjunction with the +--entry-point option which is used as the first value in the exec form." (let ((entry-point-argument (assoc-ref result 'entry-point-argument))) (alist-cons 'entry-point-argument (append entry-point-argument (list arg)) @@ -517,12 +519,15 @@ added to the pack." localstatedir? (symlinks '()) (archiver tar) - (extra-options '())) - "Return a derivation to construct a Docker image of PROFILE. The -image is a tarball conforming to the Docker Image Specification, compressed -with COMPRESSOR. It can be passed to 'docker load'. If TARGET is true, it -must a be a GNU triplet and it is used to derive the architecture metadata in -the image. EXTRA-OPTIONS may contain the IMAGE-TAG keyword argument." + (extra-options '()) + max-layers) + "Return a derivation to construct a Docker image of PROFILE. The image is a +tarball conforming to the Docker Image Specification, compressed with +COMPRESSOR. It can be passed to 'docker load'. If TARGET is true, it must a +be a GNU triplet and it is used to derive the architecture metadata in the +image. EXTRA-OPTIONS may contain the IMAGE-TAG keyword argument. If +MAX-LAYERS is not false, the image will be splitted in up to MAX-LAYERS +layers." (define database (and localstatedir? (file-append (store-database (list profile)) @@ -576,18 +581,24 @@ the image. EXTRA-OPTIONS may contain the IMAGE-TAG keyword argument." (define (form-entry-point prefix entry-point entry-point-argument) ;; Construct entry-point parameter for build-docker-image. The ;; first entry is constructed by prefixing the entry-point with - ;; the supplied index subsequent entries are taken from the + ;; the supplied index, subsequent entries are taken from the ;; --entry-point-argument options. (and=> entry-point (lambda (entry-point) (cons* (string-append prefix "/" entry-point) - entry-point-argument)))) + entry-point-argument)))) - (setenv "PATH" #+(file-append archiver "/bin")) + (setenv "PATH" + (string-join `(#+(file-append archiver "/bin") + #+@(if max-layers + (list (file-append gzip "/bin")) + '())) + ":")) (let-keywords '#$extra-options #f ((image-tag #f) - (entry-point-argument #f)) + (entry-point-argument #f) + (max-layers #f)) (build-docker-image #$output (map store-info-item @@ -609,7 +620,8 @@ the image. EXTRA-OPTIONS may contain the IMAGE-TAG keyword argument." #:compressor #+(compressor-command compressor) #:creation-time - (make-time time-utc 0 1))))))) + (make-time time-utc 0 1) + #:max-layers max-layers)))))) (gexp->derivation (string-append name ".tar" (compressor-extension compressor)) @@ -1287,6 +1299,7 @@ last resort for relocation." (verbosity . 1) (symlinks . ()) (entry-point-argument . ()) + (max-layers . ,%docker-image-max-layers) (compressor . ,(first %compressors)))) (define %formats @@ -1324,7 +1337,11 @@ last resort for relocation." (define %docker-format-options (list (required-option 'image-tag) (option '(#\A "entry-point-argument") #t #f - entry-point-argument-spec-option-parser))) + entry-point-argument-spec-option-parser) + (option '("max-layers") #t #f + (lambda (opt name arg result) + (alist-cons 'max-layers (string->number* arg) + result))))) (define (show-docker-format-options) (display (G_ " @@ -1336,9 +1353,12 @@ last resort for relocation." Use the given NAME for the Docker image repository -A, --entry-point-argument=COMMAND/PARAMETER - Value(s) to use for the Docker EntryPoint arguments. + Value(s) to use for the Docker ENTRYPOINT arguments. Multiple instances are accepted. This is only valid - in conjunction with the --entry-point option")) + in conjunction with the --entry-point option + + --max-layers=N + Number of image layers")) (newline) (exit 0)) @@ -1651,7 +1671,9 @@ Create a bundle of PACKAGE.\n")) (list #:image-tag (assoc-ref opts 'image-tag) #:entry-point-argument - (assoc-ref opts 'entry-point-argument))) + (assoc-ref opts 'entry-point-argument) + #:max-layers + (assoc-ref opts 'max-layers))) ('deb (list #:control-file (process-file-arg opts 'control-file) diff --git a/tests/pack.scm b/tests/pack.scm index ac78817a70..55445ea1e9 100644 --- a/tests/pack.scm +++ b/tests/pack.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2017-2021, 2023 Ludovic Courtès ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2021, 2023 Maxim Cournoyer +;;; Copyright © 2023 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module (guix gexp) #:use-module (guix modules) #:use-module (guix utils) + #:use-module ((guix build utils) #:select (%store-directory)) #:use-module (gnu packages) #:use-module ((gnu packages base) #:select (libc-utf8-locales-for-target)) #:use-module (gnu packages bootstrap) @@ -250,6 +252,54 @@ (mkdir #$output))))))) (built-derivations (list check)))) + (unless store (test-skip 1)) + (test-assertm "docker-layered-image + localstatedir" + (mlet* %store-monad + ((guile (set-guile-for-build (default-guile))) + (profile -> (profile + (content (packages->manifest (list %bootstrap-guile))) + (hooks '()) + (locales? #f))) + (tarball (docker-image "docker-pack" profile + #:symlinks '(("/bin/Guile" -> "bin/guile")) + #:localstatedir? #t + #:max-layers 100)) + (check (gexp->derivation + "check-tarball" + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils) + (ice-9 match)) + + (define bin + (string-append "." #$profile "/bin")) + + (define store + (string-append "." #$(%store-directory))) + + (setenv "PATH" (string-append #$%tar-bootstrap "/bin")) + (mkdir "base") + (with-directory-excursion "base" + (invoke "tar" "xvf" #$tarball)) + + (match (find-files "base" "layer.tar") + ((layers ...) + (for-each (lambda (layer) + (invoke "tar" "xvf" layer) + (invoke "chmod" "--recursive" "u+w" store)) + layers))) + + (when + (and (file-exists? (string-append bin "/guile")) + (file-exists? "var/guix/db/db.sqlite") + (file-is-directory? "tmp") + (string=? (string-append #$%bootstrap-guile "/bin") + (readlink bin)) + (string=? (string-append #$profile "/bin/guile") + (readlink "bin/Guile"))) + (mkdir #$output))))))) + (built-derivations (list check)))) + (unless store (test-skip 1)) (test-assertm "squashfs-image + localstatedir" (mlet* %store-monad From 519e1e3eb88ec532fc83ebb742d9919269b57c87 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 26 Dec 2023 03:58:37 +0300 Subject: [PATCH 099/158] scripts: system: Build layered images. * guix/scripts/system.scm (show-help, %docker-format-options, %options, %default-options, show-docker-format-options, show-docker-format-options/detailed, process-action): Handle '--max-layers' option. * gnu/system/image.scm (system-docker-image): Same. * gnu/image.scm ()[max-layers]: New record field. Change-Id: I2726655aefd6688b976057fd5a38e9972ebfc292 --- gnu/image.scm | 4 ++++ gnu/system/image.scm | 41 ++++++++++++++++++++++++++++------------- guix/scripts/system.scm | 31 +++++++++++++++++++++++++++++-- 3 files changed, 61 insertions(+), 15 deletions(-) diff --git a/gnu/image.scm b/gnu/image.scm index 523653dd77..7fb06dec10 100644 --- a/gnu/image.scm +++ b/gnu/image.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020, 2022 Mathieu Othacehe +;;; Copyright © 2023 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,6 +43,7 @@ image-format image-platform image-size + image-max-layers image-operating-system image-partition-table-type image-partitions @@ -170,6 +172,8 @@ that is not in SET, mentioning FIELD in the error message." (size image-size ;size in bytes as integer (default 'guess) (sanitize validate-size)) + (max-layers image-max-layers ;number of layers as integer + (default #false)) (operating-system image-operating-system) ; (partition-table-type image-partition-table-type ; 'mbr or 'gpt (default 'mbr) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index b825892232..2cc1012893 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2022 Denis 'GNUtoo' Carikli ;;; Copyright © 2022 Alex Griffin ;;; Copyright © 2023 Efraim Flashner +;;; Copyright © 2023 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -686,7 +687,8 @@ returns an image record where the first partition's label is set to