summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-04-15 10:57:23 +0100
committerChristopher Baines <mail@cbaines.net>2024-04-15 10:57:31 +0100
commit953253eff32197863d223e5fece42b3c2440df01 (patch)
treeeb85f6b719322174f5dc504cac9de9829e1651e2
parent2718616f77aace28b3962fef29b4e38b87a512ce (diff)
parent8e3831eb126478cad50588a0f3474667981b11ec (diff)
Merge remote-tracking branch 'savannah/master' into mesa-updatesmesa-updates
Change-Id: I00980ec5dbd9d23ab076995bc79331d136424796
-rw-r--r--.guix-authorizations4
-rw-r--r--Makefile.am50
-rwxr-xr-xbuild-aux/xgettext.scm90
-rw-r--r--doc/guix.texi17
-rw-r--r--doc/images/bootstrap-graph.dot52
-rw-r--r--doc/images/bootstrap-packages.dot32
-rw-r--r--doc/images/coreutils-bag-graph.dot56
-rw-r--r--doc/images/coreutils-graph.dot18
-rw-r--r--doc/images/gcc-core-mesboot0-graph.dot28
-rw-r--r--doc/images/service-graph.dot16
-rw-r--r--doc/images/shepherd-graph.dot54
-rw-r--r--doc/local.mk95
-rwxr-xr-xetc/teams.scm8
-rw-r--r--gnu/local.mk13
-rw-r--r--gnu/packages/admin.scm1
-rw-r--r--gnu/packages/arcan.scm73
-rw-r--r--gnu/packages/avr-xyz.scm2
-rw-r--r--gnu/packages/backup.scm64
-rw-r--r--gnu/packages/bioconductor.scm34
-rw-r--r--gnu/packages/bioinformatics.scm24
-rw-r--r--gnu/packages/browser-extensions.scm12
-rw-r--r--gnu/packages/certs.scm16
-rw-r--r--gnu/packages/chez.scm1024
-rw-r--r--gnu/packages/conky.scm5
-rw-r--r--gnu/packages/cpio.scm4
-rw-r--r--gnu/packages/cran.scm147
-rw-r--r--gnu/packages/cross-base.scm8
-rw-r--r--gnu/packages/cross-toolchain.scm5
-rw-r--r--gnu/packages/data-language.scm90
-rw-r--r--gnu/packages/diffoscope.scm11
-rw-r--r--gnu/packages/documentation.scm125
-rw-r--r--gnu/packages/emacs-xyz.scm2
-rw-r--r--gnu/packages/engineering.scm2
-rw-r--r--gnu/packages/games.scm161
-rw-r--r--gnu/packages/gdb.scm4
-rw-r--r--gnu/packages/gl.scm4
-rw-r--r--gnu/packages/golang-check.scm43
-rw-r--r--gnu/packages/golang-crypto.scm151
-rw-r--r--gnu/packages/golang-web.scm47
-rw-r--r--gnu/packages/golang-xyz.scm411
-rw-r--r--gnu/packages/golang.scm134
-rw-r--r--gnu/packages/graphics.scm74
-rw-r--r--gnu/packages/ipfs.scm64
-rw-r--r--gnu/packages/kde-frameworks.scm11
-rw-r--r--gnu/packages/kde-internet.scm2
-rw-r--r--gnu/packages/kde-plasma.scm2
-rw-r--r--gnu/packages/librewolf.scm621
-rw-r--r--gnu/packages/linux.scm17
-rw-r--r--gnu/packages/loko.scm2
-rw-r--r--gnu/packages/maths.scm15
-rw-r--r--gnu/packages/netpbm.scm10
-rw-r--r--gnu/packages/nss.scm45
-rw-r--r--gnu/packages/package-management.scm4
-rw-r--r--gnu/packages/patches/chez-scheme-backport-configure.patch463
-rw-r--r--gnu/packages/patches/chez-scheme-bin-sh.patch37
-rw-r--r--gnu/packages/patches/durden-shadow-arcan.patch42
-rw-r--r--gnu/packages/patches/gcc-13-cross-system-header-dir.patch32
-rw-r--r--gnu/packages/patches/racket-backport-8.11-layered-docs.patch36
-rw-r--r--gnu/packages/patches/racket-backport-8.12-chez-configure.patch423
-rw-r--r--gnu/packages/patches/racket-chez-scheme-bin-sh.patch21
-rw-r--r--gnu/packages/patches/racket-rktio-bin-sh.patch17
-rw-r--r--gnu/packages/patches/zuo-bin-sh.patch (renamed from gnu/packages/patches/racket-zuo-bin-sh.patch)33
-rw-r--r--gnu/packages/patchutils.scm4
-rw-r--r--gnu/packages/plotutils.scm504
-rw-r--r--gnu/packages/printers.scm66
-rw-r--r--gnu/packages/profiling.scm4
-rw-r--r--gnu/packages/python-xyz.scm2
-rw-r--r--gnu/packages/qt.scm7
-rw-r--r--gnu/packages/racket.scm143
-rw-r--r--gnu/packages/rsync.scm4
-rw-r--r--gnu/packages/specifications.scm56
-rw-r--r--gnu/packages/speech.scm25
-rw-r--r--gnu/packages/statistics.scm36
-rw-r--r--gnu/packages/syncthing.scm49
-rw-r--r--gnu/packages/textutils.scm117
-rw-r--r--gnu/packages/toolkits.scm49
-rw-r--r--gnu/packages/web-browsers.scm11
-rw-r--r--gnu/packages/xorg.scm4
-rw-r--r--gnu/tests/sddm.scm112
-rw-r--r--po/doc/local.mk16
-rw-r--r--po/guix/Makevars7
-rw-r--r--po/packages/Makevars10
82 files changed, 4740 insertions, 1594 deletions
diff --git a/.guix-authorizations b/.guix-authorizations
index c52aa39755..0622098bff 100644
--- a/.guix-authorizations
+++ b/.guix-authorizations
@@ -40,8 +40,6 @@
(;; primary: "220F 98D9 5E86 204C 0036 DA7B 6DEC 4360 408B 4185"
"F4C2 D1DF 3FDE EA63 D1D3 0776 ACC6 6D09 CA52 8292"
(name "hako"))
- ("2219 43F4 9E9F 276F 9499 3382 BF28 6CB6 593E 5FFD"
- (name "hoebjo"))
("B943 509D 633E 80DD 27FC 4EED 634A 8DFF D3F6 31DF"
(name "htgoebel"))
(;; primary: "66A5 6D9C 9A98 BE7F 719A B401 2652 5665 AE72 7D37"
@@ -85,8 +83,6 @@
(;; primary: "7E9F 5BF6 1680 4367 127B 7A87 F9E6 9FB8 5A75 54F1"
"A420 7B56 C255 109F 2CB3 157E 4990 97AE 5EA8 15D9"
(name "podiki"))
- ("CD2D 5EAA A98C CB37 DA91 D6B0 5F58 1664 7F8B E551"
- (name "raghavgururajan"))
("BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC"
(name "rekado"))
(;; From commit cc51c03ff867d4633505354819c6d88af88bf919 (March 2020).
diff --git a/Makefile.am b/Makefile.am
index 1c5688ac13..5f0809ee00 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,7 +7,7 @@
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
# Copyright © 2017 Leo Famulari <leo@famulari.name>
# Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-# Copyright © 2017, 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+# Copyright © 2017, 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2018 Nikita <nikita@n0.is>
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
@@ -954,9 +954,31 @@ guix-binary.%.tar.xz:
cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@"
-# The dependency on doc-pot-update is to generate the .pot files, which are
-# not checked in.
-dist: doc-pot-update
+# Assert that Autotools cache is up to date with Git, by checking
+# PACKAGE_VERSION against HEAD. Indented to get past Automake.
+ ifeq ($(MAKECMDGOALS),dist)
+ git_version = $(shell build-aux/git-version-gen .tarball-version)
+ ifneq ($(PACKAGE_VERSION),$(git_version))
+ $(warning Autotools cache out of date.)
+ $(info Autotools cache version: $(PACKAGE_VERSION).)
+ $(info Git version: $(git_version).)
+ $(info Please run ./bootstrap && ./configure $(DIST_CONFIGURE_FLAGS))
+ ifneq ($(GUIX_ALLOW_IRREPRODUCIBLE_TARBALL),yes)
+ $(error Cannot create reproducible tarball)
+ else
+ $(warning Tarball will be irreproducible; distdir will not get removed!)
+ endif
+ endif
+ endif
+
+# The dependency on dist-doc-pot-update is to clean possibly stale doc and po
+# files and only then generate the .pot files, which are not checked in.
+dist: dist-doc-pot-update
+dist-doc-pot-update: auto-clean
+ $(MAKE) guile$(EXEEXT)
+ $(MAKE) -C po/guix all
+ $(MAKE) -C po/packages all
+ $(MAKE) doc-pot-update
dist-hook: gen-ChangeLog gen-AUTHORS gen-tarball-version
dist-hook: assert-no-store-file-names
@@ -970,9 +992,12 @@ $(top_srcdir)/.version: config.status
gen-tarball-version:
echo $(VERSION) > "$(distdir)/.tarball-version"
+ git show HEAD --format=%ct --no-patch > $(distdir)/.tarball-timestamp
gen-ChangeLog:
- $(AM_V_GEN)if test -d .git; then \
+ $(AM_V_GEN)if test -e .git; then \
+ export LC_ALL=en_US.UTF-8; \
+ export TZ=UTC0; \
$(top_srcdir)/build-aux/gitlog-to-changelog \
> $(distdir)/ChangeLog.tmp; \
rm -f $(distdir)/ChangeLog; \
@@ -980,8 +1005,10 @@ gen-ChangeLog:
fi
gen-AUTHORS:
- $(AM_V_GEN)if test -d .git; then \
+ $(AM_V_GEN)if test -e .git; then \
rm -f "$(distdir)/AUTHORS"; \
+ export LC_ALL=en_US.UTF-8; \
+ export TZ=UTC0; \
$(top_builddir)/pre-inst-env "$(GUILE)" \
"$(top_srcdir)/build-aux/generate-authors.scm" \
"$(top_srcdir)" "$(distdir)/AUTHORS"; \
@@ -1002,6 +1029,17 @@ dist-with-updated-version:
# Release management.
#
+# Reproducible tarball
+override GZIP_ENV = --best --no-name
+# Be friendly to Debian; avoid using EPOCH
+override am__tar = $${TAR-tar} \
+ --sort=name \
+ --mode=go=rX,u+rw,a-s \
+ --mtime=@$$(cat "$$tardir"/.tarball-timestamp) \
+ --owner=0 --group=0 --numeric-owner \
+ -cf - \
+ "$$tardir"
+
releasedir = release-$(PACKAGE_VERSION)
PACKAGE_FULL_TARNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
diff --git a/build-aux/xgettext.scm b/build-aux/xgettext.scm
new file mode 100755
index 0000000000..44d30b8149
--- /dev/null
+++ b/build-aux/xgettext.scm
@@ -0,0 +1,90 @@
+#! /bin/sh
+# -*-scheme-*-
+build_aux=$(dirname $0)
+srcdir=$build_aux/..
+exec guile --no-auto-compile -L $srcdir -C $srcdir -e main -s "$0" "$@"
+!#
+
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; This program is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;;; Commentary:
+;;;
+;;; This script provides an xgettext wrapper to (re)set POT-Creation-Date from
+;;; a Git timestamp. Test doing something like:
+;;;
+;;; build-aux/xgettext.scm --files-from=po/guix/POTFILES.in --default-domain=test
+;;;
+;;;; Code:
+
+(use-modules (srfi srfi-1)
+ (srfi srfi-26)
+ (ice-9 curried-definitions)
+ (ice-9 match)
+ (ice-9 popen)
+ (ice-9 rdelim)
+ (guix build utils))
+
+(define ((option? name) option)
+ (string-prefix? name option))
+
+(define (get-option args name)
+ (let ((option (find (option? name) args)))
+ (and option
+ (substring option (string-length name)))))
+
+(define (pipe-command command)
+ (let* ((port (apply open-pipe* OPEN_READ command))
+ (output (read-string port)))
+ (close-port port)
+ output))
+
+
+;;;
+;;; Entry point.
+;;;
+(define (main args)
+ ;; Cater for being run in a container.
+ (setenv "LC_ALL" "en_US.UTF-8")
+ (setenv "TZ" "UTC0")
+ (fluid-set! %default-port-encoding #f)
+ (let* ((files-from (get-option args "--files-from="))
+ (default-domain (get-option args "--default-domain="))
+ (directory (or (get-option args "--directory=") "."))
+ (xgettext (or (get-option args "--xgettext=") "xgettext"))
+ (xgettext-args (filter (negate (option? "--xgettext=")) args))
+ (command (match xgettext-args
+ ((xgettext.scm args ...)
+ `(,xgettext ,@args))))
+ (result (apply system* command))
+ (status (/ result 256)))
+ (if (or (not (zero? status))
+ (not files-from))
+ (exit status)
+ (let* ((text (with-input-from-file files-from read-string))
+ (lines (string-split text #\newline))
+ (files (filter (negate (cute string-prefix? "#" <>)) lines))
+ (files (map (cute string-append directory "/" <>) files))
+ (git-command `("git" "log" "--pretty=format:%ci" "-n1" ,@files))
+ (timestamp (pipe-command git-command))
+ (po-file (string-append default-domain ".po")))
+ (when (string-null? timestamp)
+ (exit 1))
+ (substitute* po-file
+ (("(\"POT-Creation-Date: )[^\\]*" all header)
+ (string-append header timestamp)))))))
diff --git a/doc/guix.texi b/doc/guix.texi
index 5827e0de14..fc28a15980 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -848,8 +848,8 @@ goes through the daemon. For instance, command-line tools such as
daemon (@i{via} remote procedure calls) to instruct it what to do.
The following sections explain how to prepare the build daemon's
-environment. See also @ref{Substitutes}, for information on how to allow
-the daemon to download pre-built binaries.
+environment. See @ref{Substitutes} for how to allow the daemon to
+download pre-built binaries.
@menu
* Build Environment Setup:: Preparing the isolated build environment.
@@ -2548,7 +2548,7 @@ This builds a new system @dfn{generation} with the latest packages and
services.
Now, @pxref{Getting Started with the System}, and
-join us on @code{#guix} on the Libera Chat IRC network or on
+join us on @code{#guix} on the Libera.Chat IRC network or on
@email{guix-devel@@gnu.org} to share your experience!
@@ -26641,7 +26641,7 @@ Disable LOGIN command and all other plaintext authentications unless
SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
matches the local IP (i.e.@: you're connecting from the same computer),
the connection is considered secure and plaintext authentication is
-allowed. See also ssl=required setting.
+allowed. See also the @samp{ssl=required} setting.
Defaults to @samp{#t}.
@end deftypevr
@@ -26781,7 +26781,7 @@ Defaults to @samp{#f}.
List of wanted authentication mechanisms. Supported mechanisms are:
@samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5},
@samp{ntlm}, @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi},
-@samp{otp}, @samp{skey}, and @samp{gss-spnego}. NOTE: See also
+@samp{otp}, @samp{skey}, and @samp{gss-spnego}. See also the
@samp{disable-plaintext-auth} setting.
@end deftypevr
@@ -47865,7 +47865,12 @@ The graph below shows the resulting dependency graph for
@code{gcc-core-mesboot0}, the bootstrap compiler used for the
traditional bootstrap of the rest of the Guix System.
-@c ./pre-inst-env guix graph -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' | sed -re 's,((bootstrap-seeds|guile-bootstrap).*shape =) box,\1 ellipse,' > doc/images/gcc-core-mesboot0-graph.dot
+@c ./pre-inst-env guix graph \
+@c -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' \
+@c | sed -r \
+@c -e 's,((bootstrap-seeds|guile-bootstrap).*shape =) box,\1 ellipse,' \
+@c -e 's,fontname = sans,fontname = "dejavu sans",' \
+@c > doc/images/gcc-core-mesboot0-graph.dot
@image{images/gcc-core-mesboot0-graph,6in,,Dependency graph of gcc-core-mesboot0}
Work is ongoing to bring these bootstraps to the @code{arm-linux} and
diff --git a/doc/images/bootstrap-graph.dot b/doc/images/bootstrap-graph.dot
index 06d7f29c7a..317ee25749 100644
--- a/doc/images/bootstrap-graph.dot
+++ b/doc/images/bootstrap-graph.dot
@@ -1,7 +1,7 @@
# Obtained by running "nix-store --graph" on the first GCC derivation.
digraph G {
-"/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [label = "gcc-bootstrap-0.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [label = "gcc-bootstrap-0.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "black"];
"/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "red"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "green"];
@@ -11,8 +11,8 @@ digraph G {
"/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "black"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "red"];
"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "green"];
-"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" [label = "tar", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [label = "glibc-bootstrap-0.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" [label = "tar", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [label = "glibc-bootstrap-0.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "blue"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "magenta"];
"/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "burlywood"];
@@ -20,63 +20,63 @@ digraph G {
"/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "red"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "green"];
"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "blue"];
-"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" [label = "xz", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [label = "glibc-bootstrap-0-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" [label = "xz", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [label = "glibc-bootstrap-0-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [color = "magenta"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [color = "burlywood"];
-"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [label = "module-import.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [label = "module-import.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" -> "/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [color = "black"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [color = "red"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [color = "green"];
-"/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" [label = "module-import-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" [label = "module-import-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" [color = "blue"];
-"/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [label = "gcc-4.7.2.tar.xz.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [label = "gcc-4.7.2.tar.xz.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/6kslnirvm26fij7wpjqbw617ri4gf5x5-gcc-4.7.2.tar.xz-guile-builder" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "magenta"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "burlywood"];
"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "black"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "red"];
-"/nix/store/6kslnirvm26fij7wpjqbw617ri4gf5x5-gcc-4.7.2.tar.xz-guile-builder" [label = "gcc-4.7.2.tar.xz-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" [label = "bash", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [label = "module-import.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/6kslnirvm26fij7wpjqbw617ri4gf5x5-gcc-4.7.2.tar.xz-guile-builder" [label = "gcc-4.7.2.tar.xz-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" [label = "bash", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [label = "module-import.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "green"];
"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "blue"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "magenta"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "burlywood"];
"/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "black"];
-"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" [label = "ftp-client.scm", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" [label = "download.scm", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" [label = "utils.scm", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" [label = "ftp-client.scm", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" [label = "download.scm", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" [label = "utils.scm", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/98gzqlgpm4gxrpl5bzykpqbwrx8ckx8l-module-import-compiled-guile-builder" -> "/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [color = "red"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" -> "/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [color = "green"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [color = "blue"];
-"/nix/store/98gzqlgpm4gxrpl5bzykpqbwrx8ckx8l-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [label = "gcc-bootstrap-0-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/98gzqlgpm4gxrpl5bzykpqbwrx8ckx8l-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [label = "gcc-bootstrap-0-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [color = "magenta"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [color = "burlywood"];
"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" -> "/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [color = "black"];
-"/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [label = "glibc-2.17.tar.xz.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [label = "glibc-2.17.tar.xz.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "red"];
"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "green"];
"/nix/store/q7as3jddipj4g6si8lawrdbkjg0zcjvg-glibc-2.17.tar.xz-guile-builder" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "blue"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "magenta"];
-"/nix/store/q7as3jddipj4g6si8lawrdbkjg0zcjvg-glibc-2.17.tar.xz-guile-builder" [label = "glibc-2.17.tar.xz-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [label = "guile-bootstrap-2.0.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/q7as3jddipj4g6si8lawrdbkjg0zcjvg-glibc-2.17.tar.xz-guile-builder" [label = "glibc-2.17.tar.xz-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [label = "guile-bootstrap-2.0.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" -> "/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [color = "burlywood"];
"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" -> "/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [color = "black"];
-"/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [label = "build-bootstrap-guile.sh", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [label = "build-bootstrap-guile.sh", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "red"];
"/nix/store/4xv2y0m6zr2lgi8x8pcb3zxjqxsz69kj-mkdir" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "green"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "blue"];
"/nix/store/c450lqvaaz3ngx9pfiiiw55rqq6ssfda-guile-2.0.7.tar.xz" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "magenta"];
-"/nix/store/4xv2y0m6zr2lgi8x8pcb3zxjqxsz69kj-mkdir" [label = "mkdir", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/c450lqvaaz3ngx9pfiiiw55rqq6ssfda-guile-2.0.7.tar.xz" [label = "guile-2.0.7.tar.xz", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/4xv2y0m6zr2lgi8x8pcb3zxjqxsz69kj-mkdir" [label = "mkdir", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/c450lqvaaz3ngx9pfiiiw55rqq6ssfda-guile-2.0.7.tar.xz" [label = "guile-2.0.7.tar.xz", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/8jiqjlb6zxjys16ca7s6jvxcc620c71k-module-import-compiled-guile-builder" -> "/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [color = "burlywood"];
"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" -> "/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [color = "black"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [color = "red"];
-"/nix/store/8jiqjlb6zxjys16ca7s6jvxcc620c71k-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [label = "module-import-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/8jiqjlb6zxjys16ca7s6jvxcc620c71k-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [label = "module-import-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" -> "/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [color = "green"];
"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" -> "/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [color = "blue"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [color = "magenta"];
diff --git a/doc/images/bootstrap-packages.dot b/doc/images/bootstrap-packages.dot
index 8b2df068a8..579bbcd00f 100644
--- a/doc/images/bootstrap-packages.dot
+++ b/doc/images/bootstrap-packages.dot
@@ -1,5 +1,5 @@
digraph "Guix bag" {
- "/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" [label = "glibc-intermediate-2.24", shape = box, fontname = Helvetica];
+ "/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" [label = "glibc-intermediate-2.24", shape = box, fontname = "dejavu sans"];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" [color = magenta];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [color = magenta];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" [color = magenta];
@@ -16,7 +16,7 @@ digraph "Guix bag" {
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [color = magenta];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = magenta];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" [color = magenta];
- "/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" [label = "texinfo-6.3", shape = box, fontname = Helvetica];
+ "/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" [label = "texinfo-6.3", shape = box, fontname = "dejavu sans"];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = cyan3];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = cyan3];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [color = cyan3];
@@ -27,25 +27,25 @@ digraph "Guix bag" {
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = cyan3];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = cyan3];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [color = cyan3];
- "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [label = "make-boot0-4.2.1", shape = box, fontname = Helvetica];
+ "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [label = "make-boot0-4.2.1", shape = box, fontname = "dejavu sans"];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = dimgrey];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [color = dimgrey];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = dimgrey];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
- "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [label = "glibc-bootstrap-0", shape = box, fontname = Helvetica];
- "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [label = "gcc-bootstrap-0", shape = box, fontname = Helvetica];
+ "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [label = "glibc-bootstrap-0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [label = "gcc-bootstrap-0", shape = box, fontname = "dejavu sans"];
"/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = darkseagreen];
- "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [label = "binutils-bootstrap-0", shape = box, fontname = Helvetica];
- "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [label = "bootstrap-binaries-0", shape = box, fontname = Helvetica];
- "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [label = "diffutils-boot0-3.5", shape = box, fontname = Helvetica];
+ "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [label = "binutils-bootstrap-0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [label = "bootstrap-binaries-0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [label = "diffutils-boot0-3.5", shape = box, fontname = "dejavu sans"];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = blue];
- "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [label = "findutils-boot0-4.6.0", shape = box, fontname = Helvetica];
+ "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [label = "findutils-boot0-4.6.0", shape = box, fontname = "dejavu sans"];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = blue];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = blue];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = blue];
@@ -53,14 +53,14 @@ digraph "Guix bag" {
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = blue];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = blue];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = blue];
- "/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" [label = "file-boot0-5.28", shape = box, fontname = Helvetica];
+ "/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" [label = "file-boot0-5.28", shape = box, fontname = "dejavu sans"];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = darkgoldenrod];
- "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [label = "perl-boot0-5.24.0", shape = box, fontname = Helvetica];
+ "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [label = "perl-boot0-5.24.0", shape = box, fontname = "dejavu sans"];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = peachpuff4];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = peachpuff4];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [color = peachpuff4];
@@ -70,7 +70,7 @@ digraph "Guix bag" {
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = peachpuff4];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = peachpuff4];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = peachpuff4];
- "/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" [label = "gcc-cross-boot0-4.9.4", shape = box, fontname = Helvetica];
+ "/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" [label = "gcc-cross-boot0-4.9.4", shape = box, fontname = "dejavu sans"];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" [color = darkseagreen];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = darkseagreen];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = darkseagreen];
@@ -81,7 +81,7 @@ digraph "Guix bag" {
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = darkseagreen];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = darkseagreen];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = darkseagreen];
- "/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" [label = "binutils-cross-boot0-2.27", shape = box, fontname = Helvetica];
+ "/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" [label = "binutils-cross-boot0-2.27", shape = box, fontname = "dejavu sans"];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = dimgrey];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = dimgrey];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [color = dimgrey];
@@ -91,12 +91,12 @@ digraph "Guix bag" {
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = dimgrey];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
- "/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" [label = "ld-wrapper-x86_64-guix-linux-gnu-0", shape = box, fontname = Helvetica];
+ "/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" [label = "ld-wrapper-x86_64-guix-linux-gnu-0", shape = box, fontname = "dejavu sans"];
"/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" -> "/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" [color = dimgrey];
"/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" -> "/gnu/store/af19ma2vm3qhvh3rw6cdivyp98s18bj3-guile-bootstrap-2.0.drv" [color = dimgrey];
"/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
- "/gnu/store/af19ma2vm3qhvh3rw6cdivyp98s18bj3-guile-bootstrap-2.0.drv" [label = "guile-bootstrap-2.0", shape = box, fontname = Helvetica];
- "/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" [label = "linux-libre-headers-4.4.18", shape = box, fontname = Helvetica];
+ "/gnu/store/af19ma2vm3qhvh3rw6cdivyp98s18bj3-guile-bootstrap-2.0.drv" [label = "guile-bootstrap-2.0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" [label = "linux-libre-headers-4.4.18", shape = box, fontname = "dejavu sans"];
"/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" -> "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [color = blue];
"/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = blue];
"/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = blue];
diff --git a/doc/images/coreutils-bag-graph.dot b/doc/images/coreutils-bag-graph.dot
index 7c90db65d4..4b5d20c8f4 100644
--- a/doc/images/coreutils-bag-graph.dot
+++ b/doc/images/coreutils-bag-graph.dot
@@ -1,5 +1,5 @@
digraph "Guix bag-emerged" {
- "/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" [label = "coreutils-8.25", shape = box, fontname = Helvetica];
+ "/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" [label = "coreutils-8.25", shape = box, fontname = "dejavu sans"];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [color = cyan3];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = cyan3];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = cyan3];
@@ -23,7 +23,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" [color = cyan3];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" [color = cyan3];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" [color = cyan3];
- "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [label = "perl-5.24.0", shape = box, fontname = Helvetica];
+ "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [label = "perl-5.24.0", shape = box, fontname = "dejavu sans"];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = blue];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = blue];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [color = blue];
@@ -43,26 +43,26 @@ digraph "Guix bag-emerged" {
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [color = blue];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = blue];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = blue];
- "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [label = "tar-1.29", shape = box, fontname = Helvetica];
- "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [label = "gzip-1.8", shape = box, fontname = Helvetica];
- "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [label = "bzip2-1.0.6", shape = box, fontname = Helvetica];
- "/gnu/store/kz8rzasivw4aflsv4rll3m539xybf226-xz-5.2.2.drv" [label = "xz-5.2.2", shape = box, fontname = Helvetica];
- "/gnu/store/3pwrlsd23k2h104akxfj3cxhqcp973g9-file-5.28.drv" [label = "file-5.28", shape = box, fontname = Helvetica];
- "/gnu/store/f1ww5vh5abnvr8b24llipm5dl89s5lq2-diffutils-3.5.drv" [label = "diffutils-3.5", shape = box, fontname = Helvetica];
- "/gnu/store/0cbgdhhyh7hsgwq1x54n9vnq99rfjch9-patch-2.7.5.drv" [label = "patch-2.7.5", shape = box, fontname = Helvetica];
- "/gnu/store/8xjnm44dfwwxp90hxq6zhb6qvia7rb3l-sed-4.2.2.drv" [label = "sed-4.2.2", shape = box, fontname = Helvetica];
- "/gnu/store/54wjl6dp6rp47r67f4nyfqyv8nh456yc-findutils-4.6.0.drv" [label = "findutils-4.6.0", shape = box, fontname = Helvetica];
- "/gnu/store/k951w49yw74ikg19l4mmlwfrq9w7a7zd-gawk-4.1.4.drv" [label = "gawk-4.1.4", shape = box, fontname = Helvetica];
- "/gnu/store/n48xdjkvhlhj5mgdzy59n0dpb9vn0v78-grep-2.25.drv" [label = "grep-2.25", shape = box, fontname = Helvetica];
- "/gnu/store/i52csyja3036ns0zj6z85lkgz3wfyym7-coreutils-8.25.drv" [label = "coreutils-8.25", shape = box, fontname = Helvetica];
- "/gnu/store/nv4mnbz3mpd4gv80djk7762wyvxpccqk-make-4.2.1.drv" [label = "make-4.2.1", shape = box, fontname = Helvetica];
- "/gnu/store/2c60vlcvpj5dvmgklajkp7cpynhcqixr-bash-4.4.0.drv" [label = "bash-4.4.0", shape = box, fontname = Helvetica];
- "/gnu/store/zhc5c4s0xvzizpgpq2za6x84vxv57iy6-ld-wrapper-0.drv" [label = "ld-wrapper-0", shape = box, fontname = Helvetica];
- "/gnu/store/9k1js0kalh4s6q4hf0rgg2n0zdyrwi69-binutils-2.27.drv" [label = "binutils-2.27", shape = box, fontname = Helvetica];
- "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [label = "gcc-4.9.4", shape = box, fontname = Helvetica];
- "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [label = "glibc-2.24", shape = box, fontname = Helvetica];
- "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [label = "glibc-utf8-locales-2.24", shape = box, fontname = Helvetica];
- "/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" [label = "acl-2.2.52", shape = box, fontname = Helvetica];
+ "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [label = "tar-1.29", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [label = "gzip-1.8", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [label = "bzip2-1.0.6", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/kz8rzasivw4aflsv4rll3m539xybf226-xz-5.2.2.drv" [label = "xz-5.2.2", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/3pwrlsd23k2h104akxfj3cxhqcp973g9-file-5.28.drv" [label = "file-5.28", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/f1ww5vh5abnvr8b24llipm5dl89s5lq2-diffutils-3.5.drv" [label = "diffutils-3.5", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/0cbgdhhyh7hsgwq1x54n9vnq99rfjch9-patch-2.7.5.drv" [label = "patch-2.7.5", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/8xjnm44dfwwxp90hxq6zhb6qvia7rb3l-sed-4.2.2.drv" [label = "sed-4.2.2", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/54wjl6dp6rp47r67f4nyfqyv8nh456yc-findutils-4.6.0.drv" [label = "findutils-4.6.0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/k951w49yw74ikg19l4mmlwfrq9w7a7zd-gawk-4.1.4.drv" [label = "gawk-4.1.4", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/n48xdjkvhlhj5mgdzy59n0dpb9vn0v78-grep-2.25.drv" [label = "grep-2.25", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/i52csyja3036ns0zj6z85lkgz3wfyym7-coreutils-8.25.drv" [label = "coreutils-8.25", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/nv4mnbz3mpd4gv80djk7762wyvxpccqk-make-4.2.1.drv" [label = "make-4.2.1", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/2c60vlcvpj5dvmgklajkp7cpynhcqixr-bash-4.4.0.drv" [label = "bash-4.4.0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/zhc5c4s0xvzizpgpq2za6x84vxv57iy6-ld-wrapper-0.drv" [label = "ld-wrapper-0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/9k1js0kalh4s6q4hf0rgg2n0zdyrwi69-binutils-2.27.drv" [label = "binutils-2.27", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [label = "gcc-4.9.4", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [label = "glibc-2.24", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [label = "glibc-utf8-locales-2.24", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" [label = "acl-2.2.52", shape = box, fontname = "dejavu sans"];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" [color = darkgoldenrod];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [color = darkgoldenrod];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = darkgoldenrod];
@@ -85,7 +85,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = darkgoldenrod];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = darkgoldenrod];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" [color = darkgoldenrod];
- "/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" [label = "gettext-minimal-0.19.8.1", shape = box, fontname = Helvetica];
+ "/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" [label = "gettext-minimal-0.19.8.1", shape = box, fontname = "dejavu sans"];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = dimgrey];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = dimgrey];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [color = dimgrey];
@@ -106,7 +106,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = dimgrey];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = dimgrey];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" [color = dimgrey];
- "/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" [label = "expat-2.2.0", shape = box, fontname = Helvetica];
+ "/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" [label = "expat-2.2.0", shape = box, fontname = "dejavu sans"];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = darkviolet];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = darkviolet];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [color = darkviolet];
@@ -126,7 +126,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [color = darkviolet];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = darkviolet];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = darkviolet];
- "/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" [label = "attr-2.4.47", shape = box, fontname = Helvetica];
+ "/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" [label = "attr-2.4.47", shape = box, fontname = "dejavu sans"];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" [color = peachpuff4];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = peachpuff4];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = peachpuff4];
@@ -148,7 +148,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = peachpuff4];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = peachpuff4];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [color = peachpuff4];
- "/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" [label = "gmp-6.1.1", shape = box, fontname = Helvetica];
+ "/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" [label = "gmp-6.1.1", shape = box, fontname = "dejavu sans"];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" [color = darkgoldenrod];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = darkgoldenrod];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = darkgoldenrod];
@@ -169,7 +169,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [color = darkgoldenrod];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = darkgoldenrod];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = darkgoldenrod];
- "/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" [label = "m4-1.4.17", shape = box, fontname = Helvetica];
+ "/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" [label = "m4-1.4.17", shape = box, fontname = "dejavu sans"];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = cyan3];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = cyan3];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [color = cyan3];
@@ -189,7 +189,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [color = cyan3];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = cyan3];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = cyan3];
- "/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" [label = "libcap-2.24", shape = box, fontname = Helvetica];
+ "/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" [label = "libcap-2.24", shape = box, fontname = "dejavu sans"];
"/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" -> "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [color = blue];
"/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = blue];
"/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = blue];
diff --git a/doc/images/coreutils-graph.dot b/doc/images/coreutils-graph.dot
index 920e5f2358..ffb62c922d 100644
--- a/doc/images/coreutils-graph.dot
+++ b/doc/images/coreutils-graph.dot
@@ -1,24 +1,24 @@
digraph "Guix package" {
- "72851008" [label = "coreutils-8.25", shape = box, fontname = Helvetica];
+ "72851008" [label = "coreutils-8.25", shape = box, fontname = "dejavu sans"];
"72851008" -> "49728512" [color = darkseagreen];
"72851008" -> "74872512" [color = darkseagreen];
"72851008" -> "53180864" [color = darkseagreen];
"72851008" -> "75199232" [color = darkseagreen];
- "49728512" [label = "perl-5.24.0", shape = box, fontname = Helvetica];
- "74872512" [label = "acl-2.2.52", shape = box, fontname = Helvetica];
+ "49728512" [label = "perl-5.24.0", shape = box, fontname = "dejavu sans"];
+ "74872512" [label = "acl-2.2.52", shape = box, fontname = "dejavu sans"];
"74872512" -> "74873280" [color = red];
"74872512" -> "49728512" [color = red];
"74872512" -> "74872704" [color = red];
- "74873280" [label = "gettext-minimal-0.19.8.1", shape = box, fontname = Helvetica];
+ "74873280" [label = "gettext-minimal-0.19.8.1", shape = box, fontname = "dejavu sans"];
"74873280" -> "41550784" [color = cyan3];
- "41550784" [label = "expat-2.2.0", shape = box, fontname = Helvetica];
- "74872704" [label = "attr-2.4.47", shape = box, fontname = Helvetica];
+ "41550784" [label = "expat-2.2.0", shape = box, fontname = "dejavu sans"];
+ "74872704" [label = "attr-2.4.47", shape = box, fontname = "dejavu sans"];
"74872704" -> "74873280" [color = cyan3];
"74872704" -> "49728512" [color = cyan3];
- "53180864" [label = "gmp-6.1.1", shape = box, fontname = Helvetica];
+ "53180864" [label = "gmp-6.1.1", shape = box, fontname = "dejavu sans"];
"53180864" -> "50262784" [color = darkgoldenrod];
- "50262784" [label = "m4-1.4.17", shape = box, fontname = Helvetica];
- "75199232" [label = "libcap-2.24", shape = box, fontname = Helvetica];
+ "50262784" [label = "m4-1.4.17", shape = box, fontname = "dejavu sans"];
+ "75199232" [label = "libcap-2.24", shape = box, fontname = "dejavu sans"];
"75199232" -> "49728512" [color = blue];
"75199232" -> "74872704" [color = blue];
diff --git a/doc/images/gcc-core-mesboot0-graph.dot b/doc/images/gcc-core-mesboot0-graph.dot
index ef4e3a441e..de20dbe223 100644
--- a/doc/images/gcc-core-mesboot0-graph.dot
+++ b/doc/images/gcc-core-mesboot0-graph.dot
@@ -1,5 +1,5 @@
digraph "Guix package" {
- "139803511371136" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = sans];
+ "139803511371136" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = "dejavu sans"];
"139803511371136" -> "139803511371312" [color = red];
"139803511371136" -> "139803511372016" [color = red];
"139803511371136" -> "139803511371488" [color = red];
@@ -9,7 +9,7 @@ digraph "Guix package" {
"139803511371136" -> "139803511373600" [color = red];
"139803511371136" -> "139803507105968" [color = red];
"139803511371136" -> "139803749199472" [color = red];
- "139803511371312" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = sans];
+ "139803511371312" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = "dejavu sans"];
"139803511371312" -> "139803511372016" [color = dimgrey];
"139803511371312" -> "139803511371488" [color = dimgrey];
"139803511371312" -> "139803511371664" [color = dimgrey];
@@ -18,57 +18,57 @@ digraph "Guix package" {
"139803511371312" -> "139803511373600" [color = dimgrey];
"139803511371312" -> "139803507105968" [color = dimgrey];
"139803511371312" -> "139803749199472" [color = dimgrey];
- "139803511372016" [label = "gzip-mesboot@1.2.4", shape = box, fontname = sans];
+ "139803511372016" [label = "gzip-mesboot@1.2.4", shape = box, fontname = "dejavu sans"];
"139803511372016" -> "139803511372192" [color = magenta];
"139803511372016" -> "139803507105792" [color = magenta];
"139803511372016" -> "139803511373600" [color = magenta];
"139803511372016" -> "139803507105968" [color = magenta];
"139803511372016" -> "139803749199472" [color = magenta];
- "139803511372192" [label = "tcc-boot0@0.9.26-1136-g5bba73cc", shape = box, fontname = sans];
+ "139803511372192" [label = "tcc-boot0@0.9.26-1136-g5bba73cc", shape = box, fontname = "dejavu sans"];
"139803511372192" -> "139803511372368" [color = magenta];
"139803511372192" -> "139803511372544" [color = magenta];
"139803511372192" -> "139803507105792" [color = magenta];
"139803511372192" -> "139803511373600" [color = magenta];
"139803511372192" -> "139803507105968" [color = magenta];
"139803511372192" -> "139803749199472" [color = magenta];
- "139803511372368" [label = "mes-boot@0.24", shape = box, fontname = sans];
+ "139803511372368" [label = "mes-boot@0.24", shape = box, fontname = "dejavu sans"];
"139803511372368" -> "139803511372544" [color = darkviolet];
"139803511372368" -> "139803507105792" [color = darkviolet];
"139803511372368" -> "139803511373600" [color = darkviolet];
"139803511372368" -> "139803507105968" [color = darkviolet];
"139803511372368" -> "139803749199472" [color = darkviolet];
- "139803511372544" [label = "stage0-posix@1.4", shape = box, fontname = sans];
+ "139803511372544" [label = "stage0-posix@1.4", shape = box, fontname = "dejavu sans"];
"139803511372544" -> "139803511373072" [color = peachpuff4];
"139803511372544" -> "139803507105792" [color = peachpuff4];
"139803511372544" -> "139803511373600" [color = peachpuff4];
"139803511372544" -> "139803507105968" [color = peachpuff4];
"139803511372544" -> "139803749199472" [color = peachpuff4];
- "139803511373072" [label = "bootstrap-seeds@1.0.0", shape = ellipse, fontname = sans];
+ "139803511373072" [label = "bootstrap-seeds@1.0.0", shape = ellipse, fontname = "dejavu sans"];
"139803511373072" -> "139803507105968" [color = cyan3];
- "139803507105968" [label = "bootar@1b", shape = box, fontname = sans];
+ "139803507105968" [label = "bootar@1b", shape = box, fontname = "dejavu sans"];
"139803507105968" -> "139803749199472" [color = dimgrey];
- "139803749199472" [label = "guile-bootstrap@2.0", shape = ellipse, fontname = sans];
- "139803507105792" [label = "gash-boot@0.3.0", shape = box, fontname = sans];
+ "139803749199472" [label = "guile-bootstrap@2.0", shape = ellipse, fontname = "dejavu sans"];
+ "139803507105792" [label = "gash-boot@0.3.0", shape = box, fontname = "dejavu sans"];
"139803507105792" -> "139803507105968" [color = darkviolet];
"139803507105792" -> "139803749199472" [color = darkviolet];
- "139803511373600" [label = "gash-utils-boot@0.2.0", shape = box, fontname = sans];
+ "139803511373600" [label = "gash-utils-boot@0.2.0", shape = box, fontname = "dejavu sans"];
"139803511373600" -> "139803507105968" [color = red];
"139803511373600" -> "139803507105792" [color = red];
"139803511373600" -> "139803749199472" [color = red];
- "139803511371488" [label = "patch-mesboot@2.5.9", shape = box, fontname = sans];
+ "139803511371488" [label = "patch-mesboot@2.5.9", shape = box, fontname = "dejavu sans"];
"139803511371488" -> "139803511371840" [color = darkseagreen];
"139803511371488" -> "139803511372192" [color = darkseagreen];
"139803511371488" -> "139803507105792" [color = darkseagreen];
"139803511371488" -> "139803511373600" [color = darkseagreen];
"139803511371488" -> "139803507105968" [color = darkseagreen];
"139803511371488" -> "139803749199472" [color = darkseagreen];
- "139803511371840" [label = "make-mesboot0@3.80", shape = box, fontname = sans];
+ "139803511371840" [label = "make-mesboot0@3.80", shape = box, fontname = "dejavu sans"];
"139803511371840" -> "139803511372192" [color = blue];
"139803511371840" -> "139803507105792" [color = blue];
"139803511371840" -> "139803511373600" [color = blue];
"139803511371840" -> "139803507105968" [color = blue];
"139803511371840" -> "139803749199472" [color = blue];
- "139803511371664" [label = "tcc-boot@0.9.27", shape = box, fontname = sans];
+ "139803511371664" [label = "tcc-boot@0.9.27", shape = box, fontname = "dejavu sans"];
"139803511371664" -> "139803511371840" [color = peachpuff4];
"139803511371664" -> "139803511372192" [color = peachpuff4];
"139803511371664" -> "139803507105792" [color = peachpuff4];
diff --git a/doc/images/service-graph.dot b/doc/images/service-graph.dot
index b7b617abbc..8de91f1adc 100644
--- a/doc/images/service-graph.dot
+++ b/doc/images/service-graph.dot
@@ -1,12 +1,12 @@
digraph "Service Type Dependencies" {
- shepherd [shape = box, fontname = Helvetica];
- pam [shape = box, fontname = Helvetica];
- etc [shape = box, fontname = Helvetica];
- profile [shape = box, fontname = Helvetica];
- accounts [shape = box, fontname = Helvetica];
- activation [shape = box, fontname = Helvetica];
- boot [shape = box, fontname = Helvetica];
- system [shape = house, fontname = Helvetica];
+ shepherd [shape = box, fontname = "dejavu sans"];
+ pam [shape = box, fontname = "dejavu sans"];
+ etc [shape = box, fontname = "dejavu sans"];
+ profile [shape = box, fontname = "dejavu sans"];
+ accounts [shape = box, fontname = "dejavu sans"];
+ activation [shape = box, fontname = "dejavu sans"];
+ boot [shape = box, fontname = "dejavu sans"];
+ system [shape = house, fontname = "dejavu sans"];
lshd -> shepherd;
lshd -> pam;
udev -> shepherd;
diff --git a/doc/images/shepherd-graph.dot b/doc/images/shepherd-graph.dot
index 35b2794689..06b028701b 100644
--- a/doc/images/shepherd-graph.dot
+++ b/doc/images/shepherd-graph.dot
@@ -1,7 +1,7 @@
digraph "Guix shepherd-service" {
- "user-file-systems" [label = "user-file-systems", shape = box, fontname = Helvetica];
+ "user-file-systems" [label = "user-file-systems", shape = box, fontname = "dejavu sans"];
"user-processes" -> "user-file-systems" [color = cyan3];
- "user-processes" [label = "user-processes", shape = box, fontname = Helvetica];
+ "user-processes" [label = "user-processes", shape = box, fontname = "dejavu sans"];
"nscd" -> "user-processes" [color = magenta];
"guix-daemon" -> "user-processes" [color = blue];
"urandom-seed" -> "user-processes" [color = dimgrey];
@@ -13,45 +13,45 @@ digraph "Guix shepherd-service" {
"term-tty2" -> "user-processes" [color = darkviolet];
"term-tty1" -> "user-processes" [color = peachpuff4];
"networking" -> "user-processes" [color = dimgrey];
- "nscd" [label = "nscd", shape = box, fontname = Helvetica];
- "guix-daemon" [label = "guix-daemon", shape = box, fontname = Helvetica];
- "urandom-seed" [label = "urandom-seed", shape = box, fontname = Helvetica];
- "syslogd" [label = "syslogd", shape = box, fontname = Helvetica];
+ "nscd" [label = "nscd", shape = box, fontname = "dejavu sans"];
+ "guix-daemon" [label = "guix-daemon", shape = box, fontname = "dejavu sans"];
+ "urandom-seed" [label = "urandom-seed", shape = box, fontname = "dejavu sans"];
+ "syslogd" [label = "syslogd", shape = box, fontname = "dejavu sans"];
"ssh-daemon" -> "syslogd" [color = darkgoldenrod];
- "ssh-daemon" [label = "ssh-daemon", shape = box, fontname = Helvetica];
- "term-tty6" [label = "term-tty6", shape = box, fontname = Helvetica];
+ "ssh-daemon" [label = "ssh-daemon", shape = box, fontname = "dejavu sans"];
+ "term-tty6" [label = "term-tty6", shape = box, fontname = "dejavu sans"];
"console-font-tty6" -> "term-tty6" [color = darkgoldenrod];
- "console-font-tty6" [label = "console-font-tty6", shape = box, fontname = Helvetica];
- "term-tty5" [label = "term-tty5", shape = box, fontname = Helvetica];
+ "console-font-tty6" [label = "console-font-tty6", shape = box, fontname = "dejavu sans"];
+ "term-tty5" [label = "term-tty5", shape = box, fontname = "dejavu sans"];
"console-font-tty5" -> "term-tty5" [color = dimgrey];
- "console-font-tty5" [label = "console-font-tty5", shape = box, fontname = Helvetica];
- "term-tty4" [label = "term-tty4", shape = box, fontname = Helvetica];
+ "console-font-tty5" [label = "console-font-tty5", shape = box, fontname = "dejavu sans"];
+ "term-tty4" [label = "term-tty4", shape = box, fontname = "dejavu sans"];
"console-font-tty4" -> "term-tty4" [color = darkviolet];
- "console-font-tty4" [label = "console-font-tty4", shape = box, fontname = Helvetica];
- "term-tty3" [label = "term-tty3", shape = box, fontname = Helvetica];
+ "console-font-tty4" [label = "console-font-tty4", shape = box, fontname = "dejavu sans"];
+ "term-tty3" [label = "term-tty3", shape = box, fontname = "dejavu sans"];
"console-font-tty3" -> "term-tty3" [color = peachpuff4];
- "console-font-tty3" [label = "console-font-tty3", shape = box, fontname = Helvetica];
- "term-tty2" [label = "term-tty2", shape = box, fontname = Helvetica];
+ "console-font-tty3" [label = "console-font-tty3", shape = box, fontname = "dejavu sans"];
+ "term-tty2" [label = "term-tty2", shape = box, fontname = "dejavu sans"];
"console-font-tty2" -> "term-tty2" [color = darkseagreen];
- "console-font-tty2" [label = "console-font-tty2", shape = box, fontname = Helvetica];
- "term-tty1" [label = "term-tty1", shape = box, fontname = Helvetica];
+ "console-font-tty2" [label = "console-font-tty2", shape = box, fontname = "dejavu sans"];
+ "term-tty1" [label = "term-tty1", shape = box, fontname = "dejavu sans"];
"console-font-tty1" -> "term-tty1" [color = cyan3];
- "console-font-tty1" [label = "console-font-tty1", shape = box, fontname = Helvetica];
- "networking" [label = "networking", shape = box, fontname = Helvetica];
+ "console-font-tty1" [label = "console-font-tty1", shape = box, fontname = "dejavu sans"];
+ "networking" [label = "networking", shape = box, fontname = "dejavu sans"];
"ssh-daemon" -> "networking" [color = darkgoldenrod];
- "root-file-system" [label = "root-file-system", shape = box, fontname = Helvetica];
+ "root-file-system" [label = "root-file-system", shape = box, fontname = "dejavu sans"];
"file-system-/dev/pts" -> "root-file-system" [color = peachpuff4];
"file-system-/dev/shm" -> "root-file-system" [color = darkgoldenrod];
"file-system-/gnu/store" -> "root-file-system" [color = blue];
"user-processes" -> "root-file-system" [color = cyan3];
"udev" -> "root-file-system" [color = darkseagreen];
- "file-system-/dev/pts" [label = "file-system-/dev/pts", shape = box, fontname = Helvetica];
+ "file-system-/dev/pts" [label = "file-system-/dev/pts", shape = box, fontname = "dejavu sans"];
"user-processes" -> "file-system-/dev/pts" [color = cyan3];
- "file-system-/dev/shm" [label = "file-system-/dev/shm", shape = box, fontname = Helvetica];
+ "file-system-/dev/shm" [label = "file-system-/dev/shm", shape = box, fontname = "dejavu sans"];
"user-processes" -> "file-system-/dev/shm" [color = cyan3];
- "file-system-/gnu/store" [label = "file-system-/gnu/store", shape = box, fontname = Helvetica];
+ "file-system-/gnu/store" [label = "file-system-/gnu/store", shape = box, fontname = "dejavu sans"];
"user-processes" -> "file-system-/gnu/store" [color = cyan3];
- "udev" [label = "udev", shape = box, fontname = Helvetica];
+ "udev" [label = "udev", shape = box, fontname = "dejavu sans"];
"term-tty6" -> "udev" [color = magenta];
"term-tty5" -> "udev" [color = red];
"term-tty4" -> "udev" [color = darkgoldenrod];
@@ -59,13 +59,13 @@ digraph "Guix shepherd-service" {
"term-tty2" -> "udev" [color = darkviolet];
"term-tty1" -> "udev" [color = peachpuff4];
"networking" -> "udev" [color = dimgrey];
- "host-name" [label = "host-name", shape = box, fontname = Helvetica];
+ "host-name" [label = "host-name", shape = box, fontname = "dejavu sans"];
"term-tty6" -> "host-name" [color = magenta];
"term-tty5" -> "host-name" [color = red];
"term-tty4" -> "host-name" [color = darkgoldenrod];
"term-tty3" -> "host-name" [color = dimgrey];
"term-tty2" -> "host-name" [color = darkviolet];
"term-tty1" -> "host-name" [color = peachpuff4];
- "loopback" [label = "loopback", shape = box, fontname = Helvetica];
+ "loopback" [label = "loopback", shape = box, fontname = "dejavu sans"];
}
diff --git a/doc/local.mk b/doc/local.mk
index 8df003b891..130f40ece9 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -5,6 +5,8 @@
# Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2018, 2021 Julien Lepiller <julien@lepiller.eu>
+# Copyright © 2019 Timothy Sample <samplet@ngyro.com>
+# Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -142,20 +144,25 @@ DOT_OPTIONS = \
-Nfontsize=9 -Nheight=.1 -Nwidth=.1
.dot.png:
- $(AM_V_DOT)$(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
- mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
+ $(AM_V_DOT)$(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"
+ $(AM_V_at)mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
.dot.pdf:
- $(AM_V_DOT)$(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
- mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
+ $(AM_V_DOT)set -e; export TZ=UTC0; \
+ $(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"
+ $(AM_V_at)sed -ri \
+ -e 's,(/CreationDate \(D:).*\),\119700101000000),' \
+ "$(srcdir)/$@.tmp"
+ $(AM_V_at)mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
.dot.eps:
- $(AM_V_DOT)$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
- mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
+ $(AM_V_DOT)$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"
+ $(AM_v_at)! grep -q %%CreationDate "$(srcdir)/$@.tmp"
+ $(AM_V_at)mv "$(srcdir)/$@.tmp" "$@"
.png.eps:
- $(AM_V_GEN)convert "$<" "$@-tmp.eps"; \
- mv "$@-tmp.eps" "$@"
+ $(AM_V_GEN)convert "$<" "$@-tmp.eps"
+ $(AM_V_at)mv "$@-tmp.eps" "$@"
# We cannot add new dependencies to `%D%/guix.pdf' & co. (info "(automake)
# Extending"). Using the `-local' rules is imperfect, because they may be
@@ -223,6 +230,9 @@ gen_man = \
$(HELP2MANFLAGS)
HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME)
+# help2man reproducibility
+SOURCE_DATE_EPOCH = $(shell git show HEAD --format=%ct --no-patch 2>/dev/null || echo 1)
+export SOURCE_DATE_EPOCH
$(srcdir)/%D%/guix.1: scripts/guix.in $(sub_commands_mans)
-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
@@ -247,3 +257,72 @@ $(srcdir)/%D%/guix-daemon.1: guix-daemon$(EXEEXT)
endif
endif
+
+# Reproducible tarball
+
+# Define a rule to build `version[LANG].texi' reproducibly using metadata from
+# Git rather than using metadata from the filesystem.
+define version.texi-from-git
+$(srcdir)/doc/stamp-$(1): $(srcdir)/$(2) $(top_srcdir)/configure
+ $$(AM_V_GEN)set -e; \
+ export LANG=C LANGUAGE=C LC_ALL=C LC_TIME=C; \
+ export TZ=UTC0; \
+ timestamp="$$$$(git log --pretty=format:%ct -n1 -- "$$<" \
+ 2>/dev/null \
+ || echo $$(SOURCE_DATE_EPOCH))" \
+ dmy=$$$$(date --date="@$$$$timestamp" "+%-d %B %Y"); \
+ my=$$$$(date --date="@$$$$timestamp" "+%B %Y"); \
+ { echo "@set UPDATED $$$$dmy"; \
+ echo "@set UPDATED-MONTH $$$$my"; \
+ echo "@set EDITION $$$(VERSION)"; \
+ echo "@set VERSION $$$(VERSION)"; } > "$$@-t"; \
+ mv "$$@-t" "$$@"; \
+ cp -p "$$@" "$$(srcdir)/doc/version$(3).texi"
+endef
+
+# Generate rules for stamp-vti and stamp-N that create version.texi and
+# version-LANG.texi to override the Autotools versions that use timestamps
+# embedded in the file-system. These are expected to generate warnings:
+#
+# Makefile:7376: warning: overriding recipe for target 'doc/stamp-vti'
+# Makefile:5098: warning: ignoring old recipe for target 'doc/stamp-vti'
+i:=0
+$(eval $(call version.texi-from-git,vti,doc/guix.texi,))
+$(foreach lang, $(MANUAL_LANGUAGES), \
+ $(eval i=$(shell echo $$(($(i)+1)))) \
+ $(eval $(call version.texi-from-git,$(i),po/doc/guix-manual.$(lang).po,-$(lang))))
+
+DIST_CONFIGURE_FLAGS = \
+ --localstatedir=/var \
+ --sysconfdir=/etc
+
+# Delete all Autotools-generated files and rerun configure to ensure
+# a clean cache and distributing reproducible versions.
+auto-clean: maintainer-clean-vti doc-clean
+ rm -f ABOUT-NLS INSTALL
+ rm -f aclocal.m4 configure libtool Makefile.in
+ if test -e .git; then \
+ git clean -fdx -- '.am*' build-aux m4 po; \
+ else \
+ rm -rf .am*; \
+ $(MAKE) -C po/guix maintainer-clean; \
+ $(MAKE) -C po/packages maintainer-clean; \
+ fi
+ rm -f guile
+ rm -f guix-daemon nix/nix-daemon/guix_daemon-guix-daemon.o
+# Automake fails if guix-cookbook-LANG.texi stubs are missing; running
+# autoreconf -vif is not enough.
+ ./bootstrap
+# The dependency chain for the guix-cookbook-LANG.texi was cut on purpose;
+# they must be deleted to ensure a rebuild.
+ rm -f $(filter-out %D%/guix.texi %D%/guix-cookbook.texi, $(info_TEXINFOS))
+ ./configure $(DIST_CONFIGURE_FLAGS)
+
+# Delete all generated doc files to ensure a clean cache and distributing
+# reproducible versions.
+doc-clean:
+ rm -f $(srcdir)/doc/*.1
+ rm -f $(srcdir)/doc/stamp*
+ rm -f $(DOT_FILES:%.dot=%.png)
+ rm -f $(DOT_VECTOR_GRAPHICS)
+ rm -f doc/images/coreutils-size-map.eps
diff --git a/etc/teams.scm b/etc/teams.scm
index 570793b539..d537e83efc 100755
--- a/etc/teams.scm
+++ b/etc/teams.scm
@@ -595,10 +595,6 @@ GLib/GIO, GTK, GStreamer and Webkit."
"me@tobias.gr")
core kernel mentors)
-(define-member (person "Björn Höfling"
- "bjoern.hoefling@bjoernhoefling.de")
- java)
-
(define-member (person "Leo Famulari"
"leo@famulari.name")
kernel)
@@ -663,10 +659,6 @@ GLib/GIO, GTK, GStreamer and Webkit."
"zimon.toutoune@gmail.com")
julia core mentors)
-(define-member (person "Raghav Gururajan"
- "rg@raghavgururajan.name")
- gnome mentors)
-
(define-member (person "宋文武"
"iyzsong@envs.net")
games localization lxqt qt xfce)
diff --git a/gnu/local.mk b/gnu/local.mk
index d60436f4dd..ccff8648be 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -41,7 +41,7 @@
# Copyright © 2020, 2023 Vinicius Monego <monego@posteo.net>
# Copyright © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
# Copyright © 2021 Greg Hogan <code@greghogan.com>
-# Copyright © 2021, 2022, 2023 Philip McGrath <philip@philipmcgrath.com>
+# Copyright © 2021-2024 Philip McGrath <philip@philipmcgrath.com>
# Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
# Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
@@ -221,6 +221,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/cybersecurity.scm \
%D%/packages/cyrus-sasl.scm \
%D%/packages/darwin.scm \
+ %D%/packages/data-language.scm \
%D%/packages/databases.scm \
%D%/packages/datamash.scm \
%D%/packages/datastructures.scm \
@@ -414,6 +415,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/libidn.scm \
%D%/packages/libphidget.scm \
%D%/packages/libreoffice.scm \
+ %D%/packages/librewolf.scm \
%D%/packages/libsigsegv.scm \
%D%/packages/libunistring.scm \
%D%/packages/libusb.scm \
@@ -1020,6 +1022,7 @@ dist_patch_DATA = \
%D%/packages/patches/ccextractor-add-missing-header.patch \
%D%/packages/patches/ccextractor-autoconf-tesseract.patch \
%D%/packages/patches/ccextractor-fix-ocr.patch \
+ %D%/packages/patches/chez-scheme-backport-configure.patch \
%D%/packages/patches/chez-scheme-bin-sh.patch \
%D%/packages/patches/circos-remove-findbin.patch \
%D%/packages/patches/cdparanoia-fpic.patch \
@@ -1118,6 +1121,7 @@ dist_patch_DATA = \
%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 \
+ %D%/packages/patches/durden-shadow-arcan.patch \
%D%/packages/patches/dvd+rw-tools-add-include.patch \
%D%/packages/patches/dynaconf-unvendor-deps.patch \
%D%/packages/patches/dyninst-fix-glibc-compatibility.patch \
@@ -1293,6 +1297,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-12-cross-environment-variables.patch \
%D%/packages/patches/gcc-10-tree-sra-union-handling.patch \
%D%/packages/patches/gcc-11-libstdc++-powerpc.patch \
+ %D%/packages/patches/gcc-13-cross-system-header-dir.patch \
%D%/packages/patches/gcolor3-update-libportal-usage.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-brect-bounds.patch \
@@ -1995,9 +2000,8 @@ dist_patch_DATA = \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \
%D%/packages/patches/racket-chez-scheme-bin-sh.patch \
- %D%/packages/patches/racket-backport-8.11-layered-docs.patch \
+ %D%/packages/patches/racket-backport-8.12-chez-configure.patch \
%D%/packages/patches/racket-rktio-bin-sh.patch \
- %D%/packages/patches/racket-zuo-bin-sh.patch \
%D%/packages/patches/remake-impure-dirs.patch \
%D%/packages/patches/restartd-update-robust.patch \
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
@@ -2240,7 +2244,8 @@ dist_patch_DATA = \
%D%/packages/patches/zig-do-not-link-against-librt.patch \
%D%/packages/patches/zig-use-baseline-cpu-by-default.patch \
%D%/packages/patches/zig-use-system-paths.patch \
- %D%/packages/patches/zsh-egrep-failing-test.patch
+ %D%/packages/patches/zsh-egrep-failing-test.patch \
+ %D%/packages/patches/zuo-bin-sh.patch
MISC_DISTRO_FILES = \
%D%/packages/ld-wrapper.in
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 4affcc179c..b60857b264 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -5268,7 +5268,6 @@ disk utilization, priority, username, state, and exit code.")
"utk"))))))))
(inputs
(list go-github-com-dustin-go-humanize
- go-github-com-hashicorp-errwrap
go-github-com-hashicorp-go-multierror
go-github-com-jessevdk-go-flags
go-github-com-pierrec-lz4
diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
index c4dfa8da3e..f86e8206e5 100644
--- a/gnu/packages/arcan.scm
+++ b/gnu/packages/arcan.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 L p R n d n <guix@lprndn.info>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org>
+;;; Copyright © 2023, 2024 Ahmad Draidi <a.r.draidi@redscript.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,6 +20,7 @@
(define-module (gnu packages arcan)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system meson)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
@@ -27,8 +28,10 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
+ #:use-module (gnu packages)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
@@ -183,6 +186,74 @@ engine with a Lua scripting interface.")
"-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))
(synopsis "Combined display server, multimedia framework and game engine (SDL)")))
+(define-public durden
+ ;; Match Arcan 0.6.3
+ (let ((commit "a8938b9c835f55bedc2c42aec4ddc5c9739eb949")
+ (revision "1"))
+ (package
+ (name "durden")
+ (version (git-version "0.6.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (file-name (git-file-name name version))
+ (uri (git-reference
+ (url "https://github.com/letoram/durden")
+ (commit commit)))
+ (sha256
+ (base32 "1ybi6x2kwn597kjqycrqmlvp6z79yv2jfwzgx937wcckm55xlpvk"))
+ (patches (search-patches "durden-shadow-arcan.patch"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan #~'(("durden/" "share/arcan/appl/durden/")
+ ("util/" "share/arcan/appl/durden/util/")
+ ("distr/durden" "bin/durden"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "distr/durden"
+ (("/usr/share/\\$applname")
+ (string-append (assoc-ref outputs "out")
+ "/share/arcan/appl"))
+ (("@ARCAN_STORE_PATH@")
+ (string-append (assoc-ref inputs "arcan")
+ "/bin/arcan"))
+ (("([\\([:blank:]]+)basename " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/basename "))
+ (("([\\([:blank:]]+)date " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/date "))
+ (("([\\([:blank:]]+)ln " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/ln "))
+ (("([\\([:blank:]]+)mkdir " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/mkdir "))
+ (("([\\([:blank:]]+)true; " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/true; "))
+ (("([\\([:blank:]]+)\\[ " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/[ "))))))))
+ (inputs (list arcan coreutils))
+ (home-page "https://durden.arcan-fe.com/")
+ (synopsis "Desktop Environment for Arcan")
+ (description
+ "Durden is a desktop environment for the Arcan Display Server.
+It serves both as a reference showcase on how to take advantage of some of the
+features in Arcan, and as an entry to the advanced-user side of the desktop
+environment spectrum.")
+ (license (list license:bsd-3 license:expat license:cc-by3.0
+ license:cc-by4.0 license:asl2.0)))))
+
(define-public xarcan
(package
(name "xarcan")
diff --git a/gnu/packages/avr-xyz.scm b/gnu/packages/avr-xyz.scm
index e6092df082..86ac941770 100644
--- a/gnu/packages/avr-xyz.scm
+++ b/gnu/packages/avr-xyz.scm
@@ -62,8 +62,6 @@
(arguments
(list
#:tests? #f
- #:modules '((guix build gnu-build-system)
- (guix build utils))
#:phases #~(modify-phases %standard-phases
(delete 'configure)
(replace 'check
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 699f4cbc8f..5e74439bff 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -675,13 +675,13 @@ detection, and lossless compression.")
(define-public borg
(package
(name "borg")
- (version "1.2.7")
+ (version "1.2.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
- (base32 "06j1v4bw9jkjh6m29ns5sigmp0cslcf0cyy8rrqij11w72ijhgzn"))
+ (base32 "1aplj54x6hcyg3mnzscnwi07npy7nrws2246ss25ax6bsaq257fk"))
(modules '((guix build utils)))
(snippet
#~(begin
@@ -723,18 +723,10 @@ detection, and lossless compression.")
(setenv "BORG_OPENSSL_PREFIX" openssl)
(setenv "BORG_LIBLZ4_PREFIX" lz4)
(setenv "BORG_LIBXXHASH_PREFIX" xxhash)
- (setenv "BORG_LIBZSTD_PREFIX" zstd)
- (setenv "PYTHON_EGG_CACHE" "/tmp")
- ;; The test 'test_return_codes[python]' fails when
- ;; HOME=/homeless-shelter.
- (setenv "HOME" "/tmp"))))
- ;; The tests need to be run after Borg is installed.
- (delete 'check)
- (add-after 'install 'check
+ (setenv "BORG_LIBZSTD_PREFIX" zstd))))
+ (replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
- ;; Make the installed package available for the test suite.
- (add-installed-pythonpath inputs outputs)
;; The tests should be run in an empty directory.
(mkdir-p "tests")
(with-directory-excursion "tests"
@@ -749,7 +741,6 @@ detection, and lossless compression.")
"and not test_access_acl "
"and not test_default_acl "
"and not test_get_item_uid_gid "
- "and not test_non_ascii_acl "
"and not test_create_content_from_command "
"and not test_create_content_from_command_with_failed_command "
"and not test_create_stdin "
@@ -1076,30 +1067,29 @@ precious backup space.
"1nvmxc9x0mlks6yfn66fmwn50k5q83ip4g9vvb0kndzd7hwcyacy"))))
(build-system go-build-system)
(arguments
- '(#:import-path "github.com/restic/rest-server/cmd/rest-server"
- #:unpack-path "github.com/restic/rest-server"
- #:install-source? #f ;all we need is the binary
- #:phases (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys . args)
- (when tests?
- ;; Unit tests seems to break with Guix' non-standard TMPDIR.
- (setenv "TMPDIR" "/tmp")
- (apply (assoc-ref %standard-phases
- 'check) args))))
- (add-after 'install 'rename-binary
- (lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion (assoc-ref outputs "out")
- ;; "rest-server" is a bit too generic.
- (rename-file "bin/rest-server"
- "bin/restic-rest-server")))))))
- (propagated-inputs (list go-golang-org-x-crypto
- go-github-com-spf13-cobra
- go-github-com-prometheus-client-golang
- go-github-com-miolini-datacounter
- go-github-com-minio-sha256-simd
- go-github-com-gorilla-handlers
- go-github-com-coreos-go-systemd-activation))
+ (list
+ #:install-source? #f
+ #:import-path "github.com/restic/rest-server/cmd/rest-server"
+ #:unpack-path "github.com/restic/rest-server"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Unit tests seems to break with Guix' non-standard TMPDIR.
+ (add-before 'check 'set-tmpdir
+ (lambda _
+ (setenv "TMPDIR" "/tmp")))
+ (add-after 'install 'rename-binary
+ (lambda _
+ (with-directory-excursion #$output
+ ;; "rest-server" is a bit too generic.
+ (rename-file "bin/rest-server"
+ "bin/restic-rest-server")))))))
+ (native-inputs (list go-github-com-coreos-go-systemd-activation
+ go-github-com-gorilla-handlers
+ go-github-com-minio-sha256-simd
+ go-github-com-miolini-datacounter
+ go-github-com-prometheus-client-golang
+ go-github-com-spf13-cobra
+ go-golang-org-x-crypto))
(home-page "https://github.com/restic/rest-server")
(synopsis "Restic REST server")
(description
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 0beef9ace4..27ece61f2a 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -4529,13 +4529,13 @@ Various visual and textual types of output are available.")
(define-public r-bambu
(package
(name "r-bambu")
- (version "3.4.0")
+ (version "3.4.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "bambu" version))
(sha256
(base32
- "02pcab8jfwlx4y00yky63anba61bb1h884m0f6ajvasfpgl30w6i"))))
+ "0j2ivn93dpn7xas0bzfxhwmqzxzscgc3sjkx85y5v2ra1i6jy5k7"))))
(properties `((upstream-name . "bambu")))
(build-system r-build-system)
(propagated-inputs
@@ -6646,14 +6646,14 @@ databases. Packages produced are intended to be used with AnnotationDbi.")
(define-public r-annotationhub
(package
(name "r-annotationhub")
- (version "3.10.0")
+ (version "3.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "AnnotationHub" version))
(sha256
(base32
- "1mx3vip1rx5lq0vnkxpmkyksnq4vygmww85vxq3spr0fah1pwnkr"))))
+ "12vc573gmg8bwcfa268yq7npg7mivhngx4lx16nzan56rqb475yx"))))
(properties `((upstream-name . "AnnotationHub")))
(build-system r-build-system)
(propagated-inputs
@@ -8221,13 +8221,13 @@ Enrichment Analysis} (GSEA).")
(define-public r-gsva
(package
(name "r-gsva")
- (version "1.50.1")
+ (version "1.50.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GSVA" version))
(sha256
(base32
- "0ld0bbl6ar3yhi6ncg9d8q60hg4m4v5kphl044fw63l19ixln7cf"))))
+ "1xgp311wh7ykvnk7nh5xik1kp2b2r08vx595znmzn28fc8rz62b1"))))
(properties `((upstream-name . "GSVA")))
(build-system r-build-system)
(propagated-inputs (list r-biobase
@@ -10952,13 +10952,13 @@ single-cell RNA-seq.")
(define-public r-seqarray
(package
(name "r-seqarray")
- (version "1.42.3")
+ (version "1.42.4")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "SeqArray" version))
(sha256
(base32
- "1500vwsgdxdaafp2fb0252c0hhpz3lhrniv21nb7xnky7mbr7lk6"))))
+ "0k7g4wkj1l35pjy6gb3bdlmz5g8q2d596glj09ggm73aaj3z4m9d"))))
(properties `((upstream-name . "SeqArray")))
(build-system r-build-system)
(propagated-inputs (list r-biostrings
@@ -12023,14 +12023,14 @@ of gene-level counts.")
(define-public r-valr
(package
(name "r-valr")
- (version "0.7.0")
+ (version "0.8.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "valr" version))
(sha256
(base32
- "038s5n8cbffpb9132rpw7q82cxfzlsc86fcywhv63c8szm5g9nrk"))))
+ "0jf47yfi8dr8mgqv1gbl2kd7wgyiwsnipiwfdhf9l346yg9aj96l"))))
(build-system r-build-system)
(propagated-inputs
(list r-broom
@@ -13006,18 +13006,19 @@ signals directly in the Bruker format.")
(define-public r-codedepends
(package
(name "r-codedepends")
- (version "0.6.5")
+ (version "0.6.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "CodeDepends" version))
(sha256
(base32
- "0l7kiv3awx50glf5cs841b4zzsff1ml90f0zr868ygvwsr4ps1hq"))))
+ "0msq5ksjqp2pjzl6f1vizw53gdf5lz520bpdr5dbjwz5mc1mp0bz"))))
(properties `((upstream-name . "CodeDepends")))
(build-system r-build-system)
(propagated-inputs
(list r-codetools r-graph r-xml))
+ (native-inputs (list r-knitr))
(home-page "https://cran.r-project.org/web/packages/CodeDepends")
(synopsis "Analysis of R code for reproducible research and code comprehension")
(description
@@ -14493,14 +14494,14 @@ single cell assay data.")
(define-public r-monocle
(package
(name "r-monocle")
- (version "2.30.0")
+ (version "2.30.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "monocle" version))
(sha256
(base32
- "0i1qnmiaf3gf8955nlqzd81xzg4siliq154k699jmsz0fyyykia1"))))
+ "0hb2s58xx5cmrn3wlppay7275mln8r5y5dsnvpcps3s6xcab00rm"))))
(build-system r-build-system)
(propagated-inputs
(list r-biobase
@@ -14523,7 +14524,6 @@ single cell assay data.")
r-pheatmap
r-plyr
r-proxy
- r-qlcmatrix
r-rann
r-rcpp
r-reshape2
@@ -20752,14 +20752,14 @@ rownames.")
(define-public r-bioconcotk
(package
(name "r-bioconcotk")
- (version "1.22.0")
+ (version "1.22.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "BiocOncoTK" version))
(sha256
(base32
- "1xymgfiv9abyaq5s7m683ml8a1ls9mqvbh9qjiz3jqbbpvmsm502"))))
+ "0yx32yj9bw78nhbv1yvgs26sxdmnava1a89g9hs4ai26c1hy150s"))))
(properties `((upstream-name . "BiocOncoTK")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 7861987704..448ea5d6de 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -96,6 +96,7 @@
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-compression)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages glib)
#:use-module (gnu packages graph)
#:use-module (gnu packages graphics)
@@ -4615,7 +4616,7 @@ interval trees with associated meta-data. It is primarily used by the
(define-public python-deeptools
(package
(name "python-deeptools")
- (version "3.4.3")
+ (version "3.5.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4624,8 +4625,23 @@ interval trees with associated meta-data. It is primarily used by the
(file-name (git-file-name name version))
(sha256
(base32
- "0l09vyynz6s6w7fnyd94rpys4a6aja6kp4gli64pngdxdz3md1nl"))))
- (build-system python-build-system)
+ "0mgcs03amrd5157drbm6ikdg0m0szrn9xbflariz2zrrnqpsai6s"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-test
+ (lambda _
+ (substitute* "deeptools/test/test_tools.py"
+ (("e_ver = _p")
+ "e_ver = \".\" + _p + \"-real\""))
+ (substitute* "deeptools/multiBigwigSummary.py"
+ (("version='multiBigwigSummary")
+ "version='%(prog)s"))
+ (substitute* "deeptools/plotCoverage.py"
+ (("version='plotCoverage")
+ "version='%(prog)s")))))))
(native-inputs
(list python-mock python-nose))
(propagated-inputs
@@ -4637,7 +4653,7 @@ interval trees with associated meta-data. It is primarily used by the
python-pysam
python-scipy
python-deeptoolsintervals
- python-plotly-2.4.1))
+ python-plotly))
(home-page "https://pypi.org/project/deepTools/")
(synopsis "Useful tools for exploring deep sequencing data")
(description "This package addresses the challenge of handling large amounts
diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm
index 1b33ef7308..96b68bf83e 100644
--- a/gnu/packages/browser-extensions.scm
+++ b/gnu/packages/browser-extensions.scm
@@ -58,7 +58,7 @@ supported content to the Kodi media center.")
;; Arbitrary commit of branch master,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-main-assets")
- (commit "13715d6deb2ab7e384ac79368fd53c9fd8a7ef64")
+ (commit "1cfeef15ac031cf8ea144c7b8c7b6693fcd35664")
(revision "2")
(version (git-version "0" revision commit)))
(origin
@@ -68,13 +68,13 @@ supported content to the Kodi media center.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "124gw4wiwgnhyz0dhrwqp2rykap0ffw0cccjq9askxl0n90yswyr")))))
+ (base32 "0lglvynr5ap0yd4mshvj40q62vicn1rv0z661pvm134cddimz4fb")))))
(define ublock-prod-assets
;; Arbitrary commit of branch gh-pages,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-prod-assets")
- (commit "3da96ce3dd494202656cbc95e1de8baabc0ab7b2")
+ (commit "17d534c817bd543bbb5be48113edefcec43bbcc9")
(revision "2")
(version (git-version "0" revision commit)))
(origin
@@ -84,12 +84,12 @@ supported content to the Kodi media center.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "0wbg14zbj1kpmacfyn53kwbnb2g80jp04i9m3ydliq3cs8i04gzy")))))
+ (base32 "1iv5vqpd8bmbdp8d4d6lgrg03x23qdfalxpzxlnzx55b1wz5aagr")))))
(define ublock-origin
(package
(name "ublock-origin")
- (version "1.57.0")
+ (version "1.57.2")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
@@ -99,7 +99,7 @@ supported content to the Kodi media center.")
(file-name (git-file-name name version))
(sha256
(base32
- "1nlc96m4xyrynlxhx2l1dl84givy3knmjk1hgywgsp84z6ii78pv"))))
+ "168j7if0wnxk54rikd3a7y1asmm6xgl42bsnsvj9m44sayrfdinn"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(properties '((addon-id . "uBlock0@raymondhill.net")))
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index 58b4d50ec8..7078c7c8d1 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -188,6 +188,22 @@ taken from the NSS package and thus ultimately from the Mozilla project.")
(home-page "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS")
(license license:mpl2.0)))
+(define-public nss-certs-3.98
+ (package
+ (inherit nss-certs)
+ (version "3.98")
+ (source (origin
+ (method url-fetch)
+ (uri (let ((version-with-underscores
+ (string-join (string-split version #\.) "_")))
+ (string-append
+ "https://ftp.mozilla.org/pub/mozilla.org/security/nss/"
+ "releases/NSS_" version-with-underscores "_RTM/src/"
+ "nss-" version ".tar.gz")))
+ (sha256
+ (base32
+ "1kh98amfklrq6915n4mlbrcqghc3srm7rkzs9dkh21jwscrwqjgm"))))))
+
(define-public le-certs
(package
(name "le-certs")
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index 2811cf3e01..db582fa821 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
-;;; Copyright © 2021, 2022, 2023 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2021-2024 Philip McGrath <philip@philipmcgrath.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +27,7 @@
#:select (gpl2+ gpl3+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3 expat
public-domain))
#:use-module (guix packages)
+ #:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
@@ -49,41 +50,67 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (chez-scheme-for-system
- racket-cs-native-supported-system?
+ nix-system->native-chez-machine-type
nix-system->pbarch-machine-type
- unpack-nanopass+stex))
+ unpack-nanopass))
;; Commentary:
;;
;; The bootstrapping paths for Chez Scheme and Racket are closely
-;; entwined. Racket CS (the default Racket implementation) is based on (a fork
-;; of) Chez Scheme. Racket's variant of Chez Scheme shares sources for
-;; nanopass and stex with upstream Chez Scheme.
+;; entwined. See "Bootstrapping Racket" in the commentary on "racket.scm" for
+;; details on the Racket portion of Chez Scheme's bootstrapping path.
;;
-;; Racket's variant of Chez Scheme can be bootstrapped by an older Racket
-;; implementation, Racket BC, which can be bootstrapped from C. Porting that
-;; code to work with upstream Chez Scheme (or finding an old version that
-;; does) is our best hope for some day bootstrapping upstream Chez Scheme from
-;; source.
+;; Chez Scheme is a self-hosting compiler. A small kernel implemented in C
+;; loads "boot files" (in a custom object file format) compiled from the parts
+;; of the system implemented in Chez Scheme. (While Chez Scheme generates
+;; native machine code, it implements its own linker and loader.)
+;;
+;; As of Chez Scheme 10.0.0 (and the pre-release versions that preceded it on
+;; the Racket branch), there are several ways to obtain boot files:
+;;
+;; 1. The Racket package "cs-bootstrap" (in the "racket/src/rktboot/"
+;; directory of the main Racket Git repository) simulates enough of Chez
+;; Scheme to load the Chez Scheme compiler purely from source into Racket
+;; and apply the compiler to itself, producing the needed boot files
+;; (albeit very slowly).
+;; Any variant of Racket since version 7.1 can run the simulation. Using
+;; the older Racket BC implementation, which does not depend on Chez
+;; Scheme, breaks the dependency cycle.
+;; However, the simulation relies on implementation details of Chez
+;; Scheme, so a given version of Chez Scheme can only be bootstrapped by
+;; the corresponding version of the "cs-bootstrap" package.
+;;
+;; 2. The Chez Scheme makefile provides a "re.boot" target for bootstrapping
+;; via a different version of Chez Scheme (9.5.4 or later).
+;; This path manages potential differences in implementation details
+;; across Chez Scheme versions using a strategy similar to "cs-bootstrap",
+;; but the compatibility shim is maintained with the Chez Scheme source
+;; code (in "s/reboot.ss"). Also, it's faster, since less indirection is
+;; needed.
+;;
+;; 3. For cross-compilation, or with an extremely similar Chez Scheme, the
+;; makefile provides "cross.boot" and related targets.
+;;
+;; 4. The Chez Scheme Git repository includes pre-built "pb" (portable
+;; bytecode) boot files, which can be used for bootstrapping on any
+;; platform, but these binary files are removed from the source Guix uses.
+;;
+;; Concretely, we use racket-vm-bc to bootstrap chez-scheme-for-racket, which
+;; we then use to bootstrap both chez-scheme and racket-vm-cs.
+;;
+;; In principle, it would be possible instead to use chez-scheme to bootstrap
+;; chez-scheme-for-racket. However, since Racket is ultimately used for
+;; bootstrapping, chez-scheme would still need to be rebuilt when Racket
+;; changes, whereas treating chez-scheme as a leaf avoids having to rebuild
+;; Racket when upstream Chez Scheme changes. Furthermore, since "cs-bootstrap"
+;; is developed in the Racket source repository, we don't have to look for the
+;; version of "cs-bootstrap" compatible with the upstream Chez Scheme release.
;;
;; Code:
-(define* (chez-scheme-for-system #:optional
- (system (or (%current-target-system)
- (%current-system))))
- "Return 'chez-scheme' if it fully supports SYSTEM, including support for
-bootstrapping and native threads. Otherwise, return
-'chez-scheme-for-racket'."
- (if (and=> (chez-upstream-features-for-system system)
- (lambda (features)
- (every (cut memq <> features)
- '(threads
- ;; We can cross-compile for platforms without
- ;; bootstrap bootfiles, but we can't self-host
- ;; on them short of adding more binary seeds.
- bootstrap-bootfiles))))
- chez-scheme
- chez-scheme-for-racket))
+(define-deprecated (chez-scheme-for-system #:optional system) chez-scheme
+ "Returns 'chez-scheme'."
+ chez-scheme)
(define* (target-chez-arch #:optional (system
(or (%current-target-system)
@@ -105,6 +132,8 @@ Scheme machine types, or '#f' if none is defined."
"ppc32")
((target-riscv64? system)
"rv64")
+ ((string-prefix? "loongarch64-" system)
+ "la64")
(else
#f)))
@@ -139,111 +168,67 @@ in Chez Scheme machine types, or '#f' if none is defined."
(else
#f)))
-(define %chez-features-table
- ;; An alist of alists mapping:
- ;; os -> arch -> (or/c #f (listof symbol?))
- ;; where:
- ;; - `os` is a string for the OS part of a Chez Scheme machine type; and
- ;; - `arch` is a string for the architecture part of a Chez machine type.
- ;;
- ;; The absence of an entry for a given arch--os pair means that neither
- ;; upstream Chez Scheme nor the Racket variant can generate native code for
- ;; that system. (The Racket variant can still provide support via its
- ;; ``portable bytecode'' backends and optional compilation to C.) A value
- ;; of `#f` means that upstream Chez Scheme does not support the arch--os
- ;; pair at all, but the Racket variant does. A list has the same meaning as
- ;; a result from `chez-upstream-features-for-system`.
- ;;
- ;; The arch--os pairs marked "commented out" have been commented out in the
- ;; STeX source for the upstream release notes since the initial release as
- ;; free software, but they are reported to work and/or have been described
- ;; as supported by upstream maintainers.
- ;;
- ;; For this overall approach to make sense, we assume that Racket's variant
- ;; of Chez Scheme can generate native code for a superset of the platforms
- ;; supported upstream, supports threads on all platforms it supports at all
- ;; (because they are needed for Racket), and doesn't need bootstrap
- ;; bootfiles. Those assumptions have held for several years.
- '(;; Linux
- ("le"
- ("i3" threads bootstrap-bootfiles)
- ("a6" threads bootstrap-bootfiles)
- ("arm32" bootstrap-bootfiles)
- ("arm64" . #f)
- ("rv64" . #f)
- ("ppc32" threads))
- ;; Hurd
- ("gnu"
- ("i3" . #f))
- ;; FreeBSD
- ("fb"
- ("i3" threads) ;; commented out
- ("a6" threads) ;; commented out
- ("arm32" . #f)
- ("arm64" . #f)
- ("ppc32" . #f))
- ;; OpenBSD
- ("ob"
- ("i3" threads) ;; commented out
- ("a6" threads) ;; commented out
- ("arm32" . #f)
- ("arm64" . #f)
- ("ppc32" . #f))
- ;; NetBSD
- ("nb"
- ("i3" threads) ;; commented out
- ("a6" threads) ;; commented out
- ("arm32" . #f)
- ("arm64" . #f)
- ("ppc32" . #f))
- ;; OpenSolaris / OpenIndiana / Illumos
- ("s2"
- ("i3" threads) ;; commented out
- ("a6" threads)) ;; commented out
- ;; QNX
- ("qnx"
- ("i3" . #f))
- ;; Windows
- ("nt"
- ("i3" threads bootstrap-bootfiles)
- ("a6" threads bootstrap-bootfiles)
- ;; ^ threads "experiemental", but reportedly fine
- ("arm64" . #f))
- ;; Darwin
- ("osx"
- ("i3" threads bootstrap-bootfiles)
- ("a6" threads bootstrap-bootfiles)
- ("arm64" . #f)
- ("ppc32" . #f))))
-
-(define* (chez-upstream-features-for-system #:optional
- (system
- (or (%current-target-system)
- (%current-system))))
- "Return a list of symbols naming features supported by upstream Chez Scheme
-for the Nix system identifier SYSTEM, or @code{#f} if upstream Chez Scheme
-does not support SYSTEM at all.
-
-If native threads are supported, the returned list will include
-@code{'threads}. If bootstrap bootfiles for SYSTEM are distributed in the
-upstream Chez Scheme repository, the returned list will include
-@code{'bootstrap-bootfiles}. Other feature symbols may be added in the
-future."
- (let ((chez-arch (target-chez-arch system))
- (chez-os (target-chez-os system)))
- (and=> (assoc-ref %chez-features-table chez-os)
- (cut assoc-ref <> chez-arch))))
+(define-syntax define-machine-types
+ (lambda (stx)
+ (syntax-case stx (any)
+ ((_ any id0 id ...)
+ #`(define #,(datum->syntax #'id0 '%machine-types)
+ '(id0 id ...))))))
+;; The following is copied from s/cmacros.ss, line 36, in the Chez source
+(define-machine-types
+ any
+ pb tpb
+ pb32l tpb32l
+ pb32b tpb32b
+ pb64l tpb64l
+ pb64b tpb64b
+ i3nt ti3nt
+ i3osx ti3osx
+ i3le ti3le
+ i3fb ti3fb
+ i3ob ti3ob
+ i3nb ti3nb
+ i3s2 ti3s2
+ i3qnx ti3qnx
+ i3gnu ti3gnu
+ a6nt ta6nt
+ a6osx ta6osx
+ a6le ta6le
+ a6fb ta6fb
+ a6ob ta6ob
+ a6nb ta6nb
+ a6s2 ta6s2
+ ppc32osx tppc32osx
+ ppc32le tppc32le
+ ppc32fb tppc32fb
+ ppc32ob tppc32ob
+ ppc32nb tppc32nb
+ arm32le tarm32le
+ arm32fb tarm32fb
+ arm32ob tarm32ob
+ arm32nb tarm32nb
+ arm64nt tarm64nt
+ arm64osx tarm64osx
+ arm64le tarm64le
+ arm64fb tarm64fb
+ arm64ob tarm64ob
+ arm64nb tarm64nb
+ rv64le trv64le
+ rv64fb trv64fb
+ rv64ob trv64ob
+ rv64nb trv64nb
+ la64le tla64le
+)
(define* (nix-system->pbarch-machine-type #:optional
(system
(or (%current-target-system)
(%current-system)))
#:key (threads? #t))
- "Return a string naming the pseudo–machine type used by Racket's variant of
-Chez Scheme to represent the appropriate ``pbarch'' backend for SYSTEM: that
-is, the ``portable bytecode'' backend specialized for SYSTEM's word size and
-endianness. The result will name the threaded machine type unless THREADS? is
-provided and is #f."
+ "Return a string naming the Chez Scheme machine type of the appropriate
+``pbarch'' backend for SYSTEM: that is, the ``portable bytecode'' backend
+specialized for SYSTEM's word size and endianness. The result will name the
+threaded machine type unless THREADS? is provided as #f."
(string-append (if threads?
"t"
"")
@@ -255,453 +240,385 @@ provided and is #f."
"l"
"b")))
-(define* (racket-cs-native-supported-system? #:optional
- (system
- (or (%current-target-system)
- (%current-system))))
- "Can Racket's variant of Chez Scheme generate native code for SYSTEM? If
-so, return the applicable machine type as a string. Otherwise, when SYSTEM
-can use only the ``portable bytecode'' backends, return #f."
- (let ((chez-arch (target-chez-arch system))
- (chez-os (target-chez-os system)))
- (and (and=> (assoc-ref %chez-features-table chez-os)
- ;; NOT assoc-ref: supported even if cdr is #f
- (cut assoc chez-arch <>))
- (string-append "t" chez-arch chez-os))))
-
+(define* (nix-system->native-chez-machine-type #:optional
+ (system
+ (or (%current-target-system)
+ (%current-system)))
+ #:key (threads? #t))
+ "Return a string naming the Chez Scheme machine type of the native-code
+backend for SYSTEM, if such a native-code backend exists. Otherwise, when
+SYSTEM can use only the ``portable bytecode'' backends, return #f. The result
+will name the threaded machine type unless THREADS? is provided as #f."
+ (let* ((chez-arch (target-chez-arch system))
+ (chez-os (target-chez-os system))
+ (machine
+ (and chez-arch chez-os
+ (string-append (if threads? "t" "") chez-arch chez-os))))
+ (and machine
+ (memq (string->symbol machine) %machine-types)
+ machine)))
;;
;; Chez Scheme:
;;
+(define unpack-nanopass
+ #~(lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (with-directory-excursion (if (directory-exists? "racket/src/ChezScheme")
+ "racket/src/ChezScheme"
+ ".")
+ (symlink (dirname (search-input-file (or native-inputs inputs)
+ "lib/chez-scheme/nanopass.ss"))
+ "nanopass"))))
-(define unpack-nanopass+stex
- #~(begin
- (copy-recursively
- (dirname (search-input-file %build-inputs
- "lib/chez-scheme/nanopass.ss"))
- "nanopass"
- #:keep-mtime? #t)
- (mkdir-p "stex")
- (with-output-to-file "stex/Mf-stex"
- (lambda ()
- ;; otherwise, it will try to download submodules
- (display "# to placate ../configure")))))
+(define chez-configure
+ ;; The custom Chez 'configure' script doesn't allow unrecognized flags, such
+ ;; as those automatically added by `gnu-build-system`. This replacement
+ ;; phase uses only the explicitly provided `#:configure-flags`.
+ #~(lambda* (#:key inputs (configure-flags '()) out-of-source?
+ #:allow-other-keys)
+ (let* ((abs-srcdir (getcwd))
+ (srcdir (if out-of-source?
+ (string-append "../" (basename abs-srcdir))
+ ".")))
+ (format #t "source directory: ~s (relative from build: ~s)~%"
+ abs-srcdir srcdir)
+ (when out-of-source?
+ (begin
+ (mkdir "../build")
+ (chdir "../build")))
+ (format #t "build directory: ~s~%" (getcwd))
+ (format #t "configure flags: ~s~%" configure-flags)
+ (apply invoke
+ (string-append srcdir "/configure")
+ configure-flags))))
-(define-public chez-scheme
+(define-public chez-scheme-for-racket
(package
- (name "chez-scheme")
- ;; The version should match `(scheme-version-number)`.
+ (name "chez-scheme-for-racket")
+ ;; The version should match `(scheme-version-number #t)`.
;; See s/cmacros.ss c. line 360.
- (version "9.5.8")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/cisco/ChezScheme")
- (commit (string-append "v" version))))
- (sha256
- (base32
- "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc"))
- (file-name (git-file-name name version))
- (patches (search-patches "chez-scheme-bin-sh.patch"))
- (snippet #~(begin
- (use-modules (guix build utils))
- ;; TODO: consider putting this in a (guix ...) or
- ;; (guix build ...) module so it can be shared
- ;; with the Racket origin without cyclic issues.
- (for-each (lambda (dir)
- (when (directory-exists? dir)
- (delete-file-recursively dir)))
- '("stex"
- "nanopass"
- "lz4"
- "zlib"))))))
+ (version "9.9.9-pre-release.23")
+ (source #f)
(build-system gnu-build-system)
- (inputs
- (list
- chez-scheme-bootstrap-bootfiles
- `(,util-linux "lib") ;<-- libuuid
- zlib
- lz4
- ncurses ;<-- for expeditor
- ;; for X11 clipboard support in expeditor:
- ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232
- libx11))
- (native-inputs (list chez-nanopass-bootstrap
- stex-bootstrap))
+ (inputs `(,@(if (nix-system->native-chez-machine-type)
+ '()
+ (list libffi))
+ ,chez-scheme-for-racket-bootstrap-bootfiles
+ ,lz4
+ ,ncurses ;<-- for expeditor
+ ,zlib))
+ (native-inputs `(,@(if (%current-target-system)
+ (list this-package
+ `(,this-package "doc"))
+ (list stex-bootstrap
+ (texlive-updmap.cfg
+ (list texlive-enumitem))))
+ ,chez-nanopass-bootstrap
+ ,zuo))
(native-search-paths
(list (search-path-specification
(variable "CHEZSCHEMELIBDIRS")
(files '("lib/chez-scheme")))))
- (outputs '("out" "doc"))
+ (outputs '("out" "debug" "doc"))
(arguments
(list
#:modules
'((guix build gnu-build-system)
(guix build utils)
(ice-9 ftw)
- (ice-9 match))
- #:test-target "test"
+ (ice-9 match)
+ (srfi srfi-34))
+ #:out-of-source? #t
+ ;; Intermittent failures: https://github.com/cisco/ChezScheme/issues/809
+ #:tests? #f
+ #:test-target "test" ; test-one test-some-fast test-some test test-more
#:configure-flags
- #~`(,(string-append "--installprefix=" #$output)
- #$@(if (and=> (chez-upstream-features-for-system)
- (cut memq 'threads <>))
- #~("--threads")
- #~())
+ #~`(,@(let* ((chez+version (strip-store-file-name #$output))
+ (doc-dir (string-append #$output:doc
+ "/share/doc/"
+ chez+version)))
+ (list (string-append "--installcsug="
+ doc-dir
+ "/csug")
+ (string-append "--installreleasenotes="
+ doc-dir
+ "/release_notes")))
+ ,(string-append "--installprefix=" #$output)
+ #$@(if (%current-target-system)
+ (list (string-append "--toolprefix="
+ (%current-target-system)
+ "-"))
+ '())
+ ,@(if (false-if-exception
+ (search-input-directory %build-inputs "/include/X11"))
+ '()
+ '("--disable-x11"))
+ #$(string-append "-m=" (or (nix-system->native-chez-machine-type)
+ (nix-system->pbarch-machine-type)))
+ ;; ^ could skip -m= for non-cross non-pbarch builds
+ #$@(if (nix-system->native-chez-machine-type)
+ #~()
+ ;; not inferred on non-native platforms: see
+ ;; https://racket.discourse.group/t/950/9
+ #~("--enable-libffi"
+ "CFLAGS+=-g -D_REENTRANT -pthread"
+ "LIBS+=-lm -ldl -lrt -lncurses"))
+ ,(string-append "STEXLIB="
+ (or (false-if-exception
+ (search-input-directory %build-inputs
+ "/lib/stex"))
+ "/GuixNotUsingStex"))
+ "ZUO=zuo"
"ZLIB=-lz"
"LZ4=-llz4"
- "--libkernel"
;; Guix will do 'compress-man-pages',
- ;; and letting Chez try causes an error
+ ;; and letting Chez try caused an error (at one point)
"--nogzip-man-pages")
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'unpack-nanopass+stex
+ (replace 'unpack
+ (let ((unpack (assoc-ref %standard-phases 'unpack)))
+ (lambda args
+ (unpack #:source #$(or (package-source this-package)
+ (package-source racket-vm-bc))))))
+ (add-after 'unpack 'unpack-nanopass
+ #$unpack-nanopass)
+ (add-after 'unpack-nanopass 'maybe-chdir
(lambda args
- #$unpack-nanopass+stex))
- (add-after 'unpack-nanopass+stex 'unpack-bootfiles
+ (when (directory-exists? "racket/src/ChezScheme")
+ (chdir "racket/src/ChezScheme"))))
+ (add-after 'maybe-chdir 'unpack-bootfiles
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(when (directory-exists? "boot")
(delete-file-recursively "boot"))
(copy-recursively
- (search-input-directory inputs
- "lib/chez-scheme-bootfiles")
+ (search-input-directory inputs "lib/chez-scheme-bootfiles")
"boot")))
- ;; NOTE: The custom Chez 'configure' script doesn't allow
- ;; unrecognized flags, such as those automatically added
- ;; by `gnu-build-system`. This replacement phase uses only
- ;; the explicitly provided `#:configure-flags`.
(replace 'configure
- (lambda* (#:key inputs (configure-flags '()) out-of-source?
- #:allow-other-keys)
- (let* ((abs-srcdir (getcwd))
- (srcdir (if out-of-source?
- (string-append "../" (basename abs-srcdir))
- ".")))
- (format #t "source directory: ~s (relative from build: ~s)~%"
- abs-srcdir srcdir)
- (if out-of-source?
- (begin
- (mkdir "../build")
- (chdir "../build")))
- (format #t "build directory: ~s~%" (getcwd))
- (format #t "configure flags: ~s~%" configure-flags)
- (apply invoke
- (string-append srcdir "/configure")
- configure-flags))))
+ #$chez-configure)
(add-after 'configure 'configure-environment-variables
(lambda args
- ;; Some makefiles (for tests) don't seem to propagate CC
- ;; properly, so we take it out of their hands:
- (setenv "CC" #$(cc-for-target))
- ;; Likewise, some tests have needed HOME to be set:
+ ;; mats/6.ms needs HOME to be set:
(setenv "HOME" "/tmp")))
+ (replace 'build
+ ;; need to override target for cross-compilation
+ ;; https://racket.discourse.group/t/950/19
+ (let ((gnu:build (assoc-ref %standard-phases 'build)))
+ (lambda* (#:key target (make-flags '()) (parallel-build? #t)
+ #:allow-other-keys)
+ (gnu:build #:make-flags (if target
+ (cons "kernel" make-flags)
+ make-flags)
+ #:parallel-build? parallel-build?))))
+ (add-before 'check 'build-docs
+ ;; Building the documentation requires stex and a running scheme.
+ ;; This comes BEFORE 'check because the test suite may take on the
+ ;; order of an hour (without parallelism), so we want to get any
+ ;; other errors first.
+ ;; TODO: Improve cross support upstream: currently, it tries to
+ ;; run the cross-compiled scheme.
+ (lambda* (#:key native-inputs (make-flags '()) #:allow-other-keys)
+ #$(if (%current-target-system)
+ #~(format #t "not building docs for cross~%")
+ #~(apply invoke "make" "docs" make-flags))))
;; The binary file name is called "scheme" as is the one from
;; MIT/GNU Scheme. We add a symlink to use in case both are
;; installed.
(add-after 'install 'install-symlink
(lambda* (#:key outputs #:allow-other-keys)
- (let* ((scheme (search-input-file outputs "/bin/scheme"))
- (bin-dir (dirname scheme)))
- (symlink scheme
- (string-append bin-dir "/chez-scheme"))
- (match (find-files (string-append bin-dir "/../lib")
- "scheme.boot")
- ((scheme.boot)
- (symlink scheme.boot
- (string-append (dirname scheme.boot)
- "/chez-scheme.boot")))))))
- ;; Building the documentation requires stex and a running scheme.
+ (let* ((bin-dir
+ (dirname (search-input-file outputs "/bin/scheme")))
+ (boot-dir
+ (match (find-files (string-append bin-dir "/../lib")
+ "scheme.boot")
+ ((scheme.boot)
+ (dirname scheme.boot)))))
+ (for-each (lambda (dir)
+ (with-directory-excursion dir
+ (symlink "./scheme" "chez-scheme")
+ (when (file-exists? "scheme.boot")
+ (symlink "./scheme.boot" "chez-scheme.boot"))))
+ (list bin-dir boot-dir)))))
(add-after 'install-symlink 'install-docs
- (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
- (let* ((doc-prefix (or (assoc-ref outputs "doc")
- (assoc-ref outputs "out")))
- (chez+version (strip-store-file-name #$output))
- (scheme (search-input-file outputs "/bin/scheme"))
- (stexlib (search-input-directory (or native-inputs
- inputs)
- "/lib/stex"))
- (doc-dir (string-append doc-prefix
- "/share/doc/"
- chez+version)))
- (define* (stex-make #:optional (suffix ""))
- (invoke "make" "install"
- (string-append "Scheme=" scheme)
- (string-append "STEXLIB=" stexlib)
- (string-append "installdir=" doc-dir suffix)))
- (with-directory-excursion "csug"
- (stex-make "/csug"))
- (with-directory-excursion "release_notes"
- (stex-make "/release_notes")))))
+ ;; TODO: Improve cross support upstream.
+ ;; The `install-docs` target has a Zuo dependency on the `docs`
+ ;; target, so we have the same problem as the build-docs phase.
+ (lambda* (#:key native-inputs (make-flags '()) #:allow-other-keys)
+ #$(if (%current-target-system)
+ #~(let* ((rel
+ (string-append "share/doc/"
+ (strip-store-file-name #$output)))
+ (found/csug
+ (search-input-directory
+ native-inputs (string-append rel "/csug")))
+ (found (substring found/csug
+ 0
+ (- (string-length found/csug)
+ (string-length "/csug"))))
+ (dest (string-append #$output:doc "/" rel)))
+ (mkdir-p dest)
+ (with-directory-excursion dest
+ (for-each (lambda (f)
+ (symlink (string-append found "/" f)
+ f))
+ '("csug" "csug.pdf"
+ "release_notes" "release_notes.pdf"))))
+ #~(apply invoke "make" "install-docs" make-flags))))
(add-after 'install-docs 'link-doc-pdfs
;; otherwise, it's hard to notice them in a forest of HTML files
+ ;; TODO: improve cross support upstream.
(lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion
- (string-append (or (assoc-ref outputs "doc")
- (assoc-ref outputs "out"))
- "/share/doc/"
- (strip-store-file-name #$output))
- (symlink "release_notes/release_notes.pdf"
- "release_notes.pdf")
- (match (find-files "csug"
- "csug.*\\.pdf$" ;; embeded version number
- #:fail-on-error? #t)
- ((pth)
- (symlink pth
- "csug.pdf")))))))))
- (supported-systems
- (delete
- "armhf-linux" ;; XXX reportedly broken, needs checking
- (filter chez-upstream-features-for-system
- %supported-systems)))
+ #$(if (%current-target-system)
+ #~(format #t "nothing to be done for cross~%")
+ #~(with-directory-excursion
+ (string-append (or (assoc-ref outputs "doc")
+ (assoc-ref outputs "out"))
+ "/share/doc/"
+ (strip-store-file-name #$output))
+ (symlink "release_notes/release_notes.pdf"
+ "release_notes.pdf")
+ (match (find-files
+ "csug"
+ "csug.*\\.pdf$" ;; embeded version number
+ #:fail-on-error? #t)
+ ((pth)
+ (symlink pth
+ "csug.pdf"))))))))))
(home-page "https://cisco.github.io/ChezScheme/")
- (synopsis "R6RS Scheme compiler and run-time")
+ (synopsis "Bootstrapping version of Chez Scheme")
(description
- "Chez Scheme is a compiler and run-time system for the language of the
-Revised^6 Report on Scheme (R6RS), with numerous extensions. The compiler
-generates native code for each target processor, with support for x86, x86_64,
-and 32-bit PowerPC architectures.")
+ "This is the precise pre-release version of Chez Scheme from a specific
+Racket release. It is used to build Racket and to bootstrap the released
+version of Chez Scheme.")
(license asl2.0)))
-(define-public chez-scheme-for-racket
+(define-public chez-scheme
(package
- (inherit chez-scheme)
- (name "chez-scheme-for-racket")
- (version "9.9.9-pre-release.18")
- ;; The version should match `scheme-version`.
- ;; See racket/src/ChezScheme/s/cmacros.ss c. line 360.
- ;; It will always be different than the upstream version!
- ;; When updating, remember to also update %racket-version in racket.scm.
- (source #f) ; avoid problematic cycle with racket.scm
+ (inherit chez-scheme-for-racket)
+ (name "chez-scheme")
+ ;; The version should match `(scheme-version-number #t)`.
+ ;; See s/cmacros.ss c. line 360.
+ (version "10.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cisco/ChezScheme")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1q66vafhiwk617z51qkm1v64r3bxqhhf5lzrmsa4l9d5yhvlyk09"))
+ (file-name (git-file-name name version))
+ (patches (search-patches "chez-scheme-backport-configure.patch"
+ "chez-scheme-bin-sh.patch"))
+ (snippet #~(begin
+ (use-modules (guix build utils))
+ ;; TODO: consider putting this in a (guix ...) or
+ ;; (guix build ...) module so it can be shared
+ ;; with the Racket origin without cyclic issues.
+ (for-each (lambda (dir)
+ (when (directory-exists? dir)
+ (delete-file-recursively dir)))
+ '("boot"
+ "lz4"
+ "nanopass"
+ "stex"
+ "zlib"
+ "zuo"))))))
+ (build-system gnu-build-system)
(inputs
- (let ((inputs (modify-inputs (package-inputs chez-scheme)
- (replace "chez-scheme-bootstrap-bootfiles"
- chez-scheme-for-racket-bootstrap-bootfiles)
- (delete "libx11" "util-linux:lib"))))
- (if (racket-cs-native-supported-system?)
- inputs
- (modify-inputs inputs
- (prepend libffi)))))
- (native-inputs
- (let ((native-inputs (modify-inputs (package-native-inputs chez-scheme)
- (prepend zuo))))
- (if (%current-target-system)
- (modify-inputs native-inputs
- (prepend this-package))
- native-inputs)))
- (arguments
- (substitute-keyword-arguments (package-arguments chez-scheme)
- ((#:out-of-source? _ #f)
- #t)
- ((#:configure-flags cfg-flags #~'())
- #~`("--disable-x11"
- "--threads" ;; ok to potentially duplicate
- #$(string-append "-m=" (or (racket-cs-native-supported-system?)
- (nix-system->pbarch-machine-type)))
- ;; ^ could skip -m= for non-cross non-pbarch builds
- #$@(if (racket-cs-native-supported-system?)
- #~()
- ;; not inferred on non-native platforms: see
- ;; https://racket.discourse.group/t/950/9
- #~("--enable-libffi"
- "CFLAGS=-g -O2 -D_REENTRANT -pthread"
- "LIBS=-lm -ldl -lrt -lffi -lncurses"))
- #$@(if (%current-target-system)
- (list (string-append "--toolprefix="
- (%current-target-system)
- "-"))
- '())
- ,@(let* ((chez+version (strip-store-file-name #$output))
- (doc-prefix (assoc-ref %outputs "doc"))
- (doc-dir (string-append doc-prefix
- "/share/doc/"
- chez+version)))
- (list (string-append "--installcsug="
- doc-dir
- "/csug")
- (string-append "--installreleasenotes="
- doc-dir
- "/release_notes")))
- ,@#$cfg-flags))
- ((#:make-flags mk-flags #~'())
- #~(cons* (string-append "ZUO="
- #+(this-package-native-input "zuo")
- "/bin/zuo")
- (string-append "STEXLIB="
- #+(this-package-native-input "stex")
- "/lib/stex")
- #$mk-flags))
- ((#:phases those-phases #~%standard-phases)
- #~(let* ((those-phases #$those-phases)
- (gnu:unpack (assoc-ref those-phases 'unpack))
- (gnu:build (assoc-ref those-phases 'build)))
- (modify-phases those-phases
- (replace 'build
- ;; need to override target for cross-compilation
- ;; https://racket.discourse.group/t/950/19
- (lambda* (#:key target (make-flags '()) (parallel-build? #t)
- #:allow-other-keys)
- (gnu:build #:make-flags (if target
- (cons "kernel" make-flags)
- make-flags)
- #:parallel-build? parallel-build?)))
- (replace 'install-docs
- (lambda* (#:key native-inputs (make-flags '())
- #:allow-other-keys)
- ;; The tests for 'native-inputs' are cross-compilation
- ;; workarounds that would be better to address upstream:
- ;; see <https://racket.discourse.group/t/950/20>.
- (when native-inputs
- (substitute* "Makefile"
- (("install-docs: build \\$[(]ZUO[)]")
- "install-docs: $(ZUO)")))
- (apply invoke
- "make"
- "install-docs"
- (if native-inputs
- (cons (string-append
- "Scheme="
- (search-input-file native-inputs
- "/bin/scheme"))
- make-flags)
- make-flags))))
- (replace 'unpack
- (lambda args
- (gnu:unpack #:source #$(or (package-source this-package)
- (package-source racket-vm-bc)))))
- (add-after 'unpack 'chdir
- (lambda args
- (chdir "racket/src/ChezScheme"))))))))
- (supported-systems %supported-systems)
- (home-page "https://github.com/racket/ChezScheme")
- ;; ^ This is downstream of https://github.com/racket/racket,
- ;; but it's designed to be a friendly landing place for people
- ;; who want a ChezScheme-shaped repositroy.
- (synopsis "Variant of Chez Scheme extended for Racket")
- (description "This variant of Chez Scheme is extended to support the
-implementation of Racket. It may be useful on platforms that are not yet
-supported by upstream Chez Scheme.
-
-Main additions to Chez Scheme in the Racket variant:
-@itemize @bullet
-@item
-AArch64 and RV64G (RISC-V) code generation
-@item
-Portable bytecode (@code{pb}) mode, which is mainly useful for bootstrapping a
-build on any platform, but can also be used on platforms without native-code
-generation, compiled via Emscripten, linked with @code{libffi}, or used with
-bytecode partially compiled to C
-@item
-Unboxed floating-point arithmetic and flvectors
-@item
-Faster multiplication and division for large exact numbers
-@item
-Type reconstruction during optimization (especially for safe code)
-@item
-Continuation marks
-@item
-Parallel garbage collection, in-place garbage collection for old-generation
-objects (instead of always copying), and reachability-based memory
-accounting
-@item
-Ordered finalization, immobile (but collectable) objects, weak/ephemeron
-generic hash tables, and reference bytevectors
-@item
-Easier bootstrapping via old versions of Chez Scheme
-@end itemize")
+ (modify-inputs (package-inputs chez-scheme-for-racket)
+ (replace "chez-scheme-for-racket-bootstrap-bootfiles"
+ chez-scheme-bootstrap-bootfiles)
+ ;; for X11 clipboard support in expeditor:
+ ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232
+ (prepend libx11)))
+ ;; replace unpack phase?
+ (home-page "https://cisco.github.io/ChezScheme/")
+ (synopsis "R6RS Scheme compiler and run-time")
+ (description
+ "Chez Scheme is both a programming language and a high-performance
+implementation of that language. The language is a superset of R6RS Scheme
+with numerous extensions, including native threads, non-blocking I/O, local
+modules, and much more. Chez Scheme compiles source expressions incrementally
+to machine code, providing the speed of compiled code in an interactive
+system. The system is intended to be as reliable and efficient as possible,
+with reliability taking precedence over efficiency if necessary.")
(license asl2.0)))
;;
;; Bootfiles:
;;
-(define-public chez-scheme-bootstrap-bootfiles
- (package
- (inherit chez-scheme)
- (name "chez-scheme-bootstrap-bootfiles")
- (inputs '())
- (native-inputs '())
- (outputs '("out"))
- (build-system copy-build-system)
- ;; TODO: cross compilation
- (arguments
- (list #:install-plan
- #~`(("boot/" "lib/chez-scheme-bootfiles"))))
- (supported-systems
- (filter (lambda (system)
- (and=> (chez-upstream-features-for-system system)
- (cut memq 'bootstrap-bootfiles <>)))
- %supported-systems))
- (synopsis "Chez Scheme bootfiles (binary seed)")
- (description
- "Chez Scheme is a self-hosting compiler: building it requires
-``bootfiles'' containing the Scheme-implemented portions compiled for the
-current platform. (Chez can then cross-compile bootfiles for all other
-supported platforms.)
-
-This package provides bootstrap bootfiles for upstream Chez Scheme.
-Currently, it simply packages the binaries checked in to the upstream
-repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to
-work with upstream Chez Scheme so that we can bootstrap these files from
-source.")))
-
(define-public chez-scheme-for-racket-bootstrap-bootfiles
(package
- (inherit chez-scheme-bootstrap-bootfiles)
(name "chez-scheme-for-racket-bootstrap-bootfiles")
(version (package-version chez-scheme-for-racket))
(source #f) ; avoid problematic cycle with racket.scm
(native-inputs
- (cons* chez-nanopass-bootstrap
- (if (%current-target-system)
- (list zuo
- chez-scheme-for-racket)
- (list racket-vm-bc))))
+ (cons chez-nanopass-bootstrap
+ (if (%current-target-system)
+ (list zuo
+ chez-scheme-for-racket)
+ (list racket-vm-bc))))
+ (build-system copy-build-system)
(arguments
- (substitute-keyword-arguments
- (package-arguments chez-scheme-bootstrap-bootfiles)
- ((#:phases those-phases #~%standard-phases)
- #~(let* ((those-phases #$those-phases)
- (unpack (assoc-ref those-phases 'unpack)))
- (modify-phases those-phases
- (replace 'unpack
- (lambda args
- (unpack #:source #$(or (package-source this-package)
- (package-source racket-vm-bc)))))
- (add-after 'unpack 'chdir
- (lambda args
- (chdir "racket/src/ChezScheme")))
- (add-after 'chdir 'unpack-nanopass+stex
- (lambda args
- #$unpack-nanopass+stex))
- (add-before 'install 'build
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- #$(cond
- ((%current-target-system)
- ;; cross-compiling
- #~(invoke
- (search-input-file (or native-inputs inputs)
- "/bin/zuo")
- "makefiles/boot.zuo"
- (search-input-file (or native-inputs inputs)
- "/bin/scheme")
- #$(or (racket-cs-native-supported-system?)
- (nix-system->pbarch-machine-type))))
- (else
- ;; bootstrapping
- #~(invoke
- (search-input-file (or native-inputs inputs)
- "/opt/racket-vm/bin/racket")
- "../rktboot/main.rkt"))))))))))
- (supported-systems
- (package-supported-systems chez-scheme-for-racket))
- (home-page "https://github.com/racket/ChezScheme")
- ;; ^ This is downstream of https://github.com/racket/racket,
- ;; but it's designed to be a friendly landing place for people
- ;; who want a ChezScheme-shaped repositroy.
- (synopsis "Chez Scheme bootfiles bootstrapped by Racket")
- (description "Chez Scheme is a self-hosting compiler: building it
-requires ``bootfiles'' containing the Scheme-implemented portions compiled for
-the current platform. (Chez can then cross-compile bootfiles for all other
+ (list
+ #:install-plan
+ #~`(("boot/" "lib/chez-scheme-bootfiles"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'unpack
+ (let ((unpack (assoc-ref %standard-phases 'unpack)))
+ (lambda args
+ (unpack #:source #$(or (package-source this-package)
+ (package-source racket-vm-bc))))))
+ (add-after 'unpack 'unpack-nanopass
+ #$unpack-nanopass)
+ (add-after 'unpack-nanopass 'chdir
+ (lambda args
+ (chdir "racket/src/ChezScheme")))
+ (add-before 'install 'build
+ #$(cond
+ ((%current-target-system)
+ ;; cross-compiling
+ ;; TODO: share more of this with upstream, once we figure out
+ ;; how best to manage running Chez as a cross-compiler and the
+ ;; unfortate cycle with %racket-origin.
+ #~(lambda* (#:key native-inputs inputs (parallel-build? #t)
+ #:allow-other-keys)
+ (invoke "./configure"
+ "--force" ; don't complain about missing bootfiles
+ #$(string-append
+ "-m=" (or (nix-system->native-chez-machine-type)
+ (nix-system->pbarch-machine-type)))
+ "ZUO=zuo"
+ ;; ignore submodules:
+ "ZLIB=-lz"
+ "LZ4=-llz4"
+ "STEXLIB=/GuixNotUsingStex")
+ (apply invoke
+ "make"
+ `(,@(if parallel-build?
+ `("-j" ,(number->string
+ (parallel-job-count)))
+ '())
+ ,(string-append "SCHEME="
+ (search-input-file
+ (or native-inputs inputs)
+ "/bin/scheme"))
+ "cross.boot"))))
+ (else
+ ;; bootstrapping
+ #~(lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (invoke
+ (search-input-file (or native-inputs inputs)
+ "/opt/racket-vm/bin/racket")
+ "../rktboot/main.rkt"))))))))
+ (home-page "https://pkgs.racket-lang.org/package/cs-bootstrap")
+ (synopsis "Chez Scheme boot files bootstrapped by Racket")
+ (description "Chez Scheme is a self-hosting compiler: building it requires
+``boot files'' containing the Scheme-implemented portions compiled for the
+current platform. (Chez can then cross-compile boot files for all other
supported platforms.)
The Racket package @code{cs-bootstrap} (part of the main Racket Git
@@ -709,11 +626,62 @@ repository) implements enough of a Chez Scheme simulation to load the Chez
Scheme compiler purely from source into Racket and apply the compiler to
itself, thus bootstrapping Chez Scheme. Bootstrapping takes about 10 times as
long as using an existing Chez Scheme, but @code{cs-bootstrap} supports Racket
-7.1 and later, including the Racket BC variant.
+7.1 and later, including the Racket BC variant.")
+ (license asl2.0)))
-Note that the generated bootfiles are specific to Racket's fork of Chez
-Scheme, and @code{cs-bootstrap} does not currently support building upstream
-Chez Scheme.")))
+(define-public chez-scheme-bootstrap-bootfiles
+ (package
+ (name "chez-scheme-bootstrap-bootfiles")
+ (version (package-version chez-scheme))
+ (source (package-source chez-scheme))
+ (native-inputs (list chez-nanopass-bootstrap
+ (if (%current-target-system)
+ chez-scheme
+ chez-scheme-for-racket)
+ zuo))
+ (outputs '("out"))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~`("--force" ; don't complain about missing bootfiles
+ "ZLIB=-lz" "LZ4=-llz4" "STEXLIB=/GuixNotUsingStex" ; ignore submods
+ "ZUO=zuo"
+ ;; could skip -m= for non-cross non-pbarch builds
+ #$(string-append "-m=" (or (nix-system->native-chez-machine-type)
+ (nix-system->pbarch-machine-type))))
+ #:make-flags
+ #~(list (string-append "SCHEME="
+ (search-input-file %build-inputs "/bin/scheme"))
+ #$(if (%current-target-system)
+ "cross.boot"
+ "re.boot"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'unpack-nanopass
+ #$unpack-nanopass)
+ (replace 'configure
+ #$chez-configure)
+ (delete 'check)
+ (replace 'install
+ (lambda args
+ (mkdir-p (string-append #$output "/lib"))
+ (copy-recursively
+ "boot"
+ (string-append #$output "/lib/chez-scheme-bootfiles")))))))
+ (home-page "https://cisco.github.io/ChezScheme/")
+ (synopsis "Bootstrapped Chez Scheme boot files")
+ (description
+ "Chez Scheme is a self-hosting compiler: building it requires
+``boot files'' containing the Scheme-implemented portions compiled for the
+current platform. (Chez can then cross-compile bootfiles for all other
+supported platforms.)
+
+This package provides boot files for the released version of Chez Scheme
+bootstrapped by @code{chez-scheme-for-racket}. Chez Scheme 9.5.4 or any later
+version can be used for bootstrapping. Guix ultimately uses the Racket package
+@code{cs-bootstrap} to bootstrap its initial version of Chez Scheme.")
+ (license asl2.0)))
;;
;; Chez's bootstrap dependencies:
@@ -935,7 +903,7 @@ create compilers, making them easier to understand and maintain.")
;; Help function for Chez Scheme to add the current path to
;; CHEZSCHEMELIBDIRS.
-(define chez-configure
+(define configure-chezschemelibdirs
#~(lambda _
(let ((chez-env (getenv "CHEZSCHEMELIBDIRS")))
(setenv "CHEZSCHEMELIBDIRS"
@@ -969,13 +937,13 @@ create compilers, making them easier to understand and maintain.")
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
- (list (chez-scheme-for-system)))
+ (list chez-scheme))
(arguments
(list #:make-flags (chez-make-flags name version)
#:test-target "test"
#:phases #~(modify-phases %standard-phases
(replace 'configure
- #$chez-configure))))
+ #$configure-chezschemelibdirs))))
(home-page "https://github.com/fedeinthemix/chez-srfi")
(synopsis "SRFI libraries for Chez Scheme")
(description
@@ -1000,7 +968,7 @@ create compilers, making them easier to understand and maintain.")
(base32 "1dq25qygyncbfq4kwwqqgyyakfqjwhp5q23vrf3bff1p66nyfl3b"))))
(build-system gnu-build-system)
(native-inputs
- (list (chez-scheme-for-system)
+ (list chez-scheme
ghostscript
(texlive-updmap.cfg
(list texlive-charter
@@ -1067,7 +1035,7 @@ programming in Scheme.")
(base32 "1n5fbwwz51fdzvjackgmnsgh363g9inyxv7kmzi0469cwavwcx5m"))))
(build-system gnu-build-system)
(native-inputs
- (list (chez-scheme-for-system)
+ (list chez-scheme
chez-web
(texlive-updmap.cfg)))
(arguments
@@ -1153,13 +1121,13 @@ Chez Scheme.")
(inputs
(list chez-srfi)) ; for tests
(native-inputs
- (list (chez-scheme-for-system)))
+ (list chez-scheme))
(arguments
(list #:make-flags (chez-make-flags name version)
#:test-target "test"
#:phases #~(modify-phases %standard-phases
(replace 'configure
- #$chez-configure))))
+ #$configure-chezschemelibdirs))))
(synopsis "Portable hygienic pattern matcher for Scheme")
(description "This package provides a superset of the popular Scheme
@code{match} package by Andrew Wright, written in fully portable
@@ -1185,13 +1153,13 @@ Chez Scheme.")
(propagated-inputs
(list chez-srfi)) ; for irregex-utils
(native-inputs
- (list (chez-scheme-for-system)))
+ (list chez-scheme))
(arguments
(list #:make-flags (chez-make-flags name version)
#:test-target "test"
#:phases #~(modify-phases %standard-phases
(replace 'configure
- #$chez-configure))))
+ #$configure-chezschemelibdirs))))
(home-page "https://github.com/fedeinthemix/chez-irregex")
(synopsis "Portable regular expression library for Scheme")
(description "This package provides a portable and efficient
@@ -1216,14 +1184,14 @@ syntax, with various aliases for commonly used patterns.")
(propagated-inputs
(list chez-srfi)) ; for irregex-utils
(native-inputs
- (list (chez-scheme-for-system)))
+ (list chez-scheme))
(arguments
(list #:make-flags (chez-make-flags name version)
#:test-target "chez-check"
#:phases
#~(modify-phases %standard-phases
(replace 'configure
- #$chez-configure)
+ #$configure-chezschemelibdirs)
(replace 'build
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(apply invoke "make" "chez-build" make-flags)))
@@ -1279,13 +1247,13 @@ strings.")
(inputs
(list chez-srfi)) ; for tests
(native-inputs
- (list (chez-scheme-for-system)))
+ (list chez-scheme))
(arguments
(list #:make-flags (chez-make-flags name version)
#:test-target "test"
#:phases #~(modify-phases %standard-phases
(replace 'configure
- #$chez-configure))))
+ #$configure-chezschemelibdirs))))
(synopsis "MIT/GNU Scheme compatibility library for Chez Scheme")
(description "This package provides a set of MIT/GNU Scheme compatibility
libraries for Chez Scheme. The main goal was to provide the functionality
@@ -1310,7 +1278,7 @@ required to port the program @code{Scmutils} to Chez Scheme.")
(inputs
(list chez-srfi)) ; for tests
(native-inputs
- (list (chez-scheme-for-system)))
+ (list chez-scheme))
(propagated-inputs
(list chez-mit chez-srfi))
(arguments
@@ -1320,7 +1288,7 @@ required to port the program @code{Scmutils} to Chez Scheme.")
#:phases
#~(modify-phases %standard-phases
(replace 'configure
- #$chez-configure)
+ #$configure-chezschemelibdirs)
;; Since the documentation is lacking, we install the source
;; code. For things to work correctly we have to replace
;; relative paths by absolute ones in 'include' forms. This
diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm
index e29c6e1070..b0576cd137 100644
--- a/gnu/packages/conky.scm
+++ b/gnu/packages/conky.scm
@@ -40,7 +40,7 @@
(package
(name "conky")
(home-page "https://github.com/brndnmtthws/conky")
- (version "1.19.6")
+ (version "1.19.8")
(source
(origin
(method git-fetch)
@@ -49,7 +49,7 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "02mdqsizc36v3zqhxnyv2mch9w0gqnl4a25yxishka9yv5ni5iig"))))
+ (base32 "1g712cw2nzd2qvgdmyvazyda0znyqzg6yckg98ss203fggwp93vj"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -80,6 +80,7 @@
libxdamage
libxext
libxft
+ libxi
libxinerama
pulseaudio
lua
diff --git a/gnu/packages/cpio.scm b/gnu/packages/cpio.scm
index 2f7a7b2363..273d280285 100644
--- a/gnu/packages/cpio.scm
+++ b/gnu/packages/cpio.scm
@@ -29,14 +29,14 @@
(define-public cpio
(package
(name "cpio")
- (version "2.13")
+ (version "2.15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/cpio/cpio-"
version ".tar.bz2"))
(sha256
(base32
- "0vbgnhkawdllgnkdn6zn1f56fczwk0518krakz2qbwhxmv2vvdga"))
+ "1nvmj2mc3nagpig75sgzvkqgzg1p01wgnlw54v4ix6ijgjwi0xlk"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 8207f09725..4fe257e6c1 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -279,13 +279,13 @@ files and provide more explicit control over line endings.")
(define-public r-broom-helpers
(package
(name "r-broom-helpers")
- (version "1.14.0")
+ (version "1.15.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "broom.helpers" version))
(sha256
- (base32 "14vaqxv12yrvqllp8552nx68wk2qfjcy1iy7bajkspgdpwsjzhfd"))))
+ (base32 "0gm9k2d73p6bhcmzc43qgy6v27pi036369dldz77hd5h5i95hp7c"))))
(properties `((upstream-name . "broom.helpers")))
(build-system r-build-system)
(propagated-inputs (list r-broom
@@ -1083,13 +1083,13 @@ samples) are easily visualized.")
(define-public r-ggstats
(package
(name "r-ggstats")
- (version "0.5.1")
+ (version "0.6.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggstats" version))
(sha256
- (base32 "1jcydapwarl1cxinm80rjmmli8vmlid8alnh6w484bh7nwzmcsic"))))
+ (base32 "103d1d4azdiaf5i2dgr23wrx6svc0aq85axrfj0v2b2lkwial2pq"))))
(properties `((upstream-name . "ggstats")))
(build-system r-build-system)
(propagated-inputs (list r-broom-helpers
@@ -1117,13 +1117,13 @@ plots.")
(define-public r-ggstatsplot
(package
(name "r-ggstatsplot")
- (version "0.12.2")
+ (version "0.12.3")
(source (origin
(method url-fetch)
(uri (cran-uri "ggstatsplot" version))
(sha256
(base32
- "0nriqsfk48ijkkg06i87zp2frp7yz3c4gfmfgfig6v8mcmj19zwr"))))
+ "0lm48b664nin8f32a3xpqvc95cizi27sls5m4vrymfz3aarcwrxr"))))
(properties `((upstream-name . "ggstatsplot")))
(build-system r-build-system)
(propagated-inputs (list r-correlation
@@ -1792,14 +1792,14 @@ bioinformaticians to assemble complex plots for publication.")
(define-public r-rticles
(package
(name "r-rticles")
- (version "0.26")
+ (version "0.27")
(source
(origin
(method url-fetch)
(uri (cran-uri "rticles" version))
(sha256
(base32
- "0v1sji223iifqmq9hakr1wcgzfca52nvmh3vbi6s6d309qc77vkk"))))
+ "1a5i8vzcf058dqk30yir3ngs02f17s4d0b0px31pxa0d1ak1yfh7"))))
(properties `((upstream-name . "rticles")))
(build-system r-build-system)
(propagated-inputs
@@ -3996,13 +3996,13 @@ scraping tasks, inspired by libraries like @code{BeautifulSoup}.")
(define-public r-secretbase
(package
(name "r-secretbase")
- (version "0.3.0.1")
+ (version "0.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "secretbase" version))
(sha256
- (base32 "0mhfkkl35g10lgz4llm017f2jbgp7vmgi0g301r4agx1iqj5g51w"))))
+ (base32 "0b05js4vh6pkkiqms2qmipy5pq96q1i5grb951skk0h953cmwf11"))))
(properties `((upstream-name . "secretbase")))
(build-system r-build-system)
(home-page "https://shikokuchuo.net/secretbase/")
@@ -4625,13 +4625,13 @@ a list of p-values.")
(define-public r-htmltools
(package
(name "r-htmltools")
- (version "0.5.8")
+ (version "0.5.8.1")
(source (origin
(method url-fetch)
(uri (cran-uri "htmltools" version))
(sha256
(base32
- "15g6ygpz9qfbf2ihapm5vyh8jwddhba6yikgvnara2wdrqcfp71n"))))
+ "0xpi2g87vwanp0kbs22j90pa2bban3nwrdjdb3257hq6xj9j5xpr"))))
(build-system r-build-system)
(propagated-inputs
(list r-base64enc r-digest r-fastmap r-rlang))
@@ -6619,6 +6619,30 @@ attaching it. This is a key part of the @code{devtools} package as it allows
you to rapidly iterate while developing a package.")
(license license:gpl3)))
+(define-public r-pki
+ (package
+ (name "r-pki")
+ (version "0.1-12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "PKI" version))
+ (sha256
+ (base32 "0nidg6l9nrmpyimi502fydy22r247w9i4ngb2xdbxjvfhr17m0xd"))))
+ (properties `((upstream-name . "PKI")))
+ (build-system r-build-system)
+ (inputs (list openssl zlib))
+ (propagated-inputs (list r-base64enc))
+ (native-inputs (list pkg-config))
+ (home-page "http://www.rforge.net/PKI")
+ (synopsis "Public Key Infrastucture for R based on the X.509 standard")
+ (description
+ "This is a package containing Public Key Infrastucture functions such as
+verifying certificates, RSA encryption and signing, which can be used to build
+PKI infrastructure and perform cryptographic tasks.")
+ ;; Either of these licenses.
+ (license (list license:gpl2 license:gpl3))))
+
(define-public r-pvclust
(package
(name "r-pvclust")
@@ -6637,7 +6661,7 @@ you to rapidly iterate while developing a package.")
resampling for assessing the uncertainty in hierarchical cluster analysis. It
provides an AU (approximately unbiased) P-value as well as a BP (bootstrap probability)
value for each cluster in a dendrogram.")
- (license license:gpl2+)))
+ (license license:gpl2+)))
(define-public r-rcpp
(package
@@ -9683,6 +9707,27 @@ can be produced. All the probability functions in the stats, stats4 and evd
packages are automatically available for truncation.")
(license license:gpl2+)))
+(define-public r-trycatchlog
+ (package
+ (name "r-trycatchlog")
+ (version "1.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "tryCatchLog" version))
+ (sha256
+ (base32 "0k40a48qzwmardjnkf0h5s5zryivzvdanz61kxdqdfqlil19ma0d"))))
+ (properties `((upstream-name . "tryCatchLog")))
+ (build-system r-build-system)
+ (native-inputs (list r-knitr))
+ (home-page "https://github.com/aryoda/tryCatchLog")
+ (synopsis "Advanced tryCatch and try functions")
+ (description
+ "This package provides advanced @code{tryCatch} and @code{try} functions
+for better error handling (logging, stack trace with source code references
+and support for post-mortem analysis via dump files).")
+ (license license:gpl3)))
+
(define-public r-rsolnp
(package
(name "r-rsolnp")
@@ -9709,18 +9754,19 @@ programming} (SQP) based solver).")
(define-public r-hardyweinberg
(package
(name "r-hardyweinberg")
- (version "1.7.7")
+ (version "1.7.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "HardyWeinberg" version))
(sha256
(base32
- "058bfb43i2vjrc2iy3q3izlijw2hh61rl47c9gcf327xlp9x6wnh"))))
+ "1wddy32zljyya37isqb54sqhpp07s2kizjl36i08pj37bbza7yac"))))
(properties `((upstream-name . "HardyWeinberg")))
(build-system r-build-system)
(propagated-inputs
(list r-mice r-nnet r-rcpp r-rsolnp r-shape))
+ (native-inputs (list r-knitr r-rmarkdown))
(home-page "https://cran.r-project.org/package=HardyWeinberg")
(synopsis "Statistical tests and graphics for Hardy-Weinberg equilibrium")
(description
@@ -10245,14 +10291,14 @@ rules, boxes, trees, and Unicode symbols with ASCII alternatives.")
(define-public r-argparser
(package
(name "r-argparser")
- (version "0.7.1")
+ (version "0.7.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "argparser" version))
(sha256
(base32
- "0xcl0ivsbc4iw8s7027q4cx68j6s5lihbby0xa9pmlv4wjmcvdr6"))))
+ "0j9hnbyzbyzclgm4qwyqqkrqcrblxfm190489sgcvr5i7vg2smr8"))))
(build-system r-build-system)
(home-page "https://bitbucket.org/djhshih/argparser")
(synopsis "Command-line argument parser")
@@ -12578,14 +12624,14 @@ regression and information measures are implemented.")
(define-public r-smoother
(package
(name "r-smoother")
- (version "1.1")
+ (version "1.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "smoother" version))
(sha256
(base32
- "0nqr1bvlr5bnasqg74zmknjjl4x28kla9h5cxpga3kq5z215pdci"))))
+ "0xw28qv8f5i05ajx32njnql6hql5njqyc47wcq6c75cxiv44ppz8"))))
(build-system r-build-system)
(propagated-inputs
(list r-ttr))
@@ -13074,14 +13120,14 @@ time after the current time, after the R execution stack has emptied.")
(define-public r-promises
(package
(name "r-promises")
- (version "1.2.1")
+ (version "1.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "promises" version))
(sha256
(base32
- "1gp55inqbbj0ifm4n0j5h8854a9v109xpikyhwv7b8lyydns5q1w"))))
+ "1lzs65csxaq26d1g37qjjgxzm418xv52c3ccpk0l0cxkpbrrs87q"))))
(build-system r-build-system)
(propagated-inputs
(list r-fastmap
@@ -15612,13 +15658,13 @@ and coverage methods to tune the choice of threshold.")
(define-public r-ggstance
(package
(name "r-ggstance")
- (version "0.3.6")
+ (version "0.3.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggstance" version))
(sha256
- (base32 "0wk3gbi5365sndi02gwd4c33vcrj5p8cfwakwjg010y5hgxx96nd"))))
+ (base32 "0v25si348qdp68887yx4d652rsz8w5lfabwaq1nvglrhs6s4f9js"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli r-ggplot2 r-plyr r-rlang r-withr))
@@ -17186,14 +17232,14 @@ the differences were not significantly different.")
(define-public r-emmeans
(package
(name "r-emmeans")
- (version "1.10.0")
+ (version "1.10.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "emmeans" version))
(sha256
(base32
- "1vq7abyirrrpx00d464pgva2i17f3wxx08f4rc23bl331s3lsx23"))))
+ "175az87aj2zrjsi94vvca612krbhry7yqq6l03ybq31jhj7vc2fa"))))
(build-system r-build-system)
(propagated-inputs
(list r-estimability r-mvtnorm r-numderiv))
@@ -17323,14 +17369,14 @@ Bayesian modeling.")
(define-public r-tmb
(package
(name "r-tmb")
- (version "1.9.10")
+ (version "1.9.11")
(source
(origin
(method url-fetch)
(uri (cran-uri "TMB" version))
(sha256
(base32
- "1cc34zxn2x88fbh4clgbzia36800i30pdlywbkwc26zm50nsxpwi"))))
+ "07z9565rn64k3ysvcgq6s792qg1v102gd9in5ifigm140zc4l45j"))))
(properties `((upstream-name . "TMB")))
(build-system r-build-system)
(propagated-inputs
@@ -22741,14 +22787,14 @@ numbers from ZIP and ZINB distributions.")
(define-public r-nor1mix
(package
(name "r-nor1mix")
- (version "1.3-2")
+ (version "1.3-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "nor1mix" version))
(sha256
(base32
- "0252kqhdsp374isc59pm1c6dmsb16jibpnsp1bpyh4k5mg73cdj6"))))
+ "0vh7vlvijska09rm0cb2lakwhjm38mc4daksc2zniyj7r3wd1gwp"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/nor1mix/")
(synopsis "Normal (1-d) mixture models")
@@ -26129,14 +26175,14 @@ batch correction, and data correction.")
(define-public r-styler
(package
(name "r-styler")
- (version "1.10.2")
+ (version "1.10.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "styler" version))
(sha256
(base32
- "043v9xwm72jqrrzzmjgrkf34lncjnn69650ks72z7rjb1wqmbh56"))))
+ "0hfspw1q40jqla238dw86iyf0lyk1agc19flwvf9nrm824hw5fdd"))))
(build-system r-build-system)
;; This is needed by R.cache.
(arguments
@@ -26408,14 +26454,14 @@ classification and regression models.")
(define-public r-dae
(package
(name "r-dae")
- (version "3.2.21")
+ (version "3.2.25")
(source
(origin
(method url-fetch)
(uri (cran-uri "dae" version))
(sha256
(base32
- "0j47d4r4mpkfaz29h7iiijmzi7fj7nysg8pd9c79h160h1lww9yx"))))
+ "168kisjgfc8cp7j6frgpci7qxw548rynpi9wv008k8hfszkfkgny"))))
(build-system r-build-system)
(arguments
'(#:phases
@@ -26424,7 +26470,7 @@ classification and regression models.")
;; Needed for vignette builder
(lambda _ (setenv "HOME" "/tmp"))))))
(propagated-inputs
- (list r-ggplot2 r-ggpubr r-plyr))
+ (list r-ggplot2 r-ggpubr r-plyr r-trycatchlog))
(native-inputs
(list r-r-rsp)) ; vignette builder
(home-page "http://chris.brien.name")
@@ -31603,19 +31649,20 @@ programming} (OOP) using R Reference Class.")
(define-public r-proxyc
(package
(name "r-proxyc")
- (version "0.3.4")
+ (version "0.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "proxyC" version))
(sha256
(base32
- "1skq5cxd0kh2pccfg4h9bis4wbqb6zm04q4iwfa6dqml6hyiv7gk"))))
+ "1a124nzxldc6687kvgkg41dqfbqb7yqdgm9dj5fj8g4bax9qcgg8"))))
(properties `((upstream-name . "proxyC")))
(build-system r-build-system)
(native-inputs (list r-knitr))
+ (inputs (list tbb))
(propagated-inputs
- (list r-matrix r-rcpp r-rcpparmadillo r-rcppparallel))
+ (list r-matrix r-rcpp r-rcpparmadillo))
(home-page "https://cran.r-project.org/package=proxyC")
(synopsis "Compute proximity in large sparse matrices")
(description
@@ -31720,31 +31767,32 @@ Norwegian, Portuguese, Romanian, Russian, Spanish, Swedish and Turkish.")
(define-public r-quanteda
(package
(name "r-quanteda")
- (version "3.3.1")
+ (version "4.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "quanteda" version))
(sha256
(base32
- "0rj13m0fmk0h9akmqwwp7nkwrvym7sj97jgvjr4mvi3sglq451b2"))))
+ "0m0iw7vm9v7dcrh9yd56kr0vagas1czqgbn2ybyxg86nwcrl73qq"))))
(properties `((upstream-name . "quanteda")))
(build-system r-build-system)
(propagated-inputs
(list r-fastmatch
r-jsonlite
+ r-lifecycle
r-magrittr
r-matrix
r-rcpp
r-rcpparmadillo
- r-rcppparallel
r-snowballc
r-stopwords
r-stringi
r-xml2
r-yaml))
+ (inputs (list tbb))
(native-inputs
- (list r-knitr))
+ (list pkg-config r-knitr))
(home-page "https://quanteda.io")
(synopsis "Quantitative analysis of textual data")
(description
@@ -32633,14 +32681,14 @@ and reproducible way.")
(define-public r-rsconnect
(package
(name "r-rsconnect")
- (version "1.2.1")
+ (version "1.2.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "rsconnect" version))
(sha256
(base32
- "0snfzr2xf91630hd2w1q9yy09vlfdy4dzb9gc8g14nq9hh34h999"))))
+ "19n0j7g2yy45qp5zgs5lz1cm1d7p6d0h8bwqcsfp9mnr2zzc0yr5"))))
(properties `((upstream-name . "rsconnect")))
(build-system r-build-system)
(propagated-inputs
@@ -32651,6 +32699,7 @@ and reproducible way.")
r-lifecycle
r-openssl
r-packrat
+ r-pki
r-renv
r-rlang
r-rstudioapi
@@ -34025,14 +34074,14 @@ multi-state models.")
(define-public r-scatterpie
(package
(name "r-scatterpie")
- (version "0.2.1")
+ (version "0.2.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "scatterpie" version))
(sha256
(base32
- "0wfrckyvy4zw34qdvgg1gwqfdi1xhs63v3gfwa4akm7ifd1canlb"))))
+ "1q36g6rqggrysnjqarxbyjw3y3z244k0zh1a49w6j4149k8qc462"))))
(properties `((upstream-name . "scatterpie")))
(build-system r-build-system)
(propagated-inputs
@@ -38903,14 +38952,14 @@ light-weight geometry library used by @url{http://postgis.net/,PostGIS}.")
(define-public r-stars
(package
(name "r-stars")
- (version "0.6-4")
+ (version "0.6-5")
(source
(origin
(method url-fetch)
(uri (cran-uri "stars" version))
(sha256
(base32
- "0mqd2dfa8jhxjmfphvv3rkw2lri5sz49042asj5lyln3wkylqjj2"))))
+ "1b5gs0qa8097f2mvz4rgl46wrvk1rbbbi2a4s901hdg4bkr15jsg"))))
(properties `((upstream-name . "stars")))
(build-system r-build-system)
(propagated-inputs
@@ -39091,14 +39140,14 @@ BTM-WWW13.pdf}.")
(define-public r-delaporte
(package
(name "r-delaporte")
- (version "8.3.0")
+ (version "8.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "Delaporte" version))
(sha256
(base32
- "1g499xrb3hhd9xrzbxm1d911hm06mfn119xxmcr6f47vsz15ksvy"))))
+ "1jqz2qxig35rhmwvazmsl3a081dylfq2jfz3bjpj61y4c55mnwar"))))
(properties `((upstream-name . "Delaporte")))
(build-system r-build-system)
(native-inputs (list gfortran))
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 2d79e0acf6..36307698a8 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -250,7 +250,9 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
;; Patch by Qualcomm needed to build the ath9k-htc firmware.
(search-patches "ath9k-htc-firmware-gcc.patch"))
((target-mingw? target)
- (append (search-patches "gcc-4.9.3-mingw-gthr-default.patch")
+ (append (if (not (version>=? (package-version xgcc) "13.0"))
+ (search-patches "gcc-4.9.3-mingw-gthr-default.patch")
+ '())
(if (version>=? (package-version xgcc) "7.0")
(search-patches "gcc-7-cross-mingw.patch")
'())))
@@ -319,6 +321,10 @@ target that libc."
(append
(origin-patches (package-source xgcc))
(append (cond
+ ((version>=? (package-version xgcc) "13.0")
+ (search-patches "gcc-13-cross-system-header-dir.patch"
+ "gcc-12-cross-environment-variables.patch"
+ "gcc-cross-gxx-include-dir.patch"))
((version>=? (package-version xgcc) "12.0")
(search-patches "gcc-12-cross-environment-variables.patch"
"gcc-cross-gxx-include-dir.patch"))
diff --git a/gnu/packages/cross-toolchain.scm b/gnu/packages/cross-toolchain.scm
index 5072462cbb..d0dbb4e1b8 100644
--- a/gnu/packages/cross-toolchain.scm
+++ b/gnu/packages/cross-toolchain.scm
@@ -18,6 +18,7 @@
(define-module (gnu packages cross-toolchain)
#:use-module (gnu packages cross-base)
+ #:use-module (gnu packages gcc)
#:use-module (guix packages))
;;; Commentary:
@@ -41,5 +42,9 @@
(define-public gcc-cross-or1k-elf-toolchain
(cross-gcc-toolchain "or1k-elf"))
+(define-public gcc-cross-x86_64-w64-mingw32-toolchain-13
+ (cross-gcc-toolchain "x86_64-w64-mingw32"
+ #:base-gcc gcc-13))
+
(define-public gcc-cross-x86_64-w64-mingw32-toolchain
(cross-gcc-toolchain "x86_64-w64-mingw32"))
diff --git a/gnu/packages/data-language.scm b/gnu/packages/data-language.scm
new file mode 100644
index 0000000000..e779832dd3
--- /dev/null
+++ b/gnu/packages/data-language.scm
@@ -0,0 +1,90 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages data-language)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages algebra)
+ #:use-module (gnu packages c)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages geo)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages onc-rpc)
+ #:use-module (gnu packages plotutils)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages wxwidgets)
+ #:use-module (gnu packages xml))
+
+(define-public gnudatalanguage
+ (package
+ (name "gnudatalanguage")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gnudatalanguage/gdl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1bb3nin3qrzx2dwdk08vffp4bblrcpv6vv1ybaj499qhqcpqpc12"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ (list python python-numpy))
+ (inputs
+ (list eccodes
+ eigen
+ expat
+ fftw
+ fftwf
+ glpk
+ graphicsmagick
+ gsl
+ hdf4-alt
+ hdf5
+ libgeotiff
+ libjpeg-turbo
+ libpng
+ libtiff
+ libtirpc
+ ncurses
+ netcdf
+ plplot
+ proj
+ readline
+ shapelib
+ udunits
+ wxwidgets
+ zlib))
+ (home-page "https://gnudatalanguage.github.io/")
+ (synopsis "Compiler for GDL, an IDL-compatible programming language")
+ (description
+ "GDL (GNU Data Language) is an incremental compiler compatible with
+IDL (Interactive Data Language) and to some extent with PV-WAVE. Together
+with its library routines it serves as a tool for data analysis and
+visualization in such disciplines as astronomy, geosciences and medical
+imaging.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 5bbb4f51e2..8106a6d258 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -52,6 +52,7 @@
#:use-module (gnu packages pascal)
#:use-module (gnu packages patchutils)
#:use-module (gnu packages pdf)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
@@ -74,7 +75,7 @@
(define-public diffoscope
(package
(name "diffoscope")
- (version "261")
+ (version "263")
(source
(origin
(method git-fetch)
@@ -83,7 +84,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0v56i2wyc4p843crl5b5w6j1awhp1a6xbfb92hm0pp8558f1h76i"))))
+ (base32 "1bq45gyn214hf9brnn5xlj9xvcg6p0yr8cc2p153f93pgzsyqlg4"))))
(build-system python-build-system)
(arguments
(list
@@ -138,6 +139,11 @@
(lambda _
;; This requires /sbin to be in $PATH.
(delete-file "tests/test_tools.py")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Increase verbosity of tests and provide a summary
+ (invoke "pytest" "-vv" "-r" "sxX"))))
(add-after 'install 'install-man-page
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -199,6 +205,7 @@
openssh
openssl
p7zip
+ perl
pgpdump
poppler
python-jsbeautifier
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index 83c4313bd7..12fbaf1d0c 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -37,6 +37,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
@@ -57,11 +58,13 @@
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages javascript)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages sphinx)
+ #:use-module (gnu packages uglifyjs)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
@@ -453,3 +456,125 @@ the Net to search for documents which are not on the local system.")
(description "Zeal is a simple offline documentation browser
inspired by Dash.")
(license license:gpl3+))))
+
+(define-public markdeep
+ (package
+ (name "markdeep")
+ (version "1.16")
+ (home-page "https://casual-effects.com/markdeep/")
+ (source
+ (origin (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/morgan3d/markdeep")
+ (commit (string-append "v0" version))))
+ (sha256
+ (base32 "05bvw3993xh1260ckclwk4jw38hvgiff0b2940ryhbhz0p1k41l8"))))
+ (build-system copy-build-system)
+ (arguments
+ (list #:modules '((guix build utils)
+ (guix build copy-build-system)
+ (ice-9 popen))
+ #:install-plan ''(("." "/share/markdeep/"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-urls
+ (lambda _
+ (for-each (lambda (filename)
+
+ (substitute* filename
+ ;; Don't include a reference to the remote version.
+ (("<script src=\"https://casual-effects\\.com/\
+markdeep/latest/markdeep\\.min\\.js\\?\"></script>")
+ "")
+ (("MATHJAX_URL = .*$")
+ ;; Use our local copy of mathjax
+ (string-append "MATHJAX_URL = 'file://" #$js-mathjax
+ "/share/javascript/es5/tex-mml-chtml.js'"))))
+ (find-files "." (lambda (file stat)
+ (string-suffix? ".js" file))))))
+ (add-before 'install 'minify
+ (lambda _
+ (for-each (lambda (filename)
+ (let ((minified-filename
+ (string-append
+ (string-drop-right filename 3)
+ ".min.js")))
+ (format #t "~a -> ~a~%" filename minified-filename)
+ (let ((minified (open-pipe* OPEN_READ
+ "uglifyjs" filename)))
+ (call-with-output-file minified-filename
+ (lambda (port)
+ (dump-port minified port)))
+
+ (let ((exit (close-pipe minified)))
+ (unless (zero? exit)
+ (error "uglifyjs failed" exit))))))
+ (find-files "latest"
+ (lambda (path stat)
+ (and (string-suffix? ".js" path)
+ (not (string-suffix? ".min.js"
+ path)))))))))))
+ (inputs (list js-mathjax))
+ (native-inputs (list uglifyjs))
+ (synopsis "Tool for displaying markdown documents in a web-browser")
+ (description "Markdeep is a technology for writing plain text documents that can
+be displayed in any web browser, whether local or remote. It supports diagrams,
+calendars, equations, and other features as extensions of Markdown syntax.")
+ (license license:bsd-2)))
+
+(define-public stddoc
+ (let ((commit "6eef9deaf2e36bae812f50e448a8012b3e5efb14")
+ (revision "1"))
+ (package
+ (name "stddoc")
+ (version (git-version "1.0.2" revision commit))
+ (home-page "https://github.com/r-lyeh/stddoc.c")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06phjp7wbf4x1sagxwfapgv6iyiixmijxxbg2clb48kyvjg5mlwn"))
+ (snippet #~(delete-file "stddoc.c.html"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ; no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "stddoc.c"
+ ;; Note: For some reason quote characters are being
+ ;; inserted into urls and tags, eg.
+ ;; 'https://morgan3d.github.io/m""arkdeep/latest/markdeep.min.js?'
+ (("https://casual-effects.com/m\"*arkdeep/latest/")
+ (string-append #$markdeep "/share/markdeep/latest/"))
+ (("https://morgan3d.github.io/m\"*arkdeep/latest/")
+ (string-append #$markdeep "/share/markdeep/latest/")))))
+ (replace 'build
+ (lambda _
+ (invoke #$(cc-for-target)
+ "-O2" "-g" "-o" "stddoc" "stddoc.c")
+ (with-input-from-file "stddoc.c"
+ (lambda _
+ (with-output-to-file "stddoc.c.html"
+ (lambda _
+ (invoke #$(if (%current-target-system)
+ "stddoc"
+ "./stddoc"))))))))
+ (replace 'install
+ (lambda _
+ (install-file "stddoc"
+ (string-append #$output "/bin"))
+ (install-file "stddoc.c.html"
+ (string-append #$output
+ "/share/doc")))))))
+ (native-inputs (if (%current-target-system) (list this-package) '()))
+ (synopsis "Documentation generator for multiple programming languages")
+ (description "@code{stddoc.c} is a tiny documentation generator with many
+supported programming languages. Markdeep code comments are extracted from stdin and
+printed into stdout as a HTML file.")
+ (license license:unlicense))))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index f35aa3e514..bf2b622f92 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -762,7 +762,7 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
(string-append
"(eval-after-load 'geiser-impl '" all ")"))))))))
(inputs
- (list (chez-scheme-for-system)))
+ (list chez-scheme))
(propagated-inputs
(list emacs-geiser))
(home-page "https://nongnu.org/geiser/")
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 6f42d674e5..7a60036c28 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2816,7 +2816,7 @@ comments.")))
swig))
(inputs
(list boost
- coin3D
+ coin3d
double-conversion
eigen
fmt
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 6e26a15f56..57e6c23f41 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -5786,65 +5786,62 @@ tactics.")
(define-public widelands
(package
(name "widelands")
- (version "1.1")
+ (version "1.2")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/widelands/widelands")
- (commit (string-append "v" version))))
+ (url "https://github.com/widelands/widelands")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "07wbalwdmml9vdh9nh50svnsw4sdj9nnp32azbss8vzq5mxmzvbx"))
+ (base32 "1m9hn1sh1siggribzsq79k7p0lggdw41ji7zdl6h648cjak9mdsp"))
(modules '((guix build utils)))
(snippet
- '(begin
- (delete-file-recursively "src/third_party/minizip")
- #t))))
+ #~(delete-file-recursively "src/third_party/minizip"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags
- (let* ((out (assoc-ref %outputs "out"))
- (share (string-append out "/share")))
- (list (string-append "-DCMAKE_INSTALL_PREFIX=" out "/bin")
- (string-append "-DWL_INSTALL_BASEDIR=" share "/widelands")
- (string-append "-DWL_INSTALL_DATADIR=" share "/widelands")
- "-DOPTION_BUILD_WEBSITE_TOOLS=OFF"
- ;; CMakeLists.txt does not handle properly RelWithDebInfo build
- ;; type. When used, no game data is installed!
- "-DCMAKE_BUILD_TYPE=Release"))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'unbundle-fonts
- ;; Unbundle fonts already packaged in Guix. XXX: missing fonts are
- ;; amiri, Culmus, mmrCensus, Nakula, and Sinhala.
- (lambda* (#:key inputs #:allow-other-keys)
- (with-directory-excursion "data/i18n/fonts"
- (for-each (lambda (font)
- (delete-file-recursively font)
- (symlink (string-append (assoc-ref inputs font)
- "/share/fonts/truetype")
- font))
- '("DejaVu" "MicroHei")))
- #t)))))
+ (list
+ #:configure-flags
+ #~(let ((share (string-append #$output "/share/widelands")))
+ (list (string-append "-DCMAKE_INSTALL_PREFIX=" #$output)
+ (string-append "-DWL_INSTALL_BINDIR=" #$output "/bin")
+ (string-append "-DWL_INSTALL_BASEDIR=" share)
+ (string-append "-DWL_INSTALL_DATADIR=" share)
+ "-DOPTION_BUILD_WEBSITE_TOOLS=OFF"
+ ;; CMakeLists.txt does not handle properly RelWithDebInfo build
+ ;; type. When used, no game data is installed!
+ "-DCMAKE_BUILD_TYPE=Release"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'unbundle-fonts
+ ;; Unbundle fonts already packaged in Guix. XXX: missing fonts are
+ ;; amiri, Culmus, mmrCensus, Nakula, and Sinhala.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (for-each
+ (lambda (font)
+ (let* ((path (string-append "share/fonts/truetype/" (basename font)))
+ (target (false-if-exception (search-input-file inputs path))))
+ (when target
+ (delete-file font)
+ (symlink target font))))
+ (find-files "data/i18n/fonts" "\\.tt[cf]$")))))))
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("pkg-config" ,pkg-config)
- ("python" ,python-wrapper)))
+ (list gettext-minimal pkg-config python))
(inputs
- `(("asio" ,asio)
- ("curl" ,curl)
- ("boost" ,boost)
- ("glew" ,glew)
- ("icu4c" ,icu4c)
- ("libpng" ,libpng)
- ("minizip" ,minizip)
- ("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))
- ("zlib" ,zlib)
- ;; Fonts for the ‘unbundle-fonts’ phase. Case matters in name!
- ("DejaVu" ,font-dejavu)
- ("MicroHei" ,font-wqy-microhei)))
- (home-page "https://www.widelands.org/")
+ (list asio
+ font-dejavu
+ font-wqy-microhei
+ glew
+ icu4c
+ libpng
+ minizip
+ sdl2
+ sdl2-image
+ sdl2-mixer
+ sdl2-ttf
+ zlib))
+ (home-page "https://www.widelands.org")
(synopsis "Fantasy real-time strategy game")
(description
"In Widelands, you are the regent of a small clan. You start out with
@@ -9837,6 +9834,34 @@ certainly not least as a fun, realistic, and challenging desktop flight
simulator.")
(license license:gpl2+)))
+(define-public jstest-gtk
+ ;; There is no recent tagged release; use the latest commit.
+ (let ((commit "60fe6ebdbc6719945be3f04988667dea569085be")
+ (revision "0"))
+ (package
+ (name "jstest-gtk")
+ (version (git-version "0.1.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Grumbel/jstest-gtk")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1x5m6xvd1r9dhgzh6hp4vrszczbbxr04v7lyh4wjxxzrj3ahbmcq"))))
+ (build-system cmake-build-system)
+ (arguments (list #:configure-flags #~(list "-DBUILD_TESTS=ON")))
+ (native-inputs (list pkg-config))
+ (inputs (list gtkmm-3 libsigc++-2))
+ (home-page "https://github.com/Grumbel/jstest-gtk/")
+ (synopsis "Simple joystick tester GUI")
+ (description "@command{jstest-gtk} is a simple joystick tester based on
+GTK. It provides a list of attached joysticks, a way to display which buttons
+and axis are pressed, a way to remap axis and buttons and a way to calibrate
+joysticks.")
+ (license license:gpl3+))))
+
(define-public jumpnbump
(package
(name "jumpnbump")
@@ -11721,6 +11746,48 @@ on the pitch of the voice and the rhythm of singing.")
virtual reality devices.")
(license license:expat))))
+(define-public zsnes
+ (package
+ (name "zsnes")
+ (version "2.0.12")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xyproto/zsnes")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0g9l1ij3p1adkp97wkp0dz44i2xpmsvfpkxvlfkpr7190dibsgsz"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:system "i686-linux" ;requires 32 bit libraries to build
+ #:tests? #f ;no test suite
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "CXX=" #$(cxx-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)))) ;no configure script
+ (native-inputs (list nasm pkg-config))
+ (inputs (list glib libpng mesa ncurses sdl zlib))
+ (home-page "https://www.zsnes.com")
+ (synopsis "Super Nintendo Entertainment System emulator")
+ (description "ZSNES is a @acronym{Super Nintendo Entertainment System,
+SNES} emulator that can play most games at full speed with sound and special
+graphic filters. Some of its features include:
+@itemize
+@item Support for smooth and dynamic image scaling
+@item Support for rewinding and fast-forwarding in-game
+@item JMA compression format
+@item Change the appearance of the GUI
+@item Take screenshots of currently running games
+@item Saving the game at any point by recording the console’s state
+@item Record movies of gameplay which can be played back.
+@end itemize")
+ (license license:gpl2+)
+ (supported-systems (list "x86_64-linux"))))
+
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index d0e72f9176..f832202d18 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -148,14 +148,14 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
(define-public gdb-14
(package
(inherit gdb/pinned)
- (version "14.1")
+ (version "14.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdb/gdb-"
version ".tar.xz"))
(sha256
(base32
- "106v7rj72km56mb2ssjsyjfix3yn4f3wqr7lpzy52d0lfq9gavfn"))))
+ "0wkprsjyyh204fdjlkaz20k847l88i9y8m9zqsv15vcd3l3dhk9d"))))
(properties '())))
(define-public gdb
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 544507fa3f..2100bb4872 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -1166,7 +1166,7 @@ the glProgramViewportFlip before it was replaced with glProgramViewportInfo.")
(define-public glmark2
(package
(name "glmark2")
- (version "2021.12")
+ (version "2023.01")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1175,7 +1175,7 @@ the glProgramViewportFlip before it was replaced with glProgramViewportInfo.")
(file-name (git-file-name name version))
(sha256
(base32
- "1aydqbrg9i74s19rrdrsscx94m885yvc43v3sdqlgyh675ms98jb"))))
+ "094dr0ljg1hq6wymw2hb3369p4g91sn5c2qf554dl0dbdbjdqasq"))))
(build-system meson-build-system)
(arguments
'(#:tests? #f ; no check target
diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm
index 4984d552d3..3e26f5f374 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -19,6 +19,7 @@
;;; Copyright © 2023 Fries <fries1234@protonmail.com>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2024 Greg Hogan <code@greghogan.com>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
@@ -748,6 +749,21 @@ Features include:
(propagated-inputs
(list go-gopkg-in-yaml-v3)))))
+(define-public go-github-com-stretchr-testify-next
+ (package
+ (inherit go-github-com-stretchr-testify)
+ (name "go-github-com-stretchr-testify")
+ (version "1.9.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stretchr/testify")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "12cnhk96h8b3ddlb7jfvwwavzc0j1c2iva92pszl9rv6r571ckzg"))))))
+
(define-public go-github-com-tdewolff-test
(package
(name "go-github-com-tdewolff-test")
@@ -987,6 +1003,33 @@ custom assertions to be used alongside native Go testing.")
(arguments
(list #:import-path "github.com/go-playground/assert/v2"))))
+(define-public go-go-uber-org-goleak
+ (package
+ (name "go-go-uber-org-goleak")
+ (version "1.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/uber-go/goleak")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1lpqw7ygffak8qki9i4vw8b99l25l8jrw8iwcplqsclk6fzkl24p"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "go.uber.org/goleak"))
+ (native-inputs
+ (list go-github-com-stretchr-testify-next))
+ (home-page "https://pkg.go.dev/go.uber.org/goleak")
+ (synopsis "Goroutine leak detector")
+ (description
+ "Go package to verify that there are no unexpected goroutines running at
+the end of a test.")
+ (license license:expat)))
+
(define-public go-honnef-co-go-tools
(package
(name "go-honnef-co-go-tools")
diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 3b95965f6b..ca35d5c391 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -48,7 +48,9 @@
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-compression)
- #:use-module (gnu packages golang-web))
+ #:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
+ #:use-module (gnu packages specifications))
;;; Commentary:
;;;
@@ -497,6 +499,39 @@ RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own.")
#:go go-1.18
#:import-path "github.com/golang-jwt/jwt/v5"))))
+;; It's not public for purpose, as it contains a lot of golang modules which
+;; may be inherited from the single source, but the package itself does not
+;; have to be installed directly or linked to other packages..
+(define go-github-com-gxed-hashland
+ (package
+ (name "go-github-com-gxed-hashland")
+ (version "0.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gxed/hashland")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1b921dh9i6zw7y8jfzwvrmdbhnwid12a5z1zjawslfq2vvsajwmm"))))
+ (build-system go-build-system)
+ ;; Source-only package.
+ (arguments
+ (list
+ #:tests? #f
+ #:import-path "github.com/gxed/hashland"
+ #:phases
+ #~(modify-phases %standard-phases (delete 'build))))
+ (home-page "https://github.com/gxed/hashland")
+ (synopsis "Collection of hash functions")
+ (description
+ "This package provides a source of Hashland - a collection of hash
+functions and functionality to test them. It aggregates various Golang
+libraries.")
+ (license license:expat)))
+
+;; TODO: Inherit from the go-github-com-gxed-hashland
(define-public go-github-com-gxed-hashland-keccakpg
(let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
(revision "0"))
@@ -522,6 +557,20 @@ RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own.")
hash algorithm. See http://keccak.noekeon.org.")
(license license:expat))))
+(define-public go-github-com-gxed-hashland-murmur3
+ (package
+ (inherit go-github-com-gxed-hashland)
+ (name "go-github-com-gxed-hashland-murmur3")
+ (arguments
+ (list
+ #:import-path "github.com/gxed/hashland/murmur3"
+ #:unpack-path "github.com/gxed/hashland"))
+ (synopsis "Golang implementation of MurmurHash3 algorithm")
+ (description
+ "This package provides a native Go implementation of
+@url{https://en.wikipedia.org/wiki/MurmurHash, Austin Appleby's third
+MurmurHash} revision (aka MurmurHash3).")))
+
(define-public go-github-com-jcmturner-aescts-v2
(package
(name "go-github-com-jcmturner-aescts-v2")
@@ -789,34 +838,78 @@ Architecture Processors\" by J. Guilford et al.")
(license license:asl2.0)))
(define-public go-github-com-multiformats-go-multihash
- (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
- (revision "0"))
- (package
- (name "go-github-com-multiformats-go-multihash")
- (version (git-version "1.0.8" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/multiformats/go-multihash")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/multiformats/go-multihash"))
- (propagated-inputs
- (list go-github-com-mr-tron-base58
- go-github-com-gxed-hashland-keccakpg
- go-github-com-minio-blake2b-simd
- go-github-com-minio-sha256-simd
- go-github-com-spaolacci-murmur3
- go-golang-org-x-crypto))
- (home-page "https://github.com/multiformats/go-multihash")
- (synopsis "Multihash implementation in Go")
- (description "Multihash implementation in Go.")
- (license license:expat))))
+ (package
+ (name "go-github-com-multiformats-go-multihash")
+ (version "0.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multihash")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1aw4ra22g3l98bk7c3h1n968vi5a3gk528g4byj3xig76r0r731n"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/multiformats/go-multihash"))
+ (propagated-inputs
+ (list go-github-com-gxed-hashland-keccakpg
+ go-github-com-gxed-hashland-murmur3
+ go-github-com-minio-blake2b-simd
+ go-github-com-minio-sha256-simd
+ go-github-com-mr-tron-base58
+ go-golang-org-x-crypto))
+ (home-page "https://github.com/multiformats/go-multihash")
+ (synopsis "Multihash implementation in Go")
+ (description "Multihash implementation in Go.")
+ (license license:expat)))
+
+;; XXX: Remove it when all dependent packages are ready to be updated.
+(define-public go-github-com-multiformats-go-multihash-0.2.3
+ (package
+ (inherit go-github-com-multiformats-go-multihash)
+ (name "go-github-com-multiformats-go-multihash")
+ (version "0.2.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multihash")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ydh94083888xl2r4d1grzgqf3c818mkmdpj008jkh6h7m56wc4w"))))
+ (arguments
+ (list #:go go-1.21
+ #:import-path "github.com/multiformats/go-multihash"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'copy-multibase-specs
+ (lambda* (#:key import-path #:allow-other-keys)
+ (copy-recursively
+ (string-append #$(this-package-native-input
+ "specification-multihash")
+ "/share/multihash/")
+ (string-append "src/" import-path "/spec/multihash/"))
+ (copy-recursively
+ (string-append #$(this-package-native-input
+ "specification-multicodec")
+ "/share/multicodec/")
+ (string-append "src/" import-path "/spec/multicodec/")))))))
+ (native-inputs
+ (list specification-multihash
+ specification-multicodec))
+ (propagated-inputs
+ (list go-github-com-gxed-hashland-keccakpg
+ go-github-com-minio-blake2b-simd
+ go-github-com-minio-sha256-simd
+ go-github-com-mr-tron-base58
+ go-github-com-multiformats-go-varint
+ go-github-com-spaolacci-murmur3
+ go-golang-org-x-crypto
+ go-lukechampine-com-blake3))))
(define-public go-github-com-operatorfoundation-ed25519
(let ((commit "b22b4bd3ddef042eec45f3ee135cd40281fde2b4")
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 5c6d9126ef..91f075ca2e 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -1,4 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017, 2019, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
@@ -10,7 +11,6 @@
;;; Copyright © 2020 raingloom <raingloom@riseup.net>
;;; Copyright © 2020-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Collin J. Doering <collin@rekahsoft.ca>
-;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
@@ -553,6 +553,8 @@ metrics (i.e. response time, bytes written, and http status code) from your
application's http.Handlers.")
(license license:expat)))
+;; This project looks like domain or abandoned, see
+;; <https://github.com/francoispqt/gojay/issues/150>.
(define-public go-github-com-francoispqt-gojay
(package
(name "go-github-com-francoispqt-gojay")
@@ -568,14 +570,20 @@ application's http.Handlers.")
(base32 "1ix95qdyajfmxhf9y52vjrih63f181pjs4v5as8905s4d5vmkd06"))))
(build-system go-build-system)
(arguments
- '(#:import-path "github.com/francoispqt/gojay"))
+ (list
+ ;; XXX: Disable failing tests on non-x86-64 architecture, see
+ ;; <https://github.com/francoispqt/gojay/issues/173>.
+ #:tests? (and (not (%current-target-system))
+ (target-x86-64?))
+ #:import-path "github.com/francoispqt/gojay"))
(native-inputs
(list go-github-com-stretchr-testify))
+ (home-page "https://github.com/francoispqt/gojay")
(synopsis "JSON encoder/decoder with powerful stream API for Golang")
- (description "GoJay is a performant JSON encoder/decoder for Golang. It has
-a simple API and doesn't use reflection. It relies on small interfaces to
+ (description
+ "GoJay is a performant JSON encoder/decoder for Golang. It has a simple
+API and doesn't use reflection. It relies on small interfaces to
decode/encode structures and slices.")
- (home-page "https://github.com/francoispqt/gojay")
(license license:expat)))
;; TODO: This repository has been archived by the owner on Aug 30, 2023. It is
@@ -708,6 +716,35 @@ Encryption, JSON Web Signature, and JSON Web Token standards.")
"Fast JSON encoder/decoder compatible with encoding/json for Go.")
(license license:expat)))
+(define-public go-github-com-golang-groupcache
+ (let ((commit "41bb18bfe9da5321badc438f91158cd790a33aa3")
+ (revision "3"))
+ (package
+ (name "go-github-com-golang-groupcache")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/golang/groupcache")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "07amgr8ji4mnq91qbsw2jlcmw6hqiwdf4kzfdrj8c4b05w4knszc"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/golang/groupcache"))
+ (propagated-inputs
+ (list go-github-com-golang-protobuf-proto))
+ (home-page "https://github.com/golang/groupcache")
+ (synopsis "Groupcache is a caching and cache-filling library")
+ (description
+ "Groupcache is a caching and cache-filling library, intended
+as a replacement for memcached in many cases. It provides a data loading
+mechanism with caching and de-duplication that works across a set of peer
+processes.")
+ (license license:asl2.0))))
+
(define-public go-github-com-google-go-github
(package
(name "go-github-com-google-go-github")
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index dfd4190a7d..fcb352148c 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2019-2021 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020, 2021 raingloom <raingloom@riseup.net>
@@ -29,8 +30,10 @@
;;; Copyright © 2023 Sergey Trofimov <sarg@sarg.org.ru>
;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr>
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
+;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1089,6 +1092,58 @@ scanner API made public.")
for @code{Set}, @code{Get}, @code{Delete} and @code{Len}.")
(license license:expat)))
+(define-public go-github-com-facette-natsort
+ (package
+ (name "go-github-com-facette-natsort")
+ (version "0.0.0-20181210072756-2cd4dd1e2dcb")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/facette/natsort")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0kfas7nq7cfrbaqvpmifg2p8v8z0d2kdqjb7p9y6r0rpdzl2zy6p"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/facette/natsort"))
+ (home-page "https://github.com/facette/natsort")
+ (synopsis "Natural strings sorting in Go")
+ (description
+ "This package provides an implementation of
+@url{https://web.archive.org/web/20210803201519/http://davekoelle.com/alphanum.html,the
+Alphanum Algorithm} developed by Dave Koelle in Go.")
+ (license license:bsd-3)))
+
+(define-public go-github-com-fatih-color
+ (package
+ (name "go-github-com-fatih-color")
+ (version "1.16.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fatih/color")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15689x103gy9q7g7623rlvhwrw27p079ardapmrrag0sdwrx5bq2"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/fatih/color"))
+ (propagated-inputs
+ (list go-github-com-mattn-go-colorable
+ go-github-com-mattn-go-isatty))
+ (home-page "https://pkg.go.dev/github.com/fatih/color")
+ (synopsis "Print colored text in Go")
+ (description
+ "This package provides an ANSI color package to output colorized or SGR
+defined output to the standard output.")
+ (license license:expat)))
+
(define-public go-github-com-gabriel-vasile-mimetype
(package
(name "go-github-com-gabriel-vasile-mimetype")
@@ -1176,6 +1231,30 @@ interfaces to back that API. Packages in the Go ecosystem can depend on it,
while callers can implement logging with whatever backend is appropriate.")
(license license:asl2.0)))
+(define-public go-github-com-gobwas-glob
+ (package
+ (name "go-github-com-gobwas-glob")
+ (version "0.2.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gobwas/glob")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/gobwas/glob"))
+ (home-page "https://github.com/gobwas/glob")
+ (synopsis "Go globbing library")
+ (description
+ "This package provides a Go implementation of globs.")
+ (license license:expat)))
+
(define-public go-github-com-hashicorp-errwrap
(package
(name "go-github-com-hashicorp-errwrap")
@@ -1248,7 +1327,7 @@ methods on @code{hclog.Logger} are used correctly.")
(sha256
(base32 "0l4s41skdpifndn9s8y6s9vzgghdzg4z8z0lld9qjr28888wzp00"))))
(build-system go-build-system)
- (inputs (list go-github-com-hashicorp-errwrap))
+ (propagated-inputs (list go-github-com-hashicorp-errwrap))
(arguments
(list
#:import-path "github.com/hashicorp/go-multierror"))
@@ -1338,6 +1417,51 @@ a collection of versions properly, handles prerelease/beta versions, can
increment versions.")
(license license:mpl2.0)))
+(define-public go-github-com-hashicorp-golang-lru
+ (package
+ (name "go-github-com-hashicorp-golang-lru")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hashicorp/golang-lru")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "13q3mdlr4hb2cxa5k4ccpz1gg4swrmkxm7h3brq3xsawidpbjbyb"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/hashicorp/golang-lru"))
+ (home-page "https://github.com/hashicorp/golang-lru")
+ (synopsis "Golang LRU cache")
+ (description
+ "@code{lru} is a package which implements a fixed-size thread safe
+@acronym{Least recently used,LRU} cache. It is based on the cache in
+Groupcache.")
+ (license license:mpl2.0)))
+
+(define-public go-github-com-hashicorp-golang-lru-v2
+ (package
+ (inherit go-github-com-hashicorp-golang-lru)
+ (name "go-github-com-hashicorp-golang-lru-v2")
+ (version "2.0.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hashicorp/golang-lru")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0lb2ylv2bz6lsqhn6c2hsafjjcx0hsdbah6arhb778g3xbkpgvf3"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.18
+ #:import-path "github.com/hashicorp/golang-lru/v2"))))
+
(define-public go-github-com-hashicorp-hcl
(package
(name "go-github-com-hashicorp-hcl")
@@ -1527,6 +1651,33 @@ and stop units of work, which may receive @code{Close} signals from many clients
struct to another.")
(license license:expat)))
+(define-public go-github-com-johnkerl-lumin
+ (package
+ (name "go-github-com-johnkerl-lumin")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/johnkerl/lumin")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1liv27pxi79q4yr1bd0wgsx31ixw53ipsgs2kp0asxj2d6z4hpiz"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/johnkerl/lumin"))
+ (home-page "https://github.com/johnkerl/lumin")
+ (synopsis "Command-line tool to highlight matches in files")
+ (description
+ "@command{lumin} is a simple command-line program which highlights matches
+to a specified pattern (string or regex) in the specified files. This is like
+@code{grep} with @code{--color}, except that @code{lumin} shows all lines, not
+just matching lines. This package proviedes a CLI tool and @code{colors}
+library.")
+ (license license:bsd-2)))
+
(define-public go-github-com-josharian-intern
(package
(name "go-github-com-josharian-intern")
@@ -1657,6 +1808,70 @@ word-splitting rules.")
(home-page "https://github.com/kballard/go-shellquote")
(license license:expat))))
+(define-public go-github-com-lestrrat-go-envload
+ (package
+ (name "go-github-com-lestrrat-go-envload")
+ (version "0.0.0-20180220234015-a3eb8ddeffcc")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lestrrat-go/envload")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0hlhvygfg67w8pqmjl91124zggnz6m750vjmmjlf8ys63nv3na05"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/lestrrat-go/envload"))
+ (native-inputs
+ (list go-github-com-stretchr-testify))
+ (home-page "https://github.com/lestrrat-go/envload")
+ (synopsis "Restore and load environment variables")
+ (description
+ "This package implements a Perl5 like @code{temporary} variable, for
+applications requiring reloading of configuration from environment variables
+or during the tests temporarily change the value of an environment variable in
+Golang.")
+ (license license:expat)))
+
+(define-public go-github-com-lestrrat-go-strftime
+ (package
+ (name "go-github-com-lestrrat-go-strftime")
+ (version "1.0.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lestrrat-go/strftime")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1iqzxmj3ijldjf99acy44qrrzvfxzn0vza3m0c9bw46bg8v1wsyc"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/lestrrat-go/strftime"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-benchmarks
+ (lambda* (#:key import-path #:allow-other-keys)
+ (delete-file-recursively
+ (string-append "src/" import-path "/bench")))))))
+ (native-inputs
+ (list go-github-com-stretchr-testify))
+ (propagated-inputs
+ (list go-github-com-pkg-errors
+ go-github-com-lestrrat-go-envload))
+ (home-page "https://github.com/lestrrat-go/strftime")
+ (synopsis "Strftime for Golang")
+ (description
+ "This package provides a Golang library implementing the conversion of
+date and time information from a given calendar time to a character string
+according to a format string. It is optimized for scenarios where the same
+pattern is called repeatedly.")
+ (license license:expat)))
+
(define-public go-github-com-lib-pq
(package
(name "go-github-com-lib-pq")
@@ -2390,6 +2605,30 @@ syslog, file and memory. Multiple backends can be utilized with different log
levels per backend and logger.")
(license license:bsd-3)))
+(define-public go-github-com-openprinting-goipp
+ (package
+ (name "go-github-com-openprinting-goipp")
+ (version "1.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/OpenPrinting/goipp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1p05dk37l393byvjanvi3ipqcax320vf3qynlzazm7czzzlw448h"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/OpenPrinting/goipp"))
+ (home-page "https://github.com/OpenPrinting/goipp")
+ (synopsis "IPP core protocol implementation")
+ (description
+ "The goipp package implements the IPP core protocol, as defined by
+@@url{https://rfc-editor.org/rfc/rfc8010.html,RFC 8010}.")
+ (license license:bsd-2)))
+
(define-public go-github-com-orisano-pixelmatch
(package
(name "go-github-com-orisano-pixelmatch")
@@ -2415,6 +2654,33 @@ comparison library, to Go. Both a library and a command-line tool are
included in this package.")
(license license:expat)))
+(define-public go-github-com-pbnjay-memory
+ (let ((commit "7b4eea64cf580186c0eceb10dc94ba3a098af46c")
+ (revision "2"))
+ (package
+ (name "go-github-com-pbnjay-memory")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pbnjay/memory")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "107w8pd1aasdrk35hh9pbdh9z11s9s79nglz6rqfnf6bhgb8b3s0"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/pbnjay/memory"))
+ (home-page "https://github.com/gedex/inflector")
+ (synopsis "Go library to report total system memory")
+ (description
+ "@code{memory} provides a single method reporting total physical system
+memory accessible to the kernel. It does not account for memory used by other
+processes.")
+ (license license:bsd-3))))
+
(define-public go-github-com-pierrec-cmdflag
(package
(name "go-github-com-pierrec-cmdflag")
@@ -2919,6 +3185,40 @@ string. The string can be a string retorned for @code{time.Duration} or a
similar string with weeks or days too.")
(license license:bsd-3)))
+(define-public go-go-uber-org-atomic
+ (package
+ (name "go-go-uber-org-atomic")
+ (version "1.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/uber-go/atomic")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0grswsk7nkf7zmmychf6aj6032shyag1kgs6zf7qwxyn55dym1v8"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ ;; XXX: Disable failing tests on non-x86-64 architecture, see
+ ;; <https://github.com/uber-go/atomic/issues/164>.
+ ;;
+ ;; go.uber.org/atomic/uintptr_test.go:72:30: cannot convert
+ ;; math.MaxUint64 (untyped int constant 18446744073709551615) to type
+ ;; uintptr
+ #:tests? (and (not (%current-target-system))
+ (target-x86-64?))
+ #:import-path "go.uber.org/atomic"))
+ (native-inputs
+ (list go-github-com-stretchr-testify go-github-com-davecgh-go-spew))
+ (home-page "https://pkg.go.dev/go.uber.org/atomic")
+ (synopsis "Wrapper types for sync/atomic")
+ (description
+ "This package provides simple wrappers for primitive types to enforce
+atomic access.")
+ (license license:expat)))
+
(define-public go-go-uber-org-automaxprocs
(package
(name "go-go-uber-org-automaxprocs")
@@ -2944,6 +3244,92 @@ similar string with weeks or days too.")
CPU quota.")
(license license:expat)))
+(define-public go-go-uber-org-dig
+ (package
+ (name "go-go-uber-org-dig")
+ (version "1.17.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/uber-go/dig")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "020dak2r0yykk6fkfwad2wbz73pjbbdkdamn0ir7xf2irxsmjakm"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.20
+ #:import-path "go.uber.org/dig"))
+ (native-inputs
+ (list go-github-com-stretchr-testify-next))
+ (home-page "https://pkg.go.dev/go.uber.org/dig")
+ (synopsis "Reflection based dependency injection toolkit for Golang")
+ (description
+ "Package @code{dig} provides a functionality to implement resolving
+object dependencies graph during the process startup.")
+ (license license:expat)))
+
+(define-public go-go-uber-org-fx
+ (package
+ (name "go-go-uber-org-fx")
+ (version "1.21.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/uber-go/fx")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16pbqmkij02zw6xa4660k905y0r0rc50vyqhg41i2411r68jrdnn"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.20
+ #:import-path "go.uber.org/fx"))
+ (native-inputs
+ (list go-github-com-stretchr-testify-next))
+ (propagated-inputs
+ (list go-go-uber-org-dig
+ go-go-uber-org-goleak
+ go-go-uber-org-multierr
+ go-go-uber-org-zap
+ go-golang-org-x-sys))
+ (home-page "https://pkg.go.dev/go.uber.org/fx")
+ (synopsis "Dependency injection based application framework for Golang")
+ (description
+ "Package @code{fx} is a framework that makes it easy to build
+applications out of reusable, composable modules.")
+ (license license:expat)))
+
+(define-public go-go-uber-org-multierr
+ (package
+ (name "go-go-uber-org-multierr")
+ (version "1.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/uber-go/multierr")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "162941s8f6a9x2w04qm4qa3zz0zylwag9149hywrj9ibp2nzcsqz"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "go.uber.org/multierr"))
+ (native-inputs
+ (list go-github-com-stretchr-testify))
+ (propagated-inputs
+ (list go-go-uber-org-atomic))
+ (home-page "https://pkg.go.dev/go.uber.org/multierr")
+ (synopsis "Error combination for Go")
+ (description
+ "@code{multierr} allows combining one or more Go errors together.")
+ (license license:expat)))
+
(define-public go-go-uber-org-zap
(package
(name "go-go-uber-org-zap")
@@ -2959,18 +3345,31 @@ CPU quota.")
(base32 "0lzbbs87fvixzbyv4wpl3s70vm2m0jz2jgdvrviiksc2al451qgs"))))
(build-system go-build-system)
(arguments
- '(#:import-path "go.uber.org/zap"
- #:tests? #f)) ; TODO: Fix tests
+ (list
+ #:go go-1.19
+ #:import-path "go.uber.org/zap"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Remove test files requiring to download all dependencies for the
+ ;; current Go module and reports their module paths and locations on
+ ;; disk.
+ (add-after 'unpack 'remove-test-files
+ (lambda* (#:key import-path #:allow-other-keys)
+ (delete-file
+ (string-append "src/" import-path
+ "/stacktrace_ext_test.go")))))))
(native-inputs
- (list go-github-com-stretchr-testify
+ (list go-github-com-stretchr-testify-next
+ go-go-uber-org-goleak
go-golang-org-x-lint
go-honnef-co-go-tools))
(propagated-inputs
- (list go-github-com-pkg-errors
+ (list go-github-com-benbjohnson-clock
+ go-github-com-pkg-errors
go-go-uber-org-atomic
go-go-uber-org-multierr
go-gopkg-in-yaml-v2))
- (home-page "https://go.uber.org/zap")
+ (home-page "https://pkg.go.dev/go.uber.org/zap")
(synopsis "Logging library for Go")
(description
"This package provides a library for fast, structured, leveled logging in
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index fb558c1b9c..269bcaa3e4 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -6140,31 +6140,6 @@ filters for Go.")
@code{mbox} files.")
(license license:expat)))
-(define-public go-github-com-fatih-color
- (package
- (name "go-github-com-fatih-color")
- (version "1.16.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fatih/color")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "15689x103gy9q7g7623rlvhwrw27p079ardapmrrag0sdwrx5bq2"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/fatih/color"))
- (propagated-inputs
- (list go-github-com-mattn-go-colorable
- go-github-com-mattn-go-isatty))
- (synopsis "Print colored text in Go")
- (description "This package provides an ANSI color package to output
-colorized or SGR defined output to the standard output.")
- (home-page "https://pkg.go.dev/github.com/fatih/color")
- (license license:expat)))
-
(define-public go-github-com-google-go-cmp-cmp
(package
(name "go-github-com-google-go-cmp-cmp")
@@ -6706,32 +6681,6 @@ and no external C (cgo) code is used, which should make the library very eas
to use.")
(license license:expat)))
-(define-public go-github-com-pbnjay-memory
- (let ((commit "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510")
- (revision "1"))
- (package
- (name "go-github-com-pbnjay-memory")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/pbnjay/memory")
- (commit commit)))
- (file-name (string-append "go-github-com-pbnjay-memory-"
- version "-checkout"))
- (sha256
- (base32
- "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/pbnjay/memory"))
- (home-page "https://github.com/gedex/inflector")
- (synopsis "Go library to report total system memory")
- (description "@code{memory} provides a single method reporting total
-physical system memory accessible to the kernel. It does not account for memory
-used by other processes.")
- (license license:bsd-3))))
-
(define-public go-github-com-surge-glog
(let ((commit "2578deb2b95c665e6b1ebabf304ce2085c9e1985")
(revision "1"))
@@ -8505,89 +8454,6 @@ Gemini clients and servers.")
@code{getopt} for Go.")
(license license:bsd-3)))
-(define-public go-go-uber-org-goleak
- (package
- (name "go-go-uber-org-goleak")
- (version "1.2.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/uber-go/goleak")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1lpqw7ygffak8qki9i4vw8b99l25l8jrw8iwcplqsclk6fzkl24p"))))
- (build-system go-build-system)
- (arguments
- '(#:tests? #f
- #:import-path "go.uber.org/goleak"))
- (propagated-inputs
- (list go-github-com-davecgh-go-spew
- go-github-com-kr-pretty
- go-github-com-pmezard-go-difflib
- go-github-com-stretchr-testify
- go-golang-org-x-lint
- go-golang-org-x-tools
- go-gopkg-in-check-v1
- go-gopkg-in-yaml-v3))
- (home-page "https://go.uber.org/goleak")
- (synopsis "Goroutine leak detector")
- (description "Go package to verify that there are no unexpected goroutines
-running at the end of a test.")
- (license license:expat)))
-
-(define-public go-go-uber-org-atomic
- (package
- (name "go-go-uber-org-atomic")
- (version "1.8.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/uber-go/atomic")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0grswsk7nkf7zmmychf6aj6032shyag1kgs6zf7qwxyn55dym1v8"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "go.uber.org/atomic"))
- (native-inputs
- (list go-github-com-stretchr-testify go-github-com-davecgh-go-spew))
- (home-page "https://go.uber.org/atomic")
- (synopsis "Wrapper types for sync/atomic")
- (description
- "This package provides simple wrappers for primitive types to enforce
-atomic access.")
- (license license:expat)))
-
-(define-public go-go-uber-org-multierr
- (package
- (name "go-go-uber-org-multierr")
- (version "1.6.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/uber-go/multierr")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "162941s8f6a9x2w04qm4qa3zz0zylwag9149hywrj9ibp2nzcsqz"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "go.uber.org/multierr"))
- (native-inputs
- (list go-github-com-stretchr-testify))
- (propagated-inputs
- (list go-go-uber-org-atomic))
- (home-page "https://go.uber.org/multierr")
- (synopsis "Error combination for Go")
- (description
- "@code{multierr} allows combining one or more Go errors together.")
- (license license:expat)))
-
(define-public gofumpt
(package
(name "gofumpt")
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index a5e36d6513..3571a45b84 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -81,6 +81,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnunet)
+ #:use-module (gnu packages gnuzilla)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
@@ -1962,44 +1963,66 @@ or by subtracting one shape from the other.")
(home-page "https://www.opencsg.org/")
(license license:gpl2))))
-(define-public coin3D
+(define-public coin3d
(package
- (name "coin3D")
- (version "4.0.0")
+ (name "coin3d")
+ (version "4.0.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/coin3d/coin")
- (commit (string-append "Coin-" version))
+ (commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32 "1ayg0hl8wanhadahm5xbghghxw1qjwqbrs3dl3ngnff027hsyf8p"))
+ (base32 "1p59q67zc45pwicknsccvmby09snhz35725wr3xsh2v6kxza76a4"))
(modules '((guix build utils)))
(snippet
- '(begin
- ;; Delete binaries
- (for-each delete-file
- '("cfg/csubst.exe"
- "cfg/wrapmsvc.exe"))
- ;; Delete references to packaging tool cpack. Otherwise the build
- ;; fails with "add_subdirectory given source "cpack.d" which is not
- ;; an existing directory."
- (substitute* "CMakeLists.txt"
- ((".*cpack.d.*") ""))
- #t))))
+ #~(begin
+ ;; Delete binaries
+ (for-each delete-file
+ '("cfg/csubst.exe"
+ "cfg/wrapmsvc.exe"))
+ ;; Unbundle expat.
+ (delete-file-recursively "src/xml/expat")
+ (substitute* "src/xml/document.cpp"
+ (("expat/expat\\.h") "expat.h"))
+ ;; Delete references to packaging tool cpack. Otherwise the build
+ ;; fails with "add_subdirectory given source "cpack.d" which is not
+ ;; an existing directory."
+ (substitute* "CMakeLists.txt"
+ ((".*cpack.d.*") ""))))))
(build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags
+ #~(list "-DCOIN_BUILD_DOCUMENTATION_MAN=ON"
+ "-DUSE_EXTERNAL_EXPAT=ON"
+ ;; Disable "runtime linking" of libraries, i.e. `dlopen`,
+ ;; force to use libraries at build time.
+ "-DFONTCONFIG_RUNTIME_LINKING=OFF"
+ "-DFREETYPE_RUNTIME_LINKING=OFF"
+ "-DLIBBZIP2_RUNTIME_LINKING=OFF"
+ "-DOPENAL_RUNTIME_LINKING=OFF"
+ ;"-DSIMAGE_RUNTIME_LINKING=OFF" -- Not packaged yet.
+ "-DZLIB_RUNTIME_LINKING=OFF"
+ "-DGLU_RUNTIME_LINKING=OFF"
+ ;"-DSPIDERMONKEY_RUNTIME_LINKING=OFF" -- Can't find mozjs.
+ (string-append "-DBOOST_ROOT="
+ #$(this-package-input "boost")))))
(native-inputs
(list doxygen graphviz))
(inputs
- (list boost freeglut glew))
- (arguments
- `(#:configure-flags
- (list
- "-DCOIN_BUILD_DOCUMENTATION_MAN=ON"
- (string-append "-DBOOST_ROOT="
- (assoc-ref %build-inputs "boost")))))
+ (list boost
+ bzip2
+ expat
+ fontconfig
+ freeglut
+ freetype
+ glew
+ libx11
+ openal
+ zlib))
(home-page "https://github.com/coin3d/coin")
(synopsis
"High-level 3D visualization library with Open Inventor 2.1 API")
@@ -2012,7 +2035,10 @@ library for 3D visualization and visual simulation software in the scientific
and engineering community.")
(license license:bsd-3)))
-(define-deprecated coin3D-4 coin3D)
+(define-deprecated coin3D coin3d)
+(export coin3D)
+
+(define-deprecated coin3D-4 coin3d)
(export coin3D-4)
(define-public skia
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index 0a1065535b..02678a6b96 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -39,6 +39,42 @@
#:use-module (gnu packages shells)
#:use-module (gnu packages syncthing))
+(define-public go-github-com-ipfs-go-cid
+ (package
+ (name "go-github-com-ipfs-go-cid")
+ (version "0.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ipfs/go-cid")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0gfd5dg0shj2daraai2kkf8sg24jp5cr6dsv857wp4q1ni612a23"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.21
+ #:import-path "github.com/ipfs/go-cid"))
+ (propagated-inputs (list go-github-com-gxed-hashland-keccakpg
+ go-github-com-minio-blake2b-simd
+ go-github-com-minio-sha256-simd
+ go-github-com-mr-tron-base58
+ go-github-com-multiformats-go-base32
+ go-github-com-multiformats-go-base36
+ go-github-com-multiformats-go-multihash-0.2.3
+ go-github-com-multiformats-go-multibase
+ go-github-com-multiformats-go-varint
+ go-github-com-spaolacci-murmur3
+ go-golang-org-x-crypto))
+ (home-page "https://github.com/ipfs/go-cid")
+ (synopsis "Content ID v1 implemented in Go")
+ (description
+ "Implementation in Go of the @url{https://github.com/ipld/cid, CID spec}. It is
+used in @code{go-ipfs} and related packages to refer to a typed hunk of data.")
+ (license license:expat)))
+
(define-public go-github-com-ipfs-go-ipfs-cmdkit-files
(let ((commit
"386fcf8f18a185ec121676665fe2d9574496048d")
@@ -241,7 +277,7 @@ written in Go.")
(snippet '(for-each delete-file-recursively
;; TODO: unbundle the rest as well
'("vendor/github.com/alecthomas"
- "vendor/github.com/benbjohnson/clock"
+ "vendor/github.com/benbjohnson"
"vendor/github.com/beorn7/perks"
"vendor/github.com/blang"
"vendor/github.com/cespare"
@@ -258,6 +294,7 @@ written in Go.")
"vendor/github.com/golang/snappy"
"vendor/github.com/google/uuid"
"vendor/github.com/gorilla"
+ "vendor/github.com/hashicorp"
;; These should be fine, they are part of
;; the IPFS project
;; "vendor/github.com/ipfs"
@@ -269,7 +306,9 @@ written in Go.")
"vendor/github.com/minio"
"vendor/github.com/mitchellh"
"vendor/github.com/mr-tron"
+ "vendor/github.com/multiformats/go-multihash"
"vendor/github.com/opentracing"
+ "vendor/github.com/pbnjay"
"vendor/github.com/pkg"
"vendor/github.com/pmezard"
"vendor/github.com/prometheus/client_golang"
@@ -279,12 +318,10 @@ written in Go.")
"vendor/github.com/spaolacci"
"vendor/github.com/stretchr"
"vendor/github.com/syndtr"
- "vendor/golang.org/x"
- "vendor/gopkg.in/yaml.v2"
- "vendor/gopkg.in/yaml.v3"
- "vendor/go.uber.org/atomic"
- "vendor/go.uber.org/multierr"
- "vendor/go.uber.org/zap"
+ "vendor/github.com/whyrusleeping/go-sysinfo"
+ "vendor/go.uber.org"
+ "vendor/golang.org"
+ "vendor/gopkg.in"
"vendor/lukechampine.com")))))
(build-system go-build-system)
(arguments
@@ -307,7 +344,6 @@ written in Go.")
#~(string-append #$output "/bin/ipfs"))
"commands" "completion" "bash")))))))))
(inputs (list go-github-com-alecthomas-units
- go-github-com-benbjohnson-clock
go-github-com-blang-semver-v4
go-github-com-cespare-xxhash
go-github-com-cheekybits-genny
@@ -317,11 +353,14 @@ written in Go.")
go-github-com-francoispqt-gojay
go-github-com-fsnotify-fsnotify
go-github-com-gogo-protobuf
- go-github-com-golang-groupcache-lru
+ go-github-com-golang-groupcache
go-github-com-golang-snappy
go-github-com-google-uuid
go-github-com-gorilla-mux
go-github-com-gorilla-websocket
+ go-github-com-hashicorp-go-multierror
+ go-github-com-hashicorp-golang-lru
+ go-github-com-hashicorp-golang-lru-v2
go-github-com-jackpal-go-nat-pmp
go-github-com-klauspost-compress
go-github-com-klauspost-cpuid
@@ -334,7 +373,9 @@ written in Go.")
go-github-com-minio-sha256-simd
go-github-com-mitchellh-go-homedir
go-github-com-mr-tron-base58
+ go-github-com-multiformats-go-multihash-0.2.3
go-github-com-opentracing-opentracing-go
+ go-github-com-pbnjay-memory
go-github-com-pkg-errors
go-github-com-pmezard-go-difflib
go-github-com-prometheus-client-golang
@@ -344,7 +385,9 @@ written in Go.")
go-github-com-spaolacci-murmur3
go-github-com-stretchr-testify
go-github-com-syndtr-goleveldb
- go-go-uber-org-atomic
+ go-github-com-whyrusleeping-go-sysinfo
+ go-go-uber-org-dig
+ go-go-uber-org-fx
go-go-uber-org-multierr
go-go-uber-org-zap
go-golang-org-x-crypto
@@ -359,6 +402,7 @@ written in Go.")
go-golang-org-x-text
go-golang-org-x-tools
go-golang-org-x-xerrors
+ go-gopkg-in-square-go-jose-v2
go-gopkg-in-yaml-v2
go-gopkg-in-yaml-v3
go-lukechampine-com-blake3))
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index f487ac9a30..95c0f95e8c 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -3670,7 +3670,16 @@ workspace.")
(version-major+minor version) "/portingAids/"
name "-" version ".tar.xz"))
(sha256
- (base32 "17473him2fjfcw5f88diarqac815wsakfyb9fka82a4qqh9l41mc"))))
+ (base32 "17473him2fjfcw5f88diarqac815wsakfyb9fka82a4qqh9l41mc"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "autotests/kmimetypetest.cpp"
+ ;; Adjust the test for shared-mime-info changes:
+ ;; https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/202
+ ;; https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/255
+ (("empty document") "Empty document")
+ (("Bzip archive") "Bzip2 archive")
+ (("<< \"application/x-bzip") "<< \"application/x-bzip2")))))
(build-system cmake-build-system)
(native-inputs
(list dbus
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
index 4c519b93fd..b9d3502b09 100644
--- a/gnu/packages/kde-internet.scm
+++ b/gnu/packages/kde-internet.scm
@@ -140,6 +140,8 @@ Other notable features include:
(list extra-cmake-modules pkg-config qttools-5))
(inputs
(list karchive
+ kcoreaddons
+ kcrash
ki18n
kio
kwallet
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 1d41d35a56..a1c17d3346 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1474,7 +1474,7 @@ on top of Baloo.")
(mkdir #$output))))
;; TODO: cleanup, check what is no need
(propagated-inputs (list kdeclarative ;; require by sddm breeze theme
-
+ qqc2-desktop-style ; qtquickcontrols2 theme
baloo
breeze-icons ; default mouse icon
breeze
diff --git a/gnu/packages/librewolf.scm b/gnu/packages/librewolf.scm
new file mode 100644
index 0000000000..87b76c661f
--- /dev/null
+++ b/gnu/packages/librewolf.scm
@@ -0,0 +1,621 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013, 2015, 2024 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Nikita <nikita@n0.is>
+;;; Copyright © 2017, 2018 ng0 <gillmann@infotropique.org>
+;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020, 2022 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
+;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2019, 2020 Adrian Malacoda <malacoda@monarch-pass.net>
+;;; Copyright © 2020-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
+;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2023 Tomas Volf <wolf@wolfsden.cz>
+;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+
+(define-module (gnu packages librewolf)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system cargo)
+ #:use-module (guix build-system trivial)
+ #:use-module (guix download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix gexp)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
+ #:use-module ((guix build utils) #:select (alist-replace))
+
+ #:use-module (gnu packages)
+ #:use-module (gnu packages assembly)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages crates-io)
+ #:use-module (gnu packages cups)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages hunspell)
+ #:use-module (gnu packages icu4c)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages jemalloc)
+ #:use-module (gnu packages kerberos)
+ #:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages llvm)
+ #:use-module (gnu packages m4)
+ #:use-module (gnu packages node)
+ #:use-module (gnu packages nss)
+ #:use-module (gnu packages pciutils)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages rust)
+ #:use-module (gnu packages rust-apps)
+ #:use-module (gnu packages speech)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xorg))
+
+;; Define the versions of rust needed to build librewolf, trying to match
+;; upstream. See the file taskcluster/ci/toolchain/rust.yml at
+;; https://searchfox.org under the particular firefox release, like
+;; mozilla-esr102.
+(define rust-librewolf rust) ; 1.60 is the default in Guix, 1.65 is the minimum.
+
+;; Update this id with every update to its release date.
+;; It's used for cache validation and therefore can lead to strange bugs.
+;; ex: date '+%Y%m%d%H%M%S'
+(define %librewolf-build-id "20240326080003")
+
+(define-public librewolf
+ (package
+ (name "librewolf")
+ (version "124.0.1-1")
+ (source
+ (origin
+ (method url-fetch)
+
+ (uri (string-append "https://gitlab.com/api/v4/projects/32320088/"
+ "packages/generic/librewolf-source/"
+ version
+ "/librewolf-"
+ version
+ ".source.tar.gz"))
+ (sha256
+ (base32 "1sks49nywzhvq5mik4ipm3vyyxv49s9hq6bfyk5d9r6f0nlydllf"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:configure-flags #~(let ((clang #$(this-package-native-input "clang")))
+ `("--enable-application=browser"
+
+ ;; Configuration
+ "--without-wasm-sandboxed-libraries"
+ "--with-system-jpeg"
+ "--with-system-zlib"
+ "--with-system-png"
+ "--with-system-webp"
+ "--with-system-icu"
+ "--with-system-libvpx"
+ "--with-system-libevent"
+ "--with-system-ffi"
+ "--enable-system-pixman"
+ "--enable-jemalloc"
+
+ ;; see https://bugs.gnu.org/32833
+ "--with-system-nspr"
+ "--with-system-nss"
+
+ ,(string-append "--with-clang-path=" clang
+ "/bin/clang")
+ ,(string-append "--with-libclang-path=" clang
+ "/lib")
+
+ ;; Distribution
+ "--with-distribution-id=org.guix"
+ "--with-app-name=librewolf"
+ "--with-app-basename=LibreWolf"
+ "--with-branding=browser/branding/librewolf"
+
+ ;; Features
+ "--disable-tests"
+ "--disable-updater"
+ "--enable-pulseaudio"
+ "--disable-crashreporter"
+ "--allow-addon-sideload"
+ "--with-unsigned-addon-scopes=app,system"
+ "--disable-eme"
+
+ ;; Build details
+ "--disable-debug"
+ "--enable-rust-simd"
+ "--enable-release"
+ "--enable-optimize"
+ "--enable-strip"
+ "--enable-hardening"
+ "--disable-elf-hack"))
+ #:imported-modules %cargo-utils-modules
+ #:modules `((ice-9 regex)
+ (ice-9 string-fun)
+ (ice-9 ftw)
+ (srfi srfi-1)
+ (srfi srfi-26)
+ (rnrs bytevectors)
+ (rnrs io ports)
+ (guix elf)
+ (guix build gremlin)
+ ,@%gnu-build-system-modules)
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-preferences
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((port (open-file "browser/app/profile/firefox.js"
+ "a")))
+ (define (write-setting key value)
+ (format port "~%pref(\"~a\", ~a);~%" key value)
+ (format #t
+ "fix-preferences: setting value of ~a to ~a~%" key
+ value))
+
+ ;; We should allow the sandbox to read the store directory,
+ ;; because the sandbox has access to /usr on FHS distros.
+ (write-setting
+ "security.sandbox.content.read_path_whitelist"
+ (string-append "\""
+ (%store-directory) "/\""))
+
+ ;; XDG settings should be managed by Guix.
+ (write-setting "browser.shell.checkDefaultBrowser"
+ "false")
+ (close-port port))))
+ (add-after 'fix-preferences 'fix-ffmpeg-runtime-linker
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((ffmpeg (assoc-ref inputs "ffmpeg"))
+ (libavcodec (string-append ffmpeg
+ "/lib/libavcodec.so")))
+ ;; Arrange to load libavcodec.so by its absolute file name.
+ (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp"
+ (("libavcodec\\.so")
+ libavcodec)))))
+ (add-after 'patch-source-shebangs 'patch-cargo-checksums
+ (lambda _
+ (use-modules (guix build cargo-utils))
+ (let ((null-hash
+ ;; This is the SHA256 output of an empty string.
+ (string-append
+ "e3b0c44298fc1c149afbf4c8996fb924"
+ "27ae41e4649b934ca495991b7852b855")))
+ (for-each (lambda (file)
+ (format #t
+ "patch-cargo-checksums: patching checksums in ~a~%"
+ file)
+ (substitute* file
+ (("(checksum = )\".*\"" all name)
+ (string-append name "\"" null-hash
+ "\""))))
+ (find-files "." "Cargo\\.lock$"))
+ (for-each generate-all-checksums
+ '("build" "dom/media"
+ "dom/webauthn"
+ "gfx"
+ "intl"
+ "js"
+ "media"
+ "modules"
+ "mozglue/static/rust"
+ "netwerk"
+ "remote"
+ "security/manager/ssl"
+ "servo"
+ "storage"
+ "third_party/rust"
+ "toolkit"
+ "xpcom/rust"
+ "services")))))
+ (add-after 'patch-cargo-checksums 'remove-cargo-frozen-flag
+ (lambda _
+ ;; Remove --frozen flag from cargo invokation, otherwise it'll
+ ;; complain that it's not able to change Cargo.lock.
+ ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
+ (substitute* "build/RunCbindgen.py"
+ (("args.append\\(\"--frozen\"\\)") "pass"))))
+ (delete 'bootstrap)
+ (add-before 'configure 'patch-SpeechDispatcherService.cpp
+ (lambda _
+ (let* ((lib "libspeechd.so.2")
+ (file (string-append
+ "dom/media/webspeech/synth/"
+ "speechd/SpeechDispatcherService.cpp"))
+ (old-content (call-with-input-file file
+ get-string-all)))
+ (substitute
+ file
+ `((,(format #f "~s" lib) unquote
+ (lambda (line _)
+ (string-replace-substring
+ line lib
+ (string-append #$speech-dispatcher
+ "/lib/" lib))))))
+ (if (string=? old-content
+ (call-with-input-file file
+ get-string-all))
+ (error
+ "substitute did nothing, phase requires an update")))))
+ (add-before 'configure 'set-build-id
+ ;; Build will write the timestamp to output, which is harmful
+ ;; for reproducibility, so change it to a fixed date. Use a
+ ;; separate phase for easier modification with inherit.
+ (lambda _
+ (setenv "MOZ_BUILD_DATE"
+ #$%librewolf-build-id)))
+ (replace 'configure
+ (lambda* (#:key inputs outputs configure-flags
+ #:allow-other-keys)
+ (setenv "AUTOCONF"
+ (string-append (assoc-ref inputs "autoconf")
+ "/bin/autoconf"))
+ (setenv "SHELL"
+ (which "bash"))
+ (setenv "CONFIG_SHELL"
+ (which "bash"))
+ (setenv "MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE"
+ "system")
+ ;; This should use the host info probably (does it
+ ;; build on non-x86_64 though?)
+ (setenv "GUIX_PYTHONPATH"
+ (string-append (getcwd)
+ "/obj-x86_64-pc-linux-gnu/_virtualenvs/build"))
+
+ ;; Use Clang, Clang is 2x faster than GCC
+ (setenv "AR" "llvm-ar")
+ (setenv "NM" "llvm-nm")
+ (setenv "CC" "clang")
+ (setenv "CXX" "clang++")
+ (setenv "MOZ_NOSPAM" "1")
+ (setenv "MOZ_APP_NAME" "librewolf")
+
+ (setenv "MOZBUILD_STATE_PATH"
+ (getcwd))
+
+ (let* ((mozconfig (string-append (getcwd) "/mozconfig"))
+ (out (assoc-ref outputs "out"))
+ (flags (cons (string-append "--prefix=" out)
+ configure-flags)))
+ (format #t "build directory: ~s~%"
+ (getcwd))
+ (format #t "configure flags: ~s~%" flags)
+
+ (define write-flags
+ (lambda flags
+ (display (string-join (map (cut string-append
+ "ac_add_options " <>)
+ flags) "\n"))
+ (display "\n")))
+ (with-output-to-file mozconfig
+ (lambda ()
+ (apply write-flags flags)
+ ;; The following option unsets Telemetry
+ ;; Reporting. With the Addons Fiasco,
+ ;; Mozilla was found to be collecting
+ ;; user's data, including saved passwords
+ ;; and web form data, without users
+ ;; consent. Mozilla was also found
+ ;; shipping updates to systems without
+ ;; the user's knowledge or permission.
+ ;; As a result of this, use the following
+ ;; command to permanently disable
+ ;; telemetry reporting.
+ (display "unset MOZ_TELEMETRY_REPORTING\n")
+ (display "mk_add_options MOZ_CRASHREPORTER=0\n")
+ (display "mk_add_options MOZ_DATA_REPORTING=0\n")
+ (display
+ "mk_add_options MOZ_SERVICES_HEALTHREPORT=0")
+ (display
+ "mk_add_options MOZ_TELEMETRY_REPORTING=0")))
+ (setenv "MOZCONFIG" mozconfig))
+ (invoke "./mach" "configure")))
+ (add-before 'build 'fix-addons-placeholder
+ (lambda _
+ (substitute* "toolkit/locales/en-US/toolkit/about/aboutAddons.ftl"
+ (("addons.mozilla.org")
+ "gnuzilla.gnu.org"))))
+ (replace 'build
+ (lambda* (#:key (make-flags '())
+ (parallel-build? #t) #:allow-other-keys)
+ (apply invoke "./mach" "build"
+ ;; mach will use parallel build if possible by default
+ `(,@(if parallel-build?
+ '()
+ '("-j1")) ,@make-flags))))
+ (add-after 'build 'neutralise-store-references
+ (lambda _
+ ;; Mangle the store references to compilers &
+ ;; other build tools in about:buildconfig,
+ ;; reducing the package's closure by 1 GiB on
+ ;; x86-64.
+ (let* ((build-dir (car (scandir "."
+ (cut string-prefix?
+ "obj-" <>))))
+ (file (string-append build-dir
+ "/dist/bin/chrome/toolkit/"
+ "content/global/buildconfig.html")))
+ (substitute* file
+ (((format #f "(~a/)([0-9a-df-np-sv-z]{32})"
+ (regexp-quote (%store-directory)))
+ _ store hash)
+ (string-append store
+ (string-take hash 8)
+ "<!-- Guix: not a runtime dependency -->"
+ (string-drop hash 8)))))))
+ (replace 'install
+ (lambda _
+ (invoke "./mach" "install")))
+ (add-after 'install 'remove-duplicate-bin
+ (lambda* (#:key outputs #:allow-other-keys)
+ (delete-file (string-append #$output
+ "/lib/librewolf/librewolf-bin"))))
+ (add-after 'install 'wrap-glxtest
+ ;; glxtest uses dlopen() to load mesa and pci
+ ;; libs, wrap it to set LD_LIBRARY_PATH.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (libs (map
+ (lambda (lib-name)
+ (string-append (assoc-ref inputs
+ lib-name)
+ "/lib"))
+ '("mesa" "pciutils"))))
+ (wrap-program (car (find-files lib "^glxtest$"))
+ `("LD_LIBRARY_PATH" prefix ,libs)))))
+ (add-after 'install 'patch-config
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((lib (string-append #$output "/lib/librewolf"))
+ (config-file "librewolf.cfg"))
+
+ ;; Required for Guix packaged extensions
+ ;; SCOPE_PROFILE=1, SCOPE_APPLICATION=4, SCOPE_SYSTEM=8
+ ;; Default is 5.
+ (substitute* (in-vicinity lib config-file)
+ (("defaultPref\\(\"extensions.enabledScopes\", 5\\)")
+ "defaultPref(\"extensions.enabledScopes\", 13)"))
+ ;; Use Mozzarella addons repo.
+ (call-with-port
+ (open-file
+ (in-vicinity lib config-file)
+ "a")
+ (lambda (port)
+ ;; Add-ons panel (see settings.js in Icecat source).
+ (for-each
+ (lambda (pref)
+ (format port
+ "defaultPref(~s, ~s);~%"
+ (car pref)
+ (cdr pref)))
+ `(("extensions.getAddons.search.browseURL"
+ ,(string-append
+ "https://gnuzilla.gnu.org/mozzarella/"
+ "search.php?q=%TERMS%"))
+ ("extensions.getAddons.get.url" .
+ "https://gnuzilla.gnu.org/mozzarella")
+ ("extensions.getAddons.link.url" .
+ "https://gnuzilla.gnu.org/mozzarella")
+ ("extensions.getAddons.discovery.api_url" .
+ "https://gnuzilla.gnu.org/mozzarella")
+ ("extensions.getAddons.langpacks.url" .
+ "https://gnuzilla.gnu.org/mozzarella")
+ ("lightweightThemes.getMoreURL" .
+ "https://gnuzilla.gnu.org/mozzarella"))))))))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; The following two functions are from Guix's icecat package in
+ ;; (gnu packages gnuzilla). See commit
+ ;; b7a0935420ee630a29b7e5ac73a32ba1eb24f00b.
+ (define (runpath-of lib)
+ (call-with-input-file lib
+ (compose elf-dynamic-info-runpath elf-dynamic-info
+ parse-elf get-bytevector-all)))
+ (define (runpaths-of-input label)
+ (let* ((dir (string-append (assoc-ref inputs label)
+ "/lib"))
+ (libs (find-files dir "\\.so$")))
+ (append-map runpath-of libs)))
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (libs (map
+ (lambda (lib-name)
+ (string-append (assoc-ref inputs
+ lib-name)
+ "/lib"))
+ '("mesa" "libpng-apng" "libnotify" "libva"
+ "pulseaudio" "gtk+" "pipewire"
+ ;; For U2F and WebAuthn
+ "eudev")))
+
+ ;; VA-API is run in the RDD (Remote Data Decoder) sandbox
+ ;; and must be explicitly given access to files it needs.
+ ;; Rather than adding the whole store (as Nix had
+ ;; upstream do, see
+ ;; <https://github.com/NixOS/nixpkgs/pull/165964> and
+ ;; linked upstream patches), we can just follow the
+ ;; runpaths of the needed libraries to add everything to
+ ;; LD_LIBRARY_PATH. These will then be accessible in the
+ ;; RDD sandbox.
+ (rdd-whitelist (map (cut string-append <> "/")
+ (delete-duplicates (append-map
+ runpaths-of-input
+ '("mesa"
+ "ffmpeg")))))
+ (gtk-share (string-append (assoc-ref inputs
+ "gtk+")
+ "/share")))
+ (wrap-program (car (find-files lib "^librewolf$"))
+ `("LD_LIBRARY_PATH" prefix
+ (,@libs ,@rdd-whitelist))
+ `("XDG_DATA_DIRS" prefix
+ (,gtk-share))
+ `("MOZ_LEGACY_PROFILES" =
+ ("1"))
+ `("MOZ_ALLOW_DOWNGRADE" =
+ ("1"))))))
+ (add-after 'wrap-program 'install-desktop-entry
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((desktop-file
+ "taskcluster/docker/firefox-snap/firefox.desktop")
+ (applications (string-append #$output
+ "/share/applications")))
+ (substitute* desktop-file
+ (("^Exec=firefox")
+ (string-append "Exec="
+ #$output "/bin/librewolf"))
+ ;; "Firefox" -> "LibreWolf" everywhere
+ (("Firefox")
+ "LibreWolf")
+ ;; Remove non-Latin translations.
+ (("^Name\\[(ar|bn)\\].*$")
+ "")
+ (("^Icon=.*")
+ (string-append "Icon="
+ #$output
+ "/share/icons/hicolor/128x128/apps/librewolf.png
+"))
+ ;; These commands were changed.
+ (("-NewWindow")
+ "-new-window")
+ (("-NewPrivateWindow")
+ "-new-private-window")
+ (("StartupNotify=true")
+ "StartupNotify=true
+StartupWMClass=Navigator"))
+ (copy-file desktop-file "librewolf.desktop")
+ (install-file "librewolf.desktop" applications))))
+ (add-after 'install-desktop-entry 'install-icons
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((icon-source-dir (string-append #$output
+ "/lib/librewolf/browser/"
+ "chrome/icons/default")))
+ (for-each (lambda (size)
+ (let ((dest (string-append #$output
+ "/share/icons/hicolor/"
+ size
+ "x"
+ size
+ "/apps")))
+ (mkdir-p dest)
+ (symlink (string-append icon-source-dir
+ "/default" size ".png")
+ (string-append dest
+ "/librewolf.png"))))
+ '("16" "32" "48" "64" "128"))))))
+
+ ;; Test will significantly increase build time but with little rewards.
+ #:tests? #f
+
+ ;; WARNING: Parallel build will consume lots of memory!
+ ;; If you have encountered OOM issue in build phase, try disable it.
+ #:parallel-build? #t
+
+ ;; Some dynamic lib was determined at runtime, so rpath check may fail.
+ #:validate-runpath? #f))
+ (inputs (list bash-minimal
+ bzip2
+ cairo
+ cups
+ dbus-glib
+ freetype
+ ffmpeg
+ gdk-pixbuf
+ glib
+ gtk+
+ gtk+-2
+ hunspell
+ icu4c-73
+ jemalloc
+ libcanberra
+ libevent
+ libffi
+ libgnome
+ libjpeg-turbo
+ libnotify
+ libpng-apng
+ libva
+ libvpx
+ libwebp
+ libxcomposite
+ libxft
+ libxinerama
+ libxscrnsaver
+ libxt
+ mesa
+ mit-krb5
+ nspr
+ nss-3.98
+ pango
+ pciutils
+ pipewire
+ pixman
+ pulseaudio
+ speech-dispatcher
+ sqlite
+ startup-notification
+ eudev
+ unzip
+ zip
+ zlib))
+ (native-inputs (list alsa-lib
+ autoconf-2.13
+ `(,rust-librewolf "cargo")
+ clang
+ llvm
+ m4
+ nasm
+ node-lts
+ perl
+ pkg-config
+ python
+ rust-librewolf
+ rust-cbindgen-0.26
+ which
+ yasm))
+ (home-page "https://librewolf.net/")
+ (synopsis
+ "Custom version of Firefox, focused on privacy, security and freedom")
+ (description
+ "LibreWolf is designed to increase protection against tracking and
+fingerprinting techniques, while also including a few security improvements.
+This is achieved through our privacy and security oriented settings and
+patches. LibreWolf also aims to remove all the telemetry, data collection and
+annoyances, as well as disabling anti-freedom features like DRM.")
+ (license license:mpl2.0)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index c66fd80d38..7a34baba88 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -502,7 +502,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "mainline" kernel.
-(define-public linux-libre-6.8-version "6.8.4")
+(define-public linux-libre-6.8-version "6.8.5")
(define-public linux-libre-6.8-gnu-revision "gnu")
(define deblob-scripts-6.8
(linux-libre-deblob-scripts
@@ -512,7 +512,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0j9pj370zismhzw18iyx3lwcby3l3160xgpmh5xa8i8cr38r2z5h")))
(define-public linux-libre-6.8-pristine-source
(let ((version linux-libre-6.8-version)
- (hash (base32 "0qwywy89an1w0yvs5957kqyv74mwgxady521w2lmyq00zjaw9pnm")))
+ (hash (base32 "12gsxxiwkildj8i94fkm2v69zb6z6s7hnnlvpsyv8j1pszjj728k")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.8)))
@@ -541,7 +541,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-6.6-version "6.6.25")
+(define-public linux-libre-6.6-version "6.6.26")
(define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6
(linux-libre-deblob-scripts
@@ -551,12 +551,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "17hq5pirvxaq1yscb204950xlakrd4r4mknjqayh1rzj4rzngzyq")))
(define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version)
- (hash (base32 "0i0zvqlj02rm6wpbidji0rn9559vrpfc1b8gbfjk70lhhyz11llr")))
+ (hash (base32 "1nan0h95dkqpb55jr5mxfi8yks09fd518im3vblbi4zvyi4v8m5g")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.6)))
-(define-public linux-libre-6.1-version "6.1.84")
+(define-public linux-libre-6.1-version "6.1.85")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@@ -566,12 +566,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1kp8zl97x1hsmvmdwaq8s8gndfmf8chvlhsw216f86ishi2prws3")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
- (hash (base32 "0ykhl4i6yhryzgjkdbdz4pd3b1ghv84h6mpn7bdx0ra7w7mx55xg")))
+ (hash (base32 "0x32p1c04q5d0yd4qncrmc064m3g1x7cvfia5cd04q3wb769pzik")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
-(define-public linux-libre-5.15-version "5.15.153")
+(define-public linux-libre-5.15-version "5.15.154")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@@ -581,7 +581,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "121shkzgixmywa19xx5f2yxg1primarpg4bxin3jyw0214xbfh2n")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
- (hash (base32 "1g44gjcwcdq5552vwinljqwiy90bxax72jjvdasp71x88khv3pfp")))
+ (hash (base32 "16067mhf173kgs4mvlzix9qscwq5wy8817dyfyjx5g7jkykmxy0p")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
@@ -2093,6 +2093,7 @@ GnuPG-based password manager like @code{pass}.")
perl
python
python-sphinx
+ python-pyyaml
texinfo
which))
(synopsis "Documentation for the kernel Linux-Libre")
diff --git a/gnu/packages/loko.scm b/gnu/packages/loko.scm
index 49dcc92d1e..003fbe416a 100644
--- a/gnu/packages/loko.scm
+++ b/gnu/packages/loko.scm
@@ -74,7 +74,7 @@
#t)))))
(native-inputs
(list akku
- (chez-scheme-for-system)
+ chez-scheme
guile-struct-pack
guile-laesare
guile-pfds
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 03760f3f3e..cc42ce7902 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2018, 2020, 2021 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2016-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2018, 2019, 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
@@ -4458,8 +4458,8 @@ void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
"-DTPL_LAPACK_LIBRARIES=-lopenblas"
(string-append "-DTPL_PARMETIS_LIBRARIES="
(string-join
- '("ptscotchparmetis" "ptscotch" "ptscotcherr"
- "scotchmetis" "scotch" "scotcherr")
+ '("ptscotchparmetisv3" "ptscotcherr"
+ "scotchmetisv3" "scotcherr")
";"))
(string-append "-DTPL_PARMETIS_INCLUDE_DIRS="
(assoc-ref %build-inputs "parmetis")
@@ -4502,7 +4502,14 @@ implemented in ANSI C, and MPI for communications.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0rbc51albpd2923dkirpkj8rfkic6rsvwqqnv1mmsk391zhk3amr"))))
+ (base32 "0rbc51albpd2923dkirpkj8rfkic6rsvwqqnv1mmsk391zhk3amr"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(substitute* "src/libscotchmetis/library_parmetis.h"
+ (("typedef DUMMYINT SCOTCH_Num" all)
+ ;; 'DUMMYINT' is typically replaced by 'int32_t'. Include
+ ;; <stdint.h> to get that type definition.
+ (string-append "#include <stdint.h>\n" all "\n"))))))
(build-system cmake-build-system)
(inputs
(list zlib))
diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm
index 489a3c7a43..ce00df9479 100644
--- a/gnu/packages/netpbm.scm
+++ b/gnu/packages/netpbm.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,7 +33,8 @@
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:select (gpl2))
#:use-module (guix packages)
- #:use-module (guix svn-download))
+ #:use-module (guix svn-download)
+ #:use-module (guix utils))
(define-public netpbm
(package
@@ -158,6 +160,12 @@
(("pnmremap1.test") "")
(("gif-roundtrip.test") "")
+ ;; These two tests fail on powerpc-linux.
+ ,@(if (target-ppc32?)
+ `((("pbmtog3\\.test") "")
+ (("g3-roundtrip\\.test") ""))
+ '())
+
;; These two tests started failing in netpbm-10.78.3.
(("jpeg-roundtrip.test") "")
(("pbmtext.test") "")
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index 54b9e5041a..14612d7ce9 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -241,3 +241,48 @@ PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
security standards.")
(license license:mpl2.0)))
+(define-public nss-3.98
+ (package
+ (inherit nss)
+ (version "3.98")
+ (source (origin
+ (method url-fetch)
+ (uri (let ((version-with-underscores
+ (string-join (string-split version #\.) "_")))
+ (string-append
+ "https://ftp.mozilla.org/pub/mozilla.org/security/nss/"
+ "releases/NSS_" version-with-underscores "_RTM/src/"
+ "nss-" version ".tar.gz")))
+ (sha256
+ (base32
+ "1kh98amfklrq6915n4mlbrcqghc3srm7rkzs9dkh21jwscrwqjgm"))
+ ;; Create nss.pc and nss-config.
+ (patches (search-patches "nss-3.56-pkgconfig.patch"
+ "nss-getcwd-nonnull.patch"
+ "nss-increase-test-timeout.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete the bundled copy of these libraries.
+ (delete-file-recursively "nss/lib/zlib")
+ (delete-file-recursively "nss/lib/sqlite")))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments nss)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (begin
+ ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for
+ ;; testing. The latter requires a working DNS or /etc/hosts.
+ (setenv "DOMSUF" "localdomain")
+ (setenv "USE_IP" "TRUE")
+ (setenv "IP_ADDRESS" "127.0.0.1")
+
+ ;; The "PayPalEE.cert" certificate expires every six months,
+ ;; leading to test failures:
+ ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=609734>. To
+ ;; work around that, set the time to roughly the release date.
+ (invoke "faketime" "2024-01-23" "./nss/tests/all.sh"))
+ (format #t "test suite not run~%"))))))))))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 289ee7e8d6..247807c394 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -899,14 +899,14 @@ sub-directory.")
(define-public stow
(package
(name "stow")
- (version "2.3.1")
+ (version "2.4.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/stow/stow-"
version ".tar.gz"))
(sha256
(base32
- "0jrxy12ywn7smdzdnvwzjw77l6knx6jkj2rckgykg1dpf6bdkm89"))))
+ "07bn3n5n8spl2vabgyl8db5dyp690qn3x92ij4ynvayyck7ngvbg"))))
(build-system gnu-build-system)
(inputs
(list perl))
diff --git a/gnu/packages/patches/chez-scheme-backport-configure.patch b/gnu/packages/patches/chez-scheme-backport-configure.patch
new file mode 100644
index 0000000000..584dcb3f0b
--- /dev/null
+++ b/gnu/packages/patches/chez-scheme-backport-configure.patch
@@ -0,0 +1,463 @@
+From 24ab36374f2e366b6c939fffe8c129c8b0ae3b9c Mon Sep 17 00:00:00 2001
+From: Philip McGrath <philip@philipmcgrath.com>
+Date: Wed, 28 Feb 2024 19:41:22 -0500
+Subject: [PATCH 1/2] Repairs and improvements for building with external
+ dependencies (#807)
+
+* configure: fix zlib and lz4 submodule checks
+
+Conditionals to skip the submodule checks were using the wrong
+variable names, so the checks were always skipped. The correct
+behavior is to perform the check unless given `ZLIB=<zlib>` or
+`LZ4=<lz4>`, as applicable.
+
+* configure: support `ZUO=<zuo>`
+
+Supplying `ZUO=<zuo>` skips the submodule check in `configure`
+and configures the generated makefile not to build or remove Zuo.
+
+* configure: support `STEXLIB=<stex>`
+
+For compatibility with older scripts, when not explicitly configured,
+continue to honor the `STEXLIB` environment variable at build time.
+
+(cherry picked from commit b8838c3280ef10e115236d2f7ac9ae857f83e268)
+---
+ BUILDING | 5 +++--
+ build.zuo | 13 +++++++++----
+ configure | 40 +++++++++++++++++++++++++++++++++-------
+ makefiles/Makefile.in | 6 ++----
+ 4 files changed, 47 insertions(+), 17 deletions(-)
+
+diff --git a/BUILDING b/BUILDING
+index 7b3dc9c8..9e9a268b 100644
+--- a/BUILDING
++++ b/BUILDING
+@@ -149,7 +149,8 @@ information on the supported options.
+ The generated makefile mostly just ensures that a `zuo` executable is
+ built in a `bin` directory, and then it defers the actual build work
+ to `zuo`, which uses the "main.zuo" file. If you have `zuo` installed,
+-you can use `zuo` directly instead of `make`. In general, instead of
++you can use `zuo` directly instead of `make`: in that case, you may
++wish to use `./configure ZUO=<zuo>`. In general, instead of
+ the command `make X` to build target `X` as described below, you can
+ use `zuo . X` (or `bin/zuo . X` after `bin/zuo` is built).
+
+@@ -333,7 +334,7 @@ The makefile supports several targets:
+ * `make clean`
+
+ Removes all built elements from the workarea, and then removes
+- `bin/zuo`.
++ `bin/zuo` (unless configured with `ZUO=<zuo>`).
+
+
+ WINDOWS VIA COMMAND PROMPT
+diff --git a/build.zuo b/build.zuo
+index c21d2caa..c5896396 100644
+--- a/build.zuo
++++ b/build.zuo
+@@ -224,10 +224,15 @@
+ token))
+
+ (define stexlib
+- (let ((found (assoc "STEXLIB" (hash-ref (runtime-env) 'env))))
+- (if found
+- (cdr found)
+- (at-source "stex"))))
++ (let ([configured (hash-ref config 'STEXLIB "")]
++ [env (assoc "STEXLIB" (hash-ref (runtime-env) 'env))])
++ (cond
++ [(not (equal? "" configured))
++ configured]
++ [env
++ (cdr env)]
++ [else
++ (at-source "stex")])))
+ (define stex-sources
+ (source-tree stexlib))
+
+diff --git a/configure b/configure
+index 2b4b594e..782dd09b 100755
+--- a/configure
++++ b/configure
+@@ -93,6 +93,7 @@ default_warning_flags="-Wpointer-arith -Wall -Wextra -Wno-implicit-fallthrough"
+ CFLAGS_ADD=
+ zlibLib=
+ LZ4Lib=
++STEXLIB=
+ Kernel=KernelLib
+ buildKernelOnly=no
+ enableFrompb=yes
+@@ -103,6 +104,7 @@ moreBootFiles=
+ preloadBootFiles=
+ alwaysUseBootFile=
+ skipSubmoduleUpdate=
++zuoExternal=
+
+ CONFIG_UNAME=`uname`
+
+@@ -446,6 +448,12 @@ while [ $# != 0 ] ; do
+ LZ4=*)
+ LZ4Lib=`echo $1 | sed -e 's/^LZ4=//'`
+ ;;
++ STEXLIB=*)
++ STEXLIB=`echo $1 | sed -e 's/^STEXLIB=//'`
++ ;;
++ ZUO=*)
++ zuoExternal=`echo $1 | sed -e 's/^ZUO=//'`
++ ;;
+ *)
+ echo "option '$1' unrecognized or missing an argument; try $0 --help"
+ exit 1
+@@ -672,6 +680,8 @@ if [ "$help" = "yes" ]; then
+ echo " STRIP=<strip> executable stripper"
+ echo " ZLIB=<lib> link to <lib> instead of own zlib"
+ echo " LZ4=<lib> link to <lib> instead of own LZ4"
++ echo " STEXLIB=<stex> build docs with <stex> instead of own stex"
++ echo " ZUO=<zuo> build with <zuo> instead of own Zuo"
+ echo ""
+ echo "Available machine types: $machs"
+ echo ""
+@@ -889,28 +899,39 @@ submod_instructions () {
+ exit 1
+ }
+
+-if [ ! -f "$srcdir"/zuo/configure ] ; then
+- submod_instructions 'Source in "zuo" is missing'
++if [ "${zuoExternal}" = "" ] ; then
++ if [ ! -f "$srcdir"/zuo/configure ] ; then
++ submod_instructions 'Source in "zuo" is missing'
++ fi
++ ZUO="bin/zuo"
++ RM_ZUO="rm -f bin/zuo"
++ ZUO_TARGET="bin/zuo"
++else
++ ZUO="${zuoExternal}"
++ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'"
++ ZUO_TARGET="DoNotBuildZuo"
+ fi
+
+ if [ ! -f "$srcdir"/nanopass/nanopass.ss ] ; then
+ submod_instructions 'Source in "nanopass" is missing'
+ fi
+
+-if [ "${zlibDep}" != "" ] ; then
++if [ "${zlibLib}" = "" ] ; then
+ if [ ! -f "$srcdir"/zlib/configure ] ; then
+ submod_instructions 'Source in "zlib" is missing'
+ fi
+ fi
+
+-if [ "${LZ4Dep}" != "" ] ; then
++if [ "${LZ4Lib}" = "" ] ; then
+ if [ ! -f "$srcdir"/lz4/lib/Makefile ] ; then
+ submod_instructions 'Source in "lz4" is missing'
+ fi
+ fi
+
+-if [ ! -f "$srcdir"/stex/Mf-stex ] ; then
+- submod_instructions 'Source in "stex" is missing'
++if [ "${STEXLIB}" = "" ] ; then
++ if [ ! -f "$srcdir"/stex/Mf-stex ] ; then
++ submod_instructions 'Source in "stex" is missing'
++ fi
+ fi
+
+ # more compile and link flags for c/Mf-unix and mats/Mf-unix
+@@ -1083,7 +1104,7 @@ cp "$srcdir"/makefiles/buildmain.zuo main.zuo
+ # Some idea, but in the workarea, so it refers to "workarea.zuo" here:
+ cp "$srcdir"/makefiles/workmain.zuo $w/main.zuo
+
+-# The content of "$w/Makefile" records configuration decisions,
++# The content of "$w/Mf-config" records configuration decisions,
+ # and the Zuo build script takes it from there
+ cat > $w/Mf-config << END
+ srcdir=$srcdir
+@@ -1119,6 +1140,7 @@ cursesLib=$cursesLib
+ ncursesLib=$ncursesLib
+ zlibLib=$zlibLib
+ LZ4Lib=$LZ4Lib
++STEXLIB=$STEXLIB
+ warningFlags=$warningFlags
+ Kernel=$Kernel
+ installscriptname=$installscriptname
+@@ -1130,6 +1152,10 @@ preloadBootFiles=$preloadBootFiles
+ alwaysUseBootFile=$alwaysUseBootFile
+ relativeBootFiles=$relativeBootFiles
+
++ZUO=$ZUO
++RM_ZUO=$RM_ZUO
++ZUO_TARGET=$ZUO_TARGET
++
+ InstallBin=$installbin
+ InstallLib=$installlib
+ InstallMan=$installman/man1
+diff --git a/makefiles/Makefile.in b/makefiles/Makefile.in
+index 3b95f065..0e3d307d 100644
+--- a/makefiles/Makefile.in
++++ b/makefiles/Makefile.in
+@@ -3,8 +3,6 @@ workarea=$(w)
+
+ include $(workarea)/Mf-config
+
+-ZUO=bin/zuo
+-
+ .PHONY: build
+ build: $(ZUO)
+ + $(ZUO) $(workarea) MAKE="$(MAKE)"
+@@ -144,9 +142,9 @@ pkg: $(ZUO)
+ .PHONY: clean
+ clean: $(ZUO)
+ + $(ZUO) $(workarea) clean MAKE="$(MAKE)"
+- rm -f bin/zuo
++ $(RM_ZUO)
+
+ # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make`
+-$(ZUO): $(srcdir)/zuo/zuo.c
++$(ZUO_TARGET): $(srcdir)/zuo/zuo.c
+ + mkdir -p bin
+ + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"../zuo/lib"'"' -o $(ZUO) $(srcdir)/zuo/zuo.c
+
+base-commit: 253230f7dfbb4fe777277d6bbf93f39f9567f086
+--
+2.41.0
+
+
+From 665bccc1c074131e790879adc1436f8059801171 Mon Sep 17 00:00:00 2001
+From: Matthew Flatt <mflatt@racket-lang.org>
+Date: Sun, 17 Mar 2024 09:06:30 -0600
+Subject: [PATCH 2/2] adjust `configure ZUO=<command>` support (#816)
+
+Continuing from b8838c3280, adjust the generated makefile so the
+supplied `<command>` is not a makefile dependency. That way, `ZUO=zuo`
+works if `zuo` is installed and the current build directory is not the
+source directory. (The `zuo` executable is a dependency in a real and
+relevant sense, but not in the sense of dependencies that we normally
+track in makefiles.)
+
+Also adapt the makefile for the case that `ZUO=...` is not supplied
+and the build directory is not the source directory, in which case
+`ZUO_LIB_PATH` needs to be relative to the source directory.
+
+Using `make ZUO=zuo` can also work, but in that case, `bin/zuo` is
+still built as a dependency. It's possible that some portable makefile
+magic could overcome that limitation, but it doesn't seem important.
+
+(cherry picked from commit d327968f37cdf669d15a9ad6d356bbf92c502bb9)
+---
+ configure | 3 ++
+ makefiles/Makefile.in | 66 +++++++++++++++++++++----------------------
+ 2 files changed, 36 insertions(+), 33 deletions(-)
+
+diff --git a/configure b/configure
+index 782dd09b..9adae37a 100755
+--- a/configure
++++ b/configure
+@@ -904,10 +904,12 @@ if [ "${zuoExternal}" = "" ] ; then
+ submod_instructions 'Source in "zuo" is missing'
+ fi
+ ZUO="bin/zuo"
++ ZUO_DEP="${ZUO}"
+ RM_ZUO="rm -f bin/zuo"
+ ZUO_TARGET="bin/zuo"
+ else
+ ZUO="${zuoExternal}"
++ ZUO_DEP=""
+ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'"
+ ZUO_TARGET="DoNotBuildZuo"
+ fi
+@@ -1153,6 +1155,7 @@ alwaysUseBootFile=$alwaysUseBootFile
+ relativeBootFiles=$relativeBootFiles
+
+ ZUO=$ZUO
++ZUO_DEP=$ZUO_DEP
+ RM_ZUO=$RM_ZUO
+ ZUO_TARGET=$ZUO_TARGET
+
+diff --git a/makefiles/Makefile.in b/makefiles/Makefile.in
+index 0e3d307d..fc8605a0 100644
+--- a/makefiles/Makefile.in
++++ b/makefiles/Makefile.in
+@@ -4,55 +4,55 @@ workarea=$(w)
+ include $(workarea)/Mf-config
+
+ .PHONY: build
+-build: $(ZUO)
++build: $(ZUO_DEP)
+ + $(ZUO) $(workarea) MAKE="$(MAKE)"
+
+ .PHONY: run
+-run: $(ZUO)
++run: $(ZUO_DEP)
+ + $(ZUO) $(workarea) run
+
+ .PHONY: kernel
+-kernel: $(ZUO)
++kernel: $(ZUO_DEP)
+ + $(ZUO) $(workarea) kernel MAKE="$(MAKE)"
+
+ .PHONY: install
+-install: $(ZUO)
++install: $(ZUO_DEP)
+ $(ZUO) $(workarea) install MAKE="$(MAKE)"
+
+ .PHONY: uninstall
+-uninstall: $(ZUO)
++uninstall: $(ZUO_DEP)
+ + $(ZUO) $(workarea) uninstall MAKE="$(MAKE)"
+
+ .PHONY: test-one
+-test-one: $(ZUO)
++test-one: $(ZUO_DEP)
+ + $(ZUO) $(workarea) test-one MAKE="$(MAKE)"
+
+ .PHONY: test-some-fast
+-test-some-fast: $(ZUO)
++test-some-fast: $(ZUO_DEP)
+ + $(ZUO) $(workarea) test-some-fast MAKE="$(MAKE)"
+
+ .PHONY: test-some
+-test-some: $(ZUO)
++test-some: $(ZUO_DEP)
+ + $(ZUO) $(workarea) test-some MAKE="$(MAKE)"
+
+ .PHONY: test
+-test: $(ZUO)
++test: $(ZUO_DEP)
+ + $(ZUO) $(workarea) test MAKE="$(MAKE)"
+
+ .PHONY: test-more
+-test-more: $(ZUO)
++test-more: $(ZUO_DEP)
+ + $(ZUO) $(workarea) test-more MAKE="$(MAKE)"
+
+ .PHONY: coverage
+-coverage: $(ZUO)
++coverage: $(ZUO_DEP)
+ + $(ZUO) $(workarea) coverage MAKE="$(MAKE)"
+
+ .PHONY: bootfiles
+-bootfiles: $(ZUO)
++bootfiles: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootfiles MAKE="$(MAKE)"
+
+ .PHONY: reset
+-reset: $(ZUO)
++reset: $(ZUO_DEP)
+ + $(ZUO) $(workarea) reset MAKE="$(MAKE)"
+
+ # Supply XM=<machine> to build boot files for <machine>
+@@ -61,90 +61,90 @@ boot:
+ + $(ZUO) $(workarea) boot "$(XM)" MAKE="$(MAKE)"
+
+ # `<machine>.boot` as alias for `boot XM=<machine>`
+-%.boot: $(ZUO)
++%.boot: $(ZUO_DEP)
+ + $(ZUO) $(workarea) boot $* MAKE="$(MAKE)"
+
+ .PHONY: auto.boot
+-auto.boot: $(ZUO)
++auto.boot: $(ZUO_DEP)
+ + $(ZUO) $(workarea) boot MAKE="$(MAKE)"
+
+ SCHEME=scheme
+
+ .PHONY: cross.boot
+-cross.boot: $(ZUO)
++cross.boot: $(ZUO_DEP)
+ + $(ZUO) $(workarea) boot SCHEME="$(SCHEME)" MAKE="$(MAKE)"
+
+ .PHONY: re.boot
+-re.boot: $(ZUO)
++re.boot: $(ZUO_DEP)
+ + $(ZUO) $(workarea) reboot SCHEME="$(SCHEME)"
+
+ # Supply XM=<machine> to build boot files for <machine>
+ # with o=3 d=0 for the cross compiler, and only after
+ # building the kernel for the configured machine
+ .PHONY: bootquick
+-bootquick: $(ZUO)
++bootquick: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootquick "$(XM)" MAKE="$(MAKE)"
+
+ # `<machine>.bootquick` as alias for `boot XM=<machine>`
+-%.bootquick: $(ZUO)
++%.bootquick: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootquick $* MAKE="$(MAKE)"
+
+-auto.bootquick: $(ZUO)
++auto.bootquick: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootquick MAKE="$(MAKE)"
+
+ # Supply XM=<machine>-<tag>.bootpbchunk to repackage boot files for
+ # <machine> with pbchunk sources, including additional
+ # boot files
+ .PHONY: bootpbchunk
+-bootpbchunk: $(ZUO)
++bootpbchunk: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootpbchunk "$(XM)" $(ARGS) MAKE="$(MAKE)"
+
+ # `<machine>.bootpbchunk` as alias for `pbchunk XM=<machine>`
+-%.bootpbchunk: $(ZUO)
++%.bootpbchunk: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootpbchunk $* $(ARGS) MAKE="$(MAKE)"
+
+ .PHONY: docs
+-docs: build $(ZUO)
++docs: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) docs MAKE="$(MAKE)"
+
+ .PHONY: csug
+-csug: build $(ZUO)
++csug: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) csug MAKE="$(MAKE)"
+
+ .PHONY: release_notes
+-release_notes: build $(ZUO)
++release_notes: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) release_notes MAKE="$(MAKE)"
+
+ .PHONY: install-docs
+-install-docs: build $(ZUO)
++install-docs: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) install-docs MAKE="$(MAKE)"
+
+ .PHONY: install-csug
+-install-csug: build $(ZUO)
++install-csug: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) install-csug MAKE="$(MAKE)"
+
+ .PHONY: install-release_notes
+-install-release_notes: build $(ZUO)
++install-release_notes: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) install-release_notes MAKE="$(MAKE)"
+
+ .PHONY: bintar
+-bintar: $(ZUO)
++bintar: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bintar MAKE="$(MAKE)"
+
+ .PHONY: rpm
+-rpm: $(ZUO)
++rpm: $(ZUO_DEP)
+ + $(ZUO) $(workarea) rpm MAKE="$(MAKE)"
+
+ .PHONY: pkg
+-pkg: $(ZUO)
++pkg: $(ZUO_DEP)
+ + $(ZUO) $(workarea) pkg MAKE="$(MAKE)"
+
+ .PHONY: clean
+-clean: $(ZUO)
++clean: $(ZUO_DEP)
+ + $(ZUO) $(workarea) clean MAKE="$(MAKE)"
+ $(RM_ZUO)
+
+ # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make`
+ $(ZUO_TARGET): $(srcdir)/zuo/zuo.c
+ + mkdir -p bin
+- + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"../zuo/lib"'"' -o $(ZUO) $(srcdir)/zuo/zuo.c
++ + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"$(upsrcdir)/zuo/lib"'"' -o $(ZUO) $(srcdir)/zuo/zuo.c
+--
+2.41.0
+
diff --git a/gnu/packages/patches/chez-scheme-bin-sh.patch b/gnu/packages/patches/chez-scheme-bin-sh.patch
index 7650914f01..c2a4b292f7 100644
--- a/gnu/packages/patches/chez-scheme-bin-sh.patch
+++ b/gnu/packages/patches/chez-scheme-bin-sh.patch
@@ -1,6 +1,6 @@
-From 3c838e6a0c3214d95bf02048cddccfd1b69a679f Mon Sep 17 00:00:00 2001
+From b8428ad25b437acf4bd8210b14db207b71fe44c3 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
-Date: Thu, 19 May 2022 13:41:56 -0400
+Date: Wed, 24 Aug 2022 19:55:14 -0400
Subject: [PATCH] patch s_process for "/bin/sh" on Guix
If:
@@ -14,22 +14,27 @@ then `s_process` will call `execl` with the file specified by
`_PATH_BSHELL` instead of "/bin/sh".
Checking that the path specified by `_PATH_BSHELL` exists safeguards
-against obscure errors if attempting to use stand-alone executables
-built by the patched Racket in non-Guix envoronments.
+against obscure errors if attempting to use the patched Chez Scheme
+or executables it builds in non-Guix envoronments.
This patch does not change the behavior of `s_system`, which relies
on `system` from the C library.
---
+
+Notes:
+ See also racket-chez-scheme-bin-sh.patch, racket-rktio-bin-sh.patch,
+ and zuo-bin-sh.patch.
+
c/prim5.c | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/c/prim5.c b/c/prim5.c
-index 5a07893..bc2736c 100644
+index 90b087f1..284f063f 100644
--- a/c/prim5.c
+++ b/c/prim5.c
-@@ -23,6 +23,12 @@
- #include <ctype.h>
- #include <math.h>
+@@ -27,6 +27,12 @@
+ #include <sys/resource.h>
+ #endif
+/* BEGIN PATCH for Guix */
+#ifndef WIN32
@@ -39,8 +44,8 @@ index 5a07893..bc2736c 100644
+
/* locally defined functions */
static INT s_errno(void);
- static iptr s_addr_in_heap(uptr x);
-@@ -746,6 +752,17 @@ static ptr s_process(char *s, IBOOL stderrp) {
+ static IBOOL s_addr_in_heap(uptr x);
+@@ -875,6 +881,17 @@ static ptr s_process(char *s, IBOOL stderrp) {
INT tofds[2], fromfds[2], errfds[2];
struct sigaction act, oint_act;
@@ -58,10 +63,10 @@ index 5a07893..bc2736c 100644
if (pipe(tofds)) S_error("process","cannot open pipes");
if (pipe(fromfds)) {
-@@ -771,7 +788,9 @@ static ptr s_process(char *s, IBOOL stderrp) {
- CLOSE(1); if (dup(fromfds[1]) != 1) _exit(1);
- CLOSE(2); if (dup(stderrp ? errfds[1] : 1) != 2) _exit(1);
- {INT i; for (i = 3; i < NOFILE; i++) (void)CLOSE(i);}
+@@ -911,7 +928,9 @@ static ptr s_process(char *s, IBOOL stderrp) {
+ }
+ }
+ #endif /* __GNU__ Hurd */
- execl("/bin/sh", "/bin/sh", "-c", s, NULL);
+ /* BEGIN PATCH for Guix */
+ execl(guix_sh, guix_sh, "-c", s, NULL);
@@ -70,7 +75,7 @@ index 5a07893..bc2736c 100644
/*NOTREACHED*/
} else {
-base-commit: 9df56e7b25bc523663eac3da24be33afc5f76c84
+base-commit: 253230f7dfbb4fe777277d6bbf93f39f9567f086
--
-2.32.0
+2.41.0
diff --git a/gnu/packages/patches/durden-shadow-arcan.patch b/gnu/packages/patches/durden-shadow-arcan.patch
new file mode 100644
index 0000000000..b666a6d7e3
--- /dev/null
+++ b/gnu/packages/patches/durden-shadow-arcan.patch
@@ -0,0 +1,42 @@
+From 157524b7cb76c5044a27f4a9e373ee04a9da3c71 Mon Sep 17 00:00:00 2001
+From: Ahmad Draidi <a.r.draidi@redscript.org>
+Date: Tue, 9 Apr 2024 18:26:52 +0400
+Subject: [PATCH] Use arcan from setuid-programs if available
+
+---
+ distr/durden | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/distr/durden b/distr/durden
+index ab431ce..8672556 100755
+--- a/distr/durden
++++ b/distr/durden
+@@ -1,5 +1,11 @@
+ #!/bin/sh
+
++if [ -n "$(command -v /run/setuid-programs/arcan 2>/dev/null)" ]; then
++ ARCAN_CMD="/run/setuid-programs/arcan"
++else
++ ARCAN_CMD="@ARCAN_STORE_PATH@"
++fi
++
+ arcan_base=${HOME}/.arcan
+ applname="$(basename $0)"
+ distargs=""
+@@ -98,11 +104,11 @@ while true; do
+ starttime=$(date +%s)
+
+ if [ -d "${arcan_logpath}" ]; then
+- if arcan ${distargs} -b "$applname" "$applname" "$@" >"${arcan_logpath}/${applname}_${starttime}.log" 2>&1; then
++ if "${ARCAN_CMD}" ${distargs} -b "$applname" "$applname" "$@" >"${arcan_logpath}/${applname}_${starttime}.log" 2>&1; then
+ exit
+ fi
+ else
+- if arcan ${distargs} -b "$applname" "$applname" "$@"; then
++ if "${ARCAN_CMD}" ${distargs} -b "$applname" "$applname" "$@"; then
+ exit
+ fi
+ fi
+--
+2.41.0
+
diff --git a/gnu/packages/patches/gcc-13-cross-system-header-dir.patch b/gnu/packages/patches/gcc-13-cross-system-header-dir.patch
new file mode 100644
index 0000000000..75f80ea9d2
--- /dev/null
+++ b/gnu/packages/patches/gcc-13-cross-system-header-dir.patch
@@ -0,0 +1,32 @@
+From 8b001f38cc713190642194b55e02a56346f51494 Mon Sep 17 00:00:00 2001
+From: Jean-Pierre De Jesus DIAZ <jean@foundation.xyz>
+Date: Fri, 12 Apr 2024 12:18:24 +0200
+Subject: [PATCH] Fix CROSS_SYSTEM_HEADER_DIR value for Guix.
+
+* gcc/Makefile.in (CROSS_SYSTEM_HEADER_DIR): Always use default value.
+---
+ gcc/Makefile.in | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 775aaa1b3c4..06d192fa9ed 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -532,11 +532,7 @@ LINKER_PLUGIN_API_H = $(srcdir)/../include/plugin-api.h
+ # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
+ NATIVE_SYSTEM_HEADER_DIR = @NATIVE_SYSTEM_HEADER_DIR@
+ # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
+-ifeq (@includedir@,$(prefix)/include)
+- CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
+-else
+- CROSS_SYSTEM_HEADER_DIR = @includedir@
+-endif
++CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
+
+ # autoconf sets SYSTEM_HEADER_DIR to one of the above.
+ # Purge it of unnecessary internal relative paths
+
+base-commit: c891d8dc23e1a46ad9f3e757d09e57b500d40044
+--
+2.41.0
+
diff --git a/gnu/packages/patches/racket-backport-8.11-layered-docs.patch b/gnu/packages/patches/racket-backport-8.11-layered-docs.patch
deleted file mode 100644
index 07f105bb24..0000000000
--- a/gnu/packages/patches/racket-backport-8.11-layered-docs.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 1d8dbdf408db9e99f1382323477561d5148cd451 Mon Sep 17 00:00:00 2001
-From: Philip McGrath <philip@philipmcgrath.com>
-Date: Fri, 20 Oct 2023 17:19:50 -0400
-Subject: [PATCH] racket-index: fix release.scrbl for layered installations
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Configure the release notes page to be rendered separately at every
-installation layer. Otherwise, rendering documentation for packages
-installed in a new layer might try to write to `release/in.sxref`
-in the parent layer’s docs directory.
-
-Related to https://github.com/videolang/video/issues/67
-Related to https://issues.guix.gnu.org/56534
-
-(cherry picked from commit 85f21854c0a41564b755fbe180fe6b85de6c4730)
----
- pkgs/racket-index/scribblings/main/info.rkt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pkgs/racket-index/scribblings/main/info.rkt b/pkgs/racket-index/scribblings/main/info.rkt
-index 75c507848a..a6a3798f7c 100644
---- a/pkgs/racket-index/scribblings/main/info.rkt
-+++ b/pkgs/racket-index/scribblings/main/info.rkt
-@@ -6,4 +6,4 @@
- ("local-redirect.scrbl" (depends-all-main no-depend-on every-main-layer) (omit) "local-redirect" 1 10)
- ("license.scrbl" () (omit))
- ("acks.scrbl" () (omit))
-- ("release.scrbl" (depends-all-main no-depend-on) (omit))))
-+ ("release.scrbl" (depends-all-main no-depend-on every-main-layer) (omit))))
-
-base-commit: c3a502c0ae9f4d615bfd85fc7d88b781826bbb09
---
-2.41.0
-
diff --git a/gnu/packages/patches/racket-backport-8.12-chez-configure.patch b/gnu/packages/patches/racket-backport-8.12-chez-configure.patch
new file mode 100644
index 0000000000..483948fec9
--- /dev/null
+++ b/gnu/packages/patches/racket-backport-8.12-chez-configure.patch
@@ -0,0 +1,423 @@
+From 82157f5b3fb9f71ad7fc978c428d423d06a4a0df Mon Sep 17 00:00:00 2001
+From: Philip McGrath <philip@philipmcgrath.com>
+Date: Wed, 28 Feb 2024 19:41:22 -0500
+Subject: [PATCH 1/2] Chez Scheme: Repairs and improvements for building with
+ external dependencies
+
+* configure: support `ZUO=<zuo>`
+
+Supplying `ZUO=<zuo>` skips the submodule check in `configure`
+and configures the generated makefile not to build or remove Zuo.
+
+* configure: support `STEXLIB=<stex>`
+
+For compatibility with older scripts, when not explicitly configured,
+continue to honor the `STEXLIB` environment variable at build time.
+
+(cherry picked from commit 694fbd47a125c7fde10a328c6fda199dac19f802)
+---
+ racket/src/ChezScheme/BUILDING | 5 ++--
+ racket/src/ChezScheme/build.zuo | 13 +++++++---
+ racket/src/ChezScheme/configure | 27 ++++++++++++++++++++-
+ racket/src/ChezScheme/makefiles/Makefile.in | 6 ++---
+ 4 files changed, 40 insertions(+), 11 deletions(-)
+
+diff --git a/racket/src/ChezScheme/BUILDING b/racket/src/ChezScheme/BUILDING
+index 50fde27771..2df29b5bd8 100644
+--- a/racket/src/ChezScheme/BUILDING
++++ b/racket/src/ChezScheme/BUILDING
+@@ -155,7 +155,8 @@ information on the supported options.
+ The generated makefile mostly just ensures that a `zuo` executable is
+ built in a `bin` directory, and then it defers the actual build work
+ to `zuo`, which uses the "main.zuo" file. If you have `zuo` installed,
+-you can use `zuo` directly instead of `make`. In general, instead of
++you can use `zuo` directly instead of `make`: in that case, you may
++wish to use `./configure ZUO=<zuo>`. In general, instead of
+ the command `make X` to build target `X` as described below, you can
+ use `zuo . X` (or `bin/zuo . X` after `bin/zuo` is built).
+
+@@ -339,7 +340,7 @@ The makefile supports several targets:
+ * `make clean`
+
+ Removes all built elements from the workarea, and then removes
+- `bin/zuo`.
++ `bin/zuo` (unless configured with `ZUO=<zuo>`).
+
+
+ WINDOWS VIA COMMAND PROMPT
+diff --git a/racket/src/ChezScheme/build.zuo b/racket/src/ChezScheme/build.zuo
+index a211632a89..432cc6e5a1 100644
+--- a/racket/src/ChezScheme/build.zuo
++++ b/racket/src/ChezScheme/build.zuo
+@@ -218,10 +218,15 @@
+ token))
+
+ (define stexlib
+- (let ((found (assoc "STEXLIB" (hash-ref (runtime-env) 'env))))
+- (if found
+- (cdr found)
+- (at-source "stex"))))
++ (let ([configured (hash-ref config 'STEXLIB "")]
++ [env (assoc "STEXLIB" (hash-ref (runtime-env) 'env))])
++ (cond
++ [(not (equal? "" configured))
++ configured]
++ [env
++ (cdr env)]
++ [else
++ (at-source "stex")])))
+ (define stex-sources
+ (source-tree stexlib))
+
+diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure
+index 721d1d1335..f88c6f7625 100755
+--- a/racket/src/ChezScheme/configure
++++ b/racket/src/ChezScheme/configure
+@@ -93,6 +93,7 @@ default_warning_flags="-Wpointer-arith -Wall -Wextra -Wno-implicit-fallthrough"
+ CFLAGS_ADD=
+ zlibLib=
+ LZ4Lib=
++STEXLIB=
+ Kernel=KernelLib
+ buildKernelOnly=no
+ enableFrompb=yes
+@@ -102,6 +103,7 @@ empetite=no
+ moreBootFiles=
+ preloadBootFiles=
+ alwaysUseBootFile=
++zuoExternal=
+
+ CONFIG_UNAME=`uname`
+
+@@ -442,6 +444,12 @@ while [ $# != 0 ] ; do
+ LZ4=*)
+ LZ4Lib=`echo $1 | sed -e 's/^LZ4=//'`
+ ;;
++ STEXLIB=*)
++ STEXLIB=`echo $1 | sed -e 's/^STEXLIB=//'`
++ ;;
++ ZUO=*)
++ zuoExternal=`echo $1 | sed -e 's/^ZUO=//'`
++ ;;
+ *)
+ echo "option '$1' unrecognized or missing an argument; try $0 --help"
+ exit 1
+@@ -667,6 +675,8 @@ if [ "$help" = "yes" ]; then
+ echo " STRIP=<strip> executable stripper"
+ echo " ZLIB=<lib> link to <lib> instead of own zlib"
+ echo " LZ4=<lib> link to <lib> instead of own LZ4"
++ echo " STEXLIB=<stex> build docs with <stex> instead of own stex"
++ echo " ZUO=<zuo> build with <zuo> instead of own Zuo"
+ echo ""
+ echo "Available machine types: $machs"
+ echo ""
+@@ -869,6 +879,16 @@ if [ "$addflags" = "yes" ] ; then
+ fi
+ fi
+
++if [ "${zuoExternal}" = "" ] ; then
++ ZUO="bin/zuo"
++ RM_ZUO="rm -f bin/zuo"
++ ZUO_TARGET="bin/zuo"
++else
++ ZUO="${zuoExternal}"
++ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'"
++ ZUO_TARGET="DoNotBuildZuo"
++fi
++
+ # more compile and link flags for c/Mf-unix and mats/Mf-unix
+ mdinclude=
+ mdcppflags=
+@@ -1039,7 +1059,7 @@ cp "$srcdir"/makefiles/buildmain.zuo main.zuo
+ # Some idea, but in the workarea, so it refers to "workarea.zuo" here:
+ cp "$srcdir"/makefiles/workmain.zuo $w/main.zuo
+
+-# The content of "$w/Makefile" records configuration decisions,
++# The content of "$w/Mf-config" records configuration decisions,
+ # and the Zuo build script takes it from there
+ cat > $w/Mf-config << END
+ srcdir=$srcdir
+@@ -1075,6 +1095,7 @@ cursesLib=$cursesLib
+ ncursesLib=$ncursesLib
+ zlibLib=$zlibLib
+ LZ4Lib=$LZ4Lib
++STEXLIB=$STEXLIB
+ warningFlags=$warningFlags
+ Kernel=$Kernel
+ installscriptname=$installscriptname
+@@ -1086,6 +1107,10 @@ preloadBootFiles=$preloadBootFiles
+ alwaysUseBootFile=$alwaysUseBootFile
+ relativeBootFiles=$relativeBootFiles
+
++ZUO=$ZUO
++RM_ZUO=$RM_ZUO
++ZUO_TARGET=$ZUO_TARGET
++
+ InstallBin=$installbin
+ InstallLib=$installlib
+ InstallMan=$installman/man1
+diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in
+index cfdd0230a3..4865bf2e2f 100644
+--- a/racket/src/ChezScheme/makefiles/Makefile.in
++++ b/racket/src/ChezScheme/makefiles/Makefile.in
+@@ -3,8 +3,6 @@ workarea=$(w)
+
+ include $(workarea)/Mf-config
+
+-ZUO=bin/zuo
+-
+ .PHONY: build
+ build: $(ZUO)
+ + $(ZUO) $(workarea) MAKE="$(MAKE)"
+@@ -140,9 +138,9 @@ pkg: $(ZUO)
+ .PHONY: clean
+ clean: $(ZUO)
+ + $(ZUO) $(workarea) clean MAKE="$(MAKE)"
+- rm -f bin/zuo
++ $(RM_ZUO)
+
+ # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make`
+-$(ZUO): $(srcdir)/../zuo/zuo.c
++$(ZUO_TARGET): $(srcdir)/../zuo/zuo.c
+ + mkdir -p bin
+ + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"$(upsrcdir)/../zuo/lib"'"' -o $(ZUO) $(srcdir)/../zuo/zuo.c
+
+base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368
+--
+2.41.0
+
+
+From e2bc69c5ce7437dd9a1b30ac1b12b3a56872c491 Mon Sep 17 00:00:00 2001
+From: Matthew Flatt <mflatt@racket-lang.org>
+Date: Sun, 10 Mar 2024 09:13:40 -0600
+Subject: [PATCH 2/2] Chez Scheme: adjust `configure ZUO=<command>` support
+
+Continuing from 694fbd47a1, adjust the generated makefile so the
+supplied `<command>` is not a makefile dependency. That way, `ZUO=zuo`
+works if `zuo` is installed and the current build directory is not the
+source directory. (The `zuo` executable is a dependency in a real and
+relevant sense, but not in the sense of dependencies that we normally
+track in makefiles.)
+
+Also adapt the makefile for the case that `ZUO=...` is not supplied
+and the build directory is not the source directory, in which case
+`ZUO_LIB_PATH` needs to be relative to the source directory.
+
+Using `make ZUO=zuo` can also work, but in that case, `bin/zuo` is
+still built as a dependency. It's possible that some portable makefile
+magic could overcome that limitation, but it doesn't seem important.
+
+(cherry picked from commit 28157ba88d48fe645563f46f6c00d6626b3428fa)
+---
+ racket/src/ChezScheme/configure | 3 +
+ racket/src/ChezScheme/makefiles/Makefile.in | 70 +++++++++++----------
+ 2 files changed, 40 insertions(+), 33 deletions(-)
+
+diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure
+index f88c6f7625..201dbe580f 100755
+--- a/racket/src/ChezScheme/configure
++++ b/racket/src/ChezScheme/configure
+@@ -881,10 +881,12 @@ fi
+
+ if [ "${zuoExternal}" = "" ] ; then
+ ZUO="bin/zuo"
++ ZUO_DEP="${ZUO}"
+ RM_ZUO="rm -f bin/zuo"
+ ZUO_TARGET="bin/zuo"
+ else
+ ZUO="${zuoExternal}"
++ ZUO_DEP=""
+ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'"
+ ZUO_TARGET="DoNotBuildZuo"
+ fi
+@@ -1108,6 +1110,7 @@ alwaysUseBootFile=$alwaysUseBootFile
+ relativeBootFiles=$relativeBootFiles
+
+ ZUO=$ZUO
++ZUO_DEP=$ZUO_DEP
+ RM_ZUO=$RM_ZUO
+ ZUO_TARGET=$ZUO_TARGET
+
+diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in
+index 4865bf2e2f..5ce237178e 100644
+--- a/racket/src/ChezScheme/makefiles/Makefile.in
++++ b/racket/src/ChezScheme/makefiles/Makefile.in
+@@ -4,51 +4,55 @@ workarea=$(w)
+ include $(workarea)/Mf-config
+
+ .PHONY: build
+-build: $(ZUO)
++build: $(ZUO_DEP)
+ + $(ZUO) $(workarea) MAKE="$(MAKE)"
+
+ .PHONY: run
+-run: $(ZUO)
++run: $(ZUO_DEP)
+ + $(ZUO) $(workarea) run
+
+ .PHONY: kernel
+-kernel: $(ZUO)
++kernel: $(ZUO_DEP)
+ + $(ZUO) $(workarea) kernel MAKE="$(MAKE)"
+
+ .PHONY: install
+-install: $(ZUO)
++install: $(ZUO_DEP)
+ $(ZUO) $(workarea) install MAKE="$(MAKE)"
+
+ .PHONY: uninstall
+-uninstall: $(ZUO)
++uninstall: $(ZUO_DEP)
+ + $(ZUO) $(workarea) uninstall MAKE="$(MAKE)"
+
+-.PHONY: test
+-test: $(ZUO)
+- + $(ZUO) $(workarea) test MAKE="$(MAKE)"
++.PHONY: test-one
++test-one: $(ZUO_DEP)
++ + $(ZUO) $(workarea) test-one MAKE="$(MAKE)"
+
+ .PHONY: test-some-fast
+-test-some-fast: $(ZUO)
++test-some-fast: $(ZUO_DEP)
+ + $(ZUO) $(workarea) test-some-fast MAKE="$(MAKE)"
+
+ .PHONY: test-some
+-test-some: $(ZUO)
++test-some: $(ZUO_DEP)
+ + $(ZUO) $(workarea) test-some MAKE="$(MAKE)"
+
++.PHONY: test
++test: $(ZUO_DEP)
++ + $(ZUO) $(workarea) test MAKE="$(MAKE)"
++
+ .PHONY: test-more
+-test-more: $(ZUO)
++test-more: $(ZUO_DEP)
+ + $(ZUO) $(workarea) test-more MAKE="$(MAKE)"
+
+ .PHONY: coverage
+-coverage: $(ZUO)
++coverage: $(ZUO_DEP)
+ + $(ZUO) $(workarea) coverage MAKE="$(MAKE)"
+
+ .PHONY: bootfiles
+-bootfiles: $(ZUO)
++bootfiles: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootfiles MAKE="$(MAKE)"
+
+ .PHONY: reset
+-reset: $(ZUO)
++reset: $(ZUO_DEP)
+ + $(ZUO) $(workarea) reset MAKE="$(MAKE)"
+
+ # Supply XM=<machine> to build boot files for <machine>
+@@ -57,86 +61,86 @@ boot:
+ + $(ZUO) $(workarea) boot "$(XM)" MAKE="$(MAKE)"
+
+ # `<machine>.boot` as alias for `boot XM=<machine>`
+-%.boot: $(ZUO)
++%.boot: $(ZUO_DEP)
+ + $(ZUO) $(workarea) boot $* MAKE="$(MAKE)"
+
+ .PHONY: auto.boot
+-auto.boot: $(ZUO)
++auto.boot: $(ZUO_DEP)
+ + $(ZUO) $(workarea) boot MAKE="$(MAKE)"
+
+ SCHEME=scheme
+
+ .PHONY: cross.boot
+-cross.boot: $(ZUO)
++cross.boot: $(ZUO_DEP)
+ + $(ZUO) $(workarea) boot SCHEME="$(SCHEME)" MAKE="$(MAKE)"
+
+ .PHONY: re.boot
+-re.boot: $(ZUO)
++re.boot: $(ZUO_DEP)
+ + $(ZUO) $(workarea) reboot SCHEME="$(SCHEME)"
+
+ # Supply XM=<machine> to build boot files for <machine>
+ # with o=3 d=0 for the cross compiler, and only after
+ # building the kernel for the configured machine
+ .PHONY: bootquick
+-bootquick: $(ZUO)
++bootquick: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootquick "$(XM)" MAKE="$(MAKE)"
+
+ # `<machine>.bootquick` as alias for `boot XM=<machine>`
+-%.bootquick: $(ZUO)
++%.bootquick: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootquick $* MAKE="$(MAKE)"
+
+-auto.bootquick: $(ZUO)
++auto.bootquick: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootquick MAKE="$(MAKE)"
+
+ # Supply XM=<machine>-<tag>.bootpbchunk to repackage boot files for
+ # <machine> with pbchunk sources, including additional
+ # boot files
+ .PHONY: bootpbchunk
+-bootpbchunk: $(ZUO)
++bootpbchunk: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootpbchunk "$(XM)" $(ARGS) MAKE="$(MAKE)"
+
+ # `<machine>.bootpbchunk` as alias for `pbchunk XM=<machine>`
+-%.bootpbchunk: $(ZUO)
++%.bootpbchunk: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bootpbchunk $* $(ARGS) MAKE="$(MAKE)"
+
+ .PHONY: docs
+-docs: build $(ZUO)
++docs: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) docs MAKE="$(MAKE)"
+
+ .PHONY: csug
+-csug: build $(ZUO)
++csug: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) csug MAKE="$(MAKE)"
+
+ .PHONY: release_notes
+-release_notes: build $(ZUO)
++release_notes: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) release_notes MAKE="$(MAKE)"
+
+ .PHONY: install-docs
+-install-docs: build $(ZUO)
++install-docs: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) install-docs MAKE="$(MAKE)"
+
+ .PHONY: install-csug
+-install-csug: build $(ZUO)
++install-csug: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) install-csug MAKE="$(MAKE)"
+
+ .PHONY: install-release_notes
+-install-release_notes: build $(ZUO)
++install-release_notes: build $(ZUO_DEP)
+ + $(ZUO) $(workarea) install-release_notes MAKE="$(MAKE)"
+
+ .PHONY: bintar
+-bintar: $(ZUO)
++bintar: $(ZUO_DEP)
+ + $(ZUO) $(workarea) bintar MAKE="$(MAKE)"
+
+ .PHONY: rpm
+-rpm: $(ZUO)
++rpm: $(ZUO_DEP)
+ + $(ZUO) $(workarea) rpm MAKE="$(MAKE)"
+
+ .PHONY: pkg
+-pkg: $(ZUO)
++pkg: $(ZUO_DEP)
+ + $(ZUO) $(workarea) pkg MAKE="$(MAKE)"
+
+ .PHONY: clean
+-clean: $(ZUO)
++clean: $(ZUO_DEP)
+ + $(ZUO) $(workarea) clean MAKE="$(MAKE)"
+ $(RM_ZUO)
+
+--
+2.41.0
+
diff --git a/gnu/packages/patches/racket-chez-scheme-bin-sh.patch b/gnu/packages/patches/racket-chez-scheme-bin-sh.patch
index 331b4f244b..e77c26f303 100644
--- a/gnu/packages/patches/racket-chez-scheme-bin-sh.patch
+++ b/gnu/packages/patches/racket-chez-scheme-bin-sh.patch
@@ -1,4 +1,4 @@
-From f86370295c5bb14d4bb93d0ccfa37a2b79f19f25 Mon Sep 17 00:00:00 2001
+From 5398e6d3305def343a009aba7c5f8915851c4115 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Wed, 24 Aug 2022 19:55:14 -0400
Subject: [PATCH] Chez Scheme: patch s_process for "/bin/sh" on Guix
@@ -14,17 +14,22 @@ then `s_process` will call `execl` with the file specified by
`_PATH_BSHELL` instead of "/bin/sh".
Checking that the path specified by `_PATH_BSHELL` exists safeguards
-against obscure errors if attempting to use stand-alone executables
-built by the patched Racket in non-Guix envoronments.
+against obscure errors if attempting to use the patched Chez Scheme
+or executables it builds in non-Guix envoronments.
This patch does not change the behavior of `s_system`, which relies
on `system` from the C library.
---
+
+Notes:
+ See also chez-scheme-bin-sh.patch, racket-rktio-bin-sh.patch,
+ and zuo-bin-sh.patch.
+
racket/src/ChezScheme/c/prim5.c | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/racket/src/ChezScheme/c/prim5.c b/racket/src/ChezScheme/c/prim5.c
-index 82bbf8d687..be8f603447 100644
+index 90b087f125..284f063f8b 100644
--- a/racket/src/ChezScheme/c/prim5.c
+++ b/racket/src/ChezScheme/c/prim5.c
@@ -27,6 +27,12 @@
@@ -40,7 +45,7 @@ index 82bbf8d687..be8f603447 100644
/* locally defined functions */
static INT s_errno(void);
static IBOOL s_addr_in_heap(uptr x);
-@@ -861,6 +867,17 @@ static ptr s_process(char *s, IBOOL stderrp) {
+@@ -875,6 +881,17 @@ static ptr s_process(char *s, IBOOL stderrp) {
INT tofds[2], fromfds[2], errfds[2];
struct sigaction act, oint_act;
@@ -58,7 +63,7 @@ index 82bbf8d687..be8f603447 100644
if (pipe(tofds)) S_error("process","cannot open pipes");
if (pipe(fromfds)) {
-@@ -897,7 +914,9 @@ static ptr s_process(char *s, IBOOL stderrp) {
+@@ -911,7 +928,9 @@ static ptr s_process(char *s, IBOOL stderrp) {
}
}
#endif /* __GNU__ Hurd */
@@ -70,7 +75,7 @@ index 82bbf8d687..be8f603447 100644
/*NOTREACHED*/
} else {
-base-commit: 87eee6e2adb8c6bc11e60619c706fa6295096085
+base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368
--
-2.32.0
+2.41.0
diff --git a/gnu/packages/patches/racket-rktio-bin-sh.patch b/gnu/packages/patches/racket-rktio-bin-sh.patch
index ec6f0d9c56..d777c0979a 100644
--- a/gnu/packages/patches/racket-rktio-bin-sh.patch
+++ b/gnu/packages/patches/racket-rktio-bin-sh.patch
@@ -1,4 +1,4 @@
-From 6a553f24439fe64fd3a2f0b5902f00590ca4241f Mon Sep 17 00:00:00 2001
+From 5e546a30789e5c9b3c94674b94cb63e16ee2e951 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Thu, 4 Mar 2021 04:11:50 -0500
Subject: [PATCH] rktio: patch rktio_process for "/bin/sh" on Guix
@@ -28,11 +28,16 @@ Checking that the path specified by `_PATH_BSHELL` exists safeguards
against obscure errors if attempting to use stand-alone executables
built by the patched Racket in non-Guix envoronments.
---
+
+Notes:
+ See also chez-scheme-bin-sh.patch, racket-chez-scheme-bin-sh.patch,
+ and zuo-bin-sh.patch.
+
racket/src/rktio/rktio_process.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/racket/src/rktio/rktio_process.c b/racket/src/rktio/rktio_process.c
-index fafaf728c1..796ebc59ce 100644
+index 862850d93a..87daafef76 100644
--- a/racket/src/rktio/rktio_process.c
+++ b/racket/src/rktio/rktio_process.c
@@ -9,6 +9,7 @@
@@ -43,7 +48,7 @@ index fafaf728c1..796ebc59ce 100644
# ifdef USE_ULIMIT
# include <ulimit.h>
# endif
-@@ -1301,12 +1302,14 @@ int rktio_process_allowed_flags(rktio_t *rktio)
+@@ -1358,12 +1359,14 @@ int rktio_process_allowed_flags(rktio_t *rktio)
/*========================================================================*/
rktio_process_result_t *rktio_process(rktio_t *rktio,
@@ -59,7 +64,7 @@ index fafaf728c1..796ebc59ce 100644
rktio_process_result_t *result;
intptr_t to_subprocess[2], from_subprocess[2], err_subprocess[2];
int pid;
-@@ -1333,6 +1336,18 @@ rktio_process_result_t *rktio_process(rktio_t *rktio,
+@@ -1390,6 +1393,18 @@ rktio_process_result_t *rktio_process(rktio_t *rktio,
int i;
#endif
@@ -79,7 +84,7 @@ index fafaf728c1..796ebc59ce 100644
to_subprocess[0] = -1;
to_subprocess[1] = -1;
-base-commit: 9d228d16fb99c274c964e5bef93e97333888769f
+base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368
--
-2.32.0
+2.41.0
diff --git a/gnu/packages/patches/racket-zuo-bin-sh.patch b/gnu/packages/patches/zuo-bin-sh.patch
index bcdcb8e963..92e3774424 100644
--- a/gnu/packages/patches/racket-zuo-bin-sh.patch
+++ b/gnu/packages/patches/zuo-bin-sh.patch
@@ -1,7 +1,7 @@
-From 73d9b77a11b4516905caf579abb559736f715ea6 Mon Sep 17 00:00:00 2001
+From cd6bed5d22ea9cb7bae2be134d5d04433fc8e313 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Mon, 11 Apr 2022 20:43:18 -0400
-Subject: [PATCH] Zuo: patch zuo_process for "/bin/sh" on Guix
+Subject: [PATCH] patch zuo_process for "/bin/sh" on Guix
If:
@@ -16,17 +16,22 @@ then `zuo_process` will execute the file specified by `_PATH_BSHELL`
instead of "/bin/sh".
Checking that the path specified by `_PATH_BSHELL` exists safeguards
-against obscure errors if attempting to use stand-alone executables
-built by the patched Racket in non-Guix envoronments.
+against obscure errors if attempting to use the patched Zuo
+or derived executables in non-Guix envoronments.
---
- racket/src/zuo/zuo.c | 20 ++++++++++++++++++--
+
+Notes:
+ See also chez-scheme-bin-sh.patch, racket-chez-scheme-bin-sh.patch,
+ racket-rktio-bin-sh.patch.
+
+ zuo.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
-diff --git a/racket/src/zuo/zuo.c b/racket/src/zuo/zuo.c
-index 17f161826d..c4fb3929bb 100644
---- a/racket/src/zuo/zuo.c
-+++ b/racket/src/zuo/zuo.c
-@@ -15,6 +15,7 @@
+diff --git a/zuo.c b/zuo.c
+index d4163eb..bfc5484 100644
+--- a/zuo.c
++++ b/zuo.c
+@@ -16,6 +16,7 @@
#include <string.h>
#include <ctype.h>
#ifdef ZUO_UNIX
@@ -34,7 +39,7 @@ index 17f161826d..c4fb3929bb 100644
# include <fcntl.h>
# include <unistd.h>
# include <errno.h>
-@@ -5730,7 +5731,10 @@ static void zuo_pipe(zuo_raw_handle_t *_r, zuo_raw_handle_t *_w)
+@@ -5949,7 +5950,10 @@ static void zuo_pipe(zuo_raw_handle_t *_r, zuo_raw_handle_t *_w)
zuo_t *zuo_process(zuo_t *command_and_args)
{
const char *who = "process";
@@ -46,7 +51,7 @@ index 17f161826d..c4fb3929bb 100644
zuo_t *args = _zuo_cdr(command_and_args), *rev_args = z.o_null;
zuo_t *options = z.o_empty_hash, *opt;
zuo_t *dir, *l, *p_handle, *result;
-@@ -5741,7 +5745,19 @@ zuo_t *zuo_process(zuo_t *command_and_args)
+@@ -5960,7 +5964,19 @@ zuo_t *zuo_process(zuo_t *command_and_args)
void *env;
int as_child, exact_cmdline;
@@ -68,7 +73,7 @@ index 17f161826d..c4fb3929bb 100644
zuo_t *a = _zuo_car(l);
if (a == z.o_null) {
-base-commit: 87eee6e2adb8c6bc11e60619c706fa6295096085
+base-commit: a0faa82c8383d206aa38d21462ca4ae699851a0b
--
-2.32.0
+2.41.0
diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index afe4af3eb3..cdefa48583 100644
--- a/gnu/packages/patchutils.scm
+++ b/gnu/packages/patchutils.scm
@@ -301,7 +301,7 @@ GiB).")
(define-public meld
(package
(name "meld")
- (version "3.22.1")
+ (version "3.22.2")
(source
(origin
(method url-fetch)
@@ -309,7 +309,7 @@ GiB).")
(version-major+minor version)
"/meld-" version ".tar.xz"))
(sha256
- (base32 "0dk8j27jlqhxcjrkc8pa3rl7fz7pfwvrbyrhfsx1ld6lvcrbvlvd"))))
+ (base32 "1vqn4glv32dxrzm5hxj64ac5q9ffr1bhf7ks6wxia6ydzc9sg826"))))
(build-system meson-build-system)
(native-inputs
(list desktop-file-utils
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 89c99a8881..c7d4b15c4a 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -23,255 +24,45 @@
(define-module (gnu packages plotutils)
#:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix gexp)
#:use-module ((guix utils) #:select (target-x86-32?))
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system ruby)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
- #:use-module (gnu packages bison)
#:use-module (gnu packages bdw-gc)
+ #:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages cmake)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages emacs)
#:use-module (gnu packages flex)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages image)
#:use-module (gnu packages ghostscript)
- #:use-module (gnu packages guile)
#:use-module (gnu packages gl)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
+ #:use-module (gnu packages image)
#:use-module (gnu packages maths)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
- #:use-module (gnu packages qt)
#:use-module (gnu packages statistics)
- #:use-module (gnu packages texinfo)
#:use-module (gnu packages tex)
+ #:use-module (gnu packages texinfo)
#:use-module (gnu packages web)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages))
-
-(define-public plotutils
- (package
- (name "plotutils")
- (version "2.6")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/plotutils/plotutils-"
- version ".tar.gz"))
- (sha256
- (base32
- "1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg"))
- (modules '((guix build utils)))
- (snippet
- ;; Force the use of libXaw7 instead of libXaw. When not doing
- ;; that, libplot.la ends up containing just "-lXaw" (without
- ;; "-L/path/to/Xaw"), due to the fact that there is no
- ;; libXaw.la, which forces us to propagate libXaw.
- '(begin
- (substitute* "configure"
- (("-lXaw")
- "-lXaw7"))
- ;; Use the `png_jmpbuf' accessor, as recommended since libpng
- ;; 1.4.0 (see:
- ;; http://www.libpng.org/pub/png/src/libpng-1.2.x-to-1.4.x-summary.txt).
- (substitute* "libplot/z_write.c"
- (("png_ptr->jmpbuf")
- "png_jmpbuf (png_ptr)"))
- #t))
- (patches
- ;; The test suite fails on some architectures such as i686 (see:
- ;; https://lists.gnu.org/archive/html/bug-plotutils/2016-04/msg00002.html).
- ;; The following Debian patch works around it.
- (search-patches "plotutils-spline-test.patch"))))
- (build-system gnu-build-system)
- (arguments
- (list #:configure-flags
- #~(list "--enable-libplotter"
-
- ;; On i686 some tests fail due to excess floating point
- ;; precision; work around it. However, libplotter is C++
- ;; and thus unaffected by CFLAGS, but '-fexcess-precision'
- ;; is not implemented for C++ as of GCC 10.
- #$@(if (target-x86-32?)
- #~("CFLAGS=-g -O2 -fexcess-precision=standard")
- #~()))
-
- #:phases
- (if (target-x86-32?)
- #~(modify-phases %standard-phases
- (add-before 'check 'skip-sloppy-test
- (lambda _
- ;; This test reveals a slight difference in the SVG
- ;; output due to floating point inequalities. Skip it.
- (substitute* "test/plot2svg.test"
- (("^exit .*") "exit 77")))))
- #~%standard-phases)))
- (inputs (list libpng libx11 libxt libxaw))
- (home-page "https://www.gnu.org/software/plotutils/")
- (synopsis "Plotting utilities and library")
- (description
- "GNU Plotutils is a package for plotting and working with 2D graphics.
-It includes the C library @code{libplot} and the C++ @code{libplotter} library
-for exporting 2D vector graphics in many file formats. It also has support
-for 2D vector graphics animations. The package also contains command-line
-programs for plotting scientific data.")
- (license license:gpl2+)))
-
-(define-public guile-plotutils
- (package
- (name "guile-plotutils")
- (version "1.0.1")
- (source (origin
- (method url-fetch)
- (uri (list (string-append "https://lonelycactus.com/tarball/"
- "guile_plotutils-" version ".tar.gz")
- (string-append
- "https://github.com/spk121/guile-plotutils/releases/download/v"
- version "/guile_plotutils-" version
- ".tar.gz")))
- (sha256
- (base32
- "0r245z75cdzgzi57fpz84mnyrjq44793zzaaxxrszyxm1d06hc6r"))))
- (build-system gnu-build-system)
- (arguments
- `(#:imported-modules ((guix build guile-build-system)
- ,@%gnu-build-system-modules)
- #:modules (((guix build guile-build-system)
- #:select (target-guile-effective-version))
- (guix build gnu-build-system)
- (guix build utils))
- #:phases
- (modify-phases %standard-phases
- (add-before 'install 'set-library-file-name
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (version (target-guile-effective-version)))
- ;; First install libguile-plotutils.so.
- (invoke "make" "install-guileextensionLTLIBRARIES")
-
- ;; Then change source files to refer to it.
- (substitute* '("module/plotutils/graph.scm"
- "module/plotutils/plot.scm")
- (("\"libguile-plotutils\"")
- (string-append "\"" out "/lib/guile/" version
- "/extensions/libguile-plotutils\"")))))))))
- (native-inputs (list pkg-config texinfo))
- (inputs (list plotutils guile-3.0 zlib))
- (home-page "https://lonelycactus.com/guile-plotutils.html")
- (synopsis "Guile bindings to the GNU Plotutils plotting libraries")
- (description
- "Guile-Plotutils is a Guile binding to the venerable GNU Plotutils
-plotting and graphing library. If you want to make graphs that look like you
-went to university in the 1990s, this is the library for you.")
- (license license:gpl3+)))
-
-(define-public guile-charting
- ;; This commit fixes a few things, including Guile 3 support, not available
- ;; in the latest release.
- (let ((commit "75f755b691a9f712f3b956657d01805d6a8a1b98")
- (revision "1"))
- (package
- (name "guile-charting")
- (version (git-version "0.2.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.com/wingo/guile-charting")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "03049g7wnpyfi0r36ij4a46kc9l45jbanx02iklkjwav2n6jqnnk"))))
- (build-system gnu-build-system)
- (native-inputs
- (list autoconf automake texinfo pkg-config))
- (inputs (list guile-3.0))
- (propagated-inputs (list guile-cairo))
- (home-page "https://wingolog.org/projects/guile-charting/")
- (synopsis "Create charts and graphs in Guile")
- (description
- "Guile-Charting is a Guile Scheme library to create bar charts and graphs
-using the Cairo drawing library.")
- (license license:lgpl2.1+))))
-
-(define-public guile2.2-charting
- (package
- (inherit guile-charting)
- (name "guile2.2-charting")
- (inputs (list guile-2.2))
- (propagated-inputs (list guile2.2-cairo))))
-
-(define-public ploticus
- (package
- (name "ploticus")
- (version "2.42")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/ploticus/ploticus/"
- version "/ploticus242_src.tar.gz"))
- (sha256
- (base32
- "1c70cvfvgjh83hj1x21130wb9qfr2rc0x47cxy9kl805yjwy8a9z"))
- (modules '((guix build utils)))
- (snippet
- ;; Install binaries in the right place.
- '(begin
- (substitute* "src/Makefile"
- (("INSTALLBIN =.*$")
- (string-append "INSTALLBIN = $(out)/bin")))
- #t))))
- (build-system gnu-build-system)
- (arguments
- '(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- (replace 'configure (lambda _ (chdir "src")))
- (add-before 'install 'make-target-directories
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (mkdir-p (string-append out "/bin"))
- #t)))
- (add-after 'install 'install-prefabs
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (dir (string-append out
- "/share/ploticus/prefabs"))
- (bin (string-append out "/bin")))
- (mkdir-p dir)
-
- ;; Install "prefabs".
- (for-each (lambda (file)
- (let ((target
- (string-append dir "/"
- (basename file))))
- (copy-file file target)))
- (find-files "../prefabs" "."))
-
- ;; Allow them to be found.
- (wrap-program (string-append bin "/pl")
- `("PLOTICUS_PREFABS" ":" = (,dir)))))))))
- (inputs
- (list libpng libx11 zlib))
- (home-page "https://ploticus.sourceforge.net/")
- (synopsis "Command-line tool for producing plots and charts")
- (description
- "Ploticus is a non-interactive software package for producing plots,
-charts, and graphics from data. Ploticus is good for automated or
-just-in-time graph generation, handles date and time data nicely, and has
-basic statistical capabilities. It allows significant user control over
-colors, styles, options and details.")
- (license license:gpl2+)))
+ #:use-module (gnu packages wxwidgets)
+ #:use-module (gnu packages xorg))
(define-public asymptote
(package
@@ -424,6 +215,266 @@ LaTeX does for scientific text.")
;; Lesser General Public License"
(license license:lgpl3+)))
+(define-public guile-charting
+ ;; This commit fixes a few things, including Guile 3 support, not available
+ ;; in the latest release.
+ (let ((commit "75f755b691a9f712f3b956657d01805d6a8a1b98")
+ (revision "1"))
+ (package
+ (name "guile-charting")
+ (version (git-version "0.2.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/wingo/guile-charting")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "03049g7wnpyfi0r36ij4a46kc9l45jbanx02iklkjwav2n6jqnnk"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ (list autoconf automake texinfo pkg-config))
+ (inputs (list guile-3.0))
+ (propagated-inputs (list guile-cairo))
+ (home-page "https://wingolog.org/projects/guile-charting/")
+ (synopsis "Create charts and graphs in Guile")
+ (description
+ "Guile-Charting is a Guile Scheme library to create bar charts and graphs
+using the Cairo drawing library.")
+ (license license:lgpl2.1+))))
+
+(define-public guile-plotutils
+ (package
+ (name "guile-plotutils")
+ (version "1.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (list (string-append "https://lonelycactus.com/tarball/"
+ "guile_plotutils-" version ".tar.gz")
+ (string-append
+ "https://github.com/spk121/guile-plotutils/releases/download/v"
+ version "/guile_plotutils-" version
+ ".tar.gz")))
+ (sha256
+ (base32
+ "0r245z75cdzgzi57fpz84mnyrjq44793zzaaxxrszyxm1d06hc6r"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:imported-modules ((guix build guile-build-system)
+ ,@%gnu-build-system-modules)
+ #:modules (((guix build guile-build-system)
+ #:select (target-guile-effective-version))
+ (guix build gnu-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'set-library-file-name
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (version (target-guile-effective-version)))
+ ;; First install libguile-plotutils.so.
+ (invoke "make" "install-guileextensionLTLIBRARIES")
+
+ ;; Then change source files to refer to it.
+ (substitute* '("module/plotutils/graph.scm"
+ "module/plotutils/plot.scm")
+ (("\"libguile-plotutils\"")
+ (string-append "\"" out "/lib/guile/" version
+ "/extensions/libguile-plotutils\"")))))))))
+ (native-inputs (list pkg-config texinfo))
+ (inputs (list plotutils guile-3.0 zlib))
+ (home-page "https://lonelycactus.com/guile-plotutils.html")
+ (synopsis "Guile bindings to the GNU Plotutils plotting libraries")
+ (description
+ "Guile-Plotutils is a Guile binding to the venerable GNU Plotutils
+plotting and graphing library. If you want to make graphs that look like you
+went to university in the 1990s, this is the library for you.")
+ (license license:gpl3+)))
+
+(define-public guile2.2-charting
+ (package
+ (inherit guile-charting)
+ (name "guile2.2-charting")
+ (inputs (list guile-2.2))
+ (propagated-inputs (list guile2.2-cairo))))
+
+(define-public ploticus
+ (package
+ (name "ploticus")
+ (version "2.42")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/ploticus/ploticus/"
+ version "/ploticus242_src.tar.gz"))
+ (sha256
+ (base32
+ "1c70cvfvgjh83hj1x21130wb9qfr2rc0x47cxy9kl805yjwy8a9z"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Install binaries in the right place.
+ #~(begin
+ (substitute* "src/Makefile"
+ (("INSTALLBIN =.*$")
+ (string-append "INSTALLBIN = $(out)/bin")))))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ; no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure (lambda _ (chdir "src")))
+ (add-before 'install 'make-target-directories
+ (lambda _
+ (mkdir-p (string-append #$output "/bin"))))
+ (add-after 'install 'install-prefabs
+ (lambda _
+ (let* ((out #$output)
+ (dir (string-append out "/share/ploticus/prefabs"))
+ (bin (string-append out "/bin")))
+ (mkdir-p dir)
+ ;; Install "prefabs".
+ (for-each
+ (lambda (file)
+ (let ((target (string-append dir "/" (basename file))))
+ (copy-file file target)))
+ (find-files "../prefabs" "."))
+ ;; Allow them to be found.
+ (wrap-program (string-append bin "/pl")
+ `("PLOTICUS_PREFABS" ":" = (,dir)))))))))
+ (inputs
+ (list libpng libx11 zlib))
+ (home-page "https://ploticus.sourceforge.net/")
+ (synopsis "Command-line tool for producing plots and charts")
+ (description
+ "Ploticus is a non-interactive software package for producing plots,
+charts, and graphics from data. Ploticus is good for automated or
+just-in-time graph generation, handles date and time data nicely, and has
+basic statistical capabilities. It allows significant user control over
+colors, styles, options and details.")
+ (license license:gpl2+)))
+
+(define-public plotutils
+ (package
+ (name "plotutils")
+ (version "2.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/plotutils/plotutils-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Force the use of libXaw7 instead of libXaw. When not doing
+ ;; that, libplot.la ends up containing just "-lXaw" (without
+ ;; "-L/path/to/Xaw"), due to the fact that there is no
+ ;; libXaw.la, which forces us to propagate libXaw.
+ '(begin
+ (substitute* "configure"
+ (("-lXaw")
+ "-lXaw7"))
+ ;; Use the `png_jmpbuf' accessor, as recommended since libpng
+ ;; 1.4.0 (see:
+ ;; http://www.libpng.org/pub/png/src/libpng-1.2.x-to-1.4.x-summary.txt).
+ (substitute* "libplot/z_write.c"
+ (("png_ptr->jmpbuf")
+ "png_jmpbuf (png_ptr)"))
+ #t))
+ (patches
+ ;; The test suite fails on some architectures such as i686 (see:
+ ;; https://lists.gnu.org/archive/html/bug-plotutils/2016-04/msg00002.html).
+ ;; The following Debian patch works around it.
+ (search-patches "plotutils-spline-test.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:configure-flags
+ #~(list "--enable-libplotter"
+
+ ;; On i686 some tests fail due to excess floating point
+ ;; precision; work around it. However, libplotter is C++
+ ;; and thus unaffected by CFLAGS, but '-fexcess-precision'
+ ;; is not implemented for C++ as of GCC 10.
+ #$@(if (target-x86-32?)
+ #~("CFLAGS=-g -O2 -fexcess-precision=standard")
+ #~()))
+
+ #:phases
+ (if (target-x86-32?)
+ #~(modify-phases %standard-phases
+ (add-before 'check 'skip-sloppy-test
+ (lambda _
+ ;; This test reveals a slight difference in the SVG
+ ;; output due to floating point inequalities. Skip it.
+ (substitute* "test/plot2svg.test"
+ (("^exit .*") "exit 77")))))
+ #~%standard-phases)))
+ (inputs (list libpng libx11 libxt libxaw))
+ (home-page "https://www.gnu.org/software/plotutils/")
+ (synopsis "Plotting utilities and library")
+ (description
+ "GNU Plotutils is a package for plotting and working with 2D graphics.
+It includes the C library @code{libplot} and the C++ @code{libplotter} library
+for exporting 2D vector graphics in many file formats. It also has support
+for 2D vector graphics animations. The package also contains command-line
+programs for plotting scientific data.")
+ (license license:gpl2+)))
+
+(define-public plplot
+ (package
+ (name "plplot")
+ (version "5.15.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/plplot/plplot/"
+ version "%20Source/plplot-" version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0ywccb6bs1389zjfmc9zwdvdsvlpm7vg957whh6b5a96yvcf8bdr"))
+ (modules '((guix build utils)))
+ (snippet #~(begin (delete-file-recursively "www")
+ (substitute* "CMakeLists.txt"
+ (("add_subdirectory\\(www\\)") ""))))))
+ (build-system cmake-build-system)
+ ;; TODO: Review all available options and bindings to enable them or split
+ ;; in dedicated packages, see Debian's package for inspirations:
+ ;; <https://salsa.debian.org/science-team/plplot>.
+ (arguments
+ (list
+ #:configure-flags
+ #~(list (string-append "-DLIB_DIR=" #$output "/lib")
+ "-DBUILD_TEST=TRUE"
+ "-DENABLE_wxwidgets=TRUE")))
+ (native-inputs (list pkg-config))
+ (inputs (list wxwidgets))
+ (home-page "http://plplot.org/") ;no HTTPS
+ (synopsis "Scientific plotting library with Unicode support")
+ (description
+ "PLplot is a software package for creating scientific plots which core
+library can be used to create standard x-y plots, semi-log plots, log-log
+plots, contour plots, 3D surface plots, mesh plots, bar charts and pie charts.
+Multiple graphs (of the same or different sizes) may be placed on a single
+page, and multiple pages are allowed for those device formats that support
+them.
+
+PLplot has support for plot symbols and text specified by the user in the
+UTF-8 encoding of Unicode. This means for our many Unicode-aware devices that
+plot symbols and text are only limited by the collection of glyphs normally
+available via installed system fonts. Furthermore, a large subset of our
+Unicode-aware devices also support complex text layout (CTL) languages such as
+Arabic, Hebrew, and Indic and Indic-derived CTL scripts such as Devanagari,
+Thai, Lao, and Tibetan. Thus, for these PLplot devices essentially any
+language that is supported by Unicode and installed system fonts can be used
+to label plots.")
+ (license (list license:lgpl2.0
+ license:gpl2+ ;octave bindings
+ license:bsd-2 ;docbook docs
+ license:ogl-psi1.0 ;files in data/ss
+ license:cc-by-sa3.0 ;examples/Chloe.pgm
+ license:expat)))) ;Cmake files
+
(define-public ruby-unicode-plot
(package
(name "ruby-unicode-plot")
@@ -474,3 +525,8 @@ and @command{uplot} (shorthand) are provided, and supports chart types
of barplot, histogram, lineplot, scatter, density, boxplot, and count.")
(home-page "https://github.com/red-data-tools/YouPlot")
(license license:expat)))
+
+;;;
+;;; Avoid adding new packages to the end of this file. To reduce the chances
+;;; of a merge conflict, place them above in alphabetic order.
+;;;
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index e7761070e0..0069494b4d 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,17 +19,56 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages printers)
+ #:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages avahi)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages libusb)
+ #:use-module (gnu packages man)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt))
;; This is a module for packages related to printer-like devices, but not
;; related to CUPS.
+(define-public ipp-usb
+ (package
+ (name "ipp-usb")
+ (version "0.9.25")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/OpenPrinting/ipp-usb")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "003njvcxi0w97wrs52nm9b0f1d96624hjnv9ywsr1m7p6q7r08mg"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ ;; TODO: The project provides manpages and udev rules, review them and
+ ;; install in the next update cycle.
+ #:install-source? #f
+ #:import-path "github.com/OpenPrinting/ipp-usb"))
+ (inputs
+ (list avahi libusb))
+ (native-inputs
+ (list go-github-com-openprinting-goipp
+ pkg-config
+ ronn))
+ (home-page "https://github.com/OpenPrinting/ipp-usb")
+ (synopsis "HTTP reverse proxy, backed by the IPP-over-USB connection")
+ (description
+ "ipp-usb implements an HTTP reverse proxy, backed by the IPP-over-USB
+connection to the device. This is because IPP-over-USB implementations which
+simply relay a TCP connection to USB do not work.")
+ (license license:bsd-2)))
+
(define-public robocut
(package
(name "robocut")
@@ -44,24 +84,18 @@
(base32 "0dp9cssyik63yvkk35s51v94a873x751iqg93qzd8dpqkmz5z8gn"))))
(build-system gnu-build-system)
(arguments
- '(#:phases (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "Robocut.pro"
- (("/usr/")
- (string-append out "/")))
-
- (invoke "qmake"
- (string-append "PREFIX=" out))
- #t))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "Robocut.pro"
+ (("/usr/") (string-append #$output "/")))
+ (invoke "qmake" (string-append "PREFIX=" #$output)))))))
(inputs
- `(("libusb" ,libusb)
- ("qt" ,qtbase-5)
- ("qtsvg-5" ,qtsvg-5)))
+ (list libusb qtbase-5 qtsvg-5))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("qmake" ,qtbase-5)))
+ (list pkg-config qtbase-5))
(synopsis "Graphical program to drive plotting cutters")
(description
"Robocut is a simple graphical program that allows you to cut graphics
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 3615eb417c..3862dc2e22 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -401,7 +401,7 @@ high-performance computing (HPC) applications.")
(define-public tracy-wayland
(package
(name "tracy-wayland")
- (version "0.9.1")
+ (version "0.10")
(source
(origin
(method git-fetch)
@@ -410,7 +410,7 @@ high-performance computing (HPC) applications.")
(commit (string-append "v" version))))
(sha256
(base32
- "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
+ "1w50bckvs1nn68amzrkyrh769dhmlhk7w00kr8ac5h9ryk349p8c"))
(file-name (git-file-name "tracy" version))
(modules '((guix build utils)))
(snippet
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ecd93943f1..bac90b1e07 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -32414,7 +32414,7 @@ used to retry a function a given number of times.")
libice
soqt
glew
- coin3D))
+ coin3d))
(home-page "https://github.com/coin3d/pivy")
(synopsis "Python bindings to Coin3D")
(description
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 13af841455..8fc3b3b0e8 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -5116,7 +5116,7 @@ configurable also via HTTP.")
(native-inputs
(list pkg-config cmake))
(inputs
- (list qtbase-5 coin3D))
+ (list qtbase-5 coin3d))
(home-page "https://github.com/coin3d/soqt")
(synopsis "Qt GUI component toolkit library for Coin")
(description "SoQt is a Qt GUI component toolkit library for Coin. It is
@@ -5360,7 +5360,6 @@ authentication on behalf of its clients.")
(inputs (list signond))
(arguments
(list #:tests? #f ;no tests
- #:make-flags #~(list (string-append "INSTALL_ROOT=" #$output))
#:phases
#~(modify-phases %standard-phases
(replace 'configure
@@ -5370,7 +5369,9 @@ authentication on behalf of its clients.")
""))
(invoke "qmake"
(string-append "PREFIX=" #$output)
- (string-append "LIBDIR=" #$output "/lib")))))))
+ (string-append "LIBDIR=" #$output "/lib")
+ (string-append "SIGNON_PLUGINS_DIR=" #$output
+ "/lib")))))))
(synopsis "OAuth 2 plugin for signon")
(description
"This plugin for the Accounts-SSO SignOn daemon handles the OAuth
diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm
index 5c863f1afd..2b20353159 100644
--- a/gnu/packages/racket.scm
+++ b/gnu/packages/racket.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2013-2016, 2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2021, 2022, 2023 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2021-2024 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
@@ -72,6 +72,7 @@
;; ├── bc/
;; ├── cs/
;; ├── ChezScheme/
+;; ├── rktboot/
;; ├── zuo/
;; └── ...
;;
@@ -105,7 +106,9 @@
;; 'distro-build' package to assemble custom Racket distributions. (Again,
;; the makefile just delegates to Zuo.) It is not part of Racket source
;; distributions: the root of a source distribution is basically 'racket/src'
-;; with some extra package sources and configuration added.
+;; with some extra package sources and configuration added. In fact, the
+;; top-level 'Makefile' and the 'distro-build' package are what create Racket
+;; source distributions.
;;
;; A ''minimal Racket'' installation includes two packages: 'base', which is a
;; sort of bridge between the current ``built-in'' collections and the package
@@ -147,14 +150,12 @@
;; - Racket BC [3M] needs an existing Racket to run "xform",
;; which transforms its own C source code to add additional annotations
;; for the precise garbage collector.
-;; - Racket CS needs (bootfiles for) Racket's fork of Chez Scheme.
-;; It also needs an existing Racket to compile Racket-implemented
+;; - Racket CS needs (boot files for) the corresponding version of Chez
+;; Scheme. It also needs an existing Racket to compile Racket-implemented
;; parts of the runtime system to R6RS libraries.
-;; - Chez Scheme also needs bootfiles for itself, but Racket can simulate
-;; enough of Chez Scheme to load Racket's fork of the Chez Scheme compiler
-;; purely from source into Racket and apply the compiler to itself,
-;; producing the needed bootfiles (albeit very slowly).
-;; Any variant of Racket since version 7.1 can run the simulation.
+;; - Chez Scheme also needs boot files for itself, but Racket BC can
+;; bootstrap these using the code in "racket/src/rktboot/".
+;; See the commentary in "chez.scm" for further details
;;
;; So, we build CGC to build 3M to build bootfiles and CS.
;;
@@ -162,6 +163,14 @@
;; often use "BC" to mean "3M", consistent with `(banner)` and the
;; suffixes used on executables when more than one variant co-exists.)
;;
+;; Since the pre-releases for Chez Scheme 10.0.0, all of Racket's changes have
+;; been merged upstream, and development will be kept in sync going
+;; forward. However, there is no plan to align the Chez Scheme and Racket
+;; release cycles. For the near fulture, a given released version of Racket
+;; will continue to depend on a specific pre-release version of Chez Scheme as
+;; part of Racket CS's "ABI". See upstream discussion at
+;; <https://racket.discourse.group/t/2739/3>.
+;;
;; One remaining bootstrapping limitation is that Racket's reader, module
;; system, and macro expander are implemented in Racket. For Racket CS,
;; they are compiled to R6RS libraries as discussed above. This note from the
@@ -187,12 +196,12 @@
;; Zuo is notably *not* a problem for bootstrapping. The implementation is a
;; single hand-written C file designed to build with just `cc -o zuo zuo.c`,
;; even with very old or limited compilers. (We use the Autoconf support for
-;; convienience.)
+;; convienience.) As of Zuo 1.8, Zuo has tagged releases in its own repository
+;; independent of the Racket release cycle.
;;
;; CODE:
-(define %racket-version "8.11.1") ; Remember to update chez-scheme-for-racket!
-(define %zuo-version "1.7") ; defined in racket/src/zuo/zuo.c
+(define %racket-version "8.12") ; Remember to update chez-scheme-for-racket!
(define %racket-commit
(string-append "v" %racket-version))
(define %racket-origin
@@ -202,17 +211,16 @@
(url "https://github.com/racket/racket")
(commit %racket-commit)))
(sha256
- (base32 "1iny1mn1lw07lj6h704ch5g2q1nsf0h88dgwqrlxhf8pwj4i76gl"))
+ (base32 "1f52yadmrsd2ddry47s68kxig185a58n19j23458wkck19nawjz5"))
(file-name (git-file-name "racket" %racket-version))
(patches (search-patches "racket-chez-scheme-bin-sh.patch"
- "racket-backport-8.11-layered-docs.patch"
- "racket-rktio-bin-sh.patch"
- "racket-zuo-bin-sh.patch"))
+ "racket-backport-8.12-chez-configure.patch"
+ "racket-rktio-bin-sh.patch"))
(modules '((guix build utils)))
(snippet
#~(begin
(use-modules (guix build utils))
- ;; Unbundle Chez submodules.
+ ;; Unbundle Chez submodules and boot files.
(with-directory-excursion "racket/src/ChezScheme"
;; TODO: consider putting this in a (guix ...) or (guix build ...)
;; module so it can be shared with the upstream Chez Scheme origin
@@ -220,39 +228,41 @@
(for-each (lambda (dir)
(when (directory-exists? dir)
(delete-file-recursively dir)))
- '("stex"
- "nanopass"
+ '("boot"
"lz4"
- "zlib")))
+ "nanopass"
+ "stex"
+ "zlib"
+ "zuo")))
+ ;; Unbundle Zuo.
+ (delete-file-recursively "racket/src/zuo")
;; Unbundle libffi.
(delete-file-recursively "racket/src/bc/foreign/libffi")))))
(define-public zuo
- (let ((revision #f))
- (package
- (name "zuo")
- (version (string-append %zuo-version
- "-racket"
- %racket-version
- (if revision "-guix" "")
- (or revision "")))
- (source %racket-origin)
- (outputs '("out" "debug"))
- (build-system gnu-build-system)
- (arguments
- (list
- #:out-of-source? #t
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda args
- (chdir "racket/src/zuo"))))))
- (home-page "https://github.com/racket/zuo")
- ;; ^ This is downstream of https://github.com/racket/racket,
- ;; but it's designed to be a friendly landing place
- (synopsis "Tiny Racket for build scripts")
- (description "Zuo is a tiny Racket with primitives for dealing
+ (package
+ (name "zuo")
+ (version "1.9") ; defined in racket/src/zuo/zuo.c or the following
+ #;(displayln (~a (hash-ref (runtime-env) 'version) "."
+ (hash-ref (runtime-env) 'minor-version)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/racket/zuo")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "0zasir33nx1qi1ciz9dn6h8k39i443lr6apw5d1i6mjmhpzxmdhp"))
+ (file-name (git-file-name name version))
+ (patches (search-patches "zuo-bin-sh.patch"))))
+ (outputs '("out" "debug"))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:out-of-source? #t))
+ (home-page "https://github.com/racket/zuo")
+ (synopsis "Tiny Racket for build scripts")
+ (description "Zuo is a tiny Racket with primitives for dealing
with files and running processes. It comes with a @command{make}-like
embedded DSL, which is used to build Racket itself.
@@ -261,7 +271,7 @@ Zuo is a Racket variant in the sense that program files start with
and expansion of the file content. That's how the @command{make}-like DSL is
defined, and even the base Zuo language is defined by layers of @code{#lang}s.
One of the early layers implements macros.")
- (license (list license:asl2.0 license:expat)))))
+ (license (list license:asl2.0 license:expat))))
(define racket-vm-common-configure-flags
@@ -431,7 +441,7 @@ collector, 3M (``Moving Memory Manager'').")
(inputs
(let ((inputs (modify-inputs (package-inputs racket-vm-cgc)
(prepend zlib lz4))))
- (if (racket-cs-native-supported-system?)
+ (if (nix-system->native-chez-machine-type)
(modify-inputs inputs
(delete "libffi"))
inputs)))
@@ -449,10 +459,8 @@ collector, 3M (``Moving Memory Manager'').")
(substitute-keyword-arguments (package-arguments racket-vm-cgc)
((#:phases those-phases #~%standard-phases)
#~(modify-phases #$those-phases
- (add-after 'unpack 'unpack-nanopass+stex
- (lambda args
- (with-directory-excursion "racket/src/ChezScheme"
- #$unpack-nanopass+stex)))))
+ (add-after 'unpack 'unpack-nanopass
+ #$unpack-nanopass)))
((#:configure-flags _ '())
#~(cons* "--enable-csonly"
"--enable-libz"
@@ -461,7 +469,7 @@ collector, 3M (``Moving Memory Manager'').")
#+(this-package-native-input
"chez-scheme-for-racket")
"/bin/scheme")
- #$@(if (racket-cs-native-supported-system?)
+ #$@(if (nix-system->native-chez-machine-type)
#~()
#~(#$(string-append "--enable-mach="
(nix-system->pbarch-machine-type))
@@ -701,7 +709,7 @@ DrRacket IDE, are not included.")
"contract-profile" (base32 "1xm2z8g0dpv5d9h2sg680vx1a8ix9gbsdpxxb8qv1w7akp73paj3")
'(("contract-profile" ".")))
(simple-racket-origin
- "data" (base32 "1pml8g3zgvnaiqb659psh99m70v96m6nh9zash2vfgir46j4rjnh")
+ "data" (base32 "01sinnsnjiazvkj83k84izdnp38pd2aglbrs14mrdkwajgmpampk")
'("data" "data-doc" "data-enumerate-lib" "data-lib"))
(simple-racket-origin
"datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s")
@@ -710,7 +718,7 @@ DrRacket IDE, are not included.")
"db" (base32 "0xx0k8yw2vb9b4vk2dwjfbpixnmriqsv7kpv3fvfxbwyg42y0db5")
'("db" "db-doc" "db-lib"))
(simple-racket-origin
- "deinprogramm" (base32 "0ijngjyg2i528a4xv20db4adirvx5rj4m86fd70l33lgwv53w3s0")
+ "deinprogramm" (base32 "0f41sh90i4mml95x2gcmfvl2rc7m77vjbagmgjx270ng7xvz16lj")
'("deinprogramm" "deinprogramm-signature"))
(simple-racket-origin
"distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0")
@@ -719,7 +727,7 @@ DrRacket IDE, are not included.")
"draw" (base32 "1h7mckay8yjcgmj3r0jkf1csn430gn43n8jl1l956q9gcprlmncl")
'("draw" "draw-doc" "draw-lib"))
(simple-racket-origin
- "drracket" (base32 "00ay3pwl648wq8nnaap665c38clr39k0g1wslh2wclar32wjpgdc")
+ "drracket" (base32 "17bdbvsf5l8z96bwzg1q75gg70c6svbhw0g1k239fsjd3mivmki4")
'("drracket"
"drracket-plugin-lib"
"drracket-tool"
@@ -753,13 +761,13 @@ DrRacket IDE, are not included.")
"games" (base32 "13z7fnbr48s98lmfxc0nbfhbqkd4hphymy2r63hqm783xzn6ylzi")
'(("games" ".")))
(simple-racket-origin
- "gui" (base32 "10mlajn5xqgdwi7gf9lgszfv609pjp8m24lm97b8xh6fmjlkqi4b")
+ "gui" (base32 "08kzyscqc8hgc1f8q0bhibl44fkq8iiyz12f8bqdhqkcz8nx44sw")
'("gui" "gui-doc" "gui-lib" "tex-table"))
(simple-racket-origin
"gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5")
'("gui-pkg-manager-lib"))
(simple-racket-origin
- "htdp" (base32 "04p2xp4hnnsnmrmvw05fg4fv18k3g2rz5gmgs89sc6g8y886m6zz")
+ "htdp" (base32 "13d8xsvs60d7797w93g14dbdm98bixgy65akayij256pyiwnqwdc")
'("htdp" "htdp-doc" "htdp-lib"))
(simple-racket-origin
"html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x")
@@ -801,7 +809,7 @@ DrRacket IDE, are not included.")
(url "https://github.com/RenaissanceBug/racket-cookies")
(commit %racket-commit)))
(sha256 (base32
- "05lnml9nszcq72k8bi4iwdyplp2iv23ywb2gmrs2hr8837fqi65y"))
+ "1zr31y1gqa3kkrwlf9bnw08nzij00x1l70qhfbpz0239bksn4mmb"))
(file-name
(git-file-name "RenaissanceBug-racket-cookies" %racket-version)))
'("net-cookies" "net-cookies-doc" "net-cookies-lib"))
@@ -827,7 +835,7 @@ DrRacket IDE, are not included.")
"pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1")
'("pconvert-lib"))
(simple-racket-origin
- "pict" (base32 "1vsn91r167wssaflzz080nsrcf0jfhl2a48zcj9hvdb77arbj8kc")
+ "pict" (base32 "1ghds5by8i0k2djbig82xqp2ssy3nvdwm45l8ibsr99y0ay6z7gv")
'("pict" "pict-doc" "pict-lib"))
(simple-racket-origin
"pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x")
@@ -842,7 +850,7 @@ DrRacket IDE, are not included.")
"planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9")
'("planet" "planet-doc" "planet-lib"))
(simple-racket-origin
- "plot" (base32 "17fhsymy884xr4jqk585rm5kwdgkgz0635916gh5y0fsnp5pir70")
+ "plot" (base32 "0jq9a366g7b2c9vp6yvpqikvklgyd6p4xj6v224g99yj8cgip40b")
'("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib"))
(simple-racket-origin
"preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg")
@@ -856,11 +864,8 @@ DrRacket IDE, are not included.")
(uri (git-reference
(url "https://github.com/Metaxal/quickscript")
(commit %racket-commit)))
- (snippet
- ;; See https://github.com/Metaxal/quickscript/issues/73
- #~(delete-file "register.rkt"))
(sha256 (base32
- "0v27qknghfi0058vk8xwwlwqgqwdsxxmprrmag64cyygdz95sxym"))
+ "1ahznb9rhgaixd3fqn0pxighw4zbflwqc84r2yvn5nsfbp0mrq9b"))
(file-name (git-file-name "Metaxal-quickscript" %racket-version)))
'(("quickscript" ".")))
(simple-racket-origin
@@ -884,7 +889,7 @@ DrRacket IDE, are not included.")
"racklog" (base32 "0fr8xij0sssfnmwn6dfdi4jj3l62f2yj3jrjljv13kaycrfls032")
'(("racklog" ".")))
(simple-racket-origin
- "rackunit" (base32 "0axcy8283qqmcrhwwn0q0sfjznc8gkwbx06j41anayi5v9xp4698")
+ "rackunit" (base32 "06kpl51alm7akgmmh110ya28zgmx3as0szykfv2gwqmf7xcms1b7")
'("rackunit"
"rackunit-doc"
"rackunit-gui"
@@ -900,7 +905,7 @@ DrRacket IDE, are not included.")
"realm" (base32 "0rlvwyd6rpyl0zda4a5p8dp346fvqzc8555dgfnrhliymkxb6x4g")
'(("realm" ".")))
(simple-racket-origin
- "redex" (base32 "016m2fvfxjnx7l0ai6jlcmz4s8xipbq9k58fq7109akj9mvczgp9")
+ "redex" (base32 "1mwnxbfk2vbalndlq0996rzdi3a2z48m5xnb1ywzlsvnydrnkrk2")
'("redex"
"redex-benchmark"
"redex-doc"
@@ -915,7 +920,7 @@ DrRacket IDE, are not included.")
"scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x")
'(("scheme-lib" ".")))
(simple-racket-origin
- "scribble" (base32 "0igcjgmpzbzzn1jfpa4jq18lqyhr6dsdwnbv6zv87x8cib9rwqrh")
+ "scribble" (base32 "0rk5q9r9fw826ag0npk5cwkzkapj2p243wwm9gn2l7j7cr6z1rvb")
'("scribble"
"scribble-doc"
"scribble-html-lib"
@@ -947,7 +952,7 @@ DrRacket IDE, are not included.")
"snip" (base32 "1b90ccqilnyszbphms3svm3c7dbk7870ifybjjipss5srb32mj2d")
'("snip" "snip-lib"))
(simple-racket-origin
- "typed-racket" (base32 "17mz7zqrialxfzkynj7h3kfhawdd6cgs24ns437gz087g2pmwi1x")
+ "typed-racket" (base32 "0vdsyr0qhpvac6h8mfdy6vqrsqsfa7kpg39n3h637hccxyfxv63f")
'("source-syntax"
"typed-racket"
"typed-racket-compatibility"
@@ -958,7 +963,7 @@ DrRacket IDE, are not included.")
"srfi" (base32 "1l3nr3a8mlp505aaxlyp4i8jfijmpyl9h1wwv8hzm4kzzjv4sl8p")
'("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib"))
(simple-racket-origin
- "string-constants" (base32 "1djbjhsimikk18dkrajrlgjhlqfyvna4nz64ha4wjcaj5cfgcvdx")
+ "string-constants" (base32 "0225f1wmq1n9f2x1pg50fssdnd4bpc11q1jgsykwf4ik4fnaa520")
'("string-constants" "string-constants-doc" "string-constants-lib"))
(simple-racket-origin
"swindle" (base32 "1q8vdxpzczzwdw2mys2caab45yvadmqkixsr29k8pl03n8dsg8j9")
@@ -973,7 +978,7 @@ DrRacket IDE, are not included.")
"unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y")
'("unix-socket" "unix-socket-doc" "unix-socket-lib"))
(simple-racket-origin
- "web-server" (base32 "0vhw1hwdcv1ham086dy0nkl4r0a5qvsimw8048zjakvax7q4shsg")
+ "web-server" (base32 "1i4sxmcgj00ml7czsbyx1433hgf091n1p54xyal2f1fsskx5fg0y")
'("web-server" "web-server-doc" "web-server-lib"))
(simple-racket-origin
"wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b")
diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm
index 48f6139f1f..4b1d44e58e 100644
--- a/gnu/packages/rsync.scm
+++ b/gnu/packages/rsync.scm
@@ -40,14 +40,14 @@
(define-public rsync
(package
(name "rsync")
- (version "3.2.7")
+ (version "3.3.0")
(source (origin
(method url-fetch)
(uri (string-append "https://rsync.samba.org/ftp/rsync/src/rsync-"
version ".tar.gz"))
(sha256
(base32
- "1fzj8q9w8bgvi3j162rlqymbdx5cgnk29dszik2ph26idqzrszaf"))))
+ "146z85qd16446k8hzr9n4fzf0fzjjsg22qralxwdcclcf2kfk6bk"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/specifications.scm b/gnu/packages/specifications.scm
index ce57a68bdb..125d794932 100644
--- a/gnu/packages/specifications.scm
+++ b/gnu/packages/specifications.scm
@@ -51,3 +51,59 @@
base-encoded (e.g., @code{base32}, @code{base36}, @code{base64}, @code{base58}, etc.)
binary appearing in text.")
(license (list license:expat license:cc-by-sa3.0)))))
+
+(define-public specification-multicodec
+ (let ((commit "36789e0856be22fa02f4dc55582ec670b2b4318b")
+ (revision "0"))
+ (package
+ (name "specification-multicodec")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/multicodec")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0dyawicg8q4f8g6xj5bsj5l3c8rb8mrafjkrabc6a3p65845wp2r"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan '(("." "share/multicodec/"))
+ #:phases (modify-phases %standard-phases
+ (delete 'strip))))
+ (home-page "https://github.com/multiformats/multicodec")
+ (synopsis "Compact self-describing codecs")
+ (description
+ "Multicodec is an agreed-upon codec table. It is designed for use in binary
+representations, such as keys or identifiers (i.e @url{https://github.com/ipld/cid,
+CID}).")
+ (license (list license:expat license:cc-by-sa3.0)))))
+
+(define-public specification-multihash
+ (let ((commit "931febb97565395b1b6cd39ac677799df265a9e7")
+ (revision "0"))
+ (package
+ (name "specification-multihash")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/multihash")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1axr35z3iz061fng0170bh873vy20rj2mspznycxm1qkrkrh7p5j"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan '(("." "share/multihash/"))
+ #:phases (modify-phases %standard-phases
+ (delete 'strip))))
+ (home-page "https://github.com/multiformats/multihash")
+ (synopsis "Self-describing hashes")
+ (description
+ "Multihash is a protocol for differentiating outputs from various
+well-established cryptographic hash functions, addressing size + encoding
+considerations.")
+ (license (list license:expat license:cc-by-sa3.0)))))
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index 9939d2f165..36b67ccd93 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 qblade <qblade@protonmail.com>
+;;; Copyright © 2024 Sébastien Lerique <sl@eauchat.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -51,6 +52,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages swig)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils))
@@ -236,15 +238,16 @@ efficiency through the use of a compact vector representation of n-grams.")
(define-public speech-dispatcher
(package
(name "speech-dispatcher")
- (version "0.11.4")
+ (version "0.11.5")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/brailcom/speechd/releases"
- "/download/" version "/speech-dispatcher-"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brailcom/speechd")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1fb6ypnr8r3905b68bbplg1qcaw3f6br2yzxkk4bb79dnwdj42cc"))))
+ "0z2rb1yi06v145sr2h69rxbxzrsfrk198cw6bgpf8wj2njfh3555"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-static"
@@ -253,7 +256,12 @@ efficiency through the use of a compact vector representation of n-grams.")
"--with-voxin=no" "--with-ibmtts=no"
"--with-kali=no" "--with-baratinoo=no")))
(native-inputs
- (list gettext-minimal pkg-config texinfo))
+ (list autoconf
+ automake
+ gettext-minimal
+ libtool
+ pkg-config
+ texinfo))
(inputs
(list dotconf
espeak-ng
@@ -261,7 +269,8 @@ efficiency through the use of a compact vector representation of n-grams.")
libltdl
libsndfile
pulseaudio
- python))
+ python
+ python-xdg))
(synopsis "Common interface to speech synthesizers")
(description "The Speech Dispatcher project provides a high-level
device independent layer for access to speech synthesis through a simple,
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index e076cdba44..ba8ff10059 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1624,13 +1624,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
(define-public r-knitr
(package
(name "r-knitr")
- (version "1.45")
+ (version "1.46")
(source (origin
(method url-fetch)
(uri (cran-uri "knitr" version))
(sha256
(base32
- "1yw4fnzm8lvh6kpcdlvr1fahz7421h5mmaris58zlgn57fjxwbpf"))))
+ "0ng8kw79csvcg46lsm3yf147jh6rf91jbj8qlryaihd8jcyc6lcg"))))
(build-system r-build-system)
(propagated-inputs
(list r-evaluate r-highr r-xfun r-yaml))
@@ -3184,13 +3184,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo
(package
(name "r-rcpparmadillo")
- (version "0.12.8.1.0")
+ (version "0.12.8.2.0")
(source (origin
(method url-fetch)
(uri (cran-uri "RcppArmadillo" version))
(sha256
(base32
- "0ax4812dm33c67ckd902qabis3dgqmpkchk4s30bshnfv4fxx1z2"))))
+ "0w1c0mpqqf6m2gk4221kjxx299bs4qpxn867fgnkpg69kj3mh8gd"))))
(properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system)
(propagated-inputs
@@ -3834,13 +3834,13 @@ using the multicore functionality of the parallel package.")
"datatables-extensions/Buttons"))))
(package
(name "r-dt")
- (version "0.32")
+ (version "0.33")
(source (origin
(method url-fetch)
(uri (cran-uri "DT" version))
(sha256
(base32
- "0nvj2bc441b9h13085fa7q281f86lgx4k0d8lr64xgdpbmbvkl21"))
+ "1f17gdqjk1aj7vwjvv3363k8lnsvc6ssh4s3gy1prnz33kdxlig1"))
(modules '((guix build utils)
(ice-9 match)))
(snippet
@@ -6888,19 +6888,35 @@ Java package that provides routines for various statistical distributions.")
(((string-append "^\\(ert-deftest " test-name ".*")
all)
(string-append all "(skip-unless nil)\n"))
- ...)))))
+ ...))))
+ (disable-etests ;different test syntax
+ (syntax-rules ()
+ ((_ file ())
+ (syntax-error "test names list must not be empty"))
+ ((_ file (test-name ...))
+ (emacs-batch-edit-file file
+ '(progn
+ (mapc (lambda (test)
+ (goto-char (point-min))
+ (search-forward
+ (format "etest-deftest %s " test))
+ (beginning-of-line)
+ (kill-sexp))
+ (list test-name ...))
+ (basic-save-buffer)))))))
(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-eval-sink-freeze-test"
- "ess-r-eval-ns-env-roxy-tracebug-test"
"ess-r-load-ESSR-github-fetch-no"
"ess-r-load-ESSR-github-fetch-yes"
"ess-set-working-directory-test"
- "ess-test-r-startup-directory")))))
+ "ess-test-r-startup-directory"))
+ (disable-etests "test/ess-test-r-eval.el"
+ ("ess-r-eval-ns-env-roxy-tracebug-test"
+ "ess-r-eval-sink-freeze-test")))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests? (invoke "make" "test"))))))))
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 4d2f7ef9f0..366a5f0ebb 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -353,55 +353,6 @@ structs in the Go programming language.")
(home-page "https://github.com/d4l3k/messagediff")
(license expat)))
-(define-public go-github-com-gobwas-glob
- (package
- (name "go-github-com-gobwas-glob")
- (version "0.2.3")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/gobwas/glob")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/gobwas/glob"))
- (synopsis "Go globbing library")
- (description "This package provides a Go implementation of globs.")
- (home-page "https://github.com/gobwas/glob")
- (license expat)))
-
-
-(define-public go-github-com-golang-groupcache-lru
- (let ((commit "869f871628b6baa9cfbc11732cdf6546b17c1298")
- (revision "2"))
- (package
- (name "go-github-com-golang-groupcache-lru")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/golang/groupcache")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0r4nk8129bvx50qb4xzjaay39b2h6k7cbdqqzdlanmc82ygczsbw"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/golang/groupcache/lru"
- #:unpack-path "github.com/golang/groupcache"))
- (synopsis "Groupcache is a caching and cache-filling library")
- (description "Groupcache is a caching and cache-filling library, intended
-as a replacement for memcached in many cases. It provides a data loading
-mechanism with caching and de-duplication that works across a set of peer
-processes.")
- (home-page "https://github.com/golang/groupcache")
- (license asl2.0))))
-
(define-public go-github-com-jackpal-gateway
(package
(name "go-github-com-jackpal-gateway")
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index ff42f748ea..9d3b93faf9 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -69,6 +69,7 @@
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages java)
@@ -84,7 +85,6 @@
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages slang)
- #:use-module (gnu packages syncthing)
#:use-module (gnu packages web)
#:use-module (gnu packages xorg))
@@ -1432,23 +1432,50 @@ of a Unix terminal to HTML code.")
(commit (string-append "v" version))))
(sha256
(base32 "0d07fwha2220m8j24h527xl0gnl3svvyaywflgk5292d6g49ach2"))
- (file-name (git-file-name name version))))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ ;; Remove some available vendor modules.
+ ;; TODO: Pack all of them and remove vendor directory completely.
+ (snippet
+ '(for-each
+ delete-file-recursively
+ (list "vendor/github.com/fatih/color"
+ "vendor/github.com/mitchellh/mapstructure"
+ "vendor/github.com/gobwas/glob"
+ "vendor/github.com/mitchellh/go-homedir"
+ "vendor/github.com/olekukonko/tablewriter"
+ "vendor/github.com/spf13/afero"
+ "vendor/github.com/urfave/cli"
+ "vendor/github.com/yuin/goldmark"
+ "vendor/golang.org/x/net/html"
+ "vendor/gopkg.in/ini.v1"
+ "vendor/gopkg.in/yaml.v2")))))
(build-system go-build-system)
+ (arguments
+ (list #:install-source? #f
+ #:import-path "github.com/errata-ai/vale"))
(native-inputs
- (list go-github-com-mitchellh-mapstructure
+ (list go-github-com-fatih-color
+ go-github-com-mitchellh-mapstructure
+ go-github-com-gobwas-glob
+ ;; go-github-com-jdkato-prose
+ ;; go-github-com-jdkato-regexp
+ go-github-com-mitchellh-go-homedir
go-github-com-olekukonko-tablewriter
+ ;; go-github-com-remeh-sizedwaitgroup
go-github-com-spf13-afero
- go-github-com-urfave-cli))
- (arguments
- `(#:import-path "github.com/errata-ai/vale"
- #:install-source? #f))
+ go-github-com-urfave-cli
+ go-github-com-yuin-goldmark
+ go-golang-org-x-net-html
+ go-gopkg-in-ini-v1
+ go-gopkg-in-yaml-v2))
(home-page "https://github.com/errata-ai/vale")
(synopsis "Fully customizable syntax-aware linter that focuses on your style")
(description
"Vale is a fully extensible linter that focuses on your own writing style
by making use of rules in individual YAML files. It is syntax-aware on markup
-languages such as HTML, Markdown, Asciidoc, and reStructuredText. The community
-around it also has a list of style guides implemented with Vale in
+languages such as HTML, Markdown, Asciidoc, and reStructuredText. The
+community around it also has a list of style guides implemented with Vale in
@url{https://github.com/errata-ai/styles, their styles repo}.")
(license license:expat)))
@@ -1504,17 +1531,15 @@ files for valid UTF-8 use and to report which line endings they use.")
"0cd1ikxsypjqisfnmr7zix3g7x8p892w77086465chyd39gpk97b"))))
(build-system go-build-system)
(arguments
- '(#:import-path "github.com/aswinkarthik/csvdiff"))
- (propagated-inputs
- (list go-golang-org-x-sys
- go-github-com-stretchr-testify
- go-github-com-spf13-cobra
- go-github-com-spf13-afero
- go-github-com-spaolacci-murmur3
- go-github-com-mattn-go-colorable
+ (list
+ #:install-source? #f
+ #:import-path "github.com/aswinkarthik/csvdiff"))
+ (native-inputs
+ (list go-github-com-cespare-xxhash
go-github-com-fatih-color
- go-github-com-cespare-xxhash
- go-github-com-oneofone-xxhash))
+ go-github-com-spf13-afero
+ go-github-com-spf13-cobra
+ go-github-com-stretchr-testify))
(home-page "https://github.com/aswinkarthik/csvdiff")
(synopsis "Fast diff tool for comparing CSV files")
(description "@code{csvdiff} is a diff tool to compute changes between two
@@ -1535,6 +1560,60 @@ JSON for post-processing
(define-public go-github-com-aswinkarthik-csvdiff
(deprecated-package "go-github-com-aswinkarthik-csvdiff" csvdiff))
+(define-public miller
+ (package
+ (name "miller")
+ (version "6.12.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/johnkerl/miller")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "195lgayq5z7ndag3w495fs618pkrhz426kg0kp3s5sa68vr1madp"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.19
+ #:install-source? #f
+ #:import-path "github.com/johnkerl/miller/cmd/mlr"
+ #:unpack-path "github.com/johnkerl/miller"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; TODO: Build all provided documentation.
+ (add-after 'install 'install-man-pages
+ (lambda* (#:key unpack-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" unpack-path)
+ (invoke "make" (string-append "PREFIX=" #$output)
+ "-C" "man" "install")))))))
+ (native-inputs
+ (list go-github-com-facette-natsort
+ go-github-com-johnkerl-lumin
+ go-github-com-kballard-go-shellquote
+ go-github-com-klauspost-compress
+ go-github-com-lestrrat-go-strftime
+ go-github-com-mattn-go-isatty
+ ;; Optional, not packed in Guix
+ ;; go-github-com-nine-lives-later-go-windows-terminal-sequences
+ go-github-com-pkg-profile
+ go-github-com-stretchr-testify
+ go-golang-org-x-sys
+ go-golang-org-x-term
+ go-golang-org-x-text
+ python-wrapper
+ python-mkdocs-material
+ ruby))
+ (home-page "https://miller.readthedocs.io/")
+ (synopsis "Text-formatted data processing tool")
+ (description
+ "Miller (@command{mlr}) is like @command{awk}, @command{sed},
+@command{cut}, @command{join}, and @command{sort} for data formats such as
+CSV, TSV, JSON, JSON Lines, and positionally-indexed. It supports format
+conversion and pretty-printing.")
+ (license license:bsd-2)))
+
(define-public ack
(package
(name "ack")
diff --git a/gnu/packages/toolkits.scm b/gnu/packages/toolkits.scm
index 9d002ecab1..3ba3399899 100644
--- a/gnu/packages/toolkits.scm
+++ b/gnu/packages/toolkits.scm
@@ -19,6 +19,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages toolkits)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gl)
#:use-module (gnu packages sdl)
@@ -27,6 +28,7 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module (guix git-download))
(define-public imgui
@@ -181,3 +183,50 @@ standard operating system features.")
(inputs
(modify-inputs (package-inputs imgui)
(delete "freetype")))))
+
+(define-public nuklear
+ (package
+ (name "nuklear")
+ (version "4.12.0")
+ (home-page "https://github.com/Immediate-Mode-UI/Nuklear")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "13cswwdys4hqdvbm4g4b9l269i16s7c4204j16v67ghj3b4mjifg"))
+ (snippet #~(begin (delete-file "nuklear.h")
+ (delete-file "doc/index.html")))))
+ (build-system python-build-system)
+ (arguments
+ (list #:tests? #f ;no tests
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (with-directory-excursion "src"
+ (invoke "./paq.sh"))
+ (with-directory-excursion "doc"
+ (with-input-from-file "../nuklear.h"
+ (lambda _
+ (with-output-to-file "index.html"
+ (lambda _
+ (invoke "stddoc"))))))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "nuklear.h"
+ (string-append #$output "/include"))
+ (install-file "doc/index.html"
+ (string-append #$output
+ "/share/doc")))))))
+ (native-inputs (list stddoc))
+ (synopsis "Graphical user interface toolkit written in ANSI C")
+ (description "This package provides an immediate-mode graphical user
+interface toolkit. It was designed as an embeddable user interface
+for applications and does not have any dependencies, a default render backend
+or OS window/input handling. The library is self contained in one single header
+file and can be used either in header only mode or in implementation mode.")
+ (license (list license:unlicense license:expat))))
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 543f67acb8..0cd2d9972c 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -99,6 +99,7 @@
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages suckless)
#:use-module (gnu packages tcl)
#:use-module (gnu packages text-editors)
#:use-module (gnu packages tls)
@@ -594,7 +595,7 @@ driven and does not detract you from your daily work.")
(define-public nyxt
(package
(name "nyxt")
- (version "3.11.5")
+ (version "3.11.6")
(source
(origin
(method git-fetch)
@@ -603,7 +604,7 @@ driven and does not detract you from your daily work.")
(commit version)))
(sha256
(base32
- "1f7pvh5bzkasbcfydd82pg7qn987ysbxk3j58dxzq2nzi05s0y4p"))
+ "0q7kf1a42gfvgv54hwhgiyvnsi6qhjdl1k88c3wxr1bj4ffhpvm3"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -951,21 +952,21 @@ with a terminal interface, for Gemini also a GUI is available.")
(define-public telescope
(package
(name "telescope")
- (version "0.8.1")
+ (version "0.9")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/omar-polo/telescope/releases/download/"
version "/telescope-" version ".tar.gz"))
(sha256
- (base32 "1fblm3mjddhjmcj1c065n9440n72ld037bdjdlyk1fpwd240m1pa"))))
+ (base32 "1xbwdm3xcahwl6sjqx6f8hhx7nyzyygkjsnxglwxazp8zlmchqy9"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ;no tests
(native-inputs
(list gettext-minimal pkg-config))
(inputs
- (list libevent libressl ncurses))
+ (list libgrapheme libressl ncurses))
(home-page "https://telescope.omarpolo.com/")
(synopsis "Gemini client with a terminal interface")
(description "Telescope is a w3m-like browser for Gemini.")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 81d8462761..74059a2691 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -6157,14 +6157,14 @@ basic eye-candy effects.")
(define-public xpra
(package
(name "xpra")
- (version "5.0.7")
+ (version "5.0.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.xpra.org/src/xpra-"
version ".tar.xz"))
(sha256
- (base32 "0rkcsv0b55xbvkqi38nm01yxc09f7l9nj7xnp8v23rn6bp86m8mr"))
+ (base32 "0ml9nv6gwrqgyrn3hp5kkxsbdl5fpz5w8vjsvn0qfdsgbvq617wy"))
(patches (search-patches "xpra-5.0-systemd-run.patch"
"xpra-5.0-install_libs.patch"))))
(build-system python-build-system)
diff --git a/gnu/tests/sddm.scm b/gnu/tests/sddm.scm
new file mode 100644
index 0000000000..87059112ee
--- /dev/null
+++ b/gnu/tests/sddm.scm
@@ -0,0 +1,112 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Richard Sent <richard@freakingpenguin.com>.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu tests sddm)
+ #:use-module (gnu bootloader)
+ #:use-module (gnu bootloader grub)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages ocr)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu services)
+ #:use-module (gnu services desktop)
+ #:use-module (gnu services sddm)
+ #:use-module (gnu services xorg)
+ #:use-module (gnu system)
+ #:use-module (gnu system vm)
+ #:use-module (gnu tests)
+ #:use-module (guix gexp)
+ #:use-module (guix modules)
+ #:use-module (srfi srfi-1)
+ #:export (%test-sddm))
+
+(define %sddm-os
+ (operating-system
+ (inherit %simple-os)
+ (services
+ (cons* (service sddm-service-type)
+ (modify-services %desktop-services
+ (delete gdm-service-type))))))
+
+(define (run-sddm-test)
+ "Run tests in %SDDM-OS."
+
+ (define os (marionette-operating-system
+ %sddm-os
+ #:imported-modules (source-module-closure
+ '((gnu services herd)))))
+
+ (define vm (virtual-machine
+ (operating-system os)
+ ;; Test may nondeterministically fail with default memory size.
+ (memory-size 1024)))
+
+ (define test
+ (with-imported-modules (source-module-closure
+ '((gnu build marionette)))
+ #~(begin
+ (use-modules (gnu build marionette)
+ (srfi srfi-26)
+ (srfi srfi-64))
+
+ (let ((marionette (make-marionette (list #$vm))))
+
+ (test-runner-current (system-test-runner #$output))
+ (test-begin "sddm")
+
+ (test-assert "service is running"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ ;; sddm's shepherd service is called xorg-server
+ (start-service 'xorg-server))
+ marionette))
+
+ (test-assert "service can be stopped"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (stop-service 'xorg-server))
+ marionette))
+
+ (test-assert "service can be restarted"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (restart-service 'xorg-server))
+ marionette))
+
+ (test-assert "login screen up"
+ ;; GNU Ocrad fails to recognize any text, so use Tesseract.
+ (wait-for-screen-text marionette
+ ;; Login button not recognized, use SDDM's
+ ;; welcome message.
+ (cut string-contains <> (string-append "Welcome to "
+ #$(operating-system-host-name %sddm-os)))
+ #:ocr #$(file-append tesseract-ocr
+ "/bin/tesseract")
+ #:timeout 60))
+
+ (test-end)))))
+
+ (gexp->derivation "sddm-test" test))
+
+(define %test-sddm
+ (system-test
+ (name "sddm")
+ (description "Basic tests for the SDDM service.")
+ (value (run-sddm-test))))
diff --git a/po/doc/local.mk b/po/doc/local.mk
index dd6ba30133..77ec4721e3 100644
--- a/po/doc/local.mk
+++ b/po/doc/local.mk
@@ -1,6 +1,7 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
# Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+# Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -44,12 +45,19 @@ POT_OPTIONS = \
--msgid-bugs-address "bug-guix@gnu.org"
%D%/%.pot: $(srcdir)/doc/%.texi
- $(AM_V_PO4A)$(PO4A_UPDATEPO) -M UTF-8 -f texinfo -m "$<" \
- -p "$@" $(POT_OPTIONS) && \
- touch $@
+ $(AM_V_PO4A)$(PO4A_UPDATEPO) -M UTF-8 -f texinfo -m "$<" \
+ -p "$@-t" $(POT_OPTIONS)
+ date="$$(git log --pretty=format:%ci -n 1 -- $< 2>/dev/null \
+ || echo $(SOURCE_DATE_EPOCH))" \
+ sed -ri -e "s,^(.POT-Creation-Date: )[^\]*,\1$$date," "$@-t"
+ mv "$@-t" "$@"
%D%/guix-manual.pot: %D%/guix.pot %D%/contributing.pot
- msgcat $^ > $@
+ msgcat $^ > "$@-t"
+ date="$$(git log --pretty=format:%ci -n 1 -- $< 2>/dev/null \
+ || echo $(SOURCE_DATE_EPOCH))" \
+ sed -ri "s,^(.POT-Creation-Date: )[^\]*,\1$$date," "$@-t"
+ mv "$@-t" "$@"
doc-pot-update: %D%/guix-manual.pot %D%/guix-cookbook.pot
.PHONY: doc-pot-update
diff --git a/po/guix/Makevars b/po/guix/Makevars
index 88a4e8c7bc..4cfd0f431d 100644
--- a/po/guix/Makevars
+++ b/po/guix/Makevars
@@ -5,6 +5,10 @@ DOMAIN = guix
subdir = po/guix
top_builddir = ../..
+# We use our xgettext.scm wrapper to produce .PO files reproducibly using a
+# timestamp from Git.
+XGETTEXT:=$(top_srcdir)/build-aux/xgettext.scm
+
# These options get passed to xgettext. We want to catch standard
# gettext uses, and SRFI-35 error condition messages. In C++ code
# we use 'n_' instead of the more usual 'N_' for no-ops.
@@ -14,7 +18,8 @@ XGETTEXT_OPTIONS = \
--keyword=message \
--keyword=description \
--keyword=synopsis \
- --keyword=n_
+ --keyword=n_ \
+ --xgettext=$(XGETTEXT_)
COPYRIGHT_HOLDER = the authors of Guix (msgids)
diff --git a/po/packages/Makevars b/po/packages/Makevars
index 65912786d8..0ba4f1ba7e 100644
--- a/po/packages/Makevars
+++ b/po/packages/Makevars
@@ -6,12 +6,18 @@ DOMAIN = guix-packages
subdir = po/packages
top_builddir = ../..
+# We use our xgettext.scm wrapper to produce .PO files reproducibly using a
+# timestamp from Git. The `real' xgettext is passed as an option to
+# xgettext.scm
+XGETTEXT:=$(top_srcdir)/build-aux/xgettext.scm
+
# These options get passed to xgettext. We want to catch exclusively package
# synopses and descriptions.
XGETTEXT_OPTIONS = \
--language=Scheme --from-code=UTF-8 \
- --keyword=synopsis --keyword=description \
- --keyword=output-synopsis:2
+ --keyword=synopsis --keyword=description \
+ --keyword=output-synopsis:2 \
+ --xgettext=$(XGETTEXT_)
COPYRIGHT_HOLDER = the authors of Guix (msgids)