summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2024-04-30 18:18:27 +0200
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2024-04-30 18:18:29 +0200
commit8d835489f24832e9a4b40b1b77715bdb14fb3190 (patch)
tree7ab252f84f44cc300152a0e64a7c32f2fe1b170e
parentde0bdf1b1c8d1d70ebec920763864a87a33e18fd (diff)
parentdf3d30819e650a490ef39dd6692740bb13263c75 (diff)
Merge branch 'master' into gnome-team.
-rw-r--r--.guix-authorizations6
-rw-r--r--Makefile.am86
-rw-r--r--NEWS4
-rwxr-xr-xbootstrap8
-rwxr-xr-xbuild-aux/mdate-from-git.scm89
-rwxr-xr-xbuild-aux/xgettext.scm90
-rw-r--r--configure.ac10
-rw-r--r--doc/contributing.texi204
-rw-r--r--doc/guix-cookbook.texi8
-rw-r--r--doc/guix.texi661
-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.mk63
-rwxr-xr-xetc/guix-install.sh15
-rw-r--r--etc/news.scm42
-rwxr-xr-xetc/teams.scm8
-rw-r--r--gnu/ci.scm12
-rw-r--r--gnu/home/services/shells.scm14
-rw-r--r--gnu/home/services/shepherd.scm7
-rw-r--r--gnu/installer/services.scm5
-rw-r--r--gnu/local.mk23
-rw-r--r--gnu/packages/admin.scm1
-rw-r--r--gnu/packages/algebra.scm27
-rw-r--r--gnu/packages/arcan.scm73
-rw-r--r--gnu/packages/astronomy.scm4
-rw-r--r--gnu/packages/avr-xyz.scm2
-rw-r--r--gnu/packages/axoloti.scm12
-rw-r--r--gnu/packages/backup.scm80
-rw-r--r--gnu/packages/batik.scm1
-rw-r--r--gnu/packages/bioconductor.scm46
-rw-r--r--gnu/packages/bioinformatics.scm180
-rw-r--r--gnu/packages/browser-extensions.scm12
-rw-r--r--gnu/packages/build-tools.scm11
-rw-r--r--gnu/packages/certs.scm16
-rw-r--r--gnu/packages/check.scm25
-rw-r--r--gnu/packages/chez.scm1024
-rw-r--r--gnu/packages/code.scm130
-rw-r--r--gnu/packages/commencement.scm11
-rw-r--r--gnu/packages/compression.scm59
-rw-r--r--gnu/packages/conky.scm5
-rw-r--r--gnu/packages/cpio.scm4
-rw-r--r--gnu/packages/cpp.scm94
-rw-r--r--gnu/packages/cran.scm360
-rw-r--r--gnu/packages/cross-base.scm25
-rw-r--r--gnu/packages/cross-toolchain.scm5
-rw-r--r--gnu/packages/crypto.scm27
-rw-r--r--gnu/packages/curl.scm2
-rw-r--r--gnu/packages/data-language.scm90
-rw-r--r--gnu/packages/debug.scm51
-rw-r--r--gnu/packages/diffoscope.scm19
-rw-r--r--gnu/packages/disk.scm46
-rw-r--r--gnu/packages/display-managers.scm10
-rw-r--r--gnu/packages/documentation.scm125
-rw-r--r--gnu/packages/education.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm280
-rw-r--r--gnu/packages/engineering.scm58
-rw-r--r--gnu/packages/file-systems.scm1
-rw-r--r--gnu/packages/finance.scm8
-rw-r--r--gnu/packages/firmware.scm92
-rw-r--r--gnu/packages/fltk.scm4
-rw-r--r--gnu/packages/fonts.scm125
-rw-r--r--gnu/packages/freedesktop.scm64
-rw-r--r--gnu/packages/game-development.scm81
-rw-r--r--gnu/packages/games.scm190
-rw-r--r--gnu/packages/gdb.scm4
-rw-r--r--gnu/packages/geo.scm109
-rw-r--r--gnu/packages/gimp.scm13
-rw-r--r--gnu/packages/gl.scm64
-rw-r--r--gnu/packages/gnome.scm31
-rw-r--r--gnu/packages/gnucash.scm6
-rw-r--r--gnu/packages/gnunet.scm68
-rw-r--r--gnu/packages/gnuzilla.scm12
-rw-r--r--gnu/packages/golang-build.scm16
-rw-r--r--gnu/packages/golang-check.scm213
-rw-r--r--gnu/packages/golang-crypto.scm133
-rw-r--r--gnu/packages/golang-web.scm308
-rw-r--r--gnu/packages/golang-xyz.scm1037
-rw-r--r--gnu/packages/golang.scm394
-rw-r--r--gnu/packages/gps.scm12
-rw-r--r--gnu/packages/graphics.scm284
-rw-r--r--gnu/packages/gtk.scm85
-rw-r--r--gnu/packages/guile-xyz.scm84
-rw-r--r--gnu/packages/guile.scm21
-rw-r--r--gnu/packages/hardware.scm64
-rw-r--r--gnu/packages/haxe.scm19
-rw-r--r--gnu/packages/image-processing.scm142
-rw-r--r--gnu/packages/image.scm14
-rw-r--r--gnu/packages/ipfs.scm196
-rw-r--r--gnu/packages/irc.scm1
-rw-r--r--gnu/packages/java.scm344
-rw-r--r--gnu/packages/javascript.scm32
-rw-r--r--gnu/packages/jupyter.scm10
-rw-r--r--gnu/packages/kde-frameworks.scm15
-rw-r--r--gnu/packages/kde-internet.scm2
-rw-r--r--gnu/packages/kde-plasma.scm2
-rw-r--r--gnu/packages/kde-utils.scm4
-rw-r--r--gnu/packages/librewolf.scm622
-rw-r--r--gnu/packages/libusb.scm96
-rw-r--r--gnu/packages/linux.scm73
-rw-r--r--gnu/packages/lisp-xyz.scm46
-rw-r--r--gnu/packages/llvm.scm33
-rw-r--r--gnu/packages/loko.scm2
-rw-r--r--gnu/packages/lua.scm219
-rw-r--r--gnu/packages/machine-learning.scm39
-rw-r--r--gnu/packages/magic-wormhole.scm10
-rw-r--r--gnu/packages/mail.scm53
-rw-r--r--gnu/packages/make-bootstrap.scm37
-rw-r--r--gnu/packages/markup.scm117
-rw-r--r--gnu/packages/maths.scm25
-rw-r--r--gnu/packages/maven-parent-pom.scm28
-rw-r--r--gnu/packages/maven.scm197
-rw-r--r--gnu/packages/messaging.scm68
-rw-r--r--gnu/packages/moreutils.scm4
-rw-r--r--gnu/packages/music.scm175
-rw-r--r--gnu/packages/netpbm.scm10
-rw-r--r--gnu/packages/networking.scm6
-rw-r--r--gnu/packages/nss.scm51
-rw-r--r--gnu/packages/ocaml.scm4
-rw-r--r--gnu/packages/package-management.scm29
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/password-utils.scm1
-rw-r--r--gnu/packages/patches/ath9k-htc-firmware-objcopy.patch14
-rw-r--r--gnu/packages/patches/cairo-CVE-2018-19876.patch37
-rw-r--r--gnu/packages/patches/cairo-CVE-2020-35492.patch49
-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/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch103
-rw-r--r--gnu/packages/patches/durden-shadow-arcan.patch42
-rw-r--r--gnu/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch4
-rw-r--r--gnu/packages/patches/gcc-13-cross-system-header-dir.patch32
-rw-r--r--gnu/packages/patches/glslang-install-static-libs.patch61
-rw-r--r--gnu/packages/patches/java-guava-remove-annotation-deps.patch37
-rw-r--r--gnu/packages/patches/java-powermock-fix-java-files.patch192
-rw-r--r--gnu/packages/patches/opencolorio-fix-build-with-gcc11.patch37
-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/xgboost-use-system-dmlc-core.patch14
-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/pdf.scm4
-rw-r--r--gnu/packages/perl.scm43
-rw-r--r--gnu/packages/php.scm9
-rw-r--r--gnu/packages/plotutils.scm508
-rw-r--r--gnu/packages/printers.scm66
-rw-r--r--gnu/packages/profiling.scm4
-rw-r--r--gnu/packages/python-build.scm38
-rw-r--r--gnu/packages/python-compression.scm21
-rw-r--r--gnu/packages/python-crypto.scm36
-rw-r--r--gnu/packages/python-science.scm158
-rw-r--r--gnu/packages/python-web.scm58
-rw-r--r--gnu/packages/python-xyz.scm216
-rw-r--r--gnu/packages/python.scm79
-rw-r--r--gnu/packages/qt.scm113
-rw-r--r--gnu/packages/racket.scm143
-rw-r--r--gnu/packages/radio.scm88
-rw-r--r--gnu/packages/rdesktop.scm4
-rw-r--r--gnu/packages/rsync.scm4
-rw-r--r--gnu/packages/scheme.scm62
-rw-r--r--gnu/packages/sdl.scm6
-rw-r--r--gnu/packages/security-token.scm4
-rw-r--r--gnu/packages/simulation.scm3
-rw-r--r--gnu/packages/specifications.scm109
-rw-r--r--gnu/packages/speech.scm25
-rw-r--r--gnu/packages/statistics.scm66
-rw-r--r--gnu/packages/stb.scm6
-rw-r--r--gnu/packages/suckless.scm44
-rw-r--r--gnu/packages/syncthing.scm72
-rw-r--r--gnu/packages/syndication.scm4
-rw-r--r--gnu/packages/terminals.scm4
-rw-r--r--gnu/packages/text-editors.scm6
-rw-r--r--gnu/packages/textutils.scm118
-rw-r--r--gnu/packages/time.scm38
-rw-r--r--gnu/packages/toolkits.scm49
-rw-r--r--gnu/packages/tor-browsers.scm38
-rw-r--r--gnu/packages/tor.scm4
-rw-r--r--gnu/packages/version-control.scm61
-rw-r--r--gnu/packages/video.scm8
-rw-r--r--gnu/packages/vulkan.scm216
-rw-r--r--gnu/packages/weather.scm3
-rw-r--r--gnu/packages/web-browsers.scm26
-rw-r--r--gnu/packages/web.scm15
-rw-r--r--gnu/packages/wm.scm107
-rw-r--r--gnu/packages/xdisorg.scm8
-rw-r--r--gnu/packages/xfce.scm2
-rw-r--r--gnu/packages/xorg.scm4
-rw-r--r--gnu/services/base.scm15
-rw-r--r--gnu/services/desktop.scm28
-rw-r--r--gnu/services/guix.scm38
-rw-r--r--gnu/services/lightdm.scm35
-rw-r--r--gnu/services/virtualization.scm9
-rw-r--r--gnu/services/xorg.scm78
-rw-r--r--gnu/system.scm35
-rw-r--r--gnu/system/examples/bare-bones.tmpl5
-rw-r--r--gnu/system/examples/desktop.tmpl4
-rw-r--r--gnu/system/examples/lightweight-desktop.tmpl6
-rw-r--r--gnu/system/examples/plasma.tmpl5
-rw-r--r--gnu/system/examples/raspberry-pi-64-nfs-root.tmpl6
-rw-r--r--gnu/system/examples/raspberry-pi-64.tmpl6
-rw-r--r--gnu/system/examples/vm-image.tmpl4
-rw-r--r--gnu/system/images/orangepi-r1-plus-lts-rk3328.scm4
-rw-r--r--gnu/system/images/pine64.scm3
-rw-r--r--gnu/system/install.scm5
-rw-r--r--gnu/system/linux-initrd.scm35
-rw-r--r--gnu/system/locale.scm61
-rw-r--r--gnu/system/mapped-devices.scm19
-rw-r--r--gnu/system/vm.scm7
-rw-r--r--gnu/tests/guix.scm73
-rw-r--r--gnu/tests/reconfigure.scm15
-rw-r--r--gnu/tests/sddm.scm112
-rw-r--r--guix/build/qt-utils.scm3
-rw-r--r--guix/channels.scm56
-rw-r--r--guix/derivations.scm6
-rw-r--r--guix/discovery.scm4
-rw-r--r--guix/download.scm4
-rw-r--r--guix/gexp.scm19
-rw-r--r--guix/git.scm52
-rw-r--r--guix/import/github.scm7
-rw-r--r--guix/import/hackage.scm4
-rw-r--r--guix/import/hexpm.scm7
-rw-r--r--guix/import/opam.scm7
-rw-r--r--guix/import/pypi.scm5
-rw-r--r--guix/import/utils.scm7
-rw-r--r--guix/nar.scm8
-rw-r--r--guix/packages.scm5
-rw-r--r--guix/platforms/xtensa.scm28
-rw-r--r--guix/scripts.scm7
-rw-r--r--guix/scripts/build.scm4
-rw-r--r--guix/scripts/describe.scm4
-rw-r--r--guix/scripts/offload.scm3
-rw-r--r--guix/scripts/pack.scm82
-rw-r--r--guix/scripts/publish.scm25
-rw-r--r--guix/scripts/system.scm31
-rw-r--r--guix/scripts/system/reconfigure.scm4
-rw-r--r--guix/store.scm18
-rw-r--r--guix/store/database.scm5
-rw-r--r--guix/ui.scm22
-rw-r--r--guix/utils.scm17
-rw-r--r--po/doc/local.mk16
-rw-r--r--po/guix/Makevars7
-rw-r--r--po/packages/Makevars10
-rw-r--r--tests/cpio.scm6
-rw-r--r--tests/egg.scm5
-rw-r--r--tests/gexp.scm31
-rw-r--r--tests/opam.scm5
-rw-r--r--tests/publish.scm5
-rw-r--r--tests/store-database.scm6
-rw-r--r--tests/utils.scm3
254 files changed, 11504 insertions, 4781 deletions
diff --git a/.guix-authorizations b/.guix-authorizations
index c52aa39755..8430a2b792 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).
@@ -109,5 +105,7 @@
(;; primary: "C955 CC5D C048 7FB1 7966 40A9 199A F6A3 67E9 4ABB"
"7238 7123 8EAC EB63 4548 5857 167F 8EA5 001A FA9C"
(name "wigust"))
+ ("7EBE A494 60CE 5E2C 0875 7FDB 3B5A A993 E1A2 DFF0"
+ (name "z572"))
("705A 29B7 01EE 410E B6F9 236E 92F1 D22C 608E E7E5"
(name "zimoun"))))
diff --git a/Makefile.am b/Makefile.am
index 1c5688ac13..27d76173e5 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>
@@ -144,6 +144,7 @@ MODULES = \
guix/platforms/powerpc.scm \
guix/platforms/riscv.scm \
guix/platforms/x86.scm \
+ guix/platforms/xtensa.scm \
guix/build-system.scm \
guix/build-system/agda.scm \
guix/build-system/android-ndk.scm \
@@ -723,9 +724,12 @@ EXTRA_DIST += \
build-aux/config.rpath \
build-aux/convert-xref.scm \
build-aux/generate-authors.scm \
+ build-aux/git-version-gen \
+ build-aux/mdate-from-git.scm \
build-aux/test-driver.scm \
build-aux/update-NEWS.scm \
build-aux/update-guix-package.scm \
+ build-aux/xgettext.scm \
doc/build.scm \
etc/disarchive-manifest.scm \
etc/guix-install.sh \
@@ -953,12 +957,48 @@ guix-binary.%.tar.xz:
guix` ; \
cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@"
+# The `dist' target has other dependencies when building from Git
+# to assert and achieve reproducibility.
+if in_git_p
+
+# 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
+
+# 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 # !GUIX_ALLOW_IRREPRODUCIBLE_TARBALL
+ endif # PACKAGE_VERSION != git_version
+ endif # MAKECMDGOALS dist
+
+else # !in_git_p
-# The dependency on doc-pot-update is to generate the .pot files, which are
-# not checked in.
dist: doc-pot-update
-dist-hook: gen-ChangeLog gen-AUTHORS gen-tarball-version
+ ifeq ($(MAKECMDGOALS),dist)
+$(warning Not using Git, tarball will likely be irreproducible!)
+ endif # MAKECMDGOALS dist
+endif # !in_git_p
+
+dist-hook: gen-tarball-version
dist-hook: assert-no-store-file-names
distcheck-hook: assert-binaries-available assert-final-inputs-self-contained
@@ -970,22 +1010,25 @@ $(top_srcdir)/.version: config.status
gen-tarball-version:
echo $(VERSION) > "$(distdir)/.tarball-version"
+ echo $(SOURCE_DATE_EPOCH) > $(distdir)/.tarball-timestamp
gen-ChangeLog:
- $(AM_V_GEN)if test -d .git; then \
- $(top_srcdir)/build-aux/gitlog-to-changelog \
- > $(distdir)/ChangeLog.tmp; \
- rm -f $(distdir)/ChangeLog; \
- mv $(distdir)/ChangeLog.tmp $(distdir)/ChangeLog; \
- fi
+ $(AM_V_GEN)set -e; \
+ export LC_ALL=en_US.UTF-8; \
+ export TZ=UTC0; \
+ $(top_srcdir)/build-aux/gitlog-to-changelog \
+ > $(distdir)/ChangeLog.tmp; \
+ rm -f $(distdir)/ChangeLog; \
+ mv $(distdir)/ChangeLog.tmp $(distdir)/ChangeLog;
gen-AUTHORS:
- $(AM_V_GEN)if test -d .git; then \
+ $(AM_V_GEN)set -e; \
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"; \
- fi
+ "$(top_srcdir)" "$(distdir)/AUTHORS";
# Like 'dist', but regenerate 'configure' so we get an up-to-date
# 'PACKAGE_VERSION' string. (In Gnulib, 'GNUmakefile' has a special trick to
@@ -1002,6 +1045,18 @@ 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} \
+ --format=ustar \
+ --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)
@@ -1201,7 +1256,12 @@ COMMIT_MSG_MAGIC = VGhpcyBpcyB0aGUgY29tbWl0LW1zZyBob29rIG9mIEd1aXg=
cp etc/git/commit-msg $@; \
fi
+# The etc/git/ config files are not distributed and have no use when building
+# from a tarball. Do not add dependencies on these to *_DATA when building
+# from a tarball, as that breaks the build.
+if in_git_p
nodist_noinst_DATA = .git/hooks/pre-push .git/config .git/hooks/commit-msg
+endif
# Downloading up-to-date PO files.
diff --git a/NEWS b/NEWS
index 79c80cf949..308b82b976 100644
--- a/NEWS
+++ b/NEWS
@@ -4,7 +4,7 @@
Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
-Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Copyright © 2021, 2022, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
Copying and distribution of this file, with or without modification,
@@ -16,6 +16,8 @@ Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 1.5.0 (since 1.4.0)
** Package management
*** New ‘rpm’ format for the ‘guix pack’ command
+** Distribution
+*** ‘nss-certs’ is now included in ‘%base-packages’
* Changes in 1.4.0 (since 1.3.0)
** Package management
*** New ‘guix home’ command, for home environment management
diff --git a/bootstrap b/bootstrap
index de024aeaa5..5bf83175e5 100755
--- a/bootstrap
+++ b/bootstrap
@@ -24,4 +24,10 @@ for lang in ${langs}; do
fi
done
-exec autoreconf -vfi
+autoreconf -vfi
+
+# Replace Automake's build-aux/mdate-sh with build-aux/mdate-from-git, our
+# own, reproducible version.
+chmod +w build-aux/mdate-sh
+rm -f build-aux/mdate-sh
+ln -s mdate-from-git.scm build-aux/mdate-sh
diff --git a/build-aux/mdate-from-git.scm b/build-aux/mdate-from-git.scm
new file mode 100755
index 0000000000..9c6ebd6dd9
--- /dev/null
+++ b/build-aux/mdate-from-git.scm
@@ -0,0 +1,89 @@
+#! /bin/sh
+# -*-scheme-*-
+export LANG=C LANGUAGE=C LC_TIME=C
+export TZ=UTC0
+exec guile --no-auto-compile -L $srcdir -C $srcdir -e '(mdate-from-git)' -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:
+;;;
+;;; Usage: mdate-from-git.scm FILE
+;;;
+;;; This script is compatible with Automake's `mdate-sh' but uses the timestamp
+;;; from Git instead of from the file system. Also, it can be appended to
+;;; mdate-sh.
+
+;;; As a special exception for Guix, it caters for doc/guix.LANG.texi files that
+;;; are not stored in Git, by using po/doc/guix-manual.LANG.po for the Git
+;;; timestamp. Test doing something like:
+;;;
+;;; build-aux/mdate-from-git.scm doc/guix.de.texi
+;;;
+;;;; Code:
+
+(define-module (mdate-from-git)
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 popen)
+ #:use-module (ice-9 rdelim)
+ #:use-module (ice-9 regex)
+ #:export (main))
+
+(define (pipe-command command)
+ (let* ((port (apply open-pipe* OPEN_READ command))
+ (output (read-string port)))
+ (close-port port)
+ output))
+
+(define (guix.LANG.texi->guix-manual.LANG.po file-name)
+ "Translated manuals doc/guix.LANG.texi are not tracked in Git and are
+generated from po/doc/guix-manual.LANG.po. For such an untraced .TEXI file,
+return its .PO counterpart."
+ (let ((m (string-match "doc/guix.([^.]+).texi" file-name)))
+ (if (not m) file-name
+ (let ((lang (match:substring m 1)))
+ (format #f "po/doc/guix-manual.~a.po" lang)))))
+
+
+;;;
+;;; Entry point.
+;;;
+(define (main args)
+ (match args
+ ((script file-name)
+ (let* ((command `("git" "ls-files" "--error-unmatch" "--" ,file-name))
+ (tracked? (zero? (with-error-to-port (%make-void-port "w")
+ (lambda _
+ (with-output-to-port (%make-void-port "w")
+ (lambda _ (apply system* command)))))))
+ (file-name (if tracked? file-name
+ (guix.LANG.texi->guix-manual.LANG.po file-name)))
+ (command `("git" "log" "--pretty=format:%ct" "-n1" "--" ,file-name))
+ (timestamp (with-error-to-port (%make-void-port "w")
+ (lambda _ (pipe-command command))))
+ (source-date-epoch (or (getenv "SOURCE_DATE_EPOCH") "1"))
+ (timestamp (if (string-null? timestamp) source-date-epoch
+ timestamp))
+ (time (gmtime (string->number timestamp)))
+ (d-m-y (strftime "%-d %B %Y" time)))
+ (display d-m-y)))
+ (_
+ (format (current-error-port) "Usage: mdate-from-git.scm FILE\n")
+ (exit 2))))
diff --git a/build-aux/xgettext.scm b/build-aux/xgettext.scm
new file mode 100755
index 0000000000..7142336a9d
--- /dev/null
+++ b/build-aux/xgettext.scm
@@ -0,0 +1,90 @@
+#! /bin/sh
+# -*-scheme-*-
+build_aux=$(dirname $0)
+srcdir=$build_aux/..
+export LC_ALL=en_US.UTF-8
+export TZ=UTC0
+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)
+ (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))
+ (source-date-epoch (or (getenv "SOURCE_DATE_EPOCH") "1"))
+ (timestamp (if (string-null? timestamp) source-date-epoch
+ timestamp))
+ (po-file (string-append default-domain ".po")))
+ (substitute* po-file
+ (("(\"POT-Creation-Date: )[^\\]*" all header)
+ (string-append header timestamp)))))))
diff --git a/configure.ac b/configure.ac
index ecbd596a34..8c3a06da37 100644
--- a/configure.ac
+++ b/configure.ac
@@ -265,6 +265,16 @@ dnl Documentation translation.
AM_MISSING_PROG([PO4A_TRANSLATE], [po4a-translate])
AM_MISSING_PROG([PO4A_UPDATEPO], [po4a-updatepo])
+AC_MSG_CHECKING([if building from git])
+if test -e .git; then
+ in_git_p=yes
+else
+ in_git_p=no
+fi
+AC_MSG_RESULT([$in_git_p])
+AM_CONDITIONAL([in_git_p],
+ [test "x$in_git_p" = "xyes"])
+
case "$storedir" in
/gnu/store)
;;
diff --git a/doc/contributing.texi b/doc/contributing.texi
index df6bb2b1a8..66f4e86d0a 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -20,7 +20,9 @@ on-line communication; they can use any name or pseudonym of their
choice.
@menu
+* Requirements:: Software needed to build and run Guix.
* Building from Git:: The latest and greatest.
+* Running the Test Suite:: Testing Guix.
* Running Guix Before It Is Installed:: Hacker tricks.
* The Perfect Setup:: The right tools.
* Alternative Setups:: Other possible tools that do the job.
@@ -36,6 +38,94 @@ choice.
* Translating Guix:: Make Guix speak your native language.
@end menu
+@node Requirements
+@section Requirements
+
+You can easily hack on Guix itself using Guix and Git, which we use for
+version control (@pxref{Building from Git}).
+
+But when packaging Guix for foreign distros or when bootstrapping on
+systems without Guix, and if you decide to not just trust and install
+our readily made binary (@pxref{Binary Installation}), you can download
+a release version of our reproducible source tarball and read on.
+
+This section lists requirements when building Guix from source. The
+build procedure for Guix is the same as for other GNU software, and is
+not covered here. Please see the files @file{README} and @file{INSTALL}
+in the Guix source tree for additional details.
+
+@cindex official website
+GNU Guix is available for download from its website at
+@url{https://www.gnu.org/software/guix/}.
+
+GNU Guix depends on the following packages:
+
+@itemize
+@item @url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x,
+version 3.0.3 or later;
+@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version
+0.1.0 or later;
+@item
+@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS} (@pxref{Guile
+Preparations, how to install the GnuTLS bindings for Guile,,
+gnutls-guile, GnuTLS-Guile})@footnote{The Guile bindings to
+@uref{https://gnutls.org/, GnuTLS} were distributed as part of GnuTLS
+until version 3.7.8 included.};
+@item
+@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0
+or later;
+@item @uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib},
+version 0.1.0 or later;
+@item @uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};
+@item @uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi};
+@item
+@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.5.0
+or later;
+@item @uref{https://git-scm.com, Git} (yes, both!);
+@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}
+4.3.0 or later;
+@item @url{https://www.gnu.org/software/make/, GNU Make}.
+@end itemize
+
+The following dependencies are optional:
+
+@itemize
+@item
+@c Note: We need at least 0.13.0 for #:nodelay.
+Support for build offloading (@pxref{Daemon Offload Setup}) and
+@command{guix copy} (@pxref{Invoking guix copy}) depends on
+@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH},
+version 0.13.0 or later.
+
+@item
+@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, for zstd
+compression and decompression in @command{guix publish} and for
+substitutes (@pxref{Invoking guix publish}).
+
+@item
+@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} for
+the @code{crate} importer (@pxref{Invoking guix import}).
+
+@item
+@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} for
+the @code{go} importer (@pxref{Invoking guix import}) and for some of
+the ``updaters'' (@pxref{Invoking guix refresh}).
+
+@item
+When @url{http://www.bzip.org, libbz2} is available,
+@command{guix-daemon} can use it to compress build logs.
+@end itemize
+
+Unless @option{--disable-daemon} was passed to @command{configure}, the
+following packages are also needed:
+
+@itemize
+@item @url{https://gnupg.org/, GNU libgcrypt};
+@item @url{https://sqlite.org, SQLite 3};
+@item @url{https://gcc.gnu.org, GCC's g++}, with support for the
+C++11 standard.
+@end itemize
+
@node Building from Git
@section Building from Git
@@ -138,6 +228,10 @@ export ACLOCAL_PATH=/usr/share/aclocal
@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for
more information.
+@cindex state directory
+@cindex localstatedir
+@cindex system configuration directory
+@cindex sysconfdir
Then, run:
@example
@@ -152,6 +246,19 @@ normal @code{sysconfdir} value. Note that you will probably not run
important to pass the right @code{localstatedir} and @code{sysconfdir}
values, which get recorded in the @code{(guix config)} Guile module.
+When configuring Guix on a system that already has a Guix installation,
+be sure to specify the same state directory as the existing installation
+using the @option{--localstatedir} option of the @command{configure}
+script (@pxref{Directory Variables, @code{localstatedir},, standards,
+GNU Coding Standards}). Usually, this @var{localstatedir} option is set
+to the value @file{/var}. The @command{configure} script protects
+against unintended misconfiguration of @var{localstatedir} so you do not
+inadvertently corrupt your store (@pxref{The Store}). The configuration
+directory should also be configured by setting the @option{--sysconfdir}
+option to the @file{/etc} value, which is the location used by Guix to
+store for example the access control list of authorized machines and the
+definition of offload machines.
+
Finally, you can build Guix and, if you feel so inclined, run the tests
(@pxref{Running the Test Suite}):
@@ -207,6 +314,103 @@ Should @command{make} fail with an Automake error message after
updating, you need to repeat the steps outlined in this section,
commencing with @command{./bootstrap}.
+@node Running the Test Suite
+@section Running the Test Suite
+
+@cindex test suite
+After a successful @command{configure} and @code{make} run, it is a good
+idea to run the test suite. It can help catch issues with the setup or
+environment, or bugs in Guix itself---and really, reporting test
+failures is a good way to help improve the software. To run the test
+suite, type:
+
+@example
+make check
+@end example
+
+Test cases can run in parallel: you can use the @code{-j} option of
+GNU@tie{}make to speed things up. The first run may take a few minutes
+on a recent machine; subsequent runs will be faster because the store
+that is created for test purposes will already have various things in
+cache.
+
+It is also possible to run a subset of the tests by defining the
+@code{TESTS} makefile variable as in this example:
+
+@example
+make check TESTS="tests/store.scm tests/cpio.scm"
+@end example
+
+By default, tests results are displayed at a file level. In order to
+see the details of every individual test cases, it is possible to define
+the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:
+
+@example
+make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"
+@end example
+
+The underlying SRFI 64 custom Automake test driver used for the 'check'
+test suite (located at @file{build-aux/test-driver.scm}) also allows
+selecting which test cases to run at a finer level, via its
+@option{--select} and @option{--exclude} options. Here's an example, to
+run all the test cases from the @file{tests/packages.scm} test file
+whose names start with ``transaction-upgrade-entry'':
+
+@example
+export SCM_LOG_DRIVER_FLAGS="--select=^transaction-upgrade-entry"
+make check TESTS="tests/packages.scm"
+@end example
+
+Those wishing to inspect the results of failed tests directly from the
+command line can add the @option{--errors-only=yes} option to the
+@code{SCM_LOG_DRIVER_FLAGS} makefile variable and set the @code{VERBOSE}
+Automake makefile variable, as in:
+
+@example
+make check SCM_LOG_DRIVER_FLAGS="--brief=no --errors-only=yes" VERBOSE=1
+@end example
+
+The @option{--show-duration=yes} option can be used to print the
+duration of the individual test cases, when used in combination with
+@option{--brief=no}:
+
+@example
+make check SCM_LOG_DRIVER_FLAGS="--brief=no --show-duration=yes"
+@end example
+
+@xref{Parallel Test Harness,,,automake,GNU Automake} for more
+information about the Automake Parallel Test Harness.
+
+Upon failure, please email @email{bug-guix@@gnu.org} and attach the
+@file{test-suite.log} file. Please specify the Guix version being used
+as well as version numbers of the dependencies (@pxref{Requirements}) in
+your message.
+
+Guix also comes with a whole-system test suite that tests complete
+Guix System instances. It can only run on systems where
+Guix is already installed, using:
+
+@example
+make check-system
+@end example
+
+@noindent
+or, again, by defining @code{TESTS} to select a subset of tests to run:
+
+@example
+make check-system TESTS="basic mcron"
+@end example
+
+These system tests are defined in the @code{(gnu tests @dots{})}
+modules. They work by running the operating systems under test with
+lightweight instrumentation in a virtual machine (VM). They can be
+computationally intensive or rather cheap, depending on whether
+substitutes are available for their dependencies (@pxref{Substitutes}).
+Some of them require a lot of storage space to hold VM images.
+
+Again in case of test failures, please send @email{bug-guix@@gnu.org}
+all the details.
+
@node Running Guix Before It Is Installed
@section Running Guix Before It Is Installed
diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index 62efc73fc3..3bc63cba7a 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -2548,7 +2548,6 @@ is below. Save the resulting file as @file{guix-config.scm}.
(use-service-modules networking
ssh)
(use-package-modules admin
- certs
package-management
ssh
tls)
@@ -2586,8 +2585,7 @@ is below. Save the resulting file as @file{guix-config.scm}.
(home-directory "/home/janedoe"))
%base-user-accounts))
- (packages (cons* nss-certs ;for HTTPS access
- openssh-sans-x
+ (packages (cons* openssh-sans-x
%base-packages))
(services (cons*
@@ -2796,7 +2794,7 @@ here is a sample:
@lisp
(use-modules (gnu) (guix))
(use-service-modules networking ssh vpn virtualization sysctl admin mcron)
-(use-package-modules ssh certs tls tmux vpn virtualization)
+(use-package-modules ssh tls tmux vpn virtualization)
(operating-system
(host-name "kimsufi")
@@ -2848,7 +2846,7 @@ root ALL=(ALL) ALL
guix ALL=(ALL) NOPASSWD:ALL\n"))
;; Globally-installed packages.
- (packages (cons* tmux nss-certs gnutls wireguard-tools %base-packages))
+ (packages (cons* tmux gnutls wireguard-tools %base-packages))
(services
(cons*
(service static-networking-service-type
diff --git a/doc/guix.texi b/doc/guix.texi
index acfe60b47a..3f5d4e7f0d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -125,6 +125,8 @@ Copyright @copyright{} 2023 Saku Laesvuori@*
Copyright @copyright{} 2023 Graham James Addis@*
Copyright @copyright{} 2023 Tomas Volf@*
Copyright @copyright{} 2024 Herman Rimm@*
+Copyright @copyright{} 2024 Matthew Trzcinski@*
+Copyright @copyright{} 2024 Richard Sent@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -227,8 +229,6 @@ Introduction
Installation
* Binary Installation:: Getting Guix running in no time!
-* Requirements:: Software needed to build and run Guix.
-* Running the Test Suite:: Testing Guix.
* Setting Up the Daemon:: Preparing the build daemon's environment.
* Invoking guix-daemon:: Running the build daemon.
* Application Setup:: Application-specific setup.
@@ -358,7 +358,7 @@ Foreign Architectures
System Configuration
-* Getting Started with the System:: Your first steps.
+* Getting Started with the System:: Your first steps.
* Using the Configuration System:: Customizing your GNU system.
* operating-system Reference:: Detail of operating-system declarations.
* File Systems:: Configuring file system mounts.
@@ -691,19 +691,20 @@ to join! @xref{Contributing}, for information about how you can help.
@chapter Installation
@cindex installing Guix
+@cindex foreign distro
+@cindex Guix System
+You can install the package management tool Guix on top of an existing
+GNU/Linux or GNU/Hurd system@footnote{Hurd support is currently
+limited.}, referred to as a @dfn{foreign distro}. If, instead, you want
+to install the complete, standalone GNU system distribution,
+@dfn{Guix@tie{}System}, @pxref{System Installation}. This section is
+concerned only with the installation of Guix on a foreign distro.
-@quotation Note
-We recommend the use of this
-@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
-shell installer script} to install Guix on top of a running GNU/Linux system,
-thereafter called a @dfn{foreign distro}@footnote{This section is concerned
-with the installation of the package manager, which can be done on top of a
-running GNU/Linux system. If, instead, you want to install the complete GNU
-operating system, @pxref{System Installation}.}. @xref{Binary
-Installation}, for more information.
+@quotation Important
+This section only applies to systems without Guix. Following it for
+existing Guix installations will overwrite important system files.
@end quotation
-@cindex foreign distro
@cindex directories related to foreign distro
When installed on a foreign distro, GNU@tie{}Guix complements the available
tools without interference. Its data lives exclusively in two directories,
@@ -713,15 +714,8 @@ such as @file{/etc}, are left untouched.
Once installed, Guix can be updated by running @command{guix pull}
(@pxref{Invoking guix pull}).
-If you prefer to perform the installation steps manually or want to tweak
-them, you may find the following subsections useful. They describe the
-software requirements of Guix, as well as how to install it manually and get
-ready to use it.
-
@menu
* Binary Installation:: Getting Guix running in no time!
-* Requirements:: Software needed to build and run Guix.
-* Running the Test Suite:: Testing Guix.
* Setting Up the Daemon:: Preparing the build daemon's environment.
* Invoking guix-daemon:: Running the build daemon.
* Application Setup:: Application-specific setup.
@@ -735,226 +729,69 @@ ready to use it.
@cindex installer script
This section describes how to install Guix from a self-contained tarball
providing binaries for Guix and for all its dependencies. This is often
-quicker than installing from source, which is described in the next
-sections. Binary installation requires a system using a Hurd or Linux
-kernel; the GNU@tie{}tar and Xz commands must also be available.
+quicker than installing from source, described later (@pxref{Building
+from Git}).
@quotation Important
This section only applies to systems without Guix. Following it for
existing Guix installations will overwrite important system files.
+@end quotation
-@c Note duplicated from the ``Installation'' node.
-We recommend the use of this
-@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
-shell installer script}. The script automates the download, installation, and
-initial configuration steps described below. It should be run as the root
-user. As root, you can thus run this:
-
-@example
-cd /tmp
-wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
-chmod +x guix-install.sh
-./guix-install.sh
-@end example
-
-The script automates the download, installation, and initial
-configuration of Guix, interactively offering various configuration
-options.
-
-@cindex uninstalling Guix
-@cindex uninstallation, of Guix
-Should you eventually want to uninstall Guix, run the same script with
-the @option{--uninstall} flag:
-
-@example
-./guix-install.sh --uninstall
-@end example
-
-With @option{--uninstall}, the script irreversibly deletes all the Guix
-files, configuration, and services.
+Some GNU/Linux distributions, such as Debian, Ubuntu, and openSUSE
+provide Guix through their own package managers. The version of Guix
+may be older than @value{VERSION} but you can update it afterwards by
+running @samp{guix pull}.
-If you're running Debian or a derivative such as Ubuntu, you can instead
-install the package (it might be a version older than @value{VERSION}
-but you can update it afterwards by running @samp{guix pull}):
+For Debian or a derivative such as Ubuntu, call:
@example
sudo apt install guix
@end example
-Likewise on openSUSE:
+Likewise, on openSUSE:
@example
sudo zypper install guix
@end example
-When you're done, @pxref{Application Setup} for extra configuration you
-might need, and @ref{Getting Started} for your first steps!
-@end quotation
-
-Installing goes along these lines:
-
-@enumerate
-@item
-@cindex downloading Guix binary
-Download the binary tarball from
-@indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz},
-where @code{x86_64-linux} can be replaced with @code{i686-linux} for an
-@code{i686} (32-bits) machine already running the kernel Linux, and so on
-(@pxref{GNU Distribution}).
-
-@c The following is somewhat duplicated in ``System Installation''.
-Make sure to download the associated @file{.sig} file and to verify the
-authenticity of the tarball against it, along these lines:
-
-@example
-$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig
-$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig
-@end example
-
-If that command fails because you do not have the required public key,
-then run this command to import it:
+The Guix project also provides a shell script, @file{guix-install.sh},
+which automates the binary installation process without use of a foreign
+distro package
+manager@footnote{@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh}}.
+Use of @file{guix-install.sh} requires Bash, GnuPG, GNU@tie{}tar, wget,
+and Xz.
-@example
-$ wget '@value{OPENPGP-SIGNING-KEY-URL}' \
- -qO - | gpg --import -
-@end example
+The script guides you through the following:
-@noindent
-and rerun the @code{gpg --verify} command.
-
-Take note that a warning like ``This key is not certified with a trusted
-signature!'' is normal.
+@itemize
+@item Downloading and extracting the binary tarball
+@item Setting up the build daemon
+@item Making the ‘guix’ command available to non-root users
+@item Configuring substitute servers
+@end itemize
-@c end authentication part
-
-@item
-Now, you need to become the @code{root} user. Depending on your distribution,
-you may have to run @code{su -} or @code{sudo -i}. As @code{root}, run:
+As root, run:
@example
# cd /tmp
-# tar --warning=no-timestamp -xf \
- /path/to/guix-binary-@value{VERSION}.x86_64-linux.tar.xz
-# mv var/guix /var/ && mv gnu /
-@end example
-
-This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.
-The latter contains a ready-to-use profile for @code{root} (see next
-step).
-
-Do @emph{not} unpack the tarball on a working Guix system since that
-would overwrite its own essential files.
-
-The @option{--warning=no-timestamp} option makes sure GNU@tie{}tar does
-not emit warnings about ``implausibly old time stamps'' (such
-warnings were triggered by GNU@tie{}tar 1.26 and older; recent
-versions are fine).
-They stem from the fact that all the
-files in the archive have their modification time set to 1 (which
-means January 1st, 1970). This is done on purpose to make sure the
-archive content is independent of its creation time, thus making it
-reproducible.
-
-@item
-Make the profile available under @file{~root/.config/guix/current}, which is
-where @command{guix pull} will install updates (@pxref{Invoking guix pull}):
-
-@example
-# mkdir -p ~root/.config/guix
-# ln -sf /var/guix/profiles/per-user/root/current-guix \
- ~root/.config/guix/current
-@end example
-
-Source @file{etc/profile} to augment @env{PATH} and other relevant
-environment variables:
-
-@example
-# GUIX_PROFILE="`echo ~root`/.config/guix/current" ; \
- source $GUIX_PROFILE/etc/profile
-@end example
-
-@item
-Create the group and user accounts for build users as explained below
-(@pxref{Build Environment Setup}).
-
-@item
-Run the daemon, and set it to automatically start on boot.
-
-If your host distro uses the systemd init system, this can be achieved
-with these commands:
-
-@c Versions of systemd that supported symlinked service files are not
-@c yet widely deployed, so we should suggest that users copy the service
-@c files into place.
-@c
-@c See this thread for more information:
-@c https://lists.gnu.org/archive/html/guix-devel/2017-01/msg01199.html
-
-@example
-# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \
- ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \
- /etc/systemd/system/
-# systemctl enable --now gnu-store.mount guix-daemon
-@end example
-
-You may also want to arrange for @command{guix gc} to run periodically:
-
-@example
-# cp ~root/.config/guix/current/lib/systemd/system/guix-gc.service \
- ~root/.config/guix/current/lib/systemd/system/guix-gc.timer \
- /etc/systemd/system/
-# systemctl enable --now guix-gc.timer
-@end example
-
-You may want to edit @file{guix-gc.service} to adjust the command line
-options to fit your needs (@pxref{Invoking guix gc}).
-
-If your host distro uses the Upstart init system:
-
-@example
-# initctl reload-configuration
-# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \
- /etc/init/
-# start guix-daemon
-@end example
-
-Otherwise, you can still start the daemon manually with:
-
-@example
-# ~root/.config/guix/current/bin/guix-daemon \
- --build-users-group=guixbuild
-@end example
-
-@item
-Make the @command{guix} command available to other users on the machine,
-for instance with:
-
-@example
-# mkdir -p /usr/local/bin
-# cd /usr/local/bin
-# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix
+# wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
+# chmod +x guix-install.sh
+# ./guix-install.sh
@end example
-It is also a good idea to make the Info version of this manual available
-there:
-
-@example
-# mkdir -p /usr/local/share/info
-# cd /usr/local/share/info
-# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;
- do ln -s $i ; done
-@end example
-
-That way, assuming @file{/usr/local/share/info} is in the search path,
-running @command{info guix} will open this manual (@pxref{Other Info
-Directories,,, texinfo, GNU Texinfo}, for more details on changing the
-Info search path).
+@quotation Note
+By default, @file{guix-install.sh} will configure Guix to download
+pre-built package binaries, called @dfn{substitutes}
+(@pxref{Substitutes}), from the project's build farms. If you choose
+not to permit this, Guix will build @emph{everything} from source,
+making each installation and upgrade very expensive. @xref{On Trusting
+Binaries} for a discussion of why you may want to build packages from
+source.
-@item
@cindex substitutes, authorization thereof
To use substitutes from @code{@value{SUBSTITUTE-SERVER-1}},
-@code{@value{SUBSTITUTE-SERVER-2}} or a mirror (@pxref{Substitutes}),
-authorize them:
+@code{@value{SUBSTITUTE-SERVER-2}} or a mirror, you must authorize them.
+For example,
@example
# guix archive --authorize < \
@@ -962,28 +799,13 @@ authorize them:
# guix archive --authorize < \
~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-2}.pub
@end example
-
-@quotation Note
-If you do not enable substitutes, Guix will end up building
-@emph{everything} from source on your machine, making each installation
-and upgrade very expensive. @xref{On Trusting Binaries}, for a
-discussion of reasons why one might want do disable substitutes.
@end quotation
-@item
-Each user may need to perform a few additional steps to make their Guix
-environment ready for use, @pxref{Application Setup}.
-@end enumerate
-
-Voilà, the installation is complete!
-
-You can confirm that Guix is working by installing a sample package into
-the root profile:
-
-@example
-# guix install hello
-@end example
+When you're done installing Guix, @pxref{Application Setup} for extra
+configuration you might need, and @ref{Getting Started} for your first
+steps!
+@quotation Note
The binary installation tarball can be (re)produced and verified simply
by running the following command in the Guix source tree:
@@ -1000,200 +822,19 @@ guix pack -s @var{system} --localstatedir \
@end example
@xref{Invoking guix pack}, for more info on this handy tool.
+@end quotation
-@node Requirements
-@section Requirements
-
-This section lists requirements when building Guix from source. The
-build procedure for Guix is the same as for other GNU software, and is
-not covered here. Please see the files @file{README} and @file{INSTALL}
-in the Guix source tree for additional details.
-
-@cindex official website
-GNU Guix is available for download from its website at
-@url{https://www.gnu.org/software/guix/}.
-
-GNU Guix depends on the following packages:
-
-@itemize
-@item @url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x,
-version 3.0.3 or later;
-@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version
-0.1.0 or later;
-@item
-@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS} (@pxref{Guile
-Preparations, how to install the GnuTLS bindings for Guile,,
-gnutls-guile, GnuTLS-Guile})@footnote{The Guile bindings to
-@uref{https://gnutls.org/, GnuTLS} were distributed as part of GnuTLS
-until version 3.7.8 included.};
-@item
-@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0
-or later;
-@item @uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib},
-version 0.1.0 or later;
-@item @uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};
-@item @uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi};
-@item
-@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.5.0
-or later;
-@item @uref{https://git-scm.com, Git} (yes, both!);
-@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}
-4.3.0 or later;
-@item @url{https://www.gnu.org/software/make/, GNU Make}.
-@end itemize
-
-The following dependencies are optional:
-
-@itemize
-@item
-@c Note: We need at least 0.13.0 for #:nodelay.
-Support for build offloading (@pxref{Daemon Offload Setup}) and
-@command{guix copy} (@pxref{Invoking guix copy}) depends on
-@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH},
-version 0.13.0 or later.
-
-@item
-@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, for zstd
-compression and decompression in @command{guix publish} and for
-substitutes (@pxref{Invoking guix publish}).
-
-@item
-@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} for
-the @code{crate} importer (@pxref{Invoking guix import}).
-
-@item
-@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} for
-the @code{go} importer (@pxref{Invoking guix import}) and for some of
-the ``updaters'' (@pxref{Invoking guix refresh}).
-
-@item
-When @url{http://www.bzip.org, libbz2} is available,
-@command{guix-daemon} can use it to compress build logs.
-@end itemize
-
-Unless @option{--disable-daemon} was passed to @command{configure}, the
-following packages are also needed:
-
-@itemize
-@item @url{https://gnupg.org/, GNU libgcrypt};
-@item @url{https://sqlite.org, SQLite 3};
-@item @url{https://gcc.gnu.org, GCC's g++}, with support for the
-C++11 standard.
-@end itemize
-
-@cindex state directory
-@cindex localstatedir
-@cindex system configuration directory
-@cindex sysconfdir
-When configuring Guix on a system that already has a Guix installation,
-be sure to specify the same state directory as the existing installation
-using the @option{--localstatedir} option of the @command{configure}
-script (@pxref{Directory Variables, @code{localstatedir},, standards,
-GNU Coding Standards}). Usually, this @var{localstatedir} option is set
-to the value @file{/var}. The @command{configure} script protects
-against unintended misconfiguration of @var{localstatedir} so you do not
-inadvertently corrupt your store (@pxref{The Store}). The configuration
-directory should also be configured by setting the @option{--sysconfdir}
-option to the @file{/etc} value, which is the location used by Guix to
-store for example the access control list of authorized machines and the
-definition of offload machines.
-
-@node Running the Test Suite
-@section Running the Test Suite
-
-@cindex test suite
-After a successful @command{configure} and @code{make} run, it is a good
-idea to run the test suite. It can help catch issues with the setup or
-environment, or bugs in Guix itself---and really, reporting test
-failures is a good way to help improve the software. To run the test
-suite, type:
-
-@example
-make check
-@end example
-
-Test cases can run in parallel: you can use the @code{-j} option of
-GNU@tie{}make to speed things up. The first run may take a few minutes
-on a recent machine; subsequent runs will be faster because the store
-that is created for test purposes will already have various things in
-cache.
-
-It is also possible to run a subset of the tests by defining the
-@code{TESTS} makefile variable as in this example:
-
-@example
-make check TESTS="tests/store.scm tests/cpio.scm"
-@end example
-
-By default, tests results are displayed at a file level. In order to
-see the details of every individual test cases, it is possible to define
-the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:
-
-@example
-make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"
-@end example
-
-The underlying SRFI 64 custom Automake test driver used for the 'check'
-test suite (located at @file{build-aux/test-driver.scm}) also allows
-selecting which test cases to run at a finer level, via its
-@option{--select} and @option{--exclude} options. Here's an example, to
-run all the test cases from the @file{tests/packages.scm} test file
-whose names start with ``transaction-upgrade-entry'':
-
-@example
-export SCM_LOG_DRIVER_FLAGS="--select=^transaction-upgrade-entry"
-make check TESTS="tests/packages.scm"
-@end example
-
-Those wishing to inspect the results of failed tests directly from the
-command line can add the @option{--errors-only=yes} option to the
-@code{SCM_LOG_DRIVER_FLAGS} makefile variable and set the @code{VERBOSE}
-Automake makefile variable, as in:
-
-@example
-make check SCM_LOG_DRIVER_FLAGS="--brief=no --errors-only=yes" VERBOSE=1
-@end example
-
-The @option{--show-duration=yes} option can be used to print the
-duration of the individual test cases, when used in combination with
-@option{--brief=no}:
-
-@example
-make check SCM_LOG_DRIVER_FLAGS="--brief=no --show-duration=yes"
-@end example
-
-@xref{Parallel Test Harness,,,automake,GNU Automake} for more
-information about the Automake Parallel Test Harness.
-
-Upon failure, please email @email{bug-guix@@gnu.org} and attach the
-@file{test-suite.log} file. Please specify the Guix version being used
-as well as version numbers of the dependencies (@pxref{Requirements}) in
-your message.
-
-Guix also comes with a whole-system test suite that tests complete
-Guix System instances. It can only run on systems where
-Guix is already installed, using:
-
-@example
-make check-system
-@end example
-
-@noindent
-or, again, by defining @code{TESTS} to select a subset of tests to run:
+@cindex uninstalling Guix
+@cindex uninstallation, of Guix
+Should you eventually want to uninstall Guix, run the same script with
+the @option{--uninstall} flag:
@example
-make check-system TESTS="basic mcron"
+./guix-install.sh --uninstall
@end example
-These system tests are defined in the @code{(gnu tests @dots{})}
-modules. They work by running the operating systems under test with
-lightweight instrumentation in a virtual machine (VM). They can be
-computationally intensive or rather cheap, depending on whether
-substitutes are available for their dependencies (@pxref{Substitutes}).
-Some of them require a lot of storage space to hold VM images.
-
-Again in case of test failures, please send @email{bug-guix@@gnu.org}
-all the details.
+With @option{--uninstall}, the script irreversibly deletes all the Guix
+files, configuration, and services.
@node Setting Up the Daemon
@section Setting Up the Daemon
@@ -1208,8 +849,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. @xref{Substitutes} for how to allow the daemon to download
+pre-built binaries.
@menu
* Build Environment Setup:: Preparing the isolated build environment.
@@ -2908,7 +2549,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!
@@ -2942,7 +2583,7 @@ The resulting file will be much smaller than 50 GB (typically less than
1 MB), but it will grow as the virtualized storage device is filled up.
@item
-Boot the USB installation image in an VM:
+Boot the USB installation image in a VM:
@example
qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \
@@ -6342,12 +5983,18 @@ such as @file{/usr/bin} on foreign distros.
This @option{--container} option can also prove useful if you wish to
run a security-sensitive application, such as a web browser, in an
isolated environment. For example, the command below launches
-Ungoogled-Chromium in an isolated environment, this time sharing network
-access with the host and preserving its @code{DISPLAY} environment
-variable, but without even sharing the current directory:
+Ungoogled-Chromium in an isolated environment, which:
+@itemize
+@item shares network access with the host
+@item inherits host's environment variables @code{DISPLAY} and @code{XAUTHORITY}
+@item has access to host's authentication records from the @code{XAUTHORITY}
+file
+@item has no information about host's current directory
+@end itemize
@example
guix shell --container --network --no-cwd ungoogled-chromium \
+ --preserve='^XAUTHORITY$' --expose="$@{XAUTHORITY@}" \
--preserve='^DISPLAY$' -- chromium
@end example
@@ -9446,7 +9093,7 @@ package name should be prefixed with the lisp implementation, such as
@code{sbcl-} for @code{asdf-build-system/sbcl}.
Additionally, the corresponding source package should be labeled using
-the same convention as python packages (see @ref{Python Modules}), using
+the same convention as Python packages (@pxref{Python Modules}), using
the @code{cl-} prefix.
In order to create executable programs and images, the build-side
@@ -12552,9 +12199,10 @@ The resulting file holds references to all the dependencies of @var{exp}
or a subset thereof.
@end deffn
-@deffn {Procedure} scheme-file name exp [#:splice? #f] [#:set-load-path? #t]
+@deffn {Procedure} scheme-file name exp [#:splice? #f] @
+ [#:guile #f] [#:set-load-path? #t]
Return an object representing the Scheme file @var{name} that contains
-@var{exp}.
+@var{exp}. @var{guile} is the Guile package used to produce that file.
This is the declarative counterpart of @code{gexp->file}.
@end deffn
@@ -17020,7 +16668,9 @@ The available targets are:
- powerpc64le-linux-gnu
- riscv64-linux-gnu
- x86_64-linux-gnu
+ - x86_64-linux-gnux32
- x86_64-w64-mingw32
+ - xtensa-ath9k-elf
@end example
Targets are specified as GNU triplets (@pxref{Specifying Target
@@ -17158,7 +16808,7 @@ instantiated. Then we show how this mechanism can be extended, for
instance to support new system services.
@menu
-* Getting Started with the System:: Your first steps.
+* Getting Started with the System:: Your first steps.
* Using the Configuration System:: Customizing your GNU system.
* operating-system Reference:: Detail of operating-system declarations.
* File Systems:: Configuring file system mounts.
@@ -17508,7 +17158,7 @@ the @code{(gnu packages)} module. For example:
(operating-system
;; ...
(packages (append (map specification->package+output
- '("nss-certs" "git" "git:send-email"))
+ '("git" "git:send-email"))
%base-packages)))
@end lisp
@@ -17596,8 +17246,7 @@ This example refers to the @file{/boot/efi} file system by its UUID,
as returned by the @command{blkid} command.
@xref{Desktop Services}, for the exact list of services provided by
-@code{%desktop-services}. @xref{X.509 Certificates}, for background
-information about the @code{nss-certs} package that is used here.
+@code{%desktop-services}.
Again, @code{%desktop-services} is just a list of service objects. If
you want to remove services from there, you can do so using the
@@ -17726,6 +17375,7 @@ configuration (@pxref{Using the Configuration System}).
@table @asis
@item @code{kernel} (default: @code{linux-libre})
+@c footnote duplicated in @pxref{Installation}
The package object of the operating system kernel to
use@footnote{Currently only the Linux-libre kernel is fully supported.
Using GNU@tie{}mach with the GNU@tie{}Hurd is experimental and only
@@ -24818,10 +24468,42 @@ polkit with the actions from @code{gnome-settings-daemon}.
@deftp {Data Type} gnome-desktop-configuration
Configuration record for the GNOME desktop environment.
+Available @code{gnome-desktop-configuration} fields are:
@table @asis
-@item @code{gnome} (default: @code{gnome})
-The GNOME package to use.
+@item @code{core-services} (type: list-of-packages)
+A list of packages that the GNOME Shell and applications may rely on.
+
+@item @code{shell} (type: list-of-packages)
+A list of packages that constitute the GNOME Shell, without
+applications.
+
+@item @code{utilities} (type: list-of-packages)
+A list of packages that serve as applications to use on top of the GNOME Shell.
+
+@item @code{gnome} (type: maybe-package)
+This field used to be the only configuration point and specified
+a GNOME meta-package to install system-wide. Since the meta-package
+itself provides neither sources nor the actual packages and is only
+used to propagate them, this field is deprecated.
+
+@item @code{extra-packages} (type: list-of-packages)
+A list of GNOME-adjacent packages to also include. This field is
+intended for users to add their own packages to their GNOME experience.
+Note, that it already includes some packages that are considered
+essential by some (most?) GNOME users.
+
+@item @code{udev-ignorelist} (default: @code{()}) (type: list-of-strings)
+A list of regular expressions denoting udev rules or hardware file names
+provided by any package that should not be installed. By default, every
+udev rule and hardware file specified by any package referenced in the
+other fields are installed.
+
+@item @code{polkit-ignorelist} (default: @code{()}) (type: list-of-strings)
+A list of regular expressions denoting polkit rules provided by any
+package that should not be installed. By default, every polkit rule
+added by any package referenced in the other fields are installed.
+
@end table
@end deftp
@@ -25259,6 +24941,25 @@ Package object for UDisks.
@end table
@end deftp
+@defvar gvfs-service-type
+Type for the service that provides virtual file systems for GIO
+applicaitons, which enables support for @code{trash:///}, @code{ftp://},
+@code{sftp://} and many other location schemas in file managers like
+Nautilus (GNOME Files) and Thunar.
+
+The value for this service is a @code{<gvfs-configuration>} object.
+@end defvar
+
+@deftp {Data Type} gvfs-configuration
+Data type representing the configuration for @code{gvfs-service-type}.
+
+@table @asis
+@item @code{gvfs} (default: @code{gvfs}) (type: file-like)
+Package object for GVfs.
+
+@end table
+@end deftp
+
@defvar colord-service-type
This is the type of the service that runs @command{colord}, a system
service with a D-Bus
@@ -26999,7 +26700,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
@@ -27139,7 +26840,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
@@ -32812,9 +32513,9 @@ pulling channels from Git. To that end, it needs to access X.509 certificates
so that it can authenticate Git servers when communicating over HTTPS, and it
assumes that @file{/etc/ssl/certs} contains those certificates.
-Thus, make sure to add @code{nss-certs} or another certificate package to the
-@code{packages} field of your configuration. @ref{X.509 Certificates}, for
-more information on X.509 certificates.
+A certificate package, @code{nss-certs}, is provided by default as
+part of @code{%base-packages}. @ref{X.509 Certificates}, for more
+information on X.509 certificates.
@end quotation
@subsubheading gmnisrv
@@ -39706,6 +39407,44 @@ Extra command line options for @code{guix-data-service-process-jobs}.
@end table
@end deftp
+@anchor{guix-home-service-type}
+@subsubheading Guix Home Service
+
+The Guix Home service is a way to let Guix System deploy the home
+environment of one or more users (@pxref{Home Configuration}, for more
+on Guix Home). That way, the system configuration embeds declarations
+of the home environment of those users and can be used to deploy
+everything consistently at once, saving users the need to run
+@command{guix home reconfigure} independently.
+
+@defvar guix-home-service-type
+Service type for the Guix Home service. Its value must be a list of
+lists containing user and home environment pairs. The key of each pair
+is a string representing the user to deploy the configuration under and
+the value is a home-environment configuration.
+
+@lisp
+(use-modules (gnu home))
+
+(define my-home
+ (home-environment
+ @dots{}))
+
+(operating-system
+ (services (append (list (service guix-home-service-type
+ `(("alice" ,my-home))))
+ %base-services)))
+@end lisp
+
+This service can be extended by other services to add additional home
+environments, as in this example:
+
+@lisp
+(simple-service 'my-extra-home home-service-type
+ `(("bob" ,my-extra-home))))
+@end lisp
+@end defvar
+
@subsubheading Nar Herder
The @uref{https://git.cbaines.net/guix/nar-herder/about/,Nar Herder} is
a utility for managing a collection of nars.
@@ -41323,7 +41062,7 @@ Reference}). Guix includes one such package, @code{nss-certs}, which
is a set of CA certificates provided as part of Mozilla's Network
Security Services.
-Note that it is @emph{not} part of @code{%base-packages}, so you need to
+This package is part of @code{%base-packages}, so there is no need to
explicitly add it. The @file{/etc/ssl/certs} directory, which is where
most applications and libraries look for certificates by default, points
to the certificates installed globally.
@@ -41696,7 +41435,7 @@ program. That gives a lot of flexibility. The
program to run in that initrd.
@deffn {Procedure} expression->initrd exp @
- [#:guile %guile-static-stripped] [#:name "guile-initrd"]
+ [#:guile %guile-static-initrd] [#:name "guile-initrd"]
Return as a file-like object a Linux initrd (a gzipped cpio archive)
containing @var{guile} and that evaluates @var{exp}, a G-expression,
upon booting. All the derivations referenced by @var{exp} are
@@ -44579,6 +44318,12 @@ mechanism to create the XDG run-time directory and has the
like user Shepherd and its descendants will not start.
@end quotation
+If you're using Guix System, you can embed your home configuration in
+your system configuration such that @command{guix system reconfigure}
+will deploy both the system @emph{and} your home at once!
+@xref{guix-home-service-type, @code{guix-home-service-type}}, for how to
+do that.
+
@node Configuring the Shell
@section Configuring the Shell
This section is safe to skip if your shell or shells are managed by
@@ -46823,12 +46568,13 @@ guix time-machine \
You can think of it as some sort of built-in version control! Your
home is not just a binary artifact: @emph{it carries its own source}.
-@c @xref{Service Reference, @code{provenance-service-type}}, for more
-@c information on provenance tracking.
-@c @footnote{This action (and the related actions
-@c @code{switch-generation} and @code{roll-back}) are usable after the
-@c home environment is initialized.}.
+@quotation Note
+If you're using Guix System, @ref{guix-home-service-type,
+@code{guix-home-service-type}}, on how to embed your home configuration
+in your system configuration such that @command{guix system reconfigure}
+deploys both your system and your home.
+@end quotation
@item switch-generation
@cindex home generations
@@ -47159,6 +46905,11 @@ Platform targeting x86 CPU running GNU/Linux.
Platform targeting x86 64-bit CPU running GNU/Linux.
@end defvar
+@defvar x86_64-linux-x32
+Platform targeting x86 64-bit CPU running GNU/Linux with the run-time using
+the X32 ABI.
+@end defvar
+
@defvar i686-mingw
Platform targeting x86 CPU running Windows, with run-time support from
MinGW.
@@ -47184,6 +46935,11 @@ Platform targeting OpenRISC 1000 CPU without an operating system and without a
C standard library.
@end defvar
+@defvar xtensa-ath9k-elf
+Platform targeting Xtensa CPU used in the Qualcomm Atheros AR7010 and AR9271
+USB 802.11n @acronym{NICs, Network Interface Controllers}.
+@end defvar
+
@node System Images
@chapter Creating System Images
@@ -48223,7 +47979,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..1d94e3c758 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,40 @@ $(srcdir)/%D%/guix-daemon.1: guix-daemon$(EXEEXT)
endif
endif
+
+# Reproducible tarball
+
+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/guix-install.sh b/etc/guix-install.sh
index 21441baec4..82accfd5d5 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -13,6 +13,8 @@
# Copyright © 2022 Prafulla Giri <prafulla.giri@protonmail.com>
# Copyright © 2023 Andrew Tropin <andrew@trop.in>
# Copyright © 2020 David A. Redick <david.a.redick@gmail.com>
+# Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
+# Copyright © 2024 Tomas Volf <~@wolfsden.cz>
#
# This file is part of GNU Guix.
#
@@ -612,6 +614,7 @@ sys_create_init_profile()
cat <<"EOF" > /etc/profile.d/zzz-guix.sh
# Explicitly initialize XDG base directory variables to ease compatibility
# with Guix System: see <https://issues.guix.gnu.org/56050#3>.
+export XCURSOR_PATH="${XCURSOR_PATH:-/usr/local/share/icons:/usr/share/icons}"
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
@@ -632,16 +635,20 @@ export INFOPATH="$_GUIX_PROFILE/share/info:$INFOPATH"
# GUIX_PROFILE: User's default profile and home profile
GUIX_PROFILE="$HOME/.guix-profile"
[ -f "$GUIX_PROFILE/etc/profile" ] && . "$GUIX_PROFILE/etc/profile"
-[ -L "$GUIX_PROFILE" ] || \
-GUIX_LOCPATH="$GUIX_PROFILE/lib/locale:${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
+[ -L "$GUIX_PROFILE" ] && \
+GUIX_LOCPATH="$GUIX_PROFILE/lib/locale${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
GUIX_PROFILE="$HOME/.guix-home/profile"
[ -f "$GUIX_PROFILE/etc/profile" ] && . "$GUIX_PROFILE/etc/profile"
-[ -L "$GUIX_PROFILE" ] || \
-GUIX_LOCPATH="$GUIX_PROFILE/lib/locale:${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
+[ -L "$GUIX_PROFILE" ] && \
+GUIX_LOCPATH="$GUIX_PROFILE/lib/locale${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
export GUIX_LOCPATH
+# Make Guix modules available
+export GUILE_LOAD_PATH="$_GUIX_PROFILE/share/guile/site/3.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
+export GUILE_LOAD_COMPILED_PATH="$_GUIX_PROFILE/lib/guile/3.0/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
+
EOF
}
diff --git a/etc/news.scm b/etc/news.scm
index 9443475455..0be432f872 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -5,11 +5,11 @@
;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;; Copyright © 2019, 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;; Copyright © 2019, 2020, 2021, 2023 Julien Lepiller <julien@lepiller.eu>
-;; Copyright © 2019–2023 Florian Pelz <pelzflorian@pelzflorian.de>
+;; Copyright © 2019–2024 Florian Pelz <pelzflorian@pelzflorian.de>
;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
-;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;; Copyright © 2021–2023 Leo Famulari <leo@famulari.name>
;; Copyright © 2021 Zhu Zihao <all_but_last@163.com>
;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
@@ -31,6 +31,44 @@
(channel-news
(version 0)
+ (entry (commit "67a3a83170c038d2eb084d3f53a7ea7b033aea74")
+ (title
+ (en "@code{nss-certs} is now included in @code{%base-packages}")
+ (de "@code{nss-certs} ist jetzt Teil von @code{%base-packages}")
+ (fr "@code{nss-certs} est maintenant inclus dans @code{%base-packages}"))
+ (body
+ (en "The @code{nss-certs} package is now included in the
+@code{%base-packages}, the default value for the @code{packages} field of the
+@code{operating-system} record.
+
+If you are a Guix System user, in your operating system configuration file,
+please no longer add @code{(specification->package \"nss-certs\")} to
+@code{%base-packages}.")
+ (de "Das Paket @code{nss-certs} ist jetzt in @code{%base-packages}
+enthalten, dem Vorgabewert des @code{packages}-Felds im
+@code{operating-system}-Verbundstyp.
+
+Wenn Sie ein Nutzer von Guix System sind, fügen Sie bitte in Ihrer
+Betriebssystemkonfigurationsdatei nicht mehr
+@code{(specification->package \"nss-certs\")} zu @code{%base-packages} hinzu.")
+ (fr "Le paquet @code{nss-certs} est maintenant inclus dans
+@code{%base-packages}, la valeur par défaut du champ @code{packages} de
+l'enregistrement @code{operating-system}.
+
+Si vous êtes une utilisatrice ou un utilisateur du système Guix, dans le
+fichier de configuration du système d'exploitation, veuillez ne plus ajouter
+@code{(specification->package \"nss-certs\")} à @code{%base-packages}.")))
+
+ (entry (commit "b4aed68e960116b2b60f68ea1468d7a526149823")
+ (title
+ (en "Linux-libre LTS kernel updated to 6.6")
+ (de "Linux-libre LTS Kernel wird auf 6.6 aktualisiert"))
+ (body
+ (en "The default version of the @code{linux-libre-lts} kernel has been
+ updated to the 6.6 longterm release series.")
+ (de "Der standardmäßig verwendete @code{linux-libre-lts}-Kernel basiert
+ jetzt auf der 6.6-Versionsreihe (Langzeitunterstützung).")))
+
(entry (commit "523f3def65ab061a87f4fc9e6f9008e6a78fafb5")
(title
(en "GNOME updated to version 44 with a more modular desktop service")
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/ci.scm b/gnu/ci.scm
index e25a772772..5d208a8e83 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
@@ -169,6 +169,13 @@ SYSTEM."
(drop-right %core-packages 6)
%core-packages))
+(define %bare-platform-triplets
+ ;; Cross-compilation triplets of platforms that lack a proper user-space and
+ ;; for which there's no point in trying to build regular packages.
+ '("avr"
+ "or1k-elf"
+ "xtensa-ath9k-elf"))
+
(define (cross-jobs store system)
"Return a list of cross-compilation jobs for SYSTEM."
(define (from-32-to-64? target)
@@ -190,8 +197,7 @@ SYSTEM."
(define (pointless? target)
;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM.
- (or (string=? target "avr") ; Nothing for AVR at this time.
- (string=? target "or1k-elf") ;; Nothing for or1k-elf at this time.
+ (or (member target %bare-platform-triplets)
(match system
((or "x86_64-linux" "i686-linux")
(if (string-contains target "mingw")
diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm
index 8fd1668b59..ee6b09f17c 100644
--- a/gnu/home/services/shells.scm
+++ b/gnu/home/services/shells.scm
@@ -415,21 +415,17 @@ if [ -f ~/.profile ]; then source ~/.profile; fi
if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
"
- ;; The host distro might provide a bad 'PS1' default--e.g., not taking
- ;; $GUIX_ENVIRONMENT into account. Provide a good default here when
- ;; asked to. The default can be overridden below via
- ;; 'environment-variables'.
- (if (home-bash-configuration-guix-defaults? config)
- "PS1='\\u@\\h \\w${GUIX_ENVIRONMENT:+ [env]}\\$ '\n"
- "")
-
(serialize-field 'bash-profile)
(serialize-field 'environment-variables)))
,@(list (file-if-not-empty
'bashrc
(if (home-bash-configuration-guix-defaults? config)
- (list (plain-file-content %default-bashrc)
+ (list (plain-file-content %default-bashrc) "\n"
+ ;; The host distro might provide a bad 'PS1'
+ ;; default--e.g., not taking $GUIX_ENVIRONMENT into
+ ;; account. Provide a good default here when asked.
+ "PS1='\\u@\\h \\w${GUIX_ENVIRONMENT:+ [env]}\\$ '\n"
(serialize-field 'aliases))
(list (serialize-field 'aliases))))
(file-if-not-empty 'bash-logout)))))
diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm
index 962e633618..a3ca21b319 100644
--- a/gnu/home/services/shepherd.scm
+++ b/gnu/home/services/shepherd.scm
@@ -144,7 +144,12 @@ as shepherd package."
(format #f "/run/user/~a" (getuid)))
"/shepherd/socket"))
#$(reload-configuration-gexp config)
- #$(launch-shepherd-gexp config)))
+ ;; Don't attempt to start user shepherd if the system is running the
+ ;; activation script. /run/user/<uid> may not have been created
+ ;; yet. But do otherwise so if the runtime dir does not exist an error
+ ;; is logged.
+ (unless (getenv "GUIX_SYSTEM_IS_RUNNING_HOME_ACTIVATE")
+ #$(launch-shepherd-gexp config))))
(define (shepherd-xdg-configuration-files config)
`(("shepherd/init.scm" ,(home-shepherd-configuration-file config))))
diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm
index 4dfed78785..1cb9dc579c 100644
--- a/gnu/installer/services.scm
+++ b/gnu/installer/services.scm
@@ -110,11 +110,6 @@
(name (G_ "Tor anonymous network router"))
(type 'networking)
(snippet '((service tor-service-type))))
- (system-service
- (name (G_ "Mozilla NSS certificates, for HTTPS access"))
- (type 'networking)
- (packages '((specification->package "nss-certs")))
- (recommended? #t))
;; Miscellaneous system administration services.
(system-service
diff --git a/gnu/local.mk b/gnu/local.mk
index a281a79610..42961e60b2 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>
@@ -49,7 +49,7 @@
# Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
# Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
# Copyright © 2022 Remco van 't Veer <remco@remworks.net>
-# Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+# Copyright © 2022, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
# Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
# Copyright © 2022 muradm <mail@muradm.net>
# Copyright © 2022 Hilton Chain <hako@ultrarare.space>
@@ -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 \
@@ -609,6 +611,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/sml.scm \
%D%/packages/solidity.scm \
%D%/packages/sourcehut.scm \
+ %D%/packages/specifications.scm \
%D%/packages/speech.scm \
%D%/packages/sphinx.scm \
%D%/packages/spice.scm \
@@ -951,7 +954,6 @@ dist_patch_DATA = \
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
%D%/packages/patches/ath9k-htc-firmware-gcc.patch \
%D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \
- %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
%D%/packages/patches/atlas-gfortran-compat.patch \
%D%/packages/patches/audacity-ffmpeg-fallback.patch \
%D%/packages/patches/audiofile-fix-datatypes-in-tests.patch \
@@ -1009,8 +1011,6 @@ dist_patch_DATA = \
%D%/packages/patches/breezy-fix-gio.patch \
%D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
- %D%/packages/patches/cairo-CVE-2018-19876.patch \
- %D%/packages/patches/cairo-CVE-2020-35492.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-remove-test-sqlite.patch \
%D%/packages/patches/calibre-remove-test-unrar.patch \
@@ -1021,6 +1021,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 \
@@ -1074,6 +1075,7 @@ dist_patch_DATA = \
%D%/packages/patches/cool-retro-term-wctype.patch \
%D%/packages/patches/coreutils-gnulib-tests.patch \
%D%/packages/patches/cppcheck-disable-char-signedness-test.patch \
+ %D%/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch\
%D%/packages/patches/cpuinfo-system-libraries.patch \
%D%/packages/patches/cpulimit-with-glib-2.32.patch \
%D%/packages/patches/crawl-upgrade-saves.patch \
@@ -1119,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 \
@@ -1294,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 \
@@ -1363,7 +1367,6 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-2.29-git-updates.patch \
%D%/packages/patches/glibc-2.29-supported-locales.patch \
%D%/packages/patches/glibc-supported-locales.patch \
- %D%/packages/patches/glslang-install-static-libs.patch \
%D%/packages/patches/gmobile-make-it-installable.patch \
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
%D%/packages/patches/gmp-faulty-test.patch \
@@ -1509,6 +1512,7 @@ dist_patch_DATA = \
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
%D%/packages/patches/java-commons-collections-fix-java8.patch \
%D%/packages/patches/java-commons-lang-fix-dependency.patch \
+ %D%/packages/patches/java-guava-remove-annotation-deps.patch \
%D%/packages/patches/java-jeromq-fix-tests.patch \
%D%/packages/patches/java-openjfx-build-jdk_version.patch \
%D%/packages/patches/java-powermock-fix-java-files.patch \
@@ -1769,7 +1773,6 @@ dist_patch_DATA = \
%D%/packages/patches/openboardview-use-system-imgui.patch \
%D%/packages/patches/openboardview-use-system-mpc.patch \
%D%/packages/patches/openbox-python3.patch \
- %D%/packages/patches/opencolorio-fix-build-with-gcc11.patch \
%D%/packages/patches/openjdk-currency-time-bomb.patch \
%D%/packages/patches/openjdk-currency-time-bomb2.patch \
%D%/packages/patches/openjdk-9-pointer-comparison.patch \
@@ -1998,9 +2001,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 \
@@ -2243,7 +2245,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/algebra.scm b/gnu/packages/algebra.scm
index d63822a263..ad1e70c62c 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -228,7 +228,7 @@ the real span of the lattice.")
(define-public pari-gp
(package
(name "pari-gp")
- (version "2.15.4")
+ (version "2.15.5")
(source (origin
(method url-fetch)
(uri (string-append
@@ -236,7 +236,7 @@ the real span of the lattice.")
version ".tar.gz"))
(sha256
(base32
- "03swii601kxnphl6v7wv0rh2xn4rz6xbljzvfw5v9py6w3z5nm63"))))
+ "10grsn8wr8k02akj8f8wm1rhzrk0qls4phr46gv59nfr2msxmz8f"))))
(build-system gnu-build-system)
(native-inputs (list (texlive-updmap.cfg)))
(inputs (list gmp libx11 perl readline))
@@ -447,20 +447,24 @@ or text interfaces) or as a C++ library.")
(define-public flint
(package
(name "flint")
- (version "3.0.1")
+ (version "3.1.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://flintlib.org/flint-" version ".tar.gz"))
(sha256
- (base32 "1d4lawfvmjd4n7rp4z9xkwwjjbrjhkmxnxw1xf0ki1isa001lcbv"))))
+ (base32 "0017bjncpx4kdx67qcnm3nahz3gyyi2w3ggkrx586r3llcqs9czx"))))
(build-system gnu-build-system)
(inputs
(list ntl))
(propagated-inputs
- (list gmp mpfr)) ; header files from both are included by flint/arith.h
+ (list gmp mpfr)) ; header files included by flint.h or mpfr_mat.h
(arguments
- `(#:parallel-tests? #f)) ; seems to be necessary on arm
+ ;; Parallel tests failed in the past on ARM, this may need to be
+ ;; tested again.
+ `(#:parallel-tests? #f
+ ;; Prevent build machine specifics from ending up in the binary.
+ #:configure-flags '("--disable-assembly")))
(synopsis "Fast library for number theory")
(description
"FLINT is a C library for number theory. It supports arithmetic
@@ -473,7 +477,7 @@ Operations that can be performed include conversions, arithmetic,
GCDs, factoring, solving linear systems, and evaluating special
functions. In addition, FLINT provides various low-level routines for
fast arithmetic.")
- (license license:lgpl2.1+)
+ (license license:lgpl3+)
(home-page "https://flintlib.org/")
(properties
'((release-monitoring-url . "http://flintlib.org/downloads.html")))))
@@ -525,8 +529,7 @@ these types and other mathematical functions.")
(modules '((guix build utils)))
(snippet
'(begin
- (delete-file-recursively "src/libtool-origin")
- #t))))
+ (delete-file-recursively "src/libtool-origin")))))
(build-system gnu-build-system)
(native-inputs
(list libtool perl)) ; for configuration
@@ -554,7 +557,8 @@ these types and other mathematical functions.")
"NTL is a C++ library providing data structures and algorithms
for manipulating signed, arbitrary length integers, and for vectors,
matrices, and polynomials over the integers and over finite fields.")
- (license license:gpl2+)
+ (license license:lgpl2.1+) ; Linking with gf2x makes the distributed
+ ; binary de facto gpl3+.
(home-page "https://shoup.net/ntl/")))
(define-public singular
@@ -1011,7 +1015,8 @@ extends it by a set of algebraic capabilities.")
(guix build utils)
(guix build cmake-build-system))
- #:phases (modify-phases %standard-phases
+ #:phases
+ (modify-phases %standard-phases
(add-after 'unpack 'disable-some-tests
;; Not all platforms are well supported by the test suite.
(lambda _
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/astronomy.scm b/gnu/packages/astronomy.scm
index bc4bd55461..5bd681cc15 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -1388,7 +1388,7 @@ deconvolution). Such post-processing is not performed by Stackistry.")
qtmultimedia-5
qtpositioning
qtscript
- qtserialport
+ qtserialport-5
qttranslations
qtwebengine-5
qxlsx-qt5
@@ -4705,7 +4705,9 @@ specification.")
(list python-coverage
python-h5py
python-pandas
+ python-pytest
python-pytest-astropy
+ python-pytest-xdist
python-scipy
python-semantic-version
python-setuptools-scm))
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/axoloti.scm b/gnu/packages/axoloti.scm
index 72802bcf15..ebd2e37d5c 100644
--- a/gnu/packages/axoloti.scm
+++ b/gnu/packages/axoloti.scm
@@ -618,7 +618,7 @@ powerful microcontroller board: Axoloti Core.")
(define-public ksoloti-runtime
(package
(name "ksoloti-runtime")
- (version "1.0.12-7")
+ (version "1.0.12-8")
(source
(origin
(method git-fetch)
@@ -627,7 +627,7 @@ powerful microcontroller board: Axoloti Core.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "046jddrzlx1pdn53z0l8wf3rz7jsx7qn6l08ccw104gk996gr3gn"))
+ (base32 "00ghkz3fhmmza24qrmhhz8n90n5q465fk9bld3hrfijf8sf4532i"))
(modules '((guix build utils)))
;; Remove pre-built Java binaries.
(snippet
@@ -685,12 +685,6 @@ powerful microcontroller board: Axoloti Core.")
(string-append "TRGT = "
(assoc-ref inputs "cross-toolchain")
"/bin/arm-none-eabi-\n")))
- ;; XXX: Add missing entry for -size tool. This should be
- ;; upstreamed.
- (substitute* '("firmware_axoloti_legacy/flasher/Makefile"
- "firmware_axoloti_legacy/mounter/Makefile")
- (("^OD.*= \\$\\(TRGT\\)objdump" m)
- (string-append m "\nSZ = $(TRGT)size")))
;; Hardcode path to "make"
(substitute* '("firmware/compile_firmware_linux.sh"
@@ -759,7 +753,7 @@ powerful microcontroller board: Axoloti Core.")
;; for compiling firmware
("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-4.9))
;; for uploading compiled patches and firmware
- ("dfu-util" ,dfu-util-for-axoloti)))
+ ("dfu-util" ,dfu-util)))
(native-inputs (list unzip))
(home-page "https://ksoloti.github.io/")
(synopsis "Audio development environment for the Ksoloti board")
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index affd659fad..5e74439bff 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -41,31 +41,31 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages backup)
- #:use-module (guix gexp)
- #:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix gexp)
- #:use-module (guix git-download)
- #:use-module (guix download)
- #:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages autotools)
- #:use-module (gnu packages bash)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages datastructures)
- #:use-module (gnu packages digest)
#:use-module (gnu packages dbm)
#:use-module (gnu packages dejagnu)
+ #:use-module (gnu packages digest)
#:use-module (gnu packages ftp)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@@ -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/batik.scm b/gnu/packages/batik.scm
index 58f829dbd5..d435cc0f1a 100644
--- a/gnu/packages/batik.scm
+++ b/gnu/packages/batik.scm
@@ -338,7 +338,6 @@ SAC is an interface for CSS parsers.")
#t))))))
(native-inputs
`(("java-apache-xml-commons-resolver" ,java-apache-xml-commons-resolver)
- ("java-asm" ,java-asm)
("java-cglib" ,java-cglib)
("java-hamcrest" ,java-hamcrest-core)
("java-junit" ,java-junit)
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 0beef9ace4..0fca094977 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -3549,13 +3549,13 @@ paired or unpaired study designs.")
(define-public r-alevinqc
(package
(name "r-alevinqc")
- (version "1.18.0")
+ (version "1.18.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "alevinQC" version))
(sha256
(base32
- "0lhbh9xgkbrad9fqvxl4c6y0f2kgibn6sinp8znysk5m9z0ngpwp"))))
+ "0jzvldbqsqz5j0fp41jdq3vfwp1q1ggckparzx21jlli211c9shr"))))
(properties `((upstream-name . "alevinQC")))
(build-system r-build-system)
(propagated-inputs
@@ -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.5")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GSVA" version))
(sha256
(base32
- "0ld0bbl6ar3yhi6ncg9d8q60hg4m4v5kphl044fw63l19ixln7cf"))))
+ "0n1g376jfpmnlsjdbv23hb3jny03i84jmvhrcpz2rb5bbpfbm0al"))))
(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
@@ -13202,14 +13203,14 @@ respectively.")
(define-public r-bayseq
(package
(name "r-bayseq")
- (version "2.36.0")
+ (version "2.36.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "baySeq" version))
(sha256
(base32
- "1b5vvzl0kkm6kb03vr6m6sdlr3azpc24933a7ayxkiffmf2wbi0g"))))
+ "0c24glflznbihx81kgvlx5i3wb95c7jg4wllwawry4kb6rkjbwp0"))))
(properties `((upstream-name . "baySeq")))
(build-system r-build-system)
(propagated-inputs
@@ -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
@@ -15455,14 +15455,14 @@ are standardized and usable by the accompanying mutossGUI package.")
(define-public r-metap
(package
(name "r-metap")
- (version "1.9")
+ (version "1.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "metap" version))
(sha256
(base32
- "1w4mv7vb94d4pkllvabz9az8sbrbfhigxw4is3j0jzi1pnlyc8kg"))))
+ "18l86026g5g0pdihw41h7yck1ad5k43bb7as5qih2k5xkr680mzx"))))
(build-system r-build-system)
(propagated-inputs
(list r-lattice
@@ -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..aa6bce5591 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -25,6 +25,7 @@
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2022, 2023 Navid Afkhami <navid.afkhami@mdc-berlin.de>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
+;;; Copyright © 2024 Alexis Simon <alexis.simon@runbox.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -96,6 +97,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)
@@ -1139,6 +1141,62 @@ from single-cell RNA-seq data.")
;; GPLv3.
(license license:gpl3))))
+(define-public r-saige
+ (let ((commit "c6717ba9c5a967bcf612e97566d845397b1b7167")
+ (revision "1"))
+ (package
+ (name "r-saige")
+ (version (git-version "1.3.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/saigegit/SAIGE")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0c3211whqazycs9ivwdz23imj45j4na2xzcfq5l989ykkgmqnjzs"))))
+ (properties `((upstream-name . "SAIGE")))
+ (build-system r-build-system)
+ (arguments
+ (list
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'do-not-download-packages
+ (lambda _
+ ;; Pretend to be a Conda build to avoid having to install
+ ;; things with pip and cget.
+ (setenv "CONDA_BUILD" "1")))
+ (add-after 'unpack 'link-with-openblas
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/Makevars"
+ (("-llapack")
+ (search-input-file inputs
+ "/lib/libopenblas.so"))))))))
+ (inputs (list openblas savvy superlu zlib zstd))
+ (propagated-inputs (list r-bh
+ r-data-table
+ r-dplyr
+ r-matrix
+ r-metaskat
+ r-optparse
+ r-qlcmatrix
+ r-rcpp
+ r-rcpparmadillo
+ r-rcppeigen
+ r-rcppparallel
+ r-rhpcblasctl
+ r-rsqlite
+ r-skat
+ r-spatest))
+ (home-page "https://github.com/saigegit/SAIGE")
+ (synopsis "Genome-wide association tests in large-scale data sets")
+ (description "SAIGE is a package for efficiently controlling for
+case-control imbalance and sample relatedness in single-variant assoc
+tests (SAIGE) and controlling for sample relatedness in region-based assoc
+tests in large cohorts and biobanks (SAIGE-GENE+).")
+ (license license:gpl2+))))
+
(define-public r-singlet
(let ((commit "765a6c45081807a1522f0e8983e2417822a36f36")
(revision "1"))
@@ -1915,6 +1973,58 @@ from high-throughput single-cell RNA sequencing (scRNA-seq) data.")
and sequence consensus.")
(license license:expat)))
+(define-public python-cyvcf2
+ (package
+ (name "python-cyvcf2")
+ (version "0.30.28")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brentp/cyvcf2")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16yhfax509zyip8kkq2b0lflx5bdq5why7d785ayrqyzzq2rxqkk"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete bundled library
+ '(delete-file-recursively "htslib"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'build-extensions
+ (lambda _
+ ;; Cython extensions have to be built before running the tests.
+ (invoke "python" "setup.py" "build_ext" "--inplace")))
+ (add-after 'unpack 'fix-setup
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "setup.py"
+ (("^htslib_include_dirs =.*")
+ (string-append "htslib_include_dirs = [\""
+ #$(this-package-input "htslib") "/include\"]\n"))
+ (("lib_name = \"libhts.so\"")
+ (string-append "lib_name = \""
+ (search-input-file inputs "lib/libhts.so.3")
+ "\"\n")))))
+ (add-before 'build 'use-system-htslib-package
+ (lambda _
+ (setenv "CYTHONIZE" "1")
+ (setenv "CYVCF2_HTSLIB_MODE" "EXTERNAL"))))))
+ (inputs (list curl htslib libdeflate openssl zlib))
+ (native-inputs (list python-cython python-pytest))
+ (propagated-inputs
+ (list python-click
+ python-coloredlogs
+ python-numpy))
+ (home-page "https://github.com/brentp/cyvcf2/")
+ (synopsis "Fast vcf file parsing with Cython and htslib")
+ (description "Cyvcf2 is a Cython wrapper around htslib built for fast
+parsing of Variant Call Format (VCF) files.")
+ (license license:expat)))
+
(define-public python-decoupler-py
;; This latest commit fixes a bug in test_omnip.py.
(let ((commit "459b235348ddd9135217a3722d9dd1caa9a14ace")
@@ -4615,7 +4725,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,10 +4734,25 @@ 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))
+ (list python-mock python-pytest))
(propagated-inputs
(list python-matplotlib
python-numpy
@@ -4637,7 +4762,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
@@ -7287,6 +7412,10 @@ geographic distributions.")
(modify-phases %standard-phases
;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class"
(delete 'generate-jar-indices)
+ (add-after 'unpack 'fix-guava
+ (lambda _
+ (substitute* "src/java/picard/cmdline/CommandLineParser.java"
+ (("CharMatcher.ASCII") "CharMatcher.ascii()"))))
(add-after 'unpack 'use-our-htsjdk
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "build.xml"
@@ -7346,6 +7475,10 @@ VCF.")
(delete 'generate-jar-indices)
(add-after 'unpack 'remove-useless-build.xml
(lambda _ (delete-file "build.xml") #t))
+ (add-after 'unpack 'fix-guava
+ (lambda _
+ (substitute* "src/main/java/picard/cmdline/CommandLineParser.java"
+ (("CharMatcher.ASCII") "CharMatcher.ascii()"))))
;; This is necessary to ensure that htsjdk is found when using
;; picard.jar as an executable.
(add-before 'build 'edit-classpath-in-manifest
@@ -9309,6 +9442,43 @@ viewer.")
(delete 'patch-tests)
(delete 'configure))))))))
+(define-public savvy
+ (package
+ (name "savvy")
+ (version "2.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/statgen/savvy")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "03jh89gl67adnpkwx8yrdn62pd9sg69k21gxh15my2vvpfl1pxlx"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ '(list "-DBUILD_TESTS=ON"
+ "-DBUILD_EVAL=ON")
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'use-shared-libraries
+ (lambda _
+ ;; Do not prefer static libraries.
+ (substitute* "CMakeLists.txt"
+ (("set\\(CMAKE_FIND_LIBRARY_SUFFIXES \".a;.*") "")))))))
+ (native-inputs (list pkg-config))
+ (inputs (list htslib))
+ (propagated-inputs (list streambuf-shrinkwrap))
+ (home-page "https://github.com/statgen/savvy/")
+ (synopsis "Interface to various variant calling formats")
+ (description
+ "Savvy is the official C++ interface for the SAV file format and offers
+seamless support for BCF and VCF files.")
+ (license license:mpl2.0)))
+
(define-public morpheus
(package
(name "morpheus")
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/build-tools.scm b/gnu/packages/build-tools.scm
index 74e28f0e98..daaf450e70 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -333,7 +333,7 @@ resembles Python.")
(define-public meson/newer
(package
(inherit meson)
- (version "1.1.1")
+ (version "1.2.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mesonbuild/meson/"
@@ -341,7 +341,7 @@ resembles Python.")
version ".tar.gz"))
(sha256
(base32
- "073vf8059nzs6p5aaqr5wva4pgl81540szdb5yw9yhyajwgm8jyh"))))))
+ "1x9rnrbwvzhnzmz4zqag44w06khks8wckcajxsbr8m4760akmnxi"))))))
(define-public meson-python
(package
@@ -396,6 +396,13 @@ resembles Python.")
(description "Meson-python is a PEP 517 build backend for Meson projects.")
(license license:expat)))
+(define-public meson-python/newer
+ (package
+ (inherit meson-python)
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs meson-python)
+ (replace "meson" meson/newer)))))
+
(define-public premake4
(package
(name "premake")
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index 58b4d50ec8..00c6a93b92 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.99
+ (package
+ (inherit nss-certs)
+ (version "3.99")
+ (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
+ "1g89ig40gfi1sp02gybvl2z818lawcnrqjzsws36cdva834c5maw"))))))
+
(define-public le-certs
(package
(name "le-certs")
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 99990a8980..fafa5d3f33 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -81,6 +81,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
@@ -1277,6 +1278,20 @@ and functions, detailed info on failing assert statements, modular fixtures,
and many external plugins.")
(license license:expat)))
+(define-public python-pytest-next
+ (package/inherit python-pytest
+ (name "python-pytest")
+ (version "7.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest" version))
+ (sha256
+ (base32 "02q32y67nflrmk9snmibq5kmqcbgfm29k9wm0yw0ia2vqly0m6gf"))))
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs python-pytest)
+ (append python-exceptiongroup)))))
+
(define-deprecated python-pytest-6 python-pytest)
(export python-pytest-6)
@@ -1740,15 +1755,7 @@ same arguments.")
(sha256
(base32
"1psf5dqxvc38qzxvc305mkg5xpdmdkbkkfiyqlmdnkgh7z5dx025"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv"
- "-n" (number->string (parallel-job-count)))))))))
+ (build-system pyproject-build-system)
(native-inputs (list python-setuptools-scm python-filelock python-pytest))
(propagated-inputs (list python-execnet python-pytest-forked))
(home-page "https://github.com/pytest-dev/pytest-xdist")
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/code.scm b/gnu/packages/code.scm
index 9048466c37..d6ac8178f3 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -17,7 +17,9 @@
;;; Copyright © 2021 lu hui <luhuins@163.com>
;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2023 Fries <fries1234@protonmail.com>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,6 +47,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
+ #:use-module (guix build-system go)
#:use-module (gnu packages)
#:use-module (gnu packages autogen)
#:use-module (gnu packages autotools)
@@ -59,7 +62,10 @@
#:use-module (gnu packages emacs)
#:use-module (gnu packages flex)
#:use-module (gnu packages gcc)
- #:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-crypto)
+ #:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages llvm)
#:use-module (gnu packages linux)
@@ -95,23 +101,24 @@
(sha256
(base32
"1r0sbw82cf9dbcj3vgnbd4sc1lklzvijic2z5wgkvs21azcm0yzh"))))
- (build-system gnu-build-system)
+ (build-system go-build-system)
(arguments
- (list #:tests? #false ;no tests
- #:phases
- #~(modify-phases %standard-phases
- (delete 'configure)
- (replace 'build
- (lambda _
- (setenv "HOME" "/tmp")
- (invoke "bash" "Build/build.sh")))
- (replace 'install
- (lambda _
- (let ((bin (string-append #$output "/bin")))
- (mkdir-p bin)
- (copy-file "act.linux"
- (string-append #$output "/bin/act"))))))))
- (native-inputs (list go))
+ (list
+ #:tests? #f ;no tests
+ #:install-source? #f
+ #:import-path "github.com/Autodesk/AutomaticComponentToolkit/cmd/act"
+ #:unpack-path "github.com/Autodesk/AutomaticComponentToolkit/"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Golang produces the final binary based on the current directory
+ ;; name if -o options is not provided, utilize this assumption to
+ ;; completely relay on go-build-system.
+ (add-before 'build 'pretend-cmd-act
+ (lambda* (#:key unpack-path #:allow-other-keys)
+ (let ((act (string-append "src/" unpack-path "/cmd/act"))
+ (source (string-append "src/" unpack-path "/Source")))
+ (mkdir-p act)
+ (copy-recursively source act)))))))
(synopsis "Automatically generate software components")
(description
"The Automatic Component Toolkit (@dfn{ACT}) is a code generator that
@@ -379,6 +386,41 @@ cloc contains code from David Wheeler's SLOCCount. Compared to SLOCCount,
cloc can handle a greater variety of programming languages.")
(license license:gpl2+)))
+(define-public scc
+ (package
+ (name "scc")
+ (version "3.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/boyter/scc")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rkkfg6jimlc2rkajk6ypd5v0m3zai25ga5idz2pmkmzakv82n21"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:install-source? #f
+ #:import-path "github.com/boyter/scc"))
+ (native-inputs
+ (list go-github-com-dbaggerman-cuba
+ go-github-com-json-iterator-go
+ go-github-com-mattn-go-runewidth
+ go-github-com-minio-blake2b-simd
+ go-github-com-spf13-cobra
+ go-golang-org-x-text
+ go-gopkg-in-yaml-v2))
+ (home-page "https://github.com/boyter/scc")
+ (synopsis "Fast code counter written in Go")
+ (description
+ "@command{scc} provides a lines-of-code counter similar to tools like
+@command{cloc} and @command{sloccount}. It aims to be fast as possible while
+supporting @acronym{COCOMO,Constructive Cost Model} calculation and code
+complexity estimation.")
+ (license license:expat)))
+
(define-public the-silver-searcher
(package
(name "the-silver-searcher")
@@ -495,60 +537,6 @@ support, its ability for the user to define new languages searched by regular
expressions, and its ability to generate emacs-style TAGS files.")
(license license:gpl2+)))
-(define-public withershins
- (package
- (name "withershins")
- (version "0.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/cameronwhite/withershins")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1cviqvbbcwljm1zx12j6511hazr3kscwrvcyifrkfi4fpy5z985m"))))
- (build-system cmake-build-system)
- (arguments
- `(#:out-of-source? #f
- #:configure-flags
- ;; XXX A (justified!) misleading-indentation error breaks the build.
- (list "-DENABLE_WERROR=OFF")
- #:phases
- (modify-phases %standard-phases
- (add-after
- 'unpack 'find-libiberty
- (lambda _
- (let ((libiberty (assoc-ref %build-inputs "libiberty")))
- (substitute* "cmake/FindIberty.cmake"
- (("/usr/include") (string-append libiberty "/include"))
- (("libiberty.a iberty")
- (string-append "NAMES libiberty.a iberty\nPATHS \""
- libiberty "/lib" "\"")))
- #t)))
- (replace
- 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (include (string-append out "/include"))
- (lib (string-append out "/lib")))
- (mkdir-p include)
- (install-file "src/withershins.hpp" include)
- (mkdir-p lib)
- (install-file "src/libwithershins.a" lib))
- #t)))))
- (home-page "https://github.com/cameronwhite/withershins")
- (inputs
- (list libiberty binutils ;for libbfd
- zlib))
- (synopsis "C++11 library for generating stack traces")
- (description
- "Withershins is a simple cross-platform C++11 library for generating
-stack traces.")
- ;; Sources are released under Expat license, but since BFD is licensed
- ;; under the GPLv3+ the combined work is GPLv3+ as well.
- (license license:gpl3+)))
-
(define-public lcov
(package
(name "lcov")
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 9124f0e2e0..b4d236c35b 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3612,12 +3612,11 @@ is the GNU Compiler Collection.")
("ld-wrapper" ,(car (assoc-ref (%final-inputs (%current-system))
"ld-wrapper")))
("binutils" ,binutils-final)
+ ("gcc-lib" ,gcc "lib")
("libc" ,libc)
("libc-debug" ,libc "debug")
("libc-static" ,libc "static"))))))
-(define-public gcc-toolchain
- (make-gcc-toolchain gcc-final))
(define-public gcc-toolchain-4.8
(make-gcc-toolchain gcc-4.8))
@@ -3644,7 +3643,7 @@ is the GNU Compiler Collection.")
(make-gcc-toolchain gcc-10))
(define-public gcc-toolchain-11
- gcc-toolchain)
+ (make-gcc-toolchain gcc-11))
(define-public gcc-toolchain-12
(make-gcc-toolchain gcc-12))
@@ -3652,10 +3651,14 @@ is the GNU Compiler Collection.")
(define-public gcc-toolchain-13
(make-gcc-toolchain gcc-13))
+;; The default GCC
+(define-public gcc-toolchain
+ gcc-toolchain-11)
+
(define-public gcc-toolchain-aka-gcc
;; It's natural for users to try "guix install gcc". This package
;; automatically "redirects" them to 'gcc-toolchain'.
- (deprecated-package "gcc" gcc-toolchain-11))
+ (deprecated-package "gcc" gcc-toolchain))
(define-public gdc-toolchain-10
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 5de17b6b51..55784a70de 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021, 2022, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
;;; Copyright © 2015-2023 Efraim Flashner <efraim@flashner.co.il>
@@ -38,6 +38,7 @@
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2024 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -490,6 +491,36 @@ compressed with pbzip2 can be decompressed with bzip2).")
(license (license:non-copyleft "file://COPYING"
"See COPYING in the distribution."))))
+;; We call this streambuf-shrinkwrap because a Python package with the name
+;; "shrinkwrap" already exists.
+(define-public streambuf-shrinkwrap
+ (package
+ (name "streambuf-shrinkwrap")
+ (version "1.2.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jonathonl/shrinkwrap")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1819va068kp68ks52f7h0dq74xq059a4m86zls2k7dj5zxhs8qs2"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ '(list "-DSHRINKWRAP_PREFER_STATIC=OFF"
+ "-DBUILD_TESTS=ON")))
+ (propagated-inputs (list bzip2 xz zlib `(,zstd "lib")))
+ (native-inputs (list pkg-config))
+ (home-page "https://github.com/jonathonl/shrinkwrap")
+ (synopsis "Wrapper around std::streambuf for zstd, xz, gzip, and bgzf files")
+ (description
+ "Shrinkwrap provides a @code{std::streambuf} wrapper for various compression
+formats, including zstd, xz, gzip, and bgzf.")
+ (license license:expat)))
+
(define-public xz
(package
(name "xz")
@@ -769,6 +800,32 @@ This package is mostly for compatibility and historical interest.")
with the sfArk algorithm.")
(license license:gpl3+)))
+(define-public minizip-ng
+ (package
+ (name "minizip-ng")
+ (version "4.0.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/zlib-ng/minizip-ng")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lgx4s4aykxn8x3b4m4c4isasd2608bbyfm4lxc2spcc4xqwhzkz"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
+ "-DMZ_BUILD_TESTS=ON"
+ "-DMZ_BUILD_UNIT_TESTS=ON")))
+ (native-inputs (list googletest pkg-config))
+ (inputs (list openssl zlib `(,zstd "lib")))
+ (home-page "https://github.com/zlib-ng/minizip-ng")
+ (synopsis "Zip manipulation library")
+ (description "@code{minizip-ng} is a zip manipulation library written in
+C, forked from the zip manipulation library found in the zlib distribution.")
+ (license license:bsd-3)))
+
(define-public sfarkxtc
(let ((commit "13cd6f93725a90d91ec5ea75babf1dbd694ac463")
(revision "1"))
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/cpp.scm b/gnu/packages/cpp.scm
index d4123c7bf4..8a0bd62d6b 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2020, 2021, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
-;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021, 2022, 2024 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
@@ -39,6 +39,7 @@
;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;; Copyright © 2023 Paul A. Patience <paul@apatience.com>
+;;; Copyright © 2024 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -66,6 +67,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system pyproject)
#:use-module (guix build-system scons)
#:use-module (guix modules)
#:use-module (guix gexp)
@@ -78,6 +80,7 @@
#:use-module (gnu packages build-tools)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
@@ -477,6 +480,44 @@ the name of the library itself, which is written in C++.")
(license (list license:expat ; cJSON
license:bsd-4))))) ; everything else (LICENSE.txt)
+(define-public pystring
+ (package
+ (name "pystring")
+ (version "1.1.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/imageworks/pystring")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "0h12x24skrlx4fv0k5vl8wnar8gi6bq091yp93awkwsbnm8qwkzd"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ ;; The install phase doesn't install the header
+ (add-after 'install 'install-header
+ (lambda _
+ (mkdir-p (string-append #$output "/include"))
+ (copy-file
+ (string-append #$(package-source this-package)
+ "/pystring.h")
+ (string-append #$output
+ "/include/pystring.h")))))))
+ (native-inputs (list pkg-config))
+ (home-page "https://github.com/imageworks/pystring")
+ (synopsis "C++ functions matching the Python string methods")
+ (description
+ "Pystring is a collection of C++ functions which match the interface and
+behavior of Python's string class methods using std::string. Implemented in
+C++, it does not require or make use of a python interpreter. It provides
+convenience and familiarity for common string operations not included in the
+standard C++ library. It's also useful in environments where both C++ and
+Python are used.")
+ (license license:bsd-3)))
+
(define-public dashel
(package
(name "dashel")
@@ -818,6 +859,41 @@ intuitive syntax and trivial integration.")
(define-public json-modern-cxx
(deprecated-package "json-modern-cxx" nlohmann-json))
+(define-public tomlplusplus
+ (package
+ (name "tomlplusplus")
+ (version "3.4.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/marzer/tomlplusplus")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1hvbifzcc97r9jwjzpnq31ynqnj5y93cjz4frmgddnkg8hxmp6w7"))))
+ (build-system meson-build-system)
+ (arguments
+ (list #:configure-flags
+ #~(list "-Dbuild_tests=true")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-test-locales
+ (lambda _
+ (substitute* "tests/meson.build"
+ (("foreach locale : test_locales" all)
+ (format #f "test_locales = ['C', ~{'~a.utf8', ~}]~%~a"
+ ;; %default-utf8-locales in (gnu packages base).
+ '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR")
+ all))))))))
+ (native-inputs (list cmake-minimal))
+ (home-page "https://marzer.github.io/tomlplusplus/")
+ (synopsis "Header-only TOML config file parser and serializer for C++17")
+ (description
+ "This package provides header-only TOML config file parser and serializer
+for C++17.")
+ (license license:expat)))
+
(define-public xtl
(package
(name "xtl")
@@ -1081,12 +1157,13 @@ library.")
(sha256
(base32 "13l86aq0h1jga949k79k9x3hw2xqchjc162sclg2f99vz98zcz15"))
(file-name (git-file-name name version))))
+ (build-system pyproject-build-system)
(arguments
(list #:modules `((srfi srfi-1)
(srfi srfi-26)
- ,@%python-build-system-modules)
+ ,@%pyproject-build-system-modules)
#:phases
- #~(modify-phases (@ (guix build python-build-system) %standard-phases)
+ #~(modify-phases (@ (guix build pyproject-build-system) %standard-phases)
(add-before 'wrap 'reduce-GUIX_PYTHONPATH
(lambda _
;; Hide the transitive native inputs from GUIX_PYTHONPATH
@@ -1110,12 +1187,7 @@ library.")
(add-after 'wrap 'reset-GUIX_PYTHONPATH
(lambda _
(setenv "GUIX_PYTHONPATH"
- (getenv "TMP_PYTHONPATH"))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv")))))))
- (build-system python-build-system)
+ (getenv "TMP_PYTHONPATH")))))))
(native-inputs
(list python-coverage
python-pytest
@@ -1837,7 +1909,7 @@ queues header library based on circular buffer with @code{std::atomic}.")
(define-public magic-enum
(package
(name "magic-enum")
- (version "0.7.3")
+ (version "0.9.5")
(home-page "https://github.com/Neargye/magic_enum")
(source (origin
(method git-fetch)
@@ -1847,7 +1919,7 @@ queues header library based on circular buffer with @code{std::atomic}.")
(file-name (git-file-name name version))
(sha256
(base32
- "1x47radgsifgz3vn2561mlvf4cq46ii33cpyqf01znm56iirwq89"))))
+ "14ys5sn2v1mai8bclvi81cp65g6jblqpdsi94639hphca5v8gka3"))))
(build-system cmake-build-system)
(synopsis "C++17 header only library for compile time reflection of enums")
(description "Magic Enum offers static reflection of enums, with
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 8207f09725..ee0aac7f7a 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
@@ -537,13 +537,13 @@ labels on the node can also be achieved.")
(define-public r-collapse
(package
(name "r-collapse")
- (version "2.0.12")
+ (version "2.0.13")
(source
(origin
(method url-fetch)
(uri (cran-uri "collapse" version))
(sha256
- (base32 "0dplfsj4lqafw0zkrqhph9sk22qpkm5i753pgwf9w9cq5d17f537"))))
+ (base32 "11i1zw9c9fp5rnhd14b8ivqas38v8qywmmh9w4iaxrb02s77qwz5"))))
(properties `((upstream-name . "collapse")))
(build-system r-build-system)
(propagated-inputs (list r-rcpp))
@@ -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
@@ -2930,6 +2930,28 @@ provides methods for automatically determining breaks and labels for axes and
legends.")
(license license:expat)))
+(define-public r-skat
+ (package
+ (name "r-skat")
+ (version "2.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "SKAT" version))
+ (sha256
+ (base32 "1x2iyvzc66lmzwjdr8hy5gf3nxc7ik5vhbs40w00d2m7nr3glh8l"))))
+ (properties `((upstream-name . "SKAT")))
+ (build-system r-build-system)
+ (propagated-inputs (list r-matrix r-rspectra r-spatest))
+ (home-page "https://cran.r-project.org/package=SKAT")
+ (synopsis "SNP-Set (Sequence) kernel association test")
+ (description
+ "This package provides functions for kernel-regression-based association
+tests including Burden test, SKAT and SKAT-O. These methods aggregate
+individual SNP score statistics in a SNP set and efficiently compute SNP-set
+level p-values.")
+ (license license:gpl2+)))
+
(define-public r-swagger
(package
(name "r-swagger")
@@ -3996,13 +4018,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 +4647,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))
@@ -6279,14 +6301,14 @@ component analysis (with robust methods, and parallelized functions).")
(define-public r-ape
(package
(name "r-ape")
- (version "5.7-1")
+ (version "5.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "ape" version))
(sha256
(base32
- "0yh5wl7nydhwwc82h6yr8wcacc2f791pp05w8fg65anq309cf2cb"))))
+ "092dx0x763r6ch6pp4c4fkmnq5alrq0527p72w1wdg71g6cp5ki4"))))
(build-system r-build-system)
(propagated-inputs
(list r-digest r-lattice r-nlme r-rcpp))
@@ -6619,6 +6641,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 +6683,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
@@ -7366,13 +7412,13 @@ curve to a data matrix in arbitrary dimensions.")
(define-public r-prismatic
(package
(name "r-prismatic")
- (version "1.1.1")
+ (version "1.1.2")
(source (origin
(method url-fetch)
(uri (cran-uri "prismatic" version))
(sha256
(base32
- "013i0mq4n8s2zbzvfrz1vjcn2a6l98bamslkcv1a3cn70gpphja9"))))
+ "0qg2f5d7sz6q0ijrrdmjhp1msx9n77wndphrqqhjkdf9six5pgxs"))))
(properties `((upstream-name . "prismatic")))
(build-system r-build-system)
(propagated-inputs (list r-farver))
@@ -7407,13 +7453,13 @@ way.")
(define-public r-restrserve
(package
(name "r-restrserve")
- (version "1.2.1")
+ (version "1.2.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "RestRserve" version))
(sha256
- (base32 "1xfcp0y9l31815g1jk33mnkb6z68qpjl0gb4fj7f4578kx3v1c8p"))))
+ (base32 "0jbzalk17jg4qm99005q69pyk76c0wjvdwzjp25npzcvlbsxa194"))))
(build-system r-build-system)
(propagated-inputs
(list r-checkmate
@@ -9683,6 +9729,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 +9776,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 +10313,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")
@@ -10501,14 +10569,14 @@ Markdown documents.")
(define-public r-seriation
(package
(name "r-seriation")
- (version "1.5.4")
+ (version "1.5.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "seriation" version))
(sha256
(base32
- "17rk4674r5knfgqyik9gbz6yj42qv6h79j2prw79glc1ym99qcyj"))))
+ "0v84pic838rpbcmrz8ip466aagz57vmzlgfk0vkhlcv8zn34r0zp"))))
(build-system r-build-system)
(propagated-inputs
(list r-ca
@@ -12578,14 +12646,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 +13142,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
@@ -13537,14 +13605,14 @@ those searches and pull data into their R sessions.")
(define-public r-renv
(package
(name "r-renv")
- (version "1.0.5")
+ (version "1.0.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "renv" version))
(sha256
(base32
- "07y1xqnx5jkgk0cqgf8c4p5vm3qy87zjl31zv6s0jssy3v7amq4p"))))
+ "01s5g4w96s0jz9xa1gdj8y4pfvz8cf3gg0kz2smh6f3l4f5baq3v"))))
(properties `((upstream-name . "renv")))
(build-system r-build-system)
(native-inputs
@@ -13660,14 +13728,14 @@ always locate the files relative to your project root.")
(define-public r-reticulate
(package
(name "r-reticulate")
- (version "1.35.0")
+ (version "1.36.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "reticulate" version))
(sha256
(base32
- "0693gzb7ihx4qzsr07k664k5r8vygcinwbdiiccmq9lshl1g64sy"))))
+ "0bxxdcinpw76pwnx3a3hcqhq7gjvs4sxcza464vz333xq9s2337l"))))
(build-system r-build-system)
(arguments
(list
@@ -13976,14 +14044,14 @@ clustering.")
(define-public r-factominer
(package
(name "r-factominer")
- (version "2.10")
+ (version "2.11")
(source
(origin
(method url-fetch)
(uri (cran-uri "FactoMineR" version))
(sha256
(base32
- "1kjb0hk7zck8702inw9ayxrpbi8raq3rldxsq848lk15z3wg9r6w"))))
+ "0qzhfjcz0kahqf214g4xs7gfpqx05xbfiwa5r2ldgn2drd16phij"))))
(properties `((upstream-name . "FactoMineR")))
(build-system r-build-system)
(propagated-inputs
@@ -14975,14 +15043,14 @@ matches version and feature constraints.")
(define-public r-argparse
(package
(name "r-argparse")
- (version "2.2.2")
+ (version "2.2.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "argparse" version))
(sha256
(base32
- "0vc59854fxnznjcrzy5kdmnbyk602ml92jk15rxgndfawvsrnb5n"))))
+ "0x16zp6jh9asyval1kwkxzavwjhx3a47xzlc593kw1hz4bhw8355"))))
(build-system r-build-system)
(inputs (list python))
(propagated-inputs
@@ -15612,13 +15680,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))
@@ -16707,19 +16775,19 @@ handle data from simple random samples as well as complex surveys.")
(define-public r-tarchetypes
(package
(name "r-tarchetypes")
- (version "0.8.0")
+ (version "0.9.0")
(source (origin
(method url-fetch)
(uri (cran-uri "tarchetypes" version))
(sha256
(base32
- "18vn2mx5nqlib0by5v7493g8gsbzcdbg0dn92cpbf713r69v1lbk"))))
+ "0lb5y3rlm369szabmamhq8rrjh7ybngmd3av0jisi84bwdvrwhxk"))))
(properties `((upstream-name . "tarchetypes")))
(build-system r-build-system)
- (propagated-inputs (list r-digest
- r-dplyr
+ (propagated-inputs (list r-dplyr
r-fs
r-rlang
+ r-secretbase
r-targets
r-tibble
r-tidyselect
@@ -16741,13 +16809,13 @@ were influenced by the drake R package by Will Landau (2018)
(define-public r-targets
(package
(name "r-targets")
- (version "1.6.0")
+ (version "1.7.0")
(source (origin
(method url-fetch)
(uri (cran-uri "targets" version))
(sha256
(base32
- "1ddpbhvdydxm62k6ay7hpqjh8kh2isjpcdh3gygzcdrghx6d7x65"))))
+ "1h939mvyxd1wjakcbxjxcmn6a7i23ya1kc89aqwarizsj00hdjil"))))
(properties `((upstream-name . "targets")))
(build-system r-build-system)
(propagated-inputs (list r-base64url
@@ -16755,7 +16823,6 @@ were influenced by the drake R package by Will Landau (2018)
r-cli
r-codetools
r-data-table
- r-digest
r-igraph
r-knitr
r-ps
@@ -17186,14 +17253,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 +17390,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
@@ -17481,14 +17548,14 @@ effects models and Bayesian models.")
(define-public r-ggeffects
(package
(name "r-ggeffects")
- (version "1.5.1")
+ (version "1.5.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggeffects" version))
(sha256
(base32
- "07a23lkj5v98hnqn3qiaxw6rijh6dg5g7kzp7vnsq4mkkm3hsicw"))))
+ "1f5ralb5fkcv2rflsl0y9lgwdmx6zzv3s1087lql9x5vjd1hkvcg"))))
(build-system r-build-system)
(propagated-inputs
(list r-insight))
@@ -19305,14 +19372,14 @@ Processing.")
(define-public r-tm
(package
(name "r-tm")
- (version "0.7-12")
+ (version "0.7-13")
(source
(origin
(method url-fetch)
(uri (cran-uri "tm" version))
(sha256
(base32
- "1z0zpz6jgzg34cz07cdpya2zwwsvywrd8xgwahhlz15vnaij7j3y"))))
+ "1d0xczmmfsj82183nygvb4f9h1qbydz763b3jlzxb6ns8pi6q9p5"))))
(properties `((upstream-name . "tm")))
(build-system r-build-system)
(propagated-inputs
@@ -22741,14 +22808,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")
@@ -22925,14 +22992,14 @@ network.")
(define-public r-apcluster
(package
(name "r-apcluster")
- (version "1.4.11")
+ (version "1.4.12")
(source
(origin
(method url-fetch)
(uri (cran-uri "apcluster" version))
(sha256
(base32
- "0crk7skivcmlvr0njsbd8dksj5wa6qlvdp99ay5b2b40cs3xm5s4"))))
+ "01s4s2dr94ycbaadmvmlczldhyqspbbpy0s4d9k5xxdmlagfwzc5"))))
(build-system r-build-system)
(propagated-inputs
(list r-matrix r-rcpp))
@@ -24081,13 +24148,13 @@ SELECT or UPDATE queries to an end-point.")
(define-public r-bookdown
(package
(name "r-bookdown")
- (version "0.38")
+ (version "0.39")
(source (origin
(method url-fetch)
(uri (cran-uri "bookdown" version))
(sha256
(base32
- "1i0z75sxvy3cb582siz544az6b9bs3vk2kyij9zx5jdpc1247fgd"))
+ "1brfv50lq92m7d4d18n92ywhfr28lrbq02naf0bwdsmd0ngasxrm"))
;; TODO: there is one more file to replace:
;; inst/resources/gitbook/js/app.min.js
(snippet
@@ -24196,14 +24263,14 @@ global options, defining default values and more.")
(define-public r-optparse
(package
(name "r-optparse")
- (version "1.7.4")
+ (version "1.7.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "optparse" version))
(sha256
(base32
- "122x490161f836l7mmd021dpylz50qrqdhjcgvkd8wpsjijxd8lk"))))
+ "04jp85jik1zkbb08w44m2h0hqyzd80w4pjnfp1lnwy40ax81gj8c"))))
(build-system r-build-system)
(propagated-inputs
(list r-getopt))
@@ -25028,14 +25095,14 @@ proteomics applications).")
(define-public r-pamr
(package
(name "r-pamr")
- (version "1.56.1")
+ (version "1.56.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "pamr" version))
(sha256
(base32
- "0ycpgkk23y3zzkb42n2skcyl35ps1n7jmyzfj7pbxr3f6gr2grfh"))))
+ "0n7wpgzdadngj44ddsg3171wap4qhiaap75ndr6g768r3mv6q119"))))
(build-system r-build-system)
(propagated-inputs
(list r-cluster r-survival))
@@ -26129,14 +26196,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 +26475,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 +26491,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")
@@ -26577,14 +26644,14 @@ versions. A Shiny application implementing the functions is also included.")
(define-public r-ggfortify
(package
(name "r-ggfortify")
- (version "0.4.16")
+ (version "0.4.17")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggfortify" version))
(sha256
(base32
- "05h3a4ycain0y621anjpjphsjlhpayb2nnd6n70rlymrbilfw6xv"))))
+ "1ygbvk3b99mabwqc9hh5lz3adj1i05ym7i8b6kbgid8cgrbaaxag"))))
(build-system r-build-system)
(propagated-inputs
(list r-dplyr
@@ -26728,14 +26795,14 @@ in R, including a translation of the original algorithm into R.")
(define-public r-uwot
(package
(name "r-uwot")
- (version "0.1.16")
+ (version "0.2.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "uwot" version))
(sha256
(base32
- "0j4f7vnb3mwf6p4nhg2limy7i32qrcj2gxbs8wsq9c6xxpcs0qsz"))))
+ "1lbckamb2hk24qxcvchdfid982cvcz64j9hvdnrx8c4ms91qr4yr"))))
(build-system r-build-system)
(propagated-inputs
(list r-dqrng
@@ -26744,7 +26811,9 @@ in R, including a translation of the original algorithm into R.")
r-matrix
r-rcpp
r-rcppannoy
- r-rcppprogress))
+ r-rcppprogress
+ r-rspectra))
+ (native-inputs (list r-knitr))
(home-page "https://github.com/jlmelville/uwot")
(synopsis "Uniform manifold approximation and projection")
(description
@@ -28654,6 +28723,28 @@ Components. The Lasso solution paths can be computed by the same function.")
and mixture of Gaussian models.")
(license license:gpl2+)))
+(define-public r-spatest
+ (package
+ (name "r-spatest")
+ (version "3.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "SPAtest" version))
+ (sha256
+ (base32 "1x5r4a6jnizhhazxywb2cf2jj2rx6rfynl6xcscmlix6n394xmxk"))))
+ (properties `((upstream-name . "SPAtest")))
+ (build-system r-build-system)
+ (home-page "https://cran.r-project.org/package=SPAtest")
+ (synopsis
+ "Score test and meta-analysis based on Saddlepoint approximation")
+ (description
+ "This package performs score test using saddlepoint approximation to
+estimate the null distribution. It also prepares summary statistics for
+meta-analysis and performs meta-analysis to combine multiple association
+results.")
+ (license license:gpl2+)))
+
(define-public r-accsda
(package
(name "r-accsda")
@@ -29265,14 +29356,14 @@ provided as well.")
(define-public r-tuner
(package
(name "r-tuner")
- (version "1.4.6")
+ (version "1.4.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "tuneR" version))
(sha256
(base32
- "1l270rk1m3967fvgpshrbd71l7ns74wdhivbmavayk68dnsiyi65"))))
+ "02lnnsh2r22qg54ygdjjpd6986gqr5r3qbzxxrz34lq98jh58h9n"))))
(properties `((upstream-name . "tuneR")))
(build-system r-build-system)
(propagated-inputs (list r-signal))
@@ -29453,13 +29544,13 @@ classes into dummy/indicator variables.")
(define-public r-dunn-test
(package
(name "r-dunn-test")
- (version "1.3.5")
+ (version "1.3.6")
(source (origin
(method url-fetch)
(uri (cran-uri "dunn.test" version))
(sha256
(base32
- "0lqwvyl3pyygfc73nf81gzw3zl3w43r7ki0yw2dgrzhkpb2iji4a"))))
+ "0z3qyq0lnflmsx41dbkr5lwgiqf3z8rn5wy54c93fwmahva0lqs9"))))
(properties `((upstream-name . "dunn.test")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/package=dunn.test")
@@ -30469,18 +30560,18 @@ used in outliers detection.")
(define-public r-tolerance
(package
(name "r-tolerance")
- (version "2.0.0")
+ (version "3.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "tolerance" version))
(sha256
(base32
- "001snzr2ipag3zprynydlbi9prkjzrllc054qh7m0qwkb3r19jjd"))))
+ "0pk75i0qmfrpm02jm4c0vvryq3f2drmj9dzj1q0zr3sbmp9w6mpf"))))
(properties `((upstream-name . "tolerance")))
(build-system r-build-system)
(propagated-inputs
- (list r-mass r-rgl))
+ (list r-mass r-plotly))
(home-page "https://cran.r-project.org/web/packages/tolerance/")
(synopsis "Statistical tolerance intervals and regions")
(description
@@ -31603,19 +31694,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 +31812,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
@@ -32278,13 +32371,13 @@ league, the Bundesliga. It contains data from 1964 to 2016.")
(define-public r-butcher
(package
(name "r-butcher")
- (version "0.3.3")
+ (version "0.3.4")
(source (origin
(method url-fetch)
(uri (cran-uri "butcher" version))
(sha256
(base32
- "14zf732rcy0f1n0l7km9jx74i0dwqdf864v2510lwpkfblgnw4s7"))))
+ "027j48n0izwzlg63gml5wkx19kpmd5crbdkmg7p366lpbhhvbs0d"))))
(properties `((upstream-name . "butcher")))
(build-system r-build-system)
(propagated-inputs (list r-cli
@@ -32633,14 +32726,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 +32744,7 @@ and reproducible way.")
r-lifecycle
r-openssl
r-packrat
+ r-pki
r-renv
r-rlang
r-rstudioapi
@@ -34025,14 +34119,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
@@ -35403,14 +35497,14 @@ censored data.")
(define-public r-flexsurv
(package
(name "r-flexsurv")
- (version "2.2.2")
+ (version "2.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "flexsurv" version))
(sha256
(base32
- "1qshsii5fqpx4l113vr4lx9ijxhcr8494lx3ixjdbzy58077adb6"))))
+ "1y31ghfn02fcpss3aliy5r7kk0a7h0h2krnj665h13y8jgqkc6j7"))))
(properties `((upstream-name . "flexsurv")))
(build-system r-build-system)
(propagated-inputs
@@ -36167,14 +36261,14 @@ for creating, simulating, or validating values for such parameters.")
(define-public r-tune
(package
(name "r-tune")
- (version "1.2.0")
+ (version "1.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "tune" version))
(sha256
(base32
- "1z5id7mp9yknxz4lbb0304wn47ii61zmds3grffc4q84v3d9gb76"))))
+ "1qb4ncadq10pzy8xhkpgg06raahbv6n8002wdjdh4jlv73hsk6ki"))))
(properties `((upstream-name . "tune")))
(build-system r-build-system)
(propagated-inputs
@@ -36458,14 +36552,14 @@ vignettes in all common formats.")
(define-public r-tidytext
(package
(name "r-tidytext")
- (version "0.4.1")
+ (version "0.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "tidytext" version))
(sha256
(base32
- "05f8209qx1rvddnkl0h05yig09xahs8lqgq9w5dvdiwarji50rsj"))))
+ "0m1dxlrmkany4pjbr2p2m9hzn59gldmznyvs6dcb3zdr5861ix0c"))))
(properties `((upstream-name . "tidytext")))
(build-system r-build-system)
(propagated-inputs
@@ -36776,6 +36870,28 @@ meta-analyses accounting for known correlation structures (e.g. due to
phylogenetic relatedness) can also be conducted.")
(license license:gpl2+)))
+(define-public r-metaskat
+ (package
+ (name "r-metaskat")
+ (version "0.82")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "MetaSKAT" version))
+ (sha256
+ (base32 "0cbj3xfsnwn4ibqqs12sqyhhaj24ydjpyl1p1gy1dl5405j58ncl"))))
+ (properties `((upstream-name . "MetaSKAT")))
+ (build-system r-build-system)
+ (propagated-inputs (list r-skat))
+ (home-page "https://cran.r-project.org/package=MetaSKAT")
+ (synopsis "Meta analysis for SNP-Set (Sequence) kernel association test")
+ (description
+ "This package provides functions for Meta-analysis Burden Test, Sequence
+Kernel Association Test (SKAT) and Optimal SKAT (SKAT-O) by Lee et al. (2013)
+<doi:10.1016/j.ajhg.2013.05.010>. These methods use summary-level score
+statistics to carry out gene-based meta-analysis for rare variants.")
+ (license license:gpl2+)))
+
(define-public r-altmeta
(package
(name "r-altmeta")
@@ -37656,13 +37772,13 @@ are.")
(define-public r-mlr3misc
(package
(name "r-mlr3misc")
- (version "0.14.0")
+ (version "0.15.0")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3misc" version))
(sha256
(base32
- "19q20ld2phplrg6jqg849rjpi8yl3j5v1d8bgzagyyhka3nxn4fx"))))
+ "1l40l0sx1dgs2rdblx7pd9nk93flad6y1mvppzg7qf4cyn8gfc3x"))))
(build-system r-build-system)
(propagated-inputs
(list r-backports r-checkmate r-data-table r-digest r-r6))
@@ -38214,14 +38330,14 @@ in output to the equivalent HTML.")
(define-public r-pkgdown
(package
(name "r-pkgdown")
- (version "2.0.7")
+ (version "2.0.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "pkgdown" version))
(sha256
(base32
- "0sim3fwayf4mpxqi8y9v7clnkzs56amhxsc75lc1k0zskn374f7k"))))
+ "186xzilh4079a6xjig3j4pdn99ipg4d5s5q1k75qclivq0b24m3f"))))
(properties `((upstream-name . "pkgdown")))
(build-system r-build-system)
(inputs (list pandoc))
@@ -38903,14 +39019,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 +39207,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))
@@ -39213,14 +39329,14 @@ join the effort of providing interesting text visualisations.")
(define-public r-gsa
(package
(name "r-gsa")
- (version "1.03.2")
+ (version "1.03.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "GSA" version))
(sha256
(base32
- "1f1mrxxdbdlnibgav6nsvbpniz2x3km2svc0hf43spb4zicn0z8p"))))
+ "0b18b8n6dh3yx9vp5b7ym25590x9qrcbprs5vjnkj0zlj1hphnal"))))
(properties `((upstream-name . "GSA")))
(build-system r-build-system)
(home-page "https://statweb.stanford.edu/~tibs/GSA/")
@@ -39776,14 +39892,14 @@ C API for topology operations on geometries.")
(define-public r-tfruns
(package
(name "r-tfruns")
- (version "1.5.2")
+ (version "1.5.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "tfruns" version))
(sha256
(base32
- "1iw80r31jddngby48wf53ayjhvvx77kas4hvvp7j65klvx337aqw"))))
+ "0z0cbw4fr374s82ds0vdxmd37bbd6yrixwgby26qzkjr7dvzsbmy"))))
(properties `((upstream-name . "tfruns")))
(build-system r-build-system)
(propagated-inputs
@@ -39833,14 +39949,14 @@ Tensorflow graphs.")
(define-public r-tensorflow
(package
(name "r-tensorflow")
- (version "2.15.0")
+ (version "2.16.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "tensorflow" version))
(sha256
(base32
- "16650x0skqi4nyd2zmgdfj574gnw98k00d13rap7n95cv7sv9abw"))))
+ "113ikbg2k56zigxwgxy242vxpikxkfkv150wn21zyfn9885wgbzm"))))
(properties `((upstream-name . "tensorflow")))
(build-system r-build-system)
(propagated-inputs
@@ -39864,14 +39980,14 @@ between them.")
(define-public r-keras
(package
(name "r-keras")
- (version "2.13.0")
+ (version "2.15.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "keras" version))
(sha256
(base32
- "1xjmkrz06rh8767pfqi81fgkljkyb4i7bzllahw7b62b9s2wp38l"))))
+ "0xahkgww3dzp8vjz0456sn6ihz0w0q0dz1gnmx07r2vx81isirvc"))))
(properties `((upstream-name . "keras")))
(build-system r-build-system)
(propagated-inputs
@@ -40165,14 +40281,14 @@ fully reproducible.")
(define-public r-paws-common
(package
(name "r-paws-common")
- (version "0.7.1")
+ (version "0.7.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.common" version))
(sha256
(base32
- "1mjbyykav3f5yv59hnaihqsqhinvrlhphp93ks9xp756w6abciqf"))))
+ "0d1gj8z3c592cadngfhp8w8m6nd1ffb8k0wj8r2w1bldniq5yx70"))))
(properties `((upstream-name . "paws.common")))
(build-system r-build-system)
(propagated-inputs
@@ -40832,14 +40948,14 @@ neighborhood graphs, and relatives.")
(define-public r-crul
(package
(name "r-crul")
- (version "1.4.0")
+ (version "1.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "crul" version))
(sha256
(base32
- "18n9ga0ah628k83qin75ys0wipc9dgc25xnafcj400jp85g42l4f"))))
+ "0is164bbdk5zy1gxrliiqzlmj47nvzsjym05ijzzs3zkj7qpfp20"))))
(properties `((upstream-name . "crul")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 2d79e0acf6..2cc5f52e47 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -97,7 +97,18 @@
(warning (G_ "'cross-binutils' must be used with keyword arguments~%"))
(cross-binutils* target #:binutils binutils))
-(define* (cross-binutils* target #:key (binutils binutils))
+(define (cross-binutils-package target)
+ "Returns the default package to use for a cross-Binutils for TARGET."
+ (cond
+ ;; The xtensa-ath9k-elf target is used solely to build the firmware for
+ ;; ath9k devices, the patches to binutils have not been updated and
+ ;; only apply to binutils@2.33.
+ ((string=? target "xtensa-ath9k-elf") binutils-2.33)
+ (else binutils)))
+
+(define* (cross-binutils* target
+ #:key
+ (binutils (cross-binutils-package target)))
"Return a cross-Binutils for TARGET using BINUTILS."
(let ((binutils (package
(inherit binutils)
@@ -118,8 +129,8 @@
;; target libs, not native libs, so this is safe.
`(cons "--with-sysroot=/" ,flags)))))))
- ;; For Xtensa, apply Qualcomm's patch.
- (cross (cond ((string-prefix? "xtensa-" target)
+ ;; For xtensa-ath9k-elf, apply Qualcomm's patch.
+ (cross (cond ((string=? target "xtensa-ath9k-elf")
(package-with-patches binutils
(search-patches
"ath9k-htc-firmware-binutils.patch")))
@@ -250,7 +261,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 +332,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/crypto.scm b/gnu/packages/crypto.scm
index 2491abcce1..9c62689d18 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -1674,6 +1674,33 @@ descrypt.")
(home-page "https://github.com/besser82/libxcrypt")
(license license:lgpl2.1)))
+(define-public ssh-to-pgp
+ (package
+ (name "ssh-to-pgp")
+ (version "1.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Mic92/ssh-to-pgp")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1mph8mm80qzrsd07v7drfrhdah9n9ibsqfcf9kbffi1pw83cm0aa"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/Mic92/ssh-to-pgp"))
+ (native-inputs
+ (list gnupg))
+ (propagated-inputs
+ (list go-golang-org-x-sys
+ go-golang-org-x-crypto))
+ (home-page "https://github.com/Mic92/ssh-to-pgp")
+ (synopsis "Convert SSH RSA keys to GPG keys")
+ (description "This package provides @code{ssh-to-pgp}: a Go command line
++utility to convert SSH RSA keys to GPG keys.")
+ (license license:expat)))
+
(define-public keychain
(package
(name "keychain")
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 02a602a66d..3a6776be59 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -175,6 +175,8 @@ tunneling, and so on.")
"See COPYING in the distribution."))
(home-page "https://curl.haxx.se/")))
+(define-public gnurl (deprecated-package "gnurl" curl))
+
(define-public curl-ssh
(package/inherit curl
(arguments
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/debug.scm b/gnu/packages/debug.scm
index 6d4567acc4..612533b03d 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -46,6 +46,7 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages c)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
@@ -185,6 +186,56 @@ intended for use by people who discover and report bugs in compilers and other
tools that process C/C++ code.")
(license license:ncsa)))
+(define-public cppdap
+ (package
+ (name "cppdap")
+ (version "1.58.0-a")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/google/cppdap")
+ (commit (string-append "dap-" version))))
+ (modules '((guix build utils)))
+ (snippet
+ '(delete-file-recursively "third_party"))
+ (patches (search-patches
+ "cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch"))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0fq2w35fw1lb5wya1nny45pk3a13b689k48calk1cmqmqpbcjn2b"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list
+ "-DCPPDAP_BUILD_TESTS=ON"
+ "-DCPPDAP_USE_EXTERNAL_GTEST_PACKAGE=ON"
+ ;; Only one of the following three can be enabled at the same time
+ ;; "-DCPPDAP_USE_EXTERNAL_RAPIDJSON_PACKAGE=ON"
+ ;; "-DCPPDAP_USE_EXTERNAL_JSONCPP_PACKAGE=ON"
+ "-DCPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE=ON")))
+ (native-inputs
+ (list googletest))
+ ;; see lib/cmake/cppdap/cppdapConfig.cmake
+ ;; cmake file require propagate this.
+ (propagated-inputs
+ (list
+ ;; Only one of the following three can be enabled at the same time
+ ;; rapidjson
+ ;; jsoncpp
+ nlohmann-json))
+ (home-page "https://github.com/google/cppdap")
+ (synopsis "C++ library for the Debug Adapter Protocol")
+ (description
+ "cppdap is a C++11 library (\"SDK\") implementation of the Debug Adapter
+Protocol, providing an API for implementing a DAP client or server. cppdap
+provides C++ type-safe structures for the full DAP specification, and provides a
+simple way to add custom protocol messages.")
+ (license license:expat)))
+
(define-public c-vise
(package
(name "c-vise")
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 5bbb4f51e2..fd2146456d 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 "265")
(source
(origin
(method git-fetch)
@@ -83,7 +84,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0v56i2wyc4p843crl5b5w6j1awhp1a6xbfb92hm0pp8558f1h76i"))))
+ (base32 "0fdaxihmzz1jf9ay8pwr1z60b2rnihawp4js4nw9l7wv0gij9vpg"))))
(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
@@ -226,9 +233,9 @@
;; openjdk and dependent packages are only
;; available on x86_64 currently.
((or "x86_64-linux")
- (list enjarify)
;; No unversioned openjdk available.
- (list `(,openjdk12 "jdk")))
+ (list `(,openjdk12 "jdk")
+ enjarify))
(_ '()))))
(home-page "https://diffoscope.org/")
(synopsis "Compare files, archives, and directories in depth")
@@ -246,7 +253,7 @@ install.")
(define-public reprotest
(package
(name "reprotest")
- (version "0.7.26")
+ (version "0.7.27")
(source
(origin
(method git-fetch)
@@ -255,7 +262,7 @@ install.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1992wlkil07fmj64lw3i7l16dgkkzphz0f932hbkkj9rlcamdwxd"))))
+ (base32 "0z5i53dy4ax4gbidcqmwqq0686n1g397c79bsscfs94s2y35fsns"))))
(inputs
(list python-debian python-distro python-libarchive-c python-rstr))
(native-inputs
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index c2c1e6b65d..10d546b918 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2023 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2023 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -70,6 +71,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@@ -1294,29 +1296,35 @@ on your file system and offers to remove it. @command{rmlint} can find:
(define-public lf
(package
(name "lf")
- ;; When updating, remove go-github-com-gdamore-tcell-v2-2.3 from golang.scm.
- (version "27")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/gokcehan/lf")
- (commit (string-append "r" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1piym8za0iw2s8yryh39y072f90mzisv89ffvn1jzb71f71mbfqa"))))
+ (version "31")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gokcehan/lf")
+ (commit (string-append "r" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03icsf4c3j7295s1d8s6srz5gf09a3lghgw3zfcd86p03zhkzsaf"))))
(build-system go-build-system)
- (native-inputs
- (list go-github-com-mattn-go-runewidth go-golang-org-x-term
- go-gopkg-in-djherbis-times-v1 go-github-com-gdamore-tcell-v2-2.3))
(arguments
- `(#:import-path "github.com/gokcehan/lf"))
+ (list
+ #:go go-1.18
+ #:install-source? #f
+ #:import-path "github.com/gokcehan/lf"))
+ (native-inputs
+ (list go-github-com-djherbis-times
+ go-github-com-gdamore-tcell-v2
+ go-github-com-mattn-go-runewidth
+ go-golang-org-x-term
+ go-gopkg-in-djherbis-times-v1))
(home-page "https://github.com/gokcehan/lf")
(synopsis "Console file browser similar to Ranger")
- (description "lf (as in \"list files\") is a terminal file manager
-written in Go. It is heavily inspired by ranger with some missing and
-extra features. Some of the missing features are deliberately omitted
-since they are better handled by external tools.")
+ (description
+ "@code{lf} (as in \"list files\") is a terminal file manager written in
+Go. It is heavily inspired by @code{ranger} with some missing and extra
+features. Some of the missing features are deliberately omitted since they
+are better handled by external tools.")
(license license:expat)))
(define-public xfe
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index e3381a1665..3ff8fa5b65 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -483,14 +483,14 @@ GTK+, lets you select a desktop session and log in to it.")
(define-public slim
(package
(name "slim")
- (version "1.4.0")
+ (version "1.4.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/slim-fork/slim-" version
".tar.gz"))
(sha256
- (base32 "011jfmksy0kgw4z0y70mc80bm5kmz5i1sgm6krrfj0h00zak22rm"))
+ (base32 "06r47ypf9lsy76jikrvihw8ka9j2wbrnn8g3sbxp819hcbqxg22z"))
(patches (search-patches "slim-config.patch"
"slim-login.patch"
"slim-display.patch"))))
@@ -516,7 +516,11 @@ GTK+, lets you select a desktop session and log in to it.")
(lambda _
(substitute* "CMakeLists.txt"
(("/etc")
- (string-append #$output "/etc"))))))
+ (string-append #$output "/etc"))
+ (("install.*SYSTEMDDIR.*")
+ ;; The build system's logic here is: if "Linux", then
+ ;; "systemd". Strip that.
+ "")))))
#:configure-flags
#~(list "-DUSE_PAM=yes" "-DUSE_CONSOLEKIT=no")
#:tests? #f))
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/education.scm b/gnu/packages/education.scm
index d9d5c45cf9..15518896ed 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -566,7 +566,7 @@ a pen-tablet display and a beamer.")
(define-public fet
(package
(name "fet")
- (version "6.18.1")
+ (version "6.19.0")
(source
(origin
(method url-fetch)
@@ -575,7 +575,7 @@ a pen-tablet display and a beamer.")
(list (string-append directory base)
(string-append directory "old/" base))))
(sha256
- (base32 "0yf94z4yybaw53jf0hzi1p53rwa91wl3g6pai7gsr4palssyfxw2"))))
+ (base32 "1lrlwk9i2nc2d3ay5wajgv79nxkbl8hgv77aflgncikg4ma9yn55"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 864889b51f..1ce56fd576 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -516,7 +516,7 @@ e.g. emacs-geiser-guile for Guile.")
(define-public emacs-gptel
(package
(name "emacs-gptel")
- (version "0.8.0")
+ (version "0.8.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -525,7 +525,7 @@ e.g. emacs-geiser-guile for Guile.")
(file-name (git-file-name name version))
(sha256
(base32
- "1n3kdylv50filla692j2vcjalw6yza80xlg90cw54m9jp9br8sch"))))
+ "1w9sji73dixch1b5i420j44qb3jd0zknpypz46g33pbyhg9xwqln"))))
(build-system emacs-build-system)
(arguments
(list
@@ -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/")
@@ -2715,15 +2715,25 @@ provides an optional IDE-like error list.")
(list
#:tests? #t
#:test-command
- #~(list "emacs" "-Q" "--batch" "-L" "."
- "--eval" "(load-file \"tests/test-fb2-reader.el\")")
+ #~(list "buttercup" "-L" ".")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'qualify-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((unzip (search-input-file inputs "/bin/unzip")))
(substitute* "fb2-reader.el"
- (("unzip") unzip))))))))
+ (("unzip") unzip)))))
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ ;; Lexical binding is required for compatibility with recent
+ ;; Buttercup.
+ (emacs-batch-edit-file "tests/test-fb2-reader.el"
+ '(progn
+ (insert ";;; -*-lexical-binding:t -*-\n")
+ (basic-save-buffer)))
+ ;; Fix bogus function name.
+ (substitute* "tests/test-fb2-reader.el"
+ (("fb2-reader-render") "fb2-reader-render-xml")))))))
(inputs (list unzip))
(native-inputs
(list emacs-async emacs-buttercup emacs-dash emacs-s))
@@ -3223,6 +3233,51 @@ reformat the current buffer using a command-line program, together with an
optional minor mode which can apply this command automatically on save.")
(license license:gpl3+)))
+(define-public emacs-language-id
+ (package
+ (name "emacs-language-id")
+ (version "0.20")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lassik/emacs-language-id.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "153810jq4rbgpzvbhz2i1dyrj8bmdf4zxsrhfg0b70iq4bh78bz6"))))
+ (build-system emacs-build-system)
+ (synopsis "Identify programming language used in Emacs buffers")
+ (description "This package provides a way for Emacs to identify the
+programming language used in an Emacs buffer.")
+ (home-page "https://github.com/lassik/emacs-language-id")
+ (license license:isc)))
+
+(define-public emacs-format-all-the-code
+ (package
+ (name "emacs-format-all-the-code")
+ (version "0.6.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lassik/emacs-format-all-the-code.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1p8bh96yksbpajx2pqxjc4vf7nfncwc3mvh1fcj8afw53g72is8m"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ (list emacs-inheritenv emacs-language-id))
+ (synopsis "Auto-format any source code")
+ (description "This package lets you auto-format source code in many
+languages using the same command for all languages, instead of learning
+a different Emacs package and formatting command for each language.
+Over 70 languages are supported, including Emacs Lisp, Kotlin, Go and
+Rust.")
+ (home-page "https://github.com/lassik/emacs-format-all-the-code")
+ (license license:expat)))
+
(define-public emacs-relative-buffers
(let ((release "0.0.1")
(revision "0")
@@ -4731,7 +4786,7 @@ of bibliographic references.")
(define-public emacs-corfu
(package
(name "emacs-corfu")
- (version "1.2")
+ (version "1.3")
(source
(origin
(method git-fetch)
@@ -4740,7 +4795,7 @@ of bibliographic references.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0l6hpsw2srmad0mhp6x46d5dsg678lvgz5l3glp1845hkg8a0pgi"))))
+ (base32 "1nrwh00dy2ffzd3np8yk4n0vn0r5iqqhgcr40wbnv5qzgbdw9kas"))))
(build-system emacs-build-system)
(arguments
(list
@@ -4825,7 +4880,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.")
(define-public emacs-cape
(package
(name "emacs-cape")
- (version "1.4")
+ (version "1.5")
(source
(origin
(method git-fetch)
@@ -4834,7 +4889,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1ml3w9xvcxbcbsi01rdsclsxra5h7jrm9lsrkbj1hin2wl5gr9np"))))
+ (base32 "1ah0nwib2k46467j0fhq9kckx7cqnjgwpdb7zk9jw8rbrjlndcpw"))))
(build-system emacs-build-system)
(arguments
(list
@@ -5435,6 +5490,27 @@ a single buffer.")
Lisp developers who want to write macros with convenience.")
(license license:gpl3+)))
+(define-public emacs-noman
+ (package
+ (name "emacs-noman")
+ (version "0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/andykuszyk/noman.el")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "04hvh816a0dvakgn22lxzw8qjmvc8grb5nhg1b5w99j5606ljqcl"))))
+ (build-system emacs-build-system)
+ (synopsis "Emacs package for browsing CLI command docs without man pages")
+ (description
+ "Noman is an Emacs package that parses command line help from flags like
+@code{--help}, and presents it in an easy-to-navigate Emacs buffer.")
+ (home-page "https://github.com/andykuszyk/noman.el")
+ (license license:gpl3+)))
+
(define-public emacs-tablist
(package
(name "emacs-tablist")
@@ -6498,7 +6574,7 @@ files and directories.")
(define-public emacs-fountain-mode
(package
(name "emacs-fountain-mode")
- (version "3.7.2")
+ (version "3.7.3")
(source
(origin
(method git-fetch)
@@ -6507,7 +6583,7 @@ files and directories.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0xy45inihqwaix49vxr5yiqyps4r2djkzdd4g7kkc0fv7kzrm1m4"))))
+ (base32 "15r0pzdmimm72jx26zgdxf7fwwcppl45vvh33xx5wnhqzd140hwn"))))
(arguments
(list
#:phases #~(modify-phases %standard-phases
@@ -7985,7 +8061,7 @@ mode-line.")
(define-public emacs-robe
(package
(name "emacs-robe")
- (version "0.8.4")
+ (version "0.8.6")
(source
(origin
(method git-fetch)
@@ -7994,7 +8070,7 @@ mode-line.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0kvyfyr4b0z0l964a8z9shy8nlnxzxc2ljcc02gj2pn1rn1wz0gq"))))
+ (base32 "14apmvbs89si3v5hsiz11dckp8fdfidm14lc090lswq7mgk7h79s"))))
(build-system emacs-build-system)
(arguments
'(#:include (cons "^lib\\/" %default-include)))
@@ -10904,7 +10980,7 @@ sgml/html integration, and indentation (working with sgml).")
(define-public emacs-jinx
(package
(name "emacs-jinx")
- (version "1.4")
+ (version "1.5")
(source
(origin
(method git-fetch)
@@ -10914,7 +10990,7 @@ sgml/html integration, and indentation (working with sgml).")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "14zamk2s20f6dnv23v9snya0mi1bs2nq6xpp5bj06kiymzwhcqjw"))))
+ (base32 "0g8sdfq6fqf6jnv7ig9cgkvmrdfzah6c94yr041anzkwappkziwx"))))
(build-system emacs-build-system)
(arguments
(list
@@ -10953,9 +11029,9 @@ sgml/html integration, and indentation (working with sgml).")
(propagated-inputs (list emacs-compat))
(native-inputs (list emacs-compat enchant pkg-config texinfo))
(home-page "https://github.com/minad/jinx")
- (synopsis "Emacs Enchanted Spell Checker")
+ (synopsis "Emacs spell checker based on Enchant library")
(description "Jinx is a just-in-time spell-checker for Emacs
-based on the enchant library. It lazily highlights misspelled words in the
+based on the Enchant library. It lazily highlights misspelled words in the
text of the visible portion of the buffer by honouring window boundaries as
well as text folding, if any.")
(license license:gpl3+)))
@@ -11130,8 +11206,8 @@ when the cursor enters a fragment and disappear when it leaves.")
(define-public emacs-org-dailies
;; No tags or versions.
- (let ((commit "58e58d4968ddb70312160def1c7c3c00382ef655")
- (revision "1"))
+ (let ((commit "f2dfc221d3566c6241f87c331667f96569651ada")
+ (revision "2"))
(package
(name "emacs-org-dailies")
(version (git-version "0" revision commit))
@@ -11143,7 +11219,7 @@ when the cursor enters a fragment and disappear when it leaves.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "15xhpxkg2cn2fwaql99gnqcdl012g29lxn9fqb6s282mhr9yan7c"))))
+ (base32 "1nwa2dp1b03smyg8pvwqql1cwmcs4qdszw13ik02d51m238a6wy5"))))
(build-system emacs-build-system)
(home-page "https://git.sr.ht/~ngraves/org-dailies")
(synopsis "Bare-bones daily journaling with Emacs")
@@ -12397,7 +12473,7 @@ expansion and overwriting the marked region with a new snippet completion.")
(define-public emacs-marginalia
(package
(name "emacs-marginalia")
- (version "1.5")
+ (version "1.6")
(source
(origin
(method git-fetch)
@@ -12406,7 +12482,7 @@ expansion and overwriting the marked region with a new snippet completion.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "12ncif2lv6d7r2g87lyjr7idbqa283ijb3qgd5a61i3760czs7d6"))))
+ (base32 "196gjpmzra9azhrnvlhx50dlc59390hq4wxn0f9m4n86ig4i5dr0"))))
(build-system emacs-build-system)
(arguments
(list
@@ -17405,7 +17481,7 @@ encryption.")
(define-public emacs-nginx-mode
(package
(name "emacs-nginx-mode")
- (version "1.1.9")
+ (version "1.1.10")
(source
(origin
(method git-fetch)
@@ -17414,7 +17490,7 @@ encryption.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
+ (base32 "1zal05l3lnb41pvfxwkzrcf39g7amqbaaffxn3wz7qa45gvvc6fw"))))
(build-system emacs-build-system)
(home-page "https://github.com/ajc/nginx-mode")
(synopsis "Emacs major mode for editing nginx config files")
@@ -20871,7 +20947,7 @@ multiplexer.")
(define-public emacs-plz
(package
(name "emacs-plz")
- (version "0.7.2")
+ (version "0.8")
(source
(origin
(method git-fetch)
@@ -20880,7 +20956,7 @@ multiplexer.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0bbc8jr6xivzc7r701lnxmhcs7v56av780avyycaz1hpcmggl726"))))
+ (base32 "0vyx6vd90ifj4aza8k9h7ccb4ijs5n5k8hcn8ccm6jrw5h148c4v"))))
(build-system emacs-build-system)
(inputs (list curl))
(arguments
@@ -22478,7 +22554,7 @@ the pipeline, featuring the support for running @code{emacsclient}.")
(define-public emacs-jupyter
(package
(name "emacs-jupyter")
- (version "0.8.3")
+ (version "1.0")
(source
(origin
(method git-fetch)
@@ -22487,7 +22563,7 @@ the pipeline, featuring the support for running @code{emacsclient}.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0acn964xlpn265vry35lrkkpf9z5y4ml96xg8ifadkxwxymm1sh2"))))
+ (base32 "0rf8d83bzc05v0w7zpqwcd89cdvrxwzpyf55vmmzj5j755bgxvhs"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-company ;optional
@@ -22926,7 +23002,7 @@ match and total match information in the mode-line in various search modes.")
(define-public emacs-pg
(package
(name "emacs-pg")
- (version "0.30")
+ (version "0.31")
(source (origin
(method git-fetch)
(uri (git-reference (url "https://github.com/emarsden/pg-el")
@@ -22934,7 +23010,7 @@ match and total match information in the mode-line in various search modes.")
(file-name (git-file-name name version))
(sha256
(base32
- "1g04izsnvxinbwvzx0sj643ix5jlwdd7dkl61nvaqkkkm3g35jp6"))))
+ "0h9szmi1l76inr4706s2hpaldzvmnzw1dy7p2cm653pfr6gq8f6x"))))
(build-system emacs-build-system)
(home-page "https://github.com/emarsden/pg-el")
(synopsis "Emacs Lisp interface for PostgreSQL")
@@ -23644,7 +23720,7 @@ interactive commands and functions, such as @code{completing-read}.")
(define-public emacs-org-ql
(package
(name "emacs-org-ql")
- (version "0.8.4")
+ (version "0.8.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -23652,12 +23728,12 @@ interactive commands and functions, such as @code{completing-read}.")
(commit (string-append "v" version))))
(sha256
(base32
- "07r9bx0bh7wyj5pbkhnrn8amzz3ynri94cxcxgcn1r3ypdhk6y85"))
+ "0425r0qjl83d1zq2z9myish3iqa6pc9ml2jlwmffjnj5gm3vgfsj"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(arguments
(list
- #:tests? #t
+ #:tests? #f ;FIXME: check phase freezes
#:test-command #~(list "buttercup" "-L" ".")))
(native-inputs
(list emacs-buttercup emacs-with-simulated-input emacs-xr))
@@ -24284,7 +24360,7 @@ given function is invoked.")
(define-public emacs-datetime
(package
(name "emacs-datetime")
- (version "0.9.1")
+ (version "0.10")
(source
(origin
(method git-fetch)
@@ -24293,7 +24369,7 @@ given function is invoked.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0d918312gpdiyx7zq8kdy19bdww6jqg94hs4j5l0n63bwrxsqdx2"))))
+ (base32 "0prc29dhc0yvx1lv9ng9iif1x7c0k7x51x1d1z5pzz0vps0w1qsh"))))
(build-system emacs-build-system)
(arguments
`(#:include (cons "^[^/]*\\.extmap$" %default-include)))
@@ -24301,8 +24377,9 @@ given function is invoked.")
(list emacs-extmap))
(home-page "https://github.com/doublep/datetime/")
(synopsis "Library to work with dates in Emacs")
- (description "Parsing, formatting, matching and recoding
-timestamps and date-time format strings library for Emacs.")
+ (description
+ "Datetime is an Emacs library for parsing, formatting, matching and
+recoding timestamps and date-time format strings.")
(license license:gpl3+)))
(define-public emacs-org-mind-map
@@ -25304,7 +25381,7 @@ powerful Org contents.")
(define-public emacs-org-re-reveal
(package
(name "emacs-org-re-reveal")
- (version "3.26.0")
+ (version "3.28.1")
(source
(origin
(method git-fetch)
@@ -25313,7 +25390,7 @@ powerful Org contents.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "11if1c1a0i6i2wagjwqmvp2hfkv3slpq7r6dfbpkhlmils2hxr9p"))))
+ (base32 "09rcjxqv8i7d87x8cnyblpnm3flpa7mdg609fvbzbs6dsc24zpjl"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-htmlize emacs-org))
@@ -27495,7 +27572,7 @@ image, rotate it, save modified images, and more.")
(define-public emacs-package-lint
(package
(name "emacs-package-lint")
- (version "0.22")
+ (version "0.23")
(source
(origin
(method git-fetch)
@@ -27505,7 +27582,7 @@ image, rotate it, save modified images, and more.")
(file-name (git-file-name name version))
(sha256
(base32
- "1myhdhb3kwq03f3p7qgb9bk8srs1wlag4ch4kl26yb9213mzx8gv"))))
+ "1xr7sq7pvvdw9prf2vds048s5s7fq1s0cxs21sxdc54sszy17nsg"))))
(arguments
(list #:include #~(cons "^data/" %default-include)))
(build-system emacs-build-system)
@@ -29420,7 +29497,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
(define-public emacs-buttercup
(package
(name "emacs-buttercup")
- (version "1.34")
+ (version "1.35")
(source
(origin
(method git-fetch)
@@ -29430,7 +29507,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
(file-name (git-file-name name version))
(sha256
(base32
- "07bsbzqxsb6sbayriymy54bqcy7is7c61fpnm83mg9527w0w4g19"))))
+ "0s5c7ia7b873dr6rqljkb1z4bf84zb3p3wjvcvpjhdcnf67m5x10"))))
(build-system emacs-build-system)
(arguments
(list
@@ -30677,53 +30754,52 @@ the standard @code{Dockerfile} file format.")
(license license:asl2.0)))
(define-public emacs-lsp-mode
- (let ((commit "26c4d3e54ad2956623e64132312fe864274d346f")
- (revision "1"))
- (package
- (name "emacs-lsp-mode")
- (version (git-version "8.0.1" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/emacs-lsp/lsp-mode")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0klnik69b5y6s2q00vyshxymlg7k4x9x6m7wpsf7z9w12qn27alx"))))
- (build-system emacs-build-system)
- (arguments
- `(#:emacs ,emacs ;need libxml support
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'move-clients-libraries
- ;; Move all clients libraries at top-level, as is done, e.g., in
- ;; MELPA.
- (lambda _
- (for-each (lambda (f)
- (install-file f "."))
- (find-files "clients/" "\\.el$"))))
- (add-before 'move-clients-libraries 'fix-patch-el-files
- ;; /bin/ksh is only used on macOS, which we don't support, so we
- ;; don't want to add it as input.
- (lambda _
- (substitute* '("clients/lsp-csharp.el" "clients/lsp-fsharp.el")
- (("/bin/ksh") "ksh")))))))
- (propagated-inputs
- (list emacs-dash
- emacs-f
- emacs-ht
- emacs-hydra
- emacs-markdown-mode
- emacs-spinner))
- (home-page "https://emacs-lsp.github.io/lsp-mode/")
- (synopsis "Emacs client and library for the Language Server Protocol")
- (description
- "LSP mode is a client and library implementation for the Language
+ (package
+ (name "emacs-lsp-mode")
+ (version "9.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emacs-lsp/lsp-mode")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1p4979qbmllmmszmnyml0msxkza4pm14rdacmqczbfs3cs9n6bd3"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:emacs emacs ;need libxml support
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'move-clients-libraries
+ ;; Move all clients libraries at top-level, as is done, e.g., in
+ ;; MELPA.
+ (lambda _
+ (for-each (lambda (f)
+ (install-file f "."))
+ (find-files "clients/" "\\.el$"))))
+ (add-before 'move-clients-libraries 'fix-patch-el-files
+ ;; /bin/ksh is only used on macOS, which we don't support, so we
+ ;; don't want to add it as input.
+ (lambda _
+ (substitute* '("clients/lsp-csharp.el" "clients/lsp-fsharp.el")
+ (("/bin/ksh") "ksh")))))))
+ (propagated-inputs
+ (list emacs-dash
+ emacs-f
+ emacs-ht
+ emacs-hydra
+ emacs-markdown-mode
+ emacs-spinner))
+ (home-page "https://emacs-lsp.github.io/lsp-mode/")
+ (synopsis "Emacs client and library for the Language Server Protocol")
+ (description
+ "LSP mode is a client and library implementation for the Language
Server Protocol. This mode creates an IDE-like experience by providing
optional integration with other popular Emacs packages like Company, Flycheck,
and Projectile.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define* (%emacs-lsp-treemacs-upstream-source #:key commit version hash)
(origin
@@ -30824,6 +30900,8 @@ and implementation of treeview controls using treemacs as a tree renderer.")
(sha256
(base32 "1zczmcv8562lachkvcwy6njn7zkgny08iznpmrx821wr8mh52wnn"))))
(build-system emacs-build-system)
+ (arguments
+ (list #:include #~(cons* "\\.png$" %default-include)))
(propagated-inputs
(list emacs-bui emacs-lsp-mode emacs-posframe emacs-lsp-treemacs))
(home-page "https://emacs-lsp.github.io/dap-mode")
@@ -32456,7 +32534,7 @@ through Dash docsets.")
(define-public emacs-devdocs
(package
(name "emacs-devdocs")
- (version "0.6")
+ (version "0.6.1")
(source
(origin
(method url-fetch)
@@ -32464,7 +32542,7 @@ through Dash docsets.")
"https://elpa.gnu.org/packages/"
"devdocs-" version ".tar"))
(sha256
- (base32 "17av2l61mr4y8la4cqiq1dnaznni4xirr5k3wdix1jzl3q1apypy"))))
+ (base32 "04m3jd3wymrsdlb1i7z6dz9pf1q8q38ihkbn3jisdca6xkk9jd6p"))))
(build-system emacs-build-system)
(home-page "https://github.com/astoff/devdocs.el")
(synopsis "Emacs viewer for DevDocs")
@@ -32806,14 +32884,14 @@ well as an option for visually flashing evaluated s-expressions.")
(define-public emacs-tramp
(package
(name "emacs-tramp")
- (version "2.6.2.2")
+ (version "2.6.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"tramp-" version ".tar"))
(sha256
- (base32 "0bbsff2qr71f70nxhdi19b3jzpv6bgfb7x7qkrccsygvsvgyrb2h"))))
+ (base32 "0z44mfpvn4qy2xc2fsiahw3xir140ljna8aq45dcb7qnmr044xjb"))))
(build-system emacs-build-system)
(arguments
(list
@@ -33843,7 +33921,7 @@ time.")
(define-public emacs-mastodon
(package
(name "emacs-mastodon")
- (version "1.0.18")
+ (version "1.0.19")
(source
(origin
(method git-fetch)
@@ -33852,7 +33930,7 @@ time.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1l4arid01m5475wq4sy8j598ww13847sbpg9grl71r72rs83071w"))))
+ (base32 "096zsjlqx2cv4zq607f9n7mr60d5avhfczf3nxsa8wkjsj97qrlh"))))
(build-system emacs-build-system)
(arguments
(list
@@ -36292,20 +36370,20 @@ state to and restoring it from a file, with auto-saving and backups.")
(define-public emacs-company-emoji
(package
(name "emacs-company-emoji")
- (version "2.8.0")
+ (version "3.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/dunn/company-emoji/")
+ (url "https://codeberg.org/egirl/company-emoji")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0j35z7hjcg3dkwgd7mdx1yaxcmxkn00h91y9kl8qdci7m4lja460"))))
+ (base32 "1afy2f1ymzr518npbhy5296kaqshax5hs2ij7wgl28h0hsa2mnk1"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-company))
- (home-page "https://github.com/dunn/company-emoji/")
+ (home-page "https://codeberg.org/egirl/company-emoji")
(synopsis "Company completion back-end for emoji")
(description
"This library is a Company back-end providing auto-completion for
@@ -38011,7 +38089,11 @@ released, and track their progress in watching a series.")
;; Disable tests that need network access.
(substitute* (list "tests/unit/test-webpaste-provider-creation.el"
"tests/integration/test-webpaste-providers.el")
- (("describe") "xdescribe")))))))
+ (("describe") "xdescribe"))
+ (emacs-batch-edit-file "tests/integration/test-webpaste-providers.el"
+ '(progn
+ (insert ";;; -*-lexical-binding:t -*-\n")
+ (basic-save-buffer))))))))
(native-inputs
(list emacs-buttercup))
(propagated-inputs
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 95200f190e..4e30772296 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -149,6 +149,7 @@
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
+ #:use-module (gnu packages sagemath)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages stb)
@@ -737,9 +738,7 @@ multipole-accelerated algorithm.")
(list boost
libgit2
qtbase-5
- ;; TODO: Needs to be renamed to qtserialport-5. when version 6 is
- ;; packed.
- qtserialport
+ qtserialport-5
qtsvg-5
zlib))
(home-page "https://fritzing.org")
@@ -2818,7 +2817,7 @@ comments.")))
swig))
(inputs
(list boost
- coin3D
+ coin3d
double-conversion
eigen
fmt
@@ -4229,7 +4228,7 @@ netlists from the drawn schematic, allowing the simulation of the circuit.")
"08rqhl6a5a8s67a8yl16944zgcsnnb08xfv4klzyqwlvaqgfp783"))))
(build-system gnu-build-system)
(native-inputs (list qttools-5))
- (inputs (list qtbase-5 qtserialport))
+ (inputs (list qtbase-5 qtserialport-5))
(arguments
(list #:tests? #f ; no tests.
#:phases #~(modify-phases %standard-phases
@@ -4371,3 +4370,52 @@ more.")
server for Python and pypy3.")
(home-page "https://freeopcua.github.io/")
(license license:lgpl3+)))
+
+(define-public cadabra2
+ (package
+ (name "cadabra2")
+ (version "2.4.5.6")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kpeeters/cadabra2")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c0832q156kl83dz1wpjw4wf2f68fg7421wxwzahnr2r7xxvgrvl"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list
+ (string-append "-DPYTHON_SITE_PATH=" #$output
+ "/lib/python"
+ #$(version-major+minor
+ (package-version (this-package-input "python")))
+ "/site-packages")
+ (string-append "-DCMAKE_INSTALL_PREFIX="
+ (assoc-ref %outputs "out")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-dependencies
+ (lambda _
+ (substitute* "cmake/modules/FindGLIBMM.cmake"
+ (("glibmm-2[.]4") "glibmm-2.68"))
+ (substitute* "client_server/ComputeThread.cc"
+ (("sigc::slot<void>[(][)]") "{}")
+ (("Glib::SPAWN_") "Glib::SpawnFlags::"))))
+ (add-before 'check 'prepare-checks
+ (lambda _
+ (setenv "HOME" "/tmp"))))))
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list glibmm gmp python boost gtkmm-3 sqlite python-gmpy2 python-sympy
+ python-mpmath python-matplotlib texlive-dvipng
+ `(,util-linux "lib")))
+ (synopsis "Computer algebra system geared towards field theory")
+ (description "This package provides a computer algebra system geared
+towards field theory.")
+ (home-page "https://cadabra.science/")
+ (license license:gpl3+)))
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 40f1383a56..8afd853350 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -76,6 +76,7 @@
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-crypto)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages guile)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages kerberos)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index ced5835d8e..3c32a220c4 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -147,7 +147,7 @@
;; <https://bitcoincore.org/en/lifecycle/#schedule>.
(package
(name "bitcoin-core")
- (version "26.1")
+ (version "27.0")
(source (origin
(method url-fetch)
(uri
@@ -155,7 +155,7 @@
version "/bitcoin-" version ".tar.gz"))
(sha256
(base32
- "1vimkcm5bd6dyncy6kw16ibkcbykv526ajgh175j0jkvf5fywr4i"))))
+ "0sqldg540q5d4lvr8fs9sbycxgzkij5y52rqqg6blmxisd8yc7lw"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@@ -2322,7 +2322,7 @@ and manipulation.")
(define-public xmrig
(package
(name "xmrig")
- (version "6.21.0")
+ (version "6.21.2")
(source
(origin
(method git-fetch)
@@ -2330,7 +2330,7 @@ and manipulation.")
(url "https://github.com/xmrig/xmrig")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
- (sha256 (base32 "1nmzgwd2r7ra7g4p0s5b77bgh099hf1kisbv4d946c9yiwbdzqgc"))
+ (sha256 (base32 "0rxnrn92v2w9f0zyv4zchilnrc3wa8nw4d4b4isaxx411zxgds6i"))
(modules '((guix build utils)))
(snippet
;; TODO: Try to use system libraries instead of bundled ones in
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 21df5cd8f2..6f0c2da806 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -37,6 +37,7 @@
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system copy)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
@@ -90,68 +91,65 @@
#:export (make-ergodox-firmware
make-qmk-firmware))
-(define-public ath9k-htc-firmware
+(define-public ath9k-htc-ar7010-firmware
(package
- (name "ath9k-htc-firmware")
+ (name "ath9k-htc-ar7010-firmware")
(version "1.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/qca/open-ath9k-htc-firmware")
(commit version)))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete binary blobs.
+ #~(for-each delete-file (find-files "." "\\.(a|o)$")))
(sha256
(base32
"16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23"))
- (file-name (git-file-name name version))
- (patches (search-patches "ath9k-htc-firmware-objcopy.patch"
- "ath9k-htc-firmware-gcc-compat.patch"))))
- (build-system gnu-build-system)
+ (file-name (git-file-name "open-ath9k-htc-firmware" version))
+ (patches (search-patches "ath9k-htc-firmware-gcc-compat.patch"))))
+ (build-system cmake-build-system)
(arguments
- '(#:target #f ; Package produces firmware.
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'pre-configure
- (lambda* (#:key inputs native-inputs #:allow-other-keys)
- (chdir "target_firmware")
-
- ;; 'configure' is a simple script that runs 'cmake' with
- ;; the right flags.
- (substitute* "configure"
- (("^TOOLCHAIN=.*$")
- (string-append "TOOLCHAIN="
- (assoc-ref (or native-inputs inputs) "cross-gcc")
- "\n")))
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (fw-dir (string-append out "/lib/firmware")))
- (for-each (lambda (file)
- (install-file file fw-dir))
- (find-files "." "\\.fw$"))
- #t))))
- #:tests? #f))
-
- ;; The firmware is cross-compiled using a "bare bones" compiler (no libc.)
- ;; Use our own tool chain for that.
- (native-inputs `(("cross-gcc" ,(cross-gcc
- "xtensa-elf"
- #:xbinutils (cross-binutils
- "xtensa-elf"
- #:binutils binutils-2.33)))
- ("cross-binutils" ,(cross-binutils
- "xtensa-elf"
- #:binutils binutils-2.33))
- ("cmake" ,cmake-minimal)
- ("perl" ,perl)))
+ (list #:target "xtensa-ath9k-elf"
+ #:tests? #f
+ #:configure-flags
+ #~'("-DCMAKE_SYSTEM_NAME=Generic" ;override default value
+ "-DTARGET_MAGPIE=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'change-directory
+ (lambda _
+ (chdir "target_firmware")))
+ (replace 'install
+ (lambda _
+ (let ((fw-dir (string-append #$output "/lib/firmware")))
+ (for-each (lambda (file)
+ (install-file file fw-dir))
+ (find-files "." "\\.fw$"))))))))
+ (native-inputs (list perl))
(home-page "https://wireless.wiki.kernel.org/en/users/Drivers/ath9k_htc")
- (synopsis "Firmware for the Atheros AR7010 and AR9271 USB 802.11n NICs")
+ (synopsis "Firmware for the Atheros AR7010 USB 802.11n NICs")
(description
- "This is the firmware for the Qualcomm Atheros AR7010 and AR9271 USB
-802.11n NICs (aka Wi-Fi USB dongles). It is used by the ath9k driver of
-Linux-libre.")
+ "This is the firmware for the Qualcomm Atheros AR7010 802.11n USB NICs
+(aka Wi-Fi USB dongle). It is used by the ath9k driver of Linux-libre.")
(license (license:non-copyleft "http://directory.fsf.org/wiki/License:ClearBSD"))))
+(define-public ath9k-htc-ar9271-firmware
+ (package
+ (inherit ath9k-htc-ar7010-firmware)
+ (name "ath9k-htc-ar9271-firmware")
+ (arguments
+ (substitute-keyword-arguments
+ (package-arguments ath9k-htc-ar7010-firmware)
+ ((#:configure-flags flags)
+ #~'("-DCMAKE_SYSTEM_NAME=Generic" ;override default value
+ "-DTARGET_K2=ON"))))
+ (synopsis "Firmware for the Atheros AR9271 USB 802.11n NICs")
+ (description
+ "This is the firmware for the Qualcomm Atheros AR9271 802.11n USB NICs
+(aka Wi-Fi USB dongle). It is used by the ath9k driver of Linux-libre.")))
+
(define-public b43-tools
(let ((commit "27892ef741e7f1d08cb939744f8b8f5dac7b04ae")
(revision "1"))
diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm
index 4518a1e30a..05d418022f 100644
--- a/gnu/packages/fltk.scm
+++ b/gnu/packages/fltk.scm
@@ -43,7 +43,7 @@
(define-public fltk
(package
(name "fltk")
- (version "1.3.8")
+ (version "1.3.9")
(source
(origin
(method url-fetch)
@@ -51,7 +51,7 @@
(first (string-split version #\-))
"/fltk-" version "-source.tar.gz"))
(sha256
- (base32 "1gyisjwjbdsax4kbdm3hpijp2f0qgh1wk7wgad87l3pb0wmi1hgk"))))
+ (base32 "06siv517l1wfvcc1dg0h1dka5yzkh9gbmm835i1hgmjhbi2b0dnp"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 9ec722c19c..a5c8cfadce 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -34,7 +34,7 @@
;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2020, 2021 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2020, 2024 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2020, 2021, 2022 Simen Endsjø <simendsjo@gmail.com>
;;; Copyright © 2020 Tim Van den Langenbergh <tmt_vdl@gmx.com>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
@@ -2473,7 +2473,7 @@ files (TTF).")
(define-public font-mononoki
(package
(name "font-mononoki")
- (version "1.3")
+ (version "1.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2481,7 +2481,7 @@ files (TTF).")
(commit version)))
(sha256
(base32
- "07gh84iw84g8fha3gx4yjyl1rsksqhy2kk38f01m048sgjp6ww5j"))
+ "1mqinvb3hyimga8qjgpwgfv30yddzyicd79shhjbsns91v5z4x33"))
(file-name (git-file-name name version))))
(build-system font-build-system)
(arguments
@@ -2519,7 +2519,7 @@ font that is a composite of IBM Plex Mono and IBM Plex Sans JP.")
(define-public font-public-sans
(package
(name "font-public-sans")
- (version "1.008")
+ (version "2.001")
(source
(origin
(method git-fetch)
@@ -2528,7 +2528,7 @@ font that is a composite of IBM Plex Mono and IBM Plex Sans JP.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qhyxbjv1rnydfpqzd18fbiyz75p4sabphy8yj07hyq0hidp5xsf"))))
+ (base32 "0p3rl4w8m381jxb7in6z9iwjbk1chd7s0gk6jz96c8ci1bddbxk0"))))
(build-system font-build-system)
(home-page "https://public-sans.digital.gov/")
(synopsis "Neutral typeface for interfaces, text, and headings")
@@ -2963,6 +2963,57 @@ to write people's name, or for formal business situations where it is necessary
to have a detailed and proper character style.")
(license license:ipa)))
+(define-public font-jigmo
+ (package
+ (name "font-jigmo")
+ (version "20230816")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://kamichikoichi.github.io/jigmo/Jigmo-"
+ version ".zip"))
+ (sha256
+ (base32 "1higvn4qvz25hx215fs2vqlzh2d2645jbxf07yd82y09drl429jd"))))
+ (build-system font-build-system)
+ (home-page "https://kamichikoichi.github.io/jigmo/")
+ (synopsis "Font contains most CJK unified ideograph characters")
+ (description "Jigmo is a font contains all CJK unified ideograph characters
+in Unicode 15.1 standard, ranges from CJK extension A to CJK extension I.
+It is generated by the font shape data in GlyphWiki using KAGE system, Clipper
+and FontForge.")
+ (license license:cc0)))
+
+(define-public font-plangothic
+ (package
+ (name "font-plangothic")
+ (version "1.8.5760")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Fitzgerald-Porthmouth-Koenigsegg/"
+ "Plangothic-Project/releases/download/V"
+ version "/Plangothic.ttc"))
+ (sha256
+ (base32 "0ha2hcgy95ibmjk8lqfz0ihfc09swrzz3grlchma7qrwyxqbwpc0"))))
+ (build-system trivial-build-system)
+ (arguments
+ (list
+ #:modules '((guix build utils))
+ #:builder
+ #~(let* ((out #$output)
+ (dest (string-append out "/share/fonts/truetype")))
+ (use-modules (guix build utils))
+ (mkdir-p dest)
+ (copy-file #$(package-source this-package)
+ (string-append dest "/Plangothic.ttc")))))
+ (home-page
+ "https://github.com/Fitzgerald-Porthmouth-Koenigsegg/Plangothic-Project")
+ (synopsis "Sans font covers most CJK unified ideograph characters")
+ (description "Plangothic is a sans font based on Source Han Sans,
+modified to cover most CJK unified ideograph characters.")
+ (license license:silofl1.1)))
+
(define-public font-fontna-yasashisa-antique
(package
(name "font-fontna-yasashisa-antique")
@@ -3386,6 +3437,66 @@ within GB 2312, standard glyphs for Mainland China is used.")
Song typeface covering commonly used characters as well as written form of
dialects in Hong Kong and Taiwan.")))
+(define-public font-lxgw-neozhisong
+ (package
+ (name "font-lxgw-neozhisong")
+ (version "0.920.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/lxgw/LxgwNeoZhiSong/releases/download/v"
+ version "/LXGWNeoZhiSong.ttf"))
+ (sha256
+ (base32 "02jv5ysd450i47m3qmdwm3w23bp4wlqrjdwk6iirhgpv169p901j"))))
+ (build-system trivial-build-system)
+ (arguments
+ (list
+ #:modules '((guix build utils))
+ #:builder
+ #~(let ((out #$output)
+ (dest (string-append #$output "/share/fonts/truetype")))
+ (use-modules (guix build utils))
+ (mkdir-p dest)
+ (copy-file #$(package-source this-package)
+ (string-append dest "/LXGWNeoZhiSong.ttf")))))
+ (home-page "https://github.com/lxgw/LxgwNeoZhiSong")
+ (synopsis "Simplified Chinese Song typeface derived from IPAmj Mincho")
+ (description "LXGW NeoZhiSong is a Simplified Chinese Song typeface derived
+from IPAmj Mincho, modified to adapt to the standard glyph shape used in
+Mainland China.")
+ (license license:ipa)))
+
+(define-public font-lxgw-heartserif
+ (package
+ (name "font-lxgw-heartserif")
+ (version "0.920.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/lxgw/LxgwNeoZhiSong/releases/download/v"
+ version "/LXGWHeartSerif.ttf"))
+ (sha256
+ (base32 "1nbhvy0b9vb0w5pfpp5f0jdkb6fs422avkdxzqydmv74g5v8gz07"))))
+ (build-system trivial-build-system)
+ (arguments
+ (list
+ #:modules '((guix build utils))
+ #:builder
+ #~(let ((out #$output)
+ (dest (string-append #$output "/share/fonts/truetype")))
+ (use-modules (guix build utils))
+ (mkdir-p dest)
+ (copy-file #$(package-source this-package)
+ (string-append dest "/LXGHeartSerif.ttf")))))
+ (home-page "https://github.com/lxgw/LxgwNeoZhiSong")
+ (synopsis "Simplified Chinese Song typeface derived from Kokoro Mincho")
+ (description "LXGW HeartSerif is a Simplified Chinese Song typeface derived
+from Kokoro Mincho, modified to adapt to the standard glyph shape used in
+Mainland China.")
+ (license license:ipa)))
+
(define-public font-chiron-sung-hk
(package
(name "font-chiron-sung-hk")
@@ -3447,7 +3558,7 @@ prevalent typefaces in Traditional Chinese regions.")))
(define-public font-spleen
(package
(name "font-spleen")
- (version "1.9.3")
+ (version "2.1.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3455,7 +3566,7 @@ prevalent typefaces in Traditional Chinese regions.")))
version "/spleen-" version ".tar.gz"))
(sha256
(base32
- "09bbwza14pl70cxbr09f9m8522s5p1p04kx9gh8svpd50bdixbdp"))))
+ "0brp1kyp6i5q9zk3hpj5ngxh4js0aw2m6d4yrzxmif3f39pwaiwb"))))
(build-system font-build-system)
(outputs '("out" ;OTB
"bdf" "otf" "pcf" "psf"))
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 78443d6f5c..081269ebaf 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -35,6 +35,8 @@
;;; Copyright © 2023 Alex Devaure <ajadevaure@gmail.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2022 Samuel Culpepper <sculpepper@newstore.com>
+;;; Copyright © 2024 aurtzy <aurtzy@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1557,6 +1559,37 @@ sent to a Wayland window, such as key presses. It is analogous to the X11 tool
XEv.")
(license license:expat)))
+(define-public wlr-protocols
+ (let ((commit "2b8d43325b7012cc3f9b55c08d26e50e42beac7d")
+ (revision "0"))
+ (package
+ (name "wlr-protocols")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.freedesktop.org/wlroots/wlr-protocols.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17blwww6rcrahwc6h6j68gh6wjbj14if3mihpxymfdw5pwl72rav"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:make-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs (list wayland)) ;For wayland-scanner.
+ (home-page "https://gitlab.freedesktop.org/wlroots/wlr-protocols")
+ (synopsis
+ "Wayland protocols designed for use in wlroots (and other compositors)")
+ (description
+ "This package provides Wayland protocols designed for use in wlroots (and
+other compositors).")
+ (license license:expat))))
+
(define-public wtype
(package
(name "wtype")
@@ -3203,3 +3236,34 @@ notifies the user using any notification daemon implementing
"Waypipe is a proxy for Wayland clients, with the aim of
supporting behavior like @samp{ssh -X}.")
(license license:expat)))
+
+(define-public libdecor
+ (package
+ (name "libdecor")
+ (version "0.2.2")
+ (source
+ (origin (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.freedesktop.org/libdecor/libdecor")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05rxchwzhnkm91kcr30mavizkp25wgjlhb6lcraa456pw7vgb04q"))))
+ (build-system meson-build-system)
+ (native-inputs (list cmake pkg-config))
+ (inputs (list cairo
+ dbus
+ egl-wayland
+ gtk+
+ libglvnd
+ libxkbcommon
+ pango
+ wayland
+ wayland-protocols))
+ (home-page "https://gitlab.freedesktop.org/libdecor/libdecor")
+ (synopsis "Client-side decorations library for Wayland clients")
+ (description "libdecor is a library that can help Wayland clients draw
+window decorations for them. It aims to provide multiple backends that
+implements the decoration drawing.")
+ (license license:expat)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index ae313a8edf..8fecd95940 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -17,7 +17,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com>
-;;; Copyright © 2020-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
@@ -2095,7 +2095,7 @@ scripted in a Python-like language.")
(define-public godot
(package
(name "godot")
- (version "4.1.3")
+ (version "4.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2104,7 +2104,7 @@ scripted in a Python-like language.")
(file-name (git-file-name name version))
(sha256
(base32
- "1mwwzf77ixkalciqakn6q42g9sl2570didfll406sfs42wz534ng"))
+ "0d5y678986lx4a4xjkxs5glh2dckp8wwl3r3mw72inq7gvaa18s3"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-1)))
@@ -2117,19 +2117,28 @@ scripted in a Python-like language.")
(let* ((preserved-files
'("README.md"
"amd-fsr"
+ "amd-fsr2"
"assimp"
"astcenc"
"basis_universal"
;; Godot needs ca-certificates.crt, but that is
;; not available in build environment
"certs"
+ "clipper2"
"cvtt"
"linuxbsd_headers"
"etc2comp"
"etcpak"
"fonts"
"glad"
+ ;; TODO: Remove once Godot once again builds
+ ;; with our glslang package, or with a
+ ;; workaround. Currently it looks for a Types.h
+ ;; which is no longer in the glslang output
+ ;; after the most recent update.
+ "glslang"
"jpeg-compressor"
+ "libktx"
"libsimplewebm"
"meshoptimizer"
"minimp3"
@@ -2170,7 +2179,9 @@ scripted in a Python-like language.")
"builtin_embree=no"
"builtin_enet=no"
"builtin_freetype=no"
- "builtin_glslang=no"
+ ;; TODO: Uncomment this option when the todo for
+ ;; glslang in the snippet is resolved.
+ ;; "builtin_glslang=no"
"builtin_graphite=no"
"builtin_harfbuzz=no"
"builtin_icu4c=no"
@@ -2817,14 +2828,14 @@ a.k.a. XenoCollide) as described in Game Programming Gems 7.")
(define-public ode
(package
(name "ode")
- (version "0.16.4")
+ (version "0.16.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/odedevs/ode/downloads/"
"ode-" version ".tar.gz"))
(sha256
- (base32 "0rrl4pn4h3g0ay0i3n61pr6bwyk9vgar17vjal56pj66h617n0vi"))
+ (base32 "0ya6slmy2iysx3fql7w7r56c7gsk93qp1apfjn3raw252vfmx1xs"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -2857,38 +2868,34 @@ computer games, 3D authoring tools and simulation tools.")
(license (list license:lgpl2.1+ license:expat))))
(define-public chipmunk
- (package
- (name "chipmunk")
- (version "7.0.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/slembcke/Chipmunk2D")
- (commit (string-append "Chipmunk-" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1qmkn01g06p3rnhmbyffmjns6wj5vhgf9cscigk3wzxcpwv1hyxb"))
- (modules '((guix build utils)))
- (snippet
- #~(begin
- ;; This is fixed in the upstream repository but the fix
- ;; has not been released.
- (substitute* "src/cpHastySpace.c"
- (("#include <sys/sysctl.h>") ""))))))
- (build-system cmake-build-system)
- (arguments
- (list #:tests? #f ;no test
- #:configure-flags
- #~(list "-DBUILD_STATIC=OFF"
- "-DBUILD_DEMOS=OFF")))
- (inputs
- (list freeglut libxmu libxrandr))
- (home-page "https://chipmunk-physics.net/")
- (synopsis "Fast and lightweight 2D game physics library")
- (description "Chipmunk is a simple, lightweight, fast and portable 2D
+ (let ((commit "d0239ef4599b3688a5a336373f7d0a68426414ba")
+ (revision "1"))
+ (package
+ (name "chipmunk")
+ (version (git-version "7.0.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/slembcke/Chipmunk2D")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1910rfnanhna99bhfiyny3ki7aip2i9p4jzmwsfcg16m9gip5fd6"))
+ (modules '((guix build utils)))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f ;no test
+ #:configure-flags
+ #~(list "-DBUILD_STATIC=OFF"
+ "-DBUILD_DEMOS=OFF")))
+ (inputs
+ (list freeglut libxmu libxrandr))
+ (home-page "https://chipmunk-physics.net/")
+ (synopsis "Fast and lightweight 2D game physics library")
+ (description "Chipmunk is a simple, lightweight, fast and portable 2D
rigid body physics library written in C.")
- (license license:expat)))
+ (license license:expat))))
(define-public box2d
(package
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 6e26a15f56..1305bf426f 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -81,6 +81,7 @@
;;; Copyright © 2023, 2024 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2024 Vagrant Cascadian <vagrant@debian.org>
+;;; Copyright © 2024 Sébastien Lerique <sl@eauchat.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -241,6 +242,34 @@
#:use-module ((srfi srfi-1) #:hide (zip))
#:use-module (srfi srfi-26))
+(define-public hexahop
+ (package
+ (name "hexahop")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/hexahop/" version "/"
+ "hex-a-hop-" version ".tar.gz"))
+
+ (sha256
+ (base32 "1mm069wpwc8nrrzfn2f64vh550634xlfws64bfmhqhx86vcikgw0"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:configure-flags
+ #~(list (string-append "--with-sdl-prefix="
+ #$(this-package-input "sdl-union")))))
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list (sdl-union (list sdl sdl-mixer sdl-ttf))))
+ (home-page "https://sourceforge.net/projects/hexahop/")
+ (synopsis "Puzzle game navigating paths over hexagons")
+ (description
+ "Hex-a-hop is a puzzle game in which a girl has to destroy green hexagons
+by stepping on them.")
+ (license license:gpl2+)))
+
(define-public abe
(package
(name "abe")
@@ -5786,65 +5815,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 +9863,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 +11775,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/geo.scm b/gnu/packages/geo.scm
index 460f810d3e..985fa77231 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -101,9 +101,11 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages java)
#:use-module (gnu packages kde)
+ #:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
+ #:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages pcre)
@@ -1229,6 +1231,47 @@ development.")
(home-page "https://www.gaia-gis.it/fossil/spatialite_gui/index")
(license license:gpl3+)))
+(define-public pdal
+ (package
+ (name "pdal")
+ (version "2.7.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PDAL/PDAL")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0gg5lcshlmn3wwak42xr0b8a8gdr4572d7hrcvxn2291kp2c3096"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ctest" "-E" ;; This test hangs.
+ "pdal_io_stac_reader_test")))))))
+ (native-inputs (list python))
+ (inputs (list gdal
+ h3
+ libgeotiff
+ libunwind
+ libxml2
+ nlohmann-json
+ openssl
+ proj
+ utfcpp
+ xz
+ `(,zstd "lib")))
+ (home-page "https://pdal.io/")
+ (synopsis "Point Data Abstraction Library")
+ (description "PDAL is a C++ library for translating and manipulating point
+cloud data. It is very much like the GDAL library which handles raster and
+vector data.")
+ (license license:bsd-3)))
+
(define-public gdal
(package
(name "gdal")
@@ -1346,6 +1389,42 @@ utilities for data translation and processing.")
"The Python Shapefile Library (PyShp) reads and writes ESRI Shapefiles.")
(license license:expat)))
+(define-public python-verde
+ (package
+ (name "python-verde")
+ (version "1.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "verde" version))
+ (sha256
+ (base32 "1hnh91dsk2dxfbk7p2hv3hajaa396139pd6apabgdrp5b7s54k97"))))
+ (build-system pyproject-build-system)
+ (arguments
+ ;; Tests below fetch data remotely.
+ (list #:test-flags #~(list "-k" (string-append
+ "not test_minimal_integration_2d_gps"
+ " and not test_datasets_locate"
+ " and not test_fetch_texas_wind"
+ " and not test_fetch_baja_bathymetry"
+ " and not test_fetch_rio_magnetic"
+ " and not test_fetch_california_gps"))))
+ (native-inputs (list python-cartopy python-distributed))
+ (propagated-inputs (list python-dask
+ python-numpy
+ python-pandas
+ python-pooch
+ python-scikit-learn
+ python-scipy
+ python-xarray))
+ (home-page "https://github.com/fatiando/verde")
+ (synopsis "Processing and gridding spatial data, machine-learning style")
+ (description
+ "Verde is a Python library for processing spatial data (topography, point
+clouds, bathymetry, geophysics surveys, etc) and interpolating them on a 2D
+surface (i.e., gridding) with a hint of machine learning.")
+ (license license:bsd-3)))
+
(define-public python-cartopy
(package
(name "python-cartopy")
@@ -1911,6 +1990,34 @@ persisted.
")
(license license:expat)))
+(define-public libmseed
+ (package
+ (name "libmseed")
+ (version "3.1.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/EarthScope/libmseed")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05sk2h19c7ja98s75b7hbn2cwnjc5l6dr59c23fgnaimmad2rfn7"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://earthscope.github.io/libmseed/")
+ (synopsis "Library for the miniSEED data format")
+ (description "The miniSEED library provides a framework for manipulation
+of SEED data records, a format for commonly used for seismological time
+series and related data. The library includes the functionality to read
+and write data records, in addition to reconstructing time series
+from multiple records.")
+ (license license:asl2.0)))
+
(define-public python-rtree
(package
(name "python-rtree")
@@ -2981,7 +3088,7 @@ growing set of geoscientific methods.")
qtkeychain
qtlocation
qtmultimedia-5
- qtserialport
+ qtserialport-5
qtsvg-5
qwt
;; saga
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index b458a6397c..b2676e654e 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -193,8 +193,17 @@ of a larger interface.")
"0x8lxvnhfpssj84x47y3y06vsvhd5afb9jknw38c8ymbxafzxpi6"))))
(build-system meson-build-system)
(arguments
- `(#:configure-flags
- (list "-Dwith-docs=false")))
+ (list
+ #:configure-flags #~(list "-Dwith-docs=false")
+ #:phases
+ #~(modify-phases %standard-phases
+ #$@(if (target-aarch64?)
+ #~((add-after 'unpack 'disable-failing-test
+ (lambda _
+ (substitute* "tests/meson.build"
+ ;; float -> u8 1 failed #1[1] got 76 expected 77
+ (("'float-to-8bit',") "")))))
+ '()))))
(native-inputs
(list gobject-introspection pkg-config vala))
(propagated-inputs
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index f8dc8c1d9d..2100bb4872 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017-2019, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017-2019, 2021, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -297,17 +297,17 @@ also known as DXTn or DXTC) for Mesa.")
(define-public mesa
(package
(name "mesa")
- (version "23.3.2")
+ (version "24.0.4")
(source
- (origin
- (method url-fetch)
- (uri (list (string-append "https://archive.mesa3d.org/"
- "mesa-" version ".tar.xz")
- (string-append "ftp://ftp.freedesktop.org/pub/mesa/"
- "mesa-" version ".tar.xz")))
- (sha256
- (base32
- "1p4swrbmz3kb1805kdj973hf8virgmix4m9qprmcb2bgl4gviz1w"))))
+ (origin
+ (method url-fetch)
+ (uri (list (string-append "https://archive.mesa3d.org/"
+ "mesa-" version ".tar.xz")
+ (string-append "ftp://ftp.freedesktop.org/pub/mesa/"
+ "mesa-" version ".tar.xz")))
+ (sha256
+ (base32
+ "1w25lwdrb0ffrx2fjk9izbvpcgf9ypfc7v32zybwvjwql0qbvzlh"))))
(build-system meson-build-system)
(propagated-inputs
;; The following are in the Requires.private field of gl.pc.
@@ -327,6 +327,7 @@ also known as DXTn or DXTC) for Mesa.")
libxrandr
libxvmc
llvm-for-mesa
+ vulkan-loader
wayland
wayland-protocols
`(,zstd "lib")))
@@ -352,16 +353,11 @@ also known as DXTn or DXTC) for Mesa.")
#:configure-flags
#~(list
#$@(cond
- ((target-aarch64?)
- ;; TODO: Fix svga driver for non-Intel architectures.
+ ((or (target-aarch64?) (target-arm32?))
'("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\
-panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl,zink"))
- ((target-arm32?)
- ;; Freedreno FTBFS when built on a 64-bit machine.
- '("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,\
-r300,r600,swrast,tegra,v3d,vc4,virgl,zink"))
+panfrost,r300,r600,svga,swrast,tegra,v3d,vc4,virgl,zink"))
((or (target-ppc64le?) (target-ppc32?) (target-riscv64?))
- '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl,zink"))
+ '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,svga,swrast,virgl,zink"))
(else
'("-Dgallium-drivers=crocus,iris,nouveau,r300,r600,radeonsi,\
svga,swrast,virgl,zink")))
@@ -395,9 +391,9 @@ svga,swrast,virgl,zink")))
;; Enable the Vulkan overlay layer on all architectures.
"-Dvulkan-layers=device-select,overlay"
- ;; Enable the codecs that were built by default as part of the
+ ;; Enable all the codecs that were built by default as part of the
;; 21.3.x releases to avoid functionality regressions.
- "-Dvideo-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc"
+ "-Dvideo-codecs=all"
;; Enable ZSTD compression for shader cache.
"-Dzstd=enabled"
@@ -454,24 +450,17 @@ svga,swrast,virgl,zink")))
;; There are some tests which fail specifically on powerpc.
`((substitute* '(;; LLVM ERROR: Relocation type not implemented yet!
"src/gallium/drivers/llvmpipe/meson.build"
- ;; This is probably a big-endian test failure.
"src/gallium/targets/osmesa/meson.build")
(("if with_tests") "if not with_tests"))
- ;; This test times out and receives SIGTERM.
+ ;; This is probably a big-endian test failure.
(substitute* "src/amd/common/meson.build"
- (("and not with_platform_windows") "and with_platform_windows"))
- (substitute* "src/compiler/nir/meson.build"
- ((".*loop_unroll_tests.*") ""))))
+ (("and not with_platform_windows")
+ "and with_platform_windows"))))
("i686-linux"
;; This test is known to fail on i686 (see:
;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/4091).
`((substitute* "src/util/meson.build"
((".*'tests/u_debug_stack_test.cpp',.*") ""))))
- ("aarch64-linux"
- ;; The ir3_disasm test segfaults.
- ;; The simplest way to skip it is to run a different test instead.
- `((substitute* "src/freedreno/ir3/meson.build"
- (("disasm\\.c'") "delay.c',\n link_args: ld_args_build_id"))))
("armhf-linux"
;; Disable some of the llvmpipe tests.
`((substitute* "src/gallium/drivers/llvmpipe/meson.build"
@@ -479,7 +468,7 @@ svga,swrast,virgl,zink")))
(_
'((display "No tests to disable on this architecture.\n"))))))
(add-before 'configure 'fix-dlopen-libnames
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
(let ((out #$output))
;; Remain agnostic to .so.X.Y.Z versions while doing
;; the substitutions so we're future-safe.
@@ -495,7 +484,12 @@ svga,swrast,virgl,zink")))
;; it's never installed since Mesa removed its
;; egl_gallium support.
(("\"gbm_dri\\.so")
- (string-append "\"" out "/lib/dri/gbm_dri.so"))))))
+ (string-append "\"" out "/lib/dri/gbm_dri.so")))
+ (substitute* "src/gallium/drivers/zink/zink_screen.c"
+ (("util_dl_open\\(VK_LIBNAME\\)")
+ (format #f "util_dl_open(\"~a\")"
+ (search-input-file inputs
+ "lib/libvulkan.so.1")))))))
(add-after 'install 'split-outputs
(lambda _
(let ((out #$output)
@@ -1172,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
@@ -1181,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/gnome.scm b/gnu/packages/gnome.scm
index a61741773f..35491c3df2 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3320,6 +3320,22 @@ compiles to GTKBuilder XML.")
(home-page "https://gitlab.gnome.org/jwestman/blueprint-compiler")
(license license:lgpl3+)))
+(define-public blueprint-compiler-0.4
+ (package
+ (inherit blueprint-compiler)
+ (name "blueprint-compiler")
+ (version "0.4.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url
+ "https://gitlab.gnome.org/jwestman/blueprint-compiler")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0hj7f4xhwjc4x32r3lswwclbw37fw3spy806g4plkmym25hz4ydy"))))))
+
(define-public cambalache
(package
(name "cambalache")
@@ -3730,12 +3746,15 @@ diagrams.")
"svg1.1/masking-mask-01-b.svg"
;; This test fails on aarch64:
"bugs/777834-empty-text-children.svg"
-
;; These two tests fail due to slightly different
;; text rendering (different kerning or similar),
;; nothing alarming.
"bugs/340047.svg"
- "bugs/749415.svg"))))))))
+ "bugs/749415.svg"
+ ;; These two tests fail with the update to cairo
+ ;; version 1.18.0.
+ "bugs/587721-text-transform.svg"
+ "svg1.1/masking-path-03-b.svg"))))))))
(native-inputs
(list pkg-config
`(,glib "bin") ; glib-mkenums, etc.
@@ -8203,6 +8222,14 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
"-DWITH_PHONENUMBER=ON"))
#:phases
#~(modify-phases %standard-phases
+ #$@(if (target-aarch64?)
+ #~((add-after 'unpack 'disable-failing-aarch64-tests
+ (lambda _
+ ;; 26/90 Test #26: test-book-client-custom-summary
+ ;; ...........SIGTRAP***Exception: 35.99 sec
+ (substitute* "tests/libebook/client/CMakeLists.txt"
+ (("test-book-client-custom-summary") "")))))
+ '())
(add-after 'unpack 'disable-failing-tests
(lambda _
;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index 84741fa280..0f3217ffe3 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -66,14 +66,14 @@
;; directory.
(package
(name "gnucash")
- (version "5.5")
+ (version "5.6")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
version "/gnucash-" version ".tar.bz2"))
(sha256
- (base32 "0fzds1yq298c3rvi07if1bfxff904jbzmsb27wr0ddwjp1xzdnml"))))
+ (base32 "1l8vy8dj48hz385ldwnx3bpdsqyc8lsigwm1gjgygwshcdi2rd5l"))))
(outputs '("out" "doc" "debug" "python"))
(build-system cmake-build-system)
(arguments
@@ -218,7 +218,7 @@ installed as well as Yelp, the Gnome help browser.")
"mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
version "/gnucash-docs-" version revision ".tar.gz"))
(sha256
- (base32 "1ay8jzxrsb9qmbx0v12kqdjk6l3j7cafgxswa92yynihv5ahymlk"))))
+ (base32 "00izzaswwp78ix0zdr8618lk2c21had4im04yrggqx4h34ldmnca"))))
(build-system cmake-build-system)
;; These are native-inputs because they are only required for building the
;; documentation.
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index c76e51ced0..ae166c2507 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -79,6 +79,7 @@
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
+ #:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu))
@@ -188,73 +189,6 @@ authentication and support for SSL3 and TLS.")
(license license:lgpl2.1+)
(home-page "https://www.gnu.org/software/libmicrohttpd/")))
-(define-public gnurl
- (package
- (name "gnurl")
- (version "7.72.0")
- ;; Fetch from git, as the tarball causes the build to fail with "No rule
- ;; to make target 'convsrctest.pl', needed by 'all-am'." (see
- ;; https://bugs.gnunet.org/view.php?id=8684).
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.taler.net/gnurl.git")
- (commit (string-append name "-" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0b3jqxlarkiphf71i50vnvsmr8gh38ishrxqqbq77m0hjwyx4kv1"))))
- (build-system gnu-build-system)
- (outputs '("out"
- "doc")) ; 1.8 MiB of man3 pages
- (arguments
- (list
- #:test-target "test-nonflaky" ;do not run flaky tests
- #:configure-flags
- ;; All of these produce errors during configure.
- #~(list "--disable-ftp"
- "--disable-file"
- "--disable-ldap"
- "--disable-rtsp"
- "--disable-dict"
- "--disable-telnet"
- "--disable-tftp"
- "--disable-pop3"
- "--disable-imap"
- "--disable-smb"
- "--disable-smtp"
- "--disable-gopher"
- "--without-ssl"
- "--without-libpsl"
- "--without-librtmp"
- "--disable-ntlm-wb")
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'patch-paths
- (lambda _
- (substitute* "tests/runtests.pl.in"
- (("/bin/sh")
- (which "sh")))))
- (add-after 'install 'move-man3-pages
- (lambda _
- ;; Move section 3 man pages to "doc".
- (mkdir-p (string-append #$output:doc "/share/man"))
- (rename-file (string-append #$output "/share/man/man3")
- (string-append #$output:doc "/share/man/man3")))))))
- (native-inputs (list autoconf automake libtool perl pkg-config python))
- (inputs (list gnutls/dane libidn2 zlib))
- (synopsis
- "Microfork of cURL with support for the HTTP/HTTPS/GnuTLS subset of cURL")
- (description
- "Gnurl is a microfork of cURL, a command line tool for transferring data
-with URL syntax. While cURL supports many crypto backends, libgnurl only
-supports HTTP, HTTPS and GnuTLS.")
- (license (license:non-copyleft "file://COPYING"
- "See COPYING in the distribution."))
- (properties '((ftp-server . "ftp.gnu.org")
- (ftp-directory . "/gnunet")))
- (home-page "https://gnunet.org/en/gnurl.html")))
-
(define-public gnunet
(package
(name "gnunet")
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 4a9bf3ba04..1ffec770fa 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -523,9 +523,9 @@ variable defined below. It requires guile-json to be installed."
;; XXXX: Workaround 'snippet' limitations.
(define computed-origin-method (@@ (guix packages) computed-origin-method))
-(define %icecat-base-version "115.9.1")
+(define %icecat-base-version "115.10.0")
(define %icecat-version (string-append %icecat-base-version "-guix0-preview1"))
-(define %icecat-build-id "20240323000000") ;must be of the form YYYYMMDDhhmmss
+(define %icecat-build-id "20240416000000") ;must be of the form YYYYMMDDhhmmss
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -545,12 +545,12 @@ variable defined below. It requires guile-json to be installed."
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
- "0agr8s42lpbq5gixsgj5kpcvimbnyx6msr4il4rvmf7gpw47hr93"))))
+ "1wpf4vcrvnvhnfzqavbkzqbn51bds1l9f6ld4mzh9xwm7mrkrz8a"))))
;; The upstream-icecat-base-version may be older than the
;; %icecat-base-version.
- (upstream-icecat-base-version "115.9.1")
- (gnuzilla-commit "a59b8a2c2e4c8b8de47b3ae4d10032154a47a01e")
+ (upstream-icecat-base-version "115.10.0")
+ (gnuzilla-commit "40e114e5e8fd0b4d3621d6c8aebf0c78100578f2")
(gnuzilla-source
(origin
(method git-fetch)
@@ -562,7 +562,7 @@ variable defined below. It requires guile-json to be installed."
(string-take gnuzilla-commit 8)))
(sha256
(base32
- "0l07x59c0bmj72n0pdhb4mlphw9nmd88i9jg39xvxcw0cv7bw6qm"))))
+ "1x6miiafhv9ncddm7xxjz88amq9bpv6sqnw5k0yz6fy1ghw9ckw0"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm
index 04267845a5..e13ce3afa8 100644
--- a/gnu/packages/golang-build.scm
+++ b/gnu/packages/golang-build.scm
@@ -133,6 +133,22 @@ for the Go language.")
@code{old} directory) packages.")
(license license:bsd-3)))
+;; It's for the Kubo update; remove it when it is no longer needed.
+(define-public go-golang-org-x-exp-2023
+ (package
+ (inherit go-golang-org-x-exp)
+ (name "go-golang-org-x-exp")
+ (version "0.0.0-20230725012225-302865e7556b")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/exp")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fkmi0zjwv70n9d9q9bmzch2zvf7xm3d65qh63zll6dljq2lh4b8"))))))
+
(define-public go-golang-org-x-image
(let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
(revision "1"))
diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm
index dd91bf23bc..3e26f5f374 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -16,8 +16,10 @@
;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2023 Benjamin <benjamin@uvy.fr>
;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
+;;; 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.
@@ -122,6 +124,36 @@
@end itemize\n")
(license license:expat))))
+(define-public go-github-com-chzyer-test
+ (package
+ (name "go-github-com-chzyer-test")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/chzyer/test")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1axdlcnx2qjsn5wsr2pr1m0w0a8k4nk5kkrngh742fgh81vzzy8s"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ ;; Tests relating to a in-memory disk fail due to a Segfault see
+ ;; <https://github.com/chzyer/test/issues/4>.
+ #:tests? #f
+ #:import-path "github.com/chzyer/test"))
+ (propagated-inputs
+ (list go-github-com-chzyer-logex))
+ (home-page "https://github.com/chzyer/test")
+ (synopsis "Testing library for Go")
+ ;; Description is not provided, see
+ ;; <https://github.com/chzyer/test/issues/3>.
+ (description
+ "A testing library for Go programs.")
+ (license license:expat)))
+
(define-public go-github-com-davecgh-go-spew
(package
(name "go-github-com-davecgh-go-spew")
@@ -160,6 +192,42 @@ style).
@end itemize")
(license license:isc)))
+(define-public go-github-com-felixge-fgprof
+ (package
+ (name "go-github-com-felixge-fgprof")
+ (version "0.9.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/felixge/fgprof")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00h4kphvmbcdgad0wmqbaclc4a1pipdb55ay41mwh6cnkdjjvhp0"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/felixge/fgprof"))
+ (native-inputs
+ (list go-github-com-stretchr-testify))
+ (propagated-inputs
+ (list go-github-com-google-pprof))
+ (home-page "https://github.com/felixge/fgprof")
+ (synopsis "Sampling profiler for Golang")
+ (description
+ "@code{fgprof} is a sampling Go profiler providing analyze On-CPU as well
+as @url{http://www.brendangregg.com/offcpuanalysis.html, Off-CPU} (e.g. I/O)
+time together.
+
+Go's builtin sampling CPU profiler can only show On-CPU time, but it's better
+than fgprof at that. Go also includes tracing profilers that can analyze I/O,
+but they can't be combined with the CPU profiler.
+
+fgprof is designed for analyzing applications with mixed I/O and CPU
+workloads. This kind of profiling is also known as wall-clock profiling.")
+ (license license:expat)))
+
(define-public go-github-com-frankban-quicktest
(package
(name "go-github-com-frankban-quicktest")
@@ -288,6 +356,57 @@ also update a file with new \"golden\" output that is deemed correct.")
values for the purpose of fuzz testing.")
(license license:asl2.0))))
+;; XXX: Placing to (gnu package profiling) creates some failing cycles.
+(define-public go-github-com-google-pprof
+ (package
+ (name "go-github-com-google-pprof")
+ (version "0.0.0-20240402174815-29b9bb013b0f")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/pprof")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "09l37q5dql0q0zj8amlnrynajfvp1vrp846q5vgiwsbwz9b78f18"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/google/pprof"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; To make this package smaller to use as a library where just
+ ;; source is required.
+ (delete 'build))))
+ (propagated-inputs
+ (list go-github-com-chzyer-readline
+ go-github-com-ianlancetaylor-demangle
+ go-golang-org-x-sys))
+ (home-page "https://github.com/google/pprof")
+ (synopsis "Visualization and analysis of profiling data")
+ (description
+ "@code{pprof} is a tool for visualization and analysis of profiling data.
+
+It reads a collection of profiling samples in profile.proto format and
+generates reports to visualize and help analyze the data. It can generate
+both text and graphical reports (through the use of the dot visualization
+package).")
+ (license (list
+ ;; For go code: LICENSE
+ license:asl2.0
+ ;; For svgpan: third_party/svgpan/LICENSE
+ ;; original source <https://code.google.com/archive/p/svgpan/>.
+ license:bsd-3
+ ;; For d3flamegraph: third_party/d3flamegraph/D3_LICENSE
+ ;;
+ ;; Bundle of d3-flame-graph and d3-selection JavaScript library
+ ;; (NPM) <https://www.npmjs.com/package/d3-flame-graph> and
+ ;; <https://www.npmjs.com/package/d3-selection>.
+ license:asl2.0 ; for bundle and d3-flame-graph
+ license:isc ; for d3-selection
+ ))))
+
(define-public go-github-com-hexops-gotextdiff
(package
(name "go-github-com-hexops-gotextdiff")
@@ -520,6 +639,44 @@ Gomega matcher library.")
framework.")
(license license:expat)))
+(define-public go-github-com-pkg-profile
+ (package
+ (name "go-github-com-pkg-profile")
+ (version "1.7.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pkg/profile")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ifr9gnycjwh7dbvsb5vgs9kzlr548cb4m45zvl8i8lgd3qhppy1"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ ;; XXX: Unit tests failing, see
+ ;; <https://github.com/pkg/profile/issues/68>.
+ #:tests? #f
+ #:import-path "github.com/pkg/profile"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; profile drops a cpu.pprof file inside its source directory
+ ;; after tests which makes it unreproducible so we remove it.
+ (add-after 'check 'delete-test-file
+ (lambda* (#:key import-path tests? #:allow-other-keys)
+ (when tests?
+ (delete-file (string-append "src/" import-path
+ "/cpu.pprof"))))))))
+ (propagated-inputs
+ (list go-github-com-felixge-fgprof))
+ (home-page "https://github.com/pkg/profile")
+ (synopsis "Simple profiling for Go")
+ (description
+ "Profile provides a simple way to manage runtime/pprof profiling of your
+Go application.")
+ (license license:bsd-2)))
+
(define-public go-github-com-prashantv-gostub
(package
(name "go-github-com-prashantv-gostub")
@@ -592,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")
@@ -831,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")
@@ -920,6 +1119,20 @@ thoroughly
(description "This package turns unkeyed struct literals (@code{T{1, 2,
3}}) into keyed ones (@code{T{A: 1, B: 2, C: 3}}) in Go.")))
+(define-public go-pprof
+ (package
+ (inherit go-github-com-google-pprof)
+ (name "go-pprof")
+ (arguments
+ (list
+ #:install-source? #f
+ #:go go-1.19
+ #:import-path "github.com/google/pprof"))
+ (description
+ (string-append (package-description go-github-com-google-pprof)
+ " This package provides an command line interface (CLI)
+tool."))))
+
(define-public go-staticcheck
(package
(inherit go-honnef-co-go-tools)
diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 8d0e0ddb64..273879b47a 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")
@@ -592,17 +641,11 @@ Stealing encryption and decryption methods.")
(build-system go-build-system)
(arguments
'(#:import-path "github.com/libp2p/go-libp2p-peer"))
- (native-inputs
+ (propagated-inputs
(list go-github-com-btcsuite-btcd-btcec
go-github-com-gogo-protobuf
- go-github-com-gxed-hashland-keccakpg
go-github-com-libp2p-go-libp2p-crypto
- go-github-com-minio-blake2b-simd
- go-github-com-minio-sha256-simd
- go-github-com-mr-tron-base58
- go-github-com-multiformats-go-multihash
- go-github-com-spaolacci-murmur3
- go-golang-org-x-crypto))
+ go-github-com-multiformats-go-multihash))
(home-page "https://github.com/libp2p/go-libp2p-peer")
(synopsis "PKI based identities for use in go-libp2p")
(description "PKI based identities for use in @command{go-libp2p}.")
@@ -795,34 +838,50 @@ 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"))
- (native-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.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"))))
+ (build-system go-build-system)
+ (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-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))
+ (home-page "https://github.com/multiformats/go-multihash")
+ (synopsis "Multihash implementation in Go")
+ (description "Multihash implementation in Go.")
+ (license license:expat)))
(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 e19ca4f5ff..c5c3efb7c5 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -1,6 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017, 2019, 2020, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
+;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
@@ -10,7 +12,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>
@@ -19,6 +20,7 @@
;;; Copyright © 2022 jgart via Guix-patches via <guix-patches@gnu.org>
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022, 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2023 Fries <fries1234@protonmail.com>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
@@ -55,6 +57,7 @@
#:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-xyz)
+ #:use-module (gnu packages ipfs)
#:use-module (gnu packages tls)
#:use-module (gnu packages web))
@@ -552,6 +555,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")
@@ -567,14 +572,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
@@ -707,6 +718,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")
@@ -1056,6 +1096,30 @@ used like a user interface for humans, to read and edit before passing the
JSON data to the machine.")
(license license:expat)))
+(define-public go-github-com-jackpal-go-nat-pmp
+ (package
+ (name "go-github-com-jackpal-go-nat-pmp")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jackpal/go-nat-pmp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1p2yrzfbkazc9nisr2iqjwzhb6q16zj6finyxxn2ikk7iiighl1g"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/jackpal/go-nat-pmp"))
+ (home-page "https://github.com/jackpal/go-nat-pmp")
+ (synopsis "Port mapping and discovery of external IP address")
+ (description
+ "This package provides a Go client for the NAT-PMP internet protocol for
+port mapping and discovering the external IP address of a firewall.")
+ (license license:asl2.0)))
+
(define-public go-github-com-jcmturner-dnsutils-v2
(package
(name "go-github-com-jcmturner-dnsutils-v2")
@@ -1188,6 +1252,40 @@ Microsoft AD PAC authorization data.")
transforms one JSON document into another through a JMESPath expression.")
(license license:asl2.0)))
+(define-public go-github-com-json-iterator-go
+ (package
+ (name "go-github-com-json-iterator-go")
+ (version "1.1.12")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/json-iterator/go")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1c8f0hxm18wivx31bs615x3vxs2j3ba0v6vxchsjhldc8kl311bz"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/json-iterator/go"))
+ (native-inputs
+ (list go-github-com-davecgh-go-spew
+ go-github-com-google-gofuzz
+ go-github-com-stretchr-testify))
+ (propagated-inputs
+ (list go-github-com-modern-go-concurrent
+ go-github-com-modern-go-reflect2))
+ (home-page "https://github.com/json-iterator/go")
+ (synopsis "High-performance replacement for Golang @code{encoding/json}")
+ (description
+ "This package implements encoding and decoding of JSON as defined in
+@uref{https://rfc-editor.org/rfc/rfc4627.html,RFC 4627} and provides
+interfaces with identical syntax of standard lib encoding/json. Converting
+from encoding/json to jsoniter is no more than replacing the package with
+jsoniter and variable type declarations (if any). jsoniter interfaces gives
+100% compatibility with code using standard lib.")
+ (license license:expat)))
+
(define-public go-github-com-julienschmidt-httprouter
(package
(name "go-github-com-julienschmidt-httprouter")
@@ -1236,39 +1334,28 @@ router.")
(license license:bsd-3)))
(define-public go-github-com-multiformats-go-multiaddr
- ;; This commit is from <2018-10-01> and associated with GX package manager,
- ;; since that time the project has changed versing stile and GX is dropped.
- ;; Current versioned tag is v0.12.2 <2024-01-26>.
- (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
- (revision "0"))
- (package
- (name "go-github-com-multiformats-go-multiaddr")
- (version (git-version "1.3.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/multiformats/go-multiaddr")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
- (build-system go-build-system)
- (arguments
- (list
- #:import-path "github.com/multiformats/go-multiaddr"))
- (native-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-multihash
- go-github-com-spaolacci-murmur3
- go-golang-org-x-crypto))
- (home-page "https://github.com/multiformats/go-multiaddr")
- (synopsis "Composable and future-proof network addresses")
- (description
- "Multiaddr is a standard way to represent addresses that does the
+ (package
+ (name "go-github-com-multiformats-go-multiaddr")
+ (version "0.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multiaddr")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0cdzlzh7cb1pj9mhq45va3r6gs6pcdfa9j7vdrqlv3zd6k3bxg39"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/multiformats/go-multiaddr"))
+ (propagated-inputs
+ (list go-github-com-multiformats-go-multihash))
+ (home-page "https://github.com/multiformats/go-multiaddr")
+ (synopsis "Composable and future-proof network addresses")
+ (description
+ "Multiaddr is a standard way to represent addresses that does the
following:
@itemize
@@ -1277,8 +1364,90 @@ following:
@item Have a binary packed format.
@item Have a nice string representation.
@item Encapsulate well.
-@end itemize\n")
- (license license:expat))))
+@end itemize")
+ (license license:expat)))
+
+;; It's for the Kubo update; remove it when it is no longer needed.
+(define-public go-github-com-multiformats-go-multiaddr-0.12
+ (package
+ (inherit go-github-com-multiformats-go-multiaddr)
+ (name "go-github-com-multiformats-go-multiaddr")
+ (version "0.12.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multiaddr")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rn02yn7494r7ayn585bbsddprbn8wdccxs4n2k5dmll4dyd39mp"))))
+ (arguments
+ (list
+ #:go go-1.21
+ #:import-path "github.com/multiformats/go-multiaddr"))
+ (native-inputs (list go-github-com-stretchr-testify))
+ (propagated-inputs (list go-github-com-ipfs-go-cid
+ go-github-com-multiformats-go-multibase
+ go-github-com-multiformats-go-varint
+ go-github-com-multiformats-go-multihash
+ go-golang-org-x-exp-2023))))
+
+(define-public go-github-com-multiformats-go-multiaddr-dns
+ (package
+ (name "go-github-com-multiformats-go-multiaddr-dns")
+ (version "0.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multiaddr-dns")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17qpcgxlmji6wdnjabl5ihc4zn69w2g0karad46zj70y5zg4y24r"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.21
+ #:import-path "github.com/multiformats/go-multiaddr-dns"
+ #:unpack-path "github.com/multiformats/go-multiaddr-dns"))
+ (propagated-inputs
+ (list go-github-com-miekg-dns
+ go-github-com-multiformats-go-multiaddr-0.12))
+ (home-page "https://multiformats.io/multiaddr/")
+ (synopsis "Library and CLI tool for DNS multiaddr resolution")
+ (description
+ "Go library for /dns4, /dns6, /dnsaddr multiaddr resolution.")
+ (license license:expat)))
+
+(define-public go-github-com-multiformats-go-multiaddr-fmt
+ (package
+ (name "go-github-com-multiformats-go-multiaddr-fmt")
+ (version "0.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multiaddr-fmt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "119qqrnhzcb9im428alssv2dz9rrj74hy0asd10bnfv2d5fd09nm"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.21
+ #:import-path "github.com/multiformats/go-multiaddr-fmt"))
+ (propagated-inputs
+ (list go-github-com-multiformats-go-multiaddr-0.12))
+ (home-page "https://github.com/multiformats/go-multiaddr-fmt")
+ (synopsis "Declarative validator for multiaddrs")
+ (description
+ "This package provides a validation checker for multiaddrs. Some basic
+validators for common address types are provided, but creating your own
+combinations is easy.")
+ (license license:expat)))
(define-public go-github-com-multiformats-go-multiaddr-net
;; This commit is from <2018-10-01> and associated with GX package manager,
@@ -1305,15 +1474,8 @@ following:
;; TODO: Tests fail because they try to access the network.
#:tests? #f
#:import-path "github.com/multiformats/go-multiaddr-net"))
- (native-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-multiaddr
- go-github-com-multiformats-go-multihash
- go-github-com-spaolacci-murmur3
- go-golang-org-x-crypto))
+ (propagated-inputs
+ (list go-github-com-multiformats-go-multiaddr))
(home-page "https://github.com/multiformats/go-multiaddr-net")
(synopsis "Multiaddress net tools")
(description
@@ -1323,6 +1485,34 @@ symbols like @command{net.Dial} and @command{net.Listen}, as well as
conversion to and from @command{net.Addr}.")
(license license:expat))))
+(define-public go-github-com-multiformats-go-multistream
+ (package
+ (name "go-github-com-multiformats-go-multistream")
+ (version "0.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multistream")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1mlcz16ii090vq6brm02dmmkj8akkafa55kyvkrrwpq6zvj1hy23"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.20
+ #:import-path "github.com/multiformats/go-multistream"))
+ (propagated-inputs
+ (list go-github-com-multiformats-go-varint))
+ (home-page "https://github.com/multiformats/go-multistream")
+ (synopsis "Implementation of the multistream protocol in Golang")
+ (description
+ "Package multistream implements a simple stream router for the
+multistream-select protocol. The protocol is defined at
+@url{https://github.com/multiformats/multistream-select}")
+ (license license:expat)))
+
(define-public go-github-com-nwidger-jsoncolor
(package
(name "go-github-com-nwidger-jsoncolor")
@@ -1487,7 +1677,7 @@ the Go standard library}.")
(define-public go-github-com-quic-go-quic-go
(package
(name "go-github-com-quic-go-quic-go")
- (version "0.39.3")
+ (version "0.42.0")
(source
(origin
(method git-fetch)
@@ -1496,13 +1686,13 @@ the Go standard library}.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0acabl3cz48nxpggc5s7fwxpmr5amyi09jygn5m5xxkkbhqs2cxq"))))
+ (base32 "0bdr48nbcjajmhx1h11qfl1i7myxqpyqqk5n21007xyqw13qhb8c"))))
(build-system go-build-system)
(arguments
(list
;; XXX More packages required...
#:tests? #f
- #:go go-1.20
+ #:go go-1.21
#:import-path "github.com/quic-go/quic-go"))
(propagated-inputs
(list go-github-com-cheekybits-genny
@@ -1879,6 +2069,20 @@ Encryption, JSON Web Signature, and JSON Web Token standards.")
;;; Executables:
;;;
+(define-public go-madns
+ (package
+ (inherit go-github-com-multiformats-go-multiaddr-dns)
+ (name "go-madns")
+ (arguments
+ (substitute-keyword-arguments
+ (package-arguments go-github-com-multiformats-go-multiaddr-dns)
+ ((#:install-source? _ #t) #f)
+ ((#:import-path _ "github.com/multiformats/go-multiaddr-dns")
+ "github.com/multiformats/go-multiaddr-dns/madns")))
+ (description
+ "This package provides a CLI binary executible built from
+go-github-com-multiformats-go-multiaddr-dns.")))
+
(define-public go-minify
(package
(inherit go-github-com-tdewolff-minify-v2)
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index d357584469..4e40e148f2 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1,30 +1,39 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2017-2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
-;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
+;;; Copyright © 2019, 2021 Vagrant Cascadian <vagrant@debian.org>
+;;; 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 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020, 2021 raingloom <raingloom@riseup.net>
;;; Copyright © 2021 Collin J. Doering <collin@rekahsoft.ca>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2021 raingloom <raingloom@riseup.net>
;;; Copyright © 2021, 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2022 Dhruvin Gandhi <contact@dhruvin.dev>
;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev>
;;; Copyright © 2023 Benjamin <benjamin@uvy.fr>
+;;; Copyright © 2023 Fries <fries1234@protonmail.com>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2023 Nguyễn Gia Phong <mcsinyx@disroot.org>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; 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.
;;;
@@ -44,6 +53,7 @@
(define-module (gnu packages golang-xyz)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system go)
+ #:use-module (guix build-system copy)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
@@ -55,7 +65,8 @@
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto)
- #:use-module (gnu packages linux))
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages specifications))
;;; Commentary:
;;;
@@ -607,6 +618,61 @@ similar to Go's standard library @code{json} and @code{xml} package.")
"This package is a Go library that draws progress bars on the terminal.")
(license license:bsd-3)))
+(define-public go-github-com-chzyer-logex
+ (package
+ (name "go-github-com-chzyer-logex")
+ (version "1.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/chzyer/logex")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0c9yr3r7dl3lcs22cvmh9iknihi9568wzmdywmc2irkjdrn8bpxw"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ ;; See <https://github.com/chzyer/logex/issues/4> and
+ ;; <https://github.com/chzyer/logex/pull/7>.
+ #:tests? #f
+ #:import-path "github.com/chzyer/logex"))
+ (home-page "https://github.com/chzyer/logex")
+ (synopsis "Golang log library")
+ (description
+ "This package provides a Golang log library supporting tracing and log
+levels that works by wrapping the standard @code{log} library.")
+ (license license:expat)))
+
+(define-public go-github-com-chzyer-readline
+ (package
+ (name "go-github-com-chzyer-readline")
+ (version "1.5.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/chzyer/readline")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1msh9qcm7l1idpmfj4nradyprsr86yhk9ch42yxz7xsrybmrs0pb"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/chzyer/readline"))
+ (native-inputs
+ (list go-github-com-chzyer-test))
+ (propagated-inputs
+ (list go-github-com-chzyer-logex
+ go-golang-org-x-sys))
+ (home-page "https://github.com/chzyer/readline")
+ (synopsis "Pure Go readline library")
+ (description
+ "Readline is a pure Go implementation of a GNU-Readline like library.")
+ (license license:expat)))
+
(define-public go-github-com-coocood-freecache
(package
(name "go-github-com-coocood-freecache")
@@ -866,6 +932,34 @@ gist (https://gist.github.com/kballard/272720).")
(description "This package provides functionality to generate Go code.")
(license license:expat)))
+(define-public go-github-com-dbaggerman-cuba
+ (package
+ (name "go-github-com-dbaggerman-cuba")
+ (version "0.3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dbaggerman/cuba")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1sbria32fh2bzc8agnm9p5id5z15mrqj4fyxhnkq05bh2qjkrwc7"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/dbaggerman/cuba"))
+ (native-inputs
+ (list go-github-com-stretchr-testify))
+ (propagated-inputs
+ (list go-github-com-karrick-godirwalk))
+ (home-page "https://github.com/dbaggerman/cuba")
+ (synopsis "Goroutine parallelism library")
+ (description
+ "This package provides a library for Goroutines that helps to implement
+more complicated parallel cases.")
+ (license license:expat)))
+
(define-public go-github-com-dimchansky-utfbom
(package
(name "go-github-com-dimchansky-utfbom")
@@ -911,6 +1005,32 @@ Mark} detection.")
atimes for files.")
(license license:expat)))
+(define-public go-github-com-djherbis-times
+ (package
+ (name "go-github-com-djherbis-times")
+ (version "1.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/djherbis/times")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0a70nqkc592ipbgb3ib4yg8i2yj2hlhalpzzksdlhilm5a3689ic"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/djherbis/times"))
+ (propagated-inputs
+ (list go-golang-org-x-sys))
+ (home-page "https://github.com/djherbis/times")
+ (synopsis "File times - atime, mtime, ctime and btime for Golang")
+ (description
+ "Package @code{times} provides a platform-independent way to get atime,
+mtime,ctime and btime for files.")
+ (license license:expat)))
+
(define-public go-github-com-dustin-gojson
(package
(name "go-github-com-dustin-gojson")
@@ -972,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")
@@ -1059,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")
@@ -1131,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"))
@@ -1221,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")
@@ -1410,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")
@@ -1435,6 +1703,34 @@ storing only one copy of each unique string in memory. All functions may be
called concurrently with themselves and each other.")
(license license:expat)))
+(define-public go-github-com-ianlancetaylor-demangle
+ ;; No release, see <https://github.com/ianlancetaylor/demangle/issues/21>.
+ (package
+ (name "go-github-com-ianlancetaylor-demangle")
+ (version "0.0.0-20230524184225-eabc099b10ab")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ianlancetaylor/demangle")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pvlg1adp50hnw8dz7il473xb197ixirg26cy5hj3ngb4qlajwvc"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/ianlancetaylor/demangle"))
+ (home-page "https://github.com/ianlancetaylor/demangle")
+ (synopsis "Symbol name demangler written in Go")
+ (description
+ "This package defines functions that demangle GCC/LLVM C++ and Rust
+symbol names. This package recognizes names that were mangled according to
+the C++ ABI defined at https://codesourcery.com/cxx-abi/ and the
+@url{https://rust-lang.github.io/rfcs/2603-rust-symbol-name-mangling-v0.html,Rust
+ABI}.")
+ (license license:bsd-3)))
+
(define-public go-github-com-k0kubun-pp
(package
(name "go-github-com-k0kubun-pp")
@@ -1462,6 +1758,29 @@ called concurrently with themselves and each other.")
customized globally.")
(license license:expat)))
+(define-public go-github-com-karrick-godirwalk
+ (package
+ (name "go-github-com-karrick-godirwalk")
+ (version "1.17.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/karrick/godirwalk")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jyvai5vpmx86l71hg9j6lxc2b4v32ajvcmjlz40zimfb9ip11q9"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/karrick/godirwalk"))
+ (home-page "https://github.com/karrick/godirwalk")
+ (synopsis "Fast directory traversal library for Go")
+ (description
+ "This package provides functions to read and traverse directory trees.")
+ (license license:bsd-2)))
+
(define-public go-github-com-kballard-go-shellquote
;; No release, see <https://github.com/kballard/go-shellquote/issues/13>.
(let ((commit "95032a82bc518f77982ea72343cc1ade730072f0")
@@ -1489,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")
@@ -1650,6 +2033,107 @@ implementing features like:
(description "This package provides an idiomatic Go retry module.")
(license license:expat)))
+(define-public go-github-com-mattn-go-colorable
+ (package
+ (name "go-github-com-mattn-go-colorable")
+ (version "0.1.13")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mattn/go-colorable")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "05hl2ddp67p5kj3ix4zzqqjh4fan4ban3vgw8f98simwigs3q41j"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/mattn/go-colorable"))
+ (propagated-inputs
+ (list go-github-com-mattn-go-isatty))
+ (home-page "https://github.com/mattn/go-colorable")
+ (synopsis "Handle ANSI color escapes on Windows")
+ (description
+ "This package provides @code{colorable}, a module that makes it possible
+to handle ANSI color escapes on Windows.")
+ (license license:expat)))
+
+(define-public go-github-com-mattn-go-isatty
+ (package
+ (name "go-github-com-mattn-go-isatty")
+ (version "0.0.20")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mattn/go-isatty")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0g63n9wpb991qnq9mn2kvd8jk1glrp6gnd851kvwz2wmzdkggiga"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/mattn/go-isatty"))
+ (propagated-inputs
+ (list go-golang-org-x-sys))
+ (home-page "https://github.com/mattn/go-isatty")
+ (synopsis "Provide @code{isatty} for Golang")
+ (description
+ "This package provides @code{isatty}, a Go module that can tell you
+whether a file descriptor points to a terminal and the type of the terminal.")
+ (license license:expat)))
+
+(define-public go-github-com-mattn-go-pointer
+ (package
+ (name "go-github-com-mattn-go-pointer")
+ (version "0.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mattn/go-pointer")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1px9kj2xwwi7r00qxxpidr23xi823kw0pkd6f50lib8bp60x3n7p"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/mattn/go-pointer"))
+ (home-page "https://github.com/mattn/go-pointer")
+ (synopsis "Utility for cgo")
+ (description
+ "This package allows for a cgo argument to be passed a Go pointer.")
+ (license license:expat)))
+
+(define-public go-github-com-mattn-go-runewidth
+ (package
+ (name "go-github-com-mattn-go-runewidth")
+ (version "0.0.14")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mattn/go-runewidth")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1iaqw5pd7f4f2xz37540kp0828p2820g4vxx3hz089hwl331sx1v"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/mattn/go-runewidth"))
+ (propagated-inputs
+ (list go-github-com-rivo-uniseg))
+ (home-page "https://github.com/mattn/go-runewidth")
+ (synopsis "Rune width implementation for Go")
+ (description
+ "This package provides functions to get the fixed width of a character or
+string.")
+ (license license:expat)))
+
(define-public go-github-com-mattn-go-shellwords
(package
(name "go-github-com-mattn-go-shellwords")
@@ -1680,6 +2164,82 @@ implementing features like:
the @code{cpan} module @code{Parse::CommandLine}.")
(license license:expat)))
+(define-public go-github-com-mattn-go-sqlite3
+ (package
+ (name "go-github-com-mattn-go-sqlite3")
+ (version "1.14.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mattn/go-sqlite3")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "04anvqkc37mmc3z1dy4xfa6cas67zlxnnab0ywii7sylk864mhxz"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/mattn/go-sqlite3"))
+ (home-page "https://github.com/mattn/go-sqlite3")
+ (synopsis "Sqlite3 driver for Go")
+ (description
+ "This package provides a Sqlite3 driver for Go using
+@code{database/sql}.")
+ (license license:expat)))
+
+(define-public go-github-com-mattn-go-zglob
+ (package
+ (name "go-github-com-mattn-go-zglob")
+ (version "0.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mattn/go-zglob")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1923lvakm66mzy62jmngdvcmbmiqclinsvnghs3907rgygnx1qc1"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/mattn/go-zglob"))
+ (home-page "https://github.com/mattn/go-zglob")
+ (synopsis "Glob library that descends into other directories")
+ (description
+ "This package provides a glob library that implements descending into
+other directories. It is optimized for filewalking.")
+ (license license:expat)))
+
+(define-public go-github-com-mgutz-ansi
+ (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
+ (revision "0"))
+ (package
+ (name "go-github-com-mgutz-ansi")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url
+ "https://github.com/mgutz/ansi")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/mgutz/ansi"))
+ (propagated-inputs
+ (list go-github-com-mattn-go-isatty go-github-com-mattn-go-colorable))
+ (home-page "https://github.com/mgutz/ansi")
+ (synopsis "Small, fast library to create ANSI colored strings and codes")
+ (description
+ "This package provides @code{ansi}, a Go module that can generate ANSI
+colored strings.")
+ (license license:expat))))
+
(define-public go-github-com-miekg-dns
(package
(name "go-github-com-miekg-dns")
@@ -1710,6 +2270,53 @@ Domain Name Service}. The API follows the less-is-more principle, by
presenting a small interface.")
(license license:bsd-3)))
+(define-public go-github-com-modern-go-concurrent
+ (package
+ (name "go-github-com-modern-go-concurrent")
+ (version "1.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/modern-go/concurrent")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/modern-go/concurrent"))
+ (home-page "https://github.com/modern-go/concurrent")
+ (synopsis "Concurrency utilities for Go")
+ (description
+ "A Go library providing various concurrency utilities including a backport
+of @code{sync.Map} to Go versions below 1.9 and a cancellable Goroutine with
+explicit ownership.")
+ (license license:asl2.0)))
+
+(define-public go-github-com-modern-go-reflect2
+ (package
+ (name "go-github-com-modern-go-reflect2")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/modern-go/reflect2")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "05a89f9j4nj8v1bchfkv2sy8piz746ikj831ilbp54g8dqhl8vzr"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/modern-go/reflect2"))
+ (home-page "https://github.com/modern-go/reflect2")
+ (synopsis "Cheaper reflect API")
+ (description
+ "This library provides a reflect api for Go programs
+without the runtime cost of the standard library reflect.Value.")
+ (license license:asl2.0)))
+
(define-public go-github-com-mreiferson-go-options
(package
(name "go-github-com-mreiferson-go-options")
@@ -1761,6 +2368,127 @@ command line flags, config files, and default struct values.")
@url{https://github.com/judwhite/go-svc/raw/master/svc/svc_windows_test.go,here}.")
(license license:expat))))
+(define-public go-github-com-multiformats-go-base32
+ (package
+ (name "go-github-com-multiformats-go-base32")
+ (version "0.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-base32")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ala6gaa5r5mqcg6cdwfg492hpz41cjbfwyn1ljd6qvya3n0qqiv"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/multiformats/go-base32"))
+ (home-page "https://github.com/multiformats/go-base32")
+ (synopsis "Go @code{base32} encoding package with @code{NoPadding} option")
+ (description
+ "@code{base32} encoding package from Go with @code{NoPadding} option")
+ (license license:bsd-3)))
+
+(define-public go-github-com-multiformats-go-base36
+ (package
+ (name "go-github-com-multiformats-go-base36")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-base36")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1wfhsmxkvm97pglfwgiw3ad5g9vqc9nhd61i0kyvsb9lc006g8qq"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/multiformats/go-base36"))
+ (home-page "https://github.com/multiformats/go-base36")
+ (synopsis "Optimized @code{base36} codec for Go")
+ (description
+ "Optimized codec for @code{[]byte} <=> @code{base36} string conversion.")
+ (license (list license:asl2.0 license:expat))))
+
+(define-public go-github-com-multiformats-go-multibase
+ (package
+ (name "go-github-com-multiformats-go-multibase")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multibase")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11za5yqiq9bkxfg0lvjzgr5d0kawkf2szxj90by9vfnalihqgkrr"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.21
+ #:import-path "github.com/multiformats/go-multibase"
+ #: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-multibase")
+ "/share/multibase/")
+ (string-append "src/" import-path "/spec")))))))
+ (native-inputs
+ (list specification-multibase))
+ (propagated-inputs
+ (list go-github-com-mr-tron-base58
+ go-github-com-multiformats-go-base32
+ go-github-com-multiformats-go-base36))
+ (home-page "https://github.com/multiformats/go-multibase")
+ (synopsis "Implementation of multibase parser in Go")
+ (description
+ "Implementation of @url{https://github.com/multiformats/multibase,
+multibase} (self identifying base encodings) in Go.")
+ (license license:expat)))
+
+(define-public go-github-com-multiformats-go-multicodec
+ (package
+ (name "go-github-com-multiformats-go-multicodec")
+ (version "0.9.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multicodec")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vyc85aa9k644l9m3safiz7kk8mm84jclridsp0qnxfj2kcqgipd"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.19
+ #:import-path "github.com/multiformats/go-multicodec"
+ #: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-multicodec")
+ "/share/multicodec/")
+ (string-append "src/" import-path "/spec/multicodec/")))))))
+ (native-inputs
+ (list specification-multicodec))
+ (home-page "https://github.com/multiformats/go-multicodec")
+ (synopsis "Golang constants for the multicodec table")
+ (description
+ "Package multicodec exposes the multicodec table as Go constants.")
+ (license (list license:asl2.0 license:expat))))
+
(define-public go-github-com-multiformats-go-varint
(package
(name "go-github-com-multiformats-go-varint")
@@ -1940,6 +2668,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")
@@ -1965,6 +2717,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")
@@ -2213,17 +2992,16 @@ Use waterutil with it to work with TUN/TAP packets/frames.")
(define-public go-github-com-songmu-gitconfig
(package
(name "go-github-com-songmu-gitconfig")
- (version "0.1.0")
- (home-page "https://github.com/songmu/gitconfig")
+ (version "0.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url home-page)
+ (url "https://github.com/songmu/gitconfig")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1y01h496a7pfj1g2bclls5b0nl3vnj7nz610jj1dzq9kxrwxk7fk"))))
+ (base32 "0p7b5n4h4vsjpb7ipfn4n1p8i978d8mlx8pi0m5dla57mj8v56hj"))))
(build-system go-build-system)
(arguments
(list
@@ -2234,11 +3012,38 @@ Use waterutil with it to work with TUN/TAP packets/frames.")
#:import-path "github.com/Songmu/gitconfig"))
(propagated-inputs
(list go-github-com-goccy-yaml))
+ (home-page "https://github.com/songmu/gitconfig")
(synopsis "Go library to get configuration values from gitconfig")
(description
"@{gitconfig} is a package to get configuration values from gitconfig.")
(license license:expat)))
+(define-public go-github-com-spf13-cobra
+ (package
+ (name "go-github-com-spf13-cobra")
+ (version "1.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/spf13/cobra")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0mhnqfgcwwcknlhk7n07i02q3iqq6ihksj4dwz296zci8ry3w0d0"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/spf13/cobra"))
+ (propagated-inputs
+ (list go-github-com-spf13-pflag))
+ (home-page "https://github.com/spf13/cobra")
+ (synopsis "Go library for creating CLI applications")
+ (description
+ "Cobra is both a library for creating powerful modern CLI applications as
+well as a program to generate applications and command files.")
+ (license license:asl2.0)))
+
(define-public go-github-com-stathat-go
(let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
(revision "0"))
@@ -2335,6 +3140,38 @@ Use waterutil with it to work with TUN/TAP packets/frames.")
query information regarding the number of CPUs available to the system.")
(license license:asl2.0)))
+(define-public go-github-com-tkuchiki-go-timezone
+ (package
+ (name "go-github-com-tkuchiki-go-timezone")
+ (version "0.2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tkuchiki/go-timezone")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rmvg4hh0br51vbsxacani2g0v5xxsayp8q4xli9jag25zi5rhd1"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/tkuchiki/go-timezone"))
+ (home-page "https://github.com/tkuchiki/go-timezone")
+ (synopsis "Timezone utility for Golang")
+ (description
+ "This package provides provides an utility for timezone manipulation,
+implementing the following features:
+
+@itemize
+@item this library uses only the standard package
+@item supports getting offset from timezone abbreviation, which is not
+supported by the time package
+@item determine whether the specified time.Time is daylight saving time
+@item change the location of time.Time by specifying the timezone
+@end itemize")
+ (license license:expat)))
+
(define-public go-github-com-vividcortex-ewma
(package
(name "go-github-com-vividcortex-ewma")
@@ -2411,6 +3248,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")
@@ -2436,6 +3307,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")
@@ -2451,18 +3408,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
@@ -2530,6 +3500,43 @@ Go.")
(package-arguments go-github-com-op-go-logging)
((#:import-path _) "gopkg.in/op/go-logging.v1")))))
+(define-public go-gopkg-in-yaml-v2
+ (package
+ (name "go-gopkg-in-yaml-v2")
+ (version "2.4.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gopkg.in/yaml.v2")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pbmrpj7gcws34g8vwna4i2nhm9p6235piww36436xhyaa10cldr"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(begin
+ ;; https://github.com/go-yaml/yaml/issues/441 and
+ ;; https://github.com/go-yaml/yaml/pull/442
+ ;; Don't assume 64-bit wide integers
+ (substitute* "decode_test.go"
+ (("bin: (-0b1000000000000000000000000000000000000000000000000000000000000000)" all number)
+ (string-append "int64_min_base2: " number))
+ (("map\\[string\\]interface\\{\\}\\{\"bin\": -9223372036854775808\\}")
+ "map[string]int64{\"int64_min_base2\": math.MinInt64}"))))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "gopkg.in/yaml.v2"))
+ (native-inputs
+ (list go-gopkg-in-check-v1))
+ (home-page "https://gopkg.in/yaml.v2")
+ (synopsis "YAML reader and writer for the Go language")
+ (description
+ "This package provides a Go library for encode and decode YAML
+values.")
+ (license license:asl2.0)))
+
;;;
;;; Executables:
;;;
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 0f36c6b696..4de36a3199 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3674,31 +3674,6 @@ containers.")
(description "Safe and easy casting from one type to another in Go")
(license license:expat)))
-(define-public go-github-com-spf13-cobra
- (package
- (name "go-github-com-spf13-cobra")
- (version "1.8.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/spf13/cobra")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0mhnqfgcwwcknlhk7n07i02q3iqq6ihksj4dwz296zci8ry3w0d0"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/spf13/cobra"))
- (propagated-inputs
- (list go-github-com-spf13-pflag))
- (home-page "https://github.com/spf13/cobra")
- (synopsis "Go library for creating CLI applications")
- (description "Cobra is both a library for creating powerful modern CLI
-applications as well as a program to generate applications and command files.")
- (license license:asl2.0)))
-
(define-public go-github-com-spf13-jwalterweatherman
(package
(name "go-github-com-spf13-jwalterweatherman")
@@ -4265,43 +4240,6 @@ which satisfies the cron expression.")
(description "Go library for ini files")
(license license:asl2.0)))
-(define-public go-gopkg-in-yaml-v2
- (package
- (name "go-gopkg-in-yaml-v2")
- (version "2.4.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gopkg.in/yaml.v2.git")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1pbmrpj7gcws34g8vwna4i2nhm9p6235piww36436xhyaa10cldr"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; https://github.com/go-yaml/yaml/issues/441 and
- ;; https://github.com/go-yaml/yaml/pull/442
- ;; Don't assume 64-bit wide integers
- (substitute* "decode_test.go"
- (("bin: (-0b1000000000000000000000000000000000000000000000000000000000000000)" all number)
- (string-append "int64_min_base2: " number))
- (("map\\[string\\]interface\\{\\}\\{\"bin\": -9223372036854775808\\}")
- "map[string]int64{\"int64_min_base2\": math.MinInt64}"))))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "gopkg.in/yaml.v2"))
- (native-inputs
- (list go-gopkg-in-check-v1))
- (home-page "https://gopkg.in/yaml.v2")
- (synopsis "YAML reader and writer for the Go language")
- (description
- "This package provides a Go library for encode and decode YAML
-values.")
- (license license:asl2.0)))
-
(define-public go-gopkg-in-yaml-v3
(package
(name "go-gopkg-in-yaml-v3")
@@ -4351,110 +4289,6 @@ The yaml package supports most of YAML 1.2, but preserves some behavior from
(description "This package provides a Golang Matrix client.")
(license license:asl2.0)))
-(define-public go-github-com-mattn-go-isatty
- (package
- (name "go-github-com-mattn-go-isatty")
- (version "0.0.20")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mattn/go-isatty")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0g63n9wpb991qnq9mn2kvd8jk1glrp6gnd851kvwz2wmzdkggiga"))))
- (build-system go-build-system)
- (propagated-inputs
- (list go-golang-org-x-sys))
- (arguments
- '(#:import-path "github.com/mattn/go-isatty"))
- (home-page "https://github.com/mattn/go-isatty")
- (synopsis "Provide @code{isatty} for Golang")
- (description "This package provides @code{isatty}, a Go module that can
-tell you whether a file descriptor points to a terminal and the type of the
-terminal.")
- (license license:expat)))
-
-(define-public go-github-com-mattn-go-colorable
- (package
- (name "go-github-com-mattn-go-colorable")
- (version "0.1.13")
- (home-page "https://github.com/mattn/go-colorable")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "05hl2ddp67p5kj3ix4zzqqjh4fan4ban3vgw8f98simwigs3q41j"))))
- (build-system go-build-system)
- (propagated-inputs
- (list go-github-com-mattn-go-isatty))
- (arguments
- '(#:import-path "github.com/mattn/go-colorable"))
- (synopsis "Handle ANSI color escapes on Windows")
- (description "This package provides @code{colorable}, a module that
-makes it possible to handle ANSI color escapes on Windows.")
- (license license:expat)))
-
-(define-public go-github-com-mattn-go-pointer
- (let ((commit "a0a44394634f41e4992b173b24f14fecd3318a67")
- (revision "1"))
- (package
- (name "go-github-com-mattn-go-pointer")
- (version (git-version "0.0.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mattn/go-pointer")
- (commit commit)))
- (sha256
- (base32
- "09w7hcyc0zz2g23vld6jbcmq4ar27xakp1ldjvh549i5izf2anhz"))
- (file-name (git-file-name name version))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/mattn/go-pointer"))
- (home-page "https://github.com/mattn/go-pointer")
- (synopsis "Utility for cgo")
- (description
- "This package allows for a cgo argument to be passed a Go pointer.")
- (license license:expat))))
-
-(define-public go-github-com-mgutz-ansi
- (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
- (revision "0"))
- (package
- (name "go-github-com-mgutz-ansi")
- (version (git-version "0.0.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url
- "https://github.com/mgutz/ansi")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
- (build-system go-build-system)
- (native-inputs
- (list go-github-com-mattn-go-isatty go-github-com-mattn-go-colorable))
- (arguments
- '(#:import-path "github.com/mgutz/ansi"))
- (home-page "https://github.com/mgutz/ansi")
- (synopsis "Small, fast library to create ANSI colored strings and codes")
- (description "This package provides @code{ansi}, a Go module that can
-generate ANSI colored strings.")
- (license license:expat))))
-
(define-public go-github-com-aarzilli-golua
(let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
(revision "0"))
@@ -5016,20 +4850,14 @@ required by Go's standard Hash interface.")
(build-system go-build-system)
(arguments
'(#:import-path "github.com/libp2p/go-libp2p-metrics"))
- (native-inputs
+ (propagated-inputs
(list go-github-com-libp2p-go-flow-metrics
go-github-com-libp2p-go-libp2p-peer
go-github-com-libp2p-go-libp2p-protocol
go-github-com-libp2p-go-libp2p-crypto
- go-github-com-mr-tron-base58
go-github-com-multiformats-go-multihash
go-github-com-btcsuite-btcd-btcec
- go-github-com-gogo-protobuf
- 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))
+ go-github-com-gogo-protobuf))
(home-page "https://github.com/libp2p/go-libp2p-metrics")
(synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
(description "A connection wrapper for @command{go-libp2p} that provides bandwidth
@@ -5786,21 +5614,6 @@ systems.")
(modify-inputs (package-inputs go-github-com-gdamore-tcell)
(prepend go-golang-org-x-term go-golang-org-x-sys)))))
-(define-public go-github-com-gdamore-tcell-v2-2.3
- (package
- (inherit go-github-com-gdamore-tcell-v2)
- (name "go-github-com-gdamore-tcell")
- (version "2.3.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/gdamore/tcell")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0ypbl5080q9sd3irad8mv7zlg4242i8pmg5xyhbyq95kymwibaid"))))))
-
(define-public go-git-sr-ht-rockorager-tcell-term
(package
(name "go-git-sr-ht-rockorager-tcell-term")
@@ -6299,31 +6112,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")
@@ -6677,50 +6465,6 @@ improved and cleaner API.")
Proxy functionality.")
(license license:expat)))
-(define-public go-github-com-mattn-go-zglob
- (package
- (name "go-github-com-mattn-go-zglob")
- (version "0.0.3")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mattn/go-zglob")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1923lvakm66mzy62jmngdvcmbmiqclinsvnghs3907rgygnx1qc1"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/mattn/go-zglob"))
- (home-page "https://github.com/mattn/go-zglob")
- (synopsis "Glob library that descends into other directories")
- (description "A glob library that implements descending into other
-directories. It is optimized for filewalking.")
- (license license:expat)))
-
-(define-public go-github-com-mattn-go-sqlite3
- (package
- (name "go-github-com-mattn-go-sqlite3")
- (version "1.14.6")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mattn/go-sqlite3")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "04anvqkc37mmc3z1dy4xfa6cas67zlxnnab0ywii7sylk864mhxz"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/mattn/go-sqlite3"))
- (home-page "https://github.com/mattn/go-sqlite3")
- (synopsis "Sqlite3 driver for Go")
- (description "This package provides a Sqlite3 driver for Go using
-@code{database/sql}.")
- (license license:expat)))
-
(define-public go-github-com-bits-and-blooms-bitset
(package
(name "go-github-com-bits-and-blooms-bitset")
@@ -6909,32 +6653,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"))
@@ -8708,89 +8426,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")
@@ -9186,31 +8821,6 @@ parser.")
@url{https://unicode.org/reports/tr29/, Unicode Standard Annex #29}.")
(license license:expat)))
-(define-public go-github-com-mattn-go-runewidth
- (package
- (name "go-github-com-mattn-go-runewidth")
- (version "0.0.14")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mattn/go-runewidth")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1iaqw5pd7f4f2xz37540kp0828p2820g4vxx3hz089hwl331sx1v"))))
- (build-system go-build-system)
- (arguments '(#:import-path "github.com/mattn/go-runewidth"))
- (propagated-inputs
- (list go-github-com-rivo-uniseg))
- (home-page "https://github.com/mattn/go-runewidth")
- (synopsis "Rune width implementation for Go")
- (description
- "This package provides functions to get the fixed width of a character or
-string.")
- (license license:expat)))
-
-
(define-public go-github-com-charmbracelet-bubbletea
(package
(name "go-github-com-charmbracelet-bubbletea")
diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm
index 75197ad23c..09a419d7e9 100644
--- a/gnu/packages/gps.scm
+++ b/gnu/packages/gps.scm
@@ -27,6 +27,7 @@
(define-module (gnu packages gps)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system scons)
@@ -141,7 +142,7 @@ between two other data points.")
(define-public gama
(package
(name "gama")
- (version "2.29")
+ (version "2.30")
(source
(origin
(method url-fetch)
@@ -149,14 +150,19 @@ between two other data points.")
version ".tar.gz"))
(sha256
(base32
- "04dlh1pdaiq059ssrxa4yn24iqgjrzy2mq7s9n1pgrzlzz3a63y0"))
+ "0yph6q7a0dy2r2vsrkjg26q8v988pcvnaay5lk6q7k06plpr2x1m"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "lib/expat")
(for-each delete-file (find-files "doc/fig" "\\.pdf$"))))))
(build-system gnu-build-system)
- (arguments '(#:parallel-tests? #f)) ; race condition
+ (arguments
+ (list
+ #:configure-flags #~(list
+ ;; force not to use of bundled copy of expat
+ "--enable-expat_1_1=no")
+ #:parallel-tests? #f)) ; race condition
(native-inputs
(list libxml2 yaml-cpp))
(inputs
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index ad08141c96..ca2d74224f 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -28,7 +28,7 @@
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
@@ -74,12 +74,14 @@
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages game-development)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#: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)
@@ -141,7 +143,8 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix deprecation)
- #:use-module (guix utils))
+ #:use-module (guix utils)
+ #:use-module (ice-9 match))
(define-public mmm
(package
@@ -461,7 +464,7 @@ applications.")
(define-public openvdb
(package
(name "openvdb")
- (version "8.2.0")
+ (version "11.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -471,14 +474,14 @@ applications.")
(file-name (git-file-name name version))
(sha256
(base32
- "0856697hnwk8xsp29kx8y2p1kliy0bdwfsznxm38v4690vna15rk"))))
+ "0r6q7bl8513ggrvx3n73j1s3f7n5x1rxy5xi471qyrya95gy6c60"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib"))))
(inputs
- (list boost c-blosc ilmbase tbb zlib))
+ (list boost c-blosc jemalloc tbb zlib))
(native-inputs
(list pkg-config))
(home-page "https://www.openvdb.org/")
@@ -493,14 +496,14 @@ typically encountered in feature film production.")
(define-public blender
(package
(name "blender")
- (version "3.3.5") ;3.3.x is the current LTS version
+ (version "3.6.10") ;3.6.x is the current LTS version
(source (origin
(method url-fetch)
(uri (string-append "https://download.blender.org/source/"
"blender-" version ".tar.xz"))
(sha256
(base32
- "1pwl4lbc00g0bj97rd8l9fnrv3w1gny9ci6mrma3pp2acgs56502"))))
+ "1srwr365y40hhpjmfsg52rphdybvin0ay2r23pknm7b9pkpw0wqs"))))
(build-system cmake-build-system)
(arguments
(list
@@ -521,6 +524,11 @@ typically encountered in feature film production.")
"-DWITH_OPENVDB=ON"
"-DWITH_OPENSUBDIV=ON"
"-DWITH_PYTHON_INSTALL=OFF"
+ "-DWITH_SYSTEM_BULLET=ON"
+ "-DWITH_SYSTEM_EIGEN3=ON"
+ "-DWITH_SYSTEM_FREETYPE=ON"
+ "-DWITH_SYSTEM_GLOG=ON"
+ "-DWITH_SYSTEM_LZO=ON"
(string-append "-DPYTHON_LIBRARY=python" #$python-version)
(string-append "-DPYTHON_LIBPATH="
(assoc-ref %build-inputs "python")
@@ -536,32 +544,31 @@ typically encountered in feature film production.")
(string-append "-DPYTHON_NUMPY_PATH="
(assoc-ref %build-inputs "python-numpy")
"/lib/python" #$python-version
- "/site-packages/")
- ;; OpenEXR propagates ilmbase, but its include files do not
- ;; appear in the C_INCLUDE_PATH, so we need to add
- ;; "$ilmbase/include/OpenEXR/" to the C_INCLUDE_PATH to
- ;; satisfy the dependency on "half.h" and "Iex.h".
- (string-append "-DCMAKE_CXX_FLAGS=-I"
- (search-input-directory %build-inputs
- "include/OpenEXR"))))
+ "/site-packages/")))
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'fix-broken-import
- (lambda _
- (substitute* "release/scripts/addons/io_scene_fbx/json2fbx.py"
- (("import encode_bin")
- "from . import encode_bin")))))))
+ (add-after 'install 'wrap-bin
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (python-path (getenv "GUIX_PYTHONPATH")))
+ (wrap-program (string-append out "/bin/blender")
+ `("GUIX_PYTHONPATH" ":" prefix (,python-path)))))))))
(inputs
- (list boost
+ (list bash-minimal
+ boost
+ bullet
+ eigen
embree
ffmpeg-5
fftw
- freetype
+ freetype-with-brotli
glew
+ glog
gmp ;needed for boolean operations on meshes
- ilmbase
+ imath
jack-1
jemalloc
+ libepoxy
libjpeg-turbo
libpng
libsndfile
@@ -569,9 +576,10 @@ typically encountered in feature film production.")
libx11
libxi
libxrender
+ lzo
openal
opencolorio
- openexr-2
+ openexr
openimageio
openjpeg
opensubdiv
@@ -582,7 +590,7 @@ typically encountered in feature film production.")
tbb
zlib
`(,zstd "lib")))
- (home-page "https://blender.org/")
+ (home-page "https://www.blender.org/")
(synopsis "3D graphics creation suite")
(description
"Blender is a 3D graphics creation suite. It supports the entirety of
@@ -707,7 +715,7 @@ baking tools to produce normal maps.")
(define-public openshadinglanguage
(package
(name "openshadinglanguage")
- (version "1.11.16.0")
+ (version "1.13.8.0")
(source
(origin
(method git-fetch)
@@ -716,52 +724,46 @@ baking tools to produce normal maps.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0x0lc163vl2b57l75bf5zxlr6vm2y1f1izlxdnrw3vsapv3r9k9g"))))
+ (base32 "1ji4bw8z4ylsh0jvir3d40p6xyhr63g588gh3bag7bzsr3flsb02"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags (list "-DUSE_PARTIO=OFF") ; TODO: not packaged
- #:phases
- (modify-phases %standard-phases
- (add-after 'set-paths 'add-ilmbase-include-path
- (lambda* (#:key inputs #:allow-other-keys)
- ;; OpenEXR 2 propagates ilmbase, but its include files do not
- ;; appear in the C_INCLUDE_PATH.
- (let ((headers (string-append
- (assoc-ref inputs "ilmbase")
- "/include/OpenEXR")))
- (setenv "C_INCLUDE_PATH"
- (string-append headers ":"
- (or (getenv "C_INCLUDE_PATH") "")))
- (setenv "CPLUS_INCLUDE_PATH"
- (string-append headers ":"
- (or (getenv "CPLUS_INCLUDE_PATH") ""))))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "ctest" "--exclude-regex"
- (string-join
- (list
- "osl-imageio" ; OIIO not compiled with freetype
- "osl-imageio.opt" ; OIIO not compiled with freetype
- "texture-udim" ; file does not exist
- "texture-udim.opt" ; file does not exist
- "example-deformer" ; could not find OSLConfig
- "python-oslquery") ; no module oslquery
- "|"))))))))
+ (list #:configure-flags
+ #~(list "-DUSE_PARTIO=OFF" ; TODO: not packaged
+ (string-append "-DLLVM_BC_GENERATOR="
+ #$(this-package-native-input "clang")
+ "/bin/clang++"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke
+ "ctest" "--exclude-regex"
+ (string-join
+ (list
+ "osl-imageio" ; file does not exist
+ "osl-imageio.opt" ; file does not exist
+ "osl-imageio.opt.rs_bitcode" ; file does not exist
+ "texture-udim" ; file does not exist
+ "texture-udim.opt" ; file does not exist
+ "texture-udim.opt.rs_bitcode" ; file does not exist
+ "example-deformer" ; could not find OSLConfig
+ "python-oslquery") ; no module oslquery
+ "|"))))))))
(native-inputs
(list bison
- clang-9
+ clang
flex
- llvm-9
+ llvm
pybind11
python-wrapper))
(inputs
(list boost
imath
- openexr-2
+ openexr
openimageio
pugixml
- qtbase-5
+ qtbase
zlib))
(home-page "https://github.com/AcademySoftwareFoundation/OpenShadingLanguage")
(synopsis "Shading language for production GI renderers")
@@ -1200,7 +1202,7 @@ graphics.")
(define-public openexr
(package
(name "openexr")
- (version "3.1.3")
+ (version "3.2.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1210,16 +1212,23 @@ graphics.")
(file-name (git-file-name name version))
(sha256
(base32
- "0c9vla0kbsbbhkk42jlbf94nzfb1anqh7dy9b0b3nna1qr6v4bh6"))))
+ "00s1a05kggk71vfbnsvykyjc2j7y6yyzgl63sy4yiddshz2k2mcr"))))
(build-system cmake-build-system)
(arguments
- (list #:phases
+ (list #:configure-flags
+ #~(list #$@(match (%current-system)
+ ;; A test explicitly checks for SSE2 (would fail on
+ ;; i686-linux), so make sure it is enabled for both C
+ ;; and CPP.
+ ((or "x86_64-linux" "i686-linux")
+ '("-DCMAKE_CXX_FLAGS=-mfpmath=sse -msse2"
+ "-DCMAKE_C_FLAGS=-mfpmath=sse -msse2"))
+ (_ '())))
+ #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-test-directory
(lambda _
(substitute* (list
- "src/test/OpenEXRUtilTest/tmpDir.h"
- "src/test/OpenEXRFuzzTest/tmpDir.h"
"src/test/OpenEXRTest/tmpDir.h"
"src/test/OpenEXRCoreTest/main.cpp")
(("/var/tmp")
@@ -1247,7 +1256,10 @@ graphics.")
"")
(("TEST \\(testOptimizedInterleavePatterns, \"basic\"\\);")
"")))))))))
- (inputs (list imath zlib))
+ (inputs (list imath))
+ (propagated-inputs
+ ;; Marked as Requires.private in OpenEXR.pc.
+ (list libdeflate))
(home-page "https://www.openexr.com/")
(synopsis "High-dynamic-range file format library")
(description
@@ -1313,40 +1325,38 @@ with strong support for multi-part, multi-channel use cases.")
(define-public openimageio
(package
(name "openimageio")
- (version "2.2.21.0")
+ (version "2.5.10.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/OpenImageIO/oiio")
- (commit (string-append "Release-" version))))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0aicxbshzv1g9d8d08vsj1a9klaycxaifvvp565qjv70wyma2vkr"))))
+ "06x3lqj9qjh5m0zbr5g2g9ii6jk340pgzrhr4fb353y1y2pkx5sw"))))
(build-system cmake-build-system)
- ;; FIXME: To run all tests successfully, test image sets from multiple
- ;; third party sources have to be present. For details see
- ;; <https://github.com/OpenImageIO/oiio/blob/master/INSTALL.md>
(arguments
- `(#:tests? #f
- #:configure-flags (list "-DUSE_EXTERNAL_PUGIXML=1")))
+ (list #:tests? #f ; half the tests require online data or use redirection
+ #:configure-flags #~(list "-DUSE_EXTERNAL_PUGIXML=1"
+ "-DOIIO_BUILD_TESTS=false")))
(native-inputs
(list pkg-config))
(inputs
- `(("boost" ,boost)
- ("fmt" ,fmt-8)
- ("libheif" ,libheif)
- ("libpng" ,libpng)
- ("libjpeg" ,libjpeg-turbo)
- ("libtiff" ,libtiff)
- ("giflib" ,giflib)
- ("openexr" ,openexr-2)
- ("ilmbase" ,ilmbase)
- ("pugixml" ,pugixml)
- ("python" ,python-wrapper)
- ("pybind11" ,pybind11)
- ("robin-map" ,robin-map)
- ("zlib" ,zlib)))
+ (list boost
+ fmt
+ giflib
+ imath
+ libheif
+ libjpeg-turbo
+ libpng
+ libtiff
+ openexr
+ pugixml
+ pybind11
+ python-wrapper
+ robin-map
+ zlib))
(synopsis "C++ library for reading and writing images")
(description
"OpenImageIO is a library for reading and writing images, and a bunch of
@@ -1883,7 +1893,7 @@ requirements.")
(define-public opensubdiv
(package
(name "opensubdiv")
- (version "3.4.0")
+ (version "3.6.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1893,20 +1903,19 @@ requirements.")
(file-name (git-file-name name version))
(sha256
(base32
- "0cippg6aqc5dlya1cmh3908pwssrg52fwgyylnvz5343yrxmgk12"))))
+ "0h9scxiigijzlpv4r0s0nhxlndhv1cmarb2bqgmlwcln1jjvlb4n"))))
(build-system cmake-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-before 'configure 'set-glew-location
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "GLEW_LOCATION" (assoc-ref inputs "glew"))
- #t))
- (add-before 'check 'start-xorg-server
- (lambda* (#:key inputs #:allow-other-keys)
- ;; The test suite requires a running X server.
- (system "Xvfb :1 &")
- (setenv "DISPLAY" ":1")
- #t)))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'set-glew-location
+ (lambda _
+ (setenv "GLEW_LOCATION" #$(this-package-input "glew"))))
+ (add-before 'check 'start-xorg-server
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The test suite requires a running X server.
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1"))))))
(native-inputs
(list xorg-server-for-tests))
(inputs
@@ -1963,44 +1972,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")
@@ -2013,7 +2044,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/gtk.scm b/gnu/packages/gtk.scm
index 8cc9fb05cd..d5ebd3df34 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -36,6 +36,7 @@
;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2024 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -121,7 +122,11 @@
#:use-module (gnu packages pulseaudio)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
- #:use-module (ice-9 match))
+ #:use-module (ice-9 match)
+ ;; Export cairo to break a dependency cycle, as gtk-doc is needed to build
+ ;; the documentation. Use cairo for other packages and
+ ;; cairo-with-documentation as the public package.
+ #:export (cairo))
(define-public appmenu-gtk-module
(package
@@ -160,10 +165,10 @@ such as mate-panel and xfce4-panel.")
(home-page "https://gitlab.com/vala-panel-project/vala-panel-appmenu")
(license (list license:lgpl3))))
-(define-public cairo
+(define cairo
(package
(name "cairo")
- (version "1.16.0")
+ (version "1.18.0")
(source
(origin
(method url-fetch)
@@ -171,30 +176,13 @@ such as mate-panel and xfce4-panel.")
(string-append "https://cairographics.org/releases/cairo-"
version ".tar.xz"))
(sha256
- (base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))
- (patches (search-patches
- "cairo-CVE-2018-19876.patch"
- "cairo-CVE-2020-35492.patch"))))
- (build-system glib-or-gtk-build-system)
- (outputs '("out" "doc"))
+ (base32 "0r0by563s75xyzz0d0j1nmjqmdrk2x9agk7r57p3v8vqp4v0ffi4"))))
+ (build-system meson-build-system)
(arguments
`(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
+ #:glib-or-gtk? #t
#:configure-flags
- (list
- "--disable-static"
- ;; XXX: To be enabled.
- ;; "--enable-gallium=yes"
- ;; "--enable-gl=yes"
- ;; " --enable-glesv2=yes"
- ;; "--enable-glesv3=yes"
- ;; "--enable-cogl=yes"
- ;; "--enable-directfb=yes"
- ;; "--enable-vg=yes"
- "--enable-tee=yes" ;needed for GNU IceCat
- "--enable-xml=yes" ;for cairo-xml support
- (string-append "--with-html-dir="
- (assoc-ref %outputs "doc")
- "/share/gtk-doc/html"))))
+ (list "-Dtests=disabled")))
(native-inputs
`(,@(if (target-hurd?)
'()
@@ -212,15 +200,10 @@ such as mate-panel and xfce4-panel.")
'()
`(("poppler" ,poppler)))))
(propagated-inputs
- `( ;; ("cogl" ,cogl)
- ;; ("directfb" ,directfb)
- ("fontconfig" ,fontconfig)
+ `(("fontconfig" ,fontconfig)
("freetype" ,freetype)
("glib" ,glib)
- ;; ("gtk+" ,gtk+)
("libpng" ,libpng)
- ;; ("librsvg" ,librsvg)
- ;; ("opengl" ,mesa)
("pixman" ,pixman)
("x11" ,libx11)
("xcb" ,libxcb)
@@ -236,24 +219,50 @@ output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
;; This project is dual-licensed.
(list
license:lgpl2.1+
- license:mpl1.1))))
+ license:mpl1.1))
+ ;; Hide and have cairo-with-documentation public.
+ (properties '((hidden? . #t)))))
+
+(define-public cairo-with-documentation
+ ;; cairo's docs must be built in a separate package since it requires
+ ;; gtk-doc, which in turn depends on cairo.
+ (package/inherit cairo
+ (properties (alist-delete 'hidden? (package-properties cairo)))
+ (outputs (cons "doc" (package-outputs cairo)))
+ (native-inputs
+ (modify-inputs (package-native-inputs cairo)
+ (prepend gtk-doc)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments cairo)
+ ((#:configure-flags flags ''())
+ #~(cons "-Dgtk_doc=true" #$flags))
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (mkdir-p (string-append #$output:doc "/share"))
+ (rename-file
+ (string-append #$output "/share/gtk-doc")
+ (string-append #$output:doc "/share/gtk-doc"))
+ ;; This directory is now empty so remove it.
+ (rmdir (string-append #$output "/share"))))))))))
(define-public cairo-sans-poppler
;; Variant used to break the dependency cycle between Poppler and Cairo.
(package/inherit cairo
- (inputs (alist-delete "poppler" (package-inputs cairo)))
- (properties `((hidden? . #t)))))
+ (inputs (alist-delete "poppler" (package-inputs cairo)))))
(define-public cairo-xcb
(package/inherit cairo
+ (properties (alist-delete 'hidden? (package-properties cairo)))
(name "cairo-xcb")
(inputs
`(("mesa" ,mesa)
,@(package-inputs cairo)))
(arguments
- `(#:tests? #f
- #:configure-flags
- '("--enable-xlib-xcb" "--enable-gl" "--enable-egl")))
+ (substitute-keyword-arguments (package-arguments cairo)
+ ((#:configure-flags flags ''())
+ #~(cons "-Dxlib-xcb=enabled" #$flags))))
(synopsis "2D graphics library (with X11 support)")))
(define-public harfbuzz
@@ -1969,7 +1978,7 @@ printing and other features typical of a source code editor.")
(define-public python-pycairo
(package
(name "python-pycairo")
- (version "1.21.0")
+ (version "1.26.0")
(source
(origin
(method url-fetch)
@@ -1977,7 +1986,7 @@ printing and other features typical of a source code editor.")
version "/pycairo-" version ".tar.gz"))
(sha256
(base32
- "0jxpyibpjadw8ah1mqbhvryr795myiznb1ikm8wgjbamibqhf695"))))
+ "1sybz43sj4ynjahlkidrcdpdrq8yi1avkndc2hgb5pgvfjld1p9d"))))
(build-system python-build-system)
(native-inputs
(list pkg-config python-pytest))
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 5f8717eba1..901c669582 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2026,8 +2026,8 @@ for MySQL.")
(license license:gpl2+)))
(define-public guile-lmdb
- (let ((commit "ea9aa1d4b13e03f9fd23ec73d8884f4fae79666b")
- (revision "1"))
+ (let ((commit "56a986f5db5b70b6bec3ba3e6c161267dd8fda29")
+ (revision "2"))
(package
(name "guile-lmdb")
(version (git-version "0.0.1" revision commit))
@@ -2039,7 +2039,7 @@ for MySQL.")
(file-name (git-file-name name version))
(sha256
(base32
- "1li92ldyjvbqkhqnkndgw0jk1avkzq9jkbmk8dqiby4na72sxi8k"))))
+ "1pzqgdm0dlz3v7nac1akpxrmxgbi2ycyxs7fnn3kba65424vigm7"))))
(build-system guile-build-system)
(arguments
(list
@@ -2064,6 +2064,8 @@ Several conveniences are added on top:
@code{call-with-wrapped-cursor} helpers and respective @code{with-} macros.
@item @code{for-cursor} procedure for cursor iteration.
@item @code{val} and @code{stat} types.
+@item @code{set-compare!} and @code{set-dupsort!} to configure entry
+sorting.
@item Error signaling instead of integer return values.
@end itemize")
(license license:gpl3+))))
@@ -3489,7 +3491,7 @@ from @code{tree-il}.")
(define-public guile-hoot
(package
(name "guile-hoot")
- (version "0.3.0")
+ (version "0.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://spritely.institute/files/releases"
@@ -3497,7 +3499,7 @@ from @code{tree-il}.")
version ".tar.gz"))
(sha256
(base32
- "1zgcp7xnx84gwdpxj0wga7xrcxcifp9fyp06b6d54gbxq4as8an1"))))
+ "0mlj9b9dzhd8k8jg9fgwxyxdy8rsynfq81vm00rjgbh2ivpgr3x2"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("GUILE_AUTO_COMPILE=0"
@@ -4521,8 +4523,8 @@ function: raw, typed, and functional.")
(license license:lgpl3+))))
(define-public guile-gsl
- (let ((commit "e6d1477b0d0456f500c32610a5cae6ebb1b8acfe")
- (revision "0"))
+ (let ((commit "22ac81c45f33f897d7cc88744d427a6959682c24")
+ (revision "1"))
(package
(name "guile-gsl")
(version (git-version "0.0.1" revision commit))
@@ -4534,7 +4536,7 @@ function: raw, typed, and functional.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1b4brimmg3phahia9dm0wkcp1f29wnbvmi0q8di5sz7pf7qjzsy0"))))
+ (base32 "0gwxyd5flq107ibqdqvx7dl5z23an171jwckn7dvlqc60b7n2x64"))))
(build-system guile-build-system)
(arguments
(list
@@ -4556,7 +4558,7 @@ function: raw, typed, and functional.")
(synopsis "Bindings for GNU Scientific library in Guile")
(description
"This package provides a Guile Scheme wrapper for @code{libgsl.so}.
-Implements vector, matrix,and BLAS operations.")
+Implements vector, matrix, and BLAS operations.")
(license license:gpl3+))))
(define-public guile-ffi-fftw
@@ -5496,6 +5498,66 @@ using a short read-capability.")
(home-page "https://codeberg.org/eris/guile-eris")
(license license:gpl3+)))
+(define-public guile-rsv
+ (let ((commit "41b04c85eef31d4d51001c6d66e8fd339fcc614c")
+ (revision "1"))
+ (package
+ (name "guile-rsv")
+ (version (git-version "0.2.0" revision commit))
+ (home-page "https://codeberg.org/kakafarm/guile-rsv/")
+ (source
+ (origin
+ (uri (git-reference (url home-page) (commit commit)))
+ (method git-fetch)
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1w9jbkpmh13zrxkj915nm3l537smm0jsrdzrzcxylb6w59vqpw6l"))))
+ (inputs (list guile-3.0 bash))
+ (build-system guile-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'install 'link-and-wrap-executable
+ (lambda _
+ (let* ((bin (string-append #$output "/bin"))
+ ;; bin directory for PATH.
+ (site-version (target-guile-effective-version))
+ (scm (string-append "/share/guile/site/"
+ site-version))
+ (go (string-append "/lib/guile/" site-version
+ "/site-ccache")))
+ (mkdir-p bin)
+ (for-each (lambda (command-name)
+ (let ((source-script (string-append #$output
+ scm "/"
+ command-name
+ ".scm"))
+ (target-command (string-append
+ bin "/"
+ command-name)))
+ (symlink source-script target-command)
+ (wrap-program target-command
+ #:sh (which "bash")
+ `("GUILE_LOAD_PATH" prefix
+ (,(string-append #$output scm)))
+ `("GUILE_LOAD_COMPILED_PATH" prefix
+ (,(string-append #$output go))))))
+ (list "scm2rsv" "rsv2scm"))))))))
+ (synopsis "Reading and writing @acronym{RSV, rows of string values} data format")
+ (description
+ "R7RS-small Scheme library for reading and writing @acronym{RSV, rows
+of string values} data format, a very simple binary format for storing tables
+of strings. It is a competitor for CSV (Comma Seperated Values) and TSV (Tab
+Separated Values). Its main benefit is that the strings are represented as
+Unicode encoded as UTF-8, and the value and row separators are byte values
+that are never used in UTF-8, so the strings do not need any error prone
+escaping and thus can be written and read verbatim.
+
+The RSV format is specified in
+@url{https://github.com/Stenway/RSV-Specification}.")
+ (license license:gpl3+))))
+
(define-public guile-r6rs-protobuf
(package
(name "guile-r6rs-protobuf")
@@ -6143,7 +6205,7 @@ This module implements this interface by use of Guile's dynamic FFI.")
(define-public guile-goblins
(package
(name "guile-goblins")
- (version "0.12.0")
+ (version "0.13.0")
(source
(origin
(method url-fetch)
@@ -6152,7 +6214,7 @@ This module implements this interface by use of Guile's dynamic FFI.")
version ".tar.gz"))
(sha256
(base32
- "1w1xf60i6an4fs2kr0cv7w01h2fhz1i23zp9w7nbmr32zqm8m59z"))))
+ "1s1aahak0m2hygnwi09vb399w7idh2hmbbn0fi7mdky0scxb5ybr"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 3476af2a51..58a044fa9d 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -457,7 +457,7 @@ without requiring the source code to be rewritten.")
(define-public guile-next
(let ((version "3.0.9")
(revision "0")
- (commit "fb1f5e28b1a575247fd16184b1c83b8838b09716"))
+ (commit "db7efa5d204b2e46ce9eb82f417d8c12d394858d"))
(package
(inherit guile-3.0)
(name "guile-next")
@@ -471,7 +471,7 @@ without requiring the source code to be rewritten.")
(file-name (git-file-name name version))
(sha256
(base32
- "1lcc6sz0f3x253pr4a0fggsfkaxmxxw63cspfm2mjis6h82g6jxm"))))
+ "1mg7pd0ya7i9swgnb38ay99cjwiw61ni0ypyywjrpv6iyvmx8m8q"))))
(arguments
(substitute-keyword-arguments (package-arguments guile-3.0)
((#:phases phases '%standard-phases)
@@ -922,17 +922,21 @@ Guile's foreign function interface.")
(define-public guile-lzlib
(package
(name "guile-lzlib")
- (version "0.0.2")
+ (version "0.3.0")
+ (home-page "https://notabug.org/guile-lzlib/guile-lzlib")
(source
(origin
+ ;; Note: Until "builtin:git-download" can be taken for granted, this
+ ;; must be 'url-fetch', not 'git-fetch', to avoid a circular dependency
+ ;; with the 'git-fetch' derivation on systems that lack
+ ;; "builtin:git-download".
(method url-fetch)
- (uri
- (string-append "https://notabug.org/guile-lzlib/guile-lzlib/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (string-append home-page "/archive/" version ".tar.gz"))
+ ;; content nar-sha256: 19870njb3q5h6zy239gvra92ji077c6s8xm0hgcn42z74q5wqnk6
+ (file-name (string-append "guile-lzlib-" version ".tar.gz"))
(sha256
(base32
- "11sggvncyx08ssp1s5xii4d6nskh1qwqihnbpzzvkrs7sivxn8w6"))))
+ "1whgmwkr1v8m63p4aaqn8blwl9vcrswwhbfv4bm0aghl5a6rryd7"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags
@@ -944,7 +948,6 @@ Guile's foreign function interface.")
"This package provides Guile bindings for lzlib, a C library for
in-memory LZMA compression and decompression. The bindings are written in
pure Scheme by using Guile's foreign function interface.")
- (home-page "https://notabug.org/guile-lzlib/guile-lzlib")
(license license:gpl3+)))
(define-public guile2.2-lzlib
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 72b6decd81..42722a79d0 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2023 Spencer Skylar Chan <schan12@umd.edu>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
+;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -60,6 +61,7 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages haskell-xyz)
@@ -141,6 +143,68 @@ drivers, including an assembler and a disassembler for several GPU instruction
sets, and tools to deal with register databases.")
(license license:expat))))
+(define-public brillo
+ (package
+ (name "brillo")
+ (version "1.4.12")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/cameronnemo/brillo")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "16n4j45mfhd1zxwbpl8342vyqf8rj3plhcl90xp02m46hn58v8bl"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:make-flags #~(list (string-append "CC="
+ #$(cc-for-target))
+ (string-append "AADIR=" #$output "/etc/apparmor.d")
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-udev-rules
+ (lambda _
+ (substitute* "contrib/udev.in"
+ (("/bin/chgrp")
+ (string-append #$coreutils
+ "/bin/chgrp"))
+ (("/bin/chmod")
+ (string-append #$coreutils
+ "/bin/chmod")))))
+ (delete 'configure)
+ ;; Tests must be run on real hardware.
+ (delete 'check)
+ (add-after 'install 'install-udev-polkit
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (map (lambda (target)
+ (apply invoke "make" target make-flags))
+ '("install.udev" "install.polkit")))))))
+ (native-inputs (list go-github-com-go-md2man))
+ (supported-systems
+ (lset-difference string=? %supported-systems %hurd-systems))
+ (home-page "https://gitlab.com/cameronnemo/brillo")
+ (synopsis "Controls the brightness of backlight and LED devices on Linux")
+ (description
+ "Brillo is a command line tool to control the brightness of backlight and
+LED devices on Linux.
+
+Notable features include:
+
+@itemize
+
+@item Automatic best controller detection
+@item Smooth transitions and natural brightness adjustments
+@item Ability to save and restore brightness across boots
+@item Directly using sysfs to set brightness without relying on X
+@item Unprivileged access with no new setuid binaries
+@item Containment with AppArmor
+
+@end itemize")
+ (license (list license:bsd-0 license:gpl3+))))
+
(define-public hw-probe
(package
(name "hw-probe")
diff --git a/gnu/packages/haxe.scm b/gnu/packages/haxe.scm
index 859941df70..c7af07325f 100644
--- a/gnu/packages/haxe.scm
+++ b/gnu/packages/haxe.scm
@@ -115,17 +115,17 @@ interactive languages.")
(uri (git-reference
(url "https://github.com/HaxeFoundation/haxelib")
;; This should match the haxelib submodule in haxe.
- (commit "4b27f91d8a4ff279d9903091680fee2c93a0d574")
+ (commit "f17fffa97554b1bdba37750e3418051f017a5bc2")
;; This repo includes some Haxe libs as well.
(recursive? #t)))
(sha256
(base32
- "0mwrm6gxgclwziiprfiswmjbz6z3dnvdwl8gq3gaym18pvx4p3ny"))))
+ "13ql042mxkybhw7di8c8cfq47p8snvadg9yglyif6b5k9ij85r6z"))))
(define-public haxe
(package
(name "haxe")
- (version "4.2.5")
+ (version "4.3.4")
(source
(origin
(method git-fetch)
@@ -134,7 +134,7 @@ interactive languages.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0pl8vpyb7gl2yqjg85yc4zxq9c3ipvw4yrrpliaxs25ynrj3l51n"))))
+ (base32 "1svbxf5g6j7vvqhyjlv1ha9yjh42c94jxvn7xhqbb0smyk64vibm"))))
(build-system dune-build-system)
(arguments
(list #:phases
@@ -173,13 +173,14 @@ interactive languages.")
(inputs (list libuv
mbedtls-lts
neko
+ ocaml-camlp-streams
ocaml-extlib
ocaml-luv
ocaml-ptmap
ocaml-sedlex
ocaml-sha
ocaml-xml-light
- pcre
+ pcre2
zlib))
(native-inputs (list ocaml-findlib camlp5))
(home-page "https://haxe.org/")
@@ -195,7 +196,7 @@ includes the compiler and library manager.")
(define-public hashlink
(package
(name "hashlink")
- (version "1.12")
+ (version "1.14")
(source
(origin
(method git-fetch)
@@ -204,7 +205,7 @@ includes the compiler and library manager.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0i5f1mxpgjcdirx60kxrw0r0y15qh3j16a6fj8mzkq3k7j2hc982"))
+ (base32 "163kj2fww8a1hp93aklla181sp84hrsl8dy5rwrv79057bmkjz5d"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -232,7 +233,7 @@ includes the compiler and library manager.")
(lambda _
(substitute* "Makefile"
(("\\$\\{PCRE\\}") "")
- (("-lpthread") "-lpthread -lpcre16")
+ (("-lpthread") "-lpthread -lpcre2-16")
(("include/minimp3")
(string-append #$(this-package-input "minimp3") "/include"))
(("include/mikktspace ")
@@ -259,7 +260,7 @@ includes the compiler and library manager.")
mikktspace
minimp3
openal
- pcre
+ pcre2
sdl2
sqlite
zlib))
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 9d16109b05..ceef83f3b1 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -50,6 +50,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
+ #:use-module (guix build-system pyproject)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages base)
@@ -90,6 +91,7 @@
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-xyz)
@@ -260,57 +262,36 @@ of external libraries that provide additional functionality.")
(define-public opencolorio
(package
(name "opencolorio")
- (version "1.1.1")
+ (version "2.3.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AcademySoftwareFoundation/OpenColorIO")
(commit (string-append "v" version))))
- (patches (search-patches "opencolorio-fix-build-with-gcc11.patch"))
(sha256
- (base32 "12srvxca51czpfjl0gabpidj9n84mw78ivxy5w75qhq2mmc798sb"))
- (file-name (git-file-name name version))
- (modules '((guix build utils)))
- (snippet
- `(begin
- ;; Remove bundled tarballs, patches, and .jars(!). XXX: Upstream
- ;; claims to have fixed USE_EXTERNAL_YAML, but it still fails with:
- ;; https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/517
- ;; When removing it, also remove it from the licence field comment.
- (for-each delete-file-recursively
- (filter
- (lambda (full-name)
- (let ((file (basename full-name)))
- (not (or (string-prefix? "yaml-cpp-0.3" file)
- (string=? "unittest.h" file)))))
- (find-files "ext" ".*")))
-
- #t))))
+ (base32 "1h33s2pfy28nj836kx6xx3iks7v38g3kx7c4f6zn1dpskl0zf809"))
+ (file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags
- (list (string-append "-DCMAKE_CXX_FLAGS="
- "-Wno-error=deprecated-declarations "
- "-Wno-error=unused-function")
- "-DOCIO_BUILD_STATIC=OFF"
- ;; "-DUSE_EXTERNAL_YAML=ON"
- "-DUSE_EXTERNAL_TINYXML=ON"
- "-DUSE_EXTERNAL_LCMS=ON")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-test-suite
- (lambda _
- (substitute* "src/core_tests/CMakeLists.txt"
- (("/bin/sh") (which "bash")))
- #t)))))
+ ;; XXX: GPU tests are failing.
+ (list #:configure-flags #~(list "-DOCIO_BUILD_GPU_TESTS=false")))
(native-inputs
- (list git pkg-config))
+ ;; XXX: OCIO has unit tests for OpenShadingLanguage, but they fail.
+ ;; They also require OIIO, but OCIO is an optional dependency to it.
+ (list pybind11-2.10 python-wrapper))
(inputs
- ;; XXX Adding freeglut, glew, ilmbase, mesa, and openimageio for
- ;; ocioconvert fails: error: conflicting declaration ?typedef void
- ;; (* PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum, GLenum, GLfloat*)
- (list lcms openexr-2 tinyxml))
+ (list expat
+ freeglut
+ glew
+ imath
+ lcms
+ libglvnd
+ minizip-ng
+ openexr
+ pystring
+ yaml-cpp
+ zlib))
(home-page "https://opencolorio.org")
(synopsis "Color management for visual effects and animation")
(description
@@ -323,9 +304,7 @@ back-end configuration options suitable for high-end production usage.
OCIO is compatible with the @acronym{ACES, Academy Color Encoding
Specification} and is @acronym{LUT, look-up table}-format agnostic, supporting
many popular formats.")
- (license (list license:expat ; docs/ociotheme/static, ext/yaml-cpp-*
- license:zlib ; src/core/md5
- license:bsd-3)))) ; the rest
+ (license license:bsd-3)))
(define-public vtk
(package
@@ -1725,6 +1704,83 @@ purposes.")
segmentation.")
(license license:expat)))
+(define-public python-pims
+ (package
+ (name "python-pims")
+ (version "0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PIMS" version))
+ (sha256
+ (base32 "0fsg353mbbj1ad06nwrp8p9xcrzy6rca6b52nvlbraaf3m309dz2"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ ;; We don't have all the (sometimes very large) data files, so we skip
+ ;; these tests.
+ '(list "--ignore=pims/tests/test_imseq.py"
+ "--ignore=pims/tests/test_norpix.py"
+ "-k"
+ (string-append " not TestImageReaderTIFF"
+ " and not TestOpenFiles"
+ " and not TestSpeStack"
+ " and not TestTiffStack_pil"
+ " and not TestTiffStack_tifffile"
+ " and not TestVideo_ImageIO"))))
+ (propagated-inputs
+ (list python-imageio python-numpy python-slicerator))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/soft-matter/pims")
+ (synopsis "Python Image Sequence")
+ (description "Scientific video can be packaged in various ways: familiar
+video formats like @file{.AVI} and @file{.MOV}, folders full of numbered
+images, or \"stacks\" of TIFF images. Each of these requires a separate
+Python module. And, once loaded, they have different methods for accessing
+individual images, looping through the images in bulk, accessing a specific
+range, or dealing with multidimensional files. PIMS can do all of these using
+a consistent interface, handling the differences between different inputs
+invisibly.")
+ (license license:bsd-3)))
+
+(define-public python-spatial-image
+ (package
+ (name "python-spatial-image")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "spatial_image" version))
+ (sha256
+ (base32 "0blyjwgv6bqpg7r3f4dcs7x27ysfm8n9y0zk5j7dxj74lma3wdsm"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-numpy python-pytest python-pytest-mypy
+ python-xarray python-xarray-dataclasses))
+ (native-inputs (list python-flit-core python-pytest))
+ (home-page "https://github.com/spatial-image/spatial-image")
+ (synopsis "Multi-dimensional spatial image data structure")
+ (description "This package implements a multi-dimensional spatial image
+data structure for scientific Python.
+
+To facilitate:
+
+@itemize
+@item Multi-scale processing and analysis
+@item Registration
+@item Resampling
+@item Subregion parallel processing
+@item Coupling with meshes, point sets, and annotations
+@end itemize
+
+with scientific images, which are typically multi-dimensional with anisotropic
+sampling, this package provides a spatial-image data structure. In addition
+to an N-dimensional array of pixel values, spatial metadata defines the
+location of the pixel sampling grid in space time. It also labels the array
+dimensions. This metadata is easily utilized and carried through image
+processing pipelines.")
+ (license license:expat)))
+
(define-public labelme
(package
(name "labelme")
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 58476c52a8..fae45363ad 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -28,7 +28,7 @@
;;; Copyright © 2020, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
-;;; Copyright © 2020, 2021, 2022, 2023 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021, 2022, 2023, 2024 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
@@ -2547,7 +2547,7 @@ by AOM, including with alpha.")
(define-public libheif
(package
(name "libheif")
- (version "1.12.0")
+ (version "1.17.6")
(source
(origin
(method git-fetch)
@@ -2556,16 +2556,14 @@ by AOM, including with alpha.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0cp2d216hp7gw3n56x3g5q5n8jb9ganyanrlibxw8fw16il8nca6"))))
+ (base32 "00rc8ffc2s9dz9szhy0f0raas8wnn5cyni1imd5lqz79by6qz7x6"))))
(build-system cmake-build-system)
- (arguments
- `(#:tests? #f)) ;no test target although there is a tests folder
(native-inputs
(list autoconf automake libtool pkg-config))
(inputs
- `(("gdk-pixbuf" ,gdk-pixbuf) ;optional
- ("libjpeg" ,libjpeg-turbo)
- ("libpng" ,libpng)))
+ (list gdk-pixbuf ; optional
+ libjpeg-turbo
+ libpng))
;; Propagated to satisfy 'libheif.pc'.
(propagated-inputs
(list dav1d libaom libde265 x265))
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index 0a1065535b..ac832dcd52 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -39,6 +39,35 @@
#: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-multiformats-go-multihash
+ go-github-com-multiformats-go-multibase
+ go-github-com-multiformats-go-varint))
+ (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")
@@ -227,7 +256,7 @@ written in Go.")
(define-public kubo
(package
(name "kubo")
- (version "0.22.0")
+ (version "0.28.0")
(source
(origin
(method url-fetch/tarbomb)
@@ -235,19 +264,16 @@ written in Go.")
"https://dist.ipfs.io/kubo/v" version
"/kubo-source.tar.gz"))
(sha256
- (base32 "0p8iaa56lnac1lxnbzp4fbjqzps50z5yqs34szcp53xjq8rmjzjd"))
+ (base32 "01lk6dd2j660rykchc3ggi9cln92cngz5ijlldsaj5mxnajlvbwy"))
(file-name (string-append name "-" version "-source"))
(modules '((guix build utils)))
(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"
- ;; TODO: kubo depends on v1.0.29 which is way too
- ;; hard to back port.
- ; "vendor/github.com/cheggaaa/pb"
"vendor/github.com/davecgh"
"vendor/github.com/dustin"
"vendor/github.com/flynn"
@@ -258,18 +284,20 @@ written in Go.")
"vendor/github.com/golang/snappy"
"vendor/github.com/google/uuid"
"vendor/github.com/gorilla"
- ;; These should be fine, they are part of
- ;; the IPFS project
- ;; "vendor/github.com/ipfs"
- ;; "vendor/github.com/ipld"
+ "vendor/github.com/hashicorp"
+ "vendor/github.com/ipfs/go-cid"
"vendor/github.com/jackpal"
+ "vendor/github.com/jbenet"
+ "vendor/github.com/julienschmidt"
"vendor/github.com/klauspost"
"vendor/github.com/mattn"
"vendor/github.com/mgutz"
"vendor/github.com/minio"
"vendor/github.com/mitchellh"
"vendor/github.com/mr-tron"
+ "vendor/github.com/multiformats"
"vendor/github.com/opentracing"
+ "vendor/github.com/pbnjay"
"vendor/github.com/pkg"
"vendor/github.com/pmezard"
"vendor/github.com/prometheus/client_golang"
@@ -279,19 +307,17 @@ 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
(list
#:unpack-path "github.com/ipfs/kubo"
#:import-path "github.com/ipfs/kubo/cmd/ipfs"
- #:go go-1.20
+ #:go go-1.21
#:phases
#~(modify-phases %standard-phases
;; https://github.com/ipfs/kubo/blob/master/docs/command-completion.md
@@ -306,62 +332,126 @@ written in Go.")
"ipfs"
#~(string-append #$output "/bin/ipfs"))
"commands" "completion" "bash")))))))))
- (inputs (list go-github-com-alecthomas-units
+ (inputs (list ;; Direct requirements as seen in kubo's go.mod file.
+ ;;
+ ;; XXX: Uncomment out when package is available in Guix,
+ ;; otherwise it will be sourced from provided vendor
+ ;; directory.
+ ;;
+ ;;go-bazil-org-fuse
+ ;;go-contrib-go-opencensus-io-exporter-prometheus
go-github-com-benbjohnson-clock
go-github-com-blang-semver-v4
- go-github-com-cespare-xxhash
- go-github-com-cheekybits-genny
- go-github-com-davecgh-go-spew
+ ;;go-github-com-cenkalti-backoff-v4
+ ;;go-github-com-ceramicnetwork-go-dag-jose
+ ;;go-github-com-cheggaaa-pb
+ ;;go-github-com-coreos-go-systemd-v22
go-github-com-dustin-go-humanize
- go-github-com-flynn-noise
- go-github-com-francoispqt-gojay
+ ;;go-github-com-elgris-jsondiff
+ ;;go-github-com-facebookgo-atomicfile
go-github-com-fsnotify-fsnotify
- go-github-com-gogo-protobuf
- go-github-com-golang-groupcache-lru
- go-github-com-golang-snappy
go-github-com-google-uuid
- go-github-com-gorilla-mux
- go-github-com-gorilla-websocket
- go-github-com-jackpal-go-nat-pmp
- go-github-com-klauspost-compress
- go-github-com-klauspost-cpuid
- go-github-com-lucas-clemente-quic-go
- go-github-com-mattn-go-colorable
- go-github-com-mattn-go-isatty
- go-github-com-mattn-go-runewidth
- go-github-com-mgutz-ansi
- go-github-com-minio-blake2b-simd
- go-github-com-minio-sha256-simd
+ go-github-com-hashicorp-go-multierror
+ ;;go-github-com-ipfs-boxo
+ ;;go-github-com-ipfs-go-block-format
+ go-github-com-ipfs-go-cid
+ ;;go-github-com-ipfs-go-cidutil
+ ;;go-github-com-ipfs-go-datastore
+ ;;go-github-com-ipfs-go-detect-race
+ ;;go-github-com-ipfs-go-ds-badger
+ ;;go-github-com-ipfs-go-ds-flatfs
+ ;;go-github-com-ipfs-go-ds-leveldb
+ ;;go-github-com-ipfs-go-ds-measure
+ ;;go-github-com-ipfs-go-fs-lock
+ ;;go-github-com-ipfs-go-ipfs-cmds
+ ;;go-github-com-ipfs-go-ipld-cbor
+ ;;go-github-com-ipfs-go-ipld-format
+ ;;go-github-com-ipfs-go-ipld-git
+ ;;go-github-com-ipfs-go-ipld-legacy
+ ;;go-github-com-ipfs-go-log
+ ;;go-github-com-ipfs-go-log-v2
+ ;;go-github-com-ipfs-go-metrics-interface
+ ;;go-github-com-ipfs-go-metrics-prometheus
+ ;;go-github-com-ipfs-go-unixfsnode
+ ;;go-github-com-ipfs-shipyard-nopfs
+ ;;go-github-com-ipfs-shipyard-nopfs-ipfs
+ ;;go-github-com-ipld-go-car
+ ;;go-github-com-ipld-go-car-v2
+ ;;go-github-com-ipld-go-codec-dagpb
+ ;;go-github-com-ipld-go-ipld-prime
+ go-github-com-jbenet-go-random
+ go-github-com-jbenet-go-temp-err-catcher
+ go-github-com-jbenet-goprocess
+ go-github-com-julienschmidt-httprouter
+ ;;go-github-com-libp2p-go-doh-resolver
+ ;;go-github-com-libp2p-go-libp2p
+ ;;go-github-com-libp2p-go-libp2p-http
+ ;;go-github-com-libp2p-go-libp2p-kad-dht
+ ;;go-github-com-libp2p-go-libp2p-kbucket
+ ;;go-github-com-libp2p-go-libp2p-pubsub
+ ;;go-github-com-libp2p-go-libp2p-pubsub-router
+ ;;go-github-com-libp2p-go-libp2p-record
+ ;;go-github-com-libp2p-go-libp2p-routing-helpers
+ ;;go-github-com-libp2p-go-libp2p-testing
+ ;;go-github-com-libp2p-go-socket-activation
go-github-com-mitchellh-go-homedir
- go-github-com-mr-tron-base58
+ go-github-com-multiformats-go-multiaddr-0.12
+ go-github-com-multiformats-go-multiaddr-dns
+ go-github-com-multiformats-go-multibase
+ go-github-com-multiformats-go-multicodec
+ go-github-com-multiformats-go-multihash
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
- go-github-com-prometheus-client-model
- go-github-com-prometheus-common
- go-github-com-prometheus-procfs
- go-github-com-spaolacci-murmur3
go-github-com-stretchr-testify
go-github-com-syndtr-goleveldb
- go-go-uber-org-atomic
+ ;;go-github-com-tidwall-gjson
+ ;;go-github-com-tidwall-sjson
+ go-github-com-whyrusleeping-go-sysinfo
+ ;;go-github-com-whyrusleeping-multiaddr-filter
+ ;;go-go-opencensus-io
+ ;;go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp
+ ;;go-go-opentelemetry-io-contrib-propagators-autoprop
+ ;;go-go-opentelemetry-io-otel
+ ;;go-go-opentelemetry-io-otel-sdk
+ ;;go-go-opentelemetry-io-otel-trace
+ 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
- go-golang-org-x-exp
- go-golang-org-x-lint
+ go-golang-org-x-exp-2023
go-golang-org-x-mod
- go-golang-org-x-net
- go-golang-org-x-oauth2
go-golang-org-x-sync
go-golang-org-x-sys
+ go-google-golang-org-protobuf
+ go-gopkg-in-yaml-v3
+
+ ;;
+ ;; A list of indirect dependencies requiring for the vendored models.
+ ;; XXX: Remove them when all of the vendored packages are available.
+ ;;
+ go-github-com-alecthomas-units
+ go-github-com-flynn-noise
+ go-github-com-francoispqt-gojay
+ go-github-com-gogo-protobuf
+ go-github-com-golang-groupcache
+ go-github-com-gorilla-mux
+ go-github-com-gorilla-websocket
+ 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-mattn-go-runewidth
+ go-github-com-mgutz-ansi
+ go-github-com-multiformats-go-multiaddr-fmt
+ go-github-com-multiformats-go-multistream
+ go-golang-org-x-oauth2
go-golang-org-x-term
go-golang-org-x-text
- go-golang-org-x-tools
go-golang-org-x-xerrors
- go-gopkg-in-yaml-v2
- go-gopkg-in-yaml-v3
- go-lukechampine-com-blake3))
+ go-gopkg-in-square-go-jose-v2))
(native-inputs
(append (if (%current-target-system)
(list this-package)
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index cbe2c36f45..39b915a518 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.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-xyz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 613742007a..a54c1d1d06 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017, 2019, 2021 Carlo Zancanaro <carlo@zancanaro.id.au>
@@ -1724,7 +1724,7 @@ OpenJDK.")
(package
(inherit openjdk17)
(name "jbr")
- (version "17.0.10b1207.2")
+ (version "17.0.10b1207.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1733,7 +1733,7 @@ OpenJDK.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1n9i07i243wrnnnvj05j81qhx3b5dry8y423pnbrrdn8fcwm1f2d"))
+ "034c00dr5qmyxvw3xpnpbhlmz3w8pkp52zm7wypjprczd90ylfrc"))
(patches (search-patches "jbr-17-xcursor-no-dynamic.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments openjdk17)
@@ -1758,7 +1758,7 @@ OpenJDK.")
(package
(inherit openjdk21)
(name "jbr")
- (version "21.0.2b375.1")
+ (version "21.0.2b397.7")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1767,7 +1767,7 @@ OpenJDK.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "15rcwbch0xxzcgggc34lna9dwimwqsc0z4mvw5hd428414gz71iy"))
+ "0xwldx2k9cx0b6xdh8ic0v87cr89khwr8hxnnrpwdsia1i8gkpga"))
(patches (search-patches "openjdk-21-fix-rpath.patch"
"jbr-17-xcursor-no-dynamic.patch"))))
(inputs
@@ -4135,7 +4135,7 @@ from source tags and class annotations.")))
java-commons-cli
java-qdox
java-jdom2
- java-asm))
+ java-asm-8))
(native-inputs
(list java-junit java-guava java-geronimo-xbean-reflect))
(synopsis "Inversion-of-control container for Maven")
@@ -5106,10 +5106,85 @@ including java-asm.")
#:tests? #f))
(inputs (list java-asm-8 java-asm-analysis-8 java-asm-tree-8))))
+(define-public java-asm-9
+ (package
+ (inherit java-asm)
+ (version "9.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.ow2.org/asm/asm")
+ (commit (string-append
+ "ASM_" (string-join (string-split version #\.)
+ "_")))))
+ (file-name (git-file-name "java-asm" version))
+ (sha256
+ (base32
+ "0c00m638skr5md1p6y1c2xn11kj5w6sjapyvwp9mh70rw095bwzk"))))
+ (arguments
+ `(#:jar-name "asm9.jar"
+ #:source-dir "asm/src/main/java"
+ #:test-dir "asm/src/test"
+ ;; tests depend on junit5
+ #:tests? #f))
+ (propagated-inputs '())
+ (native-inputs '())))
+
+(define-public java-asm-tree-9
+ (package
+ (inherit java-asm-9)
+ (name "java-asm-tree")
+ (arguments
+ `(#:jar-name "asm-tree.jar"
+ #:source-dir "asm-tree/src/main/java"
+ #:test-dir "asm-tree/src/test"
+ ;; tests depend on junit5
+ #:tests? #f))
+ (inputs
+ (list java-asm-9))))
+
+(define-public java-asm-analysis-9
+ (package
+ (inherit java-asm-9)
+ (name "java-asm-analysis")
+ (arguments
+ `(#:jar-name "asm-analysis.jar"
+ #:source-dir "asm-analysis/src/main/java"
+ #:test-dir "asm-analysis/src/test"
+ ;; tests depend on junit5
+ #:tests? #f))
+ (inputs
+ (list java-asm-9 java-asm-tree-9))))
+
+(define-public java-asm-util-9
+ (package
+ (inherit java-asm-9)
+ (name "java-asm-util")
+ (arguments
+ `(#:jar-name "asm-util8.jar"
+ #:source-dir "asm-util/src/main/java"
+ #:test-dir "asm-util/src/test"
+ ;; tests depend on junit5
+ #:tests? #f))
+ (inputs
+ (list java-asm-9 java-asm-analysis-9 java-asm-tree-9))))
+
+(define-public java-asm-commons-9
+ (package
+ (inherit java-asm-9)
+ (name "java-asm-commons")
+ (arguments
+ (list #:jar-name "asm-commons8.jar"
+ #:source-dir "asm-commons/src/main/java"
+ #:test-dir "asm-commons/src/test"
+ ;; tests depend on junit5
+ #:tests? #f))
+ (inputs (list java-asm-9 java-asm-analysis-9 java-asm-tree-9))))
+
(define-public java-cglib
(package
(name "java-cglib")
- (version "3.2.4")
+ (version "3.3.0")
(source
(origin
(method git-fetch)
@@ -5121,7 +5196,7 @@ including java-asm.")
version)))))
(file-name (git-file-name name version))
(sha256
- (base32 "186451jms2zfp47yd8kxd77az2cqal1my2br7klgyp8fpl4qfg8v"))))
+ (base32 "1lnscamc6bnhh7jgij5garxagp3zn2jp4cbq0rsn4xr3l0cnd014"))))
(build-system ant-build-system)
(arguments
`(;; FIXME: tests fail because junit runs
@@ -5133,8 +5208,8 @@ including java-asm.")
(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "cglib") #t)))))
- (inputs
- (list java-asm java-junit))
+ (native-inputs (list java-junit))
+ (propagated-inputs (list java-asm-8))
(home-page "https://github.com/cglib/cglib/")
(synopsis "Java byte code generation library")
(description "The byte code generation library CGLIB is a high level API
@@ -5144,7 +5219,7 @@ to generate and transform Java byte code.")
(define-public java-objenesis
(package
(name "java-objenesis")
- (version "2.5.1")
+ (version "3.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5153,11 +5228,12 @@ to generate and transform Java byte code.")
(file-name (git-file-name name version))
(sha256
(base32
- "054yi200wj00x6dp1sxfrwgndwywadsbn8d8ij1j0v45j9g2vdya"))))
+ "1brlcn536p4s1v1f3vzxhr38lvyhc33wjrbj2x06kdrd8agy90cr"))))
(build-system ant-build-system)
(arguments
- `(#:jar-name "objenesis.jar"
- #:source-dir "main/src/"
+ `(#:tests? #f; require junit-5
+ #:jar-name "objenesis.jar"
+ #:source-dir "main/src/main/java"
#:test-dir "main/src/test/"))
(native-inputs
(list java-junit java-hamcrest-core))
@@ -5221,7 +5297,7 @@ constructor on object instantiation.")
(delete-file "tests2/EasyMockPropertiesTest.java"))
#t)))))
(inputs
- (list java-asm java-cglib java-objenesis))
+ (list java-cglib java-objenesis))
(native-inputs
(list java-junit java-hamcrest-core))
(home-page "https://easymock.org/")
@@ -5280,7 +5356,7 @@ mock objects in unit testing.")
(list #:jar-name "easymock-class-extensions.jar"
#:source-dir "easymock-classextension/src/main/java"
#:test-dir "easymock-classextension/src/test"))
- (inputs (list java-asm
+ (inputs (list java-asm-8
java-easymock-3.2
java-cglib
java-objenesis))
@@ -5344,7 +5420,7 @@ The jMock library
(base32
"12b7l22g3nrjvf2dzcw3z03fpd2chrgp0d8xkvn8w55rwb57pax6"))))
(inputs
- (list java-hamcrest-all java-asm java-bsh java-junit))
+ (list java-hamcrest-all java-bsh java-junit))
(native-inputs
`(("cglib" ,java-cglib)))
(arguments
@@ -5362,7 +5438,6 @@ The jMock library
#:test-dir "jmock-junit4/src/test"))
(inputs
`(("java-hamcrest-all" ,java-hamcrest-all)
- ("java-asm" ,java-asm)
("java-bsh" ,java-bsh)
("java-jmock" ,java-jmock)
("java-jumit" ,java-junit)))))
@@ -5389,7 +5464,6 @@ The jMock library
java-objenesis
java-cglib
java-jmock
- java-asm
java-bsh
java-junit))
(native-inputs
@@ -6203,11 +6277,54 @@ namespaces.")
It provides packages in the @code{javax.annotations} namespace.")
(license license:asl2.0)))
+(define-public java-error-prone-annotations
+ (package
+ (name "java-error-prone-annotations")
+ (version "2.18.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/error-prone")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "java-error-prone" version))
+ (sha256
+ (base32
+ "19sqsz0b308rhadr3ff10azdbqjq37nvrn9c06224dwpxap0931f"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f; no tests
+ #:jar-name (string-append ,name "-" ,version ".jar")
+ #:source-dir "annotations/src/main/java"
+ #:test-dir "annotations/src/altest"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install (install-from-pom "annotations/pom.xml")))))
+ (propagated-inputs (list java-error-prone-parent-pom java-jsr305))
+ (home-page "https://errorprone.info")
+ (synopsis "Java static analyzer at compile-time")
+ (description "Error Prone is a static analysis tool for Java that catches
+common programming mistakes at compile-time. This package contains annotations
+used by programmers to guide the static analysis.")
+ (license license:asl2.0)))
+
+(define java-error-prone-parent-pom
+ (package
+ (inherit java-error-prone-annotations)
+ (name "java-error-prone-parent-pom")
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (install-pom-file "pom.xml")))))
+ (propagated-inputs '())))
+
(define-public java-guava
(package
(name "java-guava")
- ;; This is the last release of Guava that can be built with Java 7.
- (version "20.0")
+ (version "31.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -6216,7 +6333,9 @@ It provides packages in the @code{javax.annotations} namespace.")
(file-name (git-file-name name version))
(sha256
(base32
- "00h5cawdjic1vind3yivzh1f58flvm1yfmhsyqwyvmbvj1vakysp"))))
+ "0sv1w5cnids9ad3l7qhrh3dh1wdqwc946iinsxryafr25wg5z1lp"))
+ (patches
+ (search-patches "java-guava-remove-annotation-deps.patch"))))
(build-system ant-build-system)
(arguments
`(#:tests? #f ; no tests included
@@ -6230,27 +6349,26 @@ It provides packages in the @code{javax.annotations} namespace.")
;; Remove annotations to avoid extra dependencies:
;; * "j2objc" annotations are used when converting Java to
;; Objective C;
- ;; * "errorprone" annotations catch common Java mistakes at
- ;; compile time;
;; * "IgnoreJRERequirement" is used for Android.
+ ;; * "Nullable" is used to catch NPE at build time.
(substitute* (find-files "." "\\.java$")
(("import com.google.j2objc.*") "")
- (("import com.google.errorprone.annotation.*") "")
- (("import org.codehaus.mojo.animal_sniffer.*") "")
- (("@CanIgnoreReturnValue") "")
- (("@LazyInit") "")
+ (("import org.checkerframework.checker.*") "")
+ (("@ReflectionSupport.*") "")
(("@WeakOuter") "")
(("@RetainedWith") "")
(("@Weak") "")
- (("@ForOverride") "")
(("@J2ObjCIncompatible") "")
- (("@IgnoreJRERequirement") "")))
- #t))
+ (("@IgnoreJRERequirement") "")
+ (("@Nullable") "")))))
+ ;; This is required by guava, but this is just an empty stub
+ (add-before 'install 'install-listenablefuture-stub
+ (install-pom-file "futures/listenablefuture9999/pom.xml"))
(replace 'install (install-from-pom "guava/pom.xml")))))
(inputs
- (list java-jsr305))
+ (list java-error-prone-annotations java-jsr305))
(propagated-inputs
- (list java-guava-parent-pom))
+ (list java-guava-futures-failureaccess java-guava-parent-pom))
(home-page "https://github.com/google/guava")
(synopsis "Google core libraries for Java")
(description "Guava is a set of core libraries that includes new
@@ -6260,6 +6378,21 @@ concurrency, I/O, hashing, primitives, reflection, string processing, and much
more!")
(license license:asl2.0)))
+(define-public java-guava-futures-failureaccess
+ (package
+ (inherit java-guava)
+ (name "java-guava-futures-failureaccess")
+ (arguments
+ `(#:tests? #f; no tests
+ #:jar-name "guava-futures-failureaccess.jar"
+ #:source-dir "futures/failureaccess/src"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (install-from-pom "futures/failureaccess/pom.xml")))))
+ (propagated-inputs
+ `(("java-sonatype-oss-parent-pom" ,java-sonatype-oss-parent-pom-7)))))
+
(define java-guava-parent-pom
(package
(inherit java-guava)
@@ -6522,6 +6655,7 @@ standards and recommendations.")
`(#:jar-name "httpcomponents-httpclient-cache.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
+ #:tests? #f; tests are broken with current cglib.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'delete-unused-impls
@@ -6539,7 +6673,6 @@ standards and recommendations.")
(prepend java-httpcomponents-httpclient
java-httpcomponents-httpmime
java-hamcrest-core)))
- (native-inputs (list java-easymock-3.2 java-easymock-class-extension))
(description "This package provides an API for caching accessed HTTP
resources.")))
@@ -6548,6 +6681,7 @@ resources.")))
(name "java-httpcomponents-httpclient-osgi")
(arguments
`(#:jar-name "httpcomponents-httpclient-osgi.jar"
+ #:tests? #f; tests are broken with current cglib.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir
@@ -9817,8 +9951,7 @@ the system under test at the same time.")
("junit" ,java-junit)
("hamcrest" ,java-hamcrest-core)
("cglib" ,java-cglib)
- ("objenesis" ,java-objenesis)
- ("asm" ,java-asm)))))
+ ("objenesis" ,java-objenesis)))))
(define-public java-ops4j-pax-exam-core-junit
(package
@@ -10464,7 +10597,6 @@ the dependency is said to be unsatisfied, and the application is broken.")
(install-from-pom "core/pom.xml")))))
(propagated-inputs
(list java-aopalliance
- java-asm
java-cglib
java-guava
java-javax-inject
@@ -10644,7 +10776,7 @@ annotations.")
(define-public java-bsh
(package
(name "java-bsh")
- (version "2.0b6")
+ (version "2.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -10653,7 +10785,7 @@ annotations.")
(file-name (git-file-name name version))
(sha256
(base32
- "0kz3f0xjack6c9syssi4qjw1rbd3q5963sk5pmr143hiibxa9csw"))
+ "1a6y46yz2ba4mnlfv4bpd5pmzhgxrzk3s10xp05jz377nbp2izwg"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -10669,6 +10801,10 @@ annotations.")
#:make-flags (list "-DDATE" "(no date for reproducibility)")
#:phases
(modify-phases %standard-phases
+ (add-before 'check 'fix-test
+ (lambda _
+ (substitute* "tests/junitTests/src/bsh/Issue_55_Test.java"
+ ((" BshScriptEngineFactory") " bsh.engine.BshScriptEngineFactory"))))
(replace 'install
(install-from-pom "pom.xml")))))
(inputs
@@ -10766,8 +10902,7 @@ those in Perl and JavaScript.")
java-hamcrest-core
java-mockito-1
java-cglib
- java-objenesis
- java-asm))
+ java-objenesis))
(home-page "https://github.com/alexruiz/fest-assert-2.x")
(synopsis "FEST fluent assertions")
(description "FEST-Assert provides a fluent interface for assertions.")
@@ -10840,7 +10975,6 @@ those in Perl and JavaScript.")
("java-assertj" ,java-assertj)
("java-mockito" ,java-mockito-1)
("cglib" ,java-cglib)
- ("asm" ,java-asm)
("aopalliance" ,java-aopalliance)))
(home-page "https://testng.org")
(synopsis "Testing framework")
@@ -11122,8 +11256,7 @@ programming language.")
("java-hamcrest-all" ,java-hamcrest-all)))
(native-inputs
`(("cglib" ,java-cglib)
- ("objenesis" ,java-objenesis)
- ("asm" ,java-asm)))
+ ("objenesis" ,java-objenesis)))
(home-page "https://www.lmax.com/disruptor")
(synopsis "High performance inter-thread communication")
(description "LMAX Disruptor is a software pattern and software component
@@ -11262,34 +11395,72 @@ everything as database, including class objects, text format data, data
streams, etc.")
(license license:asl2.0)))
+(define-public java-byte-buddy-dep
+ (package
+ (name "java-byte-buddy-dep")
+ (version "1.14.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/raphw/byte-buddy")
+ (commit (string-append "byte-buddy-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "03jmsnkjb9d3z9brqs8fc512hhs5b5iab3a5wbax9zi03dskgvh2"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "byte-buddy-dep.jar"
+ #:source-dir "byte-buddy-dep/src/main/java"
+ #:test-dir "byte-buddy-dep/src/test"
+ #:tests? #f; would build java files that are incompatible with current jdk
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'remove-annotations
+ (lambda _
+ (with-directory-excursion "byte-buddy-dep/src/main/java/net/bytebuddy"
+ (substitute* (find-files "." ".*.java")
+ (("@EqualsAndHashCode.*") "")
+ (("import lombok.EqualsAndHashCode;") "")
+ (("@SuppressFBWarnings.*") "")
+ (("import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;") ""))
+ (substitute* '("description/type/TypeDescription.java"
+ "dynamic/loading/ClassInjector.java")
+ (("^ *value = .*") "")
+ (("^ *justification = .*") ""))))))))
+ (inputs
+ (list java-asm-9 java-asm-commons-9 java-jsr305 java-native-access))
+ (home-page "http://bytebuddy.net/")
+ (synopsis "Runtime code generation for the Java virtual machine")
+ (description "Byte Buddy is a code generation and manipulation library for
+creating and modifying Java classes during the runtime of a Java application
+and without the help of a compiler.")
+ (license license:asl2.0)))
+
(define-public java-powermock-reflect
(package
(name "java-powermock-reflect")
- (version "1.7.3")
+ (version "2.0.9")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/powermock/powermock/"
- "archive/powermock-" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/powermock/powermock")
+ (commit (string-append "powermock-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0sbgi5vqq7k72wzcdjb20s370vyd4hsbnx71pzb8ishml3gy7fwy"))
+ "03y8szi9iwxnv431z2mn2ivc1ak30vcvfvkyrwmfq7wq93bj2c5v"))
(patches
(search-patches "java-powermock-fix-java-files.patch"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "java-powermock-reflect.jar"
- #:jdk ,icedtea-8
#:source-dir "powermock-reflect/src/main/java"
#:test-dir "powermock-reflect/src/test"))
(inputs
- (list java-objenesis))
+ (list java-asm-9 java-objenesis))
(native-inputs
- `(("junit" ,java-junit)
- ("cglib" ,java-cglib)
- ("asm" ,java-asm)
- ("hamcrest" ,java-hamcrest-core)
- ("assertj" ,java-assertj)))
+ (list java-assertj java-cglib java-hamcrest-core java-junit))
(home-page "https://github.com/powermock/powermock")
(synopsis "Mock library extension framework")
(description "PowerMock is a framework that extends other mock libraries
@@ -11318,12 +11489,12 @@ done to the IDE or continuous integration servers which simplifies adoption.")
"build/classes")
#t)))))
(inputs
- `(("reflect" ,java-powermock-reflect)
- ("javassist" ,java-jboss-javassist)))
+ (list java-asm-9
+ java-byte-buddy-dep
+ java-jboss-javassist
+ java-powermock-reflect))
(native-inputs
- `(("junit" ,java-junit)
- ("assertj" ,java-assertj)
- ("mockito" ,java-mockito-1)))))
+ (list java-assertj java-mockito-1 java-junit))))
(define-public java-powermock-api-support
(package
@@ -11336,8 +11507,7 @@ done to the IDE or continuous integration servers which simplifies adoption.")
#:source-dir "powermock-api/powermock-api-support/src/main/java"
#:tests? #f)); no tests
(inputs
- `(("core" ,java-powermock-core)
- ("reflect" ,java-powermock-reflect)))))
+ (list java-powermock-core java-powermock-reflect))))
(define-public java-powermock-modules-junit4-common
(package
@@ -11350,11 +11520,11 @@ done to the IDE or continuous integration servers which simplifies adoption.")
#:source-dir "powermock-modules/powermock-module-junit4-common/src/main/java"
#:test-dir "powermock-modules/powermock-module-junit4-common/src/test"))
(inputs
- `(("core" ,java-powermock-core)
- ("easymock" ,java-easymock)
- ("reflect" ,java-powermock-reflect)
- ("hamcrest" ,java-hamcrest-core)
- ("cglib" ,java-cglib)))))
+ (list java-cglib
+ java-easymock
+ java-hamcrest-core
+ java-powermock-core
+ java-powermock-reflect))))
(define-public java-powermock-modules-junit4
(package
@@ -11363,7 +11533,7 @@ done to the IDE or continuous integration servers which simplifies adoption.")
(build-system ant-build-system)
(arguments
`(#:jar-name "java-powermock-modules-junit4.jar"
- #:jdk ,icedtea-8
+ #:tests? #f; require easymock 4, which introduces a loop with testng
#:source-dir "powermock-modules/powermock-module-junit4/src/main/java"
#:test-dir "powermock-modules/powermock-module-junit4/src/test"
#:phases
@@ -11376,16 +11546,15 @@ done to the IDE or continuous integration servers which simplifies adoption.")
(("4.12") "4.12-SNAPSHOT"))
#t)))))
(inputs
- `(("core" ,java-powermock-core)
- ("reflect" ,java-powermock-reflect)
- ("common" ,java-powermock-modules-junit4-common)
- ("cglib" ,java-cglib)))
+ (list java-cglib
+ java-powermock-core
+ java-powermock-reflect
+ java-powermock-modules-junit4-common))
(native-inputs
- `(("easymock" ,java-easymock)
- ("hamcrest" ,java-hamcrest-core)
- ("objenesis" ,java-objenesis)
- ("asm" ,java-asm)
- ("junit" ,java-junit)))))
+ (list java-easymock
+ java-hamcrest-core
+ java-junit
+ java-objenesis))))
(define-public java-powermock-api-easymock
(package
@@ -11408,11 +11577,11 @@ done to the IDE or continuous integration servers which simplifies adoption.")
(("\\(\\(MockClassLoader\\) classLoader\\).*;") ";")))
#t)))))
(inputs
- `(("core" ,java-powermock-core)
- ("easymock" ,java-easymock)
- ("reflect" ,java-powermock-reflect)
- ("support" ,java-powermock-api-support)
- ("cglib" ,java-cglib)))))
+ (list java-cglib
+ java-easymock
+ java-powermock-api-support
+ java-powermock-core
+ java-powermock-reflect))))
(define-public java-jboss-jms-api-spec
(package
@@ -11602,8 +11771,7 @@ disk storage or off-heap memory.")
(inputs
(list java-slf4j-api java-lz4))
(native-inputs
- (list java-asm
- java-bouncycastle
+ (list java-bouncycastle
java-cglib
java-easymock
java-hamcrest-all
@@ -12475,7 +12643,6 @@ features that bring it on par with the Z shell line editor.")
java-easymock
java-jboss-javassist
java-objenesis
- java-asm
java-hamcrest-core
java-cglib
java-junit
@@ -12606,7 +12773,6 @@ This package includes the line reader.")
("java-mockito-1" ,java-mockito-1)
("java-hamcrest-all" ,java-hamcrest-all)
("java-objenesis" ,java-objenesis)
- ("java-asm" ,java-asm)
("java-cglib" ,java-cglib)
("resources"
,(origin
@@ -13294,7 +13460,6 @@ OSGi Service Registry is a goal of this project.")
java-guice
java-guava
java-aopalliance
- java-asm
java-cglib))
(native-inputs
(list java-junit))
@@ -13418,7 +13583,6 @@ static code analysis or code manipulation.")))
java-hamcrest-core
java-mockito-1
java-cglib
- java-asm
java-objenesis
java-joda-time))
(home-page "https://logback.qos.ch")
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index c6e7443f85..fba96b06a8 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2019, 2020, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2017-2020, 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017-2020, 2022-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2021 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -826,20 +826,29 @@ roots, or wrestle with obscure build systems.")
(define-public quickjs
(package
(name "quickjs")
- (version "2021-03-27")
+ (version "2024-01-13")
(source (origin
(method url-fetch)
(uri (string-append "https://bellard.org/quickjs/quickjs-"
version ".tar.xz"))
(sha256
(base32
- "06pywwpmfwjz225h59wf90q96a2fd66qfcw5xa6m6y9k9k7glnx4"))))
+ "00rf45l1bx0yhlv11gn3bbyfqw9724c153bc93mlp9dzjpwghjrw"))
+ (snippet
+ #~(begin (use-modules (guix build utils))
+ (for-each delete-file
+ '("doc/quickjs.pdf"
+ "doc/quickjs.html"
+ "doc/jsbignum.pdf"
+ "doc/jsbignum.html"))))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
- #~(list "prefix="
- (string-append "DESTDIR=" #$output)
- #$@(if (target-riscv64?) '("LDFLAGS=-latomic") '()))
+ #~(list (string-append "PREFIX=" #$output)
+ #$@(if (or (target-riscv64?)
+ (target-ppc32?))
+ '("LDFLAGS=-latomic")
+ '()))
#:phases #~(modify-phases %standard-phases
(delete 'configure)
(replace 'check
@@ -848,11 +857,12 @@ roots, or wrestle with obscure build systems.")
(invoke "make" "microbench")))))))
(home-page "https://bellard.org/quickjs/")
(synopsis "Small embeddable Javascript engine")
- (description "QuickJS supports the ES2020 specification including modules,
-asynchronous generators, proxies, BigInt and BigDecimal. It can compile
-Javascript sources to executables with no external dependency. It includes a
-command line interpreter with contextual colorization implemented in
-Javascript and a small built-in standard library with C library wrappers.")
+ (description "QuickJS supports the ES2023 specification including modules,
+asynchronous generators, proxies, BigInt, BigDecimal, BigFloat and operator
+overloading. It can compile Javascript sources to executables with no external
+dependency. It includes a command line interpreter with contextual colorization
+implemented in Javascript and a small built-in standard library with C library
+wrappers.")
(license license:expat)))
(define-public duktape
diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm
index 0d50e4904b..ef68521b53 100644
--- a/gnu/packages/jupyter.scm
+++ b/gnu/packages/jupyter.scm
@@ -494,21 +494,19 @@ Mathjax, the JavaScript display engine for mathematics.")
(define-public python-nbclient
(package
(name "python-nbclient")
- (version "0.6.0")
+ (version "0.6.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nbclient" version))
(sha256
(base32
- "0cbhs8l8ma5nzm1i4484gsrb7189m1lmniashp929pxsqq1s929z"))))
- (build-system python-build-system)
+ "09whkb8ll1nfdn4h3k0shncgkfak4lglmiwn8wdni6nrc5wnmxqd"))))
+ (build-system pyproject-build-system)
;; Tests require tools from nbconvert, which would introduces a cycle.
(arguments '(#:tests? #false))
(propagated-inputs
- (list python-jupyter-client
- python-nbformat
- python-nest-asyncio
+ (list python-jupyter-client python-jupyter-core python-nbformat
python-traitlets))
(home-page "https://jupyter.org")
(synopsis "Client library for executing notebooks")
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index f487ac9a30..8991c36f89 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1645,9 +1645,9 @@ with other frameworks.")
(("@KAUTH_POLICY_FILES_INSTALL_DIR@")
"${KDE_INSTALL_DATADIR}/polkit-1/actions")
(("@KAUTH_HELPER_INSTALL_DIR@")
- "${KDE_INSTALL_LIBEXECDIR}")
+ "${KDE_INSTALL_LIBEXECDIR}/kauth")
(("@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@")
- "${KDE_INSTALL_LIBEXECDIR}"))))
+ "${KDE_INSTALL_FULL_LIBEXECDIR}/kauth"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
@@ -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/kde-utils.scm b/gnu/packages/kde-utils.scm
index b2b94b07d3..6001607ad6 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -152,7 +152,7 @@ well as CD-ROM images.")
qtcharts
qtdeclarative-5
qtmultimedia-5
- qtserialport))
+ qtserialport-5))
(home-page "https://atelier.kde.org")
(synopsis "Desktop interface to control 3D printers powered by AtCore")
(description "Atelier provides interface to control and manage your printer.
@@ -729,7 +729,7 @@ combinations are distinct enough to be readable and accessible.")
"1830r6ylpn3l7y2frl8cih5cpjgbkfrib9jq7jklf8aszhlsihf2"))))
(build-system qt-build-system)
(native-inputs (list extra-cmake-modules))
- (inputs (list qtcharts qtdeclarative-5 qtserialport))
+ (inputs (list qtcharts qtdeclarative-5 qtserialport-5))
(home-page "https://invent.kde.org/libraries/atcore")
(synopsis "Library for connection and management of 3D printers")
(description
diff --git a/gnu/packages/librewolf.scm b/gnu/packages/librewolf.scm
new file mode 100644
index 0000000000..fa83857c96
--- /dev/null
+++ b/gnu/packages/librewolf.scm
@@ -0,0 +1,622 @@
+;;; 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.75 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 "20240427150329")
+
+(define-public librewolf
+ (package
+ (name "librewolf")
+ (version "125.0.2-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 "09qzdaq9l01in9h4q14vyinjvvffycha2iyjqj5p4dd5jh6q5zma"))))
+ (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/fixed
+ 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-18
+ llvm-18
+ 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/libusb.scm b/gnu/packages/libusb.scm
index 57f30fca0d..948d5dbccc 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
@@ -137,11 +137,11 @@ version of libusb to run with newer libusb.")
(define-public libusb4java
;; There is no public release so we take the latest version from git.
- (let ((commit "396d642a57678a0d9663b062c980fe100cc0ea1e")
+ (let ((commit "0842e8104d8772da873314e233aa625f5651fd34")
(revision "1"))
(package
(name "libusb4java")
- (version (string-append "0-" revision "." (string-take commit 9)))
+ (version (git-version "1.3.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -150,23 +150,16 @@ version of libusb to run with newer libusb.")
(file-name (git-file-name name version))
(sha256
(base32
- "0wqgapalhfh9v38ycbl6i2f5lh1wpr6fzwn5dwd0rdacypkd1gml"))))
+ "16hz0h8fvrr764gwj90yny1kxpf0y7p2czr7pdrw3qby21fqkzrq"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; there are no tests
- #:phases
- (modify-phases %standard-phases
- ;; FIXME: libusb 1.0.22 deprecated libusb_set_debug, so the build
- ;; fails because libusb4java uses a deprecated procedure.
- (add-after 'unpack 'disable-Werror
- (lambda _
- (substitute* "CMakeLists.txt"
- (("-Werror") ""))
- #t))
- (add-before 'configure 'set-JAVA_HOME
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
- #t)))))
+ (list
+ #:tests? #f ;there are no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'set-JAVA_HOME
+ (lambda _
+ (setenv "JAVA_HOME" #$(this-package-native-input "jdk")))))))
(inputs
(list libusb))
(native-inputs
@@ -213,7 +206,7 @@ Go-like binding.")
(define-public java-usb4java
(package
(name "java-usb4java")
- (version "1.2.0")
+ (version "1.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -222,43 +215,38 @@ Go-like binding.")
(file-name (git-file-name name version))
(sha256
(base32
- "0aip6k24czz5g58qwb963mpick0b6ks774drfpdd8gcdvj9iv87j"))))
+ "0fwf8d2swgm8pmvssy53ixnc0pb5bfvc8iy42mf3dwgvr1zzvgmv"))))
(build-system ant-build-system)
(arguments
- `(#:jar-name "usb4java.jar"
- #:phases
- (modify-phases %standard-phases
- ;; Usually, native libusb4java libraries for all supported systems
- ;; would be included in the jar and extracted at runtime. Since we
- ;; build everything from source we cannot just bundle pre-built
- ;; binaries for other systems. Instead, we patch the loader to
- ;; directly return the appropriate library for this system. The
- ;; downside is that the jar will only work on the same architecture
- ;; that it was built on.
- (add-after 'unpack 'copy-libusb4java
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/main/java/org/usb4java/Loader.java"
- (("private static String extractLibrary" line)
- (string-append
- line "(final String a, final String b) {"
- "return \""
- (assoc-ref inputs "libusb4java") "/lib/libusb4java.so"
- "\"; }\n"
- "private static String _extractLibrary")))
- #t))
- (add-after 'unpack 'disable-broken-tests
- (lambda _
- (with-directory-excursion "src/test/java/org/usb4java"
- ;; These tests should only be run when USB devices are present.
- (substitute* '("LibUsbGlobalTest.java"
- "TransferTest.java")
- (("this.context = new Context\\(\\);")
- "this.context = null;")
- (("LibUsb.init") "//"))
- (substitute* "DeviceListIteratorTest.java"
- (("this.iterator.remove" line)
- (string-append "assumeUsbTestsEnabled();" line))))
- #t)))))
+ (list
+ #:jar-name "usb4java.jar"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Usually, native libusb4java libraries for all supported systems
+ ;; would be included in the jar and extracted at runtime. Since we
+ ;; build everything from source we cannot just bundle pre-built
+ ;; binaries for other systems. Instead, we patch the loader to
+ ;; directly return the appropriate library for this system. The
+ ;; downside is that the jar will only work on the same architecture
+ ;; that it was built on.
+ (add-after 'unpack 'copy-libusb4java
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/main/java/org/usb4java/Loader.java"
+ (("private static String extractLibrary" line)
+ (string-append
+ line "(final String a, final String b) {"
+ "return \""
+ (search-input-file inputs "/lib/libusb4java.so")
+ "\"; }\n"
+ "private static String _extractLibrary")))))
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ (with-directory-excursion "src/test/java/org/usb4java"
+ ;; These tests should only be run when USB devices are present.
+ (substitute* '("LibUsbGlobalTest.java"
+ "TransferTest.java")
+ (("this.context = new Context\\(\\);")
+ "this.context = null;"))))))))
(inputs
(list libusb4java java-commons-lang3 java-junit java-hamcrest-core))
(home-page "http://usb4java.org/")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1877ebe394..0b918cbc9c 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -502,17 +502,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "mainline" kernel.
-(define-public linux-libre-6.8-version "6.8.2")
+(define-public linux-libre-6.8-version "6.8.8")
(define-public linux-libre-6.8-gnu-revision "gnu")
(define deblob-scripts-6.8
(linux-libre-deblob-scripts
linux-libre-6.8-version
linux-libre-6.8-gnu-revision
(base32 "1kqwcm8baq3zx1z8jrgnvm9yps3y9jbf4pv1pbqqprpdscgl9089")
- (base32 "1bh8mwwarzp5l9bwa6235qqqmm0i14wix6lfs6wi7nszia5k9j0a")))
+ (base32 "1x7lmy8lff4g4hm67c97797ws594xv5c6l2v5mahj4xh4pb3b8d6")))
(define-public linux-libre-6.8-pristine-source
(let ((version linux-libre-6.8-version)
- (hash (base32 "013xs37cnan72baqvmn2qrcbs5bbcv1gaafrcx3a166gbgc25hws")))
+ (hash (base32 "1fiiyvwi6frn83z730w4mng2z4nwpspvhb6vjpxx3yk0snwxqk0w")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.8)))
@@ -522,7 +522,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
-(define-public linux-libre-6.7-version "6.7.11")
+(define-public linux-libre-6.7-version "6.7.12")
(define-public linux-libre-6.7-gnu-revision "gnu")
(define deblob-scripts-6.7
(linux-libre-deblob-scripts
@@ -532,7 +532,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "16zh4cj1q7khl943ij4fzc815plbcdllns93chv6725gsm338hsl")))
(define-public linux-libre-6.7-pristine-source
(let ((version linux-libre-6.7-version)
- (hash (base32 "0jhb175nlcncrp0y8md7p83yydlx6qqql6llav8djbv3f74rfr1c")))
+ (hash (base32 "113rf3jqfpf3wcv637zbq5ww2hpaaf23y6dsmkds01l8jkipjabc")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.7)))
@@ -541,37 +541,37 @@ 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.23")
+(define-public linux-libre-6.6-version "6.6.29")
(define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6
(linux-libre-deblob-scripts
linux-libre-6.6-version
linux-libre-6.6-gnu-revision
(base32 "1qm8f3fq4yx59f7b6yky5ryyf229ypxnry922sr8cy0s7mp62cmv")
- (base32 "17hq5pirvxaq1yscb204950xlakrd4r4mknjqayh1rzj4rzngzyq")))
+ (base32 "0s8ys7nz4p50c766f3z9h68vxnrsrgps1i5zskk3cjwik3q60an8")))
(define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version)
- (hash (base32 "1fd824ia3ngy65c5qaaln7m66ca4p80bwlnvvk76pw4yrccx23r0")))
+ (hash (base32 "1l6bcz0pwiby6q79va063767d0jxkkaf8rpqvaqqcb08116gf9kz")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.6)))
-(define-public linux-libre-6.1-version "6.1.83")
+(define-public linux-libre-6.1-version "6.1.88")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
linux-libre-6.1-version
linux-libre-6.1-gnu-revision
(base32 "1sf80f2i4vf888xjcn84ymn4w5ynn30ib9033zwmv7f09yvfhapy")
- (base32 "1ixyx604zwrvn1njxadhmd9j1w3jd13xx5za789l3kj5rgygdwsm")))
+ (base32 "0104m61mqhlmsjjprj51njwbffjcqgjln5bf1wknb6y3iiazl6ng")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
- (hash (base32 "145iw3wii7znhrqdmgnwhswk235g6gw8axjjji2cw4rn148rddl8")))
+ (hash (base32 "1lgqclvcxfs5c4my6fh041gxzgzz8i64cw43cf5ichy58pyh4sb9")))
(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.157")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@@ -581,12 +581,12 @@ 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 "0554qxnai66mpm3p5dln9dfsb392zr8zvwfwc9ks2sadsd8j7wmg")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
-(define-public linux-libre-5.10-version "5.10.214")
+(define-public linux-libre-5.10-version "5.10.215")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@@ -596,12 +596,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "12csh2zyjrqzgqcv799gv8h4xaw1irxh2zqddn4jqp5p7psx4j5k")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "0n7m82hw2rkw5mhdqw0vvmq7kq0s43jalr53sbv09wl17vai9w20")))
+ (hash (base32 "1af6h86flx96pszg006agpak2f9dkk2jqaazfykd7aafqdcs3747")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.273")
+(define-public linux-libre-5.4-version "5.4.274")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@@ -611,12 +611,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0x0xg0fcykpd117x3q0gim8jilhx922ashhckjvafxv2gk2zzjhj")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "0hs7af3mcnk5mmp3c5vjl187nva2kzsdx487nd12a8m7zb9wz84b")))
+ (hash (base32 "1m4yyyv48mfkzhqms88dv1jf39zsfp88az5zpqynmm1wlhhv9iza")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.311")
+(define-public linux-libre-4.19-version "4.19.312")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
@@ -626,7 +626,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0fgkp3v7qgqpn7l1987xcwwlrmwsbscqnxfv06p8nkavrhymrv3c")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "10dww3cyazcf3wjzh8igpa0frb8gvl6amnksh42zfkji4mskh2r6")))
+ (hash (base32 "0jppa4p73pssd7m3jpc7i6rgnj9gawjcgk4wmqyy87ijzrgzm553")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
@@ -1141,12 +1141,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
-(define-public linux-libre-version linux-libre-6.7-version)
-(define-public linux-libre-gnu-revision linux-libre-6.7-gnu-revision)
-(define-public linux-libre-pristine-source linux-libre-6.7-pristine-source)
-(define-public linux-libre-source linux-libre-6.7-source)
-(define-public linux-libre linux-libre-6.7)
-
(define-public linux-libre-6.8
(make-linux-libre* linux-libre-6.8-version
linux-libre-6.8-gnu-revision
@@ -1155,6 +1149,12 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
+(define-public linux-libre-version linux-libre-6.8-version)
+(define-public linux-libre-gnu-revision linux-libre-6.8-gnu-revision)
+(define-public linux-libre-pristine-source linux-libre-6.8-pristine-source)
+(define-public linux-libre-source linux-libre-6.8-source)
+(define-public linux-libre linux-libre-6.8)
+
(define-public linux-libre-6.6
(make-linux-libre* linux-libre-6.6-version
linux-libre-6.6-gnu-revision
@@ -1207,11 +1207,11 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
;; Linux-Libre.
;; Reference: <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-lts-version linux-libre-6.1-version)
-(define-public linux-libre-lts-gnu-revision linux-libre-6.1-gnu-revision)
-(define-public linux-libre-lts-pristine-source linux-libre-6.1-pristine-source)
-(define-public linux-libre-lts-source linux-libre-6.1-source)
-(define-public linux-libre-lts linux-libre-6.1)
+(define-public linux-libre-lts-version linux-libre-6.6-version)
+(define-public linux-libre-lts-gnu-revision linux-libre-6.6-gnu-revision)
+(define-public linux-libre-lts-pristine-source linux-libre-6.6-pristine-source)
+(define-public linux-libre-lts-source linux-libre-6.6-source)
+(define-public linux-libre-lts linux-libre-6.6)
;;;
@@ -1387,9 +1387,9 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
(define-public linux-libre-with-bpf
(let ((base-linux-libre
(make-linux-libre*
- linux-libre-6.6-version
- linux-libre-6.6-gnu-revision
- linux-libre-6.6-source
+ linux-libre-6.8-version
+ linux-libre-6.8-gnu-revision
+ linux-libre-6.8-source
'("x86_64-linux" "i686-linux" "armhf-linux"
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:extra-version "bpf"
@@ -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")
@@ -7142,7 +7143,7 @@ not as a replacement for it.")
(define-public hotspot
(package
(name "hotspot")
- (version "1.4.1")
+ (version "1.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7154,7 +7155,7 @@ not as a replacement for it.")
(file-name (git-file-name name version))
(sha256
(base32
- "0wz4qr3dwjji79x7kj44g7xp11qsscp3b95h6627k8p7xbpi2vhd"))))
+ "17m96h0iahfjhbsa9flmsmbczvliy34vqvayzyh8bhldd8yh768l"))))
(build-system qt-build-system)
(arguments
(list
@@ -7231,7 +7232,7 @@ not as a replacement for it.")
karchive
kconfig
kcoreaddons
- kddockwidgets-1 ;see https://github.com/KDAB/hotspot/issues/610
+ kddockwidgets
kgraphviewer
kio
kiconthemes
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 5ce928fc84..3c9de7fc77 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -12654,28 +12654,26 @@ be used with @code{cl-yacc}.")
(sbcl-package->ecl-package sbcl-cl-lex))
(define-public sbcl-cl-colors2
- (let ((commit "7a1410765e5186625df19a875cebba685e9e51bd")
- (revision "4"))
- (package
- (name "sbcl-cl-colors2")
- (version (git-version "0.5.4" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://codeberg.org/cage/cl-colors2.git")
- (commit commit)))
- (file-name (git-file-name "cl-colors2" version))
- (sha256
- (base32 "1xk3wshp21v193wbj1gs0czxaci00wwm957vmqi2dvlv0wgb2hfr"))))
- (build-system asdf-build-system/sbcl)
- (native-inputs
- (list sbcl-clunit2))
- (inputs
- (list sbcl-alexandria sbcl-cl-ppcre))
- (synopsis "Color library for Common Lisp")
- (description
- "This is a very simple color library for Common Lisp, providing:
+ (package
+ (name "sbcl-cl-colors2")
+ (version "0.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/cage/cl-colors2")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-colors2" version))
+ (sha256
+ (base32 "0vnvlq9xixs04768q7hapsi16cjp3ych6mypvs6chihd5dal4cnd"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-clunit2))
+ (inputs
+ (list sbcl-alexandria sbcl-cl-ppcre sbcl-parse-number))
+ (synopsis "Color library for Common Lisp")
+ (description
+ "This is a very simple color library for Common Lisp, providing:
@itemize
@item Types for representing colors in HSV, HSL, and RGB spaces.
@@ -12683,8 +12681,8 @@ be used with @code{cl-yacc}.")
@item Function printing colors to HEX, RGB, RGBA, and HSL.
@item Predefined colors from X11, SVG, and GDK.
@end itemize\n")
- (home-page "https://codeberg.org/cage/cl-colors2")
- (license license:boost1.0))))
+ (home-page "https://codeberg.org/cage/cl-colors2")
+ (license license:boost1.0)))
(define-public cl-colors2
(sbcl-package->cl-source-package sbcl-cl-colors2))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 08ffb017a0..8855e1ade3 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -55,6 +55,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system emacs)
#:use-module (guix build-system python)
+ #:use-module (guix build-system pyproject)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
@@ -550,7 +551,7 @@ output), and Binutils.")
("15.0.7" . "12sggw15sxq1krh1mfk3c1f07h895jlxbcifpwk3pznh4m1rjfy2")
("16.0.6" . "0jxmapg7shwkl88m4mqgfjv4ziqdmnppxhjz6vz51ycp2x4nmjky")
("17.0.6" . "1a7rq3rgw5vxm8y39fyzr4kv7w97lli4a0c1qrkchwk8p0n07hgh")
- ("18.1.2" . "06nfbn8yj8c65q4vamwdiqpxh0dggs6w781swd3285k4af0qwf62")))
+ ("18.1.4" . "1kddjysa6qj1qlb88a4m7lqni6922drgb37kj2hnspj9hrph891g")))
(define %llvm-patches
'(("14.0.6" . ("clang-14.0-libc-search-path.patch"))
@@ -558,7 +559,7 @@ output), and Binutils.")
("16.0.6" . ("clang-16.0-libc-search-path.patch"))
("17.0.6" . ("clang-17.0-libc-search-path.patch"
"clang-17.0-link-dsymutil-latomic.patch"))
- ("18.1.2" . ("clang-18.0-libc-search-path.patch"
+ ("18.1.4" . ("clang-18.0-libc-search-path.patch"
"clang-17.0-link-dsymutil-latomic.patch"))))
(define (llvm-monorepo version)
@@ -1454,7 +1455,7 @@ Library.")
(define-public llvm-18
(package
(inherit llvm-15)
- (version "18.1.2")
+ (version "18.1.4")
(source (llvm-monorepo version))))
(define-public clang-runtime-18
@@ -1470,7 +1471,7 @@ Library.")
(package-version llvm-18)))
(sha256
(base32
- "1whpd7szjy6i95gzy9jzf154dgk2jdbsp753sv2dx4lg9a9chkcc")))))
+ "1rrf9x7n3hvzqqijfx8v8kxa2i39jdf7c164my8k6vzr7aa0dj1c")))))
(define-public libomp-18
(package
@@ -1643,6 +1644,13 @@ components which highly leverage existing libraries in the larger LLVM Project."
(source (llvm-monorepo version))
(inputs (list llvm-17))))
+(define-public lld-18
+ (package
+ (inherit lld-15)
+ (version (package-version llvm-18))
+ (source (llvm-monorepo version))
+ (inputs (list llvm-18))))
+
(define-public lld lld-14)
(define* (make-lld-wrapper lld #:key lld-as-ld?)
@@ -2194,6 +2202,23 @@ LLVM."))))
(define-public ocaml-llvm-10 (make-ocaml-llvm llvm-10))
(define-public ocaml-llvm-11 (make-ocaml-llvm llvm-11))
+(define-public wllvm
+ (package
+ (name "wllvm")
+ (version "1.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "wllvm" version))
+ (sha256
+ (base32 "0cf31hixzq5bzkxv91rvadlhrpxzy934134scv4frj85bxbpl19y"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/SRI-CSL/whole-program-llvm")
+ (synopsis "Whole Program LLVM")
+ (description "This package provides a toolkit for building whole-program
+LLVM bitcode files.")
+ (license license:expat)))
+
(define-public llvm-julia
(package
(inherit llvm-13)
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/lua.scm b/gnu/packages/lua.scm
index c35bbe8bcd..7b17c0756b 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2019, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
@@ -375,49 +375,55 @@ directory structure and file attributes.")
(define (make-lua-ossl name lua)
(package
(name name)
- (version "20170903")
+ (version "20220711")
(source (origin
- (method url-fetch)
- (uri (string-append "https://25thandclement.com/~william/"
- "projects/releases/luaossl-" version ".tgz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wahern/luaossl")
+ (commit (string-append "rel-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "10392bvd0lzyibipblgiss09zlqh3a5zgqg1b9lgbybpqb9cv2k3"))))
+ "1a9pgmc6fbhgh1m9ksz9fq057yzz46npqgakcsy9vngg47xacfdb"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (lua-api-version ,(version-major+minor (package-version lua))))
- (list ,(string-append "CC=" (cc-for-target))
- "CFLAGS='-D HAVE_SYS_SYSCTL_H=0'" ; sys/sysctl.h is deprecated
- (string-append "prefix=" out)
- (string-append "LUA_APIS=" lua-api-version)))
+ (list
+ #:make-flags
+ #~(let ((lua-api-version #$(version-major+minor (package-version lua))))
+ (list (string-append "CC=" #$(cc-for-target))
+ "CFLAGS='-D HAVE_SYS_SYSCTL_H=0'" ; sys/sysctl.h is deprecated
+ (string-append "prefix=" #$output)
+ (string-append "LUA_APIS=" lua-api-version)))
#:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (lua-version ,(version-major+minor (package-version lua))))
- (setenv "LUA_CPATH"
- (string-append out "/lib/lua/" lua-version "/?.so;;"))
- (setenv "LUA_PATH"
- (string-append out "/share/lua/" lua-version "/?.lua;;"))
- (with-directory-excursion "regress"
- (for-each (lambda (f)
- (invoke "lua" f))
- (find-files "." "^[0-9].*\\.lua$"))))
- #t)))))
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda _
+ (let ((lua-version #$(version-major+minor (package-version lua))))
+ (setenv "LUA_CPATH"
+ (string-append #$output "/lib/lua/" lua-version "/?.so;;"))
+ (setenv "LUA_PATH"
+ (string-append #$output "/share/lua/" lua-version "/?.lua;;"))
+ (with-directory-excursion "regress"
+ (for-each (lambda (f)
+ (unless (member f (list
+ ;; This test is for luajit only
+ "./104-interposition-discarded.lua"
+ ;; needs cqueues, which needs ossl
+ "./148-custom-extensions.lua"))
+ (invoke "lua" f)))
+ (find-files "." "^[0-9].*\\.lua$")))))))))
(inputs
(list lua openssl))
(home-page "https://25thandclement.com/~william/projects/luaossl.html")
(synopsis "OpenSSL bindings for Lua")
(description "The luaossl extension module for Lua provides comprehensive,
-low-level bindings to the OpenSSL library, including support for certificate and
-key management, key generation, signature verification, and deep bindings to the
-distinguished name, alternative name, and X.509v3 extension interfaces. It also
-binds OpenSSL's bignum, message digest, HMAC, cipher, and CSPRNG interfaces.")
+low-level bindings to the OpenSSL library, including support for certificate
+and key management, key generation, signature verification, and deep bindings
+to the distinguished name, alternative name, and X.509v3 extension interfaces.
+It also binds OpenSSL's bignum, message digest, HMAC, cipher, and CSPRNG
+interfaces.")
(license license:expat)))
(define-public lua-ossl
@@ -479,86 +485,87 @@ secure session between the peers.")
(define (make-lua-cqueues name lua lua-ossl)
(package
(name name)
- (version "20171014")
+ (version "20200726")
(source (origin
- (method url-fetch)
- (uri (string-append "https://25thandclement.com/~william/"
- "projects/releases/cqueues-" version ".tgz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wahern/cqueues")
+ (commit (string-append "rel-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1dabhpn6r0hlln8vx9hxm34pfcm46qzgpb2apmziwg5z51fi4ksb"))))
+ "17gwqndlga6gnishgs6wk8cvgwzanddr42yikkg2xd4nanhcg8z9"))))
(build-system gnu-build-system)
(arguments
- `(#:modules ((guix build gnu-build-system)
+ (list
+ #:modules '((guix build gnu-build-system)
(guix build utils)
(ice-9 string-fun))
- #:make-flags
- (let ((out (assoc-ref %outputs "out"))
- (lua-api-version ,(version-major+minor (package-version lua))))
- (list ,(string-append "CC=" (cc-for-target))
- (string-append "LUA_APIS=" lua-api-version)))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'check)
- (replace 'install
- (lambda* (#:key make-flags outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (apply invoke "make" "install"
- (append make-flags
- (list (string-append "DESTDIR=" out)
- "prefix="))))))
- (add-after 'install 'check
- (lambda* (#:key inputs outputs make-flags #:allow-other-keys)
- (let*
- ((lua-version ,(version-major+minor (package-version lua)))
- (env-suffix (if (equal? lua-version "5.1")
- ""
- (string-append
- "_"
- (string-replace-substring lua-version "." "_"))))
-
- (lua-ossl (assoc-ref inputs "lua-ossl"))
- (out (assoc-ref outputs "out"))
-
- (lua-cpath (lambda (p)
- (string-append p "/lib/lua/" lua-version "/?.so")))
- (lua-path (lambda (p)
- (string-append p "/share/lua/" lua-version "/?.lua"))))
- ;; The test suite sets Lua-version-specific search-path variables
- ;; when available so we must do the same, as these take
- ;; precedence over the generic "LUA_CPATH" and "LUA_PATH"
- (setenv (string-append "LUA_CPATH" env-suffix)
- (string-append
- (string-join (map lua-cpath (list out lua-ossl)) ";")
- ";;"))
- (setenv (string-append "LUA_PATH" env-suffix)
- (string-append
- (string-join (map lua-path (list out lua-ossl)) ";")
- ";;"))
-
- ;; Skip regression tests we expect to fail
- (with-directory-excursion "regress"
- (for-each (lambda (f)
- (rename-file f (string-append f ".skip")))
- (append
- ;; Regression tests that require network
- ;; connectivity
- '("22-client-dtls.lua"
- "30-starttls-completion.lua"
- "62-noname.lua"
- "153-dns-resolvers.lua")
-
- ;; Regression tests that require LuaJIT
- '("44-resolvers-gc.lua"
- "51-join-defunct-thread.lua")
-
- ;; Regression tests that require Lua 5.3
- (if (not (equal? lua-version "5.3"))
- '("152-thread-integer-passing.lua")
- '()))))
-
- (apply invoke "make" "check" make-flags)))))))
+ #:make-flags
+ #~(let ((lua-api-version #$(version-major+minor (package-version lua))))
+ (list (string-append "CC=" #$(cc-for-target))
+ (string-append "LUA_APIS=" lua-api-version)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "install"
+ (append make-flags
+ (list (string-append "DESTDIR=" #$output)
+ "prefix=")))))
+ (add-after 'install 'check
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (let*
+ ((lua-version #$(version-major+minor (package-version lua)))
+ (env-suffix (if (equal? lua-version "5.1")
+ ""
+ (string-append
+ "_"
+ (string-replace-substring lua-version "." "_"))))
+
+ (lua-cpath (lambda (p)
+ (string-append p "/lib/lua/" lua-version "/?.so")))
+ (lua-path (lambda (p)
+ (string-append p "/share/lua/" lua-version "/?.lua"))))
+ ;; The test suite sets Lua-version-specific search-path variables
+ ;; when available so we must do the same, as these take
+ ;; precedence over the generic "LUA_CPATH" and "LUA_PATH"
+ (setenv (string-append "LUA_CPATH" env-suffix)
+ (string-append
+ (string-join (map lua-cpath (list #$output #$lua-ossl)) ";")
+ ";;"))
+ (setenv (string-append "LUA_PATH" env-suffix)
+ (string-append
+ (string-join (map lua-path (list #$output #$lua-ossl)) ";")
+ ";;"))
+
+ ;; Skip regression tests we expect to fail
+ (with-directory-excursion "regress"
+ (for-each (lambda (f)
+ (rename-file f (string-append f ".skip")))
+ (append
+ ;; Regression tests that require network
+ ;; connectivity
+ '("22-client-dtls.lua"
+ "30-starttls-completion.lua"
+ "62-noname.lua"
+ "153-dns-resolvers.lua")
+
+ ;; Regression tests that require LuaJIT
+ '("44-resolvers-gc.lua"
+ "51-join-defunct-thread.lua"
+ ;; These both need the ffi module.
+ "73-starttls-buffering.lua"
+ "87-alpn-disappears.lua")
+
+ ;; Regression tests that require Lua 5.3
+ (if (not (equal? lua-version "5.3"))
+ '("152-thread-integer-passing.lua")
+ '()))))
+
+ (apply invoke "make" "check" make-flags)))))))
(native-inputs
(list m4))
(inputs
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 47989b129f..4e54ca3350 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3510,7 +3510,7 @@ learning libraries.")
(define-public xgboost
(package
(name "xgboost")
- (version "1.5.2")
+ (version "1.7.6")
(source
(origin
(method git-fetch)
@@ -3520,7 +3520,7 @@ learning libraries.")
(file-name (git-file-name name version))
(patches (search-patches "xgboost-use-system-dmlc-core.patch"))
(sha256
- (base32 "0qx04y7cz8z7qv6bk9q7d7ba9b7xzj53l83l2x9ykdwhzacc3dn0"))))
+ (base32 "16fbm5y3hn6ccflmbdlmn7krrdq7c0az3mxd8j1d23s9ky8niw05"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DGOOGLE_TEST=ON")))
@@ -3547,40 +3547,7 @@ in a fast and accurate way.")
(build-system pyproject-build-system)
(arguments
(list
- #:test-flags
- '(list "tests/python"
- ;; FIXME: CLI tests fail with PermissionError.
- "--ignore" "tests/python/test_cli.py"
- "-k"
- (string-append
- "not test_cli_regression_demo"
- ;; These tests use the Boston dataset that has been
- ;; removed from scipy.
- " and not test_sklearn_demo"
- " and not test_sklearn_parallel_demo"
- " and not test_predict_shape"
- " and not test_num_parallel_tree"
- " and not test_boston_housing_regression"
- " and not test_boston_housing_rf_regression"
- " and not test_parameter_tuning"
- " and not test_regression_with_custom_objective"
- " and not test_RFECV"
- ;; Pandas incompatibility? Says:
- ;; '_CalibratedClassifier' object has no attribute
- ;; 'base_estimator'
- " and not test_pandas_input"
- ;; Accuracy problems?
- " and not test_exact"
- " and not test_approx"
- " and not test_hist"
- ;; The tests below open a network connection.
- " and not test_model_compatibility"
- " and not test_get_group"
- " and not test_cv_no_shuffle"
- " and not test_cv"
- " and not test_training"
- ;; "'['./runexp.sh']' returned non-zero exit status 1"
- " and not test_cli_binary_classification"))
+ #:tests? #f ; all tests require network access
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'preparations
diff --git a/gnu/packages/magic-wormhole.scm b/gnu/packages/magic-wormhole.scm
index 3c63319710..dbb943c5c6 100644
--- a/gnu/packages/magic-wormhole.scm
+++ b/gnu/packages/magic-wormhole.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2024 normally_js <normally_js@posteo.net>
;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2024 TakeV <takev@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +27,7 @@
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (gnu packages check)
+ #:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz))
@@ -101,14 +103,14 @@ together, allowing them to pretend they have a direct connection.")
(define-public magic-wormhole
(package
(name "magic-wormhole")
- (version "0.13.0")
+ (version "0.14.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "magic-wormhole" version))
(sha256
(base32
- "05hm5pnrxli69a28h3pbgx6s6pwy8279l506kha7y3i7hs1dcfxc"))))
+ "105hsv7ck83bs29929zpb29aygr69q00mxpgq9xw7xxzi2gj6v80"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -130,12 +132,14 @@ together, allowing them to pretend they have a direct connection.")
python-click
python-hkdf
python-humanize
+ python-iterable-io
python-noiseprotocol
python-pynacl
python-spake2
python-tqdm
python-twisted
- python-txtorcon))
+ python-txtorcon
+ python-zipstream-ng))
(home-page "https://github.com/magic-wormhole/magic-wormhole")
(synopsis "Securely transfer data between computers")
(description
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index e0fbd0a5ff..45e189fe07 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -17,7 +17,7 @@
;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2016–2023 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016–2024 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -51,6 +51,7 @@
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022 ( <paren@disroot.org>
+;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it>
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
;;; Copyright © 2023 Arjan Adriaanse <arjan@adriaan.se>
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
@@ -455,6 +456,48 @@ software. GNU Mailutils provides the following commands:
Maildir, MH, MMDF or mbox folders.")
(license license:gpl2))))
+(define-public nmail
+ (package
+ (name "nmail")
+ (version "4.54")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/d99kris/nmail/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bk2kq0pk1r4w5xv94yh37vrwxs8lczjg11gfraxh9cxyjigwsrp"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ctest" "--output-on-failure")))))))
+ (inputs
+ (list curl
+ cyrus-sasl
+ expat
+ file
+ libetpan
+ ncurses
+ openssl
+ sqlite
+ (list util-linux "lib")
+ xapian
+ zlib))
+ (native-inputs (list pkg-config))
+ (home-page "https://github.com/d99kris/nmail")
+ (synopsis "Terminal-based email client")
+ (description
+ "@command{nmail} is an easily configurable terminal-based email client
+with a @code{ncurses} user interface similar to @code{alpine} and
+@code{pine}.")
+ (license license:expat)))
+
(define-public go-gitlab.com-shackra-goimapnotify
(package
(name "go-gitlab.com-shackra-goimapnotify")
@@ -1216,14 +1259,14 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
(define-public mu
(package
(name "mu")
- (version "1.12.2")
+ (version "1.12.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/djcb/mu/releases/download/v"
version "/mu-" version ".tar.xz"))
(sha256
- (base32 "065nqrsz5bpvhniaacfq67fh78m5pm96svingdviw2hj1y21s6kv"))))
+ (base32 "1ja4b9r9712zjvz8223r5vh2kmmyhkrmb7cbhxdn9hbpa5n16hdx"))))
(build-system meson-build-system)
(native-inputs
(list pkg-config
@@ -4114,7 +4157,7 @@ It is a replacement for the @command{urlview} program.")
(define-public mumi
(package
(name "mumi")
- (version "0.0.8")
+ (version "0.0.10")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4123,7 +4166,7 @@ It is a replacement for the @command{urlview} program.")
(file-name (git-file-name name version))
(sha256
(base32
- "1z556pxsz0zx95gd5b4hwkmwcvf3jyz7njkb3zwbhrwnpgygnbyl"))))
+ "1rfhbi25kh84whi88423736v2vxgsc6fdps3kqrc1gs6dni9li17"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 7b40f395f3..4dd45a4a27 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2021, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2021, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Mark H Weaver <mhw@netris.org>
@@ -55,7 +55,8 @@
%guile-bootstrap-tarball
%bootstrap-tarballs
- %guile-static-stripped))
+ %guile-static-stripped
+ %guile-static-initrd))
;;; Commentary:
;;;
@@ -674,7 +675,8 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
"guile-3.0-linux-syscalls.patch"
"guile-3.0-relocatable.patch")))
-(define* (make-guile-static-stripped static-guile)
+(define* (make-guile-static-stripped static-guile
+ #:optional (directories-to-remove '()))
(package
(inherit static-guile)
(name (string-append (package-name static-guile) "-stripped"))
@@ -702,6 +704,12 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(mkdir (string-append out "/bin"))
(copy-file guile1 guile2)
+ ;; Optionally remove additional directories.
+ (for-each (lambda (directory)
+ (delete-file-recursively
+ (string-append out "/" directory)))
+ '#$directories-to-remove)
+
;; Verify that the relocated Guile works.
#$@(if (%current-target-system)
'()
@@ -720,10 +728,29 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(synopsis "Minimal statically-linked and relocatable Guile")))
(define %guile-static-stripped
- ;; A stripped static Guile 3.0 binary, for use in initrds
- ;; and during bootstrap.
+ ;; A stripped static Guile 3.0 binary for use during bootstrap.
(make-guile-static-stripped %guile-static-3.0))
+(define %guile-static-initrd
+ ;; A stripped static Guile 3.0 binary for use in initrds. Remove various
+ ;; modules that are useless in an initrd. Note: Keep most of language/
+ ;; because it is needed for Bournish.
+ (package
+ (inherit
+ (make-guile-static-stripped
+ %guile-static-3.0
+ (append-map (lambda (directory)
+ (list (string-append "lib/guile/3.0/ccache/" directory)
+ (string-append "share/guile/3.0/" directory)))
+ '("language/brainfuck"
+ "language/ecmascript"
+ "language/elisp"
+ "oop"
+ "scripts"
+ "texinfo"
+ "web"))))
+ (name "guile-static-initrd")))
+
(define (tarball-package pkg)
"Return a package containing a tarball of PKG."
(package
diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index 6d891ee313..2cc3d0415d 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022, 2024 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -44,15 +45,21 @@
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages imagemagick)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
+ #:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
- #:use-module (gnu packages web))
+ #:use-module (gnu packages tex)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xml))
(define-public hoedown
(package
@@ -126,6 +133,114 @@ convert it to structurally valid XHTML (or HTML).")
(license (license:non-copyleft "file://License.text"
"See License.text in the distribution."))))
+(define-public latexml
+ (package
+ (name "latexml")
+ (version "0.8.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brucemiller/LaTeXML")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lppm66fxadsbn73xh0nfqdi4y6d9j6xph1slvlp6ynrfbnn5p6s"))))
+ (build-system perl-build-system)
+ (arguments
+ (let ((wraplibs
+ (list "perl-archive-zip"
+ "perl-common-sense"
+ "perl-db-file"
+ "perl-encode-locale"
+ "perl-file-which"
+ "perl-getopt-long"
+ "perl-http-date"
+ "perl-http-message"
+ "perl-image-magick"
+ "perl-image-size"
+ "perl-io-string"
+ "perl-json-xs"
+ "perl-libwww"
+ "perl-mime-base64"
+ "perl-parse-recdescent"
+ "perl-pod-parser"
+ "perl-text-unidecode"
+ "perl-time-hires"
+ "perl-try-tiny"
+ "perl-types-serialiser"
+ "perl-uri"
+ "perl-xml-libxml"
+ "perl-xml-libxslt"
+ "perl-xml-sax-base")))
+ (list
+ ;; some tests skip due to missing dependencies
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'find-itself
+ ;; Fix run-time 'Can't locate [].pm in @INC' failure and remove
+ ;; need for extensive set of propagated inputs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (with-directory-excursion (string-append #$output "/bin")
+ (for-each
+ (lambda* (program)
+ (wrap-program program
+ `("PERL5LIB" ":" prefix
+ (,(string-append #$output "/lib/perl5/site_perl")
+ ,#$@(map (lambda (in)
+ (file-append
+ (this-package-input in) "/lib/perl5/site_perl"))
+ wraplibs)))))
+ (find-files "." ".*")))))))))
+ (inputs
+ (list bash-minimal
+ libxml2
+ libxslt
+ perl
+ perl-archive-zip
+ perl-common-sense
+ perl-db-file
+ perl-encode-locale
+ perl-file-which
+ perl-getopt-long
+ perl-http-date
+ perl-http-message
+ perl-image-magick
+ perl-image-size
+ perl-io-string
+ perl-json-xs
+ perl-libwww
+ perl-mime-base64
+ perl-parse-recdescent
+ perl-pod-parser
+ perl-text-unidecode
+ perl-time-hires
+ perl-try-tiny
+ perl-types-serialiser
+ perl-uri
+ perl-xml-libxml
+ perl-xml-libxslt
+ perl-xml-sax-base))
+ (native-inputs
+ (list texlive-bin
+ perl-test-more-utf8
+ perl-extutils-manifest
+ perl-data-dumper
+ perl-ipc-run3
+ perl-file-temp))
+ (home-page "https://math.nist.gov/~BMiller/LaTeXML/")
+ (synopsis "LaTeX to XML, HTML, MathML, epub and Jats converter")
+ (description "This package provides a LaTeX converter, with the following goals:
+@itemize
+@item Faithful emulation of TEX’s behaviour;
+@item Easily extensible;
+@item Lossless, preserving both semantic and presentation cues;
+@item Use an abstract LATEX-like, extensible, document type;
+@item Infer the semantics of mathematical content
+@end itemize")
+ (license license:cc0)))
+
(define-public lowdown
(package
(name "lowdown")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 2e8da8648b..361f2f7b68 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>
@@ -48,7 +48,7 @@
;;; Copyright © 2021, 2022 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
-;;; Copyright © 2021, 2023 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021, 2023, 2024 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
@@ -2926,7 +2926,7 @@ can solve two kinds of problems:
(define-public octave-cli
(package
(name "octave-cli")
- (version "8.4.0")
+ (version "9.1.0")
(source
(origin
(method url-fetch)
@@ -2934,7 +2934,7 @@ can solve two kinds of problems:
version ".tar.xz"))
(sha256
(base32
- "1a58zyrl1lx6b6wr2jbf6w806vjxr3jzbh6n85iinag47qxdg6kg"))))
+ "0jqk3amfkqzn1c5rzb9gm3v7r2y5xcgx6cgi4r5w8mpa9814nrgd"))))
(build-system gnu-build-system)
(inputs
(list alsa-lib
@@ -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))
@@ -4986,7 +4993,9 @@ full text searching.")
(base32
"15zkvjbdxiiazhvh0g6y0ig9pgc4rvwnzplmnkx9dffz4xfn69w1"))))
(build-system cmake-build-system)
- (arguments `(#:tests? #f)) ; no test target
+ (arguments
+ `(#:tests? #f ; no test target
+ #:configure-flags '("-DOPENBLAS_PROVIDES_LAPACK=ON")))
(inputs
(list openblas arpack-ng))
(home-page "https://arma.sourceforge.net/")
diff --git a/gnu/packages/maven-parent-pom.scm b/gnu/packages/maven-parent-pom.scm
index 660790b019..60581f520b 100644
--- a/gnu/packages/maven-parent-pom.scm
+++ b/gnu/packages/maven-parent-pom.scm
@@ -92,6 +92,14 @@
(make-apache-parent-pom
"25" "1vwx2fpgk7cn2pnlnx26df26vndiwwn5l7ngakj0vwal5pmp6115"))
+(define-public apache-parent-pom-27
+ (make-apache-parent-pom
+ "27" "07087qdcwadsg3va5rc9xb7k89im3fm2g297lpmfh1aggn7cpc00"))
+
+(define-public apache-parent-pom-29
+ (make-apache-parent-pom
+ "29" "0fj078bgzs0r24x66ph5bbwkkc5s9d1qh57hmlpisg4mdi0l48s9"))
+
(define* (make-apache-commons-parent-pom version hash parent
#:key (tag-prefix "commons-parent-"))
(hidden-package
@@ -443,6 +451,26 @@ other projects as their parent pom.")
tool. This package contains the Maven parent POM.")
(license license:asl2.0))))
+(define-public maven-parent-pom-39
+ (make-maven-parent-pom
+ "39" "1123nmm63nrsfy9i35zn12glswc2sy9bsj4fir2z9yh93kraky1y"
+ apache-parent-pom-29
+ #:replacements
+ (delay
+ `(("org.codehaus.plexus"
+ ("plexus-component-annotations" .
+ ,(package-version java-plexus-component-annotations)))))))
+
+(define-public maven-parent-pom-37
+ (make-maven-parent-pom
+ "37" "0c8yham28si4zadpv9v2i61gl3in518jls4nsawfhx42b6x3371j"
+ apache-parent-pom-27
+ #:replacements
+ (delay
+ `(("org.codehaus.plexus"
+ ("plexus-component-annotations" .
+ ,(package-version java-plexus-component-annotations)))))))
+
(define-public maven-parent-pom-35
(make-maven-parent-pom
"35" "0pg9k7l5pcbghmc89i11g900pbzznvf5sfdfzlqfwpihqb2g8iab"
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index fc3a63c263..67b95a5f7b 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -40,7 +40,7 @@
(define-public maven-resolver-api
(package
(name "maven-resolver-api")
- (version "1.6.3")
+ (version "1.9.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -49,7 +49,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0hbbbxj14qyq8pccyab96pjqq90jnjmid1pml9kx55c5smfpjn37"))))
+ "0s18vivvapmrk407syrc8ib2qpmp01i3k46h6gqp7961n1p9wzlq"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "maven-resolver-api.jar"
@@ -90,7 +90,7 @@
#t))
(replace 'install
(install-pom-file "pom.xml")))))
- (propagated-inputs '())))
+ (propagated-inputs (list maven-parent-pom-37))))
(define-public maven-resolver-spi
(package
@@ -140,7 +140,7 @@ ease testing of the repository system.")))
(propagated-inputs
(list maven-resolver-api))
(native-inputs
- (list java-junit java-hamcrest-core maven-resolver-test-util))
+ (list java-junit java-hamcrest-all maven-resolver-test-util))
(synopsis "Utility classes for the maven repository system")
(description "This package contains a collection of utility classes to
ease usage of the repository system.")))
@@ -174,6 +174,35 @@ ease usage of the repository system.")))
(description "This package contains a repository connector implementation
for repositories using URI-based layouts.")))
+(define-public maven-resolver-named-locks
+ (package
+ (inherit maven-resolver-api)
+ (name "maven-resolver-named-locks")
+ (arguments
+ `(#:jar-name "maven-resolver-named-locks.jar"
+ #:source-dir "maven-resolver-named-locks/src/main/java"
+ #:test-dir "maven-resolver-named-locks/src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'generate-sisu
+ (lambda _
+ (mkdir-p "build/classes/META-INF/sisu")
+ (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
+ (lambda _
+ (display "org.eclipse.aether.named.providers.FileLockNamedLockFactory
+org.eclipse.aether.named.providers.LocalReadWriteLockNamedLockFactory
+org.eclipse.aether.named.providers.LocalSemaphoreNamedLockFactory
+org.eclipse.aether.named.providers.NoopNamedLockFactory\n")))))
+ (replace 'install
+ (install-from-pom "maven-resolver-named-locks/pom.xml")))))
+ (propagated-inputs
+ (list java-slf4j-api))
+ (native-inputs
+ (list java-javax-inject java-junit java-hamcrest-all))
+ (synopsis "Maven artifact resolver named locks")
+ (description "This package contains a synchronization utility implementation
+using named locks.")))
+
(define-public maven-resolver-impl
(package
(inherit maven-resolver-api)
@@ -182,6 +211,7 @@ for repositories using URI-based layouts.")))
`(#:jar-name "maven-resolver-impl.jar"
#:source-dir "maven-resolver-impl/src/main/java"
#:test-dir "maven-resolver-impl/src/test"
+ #:tests? #f; require more recent hamcrest
#:phases
(modify-phases %standard-phases
(add-before 'build 'generate-sisu
@@ -189,37 +219,60 @@ for repositories using URI-based layouts.")))
(mkdir-p "build/classes/META-INF/sisu")
(with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
(lambda _
- (display
- (string-append
- ;; Build this list by looking for files containing "@Named"
- "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
- "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
- "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
- "org.eclipse.aether.internal.impl.DefaultDeployer\n"
- "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
- "org.eclipse.aether.internal.impl.DefaultInstaller\n"
- "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
- "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
- "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
- "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
- "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
- "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
- "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
- "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
- "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
- "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
- "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
- "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
- "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
- "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
- "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
- "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
- "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
- #t))
+ ;; Build this list by looking for files containing "@Named"
+ (display "org.eclipse.aether.internal.impl.DefaultArtifactResolver
+org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider
+org.eclipse.aether.internal.impl.DefaultDeployer
+org.eclipse.aether.internal.impl.DefaultFileProcessor
+org.eclipse.aether.internal.impl.DefaultInstaller
+org.eclipse.aether.internal.impl.DefaultLocalPathComposer
+org.eclipse.aether.internal.impl.DefaultLocalPathPrefixComposerFactory
+org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider
+org.eclipse.aether.internal.impl.DefaultMetadataResolver
+org.eclipse.aether.internal.impl.DefaultOfflineController
+org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager
+org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider
+org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher
+org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider
+org.eclipse.aether.internal.impl.DefaultRepositorySystem
+org.eclipse.aether.internal.impl.DefaultRepositorySystemLifecycle
+org.eclipse.aether.internal.impl.DefaultTrackingFileManager
+org.eclipse.aether.internal.impl.DefaultTransporterProvider
+org.eclipse.aether.internal.impl.DefaultUpdateCheckManager
+org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer
+org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory
+org.eclipse.aether.internal.impl.LoggerFactoryProvider
+org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory
+org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory
+org.eclipse.aether.internal.impl.checksum.DefaultChecksumAlgorithmFactorySelector
+org.eclipse.aether.internal.impl.checksum.Md5ChecksumAlgorithmFactory
+org.eclipse.aether.internal.impl.checksum.Sha1ChecksumAlgorithmFactory
+org.eclipse.aether.internal.impl.checksum.Sha256ChecksumAlgorithmFactory
+org.eclipse.aether.internal.impl.checksum.Sha512ChecksumAlgorithmFactory
+org.eclipse.aether.internal.impl.checksum.SparseDirectoryTrustedChecksumsSource
+org.eclipse.aether.internal.impl.checksum.SummaryFileTrustedChecksumsSource
+org.eclipse.aether.internal.impl.checksum.TrustedToProvidedChecksumsSourceAdapter
+org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector
+org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector
+org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector
+org.eclipse.aether.internal.impl.filter.DefaultRemoteRepositoryFilterManager
+org.eclipse.aether.internal.impl.filter.GroupIdRemoteRepositoryFilterSource
+org.eclipse.aether.internal.impl.filter.PrefixesRemoteRepositoryFilterSource
+org.eclipse.aether.internal.impl.resolution.TrustedChecksumsArtifactResolverPostProcessor
+org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory
+org.eclipse.aether.internal.impl.synccontext.DefaultSyncContextFactory
+org.eclipse.aether.internal.impl.synccontext.legacy.DefaultSyncContextFactory
+org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapterFactoryImpl
+org.eclipse.aether.internal.impl.synccontext.named.providers.DiscriminatingNameMapperProvider
+org.eclipse.aether.internal.impl.synccontext.named.providers.FileGAVNameMapperProvider
+org.eclipse.aether.internal.impl.synccontext.named.providers.FileHashingGAVNameMapperProvider
+org.eclipse.aether.internal.impl.synccontext.named.providers.GAVNameMapperProvider
+org.eclipse.aether.internal.impl.synccontext.named.providers.StaticNameMapperProvider\n")))))
(replace 'install
(install-from-pom "maven-resolver-impl/pom.xml")))))
(propagated-inputs
(list maven-resolver-api
+ maven-resolver-named-locks
maven-resolver-spi
maven-resolver-util
java-commons-lang3
@@ -229,7 +282,7 @@ for repositories using URI-based layouts.")))
java-slf4j-api
maven-resolver-parent-pom))
(native-inputs
- (list java-junit maven-resolver-test-util))))
+ (list java-hamcrest-all java-junit java-mockito-1 maven-resolver-test-util))))
(define-public maven-resolver-transport-wagon
(package
@@ -247,49 +300,9 @@ for repositories using URI-based layouts.")))
(mkdir-p "build/classes/META-INF/sisu")
(with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
(lambda _
- (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
- #t))
- (add-before 'build 'generate-components.xml
- (lambda _
- (mkdir-p "build/classes/META-INF/plexus")
- (with-output-to-file "build/classes/META-INF/plexus/components.xml"
- (lambda _
- (display
- (string-append
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-<component-set>
- <components>
- <component>
- <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
- <role-hint>plexus</role-hint>
- <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
- <description />
- <isolated-realm>false</isolated-realm>
- <requirements>
- <requirement>
- <role>org.codehaus.plexus.PlexusContainer</role>
- <role-hint />
- <field-name>container</field-name>
- </requirement>
- </requirements>
- </component>
- <component>
- <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
- <role-hint>plexus</role-hint>
- <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
- <description />
- <isolated-realm>false</isolated-realm>
- <requirements>
- <requirement>
- <role>org.codehaus.plexus.PlexusContainer</role>
- <role-hint />
- <field-name>container</field-name>
- </requirement>
- </requirements>
- </component>
- </components>
-</component-set>\n"))))
- #t)))))
+ (display "org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator
+org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider
+org.eclipse.aether.transport.wagon.WagonTransporterFactory"))))))))
(inputs
`(("maven-resolver-api" ,maven-resolver-api)
("maven-resolver-spi" ,maven-resolver-spi)
@@ -344,8 +357,7 @@ Maven Wagon, for use in Maven.")))
maven-resolver-util
maven-wagon-provider-api))
(native-inputs
- (list java-asm
- java-aopalliance
+ (list java-aopalliance
java-cglib
java-guava
java-guice
@@ -375,7 +387,9 @@ files, for use in Maven.")))
(mkdir-p "build/classes/META-INF/sisu")
(with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
(lambda _
- (display "org.eclipse.aether.transport.http.HttpTransporterFactory\n"))))))))
+ (display "org.eclipse.aether.transport.http.HttpTransporterFactory
+org.eclipse.aether.transport.http.Nexus2ChecksumExtractor
+org.eclipse.aether.transport.http.XChecksumChecksumExtractor\n"))))))))
(inputs
(list java-eclipse-sisu-inject
java-eclipse-sisu-plexus
@@ -393,7 +407,6 @@ files, for use in Maven.")))
java-httpcomponents-httpcore))
(native-inputs
(list java-aopalliance
- java-asm
java-cglib
java-eclipse-aether-api
java-eclipse-jetty-http
@@ -1119,13 +1132,13 @@ gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
(define maven-pom
(package
(name "maven-pom")
- (version "3.8.6")
+ (version "3.9.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/maven/"
"maven-3/" version "/source/"
"apache-maven-" version "-src.tar.gz"))
- (sha256 (base32 "0jszmcaxp597a62ajrc478jxix1qmw4pknhiygsbjdy3kccc7gvj"))
+ (sha256 (base32 "0s8ds2bqkdi2yrcwbd3mkszh6l4hf56j9jz47hkpd7i3zh1hmr4n"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1199,7 +1212,7 @@ gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
(replace 'install
(install-pom-file "pom.xml")))))
(propagated-inputs
- (list maven-parent-pom-35))
+ (list maven-parent-pom-39))
(home-page "https://maven.apache.org/")
(synopsis "Build system")
(description "Apache Maven is a software project management and comprehension
@@ -1262,7 +1275,6 @@ and compares versions:")))
java-plexus-component-annotations
java-guice
java-cglib
- java-asm
java-eclipse-sisu-inject
java-javax-inject
java-plexus-classworlds
@@ -1473,7 +1485,6 @@ inheritance, interpolation, @dots{}")))
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("java-guice" ,java-guice)
("java-cglib" ,java-cglib)
- ("java-asm" ,java-asm)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-javax-inject" ,java-javax-inject)
("java-plexus-utils" ,java-plexus-utils)
@@ -1819,6 +1830,7 @@ artifactId=maven-core" ,(package-version maven-core-bootstrap))))
#:source-dir "maven-embedder/src/main/java"
#:test-dir "maven-embedder/src/test"
#:test-exclude (list "**/MavenCliTest.java")
+ #:tests? #f; require junit 4.13
#:jdk ,icedtea-8
#:phases
(modify-phases %standard-phases
@@ -1840,9 +1852,9 @@ artifactId=maven-core" ,(package-version maven-core-bootstrap))))
file mode "maven-embedder/src/main/java" version
"false" "true"))
(let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
- (modello-single-mode file "1.0.0" "java")
- (modello-single-mode file "1.0.0" "xpp3-reader")
- (modello-single-mode file "1.0.0" "xpp3-writer"))
+ (modello-single-mode file "1.1.0" "java")
+ (modello-single-mode file "1.1.0" "xpp3-reader")
+ (modello-single-mode file "1.1.0" "xpp3-writer"))
#t))
(add-before 'check 'fix-test-paths
(lambda _
@@ -2103,7 +2115,6 @@ logging support.")))
("java-guice" ,java-guice)
("java-guava" ,java-guava)
("java-cglib" ,java-cglib)
- ("java-asm" ,java-asm)
("java-modello-plugins-java" ,java-modello-plugins-java)
("java-modello-plugins-xml" ,java-modello-plugins-xml)
("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
@@ -2120,6 +2131,8 @@ logging support.")))
("java-jsr250" ,java-jsr250)
("java-cdi-api" ,java-cdi-api)
("java-junit" ,java-junit)
+ ("java-mockito-1" ,java-mockito-1)
+ ("java-objenesis" ,java-objenesis)
("maven-resolver-impl" ,maven-resolver-impl)
("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
@@ -2164,7 +2177,8 @@ layer for plugins that need to keep Maven2 compatibility.")))
"maven-settings" "maven-settings-builder" "maven-plugin-api"
"maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
"maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
- "maven-resolver-connector-basic" "maven-resolver-provider"
+ "maven-resolver-connector-basic" "maven-resolver-named-locks"
+ "maven-resolver-provider"
"maven-resolver-transport-wagon" "maven-slf4j-provider"
"maven-wagon-provider-api"
"maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
@@ -2175,7 +2189,8 @@ layer for plugins that need to keep Maven2 compatibility.")))
"java-javax-inject" "java-plexus-component-annotations"
"java-plexus-utils" "java-plexus-interpolation"
"java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
- "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
+ "java-guava-futures-failureaccess" "java-jansi"
+ "java-jsr250" "java-cdi-api" "java-commons-cli"
"java-commons-io" "java-commons-lang3" "java-slf4j-api"))))
(substitute* "apache-maven/src/bin/mvn"
(("cygwin=false;")
@@ -2218,6 +2233,7 @@ layer for plugins that need to keep Maven2 compatibility.")))
maven-resolver-api
maven-resolver-spi
maven-resolver-util
+ maven-resolver-named-locks
maven-resolver-impl
maven-resolver-connector-basic
maven-resolver-provider
@@ -2244,6 +2260,7 @@ layer for plugins that need to keep Maven2 compatibility.")))
java-plexus-sec-dispatcher
java-plexus-cipher
java-guava
+ java-guava-futures-failureaccess
java-jansi
java-jsr250
java-cdi-api
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 03b7368ae0..20bdb713b5 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2014, 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2021, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2018-2021, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
@@ -88,6 +88,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
@@ -1580,8 +1581,8 @@ protocols.")
(license license:x11)))
(define (prosody-module module-name)
- (let ((changeset "fba64b043c52")
- (revision "2")
+ (let ((changeset "66e7d46b1d4b")
+ (revision "3")
(package-name (string-append
"prosody-"
(string-replace-substring
@@ -1600,7 +1601,7 @@ protocols.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1nvka8s3zqs97jqsknhp2q956rrdga1qaxa1y3i0h8zx3g9vgdch"))))
+ "0wyxvbf335jaaz850m2q6jj6ix4hjlhlh28kzk7462qa9fcw5p7s"))))
(build-system copy-build-system)
(arguments
`(#:install-plan '((,(string-append module-name "/") "."))))
@@ -1610,6 +1611,56 @@ protocols.")
(description #f)
(license (package-license prosody)))))
+(define-public prosody-cloud-notify
+ (package
+ (inherit (prosody-module "mod_cloud_notify"))
+ (synopsis "XEP-0357: Push Notifications")
+ (description "This module implements XEP-0357: Push Notifications.
+
+Some platforms, notably Apple’s iOS and many versions of Android, impose
+limits that prevent applications from running or accessing the network in the
+background. This makes it difficult or impossible for an XMPP application to
+remain reliably connected to a server to receive messages.
+
+In order for messaging and other apps to receive notifications, the OS vendors
+run proprietary servers that their OS maintains a permanent connection to in
+the background. Then they provide APIs to application developers that allow
+sending notifications to specific devices via those servers.
+
+When you connect to your server with a client that requires push
+notifications, it will use this module to set up a “push registration”. When
+you receive a message but your device is not connected to the server, this
+module will generate a notification and send it to the push gateway operated
+by your application’s developers). Their gateway will then connect to your
+device’s OS vendor and ask them to forward the notification to your device.
+When your device receives the notification, it will display it or wake up the
+app so it can connect to XMPP and receive any pending messages.")))
+
+(define-public prosody-cloud-notify-encrypted
+ (package
+ (inherit (prosody-module "mod_cloud_notify_encrypted"))
+ (propagated-inputs (list lua5.2-ossl))
+ (synopsis "Custom extension to XEP-0357: Push Notifications")
+ (description "This module implements support for a Encrypted Push
+Notifications, a custom extension to XEP-0357: Push Notifications.")))
+
+(define-public prosody-cloud-notify-filters
+ (package
+ (inherit (prosody-module "mod_cloud_notify_filters"))
+ (synopsis "Filters for XEP-0357: Push Notifications")
+ (description "This module implements support for a group of push
+notification extensions by the Tigase team that allow a client to specify
+filters to be applied to push notifications. It is a custom extension to
+XEP-0357: Push Notifications.")))
+
+(define-public prosody-cloud-notify-priority-tag
+ (package
+ (inherit (prosody-module "mod_cloud_notify_priority_tag"))
+ (synopsis "Tigase priorities for XEP-0357: Push Notifications")
+ (description "This module implements support for a Tigase XMPP extension,
+Priority of notifications. It is a custom extension to XEP-0357: Push
+Notifications.")))
+
(define-public prosody-http-upload
(package
(inherit (prosody-module "mod_http_upload"))
@@ -1617,6 +1668,15 @@ protocols.")
(description "This module implements XEP-0363: it allows clients to
upload files over HTTP.")))
+(define-public prosody-muc-offline-delivery
+ (package
+ (inherit (prosody-module "mod_muc_offline_delivery"))
+ (synopsis "Deliver MUC messages to users who are not in the room")
+ (description "This module implements support for sending messages in a MUC
+to affiliated users who are not in the room. This is a custom extension by
+Tigase to allow push notifications from MUCs to users who are not currently
+connected.")))
+
(define-public prosody-smacks
(package
(inherit (prosody-module "mod_smacks"))
diff --git a/gnu/packages/moreutils.scm b/gnu/packages/moreutils.scm
index cf26d75516..b1162d1078 100644
--- a/gnu/packages/moreutils.scm
+++ b/gnu/packages/moreutils.scm
@@ -33,7 +33,7 @@
(define-public moreutils
(package
(name "moreutils")
- (version "0.68")
+ (version "0.69")
(source (origin
(method url-fetch)
(uri (string-append
@@ -42,7 +42,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1rxn01hgm5nypcpnl4s9v5zr4fxzf8vxinzbg0s781qlpk3lpcay"))))
+ "1l859qnzccslvxlh5ghn863bkq2vgmqgnik6jr21b9kc6ljmsy8g"))))
(build-system gnu-build-system)
(arguments
(list #:phases
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 34b37ca510..798aad11f7 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -55,6 +55,7 @@
;;; Copyright © 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Parnikkapore <poomklao@yahoo.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -135,6 +136,7 @@
#:use-module (gnu packages gnunet)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gpodder)
#:use-module (gnu packages graphics)
#:use-module (gnu packages graphviz)
@@ -190,6 +192,7 @@
#:use-module (gnu packages terminals)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
+ #:use-module (gnu packages textutils)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
@@ -598,6 +601,76 @@ you create custom user interfaces for your MIDI hardware.")
license:gpl3 ;JUCE
license:bsd-3)))))
+(define-public qmmp
+ (package
+ (name "qmmp")
+ (version "2.1.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://qmmp.ylsoftware.com/files/qmmp/"
+ (version-major+minor version) "/"
+ "qmmp-" version ".tar.bz2"))
+ (sha256
+ (base32 "0wqy4dh5cci67d822zn2535l0vsvd9c9sqsbscz4j530c6y6g9z6"))))
+ (build-system qt-build-system)
+ (arguments
+ (list #:qtbase qtbase
+ #:tests? #f ; there are no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/plugins/Ui/skinned/skinreader.cpp"
+ (("\"(tar|unzip)\"" _ name)
+ (let ((file (string-append "/bin/" name)))
+ (string-append "\"" (search-input-file inputs file) "\"")))))))))
+ (inputs
+ ;; Missing optional inputs:
+ ;; libsidplay2 ; input plugin
+ ;; projectm ; visualization plugin
+ (list alsa-lib
+ curl
+ enca
+ faad2
+ ffmpeg
+ flac
+ jack-2
+ libarchive
+ libbs2b
+ libcddb
+ libcdio-paranoia
+ libgme
+ libmad
+ libshout
+ libsndfile
+ libvorbis
+ libxmp
+ opusfile
+ opus
+ pipewire
+ pulseaudio
+ qtmultimedia
+ qttools
+ soxr
+ taglib
+ tar ; for loading skins
+ unzip ; for loading skins
+ wavpack
+ wildmidi))
+ (native-inputs
+ (list pkg-config))
+ (home-page "https://qmmp.ylsoftware.com")
+ (properties
+ `((release-monitoring-url . "https://qmmp.ylsoftware.com/downloads.php")))
+ (synopsis "Qt-based music player")
+ (description "Music player with support for most common audio formats, and
+plugins for various additional features such as visualization, effects and
+online service integration. In addition to a Qt-based interface it supports
+Winamp/XMMS skins.")
+ (license (list license:gpl2+ ; code
+ license:cc-by-sa4.0)))) ; src/plugins/Ui/skinned/glare
+
(define-public strawberry
(package
(name "strawberry")
@@ -2186,7 +2259,7 @@ your own lessons.")
(define-public powertabeditor
(package
(name "powertabeditor")
- (version "2.0.0-alpha14")
+ (version "2.0.0-alpha19")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2195,30 +2268,29 @@ your own lessons.")
(file-name (git-file-name name version))
(sha256
(base32
- "1wsvni2aa9h2bpndlic7ckch4n600ahwm56n521y5vxivwjx3jmj"))))
+ "1fbrfw1ky57nms47pcfdrrwpa2jmgc8vgc68sz96wkvs49zzm5d1"))))
(build-system cmake-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check (lambda _ (invoke "bin/pte_tests")))
- (add-after 'unpack 'fix-pugixml-detection
- (lambda _
- (substitute* "cmake/third_party/pugixml.cmake"
- (("add_library") "#add_library"))
- #t)))))
+ (list
+ #:phases
+ '(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "bin/pte_tests")))))))
(inputs
- `(("alsa-lib" ,alsa-lib)
- ("boost" ,boost)
- ("minizip" ,minizip)
- ("pugixml" ,pugixml)
- ("qtbase" ,qtbase-5)
- ("rapidjson" ,rapidjson)
- ("rtmidi" ,rtmidi)
- ("timidity" ,timidity++)
- ("zlib" ,zlib)))
+ (list alsa-lib
+ boost
+ minizip
+ nlohmann-json
+ pugixml
+ qtbase-5
+ qttools-5 ;for Qt5LinguistTools
+ rtmidi
+ timidity++
+ zlib))
(native-inputs
(list doctest pkg-config))
- (home-page "https://github.com/powertab/powertabedito")
+ (home-page "https://github.com/powertab/powertabeditor")
(synopsis "Guitar tablature editor")
(description
"Power Tab Editor 2.0 is the successor to the famous original Power Tab
@@ -5899,8 +5971,6 @@ console music players.")
(build-system go-build-system)
(native-inputs
(list lua
- go-github-com-mattn-go-isatty
- go-github-com-mattn-go-colorable
go-github-com-aarzilli-golua
go-gitlab-com-ambrevar-damerau
go-gitlab-com-ambrevar-golua-unicode
@@ -6138,47 +6208,56 @@ and reverb.")
(define-public lsp-plugins
(package
(name "lsp-plugins")
- (version "1.2.3")
+ (version "1.2.15")
(source
(origin
(method url-fetch)
- (uri (string-append "https://github.com/sadko4u/lsp-plugins"
+ (uri (string-append "https://github.com/lsp-plugins/lsp-plugins"
"/releases/download/" version
"/lsp-plugins-src-" version ".tar.gz"))
(sha256
- (base32 "0asgwrkyncxz5h7kjkbwm78z8l2jndxvsrgd634m5x9n37gjsgvs"))))
+ (base32 "1bpkbmy8djz304rlsf9zp7bkyc874gnpfihkigqg4fj667x2xfcj"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags
- (list
- (string-append "CC=" ,(cc-for-target))
- "BUILD_MODULES=\"lv2 ladspa jack\"" "VST_UI=0"
- (string-append "PREFIX=" (assoc-ref %outputs "out"))
- (string-append "ETC_PATH=" (assoc-ref %outputs "out") "/etc"))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (invoke "make" "config" "TEST=1"
- (string-append "PREFIX=" out)
- (string-append "ETCDIR=" out "/etc")))))
- (replace 'check
- (lambda _
- (invoke ".build/host/lsp-plugin-fw/lsp-plugins-test" "utest"))))))
+ (list
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (invoke "make" "config"
+ "STRICT=1"
+ "TEST=1"
+ "FEATURES=clap doc jack ladspa lv2 vst2 xdg"
+ (string-append "PREFIX=" #$output)
+ (string-append "ETCDIR=" #$output "/etc"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke ".build/host/lsp-plugin-fw/lsp-plugins-test" "utest"))))
+ (add-after 'install 'move-large-subdirs
+ (lambda _
+ (define (move-to-output output path)
+ (let ((source (string-append #$output path))
+ (target (string-append output path)))
+ (mkdir-p (dirname target))
+ (rename-file source target)))
+ (move-to-output #$output:doc "/share/doc") ; 29MB
+ (move-to-output #$output:lv2 "/lib/lv2") ; 32MB
+ (move-to-output #$output:bin "/bin") ; Avoid cluttering xdg menu
+ (move-to-output #$output:bin "/share")
+ (move-to-output #$output:bin "/etc"))))))
(inputs
(list cairo
freetype
- hicolor-icon-theme
- jack-1
- ladspa
+ jack-2
libsndfile
libx11
libxrandr
- lv2
mesa))
- (native-inputs
- (list pkg-config php))
+ (native-inputs (list pkg-config php))
+ (outputs '("out" "doc" "lv2" "debug"))
(synopsis "Audio plugin collection")
(description "LSP (Linux Studio Plugins) is a collection of audio
plugins available as LADSPA/LV2 plugins and as standalone JACK
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/networking.scm b/gnu/packages/networking.scm
index 0f35bca9f3..28d5926878 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -4585,7 +4585,7 @@ QUIC protocol.")
;; TODO: figure out how tests are run
#:tests? #f
#:install-source? #f
- #:go go-1.20
+ #:go go-1.21
#:phases
#~(modify-phases %standard-phases
(replace 'build
@@ -4813,7 +4813,7 @@ Further information on the usage could be found on the Wikibooks page
(define-public putty
(package
(name "putty")
- (version "0.79")
+ (version "0.81")
(source
(origin
(method url-fetch)
@@ -4822,7 +4822,7 @@ Further information on the usage could be found on the Wikibooks page
(string-append "http://www.putty.be/" version
"/putty-" version ".tar.gz")))
(sha256
- (base32 "1n7h1vprayfgjr21ccsv77g71k8dk10n69y99azqx4xvdxkci322"))))
+ (base32 "1zirfs2zh1jj2i7jcdkyvnq6pliyg8fjipx38pir8d259ylh12yb"))))
(build-system cmake-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index 54b9e5041a..162e748094 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
@@ -71,7 +71,10 @@
#~(list "--disable-static"
"--enable-64bit"
(string-append "LDFLAGS=-Wl,-rpath="
- (assoc-ref %outputs "out") "/lib"))
+ (assoc-ref %outputs "out") "/lib")
+ #$@(if (%current-target-system)
+ #~("HOST_CC=gcc")
+ #~()))
;; Use fixed timestamps for reproducibility.
#:make-flags #~'("SH_DATE='1970-01-01 00:00:01'"
;; This is epoch 1 in microseconds.
@@ -107,6 +110,7 @@ in the Mozilla clients.")
;; version and source to avoid a top-level variable reference & module
;; cycle.
(version "3.88.1")
+ (replacement nss/fixed)
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
@@ -154,6 +158,9 @@ in the Mozilla clients.")
(#$(target-linux?) "linux")
(else ""))))
#~())
+ #$@(if (%current-target-system)
+ #~("CROSS_COMPILE=1")
+ #~())
(string-append "NSPR_INCLUDE_DIR="
(search-input-directory %build-inputs
"include/nspr"))
@@ -176,7 +183,8 @@ in the Mozilla clients.")
(setenv "CC" #$(cc-for-target))
;; TODO: Set this unconditionally
#$@(if (%current-target-system)
- #~((setenv "CCC" #$(cxx-for-target)))
+ #~((setenv "CCC" #$(cxx-for-target))
+ (setenv "NATIVE_CC" "gcc"))
#~())
;; No VSX on powerpc-linux.
#$@(if (target-ppc32?)
@@ -241,3 +249,40 @@ 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/fixed
+ (let ((actual-version "3.99"))
+ (hidden-package
+ (package
+ (inherit nss)
+ (version (string-append actual-version ".0")) ;for grafts requirements
+ (source (origin
+ (inherit (package-source nss))
+ (uri (let ((version-with-underscores
+ (string-join (string-split actual-version #\.) "_")))
+ (string-append
+ "https://ftp.mozilla.org/pub/mozilla.org/security/nss/"
+ "releases/NSS_" version-with-underscores "_RTM/src/"
+ "nss-" actual-version ".tar.gz")))
+ (sha256
+ (base32
+ "1g89ig40gfi1sp02gybvl2z818lawcnrqjzsws36cdva834c5maw"))))
+ (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/ocaml.scm b/gnu/packages/ocaml.scm
index 7fad276b4e..3bd923f97d 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -3464,14 +3464,14 @@ encoded in a resizable array.")
(define-public ocaml-luv
(package
(name "ocaml-luv")
- (version "0.5.11")
+ (version "0.5.12")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/aantron/luv/releases/download/"
version "/luv-" version ".tar.gz"))
(sha256
(base32
- "0hrsi8n2l31bcwgj847df4chjgqb9lmwkaky8fvvi15k25rz9v6c"))
+ "1h2n9iij4mh60sy3g437p1xwqyqpyw72fgh4417d8j9ahq46m7vn"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 289ee7e8d6..709bb7d30d 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -99,6 +99,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages polkit)
#:use-module (gnu packages popt)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
@@ -899,14 +900,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))
@@ -1544,8 +1545,8 @@ environments.")
"0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
(define-public guix-build-coordinator
- (let ((commit "14e18eed98d1836662d8787d08f7a37cf8c2f69d")
- (revision "100"))
+ (let ((commit "0df0c1a6b85f1f84affdd21b3b6b14fb62f7820e")
+ (revision "101"))
(package
(name "guix-build-coordinator")
(version (git-version "0" revision commit))
@@ -1556,7 +1557,7 @@ environments.")
(commit commit)))
(sha256
(base32
- "1vv1l6y80ymqi7qz70bfq4is4y1xh21jm4d4gapn63931ac4fiij"))
+ "01p4ng1h061awfr8j520civgxl75239v67if3r7fqhr8k4f3b6ry"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -1793,8 +1794,8 @@ in an isolated environment, in separate namespaces.")
(license license:gpl3+)))
(define-public nar-herder
- (let ((commit "6ceb0a3b3000ce85a9263833b2398cb44a2871eb")
- (revision "26"))
+ (let ((commit "fb764aa513efd206e175a1c52d737e1e934c3ca1")
+ (revision "29"))
(package
(name "nar-herder")
(version (git-version "0" revision commit))
@@ -1805,7 +1806,7 @@ in an isolated environment, in separate namespaces.")
(commit commit)))
(sha256
(base32
- "15vxpm1i3pyv47yp0xgsm3pn4gq0kcqfd4a02q62vyjmbqf0hrpi"))
+ "16b40ky638y6qsp5qjh1pm4kyzc3ilrcyk3dg18fhsy759mrkkxn"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -2022,14 +2023,14 @@ the boot loader configuration.")
(define-public flatpak
(package
(name "flatpak")
- (version "1.14.4")
+ (version "1.14.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/flatpak/flatpak/releases/download/"
version "/flatpak-" version ".tar.xz"))
(sha256
- (base32 "16b7f7n2mms6zgm0lj3fn86ny11xjn8cd3mrk1slwhvwnv8dnd4a"))
+ (base32 "0ij93vl9skcfdfgkmgd80q0q4c6q39dss4rds7phxizqqsr3d3sk"))
(patches
(search-patches "flatpak-fix-path.patch"
"flatpak-unset-gdk-pixbuf-for-sandbox.patch"))))
@@ -2042,6 +2043,7 @@ the boot loader configuration.")
(list
#:configure-flags
#~(list
+ "--with-curl"
"--enable-documentation=no" ;; FIXME
"--enable-system-helper=no"
"--localstatedir=/var"
@@ -2105,19 +2107,22 @@ cp -r /tmp/locale/*/en_US.*")))
bubblewrap
curl
dconf
- fuse-2
+ fuse
gdk-pixbuf
gpgme
json-glib
libarchive
+ libcap
libostree
libseccomp
libsoup-minimal-2
libxau
libxml2
p11-kit
+ polkit
util-linux
- xdg-dbus-proxy))
+ xdg-dbus-proxy
+ zstd))
(propagated-inputs (list glib-networking gnupg gsettings-desktop-schemas))
(home-page "https://flatpak.org")
(synopsis "System for building, distributing, and running sandboxed desktop
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index ae9065d75d..11199594f1 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -65,14 +65,14 @@
(define-public parallel
(package
(name "parallel")
- (version "20240322")
+ (version "20240422")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
- (base32 "15baksvj028im496wivr55mz9zqh74njrrd7djxggarx42d045qb"))
+ (base32 "0rr4i1a5gcxz60cb3p4ga3s8k79sr84yicqysg794ayy7qh8hf3q"))
(snippet
'(begin
(use-modules (guix build utils))
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 1dbf138ad4..eb64a7f306 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -94,6 +94,7 @@
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-crypto)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages kerberos)
diff --git a/gnu/packages/patches/ath9k-htc-firmware-objcopy.patch b/gnu/packages/patches/ath9k-htc-firmware-objcopy.patch
deleted file mode 100644
index 2172f8353f..0000000000
--- a/gnu/packages/patches/ath9k-htc-firmware-objcopy.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-The firmware is cross-compiled, but the build system ends up using
-'objcopy' instead of 'xtensa-elf-objcopy' by default. Force it to
-use the right one.
-
---- source/target_firmware/configure 2014-10-28 20:57:26.834436561 +0100
-+++ source/target_firmware/configure 2014-10-28 20:57:29.666436530 +0100
-@@ -11,6 +11,7 @@ mkdir -p build
- cat > "$TOOLCHAIN_FILE" <<EOF
- INCLUDE(CMakeForceCompiler)
-
-+SET(CMAKE_OBJCOPY xtensa-elf-objcopy)
- SET(CMAKE_SYSTEM_PROCESSOR xtensa)
- SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN}/$TARGET)
- SET(CMAKE_STRIP :)
diff --git a/gnu/packages/patches/cairo-CVE-2018-19876.patch b/gnu/packages/patches/cairo-CVE-2018-19876.patch
deleted file mode 100644
index c0fba2ecaa..0000000000
--- a/gnu/packages/patches/cairo-CVE-2018-19876.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Copied from Debian.
-
-From: Carlos Garcia Campos <cgarcia@igalia.com>
-Date: Mon, 19 Nov 2018 12:33:07 +0100
-Subject: ft: Use FT_Done_MM_Var instead of free when available in
- cairo_ft_apply_variations
-
-Fixes a crash when using freetype >= 2.9
-
-[This is considered to be security-sensitive because WebKitGTK+ sets its
-own memory allocator, which is not compatible with system free(), making
-this a remotely triggerable denial of service or memory corruption.]
-
-Origin: upstream, commit:90e85c2493fdfa3551f202ff10282463f1e36645
-Bug: https://gitlab.freedesktop.org/cairo/cairo/merge_requests/5
-Bug-Debian: https://bugs.debian.org/916389
-Bug-CVE: CVE-2018-19876
----
- src/cairo-ft-font.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
-index 325dd61..981973f 100644
---- a/src/cairo-ft-font.c
-+++ b/src/cairo-ft-font.c
-@@ -2393,7 +2393,11 @@ skip:
- done:
- free (coords);
- free (current_coords);
-+#if HAVE_FT_DONE_MM_VAR
-+ FT_Done_MM_Var (face->glyph->library, ft_mm_var);
-+#else
- free (ft_mm_var);
-+#endif
- }
- }
-
diff --git a/gnu/packages/patches/cairo-CVE-2020-35492.patch b/gnu/packages/patches/cairo-CVE-2020-35492.patch
deleted file mode 100644
index e8b90fa5c5..0000000000
--- a/gnu/packages/patches/cairo-CVE-2020-35492.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Copied from Debian.
-
-From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
-From: Heiko Lewin <heiko.lewin@worldiety.de>
-Date: Tue, 15 Dec 2020 16:48:19 +0100
-Subject: [PATCH] Fix mask usage in image-compositor
-
-[trimmed test case, since not used in Debian build]
-
----
- src/cairo-image-compositor.c | 8 ++--
-
---- cairo-1.16.0.orig/src/cairo-image-compositor.c
-+++ cairo-1.16.0/src/cairo-image-compositor.c
-@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_rende
- unsigned num_spans)
- {
- cairo_image_span_renderer_t *r = abstract_renderer;
-- uint8_t *m;
-+ uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
- int x0;
-
- if (num_spans == 0)
- return CAIRO_STATUS_SUCCESS;
-
- x0 = spans[0].x;
-- m = r->_buf;
-+ m = base;
- do {
- int len = spans[1].x - spans[0].x;
- if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
-@@ -2646,7 +2646,7 @@ _inplace_src_spans (void *abstract_rende
- spans[0].x, y,
- spans[1].x - spans[0].x, h);
-
-- m = r->_buf;
-+ m = base;
- x0 = spans[1].x;
- } else if (spans[0].coverage == 0x0) {
- if (spans[0].x != x0) {
-@@ -2675,7 +2675,7 @@ _inplace_src_spans (void *abstract_rende
- #endif
- }
-
-- m = r->_buf;
-+ m = base;
- x0 = spans[1].x;
- } else {
- *m++ = spans[0].coverage;
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/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch b/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
new file mode 100644
index 0000000000..ab19edbf82
--- /dev/null
+++ b/gnu/packages/patches/cppdap-add-CPPDAP_USE_EXTERNAL_GTEST_PACKAGE.patch
@@ -0,0 +1,103 @@
+from https://github.com/google/cppdap/pull/124
+
+From 40d9eaf3b6eca2ab8d5558e8935d56a75bd97183 Mon Sep 17 00:00:00 2001
+From: topazus <topazus@outlook.com>
+Date: Wed, 27 Dec 2023 19:56:49 +0800
+Subject: [PATCH] CMake: add CPPDAP_USE_EXTERNAL_GTEST_PACKAGE option
+
+---
+ CMakeLists.txt | 35 +++++++++++++++++++++++++----------
+ 1 file changed, 25 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1b3c321..7292f3c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -40,6 +40,7 @@ option_if_not_defined(CPPDAP_INSTALL_VSCODE_EXAMPLES "Build and install dap exam
+ option_if_not_defined(CPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE "Use nlohmann_json with find_package() instead of building internal submodule" OFF)
+ option_if_not_defined(CPPDAP_USE_EXTERNAL_RAPIDJSON_PACKAGE "Use RapidJSON with find_package()" OFF)
+ option_if_not_defined(CPPDAP_USE_EXTERNAL_JSONCPP_PACKAGE "Use JsonCpp with find_package()" OFF)
++option_if_not_defined(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE "Use googletest with find_package()" OFF)
+
+ ###########################################################
+ # Directories
+@@ -59,7 +60,7 @@ set_if_not_defined(CPPDAP_GOOGLETEST_DIR ${CPPDAP_THIRD_PARTY_DIR}/googletest)
+ ###########################################################
+ # Submodules
+ ###########################################################
+-if(CPPDAP_BUILD_TESTS)
++if(CPPDAP_BUILD_TESTS AND NOT CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
+ if(NOT EXISTS ${CPPDAP_GOOGLETEST_DIR}/.git)
+ message(WARNING "third_party/googletest submodule missing.")
+ message(WARNING "Run: `git submodule update --init` to build tests.")
+@@ -161,7 +162,7 @@ function(cppdap_set_json_links target)
+ target_link_libraries(${target} PRIVATE JsonCpp::JsonCpp)
+ else()
+ target_include_directories(${target} PRIVATE "${CPPDAP_JSON_DIR}/include/")
+- endif()
++ endif()
+ endfunction(cppdap_set_json_links)
+
+ function(cppdap_set_target_options target)
+@@ -247,7 +248,7 @@ write_basic_package_version_file(
+ )
+ configure_package_config_file(
+ ${CPPDAP_CMAKE_CONFIG_TEMPLATE}
+- "${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}"
++ "${CPPDAP_CMAKE_PROJECT_CONFIG_FILE}"
+ INSTALL_DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR}
+ )
+
+@@ -276,6 +277,8 @@ DESTINATION ${CPPDAP_CONFIG_INSTALL_DIR})
+
+ # tests
+ if(CPPDAP_BUILD_TESTS)
++ enable_testing()
++
+ set(DAP_TEST_LIST
+ ${CPPDAP_SRC_DIR}/any_test.cpp
+ ${CPPDAP_SRC_DIR}/chan_test.cpp
+@@ -290,16 +293,24 @@ if(CPPDAP_BUILD_TESTS)
+ ${CPPDAP_SRC_DIR}/traits_test.cpp
+ ${CPPDAP_SRC_DIR}/typeinfo_test.cpp
+ ${CPPDAP_SRC_DIR}/variant_test.cpp
+- ${CPPDAP_GOOGLETEST_DIR}/googletest/src/gtest-all.cc
+ )
+
+- set(DAP_TEST_INCLUDE_DIR
+- ${CPPDAP_GOOGLETEST_DIR}/googlemock/include/
+- ${CPPDAP_GOOGLETEST_DIR}/googletest/
+- ${CPPDAP_GOOGLETEST_DIR}/googletest/include/
+- )
++ if(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
++ find_package(GTest REQUIRED)
++ else()
++ list(APPEND DAP_TEST_LIST
++ ${CPPDAP_GOOGLETEST_DIR}/googletest/src/gtest-all.cc
++ )
++
++ set(DAP_TEST_INCLUDE_DIR
++ ${CPPDAP_GOOGLETEST_DIR}/googlemock/include/
++ ${CPPDAP_GOOGLETEST_DIR}/googletest/
++ ${CPPDAP_GOOGLETEST_DIR}/googletest/include/
++ )
++ endif()
+
+ add_executable(cppdap-unittests ${DAP_TEST_LIST})
++ add_test(NAME cppdap-unittests COMMAND cppdap-unittests)
+
+ target_include_directories(cppdap-unittests PUBLIC ${DAP_TEST_INCLUDE_DIR} )
+ set_target_properties(cppdap-unittests PROPERTIES
+@@ -312,7 +323,11 @@ if(CPPDAP_BUILD_TESTS)
+ endif()
+
+ cppdap_set_target_options(cppdap-unittests)
+- target_link_libraries(cppdap-unittests PRIVATE cppdap)
++ if(CPPDAP_USE_EXTERNAL_GTEST_PACKAGE)
++ target_link_libraries(cppdap-unittests PRIVATE cppdap GTest::gtest)
++ else()
++ target_link_libraries(cppdap-unittests PRIVATE cppdap)
++ endif()
+ endif(CPPDAP_BUILD_TESTS)
+
+ # fuzzer
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/flatpak-unset-gdk-pixbuf-for-sandbox.patch b/gnu/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch
index bf9c487ba8..7773b11f7e 100644
--- a/gnu/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch
+++ b/gnu/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch
@@ -9,11 +9,13 @@ of host system.
--- a/common/flatpak-run.c
+++ b/common/flatpak-run.c
-@@ -1900,6 +1900,7 @@ static const ExportData default_exports[] = {
+@@ -1900,8 +1900,9 @@ static const ExportData default_exports[] = {
{"XKB_CONFIG_ROOT", NULL},
{"GIO_EXTRA_MODULES", NULL},
{"GDK_BACKEND", NULL},
+ {"GDK_PIXBUF_MODULE_FILE", NULL},
+ {"VK_DRIVER_FILES", NULL},
+ {"VK_ICD_FILENAMES", NULL},
};
static const ExportData no_ld_so_cache_exports[] = {
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/glslang-install-static-libs.patch b/gnu/packages/patches/glslang-install-static-libs.patch
deleted file mode 100644
index a155dde30e..0000000000
--- a/gnu/packages/patches/glslang-install-static-libs.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Install OGLCompiler et.al. even when building shared libraries. Also fix
-CMake file locations.
-
-Patch taken from Gentoo:
-
- https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-util/glslang/files/glslang-1.3.231-Install-static-libs.patch
-
-diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt
---- a/OGLCompilersDLL/CMakeLists.txt
-+++ b/OGLCompilersDLL/CMakeLists.txt
-@@ -41,7 +41,7 @@ if(WIN32)
- source_group("Source" FILES ${SOURCES})
- endif(WIN32)
-
--if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
-+if(ENABLE_GLSLANG_INSTALL)
- install(TARGETS OGLCompiler EXPORT glslang-targets)
-
- # Backward compatibility
-@@ -49,7 +49,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
- message(WARNING \"Using `OGLCompilerTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
- if (NOT TARGET glslang::OGLCompiler)
-- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
-+ include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
- endif()
-
- add_library(OGLCompiler ALIAS glslang::OGLCompiler)
-diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
---- a/glslang/CMakeLists.txt
-+++ b/glslang/CMakeLists.txt
-@@ -203,7 +203,7 @@ endif()
- ################################################################################
- if(ENABLE_GLSLANG_INSTALL)
- install(TARGETS glslang EXPORT glslang-targets)
-- if(NOT BUILD_SHARED_LIBS)
-+ if(BUILD_SHARED_LIBS)
- install(TARGETS MachineIndependent EXPORT glslang-targets)
- install(TARGETS GenericCodeGen EXPORT glslang-targets)
-
-diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt
---- a/glslang/OSDependent/Unix/CMakeLists.txt
-+++ b/glslang/OSDependent/Unix/CMakeLists.txt
-@@ -52,7 +52,7 @@ else()
- target_link_libraries(OSDependent Threads::Threads)
- endif()
-
--if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
-+if(ENABLE_GLSLANG_INSTALL)
- install(TARGETS OSDependent EXPORT glslang-targets)
-
- # Backward compatibility
-@@ -60,7 +60,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
- message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
- if (NOT TARGET glslang::OSDependent)
-- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
-+ include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
- endif()
-
- add_library(OSDependent ALIAS glslang::OSDependent)
diff --git a/gnu/packages/patches/java-guava-remove-annotation-deps.patch b/gnu/packages/patches/java-guava-remove-annotation-deps.patch
new file mode 100644
index 0000000000..6f038b1ba4
--- /dev/null
+++ b/gnu/packages/patches/java-guava-remove-annotation-deps.patch
@@ -0,0 +1,37 @@
+From 41d216ca7993991d32a077d0650ccfad8a846942 Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Sat, 25 Feb 2023 10:02:11 +0100
+Subject: [PATCH] Remove annotation dependencies
+
+This is used to prevent a failure when guix creates the Maven directory
+structure and fails to find these dependencies.
+---
+ guava/pom.xml | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/guava/pom.xml b/guava/pom.xml
+index 81a2005..5237047 100644
+--- a/guava/pom.xml
++++ b/guava/pom.xml
+@@ -31,18 +31,6 @@
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </dependency>
+- <dependency>
+- <groupId>org.checkerframework</groupId>
+- <artifactId>checker-qual</artifactId>
+- </dependency>
+- <dependency>
+- <groupId>com.google.errorprone</groupId>
+- <artifactId>error_prone_annotations</artifactId>
+- </dependency>
+- <dependency>
+- <groupId>com.google.j2objc</groupId>
+- <artifactId>j2objc-annotations</artifactId>
+- </dependency>
+ <!-- TODO(cpovirk): does this comment belong on the <dependency> in <profiles>? -->
+ <!-- TODO(cpovirk): want this only for dependency plugin but seems not to work there? Maven runs without failure, but the resulting Javadoc is missing the hoped-for inherited text -->
+ </dependencies>
+--
+2.38.1
+
diff --git a/gnu/packages/patches/java-powermock-fix-java-files.patch b/gnu/packages/patches/java-powermock-fix-java-files.patch
index 6b95818138..ca99749a43 100644
--- a/gnu/packages/patches/java-powermock-fix-java-files.patch
+++ b/gnu/packages/patches/java-powermock-fix-java-files.patch
@@ -1,17 +1,130 @@
This patch fixes build issues caused by the java compiler not finding the
correct types on some statements.
-From 1ac84b58b4383fa118d98c35956d722d11cf449e Mon Sep 17 00:00:00 2001
+From 10ce6e0e30bbaf22212abc77f5d644c074df6068 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
-Date: Tue, 22 Aug 2017 20:40:27 +0200
+Date: Sat, 25 Feb 2023 18:00:13 +0100
Subject: [PATCH] Fix java files.
---
- .../internal/impl/DelegatingPowerMockRunner.java | 13 +++++++---
- .../java/org/powermock/reflect/WhiteBoxTest.java | 30 +++++++++++-----------
- .../reflect/internal/proxy/ClassFactory.java | 6 ++---
- 3 files changed, 27 insertions(+), 22 deletions(-)
+ .../ConditionalStateStackManipulation.java | 6 ++--
+ .../org/powermock/core/bytebuddy/Frame.java | 2 +-
+ .../core/bytebuddy/MaxLocalsExtractor.java | 6 ++--
+ .../core/bytebuddy/MockGetawayCall.java | 2 +-
+ .../core/bytebuddy/PrimitiveBoxing.java | 4 +--
+ .../agent/DefinalizingClassTransformer.java | 4 +--
+ .../agent/DefinalizingClassVisitor.java | 6 ++--
+ .../impl/DelegatingPowerMockRunner.java | 13 +++++---
+ .../org/powermock/reflect/WhiteBoxTest.java | 32 +++++++++----------
+ .../reflect/internal/proxy/ClassFactory.java | 6 ++--
+ 10 files changed, 43 insertions(+), 38 deletions(-)
+diff --git a/powermock-core/src/main/java/org/powermock/core/bytebuddy/ConditionalStateStackManipulation.java b/powermock-core/src/main/java/org/powermock/core/bytebuddy/ConditionalStateStackManipulation.java
+index fa23a3f..1fa4b94 100644
+--- a/powermock-core/src/main/java/org/powermock/core/bytebuddy/ConditionalStateStackManipulation.java
++++ b/powermock-core/src/main/java/org/powermock/core/bytebuddy/ConditionalStateStackManipulation.java
+@@ -20,9 +20,9 @@ package org.powermock.core.bytebuddy;
+
+ import net.bytebuddy.implementation.Implementation.Context;
+ import net.bytebuddy.implementation.bytecode.StackManipulation;
+-import net.bytebuddy.jar.asm.Label;
+-import net.bytebuddy.jar.asm.MethodVisitor;
+-import net.bytebuddy.jar.asm.Opcodes;
++import org.objectweb.asm.Label;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
+
+ public class ConditionalStateStackManipulation implements StackManipulation {
+
+diff --git a/powermock-core/src/main/java/org/powermock/core/bytebuddy/Frame.java b/powermock-core/src/main/java/org/powermock/core/bytebuddy/Frame.java
+index 8ada262..adfc218 100644
+--- a/powermock-core/src/main/java/org/powermock/core/bytebuddy/Frame.java
++++ b/powermock-core/src/main/java/org/powermock/core/bytebuddy/Frame.java
+@@ -24,7 +24,7 @@ import net.bytebuddy.description.method.ParameterDescription.InDefinedShape;
+ import net.bytebuddy.description.method.ParameterList;
+ import net.bytebuddy.description.type.TypeDescription.Generic;
+ import net.bytebuddy.implementation.bytecode.StackSize;
+-import net.bytebuddy.jar.asm.Opcodes;
++import org.objectweb.asm.Opcodes;
+ import net.bytebuddy.utility.CompoundList;
+
+ import java.util.ArrayList;
+diff --git a/powermock-core/src/main/java/org/powermock/core/bytebuddy/MaxLocalsExtractor.java b/powermock-core/src/main/java/org/powermock/core/bytebuddy/MaxLocalsExtractor.java
+index 6b5cddd..8fe1936 100644
+--- a/powermock-core/src/main/java/org/powermock/core/bytebuddy/MaxLocalsExtractor.java
++++ b/powermock-core/src/main/java/org/powermock/core/bytebuddy/MaxLocalsExtractor.java
+@@ -19,9 +19,9 @@
+ package org.powermock.core.bytebuddy;
+
+ import net.bytebuddy.description.method.MethodDescription;
+-import net.bytebuddy.jar.asm.ClassVisitor;
+-import net.bytebuddy.jar.asm.MethodVisitor;
+-import net.bytebuddy.jar.asm.Opcodes;
++import org.objectweb.asm.ClassVisitor;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
+
+ public class MaxLocalsExtractor extends ClassVisitor {
+
+diff --git a/powermock-core/src/main/java/org/powermock/core/bytebuddy/MockGetawayCall.java b/powermock-core/src/main/java/org/powermock/core/bytebuddy/MockGetawayCall.java
+index db84196..84942f8 100644
+--- a/powermock-core/src/main/java/org/powermock/core/bytebuddy/MockGetawayCall.java
++++ b/powermock-core/src/main/java/org/powermock/core/bytebuddy/MockGetawayCall.java
+@@ -27,7 +27,7 @@ import net.bytebuddy.implementation.bytecode.StackManipulation;
+ import net.bytebuddy.implementation.bytecode.collection.ArrayFactory;
+ import net.bytebuddy.implementation.bytecode.constant.ClassConstant;
+ import net.bytebuddy.implementation.bytecode.member.MethodInvocation;
+-import net.bytebuddy.jar.asm.MethodVisitor;
++import org.objectweb.asm.MethodVisitor;
+ import org.powermock.core.bytebuddy.Variable.VariableAccess;
+ import org.powermock.reflect.internal.WhiteboxImpl;
+
+diff --git a/powermock-core/src/main/java/org/powermock/core/bytebuddy/PrimitiveBoxing.java b/powermock-core/src/main/java/org/powermock/core/bytebuddy/PrimitiveBoxing.java
+index e200b22..ae1036b 100644
+--- a/powermock-core/src/main/java/org/powermock/core/bytebuddy/PrimitiveBoxing.java
++++ b/powermock-core/src/main/java/org/powermock/core/bytebuddy/PrimitiveBoxing.java
+@@ -24,8 +24,8 @@ import net.bytebuddy.description.type.TypeDescription.ForLoadedType;
+ import net.bytebuddy.implementation.Implementation;
+ import net.bytebuddy.implementation.bytecode.StackManipulation;
+ import net.bytebuddy.implementation.bytecode.StackSize;
+-import net.bytebuddy.jar.asm.MethodVisitor;
+-import net.bytebuddy.jar.asm.Opcodes;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
+
+ public enum PrimitiveBoxing implements StackManipulation{
+
+diff --git a/powermock-modules/powermock-module-javaagent/src/main/java/org/powermock/modules/agent/DefinalizingClassTransformer.java b/powermock-modules/powermock-module-javaagent/src/main/java/org/powermock/modules/agent/DefinalizingClassTransformer.java
+index e8eef7a..01d0bcb 100644
+--- a/powermock-modules/powermock-module-javaagent/src/main/java/org/powermock/modules/agent/DefinalizingClassTransformer.java
++++ b/powermock-modules/powermock-module-javaagent/src/main/java/org/powermock/modules/agent/DefinalizingClassTransformer.java
+@@ -16,8 +16,8 @@
+
+ package org.powermock.modules.agent;
+
+-import net.bytebuddy.jar.asm.ClassReader;
+-import net.bytebuddy.jar.asm.ClassWriter;
++import org.objectweb.asm.ClassReader;
++import org.objectweb.asm.ClassWriter;
+
+ import java.lang.instrument.ClassFileTransformer;
+ import java.security.ProtectionDomain;
+diff --git a/powermock-modules/powermock-module-javaagent/src/main/java/org/powermock/modules/agent/DefinalizingClassVisitor.java b/powermock-modules/powermock-module-javaagent/src/main/java/org/powermock/modules/agent/DefinalizingClassVisitor.java
+index 3bb80c3..9aada60 100644
+--- a/powermock-modules/powermock-module-javaagent/src/main/java/org/powermock/modules/agent/DefinalizingClassVisitor.java
++++ b/powermock-modules/powermock-module-javaagent/src/main/java/org/powermock/modules/agent/DefinalizingClassVisitor.java
+@@ -1,8 +1,8 @@
+ package org.powermock.modules.agent;
+
+-import net.bytebuddy.jar.asm.ClassVisitor;
+-import net.bytebuddy.jar.asm.MethodVisitor;
+-import net.bytebuddy.jar.asm.Opcodes;
++import org.objectweb.asm.ClassVisitor;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
+
+ class DefinalizingClassVisitor extends ClassVisitor {
+
diff --git a/powermock-modules/powermock-module-junit4/src/main/java/org/powermock/modules/junit4/internal/impl/DelegatingPowerMockRunner.java b/powermock-modules/powermock-module-junit4/src/main/java/org/powermock/modules/junit4/internal/impl/DelegatingPowerMockRunner.java
index 301f854..caecbbd 100644
--- a/powermock-modules/powermock-module-junit4/src/main/java/org/powermock/modules/junit4/internal/impl/DelegatingPowerMockRunner.java
@@ -39,7 +152,7 @@ index 301f854..caecbbd 100644
if (testClass.isAnnotationPresent(PowerMockRunnerDelegate.class)
&& JUnitVersion.isGreaterThanOrEqualTo("4.5")) {
diff --git a/powermock-reflect/src/test/java/org/powermock/reflect/WhiteBoxTest.java b/powermock-reflect/src/test/java/org/powermock/reflect/WhiteBoxTest.java
-index bf1e2e3..0d60487 100644
+index acb3154..8c24fbc 100644
--- a/powermock-reflect/src/test/java/org/powermock/reflect/WhiteBoxTest.java
+++ b/powermock-reflect/src/test/java/org/powermock/reflect/WhiteBoxTest.java
@@ -248,7 +248,7 @@ public class WhiteBoxTest {
@@ -47,126 +160,133 @@ index bf1e2e3..0d60487 100644
@Test
public void testMethodWithPrimitiveAndWrappedInt_primtive_wrapped() throws Exception {
- assertEquals(17, Whitebox.invokeMethod(new ClassWithPrivateMethods(), "methodWithPrimitiveAndWrappedInt",
-+ assertEquals((Integer)17, Whitebox.invokeMethod(new ClassWithPrivateMethods(), "methodWithPrimitiveAndWrappedInt",
++ assertEquals(17, (int) Whitebox.invokeMethod(new ClassWithPrivateMethods(), "methodWithPrimitiveAndWrappedInt",
new Class[]{int.class, Integer.class}, 9, Integer.valueOf(8)));
}
-@@ -257,7 +257,7 @@ public class WhiteBoxTest {
+@@ -257,13 +257,13 @@ public class WhiteBoxTest {
int expected = 123;
Whitebox.setInternalState(ClassWithInternalState.class, "staticState", expected);
assertEquals(expected, ClassWithInternalState.getStaticState());
- assertEquals(expected, Whitebox.getInternalState(ClassWithInternalState.class, "staticState"));
-+ assertEquals(expected, (int)Whitebox.getInternalState(ClassWithInternalState.class, "staticState"));
++ assertEquals(expected, (int) Whitebox.getInternalState(ClassWithInternalState.class, "staticState"));
}
@Test
-@@ -334,25 +334,25 @@ public class WhiteBoxTest {
+ public void testStaticFinalPrimitiveState() {
+ Whitebox.setInternalState(ClassWithInternalState.class, "staticFinalIntState", 123);
+- assertEquals(123, Whitebox.getInternalState(ClassWithInternalState.class, "staticFinalIntState"));
++ assertEquals(123, (int) Whitebox.getInternalState(ClassWithInternalState.class, "staticFinalIntState"));
+ }
+
+ @Test
+@@ -330,25 +330,25 @@ public class WhiteBoxTest {
@Test
public void testInvokeVarArgsMethod_multipleValues() throws Exception {
ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
- assertEquals(6, Whitebox.invokeMethod(tested, "varArgsMethod", 1, 2, 3));
-+ assertEquals(6, (int)Whitebox.invokeMethod(tested, "varArgsMethod", 1, 2, 3));
++ assertEquals(6, (int) Whitebox.invokeMethod(tested, "varArgsMethod", 1, 2, 3));
}
@Test
public void testInvokeVarArgsMethod_noArguments() throws Exception {
ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
- assertEquals(0, Whitebox.invokeMethod(tested, "varArgsMethod"));
-+ assertEquals(0, (int)Whitebox.invokeMethod(tested, "varArgsMethod"));
++ assertEquals(0, (int) Whitebox.invokeMethod(tested, "varArgsMethod"));
}
@Test
public void testInvokeVarArgsMethod_oneArgument() throws Exception {
ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
- assertEquals(4, Whitebox.invokeMethod(tested, "varArgsMethod", 2));
-+ assertEquals(4, (int)Whitebox.invokeMethod(tested, "varArgsMethod", 2));
++ assertEquals(4, (int) Whitebox.invokeMethod(tested, "varArgsMethod", 2));
}
@Test
public void testInvokeVarArgsMethod_invokeVarArgsWithOneArgument() throws Exception {
ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
- assertEquals(1, Whitebox.invokeMethod(tested, "varArgsMethod", new Class<?>[]{int[].class}, 1));
-+ assertEquals(1, (int)Whitebox.invokeMethod(tested, "varArgsMethod", new Class<?>[]{int[].class}, 1));
++ assertEquals(1, (int) Whitebox.invokeMethod(tested, "varArgsMethod", new Class<?>[]{int[].class}, 1));
}
@Test
-@@ -376,7 +376,7 @@ public class WhiteBoxTest {
+@@ -372,7 +372,7 @@ public class WhiteBoxTest {
ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {
};
Whitebox.setInternalState(tested, fieldName, value);
- assertEquals(value, Whitebox.getInternalState(tested, fieldName));
-+ assertEquals(value, (int)Whitebox.getInternalState(tested, fieldName));
++ assertEquals(value, (int) Whitebox.getInternalState(tested, fieldName));
}
@Test
-@@ -387,8 +387,8 @@ public class WhiteBoxTest {
+@@ -383,8 +383,8 @@ public class WhiteBoxTest {
ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {
};
Whitebox.setInternalState(tested, fieldName, value);
- assertEquals(value, Whitebox.getInternalState(tested, fieldName));
- assertEquals(-1, Whitebox.getInternalState(tested, fieldName, ClassWithInternalState.class));
-+ assertEquals(value, (int)Whitebox.getInternalState(tested, fieldName));
-+ assertEquals(-1, (int)Whitebox.getInternalState(tested, fieldName, ClassWithInternalState.class));
++ assertEquals(value, (int) Whitebox.getInternalState(tested, fieldName));
++ assertEquals(-1, (int) Whitebox.getInternalState(tested, fieldName, ClassWithInternalState.class));
}
@Test(expected = IllegalArgumentException.class)
-@@ -398,7 +398,7 @@ public class WhiteBoxTest {
+@@ -394,7 +394,7 @@ public class WhiteBoxTest {
ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {
};
Whitebox.setInternalState(tested, fieldName, new Object());
- assertEquals(value, Whitebox.getInternalState(tested, fieldName));
-+ assertEquals(value, (int)Whitebox.getInternalState(tested, fieldName));
++ assertEquals(value, (int) Whitebox.getInternalState(tested, fieldName));
}
@Test(expected = IllegalArgumentException.class)
-@@ -408,7 +408,7 @@ public class WhiteBoxTest {
+@@ -404,7 +404,7 @@ public class WhiteBoxTest {
ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {
};
Whitebox.setInternalState(tested, fieldName, (Object) null);
- assertEquals(value, Whitebox.getInternalState(tested, fieldName));
-+ assertEquals(value, (int)Whitebox.getInternalState(tested, fieldName));
++ assertEquals(value, (int) Whitebox.getInternalState(tested, fieldName));
}
@Test
-@@ -417,8 +417,8 @@ public class WhiteBoxTest {
+@@ -413,8 +413,8 @@ public class WhiteBoxTest {
ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();
Whitebox.setInternalState(tested, int.class, value);
assertEquals(value, (int) Whitebox.getInternalState(tested, int.class));
- assertEquals(value, Whitebox.getInternalState(tested, "anotherInternalState"));
- assertEquals(value, Whitebox.getInternalState(tested, "anotherInternalState",
-+ assertEquals(value, (int)Whitebox.getInternalState(tested, "anotherInternalState"));
-+ assertEquals(value, (int)Whitebox.getInternalState(tested, "anotherInternalState",
++ assertEquals(value, (int) Whitebox.getInternalState(tested, "anotherInternalState"));
++ assertEquals(value, (int) Whitebox.getInternalState(tested, "anotherInternalState",
ClassWithChildThatHasInternalState.class));
}
-@@ -429,7 +429,7 @@ public class WhiteBoxTest {
+@@ -425,7 +425,7 @@ public class WhiteBoxTest {
Whitebox.setInternalState(tested, int.class, value, ClassWithInternalState.class);
assertEquals(42, (int) Whitebox.getInternalState(tested, int.class));
assertEquals(value, (int) Whitebox.getInternalState(tested, int.class, ClassWithInternalState.class));
- assertEquals(value, Whitebox.getInternalState(tested, "staticState", ClassWithInternalState.class));
-+ assertEquals(value, (int)Whitebox.getInternalState(tested, "staticState", ClassWithInternalState.class));
++ assertEquals(value, (int) Whitebox.getInternalState(tested, "staticState", ClassWithInternalState.class));
}
@Test
-@@ -619,7 +619,7 @@ public class WhiteBoxTest {
+@@ -621,7 +621,7 @@ public class WhiteBoxTest {
@Test
public void testInvokeMethodWithBothNormalAndVarArgsParameter() throws Exception {
ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
- assertEquals(4, Whitebox.invokeMethod(tested, "varArgsMethod2", 1, 2, 3));
-+ assertEquals(4, (int)Whitebox.invokeMethod(tested, "varArgsMethod2", 1, 2, 3));
++ assertEquals(4, (int) Whitebox.invokeMethod(tested, "varArgsMethod2", 1, 2, 3));
}
@Test
diff --git a/powermock-reflect/src/test/java/org/powermock/reflect/internal/proxy/ClassFactory.java b/powermock-reflect/src/test/java/org/powermock/reflect/internal/proxy/ClassFactory.java
-index a5e5fda..14b8bbe 100644
+index 03db992..828bfe0 100644
--- a/powermock-reflect/src/test/java/org/powermock/reflect/internal/proxy/ClassFactory.java
+++ b/powermock-reflect/src/test/java/org/powermock/reflect/internal/proxy/ClassFactory.java
@@ -1,8 +1,8 @@
package org.powermock.reflect.internal.proxy;
--import net.sf.cglib.asm.ClassWriter;
--import net.sf.cglib.asm.MethodVisitor;
--import net.sf.cglib.asm.Opcodes;
+-import net.bytebuddy.jar.asm.ClassWriter;
+-import net.bytebuddy.jar.asm.MethodVisitor;
+-import net.bytebuddy.jar.asm.Opcodes;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
@@ -174,5 +294,5 @@ index a5e5fda..14b8bbe 100644
class ClassFactory implements Opcodes {
--
-2.14.1
+2.38.1
diff --git a/gnu/packages/patches/opencolorio-fix-build-with-gcc11.patch b/gnu/packages/patches/opencolorio-fix-build-with-gcc11.patch
deleted file mode 100644
index 06507db206..0000000000
--- a/gnu/packages/patches/opencolorio-fix-build-with-gcc11.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Fix build failure with GCC 11:
-
-------
-[...]
-/tmp/guix-build-opencolorio-1.1.1.drv-0/source/src/core/ImageDesc.cpp:60:51: error: ‘this’ pointer is null [-Werror=nonnull]
- 60 | os << "width=" << packedImg->getWidth() << ", ";
- | ^
-/tmp/guix-build-opencolorio-1.1.1.drv-0/source/src/core/ImageDesc.cpp:274:10: note: in a call to non-static member function ‘long int OpenColorIO::v1::PackedImageDesc::getWidth() const’
- 274 | long PackedImageDesc::getWidth() const
- | ^~~~~~~~~~~~~~~
-/tmp/guix-build-opencolorio-1.1.1.drv-0/source/src/core/ImageDesc.cpp:61:53: error: ‘this’ pointer is null [-Werror=nonnull]
- 61 | os << "height=" << packedImg->getHeight() << ", ";
- | ^
-/tmp/guix-build-opencolorio-1.1.1.drv-0/source/src/core/ImageDesc.cpp:279:10: note: in a call to non-static member function ‘long int OpenColorIO::v1::PackedImageDesc::getHeight() const’
- 279 | long PackedImageDesc::getHeight() const
- | ^~~~~~~~~~~~~~~
-cc1plus: all warnings being treated as errors
-[...]
-------
-
-Patch copied from Gentoo:
-
-https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e726d850502018b6760da78dbd4a419603016b8
-
-diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
-index 1eb691b6..cff9bd83 100644
---- a/src/core/CMakeLists.txt
-+++ b/src/core/CMakeLists.txt
-@@ -23,8 +23,6 @@ if(WIN32)
- if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
- set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} /WX")
- endif()
--else()
-- set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} -Werror")
- endif()
-
- # SHARED
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/xgboost-use-system-dmlc-core.patch b/gnu/packages/patches/xgboost-use-system-dmlc-core.patch
index 6b2a1651a5..cbc0feed1c 100644
--- a/gnu/packages/patches/xgboost-use-system-dmlc-core.patch
+++ b/gnu/packages/patches/xgboost-use-system-dmlc-core.patch
@@ -1,13 +1,13 @@
-# This patch was imported from Debian: https://sources.debian.org/src/xgboost/1.5.1-1/debian/patches/cmake-dmlc-core.patch/
+# This patch was imported from Debian: https://sources.debian.org/patches/xgboost/1.7.4-1/cmake-dmlc-core.patch/
Index: xgboost/CMakeLists.txt
===================================================================
--- xgboost.orig/CMakeLists.txt
+++ xgboost/CMakeLists.txt
-@@ -164,7 +164,9 @@ endif (USE_NCCL)
-
- # dmlc-core
- msvc_use_static_runtime()
+@@ -205,7 +205,9 @@ msvc_use_static_runtime()
+ if (FORCE_SHARED_CRT)
+ set(DMLC_FORCE_SHARED_CRT ON)
+ endif ()
-add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core)
+add_library(dmlc SHARED IMPORTED)
+find_library(DMLC_LIBRARY dmlc)
@@ -15,7 +15,7 @@ Index: xgboost/CMakeLists.txt
if (MSVC)
if (TARGET dmlc_unit_tests)
-@@ -222,7 +224,7 @@ set_target_properties(runxgboost PROPERT
+@@ -267,7 +269,7 @@ set_target_properties(runxgboost PROPERT
#-- End CLI for xgboost
# Common setup for all targets
@@ -24,7 +24,7 @@ Index: xgboost/CMakeLists.txt
xgboost_target_properties(${target})
xgboost_target_link_libraries(${target})
xgboost_target_defs(${target})
-@@ -273,7 +275,7 @@ install(DIRECTORY ${xgboost_SOURCE_DIR}/
+@@ -318,7 +320,7 @@ install(DIRECTORY ${xgboost_SOURCE_DIR}/
#
# https://github.com/dmlc/xgboost/issues/6085
if (BUILD_STATIC_LIB)
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/pdf.scm b/gnu/packages/pdf.scm
index 0c83ff10e1..4e260d614d 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -618,7 +618,7 @@ using the DjVuLibre library.")
(define-public zathura-pdf-mupdf
(package
(name "zathura-pdf-mupdf")
- (version "0.4.0")
+ (version "0.4.1")
(source (origin
(method url-fetch)
(uri
@@ -626,7 +626,7 @@ using the DjVuLibre library.")
"/download/zathura-pdf-mupdf-" version ".tar.xz"))
(sha256
(base32
- "0pcjxvlh4hls8mjhjghhhihyy2kza8l27wdx0yq4bkd1g1b5f74c"))))
+ "0bxc0b2bkzfc3mqv1g8wjvbvzv95lq34q641jdk2byi3clfs10pr"))))
(native-inputs (list pkg-config))
(inputs
(list gumbo-parser
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index eb2089790d..57a06f836b 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
-;;; Copyright © 2016-2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016-2022, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
;;; Copyright © 2016, 2018, 2020, 2021 Roel Janssen <roel@gnu.org>
@@ -37,6 +37,7 @@
;;; Copyright © 2023 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2023 Jake Leporte <jakeleporte@outlook.com>
+;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -5554,6 +5555,25 @@ Hook::LexWrap implements wrappers in such a way that the standard
caller function works correctly within the wrapped subroutine.")
(license license:perl-license)))
+(define-public perl-image-size
+ (package
+ (name "perl-image-size")
+ (version "3.300")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RJ/RJRAY/Image-Size-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0sq2kwdph55h4adx50fmy86brjkkv8grsw33xrhf1k9icpwb3jak"))))
+ (build-system perl-build-system)
+ (native-inputs (list perl-module-build))
+ (home-page "https://metacpan.org/release/Image-Size")
+ (synopsis "Extract height/width from images")
+ (description "This package provides a simple Perl library to extract
+height/width from images.")
+ (license license:perl-license)))
+
(define-public perl-importer
(package
(name "perl-importer")
@@ -8079,16 +8099,31 @@ of data.")
(define-public perl-mozilla-ca
(package
(name "perl-mozilla-ca")
- (version "20200520")
+ (version "20240313")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://cpan/authors/id/A/AB/ABH/Mozilla-CA-"
+ (uri (string-append "mirror://cpan/authors/id/L/LW/LWP/Mozilla-CA-"
version ".tar.gz"))
(sha256
(base32
- "09n7hwrh63c5gqvygqvvgvklcbvsm7g0p4nmq0b4mwhb64101jmk"))))
+ "1rwq2qb8f101ihq5gmdmr9vsnx7ybnln85489y4k761hks9p6j32"))
+ (snippet
+ #~(begin (use-modules (guix build utils))
+ (delete-file "lib/Mozilla/CA/cacert.pem")
+ (substitute* "lib/Mozilla/CA.pm"
+ (("my \\$file.*") "my $file = $ENV{SSL_CERT_FILE};\n")
+ (("return.*")
+ (string-append
+ "if (!File::Spec->file_name_is_absolute($file)) {\n"
+ " $file = \"/etc/ssl/certs/ca-certificates.crt\";\n"
+ " }\n"
+ " return $file;\n"))
+ (("provides a copy of.*")
+ "provides a link to the user's or the system's SSL\n"))))))
(build-system perl-build-system)
+ (arguments
+ (list #:tests? #f)) ; Tests rely on embedded cacert.pem.
(home-page "https://metacpan.org/release/Mozilla-CA")
(synopsis "Mozilla's CA cert bundle in PEM format")
(description "@code{Mozilla::CA} provides a copy of Mozilla's bundle of
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 8419ac033b..72201770c7 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -62,7 +62,7 @@
(define-public php
(package
(name "php")
- (version "8.2.13")
+ (version "8.3.6")
(home-page "https://www.php.net/")
(source (origin
(method url-fetch)
@@ -70,7 +70,7 @@
"php-" version ".tar.xz"))
(sha256
(base32
- "0js5bm8r3kngsgmxhyr681vrpl4gib3318k8428pigqp06hvna96"))
+ "1bjygxjaqmvccyk4ic3lrca5j34f0pjb6f1ldmi9gbr345mkij2k"))
(modules '((guix build utils)))
(snippet
'(with-directory-excursion "ext"
@@ -278,7 +278,10 @@
;; PCRE with/without JIT gives different result
"ext/pcre/tests/gh11374.phpt"
"ext/pcre/tests/gh11956.phpt"
-
+ ;; reported bug only seems to affect windows
+ "ext/standard/tests/directory/bug74589_utf8.phpt"
+ ;; this test seems to be unreliable/flaky
+ "sapi/cli/tests/php_cli_server_pdeathsig.phpt"
;; This test fails on most architectures.
"sapi/cli/tests/upload_2G.phpt"))
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index ed7f4abbb0..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,267 +24,57 @@
(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
(name "asymptote")
- (version "2.88")
+ (version "2.89")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/asymptote/"
version "/asymptote-" version ".src.tgz"))
(sha256
- (base32 "1fzm58md2kc32sj19bksnd8yzkg47z5pblkxp28r7vm67xs1mrqd"))
+ (base32 "0nvzlnabxjn74ybv3jns9vsr33prlvlg3i20hskz31agxss64kpn"))
(modules '((guix build utils)))
(snippet
;; Remove bundled RapidJSON.
@@ -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-build.scm b/gnu/packages/python-build.scm
index 2ea457cdba..76e29b6c90 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2020, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
@@ -260,6 +260,7 @@ Included are implementations of:
(package
(name "python-pip")
(version "23.1")
+ (replacement python-pip/fixed)
(source
(origin
(method url-fetch)
@@ -277,6 +278,41 @@ Included are implementations of:
Python Package Index (PyPI).")
(license license:expat)))
+(define python-pip/fixed
+ (package
+ (inherit python-pip)
+ (source (origin
+ (inherit (package-source python-pip))
+ (snippet
+ #~(begin
+ (delete-file "src/pip/_vendor/certifi/cacert.pem")
+ (delete-file "src/pip/_vendor/certifi/core.py")
+ (with-output-to-file "src/pip/_vendor/certifi/core.py"
+ (lambda _
+ (display "\"\"\"
+certifi.py
+~~~~~~~~~~
+This file is a Guix-specific version of core.py.
+
+This module returns the installation location of SSL_CERT_FILE or
+/etc/ssl/certs/ca-certificates.crt, or its contents.
+\"\"\"
+import os
+
+_CA_CERTS = None
+
+try:
+ _CA_CERTS = os.environ [\"SSL_CERT_FILE\"]
+except:
+ _CA_CERTS = os.path.join(\"/etc\", \"ssl\", \"certs\", \"ca-certificates.crt\")
+
+def where() -> str:
+ return _CA_CERTS
+
+def contents() -> str:
+ with open(where(), \"r\", encoding=\"ascii\") as data:
+ return data.read()")))))))))
+
(define-public python-setuptools
(package
(name "python-setuptools")
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 16e9fc7a4b..947dd189d3 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2020, 2022, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2024 TakeV <takev@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -717,6 +718,26 @@ install: libbitshuffle.so
wrapper. It provides a backport of the @code{Path} object.")
(license license:expat)))
+(define-public python-zipstream-ng
+ (package
+ (name "python-zipstream-ng")
+ (version "1.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "zipstream-ng" version))
+ (sha256
+ (base32 "1z4zdqqs2rg3z36khgj96bpggv34av337isfv7yxg32prawj687r"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest python-pytest-cov))
+ (home-page "https://github.com/pR0Ps/zipstream-ng")
+ (synopsis "Streamable zip file generator")
+ (description
+ "This package provides a modern and easy to use streamable zip file
+generator")
+ (license license:lgpl3)))
+
(define-public python-zopfli
(package
(name "python-zopfli")
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 3e1472a6c9..d25059c86b 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -469,6 +469,7 @@ for example, for recording or replaying web content.")
(package
(name "python-certifi")
(version "2022.6.15")
+ (replacement python-certifi/fixed)
(source (origin
(method url-fetch)
(uri (pypi-uri "certifi" version))
@@ -484,6 +485,41 @@ for example, for recording or replaying web content.")
is used by the Requests library to verify HTTPS requests.")
(license license:asl2.0)))
+(define python-certifi/fixed
+ (package
+ (inherit python-certifi)
+ (source (origin
+ (inherit (package-source python-certifi))
+ (snippet
+ #~(begin
+ (delete-file "certifi/cacert.pem")
+ (delete-file "certifi/core.py")
+ (with-output-to-file "certifi/core.py"
+ (lambda _
+ (display "\"\"\"
+certifi.py
+~~~~~~~~~~
+This file is a Guix-specific version of core.py.
+
+This module returns the installation location of SSL_CERT_FILE or
+/etc/ssl/certs/ca-certificates.crt, or its contents.
+\"\"\"
+import os
+
+_CA_CERTS = None
+
+try:
+ _CA_CERTS = os.environ [\"SSL_CERT_FILE\"]
+except:
+ _CA_CERTS = os.path.join(\"/etc\", \"ssl\", \"certs\", \"ca-certificates.crt\")
+
+def where() -> str:
+ return _CA_CERTS
+
+def contents() -> str:
+ with open(where(), \"r\", encoding=\"ascii\") as data:
+ return data.read()")))))))))
+
(define-public python-cryptography-vectors
(package
(name "python-cryptography-vectors")
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 862e101f6a..6fd4f555fa 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -717,6 +717,117 @@ and intuitive. It aims to be the fundamental high-level building block for
doing practical, real world data analysis in Python.")
(license license:bsd-3)))
+(define-public python-pandas-2
+ (package
+ (name "python-pandas")
+ (version "2.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pandas-dev/pandas")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1v9j38bvw739csdfl98ga6fqjdm61q3p5a2l7h364kg925nbc9r1"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "--pyargs" "pandas"
+ ;; "--exitfirst"
+ ;; FIXME "-n" (number->string (parallel-job-count))
+ "-m" "not slow and not network and not db"
+ "-k" (string-append
+ "not test_git_version"
+ " and not test_show_versions_console"
+ ;; Not testing ~ expansion.
+ " and not test_expand_user"
+ " and not test_get_handle_with_path"
+ ;; These test access the internet (see:
+ ;; https://github.com/pandas-dev/pandas/issues/45085).:
+ ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[lxml]
+ ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[etree]
+ " and not test_wrong_url"
+ ;; TODO: Missing input
+ " and not TestS3"
+ " and not s3"
+ ;; This test fails when run with pytest-xdist
+ ;; (see: https://github.com/pandas-dev/pandas/issues/39096).
+ " and not test_memory_usage"
+ " and not test_parsing_tzlocal_deprecated"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'version-set-by-guix
+ (lambda _
+ (with-output-to-file "_version_meson.py"
+ (lambda _
+ (display
+ (string-append "__version__ = \""
+ #$(package-version this-package)
+ "\""))))))
+ (add-before 'check 'prepare-x
+ (lambda _
+ (system "Xvfb &")
+ (setenv "DISPLAY" ":0")
+ (setenv "HOME" ".")
+ ;; Skip tests that require lots of resources.
+ (setenv "PANDAS_CI" "1")))
+ (add-after 'unpack 'patch-which
+ (lambda _
+ (substitute* "pandas/io/clipboard/__init__.py"
+ (("^WHICH_CMD = .*")
+ (string-append "WHICH_CMD = \""
+ #$(this-package-input "which")
+ "/bin/which\"\n")))))
+ ;; The compiled libraries are only in the output at this point,
+ ;; but they are needed to run tests.
+ ;; FIXME: This should be handled by the pyargs pytest argument,
+ ;; but is not for some reason.
+ (add-before 'check 'pre-check
+ (lambda _
+ (copy-recursively
+ (string-append #$output
+ "/lib/python3.10/site-packages/pandas/_libs")
+ "pandas/_libs"))))))
+ (propagated-inputs
+ (list python-dateutil
+ python-jinja2
+ python-matplotlib
+ python-numpy
+ python-openpyxl
+ python-pytz
+ python-tzdata
+ python-xlrd
+ python-xlsxwriter))
+ (inputs
+ (list which xclip xsel))
+ (native-inputs
+ (list meson-python/newer
+ python-beautifulsoup4
+ python-cython-0.29.35
+ python-html5lib
+ python-lxml
+ python-matplotlib
+ python-openpyxl
+ python-pytest-asyncio
+ python-pytest-next
+ python-pytest-localserver
+ python-pytest-mock
+ python-pytest-xdist
+ python-versioneer
+ ;; Needed to test clipboard support.
+ xorg-server-for-tests))
+ (home-page "https://pandas.pydata.org")
+ (synopsis "Data structures for data analysis, time series, and statistics")
+ (description
+ "Pandas is a Python package providing fast, flexible, and expressive data
+structures designed to make working with structured (tabular,
+multidimensional, potentially heterogeneous) and time series data both easy
+and intuitive. It aims to be the fundamental high-level building block for
+doing practical, real world data analysis in Python.")
+ (license license:bsd-3)))
+
(define-public python-pandas-stubs
(package
(name "python-pandas-stubs")
@@ -1223,6 +1334,53 @@ large and growing library of domain-agnostic functions for advanced analytics
and visualization with these data structures.")
(license license:asl2.0)))
+(define-public python-xarray-dataclasses
+ (package
+ (name "python-xarray-dataclasses")
+ (version "1.7.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/astropenguin/xarray-dataclasses/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "043lc1hadr5y0y16g682viiafy0hfsa7q18lqmndpyvnmcgm893z"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-numpy python-typing-extensions
+ python-xarray))
+ (native-inputs (list python-pytest python-poetry-core))
+ (home-page "https://github.com/astropenguin/xarray-dataclasses/")
+ (synopsis "xarray data creation made easy by dataclass")
+ (description "@code{xarray-dataclasses} is a Python package that makes it
+easy to create @code{xarray}'s @code{DataArray} and @code{Datase} objects that
+are \"typed\" (i.e. fixed dimensions, data type, coordinates, attributes, and
+name) using the Python's @code{dataclass}.")
+ (license license:expat)))
+
+;; Note that this package will be folded into xarray eventually. See
+;; https://github.com/pydata/xarray/issues/8572 for details.
+(define-public python-xarray-datatree
+ (package
+ (name "python-xarray-datatree")
+ (version "0.0.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "xarray-datatree" version))
+ (sha256
+ (base32 "1x1s25s6dp1f2hck9qw8vl8hgkyy23rcwag2a9vd3w0dbgrrl5i6"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-packaging python-xarray))
+ (native-inputs (list python-pytest python-zarr))
+ (home-page "https://github.com/xarray-contrib/datatree")
+ (synopsis "Hierarchical tree-like data structures for xarray")
+ (description "Datatree is a prototype implementation of a tree-like
+hierarchical data structure for @code{xarray}. Datatree is in the process of
+being merged upstream into @code{xarray}.")
+ (license license:asl2.0)))
+
(define-public python-xarray-einstats
(package
(name "python-xarray-einstats")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 5a532f8460..c89856f296 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -64,6 +64,7 @@
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2024 normally_js <normally_js@posteo.net>
+;;; Copyright © 2024 Markku Korkeala <markku.korkeala@iki.fi>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -7176,6 +7177,32 @@ Agent is a web crawler. It uses the list of registered robots from
@url{http://www.robotstxt.org}.")
(license license:gpl3+)))
+(define-public python-robotframework-requests
+ (package
+ (name "python-robotframework-requests")
+ (version "0.9.7")
+ (source
+ (origin
+ (method git-fetch) ; no tests in PyPI release
+ (uri (git-reference
+ (url "https://github.com/MarketSquare/robotframework-requests")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "077j8p5k41v53slyv8h32fcmqfi7m6z3r4gmyqqaawm5szfmy61m"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs
+ (list python-requests python-robotframework))
+ (native-inputs
+ (list python-pytest))
+ (home-page "https://github.com/MarketSquare/robotframework-requests")
+ (synopsis "Robot Framework keyword library wrapper around requests")
+ (description
+ "@code{RequestsLibrary} is a @url{https://robotframework.org/, Robot
+Framework} library aimed to provide HTTP API testing functionalities by
+wrapping the @code{requests} Python library.")
+ (license license:expat)))
+
(define-public python-pysolr
(package
(name "python-pysolr")
@@ -7400,16 +7427,29 @@ challenges.")
(define-public python-imap-tools
(package
(name "python-imap-tools")
- (version "0.29.0")
+ (version "1.6.0")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "imap_tools" version))
- (sha256
- (base32
- "0x122jwpc74wwyw2rsv2fvh6p12y31019ndfr9717jzjkj2d3lhb"))))
- (build-system python-build-system)
- (arguments '(#:tests? #f)) ; tests require internet access
+ (origin
+ (method git-fetch) ; no tests in PyPI release
+ (uri (git-reference
+ (url "https://github.com/ikvk/imap_tools")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0w4x5l5w7rz1mrmbbjbfqbf3f5p89wi2fw245yvg8k98zgy012sg"))))
+ (arguments
+ (list
+ #:test-flags
+ ;; Tests require a network connection
+ #~(list "-k" (string-append "not test_action"
+ " and not test_attributes"
+ " and not test_connection"
+ " and not test_folders"
+ " and not test_idle"
+ " and not test_live"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest))
(home-page "https://github.com/ikvk/imap_tools")
(synopsis "Work with email and mailbox by IMAP")
(description
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f2ea90ad09..f22b891ba5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -151,6 +151,7 @@
;;; Copyright © 2024 Ian Eure <ian@retrospec.tv>
;;; Copyright © 2024 Adriel Dumas--Jondeau <leirda@disroot.org>
;;; Copyright © 2024 Navid Afkhami <navid.afkhami@mdc-berlin.de>
+;;; Copyright © 2024 TakeV <takev@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1125,35 +1126,28 @@ into dataclasses.")
(define-public python-contourpy
(package
(name "python-contourpy")
- (version "1.1.0")
+ (version "1.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "contourpy" version))
(sha256
- (base32 "088bhyh6m6q0h637wiq2paqhwn76hqvvbhqwacfx4a1qhv1lcc75"))))
+ (base32 "1az80zv067rcybm5x93j7rfiakbwiv1h8l58gnki4wjbwb13gfln"))))
(build-system pyproject-build-system)
(arguments
- (list
- #:test-flags
- ;; All these tests require matplotlib, but matplotlib requires contourpy
- ;; now.
- '(list "-k" "not test_mypy"
- "--ignore=tests/test_config.py"
- "--ignore=tests/test_filled.py"
- "--ignore=tests/test_lines.py"
- "--ignore=tests/test_renderer.py")))
- (propagated-inputs (list python-mypy
- python-numpy
- python-pillow
- python-pytest
- python-pytest-cov
- python-pytest-xdist
- python-selenium
- python-sphinx
- python-sphinx-copybutton
- python-wurlitzer))
- (native-inputs (list meson-python pybind11-2.10 pkg-config))
+ ;; Image tests require matplotlib and create a circular dependency.
+ (list #:test-flags
+ #~(list "-m" "not image")))
+ (propagated-inputs
+ (list python-numpy))
+ (native-inputs
+ (list cmake
+ meson-python/newer
+ pkg-config
+ pybind11
+ python-pytest
+ python-pytest-cov
+ python-wurlitzer))
(home-page "https://contourpy.readthedocs.io/")
(synopsis
"Python library for calculating contours of 2D quadrilateral grids")
@@ -1835,6 +1829,24 @@ class.")
library.")
(license license:expat)))
+(define-public python-slicerator
+ (package
+ (name "python-slicerator")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "slicerator" version))
+ (sha256
+ (base32 "0ik0bmh18zgffd9kx53254jp3yyih6zcmd8kfb080xnqbizhl0a4"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/soft-matter/slicerator")
+ (synopsis "Lazy-loading, fancy-sliceable iterable")
+ (description
+ "This package provides a lazy-loading, fancy-sliceable iterable. Think
+of it like a generator that is \"reusable\" and has a length.")
+ (license license:bsd-3)))
+
(define-public python-slixmpp
(package
(name "python-slixmpp")
@@ -3999,7 +4011,7 @@ server.")
(define-public python-openpyxl
(package
(name "python-openpyxl")
- (version "3.0.9")
+ (version "3.0.10")
(source
(origin
;; We use the upstream repository, as the tests are not included in the
@@ -4010,13 +4022,8 @@ server.")
(changeset version)))
(file-name (string-append name "-" version "-checkout"))
(sha256
- (base32 "1p8xvc2gjw6zyzbd7qdvc3x178sm00ymrbyh9539l4fpzgxh0j9c"))))
- (build-system python-build-system)
- (arguments
- `(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "pytest"))))))
+ (base32 "0f8ym32vdn8wyziiy5bz8iiwvgj7dlccy86wkfcn5syqgivgqnv9"))))
+ (build-system pyproject-build-system)
(native-inputs (list python-lxml python-pillow python-pytest))
(propagated-inputs (list python-et-xmlfile python-jdcal))
(home-page "https://openpyxl.readthedocs.io")
@@ -6076,26 +6083,17 @@ possible.")
for Python.")
(license license:bsd-3)))
-
(define-public python-jinja2
(package
(name "python-jinja2")
- (version "3.1.1")
+ (version "3.1.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Jinja2" version))
(sha256
- (base32
- "1saawzys14l1p4kafs7hkihmnvqjq8fwxjmkjiqx3jq1nm5ys2v4"))))
- (build-system python-build-system)
- (arguments
- '(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (if tests?
- (invoke "pytest" "-vv")
- (format #t "test suite not run~%")))))))
+ (base32 "0lp86yadzf8dph67f6g3yxmvnhrzzi863z58jmsrx2j059q1ld9i"))))
+ (build-system pyproject-build-system)
(native-inputs (list python-pytest))
(propagated-inputs (list python-markupsafe))
(home-page "https://jinja.palletsprojects.com/")
@@ -6105,7 +6103,6 @@ for Python.")
written in pure Python.")
(license license:bsd-3)))
-
(define-public python-jinja2-time
(package
(name "python-jinja2-time")
@@ -7606,6 +7603,9 @@ errors when data is invalid.")
(arguments
(list
#:test-flags #~(list "--ignore=tests/test_docs.py" ; no pytest_examples
+ ;; These tests include hashes that keep changing depending on
+ ;; package versions.
+ "--ignore=tests/benchmarks/test_north_star.py"
;; need python-email-validator >= 2.0.0
"-k not test_fastapi_startup_perf")
#:phases
@@ -8625,6 +8625,34 @@ tracebacks and better introspection than Python's standard @command{pdb}
debugger, with which it shares the same interface.")
(license license:bsd-3)))
+(define-public python-ipfsspec
+ (package
+ (name "python-ipfsspec")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ipfsspec" version))
+ (sha256
+ (base32 "1y4ad9schc76j2lynm7vpwi4q4jzi9vv843zfpisbp8zqgm0rr7l"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ '(list "-m not local_gw"
+ ;; Require local gateway
+ "--ignore=test/test_gateway.py"
+ ;; Require internet
+ "--ignore=test/test_async.py"
+ "--ignore=test/test_ipfs.py")))
+ (propagated-inputs (list python-aiohttp python-fsspec python-requests))
+ (native-inputs (list python-pytest python-pytest-asyncio))
+ (home-page "https://github.com/fsspec/ipfsspec")
+ (synopsis "Read-only implementation of fsspec for IPFS")
+ (description "This package provides a read-only implementation of
+@code{fsspec} for IPFS.")
+ (license license:expat)))
+
(define-public python-pdbpp
;; The latest release lacks support for Python 3.10; use the latest commit
;; of the master branch (see: https://github.com/pdbpp/pdbpp/issues/503).
@@ -10737,7 +10765,7 @@ support for Python 3 and PyPy. It is based on cffi.")
(define-public python-cairocffi
(package
(name "python-cairocffi")
- (version "1.3.0")
+ (version "1.6.1")
(source
(origin
;; The PyPI archive does not include the documentation, so use Git.
@@ -10748,13 +10776,15 @@ support for Python 3 and PyPy. It is based on cffi.")
(file-name (git-file-name name version))
(sha256
(base32
- "0lylyxyyd8csjhn5kxwzrcr6ick6pvvm1wclpmb5ni28jznxn7lb"))))
- (build-system python-build-system)
+ "161z2bsp0ai4311mz9n0h6vmz80690jbijxx2gqkknygwm2ynjgd"))))
+ (build-system pyproject-build-system)
(outputs '("out" "doc"))
(inputs
(list glib gtk+ gdk-pixbuf cairo))
(native-inputs
- (list python-numpy
+ (list python-flit-core
+ python-numpy
+ python-pikepdf
python-pytest
python-pytest-cov
python-pytest-runner
@@ -10784,15 +10814,6 @@ support for Python 3 and PyPy. It is based on cffi.")
(search-input-file inputs "/lib/libglib-2.0.so.0"))
(("libgdk-3.so.0")
(search-input-file inputs "/lib/libgdk-3.so.0")))))
- (add-after 'unpack 'disable-linters
- ;; Their check fails; none of our business.
- (lambda _
- (substitute* "setup.cfg"
- ((".*pytest-flake8.*") "")
- ((".*pytest-isort.*") "")
- (("--flake8") "")
- (("--isort") ""))
- #t))
(add-after 'install 'install-doc
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((data (string-append (assoc-ref outputs "doc") "/share"))
@@ -13982,7 +14003,7 @@ plugin for flake8 to check PEP-8 naming conventions.")
(define-public python-pyproject-metadata
(package
(name "python-pyproject-metadata")
- (version "0.6.1")
+ (version "0.7.1")
(source
(origin
(method git-fetch)
@@ -13992,7 +14013,7 @@ plugin for flake8 to check PEP-8 naming conventions.")
(file-name (git-file-name name version))
(sha256
(base32
- "00zahgw9zjfqwf0218bj5k732aibnn68cq1p8f0wmbirb7fy5k31"))))
+ "0yvs59ymz5gdix34a95wxlxvk9bnvjgrzsnmnc3ws7whpfv3yasm"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-packaging))
(native-inputs (list python-pypa-build python-pytest python-tomli))
@@ -17558,8 +17579,11 @@ config files.")
(add-after 'unpack 'loosen-requirements
(lambda _
(substitute* "requirements/base.txt"
- (("antlr4-python3-runtime==")
- "antlr4-python3-runtime>=")))))))
+ (("antlr4-python3-runtime==.*")
+ "antlr4-python3-runtime >=4.9\n"))
+ ;; Ignore deprecation warnings.
+ (substitute* "pyproject.toml"
+ (("-Werror") "")))))))
(propagated-inputs (list java-antlr4-runtime-python
python-pydevd
python-pyyaml))
@@ -20757,6 +20781,35 @@ implementation has been adapted, improved, and fixed from Molten.")
running in.")
(license license:isc)))
+(define-public python-shshsh
+ (package
+ (name "python-shshsh")
+ (version "1.0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/zqqqqz2000/shshsh")
+ (commit
+ "fd21c8696aebaae04507760c16cb45979291fef5")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wzqyj1a6jj6cyv5ymzy834qm2lyq80yy1kfz0q0zayq9gm1cj7f"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-poetry-core
+ python-pytest
+ python-tox))
+ (home-page "https://github.com/zqqqqz2000/shshsh")
+ (synopsis "Write Shell commands simply and safely within Python")
+ (description "This package provides a way to write Shell commands from
+within Python. Python functions can be chained together to process input
+Bash control characters are escapted so that parameters can be passed
+without worrying about command injection.")
+ (license license:expat)))
+
(define-public python-memcached
(package
(name "python-memcached")
@@ -27265,19 +27318,23 @@ codecs for use in data storage and communication applications.")
(define-public python-zarr
(package
(name "python-zarr")
- (version "2.17.1")
+ (version "2.17.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "zarr" version))
(sha256
(base32
- "0qb2wj60i7v1c95k6m0pskx20ss6dxrj3ym0d7z4c98jfah3ljsn"))))
+ "1kjj0pk0s6306ljrig77m39zqdy32ch4nyja5lalab9l9v5sdfic"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
- #~(list "-n" "auto")
+ #~(list "-n" "auto"
+ ;; This tests are flaky. The pass several times on my laptop
+ ;; but occasionally fail. They fail pretty reliably on the
+ ;; build farm.
+ "-k not test_lazy_loader and not open_array")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-service-tests
@@ -28768,7 +28825,7 @@ repository is provided via Python API and as a compressed JSON file.")
(package
;; This is a command-line tool, so no "python-" prefix.
(name "jube")
- (version "2.2.2")
+ (version "2.6.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -28776,9 +28833,10 @@ repository is provided via Python API and as a compressed JSON file.")
version))
(sha256
(base32
- "0xq4k1q63s1p6swgyp61vahlrd1fqmgbm0gm5kpj8ikwy0yc0nqk"))
+ "0r5d2gdqa0f4c468q3k25ycw1k2g76gg8fyiln4ni98fvfsbx3il"))
(file-name (string-append "jube-" version ".tar.gz"))))
(build-system python-build-system)
+ (native-inputs (list python-pyyaml)) ; pyyaml is needed for tests
(home-page "https://apps.fz-juelich.de/jsc/jube/jube2/docu/index.html")
(synopsis "Benchmarking environment")
(description
@@ -32391,7 +32449,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
@@ -34998,6 +35056,28 @@ sources. For example, it allows you to have all your casting and
parsing rules in a single place.")
(license license:bsd-3)))
+(define-public python-iterable-io
+ (package
+ (name "python-iterable-io")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "iterable-io" version))
+ (sha256
+ (base32 "0g4cn522n4dv6ly8pwf97dc62rr4f7my38v0bh6vmac7jmrip7pv"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/pR0Ps/iterable-io")
+ (synopsis "Adapt generators and other iterables to a file-like interface")
+ (description
+ "@code{iterable-io} is a small Python library that provides an adapter so
+that it's possible to read from
+@url{https://docs.python.org/3/glossary.html#term-iterable,iterable} objects
+in the same way as
+@url{https://docs.python.org/3/glossary.html#term-file-object,file-like}
+objects.")
+ (license license:lgpl3)))
+
(define-public python-iteround
(package
(name "python-iteround")
@@ -35726,7 +35806,7 @@ window managers.")
(define-public i3-autotiling
(package
(name "i3-autotiling")
- (version "1.8")
+ (version "1.9.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -35735,7 +35815,7 @@ window managers.")
(file-name (git-file-name name version))
(sha256
(base32
- "1nsm0gd45ys4ghlzrvjrf0lvcyhvpx58lz8gg325a762wn5a4a72"))))
+ "010sw3b2nx5cl578drd3xj58wlza76zkzh1jhsp44chg1vvhacrx"))))
(build-system python-build-system)
(arguments (list #:tests? #f)) ;no tests
(native-inputs (list python-wheel))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 12a5148cb1..b2757c651e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2015, 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015-2020, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2017 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
@@ -96,6 +96,7 @@
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix search-paths)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
@@ -424,6 +425,7 @@ data types.")
(inherit python-2)
(name "python")
(version "3.10.7")
+ (replacement python-3.10/fixed)
(source (origin
(method url-fetch)
(uri (string-append "https://www.python.org/ftp/python/"
@@ -633,6 +635,7 @@ data types.")
"--with-computed-gotos" ;main interpreter loop optimization
"--enable-unicode=ucs4"
"--without-static-libpython"
+ "--enable-loadable-sqlite-extensions"
;; FIXME: These flags makes Python significantly faster,
;; but leads to non-reproducible binaries.
@@ -982,6 +985,80 @@ data types.")
(properties '((cpe-name . "python")))
(license license:psfl)))
+(define python-3.10/fixed
+ (package
+ (inherit python-3.10)
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-3.10)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ ;; Also remove the bundled CA certificates.
+ ;; TODO: Rename this phase when merging back into python.
+ (replace 'remove-windows-binaries
+ (lambda _
+ ;; Delete .exe from embedded .whl (zip) files
+ (for-each
+ (lambda (whl)
+ (let ((dir "whl-content")
+ (circa-1980 (* 10 366 24 60 60)))
+ (mkdir-p dir)
+ (with-directory-excursion dir
+ (let ((whl (string-append "../" whl)))
+ (invoke "unzip" whl)
+ (for-each delete-file
+ (find-files "." "\\.exe$"))
+ (delete-file whl)
+
+ ;; Search for cacert.pem, delete it, and rewrite the
+ ;; file which directs python to look for it.
+ (let ((cacert (find-files "." "cacert\\.pem")))
+ (unless (null? cacert)
+ (let ((certifi (dirname (car cacert))))
+ (delete-file (string-append certifi "/cacert.pem"))
+ (delete-file (string-append certifi "/core.py"))
+ (with-output-to-file (string-append certifi "/core.py")
+ (lambda _
+ (display "\"\"\"
+certifi.py
+~~~~~~~~~~
+This file is a Guix-specific version of core.py.
+
+This module returns the installation location of SSL_CERT_FILE or
+/etc/ssl/certs/ca-certificates.crt, or its contents.
+\"\"\"
+import os
+
+_CA_CERTS = None
+
+try:
+ _CA_CERTS = os.environ [\"SSL_CERT_FILE\"]
+except:
+ _CA_CERTS = os.path.join(\"/etc\", \"ssl\", \"certs\", \"ca-certificates.crt\")
+
+def where() -> str:
+ return _CA_CERTS
+
+def contents() -> str:
+ with open(where(), \"r\", encoding=\"ascii\") as data:
+ return data.read()"))))))
+
+ ;; Reset timestamps to prevent them from ending
+ ;; up in the Zip archive.
+ (ftw "." (lambda (file stat flag)
+ (utime file circa-1980 circa-1980)
+ #t))
+ (apply invoke "zip" "-X" whl
+ (find-files "." #:directories? #t))))
+ (delete-file-recursively dir)))
+ (find-files "Lib/ensurepip" "\\.whl$"))))))))
+ (native-search-paths
+ (list (guix-pythonpath-search-path (package-version python-3.10))
+ $SSL_CERT_FILE
+ ;; Used to locate tzdata by the zoneinfo module introduced in
+ ;; Python 3.9.
+ (search-path-specification
+ (variable "PYTHONTZPATH")
+ (files (list "share/zoneinfo")))))))
;; Next 3.x version.
(define-public python-next python-3.12)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 1440c6981c..13aadc8190 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2022, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Herman Rimm <herman@rimm.ee>
+;;; Copyright © 2024 Foundation Devices, Inc. <hello@foundation.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -295,21 +296,6 @@ Qt. Some of its features include:
@end itemize")
(license (list license:gpl2 license:gpl3)))) ;dual-licensed
-(define-public kddockwidgets-1
- (package
- (inherit kddockwidgets)
- (name "kddockwidgets")
- (version "1.7.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/KDAB/KDDockWidgets")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0bz08f1fv3qbza101q0q0w70nd67z3h6azs5wr3ypmva9kvfg4ck"))))))
-
(define-public kvantum
(package
(name "kvantum")
@@ -2054,7 +2040,7 @@ compositor libraries.")
(home-page (package-home-page qtbase))
(license (package-license qtbase))))
-(define-public qtserialport
+(define-public qtserialport-5
(package
(inherit qtsvg-5)
(name "qtserialport")
@@ -2085,6 +2071,38 @@ compositor libraries.")
(description "The Qt Serial Port module provides the library for
interacting with serial ports from within Qt.")))
+(define-public qtserialport
+ (package
+ (name "qtserialport")
+ (version "6.6.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (qt-url name version))
+ (sha256
+ (base32 "0dywalgafvxi2jgdv9dk22hwwd8qsgk5xfybh75n3njmwmwnarg1"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-dlopen-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/serialport/qtudev_p.h"
+ ;; Use the absolute paths for dynamically loaded libs,
+ ;; otherwise the lib will be searched in LD_LIBRARY_PATH
+ ;; which typically is not set in guix.
+ (("setFileNameAndVersion\\(QStringLiteral\\(\"udev\")")
+ (format #f "setFileNameAndVersion(QStringLiteral(~s))"
+ (string-append #$(this-package-input "eudev")
+ "/lib/libudev")))))))))
+ (native-inputs (list pkg-config))
+ (inputs (list qtbase eudev))
+ (home-page (package-home-page qtbase))
+ (synopsis "Qt Serial Port module")
+ (description "The Qt Serial Port module provides the library for
+interacting with serial ports from within Qt.")
+ (license (package-license qtbase))))
+
(define-public qtserialbus
(package
(inherit qtsvg-5)
@@ -2107,7 +2125,7 @@ interacting with serial ports from within Qt.")))
(format #f "QStringLiteral(~s)"
(search-input-file inputs
"lib/libsocketcan.so"))))))))))
- (inputs (list libsocketcan qtbase-5 qtserialport))
+ (inputs (list libsocketcan qtbase-5 qtserialport-5))
(synopsis "Qt Serial Bus module")
(description "The Qt Serial Bus API provides classes and functions to
access the various industrial serial buses and protocols, such as CAN, ModBus,
@@ -2258,7 +2276,7 @@ Server Protocol (LSP) for Qt.")
(add-before 'check 'pre-check
(lambda _
(setenv "HOME" "/tmp")))))))
- (native-inputs (list perl qtdeclarative-5 qtquickcontrols-5 qtserialport))
+ (native-inputs (list perl qtdeclarative-5 qtquickcontrols-5 qtserialport-5))
(inputs (list icu4c openssl qtbase-5 zlib))
(synopsis "Qt Location and Positioning modules")
(description "The Qt Location module provides an interface for location,
@@ -3918,8 +3936,8 @@ module provides support functions to the automatically generated code.")
("qtdeclarative-5" ,qtdeclarative-5)
("qtlocation" ,qtlocation)
("qtmultimedia-5" ,qtmultimedia-5)
- ("qtsensors-5" ,qtsensors-5)
- ("qtserialport" ,qtserialport)
+ ("qtsensors" ,qtsensors-5)
+ ("qtserialport" ,qtserialport-5)
("qtsvg-5" ,qtsvg-5)
("qttools-5" ,qttools-5)
("qtwebchannel-5" ,qtwebchannel-5)
@@ -4810,7 +4828,7 @@ color-related widgets.")
"qtscript"
"qtscxml"
"qtsensors-5"
- "qtspeech-5"
+ "qtspeech"
"qtsvg"
"qttools"
"qtwebchannel"
@@ -5063,33 +5081,31 @@ configurable also via HTTP.")
(license license:gpl3+)))
(define-public soqt
- (let ((commit-ref "fb8f655632bb9c9c60e0ff9fa69a5ba22d3ff99d")
- (revision "1"))
- (package
- (name "soqt")
- (version (git-version "1.6.0" revision commit-ref))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/coin3d/soqt")
- (commit commit-ref)
- (recursive? #t)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "16vikb3fy8rmk10sg5g0gy2c343hi3x7zccsga90ssnkzpq6m032"))))
- (build-system cmake-build-system)
- (arguments '(#:tests? #f)) ; There are no tests
- (native-inputs
- (list pkg-config cmake))
- (inputs
- (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
+ (package
+ (name "soqt")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/coin3d/soqt")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0rsfc4wmghl9fr4bwh9rpzjwzsmx00k4ki5gyvy85nb4kbmr9dwv"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ; There are no tests
+ (native-inputs
+ (list pkg-config cmake))
+ (inputs
+ (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
also compatible with SGI and TGS Open Inventor, and the API is based on the API
of the InventorXt GUI component toolkit.")
- (license license:bsd-3))))
+ (license license:bsd-3)))
(define-public libdbusmenu-qt
(package
@@ -5327,7 +5343,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
@@ -5337,7 +5352,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/signon")))))))
(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/radio.scm b/gnu/packages/radio.scm
index 938b786ae2..56e674a8ed 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -90,6 +90,7 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
@@ -116,6 +117,7 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
+ #:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt))
@@ -1201,7 +1203,7 @@ satellites.")
(define-public gqrx
(package
(name "gqrx")
- (version "2.17.3")
+ (version "2.17.5")
(source
(origin
(method git-fetch)
@@ -1210,7 +1212,7 @@ satellites.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "00pasp13gqglixl0iy9jb242vx1kczgpinjs3d8a1cl8yv5w6xkl"))))
+ (base32 "0dhjnsa0z6vv8dqv1zwfzxk6p4x1hvk22cikspcj8sggbyr8ymzm"))))
(build-system qt-build-system)
(native-inputs
(list pkg-config))
@@ -1242,7 +1244,7 @@ using GNU Radio and the Qt GUI toolkit.")
(define-public gqrx-scanner
(package
(name "gqrx-scanner")
- (version "1.0.4")
+ (version "1.0.5")
(source
(origin
(method git-fetch)
@@ -1251,7 +1253,7 @@ using GNU Radio and the Qt GUI toolkit.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0ar8kqfrd768l6y4kqgq3467xckrrpaq8zlwzz5l7lp8r41w5plr"))))
+ (base32 "0swciyqx5fnqmbb6d55cnjrc2bysr9vamyp0lzsvwgh2g2r29i7w"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; No test suite
@@ -1265,7 +1267,7 @@ radio receiver.")
(define-public fldigi
(package
(name "fldigi")
- (version "4.1.22")
+ (version "4.2.04")
(source
(origin
(method git-fetch)
@@ -1274,10 +1276,10 @@ radio receiver.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1n1ljqsqar9s8yh8hn9yc1clabkhv4jidym3ibg25yb5svckscli"))))
+ (base32 "1s1dr1bpfa70sq5f0bi4vaszyzsa7ykpswc3znhmg7156mr027kj"))))
(build-system gnu-build-system)
(native-inputs
- (list autoconf automake gettext-minimal pkg-config))
+ (list autoconf-2.71 automake gettext-minimal pkg-config))
(inputs
(list alsa-lib
fltk
@@ -1304,7 +1306,7 @@ hardware.")
(define-public flrig
(package
(name "flrig")
- (version "1.4.05")
+ (version "2.0.04")
(source
(origin
(method git-fetch)
@@ -1313,7 +1315,7 @@ hardware.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0pgkfzxqr2ybpbnf1y9nsr25k0zimdwr98mpvd7nazrv5l0y8kci"))))
+ (base32 "0q8zwg5l9x62qls71sqqw31c79y9df7cmin91w1v5pbigxac4v9v"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake pkg-config))
@@ -1330,7 +1332,7 @@ or USB connection.")
(define-public flamp
(package
(name "flamp")
- (version "2.2.07")
+ (version "2.2.12")
(source
(origin
(method git-fetch)
@@ -1339,7 +1341,7 @@ or USB connection.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0rygd5w04nspxdj8qj81gpb3mgijvlmii74s1f4mihqs5kb8nwh6"))))
+ (base32 "0739x3b8a2f74s91mzpb43r5h71h81v0i12qjz0h0gg07ndzj3j7"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake pkg-config))
@@ -1355,7 +1357,7 @@ or USB connection.")
(define-public flmsg
(package
(name "flmsg")
- (version "4.0.19")
+ (version "4.0.23")
(source
(origin
(method git-fetch)
@@ -1364,10 +1366,10 @@ or USB connection.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "157s6mvky9h094hkncm47964qh0bnwg0m2rw3wx0qj1mh5isxv4j"))))
+ (base32 "0nn2ai97a2izckg6lcnxa36ipmrz0pa4d8gdvk47fhwxlcr7pdrl"))))
(build-system gnu-build-system)
(native-inputs
- (list autoconf automake pkg-config))
+ (list autoconf-2.71 automake pkg-config))
(inputs
(list fltk libx11 libxext libxfixes libxft))
(synopsis "NBEMS messaging system")
@@ -1491,15 +1493,16 @@ E.g.: @code{(udev-rules-service 'bladerf bladerf)}.")
(define-public hamlib
(package
(name "hamlib")
- (version "4.4")
+ (version "4.5.5")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/Hamlib/Hamlib/releases/download/"
- version "/hamlib-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hamlib/Hamlib")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "11r4i8gmxnb6ixpk4ns38c9xwj3qibp2v3pkhy2z0lhz0xxi1w4b"))))
+ (base32 "1z774z0g7ryamzvdm5f9b3py0lacrvmp2581jn3d581lw35hvfjw"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@@ -1523,14 +1526,7 @@ E.g.: @code{(udev-rules-service 'bladerf bladerf)}.")
"--with-lua-binding"
"--with-python-binding"
"--with-tcl-binding"
- "--with-xml-support")
- #:phases
- (modify-phases %standard-phases
- (add-before 'bootstrap 'force-bootstrap
- ;; The included configure script is misbuilt. It will never find
- ;; pkg-config, and hence any libraries that rely on it. Rebuild it.
- (lambda _
- (delete-file "configure"))))))
+ "--with-xml-support")))
(synopsis "Tools and API to control radios")
(description
"The Ham Radio Control Library (Hamlib) is a project to provide programs
@@ -1683,7 +1679,7 @@ instances over the network, and general QSO and DXpedition logging.")
libusb
qtbase-5
qtmultimedia-5
- qtserialport
+ qtserialport-5
wsjtx-hamlib))
(home-page "https://www.physics.princeton.edu/pulsar/k1jt/wsjtx.html")
(synopsis "Weak-signal ham radio communication program")
@@ -1721,7 +1717,7 @@ weak-signal conditions.")
qtbase-5
qtwebsockets-5
qtmultimedia-5
- qtserialport))
+ qtserialport-5))
(arguments
`(#:tests? #f)) ; No test suite
(synopsis "Weak-signal ham radio communication program, forked from WSJTX")
@@ -1798,7 +1794,7 @@ focused on DXing and being shaped by community of DXers.JTDX")
libusb
qtbase-5
qtmultimedia-5
- qtserialport
+ qtserialport-5
wsjtx-hamlib))
(home-page "http://js8call.com/")
(synopsis "Weak-signal ham radio communication program")
@@ -2011,7 +2007,7 @@ modes:
(define-public nanovna-saver
(package
(name "nanovna-saver")
- (version "0.5.3")
+ (version "0.6.3")
(source
(origin
(method git-fetch)
@@ -2020,14 +2016,19 @@ modes:
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1h0wzva8j7fqnpf0qy42bw9rdclgq3jdq902ajvd9v5iqcqs78n0"))))
- (build-system python-build-system)
+ (base32 "192lg3hmhr4r9b6an1k61d89fvar4kvqp3qjmpkb489c2zgaggll"))))
+ (build-system pyproject-build-system)
(native-inputs
- (list python-cython))
+ (list python-cython python-setuptools-scm))
(inputs
- (list python-numpy python-pyqt python-pyserial python-scipy))
+ (list python-numpy python-pyqt-6 python-pyserial python-scipy))
(arguments
- '(#:tests? #f))
+ (list #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))))))
(home-page "https://github.com/NanoVNA-Saver/nanovna-saver")
(synopsis "GUI for NanoVNA devices")
(description
@@ -2670,7 +2671,7 @@ voice formats.")
qtlocation
qtmultimedia-5
qtquickcontrols2-5
- qtserialport
+ qtserialport-5
qtspeech-5
qtwebchannel-5
qtwebengine-5
@@ -2850,9 +2851,7 @@ software-defined radio receivers.")
qtgamepad
qtbase-5
qtmultimedia-5
- ;; TODO: Needs to be renamed to qtserialport-5. when version 6 is
- ;; packed.
- qtserialport
+ qtserialport-5
rtaudio))
(home-page "https://wfview.org/")
(synopsis "Software to control Icom radios")
@@ -3059,8 +3058,7 @@ Radios.")
(base32 "0kxn98vmrsd2a157cf3hsmivi6p4k4a3907j5w8hmcs0nn92786i"))))
(build-system cmake-build-system)
(native-inputs
- `(("gfortran" ,gfortran)
- ("googletest-source" ,(package-source googletest))
+ `(("googletest-source" ,(package-source googletest))
("orc" ,orc)
("pkg-config" ,pkg-config)
("python" ,python)
@@ -3074,7 +3072,6 @@ Radios.")
gmp
gnuradio
gr-osmosdr
- lapack
libpcap
log4cpp
matio
@@ -3088,6 +3085,7 @@ Radios.")
`(#:configure-flags
(list "-DENABLE_GENERIC_ARCH=ON"
"-DENABLE_OSMOSDR=ON"
+ "-DBLA_VENDOR=OpenBLAS"
(string-append "-DGFLAGS_ROOT="
(assoc-ref %build-inputs "gflags"))
(string-append "-DGLOG_ROOT="
@@ -3221,7 +3219,7 @@ memory contents between them.")
(substitute* "lib/CMakeLists.txt"
(("(DESTINATION \")/etc/udev/" _ directive)
(string-append directive #$output "/lib/udev/"))))))))
- (inputs (list libusb qtbase-5 qtlocation qtserialport yaml-cpp))
+ (inputs (list libusb qtbase-5 qtlocation qtserialport-5 yaml-cpp))
(native-inputs (list qttools-5))
(home-page "https://dm3mat.darc.de/qdmr/")
(synopsis "GUI application and command line tool to program DMR radios")
diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index b48e4ae53f..254ba4d06b 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -96,7 +96,7 @@ to remotely control a user's Windows desktop.")
(define-public freerdp
(package
(name "freerdp")
- (version "2.11.2")
+ (version "2.11.7")
(source
(origin
(method git-fetch)
@@ -105,7 +105,7 @@ to remotely control a user's Windows desktop.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1c17skq16ic036829bndqsr5g0yrp0ya5lmn2w28x9gkz2qjgqkf"))))
+ (base32 "0h7yxjnl4zgl07ilh7dzbig8r7phll0wid72hm92jav6s4q75v63"))))
(build-system cmake-build-system)
(native-inputs
(list docbook-xml
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/scheme.scm b/gnu/packages/scheme.scm
index 070696d6ba..a91a2d693d 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -24,6 +24,7 @@
;;; Copyright © 2023 Juliana Sims <juli@incana.org>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2024 Skylar Hill <stellarskylark@posteo.net>
+;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -44,7 +45,8 @@
#:use-module (gnu packages)
#:use-module ((guix licenses)
#:select (gpl2 gpl2+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0
- bsd-3 cc-by-sa4.0 non-copyleft expat public-domain))
+ bsd-0 bsd-3 cc-by-sa4.0 non-copyleft expat
+ public-domain))
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
@@ -855,6 +857,64 @@ can be added and values can be defined in the Scheme environment. Being quite a
small program, it is easy to comprehend, get to grips with, and use.")
(license bsd-3))) ; there are no licence headers
+(define-public tr7
+ (package
+ (name "tr7")
+ (version "1.0.10")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/jobol/tr7")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "0n77fkm5kcv2pmwbw5fl8r00aarw8da8gkd9d1ki5fn9kbl4fyk2"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "Makefile"
+ (("PREFIX = /usr/local")
+ (string-append "PREFIX=" #$output))
+ (("ALL = \\$\\(LIBSTA\\) \\$\\(TR7I\\) tags")
+ "ALL = $(LIBSTA) $(TR7I)"))))
+ (replace 'build
+ (lambda _
+ (setenv "CC" #$(cc-for-target))
+ (invoke "make")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "test"))))
+ (replace 'install
+ (lambda _
+ (let* ((share (string-append #$output "/share"))
+ (doc (string-append #$output:doc "/share/doc/"))
+ (bin (string-append #$output "/bin"))
+ (lib (string-append #$output "/lib/"))
+ (tr7 (string-append share "/tr7"))
+ (libs (string-append tr7 "/libs")))
+ (for-each mkdir-p (list tr7 libs bin lib doc))
+ (copy-file "tr7i" (string-append bin "/tr7i"))
+ (copy-file "libtr7.a" (string-append lib "/libtr7.a"))
+ (copy-file "r7rs.pdf" (string-append doc "/r7rs.pdf"))
+ (copy-recursively "tr7libs" libs)))))))
+ (home-page "https://gitlab.com/jobol/tr7")
+ (synopsis "Embedded R7RS small Scheme interpreter")
+ (description
+ "TR7 is a lightweight Scheme interpreter that implements the revision
+R7RS small of scheme programming language.
+
+It is meant to be used as an embedded scripting interpreter for other
+programs. A lot of functionality in TR7 is included conditionally, to allow
+developers freedom in balancing features and footprint.")
+ (license bsd-0)))
+
(define-public stalin
(let ((commit "ed1c9e339c352b7a6fee40bb2a47607c3466f0be"))
;; FIXME: The Stalin "source" contains C code generated by itself:
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 3a4aafcaa7..d3a0e33b19 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Evgeny Pisemsky <evgeny@pisemsky.com>
-;;; Copyright © 2023 dan <i@dan.games>
+;;; Copyright © 2023, 2024 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -118,7 +118,7 @@ joystick, and graphics hardware.")
(package
(inherit sdl)
(name "sdl2")
- (version "2.28.5")
+ (version "2.30.1")
(source (origin
(method url-fetch)
(uri
@@ -126,7 +126,7 @@ joystick, and graphics hardware.")
version ".tar.gz"))
(sha256
(base32
- "1r36cspzv6h8abiqbbkrgm17g975p9wiziir2xabj3721dyv6b1k"))))
+ "0fj7gxc7rlzzrafnx9nmf7ws3paxy583fmx7bcbavi6gr3xmy881"))))
(arguments
(substitute-keyword-arguments (package-arguments sdl)
((#:configure-flags flags)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 00a7f97582..35a8d4e216 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -355,7 +355,7 @@ website for more information about Yubico and the YubiKey.")
(define-public opensc
(package
(name "opensc")
- (version "0.22.0")
+ (version "0.25.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -363,7 +363,7 @@ website for more information about Yubico and the YubiKey.")
version "/opensc-" version ".tar.gz"))
(sha256
(base32
- "11ki9j2b07w5gi2b1r39d71320s7rhfzcpaqpqra7gjy353m6kld"))))
+ "0bv2sq3k8bl712yi1gi7f8km8g2x09is8ynnr5x3g2jh59pbdmz6"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index 8cbf9be22a..d5fc1e3d17 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2023 Reza Housseini <reza@housseini.me>
+;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1313,6 +1314,8 @@ track models to multi-body models.")
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-setup.py
(lambda _
+ (substitute* "setup.py"
+ (("protobuf==3.20.1") "protobuf >= 3.20.1"))
#$%commonroad-dont-install-license-at-root)))))
(propagated-inputs (list python-commonroad-vehicle-models
python-iso3166
diff --git a/gnu/packages/specifications.scm b/gnu/packages/specifications.scm
new file mode 100644
index 0000000000..125d794932
--- /dev/null
+++ b/gnu/packages/specifications.scm
@@ -0,0 +1,109 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.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 packages specifications)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix gexp)
+ #:use-module (guix utils)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix build-system copy))
+
+(define-public specification-multibase
+ (let ((commit "4c8344e37852773de155f587dcf5897771b3fc19")
+ (revision "1"))
+ (package
+ (name "specification-multibase")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/multibase")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0lz4kdysa6nx7wf1i59647w7dgm344xpvfnsac3pfk2qdky2kq8b"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("." "share/multibase/"))))
+ (home-page "https://github.com/multiformats/multibase")
+ (synopsis "Self identifying base encodings")
+ (description
+ "Multibase is a protocol for disambiguating the encoding of
+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..89bed30916 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))
@@ -1768,13 +1768,13 @@ R packages that praise their users.")
(define-public r-testthat
(package
(name "r-testthat")
- (version "3.2.1")
+ (version "3.2.1.1")
(source (origin
(method url-fetch)
(uri (cran-uri "testthat" version))
(sha256
(base32
- "1ba80zk9jzs91xl82bykhrvvgamfvp1h189rfq099h813dhhx60x"))))
+ "1xz94i0r62lslyqya8gz6i2r100wi26y5c2822v2i7lkflwwx1fp"))))
(build-system r-build-system)
(propagated-inputs
(list r-brio
@@ -2894,14 +2894,14 @@ collation, and NAMESPACE files.")
(define-public r-openssl
(package
(name "r-openssl")
- (version "2.1.1")
+ (version "2.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "openssl" version))
(sha256
(base32
- "1p2bnr4z4vx3yqq5isqb3z4d9vg2isiz8i0h3vxdb5ramzwjd9zs"))))
+ "0mm0rlf3m6wkvz5p8prxwjr37rn30lmhddsdi4ffnsmrysfl3rbp"))))
(properties
`((upstream-name . "openssl")
(updater-extra-inputs . ("openssl"))))
@@ -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.1")
(source (origin
(method url-fetch)
(uri (cran-uri "RcppArmadillo" version))
(sha256
(base32
- "0ax4812dm33c67ckd902qabis3dgqmpkchk4s30bshnfv4fxx1z2"))))
+ "11w92xjjwfhb3sv3g0m6hdhm27nnx73ahb404zm79a29ihwrj55w"))))
(properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system)
(propagated-inputs
@@ -3589,14 +3589,14 @@ statements.")
(define-public r-segmented
(package
(name "r-segmented")
- (version "2.0-3")
+ (version "2.0-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "segmented" version))
(sha256
(base32
- "1f89v6zbxwl6yhx3qi7wrr3rndnxfwaf49mygw357f7cf3i8ma77"))))
+ "0a7qfs83kgn7g98kiwlk8zm2q9pzgkvmms9l15sgc5y952yig926"))))
(build-system r-build-system)
(propagated-inputs (list r-mass r-nlme))
(home-page "https://cran.r-project.org/web/packages/segmented")
@@ -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
@@ -4456,13 +4456,13 @@ t-probabilities, quantiles, random deviates and densities.")
(define-public r-matrixstats
(package
(name "r-matrixstats")
- (version "1.2.0")
+ (version "1.3.0")
(source (origin
(method url-fetch)
(uri (cran-uri "matrixStats" version))
(sha256
(base32
- "0ws5lmzqm42vrn5791l21zr05l78x0xi6b89jw0gi0vjb4pc20z4"))))
+ "0ni4jgw3jfbwakzrcz6jcjr1zsnaq924jz2a9d8kq92vv43ycgj1"))))
(properties `((upstream-name . "matrixStats")))
(build-system r-build-system)
(arguments
@@ -5559,14 +5559,14 @@ forest of trees using random inputs, for classification and regression.")
(define-public r-diptest
(package
(name "r-diptest")
- (version "0.77-0")
+ (version "0.77-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "diptest" version))
(sha256
(base32
- "0cnaz1akl86vg5p0g4yl4r66407dxssfki130rrwxpbbbqakbj63"))))
+ "04r8c6xy5vympxaxmgnjib4pqh97f9k6b43i66qhzkl3yh0awki2"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/diptest")
(synopsis "Hartigan's dip test statistic for unimodality")
@@ -6060,14 +6060,14 @@ algorithms.")
(define-public r-lme4
(package
(name "r-lme4")
- (version "1.1-35.2")
+ (version "1.1-35.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "lme4" version))
(sha256
(base32
- "0nvvkvpasna9hy0y3fxd4fy2b2gxzgdga9kmxvli59dlkdy28ipc"))))
+ "0ij37wly0d28x143xdkjry5jsj4chlbli2fl9zbp8fkcgh95r1xl"))))
(build-system r-build-system)
(propagated-inputs
(list r-boot
@@ -6290,18 +6290,18 @@ multivariate case.")
(define-public r-tclust
(package
(name "r-tclust")
- (version "1.5-6")
+ (version "2.0-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "tclust" version))
(sha256
(base32
- "1p7y58mklcwq76msh1q8pm2v6v19ja6fy07xg1j07d2zw2wa0phy"))))
+ "0l0m77a4r7izzw8akx7cz1qcxpvbjgg364yjapazji290741rfs6"))))
(build-system r-build-system)
;; These are all suggested packages, not build dependencies.
(propagated-inputs
- (list r-cluster r-mclust r-mvtnorm r-sn))
+ (list r-doparallel r-foreach r-mass r-rcpp r-rcpparmadillo))
(home-page "https://cran.r-project.org/web/packages/tclust")
(synopsis "Robust trimmed clustering")
(description
@@ -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/stb.scm b/gnu/packages/stb.scm
index 4ee1b4ebd2..9286bcd87d 100644
--- a/gnu/packages/stb.scm
+++ b/gnu/packages/stb.scm
@@ -97,6 +97,12 @@ the C programming language.")
"stb-image is a small and self-contained library for image loading or
decoding from file or memory. A variety of formats are supported."))
+(define-public stb-image-resize
+ (make-stb-header-package
+ "stb-image-resize" "0.96"
+ "stb-image-resize is a library that supports scaling and translation of
+images."))
+
(define-public stb-image-write
(make-stb-header-package
"stb-image-write" "1.15"
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index a907b2fc6b..346784fd73 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
+;;; Copyright © 2022 Ivan Vilata i Balaguer <ivan@selidor.net>
;;; Copyright © 2024 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2024 cage <cage-dev@twistfold.it>
@@ -402,7 +403,8 @@ numbers of user-defined menu items efficiently.")
implements 256 colors, most VT10X escape sequences, utf8, X11 copy/paste,
antialiased fonts (using fontconfig), fallback fonts, resizing, and line
drawing.")
- (license license:x11)))
+ (license (list license:x11
+ license:expat))))
(define-public xst
(package
@@ -433,7 +435,8 @@ drawing.")
@item @uref{https://st.suckless.org/patches/spoiler/, spoiler}
@item @uref{https://st.suckless.org/patches/vertcenter/, vertcenter}
@end itemize")
- (license license:expat)))
+ (license (list license:x11
+ license:expat))))
(define-public lukesmithxyz-st
(let ((commit "e053bd6036331cc7d14f155614aebc20f5371d3a")
@@ -531,7 +534,8 @@ Vim bindings and Xresource compatibility.")
display websites and follow links. It supports the XEmbed protocol which
makes it possible to embed it in another application. Furthermore, one can
point surf to another URI by setting its XProperties.")
- (license license:x11)))
+ (license (list license:expat
+ license:x11))))
(define-public sent
(package
@@ -580,7 +584,7 @@ Especially for presentations using the Takahashi method this is very nice and
allows you to write down the presentation for a quick lightning talk within a
few minutes.")
(home-page "https://tools.suckless.org/sent/")
- (license license:x11)))
+ (license license:isc)))
(define-public wmname
(package
@@ -610,7 +614,8 @@ few minutes.")
property of the root window similar to how @command{hostname} behaves. It is
useful for fixing problems with JDK versions and other broken programs
assuming a reparenting window manager for instance.")
- (license license:expat)))
+ (license (list license:x11
+ license:expat))))
(define-public xbattmon
(package
@@ -1361,6 +1366,35 @@ It also contains the Plan 9 libbio, libregexp, libfmt and libutf libraries.")
(license (list license:expat ;modifications
license:lpl1.02))))) ;original plan9 code
+(define-public xssstate
+ (package
+ (name "xssstate")
+ (version "1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://dl.suckless.org/tools/xssstate-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "04b03jz38pn5qhddg8a9hh01qqzrrdjvsq09qrxj9sx8lq2gbdn4"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ; no tests
+ #:make-flags #~(list (string-append "CC="
+ #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs (list libxscrnsaver))
+ (home-page "https://tools.suckless.org/x/xssstate/")
+ (synopsis "Simple tool to retrieve the X screensaver state")
+ (description
+ "A utility to retrieve the state of the X screensaver. These
+states include the idle time, the screensaver state and the length of time
+until the screensaver should be activated.")
+ (license license:x11)))
+
(define-public 9yacc
(package
(inherit lib9)
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 4d2f7ef9f0..43199d4ad6 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -213,29 +213,6 @@ notification area icon for Syncthing. Supported Syncthing features:
(define-public qsyncthingtray
(deprecated-package "qsyncthingtray" syncthing-gtk))
-(define-public go-github-com-jackpal-go-nat-pmp
- (package
- (name "go-github-com-jackpal-go-nat-pmp")
- (version "1.0.2")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/jackpal/go-nat-pmp")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1p2yrzfbkazc9nisr2iqjwzhb6q16zj6finyxxn2ikk7iiighl1g"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/jackpal/go-nat-pmp"))
- (synopsis "Port mapping and discovery of external IP address")
- (description "This package provides a Go client for the NAT-PMP internet
-protocol for port mapping and discovering the external IP address of a
-firewall.")
- (home-page "https://github.com/jackpal/go-nat-pmp")
- (license asl2.0)))
-
(define-public go-github-com-audriusbutkevicius-recli
(package
(name "go-github-com-audriusbutkevicius-recli")
@@ -353,55 +330,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/syndication.scm b/gnu/packages/syndication.scm
index 7d9a27bbc3..18d3df5b6e 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -201,7 +201,7 @@ cards.")
(list gtk "bin")
pkg-config))
(inputs
- (list blueprint-compiler
+ (list blueprint-compiler-0.4
glib
gtk
gtksourceview
@@ -569,7 +569,7 @@ parser. It is \"not fit for use at this point\", but gfeeds uses it anyway.")
`("XDG_DATA_DIRS" ":" prefix (,(getenv "XDG_DATA_DIRS")))))))))
(native-inputs
(list `(,glib "bin")
- blueprint-compiler
+ blueprint-compiler-0.4
gobject-introspection
gettext-minimal
pkg-config))
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index f0ae4d4d4d..d18a042785 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -847,7 +847,7 @@ eye-candy, customizable, and reasonably lightweight.")
(define-public foot
(package
(name "foot")
- (version "1.16.2")
+ (version "1.17.2")
(home-page "https://codeberg.org/dnkl/foot")
(source
(origin
@@ -857,7 +857,7 @@ eye-candy, customizable, and reasonably lightweight.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "00wac8li1ac8ncmnlqvz3xnr5pi8gj4v3v341n0h2zzaayv9ngw5"))))
+ (base32 "1gi2c3zxyyf3l3wp702yfwxk512yz83rk06wljc7wlkbf1c9msm7"))))
(build-system meson-build-system)
(arguments
(list
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index c165b5342d..b62efabe6e 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -1065,7 +1065,7 @@ Octave. TeXmacs is completely extensible via Guile.")
(build-system meson-build-system)
(native-inputs
(list appstream-glib
- blueprint-compiler
+ blueprint-compiler-0.4
desktop-file-utils
gettext-minimal
`(,glib "bin")
@@ -1105,14 +1105,14 @@ The basic features of Text Pieces are:
(define-public scintilla
(package
(name "scintilla")
- (version "5.3.4")
+ (version "5.4.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.scintilla.org/scintilla"
(string-delete #\. version) ".tgz"))
(sha256
- (base32 "0inbhzqdikisvnbdzn8153p1apbghxjzkkzji9i8zsdpyapb209z"))))
+ (base32 "1ysdi9rsg14w5mn581gjvr9jrdg1yp9rmg1r9jz7gngdgcz7q5ij"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 484ba6939b..9d3b93faf9 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -69,7 +69,9 @@
#: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)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
@@ -83,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))
@@ -1431,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)))
@@ -1503,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
@@ -1534,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/time.scm b/gnu/packages/time.scm
index 0bb493c27f..2612201c11 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -23,6 +23,7 @@
;;; Copyright © 2022 Pradana AUMARS <paumars@courrier.dev>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com>
+;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -46,6 +47,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages geo)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages libffi)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
@@ -629,7 +631,7 @@ calls.")
(define-public tz
(package
(name "tz")
- (version "0.6.1")
+ (version "0.7.0")
(source
(origin
(method git-fetch)
@@ -638,31 +640,29 @@ calls.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1nbl13xd95np89sbx8fn0jqrh1iy17hsy70kq31hmcvyns8dljhg"))))
+ (base32 "1zf5w6338y0s0pf0jlpbqzlbxbx39s93z0bmdaa0cxkxs8cz8xij"))))
(build-system go-build-system)
(arguments
- `(#:go ,go-1.17
- #:import-path "github.com/oz/tz"
- #:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key import-path tests? #:allow-other-keys)
- (when tests?
- (invoke "go" "test" "-cover" import-path)))))))
+ (list
+ #:go go-1.17
+ #:install-source? #f
+ #:import-path "github.com/oz/tz"))
(inputs
- `(("github.com/charmbracelet/bubbletea" ,go-github-com-charmbracelet-bubbletea)
- ("github.com/muesli/termenv" ,go-github-com-muesli-termenv)))
+ (list go-github-com-charmbracelet-bubbletea
+ go-github-com-muesli-termenv
+ go-github-com-tkuchiki-go-timezone))
(home-page "https://github.com/oz/tz")
(synopsis "TUI time zone helper")
(description
-"@command{tz} helps you schedule things across time zones. It is an interactive
-TUI program that displays time across a few time zones of your choosing.")
+ "@command{tz} helps you schedule things across time zones. It is an
+interactive TUI program that displays time across a few time zones of your
+choosing.")
(license gpl3+)))
(define-public countdown
(package
(name "countdown")
- (version "1.0.0")
+ (version "1.5.0")
(source
(origin
(method git-fetch)
@@ -671,13 +671,13 @@ TUI program that displays time across a few time zones of your choosing.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0pdaw1krr0bsl4amhwx03v2b02iznvwvqn7af5zp4fkzjaj14cdw"))))
+ (base32 "0snz26dvj8v58fyzd51bcf07b5yp2akcyy26w7b0pnkmlh3lknmk"))))
(build-system go-build-system)
(arguments
- '(#:import-path "github.com/antonmedv/countdown"))
+ (list
+ #:import-path "github.com/antonmedv/countdown"))
(native-inputs
- `(("runewidth" ,go-github-com-mattn-go-runewidth)
- ("termbox" ,go-github.com-nsf-termbox-go)))
+ (list go-github.com-nsf-termbox-go))
(home-page "https://github.com/antonmedv/countdown")
(synopsis "Counts to zero with a text user interface")
(description
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/tor-browsers.scm b/gnu/packages/tor-browsers.scm
index 72ab345e8a..0c43804881 100644
--- a/gnu/packages/tor-browsers.scm
+++ b/gnu/packages/tor-browsers.scm
@@ -150,16 +150,16 @@
;; We copy the official build id, which can be found there:
;; https://aus1.torproject.org/torbrowser/update_3/release/.
-(define %torbrowser-build-date "20240322115718")
+(define %torbrowser-build-date "20240416150000")
;; To find the last version, look at https://www.torproject.org/download/.
-(define %torbrowser-version "13.0.13")
+(define %torbrowser-version "13.0.14")
;; To find the last Firefox version, browse
;; https://archive.torproject.org/tor-package-archive/torbrowser/<%torbrowser-version>
;; There should be only one archive that starts with
;; "src-firefox-tor-browser-".
-(define %torbrowser-firefox-version "115.9.1esr-13.0-1-build1")
+(define %torbrowser-firefox-version "115.10.0esr-13.0-1-build1")
;; See tor-browser-build/projects/translation/config.
(define torbrowser-translation-base
@@ -167,11 +167,11 @@
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
- (commit "8e04ca3c5f440ed8f16b2069ae9565e4b044ec29")))
+ (commit "d31e6b16c372e2eb235c4f2b0eae0b573a5515ba")))
(file-name "translation-base-browser")
(sha256
(base32
- "0as4xjmj17jiyqaqfmqhplwscg39df109pgilkjv560xdpgld10q"))))
+ "0pyd49v0ivxbw2lbzi5vz9kl78i972p2kcaaahympaf6x5i0q1xd"))))
;; See tor-browser-build/projects/translation/config.
(define torbrowser-translation-specific
@@ -179,11 +179,11 @@
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
- (commit "bf2fac60a6c41aa67b8147f22a638d498ac2dcdd")))
+ (commit "d37455a56f966b4f87f5f326b534a91f71fd5c88")))
(file-name "translation-tor-browser")
(sha256
(base32
- "0bz50bfrljr139rs3zcx84y64vn7fav78ghl85xzm5bww15jfwl1"))))
+ "1pksrbyzx2bq0kv46y24m6y7jri3df4mjr4cixyh83mbhpb3wyc0"))))
(define torbrowser-assets
;; This is a prebuilt Torbrowser from which we take the assets we need.
@@ -199,7 +199,7 @@
version "/tor-browser-linux-x86_64-" version ".tar.xz"))
(sha256
(base32
- "1wn1wxiwhhnx4zzs6gr1qvyvjj5nn449vlgw7kcswpymz3r9mclp"))))
+ "19fhkpjcbb4pscsyhsj8hvbs6nfxz2bmh22irw6a8sspqp67cr2i"))))
(arguments
(list
#:install-plan
@@ -237,7 +237,7 @@ Browser.")
".tar.xz"))
(sha256
(base32
- "0pkl6q9hfl52v7if20h1vdd1ydl8a7gs6lk95linknh4kaaaw4qm"))))
+ "1gqiv873f0lbm6xny8x08iygnwl517q67hljgv1vxpyr7d223qjw"))))
(build-system mozilla-build-system)
(inputs
(list go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird
@@ -805,7 +805,11 @@ Browser.")
"https://gnuzilla.gnu.org/mozzarella")
(format #t "pref(~s, ~s);~%"
"lightweightThemes.getMoreURL"
- "https://gnuzilla.gnu.org/mozzarella"))))))
+ "https://gnuzilla.gnu.org/mozzarella")
+ ;; FIXME: https://github.com/NixOS/nixpkgs/issues/307095
+ (format #t "pref(~s, ~a);~%"
+ "widget.use-xdg-desktop-portal.file-picker"
+ "1"))))))
(add-after 'autoconfig 'autoconfig-tor
(lambda* (#:key inputs #:allow-other-keys)
(let ((lib (in-vicinity #$output "lib/torbrowser"))
@@ -879,17 +883,17 @@ attacks on the privacy of Tor users.")
;; We copy the official build id, which can be found there:
;; https://cdn.mullvad.net/browser/update_responses/update_1/release.
-(define %mullvadbrowser-build-date "20240322132912")
+(define %mullvadbrowser-build-date "20240408204645")
;; To find the last version, look at
;; https://mullvad.net/en/download/browser/linux.
-(define %mullvadbrowser-version "13.0.13")
+(define %mullvadbrowser-version "13.0.14")
;; To find the last Firefox version, browse
;; https://archive.torproject.org/tor-package-archive/mullvadbrowser/<%mullvadbrowser-version>
;; There should be only one archive that starts with
;; "src-firefox-mullvad-browser-".
-(define %mullvadbrowser-firefox-version "115.9.1esr-13.0-1-build1")
+(define %mullvadbrowser-firefox-version "115.10.0esr-13.0-1-build1")
;; See tor-browser-build/projects/translation/config.
(define mullvadbrowser-translation-base
@@ -897,11 +901,11 @@ attacks on the privacy of Tor users.")
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
- (commit "8e04ca3c5f440ed8f16b2069ae9565e4b044ec29")))
+ (commit "d31e6b16c372e2eb235c4f2b0eae0b573a5515ba")))
(file-name "translation-base-browser")
(sha256
(base32
- "0as4xjmj17jiyqaqfmqhplwscg39df109pgilkjv560xdpgld10q"))))
+ "0pyd49v0ivxbw2lbzi5vz9kl78i972p2kcaaahympaf6x5i0q1xd"))))
;; See tor-browser-build/projects/translation/config.
(define mullvadbrowser-translation-specific
@@ -929,7 +933,7 @@ attacks on the privacy of Tor users.")
version "/mullvad-browser-linux-x86_64-" version ".tar.xz"))
(sha256
(base32
- "1w2spwpxsvizn3xsj2pykisvi4b12y669cpqwhjkpxqlbsrlj0h8"))))
+ "1qq1bmknnq9ycfqgslwpwdflpzdl8sl3a4bgx0i817m3myvdkdyg"))))
(arguments
(list
#:install-plan
@@ -972,7 +976,7 @@ Mullvad Browser.")
%mullvadbrowser-firefox-version ".tar.xz"))
(sha256
(base32
- "05s87838b6smd82jhkpw7czbg3ch8fvqiqa174g7zkqi6p7bwcy3"))))
+ "07lwjl8569ck0fm3fq0hsh1zd65zph06vpfm4r8mjzqpn7bcny75"))))
(arguments
(substitute-keyword-arguments (package-arguments mullvadbrowser-base)
((#:phases phases)
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 4b356b6cc1..e0257658d9 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -63,14 +63,14 @@
(define-public tor
(package
(name "tor")
- (version "0.4.8.10")
+ (version "0.4.8.11")
(source (origin
(method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz"))
(sha256
(base32
- "11is8rwa3654kv2z425chmv9ynip64lwy8svf4klgnqfnzxb8a76"))))
+ "01wf5h2vg2rxhxq4crzfxj1z4w4m2m760zda6l97i01kws8dyawg"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 19f128d45f..0c7c496c82 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1538,6 +1538,33 @@ shell and OS versions so the script writer can be confident that the script
will work.")
(license license:lgpl2.1)))
+(define-public trac
+ (package
+ (name "trac")
+ (version "1.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Trac" version))
+ (sha256
+ (base32 "013kqa93kd1giswir9qsasm5080x5x5x4ab86ky8zmkhyrhkrmv1"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:test-flags #~(list "-k"
+ ;; XXX: these two tests fail, check why.
+ (string-append
+ "not test_remove_composite_keys"
+ " and not test_remove_simple_keys"))))
+ (native-inputs (list python-psycopg2 python-pymysql python-pytest))
+ (propagated-inputs (list python-jinja2 python-multipart))
+ (home-page "https://trac.edgewall.org")
+ (synopsis "Integrated SCM, wiki, issue tracker and project environment")
+ (description "Trac is a minimalistic web-based software project management
+and bug/issue tracking system. It provides an interface to the Git and
+Subversion revision control systems, an integrated wiki, flexible issue
+tracking and convenient report facilities.")
+ (license license:bsd-3)))
+
(define-public git-flow
(package
(name "git-flow")
@@ -2812,6 +2839,34 @@ output of the @code{git} command.")
modification time.")
(license license:bsd-2)))
+(define-public fnc
+ (package
+ (name "fnc")
+ (version "0.16")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://fnc.bsdbox.org/uv/dl/fnc-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1npnbdz5i4p61ri76vx6awggbc0q19y8b26l3sy4wxmaxkly7gwy"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure))
+ #:tests? #f ; no tests
+ #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))))
+ (inputs (list ncurses zlib sqlite-next))
+ (home-page "https://fnc.bsdbox.org")
+ (synopsis "Interactive text-based user interface for Fossil")
+ (description "fnc uses ncurses and libfossil to create a fossil user
+interface in the terminal. It can view local changes at the hunk level to
+prepare atomic commits.")
+ (license license:isc)))
+
(define-public myrepos
(package
(name "myrepos")
@@ -4118,3 +4173,9 @@ comes as a command line app and also an Emacs interface.")
(description "Compute various size metrics for a Git repository, flagging
those that might cause problems or inconvenience.")
(license license:expat)))
+
+;;;
+;;; 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
+;;; functionality or similar names.
+;;;
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index c59d0256b9..9ec02101a8 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2365,7 +2365,7 @@ input files is possible, including video files.")
(define-public vlc
(package
(name "vlc")
- (version "3.0.18")
+ (version "3.0.20")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2374,7 +2374,7 @@ input files is possible, including video files.")
"/vlc-" version ".tar.xz"))
(sha256
(base32
- "1v7db9icrb12yz7banq2wvpjpvqfrj031yj1kf5smn35qcwl82ap"))))
+ "1d99p93k8d86bbanym6b6jii1aiavb570lpb83gws8979mdjiixd"))))
(build-system gnu-build-system)
(native-inputs
(list flex bison gettext-minimal pkg-config))
@@ -4187,7 +4187,7 @@ Wayland compositors.")
(define-public obs-vkcapture
(package
(name "obs-vkcapture")
- (version "1.3.0")
+ (version "1.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4196,7 +4196,7 @@ Wayland compositors.")
(file-name (git-file-name name version))
(sha256
(base32
- "18v15bfzm31qkpwipvbqgzak4z6f2hhq6mnz2bvhwnv57whirln6"))))
+ "00a69rg1inkssccqmwp1j85vrw17j2k6d5pidvzfdq94vvad10w5"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ;no tests
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 285d6be7f5..23d0c72ee3 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -1,11 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2022 Kaelyn Takata <kaelyn.alexi@protonmail.com>
-;;; Copyright © 2022 dan <i@dan.games>
+;;; Copyright © 2022, 2024 dan <i@dan.games>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
@@ -37,6 +37,7 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
@@ -46,22 +47,19 @@
#:use-module (gnu packages wine)
#:use-module (gnu packages xorg))
-;; Note: Remember to change vulkan-loader version when bumping this.
-(define %vulkan-sdk-version "sdk-1.3.231.1")
-
(define-public spirv-headers
(package
(name "spirv-headers")
- (version %vulkan-sdk-version)
+ (version "1.3.280.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/SPIRV-Headers")
- (commit version)))
+ (commit (string-append "vulkan-sdk-" version))))
(sha256
(base32
- "0z8b485hryya2g0jxv7amwg3fjj7pchbgnsa5ldf5fwgh5js0icm"))
+ "17jw5gwj2vmicyd6522b1zp7x551krfj826j0fg5kl0ixv0q08wk"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -84,15 +82,15 @@ and for the GLSL.std.450 extended instruction set.
(define-public spirv-tools
(package
(name "spirv-tools")
- (version %vulkan-sdk-version)
+ (version "1.3.280.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/SPIRV-Tools")
- (commit version)))
+ (commit (string-append "vulkan-sdk-" version))))
(sha256
- (base32 "03d489ind2az7w7q1slj3mdc04372r3qqbnd7m9akxbg7yix1a5j"))
+ (base32 "1sj84ngwcgmydlj88nx1a9jfmhmxlij7wc92khp8wf1vsfplayas"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -116,15 +114,15 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
(define-public spirv-cross
(package
(name "spirv-cross")
- (version %vulkan-sdk-version)
+ (version "1.3.280.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/SPIRV-Cross")
- (commit version)))
+ (commit (string-append "vulkan-sdk-" version))))
(sha256
- (base32 "1ypbc1krkr0yywa1m976g3sjyb80l7hxwrnh6gp70w6va1dlnnn9"))
+ (base32 "1k6fbkradknxis85akzzksz9ipm3v42xvrzaamwj2lrgfm8d6r4d"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -189,22 +187,43 @@ translation between LLVM IR and SPIR-V.")
(define-public glslang
(package
(name "glslang")
- (version %vulkan-sdk-version)
+ (version "1.3.280.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/glslang")
- (commit version)))
- (patches (search-patches "glslang-install-static-libs.patch"))
+ (commit (string-append "vulkan-sdk-" version))))
(sha256
(base32
- "12a1zl8qxa28nbf6m67260c0lwdw3bqbj0jz1382wgm5px1fpqw6"))
+ "1vvgqvwhsimlz8wkk38b9cvp9abggq840iws8al0znzz3mnvkfdn"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
- '(#:tests? #f ;FIXME: requires bundled SPIRV-Tools
- #:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
+ `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"
+ "-DALLOW_EXTERNAL_SPIRV_TOOLS=ON"
+ ,@(if (target-riscv64?)
+ `("-DCMAKE_EXE_LINKER_FLAGS=-latomic")
+ '()))
+ #:phases (modify-phases %standard-phases
+ ,@(if (target-ppc32?)
+ `((add-after 'unpack 'skip-failing-test
+ (lambda _
+ ;; TODO: Figure out why this test fails.
+ (substitute* "Test/runtests"
+ ((".*remap\\.invalid" all)
+ (string-append "# " all))))))
+ '())
+ (replace 'check
+ (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ctest"
+ "-j" (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1")
+ "--rerun-failed"
+ "--output-on-failure")))))))
+ (inputs (list spirv-tools))
(native-inputs
(list pkg-config python))
(home-page "https://github.com/KhronosGroup/glslang")
@@ -222,17 +241,17 @@ interpretation of the specifications for these languages.")
(define-public vulkan-headers
(package
(name "vulkan-headers")
- (version %vulkan-sdk-version)
+ (version "1.3.280.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/Vulkan-Headers")
- (commit version)))
+ (commit (string-append "vulkan-sdk-" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "167zdank6pn66mzjdwgrdlmhmsy4v2k0nhw0nwg649k863rgi00j"))))
+ "13mmv5621z73hlfnsrccbcb4z0d7kwj92a081701vbpss45a4whj"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; No tests.
@@ -246,19 +265,17 @@ interpretation of the specifications for these languages.")
(define-public vulkan-loader
(package
(name "vulkan-loader")
- ;; XXX: Take a slightly newer commit to fix a test failure on i686:
- ;; https://github.com/KhronosGroup/Vulkan-Loader/pull/1036
- (version "sdk-1.3.232")
+ (version "1.3.280.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/Vulkan-Loader")
- (commit "v1.3.232")))
+ (commit (string-append "vulkan-sdk-" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0w69sh669sx9pwlvv2rv92ds2hm2rbzsa6qqcmd8kcad0qfq7dz2"))))
+ "0glix3clqkdbi9kqcp8abmglqpgjd2r2bjqvi11r8sair0z54hnf"))))
(build-system cmake-build-system)
(arguments
(list
@@ -286,11 +303,10 @@ interpretation of the specifications for these languages.")
(string-append "includedir=" vulkan-headers "\n"))))))
(add-after 'unpack 'use-system-googletest
(lambda _
- ;; Inform the build system that googletest is already built.
- (substitute* "CMakeLists.txt"
- ((".*if\\(TARGET gtest\\)")
- (string-append " find_package(GTest REQUIRED)\n"
- " if(true)")))
+ (substitute* "tests/CMakeLists.txt"
+ (((string-append "message\\(FATAL_ERROR \"Could not "
+ "find googletest directory. See BUILD.md\"\\)"))
+ "find_package(GTest REQUIRED)"))
;; Use the namespaced variable.
(substitute* "tests/framework/CMakeLists.txt"
(("PUBLIC gtest ")
@@ -303,6 +319,10 @@ interpretation of the specifications for these languages.")
wayland))
(inputs
(list vulkan-headers libxrandr))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "XDG_DATA_DIRS")
+ (files '("share")))))
(home-page
"https://github.com/KhronosGroup/Vulkan-Loader")
(synopsis "Khronos official ICD loader and validation layers for Vulkan")
@@ -321,26 +341,34 @@ and the ICD.")
(define-public vulkan-tools
(package
(name "vulkan-tools")
- (version %vulkan-sdk-version)
+ (version "1.3.280.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/Vulkan-Tools")
- (commit version)))
+ (commit (string-append "vulkan-sdk-" version))))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet #~(substitute* "tests/icd/mock_icd_tests.cpp"
+ ;; Disable driver info test since it relies on git branch info
+ (("ASSERT_EQ\\(std::string\\(driver_properties\\.driverInfo\\)")
+ "// ASSERT_EQ(std::string(driver_properties.driverInfo)")))
(sha256
(base32
- "0jzwjfx4c7y15wkwfhhc64rzljpi47bxrm5jw5blfsqjh8zsd27a"))))
+ "0w0m04vscr4a6vr682g3mn7mfni740cmai9ylzlgfdggb77y58xz"))))
(build-system cmake-build-system)
(inputs
(list glslang libxrandr vulkan-loader wayland wayland-protocols))
(native-inputs
- (list pkg-config python vulkan-headers))
+ (list googletest pkg-config python volk vulkan-headers))
(arguments
- `(#:tests? #f ;no tests
- #:configure-flags (list (string-append "-DGLSLANG_INSTALL_DIR="
- (assoc-ref %build-inputs "glslang")))))
+ `(#:configure-flags (list "-DBUILD_TESTS=ON")
+ #:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "./tests/vulkan_tools_tests")))))))
(home-page
"https://github.com/KhronosGroup/Vulkan-Tools")
(synopsis "Tools and utilities for Vulkan")
@@ -354,7 +382,7 @@ API.")
(package
(name "shaderc")
;; shaderc doesn't follow the versioning scheme of vulkan sdk
- (version "2022.3")
+ (version "2024.0")
(source
(origin
(method git-fetch)
@@ -364,13 +392,18 @@ API.")
(file-name (git-file-name name version))
(sha256
(base32
- "0sdbfi66zmqj0c5q5yv2zvcvry7557yzgxk2mwflyjgqh7kdhb8d"))))
+ "1m5jncn6y8c6g83f8nwh86hz33mvv03x7fyr5zq0ynwanrcpn2hb"))))
(build-system cmake-build-system)
(arguments
`(;; FIXME: Skip most of the tests, because enabling system gtest breaks
;; the build: <https://github.com/google/shaderc/issues/470>.
#:configure-flags
(list "-DSHADERC_SKIP_TESTS=ON"
+ ;; The two flags are copied from:
+ ;; https://sdk.lunarg.com/sdk/download/1.3.280.0/linux/config.json
+ "-DSHADERC_ENABLE_SHARED_CRT=ON"
+ "-DSHADERC_SKIP_COPYRIGHT_CHECK=ON"
+ "-DPYTHON_EXECUTABLE=python3"
;; Note: despite the name, this just specifies the headers.
(string-append "-Dglslang_SOURCE_DIR="
(assoc-ref %build-inputs "glslang") "/include/glslang"))
@@ -396,20 +429,11 @@ API.")
,version
,(package-version spirv-tools)
,(package-version glslang))))
- #t))
- ;; see: https://github.com/google/shaderc/pull/1276
- (add-after 'do-not-look-for-bundled-sources 'drop-additional-glslang-deps
- (lambda _
- (substitute* "glslc/CMakeLists.txt"
- (("OSDependent OGLCompiler") ""))
- (substitute* "libshaderc/CMakeLists.txt"
- (("OSDependent OGLCompiler") ""))
- (substitute* "libshaderc_util/CMakeLists.txt"
- (("OSDependent OGLCompiler") "")))))))
+ #t)))))
(inputs
- (list glslang python spirv-headers spirv-tools))
+ (list glslang spirv-headers spirv-tools))
(native-inputs
- (list pkg-config))
+ (list pkg-config python))
(home-page "https://github.com/google/shaderc")
(synopsis "Tools for shader compilation")
(description "Shaderc is a collection of tools, libraries, and tests for
@@ -468,51 +492,37 @@ shader compilation.")
(define-public vulkan-validationlayers
(package
(name "vulkan-validationlayers")
- (version %vulkan-sdk-version)
+ (version "1.3.280.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/KhronosGroup/Vulkan-ValidationLayers")
- (commit version)))
+ (commit (string-append "vulkan-sdk-" version))))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ ;; We don't build static libraries in SPIRV-Tools.
+ (snippet '(substitute* "tests/CMakeLists.txt"
+ (("-static")
+ "")))
(sha256
(base32
- "07djrk6yym4vl2b52wr09r8y649v5lark5hnr5rwvlxwxdmd9g75"))))
+ "1w6fsaicrgnzkj5vz2v86a2gk1n7478q6n66ac2920avnin9a64c"))))
(build-system cmake-build-system)
(inputs (list glslang
libxrandr
mesa
+ robin-hood-hashing
shaderc
spirv-tools
vulkan-loader
+ vulkan-utility-libraries
wayland))
- (native-inputs (list pkg-config python spirv-headers vulkan-headers))
+ (native-inputs (list googletest pkg-config python spirv-headers vulkan-headers))
(arguments
- (list #:tests? #f ;no tests
+ (list #:tests? #f ; tests crash on some hardware (various upstream issues)
#:configure-flags
- #~(list "-DUSE_ROBIN_HOOD_HASHING=OFF"
- (string-append "-DGLSLANG_INSTALL_DIR="
- (dirname (dirname
- (search-input-directory
- %build-inputs
- "include/glslang"))))
- (string-append "-DSPIRV_HEADERS_INSTALL_DIR="
- (dirname (dirname
- (search-input-directory
- %build-inputs
- "include/spirv"))))
- (string-append "-DSPIRV_TOOLS_INSTALL_DIR="
- (dirname (dirname
- (search-input-directory
- %build-inputs
- "include/spirv-tools"))))
- (string-append "-DVULKAN_HEADERS_INSTALL_DIR="
- (dirname (dirname
- (search-input-directory
- %build-inputs
- "include/vulkan"))))
- "-Wno-dev")
+ #~(list "-DBUILD_TESTS=ON")
#:phases #~(modify-phases %standard-phases
(add-after 'install 'set-layer-path-in-manifest
(lambda _
@@ -522,7 +532,19 @@ shader compilation.")
(substitute* manifest
(("\"libVkLayer_khronos_validation.so\"")
(string-append "\"" #$output
- "/lib/libVkLayer_khronos_validation.so\"")))))))))
+ "/lib/libVkLayer_khronos_validation.so\""))))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "VK_LAYER_PATH"
+ (string-append (getcwd) "/layers"))
+ (setenv "LD_LIBRARY_PATH"
+ (string-append #$(this-package-input
+ "vulkan-loader") "/lib"))
+ (setenv "MESA_SHADER_CACHE_DIR"
+ (string-append (getcwd) "/shader-cache"))
+ (setenv "XDG_RUNTIME_DIR" (getcwd))
+ (invoke "./tests/vk_layer_validation_tests")))))))
(home-page "https://github.com/KhronosGroup/Vulkan-ValidationLayers")
(synopsis "Khronos official validation layers for Vulkan")
(description
@@ -534,16 +556,16 @@ use the Vulkan API.")
(define-public volk
(package
(name "volk")
- (version %vulkan-sdk-version)
+ (version "1.3.280.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zeux/volk")
- (commit version)))
+ (commit (string-append "vulkan-sdk-" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0xaw3kg754mknx8lfj1p74a9npjfvdvlpicvn0hla4495zpc10rq"))))
+ "0x4jhc8n9c4k8svmmcaxxs613xbsav7wam94gacddlm738cwp13v"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ;no test
@@ -588,3 +610,27 @@ storage.")
(home-page
"https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator")
(license license:expat)))
+
+(define-public vulkan-utility-libraries
+ (package
+ (name "vulkan-utility-libraries")
+ (version "1.3.280.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KhronosGroup/Vulkan-Utility-Libraries")
+ (commit (string-append "vulkan-sdk-" version))))
+ (sha256
+ (base32 "17fmalilczs4x435f8kdx8bf0x5mnjhkmcp34xap8lanpbyzs84q"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~(list "-DBUILD_TESTS=ON")))
+ (inputs (list vulkan-headers))
+ (native-inputs (list googletest magic-enum))
+ (home-page "https://github.com/KhronosGroup/Vulkan-Utility-Libraries")
+ (synopsis "Utility libraries for Vulkan developers")
+ (description "Utility libraries for Vulkan developers.")
+ (license license:asl2.0)))
diff --git a/gnu/packages/weather.scm b/gnu/packages/weather.scm
index e95f6bb501..5a0802b211 100644
--- a/gnu/packages/weather.scm
+++ b/gnu/packages/weather.scm
@@ -23,7 +23,8 @@
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages golang)
- #:use-module (gnu packages golang-build))
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-xyz))
(define-public wego
(package
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 543f67acb8..57c4497d13 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2014, 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016, 2019, 2021-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2017, 2024 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
@@ -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)
@@ -281,7 +282,7 @@ and the GTK+ toolkit.")
(define-public lynx
(package
(name "lynx")
- (version "2.9.0dev.12")
+ (version "2.9.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -289,7 +290,7 @@ and the GTK+ toolkit.")
"/lynx" version ".tar.bz2"))
(sha256
(base32
- "1rg8dqafq8ray37s0w855mahq7ywfb4qa4h5q676sxq0klamnid6"))))
+ "1i9r2g2aa6np6pll4iqk9m8rmkiiam85m4jp6zgkbx0dq8i9pnx6"))))
(build-system gnu-build-system)
(native-inputs (list pkg-config perl))
(inputs (list ncurses
@@ -336,8 +337,6 @@ ftp, wais, nntp, finger, or cso/ph/qi servers.
Lynx can be used to access information on the WWW, or to build information
systems intended primarily for local access.")
(home-page "https://lynx.invisible-island.net/")
- ;; This was fixed in 2.8.9dev.10.
- (properties `((lint-hidden-cve . ("CVE-2016-9179"))))
(license license:gpl2)))
(define-public kristall
@@ -594,7 +593,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 +602,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 +950,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.")
@@ -1030,7 +1029,7 @@ Features include
(define-public edbrowse
(package
(name "edbrowse")
- (version "3.8.9")
+ (version "3.8.10")
(source
(origin
(method git-fetch)
@@ -1039,10 +1038,9 @@ Features include
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0hxvdvplmbnn0jzw4ls8a03k2s7qdylghln74910yljzjf392mld"))))
+ (base32 "1rkz3xrx96071xbd9cd6iiqvaiinsf9lfj7s7ahnkp7hywr9whm5"))))
(build-system gnu-build-system)
- (inputs (list curl-ssh pcre2 quickjs openssl readline-7 tidy-html
- unixodbc))
+ (inputs (list curl-ssh pcre2 quickjs openssl readline-7 unixodbc))
(native-inputs (list perl pkg-config))
(arguments
(list
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index aab3ae1839..a71a0e07a3 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1014,7 +1014,7 @@ similar to live activity monitoring provided with NGINX plus.")
(define-public lighttpd
(package
(name "lighttpd")
- (version "1.4.73")
+ (version "1.4.76")
(source (origin
(method url-fetch)
(uri (string-append "https://download.lighttpd.net/lighttpd/"
@@ -1022,7 +1022,7 @@ similar to live activity monitoring provided with NGINX plus.")
"lighttpd-" version ".tar.xz"))
(sha256
(base32
- "1a2cx3di07wf8qii7dpk4yr5wvaz8c9na1x7523smc0lng81d241"))))
+ "04ahiyn622mgpkib8j20vj7wa1av1dv7ing9vz7d1kvkwfb45gwc"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
@@ -1068,7 +1068,10 @@ similar to live activity monitoring provided with NGINX plus.")
pcre2
zlib))
(native-inputs
- (list perl ; for tests
+ (list autoconf
+ automake
+ libtool
+ perl ; for tests
pkg-config which))
(home-page "https://www.lighttpd.net/")
(synopsis "Lightweight HTTP and reverse proxy server")
@@ -5002,8 +5005,8 @@ Cloud.")
(license license:expat)))
(define-public guix-data-service
- (let ((commit "b4583bb17714954530e1cc851efaea1666f6adc2")
- (revision "46"))
+ (let ((commit "c18589249f4b78994db6715226334a28ae6bc85f")
+ (revision "47"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -5015,7 +5018,7 @@ Cloud.")
(file-name (git-file-name name version))
(sha256
(base32
- "0l9nflx5npmmbvqxrfjhfvyr7mcs9qrf0w3dabs65r7q0g0pjcp0"))))
+ "1ny2vnabirw19wn8dlsrac8nqrbklzqr3l18ismmmy70s4xkaabh"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 4e76e705e1..f2cb77f5bf 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -69,6 +69,8 @@
;;; Copyright © 2024 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2024 Ahmad Draidi <a.r.draidi@redscript.org>
;;; Copyright © 2024 chris <chris@bumblehead.com>
+;;; Copyright © 2024 Erik Eduardo Alonso Hernández <erik@erikeduardo.xyz>
+;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1384,6 +1386,41 @@ Keybinder works with GTK-based applications using the X Window System.")
(define-public keybinder-3.0
(deprecated-package "keybinder-3.0" keybinder))
+(define-public sandbar
+ (package
+ (name "sandbar")
+ (version "0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kolunmi/sandbar")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0912cr2q2kg4nqdwy978kpmdcj2cjz3gnlcb28ny9z3cprxvyvxq"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)) ;no configure script
+ #:tests? #f ;no check target
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))))
+ (inputs (list fcft wayland))
+ (native-inputs (list pkg-config wayland-protocols))
+ (synopsis "DWM-like bar for the River Wayland compositor")
+ (description "Sandbar is a minimalist DWM-like bar designed for River,
+a Wayland compositor. It is triggered through commands sent via standard
+input, providing extensive customization options. This behavior allows users
+to dynamically adjust status text, visibility, and bar location, making
+Sandbar an ideal choice for those seeking a lightweight and hackable bar
+solution in their Wayland environment.")
+ ;; LICENSE LICENSE.dtao
+ (license (list license:gpl3 license:expat))
+ (home-page "https://github.com/kolunmi/sandbar")))
+
(define-public spectrwm
(package
(name "spectrwm")
@@ -1767,6 +1804,52 @@ modules for building a Wayland compositor.")
(sha256
(base32 "00s73nhi3sc48l426jdlqwpclg41kx1hv0yk4yxhbzw19gqpfm1h"))))))
+(define-public wl-mirror
+ (package
+ (name "wl-mirror")
+ (version "0.16.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Ferdi265/wl-mirror")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jdycr9vf5skbf55kbm2hc3zl3qg58x3bb6xqkf9qx14m4ramcdj"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f ;No tests.
+ #:configure-flags
+ #~(list "-DINSTALL_DOCUMENTATION=ON"
+ (string-append "-DWL_PROTOCOL_DIR="
+ #$(this-package-input "wayland-protocols")
+ "/share/wayland-protocols")
+ (string-append "-DWLR_PROTOCOL_DIR="
+ #$(this-package-input "wlr-protocols")
+ "/share/wlr-protocols"))))
+ (inputs (list egl-wayland mesa wayland wayland-protocols wlr-protocols))
+ (native-inputs (list pkg-config scdoc))
+ (home-page "https://github.com/Ferdi265/wl-mirror")
+ (synopsis "Simple Wayland output mirror client")
+ (description
+ "This package provides @command{wl-mirror}, a solution to @code{sway}'s
+lack of output mirroring by mirroring an output onto a client surface. It has
+the following features:
+
+@itemize
+@item Mirror an output onto a resizable window.
+@item Mirror an output onto another output by fullscreening the window.
+@item React to changes in output scale (including fractional scaling).
+@item Preserve aspect ratio.
+@item Correct flipped or rotated outputs.
+@item Custom flips or rotations.
+@item Mirror custom regions of outputs.
+@item Receive additional options on stdin for changing the mirrored screen or
+region on the fly.
+@end itemize")
+ (license license:gpl3)))
+
(define-public wmenu
(package
(name "wmenu")
@@ -3731,6 +3814,30 @@ notable features include:
It is inspired by dwm and xmonad.")
(license license:expat))))
+(define-public wsbg
+ (let ((commit "15b0d0f6910ea97b9bcc471695fac07270955dd2")
+ (revision "0")
+ ;; Upstream has no version tags, but meson.build contains the correct
+ ;; version number.
+ (version "0.1.0"))
+ (package
+ (inherit swaybg)
+ (name "wsbg")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/saibier/wsbg")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15xrnwp54kghigx06y4qmmn1q9f26fx4cawyl4kcbqrrzfbbj1g6"))))
+ (home-page "https://github.com/saibier/wsbg")
+ (synopsis "Workspace wallpaper tool for Sway")
+ (description "Wallpaper utility for Sway with support for per-workspace
+configuration."))))
+
(define-public yambar-wayland
(package
(name "yambar-wayland")
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 7950de0d9b..e13b44290e 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -735,7 +735,7 @@ rasterisation.")
(define-public libdrm
(package
(name "libdrm")
- (version "2.4.117")
+ (version "2.4.120")
(source (origin
(method url-fetch)
(uri (string-append
@@ -743,7 +743,7 @@ rasterisation.")
version ".tar.xz"))
(sha256
(base32
- "0ar4c4ikcbm1s4sg09ld406izq5s1yk7b2n0mmvql77bwdlqv252"))))
+ "0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v"))))
(build-system meson-build-system)
(arguments
(list #:configure-flags
@@ -3335,7 +3335,7 @@ using @command{dmenu}.")
(define-public fuzzel
(package
(name "fuzzel")
- (version "1.9.2")
+ (version "1.10.2")
(home-page "https://codeberg.org/dnkl/fuzzel")
(source (origin
(method git-fetch)
@@ -3343,7 +3343,7 @@ using @command{dmenu}.")
(file-name (git-file-name name version))
(sha256
(base32
- "1pmxqdr00x9qbg0h23q3kywhd06qna0f6r5kfa8a1v7x2n1gylsz"))))
+ "024gnddvabf5dwkdffr6qnnia810w1jqn4ll9fvbcaimybgpvs13"))))
(build-system meson-build-system)
(arguments
(list #:build-type "release"
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index f9d9a81169..825b175140 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -736,7 +736,7 @@ like appearance, display, keyboard and mouse settings.")
(sha256
(base32
"020xrwzdnk5b7cli8vmv3yn7sfq6pg7bz57m4p0xh0ln2cgqlc78"))))
- (build-system gnu-build-system)
+ (build-system glib-or-gtk-build-system)
(arguments
'(#:configure-flags '("--with-custom-thunarx-dirs-enabled")))
(native-inputs
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/services/base.scm b/gnu/services/base.scm
index 5104b3d104..3f912225a0 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1790,13 +1790,14 @@ archive' public keys, with GUIX."
;; If MACHINES-FILE already exists, move it out of the way.
;; Create a backup if it's a regular file: it's likely that the
;; user manually updated it.
- (if (file-exists? machines-file)
- (if (and (symbolic-link? machines-file)
- (store-file-name? (readlink machines-file)))
- (delete-file machines-file)
- (rename-file machines-file
- (string-append machines-file ".bak")))
- (mkdir-p (dirname machines-file)))
+ (let ((stat (false-if-exception (lstat machines-file))))
+ (if stat
+ (if (and (eq? 'symlink (stat:type stat))
+ (store-file-name? (readlink machines-file)))
+ (delete-file machines-file)
+ (rename-file machines-file
+ (string-append machines-file ".bak")))
+ (mkdir-p (dirname machines-file))))
;; Installed the declared machines file.
(symlink #+(scheme-file "machines.scm"
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 02a7802d58..d0b9728d4a 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -109,6 +109,10 @@
udisks-service ; deprecated
udisks-service-type
+ gvfs-configuration
+ gvfs-configuration?
+ gvfs-service-type
+
colord-service-type
geoclue-application
@@ -989,6 +993,30 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
(service udisks-service-type
(udisks-configuration (udisks udisks))))
+
+
+;;;
+;;; GVfs virtual file system.
+;;;
+
+(define-record-type* <gvfs-configuration>
+ gvfs-configuration make-gvfs-configuration
+ gvfs-configuration?
+ (gvfs gvfs-package (default gvfs)))
+
+(define gvfs-service-type
+ (service-type (name 'gvfs)
+ (extensions
+ (list
+ (service-extension profile-service-type
+ (compose list gvfs-package))
+ ;; Required for gvfs-udisks2-volume-monitor.
+ (service-extension udisks-service-type (const #t))))
+ (description
+ "Make GVfs virtual file systems (Trash, SFTP, SMB, HTTP,
+and many other) available for GIO applications.")
+ (default-value (gvfs-configuration))))
+
;;;
;;; Elogind login and seat management service.
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index 8b326d9124..96f5ecaac0 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2020, 2021, 2022 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2024 Andrew Tropin <andrew@trop.in>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -101,6 +102,8 @@
guix-data-service-type
+ guix-home-service-type
+
nar-herder-service-type
nar-herder-configuration
nar-herder-configuration?
@@ -688,6 +691,41 @@ ca-certificates.crt file in the system profile."
;;;
+;;; Guix Home Service
+;;;
+
+(define (guix-home-shepherd-service config)
+ (map (match-lambda
+ ((user he)
+ (shepherd-service
+ (documentation "Activate Guix Home.")
+ (requirement '(user-processes))
+ (provision (list (symbol-append 'guix-home- (string->symbol user))))
+ (one-shot? #t)
+ (auto-start? #t)
+ (start #~(make-forkexec-constructor
+ '(#$(file-append he "/activate"))
+ #:user #$user
+ #:environment-variables
+ (list (string-append "HOME=" (passwd:dir (getpw #$user)))
+ "GUIX_SYSTEM_IS_RUNNING_HOME_ACTIVATE=t")
+ #:group (group:name (getgrgid (passwd:gid (getpw #$user))))))
+ (stop #~(make-kill-destructor)))))
+ config))
+
+(define guix-home-service-type
+ (service-type
+ (name 'guix-home)
+ (description "Sets up Guix Home for the specified user accounts.")
+ (extensions (list (service-extension
+ shepherd-root-service-type
+ guix-home-shepherd-service)))
+ (compose concatenate)
+ (extend append)
+ (default-value '())))
+
+
+;;;
;;; Nar Herder
;;;
diff --git a/gnu/services/lightdm.scm b/gnu/services/lightdm.scm
index b966f402d6..18beaa44de 100644
--- a/gnu/services/lightdm.scm
+++ b/gnu/services/lightdm.scm
@@ -620,24 +620,23 @@ port=" (number->string vnc-server-port) "\n"
(provision '(lightdm display-manager xorg-server))
(respawn? #f)
(start
- #~(lambda ()
- ;; Note: sadly, environment variables defined for 'lightdm' are
- ;; cleared and/or overridden by /etc/profile by its spawned greeters,
- ;; so an out-of-band means such as /etc is required.
- (fork+exec-command #$lightdm-command
- ;; Lightdm needs itself in its PATH.
- #:environment-variables
- (list
- ;; It knows to look for greeter configurations in
- ;; XDG_CONFIG_DIRS...
- (string-append "XDG_CONFIG_DIRS="
- #$greeters-config-dir)
- ;; ... and for greeter .desktop files as well as
- ;; lightdm accountsservice interface in
- ;; XDG_DATA_DIRS.
- (string-append "XDG_DATA_DIRS="
- #$data-dirs)
- (string-append "PATH=" #$lightdm-paths)))))
+ ;; Note: sadly, environment variables defined for 'lightdm' are
+ ;; cleared and/or overridden by /etc/profile by its spawned greeters,
+ ;; so an out-of-band means such as /etc is required.
+ #~(make-forkexec-constructor #$lightdm-command
+ ;; Lightdm needs itself in its PATH.
+ #:environment-variables
+ (list
+ ;; It knows to look for greeter
+ ;; configurations in XDG_CONFIG_DIRS...
+ (string-append "XDG_CONFIG_DIRS="
+ #$greeters-config-dir)
+ ;; ... and for greeter .desktop files as
+ ;; well as lightdm accountsservice
+ ;; interface in XDG_DATA_DIRS.
+ (string-append "XDG_DATA_DIRS="
+ #$data-dirs)
+ (string-append "PATH=" #$lightdm-paths))))
(stop #~(make-kill-destructor)))))
(define lightdm-service-type
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index fc5adb94d0..d87e494348 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -46,6 +46,7 @@
#:use-module (gnu system shadow)
#:autoload (gnu system vm) (linux-image-startup-command
virtualized-operating-system)
+ #:autoload (gnu system locale) (locale-definition)
#:use-module (gnu system)
#:use-module (guix derivations)
#:use-module (guix gexp)
@@ -1190,6 +1191,14 @@ authpriv.*;auth.info /var/log/secure
(define %virtual-build-machine-operating-system
(operating-system
(host-name "build-machine")
+
+ (locale "en_US.utf8")
+ (locale-definitions
+ ;; Save space by providing only one locale.
+ (list (locale-definition (name "en_US.utf8")
+ (source "en_US")
+ (charset "UTF-8"))))
+
(bootloader (bootloader-configuration ;unused
(bootloader grub-minimal-bootloader)
(targets '("/dev/null"))))
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 26902c0568..51d704439e 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
-;;; Copyright © 2013-2017, 2019-2020, 2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2017, 2019-2020, 2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -1146,45 +1146,43 @@ argument.")))
(documentation "Xorg display server (GDM)")
(provision '(xorg-server))
(requirement '(dbus-system pam user-processes host-name udev elogind))
- (start #~(lambda ()
- (fork+exec-command
- (list #$(file-append (gdm-configuration-gdm config)
- "/bin/gdm"))
- #:environment-variables
- (list #$@(if (gdm-configuration-auto-suspend? config)
- #~()
- #~("DCONF_PROFILE=/etc/dconf/profile/gdm"))
- (string-append "GDM_CUSTOM_CONF=" #$config-file)
- (string-append
- "GDM_DBUS_DAEMON="
- #$(gdm-configuration-dbus-daemon config))
- (string-append
- "GDM_X_SERVER="
- #$(xorg-wrapper
- (gdm-configuration-xorg config)))
- (string-append
- "GDM_X_SESSION="
- #$(gdm-configuration-x-session config))
- (string-append
- "XDG_DATA_DIRS="
- ((lambda (ls) (string-join ls ":"))
- (map (lambda (path)
- (string-append path "/share"))
- ;; XXX: Remove gnome-shell below when GDM
- ;; can depend on GNOME Shell directly.
- (cons #$gnome-shell
- '#$(gdm-configuration-gnome-shell-assets
- config)))))
- ;; Add XCURSOR_PATH so that mutter can find its
- ;; cursors. gdm doesn't login so doesn't source
- ;; the corresponding line in /etc/profile.
- "XCURSOR_PATH=/run/current-system/profile/share/icons"
- (string-append
- "GDK_PIXBUF_MODULE_FILE="
- #$gnome-shell "/" #$%gdk-pixbuf-loaders-cache-file)
- (string-append
- "GDM_WAYLAND_SESSION="
- #$(gdm-configuration-wayland-session config))))))
+ (start #~(make-forkexec-constructor
+ '(#$(file-append (gdm-configuration-gdm config) "/bin/gdm"))
+ #:environment-variables
+ (list #$@(if (gdm-configuration-auto-suspend? config)
+ #~()
+ #~("DCONF_PROFILE=/etc/dconf/profile/gdm"))
+ (string-append "GDM_CUSTOM_CONF=" #$config-file)
+ (string-append
+ "GDM_DBUS_DAEMON="
+ #$(gdm-configuration-dbus-daemon config))
+ (string-append
+ "GDM_X_SERVER="
+ #$(xorg-wrapper
+ (gdm-configuration-xorg config)))
+ (string-append
+ "GDM_X_SESSION="
+ #$(gdm-configuration-x-session config))
+ (string-append
+ "XDG_DATA_DIRS="
+ ((lambda (ls) (string-join ls ":"))
+ (map (lambda (path)
+ (string-append path "/share"))
+ ;; XXX: Remove gnome-shell below when GDM
+ ;; can depend on GNOME Shell directly.
+ (cons #$gnome-shell
+ '#$(gdm-configuration-gnome-shell-assets
+ config)))))
+ ;; Add XCURSOR_PATH so that mutter can find its
+ ;; cursors. gdm doesn't login so doesn't source
+ ;; the corresponding line in /etc/profile.
+ "XCURSOR_PATH=/run/current-system/profile/share/icons"
+ (string-append
+ "GDK_PIXBUF_MODULE_FILE="
+ #$gnome-shell "/" #$%gdk-pixbuf-loaders-cache-file)
+ (string-append
+ "GDM_WAYLAND_SESSION="
+ #$(gdm-configuration-wayland-session config)))))
(stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action config-file)))
(respawn? #t))))
diff --git a/gnu/system.scm b/gnu/system.scm
index aef81d8ccf..cb6e719ca6 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -43,13 +43,15 @@
#:use-module (guix deprecation)
#:use-module (guix derivations)
#:use-module (guix profiles)
- #:use-module ((guix utils) #:select (substitute-keyword-arguments))
+ #:use-module ((guix utils) #:select (substitute-keyword-arguments
+ version>?))
#:use-module (guix i18n)
#:use-module (guix diagnostics)
#:use-module (guix ui)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
+ #:use-module ((gnu packages certs) #:select (nss-certs))
#:use-module (gnu packages compression)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages firmware)
@@ -274,7 +276,7 @@ VERSION is the target version of the boot-parameters record."
(issue operating-system-issue ; string
(default %default-issue))
- (packages operating-system-packages ; list of (PACKAGE OUTPUT...)
+ (packages %operating-system-packages ; list of (PACKAGE OUTPUT...)
(default %base-packages)) ; or just PACKAGE
(timezone operating-system-timezone
@@ -315,6 +317,31 @@ VERSION is the target version of the boot-parameters record."
hosts-service-type
(%operating-system-hosts-file os))
+;;; XXX: Remove after a new release of Guix no longer suggests to install
+;;; nss-certs.
+(define (operating-system-packages os)
+ "Return the packages of the OS <operating-system> record object."
+ ;; This wrapper is used to warn users that their operating system packages
+ ;; field contains a duplicated nss-certs packages.
+ (let* ((packages (%operating-system-packages os))
+ (nss-certs-packages (sort (filter (lambda (p)
+ (and (package? p)
+ (string=? "nss-certs"
+ (package-name p))))
+ packages)
+ (lambda (x y)
+ ;; Sort from newer to older versions.
+ (version>? (package-version x)
+ (package-version y))))))
+ (if (> (length nss-certs-packages) 1)
+ (begin
+ (warning #f
+ (G_ "multiple 'nss-certs' packages found; 'nss-certs' \
+is now included by default in '%base-packages'; ensure it is not explicitly \
+listed in the operating system 'packages' field~%"))
+ (fold delete packages (drop nss-certs-packages 1)))
+ packages)))
+
(define* (operating-system-kernel-arguments
os root-device #:key (version %boot-parameters-version))
"Return all the kernel arguments, including the ones not specified directly
@@ -877,7 +904,8 @@ of PROVENANCE-SERVICE-TYPE to its services."
(define %base-firmware
;; Firmware usable by default.
- (list ath9k-htc-firmware
+ (list ath9k-htc-ar7010-firmware
+ ath9k-htc-ar9271-firmware
openfwwf-firmware))
(define %base-packages-artwork
@@ -925,6 +953,7 @@ of PROVENANCE-SERVICE-TYPE to its services."
(list inetutils isc-dhcp
iproute
wget
+ nss-certs
;; wireless-tools is deprecated in favor of iw, but it's still what
;; many people are familiar with, so keep it around.
iw wireless-tools))
diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl
index dc6aff5273..7b6a4b09b0 100644
--- a/gnu/system/examples/bare-bones.tmpl
+++ b/gnu/system/examples/bare-bones.tmpl
@@ -4,9 +4,6 @@
(use-modules (gnu))
(use-service-modules networking ssh)
-;; If you want to use HTTPS, you most likely want to include
-;; "certs" in the line below. Also read the comment about
-;; "nss-certs" later in this file.
(use-package-modules screen ssh)
(operating-system
@@ -46,8 +43,6 @@
%base-user-accounts))
;; Globally-installed packages.
- ;; Add "nss-certs" for Mozilla's approved CA certs. You would
- ;; have to have included "certs" in use-package-modules above.
(packages (cons screen %base-packages))
;; Add services to the baseline: a DHCP client and an SSH
diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl
index 10d0e54fa7..2d65f22294 100644
--- a/gnu/system/examples/desktop.tmpl
+++ b/gnu/system/examples/desktop.tmpl
@@ -5,7 +5,7 @@
(use-modules (gnu) (gnu system nss) (guix utils))
(use-service-modules desktop sddm xorg)
-(use-package-modules certs gnome)
+(use-package-modules gnome)
(operating-system
(host-name "antelope")
@@ -65,8 +65,6 @@
;; This is where we specify system-wide packages.
(packages (append (list
- ;; for HTTPS access
- nss-certs
;; for user mounts
gvfs)
%base-packages))
diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl
index 4cb3c38311..c061284ba8 100644
--- a/gnu/system/examples/lightweight-desktop.tmpl
+++ b/gnu/system/examples/lightweight-desktop.tmpl
@@ -5,7 +5,7 @@
(use-modules (gnu) (gnu system nss))
(use-service-modules desktop)
-(use-package-modules bootloaders certs emacs emacs-xyz ratpoison suckless wm
+(use-package-modules bootloaders emacs emacs-xyz ratpoison suckless wm
xorg)
(operating-system
@@ -47,9 +47,7 @@
ratpoison i3-wm i3status dmenu
emacs emacs-exwm emacs-desktop-environment
;; terminal emulator
- xterm
- ;; for HTTPS access
- nss-certs)
+ xterm)
%base-packages))
;; Use the "desktop" services, which include the X11
diff --git a/gnu/system/examples/plasma.tmpl b/gnu/system/examples/plasma.tmpl
index 6395991125..c3850ffe37 100644
--- a/gnu/system/examples/plasma.tmpl
+++ b/gnu/system/examples/plasma.tmpl
@@ -3,7 +3,7 @@
(use-modules (gnu) (gnu system nss) (srfi srfi-1))
(use-service-modules desktop sddm xorg ssh)
-(use-package-modules certs gnome ssh admin fonts)
+(use-package-modules gnome ssh admin fonts)
(use-package-modules qt xorg tmux linux)
(operating-system
@@ -32,8 +32,7 @@
%base-user-accounts))
;; This is where we specify system-wide packages.
- (packages (cons* nss-certs ;for HTTPS access
- neofetch
+ (packages (cons* neofetch
htop
tmux
xprop
diff --git a/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl b/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl
index 2203375270..1baca02491 100644
--- a/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl
+++ b/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl
@@ -17,8 +17,7 @@
avahi
networking
ssh)
-(use-package-modules certs
- linux
+(use-package-modules linux
raspberry-pi
ssh)
@@ -56,8 +55,7 @@
(supplementary-groups '("wheel" "netdev" "audio" "video"))
(home-directory "/home/pi"))
%base-user-accounts))
- (packages (cons* nss-certs
- openssh
+ (packages (cons* openssh
%base-packages))
(services (cons* (service avahi-service-type)
(service dhcp-client-service-type)
diff --git a/gnu/system/examples/raspberry-pi-64.tmpl b/gnu/system/examples/raspberry-pi-64.tmpl
index 185d25c412..414d8ac7a5 100644
--- a/gnu/system/examples/raspberry-pi-64.tmpl
+++ b/gnu/system/examples/raspberry-pi-64.tmpl
@@ -16,8 +16,7 @@
avahi
networking
ssh)
-(use-package-modules certs
- linux
+(use-package-modules linux
raspberry-pi
ssh)
@@ -60,8 +59,7 @@
(supplementary-groups '("wheel" "netdev" "audio" "video"))
(home-directory "/home/pi"))
%base-user-accounts))
- (packages (cons* nss-certs
- openssh
+ (packages (cons* openssh
%base-packages))
(services (cons* (service avahi-service-type)
(service dhcp-client-service-type)
diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl
index dc9a7542a5..589de493b1 100644
--- a/gnu/system/examples/vm-image.tmpl
+++ b/gnu/system/examples/vm-image.tmpl
@@ -7,7 +7,7 @@
(use-modules (gnu) (guix) (srfi srfi-1))
(use-service-modules desktop mcron networking spice ssh xorg sddm)
-(use-package-modules bootloaders certs fonts
+(use-package-modules bootloaders fonts
package-management xdisorg xorg)
(define vm-image-motd (plain-file "motd" "
@@ -66,7 +66,7 @@ root ALL=(ALL) ALL
%wheel ALL=NOPASSWD: ALL\n"))
(packages
- (append (list font-bitstream-vera nss-certs
+ (append (list font-bitstream-vera
;; Auto-started script providing SPICE dynamic resizing for
;; Xfce (see:
;; https://gitlab.xfce.org/xfce/xfce4-settings/-/issues/142).
diff --git a/gnu/system/images/orangepi-r1-plus-lts-rk3328.scm b/gnu/system/images/orangepi-r1-plus-lts-rk3328.scm
index eaaa12ba78..6ec644f113 100644
--- a/gnu/system/images/orangepi-r1-plus-lts-rk3328.scm
+++ b/gnu/system/images/orangepi-r1-plus-lts-rk3328.scm
@@ -21,7 +21,6 @@
#:use-module (gnu bootloader u-boot)
#:use-module (gnu image)
#:use-module (gnu packages linux)
- #:use-module (gnu packages certs)
#:use-module (guix platforms arm)
#:use-module (gnu services)
#:use-module (gnu services base)
@@ -55,8 +54,7 @@
(term "vt100")
(tty "ttyS2")))
(service dhcp-client-service-type)
- (service ntp-service-type) %base-services))
- (packages (cons nss-certs %base-packages))))
+ (service ntp-service-type) %base-services))))
(define orangepi-r1-plus-lts-rk3328-image-type
(image-type (name 'orangepi-r1-plus-lts-rk3328-raw)
diff --git a/gnu/system/images/pine64.scm b/gnu/system/images/pine64.scm
index 3feb69764d..457ff4345f 100644
--- a/gnu/system/images/pine64.scm
+++ b/gnu/system/images/pine64.scm
@@ -59,8 +59,7 @@
(tty "ttyS0")))
(service dhcp-client-service-type)
(service ntp-service-type)
- %base-services))
- (packages (cons nss-certs %base-packages))))
+ %base-services))))
(define pine64-image-type
(image-type
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 371bfc2a63..0195a0804d 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -548,11 +548,10 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
(base-pam-services #:allow-empty-passwords? #t))
(packages (append
- (list glibc ; for 'tzselect' & co.
+ (list glibc ; for 'tzselect' & co.
fontconfig
font-dejavu font-gnu-unifont
- grub ; mostly so xrefs to its manual work
- nss-certs) ; To access HTTPS, use git, etc.
+ grub) ; mostly so xrefs to its manual work
%installer-disk-utilities
%base-packages))))
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index f5d86219a8..d448c78918 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2020, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -36,7 +36,7 @@
#:use-module ((gnu packages xorg)
#:select (console-setup xkeyboard-config))
#:use-module ((gnu packages make-bootstrap)
- #:select (%guile-static-stripped))
+ #:select (%guile-static-initrd))
#:use-module (gnu system file-systems)
#:use-module (gnu system mapped-devices)
#:use-module (gnu system keyboard)
@@ -62,7 +62,7 @@
(define* (expression->initrd exp
#:key
- (guile %guile-static-stripped)
+ (guile %guile-static-initrd)
(gzip gzip)
(name "guile-initrd")
(system (%current-system)))
@@ -134,18 +134,23 @@ MODULES and taken from LINUX."
(guix build utils)
(rnrs io ports)
(srfi srfi-1)
- (srfi srfi-26))
+ (srfi srfi-26)
+ (ice-9 match))
(define module-dir
(string-append #$linux "/lib/modules"))
(define builtin-modules
- (call-with-input-file
- (first (find-files module-dir "modules.builtin$"))
- (lambda (port)
- (map file-name->module-name
- (string-tokenize
- (get-string-all port))))))
+ (match (find-files module-dir (lambda (file stat)
+ (string=? (basename file)
+ "modules.builtin")))
+ ((file . _)
+ (call-with-input-file file
+ (lambda (port)
+ (map file-name->module-name
+ (string-tokenize (get-string-all port))))))
+ (_
+ '())))
(define modules-to-lookup
(lset-difference string=? '#$modules builtin-modules))
@@ -252,12 +257,10 @@ upon error."
(srfi srfi-1) ;for lvm-device-mapping
(srfi srfi-26)
- ;; FIXME: The following modules are for
- ;; LUKS-DEVICE-MAPPING. We should instead propagate
- ;; this info via gexps.
- ((gnu build file-systems)
- #:select (find-partition-by-luks-uuid))
- (rnrs bytevectors))
+ ;; Load extra modules needed by the mapped device code.
+ #$@(append-map (compose mapped-device-kind-modules
+ mapped-device-type)
+ mapped-devices))
(with-output-to-port (%make-void-port "w")
(lambda ()
diff --git a/gnu/system/locale.scm b/gnu/system/locale.scm
index bc572baeb9..b8910e1e42 100644
--- a/gnu/system/locale.scm
+++ b/gnu/system/locale.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2017, 2019-2021, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2017, 2019-2021, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2023 Janneke Nieuwenhuizen <jannek@gnu.org>
;;;
@@ -150,12 +150,13 @@ data format changes between libc versions."
;; The libcs for which we build locales by default.
(if (system-hurd?)
(list glibc/hurd)
- (list glibc-2.33 glibc)))
+ (list glibc)))
(define %default-locale-definitions
- ;; Arbitrary set of locales that are built by default. They are here mostly
- ;; to facilitate first-time use to some people, while others may have to add
- ;; a specific <locale-definition>.
+ ;; Arbitrary set of locales that are built by default. They come as a
+ ;; "bonus" in addition to that specified in the 'locale' field of the
+ ;; operating system, for the user's convenience, so they shouldn't take too
+ ;; much space.
(letrec-syntax ((utf8-locale (syntax-rules ()
((_ name*)
(locale-definition
@@ -167,44 +168,18 @@ data format changes between libc versions."
(utf8-locales (syntax-rules ()
((_ name ...)
(list (utf8-locale name) ...)))))
- ;; Add "en_US.UTF-8" for compatibility with Guix 0.8.
- (cons (locale-definition
- (name "en_US.UTF-8")
- (source "en_US")
- (charset "UTF-8"))
- (utf8-locales "ca_ES"
- "cs_CZ"
- "da_DK"
- "de_DE"
- "el_GR"
- "en_AU"
- "en_CA"
- "en_GB"
- "en_US"
- "es_AR"
- "es_CL"
- "es_ES"
- "es_MX"
- "fi_FI"
- "fr_BE"
- "fr_CA"
- "fr_CH"
- "fr_FR"
- "ga_IE"
- "it_IT"
- "ja_JP"
- "ko_KR"
- "nb_NO"
- "nl_NL"
- "pl_PL"
- "pt_PT"
- "ro_RO"
- "ru_RU"
- "sv_SE"
- "tr_TR"
- "uk_UA"
- "vi_VN"
- "zh_CN"))))
+ ;; The six UN official languages plus Portuguese, with at most two
+ ;; variants per language.
+ (utf8-locales "ar_DZ"
+ "en_GB"
+ "en_US"
+ "es_AR"
+ "es_ES"
+ "fr_FR"
+ "pt_BR"
+ "pt_PT"
+ "ru_RU"
+ "zh_CN")))
;;;
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index c19a818453..e56ead9e5e 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
@@ -57,6 +57,7 @@
mapped-device-kind?
mapped-device-kind-open
mapped-device-kind-close
+ mapped-device-kind-modules
mapped-device-kind-check
device-mapping-service-type
@@ -112,6 +113,8 @@ specifications to 'targets'."
(open mapped-device-kind-open) ;source target -> gexp
(close mapped-device-kind-close ;source target -> gexp
(default (const #~(const #f))))
+ (modules mapped-device-kind-modules ;list of module names
+ (default '()))
(check mapped-device-kind-check ;source -> Boolean
(default (const #t))))
@@ -125,13 +128,14 @@ specifications to 'targets'."
'device-mapping
(match-lambda
(($ <mapped-device> source targets
- ($ <mapped-device-type> open close))
+ ($ <mapped-device-type> open close modules))
(shepherd-service
(provision (list (symbol-append 'device-mapping- (string->symbol (string-join targets "-")))))
(requirement '(udev))
(documentation "Map a device node using Linux's device mapper.")
(start #~(lambda () #$(open source targets)))
(stop #~(lambda _ (not #$(close source targets))))
+ (modules (append %default-modules modules))
(respawn? #f))))
(description "Map a device node using Linux's device mapper.")))
@@ -202,12 +206,6 @@ option of @command{guix system}.\n")
(uuid-bytevector source)
source))
(keyfile #$key-file))
- ;; XXX: 'use-modules' should be at the top level.
- (use-modules (rnrs bytevectors) ;bytevector?
- ((gnu build file-systems)
- #:select (find-partition-by-luks-uuid
- system*/tty))
- ((guix build utils) #:select (mkdir-p)))
;; Create '/run/cryptsetup/' if it does not exist, as device locking
;; is mandatory for LUKS2.
@@ -283,7 +281,10 @@ option of @command{guix system}.\n")
(mapped-device-kind
(open open-luks-device)
(close close-luks-device)
- (check check-luks-device)))
+ (check check-luks-device)
+ (modules '((rnrs bytevectors) ;bytevector?
+ ((gnu build file-systems)
+ #:select (find-partition-by-luks-uuid system*/tty))))))
(define* (luks-device-mapping-with-options #:key key-file)
"Return a luks-device-mapping object with open modified to pass the arguments
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 7d9d07ebb7..a2743453e7 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -287,8 +287,11 @@ useful when FULL-BOOT? is true."
#~(format #f "/tmp/guix-image-~a" (basename #$base-image)))
(define qemu-exec
- #~(list #+(file-append qemu "/bin/"
- (qemu-command (or target system)))
+ #~(list #+(with-parameters ((%current-system %system)
+ (%current-target-system #f))
+ ;; Override %CURRENT-SYSTEM to always use a native emulator.
+ (file-append qemu "/bin/"
+ (qemu-command (or target system))))
;; Tells qemu to use the terminal it was started in for IO.
#$@(if graphic? '() #~("-nographic"))
#$@(if full-boot?
diff --git a/gnu/tests/guix.scm b/gnu/tests/guix.scm
index 240ded4825..12ad1bf255 100644
--- a/gnu/tests/guix.scm
+++ b/gnu/tests/guix.scm
@@ -17,6 +17,8 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu tests guix)
+ #:use-module (gnu home)
+ #:use-module (gnu home services)
#:use-module (gnu tests)
#:use-module (gnu system)
#:use-module (gnu system file-systems)
@@ -37,6 +39,7 @@
#:use-module (ice-9 match)
#:export (%test-guix-build-coordinator
%test-guix-data-service
+ %test-guix-home-service
%test-nar-herder
%test-bffe))
@@ -253,6 +256,76 @@ host all all ::1/128 trust"))))))
;;;
+;;; Guix Home
+;;;
+
+(define %guix-home-service-he
+ (home-environment
+ (services
+ (list (simple-service 'guix-home-service-test
+ home-files-service-type
+ `(("guix-home-service-activated"
+ ,(plain-file "guix-home-service-activated"
+ "Guix Home service activated"))))))))
+
+(define %guix-home-service-os
+ (simple-operating-system
+ (service guix-home-service-type
+ `(("alice" ,%guix-home-service-he)))))
+
+(define (run-guix-home-service-test)
+ (define os
+ (marionette-operating-system
+ %guix-home-service-os
+ #:imported-modules '((gnu services herd))))
+
+ (define vm
+ (virtual-machine
+ (operating-system os)
+ (memory-size 1024)))
+
+ (define test
+ (with-imported-modules '((gnu build marionette))
+ #~(begin
+ (use-modules (srfi srfi-64)
+ (gnu build marionette))
+
+ (define marionette
+ (make-marionette (list #$vm)))
+
+ (test-runner-current (system-test-runner #$output))
+ (test-begin "guix-home-service")
+
+ (test-assert "service started"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (match (start-service 'guix-home-alice)
+ (#f #f)
+ ;; herd returns (running #f), likely because of one shot,
+ ;; so consider any non-error a success.
+ (('service response-parts ...) #t)))
+ marionette))
+
+ (test-assert "file-exists"
+ (marionette-eval
+ '(begin
+ (sleep 3) ;make sure service has time to symlink files
+ (file-exists? "/home/alice/guix-home-service-activated"))
+ marionette))
+
+ (test-end))))
+
+ (gexp->derivation "guix-home-service-test" test))
+
+(define %test-guix-home-service
+ (system-test
+ (name "guix-home-service")
+ (description "Activate a Guix home environment.")
+ (value (run-guix-home-service-test))))
+
+
+;;;
;;; Nar Herder
;;;
diff --git a/gnu/tests/reconfigure.scm b/gnu/tests/reconfigure.scm
index 00514e7020..bcc7645fa3 100644
--- a/gnu/tests/reconfigure.scm
+++ b/gnu/tests/reconfigure.scm
@@ -92,15 +92,12 @@ generation of the system profile."
(length (system-generations marionette))
(1+ (length generations-prior)))
- (test-assert "script activated the new generation"
- (and (eqv? 'symlink
- (marionette-eval
- '(stat:type (lstat "/run/current-system"))
- marionette))
- (string= #$os
- (marionette-eval
- '(readlink "/run/current-system")
- marionette))))
+ (test-equal "script activated the new generation"
+ (string-append "/var/guix/profiles/system-"
+ (number->string (+ 1 (length generations-prior)))
+ "-link")
+ (marionette-eval '(readlink "/run/current-system")
+ marionette))
(test-assert "script activated user accounts"
(marionette-eval
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/guix/build/qt-utils.scm b/guix/build/qt-utils.scm
index 8962c0edb8..d7609b9f21 100644
--- a/guix/build/qt-utils.scm
+++ b/guix/build/qt-utils.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -89,7 +90,7 @@
'("XDG_CONFIG_DIRS" suffix directory "/etc/xdg")
`("QT_PLUGIN_PATH" prefix directory
,(format #f "/lib/qt~a/plugins" qt-major-version))
- `(,(if (>= 6 (string->number qt-major-version))
+ `(,(if (>= (string->number qt-major-version) 6)
"QML_IMPORT_PATH"
"QML2_IMPORT_PATH")
prefix directory ,(format #f "/lib/qt~a/qml" qt-major-version))
diff --git a/guix/channels.scm b/guix/channels.scm
index 66f3122f79..51024dcad4 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -20,10 +20,19 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix channels)
- #:use-module (git) ;TODO: autoload
+ #:autoload (git commit) (commit-lookup
+ commit-id)
+ #:autoload (git oid) (oid->string
+ string->oid)
+ #:autoload (git object) (object-id)
+ #:autoload (git errors) (GIT_ENOTFOUND)
+ #:autoload (git structs) (git-error-code)
#:autoload (guix git) (update-cached-checkout
url+commit->name
commit-difference
+ repository-info
+ commit-short-id
+ tag->commit
with-repository)
#:autoload (guix git-authenticate) (authenticate-repository)
#:autoload (guix openpgp) (openpgp-public-key-fingerprint
@@ -43,10 +52,10 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-9)
- #:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
+ #:use-module (srfi srfi-71)
#:autoload (guix describe) (current-channels) ;XXX: circular dep
#:autoload (guix self) (whole-package make-config.scm)
#:autoload (guix inferior) (gexp->derivation-in-inferior) ;FIXME: circular dep
@@ -207,18 +216,13 @@ introduction, add it."
channel that uses that repository and the commit HEAD currently points to; use
INTRODUCTION as the channel's introduction. Return #f if no Git repository
could be found at DIRECTORY or one of its ancestors."
- (catch 'git-error
- (lambda ()
- (with-repository (repository-discover directory) repository
- (let* ((head (repository-head repository))
- (commit (oid->string (reference-target head))))
- (channel
- (inherit %default-guix-channel)
- (url (repository-working-directory repository))
- (commit commit)
- (branch (reference-shorthand head))
- (introduction introduction)))))
- (const #f)))
+ (let ((directory commit branch (repository-info directory)))
+ (channel
+ (inherit %default-guix-channel)
+ (url directory)
+ (commit commit)
+ (branch branch)
+ (introduction introduction))))
(define-record-type <channel-instance>
(channel-instance channel commit checkout)
@@ -343,9 +347,6 @@ result is unspecified."
(apply-patch patch checkout))
(loop rest)))))
-(define commit-short-id
- (compose (cut string-take <> 7) oid->string commit-id))
-
(define* (authenticate-channel channel checkout commit
#:key (keyring-reference-prefix "origin/"))
"Authenticate the given COMMIT of CHANNEL, available at CHECKOUT, a
@@ -411,12 +412,11 @@ their relation. When AUTHENTICATE? is false, CHANNEL is not authenticated."
(and (string=? (basename file) ".git")
(eq? 'directory (stat:type stat))))
- (let-values (((channel)
- (ensure-default-introduction channel))
- ((checkout commit relation)
- (update-cached-checkout (channel-url channel)
- #:ref (channel-reference channel)
- #:starting-commit starting-commit)))
+ (let ((channel (ensure-default-introduction channel))
+ (checkout commit relation
+ (update-cached-checkout (channel-url channel)
+ #:ref (channel-reference channel)
+ #:starting-commit starting-commit)))
(when relation
(validate-pull channel starting-commit commit relation))
@@ -1155,14 +1155,8 @@ the field its 'tag' refers to. A 'git-error' exception is raised if the tag
cannot be found."
(if (channel-news-entry-commit entry)
entry
- (let* ((tag (channel-news-entry-tag entry))
- (reference (reference-lookup repository
- (string-append "refs/tags/" tag)))
- (target (reference-target reference))
- (oid (let ((obj (object-lookup repository target)))
- (if (= OBJ-TAG (object-type obj)) ;annotated tag?
- (tag-target-id (tag-lookup repository target))
- target))))
+ (let* ((tag (channel-news-entry-tag entry))
+ (oid (object-id (tag->commit repository tag))))
(channel-news-entry (oid->string oid) tag
(channel-news-entry-title entry)
(channel-news-entry-body entry)))))
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 9fec7f4f0b..a91c1ae984 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2021, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2021, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -32,7 +32,7 @@
#:use-module (ice-9 rdelim)
#:use-module (ice-9 vlist)
#:use-module (guix store)
- #:use-module (guix utils)
+ #:autoload (guix utils) (%current-system string-replace-substring)
#:use-module (guix base16)
#:use-module (guix memoization)
#:use-module (guix combinators)
@@ -40,7 +40,7 @@
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (guix monads)
- #:use-module (gcrypt hash)
+ #:autoload (gcrypt hash) (sha256)
#:use-module (guix sets)
#:export (<derivation>
derivation?
diff --git a/guix/discovery.scm b/guix/discovery.scm
index 0edc7fd1ae..2febfcdcb7 100644
--- a/guix/discovery.scm
+++ b/guix/discovery.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2019, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,7 +20,7 @@
#:use-module (guix i18n)
#:use-module (guix modules)
#:use-module (guix combinators)
- #:use-module (guix build syscalls)
+ #:autoload (guix build syscalls) (scandir*)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:use-module (ice-9 vlist)
diff --git a/guix/download.scm b/guix/download.scm
index 3dfe143e9f..b251e1f6c0 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -31,8 +31,8 @@
#:autoload (guix build download) (url-fetch)
#:use-module (guix monads)
#:use-module (guix gexp)
- #:use-module (guix utils)
- #:use-module (web uri)
+ #:autoload (guix build utils) (call-with-temporary-output-file)
+ #:autoload (web uri) (string->uri uri-scheme uri-path)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (%download-methods
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 29819878fa..74b4c49f90 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -633,25 +633,29 @@ This is the declarative counterpart of 'gexp->script'."
#:target target))))
(define-record-type <scheme-file>
- (%scheme-file name gexp splice? load-path?)
+ (%scheme-file name gexp splice? guile load-path?)
scheme-file?
(name scheme-file-name) ;string
(gexp scheme-file-gexp) ;gexp
(splice? scheme-file-splice?) ;Boolean
+ (guile scheme-file-guile) ;package
(load-path? scheme-file-set-load-path?)) ;Boolean
-(define* (scheme-file name gexp #:key splice? (set-load-path? #t))
+(define* (scheme-file name gexp
+ #:key splice?
+ guile (set-load-path? #t))
"Return an object representing the Scheme file NAME that contains GEXP.
This is the declarative counterpart of 'gexp->file'."
- (%scheme-file name gexp splice? set-load-path?))
+ (%scheme-file name gexp splice? guile set-load-path?))
(define-gexp-compiler (scheme-file-compiler (file <scheme-file>)
system target)
;; Compile FILE by returning a derivation that builds the file.
(match file
- (($ <scheme-file> name gexp splice? set-load-path?)
+ (($ <scheme-file> name gexp splice? guile set-load-path?)
(gexp->file name gexp
+ #:guile (or guile (default-guile))
#:set-load-path? set-load-path?
#:splice? splice?
#:system system
@@ -2019,6 +2023,7 @@ imported modules in its search path. Look up EXP's modules in MODULE-PATH."
#:substitutable? #f)))
(define* (gexp->file name exp #:key
+ (guile (default-guile))
(set-load-path? #t)
(module-path %load-path)
(splice? #f)
@@ -2038,6 +2043,8 @@ Lookup EXP's modules in MODULE-PATH."
((target (if (eq? target 'current)
(current-target-system)
(return target)))
+ (guile-for-build
+ (lower-object guile system #:target #f))
(no-load-path? -> (or (not set-load-path?)
(and (null? modules)
(null? extensions))))
@@ -2057,6 +2064,7 @@ Lookup EXP's modules in MODULE-PATH."
'(ungexp (if splice?
exp
(gexp ((ungexp exp)))))))))
+ #:guile-for-build guile-for-build
#:local-build? #t
#:substitutable? #f
#:system system
@@ -2073,6 +2081,7 @@ Lookup EXP's modules in MODULE-PATH."
exp
(gexp ((ungexp exp)))))))))
#:module-path module-path
+ #:guile-for-build guile-for-build
#:local-build? #t
#:substitutable? #f
#:system system
diff --git a/guix/git.scm b/guix/git.scm
index cbcdb1904b..d75a301f98 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2018-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
@@ -27,14 +27,13 @@
#:use-module (guix i18n)
#:use-module (guix base32)
#:use-module (guix cache)
- #:use-module (gcrypt hash)
+ #:autoload (gcrypt hash) (sha256)
#:use-module ((guix build utils)
#:select (mkdir-p delete-file-recursively invoke/quiet))
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix records)
- #:use-module ((guix build syscalls)
- #:select (terminal-string-width))
+ #:autoload (guix build syscalls) (terminal-string-width)
#:use-module (guix gexp)
#:autoload (guix git-download)
(git-reference-url git-reference-commit git-reference-recursive?)
@@ -59,6 +58,7 @@
with-repository
with-git-error-handling
false-if-git-not-found
+ repository-info
update-cached-checkout
url+commit->name
latest-repository-commit
@@ -66,6 +66,8 @@
commit-relation
commit-descendant?
commit-id?
+ commit-short-id
+ tag->commit
remote-refs
@@ -232,6 +234,22 @@ is a tag name. This is based on a simple heuristic so use with care!"
(and (= (string-length str) 40)
(string-every char-set:hex-digit str)))
+(define commit-short-id
+ (compose (cut string-take <> 7) oid->string commit-id))
+
+(define (tag->commit repository tag)
+ "Resolve TAG in REPOSITORY and return the corresponding object, usually a
+commit."
+ (let* ((oid (reference-name->oid repository
+ (string-append "refs/tags/" tag)))
+ (obj (object-lookup repository oid)))
+ ;; OID may designate an "annotated tag" object or a "commit" object.
+ ;; Return the commit object in both cases.
+ (if (= OBJ-TAG (object-type obj))
+ (object-lookup repository
+ (tag-target-id (tag-lookup repository oid)))
+ obj)))
+
(define (resolve-reference repository ref)
"Resolve the branch, commit or tag specified by REF, and return the
corresponding Git object."
@@ -278,15 +296,7 @@ corresponding Git object."
;; There's no such tag, so it must be a commit ID.
(resolve `(commit . ,str)))))))
(('tag . tag)
- (let* ((oid (reference-name->oid repository
- (string-append "refs/tags/" tag)))
- (obj (object-lookup repository oid)))
- ;; OID may designate an "annotated tag" object or a "commit" object.
- ;; Return the commit object in both cases.
- (if (= OBJ-TAG (object-type obj))
- (object-lookup repository
- (tag-target-id (tag-lookup repository oid)))
- obj))))))
+ (tag->commit repository tag)))))
(define (switch-to-ref repository ref)
"Switch to REPOSITORY's branch, commit or tag specified by REF. Return the
@@ -330,6 +340,22 @@ dynamic extent of EXP."
(lambda (key err)
(report-git-error err))))
+(define (repository-info directory)
+ "Open the Git repository in DIRECTORY or one of its parent and return three
+values: the working directory of that repository, its checked out commit ID,
+and its checked out reference (such as a branch name). Return #f (three
+values) if DIRECTORY does not hold a readable Git repository."
+ (catch 'git-error
+ (lambda ()
+ (with-repository (repository-discover directory) repository
+ (let* ((head (repository-head repository))
+ (commit (oid->string (reference-target head))))
+ (values (repository-working-directory repository)
+ commit
+ (reference-shorthand head)))))
+ (lambda _
+ (values #f #f #f))))
+
(define* (update-submodules repository
#:key (log-port (current-error-port))
(fetch-options #f))
diff --git a/guix/import/github.scm b/guix/import/github.scm
index 7409c9a202..c5556d78ee 100644
--- a/guix/import/github.scm
+++ b/guix/import/github.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,6 +25,7 @@
(define-module (guix import github)
#:use-module (ice-9 match)
+ #:use-module (ice-9 regex)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
@@ -96,6 +98,11 @@ false if none is recognized"
url)
(string-append prefix "/releases/download/" repo "-" new-version "/"
repo "-" new-version ext))
+ ((string-match (string-append "/releases/download/(v)?" version "/"
+ name ".*" ext "$")
+ url)
+ (string-replace-substring url version new-version))
+
(#t #f))) ; Some URLs are not recognised.
#f))
diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index bbaee73a06..79a51d3300 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -47,7 +47,7 @@
#:use-module (guix upstream)
#:use-module (guix packages)
#:autoload (guix build-system haskell) (hackage-uri)
- #:use-module ((guix utils) #:select (call-with-temporary-output-file))
+ #:autoload (guix build utils) (call-with-temporary-output-file)
#:export (%hackage-url
hackage->guix-package
hackage-recursive-import
diff --git a/guix/import/hexpm.scm b/guix/import/hexpm.scm
index 628a44ff24..71a54ba973 100644
--- a/guix/import/hexpm.scm
+++ b/guix/import/hexpm.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2017, 2019-2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2019-2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020-2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -28,10 +28,11 @@
#:use-module ((guix build utils)
#:select ((package-name->name+version
. hyphen-package-name->name+version)
- dump-port))
+ dump-port
+ call-with-temporary-output-file))
#:use-module (guix packages)
#:use-module (guix upstream)
- #:use-module (guix utils)
+ #:autoload (guix utils) (version>? file-sans-extension)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
diff --git a/guix/import/opam.scm b/guix/import/opam.scm
index 86e82cde59..a7f8092507 100644
--- a/guix/import/opam.scm
+++ b/guix/import/opam.scm
@@ -31,7 +31,9 @@
#:use-module ((srfi srfi-26) #:select (cut))
#:use-module (srfi srfi-34)
#:use-module ((web uri) #:select (string->uri uri->string))
- #:use-module ((guix build utils) #:select (dump-port find-files mkdir-p))
+ #:use-module ((guix build utils)
+ #:select (dump-port find-files mkdir-p
+ call-with-temporary-output-file))
#:use-module (guix build-system)
#:use-module (guix i18n)
#:use-module (guix diagnostics)
@@ -39,8 +41,7 @@
#:use-module (guix packages)
#:use-module (guix upstream)
#:use-module ((guix utils) #:select (cache-directory
- version>?
- call-with-temporary-output-file))
+ version>?))
#:use-module ((guix import utils) #:select (beautify-description
guix-hash-url
recursive-import
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm
index 1a3070fb36..6719fde330 100644
--- a/guix/import/pypi.scm
+++ b/guix/import/pypi.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2015-2017, 2019-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015-2017, 2019-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -52,7 +52,8 @@
#:select ((package-name->name+version
. hyphen-package-name->name+version)
find-files
- invoke))
+ invoke
+ call-with-temporary-output-file))
#:use-module (guix import utils)
#:use-module (guix import json)
#:use-module (json)
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 0cf52cdbde..09a01cf315 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -380,9 +380,10 @@ LENGTH characters."
(abbrevs '("Dr" "Mr" "Mrs"
"Ms" "Prof" "vs"
"e.g")))
- (if (or (any (cut string-suffix? <> pre) abbrevs)
- (char-upper-case?
- (string-ref pre (1- (string-length pre)))))
+ (if (and (> (string-length pre) 0)
+ (or (any (cut string-suffix? <> pre) abbrevs)
+ (char-upper-case?
+ (string-ref pre (1- (string-length pre))))))
". "
". ")))
'post)
diff --git a/guix/nar.scm b/guix/nar.scm
index a817b56007..c7842399dc 100644
--- a/guix/nar.scm
+++ b/guix/nar.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2016, 2018-2020, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -19,7 +19,7 @@
(define-module (guix nar)
#:use-module (guix serialization)
- #:use-module (guix build syscalls)
+ #:autoload (guix build syscalls) (lock-file unlock-file)
#:use-module ((guix build utils)
#:select (delete-file-recursively with-directory-excursion))
@@ -103,11 +103,11 @@ held."
(acquire-lock file)))))
(with-database %default-database-file db
- (unless (path-id db target)
+ (unless (valid-path-id db target)
(let ((lock (and lock?
(acquire-lock (string-append target ".lock")))))
- (unless (path-id db target)
+ (unless (valid-path-id db target)
;; If FILE already exists, delete it (it's invalid anyway.)
(when (file-exists? target)
(delete-file-recursively target))
diff --git a/guix/packages.scm b/guix/packages.scm
index 930b1a3b0e..bd72b284b1 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
@@ -27,8 +27,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix packages)
- #:use-module ((guix build utils) #:select (compressor tarball?
- strip-store-file-name))
+ #:autoload (guix build utils) (compressor tarball? strip-store-file-name)
#:use-module (guix utils)
#:use-module (guix records)
#:use-module (guix store)
diff --git a/guix/platforms/xtensa.scm b/guix/platforms/xtensa.scm
new file mode 100644
index 0000000000..304e23ab1a
--- /dev/null
+++ b/guix/platforms/xtensa.scm
@@ -0,0 +1,28 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Foundation Devices, Inc. <hello@foundationdevices.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 (guix platforms xtensa)
+ #:use-module (guix platform)
+ #:use-module (guix records)
+ #:export (xtensa-ath9k-elf))
+
+(define xtensa-ath9k-elf
+ (platform
+ (target "xtensa-ath9k-elf")
+ (system #f)
+ (glibc-dynamic-linker #f)))
diff --git a/guix/scripts.scm b/guix/scripts.scm
index 5d11ce7fe9..c4849816ea 100644
--- a/guix/scripts.scm
+++ b/guix/scripts.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019, 2020, 2021, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2015, 2017-2021, 2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Deck Pickard <deck.r.pickard@gmail.com>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -29,7 +29,10 @@
#:use-module (guix packages)
#:use-module (guix derivations)
#:autoload (guix describe) (current-profile-date)
- #:use-module (guix build syscalls)
+ #:autoload (guix build syscalls) (statfs
+ file-system-block-size
+ file-system-blocks-available
+ file-system-block-count)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-37)
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 05f022a92e..da4859eeaa 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
@@ -45,7 +45,7 @@
#:use-module (guix platform)
#:use-module ((guix status) #:select (with-status-verbosity))
#:use-module ((guix progress) #:select (current-terminal-columns))
- #:use-module ((guix build syscalls) #:select (terminal-columns))
+ #:autoload (guix build syscalls) (terminal-columns)
#:use-module (guix transformations)
#:export (log-url
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index 449ab4b252..70ae84e9f6 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019, 2020, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2019, 2020, 2021, 2023, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
@@ -37,7 +37,7 @@
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:autoload (ice-9 pretty-print) (pretty-print)
- #:use-module (web uri)
+ #:autoload (web uri) (string->uri uri-host)
#:export (display-profile-content
channel-commit-hyperlink
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index 137e3b5fe3..93e9d3759c 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -213,9 +213,6 @@ private key from '~a': ~a")
When MAX-SILENT-TIME is true, it must be a positive integer denoting the
number of seconds after which the connection times out."
(let ((private (private-key-from-file* (build-machine-private-key machine)))
- (public (public-key-from-file
- (string-append (build-machine-private-key machine)
- ".pub")))
(session (make-session #:user (build-machine-user machine)
#:host (build-machine-name machine)
#:port (build-machine-port machine)
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 3e45c34895..fe4df042d7 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2017-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2017-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
@@ -1066,10 +1066,11 @@ please email '~a'~%")
#:optional
(output* "out")
(compiler (c-compiler))
- #:key proot?)
+ #:key proot? (fakechroot? proot?))
"Return the OUTPUT of PACKAGE with its binaries wrapped such that they are
relocatable. When PROOT? is true, include PRoot in the result and use it as a
-last resort for relocation."
+last resort for relocation. When FAKECHROOT? is true, include
+libfakechroot.so and related ld.so machinery as a fallback."
(define runner
(local-file (search-auxiliary-file "run-in-namespace.c")))
@@ -1161,43 +1162,44 @@ last resort for relocation."
(define (elf-loader-compile-flags program)
;; Return the cpp flags defining macros for the ld.so/fakechroot
;; wrapper of PROGRAM.
-
- ;; TODO: Handle scripts by wrapping their interpreter.
- (if (elf-file? program)
- (let* ((bv (call-with-input-file program
- get-bytevector-all))
- (elf (parse-elf bv))
- (interp (elf-interpreter elf))
- (gconv (and interp
- (string-append (dirname interp)
- "/gconv"))))
- (if interp
- (list (string-append "-DPROGRAM_INTERPRETER=\""
- interp "\"")
- (string-append "-DFAKECHROOT_LIBRARY=\""
- #$(fakechroot-library) "\"")
-
- (string-append "-DLOADER_AUDIT_MODULE=\""
- #$(audit-module) "\"")
-
- ;; XXX: Normally (runpath #$(audit-module)) is
- ;; enough. However, to work around
- ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=26634>
- ;; (glibc <= 2.32), pass the whole search path of
- ;; PROGRAM, which presumably is a superset of that
- ;; of the audit module.
- (string-append "-DLOADER_AUDIT_RUNPATH={ "
- (string-join
- (map object->string
- (runpath program))
- ", " 'suffix)
- "NULL }")
- (if gconv
- (string-append "-DGCONV_DIRECTORY=\""
- gconv "\"")
- "-UGCONV_DIRECTORY"))
- '()))
- '()))
+ #$(if fakechroot?
+ ;; TODO: Handle scripts by wrapping their interpreter.
+ #~(if (elf-file? program)
+ (let* ((bv (call-with-input-file program
+ get-bytevector-all))
+ (elf (parse-elf bv))
+ (interp (elf-interpreter elf))
+ (gconv (and interp
+ (string-append (dirname interp)
+ "/gconv"))))
+ (if interp
+ (list (string-append "-DPROGRAM_INTERPRETER=\""
+ interp "\"")
+ (string-append "-DFAKECHROOT_LIBRARY=\""
+ #$(fakechroot-library) "\"")
+
+ (string-append "-DLOADER_AUDIT_MODULE=\""
+ #$(audit-module) "\"")
+
+ ;; XXX: Normally (runpath #$(audit-module)) is
+ ;; enough. However, to work around
+ ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=26634>
+ ;; (glibc <= 2.32), pass the whole search path of
+ ;; PROGRAM, which presumably is a superset of that
+ ;; of the audit module.
+ (string-append "-DLOADER_AUDIT_RUNPATH={ "
+ (string-join
+ (map object->string
+ (runpath program))
+ ", " 'suffix)
+ "NULL }")
+ (if gconv
+ (string-append "-DGCONV_DIRECTORY=\""
+ gconv "\"")
+ "-UGCONV_DIRECTORY"))
+ '()))
+ '())
+ #~'()))
(define (build-wrapper program)
;; Build a user-namespace wrapper for PROGRAM.
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index 4457be1fce..a000c559a7 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2020 by Amar M. Singh <nly@disroot.org>
-;;; Copyright © 2015-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021, 2022 Mathieu Othacehe <othacehe@gnu.org>
@@ -869,12 +869,23 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")."
(values)
(apply throw args)))))
-(define-syntax-rule (swallow-zlib-error exp ...)
- "Swallow 'zlib-error' exceptions raised by EXP..."
- (catch 'zlib-error
+(define exception-with-kind-and-args?
+ (exception-predicate &exception-with-kind-and-args))
+
+(define-syntax-rule (swallow-compression-error exp ...)
+ "Swallow 'zlib-error', 'zstd-error', and 'lzlib-error' exceptions raised by
+EXP..."
+ (with-exception-handler (lambda (exception)
+ (if (and (exception-with-kind-and-args? exception)
+ (memq (exception-kind exception)
+ '(zlib-error
+ zstd-error
+ lzlib-error)))
+ #f
+ (raise-exception exception)))
(lambda ()
exp ...)
- (const #f)))
+ #:unwind? #t))
(define (nar-compressed-port port compression)
"Return a port on which to write the body of the response of a /nar request,
@@ -972,10 +983,10 @@ blocking."
;; the only way to avoid building the whole nar in memory, which
;; could quickly become a real problem. As a bonus, we even do
;; sendfile(2) directly from the store files to the socket.
- (swallow-zlib-error
+ (swallow-compression-error
(swallow-EPIPE
(write-file (utf8->string body) port)))
- (swallow-zlib-error
+ (swallow-compression-error
(close-port port)
(unless keep-alive?
(close-port client)))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index bf3d2f9044..2260bcf985 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -35,9 +35,9 @@
#:use-module (guix store)
#:autoload (guix base16) (bytevector->base16-string)
#:autoload (guix store database)
- (sqlite-register store-database-file call-with-database)
+ (register-valid-path store-database-file call-with-database)
#:autoload (guix build store-copy) (copy-store-item)
- #:use-module (guix describe)
+ #:autoload (guix describe) (current-profile)
#:use-module (guix gexp)
#:use-module (guix derivations)
#:use-module (guix diagnostics)
@@ -47,7 +47,10 @@
#:use-module (guix records)
#:use-module (guix profiles)
#:use-module (guix scripts)
- #:use-module (guix channels)
+ #:autoload (guix channels) (channel-name
+ channel-url
+ channel-branch
+ channel-commit)
#:use-module (guix scripts build)
#:autoload (guix scripts package) (delete-generations
delete-matching-generations
@@ -57,7 +60,8 @@
graph-backend-name lookup-backend)
#:use-module (guix scripts system reconfigure)
#:use-module (guix build utils)
- #:use-module (guix progress)
+ #:autoload (guix progress) (progress-reporter/bar
+ call-with-progress-reporter)
#:use-module ((guix docker) #:select (%docker-image-max-layers))
#:use-module (gnu build image)
#:use-module (gnu build install)
@@ -158,14 +162,15 @@ given INFO, a <path-info> record."
(copy-store-item item target
#:deduplicate? #t)
- (sqlite-register db
- #:path item
- #:references (path-info-references info)
- #:deriver (path-info-deriver info)
- #:hash (string-append
- "sha256:"
- (bytevector->base16-string (path-info-hash info)))
- #:nar-size (path-info-nar-size info))))
+ (register-valid-path db
+ #:path item
+ #:references (path-info-references info)
+ #:deriver (path-info-deriver info)
+ #:hash (string-append
+ "sha256:"
+ (bytevector->base16-string
+ (path-info-hash info)))
+ #:nar-size (path-info-nar-size info))))
(define* (copy-closure item target
#:key (log-port (current-error-port)))
diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm
index 9418060158..604ba08fee 100644
--- a/guix/scripts/system/reconfigure.scm
+++ b/guix/scripts/system/reconfigure.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -106,7 +106,7 @@ atomically, and run OS's activation script."
(generation (generation-file-name profile number)))
(switch-symlinks generation #$os)
(switch-symlinks profile generation)
- (setenv "GUIX_NEW_SYSTEM" #$os)
+ (setenv "GUIX_NEW_SYSTEM" generation)
(primitive-load #$(operating-system-activation-script os))))))))
(define* (switch-to-system eval os #:optional profile)
diff --git a/guix/store.scm b/guix/store.scm
index 1229198b09..a238cb627a 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
@@ -29,7 +29,7 @@
#:use-module (guix records)
#:use-module (guix base16)
#:use-module (guix base32)
- #:use-module (gcrypt hash)
+ #:autoload (gcrypt hash) (sha256)
#:use-module (guix profiling)
#:autoload (guix build syscalls) (terminal-columns)
#:autoload (guix build utils) (dump-port)
@@ -49,7 +49,12 @@
#:use-module (ice-9 popen)
#:autoload (ice-9 threads) (current-processor-count)
#:use-module (ice-9 format)
- #:use-module (web uri)
+ #:autoload (web uri) (uri?
+ string->uri
+ uri-scheme
+ uri-host
+ uri-port
+ uri-path)
#:export (%daemon-socket-uri
%gc-roots-directory
%default-substitute-urls
@@ -764,11 +769,8 @@ encoding conversion errors."
;; Default list of substituters. This is *not* the list baked in
;; 'guix-daemon', but it is used by 'guix-service-type' and and a couple of
;; clients ('guix build --log-file' uses it.)
- (map (if (false-if-exception (resolve-interface '(gnutls)))
- (cut string-append "https://" <>)
- (cut string-append "http://" <>))
- '("bordeaux.guix.gnu.org"
- "ci.guix.gnu.org")))
+ '("https://bordeaux.guix.gnu.org"
+ "https://ci.guix.gnu.org"))
(define (current-user-name)
"Return the name of the calling user."
diff --git a/guix/store/database.scm b/guix/store/database.scm
index 58d3871e85..a847f9d2f0 100644
--- a/guix/store/database.scm
+++ b/guix/store/database.scm
@@ -247,8 +247,9 @@ Every store item in REFERENCES must already be registered."
(time-second time))
;; Make sure NAR-SIZE is valid.
- (assert-integer "sqlite-register" positive? #:nar-size nar-size)
- (assert-integer "sqlite-register" (cut >= <> 0) #:time registration-time)
+ (assert-integer "register-valid-path" positive? #:nar-size nar-size)
+ (assert-integer "register-valid-path" (cut >= <> 0)
+ #:time registration-time)
(define id
(let ((existing-id (valid-path-id db path)))
diff --git a/guix/ui.scm b/guix/ui.scm
index 34ff210930..d82fa533cc 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -1473,23 +1473,9 @@ converted to a space; sequences of more than one line break are preserved."
;;;
(define %text-width
- ;; '*line-width*' was introduced in Guile 2.2.7/3.0.1. On older versions of
- ;; Guile, monkey-patch 'wrap*' below.
- (if (defined? '*line-width*)
- (let ((parameter (fluid->parameter *line-width*)))
- (parameter (terminal-columns))
- parameter)
- (make-parameter (terminal-columns))))
-
-(unless (defined? '*line-width*) ;Guile < 2.2.7
- (set! (@@ (texinfo plain-text) wrap*)
- ;; XXX: Monkey patch this private procedure to let 'package->recutils'
- ;; parameterize the fill of description field correctly.
- (lambda strings
- (let ((indent (fluid-ref (@@ (texinfo plain-text) *indent*))))
- (fill-string (string-concatenate strings)
- #:line-width (%text-width) #:initial-indent indent
- #:subsequent-indent indent)))))
+ ;; '*line-width*' was introduced in Guile 2.2.7/3.0.1. Keep this alias for
+ ;; backward-compatibility and for convenience.
+ (fluid->parameter *line-width*))
(define (texi->plain-text str)
"Return a plain-text representation of texinfo fragment STR."
@@ -1535,7 +1521,7 @@ followed by \"+ \", which makes for a valid multi-line field value in the
'()
str)))
-(define* (package->recutils p port #:optional (width (%text-width))
+(define* (package->recutils p port #:optional (width (terminal-columns))
#:key
(hyperlinks? (supports-hyperlinks? port))
(extra-fields '())
diff --git a/guix/utils.scm b/guix/utils.scm
index 29ad09d9f7..d8ce6ed886 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
@@ -47,11 +47,12 @@
#:use-module (rnrs io ports) ;need 'port-position' etc.
#:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!))
#:use-module (guix memoization)
- #:use-module ((guix build utils)
- #:select (dump-port mkdir-p delete-file-recursively
- call-with-temporary-output-file %xz-parallel-args))
- #:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync))
- #:use-module ((guix combinators) #:select (fold2))
+ #:autoload (guix build utils) (dump-port
+ mkdir-p
+ delete-file-recursively
+ %xz-parallel-args)
+ #:autoload (guix build syscalls) (mkdtemp! fdatasync)
+ #:autoload (guix combinators) (fold2)
#:use-module (guix diagnostics) ;<location>, &error-location, etc.
#:use-module (ice-9 format)
#:use-module ((ice-9 iconv) #:prefix iconv:)
@@ -76,9 +77,7 @@
&fix-hint
fix-hint?
- condition-fix-hint
-
- call-with-temporary-output-file)
+ condition-fix-hint)
#:export (strip-keyword-arguments
default-keyword-arguments
substitute-keyword-arguments
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)
diff --git a/tests/cpio.scm b/tests/cpio.scm
index 832101d1bb..35a704822b 100644
--- a/tests/cpio.scm
+++ b/tests/cpio.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,8 +19,8 @@
(define-module (test-cpio)
#:use-module (guix cpio)
#:use-module (guix tests)
- #:use-module ((guix build utils) #:select (which))
- #:use-module ((guix utils) #:select (call-with-temporary-output-file))
+ #:use-module ((guix build utils)
+ #:select (which call-with-temporary-output-file))
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (rnrs io ports)
diff --git a/tests/egg.scm b/tests/egg.scm
index a7d3378dd7..c74f954683 100644
--- a/tests/egg.scm
+++ b/tests/egg.scm
@@ -24,8 +24,9 @@
#:use-module (gcrypt hash)
#:use-module (guix tests)
#:use-module ((guix build syscalls) #:select (mkdtemp!))
- #:use-module ((guix build utils) #:select (delete-file-recursively mkdir-p which))
- #:use-module ((guix utils) #:select (call-with-temporary-output-file))
+ #:use-module ((guix build utils)
+ #:select (delete-file-recursively mkdir-p which
+ call-with-temporary-output-file))
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-64)
#:use-module (web uri)
diff --git a/tests/gexp.scm b/tests/gexp.scm
index 001786c13c..905009caee 100644
--- a/tests/gexp.scm
+++ b/tests/gexp.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021-2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
@@ -661,7 +661,8 @@
(mlet* %store-monad ((exp -> (gexp (display (ungexp %bootstrap-guile))))
(guile (package-file %bootstrap-guile))
(sexp (gexp->sexp exp (%current-system) #f))
- (drv (gexp->file "foo" exp))
+ (drv (gexp->file "foo" exp
+ #:guile %bootstrap-guile))
(out -> (derivation->output-path drv))
(done (built-derivations (list drv)))
(refs (references* out)))
@@ -672,7 +673,8 @@
(mlet* %store-monad ((exp -> #~#$(file-append %bootstrap-guile
"/bin/guile"))
(guile (package-file %bootstrap-guile))
- (drv (gexp->file "foo" exp))
+ (drv (gexp->file "foo" exp
+ #:guile %bootstrap-guile))
(out -> (derivation->output-path drv))
(done (built-derivations (list drv)))
(refs (references* out)))
@@ -685,7 +687,9 @@
#~(define foo 'bar)
#~(define guile #$%bootstrap-guile)))
(guile (package-file %bootstrap-guile))
- (drv (gexp->file "splice" exp #:splice? #t))
+ (drv (gexp->file "splice" exp
+ #:splice? #t
+ #:guile %bootstrap-guile))
(out -> (derivation->output-path drv))
(done (built-derivations (list drv)))
(refs (references* out)))
@@ -943,7 +947,8 @@
(let ((make-file (lambda ()
;; Use 'eval' to make sure we get an object that's not
;; 'eq?' nor 'equal?' due to the closures it embeds.
- (eval '(scheme-file "bar.scm" #~(define-module (bar)))
+ (eval '(scheme-file "bar.scm" #~(define-module (bar))
+ #:guile %bootstrap-guile)
(current-module)))))
(define result
((@@ (guix gexp) gexp-modules)
@@ -1035,7 +1040,8 @@ importing.* \\(guix config\\) from the host"
#:export (the-answer))
(define the-answer 42))
- #:splice? #t))
+ #:splice? #t
+ #:guile %bootstrap-guile))
(build -> (with-imported-modules `(((foo bar) => ,module)
(guix build utils))
#~(begin
@@ -1080,7 +1086,8 @@ importing.* \\(guix config\\) from the host"
(define (multiply x)
(* the-answer x)))
- #:splice? #t))
+ #:splice? #t
+ #:guile %bootstrap-guile))
(build -> (with-extensions (list extension)
(with-imported-modules `((guix build utils)
((foo) => ,module))
@@ -1432,7 +1439,8 @@ importing.* \\(guix config\\) from the host"
(test-assertm "scheme-file"
(let* ((text (plain-file "foo" "Hello, world!"))
- (scheme (scheme-file "bar" #~(list "foo" #$text))))
+ (scheme (scheme-file "bar" #~(list "foo" #$text)
+ #:guile %bootstrap-guile)))
(mlet* %store-monad ((drv (lower-object scheme))
(text (lower-object text))
(out -> (derivation->output-path drv)))
@@ -1719,7 +1727,9 @@ importing.* \\(guix config\\) from the host"
(test-assertm "gexp->file, cross-compilation"
(mlet* %store-monad ((target -> "aarch64-linux-gnu")
(exp -> (gexp (list (ungexp coreutils))))
- (xdrv (gexp->file "foo" exp #:target target))
+ (xdrv (gexp->file "foo" exp
+ #:target target
+ #:guile %bootstrap-guile))
(refs (references*
(derivation-file-name xdrv)))
(xcu (package->cross-derivation coreutils
@@ -1732,7 +1742,8 @@ importing.* \\(guix config\\) from the host"
(mlet* %store-monad ((target -> "aarch64-linux-gnu")
(_ (set-current-target target))
(exp -> (gexp (list (ungexp coreutils))))
- (xdrv (gexp->file "foo" exp))
+ (xdrv (gexp->file "foo" exp
+ #:guile %bootstrap-guile))
(refs (references*
(derivation-file-name xdrv)))
(xcu (package->cross-derivation coreutils
diff --git a/tests/opam.scm b/tests/opam.scm
index 832fea1d9b..f444ef302e 100644
--- a/tests/opam.scm
+++ b/tests/opam.scm
@@ -24,8 +24,9 @@
#:use-module (gcrypt hash)
#:use-module (guix tests)
#:use-module ((guix build syscalls) #:select (mkdtemp!))
- #:use-module ((guix build utils) #:select (delete-file-recursively mkdir-p which))
- #:use-module ((guix utils) #:select (call-with-temporary-output-file))
+ #:use-module ((guix build utils)
+ #:select (delete-file-recursively mkdir-p which
+ call-with-temporary-output-file))
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-64)
#:use-module (web uri)
diff --git a/tests/publish.scm b/tests/publish.scm
index efb5698bed..d5ec3c954f 100644
--- a/tests/publish.scm
+++ b/tests/publish.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2020 by Amar M. Singh <nly@disroot.org>
-;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,7 +25,8 @@
#:use-module (guix scripts publish)
#:use-module (guix tests)
#:use-module (guix config)
- #:use-module (guix utils)
+ #:use-module ((guix utils) #:select (call-with-temporary-directory))
+ #:use-module ((guix build utils) #:select (call-with-temporary-output-file))
#:use-module (gcrypt hash)
#:use-module (guix store)
#:use-module (guix derivations)
diff --git a/tests/store-database.scm b/tests/store-database.scm
index 67d464386d..177c776b6c 100644
--- a/tests/store-database.scm
+++ b/tests/store-database.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017-2018, 2020-2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,9 +21,9 @@
#:use-module (guix store)
#:use-module (guix store database)
#:use-module (guix build store-copy)
- #:use-module ((guix utils) #:select (call-with-temporary-output-file))
#:use-module ((guix build utils)
- #:select (mkdir-p delete-file-recursively))
+ #:select (mkdir-p delete-file-recursively
+ call-with-temporary-output-file))
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-64))
diff --git a/tests/utils.scm b/tests/utils.scm
index 52f3b58ede..462e43e2b1 100644
--- a/tests/utils.scm
+++ b/tests/utils.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
@@ -25,6 +25,7 @@
(define-module (test-utils)
#:use-module ((guix config) #:select (%gzip))
#:use-module (guix utils)
+ #:use-module ((guix build utils) #:select (call-with-temporary-output-file))
#:use-module ((guix store) #:select (%store-prefix store-path-package-name))
#:use-module ((guix search-paths) #:select (string-tokenize*))
#:use-module (srfi srfi-1)