From bca48fdef48150a3c4e96e3941feb1986ea3e631 Mon Sep 17 00:00:00 2001
From: Carlo Zancanaro <carlo@zancanaro.id.au>
Date: Sat, 2 Mar 2024 22:35:12 +1100
Subject: gnu: Extract prosody-module from existing prosody modules.

* gnu/packages/messaging.scm (prosody-module): New procedure.
(prosody-http-upload, prosody-smacks): Use it.

Change-Id: I55c69104460adbbd89c491b18f9f22681aefb92a
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
---
 gnu/packages/messaging.scm | 69 +++++++++++++++++++---------------------------
 1 file changed, 29 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 98c1c9bf67..35e11fb5dc 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -40,6 +40,7 @@
 ;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
 ;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
+;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1577,11 +1578,18 @@ system on which to rapidly develop added functionality, or prototype new
 protocols.")
     (license license:x11)))
 
-(define-public prosody-http-upload
+(define (prosody-module module-name)
   (let ((changeset "765735bb590b")
-        (revision "1"))
+        (revision "1")
+        (package-name (string-append
+                       "prosody-"
+                       (string-replace-substring
+                        (if (string-prefix? "mod_" module-name)
+                            (substring module-name 4)
+                            module-name)
+                        "_" "-"))))
     (package
-      (name "prosody-http-upload")
+      (name package-name)
       (version (string-append "0-" revision "." (string-take changeset 7)))
       (source (origin
                 (method hg-fetch)
@@ -1600,47 +1608,28 @@ protocols.")
            (use-modules (guix build utils))
            (let ((out (assoc-ref %outputs "out"))
                  (source (assoc-ref %build-inputs "source")))
-             (with-directory-excursion (in-vicinity source "mod_http_upload")
-               (install-file "mod_http_upload.lua" out))
+             (with-directory-excursion (in-vicinity source module-name)
+               (install-file (string-append module-name ".lua") out))
              #t))))
-      (home-page "https://modules.prosody.im/mod_http_upload.html")
-      (synopsis "XEP-0363: Allow clients to upload files over HTTP")
-      (description "This module implements XEP-0363: it allows clients to
-upload files over HTTP.")
+      (home-page #f)
+      (synopsis #f)
+      (description #f)
       (license (package-license prosody)))))
 
-(define-public prosody-smacks
-  (let ((changeset "67f1d1f22625")
-        (revision "1"))
-    (package
-      (name "prosody-smacks")
-      (version (string-append "0-" revision "." (string-take changeset 7)))
-      (source (origin
-                (method hg-fetch)
-                (uri (hg-reference
-                      (url "https://hg.prosody.im/prosody-modules/")
-                      (changeset changeset)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "020ngpax30fgarah98yvlj0ni8rcdwq60if03a9hqdw8mic0nxxs"))))
-      (build-system trivial-build-system)
-      (arguments
-       '(#:modules ((guix build utils))
-         #:builder
-         (begin
-           (use-modules (guix build utils))
-           (let ((out (assoc-ref %outputs "out"))
-                 (source (assoc-ref %build-inputs "source")))
-             (with-directory-excursion (in-vicinity source "mod_smacks")
-               (install-file "mod_smacks.lua" out))
-             #t))))
-      (home-page "https://modules.prosody.im/mod_smacks.html")
-      (synopsis "XEP-0198: Reliability and fast reconnects for XMPP")
-      (description "This module implements XEP-0198: when supported by both
+(define-public prosody-http-upload
+  (package
+    (inherit (prosody-module "mod_http_upload"))
+    (synopsis "XEP-0363: Allow clients to upload files over HTTP")
+    (description "This module implements XEP-0363: it allows clients to
+upload files over HTTP.")))
+
+(define-public prosody-smack
+  (package
+    (inherit (prosody-module "mod_smacks"))
+    (synopsis "XEP-0198: Reliability and fast reconnects for XMPP")
+    (description "This module implements XEP-0198: when supported by both
 the client and server, it can allow clients to resume a disconnected session,
-and prevent message loss.")
-      (license (package-license prosody)))))
+and prevent message loss.")))
 
 (define-public libtoxcore
   (let ((revision "2")
-- 
cgit v1.2.3


From cab71bdcfb3e54e04503a127c456793f1d0fc780 Mon Sep 17 00:00:00 2001
From: Carlo Zancanaro <carlo@zancanaro.id.au>
Date: Sat, 2 Mar 2024 22:35:13 +1100
Subject: gnu: Use copy-build-system for prosody modules.

* gnu/packages/messaging.scm (prosody-module): Use copy-build system.

Change-Id: I6de2827c63cb454d80b20f3af84fa610a75172f4
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
---
 gnu/packages/messaging.scm | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 35e11fb5dc..3dd1e66e81 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -144,6 +144,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system go)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
@@ -1600,18 +1601,11 @@ protocols.")
                 (sha256
                  (base32
                   "142wrcism70nf8ffahhd961cqg2pi1h7ic8adfs3zwh0j3pnf41f"))))
-      (build-system trivial-build-system)
+      (build-system copy-build-system)
       (arguments
-       '(#:modules ((guix build utils))
-         #:builder
-         (begin
-           (use-modules (guix build utils))
-           (let ((out (assoc-ref %outputs "out"))
-                 (source (assoc-ref %build-inputs "source")))
-             (with-directory-excursion (in-vicinity source module-name)
-               (install-file (string-append module-name ".lua") out))
-             #t))))
-      (home-page #f)
+       `(#:install-plan '((,(string-append module-name "/") "."))))
+      (home-page (string-append "https://modules.prosody.im/"
+                                module-name ".html"))
       (synopsis #f)
       (description #f)
       (license (package-license prosody)))))
-- 
cgit v1.2.3


From 1298319c9bb5b02bc7ff43c0c4693c4f5fbb4b68 Mon Sep 17 00:00:00 2001
From: Carlo Zancanaro <carlo@zancanaro.id.au>
Date: Sat, 2 Mar 2024 22:35:14 +1100
Subject: gnu: Update prosody modules to the newest revision.

* gnu/packages/messaging.scm (prosody-module): Update to fba64b043c52.

Change-Id: I012c2f661200cc59ae088e522ac233c09d77d2af
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
---
 gnu/packages/messaging.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 3dd1e66e81..2e665f47e3 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1580,8 +1580,8 @@ protocols.")
     (license license:x11)))
 
 (define (prosody-module module-name)
-  (let ((changeset "765735bb590b")
-        (revision "1")
+  (let ((changeset "fba64b043c52")
+        (revision "2")
         (package-name (string-append
                        "prosody-"
                        (string-replace-substring
@@ -1600,7 +1600,7 @@ protocols.")
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "142wrcism70nf8ffahhd961cqg2pi1h7ic8adfs3zwh0j3pnf41f"))))
+                  "1nvka8s3zqs97jqsknhp2q956rrdga1qaxa1y3i0h8zx3g9vgdch"))))
       (build-system copy-build-system)
       (arguments
        `(#:install-plan '((,(string-append module-name "/") "."))))
-- 
cgit v1.2.3


From efdaa885b083e85bd380ca914addfcf32d0834f7 Mon Sep 17 00:00:00 2001
From: Carlo Zancanaro <carlo@zancanaro.id.au>
Date: Sat, 2 Mar 2024 22:35:15 +1100
Subject: gnu: Add prosody-vcard-muc.

* gnu/packages/messaging.scm (prosody-vcard-muc): New variable.

Change-Id: I57eae8373369e7e954084803fd7b861ab85ce4ad
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
---
 gnu/packages/messaging.scm | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 2e665f47e3..aa9feffb97 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1625,6 +1625,13 @@ upload files over HTTP.")))
 the client and server, it can allow clients to resume a disconnected session,
 and prevent message loss.")))
 
+(define-public prosody-vcard-muc
+  (package
+    (inherit (prosody-module "mod_vcard_muc"))
+    (synopsis "Support for MUC vCards and avatars")
+    (description "This module adds the ability to set vCard for MUC rooms. One
+of the most common use cases is to define avatars for MUC rooms.")))
+
 (define-public libtoxcore
   (let ((revision "2")
         (commit "bf69b54f64003d160d759068f4816b2d9b2e1e21"))
-- 
cgit v1.2.3


From 60c9a339df930093064d37f91070915c25a7493b Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Wed, 21 Feb 2024 15:45:15 +0100
Subject: doc: Add “Getting Started with the System” section.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* doc/guix.texi (Getting Started with the System): New node.
(After System Installation): Refer to it.  Move note about ‘sudo guix
pull’ to the “Getting Started with the System”.
(Getting Started): Refer to it.  Move note about ‘guix system roll-back’
to “Getting Started with the System”.
(Features): Refer to it.
(Using the Configuration System): Adjust intro.  Add “Troubleshooting”
note that mentions ‘guix style -f’ for misplaced parens.
(Instantiating the System): Simplify and cross-reference “Getting
Started with the System”.

Change-Id: Ie74f598450e8059a4579a016e2aeca2edd7696a7
---
 doc/guix.texi | 320 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 244 insertions(+), 76 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index f6476e0d81..dca91dc0c9 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -358,6 +358,7 @@ Foreign Architectures
 
 System Configuration
 
+* 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.
@@ -2879,8 +2880,8 @@ unless your configuration specifies otherwise
 @node After System Installation
 @section After System Installation
 
-Success, you've now booted into Guix System!  From then on, you can update the
-system whenever you want by running, say:
+Success, you've now booted into Guix System!  You can upgrade the system
+whenever you want by running:
 
 @example
 guix pull
@@ -2888,24 +2889,10 @@ sudo guix system reconfigure /etc/config.scm
 @end example
 
 @noindent
-This builds a new system generation with the latest packages and services
-(@pxref{Invoking guix system}).  We recommend doing that regularly so that
-your system includes the latest security updates (@pxref{Security Updates}).
-
-@c See <https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00268.html>.
-@quotation Note
-@cindex sudo vs. @command{guix pull}
-Note that @command{sudo guix} runs your user's @command{guix} command and
-@emph{not} root's, because @command{sudo} leaves @env{PATH} unchanged.  To
-explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}.
-
-The difference matters here, because @command{guix pull} updates
-the @command{guix} command and package definitions only for the user it is run
-as.  This means that if you choose to use @command{guix system reconfigure} in
-root's login shell, you'll need to @command{guix pull} separately.
-@end quotation
+This builds a new system @dfn{generation} with the latest packages and
+services.
 
-Now, @pxref{Getting Started}, and
+Now, @pxref{Getting Started with the System}, and
 join us on @code{#guix} on the Libera Chat IRC network or on
 @email{guix-devel@@gnu.org} to share your experience!
 
@@ -3159,22 +3146,9 @@ sudo guix system reconfigure /etc/config.scm
 @end example
 
 Upon completion, the system runs the latest versions of its software
-packages.  When you eventually reboot, you'll notice a sub-menu in the
-bootloader that reads ``Old system generations'': it's what allows you
-to boot @emph{an older generation of your system}, should the latest
-generation be ``broken'' or otherwise unsatisfying.  Just like for
-packages, you can always @emph{roll back} to a previous generation
-@emph{of the whole system}:
-
-@example
-sudo guix system roll-back
-@end example
-
-There are many things you'll probably want to tweak on your system:
-adding new user accounts, adding new system services, fiddling with the
-configuration of those services, etc.  The system configuration is
-@emph{entirely} described in the @file{/etc/config.scm} file.
-@xref{Using the Configuration System}, to learn how to change it.
+packages.  Just like for packages, you can always @emph{roll back} to a
+previous generation @emph{of the whole system}.  @xref{Getting Started
+with the System}, to learn how to manage your system.
 
 Now you know enough to get started!
 
@@ -3283,7 +3257,7 @@ out to have a serious bug, users may roll back to the previous instance
 of their profile, which was known to work well.  Similarly, the global
 system configuration on Guix is subject to
 transactional upgrades and roll-back
-(@pxref{Using the Configuration System}).
+(@pxref{Getting Started with the System}).
 
 All packages in the package store may be @emph{garbage-collected}.
 Guix can determine which packages are still referenced by user
@@ -17101,6 +17075,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.
 * Using the Configuration System::  Customizing your GNU system.
 * operating-system Reference::  Detail of operating-system declarations.
 * File Systems::                Configuring file system mounts.
@@ -17121,14 +17096,222 @@ instance to support new system services.
 * Defining Services::           Adding new service definitions.
 @end menu
 
+@node Getting Started with the System
+@section Getting Started
+
+@cindex system configuration file
+@cindex configuration file, of the system
+You're reading this section probably because you have just installed
+Guix System (@pxref{System Installation}) and would like to know where
+to go from here.  If you're already familiar with GNU/Linux system
+administration, the way Guix System is configured is very different from
+what you're used to: you won't install a system service by running
+@command{guix install}, you won't configure services by modifying files
+under @file{/etc}, and you won't create user accounts by invoking
+@command{useradd}; instead, all these aspects are spelled out in a
+@dfn{system configuration file}.
+
+The first step with Guix System is thus to write the @dfn{system
+configuration file}; luckily, system installation already generated one
+for you and stored it under @file{/etc/config.scm}.
+
+@quotation Note
+You can store your system configuration file anywhere you like---it
+doesn't have to be at @file{/etc/config.scm}.  It's a good idea to keep
+it under version control, for instance in a
+@uref{https://git-scm.com/book/en/, Git repository}.
+@end quotation
+
+The @emph{entire} configuration of the system---user accounts, system
+services, timezone, locale settings---is declared in this file, which
+follows this template:
+
+@lisp
+(use-modules (gnu))
+(use-package-modules @dots{})
+(use-service-modules @dots{})
+
+(operating-system
+  (host-name @dots{})
+  (timezone @dots{})
+  (locale @dots{})
+  (bootloader @dots{})
+  (file-systems @dots{})
+  (users @dots{})
+  (packages @dots{})
+  (services @dots{}))
+@end lisp
+
+This configuration file is in fact a Scheme program; the first lines
+pull in modules providing variables you might need in the rest of the
+file---e.g., packages, services, etc.  The @code{operating-system} form
+declares the system configuration as a @dfn{record} with a number of
+@dfn{fields}.  @xref{Using the Configuration System}, to view complete
+examples and learn what to put in there.
+
+The second step, once you have this configuration file, is to test it.
+Of course, you can skip this step if you're feeling lucky---you choose!
+To do that, pass your configuration file to @command{guix system vm} (no
+need to be root, you can do that as a regular user):
+
+@example
+guix system vm /etc/config.scm
+@end example
+
+@noindent
+This command returns the name of a shell script that starts a virtual
+machine (VM) running the system @emph{as described in the configuration
+file}:
+
+@example
+/gnu/store/@dots{}-run-vm.sh
+@end example
+
+@noindent
+In this VM, you can log in as @code{root} with no password.  That's a
+good way to check that your configuration file is correct and that it
+gives the expected result, without touching your system.  @xref{Invoking
+guix system}, for more information.
+
+@quotation Note
+When using @command{guix system vm}, aspects tied to your hardware such
+as file systems and mapped devices are overridden because they cannot be
+meaningfully tested in the VM@.  Other aspects such as static network
+configuration (@pxref{Networking Setup,
+@code{static-networking-service-type}}) are @emph{not} overridden but
+they may not work inside the VM@.
+@end quotation
+
+@cindex system instantiation
+@cindex reconfiguring the system
+The third step, once you're happy with your configuration, is to
+@dfn{instantiate} it---make this configuration effective on your system.
+To do that, run:
+
+@example
+sudo guix system reconfigure /etc/config.scm
+@end example
+
+@cindex upgrading system services
+@cindex system services, upgrading
+@noindent
+This operation is @dfn{transactional}: either it succeeds and you end up
+with an upgraded system, or it fails and nothing has changed.  Note that
+it does @emph{not} restart system services that were already running.
+Thus, to upgrade those services, you have to reboot or to explicitly
+restart them; for example, to restart the secure shell (SSH) daemon, you
+would run:
+
+@example
+sudo herd restart sshd
+@end example
+
+@quotation Note
+System services are managed by the Shepherd (@pxref{Jump Start,,,
+shepherd, The GNU Shepherd Manual}).  The @code{herd} command lets you
+inspect, start, and stop services.  To view the status of services, run:
+
+@example
+sudo herd status
+@end example
+
+To view detailed information about a given service, add its name to the
+command:
+
+@example
+sudo herd status sshd
+@end example
+
+@xref{Services}, for more information.
+@end quotation
+
+@cindex provenance, of the system
+The system records its @dfn{provenance}---the configuration file and
+channels that were used to deploy it.  You can view it like so:
+
+@example
+guix system describe
+@end example
+
+Additionally, @command{guix system reconfigure} preserves previous
+system generations, which you can list:
+
+@example
+guix system list-generations
+@end example
+
+@noindent
+@cindex roll back, for the system
+Crucially, that means that you can always @emph{roll back} to an earlier
+generation should something go wrong!  When you eventually reboot,
+you'll notice a sub-menu in the bootloader that reads ``Old system
+generations'': it's what allows you to boot @emph{an older generation of
+your system}, should the latest generation be ``broken'' or otherwise
+unsatisfying.  You can also ``permanently'' roll back, like so:
+
+@example
+sudo guix system roll-back
+@end example
+
+@noindent
+Alternatively, you can use @command{guix system switch-generation} to
+switch to a specific generation.
+
+Once in a while, you'll want to delete old generations that you do not
+need anymore to allow @dfn{garbage collection} to free space
+(@pxref{Invoking guix gc}).  For example, to remove generations older
+than 4 months, run:
+
+@example
+sudo guix system delete-generations 4m
+@end example
+
+From there on, anytime you want to change something in the system
+configuration, be it adding a user account or changing parameters of a
+service, you will first update your configuration file and then run
+@command{guix system reconfigure} as shown above.
+@cindex upgrade, of the system
+Likewise, to @emph{upgrade} system software, you first fetch an
+up-to-date Guix and then reconfigure your system with that new Guix:
+
+@example
+guix pull
+sudo guix system reconfigure /etc/config.scm
+@end example
+
+@noindent
+We recommend doing that regularly so that your system includes the
+latest security updates (@pxref{Security Updates}).
+
+@c See <https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00268.html>.
+@quotation Note
+@cindex sudo vs. @command{guix pull}
+@command{sudo guix} runs your user's @command{guix} command and
+@emph{not} root's, because @command{sudo} leaves @env{PATH} unchanged.
+
+The difference matters here, because @command{guix pull} updates
+the @command{guix} command and package definitions only for the user it is run
+as.  This means that if you choose to use @command{guix system reconfigure} in
+root's login shell, you'll need to @command{guix pull} separately.
+@end quotation
+
+That's it!  If you're getting starting with Guix entirely,
+@pxref{Getting Started}.  The next sections dive in more detail into the
+crux of the matter: system configuration.
+
 @node Using the Configuration System
 @section Using the Configuration System
 
+The previous section showed the overall workflow you would follow when
+administering a Guix System machine (@pxref{Getting Started with the
+System}).  Let's now see in more detail what goes into the system
+configuration file.
+
 The operating system is configured by providing an
 @code{operating-system} declaration in a file that can then be passed to
-the @command{guix system} command (@pxref{Invoking guix system}).  A
-simple setup, with the default Linux-Libre
-kernel, initial RAM disk, and a couple of system services added to those
+the @command{guix system} command (@pxref{Invoking guix system}), as
+we've seen before.  A simple setup, with the default Linux-Libre kernel,
+initial RAM disk, and a couple of system services added to those
 provided by default looks like this:
 
 @findex operating-system
@@ -17136,8 +17319,8 @@ provided by default looks like this:
 @include os-config-bare-bones.texi
 @end lisp
 
-The configuration is declarative and hopefully mostly self-describing.
-It is actually code in the Scheme programming language; the whole
+The configuration is declarative.
+It is code in the Scheme programming language; the whole
 @code{(operating-system @dots{})} expression produces a @dfn{record}
 with a number of @dfn{fields}.
 Some of the fields defined
@@ -17146,16 +17329,21 @@ Others, such as @code{packages} and @code{services}, can be omitted, in
 which case they get a default value.  @xref{operating-system Reference},
 for details about all the available fields.
 
-Below we discuss the effect of some of the most important fields,
-and how to @dfn{instantiate} the operating system using
-@command{guix system}.
+Below we discuss the meaning of some of the most important fields.
 
-@quotation Do not panic
-@cindex Scheme programming language, getting started
-Intimidated by the Scheme language or curious about it?  The Cookbook
-has a short section to get started that explains the fundamentals, which
-you will find helpful when hacking your configuration.  @xref{A Scheme
-Crash Course,,, guix-cookbook, GNU Guix Cookbook}.
+@quotation Troubleshooting
+The configuration file is a Scheme program and you might get the syntax
+or semantics wrong as you get started.  Syntactic issues such as
+misplaced parentheses can often be identified by reformatting your file:
+
+@example
+guix style -f config.scm
+@end example
+
+The Cookbook has a short section to get started with the Scheme
+programming language that explains the fundamentals, which you will find
+helpful when hacking your configuration.  @xref{A Scheme Crash Course,,,
+guix-cookbook, GNU Guix Cookbook}.
 @end quotation
 
 @unnumberedsubsec Bootloader
@@ -17350,16 +17538,13 @@ Alternatively, the @code{modify-services} macro can be used:
 
 @unnumberedsubsec Instantiating the System
 
+@cindex system instantiation
+@cindex reconfiguring the system
 Assuming the @code{operating-system} declaration
-is stored in the @file{my-system-config.scm}
-file, the @command{guix system reconfigure my-system-config.scm} command
-instantiates that configuration, and makes it the default GRUB boot
-entry (@pxref{Invoking guix system}).
-
-@quotation Note
-We recommend that you keep this @file{my-system-config.scm} file safe
-and under version control to easily track changes to your configuration.
-@end quotation
+is stored in the @file{config.scm}
+file, the @command{sudo guix system reconfigure config.scm} command
+instantiates that configuration, and makes it the default boot
+entry.  @xref{Getting Started with the System}, for an overview.
 
 The normal way to change the system configuration is by updating this
 file and re-running @command{guix system reconfigure}.  One should never
@@ -17369,23 +17554,6 @@ fact, you must avoid that since that would not only void your warranty
 but also prevent you from rolling back to previous versions of your
 system, should you ever need to.
 
-@cindex roll-back, of the operating system
-Speaking of roll-back, each time you run @command{guix system
-reconfigure}, a new @dfn{generation} of the system is created---without
-modifying or deleting previous generations.  Old system generations get
-an entry in the bootloader boot menu, allowing you to boot them in case
-something went wrong with the latest generation.  Reassuring, no?  The
-@command{guix system list-generations} command lists the system
-generations available on disk.  It is also possible to roll back the
-system via the commands @command{guix system roll-back} and
-@command{guix system switch-generation}.
-
-Although the @command{guix system reconfigure} command will not modify
-previous generations, you must take care when the current generation is not
-the latest (e.g., after invoking @command{guix system roll-back}), since
-the operation might overwrite a later generation (@pxref{Invoking guix
-system}).
-
 @unnumberedsubsec The Programming Interface
 
 At the Scheme level, the bulk of an @code{operating-system} declaration
-- 
cgit v1.2.3


From edde7ee1bcb098663038014190e79578ed0d99db Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Wed, 21 Feb 2024 15:47:40 +0100
Subject: doc: Add “Inspecting Services” section.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* doc/guix.texi (Inspecting Services): New subsection.

Change-Id: I71378101de913a494e0d0e93cc76434c5a70b520
---
 doc/guix.texi | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index dca91dc0c9..87fe9f803c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -17536,6 +17536,61 @@ Alternatively, the @code{modify-services} macro can be used:
   (delete avahi-service-type))
 @end lisp
 
+@unnumberedsubsec Inspecting Services
+
+@cindex troubleshooting, for system services
+@cindex inspecting system services
+@cindex system services, inspecting
+As you work on your system configuration, you might wonder why some
+system service doesn't show up or why the system is not as you expected.
+There are several ways to inspect and troubleshoot problems.
+
+@cindex dependency graph, of Shepherd services
+First, you can inspect the dependency graph of Shepherd services like
+so:
+
+@example
+guix system shepherd-graph /etc/config.scm | \
+  guix shell xdot -- xdot -
+@end example
+
+This lets you visualize the Shepherd services as defined in
+@file{/etc/config.scm}.  Each box is a service as would be shown by
+@command{sudo herd status} on the running system, and each arrow denotes
+a dependency (in the sense that if service @var{A} depends on @var{B},
+then @var{B} must be started before @var{A}).
+
+@cindex extension graph, of services
+Not all ``services'' are Shepherd services though, since Guix System
+uses a broader definition of the term (@pxref{Services}).  To visualize
+system services and their relations at a higher level, run:
+
+@example
+guix system extension-graph /etc/config.scm | \
+  guix shell xdot -- xdot -
+@end example
+
+This lets you view the @dfn{service extension graph}: how services
+``extend'' each other, for instance by contributing to their
+configuration.  @xref{Service Composition}, to understand the meaning of
+this graph.
+
+Last, you may also find it useful to inspect your system configuration
+at the REPL (@pxref{Using Guix Interactively}).  Here is an example
+session:
+
+@example
+$ guix repl
+scheme@@(guix-user)> ,use (gnu)
+scheme@@(guix-user)> (define os (load "config.scm"))
+scheme@@(guix-user)> ,pp (map service-kind (operating-system-services os))
+$1 = (#<service-type localed cabba93>
+      @dots{})
+@end example
+
+@xref{Service Reference}, to learn about the Scheme interface to
+manipulate and inspect services.
+
 @unnumberedsubsec Instantiating the System
 
 @cindex system instantiation
-- 
cgit v1.2.3


From 080d2dbcb5a6f25644afe2e4c6c5fa91c2c93b42 Mon Sep 17 00:00:00 2001
From: Spencer King <spencer.king@geneoscopy.com>
Date: Tue, 27 Feb 2024 22:03:12 +0000
Subject: gnu: Add python-mord.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/machine-learning.scm (python-mord): New variable.

Change-Id: I1a495fece72a0b998a69cb518544ed8835b12a40
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/machine-learning.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 6e94e21f3e..e758132d31 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -26,6 +26,7 @@
 ;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2024 David Pflug <david@pflug.io>
 ;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
+;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1782,6 +1783,29 @@ scikit-learn inclusion criteria, for instance due to their novelty or lower
 citation number.")
       (license license:bsd-3))))
 
+(define-public python-mord
+  (package
+    (name "python-mord")
+    (version "0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mord" version))
+       (sha256
+        (base32 "1cvv9b9w69v0inq0zgcw0vmkiq3zn9q9r6clkynpzjik9rrh405n"))))
+    (build-system pyproject-build-system)
+    ;; v0.7 does not provide any test cases
+    ;; v0.6 relies on deprecated scikit-learn functionality
+    (arguments `(#:tests? #f))
+    (inputs (list python-numpy python-scipy python-scikit-learn))
+    (home-page "https://pypi.org/project/mord/")
+    (synopsis "Ordinal regression models for scikit-learn")
+    (description
+     "This package provides a collection of ordinal regression models for
+machine learning in Python.  They are intended to be used with scikit-learn
+and are compatible with its API.")
+    (license license:bsd-3)))
+
 (define-public python-thinc
   (package
     (name "python-thinc")
-- 
cgit v1.2.3


From 7fc91c141346caffb546d73bf7cacef169ec587f Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Fri, 23 Feb 2024 19:32:58 +0100
Subject: build-system/guile: Fix typo in documentation string.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* guix/build/guile-build-system.scm (install-documentation): Fix typo in
documentation string.

Change-Id: I8940591fcbf8222c8f8365dabbac0e8300cad84c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 guix/build/guile-build-system.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/build/guile-build-system.scm b/guix/build/guile-build-system.scm
index e7e7f2d0be..76bbb79259 100644
--- a/guix/build/guile-build-system.scm
+++ b/guix/build/guile-build-system.scm
@@ -216,7 +216,7 @@ installed; this is useful for files that are meant to be included."
                                 (documentation-file-regexp
                                  %documentation-file-regexp)
                                 #:allow-other-keys)
-  "Install files that mactch DOCUMENTATION-FILE-REGEXP."
+  "Install files that match DOCUMENTATION-FILE-REGEXP."
   (let* ((out (assoc-ref outputs "out"))
          (doc (string-append out "/share/doc/"
                              (strip-store-file-name out))))
-- 
cgit v1.2.3


From c3cd24b29ad0b781afebec3fb3269bd04ad9adec Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Fri, 23 Feb 2024 19:18:13 +0100
Subject: build-system/guile: Fix indentation.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The inner (let) was on the same level as the outer one, which was confusing.

* guix/build/guile-build-system.scm (build): Fix indentation.

Change-Id: I701b61747c270b185eac9377b066748baa2b3d20
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 guix/build/guile-build-system.scm | 42 +++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/guix/build/guile-build-system.scm b/guix/build/guile-build-system.scm
index 76bbb79259..421e358b20 100644
--- a/guix/build/guile-build-system.scm
+++ b/guix/build/guile-build-system.scm
@@ -184,32 +184,32 @@ installed; this is useful for files that are meant to be included."
                              (#f "")
                              (path (string-append ":" path)))))
 
-  (let ((source-files
+    (let ((source-files
            (with-directory-excursion source-directory
              (find-files "." scheme-file-regexp))))
-    (invoke-each
-     (filter-map (lambda (file)
-                   (and (or (not not-compiled-file-regexp)
-                            (not (string-match not-compiled-file-regexp
-                                               file)))
-                        (cons* guild
-                               "guild" "compile"
-                               "-L" source-directory
-                               "-o" (string-append go-dir
-                                                   (file-sans-extension file)
-                                                   ".go")
-                               (string-append source-directory "/" file)
-                               flags)))
-                 source-files)
-     #:max-processes (parallel-job-count)
-     #:report-progress report-build-progress)
-
-    (for-each
-     (lambda (file)
+      (invoke-each
+       (filter-map (lambda (file)
+                     (and (or (not not-compiled-file-regexp)
+                              (not (string-match not-compiled-file-regexp
+                                                 file)))
+                          (cons* guild
+                                 "guild" "compile"
+                                 "-L" source-directory
+                                 "-o" (string-append go-dir
+                                                     (file-sans-extension file)
+                                                     ".go")
+                                 (string-append source-directory "/" file)
+                                 flags)))
+                   source-files)
+       #:max-processes (parallel-job-count)
+       #:report-progress report-build-progress)
+
+      (for-each
+       (lambda (file)
          (install-file (string-append source-directory "/" file)
                        (string-append module-dir
                                       "/" (dirname file))))
-     source-files))
+       source-files))
     #t))
 
 (define* (install-documentation #:key outputs
-- 
cgit v1.2.3


From ef788ee2dc3d7de3bcf49ca1856ff06fc14b4541 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Fri, 23 Feb 2024 19:18:14 +0100
Subject: build-system/guile: Install .scm files first.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Until now the .go files were generated first, and only after that the .scm
files were installed into the target location.  That led to a lot of messages
about `source file ... newer than compiled' if the custom 'check phase tried
to load the compiled files.

Swapping the order of the actions resolves the issue allowing the tests to be
written without lot of noise in the build log.

For final artifacts it was not a problem, since daemon resets the timestamps.

* guix/build/guile-build-system.scm (build): Install .scm before producing
.go.

Change-Id: I3428d144fcbaa6c904ee662193c3bca82589e344
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 guix/build/guile-build-system.scm | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/guix/build/guile-build-system.scm b/guix/build/guile-build-system.scm
index 421e358b20..8927da224a 100644
--- a/guix/build/guile-build-system.scm
+++ b/guix/build/guile-build-system.scm
@@ -187,6 +187,12 @@ installed; this is useful for files that are meant to be included."
     (let ((source-files
            (with-directory-excursion source-directory
              (find-files "." scheme-file-regexp))))
+      (for-each
+       (lambda (file)
+         (install-file (string-append source-directory "/" file)
+                       (string-append module-dir
+                                      "/" (dirname file))))
+       source-files)
       (invoke-each
        (filter-map (lambda (file)
                      (and (or (not not-compiled-file-regexp)
@@ -202,14 +208,7 @@ installed; this is useful for files that are meant to be included."
                                  flags)))
                    source-files)
        #:max-processes (parallel-job-count)
-       #:report-progress report-build-progress)
-
-      (for-each
-       (lambda (file)
-         (install-file (string-append source-directory "/" file)
-                       (string-append module-dir
-                                      "/" (dirname file))))
-       source-files))
+       #:report-progress report-build-progress))
     #t))
 
 (define* (install-documentation #:key outputs
-- 
cgit v1.2.3


From 6e7484808fa2979bd686aae5b64a71849e9391b9 Mon Sep 17 00:00:00 2001
From: John Fremlin <john@fremlin.org>
Date: Tue, 13 Feb 2024 10:32:12 -0500
Subject: gnu: llama-cpp: Update to 03bf16.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/machine-learning.scm (llama-cpp): Update to
03bf161eb6dea6400ee49c6dc6b69bdcfa9fd3fc.
[arguments]: Adjust program names.

Change-Id: I9f5474606dd01be73fbc50813250991e9d248d85
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/machine-learning.scm | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index e758132d31..5c18a2e9d5 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -524,8 +524,8 @@ Performance is achieved by using the LLVM JIT compiler.")
   (deprecated-package "guile-aiscm-next" guile-aiscm))
 
 (define-public llama-cpp
-  (let ((commit "f31b5397143009d682db90fd2a6cde83f1ef00eb")
-        (revision "0"))
+  (let ((commit "03bf161eb6dea6400ee49c6dc6b69bdcfa9fd3fc")
+        (revision "1"))
     (package
       (name "llama-cpp")
       (version (git-version "0.0.0" revision commit))
@@ -534,10 +534,10 @@ Performance is achieved by using the LLVM JIT compiler.")
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/ggerganov/llama.cpp")
-               (commit (string-append "master-" (string-take commit 7)))))
+               (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0ys6n53n032zq1ll9f3vgxk8sw0qq7x3fi7awsyy13adzp3hn08p"))))
+          (base32 "1ag1jash84hasz10h0piw72a8ginm8kzvhihbzzljz96gq2kjm88"))))
       (build-system cmake-build-system)
       (arguments
        (list
@@ -564,8 +564,10 @@ Performance is achieved by using the LLVM JIT compiler.")
                                       (get-string-all input))))))
                       (chmod (string-append bin script) #o555)))
                   (mkdir-p bin)
-                  (make-script "convert-pth-to-ggml")
+                  (make-script "convert-hf-to-gguf")
+                  (make-script "convert-llama-ggml-to-gguf")
                   (make-script "convert-lora-to-ggml")
+                  (make-script "convert-persimmon-to-gguf")
                   (make-script "convert"))))
             (add-after 'install-python-scripts 'wrap-python-scripts
               (assoc-ref python:%standard-phases 'wrap))
-- 
cgit v1.2.3


From 47d5a96bd28b1e22b06bb5dd9fd0ed3be22188d8 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Sun, 25 Feb 2024 14:26:08 +0100
Subject: gnu: guile-irregex: Update to 0.9.11.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Since upstream now provides tests for guile, they are executed, both before
install (testing the internals) and after install (making sure the guile
module and everything works well).

Guile 2.0 for some reason cannot load "foo.scm" using (load-from-path "foo"),
so symlinks are created to work around that.

* gnu/packages/guile-xyz.scm (guile-irregex)[version]: Update to 0.9.11.
[arguments]: Convert to gexp.
<#:phases>{'move-files-around}: Copy files instead of moving.
{'check, 'check-installed}: New phases.
(guile2.0-irregex)[arguments]: Add 'create-symlinks phase.

Change-Id: Ib9d4e9c24475aa8e7fc1e70b868b690eaf6ad42e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/guile-xyz.scm | 78 +++++++++++++++++++++++++++++++++++-----------
 1 file changed, 60 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index b34472d5bd..9d683199ac 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2895,7 +2895,7 @@ See http://minikanren.org/ for more on miniKanren generally.")
 (define-public guile-irregex
   (package
     (name "guile-irregex")
-    (version "0.9.6")
+    (version "0.9.11")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2903,25 +2903,46 @@ See http://minikanren.org/ for more on miniKanren generally.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1ia3m7dp3lcxa048q0gqbiwwsyvn99baw6xkhb4bhhzn4k7bwyqq"))))
+                "026kzl96pmwbjqdc7kh8rdh8ng813sjvdsik0dag5acza20sjm19"))))
     (build-system guile-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'move-files-around
-                    (lambda _
-                      ;; Move the relevant source files to src/ and create the
-                      ;; rx/ directory to match the expected module hierarchy.
-                      (mkdir-p "src/rx/source")
-                      (rename-file "irregex-guile.scm"
-                                   "src/rx/irregex.scm")
-                      (rename-file "irregex.scm"
-                                   "src/rx/source/irregex.scm")
-                      ;; Not really reachable via guile's packaging system,
-                      ;; but nice to have around.
-                      (rename-file "irregex-utils.scm"
-                                   "src/rx/source/irregex-utils.scm")
-                      #t)))
-       #:source-directory "src"))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'move-files-around
+            (lambda _
+              ;; Copy the relevant source files to src/ and create the
+              ;; rx/ directory to match the expected module hierarchy.
+              (mkdir-p "src/rx/source")
+              (copy-file "irregex-guile.scm"
+                         "src/rx/irregex.scm")
+              (copy-file "irregex.scm"
+                         "src/rx/source/irregex.scm")
+
+              (mkdir-p "src/rx/irregex")
+              (copy-file "irregex-utils-guile.scm"
+                         "src/rx/irregex/utils.scm")
+              (copy-file "irregex-utils.scm"
+                         "src/rx/source/irregex-utils.scm")))
+          (add-after 'build 'check
+            (lambda _
+              (for-each (lambda (f)
+                          (invoke "guile" "--no-auto-compile" "-L" "." "-s" f))
+                        (find-files "tests" "^guile-.*\\.scm"))))
+          (add-after 'install 'check-installed
+            (lambda _
+              (define-values (scm go) (target-guile-scm+go #$output))
+              (for-each
+               (lambda (f)
+                 (substitute* f
+                   (("\\(load-from-path \"irregex\"\\)")
+                    "(use-modules (rx irregex))")
+                   (("\\(load-from-path \"irregex-utils\"\\)")
+                    "(use-modules (rx irregex utils))"))
+                 (invoke "guile" "-L" scm "-C" go "-L" "tests" f))
+               (delete "tests/guile-cset.scm" ; Tests non-exported API
+                       (find-files "tests" "^guile-.*\\.scm"))))))
+      #:source-directory "src"))
     (native-inputs
      (list guile-3.0))
     (home-page "https://synthcode.com/scheme/irregex")
@@ -2936,6 +2957,27 @@ inspired by the SCSH regular expression system.")
   (package
     (inherit guile-irregex)
     (name "guile2.0-irregex")
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-irregex)
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            ;; For some reason guile 2.0 cannot load foo.scm using
+            ;; (load-from-path "foo").  So create symlinks to work around it.
+            (add-before 'check 'create-symlinks
+              (lambda _
+                (use-modules (ice-9 regex))
+                (for-each
+                 (lambda (f)
+                   (symlink (regexp-substitute #f (string-match "/([^/]+)$" f)
+                                               1 ".scm")
+                            f))
+                 '("tests/guile/test-support"
+                   "tests/test-cset"
+                   "tests/test-irregex"
+                   "tests/test-irregex-from-gauche"
+                   "tests/test-irregex-pcre"
+                   "tests/test-irregex-scsh"
+                   "tests/test-irregex-utf8"))))))))
     (native-inputs (list guile-2.0))))
 
 (define-public guile2.2-irregex
-- 
cgit v1.2.3


From a8d214d3ccebe3cf3b419ea152fccdb09d149b5e Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Sun, 25 Feb 2024 16:55:42 +0100
Subject: gnu: cgit: Update to 8905003cba637e5b18069e625cd4f4c05ac30251.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/version-control.scm (cgit): Update to
8905003cba637e5b18069e625cd4f4c05ac30251.

Change-Id: I2bf1cdc16c6d8164e11b03ab26a048d6149a5e7c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/version-control.scm | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index cbdd1a89a2..ceee5878dc 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1131,8 +1131,8 @@ collaboration using typical untrusted file hosts or services.")
    (license license:gpl3+)))
 
 (define-public cgit
-  (let ((commit "793c420897e18eb3474c751d54cf4e0983f85433")
-        (rev "1"))
+  (let ((commit "8905003cba637e5b18069e625cd4f4c05ac30251")
+        (rev "2"))
     (package
       (name "cgit")
       ;; Update the ‘git-source’ input as well.
@@ -1144,7 +1144,7 @@ collaboration using typical untrusted file hosts or services.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1mhrm14wpqvralf9j33ih5ai6naiq3g2jg2z91gnw9dhh8f9ilwz"))
+                  "1ha8d2n59mv89vv4bqgg3dk82n1rqh8kd8y654vqx7v1v7m645qz"))
                 (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (arguments
@@ -1220,9 +1220,9 @@ collaboration using typical untrusted file hosts or services.")
              (method url-fetch)
              ;; cgit is tightly bound to git.  Use GIT_VER from the Makefile,
              ;; which may not match the current (package-version git).
-             (uri "mirror://kernel.org/software/scm/git/git-2.43.0.tar.xz")
+             (uri "mirror://kernel.org/software/scm/git/git-2.44.0.tar.xz")
              (sha256
-              (base32 "1v3nkfm3gw8wr7595qy86qla8xyjvi85fmly4lfph4frfcz60ijl"))))
+              (base32 "1qqxd3pdsca6m93lxxkz9s06xs1sq0ah02lhrr0a6pjvrf6p6n73"))))
          ("bash-minimal" ,bash-minimal)
          ("openssl" ,openssl)
          ("python" ,python)
-- 
cgit v1.2.3


From 61694dc1cd8888adab34841171fc098d9d206dfe Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Fri, 16 Feb 2024 22:14:26 +0100
Subject: gnu: Add passt.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/containers.scm (passt): New variable.

Change-Id: I2ebdd9d4255a89a86fb196568215b74bb61cb3a6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/containers.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
index 2b5acdc3bc..5b79e8a446 100644
--- a/gnu/packages/containers.scm
+++ b/gnu/packages/containers.scm
@@ -248,6 +248,46 @@ containers or various tools.")
 network namespaces.")
     (license license:gpl2+)))
 
+(define-public passt
+  (package
+    (name "passt")
+    (version "2023_12_30.f091893")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://passt.top/passt/snapshot/passt-" version
+                           ".tar.gz"))
+       (sha256
+        (base32 "1nyd4h93qlxn1r01ffijpsd7r7ny62phki5j58in8gz021jj4f3d"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:make-flags
+      #~(list (string-append "CC=" #$(cc-for-target))
+              "RLIMIT_STACK_VAL=1024"   ; ¯\_ (ツ)_/¯
+              (string-append "VERSION=" #$version)
+              (string-append "prefix=" #$output))
+      #:tests? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'configure))))
+    (home-page "https://passt.top")
+    (synopsis "Plug A Simple Socket Transport")
+    (description
+     "passt implements a thin layer between guest and host, that only
+implements what's strictly needed to pretend processes are running locally.
+The TCP adaptation doesn't keep per-connection packet buffers, and reflects
+observed sending windows and acknowledgements between the two sides.  This TCP
+adaptation is needed as passt runs without the CAP_NET_RAW capability: it
+can't create raw IP sockets on the pod, and therefore needs to map packets at
+Layer-2 to Layer-4 sockets offered by the host kernel.
+
+Also provides pasta, which similarly to slirp4netns, provides networking to
+containers by creating a tap interface available to processes in the
+namespace, and mapping network traffic outside the namespace using native
+Layer-4 sockets.")
+    (license (list license:gpl2+ license:bsd-3))))
+
 (define-public cni-plugins
   (package
     (name "cni-plugins")
-- 
cgit v1.2.3


From 6f5ea7ac1acb3d1c53baf7620cca66cc87fe5a73 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Fri, 16 Feb 2024 22:14:27 +0100
Subject: gnu: podman: Update to 4.9.3.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/containers.scm (podman): Update to 4.9.3.
* gnu/packages/patches/podman-program-lookup.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: If764e8456a697d16b76cd4ba1243cc5f633a6049
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/local.mk                                     |   1 +
 gnu/packages/containers.scm                      |  24 +++--
 gnu/packages/patches/podman-program-lookup.patch | 120 +++++++++++++++++++++++
 3 files changed, 137 insertions(+), 8 deletions(-)
 create mode 100644 gnu/packages/patches/podman-program-lookup.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f280b849df..cabd82f532 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1790,6 +1790,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/plasp-fix-normalization.patch \
   %D%/packages/patches/plasp-include-iostream.patch \
   %D%/packages/patches/pocketfft-cpp-prefer-preprocessor-if.patch			\
+  %D%/packages/patches/podman-program-lookup.patch 		\
   %D%/packages/patches/pokerth-boost.patch			\
   %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch		\
   %D%/packages/patches/procps-strtod-test.patch                 \
diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
index 5b79e8a446..aa270a25f3 100644
--- a/gnu/packages/containers.scm
+++ b/gnu/packages/containers.scm
@@ -342,7 +342,7 @@ configure network interfaces in Linux containers.")
 (define-public podman
   (package
     (name "podman")
-    (version "4.4.1")
+    (version "4.9.3")
     (source
      (origin
        (method git-fetch)
@@ -353,8 +353,11 @@ configure network interfaces in Linux containers.")
        ;; FIXME: Btrfs libraries not detected by these scripts.
        (snippet '(substitute* "Makefile"
                    ((".*hack/btrfs.*") "")))
+       (patches
+        (search-patches
+         "podman-program-lookup.patch"))
        (sha256
-        (base32 "0qbr6rbyig3c2hvdvmd94jjkg820hpdz6j7dgyv62dl6wfwvj5jj"))
+        (base32 "17g7n09ndxhpjr39s9qwxdcv08wavjj0g5nmnrvrkz2wgdqigl1x"))
        (file-name (git-file-name name version))))
 
     (build-system gnu-build-system)
@@ -381,10 +384,11 @@ configure network interfaces in Linux containers.")
                 (invoke "make" "remotesystem"))))
           (add-after 'unpack 'fix-hardcoded-paths
             (lambda _
-              (substitute* (find-files "libpod" "\\.go")
-                (("exec.LookPath[(][\"]slirp4netns[\"][)]")
-                 (string-append "exec.LookPath(\""
-                                (which "slirp4netns") "\")")))
+              (substitute* "vendor/github.com/containers/common/pkg/config/config.go"
+                (("@SLIRP4NETNS_DIR@")
+                 (string-append #$slirp4netns "/bin"))
+                (("@PASST_DIR@")
+                 (string-append #$passt "/bin")))
               (substitute* "hack/install_catatonit.sh"
                 (("CATATONIT_PATH=\"[^\"]+\"")
                  (string-append "CATATONIT_PATH=" (which "true"))))
@@ -414,11 +418,12 @@ configure network interfaces in Linux containers.")
            libassuan
            libseccomp
            libselinux
+           passt
            slirp4netns))
     (native-inputs
      (list bats
            git
-           go-1.19
+           go-1.21
            ; strace ; XXX debug
            pkg-config
            python))
@@ -427,7 +432,10 @@ configure network interfaces in Linux containers.")
     (description
      "Podman (the POD MANager) is a tool for managing containers and images,
 volumes mounted into those containers, and pods made from groups of
-containers.")
+containers.
+
+The @code{machine} subcommand is not supported due to gvproxy not being
+packaged.")
     (license license:asl2.0)))
 
 (define-public buildah
diff --git a/gnu/packages/patches/podman-program-lookup.patch b/gnu/packages/patches/podman-program-lookup.patch
new file mode 100644
index 0000000000..27a9421285
--- /dev/null
+++ b/gnu/packages/patches/podman-program-lookup.patch
@@ -0,0 +1,120 @@
+From 914aed3e04f71453fbdc30f4287e13ca3ce63a36 Mon Sep 17 00:00:00 2001
+From: Tomas Volf <~@wolfsden.cz>
+Date: Wed, 14 Feb 2024 20:02:03 +0100
+Subject: [PATCH] Modify search for binaries to fit Guix model
+
+Podman basically looked into the $PATH and into its libexec.  That does not fit
+Guix's model very well, to an additional option to specify additional
+directories during compilation was added.
+
+* pkg/rootless/rootless_linux.go
+(tryMappingTool): Also check /run/setuid-programs.
+* vendor/github.com/containers/common/pkg/config/config.go
+(extraGuixDir): New function.
+(FindHelperBinary): Use it.
+* vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go
+(guixLookupSetuidPath): New function.
+(Start): Use it.
+---
+ pkg/rootless/rootless_linux.go                |  3 +++
+ .../containers/common/pkg/config/config.go    | 23 +++++++++++++++++++
+ .../storage/pkg/unshare/unshare_linux.go      | 14 +++++++++--
+ 3 files changed, 38 insertions(+), 2 deletions(-)
+
+diff --git a/pkg/rootless/rootless_linux.go b/pkg/rootless/rootless_linux.go
+index d303c8b..0191d90 100644
+--- a/pkg/rootless/rootless_linux.go
++++ b/pkg/rootless/rootless_linux.go
+@@ -102,6 +102,9 @@ func tryMappingTool(uid bool, pid int, hostID int, mappings []idtools.IDMap) err
+ 		idtype = "setgid"
+ 	}
+ 	path, err := exec.LookPath(tool)
++	if err != nil {
++		path, err = exec.LookPath("/run/setuid-programs/" + tool)
++	}
+ 	if err != nil {
+ 		return fmt.Errorf("command required for rootless mode with multiple IDs: %w", err)
+ 	}
+diff --git a/vendor/github.com/containers/common/pkg/config/config.go b/vendor/github.com/containers/common/pkg/config/config.go
+index 75b917f..ed2f131 100644
+--- a/vendor/github.com/containers/common/pkg/config/config.go
++++ b/vendor/github.com/containers/common/pkg/config/config.go
+@@ -1102,6 +1102,24 @@ func findBindir() string {
+ 	return bindirCached
+ }
+ 
++func extraGuixDir(bin_name string) string {
++	if (bin_name == "slirp4netns") {
++		return "@SLIRP4NETNS_DIR@";
++	} else if (bin_name == "pasta") {
++		return "@PASST_DIR@";
++	} else if (strings.HasPrefix(bin_name, "qemu-")) {
++		return "@QEMU_DIR@";
++	} else if (bin_name == "gvproxy") {
++		return "@GVPROXY_DIR@";
++	} else if (bin_name == "netavark") {
++		return "@NETAVARK_DIR@";
++	} else if (bin_name == "aardvark-dns") {
++		return "@AARDVARK_DNS_DIR@";
++	} else {
++		return "";
++	}
++}
++
+ // FindHelperBinary will search the given binary name in the configured directories.
+ // If searchPATH is set to true it will also search in $PATH.
+ func (c *Config) FindHelperBinary(name string, searchPATH bool) (string, error) {
+@@ -1109,6 +1127,11 @@ func (c *Config) FindHelperBinary(name string, searchPATH bool) (string, error)
+ 	bindirPath := ""
+ 	bindirSearched := false
+ 
++	if dir := extraGuixDir(name); dir != "" {
++		/* If there is a Guix dir, skip the PATH search. */
++		dirList = append([]string{dir}, dirList...)
++	}
++
+ 	// If set, search this directory first. This is used in testing.
+ 	if dir, found := os.LookupEnv("CONTAINERS_HELPER_BINARY_DIR"); found {
+ 		dirList = append([]string{dir}, dirList...)
+diff --git a/vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go b/vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go
+index a8dc1ba..0b0d755 100644
+--- a/vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go
++++ b/vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go
+@@ -26,6 +26,16 @@ import (
+ 	"github.com/syndtr/gocapability/capability"
+ )
+ 
++func guixLookupSetuidPath(prog string) (string, error) {
++	path, err := exec.LookPath(prog)
++	if err != nil {
++		path, err = exec.LookPath("/run/setuid-programs/" + prog)
++	}
++	return path, err
++}
++
++
++
+ // Cmd wraps an exec.Cmd created by the reexec package in unshare(), and
+ // handles setting ID maps and other related settings by triggering
+ // initialization code in the child.
+@@ -237,7 +247,7 @@ func (c *Cmd) Start() error {
+ 			gidmapSet := false
+ 			// Set the GID map.
+ 			if c.UseNewgidmap {
+-				path, err := exec.LookPath("newgidmap")
++				path, err := guixLookupSetuidPath("newgidmap")
+ 				if err != nil {
+ 					return fmt.Errorf("finding newgidmap: %w", err)
+ 				}
+@@ -297,7 +307,7 @@ func (c *Cmd) Start() error {
+ 			uidmapSet := false
+ 			// Set the UID map.
+ 			if c.UseNewuidmap {
+-				path, err := exec.LookPath("newuidmap")
++				path, err := guixLookupSetuidPath("newuidmap")
+ 				if err != nil {
+ 					return fmt.Errorf("finding newuidmap: %w", err)
+ 				}
+-- 
+2.41.0
+
-- 
cgit v1.2.3


From b0fb2c526b9ce346f4115e78754e845ca4d82ce2 Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Sun, 3 Mar 2024 07:09:22 +0100
Subject: gnu: Fix variable name of prosody-smacks.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In commit bca48fdef48150a3c4e96e3941feb1986ea3e631, it was inadvertently
changed to “prosody-smack”.  The CLI is not affected.

* gnu/packages/messaging.scm (prosody-smack): Rename to…
(prosody-smacks): … this.

Fixes: “Another silly refactoring mistake” <https://bugs.gnu.org/69272#70>
Reported-by: Carlo Zancanaro <carlo@zancanaro.id.au>
---
 gnu/packages/messaging.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index aa9feffb97..03b7368ae0 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1617,7 +1617,7 @@ protocols.")
     (description "This module implements XEP-0363: it allows clients to
 upload files over HTTP.")))
 
-(define-public prosody-smack
+(define-public prosody-smacks
   (package
     (inherit (prosody-module "mod_smacks"))
     (synopsis "XEP-0198: Reliability and fast reconnects for XMPP")
-- 
cgit v1.2.3


From f5972b0762e47422ae42c68844d8cc7b5bd64a50 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Sat, 2 Mar 2024 22:20:54 +0200
Subject: gnu: girara: Update to 0.4.2.

* gnu/packages/gtk.scm (girara): Update to 0.4.2.

Change-Id: Ib7daa73b5802c98b653f4513f6111dcad786b65f
---
 gnu/packages/gtk.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 1a3bb56945..2dcfa0edc1 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017, 2020-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2020-2024 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>
@@ -2124,7 +2124,7 @@ and routines to assist in editing internationalized text.")
 (define-public girara
   (package
     (name "girara")
-    (version "0.3.7")
+    (version "0.4.2")
     (source
      (origin
        (method git-fetch)
@@ -2133,7 +2133,7 @@ and routines to assist in editing internationalized text.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0k93pi0lkf941vanvh1habm6n5wl1n63726j5kqxh34wdlv4mv4s"))))
+        (base32 "11fi7yy28rv6clj9gkvz58gd8zph95khq9jjia4c5skq03m67npz"))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("check" ,check)
                      ("gettext" ,gettext-minimal)
-- 
cgit v1.2.3


From bdecacafecaba982b58c7b5120bdcf2966fb517f Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Thu, 25 Jan 2024 21:39:50 +0100
Subject: gnu: Add python-cramjam.

* gnu/packages/python-compression.scm (python-cramjam): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/python-compression.scm | 80 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 6f249dd3af..691fbd3065 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020, 2022, 2023 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
-;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,12 +30,14 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix gexp)
+  #:use-module (guix build-system cargo)
   #: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 libffi)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crates-io)
   #:use-module (gnu packages check)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages pkg-config)
@@ -44,6 +46,7 @@
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages rust-apps)
   #:use-module (gnu packages sphinx))
 
 (define-public python-multivolumefile
@@ -73,6 +76,81 @@ file-object abstraction, making it possible to use multiple files as if they
 were a single file.")
     (license license:lgpl2.1+)))
 
+(define-public python-cramjam
+  (package
+    (name "python-cramjam")
+    (version "2.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cramjam" version))
+       (sha256
+        (base32 "1b69qlr0q7q3spa7zy55xc1dr5pjgsdavxx8ijhv2j60xqjbg7sp"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list
+      #:imported-modules `(,@%cargo-build-system-modules
+                           ,@%pyproject-build-system-modules)
+      #:modules '((guix build cargo-build-system)
+                  ((guix build pyproject-build-system)
+                   #:prefix py:)
+                  (guix build utils))
+      #:phases #~(modify-phases %standard-phases
+                   ;; We use Maturin to build the project.
+                   (replace 'build
+                     (assoc-ref py:%standard-phases
+                                'build))
+                   ;; Before being able to run Python tests, we need to
+                   ;; install the module and add it to PYTHONPATH.
+                   (delete 'install)
+                   (add-after 'build 'install
+                     (assoc-ref py:%standard-phases
+                                'install))
+                   (add-after 'install 'add-install-to-pythonpath
+                     (assoc-ref py:%standard-phases
+                                'add-install-to-pythonpath))
+                   ;; Finally run the tests. Only Python tests are provided.
+                   (replace 'check
+                     (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+                       (when tests?
+                         ;; Without the CI variable, tests are run in "local"
+                         ;; mode, which sets a deadline for hypothesis.  For a
+                         ;; deterministic build, we need to set CI.
+                         (setenv "CI" "1")
+                         (invoke "pytest" "-vv" "tests")))))
+      #:cargo-inputs `(("rust-brotli" ,rust-brotli-3)
+                       ("rust-bzip2" ,rust-bzip2-0.4)
+                       ("rust-flate2" ,rust-flate2-1)
+                       ("rust-lz4" ,rust-lz4-1)
+                       ("rust-pyo3" ,rust-pyo3-0.18)
+                       ("rust-snap" ,rust-snap-1)
+                       ("rust-zstd" ,rust-zstd-0.11))
+      #:install-source? #f))
+    (native-inputs (list maturin
+                         python-pytest
+                         python-pytest-xdist
+                         python-numpy
+                         python-hypothesis
+                         python-wrapper))
+    (home-page "https://github.com/milesgranger/cramjam")
+    (synopsis "Python bindings to compression algorithms in Rust")
+    (description
+     "This package provides thin Python bindings to compression and
+decomporession algorithms implemented in Rust.  This allows for using
+algorithms such as Snappy without additional system dependencies.  The
+following algorithms are available:
+
+@itemize
+@item Snappy
+@item Brotli
+@item Bzip2
+@item LZ4
+@item Gzip
+@item Deflate
+@item Zstd
+@end itemize")
+    (license license:expat)))
+
 (define-public python-pybcj
   (package
     (name "python-pybcj")
-- 
cgit v1.2.3


From f00f56514d90ebba5d9e08ec786c8118e437097c Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Thu, 25 Jan 2024 21:45:20 +0100
Subject: gnu: Add python-fastparquet.

* gnu/packages/databases.scm (python-fastparquet): New variable.

Co-authored-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Change-Id: Ib3c39167c0d82aab9b271fdba181daa311f692a8
---
 gnu/packages/databases.scm | 75 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 74 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index db4fe0b447..33e7327ebb 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -45,7 +45,7 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2021, 2024 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 ;;; Copyright © 2021 Pjotr Prins <pjotr.guix@thebird.nl>
@@ -62,6 +62,7 @@
 ;;; Copyright © 2023 Felix Gruber <felgru@posteo.ne
 ;;; Copyright © 2023 Munyoki Kilyungi <me@bonfacemunyoki.com>
 ;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -143,6 +144,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
+  #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
@@ -4984,6 +4986,77 @@ implementation, along with tools for interoperability with pandas, NumPy, and
 other traditional Python scientific computing packages.")
     (license license:asl2.0)))
 
+(define-public python-fastparquet
+  (package
+    (name "python-fastparquet")
+    (version "2024.2.0")
+    (source
+     (origin
+       ;; Fastparquet uses setuptools-scm to find the current version. This
+       ;; only works when we use the PyPI tarball, which does not contain
+       ;; tests. Instead, we use the git-fetch method and set the version via
+       ;; envar.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dask/fastparquet")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0f32dj1xvd11l0siznqd33dpjlhg9siylcjcfkcdlqfcy45jfj3v"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:test-flags
+      #~(list "-n" "auto")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'relax-requirements
+            (lambda _
+              (substitute* "setup.py"
+                ;; Remove dependencies on git.
+                (("^.*\"git\", \"status\".*$") "")
+                ;; Guix is only compatible with a single version of numpy
+                ;; at a time. We can safely remove this dependency.
+                (("'oldest-supported-numpy'") ""))))
+          (add-before 'build 'pretend-version
+            ;; The version string is usually derived via setuptools-scm, but
+            ;; without the git metadata available, the version string is set
+            ;; to '0.0.0'.
+            (lambda _
+              (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))
+          (add-before 'check 'build-cython-extensions
+            ;; Cython extensions need to be built for the check phase.
+            (lambda _
+              (invoke "python" "setup.py" "build_ext" "--inplace"))))))
+    (propagated-inputs
+     (list python-cramjam
+           python-fsspec
+           python-lzo
+           python-numpy
+           python-packaging
+           python-pandas))
+    (native-inputs
+     (list python-cython
+           python-pytest-runner
+           python-pytest-xdist
+           python-setuptools-scm))
+    (home-page "https://github.com/dask/fastparquet")
+    (synopsis "Python implementation of the Parquet file format")
+    (description
+     "@code{fastparquet} is a Python implementation of the Parquet file
+format.  @code{fastparquet} is used implicitly by @code{dask}, @code{pandas}
+and @code{intake-parquet}.  It supports the following compression algorithms:
+
+@itemize
+@item Gzip
+@item Snappy
+@item Brotli
+@item LZ4
+@item Zstd
+@item LZO (optionally)
+@end itemize")
+    (license license:asl2.0)))
+
 (define-public python-crate
   (package
     (name "python-crate")
-- 
cgit v1.2.3


From b13747e977be1c872299d6757c088ebe87a52dd0 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Sun, 3 Mar 2024 21:52:07 +0200
Subject: gnu: vim: Update to 9.1.0146.

* gnu/packages/vim.scm (vim): Update to 9.1.0146.
[arguments]: Adjust 'patch-absolute-paths phase to patch another /bin/sh
invocation.

Change-Id: I61e65988b96561bd10c9d35506e24c702cfb38d3
---
 gnu/packages/vim.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 7cacdd5f06..6b5eaabf8e 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -86,7 +86,7 @@
 (define-public vim
   (package
     (name "vim")
-    (version "9.1.0059")
+    (version "9.1.0146")
     (source (origin
              (method git-fetch)
              (uri (git-reference
@@ -95,7 +95,7 @@
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "146zhwhagdsbsh3h7f8h7izbzrwh3hgry4cx2lalq9s275qy3hzb"))))
+               "05lz8ai39p9ypk22n7qc7g21868m08pl12sn4028jshx5nxwy2zn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -116,7 +116,8 @@
                (("/bin/sh") (which "sh")))
              (substitute* "src/testdir/test_autocmd.vim"
                (("/bin/kill") (which "kill")))
-             (substitute* "src/if_cscope.c"
+             (substitute* '("runtime/syntax/sh.vim"
+                            "src/if_cscope.c")
                (("/bin/sh") (search-input-file inputs "/bin/sh")))))
          (add-before 'check 'set-environment-variables
            (lambda* (#:key inputs #:allow-other-keys)
-- 
cgit v1.2.3


From b1a74ee76ed33d866b7fd73bcb2c784949b84cee Mon Sep 17 00:00:00 2001
From: Andy Tai <atai@atai.org>
Date: Fri, 1 Mar 2024 22:15:20 -0800
Subject: gnu: units: Update to 2.23.

* gnu/packages/maths.scm (units): Update to 2.23.

Change-Id: Ia1b3df68c125631255cb3d28d2bf55d3148ee462
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/maths.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index e88a74636b..47070ded15 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -425,13 +425,13 @@ programming language.")
 (define-public units
   (package
    (name "units")
-   (version "2.22")
+   (version "2.23")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/units/units-" version
                                 ".tar.gz"))
             (sha256 (base32
-                     "0j2q2a9sgldqwcifsnb7qagsmp8fvj91vfh6v4k7gzi1fwhf24sx"))))
+                     "0w3kl58y7fq9paaq8ayn5gwylc4n8jbk6lf42kkcj9ar4i8v8myr"))))
    (build-system gnu-build-system)
    (inputs
     `(("readline" ,readline)
-- 
cgit v1.2.3


From 2446683c46a25bc8e9686b12dd6d81fb1cf4d112 Mon Sep 17 00:00:00 2001
From: Timotej Lazar <timotej.lazar@araneo.si>
Date: Sat, 2 Mar 2024 10:15:51 +0100
Subject: gnu: imv: Update to 4.5.0.

* gnu/packages/image-viewers.scm (imv): Update to 4.5.0.
[inputs]: Add libjxl.
[native-inputs]: Add cmocka.

Change-Id: I71d8dff608570634692aed93959a4cc5da485150
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/image-viewers.scm | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index 4769f136e0..dab7d9d1f2 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -767,7 +767,7 @@ displayed in a terminal.")
 (define-public imv
   (package
     (name "imv")
-    (version "4.4.0")
+    (version "4.5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -775,7 +775,7 @@ displayed in a terminal.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "1zlds43z17jrnsrfz3rf3sb3pa5gkmxaibq87509ikc7p1p09c9c"))
+                "0988rpgzyhb27sbhrh5f2zqccqirmq7xb0naqh9nbl8j1dg897b8"))
               (file-name (git-file-name name version))))
     (build-system meson-build-system)
     (arguments
@@ -792,13 +792,15 @@ displayed in a terminal.")
                        (("imv") (string-append bin "/imv")))))))))
     (native-inputs
      (list asciidoc
+           cmocka
            pkg-config))
     (inputs
      (list freeimage
            glu
            libheif
-           libjpeg-turbo
            libinih
+           libjpeg-turbo
+           libjxl
            libnsgif
            (librsvg-for-system)
            libtiff
-- 
cgit v1.2.3


From 603dcdfbce23a8ee730cbe8ffac1e8dc3b053bef Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:17:04 +0000
Subject: gnu: moarvm: Remove trailing boolean.

* gnu/packages/perl6.scm (moarvm)[source]: Reindent.
[snippet]: Remove trailing boolean.
[arguments]: Reindent.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 37 ++++++++++++++++++-------------------
 1 file changed, 18 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index dab9dd477b..3c3646587a 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -36,31 +36,30 @@
     (name "moarvm")
     (version "2019.03")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://moarvm.org/releases/MoarVM-"
-                            version ".tar.gz"))
-        (sha256
-         (base32
-          "017w1zvr6yl0cgjfc1b3ddlc6vjw9q8p7alw1vvsckw95190xc14"))
-        (modules '((guix build utils)))
-        (snippet
-         '(begin
-            ;(delete-file-recursively "3rdparty/dynasm") ; JIT
-            (delete-file-recursively "3rdparty/dyncall")
-            (delete-file-recursively "3rdparty/freebsd")
-            (delete-file-recursively "3rdparty/libatomicops")
-            (delete-file-recursively "3rdparty/libuv")
-            (delete-file-recursively "3rdparty/libtommath")
-            (delete-file-recursively "3rdparty/msinttypes")
-            #t))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://moarvm.org/releases/MoarVM-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "017w1zvr6yl0cgjfc1b3ddlc6vjw9q8p7alw1vvsckw95190xc14"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;(delete-file-recursively "3rdparty/dynasm") ; JIT
+           (delete-file-recursively "3rdparty/dyncall")
+           (delete-file-recursively "3rdparty/freebsd")
+           (delete-file-recursively "3rdparty/libatomicops")
+           (delete-file-recursively "3rdparty/libuv")
+           (delete-file-recursively "3rdparty/libtommath")
+           (delete-file-recursively "3rdparty/msinttypes")))))
     (build-system perl-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out        (assoc-ref outputs "out"))
+             (let ((out (assoc-ref outputs "out"))
                    (pkg-config (assoc-ref inputs "pkg-config")))
                (setenv "CFLAGS" "-fcommon")
                (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
-- 
cgit v1.2.3


From 3e1e1316107ecffaae56c8ed3229a66a7c13bd6f Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:17:10 +0000
Subject: gnu: nqp: Remove trailing booleans.

* gnu/packages/perl6.scm (nqp)[source]: Reindent.
[snippet]: Remove trailing boolean (and therefore the 'begin').
[arguments]: Remove trailing booleans. Reindent.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 32 ++++++++++++++------------------
 1 file changed, 14 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 3c3646587a..5f807a1743 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -100,17 +100,16 @@ with native libraries.
     (name "nqp")
     (version "2019.03")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://rakudo.perl6.org/downloads/nqp/nqp-"
-                            version ".tar.gz"))
-        (sha256
-         (base32
-          "183zhll13fx416s3hkg4bkvib77kyr857h0nydgrl643fpacxp83"))
-        (modules '((guix build utils)))
-        (snippet
-         '(begin
-            (delete-file-recursively "3rdparty") #t))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://rakudo.perl6.org/downloads/nqp/nqp-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "183zhll13fx416s3hkg4bkvib77kyr857h0nydgrl643fpacxp83"))
+       (modules '((guix build utils)))
+       (snippet
+        '(delete-file-recursively "3rdparty"))))
     (build-system perl-build-system)
     (arguments
      '(#:phases
@@ -125,21 +124,18 @@ with native libraries.
                             "tools/build/gen-moar-runner.pl"
                             "t/nqp/111-spawnprocasync.t"
                             "t/nqp/113-run-command.t")
-               (("/bin/sh") (which "sh")))
-             #t))
+               (("/bin/sh") (which "sh")))))
          (add-after 'unpack 'patch-source-date
            (lambda _
              (substitute* "tools/build/gen-version.pl"
-               (("gmtime") "gmtime(0)"))
-             #t))
+               (("gmtime") "gmtime(0)"))))
          (add-after 'unpack 'remove-failing-test
            ;; One subtest fails for unknown reasons
            (lambda _
-             (delete-file "t/nqp/019-file-ops.t")
-             #t))
+             (delete-file "t/nqp/019-file-ops.t")))
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out  (assoc-ref outputs "out"))
+             (let ((out (assoc-ref outputs "out"))
                    (moar (assoc-ref inputs "moarvm")))
                (invoke "perl" "Configure.pl"
                        "--backends=moar"
-- 
cgit v1.2.3


From d154fa0bae0a4e6ee1684dac42a04b1b36ce544b Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:17:17 +0000
Subject: gnu: rakudo: Remove trailing booleans.

* gnu/packages/perl6.scm (rakudo)[source]: Reindent.
[arguments]: Remove trailing booleans. Reindent.
[native-search-paths]: Reindent.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 37 +++++++++++++++++--------------------
 1 file changed, 17 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 5f807a1743..052d4e0914 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -161,13 +161,13 @@ regular expression engine for the virtual machine.")
     (name "rakudo")
     (version "2019.03.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://rakudo.perl6.org/downloads/rakudo/rakudo-"
-                            version ".tar.gz"))
-        (sha256
-         (base32
-          "1nllf69v8xr6v3kkj7pmryg11n5m3ajfkr7j72pvhrgnjy8lv3r1"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://rakudo.perl6.org/downloads/rakudo/rakudo-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1nllf69v8xr6v3kkj7pmryg11n5m3ajfkr7j72pvhrgnjy8lv3r1"))))
     (build-system perl-build-system)
     (arguments
      '(#:phases
@@ -175,16 +175,14 @@ regular expression engine for the virtual machine.")
          (add-after 'unpack 'patch-source-date
            (lambda _
              (substitute* "tools/build/gen-version.pl"
-               (("gmtime") "gmtime(0)"))
-             #t))
+               (("gmtime") "gmtime(0)"))))
          (add-after 'patch-source-shebangs 'patch-more-shebangs
            (lambda _
              (substitute* '("tools/build/create-js-runner.pl"
                             "tools/build/create-moar-runner.p6"
                             "tools/build/create-jvm-runner.pl"
                             "src/core/Proc.pm6")
-               (("/bin/sh") (which "sh")))
-             #t))
+               (("/bin/sh") (which "sh")))))
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -197,23 +195,22 @@ regular expression engine for the virtual machine.")
          ;; modules systemwide.  See: https://github.com/ugexe/zef/issues/117
          (add-after 'install 'install-dist-tool
            (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out  (assoc-ref outputs "out"))
+             (let* ((out (assoc-ref outputs "out"))
                     (dest (string-append out "/share/perl6/tools")))
                (install-file "tools/install-dist.p6" dest)
                (substitute* (string-append dest "/install-dist.p6")
                  (("/usr/bin/env perl6")
-                  (string-append out "/bin/perl6"))))
-             #t)))))
+                  (string-append out "/bin/perl6")))))))))
     (inputs
      (list moarvm nqp openssl))
     (home-page "https://rakudo.org/")
     (native-search-paths
-      (list (search-path-specification
-              (variable "PERL6LIB")
-              (separator ",")
-              (files '("share/perl6/lib"
-                       "share/perl6/site/lib"
-                       "share/perl6/vendor/lib")))))
+     (list (search-path-specification
+            (variable "PERL6LIB")
+            (separator ",")
+            (files '("share/perl6/lib"
+                     "share/perl6/site/lib"
+                     "share/perl6/vendor/lib")))))
     (synopsis "Perl 6 Compiler")
     (description "Rakudo Perl is a compiler that implements the Perl 6
 specification and runs on top of several virtual machines.")
-- 
cgit v1.2.3


From caee1d4e7a38496d6860315551f635ad39af371e Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:17:27 +0000
Subject: gnu: moarvm: Update to 2022.04.

* gnu/packages/perl6.scm (moarvm): Update to 2022.04.
[arguments]: Add 'fix-build' phase.
[propagated-inputs]: Use latest libtommath. Move below native-inputs.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 052d4e0914..35652cda17 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -34,15 +34,14 @@
 (define-public moarvm
   (package
     (name "moarvm")
-    (version "2019.03")
+    (version "2022.04")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://moarvm.org/releases/MoarVM-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "017w1zvr6yl0cgjfc1b3ddlc6vjw9q8p7alw1vvsckw95190xc14"))
+        (base32 "0128fxqaz7cwjf6amaz2cgd7xl52zvi5fr7bwnj229snll5za1mf"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -57,6 +56,10 @@
     (arguments
      '(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build
+           (lambda _
+             (substitute* "build/Makefile.in"
+               (("^ +3rdparty/freebsd/.*") ""))))
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -71,11 +74,11 @@
                        "--has-libffi"
                        "--has-libuv")))))))
     (home-page "https://moarvm.org/")
-    ;; These should be inputs but moar.h can't find them when building rakudo
-    (propagated-inputs
-     (list libatomic-ops libffi libtommath-1.0 libuv))
     (native-inputs
      (list pkg-config))
+    ;; These should be inputs but moar.h can't find them when building Rakudo.
+    (propagated-inputs
+     (list libatomic-ops libffi libtommath libuv))
     (synopsis "VM for NQP And Rakudo Perl 6")
     (description
      "Short for \"Metamodel On A Runtime\", MoarVM is a modern virtual machine
-- 
cgit v1.2.3


From 89d603da19c19a77dab11558a6fdb7a19f543749 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:17:35 +0000
Subject: gnu: Add nqp-configure.

* gnu/packages/perl6.scm (nqp-configure): New variable.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 35652cda17..b510a584f2 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -98,6 +98,60 @@ with native libraries.
 @end itemize")
     (license license:artistic2.0)))
 
+(define-public nqp-configure
+  (let ((commit "9b98931e0bfb8c4aac61590edf5074e63aa8ea4b"))
+    (package
+      (name "nqp-configure")
+      ;; NQP and Rakudo use the same version of nqp-configure.
+      ;; We may as well set nqp-configure's version to the same as theirs.
+      (version "2022.04")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Raku/nqp-configure")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1vc1q11kjb964jal9dhgf5vwp371a3rfw7gj987n33kzli7a10n0"))))
+      (build-system perl-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'create-makefile-and-manifest
+             (lambda _
+               (call-with-output-file "Makefile.PL"
+                 (lambda (port)
+                   (format port "
+use ExtUtils::MakeMaker;
+WriteMakefile(NAME => 'NQP::Config');\n")))
+               (call-with-output-file "MANIFEST"
+                 (lambda (port)
+                   (format port "
+LICENSE
+MANIFEST
+Makefile.PL
+README.md
+bin/make.nqp
+doc/Macros.md
+doc/NQP-Config.md
+lib/NQP/Config.pm
+lib/NQP/Config/Test.pm
+lib/NQP/Macros.pm
+t/10-config.t
+t/20-macros.t
+t/30-if-macro.t\n")))))
+           (add-after 'patch-source-shebangs 'patch-more-shebangs
+             (lambda _
+               (substitute* '("bin/make.nqp"
+                              "lib/NQP/Config.pm")
+                 (("/bin/sh") (which "sh"))))))))
+      (home-page "https://github.com/Raku/nqp-configure")
+      (synopsis "Configuration and build modules for NQP")
+      (description "This library provides support modules for NQP and Rakudo
+@file{Configure.pl} scripts.")
+      (license license:artistic2.0))))
+
 (define-public nqp
   (package
     (name "nqp")
-- 
cgit v1.2.3


From f3f39988b5da46ff7010179626f530471f9c7d5d Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:17:38 +0000
Subject: gnu: nqp: Update to 2022.04.

* gnu/packages/perl6.scm (nqp): Update to 2022.04.
[arguments]: Add 'remove-calls-to-git' and 'fix-paths' phases. Remove
obsolete files from 'patch-more-shebangs' phase and sort the
rest. Remove 'patch-source-date' and 'remove-failing-test' phases.
[native-inputs]: Add nqp-configure.
[home-page]: Update.
[description]: Replace mentions of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 56 +++++++++++++++++++++++++++-----------------------
 1 file changed, 30 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index b510a584f2..0e0c352892 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -155,15 +155,14 @@ t/30-if-macro.t\n")))))
 (define-public nqp
   (package
     (name "nqp")
-    (version "2019.03")
+    (version "2022.04")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://rakudo.perl6.org/downloads/nqp/nqp-"
-                           version ".tar.gz"))
+       (uri (string-append "https://github.com/Raku/nqp/releases/download/"
+                           version "/nqp-" version ".tar.gz"))
        (sha256
-        (base32
-         "183zhll13fx416s3hkg4bkvib77kyr857h0nydgrl643fpacxp83"))
+        (base32 "1777shxr8qw6m2492ckb0r301qdx5gls6kphz554dh6k4n74avam"))
        (modules '((guix build utils)))
        (snippet
         '(delete-file-recursively "3rdparty"))))
@@ -171,25 +170,28 @@ t/30-if-macro.t\n")))))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'remove-calls-to-git
+           (lambda _
+             (invoke "perl" "-ni" "-e"
+                     "print if not /^BEGIN {/ .. /^}/"
+                     "Configure.pl")))
+         (add-after 'remove-calls-to-git 'fix-paths
+           (lambda _
+             (substitute* "tools/build/gen-version.pl"
+               (("catfile\\(\\$libdir, 'MAST', \\$_\\)")
+                (string-append "catfile('"
+                               (assoc-ref %build-inputs "moarvm")
+                               "/share/nqp/lib"
+                               "', 'MAST', $_)")))))
          (add-after 'patch-source-shebangs 'patch-more-shebangs
            (lambda _
-             (substitute* '("tools/build/install-jvm-runner.pl.in"
+             (substitute* '("t/nqp/111-spawnprocasync.t"
+                            "t/nqp/113-run-command.t"
                             "tools/build/gen-js-cross-runner.pl"
                             "tools/build/gen-js-runner.pl"
                             "tools/build/install-js-runner.pl"
-                            "tools/build/install-moar-runner.pl"
-                            "tools/build/gen-moar-runner.pl"
-                            "t/nqp/111-spawnprocasync.t"
-                            "t/nqp/113-run-command.t")
+                            "tools/build/install-jvm-runner.pl.in")
                (("/bin/sh") (which "sh")))))
-         (add-after 'unpack 'patch-source-date
-           (lambda _
-             (substitute* "tools/build/gen-version.pl"
-               (("gmtime") "gmtime(0)"))))
-         (add-after 'unpack 'remove-failing-test
-           ;; One subtest fails for unknown reasons
-           (lambda _
-             (delete-file "t/nqp/019-file-ops.t")))
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -198,18 +200,20 @@ t/30-if-macro.t\n")))))
                        "--backends=moar"
                        "--with-moar" (string-append moar "/bin/moar")
                        "--prefix" out)))))))
+    (native-inputs
+     (list nqp-configure))
     (inputs
      (list moarvm))
-    (home-page "https://github.com/perl6/nqp")
+    (home-page "https://github.com/Raku/nqp")
     (synopsis "Not Quite Perl")
-    (description "This is \"Not Quite Perl\" -- a lightweight Perl 6-like
-environment for virtual machines.  The key feature of NQP is that it's designed
-to be a very small environment (as compared with, say, perl6 or Rakudo) and is
-focused on being a high-level way to create compilers and libraries for virtual
-machines like MoarVM, the JVM, and others.
+    (description "This is \"Not Quite Perl\" -- a lightweight Raku-like
+environment for virtual machines.  The key feature of NQP is that it's
+designed to be a very small environment (as compared with, say, Rakudo) and is
+focused on being a high-level way to create compilers and libraries for
+virtual machines like MoarVM, the JVM, and others.
 
-Unlike a full-fledged implementation of Perl 6, NQP strives to have as small a
-runtime footprint as it can, while still providing a Perl 6 object model and
+Unlike a full-fledged implementation of Raku, NQP strives to have as small a
+runtime footprint as it can, while still providing a Raku object model and
 regular expression engine for the virtual machine.")
     (license license:artistic2.0)))
 
-- 
cgit v1.2.3


From 6a80ac450c835c146a2b5102d36e9af17a1d1d2d Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:17:42 +0000
Subject: gnu: rakudo: Update to 2022.04.

* gnu/packages/perl6.scm (rakudo): Update to 2022.04.
[source]: Add snippet to delete bundled 3rdparty directory.
[arguments]: Add 'remove-calls-to-git', 'fix-paths' and
'disable-failing-tests' phases. Remove 'patch-source-date' phase. Adjust
files in 'patch-more-shebangs' phase and sort them. Remove redundant
'./' from 'configure' phase. Replace Perl extensions and paths with Raku
equivalents in 'install-dist-tool' phase.
[native-inputs]: Add nqp-configure.
[synopsis, description]: Replace mentions of Perl with Raku.

* guix/build/rakudo-build-system.scm (install): Replace Perl extension
with Raku extension.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm             | 71 ++++++++++++++++++++++++++------------
 guix/build/rakudo-build-system.scm |  2 +-
 2 files changed, 50 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 0e0c352892..3dfdeec4f1 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls))
 
@@ -220,48 +222,73 @@ regular expression engine for the virtual machine.")
 (define-public rakudo
   (package
     (name "rakudo")
-    (version "2019.03.1")
+    (version "2022.04")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://rakudo.perl6.org/downloads/rakudo/rakudo-"
-                           version ".tar.gz"))
+       (uri (string-append "https://github.com/rakudo/rakudo/releases/download/"
+                           version "/rakudo-" version ".tar.gz"))
        (sha256
-        (base32
-         "1nllf69v8xr6v3kkj7pmryg11n5m3ajfkr7j72pvhrgnjy8lv3r1"))))
+        (base32 "0x0w5b8g5kna1mlvsli9dqmnwvqalrar3cgpixmyiyvyjb6ah4vy"))
+       (modules '((guix build utils)))
+       (snippet
+        '(delete-file-recursively "3rdparty"))))
     (build-system perl-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-source-date
+         (add-after 'unpack 'remove-calls-to-git
            (lambda _
-             (substitute* "tools/build/gen-version.pl"
-               (("gmtime") "gmtime(0)"))))
+             (invoke "perl" "-ni" "-e" "print if not /^BEGIN {/ .. /^}/"
+                     "Configure.pl")))
+         (add-after 'remove-calls-to-git 'fix-paths
+           (lambda _
+             (substitute* "tools/templates/Makefile-common-macros.in"
+               (("NQP_CONFIG_DIR = .*")
+                (string-append "NQP_CONFIG_DIR = "
+                               (assoc-ref %build-inputs "nqp-configure")
+                               "/lib/perl5/site_perl/"
+                               ,(package-version perl)
+                               "\n")))))
+         ;; These tests pass when run manually.
+         (add-after 'fix-paths 'disable-failing-tests
+           (lambda _
+             (substitute* "t/02-rakudo/repl.t"
+               (("^plan 47;\n") "plan 46;\n"))
+             (invoke "perl" "-ni" "-e"
+                     "printf if not /^    \\(temp %\\*ENV\\)/ .. /^    }/"
+                     "t/02-rakudo/repl.t")
+             (substitute* "t/09-moar/01-profilers.t"
+               (("^plan 12;\n") "plan 10;\n")
+               (("^ok \\$htmlpath\\.IO\\.f, .*") "")
+               (("^ok \\(try \\$htmlpath\\.IO\\.s .*") ""))))
          (add-after 'patch-source-shebangs 'patch-more-shebangs
            (lambda _
-             (substitute* '("tools/build/create-js-runner.pl"
-                            "tools/build/create-moar-runner.p6"
-                            "tools/build/create-jvm-runner.pl"
-                            "src/core/Proc.pm6")
+             (substitute* '("src/core.c/Proc.pm6"
+                            "t/spec/S29-os/system.t"
+                            "tools/build/create-js-runner.pl"
+                            "tools/build/create-jvm-runner.pl")
                (("/bin/sh") (which "sh")))))
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
                    (nqp (assoc-ref inputs "nqp")))
-               (invoke "perl" "./Configure.pl"
+               (invoke "perl" "Configure.pl"
                        "--backend=moar"
                        "--with-nqp" (string-append nqp "/bin/nqp")
                        "--prefix" out))))
-         ;; This is the recommended tool for distro maintainers to install perl6
+         ;; This is the recommended tool for distro maintainers to install Raku
          ;; modules systemwide.  See: https://github.com/ugexe/zef/issues/117
          (add-after 'install 'install-dist-tool
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (dest (string-append out "/share/perl6/tools")))
-               (install-file "tools/install-dist.p6" dest)
-               (substitute* (string-append dest "/install-dist.p6")
-                 (("/usr/bin/env perl6")
-                  (string-append out "/bin/perl6")))))))))
+               (install-file "tools/install-dist.raku" dest)
+               (substitute* (string-append dest "/install-dist.raku")
+                 (("/usr/bin/env raku")
+                  (string-append out "/bin/raku")))))))))
+    (native-inputs
+     (list nqp-configure))
     (inputs
      (list moarvm nqp openssl))
     (home-page "https://rakudo.org/")
@@ -272,9 +299,9 @@ regular expression engine for the virtual machine.")
             (files '("share/perl6/lib"
                      "share/perl6/site/lib"
                      "share/perl6/vendor/lib")))))
-    (synopsis "Perl 6 Compiler")
-    (description "Rakudo Perl is a compiler that implements the Perl 6
-specification and runs on top of several virtual machines.")
+    (synopsis "Raku Compiler")
+    (description "Rakudo is a compiler that implements the Raku specification
+and runs on top of several virtual machines.")
     (license license:artistic2.0)))
 
 (define-public perl6-grammar-debugger
diff --git a/guix/build/rakudo-build-system.scm b/guix/build/rakudo-build-system.scm
index 5cf1cc55bc..642cc570d1 100644
--- a/guix/build/rakudo-build-system.scm
+++ b/guix/build/rakudo-build-system.scm
@@ -59,7 +59,7 @@
           #t)
         (begin
           (let ((inst (string-append (assoc-ref inputs "rakudo")
-                                     "/share/perl6/tools/install-dist.p6")))
+                                     "/share/perl6/tools/install-dist.raku")))
             (setenv "RAKUDO_RERESOLVE_DEPENDENCIES" "0")
             (setenv "RAKUDO_MODULE_DEBUG" "1") ; be verbose while building
             (invoke inst (string-append "--to=" perl6) "--for=site"))))))
-- 
cgit v1.2.3


From 8dca56b4a1776e70e9880039528cdadee56d8526 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:17:52 +0000
Subject: gnu: perl6-tap-harness: Update to 0.3.5.

* gnu/packages/perl6.scm (perl6-tap-harness): Update to 0.3.5.
[source]: Update URL. Reindent.
[arguments]: Replace obsolete prove6 script with manual Raku invocation
in 'check' phase.
[home-page]: Update.
[synopsis]: Replace mention of Perl with Raku.

* gnu/packages/rakudo-build-system.scm (check): Replace obsolete prove6
script with manual Raku invocation.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm             | 25 ++++++++++++-------------
 guix/build/rakudo-build-system.scm |  6 +++++-
 2 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 3dfdeec4f1..d61868f8b2 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -680,17 +680,16 @@ with optional labels, or xy plots).")
 (define-public perl6-tap-harness
   (package
     (name "perl6-tap-harness")
-    (version "0.0.7")
+    (version "0.3.5")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/perl6/tap-harness6")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1lig8i0my3fgqvlay9532xslbf3iis2d7wz89gniwvwqffi2kh6r"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Raku/tap-harness6")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "162crdy8g6xhnry26pjma2panm0c79n26igmljg79al4bqj9lyc9"))))
     (build-system rakudo-build-system)
     (arguments
      '(#:with-zef? #f
@@ -699,9 +698,9 @@ with optional labels, or xy plots).")
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (invoke "perl6" "-Ilib" "bin/prove6" "-l" "t"))))))
-    (home-page "https://github.com/perl6/tap-harness6/")
-    (synopsis "TAP harness for perl6")
+             (apply invoke "raku" "-MTAP" "-Ilib" (find-files "t" "\\.t$")))))))
+    (home-page "https://github.com/Raku/tap-harness6")
+    (synopsis "TAP harness for Raku")
     (description "This module provides the @command{prove6} command which runs a
 TAP based test suite and prints a report.  The @command{prove6} command is a
 minimal wrapper around an instance of this module.")
diff --git a/guix/build/rakudo-build-system.scm b/guix/build/rakudo-build-system.scm
index 642cc570d1..8f9a3b11d8 100644
--- a/guix/build/rakudo-build-system.scm
+++ b/guix/build/rakudo-build-system.scm
@@ -36,7 +36,11 @@
 (define* (check #:key tests? inputs with-prove6? #:allow-other-keys)
   (if (and tests? (assoc-ref inputs "perl6-tap-harness"))
   ;(if (and tests? with-prove6?)
-      (invoke "prove6" "-I=lib" "t/")
+      (let ((test-files (find-files "t/" "\\.(rakutest|t|t6)$")))
+        (invoke "raku" "-MTAP" "-e"
+                (string-append
+                 "my @tests = <" (string-join test-files " ") ">; "
+                 "TAP::Harness.new().run(@tests);")))
       (format #t "test suite not run~%"))
   #t)
 
-- 
cgit v1.2.3


From 90a7efcc1e618ff21e100a4041ba32d541f2bd5f Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:17:56 +0000
Subject: gnu: perl6-zef: Update to 0.13.8.

* gnu/packages/perl6.scm (perl6-zef): Update to 0.13.8.
[source]: Reindent.
[arguments]: Replace Perl with Raku in 'check' phase.
[synopsis, description]: Replace mentions of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index d61868f8b2..d18d953d5a 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -829,17 +829,16 @@ character numbering.")
 (define-public perl6-zef
   (package
     (name "perl6-zef")
-    (version "0.6.7")
+    (version "0.13.8")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/ugexe/zef")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "07n7g1xw2c4g860rs890gx85vyhdq0ysgwbrnzw6q905jph2bkv7"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ugexe/zef")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0zmx2gavi975811kskv5j4j2zsysnxfklwx0azn8rffraadnhscm"))))
     (build-system rakudo-build-system)
     (arguments
      '(#:with-zef? #f
@@ -848,11 +847,11 @@ character numbering.")
          (replace 'check
            (lambda _
              (setenv "HOME" "/tmp")
-             (invoke "perl6" "-I." "bin/zef" "--debug"
+             (invoke "raku" "-I." "bin/zef" "--debug"
                      "--tap-harness" "test" "."))))))
     (home-page "https://github.com/ugexe/zef")
-    (synopsis "Perl6 Module Management")
-    (description "Zef is a Perl 6 package (module) manager.  It can be used to
-download and install Perl 6 modules in your home directory or as a system-wide
+    (synopsis "Raku Module Management")
+    (description "Zef is a Raku package (module) manager.  It can be used to
+download and install Raku modules in your home directory or as a system-wide
 module.")
     (license license:artistic2.0)))
-- 
cgit v1.2.3


From 479fedb025431598aad049f169ceba0ee8b1fdb9 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:00 +0000
Subject: gnu: perl6-terminal-ansicolor: Perl -> Raku.

* gnu/packages/perl6.scm (perl6-terminal-ansicolor): Extract commit
outside of source.
[description]: Replace mention of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index d18d953d5a..408d7e8e97 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -707,26 +707,26 @@ minimal wrapper around an instance of this module.")
     (license license:artistic2.0)))
 
 (define-public perl6-terminal-ansicolor
-  (package
-    (name "perl6-terminal-ansicolor")
-    (version "0.5")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
+  ;; The commit where 0.5 was “tagged”.
+  (let ((commit "edded4a7116ce11cbc9fb5a83669c7ba119d0212"))
+    (package
+      (name "perl6-terminal-ansicolor")
+      (version "0.5")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
                (url "https://github.com/tadzik/Terminal-ANSIColor")
-               ;; The commit where 0.5 was "tagged"
-               (commit "edded4a7116ce11cbc9fb5a83669c7ba119d0212")))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1apm999azkyg5s35gid12wq019aqnvzrkz7qjmipd74mdxgr00x7"))))
-    (build-system rakudo-build-system)
-    (arguments '(#:with-zef? #f))
-    (home-page "https://github.com/tadzik/Terminal-ANSIColor")
-    (synopsis "Colorize terminal output")
-    (description "This is a @code{Terminal::ANSIColor} module for Perl 6.")
-    (license license:expat)))
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1apm999azkyg5s35gid12wq019aqnvzrkz7qjmipd74mdxgr00x7"))))
+      (build-system rakudo-build-system)
+      (arguments '(#:with-zef? #f))
+      (home-page "https://github.com/tadzik/Terminal-ANSIColor")
+      (synopsis "Colorize terminal output")
+      (description "This is a @code{Terminal::ANSIColor} module for Raku.")
+      (license license:expat))))
 
 (define-public perl6-test-meta
   (package
-- 
cgit v1.2.3


From 3471ab0a13de1bcec1afb6621062f4b19ffad71f Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:07 +0000
Subject: gnu: perl6-grammar-debugger: Perl -> Raku.

* gnu/packages/perl6.scm (perl6-grammar-debugger)[source]: Reindent.
[synopsis]: Replace mention of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 408d7e8e97..cfc6d2d504 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -305,27 +305,26 @@ and runs on top of several virtual machines.")
     (license license:artistic2.0)))
 
 (define-public perl6-grammar-debugger
-  ;; Last commit was September 2017
+  ;; Last commit was September 2017.
   (let ((commit "0375008027c8caa216bd869476ce59ae09b2a702")
         (revision "1"))
     (package
       (name "perl6-grammar-debugger")
       (version (git-version "1.0.1" revision commit))
       (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/jnthn/grammar-debugger")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "0y826z3m276n7ia810hgcb3div67nxmx125m2fzlc16994zd5vm5"))))
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jnthn/grammar-debugger")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0y826z3m276n7ia810hgcb3div67nxmx125m2fzlc16994zd5vm5"))))
       (build-system rakudo-build-system)
       (propagated-inputs
        (list perl6-terminal-ansicolor))
       (home-page "https://github.com/jnthn/grammar-debugger")
-      (synopsis "Simple tracing and debugging support for Perl 6 grammars")
+      (synopsis "Simple tracing and debugging support for Raku grammars")
       (description "This module provides a simple debugger for grammars.  Just
 @code{use} it: use @code{Grammar::Debugger;} and any grammar in the lexical
 scope of the use statement will automatically have debugging enabled. The
-- 
cgit v1.2.3


From 189333f9c04f64d000c2a08478875806f9e691eb Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:18 +0000
Subject: gnu: perl6-grammar-profiler-simple: Perl -> Raku.

* gnu/packages/perl6.scm (perl6-grammar-profiler-simple)[source]:
Reindent.
[synopsis, description]: Replace mentions of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index cfc6d2d504..d25afa5528 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -333,27 +333,26 @@ prompt.")
       (license license:artistic2.0))))
 
 (define-public perl6-grammar-profiler-simple
-  ;; Last commit was June 2017
+  ;; Last commit was June 2017.
   (let ((commit "c0aca5fab323b2974821dabd6b89330c609e0b7d")
         (revision "1"))
     (package
       (name "perl6-grammar-profiler-simple")
       (version (git-version "0.02" revision commit))
       (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/perlpilot/Grammar-Profiler-Simple")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "1qcsa4lmcilp3vp0jng0hrgzyzxin9ayg2wjvkcd0k6h7djx9dff"))))
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/perlpilot/Grammar-Profiler-Simple")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1qcsa4lmcilp3vp0jng0hrgzyzxin9ayg2wjvkcd0k6h7djx9dff"))))
       (build-system rakudo-build-system)
       (arguments '(#:with-zef? #f))
       (home-page "https://github.com/perlpilot/Grammar-Profiler-Simple")
-      (synopsis "Simple rule profiling for Perl 6 grammars")
-      (description "This module provides a simple profiler for Perl 6 grammars.
+      (synopsis "Simple rule profiling for Raku grammars")
+      (description "This module provides a simple profiler for Raku grammars.
 To enable profiling simply add use @code{Grammar::Profiler::Simple;} to your
 code.  Any grammar in the lexical scope of the use statement will automatically
 have profiling information collected when the grammar is used.")
-- 
cgit v1.2.3


From 12dd3c5d2d8a2b6c574d1beda938cc4f65d45a0d Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:21 +0000
Subject: gnu: perl6-json: Perl -> Raku.

* gnu/packages/perl6.scm (perl6-json): Extract commit outside of source.
[description]: Replace mention of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index d25afa5528..d8a5b5ad4a 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -359,27 +359,27 @@ have profiling information collected when the grammar is used.")
       (license license:artistic2.0))))
 
 (define-public perl6-json
-  (package
-    (name "perl6-json")
-    (version "1.0")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
+  ;; The commit where 1.0 was “tagged”.
+  (let ((commit "a5ef8c179350dae44ce7fb1abb684fc62c1c2b99"))
+    (package
+      (name "perl6-json")
+      (version "1.0")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
                (url "https://github.com/moritz/json")
-               ;; The commit where 1.0 was "tagged"
-               (commit "a5ef8c179350dae44ce7fb1abb684fc62c1c2b99")))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1kzryxkqyr129rcckd4jh0dfxdgzv71qx8dpkpm1divbfjyknlay"))))
-    (build-system rakudo-build-system)
-    (arguments '(#:with-zef? #f))
-    (home-page "https://github.com/moritz/json")
-    (synopsis "Minimal JSON (de)serializer")
-    (description "This module is a simple Perl 6 module for serializing and
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1kzryxkqyr129rcckd4jh0dfxdgzv71qx8dpkpm1divbfjyknlay"))))
+      (build-system rakudo-build-system)
+      (arguments '(#:with-zef? #f))
+      (home-page "https://github.com/moritz/json")
+      (synopsis "Minimal JSON (de)serializer")
+      (description "This module is a simple Raku module for serializing and
 deserializing JSON.")
-    (license license:artistic2.0)))
+      (license license:artistic2.0))))
 
 (define-public perl6-json-class
   (package
-- 
cgit v1.2.3


From 093e496fe6984ef05c8fd6f829ca285c7e36dd06 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:24 +0000
Subject: gnu: perl6-json-fast: Update to 0.17.

* gnu/packages/perl6.scm (perl6-json-fast): Update to 0.17.
[source]: Reindent.
[synopsis, description]: Replace mentions of Perl with Raku and fix
minor stylistic issues.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index d8a5b5ad4a..4270ae117f 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -415,24 +415,24 @@ respectively.")
 (define-public perl6-json-fast
   (package
     (name "perl6-json-fast")
-    (version "0.10")
+    (version "0.17")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/timo/json_fast")
-               (commit version)))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32 "1g8hr1mdrxwdpzc7hvs9l5r12phvba6y6a5chgkj90ing77ji4b2"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/timo/json_fast")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1gckca9m6jkz6s59rpwf59721q6icfm45jj49sw3vdjr6jh2dgdb"))))
     (build-system rakudo-build-system)
     (arguments '(#:with-zef? #f))
     (home-page "https://github.com/timo/json_fast")
-    (synopsis "Perl6 json parser")
-    (description "A naive imperative json parser in pure perl6 (but with direct
+    (synopsis "Raku JSON parser")
+    (description "A naive imperative JSON parser in pure Raku (but with direct
 access to @code{nqp::} ops), to evaluate performance against @code{JSON::Tiny}.
-It is a drop-in replacement for @code{JSON::Tiny}'s from-json and to-json subs,
-but it offers a few extra features.")
+It is a drop-in replacement for @code{JSON::Tiny}'s @code{from-json} and
+@code{to-json} subs, but it offers a few extra features.")
     (license license:artistic2.0)))
 
 (define-public perl6-json-marshal
-- 
cgit v1.2.3


From f54f918b4f66d9517a64a7a5906a163ec6dbc6f0 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:31 +0000
Subject: gnu: Add perl6-json-optin.

* gnu/packages/perl6.scm (perl6-json-optin): New variable.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 4270ae117f..98631e7843 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -487,6 +487,29 @@ It will of course also be needed in classes thar are going to use
 @code{JSON::Marshal} or @code{JSON::Unmarshal} for serialisation/de-serialisation.")
     (license license:artistic2.0)))
 
+(define-public perl6-json-optin
+  (package
+    (name "perl6-json-optin")
+    (version "0.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jonathanstowe/JSON-OptIn")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0iz1wd3rfcb3kdc8cylwfxr8p02bpivk7kcf3dmm2l4mmdhyk7np"))))
+    (build-system rakudo-build-system)
+    (arguments '(#:with-zef? #f))
+    (home-page "https://github.com/jonathanstowe/JSON-OptIn")
+    (synopsis "Provide a trait and role to identify opt-in JSON serialization")
+    (description "This provides a trait and a role for the identification of
+`opt in' serializable attributes in, e.g., @code{JSON::Marshal}.  It's
+probably not necessary to use this directly as it will be required by, e.g.,
+@code{JSON::Name}, but it's just more convenient to package it separately.")
+    (license license:artistic2.0)))
+
 (define-public perl6-json-unmarshal
   ;; Last commit was May 2017
   (let ((commit "e1b6288c5f3165058f36c0f4e171cdf2dfd640da")
-- 
cgit v1.2.3


From 0e3cf25786e825471e88d87ca758c9986dcc20c2 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:40 +0000
Subject: gnu: perl6-json-name: Update to 0.0.6.

* gnu/packages/perl6.scm (perl6-json-name): Update to 0.0.6.
[source]: Reindent.
[propagated-inputs]: Add perl6-json-optin.
[synopsis, description]: Fix minor stylistic issues.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 98631e7843..ab6e1759b0 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -464,27 +464,28 @@ of the same class using @code{JSON::Unmarshal}.")
 (define-public perl6-json-name
   (package
     (name "perl6-json-name")
-    (version "0.0.3")
+    (version "0.0.6")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jonathanstowe/JSON-Name")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "130qwdpbj5qdlsdz05y0rksd79lzbq79scy47n6lnf21b0hz1qjc"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jonathanstowe/JSON-Name")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0fbwp3av4kh7zlbrmgbka4x6s3d6fsw2qxafi9hyq0y896wsaf94"))))
     (build-system rakudo-build-system)
     (arguments '(#:with-zef? #f))
+    (propagated-inputs
+     (list perl6-json-optin))
     (home-page "https://github.com/jonathanstowe/JSON-Name")
-    (synopsis "Provides a trait to store an alternative JSON Name")
+    (synopsis "Provide a trait to store an alternative JSON name")
     (description "This is released as a dependency of @code{JSON::Marshal} and
 @code{JSON::Unmarshal} in order to save duplication, it is intended to store a
 separate JSON name for an attribute where the name of the JSON attribute might be
 changed, either for aesthetic reasons or the name is not a valid Perl identifier.
 It will of course also be needed in classes thar are going to use
-@code{JSON::Marshal} or @code{JSON::Unmarshal} for serialisation/de-serialisation.")
+@code{JSON::Marshal} or @code{JSON::Unmarshal} for serialization/deserialization.")
     (license license:artistic2.0)))
 
 (define-public perl6-json-optin
-- 
cgit v1.2.3


From 168d474e84a83ad9b9bb74759de07712edc609ee Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:43 +0000
Subject: gnu: perl6-json-marshal: Update to 0.0.23.

* gnu/packages/perl6.scm (perl6-json-marshal): Update to 0.0.23.
[source]: Reindent.
[propagated-inputs]: Move below native-inputs.
[synopsis]: Serialisation -> serialization.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index ab6e1759b0..64c3dfaa68 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -438,24 +438,23 @@ It is a drop-in replacement for @code{JSON::Tiny}'s @code{from-json} and
 (define-public perl6-json-marshal
   (package
     (name "perl6-json-marshal")
-    (version "0.0.16")
+    (version "0.0.23")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jonathanstowe/JSON-Marshal")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "0qy7j83h6gjzyyv74ncd92cd9h45rv8diaz3vldiv3b6fqwz4c6i"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jonathanstowe/JSON-Marshal")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "057xmdadhy5wkbhr6w1iybv2j7qf4bf8d4cp8m4qdcgk6pqzpkgc"))))
     (build-system rakudo-build-system)
-    (propagated-inputs
-     (list perl6-json-fast perl6-json-name))
     (native-inputs
      (list perl6-json-fast))
+    (propagated-inputs
+     (list perl6-json-fast perl6-json-name))
     (home-page "https://github.com/jonathanstowe/JSON-Marshal")
-    (synopsis "Simple serialisation of objects to JSON")
+    (synopsis "Simple serialization of objects to JSON")
     (description "This library provides a single exported subroutine to create
 a JSON representation of an object.  It should round trip back into an object
 of the same class using @code{JSON::Unmarshal}.")
-- 
cgit v1.2.3


From aa18e500c818f73df656c637409105a36aa54f92 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:47 +0000
Subject: gnu: perl6-json-unmarshal: Reindent.

* gnu/packages/perl6.scm (perl6-json-unmarshal)[source]: Reindent.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 64c3dfaa68..79c4b661e9 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -511,22 +511,21 @@ probably not necessary to use this directly as it will be required by, e.g.,
     (license license:artistic2.0)))
 
 (define-public perl6-json-unmarshal
-  ;; Last commit was May 2017
+  ;; Last commit was May 2017.
   (let ((commit "e1b6288c5f3165058f36c0f4e171cdf2dfd640da")
         (revision "1"))
     (package
       (name "perl6-json-unmarshal")
       (version (git-version "0.0.0" revision commit))
       (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/tadzik/JSON-Unmarshal")
-                 (commit commit)))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "14azsmzmwdn8k0gqcpvballharcvzylmlyrx2wmv4kpqfnz29fjc"))))
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tadzik/JSON-Unmarshal")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "14azsmzmwdn8k0gqcpvballharcvzylmlyrx2wmv4kpqfnz29fjc"))))
       (build-system rakudo-build-system)
       (propagated-inputs
        (list perl6-json-fast perl6-json-name))
-- 
cgit v1.2.3


From 0402806bff9d71f0e522a8f23aeed063395c9b26 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:51 +0000
Subject: gnu: perl6-json-class: Update to 0.0.18.

* gnu/packages/perl6.scm (perl6-json-class): Update to 0.0.18.
[source]: Reindent.
[propagated-inputs]: Move below native-inputs.
[synopsis, description]: Fix minor stylistic issues.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 79c4b661e9..f18ac16300 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -384,30 +384,29 @@ deserializing JSON.")
 (define-public perl6-json-class
   (package
     (name "perl6-json-class")
-    (version "0.0.12")
+    (version "0.0.18")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jonathanstowe/JSON-Class")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1zyzajc57j3m8q0nr72h9pw4w2nx92rafywlvysgphc5q9sb8np2"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jonathanstowe/JSON-Class")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0686qpcb6p5isjcsksrgsr1rh926cnhs6r091p5p3lh2fd575g1d"))))
     (build-system rakudo-build-system)
-    (propagated-inputs
-     (list perl6-json-marshal perl6-json-unmarshal))
     (native-inputs
      (list perl6-json-fast))
+    (propagated-inputs
+     (list perl6-json-marshal perl6-json-unmarshal))
     (home-page "https://github.com/jonathanstowe/JSON-Class")
-    (synopsis "Provide simple serialisation/deserialisation of objects to/from JSON")
+    (synopsis "Provide simple serialization/deserialization of objects to/from JSON")
     (description "This is a simple role that provides methods to instantiate a
-class from a JSON string that (hopefully,) represents it, and to serialise an
+class from a JSON string that (hopefully) represents it, and to serialize an
 object of the class to a JSON string.  The JSON created from an instance
 should round trip to a new instance with the same values for the public
 attributes.  Private attributes (that is ones without accessors,) will be
-ignored for both serialisation and de-serialisation.  The exact behaviour
+ignored for both serialization and deserialization.  The exact behaviour
 depends on that of @code{JSON::Marshal} and @code{JSON::Unmarshal}
 respectively.")
     (license license:artistic2.0)))
-- 
cgit v1.2.3


From 3a7dede309648b58b5425d14b5bd0532855003b3 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:18:57 +0000
Subject: gnu: perl6-license-spdx: Update to 3.16.0.

* gnu/packages/perl6.scm (perl6-license-spdx): Update to 3.16.0.
[source]: Reindent.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index f18ac16300..05fcb7b1b4 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -537,17 +537,16 @@ create an object from a JSON representation of an object.")
 (define-public perl6-license-spdx
   (package
     (name "perl6-license-spdx")
-    (version "3.4.0")
+    (version "3.16.0")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jonathanstowe/License-SPDX")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "0dl263c3fbxk001gm5fisrzqz1dx182ipaa0x2qva2gxvl075xm8"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jonathanstowe/License-SPDX")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0sv9rrrfn437crynmbs3aks5xcqchjkbr1k31fq0dphfaw88k5v3"))))
     (build-system rakudo-build-system)
     (propagated-inputs
      (list perl6-json-class))
-- 
cgit v1.2.3


From 93ce61715ad7bc147a96af05f3fc01d620eece81 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:03 +0000
Subject: gnu: perl6-meta6: Update to 0.0.26.

* gnu/packages/perl6.scm (perl6-meta6): Update to 0.0.26.
[source]: Reindent.
[propagated-inputs]: Move below native-inputs.
[synopsis, description]: Replace mentions of Perl with Raku. Fix minor
stylistic issues.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 43 +++++++++++++++++++++----------------------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 05fcb7b1b4..ea40f285c5 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -561,35 +561,34 @@ licences therein.")
 (define-public perl6-meta6
   (package
     (name "perl6-meta6")
-    (version "0.0.23")
+    (version "0.0.26")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jonathanstowe/META6")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1xnlaamfbdlfb2zidim3bbc4mawsrg6qxhxi6gbld46z1cyry1cw"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jonathanstowe/META6")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jg8z0y29df9sy6za285jy38c3v6dl54ar54dp6marzcih02payx"))))
     (build-system rakudo-build-system)
-    (propagated-inputs
-     (list perl6-json-class))
     (native-inputs
      (list perl6-json-fast))
+    (propagated-inputs
+     (list perl6-json-class))
     (home-page "https://github.com/jonathanstowe/META6")
-    (synopsis "Do things with Perl 6 [META files]")
-    (description "This provides a representation of the Perl 6 META files
-specification - the META file data can be read, created, parsed and written in a
-manner that is conformant with the specification.
+    (synopsis "Do things with Raku META files")
+    (description "This provides a representation of the Raku META files
+specification -- the META file data can be read, created, parsed and written
+in a manner that is conformant with the specification.
 
-Where they are known about it also makes allowance for customary usage in
-existing software (such as installers and so forth.)
+Where they are known about, it also makes allowance for customary usage in
+existing software (such as installers and so forth).
 
-The intent of this is allow the generation and testing of META files for
-module authors, so it can provide meta-information whether the attributes are
-mandatory as per the spec and where known the places that customary attributes
-are used.")
+The intent of this is to allow the generation and testing of META files for
+module authors, so it can provide meta-information about whether the
+attributes are mandatory as per the spec and, where known, the places that
+customary attributes are used.")
     (license license:artistic2.0)))
 
 (define-public perl6-mime-base64
-- 
cgit v1.2.3


From bf985cdbfc96d9240d89754b987219e0e903f986 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:06 +0000
Subject: gnu: perl6-mime-base64: Update to 1.2.3.

* gnu/packages/perl6.scm (perl6-mime-base64): Update to 1.2.3.
[source]: Update URL. Reindent.
[home-page]: Update.
[description]: Replace mention of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index ea40f285c5..12d71109c8 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -594,22 +594,21 @@ customary attributes are used.")
 (define-public perl6-mime-base64
   (package
     (name "perl6-mime-base64")
-    (version "1.2.1")
+    (version "1.2.3")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/perl6/Perl6-MIME-Base64")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "0l67m8mvz3gxml425sd1ggfnhzh4lf754k7w8fngfr453s6lsza1"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/raku-community-modules/MIME-Base64")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "19bndwbjr05gg8rrq2msmw1ik8xw2r3gbd77vxrp8l6c674zgy95"))))
     (build-system rakudo-build-system)
     (arguments '(#:with-zef? #f))
-    (home-page "https://github.com/perl6/Perl6-MIME-Base64")
+    (home-page "https://github.com/raku-community-modules/MIME-Base64")
     (synopsis "Encoding and decoding Base64 ASCII strings")
-    (description "This Perl 6 module implements encoding and decoding to and
+    (description "This Raku module implements encoding and decoding to and
 from base64.")
     (license license:artistic2.0)))
 
-- 
cgit v1.2.3


From 67a7460b8a429b747077b79e5893459521ed5b19 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:09 +0000
Subject: gnu: perl6-oo-monitors: Update to 1.1.1.

* gnu/packages/perl6.scm (perl6-oo-monitors): Update to 1.1.1.
[source]: Reindent.
[synopsis]: Replace mention of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 12d71109c8..6428d6f20e 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -615,22 +615,20 @@ from base64.")
 (define-public perl6-oo-monitors
   (package
     (name "perl6-oo-monitors")
-    (version "1.1")
+    (version "1.1.1")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jnthn/oo-monitors")
-               ;; The commit where 1.1 was "tagged"
-               (commit "494db3a3852854f30a80c9bd1489a7d5e429e7c5")))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1sbw2x54wwjjanghjnc7ipmplaw1srvbrphsdv4ym6cipnbmbj9x"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jnthn/oo-monitors")
+             (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1aqb0x2vnmpi3knkf5v5aix6h29ln80gpxwa181i8kwfpxs8ir9f"))))
     (build-system rakudo-build-system)
     (arguments '(#:with-zef? #f))
     (home-page "https://github.com/jnthn/oo-monitors")
-    (synopsis "Monitors with condition variables for Perl 6")
+    (synopsis "Monitors with condition variables for Raku")
     (description "A monitor provides per-instance mutual exclusion for objects.
 This means that for a given object instance, only one thread can ever be inside
 its methods at a time.  This is achieved by a lock being associated with each
-- 
cgit v1.2.3


From ff64d8f46f2c31ea0348c617e0754028e4b911ed Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:13 +0000
Subject: gnu: perl6-xml-writer: Perl -> Raku.

* gnu/packages/perl6.scm (perl6-xml-writer)[source]: Reindent.
[synopsis, description]: Replace mentions of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 6428d6f20e..05b88c450a 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -824,20 +824,19 @@ character numbering.")
       (name "perl6-xml-writer")
       (version (git-version "0.0.0" revision commit))
       (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/masak/xml-writer")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "1kwrf7akp70kyzw1b90khp71a6hpilihwndy2jsjpffcd4hd4m4z"))))
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/masak/xml-writer")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1kwrf7akp70kyzw1b90khp71a6hpilihwndy2jsjpffcd4hd4m4z"))))
       (build-system rakudo-build-system)
       (arguments '(#:with-zef? #f))
       (home-page "https://github.com/masak/xml-writer")
-      (synopsis "Perl 6 module to generate XML")
-      (description "@code{XML::Writer} is a module for creating XML in Perl 6.")
+      (synopsis "Raku module to generate XML")
+      (description "@code{XML::Writer} is a module for creating XML in Raku.")
       (license license:artistic2.0))))
 
 (define-public perl6-zef
-- 
cgit v1.2.3


From 442fbb6fddaa78a55e2bec1842eacbb89009274d Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:16 +0000
Subject: gnu: perl6-svg: Perl -> Raku.

* gnu/packages/perl6.scm (perl6-svg)[source]: Reindent.
[synopsis, description]: Replace mentions of Perl with Raku.
Fix minor stylistic issues.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 05b88c450a..20f02e57be 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -637,31 +637,30 @@ monitor.  Condition variables are also supported.")
     (license license:artistic2.0)))
 
 (define-public perl6-svg
-  ;; Latest commit, basically unchanged since August 2015
+  ;; Latest commit, basically unchanged since August 2015.
   (let ((commit "07190c0602aa276e5319f06aa0012452dbff3582")
         (revision "1"))
     (package
       (name "perl6-svg")
       (version (git-version "0.0.0" revision commit))
       (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/moritz/svg")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "0mkjdhg7ajksdn61n8fqhyzfd7ly9myazsvpsm02a5c2q73hdygg"))))
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/moritz/svg")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0mkjdhg7ajksdn61n8fqhyzfd7ly9myazsvpsm02a5c2q73hdygg"))))
       (build-system rakudo-build-system)
       (propagated-inputs
        (list perl6-xml-writer))
       (home-page "https://github.com/moritz/svg")
-      (synopsis "Perl 6 module to generate SVG")
-      (description "This is a Perl 6 module that makes it easy to write
+      (synopsis "Raku module to generate SVG")
+      (description "This is a Raku module that makes it easy to write
 @dfn{Scalable Vector Graphic files} (SVG).  Right now it is a shallow wrapper
-around @code{XML::Writer}, adding only the xmlns attributes that identifies an
-XML file as SVG.")
+around @code{XML::Writer}, adding only the @samp{xmlns} attributes that
+identify an XML file as SVG.")
       (license license:artistic2.0))))
 
 (define-public perl6-svg-plot
-- 
cgit v1.2.3


From 834a1c9b8626f646aedfd894976e33780842b318 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:19 +0000
Subject: gnu: perl6-svg-plot: Perl -> Raku.

* gnu/packages/perl6.scm (perl6-svg-plot)[source]: Reindent.
[synopsis, description]: Replace mentions of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 20f02e57be..8884449d08 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -664,28 +664,27 @@ identify an XML file as SVG.")
       (license license:artistic2.0))))
 
 (define-public perl6-svg-plot
-  ;; Latest commit
+  ;; Latest commit.
   (let ((commit "062570a78fd38c3c6baba29dfe2fbb8ca014f4de")
         (revision "1"))
     (package
       (name "perl6-svg-plot")
       (version (git-version "0.0.0" revision commit))
       (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/moritz/svg-plot")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "095ga5hbg92jnmczxvhk1hjz14yr334zyf8cph4w5w5frcza44my"))))
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/moritz/svg-plot")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "095ga5hbg92jnmczxvhk1hjz14yr334zyf8cph4w5w5frcza44my"))))
       (build-system rakudo-build-system)
       (propagated-inputs
        (list perl6-svg))
       (home-page "https://github.com/moritz/svg-plot")
-      (synopsis "Perl 6 charting and plotting library that produces SVG output")
-      (description "@code{SVG::Plot} is a simple 2D chart plotter for Perl 6.
+      (synopsis "Raku charting and plotting library that produces SVG output")
+      (description "@code{SVG::Plot} is a simple 2D chart plotter for Raku.
 It currently supports bars, stacked bars, lines and points (both equally spaced
 with optional labels, or xy plots).")
       (license license:artistic2.0))))
-- 
cgit v1.2.3


From eb107276df47b3ccad47c6074f70ae610c8ac3d5 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:22 +0000
Subject: gnu: perl6-uri: Update to 0.3.5.

* gnu/packages/perl6.scm (perl6-uri): Update to 0.3.5.
[source]: Update URL.
[home-page]: Update.
[synopsis, description]: Replace mentions of Perl with Raku.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 8884449d08..0ccaaa82d8 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -791,28 +791,29 @@ statement for @code{Test::Mock}.")
     (license license:artistic2.0)))
 
 (define-public perl6-uri
-  (package
-    (name "perl6-uri")
-    (version "0.1.5")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/perl6-community-modules/uri")
-               (commit version)))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "0h318g75jqn2ckw051g35iqyfxz1mps0jyg5z6pd857y3kacbkpl"))))
-    (build-system rakudo-build-system)
-    (arguments '(#:with-zef? #f))
-    (home-page "https://github.com/perl6-community-modules/uri")
-    (synopsis "URI implementation using Perl 6")
-    (description "A URI implementation using Perl 6 grammars to implement RFC
+  ;; The commit where 0.3.5 was “tagged”.
+  (let ((commit "2e62d0f117c95a43e61ddb018dcacba8036aa3d5"))
+    (package
+      (name "perl6-uri")
+      (version "0.3.5")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/raku-community-modules/URI")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1a03r80zxpvnsjf2z5r8lk434v2ysrpaymqa6xq975l4124gckkx"))))
+      (build-system rakudo-build-system)
+      (arguments '(#:with-zef? #f))
+      (home-page "https://github.com/raku-community-modules/URI")
+      (synopsis "URI implementation using Raku")
+      (description "A URI implementation using Raku grammars to implement RFC
 3986 BNF.  Currently only implements parsing.  Includes @code{URI::Escape} to
 (un?)escape characters that aren't otherwise allowed in a URI with % and a hex
 character numbering.")
-    (license license:artistic2.0)))
+      (license license:artistic2.0))))
 
 (define-public perl6-xml-writer
   ;; Last commit was May 2017
-- 
cgit v1.2.3


From b5605923be7c3f9e108d7b546dfeec9fd739d55f Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:32 +0000
Subject: gnu: perl6-test-meta: Update to 0.0.17.

* gnu/packages/perl6.scm (perl6-test-meta): Update to 0.0.17.
[source]: Reindent.
[propagated-inputs]: Add perl6-license-spdx.
[synopsis]: Add a missing apostrophe.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 0ccaaa82d8..f122288db2 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -743,22 +743,21 @@ minimal wrapper around an instance of this module.")
 (define-public perl6-test-meta
   (package
     (name "perl6-test-meta")
-    (version "0.0.14")
+    (version "0.0.17")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/jonathanstowe/Test-META")
-               (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "1mzrglb7lbiy5h9dlc7dyhvv9gppxmdmpmrv6nzbd695jzr38bri"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jonathanstowe/Test-META")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0kd4yixx6lac240lcx0f5pfswspvpp43034mq2vs65zxghsvvcmf"))))
     (build-system rakudo-build-system)
     (propagated-inputs
-     (list perl6-meta6 perl6-uri))
+     (list perl6-license-spdx perl6-meta6 perl6-uri))
     (home-page "https://github.com/jonathanstowe/Test-META")
-    (synopsis "Test a distributions META file")
+    (synopsis "Test a distribution's META file")
     (description "This provides a simple mechanism for module authors to have
 some confidence that they have a working distribution META description file.")
     (license license:artistic2.0)))
-- 
cgit v1.2.3


From 3eb5ffb90f5e75e6da94bf60bfffcbdf1e4c5b72 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:35 +0000
Subject: gnu: perl6-test-mock: Update to 1.5-0.1130427.

* gnu/packages/perl6.scm (perl6-test-mock): Update to 1.5-0.1130427.
[description]: Add missing @code{}.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index f122288db2..3922860071 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -763,31 +763,31 @@ some confidence that they have a working distribution META description file.")
     (license license:artistic2.0)))
 
 (define-public perl6-test-mock
-  (package
-    (name "perl6-test-mock")
-    (version "1.5")
-    (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
+  (let ((commit "1130427f4d9f3866fa39e113251bb142d7fa5cc8")
+        (revision "0"))
+    (package
+      (name "perl6-test-mock")
+      (version (git-version "1.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
                (url "https://github.com/jnthn/test-mock")
-               ;; The commit where 1.5 was "tagged"
-               (commit "6eddb42f73f40b9ac29c14badb41ce4a04d876f2")))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "07yr3qimc8fl29p23562ayj2j9h53madcnf9sgqvgf2kcprh0zd2"))))
-    (build-system rakudo-build-system)
-    (propagated-inputs
-     (list perl6-oo-monitors))
-    (home-page "https://github.com/jnthn/test-mock")
-    (synopsis "Module for simply generating and checking mock objects")
-    (description "@code{Test::Mock} is a module that works alongside the
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "03qq6z9ilw0ak3dx9i24ygr4c21wf4xvli8px02hmshpkhavclj5"))))
+      (build-system rakudo-build-system)
+      (propagated-inputs
+       (list perl6-oo-monitors))
+      (home-page "https://github.com/jnthn/test-mock")
+      (synopsis "Module for simply generating and checking mock objects")
+      (description "@code{Test::Mock} is a module that works alongside the
 standard Test module to help you write tests when you want to verify what
 methods are called on an object, while still having calls to undefined methods
-die.  You get started just as normal with the test file, but also add a use
-statement for @code{Test::Mock}.")
-    (license license:artistic2.0)))
+die.  You get started just as normal with the test file, but also add a
+@code{use} statement for @code{Test::Mock}.")
+      (license license:artistic2.0))))
 
 (define-public perl6-uri
   ;; The commit where 0.3.5 was “tagged”.
-- 
cgit v1.2.3


From 0596f596ea215bd17d77d1f48ea2a2b0319c2784 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Fri, 29 Apr 2022 05:19:39 +0000
Subject: gnu: Add perl6-format-lisp.

* gnu/packages/perl6.scm (perl6-format-lisp): New variable.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/perl6.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 3922860071..4f0fc1a5a7 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -304,6 +304,29 @@ regular expression engine for the virtual machine.")
 and runs on top of several virtual machines.")
     (license license:artistic2.0)))
 
+(define-public perl6-format-lisp
+  (let ((commit "1ae31e2a9366b287a83a9d451295fc9e3fb6d36f")
+        (revision "0"))
+    (package
+      (name "perl6-format-lisp")
+      (version (git-version "0.0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/raku-community-modules/Format-Lisp")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1rhkd11xdyw99vl6ickjin0x7nhlgkq3qhpf8zp9jky0k711gxmr"))))
+      (build-system rakudo-build-system)
+      (arguments '(#:with-zef? #f))
+      (home-page "https://github.com/raku-community-modules/Format-Lisp")
+      (synopsis "Common Lisp's format call in Raku")
+      (description "This Raku module implements Common Lisp's @code{format}
+language.")
+      (license license:artistic2.0))))
+
 (define-public perl6-grammar-debugger
   ;; Last commit was September 2017.
   (let ((commit "0375008027c8caa216bd869476ce59ae09b2a702")
-- 
cgit v1.2.3


From c11e49d2316a8c5a1b3653f775a31e7fc5fb2e2c Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Mon, 4 Mar 2024 09:37:35 +0200
Subject: gnu: Remove libtommath-1.0.

* gnu/packages/multiprecision.scm (libtommath-1.0): Delete variable.

Change-Id: I8da3c4b16470ea24e89216644d84350e07b7dd63
---
 gnu/packages/multiprecision.scm | 19 -------------------
 1 file changed, 19 deletions(-)

diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index 591170b508..a81b2771ab 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -530,22 +530,3 @@ the box without configuration.")
                   (("arch") "uname -m"))
                 #t))))
         ((#:test-target _) "test_standalone")))))
-
-(define-public libtommath-1.0
-  (package
-    (inherit libtommath-1.1)
-    (version "1.0.1")
-    (outputs '("out"))
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/libtom/libtommath/releases/"
-                            "download/v" version "/ltm-" version ".tar.xz"))
-        (sha256
-         (base32
-          "0sbccdwbkfc680id2fi0x067j23biqcjqilwkk7y9339knrjy0s7"))))
-    (arguments
-      (substitute-keyword-arguments (package-arguments libtommath-1.1)
-        ((#:phases phases)
-         `(modify-phases ,phases
-            (delete 'install-static-library)))))))
-- 
cgit v1.2.3


From 8850782392d4e58384d4c4da36a4f0bd5c8abdb1 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Mon, 4 Mar 2024 10:41:01 +0200
Subject: gnu: moarvm: Fix building on powerpc-linux.

* gnu/packages/perl6.scm (moarvm)[arguments]: Adjust custom 'configure
phase to add '-latomic' to the LDFLAGS when building for powerpc-linux.

Change-Id: Ib8a25dea492c7e41c0f61440cc51d20adf77c183
---
 gnu/packages/perl6.scm | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index 4f0fc1a5a7..10eb33be25 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2024 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
 ;;;
@@ -23,6 +23,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system rakudo)
   #:use-module (gnu packages bdw-gc)
@@ -56,7 +57,7 @@
            (delete-file-recursively "3rdparty/msinttypes")))))
     (build-system perl-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-build
            (lambda _
@@ -67,7 +68,10 @@
              (let ((out (assoc-ref outputs "out"))
                    (pkg-config (assoc-ref inputs "pkg-config")))
                (setenv "CFLAGS" "-fcommon")
-               (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
+               (setenv "LDFLAGS"
+                       ,@(if (target-ppc32?)
+                           `((string-append "-Wl,-rpath=" out "/lib" " -latomic"))
+                           `((string-append "-Wl,-rpath=" out "/lib"))))
                (invoke "perl" "Configure.pl"
                        "--prefix" out
                        "--pkgconfig" (string-append pkg-config "/bin/pkg-config")
-- 
cgit v1.2.3


From 9321cf7f51eb6dc3fe49d4302eed4e47a52284e2 Mon Sep 17 00:00:00 2001
From: dan <i@dan.games>
Date: Sat, 2 Mar 2024 21:19:59 +0800
Subject: gnu: Add emacs-citar-denote.

* gnu/packages/emacs-xyz.scm (emacs-citar-denote): New variable.

Change-Id: Ib728e5f005f2c6cd84864bb0ecc11c8ed40ac24b
Signed-off-by: Andrew Tropin <andrew@trop.in>
---
 gnu/packages/emacs-xyz.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index a93165404e..f858597ea7 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -137,6 +137,7 @@
 ;;; Copyright © 2023 Thanos Apollo <public@thanosapollo.com>
 ;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
 ;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca>
+;;; Copyright © 2024 dan <i@dan.games>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23841,6 +23842,29 @@ Citar note support:
 @end itemize")
     (license license:gpl3+)))
 
+(define-public emacs-citar-denote
+  (package
+    (name "emacs-citar-denote")
+    (version "2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pprevos/citar-denote")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0g476awbrdws7k7smk1qasz15df20zilx3wqbi3wj0i1q2dbsi8z"))))
+    (build-system emacs-build-system)
+    (propagated-inputs (list emacs-citar emacs-denote))
+    (home-page "https://github.com/pprevos/citar-denote")
+    (synopsis "Emacs package to create and retrieve bibliography notes with
+Citar and Denote")
+    (description
+     "@code{citar-denote} is a minor-mode integrating the Emacs Citar and
+Denote packages to enable create managing bibliographic notes and citations.")
+    (license license:gpl3+)))
+
 (define-public emacs-helm-bibtex
   (let ((commit "8ebf50d5bd368082d0b7ab79d26a52f372cdef98")
         (revision "1"))
-- 
cgit v1.2.3


From ff3c592710120de2ac05972a85892cdf4b1db101 Mon Sep 17 00:00:00 2001
From: Janneke Nieuwenhuizen <janneke@gnu.org>
Date: Mon, 4 Mar 2024 15:48:48 +0100
Subject: gnu: dezyne: Update to 2.18.1.

* gnu/packages/dezyne.scm (dezyne): Update to 2.18.1.

Change-Id: I8750035237cd0784ab4244af034dc28549e54dd5
---
 gnu/packages/dezyne.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/dezyne.scm b/gnu/packages/dezyne.scm
index a5732f75bf..7ea2c155aa 100644
--- a/gnu/packages/dezyne.scm
+++ b/gnu/packages/dezyne.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2022, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2022, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,14 +34,14 @@
 (define-public dezyne
   (package
     (name "dezyne")
-    (version "2.18.0")
+    (version "2.18.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://dezyne.org/download/dezyne/"
                            name "-" version ".tar.gz"))
        (sha256
-        (base32 "1lbrxycpvwmvif3gpjnz8iskvlxp7f8bl71k44j7acwqrp8j2szi"))))
+        (base32 "0i8a8bzsh58mpgrgb0sg0qfszmf144grdmr741qwxwww5b2nsmbj"))))
     (propagated-inputs (list boost
                              guile-json-4
                              guile-readline
-- 
cgit v1.2.3


From 3da49b1472919a62df1fe399638f23a246aa325d Mon Sep 17 00:00:00 2001
From: Andy Tai <atai@atai.org>
Date: Mon, 4 Mar 2024 16:16:55 +0100
Subject: gnu: scribus: Update to 1.6.1

* gnu/packages/scribus.scm (scribus): Update to 1.6.1.
* gnu/packages/patches/scribus-1.5.8-poppler-22.03.0.patch: Delete file.
* gnu/packages/patches/scribus-1.5.8-poppler-22.04.0.patch: Delete file.
* gnu/packages/patches/scribus-1.5.8-poppler-22.09.0.patch: Delete file.
* gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-1.patch: Delete file.
* gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-2.patch" Delete file.
* gnu/local.mk: Apply file removal.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Change-Id: I7f40863f24f5b5ed82cf81bece6833c9d4b4ad9e
---
 gnu/local.mk                                       |   5 -
 .../patches/scribus-1.5.8-poppler-22.03.0.patch    |  52 ----
 .../patches/scribus-1.5.8-poppler-22.04.0.patch    | 291 ---------------------
 .../patches/scribus-1.5.8-poppler-22.09.0.patch    |  20 --
 .../patches/scribus-1.5.8-poppler-22.2.0-1.patch   | 129 ---------
 .../patches/scribus-1.5.8-poppler-22.2.0-2.patch   |  28 --
 gnu/packages/scribus.scm                           |  14 +-
 7 files changed, 4 insertions(+), 535 deletions(-)
 delete mode 100644 gnu/packages/patches/scribus-1.5.8-poppler-22.03.0.patch
 delete mode 100644 gnu/packages/patches/scribus-1.5.8-poppler-22.04.0.patch
 delete mode 100644 gnu/packages/patches/scribus-1.5.8-poppler-22.09.0.patch
 delete mode 100644 gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-1.patch
 delete mode 100644 gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-2.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index cabd82f532..67a0eab466 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1821,11 +1821,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/quodlibet-fix-invalid-glob.patch	\
   %D%/packages/patches/quodlibet-fix-mtime-tests.patch		\
   %D%/packages/patches/qxlsx-fix-include-directory.patch	\
-  %D%/packages/patches/scribus-1.5.8-poppler-22.03.0.patch	\
-  %D%/packages/patches/scribus-1.5.8-poppler-22.04.0.patch	\
-  %D%/packages/patches/scribus-1.5.8-poppler-22.09.0.patch	\
-  %D%/packages/patches/scribus-1.5.8-poppler-22.2.0-1.patch	\
-  %D%/packages/patches/scribus-1.5.8-poppler-22.2.0-2.patch	\
   %D%/packages/patches/sdcc-disable-non-free-code.patch		\
   %D%/packages/patches/sdl-pango-api_additions.patch		\
   %D%/packages/patches/sdl-pango-blit_overflow.patch		\
diff --git a/gnu/packages/patches/scribus-1.5.8-poppler-22.03.0.patch b/gnu/packages/patches/scribus-1.5.8-poppler-22.03.0.patch
deleted file mode 100644
index f7a0c03fdd..0000000000
--- a/gnu/packages/patches/scribus-1.5.8-poppler-22.03.0.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From f19410ac3b27e33dd62105746784e61e85b90a1d Mon Sep 17 00:00:00 2001
-From: Jean Ghali <jghali@libertysurf.fr>
-Date: Wed, 2 Mar 2022 22:22:53 +0000
-Subject: [PATCH] #16764: Build break with poppler 22.03.0
-
-git-svn-id: svn://scribus.net/trunk/Scribus@24982 11d20701-8431-0410-a711-e3c959e3b870
----
- scribus/plugins/import/pdf/importpdf.cpp | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp
-index 154e58a3f0..392dcd9e64 100644
---- a/scribus/plugins/import/pdf/importpdf.cpp
-+++ b/scribus/plugins/import/pdf/importpdf.cpp
-@@ -89,7 +89,11 @@ QImage PdfPlug::readThumbnail(const QString& fName)
- #endif
- 	globalParams->setErrQuiet(gTrue);
- 
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
-+	PDFDoc pdfDoc{ std::make_unique<GooString>(fname) };
-+#else
- 	PDFDoc pdfDoc{fname, nullptr, nullptr, nullptr};
-+#endif
- 	if (!pdfDoc.isOk() || pdfDoc.getErrorCode() == errEncrypted)
- 		return QImage();
- 
-@@ -342,7 +346,11 @@ bool PdfPlug::convert(const QString& fn)
- 	globalParams->setErrQuiet(gTrue);
- //	globalParams->setPrintCommands(gTrue);
- 	QList<OptionalContentGroup*> ocgGroups;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
-+	auto pdfDoc = std::make_unique<PDFDoc>(std::make_unique<GooString>(fname));
-+#else
- 	auto pdfDoc = std::unique_ptr<PDFDoc>(new PDFDoc(fname, nullptr, nullptr, nullptr));
-+#endif
- 	if (pdfDoc)
- 	{
- 		if (pdfDoc->getErrorCode() == errEncrypted)
-@@ -361,8 +369,13 @@ bool PdfPlug::convert(const QString& fn)
- #else
- 				auto fname = new GooString(QFile::encodeName(fn).data());
- #endif
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
-+				std::optional<GooString> userPW(std::in_place, text.toLocal8Bit().data());
-+				pdfDoc.reset(new PDFDoc(std::make_unique<GooString>(fname), userPW, userPW, nullptr));
-+#else
- 				auto userPW = new GooString(text.toLocal8Bit().data());
- 				pdfDoc.reset(new PDFDoc(fname, userPW, userPW, nullptr));
-+#endif
- 				qApp->changeOverrideCursor(QCursor(Qt::WaitCursor));
- 			}
- 			if ((!pdfDoc) || (pdfDoc->getErrorCode() != errNone))
diff --git a/gnu/packages/patches/scribus-1.5.8-poppler-22.04.0.patch b/gnu/packages/patches/scribus-1.5.8-poppler-22.04.0.patch
deleted file mode 100644
index 290484e7e8..0000000000
--- a/gnu/packages/patches/scribus-1.5.8-poppler-22.04.0.patch
+++ /dev/null
@@ -1,291 +0,0 @@
-https://bugs.gentoo.org/843287
-https://github.com/scribusproject/scribus/commit/f2237b8f0b5cf7690e864a22ef7a63a6d769fa36.patch
-
-From f2237b8f0b5cf7690e864a22ef7a63a6d769fa36 Mon Sep 17 00:00:00 2001
-From: Jean Ghali <jghali@libertysurf.fr>
-Date: Fri, 1 Apr 2022 23:52:32 +0000
-Subject: [PATCH] Fix build with poppler 22.04.0
-
-git-svn-id: svn://scribus.net/trunk/Scribus@25074 11d20701-8431-0410-a711-e3c959e3b870
----
- scribus/plugins/import/pdf/slaoutput.cpp | 123 ++++++++++++++---------
- 1 file changed, 78 insertions(+), 45 deletions(-)
-
-diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
-index e20a81f99e..5626fe3477 100644
---- a/scribus/plugins/import/pdf/slaoutput.cpp
-+++ b/scribus/plugins/import/pdf/slaoutput.cpp
-@@ -174,8 +174,13 @@ void AnoOutputDev::drawString(GfxState *state, POPPLER_CONST GooString *s)
- 	int shade = 100;
- 	currColorText = getColor(state->getFillColorSpace(), state->getFillColor(), &shade);
- 	fontSize = state->getFontSize();
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+	if (state->getFont() && state->getFont()->getName())
-+		fontName = new GooString(state->getFont()->getName().value());
-+#else
- 	if (state->getFont())
- 		fontName = state->getFont()->getName()->copy();
-+#endif
- 	itemText = s->copy();
- }
- 
-@@ -357,7 +362,12 @@ std::unique_ptr<LinkAction> SlaOutputDev::SC_getAdditionalAction(const char *key
- GBool SlaOutputDev::annotations_callback(Annot *annota, void *user_data)
- {
- 	SlaOutputDev *dev = (SlaOutputDev*)user_data;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+	const PDFRectangle& annotRect = annota->getRect();;
-+	const PDFRectangle* box = &annotRect;
-+#else
- 	PDFRectangle *box = annota->getRect();
-+#endif
- 	double xCoor = dev->m_doc->currentPage()->xOffset() + box->x1 - dev->cropOffsetX;
- 	double yCoor = dev->m_doc->currentPage()->yOffset() + dev->m_doc->currentPage()->height() - box->y2 + dev->cropOffsetY;
- 	double width = box->x2 - box->x1;
-@@ -684,7 +694,12 @@ bool SlaOutputDev::handleWidgetAnnot(Annot* annota, double xCoor, double yCoor,
- 			if (apa || !achar)
- 			{
- 				AnoOutputDev *annotOutDev = new AnoOutputDev(m_doc, m_importedColors);
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+				const PDFRectangle& annotaRect = annota->getRect();
-+				Gfx* gfx = new Gfx(pdfDoc, annotOutDev, pdfDoc->getPage(m_actPage)->getResourceDict(), &annotaRect, nullptr);
-+#else
- 				Gfx *gfx = new Gfx(pdfDoc, annotOutDev, pdfDoc->getPage(m_actPage)->getResourceDict(), annota->getRect(), nullptr);
-+#endif
- 				ano->draw(gfx, false);
- 				if (!bgFound)
- 					m_currColorFill = annotOutDev->currColorFill;
-@@ -2916,22 +2931,27 @@ void SlaOutputDev::markPoint(POPPLER_CONST char *name, Dict *properties)
- 
- void SlaOutputDev::updateFont(GfxState *state)
- {
--	GfxFont *gfxFont;
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+	std::optional<GfxFontLoc> fontLoc;
-+	std::string fileName;
-+	std::unique_ptr<FoFiTrueType> ff;
-+	std::optional<std::vector<unsigned char>> tmpBuf;
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
- 	std::optional<GfxFontLoc> fontLoc;
- 	const GooString * fileName = nullptr;
- 	std::unique_ptr<FoFiTrueType> ff;
-+	char* tmpBuf = nullptr;
- #else
- 	GfxFontLoc * fontLoc = nullptr;
- 	GooString * fileName = nullptr;
- 	FoFiTrueType * ff = nullptr;
-+	char* tmpBuf = nullptr;
- #endif
- 	GfxFontType fontType;
- 	SlaOutFontFileID *id;
- 	SplashFontFile *fontFile;
- 	SplashFontSrc *fontsrc = nullptr;
- 	Object refObj, strObj;
--	char *tmpBuf = nullptr;
- 	int tmpBufLen = 0;
- 	int *codeToGID = nullptr;
- 	const double *textMat = nullptr;
-@@ -2943,7 +2963,11 @@ void SlaOutputDev::updateFont(GfxState *state)
- 
- 	m_font = nullptr;
- 
--	gfxFont = state->getFont();
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+	GfxFont* gfxFont = state->getFont().get();
-+#else
-+	GfxFont* gfxFont = state->getFont();
-+#endif
- 	if (!gfxFont)
- 		goto err1;
- 
-@@ -2968,15 +2992,23 @@ void SlaOutputDev::updateFont(GfxState *state)
- 		if (fontLoc->locType == gfxFontLocEmbedded)
- 		{
- 			// if there is an embedded font, read it to memory
--			tmpBuf = gfxFont->readEmbFontFile(xref, &tmpBufLen);
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+			tmpBuf = gfxFont->readEmbFontFile((xref) ? xref : pdfDoc->getXRef());
- 			if (! tmpBuf)
- 				goto err2;
-+#else
-+			tmpBuf = gfxFont->readEmbFontFile(xref, &tmpBufLen);
-+			if (!tmpBuf)
-+				goto err2;
-+#endif
- 
- 			// external font
- 		}
- 		else
- 		{ // gfxFontLocExternal
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+			fileName = fontLoc->path;
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
- 			fileName = fontLoc->pathAsGooString();
- #else
- 			fileName = fontLoc->path;
-@@ -2985,52 +3017,54 @@ void SlaOutputDev::updateFont(GfxState *state)
- 		}
- 
- 		fontsrc = new SplashFontSrc;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+		if (!fileName.empty())
-+			fontsrc->setFile(fileName);
-+		else
-+			fontsrc->setBuf(std::move(tmpBuf.value()));
-+#else
- 		if (fileName)
- 			fontsrc->setFile(fileName, gFalse);
- 		else
- 			fontsrc->setBuf(tmpBuf, tmpBufLen, gTrue);
-+#endif
- 
- 		// load the font file
- 		switch (fontType) {
- 		case fontType1:
--			if (!(fontFile = m_fontEngine->loadType1Font(
--				id,
--				fontsrc,
--				(const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
-+			if (!(fontFile = m_fontEngine->loadType1Font(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
- 			{
--				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
--				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
-+				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
- 				goto err2;
- 			}
- 			break;
- 		case fontType1C:
--			if (!(fontFile = m_fontEngine->loadType1CFont(
--							id,
--							fontsrc,
--							(const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
-+			if (!(fontFile = m_fontEngine->loadType1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
- 			{
--				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
--				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
-+				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
- 				goto err2;
- 			}
- 			break;
- 		case fontType1COT:
--			if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(
--							id,
--							fontsrc,
--							(const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
-+			if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
- 			{
--				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
--				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
-+				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
- 				goto err2;
- 			}
- 			break;
- 		case fontTrueType:
- 		case fontTrueTypeOT:
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+			if (!fileName.empty())
-+				ff = FoFiTrueType::load(fileName.c_str());
-+			else
-+				ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size());
-+#else
- 			if (fileName)
- 				ff = FoFiTrueType::load(fileName->getCString());
- 			else
- 				ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
-+#endif
- 			if (ff)
- 			{
- #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
-@@ -3047,24 +3081,17 @@ void SlaOutputDev::updateFont(GfxState *state)
- 				codeToGID = nullptr;
- 				n = 0;
- 			}
--			if (!(fontFile = m_fontEngine->loadTrueTypeFont(
--							id,
--							fontsrc,
--							codeToGID, n)))
-+			if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n)))
- 			{
--				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
--				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
-+				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
- 				goto err2;
- 			}
- 			break;
- 		case fontCIDType0:
- 		case fontCIDType0C:
--			if (!(fontFile = m_fontEngine->loadCIDFont(
--							id,
--							fontsrc)))
-+			if (!(fontFile = m_fontEngine->loadCIDFont(id, fontsrc)))
- 			{
--				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
--				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
-+				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
- 				goto err2;
- 			}
- 			break;
-@@ -3080,10 +3107,7 @@ void SlaOutputDev::updateFont(GfxState *state)
- 				codeToGID = nullptr;
- 				n = 0;
- 			}
--			if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(
--							id,
--							fontsrc,
--							codeToGID, n)))
-+			if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(id, fontsrc, codeToGID, n)))
- 			{
- 				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
- 				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
-@@ -3105,10 +3129,17 @@ void SlaOutputDev::updateFont(GfxState *state)
- 			}
- 			else
- 			{
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
-+				if (!fileName.empty())
-+					ff = FoFiTrueType::load(fileName.c_str());
-+				else
-+					ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size());
-+#else
- 				if (fileName)
- 					ff = FoFiTrueType::load(fileName->getCString());
- 				else
- 					ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
-+#endif
- 				if (! ff)
- 					goto err2;
- #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
-@@ -3119,13 +3150,9 @@ void SlaOutputDev::updateFont(GfxState *state)
- 				delete ff;
- #endif
- 			}
--			if (!(fontFile = m_fontEngine->loadTrueTypeFont(
--							id,
--							fontsrc,
--							codeToGID, n, faceIndex)))
-+			if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n, faceIndex)))
- 			{
--				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
--				gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
-+				error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
- 				goto err2;
- 			}
- 			break;
-@@ -3269,9 +3296,15 @@ void SlaOutputDev::drawChar(GfxState* state, double x, double y, double dx, doub
- GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, POPPLER_CONST_082 Unicode *u, int uLen)
- {
- //	qDebug() << "beginType3Char";
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
- 	GfxFont *gfxFont;
-+	if (!(gfxFont = state->getFont().get()))
-+		return gTrue;
-+#else
-+	GfxFont* gfxFont;
- 	if (!(gfxFont = state->getFont()))
- 		return gTrue;
-+#endif
- 	if (gfxFont->getType() != fontType3)
- 		return gTrue;
- 	F3Entry f3e;
diff --git a/gnu/packages/patches/scribus-1.5.8-poppler-22.09.0.patch b/gnu/packages/patches/scribus-1.5.8-poppler-22.09.0.patch
deleted file mode 100644
index 106a6f5162..0000000000
--- a/gnu/packages/patches/scribus-1.5.8-poppler-22.09.0.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/scribus/plugins/import/pdf/slaoutput.cpp
-+++ b/scribus/plugins/import/pdf/slaoutput.cpp
-@@ -3741,9 +3741,16 @@ void SlaOutputDev::getPenState(GfxState *state)
- 			break;
- 	}
- 	double lw = state->getLineWidth();
--	double *dashPattern;
- 	int dashLength;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 9, 0)
-+	const double *dashPattern;
-+	const std::vector<double> &dash = state->getLineDash(&DashOffset);
-+	dashPattern = dash.data();
-+	dashLength = dash.size();
-+#else
-+	double *dashPattern;
- 	state->getLineDash(&dashPattern, &dashLength, &DashOffset);
-+#endif
- 	QVector<double> pattern(dashLength);
- 	for (int i = 0; i < dashLength; ++i)
- 	{
diff --git a/gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-1.patch b/gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-1.patch
deleted file mode 100644
index 4e0f607c6a..0000000000
--- a/gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-1.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 85c0dff3422fa3c26fbc2e8d8561f597ec24bd92 Mon Sep 17 00:00:00 2001
-From: Jean Ghali <jghali@libertysurf.fr>
-Date: Wed, 2 Feb 2022 23:12:52 +0000
-Subject: [PATCH] #16734: Build break with poppler 22.2.0
-
-git-svn-id: svn://scribus.net/trunk/Scribus@24884 11d20701-8431-0410-a711-e3c959e3b870
----
- scribus/plugins/import/pdf/slaoutput.cpp | 47 +++++++++++++++++++-----
- 1 file changed, 37 insertions(+), 10 deletions(-)
-
-diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
-index 5894bf2ad6..3650c96f52 100644
---- a/scribus/plugins/import/pdf/slaoutput.cpp
-+++ b/scribus/plugins/import/pdf/slaoutput.cpp
-@@ -7,6 +7,11 @@ for which a new license (GPL+exception) is in place.
- 
- #include "slaoutput.h"
- 
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
-+#include <memory>
-+#include <optional>
-+#endif
-+
- #include <poppler/GlobalParams.h>
- #include <poppler/poppler-config.h>
- #include <poppler/FileSpec.h>
-@@ -3027,18 +3032,24 @@ void SlaOutputDev::markPoint(POPPLER_CONST char *name, Dict *properties)
- void SlaOutputDev::updateFont(GfxState *state)
- {
- 	GfxFont *gfxFont;
--	GfxFontLoc *fontLoc;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
-+	std::optional<GfxFontLoc> fontLoc;
-+	const GooString * fileName = nullptr;
-+	std::unique_ptr<FoFiTrueType> ff;
-+#else
-+	GfxFontLoc * fontLoc = nullptr;
-+	GooString * fileName = nullptr;
-+	FoFiTrueType * ff = nullptr;
-+#endif
- 	GfxFontType fontType;
- 	SlaOutFontFileID *id;
- 	SplashFontFile *fontFile;
- 	SplashFontSrc *fontsrc = nullptr;
--	FoFiTrueType *ff;
- 	Object refObj, strObj;
--	GooString *fileName;
--	char *tmpBuf;
-+	char *tmpBuf = nullptr;
- 	int tmpBufLen = 0;
--	int *codeToGID;
--	const double *textMat;
-+	int *codeToGID = nullptr;
-+	const double *textMat = nullptr;
- 	double m11, m12, m21, m22, fontSize;
- 	SplashCoord mat[4];
- 	int n = 0;
-@@ -3046,9 +3057,6 @@ void SlaOutputDev::updateFont(GfxState *state)
- 	SplashCoord matrix[6];
- 
- 	m_font = nullptr;
--	fileName = nullptr;
--	tmpBuf = nullptr;
--	fontLoc = nullptr;
- 
- 	gfxFont = state->getFont();
- 	if (!gfxFont)
-@@ -3083,7 +3091,11 @@ void SlaOutputDev::updateFont(GfxState *state)
- 		}
- 		else
- 		{ // gfxFontLocExternal
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
-+			fileName = fontLoc->pathAsGooString();
-+#else
- 			fileName = fontLoc->path;
-+#endif
- 			fontType = fontLoc->fontType;
- 		}
- 
-@@ -3136,9 +3148,14 @@ void SlaOutputDev::updateFont(GfxState *state)
- 				ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
- 			if (ff)
- 			{
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
-+				codeToGID = ((Gfx8BitFont*) gfxFont)->getCodeToGIDMap(ff.get());
-+				ff.reset();
-+#else
- 				codeToGID = ((Gfx8BitFont *)gfxFont)->getCodeToGIDMap(ff);
--				n = 256;
- 				delete ff;
-+#endif
-+				n = 256;
- 			}
- 			else
- 			{
-@@ -3209,8 +3226,13 @@ void SlaOutputDev::updateFont(GfxState *state)
- 					ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
- 				if (! ff)
- 					goto err2;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
-+				codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get(), &n);
-+				ff.reset();
-+#else
- 				codeToGID = ((GfxCIDFont *)gfxFont)->getCodeToGIDMap(ff, &n);
- 				delete ff;
-+#endif
- 			}
- 			if (!(fontFile = m_fontEngine->loadTrueTypeFont(
- 							id,
-@@ -3247,14 +3269,19 @@ void SlaOutputDev::updateFont(GfxState *state)
- 	mat[3] = -m22;
- 	m_font = m_fontEngine->getFont(fontFile, mat, matrix);
- 
-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0)
- 	delete fontLoc;
-+#endif
- 	if (fontsrc && !fontsrc->isFile)
- 		fontsrc->unref();
- 	return;
- 
- err2:
- 	delete id;
-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0)
- 	delete fontLoc;
-+#endif
-+
- err1:
- 	if (fontsrc && !fontsrc->isFile)
- 		fontsrc->unref();
diff --git a/gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-2.patch b/gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-2.patch
deleted file mode 100644
index 73beac2d70..0000000000
--- a/gnu/packages/patches/scribus-1.5.8-poppler-22.2.0-2.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f75c1613db67f4067643d0218a2db3235e42ec9f Mon Sep 17 00:00:00 2001
-From: Jean Ghali <jghali@libertysurf.fr>
-Date: Thu, 3 Feb 2022 19:46:13 +0000
-Subject: [PATCH] Small update vs latest code in poppler
-
-git-svn-id: svn://scribus.net/trunk/Scribus@24885 11d20701-8431-0410-a711-e3c959e3b870
----
- scribus/plugins/import/pdf/slaoutput.cpp | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
-index 3650c96f52..a6f4e00fa9 100644
---- a/scribus/plugins/import/pdf/slaoutput.cpp
-+++ b/scribus/plugins/import/pdf/slaoutput.cpp
-@@ -3072,10 +3072,10 @@ void SlaOutputDev::updateFont(GfxState *state)
- 		delete id;
- 	else
- 	{
--		if (!(fontLoc = gfxFont->locateFont(xref, nullptr)))
-+		fontLoc = gfxFont->locateFont((xref) ? xref : pdfDoc->getXRef(), nullptr);
-+		if (!fontLoc)
- 		{
--			error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'",
--			gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
-+			error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
- 			goto err2;
- 		}
- 
diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm
index ba32361575..02dd0e3c6e 100644
--- a/gnu/packages/scribus.scm
+++ b/gnu/packages/scribus.scm
@@ -50,20 +50,14 @@
 (define-public scribus
   (package
     (name "scribus")
-    (version "1.5.8")
+    (version "1.6.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://sourceforge/scribus/scribus-devel/"
-                           version "/scribus-" version ".tar.xz"))
+       (uri (string-append "mirror://sourceforge/scribus/scribus/"
+                           version "/scribus-" version ".tar.gz"))
        (sha256
-        (base32 "0x3bw58v920akca8jxvsfwf468pzjyglk93ay67ph1bdry7nx0a7"))
-       (patches
-        (search-patches "scribus-1.5.8-poppler-22.2.0-1.patch"
-                        "scribus-1.5.8-poppler-22.2.0-2.patch"
-                        "scribus-1.5.8-poppler-22.03.0.patch"
-                        "scribus-1.5.8-poppler-22.04.0.patch"
-                        "scribus-1.5.8-poppler-22.09.0.patch"))))
+        (base32 "1kqqffx5xz35mwd422s4i110794zzx9sc2bn2mg77rz02hrxdhxg"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no test target
-- 
cgit v1.2.3


From cd042f3a8efe85754a35979fadb392157ec12367 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Mon, 4 Mar 2024 11:55:45 +0200
Subject: gnu: Remove libtommath-1.1.

* gnu/packages/multiprecision.scm (libtommath-1.1): Delete variable.
* gnu/packages/patches/libtommath-fix-linkage.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.

Change-Id: I3a2bb697cbb72716756c24643920008e919889b5
---
 gnu/local.mk                                      |  1 -
 gnu/packages/multiprecision.scm                   | 25 -----------
 gnu/packages/patches/libtommath-fix-linkage.patch | 55 -----------------------
 3 files changed, 81 deletions(-)
 delete mode 100644 gnu/packages/patches/libtommath-fix-linkage.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 67a0eab466..5e7fbf3545 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1608,7 +1608,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/libtiff-CVE-2022-34526.patch		\
   %D%/packages/patches/libtirpc-CVE-2021-46828.patch		\
   %D%/packages/patches/libtirpc-hurd.patch			\
-  %D%/packages/patches/libtommath-fix-linkage.patch		\
   %D%/packages/patches/libtommath-integer-overflow.patch	\
   %D%/packages/patches/libtool-grep-compat.patch		\
   %D%/packages/patches/libtool-skip-tests2.patch		\
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index a81b2771ab..18a269ddc7 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -505,28 +505,3 @@ integer library written entirely in C.  It's designed to provide an API that is
 simple to work with that provides fairly efficient routines that build out of
 the box without configuration.")
     (license unlicense)))
-
-(define-public libtommath-1.1
-  (package
-    (inherit libtommath)
-    (version "1.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/libtom/libtommath/releases/"
-                            "download/v" version "/ltm-" version ".tar.xz"))
-        (sha256
-         (base32
-          "1bbyagqzfdbg37k1n08nsqzdf44z8zsnjjinqbsyj7rxg246qilh"))
-        (patches (search-patches "libtommath-fix-linkage.patch"))))
-    (arguments
-      (substitute-keyword-arguments (package-arguments libtommath)
-        ((#:phases phases)
-         `(modify-phases ,phases
-            (add-after 'unpack 'patch-coreutils-call
-              (lambda _
-                ;; Don't pull in coreutils.
-                (substitute* "makefile_include.mk"
-                  (("arch") "uname -m"))
-                #t))))
-        ((#:test-target _) "test_standalone")))))
diff --git a/gnu/packages/patches/libtommath-fix-linkage.patch b/gnu/packages/patches/libtommath-fix-linkage.patch
deleted file mode 100644
index 1a9d46eb7c..0000000000
--- a/gnu/packages/patches/libtommath-fix-linkage.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-https://github.com/libtom/libtommath/commit/93dea3a4162527346cd8856bfda6f17ffe98ab04.patch
-
-From 93dea3a4162527346cd8856bfda6f17ffe98ab04 Mon Sep 17 00:00:00 2001
-From: Steffen Jaeckel <s@jaeckel.eu>
-Date: Thu, 31 Jan 2019 14:12:03 +0100
-Subject: [PATCH] makefile.shared: fix compilation and linkage
-
----
- makefile.shared | 15 ++++++++-------
- 1 file changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/makefile.shared b/makefile.shared
-index 3955f830..870b18d1 100644
---- a/makefile.shared
-+++ b/makefile.shared
-@@ -18,6 +18,7 @@ ifndef LIBTOOL
-   endif
- endif
- LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC)
-+LTLINK = $(LIBTOOL) --mode=link --tag=CC $(CC)
- 
- LCOV_ARGS=--directory .libs --directory .
- 
-@@ -59,7 +60,7 @@ objs: $(OBJECTS)
- LOBJECTS = $(OBJECTS:.o=.lo)
- 
- $(LIBNAME):  $(OBJECTS)
--	$(LIBTOOL) --mode=link --tag=CC $(CC) $(LDFLAGS) $(LOBJECTS) -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_SO) $(LIBTOOLFLAGS)
-+	$(LTLINK) $(LDFLAGS) $(LOBJECTS) -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_SO) $(LIBTOOLFLAGS)
- 
- install: $(LIBNAME)
- 	install -d $(DESTDIR)$(LIBPATH)
-@@ -76,16 +77,16 @@ uninstall:
- 	rm $(DESTDIR)$(LIBPATH)/pkgconfig/libtommath.pc
- 
- test: $(LIBNAME) demo/demo.o
--	$(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
--	$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
-+	$(LTCOMPILE) $(CFLAGS) -c demo/demo.c -o demo/demo.o
-+	$(LTLINK) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
- 
- test_standalone: $(LIBNAME) demo/demo.o
--	$(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
--	$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
-+	$(LTCOMPILE) $(CFLAGS) -c demo/demo.c -o demo/demo.o
-+	$(LTLINK) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
- 
- .PHONY: mtest
- mtest:
--	cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest
-+	cd mtest ; $(CC) $(CFLAGS) -O0 mtest.c $(LDFLAGS) -o mtest
- 
- timing: $(LIBNAME) demo/timing.c
--	$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o timing
-+	$(LTLINK) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o timing
-- 
cgit v1.2.3


From f9207c33780eaf97acdc209ef8bf5125c784a6f2 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Mon, 4 Mar 2024 11:58:50 +0200
Subject: gnu: libtommath: Update to 1.2.1.

* gnu/packages/multiprecision.scm (libtommath): Update to 1.2.1.
[source]: Remove patch.
[arguments]: Remove trailing #t from phases.
[properties]: Add upstream-name, lint-hidden-cve.
* gnu/packages/patches/libtommath-integer-overflow.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.

Change-Id: I4c1de43b4083e0649fcb493a5c304736e41ab4b8
---
 gnu/local.mk                                       |   1 -
 gnu/packages/multiprecision.scm                    |  13 +-
 .../patches/libtommath-integer-overflow.patch      | 140 ---------------------
 3 files changed, 6 insertions(+), 148 deletions(-)
 delete mode 100644 gnu/packages/patches/libtommath-integer-overflow.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 5e7fbf3545..83937db4c8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1608,7 +1608,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/libtiff-CVE-2022-34526.patch		\
   %D%/packages/patches/libtirpc-CVE-2021-46828.patch		\
   %D%/packages/patches/libtirpc-hurd.patch			\
-  %D%/packages/patches/libtommath-integer-overflow.patch	\
   %D%/packages/patches/libtool-grep-compat.patch		\
   %D%/packages/patches/libtool-skip-tests2.patch		\
   %D%/packages/patches/libtree-fix-check-non-x86.patch		\
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index 18a269ddc7..daa3144bd3 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -455,7 +455,7 @@ number generators, public key cryptography and a plethora of other routines.")
 (define-public libtommath
   (package
     (name "libtommath")
-    (version "1.2.0")
+    (version "1.2.1")
     (outputs '("out" "static"))
     (source
       (origin
@@ -464,8 +464,7 @@ number generators, public key cryptography and a plethora of other routines.")
                             "download/v" version "/ltm-" version ".tar.xz"))
         (sha256
          (base32
-          "1c8q1qy88cjhdjlk3g24mra94h34c1ldvkjz0n2988c0yvn5xixp"))
-        (patches (search-patches "libtommath-integer-overflow.patch"))))
+          "07qdxnmp5bhfw5za6mr2l2w0vb7494v9zs9h5vp6y9vlngbjaq4q"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -476,13 +475,11 @@ number generators, public key cryptography and a plethora of other routines.")
              ;; We want the shared library by default so force it to be the
              ;; default makefile target.
              (delete-file "makefile")
-             (symlink "makefile.shared" "makefile")
-             #t))
+             (symlink "makefile.shared" "makefile")))
          (add-after 'install 'remove-static-library
            (lambda* (#:key outputs #:allow-other-keys)
              (delete-file (string-append (assoc-ref outputs "out")
-                                         "/lib/libtommath.a"))
-             #t))
+                                         "/lib/libtommath.a"))))
          (replace 'check
            (lambda* (#:key tests? test-target make-flags #:allow-other-keys)
              (when tests?
@@ -504,4 +501,6 @@ number generators, public key cryptography and a plethora of other routines.")
 integer library written entirely in C.  It's designed to provide an API that is
 simple to work with that provides fairly efficient routines that build out of
 the box without configuration.")
+    (properties `((upstream-name . "ltm")
+                  (lint-hidden-cve . ("CVE-2023-36328"))))
     (license unlicense)))
diff --git a/gnu/packages/patches/libtommath-integer-overflow.patch b/gnu/packages/patches/libtommath-integer-overflow.patch
deleted file mode 100644
index 5241726775..0000000000
--- a/gnu/packages/patches/libtommath-integer-overflow.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-This patch is from upstream:
-https://github.com/libtom/libtommath/pull/546
-
-From beba892bc0d4e4ded4d667ab1d2a94f4d75109a9 Mon Sep 17 00:00:00 2001
-From: czurnieden <czurnieden@gmx.de>
-Date: Tue, 9 May 2023 17:17:12 +0200
-Subject: [PATCH] Fix possible integer overflow
-
----
- bn_mp_2expt.c                | 4 ++++
- bn_mp_grow.c                 | 4 ++++
- bn_mp_init_size.c            | 5 +++++
- bn_mp_mul_2d.c               | 4 ++++
- bn_s_mp_mul_digs.c           | 4 ++++
- bn_s_mp_mul_digs_fast.c      | 4 ++++
- bn_s_mp_mul_high_digs.c      | 4 ++++
- bn_s_mp_mul_high_digs_fast.c | 4 ++++
- 8 files changed, 33 insertions(+)
-
-diff --git a/bn_mp_2expt.c b/bn_mp_2expt.c
-index 0ae3df1bf..23de0c3c5 100644
---- a/bn_mp_2expt.c
-+++ b/bn_mp_2expt.c
-@@ -12,6 +12,10 @@ mp_err mp_2expt(mp_int *a, int b)
- {
-    mp_err    err;
- 
-+   if (b < 0) {
-+      return MP_VAL;
-+   }
-+
-    /* zero a as per default */
-    mp_zero(a);
- 
-diff --git a/bn_mp_grow.c b/bn_mp_grow.c
-index 9e904c547..2b1682651 100644
---- a/bn_mp_grow.c
-+++ b/bn_mp_grow.c
-@@ -9,6 +9,10 @@ mp_err mp_grow(mp_int *a, int size)
-    int     i;
-    mp_digit *tmp;
- 
-+   if (size < 0) {
-+      return MP_VAL;
-+   }
-+
-    /* if the alloc size is smaller alloc more ram */
-    if (a->alloc < size) {
-       /* reallocate the array a->dp
-diff --git a/bn_mp_init_size.c b/bn_mp_init_size.c
-index d62268721..99573833f 100644
---- a/bn_mp_init_size.c
-+++ b/bn_mp_init_size.c
-@@ -6,6 +6,11 @@
- /* init an mp_init for a given size */
- mp_err mp_init_size(mp_int *a, int size)
- {
-+
-+   if (size < 0) {
-+      return MP_VAL;
-+   }
-+
-    size = MP_MAX(MP_MIN_PREC, size);
- 
-    /* alloc mem */
-diff --git a/bn_mp_mul_2d.c b/bn_mp_mul_2d.c
-index 87354de20..bfeaf2eb2 100644
---- a/bn_mp_mul_2d.c
-+++ b/bn_mp_mul_2d.c
-@@ -9,6 +9,10 @@ mp_err mp_mul_2d(const mp_int *a, int b, mp_int *c)
-    mp_digit d;
-    mp_err   err;
- 
-+   if (b < 0) {
-+      return MP_VAL;
-+   }
-+
-    /* copy */
-    if (a != c) {
-       if ((err = mp_copy(a, c)) != MP_OKAY) {
-diff --git a/bn_s_mp_mul_digs.c b/bn_s_mp_mul_digs.c
-index 64509d4cb..3682b4980 100644
---- a/bn_s_mp_mul_digs.c
-+++ b/bn_s_mp_mul_digs.c
-@@ -16,6 +16,10 @@ mp_err s_mp_mul_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs)
-    mp_word r;
-    mp_digit tmpx, *tmpt, *tmpy;
- 
-+   if (digs < 0) {
-+      return MP_VAL;
-+   }
-+
-    /* can we use the fast multiplier? */
-    if ((digs < MP_WARRAY) &&
-        (MP_MIN(a->used, b->used) < MP_MAXFAST)) {
-diff --git a/bn_s_mp_mul_digs_fast.c b/bn_s_mp_mul_digs_fast.c
-index b2a287b02..3c4176a87 100644
---- a/bn_s_mp_mul_digs_fast.c
-+++ b/bn_s_mp_mul_digs_fast.c
-@@ -26,6 +26,10 @@ mp_err s_mp_mul_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int digs)
-    mp_digit W[MP_WARRAY];
-    mp_word  _W;
- 
-+   if (digs < 0) {
-+      return MP_VAL;
-+   }
-+
-    /* grow the destination as required */
-    if (c->alloc < digs) {
-       if ((err = mp_grow(c, digs)) != MP_OKAY) {
-diff --git a/bn_s_mp_mul_high_digs.c b/bn_s_mp_mul_high_digs.c
-index 2bb2a5098..c9dd355f8 100644
---- a/bn_s_mp_mul_high_digs.c
-+++ b/bn_s_mp_mul_high_digs.c
-@@ -15,6 +15,10 @@ mp_err s_mp_mul_high_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs)
-    mp_word  r;
-    mp_digit tmpx, *tmpt, *tmpy;
- 
-+   if (digs < 0) {
-+      return MP_VAL;
-+   }
-+
-    /* can we use the fast multiplier? */
-    if (MP_HAS(S_MP_MUL_HIGH_DIGS_FAST)
-        && ((a->used + b->used + 1) < MP_WARRAY)
-diff --git a/bn_s_mp_mul_high_digs_fast.c b/bn_s_mp_mul_high_digs_fast.c
-index a2c4fb692..4ce7f590c 100644
---- a/bn_s_mp_mul_high_digs_fast.c
-+++ b/bn_s_mp_mul_high_digs_fast.c
-@@ -19,6 +19,10 @@ mp_err s_mp_mul_high_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int
-    mp_digit W[MP_WARRAY];
-    mp_word  _W;
- 
-+   if (digs < 0) {
-+      return MP_VAL;
-+   }
-+
-    /* grow the destination as required */
-    pa = a->used + b->used;
-    if (c->alloc < pa) {
-- 
cgit v1.2.3


From cd4c01e010ba7026fea17f523ff3a22fc982f3b2 Mon Sep 17 00:00:00 2001
From: Andy Tai <atai@atai.org>
Date: Tue, 27 Feb 2024 21:57:04 -0800
Subject: gnu: font-gnu-unifont: Update to 15.1.05.

* gnu/packages/fonts.scm (font-gnu-unifont): Update to 15.1.05.

Change-Id: I79b51df78735d52afc5dde129bff299f3e83b7f6
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/fonts.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 2cc420f7ba..2509aa65f2 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -1013,7 +1013,7 @@ for use at smaller text sizes")))
 (define-public font-gnu-unifont
   (package
     (name "font-gnu-unifont")
-    (version "15.1.01")
+    (version "15.1.05")
     (source
      (origin
        (method url-fetch)
@@ -1023,7 +1023,7 @@ for use at smaller text sizes")))
              (string-append "mirror://gnu/unifont/unifont-"
                             version "/unifont-" version ".tar.gz")))
        (sha256
-        (base32 "1dydcqa2nvmnij5jzj10carrzssd3ar24i8zd18pk4zpl84l4pz1"))
+        (base32 "1yi33kxlgw7ds99za5bclh537sw8ggl94nrhhq7hwxaq8dgzaxfj"))
        (snippet
         '(begin
            (use-modules (guix build utils))
-- 
cgit v1.2.3


From 85d564b0fc9257d7d24a9bf4312f56509b6dc341 Mon Sep 17 00:00:00 2001
From: Zheng Junjie <zhengjunjie@iscas.ac.cn>
Date: Thu, 29 Feb 2024 21:39:36 +0800
Subject: gnu: gcc@11: fix 'compiler-cpu-architectures' property.

* gnu/packages/gcc.scm (%gcc-11-x86_64-micro-architectures): fix
typo `alterlake' to `alderlake'.

Change-Id: Ia1a7af3f25040101f6995b6a4df5f298bfbbeb44
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/gcc.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index ff830f8b35..3abecdeadd 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -618,7 +619,7 @@ Go.  It also includes runtime support libraries for these languages.")
 (define %gcc-11-x86_64-micro-architectures
   ;; Suitable '-march' values for GCC 11.
   (append %gcc-10-x86_64-micro-architectures
-          '("sapphirerapids" "alterlake" "rocketlake" ;Intel
+          '("sapphirerapids" "alderlake" "rocketlake" ;Intel
 
             "btver1" "btver2"                     ;AMD
 
-- 
cgit v1.2.3


From b9f87817a193a3ff4769602aa33e3e2f7776fa05 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Mon, 4 Mar 2024 13:49:32 +0200
Subject: guix: cpu: Update x86_64 CPUs.

* guix/cpu.scm (cpu->gcc-architecture): Add graniterapids-d,
pantherlake, clearwaterforest, arrowlake-s, yongfeng.  Remove
grandridge.  Update CPU flags for searching to match architecture.
(gcc-architecture->micro-architecture-level): Adjust listed
architectures and sort in order used above.

Change-Id: I186ab6e396e36c34f7c61827e02f637716993141
---
 guix/cpu.scm | 41 ++++++++++++++++++++++++-----------------
 1 file changed, 24 insertions(+), 17 deletions(-)

diff --git a/guix/cpu.scm b/guix/cpu.scm
index 29ad883584..c5837ade7f 100644
--- a/guix/cpu.scm
+++ b/guix/cpu.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022-2024 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -128,18 +128,21 @@ corresponds to CPU, a record as returned by 'current-cpu'."
 
        (or (and (equal? "GenuineIntel" (cpu-vendor cpu))
                 (= 6 (cpu-family cpu))              ;the "Pentium Pro" family
-                (if-flags ("avx" "raoint" => "grandridge")
-                          ("avx" "amx_fp16" => "graniterapids")
+                (if-flags ("avx512f" "amx_complex" => "graniterapids-d")
+                          ("avx512f" "amx_fp16" => "graniterapids")
+                          ("avx512f" "avx512vp2intersect" => "tigerlake")
+                          ("avx512f" "tsxldtrk" => "sapphirerapids")
+                          ("avx512f" "avx512bf16" => "cooperlake")
+                          ("avx512f" "wbnoinvd" => "icelake-server")
+                          ("avx512f" "avx512bitalg" => "icelake-client")
+                          ("avx512f" "avx512vbmi" => "cannonlake")
+                          ("avx512f" "avx5124vnniw" => "knm")
+                          ("avx512f" "avx512er" => "knl")
+                          ("avx512f" => "skylake-avx512")
+                          ("avx" "prefetchi" => "pantherlake")
+                          ("avx" "user_msr" => "clearwaterforest")
+                          ("avx" "sm3" => "arrowlake-s")
                           ("avx" "avxvnniint8" => "sierraforest")
-                          ("avx" "avx512vp2intersect" => "tigerlake")
-                          ("avx" "tsxldtrk" => "sapphirerapids")
-                          ("avx" "avx512bf16" => "cooperlake")
-                          ("avx" "wbnoinvd" => "icelake-server")
-                          ("avx" "avx512bitalg" => "icelake-client")
-                          ("avx" "avx512vbmi" => "cannonlake")
-                          ("avx" "avx5124vnniw" => "knm")
-                          ("avx" "avx512er" => "knl")
-                          ("avx" "avx512f" => "skylake-avx512")
                           ("avx" "serialize" => "alderlake")
                           ("avx" "clflushopt" => "skylake")
                           ("avx" "adx" => "broadwell")
@@ -190,6 +193,10 @@ corresponds to CPU, a record as returned by 'current-cpu'."
                     (= #x3b (cpu-model cpu)))
              "lujiazui"
              (cpu->micro-architecture-level cpu))
+           (if (and (= 7 (cpu-family cpu))
+                    (>= #x5b (cpu-model cpu)))
+             "yongfeng"
+             (cpu->micro-architecture-level cpu))
 
          ;; TODO: Recognize CENTAUR/CYRIX/NSC?
 
@@ -292,16 +299,16 @@ CPUs for compilers which don't allow for more focused optimizing."
   ;; 'Haswell and higher' qualify for x86_64-v3.
   ;; https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex
   (match gcc-architecture
-    ((or "grandridge" "graniterapids" "sierraforest" "tigerlake"
-         "sapphirerapids" "cooperlake" "icelake-server" "icelake-client"
-         "cannonlake" "knm" "knl" "skylake-avx512" "alderlake" "skylake"
-         "broadwell" "haswell"
+    ((or "graniterapids-d" "graniterapids" "tigerlake" "sapphirerapids"
+         "cooperlake" "icelake-server" "icelake-client" "cannonlake" "knm" "knl"
+         "skylake-avx512" "pantherlake" "clearwaterforest" "arrowlake-s"
+         "sierraforest" "alderlake" "skylake" "broadwell" "haswell"
          "znver4" "znver3" "znver2" "znver1" "bdver4")
      "x86_64-v3")
     ((or "sandybridge" "tremont" "goldmont-plus" "goldmont" "silvermont"
          "nehalem" "bonnell" "core2"
          "btver2" "athalon" "k8-sse3" "k8" "bdver3" "bdver2" "bdver1" "btver1"
          "amdfam10"
-         "lujiazui" "x86-64")
+         "lujiazui" "yongfeng" "x86-64")
      "x86_64-v1")
     (_ gcc-architecture)))
-- 
cgit v1.2.3


From 5dce7964ef7c368d421c5a0c8738be06ed57ea0e Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Mon, 4 Mar 2024 13:59:49 +0200
Subject: guix: cpu: Autodetect the x86-64-v4 microarchitecture.

* guix/cpu.scm (gcc-architecture->micro-architecture-level): Sort
gcc-architectures which have AVX512F support into x86-64-v4.

Change-Id: I8af0ceb692eefec7433e1fd5149379244da799c4
---
 guix/cpu.scm | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/guix/cpu.scm b/guix/cpu.scm
index c5837ade7f..6891d9f266 100644
--- a/guix/cpu.scm
+++ b/guix/cpu.scm
@@ -296,14 +296,17 @@ correspond roughly to CPU, a record as returned by 'current-cpu'."
   "Return a matching psABI micro-architecture, allowing optimizations for x86_64
 CPUs for compilers which don't allow for more focused optimizing."
   ;; Matching gcc-architectures isn't an easy task, with the rule-of-thumb being
-  ;; 'Haswell and higher' qualify for x86_64-v3.
+  ;; AVX512F+ for x86_64-v4, AVX+ for x86_64-v3.
   ;; https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex
   (match gcc-architecture
     ((or "graniterapids-d" "graniterapids" "tigerlake" "sapphirerapids"
-         "cooperlake" "icelake-server" "icelake-client" "cannonlake" "knm" "knl"
-         "skylake-avx512" "pantherlake" "clearwaterforest" "arrowlake-s"
-         "sierraforest" "alderlake" "skylake" "broadwell" "haswell"
-         "znver4" "znver3" "znver2" "znver1" "bdver4")
+         "cooperlake" "icelake-server" "icelake-client" "cannonlake" "knm"
+         "knl" "skylake-avx512"
+         "znver4")
+     "x86_64-v4")
+    ((or "pantherlake" "clearwaterforest" "arrowlake-s" "sierraforest"
+         "alderlake" "skylake" "broadwell" "haswell"
+         "znver3" "znver2" "znver1" "bdver4")
      "x86_64-v3")
     ((or "sandybridge" "tremont" "goldmont-plus" "goldmont" "silvermont"
          "nehalem" "bonnell" "core2"
-- 
cgit v1.2.3


From 29a9d0596f38ae1ab271dba4b827a4e318020732 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Tue, 5 Mar 2024 08:50:17 +0200
Subject: guix: cpu: Update aarch64 CPUs.

* guix/cpu.scm (cpu->gcc-architecture): Update list of CPUs from the
list in gcc.

Change-Id: Ifcd26c143fc9e3aaa0c5514e1dac4908d2780255
---
 guix/cpu.scm | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/guix/cpu.scm b/guix/cpu.scm
index 6891d9f266..e80b74f161 100644
--- a/guix/cpu.scm
+++ b/guix/cpu.scm
@@ -217,7 +217,9 @@ corresponds to CPU, a record as returned by 'current-cpu'."
           (#xd15
            "armv8-r")
           ((or #xd46 #xd47 #xd4d #xd48 #xd4e #xd49 #xd4f)
-           "armv9-a")))
+           "armv9-a")
+          ((or #xd80 #xd81)
+           "armv9.2-a")))
        ("0x42"
         "armv8.1-a")
        ("0x43"
@@ -248,8 +250,14 @@ corresponds to CPU, a record as returned by 'current-cpu'."
         "armv8-a")
        ("0x68"
         "armv8-a")
+       ("0x6d"
+        "armv9-a")
        ("0xC0"
-        "armv8.6-a")
+        (match (cpu-model cpu)
+          ((or #xac3 #xac4)
+           "armv8.6-a")
+          (#xac5
+           "armv8.7-a")))
        ("0xC00"
         "armv8-a")
        (_
-- 
cgit v1.2.3


From 32ac25a19b10ca1ad6120e917775025f657b003f Mon Sep 17 00:00:00 2001
From: TakeV <takev@disroot.org>
Date: Mon, 4 Mar 2024 18:00:43 -0500
Subject: gnu: git-annex: Update to 10.20240227.

* gnu/packages/haskell-apps.scm (git-annex): Update to 10.20240227.

Change-Id: I440fbc80f58671cbe515b7b0a1605dabe6fd76e3
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/haskell-apps.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 3288b0d0a9..3fce4f803c 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -294,7 +294,7 @@ to @code{cabal repl}).")
 (define-public git-annex
   (package
     (name "git-annex")
-    (version "10.20230926")
+    (version "10.20240227")
     (source
      (origin
        ;; hackage release doesn't include everything needed for extra bits.
@@ -304,7 +304,7 @@ to @code{cabal repl}).")
               (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0zsq686b0q7mlkybm1xrc0kpl32ymvf0ybar01p68wx800031b2b"))))
+        (base32 "023gk1v01ks367h4zz67ksn2xaw6pgcfhmniay6ipkncfqv8rsra"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "git-annex")))
     (arguments
-- 
cgit v1.2.3


From 4cca394dfd5f838dcc72649bd97a651db5b67163 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:10 +0100
Subject: gnu: Add rust-h3-0.0.2.

* gnu/packages/crates-web.scm (rust-h3-0.0.2): New variable.

Change-Id: I511f9bd64db17d12c38d2708e9dc1bd93b347667
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-web.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm
index 6650c26913..fe4945cf90 100644
--- a/gnu/packages/crates-web.scm
+++ b/gnu/packages/crates-web.scm
@@ -2045,6 +2045,27 @@ transfer coding.")
     (description "This package provides an async HTTP/3 implementation.")
     (license license:expat)))
 
+(define-public rust-h3-0.0.2
+  (package
+    (inherit rust-h3-0.0.3)
+    (name "rust-h3")
+    (version "0.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "h3" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17nbmkz6xs848257xv7gdhrnhyhagfb0dbqla82zv1nixr1wmrkd"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-bytes" ,rust-bytes-1)
+                       ("rust-fastrand" ,rust-fastrand-1)
+                       ("rust-futures-util" ,rust-futures-util-0.3)
+                       ("rust-http" ,rust-http-0.2)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-tracing" ,rust-tracing-0.1))))))
+
 (define-public rust-h3-quinn-0.0.4
   (package
     (name "rust-h3-quinn")
-- 
cgit v1.2.3


From 9793cc36355412fd0ea469a8d81bfcf1ce4632f0 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:11 +0100
Subject: gnu: Add rust-h3-quinn-0.0.3.

* gnu/packages/crates-web.scm (rust-h3-quinn-0.0.3): New variable.

Change-Id: Ib9012197310f4c862d9b0aedfbdd8259955f78e2
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-web.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm
index fe4945cf90..38f558598d 100644
--- a/gnu/packages/crates-web.scm
+++ b/gnu/packages/crates-web.scm
@@ -2092,6 +2092,26 @@ transfer coding.")
      "This package provides QUIC transport implementation based on Quinn.")
     (license license:expat)))
 
+(define-public rust-h3-quinn-0.0.3
+  (package
+    (inherit rust-h3-quinn-0.0.4)
+    (name "rust-h3-quinn")
+    (version "0.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "h3-quinn" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kf6bqmm751gwj24dqgb2rrwq8ibhv7z5v7ix4pfiwz4ccbiljid"))))
+    (arguments
+     `(#:cargo-inputs (("rust-bytes" ,rust-bytes-1)
+                       ("rust-futures" ,rust-futures-0.3)
+                       ("rust-h3" ,rust-h3-0.0.2)
+                       ("rust-quinn" ,rust-quinn-0.10)
+                       ("rust-quinn-proto" ,rust-quinn-proto-0.10)
+                       ("rust-tokio-util" ,rust-tokio-util-0.7))))))
+
 (define-public rust-headers-0.3
   (package
     (name "rust-headers")
-- 
cgit v1.2.3


From db8c5711f2108e7546c3603c13fbe0ef9d797800 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:12 +0100
Subject: gnu: Add rust-event-listener-strategy-0.1.

* gnu/packages/crates-io.scm (rust-event-listener-strategy-0.1): New
variable.

Change-Id: I15b35f677c57ec5205ea140e65c1b70042fbf661
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-io.scm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index aaf2157661..2290a28bad 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -22343,6 +22343,23 @@ blocking data structures.")
     (description "This package provides block and poll on event_listener.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-event-listener-strategy-0.1
+  (package
+    (inherit rust-event-listener-strategy-0.4)
+    (name "rust-event-listener-strategy")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "event-listener-strategy" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1z99km9lwya36bxhvrz4rsl3nhqhhlnnx7a2gdz4nzpa6177pj8m"))))
+    (arguments
+     `(#:cargo-inputs (("rust-event-listener" ,rust-event-listener-3)
+                       ("rust-pin-project-lite" ,rust-pin-project-lite-0.2))
+       #:cargo-development-inputs (("rust-futures-lite" ,rust-futures-lite-1))))))
+
 (define-public rust-executable-path-1
   (package
     (name "rust-executable-path")
-- 
cgit v1.2.3


From 1a1cf210a71f2b07ceb3ab08d1baeee951751d5d Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:13 +0100
Subject: gnu: Add rust-async-broadcast-0.6.

* gnu/packages/crates-io.scm (rust-async-broadcast-0.6): New variable.
(rust-async-broadcast-0.5): Inherit from it.

Change-Id: I942490385b625fa6f0cdec6f2c3262b84f06b76b
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-io.scm | 35 +++++++++++++++++++++++++++++------
 1 file changed, 29 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2290a28bad..88c1742bbe 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -3909,8 +3909,36 @@ capacity and random or least recently used (LRU) replacement.")
 Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-async-broadcast-0.6
+  (package
+    (name "rust-async-broadcast")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "async-broadcast" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0d1xk2pr5khk1radkbaf7pp7pbjkb18m43n2rgkfsfxk177pak9k"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-event-listener" ,rust-event-listener-3)
+        ("rust-event-listener-strategy" ,rust-event-listener-strategy-0.1)
+        ("rust-futures-core" ,rust-futures-core-0.3))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.3)
+                                   ("rust-doc-comment" ,rust-doc-comment-0.3)
+                                   ("rust-easy-parallel" ,rust-easy-parallel-3)
+                                   ("rust-futures-lite" ,rust-futures-lite-1)
+                                   ("rust-futures-util" ,rust-futures-util-0.3))))
+    (home-page "https://github.com/smol-rs/async-broadcast")
+    (synopsis "Async broadcast channels")
+    (description "This package provides async broadcast channels in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-async-broadcast-0.5
   (package
+    (inherit rust-async-broadcast-0.6)
     (name "rust-async-broadcast")
     (version "0.5.1")
     (source (origin
@@ -3920,7 +3948,6 @@ Rust.")
               (sha256
                (base32
                 "0avdqbci1qdlfc4glc3wqrb0wi5ffc7bqv2q1wg14syayvdwqj3w"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-event-listener" ,rust-event-listener-2)
@@ -3930,11 +3957,7 @@ Rust.")
         ("rust-doc-comment" ,rust-doc-comment-0.3)
         ("rust-easy-parallel" ,rust-easy-parallel-3)
         ("rust-futures-lite" ,rust-futures-lite-1)
-        ("rust-futures-util" ,rust-futures-util-0.3))))
-    (home-page "https://github.com/smol-rs/async-broadcast")
-    (synopsis "Async broadcast channels")
-    (description "This package provides async broadcast channels in Rust.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-futures-util" ,rust-futures-util-0.3))))))
 
 (define-public rust-async-channel-2
   (package
-- 
cgit v1.2.3


From 4b2c8deda8d7d0d6cbf7bf02490899c5e051f945 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:14 +0100
Subject: gnu: Add rust-hickory-proto-0.24.

* gnu/packages/crates-web.scm (rust-hickory-proto-0.24): New variable.

Change-Id: I0bf90d9b78fa830f8b61444c4cdb610c715d4d63
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-web.scm | 65 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm
index 38f558598d..d77e79838b 100644
--- a/gnu/packages/crates-web.scm
+++ b/gnu/packages/crates-web.scm
@@ -2199,6 +2199,71 @@ transfer coding.")
        (("rust-bytes" ,rust-bytes-0.4)
         ("rust-http" ,rust-http-0.1))))))
 
+(define-public rust-hickory-proto-0.24
+  (package
+    (name "rust-hickory-proto")
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hickory-proto" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1kxvdzmwwi1d6wsp9bcs91ipmwxcyhpwbvz3an9h0q28ryy6y6h9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-async-trait" ,rust-async-trait-0.1)
+                       ("rust-backtrace" ,rust-backtrace-0.3)
+                       ("rust-bytes" ,rust-bytes-1)
+                       ("rust-cfg-if" ,rust-cfg-if-1)
+                       ("rust-data-encoding" ,rust-data-encoding-2)
+                       ("rust-enum-as-inner" ,rust-enum-as-inner-0.6)
+                       ("rust-futures-channel" ,rust-futures-channel-0.3)
+                       ("rust-futures-io" ,rust-futures-io-0.3)
+                       ("rust-futures-util" ,rust-futures-util-0.3)
+                       ("rust-h2" ,rust-h2-0.3)
+                       ("rust-h3" ,rust-h3-0.0.2)
+                       ("rust-h3-quinn" ,rust-h3-quinn-0.0.3)
+                       ("rust-http" ,rust-http-0.2)
+                       ("rust-idna" ,rust-idna-0.4)
+                       ("rust-ipnet" ,rust-ipnet-2)
+                       ("rust-js-sys" ,rust-js-sys-0.3)
+                       ("rust-native-tls" ,rust-native-tls-0.2)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-openssl" ,rust-openssl-0.10)
+                       ("rust-quinn" ,rust-quinn-0.10)
+                       ("rust-rand" ,rust-rand-0.8)
+                       ("rust-ring" ,rust-ring-0.16)
+                       ("rust-rustls" ,rust-rustls-0.21)
+                       ("rust-rustls-native-certs" ,rust-rustls-native-certs-0.6)
+                       ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-socket2" ,rust-socket2-0.5)
+                       ("rust-thiserror" ,rust-thiserror-1)
+                       ("rust-tinyvec" ,rust-tinyvec-1)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-tokio-native-tls" ,rust-tokio-native-tls-0.3)
+                       ("rust-tokio-openssl" ,rust-tokio-openssl-0.6)
+                       ("rust-tokio-rustls" ,rust-tokio-rustls-0.24)
+                       ("rust-tracing" ,rust-tracing-0.1)
+                       ("rust-url" ,rust-url-2)
+                       ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+                       ("rust-webpki-roots" ,rust-webpki-roots-0.25))
+       #:cargo-development-inputs
+       (("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (native-inputs
+     (list openssl pkg-config))
+    (home-page "https://hickory-dns.org/")
+    (synopsis
+     "Foundational DNS protocol library for all Hickory DNS projects")
+    (description
+     "Hickory DNS is a safe and secure DNS library.  This is the foundational
+DNS protocol library for all Hickory DNS projects.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-http-1
   (package
     (name "rust-http")
-- 
cgit v1.2.3


From 08522b65cc6bb5e8a12f13d8fc3c0898f9598fa8 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:15 +0100
Subject: gnu: Add rust-hickory-resolver-0.24.

* gnu/packages/crates-web.scm (rust-hickory-resolver-0.24): New variable.

Change-Id: I863039f4524ebcadf91bac3f26f62c65268b5de7
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-web.scm | 64 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm
index d77e79838b..d56c43881b 100644
--- a/gnu/packages/crates-web.scm
+++ b/gnu/packages/crates-web.scm
@@ -2264,6 +2264,70 @@ transfer coding.")
 DNS protocol library for all Hickory DNS projects.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-hickory-resolver-0.24
+  (package
+    (name "rust-hickory-resolver")
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hickory-resolver" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1s3486qczv9gaw8dap06c0bwb2bpqm23a0ihj169hsjf2qhz1f1m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--lib" "--bins" "--tests" "--"
+         ;; Some tests require network access.
+         "--skip=async_resolver::tests::test_domain_search"
+         "--skip=async_resolver::tests::test_fqdn"
+         "--skip=async_resolver::tests::test_idna"
+         "--skip=async_resolver::tests::test_large_ndots"
+         "--skip=async_resolver::tests::test_lookup_cloudflare"
+         "--skip=async_resolver::tests::test_lookup_google"
+         "--skip=async_resolver::tests::test_lookup_quad9"
+         "--skip=async_resolver::tests::test_ndots"
+         "--skip=async_resolver::tests::test_search_list"
+         "--skip=hosts::tests::test_read_hosts_conf"
+         "--skip=name_server::name_server::tests::test_name_server"
+         "--skip=name_server::name_server_pool::tests::test_multi_use_conns"
+         "--skip=resolver::tests::test_lookup"
+         "--skip=system_conf::unix::tests::test_read_resolv_conf")
+         #:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
+                       ("rust-futures-util" ,rust-futures-util-0.3)
+                       ("rust-hickory-proto" ,rust-hickory-proto-0.24)
+                       ("rust-ipconfig" ,rust-ipconfig-0.3)
+                       ("rust-lru-cache" ,rust-lru-cache-0.1)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-parking-lot" ,rust-parking-lot-0.12)
+                       ("rust-rand" ,rust-rand-0.8)
+                       ("rust-resolv-conf" ,rust-resolv-conf-0.7)
+                       ("rust-rustls" ,rust-rustls-0.21)
+                       ("rust-rustls-native-certs" ,rust-rustls-native-certs-0.6)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-smallvec" ,rust-smallvec-1)
+                       ("rust-thiserror" ,rust-thiserror-1)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-tokio-native-tls" ,rust-tokio-native-tls-0.3)
+                       ("rust-tokio-openssl" ,rust-tokio-openssl-0.6)
+                       ("rust-tokio-rustls" ,rust-tokio-rustls-0.24)
+                       ("rust-tracing" ,rust-tracing-0.1)
+                       ("rust-webpki-roots" ,rust-webpki-roots-0.25))
+       #:cargo-development-inputs
+       (("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (home-page "https://hickory-dns.org/")
+    (synopsis
+     "Hickory DNS Resolver library built on top of tokio's @code{async-io}")
+    (description
+     "Hickory DNS Resolver is a safe and secure DNS library.  The Resolver is
+intended to be a high-level library for any DNS record resolution, see
+@code{Resolver} and @code{AsyncResolver} for supported resolution types.  The
+@code{Client} can be used for other queries.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-http-1
   (package
     (name "rust-http")
-- 
cgit v1.2.3


From 87f538c0902dd0061a64ea95ed6ede490471db65 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:16 +0100
Subject: gnu: Add rust-hickory-recursor-0.24.

* gnu/packages/crates-web.scm (rust-hickory-recursor-0.24): New variable.

Change-Id: I93348b33c4d82b8cf2187ec61e67791c114a721d
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-web.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm
index d56c43881b..d26e0ca934 100644
--- a/gnu/packages/crates-web.scm
+++ b/gnu/packages/crates-web.scm
@@ -2264,6 +2264,49 @@ transfer coding.")
 DNS protocol library for all Hickory DNS projects.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-hickory-recursor-0.24
+  (package
+    (name "rust-hickory-recursor")
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hickory-recursor" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "146ifrml22hjydrw16qgfw32kv3v9wvvl4dqh45pg6fymxvw8xgi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-async-recursion" ,rust-async-recursion-1)
+                       ("rust-async-trait" ,rust-async-trait-0.1)
+                       ("rust-bytes" ,rust-bytes-1)
+                       ("rust-cfg-if" ,rust-cfg-if-1)
+                       ("rust-enum-as-inner" ,rust-enum-as-inner-0.6)
+                       ("rust-futures-util" ,rust-futures-util-0.3)
+                       ("rust-hickory-proto" ,rust-hickory-proto-0.24)
+                       ("rust-hickory-resolver" ,rust-hickory-resolver-0.24)
+                       ("rust-lru-cache" ,rust-lru-cache-0.1)
+                       ("rust-parking-lot" ,rust-parking-lot-0.12)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-thiserror" ,rust-thiserror-1)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-tracing" ,rust-tracing-0.1))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (home-page "https://hickory-dns.org/")
+    (synopsis
+     "Hickory DNS Recursor is a DNS recursive resolver with DNSSEC support")
+    (description
+     "*WARNING* This library is experimental
+
+Hickory DNS Recursor is a safe and secure DNS recursive resolver with DNSSEC
+support.  Hickory DNS is based on the Tokio and Futures libraries, which means
+it should be easily integrated into other software that also use those
+libraries.  This library can be used as in the server and binary for
+performing recursive lookups.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-hickory-resolver-0.24
   (package
     (name "rust-hickory-resolver")
-- 
cgit v1.2.3


From 4dda0c372aa6a42704dd758c3124c6d715be347b Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:17 +0100
Subject: gnu: Add rust-hickory-client-0.24.

* gnu/packages/crates-web.scm (rust-hickory-client-0.24): New variable.

Change-Id: I0fcaf5d82837d2d380171faae0bcddd281e55826
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-web.scm | 48 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm
index d26e0ca934..7206e20073 100644
--- a/gnu/packages/crates-web.scm
+++ b/gnu/packages/crates-web.scm
@@ -2199,6 +2199,54 @@ transfer coding.")
        (("rust-bytes" ,rust-bytes-0.4)
         ("rust-http" ,rust-http-0.1))))))
 
+(define-public rust-hickory-client-0.24
+  (package
+    (name "rust-hickory-client")
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hickory-client" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0bj6g69h86d7mbclrwaj7cgl1plr6pvllv8qn69xmpgh9h90hgkz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--lib" "--bins" "--tests" "--"
+         ;; Some tests require network access.
+         "--skip=client::async_client::tests::async_client")
+       #:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
+                       ("rust-data-encoding" ,rust-data-encoding-2)
+                       ("rust-futures-channel" ,rust-futures-channel-0.3)
+                       ("rust-futures-util" ,rust-futures-util-0.3)
+                       ("rust-hickory-proto" ,rust-hickory-proto-0.24)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-radix-trie" ,rust-radix-trie-0.2)
+                       ("rust-rand" ,rust-rand-0.8)
+                       ("rust-rustls" ,rust-rustls-0.21)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-thiserror" ,rust-thiserror-1)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-tracing" ,rust-tracing-0.1))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (native-inputs
+     (list openssl pkg-config))
+    (home-page "https://hickory-dns.org/")
+    (synopsis "Client library for Hickory DNS, with DNSSEC support")
+    (description
+     "Hickory DNS is a safe and secure DNS library.  This is the Client
+library with DNSSEC support.  DNSSEC with NSEC validation for negative
+records, is complete.  The client supports dynamic DNS with SIG0 authenticated
+requests, implementing easy to use high level funtions.  Hickory DNS is based
+on the Tokio and Futures libraries, which means it should be easily integrated
+into other software that also use those libraries.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-hickory-proto-0.24
   (package
     (name "rust-hickory-proto")
-- 
cgit v1.2.3


From 1571fa3aab7c601982617976c5417e6fc2934ff9 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:18 +0100
Subject: gnu: Add rust-hickory-server-0.24.

* gnu/packages/crates-web.scm (rust-hickory-server-0.24): New variable.

Change-Id: I3bde5a809f68e6f161286b7630dfc97d3a68ba51
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-web.scm | 78 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm
index 7206e20073..60c735efa7 100644
--- a/gnu/packages/crates-web.scm
+++ b/gnu/packages/crates-web.scm
@@ -2419,6 +2419,84 @@ intended to be a high-level library for any DNS record resolution, see
 @code{Client} can be used for other queries.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-hickory-server-0.24
+  (package
+    (name "rust-hickory-server")
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hickory-server" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1dbwsrmxgf9nxkn3cp5fpjw96wywrzihbirjax25dd6wqidv9fsg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--"
+         ;; Not all files included.
+         "--skip=store::file::authority::tests::test_load_zone"
+         "--skip=basic::file::test_a_lookup"
+         "--skip=basic::file::test_aname"
+         "--skip=basic::file::test_aname_a_lookup"
+         "--skip=basic::file::test_aname_chain"
+         "--skip=basic::file::test_cname"
+         "--skip=basic::file::test_cname_alias"
+         "--skip=basic::file::test_cname_chain"
+         "--skip=basic::file::test_dots_in_name"
+         "--skip=basic::file::test_invalid_lookup"
+         "--skip=basic::file::test_mx"
+         "--skip=basic::file::test_mx_to_null"
+         "--skip=basic::file::test_ns"
+         "--skip=basic::file::test_ns_lookup"
+         "--skip=basic::file::test_soa"
+         "--skip=basic::file::test_srv"
+         "--skip=basic::file::test_update_errors"
+         "--skip=basic::file::test_wildcard"
+         "--skip=basic::file::test_wildcard_chain"
+         "--skip=test_all_lines_are_loaded"
+         "--skip=test_implicit_in_class"
+         "--skip=test_ttl_wilcard")
+       #:cargo-inputs (("rust-async-trait" ,rust-async-trait-0.1)
+                       ("rust-basic-toml" ,rust-basic-toml-0.1)
+                       ("rust-bytes" ,rust-bytes-1)
+                       ("rust-cfg-if" ,rust-cfg-if-1)
+                       ("rust-enum-as-inner" ,rust-enum-as-inner-0.6)
+                       ("rust-futures-util" ,rust-futures-util-0.3)
+                       ("rust-h2" ,rust-h2-0.3)
+                       ("rust-h3" ,rust-h3-0.0.2)
+                       ("rust-h3-quinn" ,rust-h3-quinn-0.0.3)
+                       ("rust-hickory-proto" ,rust-hickory-proto-0.24)
+                       ("rust-hickory-recursor" ,rust-hickory-recursor-0.24)
+                       ("rust-hickory-resolver" ,rust-hickory-resolver-0.24)
+                       ("rust-http" ,rust-http-0.2)
+                       ("rust-openssl" ,rust-openssl-0.10)
+                       ("rust-rusqlite" ,rust-rusqlite-0.29)
+                       ("rust-rustls" ,rust-rustls-0.21)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-thiserror" ,rust-thiserror-1)
+                       ("rust-time" ,rust-time-0.3)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-tokio-openssl" ,rust-tokio-openssl-0.6)
+                       ("rust-tokio-rustls" ,rust-tokio-rustls-0.24)
+                       ("rust-tokio-util" ,rust-tokio-util-0.7)
+                       ("rust-tracing" ,rust-tracing-0.1))
+       #:cargo-development-inputs
+       (("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (home-page "https://hickory-dns.org/")
+    (synopsis "Hickory DNS Server is a DNS server with DNSSEC support")
+    (description
+     "Hickory DNS Server is a safe and secure DNS server with DNSSEC support.
+Eventually this could be a replacement for BIND9.  The DNSSEC support allows
+for live signing of all records, in it does not currently support records
+signed offline.  The server supports dynamic DNS with SIG0 authenticated
+requests.  Hickory DNS is based on the Tokio and Futures libraries, which
+means it should be easily integrated into other software that also use those
+libraries.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-http-1
   (package
     (name "rust-http")
-- 
cgit v1.2.3


From b14ca64caf13cff3f29f6b867713e8967a9bf25f Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Tue, 5 Mar 2024 00:19:19 +0100
Subject: gnu: Add aardvark-dns.

* gnu/packages/rust-apps.scm (aardvark-dns): New variable.

Change-Id: If0cb81d7739e72d93a342ffa43f57129421ff691
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/rust-apps.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 01e01ecba3..9e5c7d391f 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -99,6 +99,40 @@
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xorg))
 
+(define-public aardvark-dns
+  (package
+    (name "aardvark-dns")
+    (version "1.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aardvark-dns" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ldqv9v3v9a1m2kka660d5v15y2zasy5z7m4fh5hif74r089cx6x"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:install-source? #f
+       #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
+                       ("rust-async-broadcast" ,rust-async-broadcast-0.6)
+                       ("rust-chrono" ,rust-chrono-0.4)
+                       ("rust-clap" ,rust-clap-4)
+                       ("rust-futures-util" ,rust-futures-util-0.3)
+                       ("rust-hickory-client" ,rust-hickory-client-0.24)
+                       ("rust-hickory-proto" ,rust-hickory-proto-0.24)
+                       ("rust-hickory-server" ,rust-hickory-server-0.24)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-nix" ,rust-nix-0.27)
+                       ("rust-resolv-conf" ,rust-resolv-conf-0.7)
+                       ("rust-signal-hook" ,rust-signal-hook-0.3)
+                       ("rust-syslog" ,rust-syslog-6)
+                       ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/containers/aardvark-dns")
+    (synopsis "Container-focused DNS server")
+    (description "This package provides a container-focused DNS server.")
+    (license license:asl2.0)))
+
 (define-public agate
   (package
     (name "agate")
-- 
cgit v1.2.3


From ed84b7fe37f55a820121955785b722b8eca9b057 Mon Sep 17 00:00:00 2001
From: Suhail Singh <suhailsingh247@gmail.com>
Date: Mon, 4 Mar 2024 18:57:15 -0500
Subject: gnu: Add rust-clap-verbosity-flag-2.

* gnu/packages/crates-io.scm (rust-clap-verbosity-flag-2): New variable.

Change-Id: I9fa802d964e71a1618d8d42571ca954c34dbf59e
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 88c1742bbe..1a08748392 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -41,6 +41,7 @@
 ;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
 ;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
 ;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
+;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -11723,6 +11724,34 @@ stream of tokens.")
        (("rust-clap" ,rust-clap-3)
         ("rust-snapbox" ,rust-snapbox-0.2))))))
 
+(define-public rust-clap-verbosity-flag-2
+  (package
+    (name "rust-clap-verbosity-flag")
+    (version "2.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "clap-verbosity-flag" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "15f419hg1xskf7pwzk5n27cpn05n0ccbd6sbji906ymi47576zxm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-clap" ,rust-clap-4)
+                       ("rust-log" ,rust-log-0.4))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-env-logger" ,rust-env-logger-0.10)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-log" ,rust-tracing-log-0.2)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (home-page "https://github.com/clap-rs/clap-verbosity-flag")
+    (synopsis "Easily add a `--verbose` flag to CLIs using Clap")
+    (description
+     "This package provides a way to add a `--verbose` flag to CLIs using
+Clap.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-clearscreen-1
   (package
     (name "rust-clearscreen")
-- 
cgit v1.2.3


From b7f0aad907d6c33c4ccb137190b7a6b710a7112b Mon Sep 17 00:00:00 2001
From: Suhail Singh <suhailsingh247@gmail.com>
Date: Tue, 5 Mar 2024 00:45:19 -0500
Subject: gnu: Add emacs-lsp-booster.

* gnu/packages/rust-apps.scm (emacs-lsp-booster): New variable.

Change-Id: If89f9941662ed01ddec578b220f69e6370775103
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/rust-apps.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 9e5c7d391f..7313cdef77 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -30,6 +30,7 @@
 ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
 ;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
 ;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
+;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -71,6 +72,7 @@
   #:use-module (gnu packages crates-windows)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages emacs)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages haskell-xyz)
@@ -502,6 +504,43 @@ Features include:
 @end enumerate\n")
     (license license:gpl3)))
 
+(define-public emacs-lsp-booster
+  (package
+    (name "emacs-lsp-booster")
+    (version "0.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/blahgeek/emacs-lsp-booster")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xx32ms3mpi1clxf74mx7nanj0iw9qkmhi0a53fx8fkz0jw2fq8f"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list
+      #:cargo-inputs `(("rust-anyhow" ,rust-anyhow-1)
+                       ("rust-clap" ,rust-clap-4)
+                       ("rust-clap-verbosity-flag" ,rust-clap-verbosity-flag-2)
+                       ("rust-lazy-static" ,rust-lazy-static-1)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-json" ,rust-serde-json-1)
+                       ("rust-smallvec" ,rust-smallvec-1)
+                       ("rust-env-logger" ,rust-env-logger-0.10))
+      #:cargo-development-inputs `(("rust-emacs" ,rust-emacs-0.18)
+                                   ("rust-tempfile" ,rust-tempfile-3))
+      #:install-source? #f))
+    (native-inputs (list emacs))    ; Not emacs-minimal
+    (home-page "https://github.com/blahgeek/emacs-lsp-booster")
+    (synopsis "Emacs LSP performance booster")
+    (description
+     "@code{emacs-lsp-booster} improves the performance of @code{lsp-mode} and
+@code{eglot} Emacs packages using a wrapper executable.  See the home-page for
+configuration instructions.")
+    (license license:expat)))
+
 (define-public eza
   (package
     (name "eza")
-- 
cgit v1.2.3


From b6dec0108f99d75066bad15aaa124b84bb0261f3 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 12:42:47 +0100
Subject: gnu: emacs-activities: Update to 0.6.

* gnu/packages/emacs-xyz.scm (emacs-activities): Update to 0.6.

Change-Id: I638ec282c49e9f52b258a672770c076cfcbedcd5
---
 gnu/packages/emacs-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index f858597ea7..e1d14ea4aa 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -372,14 +372,14 @@
 (define-public emacs-activities
   (package
     (name "emacs-activities")
-    (version "0.5.1")
+    (version "0.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://elpa.gnu.org/packages/activities-" version ".tar"))
        (sha256
-        (base32 "0ng9sgajcpal881s3kavkmz0fc38f2h207hpqj62cf14z7bsk0zk"))))
+        (base32 "03dc2d9w40qp0qacv5vk49498qyb9y9n6ppd79jbglkpr0a60y21"))))
     (build-system emacs-build-system)
     (propagated-inputs (list emacs-persist))
     (home-page "https://github.com/alphapapa/activities.el")
-- 
cgit v1.2.3


From f18d13b5f89c161c6ee88d15ecdaa8d973ee4503 Mon Sep 17 00:00:00 2001
From: John Kehayias <john.kehayias@protonmail.com>
Date: Tue, 5 Mar 2024 15:28:08 -0500
Subject: gnu: rofi-wayland: Update to 1.7.5+wayland3.

* gnu/packages/xdisorg.scm (rofi-wayland): Update to 1.7.5+wayland3.

Change-Id: I43e87790272fe3e6d1b9b2fe9f837025083962d2
---
 gnu/packages/xdisorg.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 86e5086867..c81c549736 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -2032,7 +2032,7 @@ by name.")
     (package
       (inherit rofi)
       (name "rofi-wayland")
-      (version "1.7.5+wayland2")
+      (version "1.7.5+wayland3")
       (source (origin
                 (method url-fetch)
                 (uri (string-append "https://github.com/lbonn/rofi"
@@ -2040,7 +2040,7 @@ by name.")
                                     "/rofi-" version ".tar.xz"))
                 (sha256
                  (base32
-                  "0l6rf8qwvawyh938pinl9fkwzjnq72xpa9a7lwk9jrr5lkk3h8yj"))))
+                  "11xiksh3m7yf3270kqf1jranlfh9q6rr8i99jvx4ak4azn4pwhpw"))))
       (build-system meson-build-system)
       (inputs
        (modify-inputs (package-inputs base)
-- 
cgit v1.2.3


From 3e0a1469b8c231a061522f36b54ad0755103d4e1 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:36:43 +0100
Subject: import/cran: Add one more invalid package.

* guix/import/cran.scm (invalid-packages): Add "use_c17".

Change-Id: Ie3b6455d4eff97811057cd82dca460367a4583e5
---
 guix/import/cran.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index 9b30dc30e0..c4c42836ee 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -418,6 +418,7 @@ empty list when the FIELD cannot be found."
         "none"
         "rtools"
         "unix"
+        "use_c17"
         "windows"
         "xcode"
         "xquartz"))
-- 
cgit v1.2.3


From 783088d2e38f1f294318b3c3bae4d111f1220cae Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 21:55:18 +0100
Subject: gnu: Add r-transformr.

* gnu/packages/cran.scm (r-transformr): New variable.

Change-Id: I52114b946832c202c6e2278a330f98f78b92efce
---
 gnu/packages/cran.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 8d7425e4c1..5601a7bf4f 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -9549,6 +9549,34 @@ imputations.")
     ;; Any of these two versions.
     (license (list license:gpl2 license:gpl3))))
 
+(define-public r-transformr
+  (package
+    (name "r-transformr")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "transformr" version))
+       (sha256
+        (base32 "125y99wpgvp92qsg7934nzjqy6irjzaj21c0dcq7apqd2hqamfxw"))))
+    (properties `((upstream-name . "transformr")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-cpp11
+                             r-lpsolve
+                             r-rlang
+                             r-sf
+                             r-tweenr
+                             r-vctrs))
+    (home-page "https://github.com/thomasp85/transformr")
+    (synopsis "Polygon and path transformations")
+    (description
+     "In order to smoothly animate the transformation of polygons and paths,
+many aspects needs to be taken into account, such as differing number of
+control points, changing center of rotation, etc.  The transformr package
+provides an extensive framework for manipulating the shapes of polygons and
+paths and can be seen as the spatial brother to the tweenr package.")
+    (license license:expat)))
+
 (define-public r-truncnorm
   (package
     (name "r-truncnorm")
-- 
cgit v1.2.3


From c2e428b2992e5a10538e22f407e73db202af150f Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:31 +0100
Subject: gnu: r-conos: Update to 1.5.2.

* gnu/packages/bioconductor.scm (r-conos): Update to 1.5.2.

Change-Id: Ia2192481d7d829ef47fec23d4fc8c028abce7098
---
 gnu/packages/bioconductor.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index f38b787bdf..8bda746ee0 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -7211,13 +7211,13 @@ self-defined annotation graphics.")
 (define-public r-conos
   (package
     (name "r-conos")
-    (version "1.5.1")
+    (version "1.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "conos" version))
        (sha256
-        (base32 "01d2knwyf0g2pvqq3dy5vhf0i7mc5f7rzg3a7cbglsw3l9irsixv"))))
+        (base32 "0p66gb308w2zfsppm0k1vsvgr33kzzhql0vh7l39vlsgayi00skk"))))
     (properties `((upstream-name . "conos")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 2f8a48f928abd23fc6dbeb9bbf2f890c814d0c14 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:31 +0100
Subject: gnu: r-ggdist: Update to 3.3.2.

* gnu/packages/cran.scm (r-ggdist): Update to 3.3.2.
[propagated-inputs]: Remove r-dplyr and r-tidyselect; add r-gtable.

Change-Id: Ie67212a05e55eff3e8f4047a807ce3a0aee9099e
---
 gnu/packages/cran.scm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 5601a7bf4f..654c971a20 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -1026,27 +1026,26 @@ axis breaks of a ggplot.")
 (define-public r-ggdist
   (package
     (name "r-ggdist")
-    (version "3.3.1")
+    (version "3.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggdist" version))
        (sha256
-        (base32 "0agr1l65s7vimdb88a7n3ahr6pp9ng5zf9mypdic26vhaaifh1b7"))))
+        (base32 "1wc3pqnf2r0324jm0vv1872smriv25h0lx0mni7qp93wrf8k0mpn"))))
     (properties `((upstream-name . "ggdist")))
     (build-system r-build-system)
     (propagated-inputs (list r-cli
                              r-distributional
-                             r-dplyr
                              r-ggplot2
                              r-glue
+                             r-gtable
                              r-numderiv
                              r-quadprog
                              r-rcpp
                              r-rlang
                              r-scales
                              r-tibble
-                             r-tidyselect
                              r-vctrs
                              r-withr))
     (native-inputs (list r-knitr))
-- 
cgit v1.2.3


From d0a2b433f339c87ad731b4f26086d6bac554b87c Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:31 +0100
Subject: gnu: r-ggside: Update to 0.3.1.

* gnu/packages/cran.scm (r-ggside): Update to 0.3.1.

Change-Id: I9c48c262672fc3621a037f3d8082549acd61cb8a
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 654c971a20..0380c5d8a7 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -2709,13 +2709,13 @@ respecting the grammar of its graphics paradigm.")
 (define-public r-ggside
   (package
     (name "r-ggside")
-    (version "0.3.0")
+    (version "0.3.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "ggside" version))
               (sha256
                (base32
-                "0mx6j9wi54inklmyydcqm0ahbx0b6c6y4sfh2awqsbgwigc3056p"))))
+                "1r36hsnha9bqzfb3rhpj11zg307wzacnkn4i6hi627xrx4knj5cl"))))
     (properties `((upstream-name . "ggside")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From ff90043a6b2d5bfa8c7a5f6d72978ac0aa042782 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:32 +0100
Subject: gnu: r-pagoda2: Update to 1.0.12.

* gnu/packages/cran.scm (r-pagoda2): Update to 1.0.12.

Change-Id: I68f0e26f73afc714f266d3510f41e7e0a29c5bca
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 0380c5d8a7..f115bdd480 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -2976,13 +2976,13 @@ functions which can speed up workflow.")
 (define-public r-pagoda2
   (package
     (name "r-pagoda2")
-    (version "1.0.11")
+    (version "1.0.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pagoda2" version))
        (sha256
-        (base32 "13x2l7hcvd6975921c5hba8hm2qijkslviszfizah8wxynhbayy1"))))
+        (base32 "1kck12ri52nwsrxhjs8ghjji3rv1dxxjy8bxn1kk1hbg30265fsw"))))
     (properties `((upstream-name . "pagoda2")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From fd5b1b5514f91df7f095e7602d96eacc875bf312 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:32 +0100
Subject: gnu: r-secretbase: Update to 0.3.0.1.

* gnu/packages/cran.scm (r-secretbase): Update to 0.3.0.1.

Change-Id: Id9ce065d84105f1e0e45d3c8938cdc3e9b2a98d3
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index f115bdd480..53bccf3852 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -3972,13 +3972,13 @@ scraping tasks, inspired by libraries like @code{BeautifulSoup}.")
 (define-public r-secretbase
   (package
     (name "r-secretbase")
-    (version "0.3.0")
+    (version "0.3.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "secretbase" version))
        (sha256
-        (base32 "1wgbk16by9w933cff5ybb2sa0ndgj3sv9ahr2r1843vgqiyvx2xi"))))
+        (base32 "0mhfkkl35g10lgz4llm017f2jbgp7vmgi0g301r4agx1iqj5g51w"))))
     (properties `((upstream-name . "secretbase")))
     (build-system r-build-system)
     (home-page "https://shikokuchuo.net/secretbase/")
-- 
cgit v1.2.3


From e9edbab0db5b78b51b8889aa6397ce2d66e7da60 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:32 +0100
Subject: gnu: r-curl: Update to 5.2.1.

* gnu/packages/cran.scm (r-curl): Update to 5.2.1.

Change-Id: I3d2906ffaf2f17f70be10267017e31dec953ef76
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 53bccf3852..4f6423f842 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -4703,13 +4703,13 @@ LaTeX.")
 (define-public r-curl
   (package
     (name "r-curl")
-    (version "5.2.0")
+    (version "5.2.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "curl" version))
               (sha256
                (base32
-                "12gldddkfkdwm6h0lb1pjrcpqc9kmqwfwz18wn9brilzbw8s9nxz"))))
+                "147smp4am6z23c3j21bd0zcjxsmhnkkssn4wrlpwl6xa1264syja"))))
     (properties
      `((upstream-name . "curl")
        (updater-extra-inputs . ("curl"))))
-- 
cgit v1.2.3


From 62a0cd5e4b800e598f7c0dd7bf516f7b730af69d Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:33 +0100
Subject: gnu: r-spelling: Update to 2.3.0.

* gnu/packages/cran.scm (r-spelling): Update to 2.3.0.

Change-Id: I08bc6914707efa49418d1473cca9b239afc39dbe
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 4f6423f842..40e6a6f22a 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -5823,14 +5823,14 @@ contained in the navigation bar.")
 (define-public r-spelling
   (package
     (name "r-spelling")
-    (version "2.2.1")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spelling" version))
        (sha256
         (base32
-         "0vr5mgw9grnsnzsc29al72p05z786hnd6b9c6wq0c0dabk5szm2g"))))
+         "0fxa0wpmmx7bal7xb4yy3134s2bskj98kwhqn25bqga3inzqdm6d"))))
     (properties `((upstream-name . "spelling")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 24d2c8af3072d7c37cea0c5015db898eeb893b00 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:33 +0100
Subject: gnu: r-rmumps: Update to 5.2.1-28.

* gnu/packages/cran.scm (r-rmumps): Update to 5.2.1-28.

Change-Id: Ifd5efb6d21dcf3c90da416dd89a2711a328dbce9
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 40e6a6f22a..559dcfd153 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -7641,13 +7641,13 @@ provides an interactive R manager and worker environment.")
 (define-public r-rmumps
   (package
     (name "r-rmumps")
-    (version "5.2.1-27")
+    (version "5.2.1-28")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rmumps" version))
        (sha256
-        (base32 "08zvmbhjgcrlgdhfn8ssajy8vnwcyaw90zgc0v1ncn95z310gpl3"))))
+        (base32 "1cq7zrq730lj1z5xirzk5fvvlvdq101ppg47n0z7c0v17rvs80n6"))))
     (properties `((upstream-name . "rmumps")))
     (build-system r-build-system)
     (inputs (list zlib))
-- 
cgit v1.2.3


From 37dd00abd7ce73f5ea97ac3272d41e1cb6293813 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:33 +0100
Subject: gnu: r-bdsmatrix: Update to 1.3-7.

* gnu/packages/cran.scm (r-bdsmatrix): Update to 1.3-7.

Change-Id: I7244cad6a9e82a0d87d5d1abcd427850994b63c0
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 559dcfd153..0847862ea4 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -7995,14 +7995,14 @@ those for the gamma distribution in the @code{stats} package.")
 (define-public r-bdsmatrix
   (package
     (name "r-bdsmatrix")
-    (version "1.3-6")
+    (version "1.3-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bdsmatrix" version))
        (sha256
         (base32
-         "1g300x11rv56f826mbv7mbb67a5xz3dv74hpjc18jh3q8gap3j7r"))))
+         "08krrd7454ixqv4nq55hgf3djp1pz1vl3ndslsrh2pkdq1d5wl63"))))
     (properties `((upstream-name . "bdsmatrix")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/bdsmatrix/")
-- 
cgit v1.2.3


From 8a6ad77b73e65da772223b4d211f8413d9c88cef Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:34 +0100
Subject: gnu: r-lava: Update to 1.8.0.

* gnu/packages/cran.scm (r-lava): Update to 1.8.0.
[propagated-inputs]: Add r-cli.

Change-Id: I3cac62611057dd66efa82ef2c8f6ae460fd91ff7
---
 gnu/packages/cran.scm | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 0847862ea4..2cc6e1c3ed 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -8461,17 +8461,22 @@ these progress updates.")
 (define-public r-lava
   (package
     (name "r-lava")
-    (version "1.7.3")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lava" version))
        (sha256
         (base32
-         "023av1mz4hr1lqv8cpbx0j1y3c7ljyns35rm838c618b6pqps22f"))))
+         "0zz8hzmqd4qa14y52c8gw9hr6gn0d7srffrddxrmhb01rbp9dfcd"))))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-future-apply r-numderiv r-progressr r-squarem r-survival))
+     (list r-cli
+           r-future-apply
+           r-numderiv
+           r-progressr
+           r-squarem
+           r-survival))
     (native-inputs
      (list r-knitr))
     (home-page "https://github.com/kkholst/lava")
-- 
cgit v1.2.3


From ae752e88727afb7fb73b0b0ed6a429dd8d6aada9 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:34 +0100
Subject: gnu: r-n2r: Update to 1.0.3.

* gnu/packages/cran.scm (r-n2r): Update to 1.0.3.

Change-Id: I4bd01c00d9a772b69fb69e23d94d8a98f7db6ff0
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 2cc6e1c3ed..df621d5439 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -10771,13 +10771,13 @@ features:
 (define-public r-n2r
   (package
     (name "r-n2r")
-    (version "1.0.1")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "N2R" version))
        (sha256
-        (base32 "12bv7xx6j6222qgpv6g61i68017fz0x6fjg9a9k5yhgw3zk05hpk"))))
+        (base32 "0bbxl0y36bmsxwi4rs4f6jwhf9bhag2rkvvzcg5669vgm2p4scjr"))))
     (properties `((upstream-name . "N2R")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 72d66dfd077a7fac15c05ef08a50c2cd6fc336a3 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:34 +0100
Subject: gnu: r-renv: Update to 1.0.5.

* gnu/packages/cran.scm (r-renv): Update to 1.0.5.

Change-Id: Ie51126dec50f4ec3bacd0b52354fd1a4cc2a926f
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index df621d5439..ac581dfd02 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -13440,14 +13440,14 @@ those searches and pull data into their R sessions.")
 (define-public r-renv
   (package
     (name "r-renv")
-    (version "1.0.4")
+    (version "1.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "renv" version))
        (sha256
         (base32
-         "0jfrkxslx1bw4b2akkp12bgvpfc58dh2vrm91hgb1xa5xydai7j6"))))
+         "07y1xqnx5jkgk0cqgf8c4p5vm3qy87zjl31zv6s0jssy3v7amq4p"))))
     (properties `((upstream-name . "renv")))
     (build-system r-build-system)
     (native-inputs
-- 
cgit v1.2.3


From 2668c97d557866dbfd7544f5677e46e4e3cb6715 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:35 +0100
Subject: gnu: r-ggsci: Update to 3.0.1.

* gnu/packages/cran.scm (r-ggsci): Update to 3.0.1.

Change-Id: I95c260015b909d2c6b8da4d853f2b1a528c4ef2e
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index ac581dfd02..bf649751e8 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -13709,14 +13709,14 @@ Sequence logos can easily be combined with other ggplot2 plots.")
 (define-public r-ggsci
   (package
     (name "r-ggsci")
-    (version "3.0.0")
+    (version "3.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggsci" version))
        (sha256
         (base32
-         "0ag1cj4ycl5xmll8mqmmikyvq94l8yx96pb8m2i853yp2rjk20c9"))))
+         "030rkjx64mlhy19d74p3blsi92nyjq9vbn33323dvm1rihb8avgi"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ggplot2 r-scales))
-- 
cgit v1.2.3


From 4fd4d7a9537ad71259d01828c46e07c1891555f1 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:35 +0100
Subject: gnu: r-factominer: Update to 2.10.

* gnu/packages/cran.scm (r-factominer): Update to 2.10.

Change-Id: Id9f93c26d3ab7d94a2f19e9606c64d20540284e8
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index bf649751e8..fa40e33169 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -13879,14 +13879,14 @@ clustering.")
 (define-public r-factominer
   (package
     (name "r-factominer")
-    (version "2.9")
+    (version "2.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "FactoMineR" version))
        (sha256
         (base32
-         "0c2j3xid85qffsdjwndqiwihclzw6k1nkbpzcc7whhd6k79rh9l8"))))
+         "1kjb0hk7zck8702inw9ayxrpbi8raq3rldxsq848lk15z3wg9r6w"))))
     (properties `((upstream-name . "FactoMineR")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 8ae33df24d38ae0cddd0e1cd095602598da1c5f6 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:36 +0100
Subject: gnu: r-hdf5r: Update to 1.3.10.

* gnu/packages/cran.scm (r-hdf5r): Update to 1.3.10.
[native-inputs]: Add pkg-config.

Change-Id: Ie93236c090afef5d29178bd4b3a9152ae9298a54
---
 gnu/packages/cran.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index fa40e33169..3402a68609 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -14021,21 +14021,21 @@ results to the user.")
 (define-public r-hdf5r
   (package
     (name "r-hdf5r")
-    (version "1.3.9")
+    (version "1.3.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hdf5r" version))
        (sha256
         (base32
-         "1av3pafbfff4wanw9s1iqgwkcdmc5f8c8h3z0byqll9i661kz3pg"))))
+         "0khj94z6ls6dnc6fpxwf1w93mk6f3z2p39mbihf0lz52jc36wjcj"))))
     (build-system r-build-system)
     (inputs
      (list hdf5 zlib))
     (propagated-inputs
      (list r-bit64 r-r6))
     (native-inputs
-     (list r-knitr))
+     (list pkg-config r-knitr))
     (home-page "https://hhoeflin.github.io/hdf5r")
     (synopsis "Interface to the HDF5 binary data format")
     (description
-- 
cgit v1.2.3


From 073bf699aa7f9630e6c5aa532a6a467501d0f9a3 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:36 +0100
Subject: gnu: r-nodbi: Update to 0.10.3.

* gnu/packages/cran.scm (r-nodbi): Update to 0.10.3.

Change-Id: I6acc7fddf0c9bc2eb0bdc241d024431d9a0d9c4e
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 3402a68609..12ca1398da 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -14572,13 +14572,13 @@ tidyverse workflow.")
 (define-public r-nodbi
   (package
     (name "r-nodbi")
-    (version "0.10.2")
+    (version "0.10.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "nodbi" version))
               (sha256
                (base32
-                "1pznlnln0p55qqwy22h9m79ddf3wgnx3vaxx2q39wvgqwj0kk1b0"))))
+                "17ghgp6sabj4dlmx3cdn9rrhci7050a73cd17fymjksgvy1jbwf6"))))
     (properties `((upstream-name . "nodbi")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 1e3ca80a8388d349b2aba0147da1e11472e9961e Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:36 +0100
Subject: gnu: r-partr2: Update to 0.9.2.

* gnu/packages/cran.scm (r-partr2): Update to 0.9.2.

Change-Id: Ib746e6755e2ea99ce08cdd3674b069cd14e6109d
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 12ca1398da..900790d3d5 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -16205,13 +16205,13 @@ for the reconstruction of gene regulatory networks.")
 (define-public r-partr2
   (package
     (name "r-partr2")
-    (version "0.9.1")
+    (version "0.9.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "partR2" version))
               (sha256
                (base32
-                "06ky0hhrq0mcsn9rwrzvwn0rrjj0l8rxs0hqp10668gdq5hjk8bn"))))
+                "09x8ykg90y4xq0sqm6zvx41sccgdbglmhpqm9sp3m74a87j4bjly"))))
     (properties `((upstream-name . "partR2")))
     (build-system r-build-system)
     (propagated-inputs (list r-dplyr
-- 
cgit v1.2.3


From 7cdc4949015060d544b3a924a2b1fbe97b13de53 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:36 +0100
Subject: gnu: r-colorramps: Update to 2.3.2.

* gnu/packages/cran.scm (r-colorramps): Update to 2.3.2.

Change-Id: I81f7e3141c97da2f9c8a6a6fee37de98c6a7d4c8
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 900790d3d5..f99d8fd60f 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -19327,14 +19327,14 @@ over-plotting in scatter plots with text.")
 (define-public r-colorramps
   (package
     (name "r-colorramps")
-    (version "2.3.1")
+    (version "2.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "colorRamps" version))
        (sha256
         (base32
-         "12jnkj50yh2hc5l7j56lrrrmn58akrj9dwj98vzf42iq4h42kwb1"))))
+         "0cq8l6ybhff2q2dj2i73b4cnw6v2c6ql24jbrkh0xrpc9wjsarxj"))))
     (properties `((upstream-name . "colorRamps")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/colorRamps")
-- 
cgit v1.2.3


From 1fa13a541683e85e259275340cbf81e023696d1e Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:37 +0100
Subject: gnu: r-tractor-base: Update to 3.4.2.

* gnu/packages/cran.scm (r-tractor-base): Update to 3.4.2.

Change-Id: I86d07604a6f3bcac561d8df0e7332effdce92176
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index f99d8fd60f..417b05912f 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -20017,14 +20017,14 @@ conditional reporting based on the current \"output level\".")
 (define-public r-tractor-base
   (package
     (name "r-tractor-base")
-    (version "3.3.5.1")
+    (version "3.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tractor.base" version))
        (sha256
         (base32
-         "0fxbzbhpi6l55m14nmww8y3kdxgchzj4mw1yf4xkm2y6s68phvgc"))))
+         "12mp5x6c7c82a4z7p39cb478kwwf6lkrgbis6ak00yibsd3n6na3"))))
     (properties `((upstream-name . "tractor.base")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 8f0b8ad9fc19568a3c86685ee4e0232a35fc723b Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:37 +0100
Subject: gnu: r-ontologyindex: Update to 2.12.

* gnu/packages/cran.scm (r-ontologyindex): Update to 2.12.

Change-Id: Iaa72aa3c1f01f4bdc82707aa8fbc70949647e78f
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 417b05912f..64c7388361 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -20374,14 +20374,14 @@ library.")
 (define-public r-ontologyindex
   (package
     (name "r-ontologyindex")
-    (version "2.11")
+    (version "2.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ontologyIndex" version))
        (sha256
         (base32
-         "17ndvqvb74b980gpb3hpg9bd68bb5f52k9s1i2kd1f9cdrdjvw97"))))
+         "0gf0z0vgc1f4f70f2zpwz9bka0gbgbj4w3fcxncv1b7lbrxddrd8"))))
     (properties `((upstream-name . "ontologyIndex")))
     (build-system r-build-system)
     (native-inputs
-- 
cgit v1.2.3


From 9cfd5d388614692e329e92dfbbb79620db2d9651 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:38 +0100
Subject: gnu: r-parallelly: Update to 1.37.1.

* gnu/packages/cran.scm (r-parallelly): Update to 1.37.1.

Change-Id: I6ff44227c6fcd9c49bf4eb4d172005334bb73d1f
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 64c7388361..71569a7e21 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -21666,14 +21666,14 @@ them in distributed compute environments.")
 (define-public r-parallelly
   (package
     (name "r-parallelly")
-    (version "1.37.0")
+    (version "1.37.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "parallelly" version))
        (sha256
         (base32
-         "19zrfiakg5xg51r9va4r976b4lnnsj5nsk6i6srxsl227q45xra1"))))
+         "189ngbh9i6mqmfn4z6446in7687ddlpdq6v5rj3hr8zqinqlwznz"))))
     (properties `((upstream-name . "parallelly")))
     (build-system r-build-system)
     (home-page "https://github.com/HenrikBengtsson/parallelly")
-- 
cgit v1.2.3


From 1054398a1298e7b3bc8f1eef4e0d1908ccc726e9 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:37:38 +0100
Subject: gnu: r-deldir: Update to 2.0-4.

* gnu/packages/cran.scm (r-deldir): Update to 2.0-4.

Change-Id: I31ef8c01111569c3619b80b1178413a5cd84d07c
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 71569a7e21..c99dcb046b 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -23398,14 +23398,14 @@ sampling.")
 (define-public r-deldir
   (package
     (name "r-deldir")
-    (version "2.0-2")
+    (version "2.0-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "deldir" version))
        (sha256
         (base32
-         "1qzfq47fs3pr0946m53z6cq93pbpkgwwhqkcdgfahxsq1izpigz9"))))
+         "0ls69b9yynvsiy6madvzafcb0jdvxw66sin7cinpnw63israq66l"))))
     (build-system r-build-system)
     (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/deldir")
-- 
cgit v1.2.3


From c8449027a08e81ef668ff4c7d8b54f0f9db649d6 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:12 +0100
Subject: gnu: r-bookdown: Update to 0.38.

* gnu/packages/cran.scm (r-bookdown): Update to 0.38.

Change-Id: I2dd69baf405e938626ad487691fec8ee97027b97
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index c99dcb046b..ff4cec203b 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -23974,13 +23974,13 @@ SELECT or UPDATE queries to an end-point.")
 (define-public r-bookdown
   (package
     (name "r-bookdown")
-    (version "0.37")
+    (version "0.38")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "bookdown" version))
               (sha256
                (base32
-                "18j8ylaq5wnw1c0lif9a002kbymv04pd0i43ahmqkskkv1b13hdk"))
+                "1i0z75sxvy3cb582siz544az6b9bs3vk2kyij9zx5jdpc1247fgd"))
               ;; TODO: there is one more file to replace:
               ;; inst/resources/gitbook/js/app.min.js
               (snippet
-- 
cgit v1.2.3


From 44e4a9a3f3281c85689f341e3456a74bad5d0e8c Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:26 +0100
Subject: gnu: r-tweenr: Update to 2.0.3.

* gnu/packages/cran.scm (r-tweenr): Update to 2.0.3.

Change-Id: Ia7780ff00aeb25937a29a33cdb2d683f59067114
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index ff4cec203b..34dc45e58e 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -24619,14 +24619,14 @@ packages with Rcpp.")
 (define-public r-tweenr
   (package
     (name "r-tweenr")
-    (version "2.0.2")
+    (version "2.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tweenr" version))
        (sha256
         (base32
-         "1wqzcsxlz1isb1j0v5g6dgvd40q3q9qlahvgcgiq0j4d87nzvfv4"))))
+         "1glc7ks5yymcm4pi0fjpi1zh7m5d4cz7zy20pa3kfraxlh9fbazg"))))
     (build-system r-build-system)
     (arguments
      (list
-- 
cgit v1.2.3


From e8121c0c2c3985abf26def6da2ac1a1351a02cb9 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:27 +0100
Subject: gnu: r-ggraph: Update to 2.2.0.

* gnu/packages/cran.scm (r-ggraph): Update to 2.2.0.
[propagated-inputs]: Remove r-digest, r-gtable, and r-rcpp; add r-cpp11 and r-memoise.

Change-Id: Id5c4be4765171c0b46bd421cf13e4dbdbfa44955
---
 gnu/packages/cran.scm | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 34dc45e58e..cf8d488441 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -24829,28 +24829,27 @@ databases, including ENA, PDB or ChEMBL are also accessible.")
 (define-public r-ggraph
   (package
     (name "r-ggraph")
-    (version "2.1.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggraph" version))
        (sha256
         (base32
-         "07sw4h94dzbs44dcvvj80g8v8252k4iw8pkmzdrk4qagvhidnvv8"))))
+         "0zs02xyzvimk8hj1z465zxp1hlca3gfirdcwb3gqriwsmnfhg661"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-cli
-           r-digest
+           r-cpp11
            r-dplyr
            r-ggforce
            r-ggplot2
            r-ggrepel
            r-graphlayouts
-           r-gtable
            r-igraph
            r-lifecycle
            r-mass
-           r-rcpp
+           r-memoise
            r-rlang
            r-scales
            r-tidygraph
-- 
cgit v1.2.3


From 69acd366eecf0245a062c629d0ee4d099ddbf3d8 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:27 +0100
Subject: gnu: r-leidenalg: Update to 1.1.3.

* gnu/packages/cran.scm (r-leidenalg): Update to 1.1.3.

Change-Id: I20737485f2bbeab212bb1cce2f5935f0df938741
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index cf8d488441..6dd2829adc 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -26987,13 +26987,13 @@ guaranteeing well-connected communities.\" <arXiv:1810.08473>.")
 (define-public r-leidenalg
   (package
     (name "r-leidenalg")
-    (version "1.1.2")
+    (version "1.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "leidenAlg" version))
        (sha256
-        (base32 "0wqay0rf28pgaf88bsvmrwgggzbma93rv9nqbydhjf1lc96ay1lz"))))
+        (base32 "0g4gs6rrz3wn97ag7wsfr6qa4zgb75i0k9jc1siii4pf6h689d1x"))))
     (properties
      `((upstream-name . "leidenAlg")
        (updater-extra-inputs . ("gmp"))))
-- 
cgit v1.2.3


From b8a4807f1a061dd044575577b2408a680c1deb2d Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:27 +0100
Subject: gnu: r-sysfonts: Update to 0.8.9.

* gnu/packages/cran.scm (r-sysfonts): Update to 0.8.9.

Change-Id: I4b1398049ac0fd07dcbd56247e3808c85c1b3d7e
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 6dd2829adc..6344f722ef 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -28103,14 +28103,14 @@ server-side.")
 (define-public r-sysfonts
   (package
     (name "r-sysfonts")
-    (version "0.8.8")
+    (version "0.8.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sysfonts" version))
        (sha256
         (base32
-         "1fq5dn4l09sgrbznfz9cakf4vgc3761zwicvqaazh0s8mzbaicpn"))))
+         "124zcnw88xnlhx27qjm07mw59f98jiwspmm65v94k815lqs9qiaj"))))
     (properties `((upstream-name . "sysfonts")))
     (build-system r-build-system)
     (inputs
-- 
cgit v1.2.3


From e96228adb82efae752cfcbabfffa28b7b8113f52 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:28 +0100
Subject: gnu: r-showtext: Update to 0.9-7.

* gnu/packages/cran.scm (r-showtext): Update to 0.9-7.

Change-Id: Iff35114553726dd2941e870de02427c73cb397f1
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 6344f722ef..00831aa4cb 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -28149,14 +28149,14 @@ package.")
 (define-public r-showtext
   (package
     (name "r-showtext")
-    (version "0.9-6")
+    (version "0.9-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "showtext" version))
        (sha256
         (base32
-         "0c4cssqk4s27pxfyb7fii97zhy4awzapj7bx9zkbki4va75mkjhf"))))
+         "12a8j87ca39fd8vn9ixzfgkbffz8ajyslhsx2hqjry1gzbk864i5"))))
     (properties `((upstream-name . "showtext")))
     (build-system r-build-system)
     (inputs
-- 
cgit v1.2.3


From d51eaad12799d935fdc93e6bd4de9d75c34d4cb1 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:28 +0100
Subject: gnu: r-fda: Update to 6.1.7.

* gnu/packages/cran.scm (r-fda): Update to 6.1.7.

Change-Id: Ieee4094c64be5bb89b257efea788a3799baef7b7
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 00831aa4cb..13a0a82d11 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -29856,14 +29856,14 @@ variable observed over time.")
 (define-public r-fda
   (package
     (name "r-fda")
-    (version "6.1.4")
+    (version "6.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fda" version))
        (sha256
         (base32
-         "0595887hv80blx9aq63qnmc9vr022p21zqhgp2wmdjvq1g68x0g2"))))
+         "00hiz15v31zs5l0bqdkim1fpfd3bjvssv77iczq0si724s4fqxiq"))))
     (properties `((upstream-name . "fda")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From ac139b1644b103904363f600a8115cde2bafe6c5 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:28 +0100
Subject: gnu: r-forecast: Update to 8.22.0.

* gnu/packages/cran.scm (r-forecast): Update to 8.22.0.

Change-Id: I866e6aa742a663fe8baa4ba5e90add41cfc9b957
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 13a0a82d11..295897a5bb 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -31363,14 +31363,14 @@ Raftery, Appl.Statistics, 1989); it includes inference and basic methods.")
 (define-public r-forecast
   (package
     (name "r-forecast")
-    (version "8.21.1")
+    (version "8.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "forecast" version))
        (sha256
         (base32
-         "09w1vh96cf9wz071why5f4265cvvwqi2b3wb0khrjvkzgkiaq7l1"))))
+         "09s5fdyzc6f5l8dy7ynjmd6l5fk3wvz59q0kfv2fd9da5c1mqd8w"))))
     (properties `((upstream-name . "forecast")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From fc8e0c91e3f760bfc4db7f4cd0129344697eae26 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:29 +0100
Subject: gnu: r-stanheaders: Update to 2.32.6.

* gnu/packages/cran.scm (r-stanheaders): Update to 2.32.6.

Change-Id: I257b98c4d366644412823e7db9c077c5fa94437c
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 295897a5bb..f9daaa73bf 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -31956,14 +31956,14 @@ perform @dfn{exploratory mediation} (XMed).")
 (define-public r-stanheaders
   (package
     (name "r-stanheaders")
-    (version "2.32.5")
+    (version "2.32.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "StanHeaders" version))
        (sha256
         (base32
-         "0wqps6xy2xypxsg3p3grdiw67a0xla3vh9x9hcf2ln03yhgkn4jl"))))
+         "18p1rch5ipj0f4jdvr8mnlk8pg1l4njjj4cgbp7ni7kcngsn3049"))))
     (properties `((upstream-name . "StanHeaders")))
     (build-system r-build-system)
     (inputs (list pandoc))
-- 
cgit v1.2.3


From 06a3e957cb3828af51469d842a23232fd27b5a32 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:29 +0100
Subject: gnu: r-erm: Update to 1.0-5.

* gnu/packages/cran.scm (r-erm): Update to 1.0-5.

Change-Id: I2afb17f770e54a3fb33dd2decf97fa33946d65df
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index f9daaa73bf..7e9015845f 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -32360,14 +32360,14 @@ Latent regression models and plausible value imputation are also supported.")
 (define-public r-erm
   (package
     (name "r-erm")
-    (version "1.0-4")
+    (version "1.0-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "eRm" version))
        (sha256
         (base32
-         "0rp2lxkwkh09zmv101rzk7x1v1pmscp71qpf8f4chxp3idg6rpid"))))
+         "0bkivhiy02pibdcvb9z0i0yvc3wz3v33n6slhkkik61gcw1idmf0"))))
     (properties `((upstream-name . "eRm")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 6982f320e239b009a365cdecd72a50c0de102031 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:29 +0100
Subject: gnu: r-hrbrthemes: Update to 0.8.7.

* gnu/packages/cran.scm (r-hrbrthemes): Update to 0.8.7.
[propagated-inputs]: Remove r-htmltools, r-knitr, and r-rmarkdown.
[native-inputs]: Remove r-knitr.

Change-Id: Id7486f175962306caea0ef290925f809e6db7972
---
 gnu/packages/cran.scm | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 7e9015845f..ffe6a9fd31 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -33078,26 +33078,17 @@ statistics and p-values of the correlation coefficients.")
 (define-public r-hrbrthemes
   (package
     (name "r-hrbrthemes")
-    (version "0.8.0")
+    (version "0.8.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hrbrthemes" version))
        (sha256
-        (base32 "057h60b5p53dcyjyfwlgjc1ry968s9s64dw78p443w8717zk7zpc"))))
+        (base32 "0vwrwcx3yp5yi1fw45zb5b3rhhbhrmzkl935s5apvf9lwjz2wjas"))))
     (properties `((upstream-name . "hrbrthemes")))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-extrafont
-           r-gdtools
-           r-ggplot2
-           r-htmltools
-           r-knitr
-           r-magrittr
-           r-rmarkdown
-           r-scales))
-    (native-inputs
-     (list r-knitr))
+     (list r-extrafont r-gdtools r-ggplot2 r-magrittr r-scales))
     (home-page "https://github.com/hrbrmstr/hrbrthemes/")
     (synopsis "Additional themes, theme components and utilities for @code{ggplot2}")
     (description
-- 
cgit v1.2.3


From 8337e810fcba728062314b0e78f826ce67c4b461 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:30 +0100
Subject: gnu: r-spatstat-geom: Update to 3.2-9.

* gnu/packages/cran.scm (r-spatstat-geom): Update to 3.2-9.

Change-Id: I122f0f3a5ca692eb32cfa7adfb050e11a91d0a84
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index ffe6a9fd31..add5813486 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -34691,14 +34691,14 @@ package.")
 (define-public r-spatstat-geom
   (package
     (name "r-spatstat-geom")
-    (version "3.2-8")
+    (version "3.2-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.geom" version))
        (sha256
         (base32
-         "08q9k7065gpjmwja4xac9q8jv2hdkgmwvdncrnhdk9xkzc0z9mjb"))))
+         "05ymr4h6g5kp6kinm8qi6mcwi51d2rp671cm3hqgyrhk91k72cx7"))))
     (properties `((upstream-name . "spatstat.geom")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 7b1bdd0eccdb53cf2b3164d77755599d01fd9829 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:30 +0100
Subject: gnu: r-spatstat-random: Update to 3.2-3.

* gnu/packages/cran.scm (r-spatstat-random): Update to 3.2-3.

Change-Id: Ie8496efc4fbb4ab7ed296353ac746c7f2fb6f5ab
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index add5813486..eb930573c4 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -34777,13 +34777,13 @@ for spatial data on a linear network.")
 (define-public r-spatstat-random
   (package
     (name "r-spatstat-random")
-    (version "3.2-2")
+    (version "3.2-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.random" version))
        (sha256
-        (base32 "01rsh7z9prsdrqlbc2761sf54w24z7jzj64ijfzy8l5ca56fxij8"))))
+        (base32 "19rl757lccr169fj00zmhb1a20bxw4kljzb81hbbr5xhj0za6lp0"))))
     (properties `((upstream-name . "spatstat.random")))
     (build-system r-build-system)
     (propagated-inputs (list r-spatstat-data r-spatstat-geom r-spatstat-utils))
-- 
cgit v1.2.3


From 03c6a20fc1ca6d2983e1d939d0bef402e06cec99 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:30 +0100
Subject: gnu: r-seurat: Update to 5.0.2.

* gnu/packages/cran.scm (r-seurat): Update to 5.0.2.

Change-Id: I358d4bcab984b207ab9ee69ebdaeecf440626b70
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index eb930573c4..a5b12d7e05 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -36892,13 +36892,13 @@ other R users.")
 (define-public r-seurat
   (package
     (name "r-seurat")
-    (version "5.0.1")
+    (version "5.0.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "Seurat" version))
               (sha256
                (base32
-                "038mqnavn3gxxx41yzq0q7gfnnx15dizryv8l374zwavpqsb84q7"))))
+                "1d49a9mhip81lvnkr8i4dznkmzyskdzrpi485w7yw2sr0qbyzg5c"))))
     (properties `((upstream-name . "Seurat")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 74a179bc44d09e98e378f9640b1d174c4291c70c Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:31 +0100
Subject: gnu: r-mlr3: Update to 0.18.0.

* gnu/packages/cran.scm (r-mlr3): Update to 0.18.0.

Change-Id: I4694be8897b834dc107b80aff89ccf2fb43759d1
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index a5b12d7e05..7029a69a91 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -37631,13 +37631,13 @@ implemented as @code{R6} classes.")
 (define-public r-mlr3
   (package
     (name "r-mlr3")
-    (version "0.17.2")
+    (version "0.18.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3" version))
               (sha256
                (base32
-                "0kcny3wxc7qc2538hxxdzs9bw4pq55s4abhlnpf1r13b2gkns323"))))
+                "0v83lwigpm227dqr8hz5x1khcjqf3q0glqvz812sckbcf74ibhdz"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-backports
-- 
cgit v1.2.3


From 85c9d158f3256aa8b1c62b7e89bfb9b70556a9d0 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:31 +0100
Subject: gnu: r-bbotk: Update to 0.8.0.

* gnu/packages/cran.scm (r-bbotk): Update to 0.8.0.

Change-Id: I5ecb9e126b96970db6aee5374ae809cd03eab9f4
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 7029a69a91..5d8a8ec07d 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -37696,14 +37696,14 @@ vector machines, and gradient boosting.")
 (define-public r-bbotk
   (package
     (name "r-bbotk")
-    (version "0.7.3")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bbotk" version))
        (sha256
         (base32
-         "1ddr5w7n68d3imcrm0ipgk1waml8zj4szi566dmmiqvlpzpgdr3p"))))
+         "1ggfl1lhvjnnkxib4svqd82agrvjcg1101cbf4g2c0kzgzm1jaj6"))))
     (properties `((upstream-name . "bbotk")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 1c13f01037608b0bdf3b9ed80573f02e61d3c22a Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:31 +0100
Subject: gnu: r-mlr3tuning: Update to 0.20.0.

* gnu/packages/cran.scm (r-mlr3tuning): Update to 0.20.0.

Change-Id: I4eff54cf5e5961ea8389e606fcdf8b197c9a0b43
---
 gnu/packages/cran.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 5d8a8ec07d..2bac4a21d9 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -37726,13 +37726,13 @@ annealing.")
 (define-public r-mlr3tuning
   (package
     (name "r-mlr3tuning")
-    (version "0.19.2")
+    (version "0.20.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3tuning" version))
               (sha256
                (base32
-                "1d27m6yzwr7chpf19q6mwpj2fyz9vv8k6nbg8z9615hmbp96lan5"))))
+                "1y1cqfqdx9v0lfb4619y2hw6clhhjzi7hjwrpwzdpd7ymcx3dgi3"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-bbotk
-- 
cgit v1.2.3


From f0ea78f219cd5157a8692099de184b953d60cadc Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:32 +0100
Subject: gnu: r-gganimate: Update to 1.0.9.

* gnu/packages/cran.scm (r-gganimate): Update to 1.0.9.
[propagated-inputs]: Add r-cli, r-lifecycle, r-transformr, and r-vctrs.

Change-Id: I6fbee3cf380992caeeedaa738aa21dabad670950
---
 gnu/packages/cran.scm | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 2bac4a21d9..538eb76fe5 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -39212,14 +39212,14 @@ complex functions.")
 (define-public r-gganimate
   (package
     (name "r-gganimate")
-    (version "1.0.8")
+    (version "1.0.9")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "gganimate" version))
         (sha256
           (base32
-            "1jabs9qr0319w508kdsk5nmzfhl6nzykpp1by7l639yfvrfqcbd1"))))
+            "016nky797h4093qrpynq5rr1p7h4chpv1hyngpcs2csr1064rjmz"))))
     (properties `((upstream-name . "gganimate")))
     (build-system r-build-system)
     (arguments
@@ -39234,13 +39234,17 @@ complex functions.")
       ;; For video output.
       (list ffmpeg))
     (propagated-inputs
-      (list r-ggplot2
+      (list r-cli
+            r-ggplot2
             r-glue
+            r-lifecycle
             r-progress
             r-rlang
             r-scales
             r-stringi
+            r-transformr
             r-tweenr
+            r-vctrs
             ;; For GIF/SVG output. gifski is faster, but depends on Rust.
             r-magick
             ;; For HTML output.
-- 
cgit v1.2.3


From 17f602aec27dbe61d58e1e04ce5ff1b82c1ee054 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:32 +0100
Subject: gnu: r-gdtools: Update to 0.3.7.

* gnu/packages/statistics.scm (r-gdtools): Update to 0.3.7.

Change-Id: I6f784e10a6856c3b651fca44f658810750a255fc
---
 gnu/packages/statistics.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index d17061205f..edf73387bf 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1328,14 +1328,14 @@ agnes cluster diagrams.")
 (define-public r-gdtools
   (package
     (name "r-gdtools")
-    (version "0.3.6")
+    (version "0.3.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gdtools" version))
        (sha256
         (base32
-         "1d1sidm2qi1nrp1hhf010xji66aj8sn833fv4a39gli2c560p4i6"))))
+         "155ky9fdi023b5fjk1gh3607xlgm3hymq232fq03ip2aaywc74nj"))))
     (build-system r-build-system)
     (native-inputs
      (list pkg-config))
-- 
cgit v1.2.3


From 9519b412e744ae31c57d1ebf75770212c7f7e066 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:32 +0100
Subject: gnu: r-locfit: Update to 1.5-9.9.

* gnu/packages/statistics.scm (r-locfit): Update to 1.5-9.9.

Change-Id: I792b37ef9b5f10b95b14ca633d254843a9de9aab
---
 gnu/packages/statistics.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index edf73387bf..d510dec0ac 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1994,14 +1994,14 @@ side.")
 (define-public r-locfit
   (package
     (name "r-locfit")
-    (version "1.5-9.8")
+    (version "1.5-9.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "locfit" version))
        (sha256
         (base32
-         "1qqxw69p42l4szr2fl73bdydpcbxn68iyxyyjy7qy3p56bxrn2hd"))))
+         "1m7ji1ykvffqvs9ly1pzadiwhwxcyv4xivziikmahp0w0sv45lck"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-lattice))
-- 
cgit v1.2.3


From 3db9c8349808661d77841cf24fcd2f7ace71b901 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:32 +0100
Subject: gnu: r-data-table: Update to 1.15.2.

* gnu/packages/statistics.scm (r-data-table): Update to 1.15.2.

Change-Id: I1e68949514e1f525bc70218752d3f978b787d4b6
---
 gnu/packages/statistics.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index d510dec0ac..c9b7f6f284 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -2033,13 +2033,13 @@ times.")
 (define-public r-data-table
   (package
     (name "r-data-table")
-    (version "1.15.0")
+    (version "1.15.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "data.table" version))
               (sha256
                (base32
-                "0qhh4ii10b6rbimhh83160gsax82gbrm3hqbqqddkzknpifxpdrr"))))
+                "04pfcm3pyl997rpyj5zdmbhi4ndaai81vfgv4whjp8rhqzjk7i6j"))))
     (properties `((upstream-name . "data.table")))
     (build-system r-build-system)
     (inputs
-- 
cgit v1.2.3


From 91be2002491430198b344f33d8dba05e642c543a Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:33 +0100
Subject: gnu: r-rcpparmadillo: Update to 0.12.8.1.0.

* gnu/packages/statistics.scm (r-rcpparmadillo): Update to 0.12.8.1.0.

Change-Id: Ic0e678dadd5fcbbea3b0edda60a6bc465bdbe98c
---
 gnu/packages/statistics.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index c9b7f6f284..4c7e68b909 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -3179,13 +3179,13 @@ well as additional utilities such as panel and axis annotation functions.")
 (define-public r-rcpparmadillo
   (package
     (name "r-rcpparmadillo")
-    (version "0.12.8.0.0")
+    (version "0.12.8.1.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RcppArmadillo" version))
               (sha256
                (base32
-                "0pkn4334dh4k6hqfx4xln2nfvajyxdbfnfddajb8875il0f7kp0x"))))
+                "0ax4812dm33c67ckd902qabis3dgqmpkchk4s30bshnfv4fxx1z2"))))
     (properties `((upstream-name . "RcppArmadillo")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 839a6ed474e10a85631a85b4a73ed506582d723d Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:33 +0100
Subject: gnu: r-vgam: Update to 1.1-10.

* gnu/packages/statistics.scm (r-vgam): Update to 1.1-10.

Change-Id: I0f116e19095577e20ac9c6644e00141dcc953d84
---
 gnu/packages/statistics.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 4c7e68b909..569b0f1ddd 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -5861,13 +5861,13 @@ groupings.")
 (define-public r-vgam
   (package
     (name "r-vgam")
-    (version "1.1-9")
+    (version "1.1-10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "VGAM" version))
        (sha256
-        (base32 "1l5gn6495k8vqp2b4hj4g5ani7j4cli2p7n8fwkw7bmc42q13m6l"))))
+        (base32 "04yy5rxid3fwn42sak9rjbxd1h4d7iigiznpbrvwxl06b1xficyb"))))
     (properties `((upstream-name . "VGAM")))
     (build-system r-build-system)
     (native-inputs
-- 
cgit v1.2.3


From 5ec0ff2dc85a0bf2bad82aa4e00f7224d3133ded Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:33 +0100
Subject: gnu: r-rcppeigen: Update to 0.3.4.0.0.

* gnu/packages/statistics.scm (r-rcppeigen): Update to 0.3.4.0.0.

Change-Id: Ie879a04dcc7c22fac69da0f72a82868f14571f59
---
 gnu/packages/statistics.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 569b0f1ddd..c4866acfea 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -5928,14 +5928,14 @@ based on an interface to Fortran implementations by M. J. D. Powell.")
 (define-public r-rcppeigen
   (package
     (name "r-rcppeigen")
-    (version "0.3.3.9.4")
+    (version "0.3.4.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RcppEigen" version))
        (sha256
         (base32
-         "1faz1phvg7g14bchi88vizn5mfhgiwmsjg7jzkyf1yjg0f6vpsj1"))))
+         "0djiyimgka7g3kfakb6mfaq7cxna9kn6kgib59x9p7qj24ha1m18"))))
     (properties `((upstream-name . "RcppEigen")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 85cdebc014e3770d66e20488951302e5151ed733 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:33 +0100
Subject: gnu: r-naniar: Update to 1.1.0.

* gnu/packages/statistics.scm (r-naniar): Update to 1.1.0.
[propagated-inputs]: Add r-lifecycle.

Change-Id: I01815422981039a0b4c23a2d91fae37300e9d5da
---
 gnu/packages/statistics.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index c4866acfea..f811f649d1 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -7291,22 +7291,23 @@ normal model.")
 (define-public r-naniar
   (package
     (name "r-naniar")
-    (version "1.0.0")
+    (version "1.1.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "naniar" version))
               (sha256
                (base32
-                "1x4ljc6yji7312g6cg1shc85jqv5kaf2zlf5q7sdmqh3wryskvf2"))))
+                "0i3gijr1l7hbcp75cyj26pxmm493lnvasl8aba9vv4w8lz1lck59"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-cli
            r-dplyr
-           r-norm
            r-forcats
            r-ggplot2
            r-glue
+           r-lifecycle
            r-magrittr
+           r-norm
            r-purrr
            r-rlang
            r-tibble
-- 
cgit v1.2.3


From 86552708c31e628d98f8ca261edb22c01fbd7445 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Tue, 5 Mar 2024 14:38:34 +0100
Subject: gnu: r-datasaurus: Update to 0.1.8.

* gnu/packages/statistics.scm (r-datasaurus): Update to 0.1.8.

Change-Id: Ida2de5f36bbb7bbb42f6088bffafaa0059c02ec3
---
 gnu/packages/statistics.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index f811f649d1..0c830db6e5 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -7356,14 +7356,14 @@ Michael Lim & Trevor Hastie (2015)")
 (define-public r-datasaurus
   (package
     (name "r-datasaurus")
-    (version "0.1.6")
+    (version "0.1.8")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "datasauRus" version))
         (sha256
           (base32
-            "0vgylf3bab0xcfg08xwvfq9yhxy6w0fxi7wp4kkxfyjb0pw15qxk"))))
+            "08yx87k4kl3i9g3m1j9532whvs4l0l3v5gwj8sk7qlb3m3wajakr"))))
     (properties `((upstream-name . "datasauRus")))
     (build-system r-build-system)
     (native-inputs (list r-knitr))
-- 
cgit v1.2.3


From 9d9bb8955a939b89b5b28f1071b70ed9f9a54f8c Mon Sep 17 00:00:00 2001
From: Carlo Zancanaro <carlo@zancanaro.id.au>
Date: Wed, 6 Mar 2024 16:38:54 +1100
Subject: scripts: import: elpa: Unquote-splice package sexp contents.

* guix/scripts/import/elpa.scm (guix-import-elpa): Unquote-splice the contents
of the package sexp so the matched package definition is returned unchanged.

Change-Id: Iaaa7e72390c73c6d6671811fe9ac284d599b44c6
Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
---
 guix/scripts/import/elpa.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/scripts/import/elpa.scm b/guix/scripts/import/elpa.scm
index f587eeb243..7f77beaac0 100644
--- a/guix/scripts/import/elpa.scm
+++ b/guix/scripts/import/elpa.scm
@@ -104,7 +104,7 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n"))
                                       #:repo (assoc-ref opts 'repo)))
          ((or #f '())
           (leave (G_ "failed to download meta-data for package '~a'~%") package-name))
-         (('package etc ...) `(package ,etc))
+         (('package etc ...) `(package ,@etc))
          ((? list? sexps) (map
                            (match-lambda
                              ((and ('package ('name name) . rest) pkg)
-- 
cgit v1.2.3


From 7ddc66bd36d602984f35996096f6136a6458a14a Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 6 Mar 2024 11:31:31 +0100
Subject: gnu: r-nebulosa: Update to 1.12.1.

* gnu/packages/bioconductor.scm (r-nebulosa): Update to 1.12.1.
[propagated-inputs]: Remove r-seurat; add r-ggrastr and r-seuratobject.

Change-Id: If301102ec02ce618ed1ebeff17a9d7e0845e847c
---
 gnu/packages/bioconductor.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 8bda746ee0..e1a782d925 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -6198,20 +6198,21 @@ mapping.")
 (define-public r-nebulosa
   (package
     (name "r-nebulosa")
-    (version "1.12.0")
+    (version "1.12.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Nebulosa" version))
               (sha256
                (base32
-                "0kzkdwxrhl7plbcbqr58gnadhhbhx2811ian0s4kds14y4mxl26c"))))
+                "11wn6l27cshhb1djsgqaqr8d33j4bipy0w0gafp3fkvg7mnpnhps"))))
     (properties `((upstream-name . "Nebulosa")))
     (build-system r-build-system)
     (propagated-inputs (list r-ggplot2
+                             r-ggrastr
                              r-ks
                              r-matrix
                              r-patchwork
-                             r-seurat
+                             r-seuratobject
                              r-singlecellexperiment
                              r-summarizedexperiment))
     (native-inputs (list r-knitr))
-- 
cgit v1.2.3


From f83fbb935368419d62e608f9a9dab89555757a63 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 6 Mar 2024 11:31:31 +0100
Subject: gnu: r-ggtree: Update to 3.10.1.

* gnu/packages/bioconductor.scm (r-ggtree): Update to 3.10.1.

Change-Id: I62eec59a6be3f806261198a1d39eb38ee86a9a79
---
 gnu/packages/bioconductor.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index e1a782d925..09477a8266 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -13867,14 +13867,14 @@ data.")
 (define-public r-ggtree
   (package
     (name "r-ggtree")
-    (version "3.10.0")
+    (version "3.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggtree" version))
        (sha256
         (base32
-         "12w2l1q0c5aznd5fls04wvgsmjidqhr1kkqj4gajz1abj9f49cqf"))))
+         "1p475vh567q4szb8hy2qk72pvqh5rlbyqfjcdd0i83fa2y4bi31d"))))
     (properties `((upstream-name . "ggtree")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From c202079ef8e4ca2e7b70d6fe80ca918a3324dddb Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 6 Mar 2024 11:31:32 +0100
Subject: gnu: r-ggcyto: Update to 1.30.2.

* gnu/packages/bioconductor.scm (r-ggcyto): Update to 1.30.2.

Change-Id: I29c123aa60347b491412631f036923c3bbb7d6c9
---
 gnu/packages/bioconductor.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 09477a8266..5307455349 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -18396,14 +18396,14 @@ manipulation of flow cytometry data.")
 (define-public r-ggcyto
   (package
     (name "r-ggcyto")
-    (version "1.30.0")
+    (version "1.30.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggcyto" version))
        (sha256
         (base32
-         "13zc5952drl187fl07v1nh6gv0g6ba11vxpxl4ghvavnknvi5phd"))))
+         "0ig23b6apyp35rxxiqd5nw46yjm2784njlafsgw98akhl8ck0g7n"))))
     (properties `((upstream-name . "ggcyto")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From 82a449419c1b64b1eb36558f6b93b58d5b779c0c Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 6 Mar 2024 11:31:32 +0100
Subject: gnu: r-s4arrays: Update to 1.2.1.

* gnu/packages/bioconductor.scm (r-s4arrays): Update to 1.2.1.

Change-Id: I68c0ee03264073e8816fc92fbaa97ebb6c5036ed
---
 gnu/packages/bioconductor.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 5307455349..856a720f59 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -21300,13 +21300,13 @@ routines.")
 (define-public r-s4arrays
   (package
     (name "r-s4arrays")
-    (version "1.2.0")
+    (version "1.2.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "S4Arrays" version))
               (sha256
                (base32
-                "0x420l98f6b10r3qrdjq5ijs2p0msdcg6d6aghr3yvj1f9g06h8y"))))
+                "1z6kcgjb5fzslr02vmsvchbilrhwpgh1ghk1zmlq0h0lyzncaapd"))))
     (properties `((upstream-name . "S4Arrays")))
     (build-system r-build-system)
     (propagated-inputs
-- 
cgit v1.2.3


From f3ea06baca2b96cd20170616fd5da13ec2daac54 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 6 Mar 2024 11:31:32 +0100
Subject: gnu: r-snprelate: Update to 1.36.1.

* gnu/packages/bioconductor.scm (r-snprelate): Update to 1.36.1.

Change-Id: I5cf14d463c0f4ca3707a8ac33c7a06baa4337789
---
 gnu/packages/bioconductor.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 856a720f59..4dc7000250 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -23016,13 +23016,13 @@ segmented data for individual and multiple arrays.")
 (define-public r-snprelate
   (package
     (name "r-snprelate")
-    (version "1.36.0")
+    (version "1.36.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "SNPRelate" version))
               (sha256
                (base32
-                "0jw9ziz0a472mnnvmqwas5w646xfgx8dn1bdpwz8c99m663d8ayp"))))
+                "0d15r7qwwrr6m9saikx4x6hj56kb3p2w3v1awkgm3wfqfgdf1pin"))))
     (properties `((upstream-name . "SNPRelate")))
     (build-system r-build-system)
     (propagated-inputs (list r-gdsfmt))
-- 
cgit v1.2.3


From 06e61f9cd2f4c317e19bf4eca817737af6544c42 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 6 Mar 2024 15:42:03 +0100
Subject: gnu: r-seuratdata: Update to 0.2.2.9001-1.4dc08e0.

* gnu/packages/cran.scm (r-seuratdata): Update to 0.2.2.9001-1.4dc08e0.
[propagated-inputs]: Add r-seurat and r-seuratobject.

Change-Id: I8bf21d23ec0bdfbc0b8930673ac5750d081ac780
---
 gnu/packages/cran.scm | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 538eb76fe5..dbbf30c551 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -37075,11 +37075,11 @@ goal of enhancing interoperability between Seurat and Scanpy.")
       (license license:gpl3))))
 
 (define-public r-seuratdata
-  (let ((commit "b59556b24d7d6728a5744c9c715dd5f7f32ed7a5")
+  (let ((commit "4dc08e022f51c324bc7bf785b1b5771d2742701d")
         (revision "1"))
     (package
       (name "r-seuratdata")
-      (version (git-version "0.2.1" revision commit))
+      (version (git-version "0.2.2.9001" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -37088,7 +37088,7 @@ goal of enhancing interoperability between Seurat and Scanpy.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "1xfdmdmgn4r0z6w4cxa98ic6xk8i6qz054r215dvqbjs1vydsbf9"))))
+          (base32 "1wac1jqh42nbaikkd8v3apr1lwqcn1ppprfkwqfnqs6mvavgqavp"))))
       (properties `((upstream-name . "SeuratData")))
       (build-system r-build-system)
       (arguments
@@ -37098,8 +37098,7 @@ goal of enhancing interoperability between Seurat and Scanpy.")
            ;; the included list of packages.
            (add-after 'unpack 'set-HOME
              (lambda _ (setenv "HOME" "/tmp"))))))
-      (propagated-inputs
-       (list r-cli r-crayon r-rappdirs))
+      (propagated-inputs (list r-cli r-crayon r-rappdirs r-seurat r-seuratobject))
       (home-page "https://github.com/satijalab/seurat-data")
       (synopsis "Install and manage Seurat datasets")
       (description
-- 
cgit v1.2.3


From 364422d0ac6608e9297070b80d091a3c11c6cce7 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Sat, 2 Mar 2024 18:46:06 +0100
Subject: doc: Fix typo in “Getting Started with the System”.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* doc/guix.texi (Getting Started with the System): Fix typo.

Change-Id: Idc52b9a4d5f5003899613595b6b275e098f6a3a8
---
 doc/guix.texi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 87fe9f803c..176c92971f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -17295,7 +17295,7 @@ as.  This means that if you choose to use @command{guix system reconfigure} in
 root's login shell, you'll need to @command{guix pull} separately.
 @end quotation
 
-That's it!  If you're getting starting with Guix entirely,
+That's it!  If you're getting started with Guix entirely,
 @pxref{Getting Started}.  The next sections dive in more detail into the
 crux of the matter: system configuration.
 
-- 
cgit v1.2.3


From 9e3061a163abcae5ccd3823ba3d8f757a0478e40 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Wed, 6 Mar 2024 11:14:17 +0100
Subject: services: virtual-build-machine: Disable substitutes by default.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These are useless when offloading yet were causing problems on systems
where the default substitute servers are unreachable.

* gnu/services/virtualization.scm (%virtual-build-machine-operating-system):
Add ‘use-substitutes?’ field to ‘guix-configuration’.

Change-Id: I7d5e380a6f2e2d537de43fdb3c550958ed4db255
---
 gnu/services/virtualization.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 7b04ddb35e..fc5adb94d0 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -1220,10 +1220,13 @@ authpriv.*;auth.info                    /var/log/secure
                        ;; pre-initialized /etc/guix/acl file in the VM.  Thus,
                        ;; clear 'authorize-key?' so that it's not overridden
                        ;; at activation time.
+                       ;; Since it's used for offloading, disable substitutes
+                       ;; (this avoids network issues).
                        (guix-service-type config =>
                                           (guix-configuration
                                            (inherit config)
-                                           (authorize-key? #f)))
+                                           (authorize-key? #f)
+                                           (use-substitutes? #f)))
                        (syslog-service-type config =>
                                             (syslog-configuration
                                              (config-file
-- 
cgit v1.2.3


From 01f685d56016ae529381a73daedccc1949b808ec Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Wed, 6 Mar 2024 21:52:42 +0100
Subject: gnu: home: dotfiles: Properly support both plain and Stow directory
 layouts.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes <https://issues.guix.gnu.org/68848>.

The current implementation of the home-dotfiles-service-type contradicts
the Guix manual.  This patch properly implements both the plain and Stow
dotfiles directory layouts.

It does so by refactoring home-dotfiles-configuration adding a new
packages field to support GNU Stow's users workflow and introducing
a new layout field to switch between the two directory layouts.

* gnu/home/services/dotfiles (home-dotfiles-configuration): Migrate to
(gnu services configuration);
[packages]: new field;
[layout]: new field;
(strip-stow-dotfile): new variable;
(strip-plain-dotfile): new variable;
(home-dotfiles-configuration->files): use the new fields;
[directory-contents]: allow for
selecting a subset of application dotfile directories;
* doc/guix.texi: document the new layouts.

Change-Id: I2e96037608353e360828290f055ec5271cfdfd48
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 doc/guix.texi                  |  84 ++++++++++++++++++++++--------
 gnu/home/services/dotfiles.scm | 115 +++++++++++++++++++++++++++++++----------
 2 files changed, 151 insertions(+), 48 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 176c92971f..858d5751bf 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -111,7 +111,7 @@ Copyright @copyright{} 2022 (@*
 Copyright @copyright{} 2022 John Kehayias@*
 Copyright @copyright{} 2022⁠–⁠2023 Bruno Victal@*
 Copyright @copyright{} 2022 Ivan Vilata-i-Balaguer@*
-Copyright @copyright{} 2023 Giacomo Leidi@*
+Copyright @copyright{} 2023-2024 Giacomo Leidi@*
 Copyright @copyright{} 2022 Antero Mejr@*
 Copyright @copyright{} 2023 Karl Hallsby@*
 Copyright @copyright{} 2023 Nathaniel Nicandro@*
@@ -44667,17 +44667,42 @@ directory, and some way of automatically deploy changes to their user home.
 @cindex Stow-like dot file management
 The @code{home-dotfiles-service-type} from @code{(gnu home services dotfiles)}
 is designed to ease the way into using Guix Home for this kind of users,
-allowing them to point the service to their dotfiles directory, which must
-follow the layout suggested by
-@uref{https://www.gnu.org/software/stow/, GNU Stow},
-and have their dotfiles automatically deployed to their user home, without
+allowing them to point the service to their dotfiles directory without
 migrating them to Guix native configurations.
 
-The dotfiles directory layout is expected to be structured as follows. Please
-keep in mind that it is advisable to keep your dotfiles directories under
+Please keep in mind that it is advisable to keep your dotfiles directories under
 version control, for example in the same repository where you'd track your
 Guix Home configuration.
 
+There are two supported dotfiles directory layouts, for now. The
+@code{'plain} layout, which is structured as follows:
+
+@example
+~$ tree -a ./dotfiles/
+dotfiles/
+├── .gitconfig
+├── .gnupg
+│   ├── gpg-agent.conf
+│   └── gpg.conf
+├── .guile
+├── .config
+│   ├── guix
+│   │   └── channels.scm
+│   └── nixpkgs
+│       └── config.nix
+├── .nix-channels
+├── .tmux.conf
+└── .vimrc
+@end example
+
+This tree structure is installed as is to the
+home directory upon @command{guix home reconfigure}.
+
+The @code{'stow} layout, which must
+follow the layout suggested by
+@uref{https://www.gnu.org/software/stow/, GNU Stow} presents an additional
+application specific directory layer, just like:
+
 @example
 ~$ tree -a ./dotfiles/
 dotfiles/
@@ -44707,8 +44732,10 @@ dotfiles/
 @end example
 
 For an informal specification please refer to the Stow manual
-(@pxref{Top,,, stow, Introduction}). A suitable configuration would then
-be:
+(@pxref{Top,,, stow, Introduction}). This tree structure is installed following
+GNU Stow's logic to the home directory upon @command{guix home reconfigure}.
+
+A suitable configuration with a @code{'plain} layout could be:
 
 @lisp
 (home-environment
@@ -44716,7 +44743,7 @@ be:
   (services
     (service home-dotfiles-service-type
              (home-dotfiles-configuration
-               (directories (list "./dotfiles"))))))
+               (directories '("./dotfiles"))))))
 @end lisp
 
 The expected home directory state would then be:
@@ -44743,32 +44770,47 @@ Return a service which is very similiar to @code{home-files-service-type}
 (and actually extends it), but designed to ease the way into using Guix
 Home for users that already track their dotfiles under some kind of version
 control.  This service allows users to point Guix Home to their dotfiles
-directory and have their files automatically deployed to their home directory
-just like Stow would, without migrating all of their dotfiles to Guix native
+directory and have their files automatically provisioned to their home
+directory, without migrating all of their dotfiles to Guix native
 configurations.
 @end defvar
 
+@c %start of fragment
+
 @deftp {Data Type} home-dotfiles-configuration
 Available @code{home-dotfiles-configuration} fields are:
 
 @table @asis
-@item @code{source-directory} (default: @code{(current-source-directory)})
-The path where dotfile directories are resolved. By default dotfile directories
-are resolved relative the source location where
+@item @code{source-directory} (default: @code{(current-source-directory)}) (type: string)
+The path where dotfile directories are resolved.  By default dotfile
+directories are resolved relative the source location where
 @code{home-dotfiles-configuration} appears.
 
-@item @code{directories} (type: list-of-strings)
-The list of dotfiles directories where @code{home-dotfiles-service-type} will
-look for application dotfiles.
+@item @code{layout} (default: @code{'plain}) (type: symbol)
+The intended layout of the specified @code{directory}.  It can be either
+@code{'stow} or @code{'plain}.
+
+@item @code{directories} (default: @code{'()}) (type: list-of-strings)
+The list of dotfiles directories where @code{home-dotfiles-service-type}
+will look for application dotfiles.
+
+@item @code{packages} (type: maybe-list-of-strings)
+The names of a subset of the GNU Stow package layer directories.  When provided
+the @code{home-dotfiles-service-type} will only provision dotfiles from this
+subset of applications.  This field will be ignored if @code{layout} is set
+to @code{'plain}.
 
-@item @code{exclude} (default: @code{'(".*~" ".*\\.swp" "\\.git" "\\.gitignore")})
-The list of file patterns @code{home-dotfiles-service-type} will exclude while
-visiting each one of the @code{directories}.
+@item @code{excluded} (default: @code{'(".*~" ".*\\.swp" "\\.git" "\\.gitignore")}) (type: list-of-strings)
+The list of file patterns @code{home-dotfiles-service-type} will exclude
+while visiting each one of the @code{directories}.
 
 @end table
 
 @end deftp
 
+
+@c %end of fragment
+
 @defvar home-xdg-configuration-files-service-type
 The service is very similar to @code{home-files-service-type} (and
 actually extends it), but used for defining files, which will go to
diff --git a/gnu/home/services/dotfiles.scm b/gnu/home/services/dotfiles.scm
index 6a740c42ce..823bdb03fb 100644
--- a/gnu/home/services/dotfiles.scm
+++ b/gnu/home/services/dotfiles.scm
@@ -20,17 +20,25 @@
 (define-module (gnu home services dotfiles)
   #:use-module (gnu home services)
   #:use-module (gnu services)
+  #:use-module (gnu services configuration)
   #:autoload   (guix build utils) (find-files)
+  #:use-module (guix diagnostics)
   #:use-module (guix gexp)
-  #:use-module (guix records)
+  #:use-module (guix i18n)
   #:use-module ((guix utils) #:select (current-source-directory))
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 ftw)
+  #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:export (home-dotfiles-service-type
+            home-dotfiles-configuration->files
+
             home-dotfiles-configuration
             home-dotfiles-configuration?
+            home-dotfiles-configuration-fields
+            home-dotfiles-configuration-layout
             home-dotfiles-configuration-source-directory
+            home-dotfiles-configuration-packages
             home-dotfiles-configuration-directories
             home-dotfiles-configuration-excluded))
 
@@ -40,26 +48,64 @@
     "\\.git"
     "\\.gitignore"))
 
-(define-record-type* <home-dotfiles-configuration>
-  home-dotfiles-configuration make-home-dotfiles-configuration
-  home-dotfiles-configuration?
-  (source-directory  home-dotfiles-configuration-source-directory
-                     (default (current-source-directory))
-                     (innate))
-  (directories       home-dotfiles-configuration-directories       ;list of strings
-                     (default '()))
-  (excluded          home-dotfiles-configuration-excluded       ;list of strings
-                     (default %home-dotfiles-excluded)))
-
-(define (import-dotfiles directory files)
+(define %home-dotfiles-layouts
+  '(plain stow))
+
+(define (sanitize-layout value)
+  (if (member value %home-dotfiles-layouts)
+      value
+      (raise
+       (formatted-message
+        (G_ "layout field of home-dotfiles-configuration should be either 'plain
+or 'stow, but ~a was found.")
+        value))))
+
+(define list-of-strings?
+  (list-of string?))
+
+(define-maybe list-of-strings)
+
+(define-configuration/no-serialization home-dotfiles-configuration
+  (source-directory
+   (string (current-source-directory))
+   "The path where dotfile directories are resolved.  By default dotfile
+directories are resolved relative the source location where
+@code{home-dotfiles-configuration} appears.")
+  (layout
+   (symbol 'plain)
+   "The intended layout of the specified @code{directory}.  It can be either
+@code{'stow} or @code{'plain}."
+   (sanitizer sanitize-layout))
+  (directories
+   (list-of-strings '())
+   "The list of dotfiles directories where @code{home-dotfiles-service-type}
+will look for application dotfiles.")
+  (packages
+   (maybe-list-of-strings)
+   "The names of a subset of the GNU Stow package layer directories.  When provided
+the @code{home-dotfiles-service-type} will only provision dotfiles from this
+subset of applications.  This field will be ignored if @code{layout} is set
+to @code{'plain}.")
+  (excluded
+   (list-of-strings %home-dotfiles-excluded)
+   "The list of file patterns @code{home-dotfiles-service-type} will exclude
+while visiting @code{directory}."))
+
+(define (strip-stow-dotfile file-name directory)
+  (let ((dotfile-name (string-drop file-name (1+ (string-length directory)))))
+    (match (string-split dotfile-name #\/)
+      ((package parts ...)
+       (string-join parts "/")))))
+
+(define (strip-plain-dotfile file-name directory)
+  (string-drop file-name (+ 1 (string-length directory))))
+
+(define (import-dotfiles directory files strip)
   "Return a list of objects compatible with @code{home-files-service-type}'s
 value.  Each object is a pair where the first element is the relative path
 of a file and the second is a gexp representing the file content.  Objects are
 generated by recursively visiting DIRECTORY and mapping its contents to the
 user's home directory, excluding files that match any of the patterns in EXCLUDED."
-  (define (strip file)
-    (string-drop file (+ 1 (string-length directory))))
-
   (define (format file)
     ;; Remove from FILE characters that cannot be used in the store.
     (string-append
@@ -73,7 +119,7 @@ user's home directory, excluding files that match any of the patterns in EXCLUDE
                  file)))
 
   (map (lambda (file)
-         (let ((stripped (strip file)))
+         (let ((stripped (strip file directory)))
            (list stripped
                  (local-file file (format stripped)
                              #:recursive? #t))))
@@ -81,18 +127,25 @@ user's home directory, excluding files that match any of the patterns in EXCLUDE
 
 (define (home-dotfiles-configuration->files config)
   "Return a list of objects compatible with @code{home-files-service-type}'s
-value, generated following GNU Stow's algorithm for each of the
-directories in CONFIG, excluding files that match any of the patterns configured."
+value, excluding files that match any of the patterns configured."
+  (define stow? (eq? (home-dotfiles-configuration-layout config) 'stow))
   (define excluded
     (home-dotfiles-configuration-excluded config))
   (define exclusion-rx
     (make-regexp (string-append "^.*(" (string-join excluded "|") ")$")))
 
-  (define (directory-contents directory)
-    (find-files directory
-                (lambda (file stat)
-                  (not (regexp-exec exclusion-rx
-                                    (basename file))))))
+  (define* (directory-contents directory #:key (packages #f))
+    (define (filter-files directory)
+      (find-files directory
+                  (lambda (file stat)
+                    (not (regexp-exec exclusion-rx
+                                      (basename file))))))
+    (if (and stow? packages (maybe-value-set? packages))
+        (append-map filter-files
+                    (map (lambda (pkg)
+                           (string-append directory "/" pkg))
+                         packages))
+        (filter-files directory)))
 
   (define (resolve directory)
     ;; Resolve DIRECTORY relative to the 'source-directory' field of CONFIG.
@@ -103,15 +156,23 @@ directories in CONFIG, excluding files that match any of the patterns configured
 
   (append-map (lambda (directory)
                 (let* ((directory (resolve directory))
-                       (contents  (directory-contents directory)))
-                  (import-dotfiles directory contents)))
+                       (packages
+                        (home-dotfiles-configuration-packages config))
+                       (contents
+                        (directory-contents directory
+                                            #:packages packages))
+                       (strip
+                        (if stow? strip-stow-dotfile strip-plain-dotfile)))
+                  (import-dotfiles directory contents strip)))
               (home-dotfiles-configuration-directories config)))
 
 (define-public home-dotfiles-service-type
   (service-type (name 'home-dotfiles)
                 (extensions
                  (list (service-extension home-files-service-type
-                                          home-dotfiles-configuration->files)))
+                                          (lambda (config)
+                                            (when config
+                                              (home-dotfiles-configuration->files config))))))
                 (default-value (home-dotfiles-configuration))
                 (description "Files that will be put in the user's home directory
 following GNU Stow's algorithm, and further processed during activation.")))
-- 
cgit v1.2.3


From 5980c8a6b16dd589769ad7cd0bab82fcb9c116cb Mon Sep 17 00:00:00 2001
From: Zheng Junjie <zhengjunjie@iscas.ac.cn>
Date: Tue, 5 Mar 2024 01:19:34 +0800
Subject: gnu: libtheora: Use Gexps.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/xiph.scm (libtheora): Use Gexps.

Change-Id: Ie055cd4f6cb9d2a4601b93d1f9db227598349c7c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/xiph.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index b47c718fb6..879d8e8d39 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,7 +48,8 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (guix gexp))
 
 (define-public libogg
   (package
@@ -115,7 +117,7 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to
              (patches (search-patches "libtheora-config-guess.patch"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     (list #:configure-flags #~'("--disable-static")))
     (inputs (list libvorbis))
     ;; The .pc files refer to libogg.
     (propagated-inputs (list libogg))
-- 
cgit v1.2.3


From 64d269b983b76553466ac93945d58c7865cf190e Mon Sep 17 00:00:00 2001
From: Zheng Junjie <zhengjunjie@iscas.ac.cn>
Date: Tue, 5 Mar 2024 01:19:35 +0800
Subject: gnu: libtheora: Fix cross-compiling to riscv64-linux.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/xiph.scm (libtheora):
[native-inputs]: When cross compiling to riscv64-linux-gnu, add config.
[arguments]: When target riscv64-linux-gnu, add update-config phase.

Change-Id: Ie055cd4f6cb9d2a4601b93d1f9db227598349c7c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/xiph.scm | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 879d8e8d39..f3603c39bb 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -46,6 +46,7 @@
   #:use-module (gnu packages xml)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
@@ -117,7 +118,26 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to
              (patches (search-patches "libtheora-config-guess.patch"))))
     (build-system gnu-build-system)
     (arguments
-     (list #:configure-flags #~'("--disable-static")))
+     (append
+      (if (and (target-riscv64?)
+               (%current-target-system))
+          (list #:phases
+                #~(modify-phases %standard-phases
+                    (add-after 'unpack 'update-config
+                      (lambda* (#:key native-inputs inputs #:allow-other-keys)
+                        (for-each (lambda (file)
+                                    (install-file
+                                     (search-input-file
+                                      (or native-inputs inputs)
+                                      (string-append "/bin/" file)) "."))
+                                  '("config.guess" "config.sub"))))))
+          '())
+      (list #:configure-flags #~'("--disable-static"))))
+    (native-inputs
+     (if (and (target-riscv64?)
+              (%current-target-system))
+         (list config)
+         '()))
     (inputs (list libvorbis))
     ;; The .pc files refer to libogg.
     (propagated-inputs (list libogg))
-- 
cgit v1.2.3


From 228ee09d35899faa34a003d7af99dd147497432c Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 6 Mar 2024 13:44:25 +0100
Subject: gnu: r-with-tests: Update to 4.3.3.

* gnu/packages/statistics.scm (r-with-tests): Update to 4.3.3.

Change-Id: Ida43d1e7f747245b01aa6fc73716b79611f0bbfd
---
 gnu/packages/statistics.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 0c830db6e5..660400fc23 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -223,7 +223,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
 (define r-with-tests
   (package
     (name "r-with-tests")
-    (version "4.3.2")
+    (version "4.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cran/src/base/R-"
@@ -231,7 +231,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0aj51j34q2b28y28xvlf0dwdj8vpnhjwpvqf7xm05s7fq857dxdk"))))
+                "0c03abq3kqg6d2yhrijy9j3fsl77har3k7pffwwbz19v74qi51c0"))))
     (build-system gnu-build-system)
     (arguments
      (list
-- 
cgit v1.2.3


From 201f90f34f90242bb74baa5ca44bda6131b3a035 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 7 Mar 2024 00:15:44 +0100
Subject: gnu: emacs-ess: Disable two bad tests.

These tests used to be disabled before and they do still fail.

* gnu/packages/statistics.scm (emacs-ess)[arguments]: Disable two more tests.

Change-Id: I44a18b43d4fa6af2c9244bb8f3697a01c6c8d255
---
 gnu/packages/statistics.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 660400fc23..0d9f593614 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -6891,6 +6891,8 @@ Java package that provides routines for various statistical distributions.")
                                     "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"
-- 
cgit v1.2.3


From 548a4ac51cea891f4f5a796fd68e6e752f568a23 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sun, 25 Feb 2024 11:22:00 +0100
Subject: gnu: Add go-github-com-tklauser-numcpus.

* gnu/packages/golang-xyz.scm (go-github-com-tklauser-numcpus): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index e68948e495..ad6b8f04e6 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
 ;;; Copyright © 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1189,6 +1190,42 @@ Use waterutil with it to work with TUN/TAP packets/frames.")
       (home-page "https://github.com/stathat/go")
       (license license:expat))))
 
+(define-public go-github-com-tklauser-numcpus
+  (package
+    (name "go-github-com-tklauser-numcpus")
+    (version "0.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tklauser/numcpus")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xcwk42zr6q72zvkqdd9nbyhvq11rmwm2164mr2rvbb9z7alkff8"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.18
+      #:import-path "github.com/tklauser/numcpus"
+      #:phases #~(modify-phases %standard-phases
+                   (add-before 'check 'remove-failing-tests
+                     (lambda* (#:key import-path #:allow-other-keys)
+                       (with-directory-excursion (string-append "src/"
+                                                                import-path)
+                         (for-each delete-file-recursively
+                                   ;; These tests try to access
+                                   ;; /sys/devices/system/cpu, which is not
+                                   ;; available in the test environment.
+                                   '("numcpus_test.go" "numcpus_linux_test.go"))))))))
+    (propagated-inputs (list go-golang-org-x-sys))
+    (home-page "https://github.com/tklauser/numcpus")
+    (synopsis "Provides information about the number of CPUs in the system")
+    (description
+     "This package provides both library functions and a command-line tool to
+query information regarding the number of CPUs available to the system.")
+    (license license:asl2.0)))
+
 (define-public go-go-uber-org-automaxprocs
   (package
     (name "go-go-uber-org-automaxprocs")
-- 
cgit v1.2.3


From bd4c6bbf0a821387687bb16221c59f0c1563a26e Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sun, 25 Feb 2024 11:24:41 +0100
Subject: gnu: Add go-github-com-tklauser-go-sysconf.

* gnu/packages/golang-xyz.scm (go-github-com-tklauser-go-sysconf): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index ad6b8f04e6..1badc3856c 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1190,6 +1190,43 @@ Use waterutil with it to work with TUN/TAP packets/frames.")
       (home-page "https://github.com/stathat/go")
       (license license:expat))))
 
+(define-public go-github-com-tklauser-go-sysconf
+  (package
+    (name "go-github-com-tklauser-go-sysconf")
+    (version "0.3.13")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tklauser/go-sysconf")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "07vkimncnmh89706s49599h2w9gwa6jyrv70f8ifw90nsh766km9"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.18
+      #:import-path "github.com/tklauser/go-sysconf"
+      #:phases #~(modify-phases %standard-phases
+                   (add-before 'check 'remove-failing-tests
+                     (lambda* (#:key import-path #:allow-other-keys)
+                       (delete-file-recursively
+                        ;; sysconf_test.go (among others) tries to read the
+                        ;; number of online CPUs using /proc/stat and
+                        ;; /sys/devices/system/cpu/online. These files are not
+                        ;; accessible in the test environment.
+                        (string-append "src/" import-path
+                                       "/cgotest/sysconf_test.go")))))))
+    (propagated-inputs (list go-golang-org-x-sys
+                             go-github-com-tklauser-numcpus))
+    (home-page "https://github.com/tklauser/go-sysconf")
+    (synopsis "Go implementation of @code{sysconf}")
+    (description
+     "This package implements @code{sysconf} and provides the associated
+@code{SC_*} constants to query system configuration values at run time.")
+    (license license:bsd-3)))
+
 (define-public go-github-com-tklauser-numcpus
   (package
     (name "go-github-com-tklauser-numcpus")
-- 
cgit v1.2.3


From 51a10d33166a33cf25fd22397382a5684ccf003e Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 16:00:33 +0000
Subject: gnu: Add go-numcpus.

* gnu/packages/golang-xyz.scm (go-numcpus): New variable.

Change-Id: I2edb2f355fd14f2f9a470c91519e7fe1581cc243
---
 gnu/packages/golang-xyz.scm | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 1badc3856c..90942f8991 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1301,6 +1301,20 @@ CPU quota.")
 ;;; Executables:
 ;;;
 
+(define-public go-numcpus
+  (package
+    (inherit go-github-com-tklauser-numcpus)
+    (name "go-numcpus")
+    (arguments
+     (list
+      #:go go-1.18
+      #:import-path "github.com/tklauser/numcpus/cmd/numcpus"
+      #:unpack-path "github.com/tklauser/numcpus"
+      #:install-source? #f))
+    (description
+     "This package provides a CLI build from the
+go-github-com-tklauser-numcpus source.")))
+
 (define-public go-pixelmatch
   (package
     (inherit go-github-com-orisano-pixelmatch)
-- 
cgit v1.2.3


From 8468c5556577e36f566c39ae74835bebfa900930 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Fri, 23 Feb 2024 00:14:21 +0100
Subject: gnu: go-github-com-shirou-gopsutil: Move to golang-xyz.

* gnu/packages/golang.scm (go-github-com-shirou-gopsutil): Move from here ...
* gnu/packages/golang-xyz.scm: ... to here.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 28 +++++++++++++++++++++++++++-
 gnu/packages/golang.scm     | 25 -------------------------
 2 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 90942f8991..09b20a4830 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -2,7 +2,8 @@
 ;;; Copyright © 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
-;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
@@ -1093,6 +1094,31 @@ Metrics library.")
       (home-page "https://github.com/rcrowley/go-metrics")
       (license license:bsd-2))))
 
+(define-public go-github-com-shirou-gopsutil
+  (let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
+        (revision "0"))
+    (package
+      (name "go-github-com-shirou-gopsutil")
+      (version (git-version "v2.19.7" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/shirou/gopsutil")
+                       (commit commit))) ; XXX
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/shirou/gopsutil"))
+      (synopsis "Process and system monitoring in Go")
+      (description "This package provides a library for retrieving information
+on running processes and system utilization (CPU, memory, disks, network,
+sensors).")
+      (home-page "https://github.com/shirou/gopsutil")
+      (license license:bsd-3))))
+
 (define-public go-github-com-skip2-go-qrcode
   (package
     (name "go-github-com-skip2-go-qrcode")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 0bcd231a93..367ef73646 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -6337,31 +6337,6 @@ and aid debugging.")
 a cron spec parser and job runner.")
     (license license:expat)))
 
-(define-public go-github-com-shirou-gopsutil
-  (let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
-        (revision "0"))
-    (package
-      (name "go-github-com-shirou-gopsutil")
-      (version (git-version "v2.19.7" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://github.com/shirou/gopsutil")
-                       (commit commit))) ; XXX
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/shirou/gopsutil"))
-      (synopsis "Process and system monitoring in Go")
-      (description "This package provides a library for retrieving information
-on running processes and system utilization (CPU, memory, disks, network,
-sensors).")
-      (home-page "https://github.com/shirou/gopsutil")
-      (license license:bsd-3))))
-
 (define-public go-github-com-danwakefield-fnmatch
   (let ((commit "cbb64ac3d964b81592e64f957ad53df015803288")
         (revision "0"))
-- 
cgit v1.2.3


From 12b8b129b3691eca101b6928a8dedd567cb1cb32 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sat, 24 Feb 2024 09:19:28 +0100
Subject: gnu: go-github-com-shirou-gopsutil: Update to 2.21.11.

* gnu/packages/golang-xyz.scm (go-github-com-shirou-gopsutil): Update to
2.21.11.
[arguments]: Fix tests.
<#:go>: Update to go-1.18.
<#:phases>: Add 'remove-v3 and 'remove-failing-tests phases.
[propagated-inputs]: Add go-golang-org-x-sys.
[native-inputs]: Add go-github-com-stretchr-testify and procps.

* gnu/packages/golang-xyz.scm: Add (gnu packages linux) module.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 63 +++++++++++++++++++++++++++++----------------
 1 file changed, 41 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 09b20a4830..09e294e298 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -46,7 +46,8 @@
   #: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-crypto)
+  #:use-module (gnu packages linux))
 
 ;;; Commentary:
 ;;;
@@ -1095,29 +1096,47 @@ Metrics library.")
       (license license:bsd-2))))
 
 (define-public go-github-com-shirou-gopsutil
-  (let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
-        (revision "0"))
-    (package
-      (name "go-github-com-shirou-gopsutil")
-      (version (git-version "v2.19.7" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://github.com/shirou/gopsutil")
-                       (commit commit))) ; XXX
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/shirou/gopsutil"))
-      (synopsis "Process and system monitoring in Go")
-      (description "This package provides a library for retrieving information
+  (package
+    (name "go-github-com-shirou-gopsutil")
+    (version "2.21.11")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/shirou/gopsutil")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0gpb10xkdwfimn1sp4jhrvzz4p3zgmdb78q8v23nap3yi6v4bff5"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.18
+      #:import-path "github.com/shirou/gopsutil"
+      #:phases #~(modify-phases %standard-phases
+                   (add-after 'unpack 'remove-v3
+                     (lambda* (#:key import-path #:allow-other-keys)
+                       ;; We remove the separately included v3 module.
+                       (delete-file-recursively (string-append "src/"
+                                                               import-path
+                                                               "/v3"))))
+                   (add-before 'check 'remove-failing-tests
+                     (lambda* (#:key import-path #:allow-other-keys)
+                       (delete-file-recursively
+                        ;; host_test.go tries to access files such as
+                        ;; /var/run/utmp that do not exist in the build
+                        ;; environment.
+                        (string-append "src/" import-path "/host/host_test.go")))))))
+    (propagated-inputs
+     (list go-github-com-tklauser-go-sysconf go-golang-org-x-sys))
+    (native-inputs
+     (list go-github-com-stretchr-testify procps))
+    (synopsis "Process and system monitoring in Go")
+    (description "This package provides a library for retrieving information
 on running processes and system utilization (CPU, memory, disks, network,
 sensors).")
-      (home-page "https://github.com/shirou/gopsutil")
-      (license license:bsd-3))))
+    (home-page "https://github.com/shirou/gopsutil")
+    (license license:bsd-3)))
 
 (define-public go-github-com-skip2-go-qrcode
   (package
-- 
cgit v1.2.3


From 06d6f3debf0103e4d397f4fc7a5b88a9711fa973 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sat, 24 Feb 2024 08:53:30 +0100
Subject: gnu: go-github-com-shirou-gopsutil: Reformat with guix style.

* gnu/packages/golang-xyz.scm (go-github-com-shirou-gopsutil): Reformat with
guix style.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 09e294e298..fc1d2213de 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1099,15 +1099,15 @@ Metrics library.")
   (package
     (name "go-github-com-shirou-gopsutil")
     (version "2.21.11")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/shirou/gopsutil")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0gpb10xkdwfimn1sp4jhrvzz4p3zgmdb78q8v23nap3yi6v4bff5"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/shirou/gopsutil")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gpb10xkdwfimn1sp4jhrvzz4p3zgmdb78q8v23nap3yi6v4bff5"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -1132,7 +1132,8 @@ Metrics library.")
     (native-inputs
      (list go-github-com-stretchr-testify procps))
     (synopsis "Process and system monitoring in Go")
-    (description "This package provides a library for retrieving information
+    (description
+     "This package provides a library for retrieving information
 on running processes and system utilization (CPU, memory, disks, network,
 sensors).")
     (home-page "https://github.com/shirou/gopsutil")
-- 
cgit v1.2.3


From 7991eedd0393e0a90892ef27cf1eb9ea28eb0754 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Wed, 6 Mar 2024 16:31:02 +0000
Subject: gnu: Add go-github-com-shirou-gopsutil-v3.

* gnu/packages/golang-xyz.scm (go-github-com-shirou-gopsutil-v3): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Change-Id: Ibbfe76f0a56daf76fc4a4ecd844b445e9355a7ce
---
 gnu/packages/golang-xyz.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index fc1d2213de..28bd13018f 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1139,6 +1139,34 @@ sensors).")
     (home-page "https://github.com/shirou/gopsutil")
     (license license:bsd-3)))
 
+(define-public go-github-com-shirou-gopsutil-v3
+  (package
+    (inherit go-github-com-shirou-gopsutil)
+    (name "go-github-com-shirou-gopsutil-v3")
+    (version "3.24.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/shirou/gopsutil")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xlfcx6giqaxdah2m02q2i8ynwlzar953wr8wqx1j3004xdgaivd"))))
+    (arguments
+     (list
+      #:go go-1.18
+      #:import-path "github.com/shirou/gopsutil"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'remove-failing-tests
+            (lambda* (#:key import-path #:allow-other-keys)
+              (delete-file-recursively
+               ;; host_test.go tries to access files such as
+               ;; /var/run/utmp that do not exist in the build
+               ;; environment.
+               (string-append "src/" import-path "/host/host_test.go")))))))))
+
 (define-public go-github-com-skip2-go-qrcode
   (package
     (name "go-github-com-skip2-go-qrcode")
-- 
cgit v1.2.3


From 2477aea26d4c10495149dbbf4afb9c53de3dc5f5 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sun, 25 Feb 2024 18:07:45 +0100
Subject: gnu: go-github-com-vividcortex-ewma: Fix import-path.

* gnu/packages/golang.scm (go-github-com-vividcortex-ewma): Fix import-path.
[arguments]<#:import-path>: Use proper capitalization.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 367ef73646..2eb63641f9 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9606,7 +9606,7 @@ parser.")
        (sha256
         (base32 "0whx516l9nm4n41spagb605ry7kfnz1qha96mcshnfjlahhnnylq"))))
     (build-system go-build-system)
-    (arguments '(#:import-path "github.com/vividcortex/ewma"))
+    (arguments '(#:import-path "github.com/VividCortex/ewma"))
     (home-page "https://github.com/VividCortex/ewma")
     (synopsis "Exponentially Weighted Moving Average algorithms for Go")
     (description
-- 
cgit v1.2.3


From 436cd5a62557e51156ed893ada5aa01ad0e631b4 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sun, 25 Feb 2024 18:11:17 +0100
Subject: gnu: go-github-com-cheggaaa-pb-v3: Enable tests.

* gnu/packages/golang.scm (go-github-com-cheggaaa-pb-v3): Enable tests.
[arguments] <#:tests?>: Set to true.
<#:unpack-path>: Set unpack-path to the repository root.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Change-Id: Ic8b64dcf4717ff6a163d8a674e5e7c2c6d162b98
---
 gnu/packages/golang.scm | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 2eb63641f9..98e6739f42 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8770,9 +8770,7 @@ inspired by the causal messaging system in the Pony programming language.")
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/cheggaaa/pb/v3"
-       ;; XXX: it does have tests but I'm not sure how to run them.
-       ;; go-build-system is looking in the wrong directory.
-       #:tests? #f))
+       #:unpack-path "github.com/cheggaaa/pb"))
     (propagated-inputs
      (list go-golang-org-x-sys
            go-github-com-rivo-uniseg
-- 
cgit v1.2.3


From 036b364138d5f7da4bea484f1b9b2c565dd1f5bb Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sun, 25 Feb 2024 18:13:56 +0100
Subject: gnu: go-github-com-cheggaaa-pb-v3: Remove unnecessary inputs.

* gnu/packages/golang.scm (go-github-com-cheggaaa-pb-v3): Remove unnecessary
inputs.
[propagated-inputs]: Remove go-golang-org-x-sys and go-github-com-rivo-uniseg.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang.scm | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 98e6739f42..3e58f98103 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8772,9 +8772,7 @@ inspired by the causal messaging system in the Pony programming language.")
      '(#:import-path "github.com/cheggaaa/pb/v3"
        #:unpack-path "github.com/cheggaaa/pb"))
     (propagated-inputs
-     (list go-golang-org-x-sys
-           go-github-com-rivo-uniseg
-           go-github-com-mattn-go-runewidth
+     (list go-github-com-mattn-go-runewidth
            go-github-com-mattn-go-isatty
            go-github-com-mattn-go-colorable
            go-github-com-fatih-color
-- 
cgit v1.2.3


From 532914a389ca0b8462db1b91e92d226559a599e0 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 16:40:09 +0000
Subject: gnu: go-github-com-vividcortex-ewma: Update description.

* gnu/packages/golang.scm (go-github-com-vividcortex-ewma)
[description]: Provide link to a wiki page sourced from the project's
README.

Change-Id: I0520b0502f676b8891ddd746774acd483358b95e
---
 gnu/packages/golang.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 3e58f98103..59107ec762 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9606,8 +9606,9 @@ parser.")
     (home-page "https://github.com/VividCortex/ewma")
     (synopsis "Exponentially Weighted Moving Average algorithms for Go")
     (description
-     "This package implements algorithms for exponentially weighted moving
-averages.")
+     "This package implements algorithms for
+@url{https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average,exponentially
+weighted moving averages}.")
     (license license:expat)))
 
 (define-public go-github-com-rivo-uniseg
-- 
cgit v1.2.3


From c21f468cf16758b99de950a2d64afb83aa275349 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 18:28:04 +0000
Subject: gnu: go-github-com-cheggaaa-pb-v3: Move to golang-xyz.

* gnu/packages/golang.scm (go-github-com-cheggaaa-pb-v3): Move from here ...
* gnu/packages/golang-xyz.scm: ... to here.

* gnu/packages/golang.scm (go-github-com-cheggaaa-pb): Remove variable.

Change-Id: Ieddfddfec841e5b35c14002dbfe8655a7b5dec0f
---
 gnu/packages/golang-xyz.scm | 30 ++++++++++++++++++++++++++++++
 gnu/packages/golang.scm     | 32 --------------------------------
 2 files changed, 30 insertions(+), 32 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 28bd13018f..645b979e11 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020, 2021 raingloom <raingloom@riseup.net>
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev>
@@ -351,6 +352,35 @@ quantiles over an unbounded data stream within low memory and CPU bounds.")
 similar to Go's standard library @code{json} and @code{xml} package.")
     (license license:expat)))
 
+(define-public go-github-com-cheggaaa-pb-v3
+  (package
+    (name "go-github-com-cheggaaa-pb-v3")
+    (version "3.0.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cheggaaa/pb/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0d701s2niy39r650d1phjw19h4l27b1yfc2ih6s31f56b3zzqspx"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/cheggaaa/pb/v3"
+       #:unpack-path "github.com/cheggaaa/pb"))
+    (propagated-inputs
+     (list go-github-com-fatih-color
+           go-github-com-mattn-go-colorable
+           go-github-com-mattn-go-isatty
+           go-github-com-mattn-go-runewidth
+           go-github-com-vividcortex-ewma))
+    (home-page "https://github.com/cheggaaa/pb/")
+    (synopsis "Console progress bar for Go")
+    (description
+     "This package is a Go library that draws progress bars on the terminal.")
+    (license license:bsd-3)))
+
 (define-public go-github-com-coocood-freecache
   (package
     (name "go-github-com-coocood-freecache")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 59107ec762..ac4c24e487 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8754,38 +8754,6 @@ error messages.")
 inspired by the causal messaging system in the Pony programming language.")
       (license license:expat))))
 
-(define-public go-github-com-cheggaaa-pb-v3
-  (package
-    (name "go-github-com-cheggaaa-pb-v3")
-    (version "3.0.8")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/cheggaaa/pb/")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0d701s2niy39r650d1phjw19h4l27b1yfc2ih6s31f56b3zzqspx"))))
-    (build-system go-build-system)
-    (arguments
-     '(#:import-path "github.com/cheggaaa/pb/v3"
-       #:unpack-path "github.com/cheggaaa/pb"))
-    (propagated-inputs
-     (list go-github-com-mattn-go-runewidth
-           go-github-com-mattn-go-isatty
-           go-github-com-mattn-go-colorable
-           go-github-com-fatih-color
-           go-github-com-vividcortex-ewma))
-    (home-page "https://github.com/cheggaaa/pb/")
-    (synopsis "Console progress bar for Go")
-    (description "This package is a Go library that draws progress bars on
-the terminal.")
-    (license license:bsd-3)))
-
-(define-public go-github-com-cheggaaa-pb
-  (deprecated-package "go-github-com-cheggaaa-pb" go-github-com-cheggaaa-pb-v3))
-
 (define-public go-github-com-gologme-log
   ;; this is the same as v1.2.0, only the LICENSE file changed
   (let ((commit "720ba0b3ccf0a91bc6018c9967a2479f93f56a55"))
-- 
cgit v1.2.3


From 9af99245e78f96cd494203e3f48edeb420db173d Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 18:34:38 +0000
Subject: gnu: go-github-com-vividcortex-ewma: Move to golang-xyz.

* gnu/packages/golang.scm (go-github-com-vividcortex-ewma): Move from
here ...
* gnu/packages/golang-xyz.scm: ... to here.

Change-Id: Iabf8a6ee15240c0817d80584a34e80dcbce1c974
---
 gnu/packages/golang-xyz.scm | 25 ++++++++++++++++++++++++-
 gnu/packages/golang.scm     | 23 -----------------------
 2 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 645b979e11..8d77ee956a 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -3,7 +3,7 @@
 ;;; 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, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020, 2021 raingloom <raingloom@riseup.net>
@@ -1367,6 +1367,29 @@ 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-vividcortex-ewma
+  (package
+    (name "go-github-com-vividcortex-ewma")
+    (version "1.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/VividCortex/ewma")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0whx516l9nm4n41spagb605ry7kfnz1qha96mcshnfjlahhnnylq"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/VividCortex/ewma"))
+    (home-page "https://github.com/VividCortex/ewma")
+    (synopsis "Exponentially Weighted Moving Average algorithms for Go")
+    (description
+     "This package implements algorithms for
+@url{https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average,exponentially
+weighted moving averages}.")
+    (license license:expat)))
+
 (define-public go-go-uber-org-automaxprocs
   (package
     (name "go-go-uber-org-automaxprocs")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index ac4c24e487..32c2171ca2 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9556,29 +9556,6 @@ programming language.")
 parser.")
     (license license:bsd-2)))
 
-(define-public go-github-com-vividcortex-ewma
-  (package
-    (name "go-github-com-vividcortex-ewma")
-    (version "1.2.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/VividCortex/ewma")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0whx516l9nm4n41spagb605ry7kfnz1qha96mcshnfjlahhnnylq"))))
-    (build-system go-build-system)
-    (arguments '(#:import-path "github.com/VividCortex/ewma"))
-    (home-page "https://github.com/VividCortex/ewma")
-    (synopsis "Exponentially Weighted Moving Average algorithms for Go")
-    (description
-     "This package implements algorithms for
-@url{https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average,exponentially
-weighted moving averages}.")
-    (license license:expat)))
-
 (define-public go-github-com-rivo-uniseg
   (package
     (name "go-github-com-rivo-uniseg")
-- 
cgit v1.2.3


From fbc7a0efa7136d14265533932a19eb501214e7f9 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sat, 24 Feb 2024 11:14:09 +0100
Subject: gnu: Add go-github-com-dave-jennifer.

* gnu/packages/golang-xyz.scm (go-github-com-dave-jennifer): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 8d77ee956a..6cbdaeee13 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -562,6 +562,29 @@ of unit files.")))
 metrics to Graphite.")
     (license license:bsd-2)))
 
+(define-public go-github-com-dave-jennifer
+  (package
+    (name "go-github-com-dave-jennifer")
+    (version "1.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dave/jennifer")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01sgafbds8n5zs61qf057whn06yj6avz30xgxk6pllf22528558m"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.20
+      #:import-path "github.com/dave/jennifer"))
+    (home-page "https://github.com/dave/jennifer")
+    (synopsis "Code generator for Go")
+    (description "This package provides functionality to generate Go code.")
+    (license license:expat)))
+
 (define-public go-github-com-dimchansky-utfbom
   (package
     (name "go-github-com-dimchansky-utfbom")
-- 
cgit v1.2.3


From 1583fe7e24b6e1a48f7525b338e96cecd5813a3a Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sun, 3 Mar 2024 21:54:37 +0100
Subject: gnu: Add go-github-com-hhrutter-lzw.

* gnu/packages/golang-compression.scm (go-github-com-hhrutter-lzw): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-compression.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm
index 568fdd12b9..031ff54f8a 100644
--- a/gnu/packages/golang-compression.scm
+++ b/gnu/packages/golang-compression.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -84,6 +85,30 @@ the @code{c2go} tool at
 compression format.")
     (license license:bsd-3)))
 
+(define-public go-github-com-hhrutter-lzw
+  (package
+    (name "go-github-com-hhrutter-lzw")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hhrutter/lzw")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1n13qhf8ih08jzm10wprdvjy56ylmy6fhakyqrddm6nszf397wch"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/hhrutter/lzw"))
+    (home-page "https://github.com/hhrutter/lzw")
+    (synopsis "Extended version of @code{compress/lzw}")
+    (description
+     "This package provides an enhanced version of the @code{compress/lzw}
+library included in the stdlib, and supports GIF, TIFF and PDF.")
+    (license license:bsd-3)))
+
 (define-public go-github-com-klauspost-compress
   (package
     (name "go-github-com-klauspost-compress")
-- 
cgit v1.2.3


From da582bcf50bfbd643e6625cd724b5eb3dfc326a1 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sun, 3 Mar 2024 17:54:48 +0100
Subject: gnu: Add go-github-com-hhrutter-tiff.

* gnu/packages/golang-xyz.scm (go-github-com-hhrutter-tiff): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 6cbdaeee13..fe0a06270e 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -742,6 +742,36 @@ Differentiation between text and binary files}.
 @end itemize")
     (license license:expat)))
 
+(define-public go-github-com-hhrutter-tiff
+  (package
+    (name "go-github-com-hhrutter-tiff")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hhrutter/tiff")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "09fzgvxwkd34izbfd26ln8vdbhc4j9gxpar3s7h9h125psrjvg0k"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/hhrutter/tiff"))
+    (propagated-inputs (list go-golang-org-x-image go-github-com-hhrutter-lzw))
+    (home-page "https://github.com/hhrutter/tiff")
+    (synopsis "Extended version of @code{golang.org/x/image/tiff}")
+    (description "This package is an enhanced version of the
+@code{golang.org/x/image/tiff} library featuring:
+
+@itemize
+@item Read support for CCITT Group3/4 compressed images.
+@item Read/write support for LZW compressed images.
+@item Read/write support for the CMYK color model.
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public go-github-com-jinzhu-copier
   (package
     (name "go-github-com-jinzhu-copier")
-- 
cgit v1.2.3


From b75db99600db84e8c98e00034fb3c4f7675031b2 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 20:54:46 +0000
Subject: gnu: go-github.com-ulikunitz-xz: Adjust name.

* gnu/packages/golang-compression.scm (go-github.com-ulikunitz-xz):
Rename variable to go-github-com-ulikunitz-xz to follow golang naming
style.

* gnu/packages/admin.scm (fiano) [inputs]: Remove
go-github.com-ulikunitz-xz. Add go-github-com-ulikunitz-xz.

* gnu/packages/bioinformatics.scm (go-github-com-biogo-hts-cram)
[propagated-inputs]: Remove go-github.com-ulikunitz-xz. Add
go-github-com-ulikunitz-xz.

Change-Id: Id2f2556666c4f9a08e0203f5ca7eb8352c492051
---
 gnu/packages/admin.scm              | 2 +-
 gnu/packages/bioinformatics.scm     | 2 +-
 gnu/packages/golang-compression.scm | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 023a85f136..c12d47da4b 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -5188,7 +5188,7 @@ disk utilization, priority, username, state, and exit code.")
      `())
     (inputs
      `(("go-golang-org-x-text" ,go-golang-org-x-text)
-       ("go-github.com-ulikunitz-xz" ,go-github.com-ulikunitz-xz)))
+       ("go-github-com-ulikunitz-xz" ,go-github-com-ulikunitz-xz)))
     (synopsis "UEFI image editor")
     (description "This package provides a command-line UEFI image editor.")
     (home-page "https://github.com/linuxboot/fiano")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index e7816eb1d1..b8ecea013c 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -22484,7 +22484,7 @@ useful for bioinformatic analysis.")
        #:tests? #false)) ;require network access
     (propagated-inputs
      (list go-gopkg-in-check-v1
-           go-github.com-ulikunitz-xz
+           go-github-com-ulikunitz-xz
            go-github-com-kortschak-utter))
     (synopsis "HTS CRAM module for biogo")
     (description "This package provides tools for handling CRAM files.")))
diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm
index 031ff54f8a..77701db1a8 100644
--- a/gnu/packages/golang-compression.scm
+++ b/gnu/packages/golang-compression.scm
@@ -140,9 +140,9 @@ library included in the stdlib, and supports GIF, TIFF and PDF.")
     (description "@code{compress} provides various compression algorithms.")
     (license license:bsd-3)))
 
-(define-public go-github.com-ulikunitz-xz
+(define-public go-github-com-ulikunitz-xz
   (package
-    (name "go-github.com-ulikunitz-xz")
+    (name "go-github-com-ulikunitz-xz")
     (version "0.5.8")
     (source
      (origin
-- 
cgit v1.2.3


From dda217f25ac3358b19542deb616756859df7225a Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Tue, 5 Mar 2024 08:44:10 +0100
Subject: gnu: Add go-github-com-nwaples-rardecode-v2.

* gnu/packages/golang-compression.scm (go-github-com-nwaples-rardecode-v2): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-compression.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm
index 77701db1a8..b999c063ee 100644
--- a/gnu/packages/golang-compression.scm
+++ b/gnu/packages/golang-compression.scm
@@ -140,6 +140,29 @@ library included in the stdlib, and supports GIF, TIFF and PDF.")
     (description "@code{compress} provides various compression algorithms.")
     (license license:bsd-3)))
 
+(define-public go-github-com-nwaples-rardecode-v2
+  (package
+    (name "go-github-com-nwaples-rardecode-v2")
+    (version "2.0.0-beta.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nwaples/rardecode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1344mxfdgs5fps6mqxk6352arrfszi33kmq394rgmqpf4394f1y7"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/nwaples/rardecode"))
+    (home-page "https://github.com/nwaples/rardecode")
+    (synopsis "Reading RAR archives in Go")
+    (description
+     "This package provides a library for reading RAR archives with Golang.")
+    (license license:bsd-2)))
+
 (define-public go-github-com-ulikunitz-xz
   (package
     (name "go-github-com-ulikunitz-xz")
-- 
cgit v1.2.3


From a28498d83d644d02a0e02ce74954c6e936ff0543 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sat, 24 Feb 2024 10:40:58 +0100
Subject: gnu: Add go-github-com-ugorji-go-codec.

* gnu/packages/golang-web.scm (go-github-com-ugorji-go-codec): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-web.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 4f2c6f8c1a..5f5278e11c 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -1394,6 +1394,38 @@ an interface to implement any other minifier.")
 sockets.")
       (license license:expat))))
 
+(define-public go-github-com-ugorji-go-codec
+  (package
+    (name "go-github-com-ugorji-go-codec")
+    (version "1.2.12")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ugorji/go")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11j0sd7kli2bh2npfr2znnvdjsk118rs8khqzfdp6pb5jm0l20ib"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/ugorji/go/codec"
+      #:unpack-path "github.com/ugorji/go"
+      #: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")))))))
+    (propagated-inputs (list go-golang-org-x-tools))
+    (home-page "https://github.com/ugorji/go")
+    (synopsis "Codec and encoding library for various serialization formats")
+    (description
+     "This package provides a high performance and feature rich codec and
+encoding library for the MessagePack, CBOR, JSON and the Binc formats.")
+    (license license:expat)))
+
 (define-public go-github-com-valyala-fasthttp
   (package
     (name "go-github-com-valyala-fasthttp")
-- 
cgit v1.2.3


From 15b96de8526e6cae03fa919384aaa47a8d7a0699 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sat, 17 Feb 2024 20:11:05 +0100
Subject: gnu: Add go-github-com-k0kubun-pp.

* gnu/packages/golang-xyz.scm (go-github-com-k0kubun-pp): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index fe0a06270e..f85bfe1e71 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -795,6 +795,33 @@ Differentiation between text and binary files}.
 struct to another.")
     (license license:expat)))
 
+(define-public go-github-com-k0kubun-pp
+  (package
+    (name "go-github-com-k0kubun-pp")
+    (version "3.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/k0kubun/pp")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1vpp5n3kdazk4s1ljhwbrhz3kilzvdvx5hya922bg0q9vnjqqvvc"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/k0kubun/pp"))
+    (propagated-inputs (list go-github-com-mattn-go-colorable
+                             go-golang-org-x-text))
+    (home-page "https://github.com/k0kubun/pp")
+    (synopsis "Colored pretty-printer for Go")
+    (description
+     "This package provides a pretty-printer for Go.  The functions defined by
+@code{pp} follow an API similar to @code{fmt} and its configuration can be
+customized globally.")
+    (license license:expat)))
+
 (define-public go-github-com-matryer-try
   (package
     (name "go-github-com-matryer-try")
-- 
cgit v1.2.3


From 48b8655667f46d9418f897d4066a502c57738ff0 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sat, 17 Feb 2024 20:19:15 +0100
Subject: gnu: sqls: Add missing inputs.

* gnu/packages/databases (sqls): Add missing inputs.
[native-inputs]: Add go-github-com-google-go-cmp-cmp and
go-github-com-k0kubun-pp.

* gnu/packages/databases: Add (gnu packages golang-xyz) module.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/databases.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 33e7327ebb..62739fa1c0 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -111,6 +111,7 @@
   #:use-module (gnu packages golang-build)
   #:use-module (gnu packages golang-check)
   #:use-module (gnu packages golang-web)
+  #:use-module (gnu packages golang-xyz)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
@@ -5375,6 +5376,8 @@ compatible with SQLite using a graphical user interface.")
                   go-github-com-mattn-go-runewidth
                   go-golang-org-x-xerrors
                   go-gopkg-in-yaml-v2))
+    (native-inputs (list go-github-com-google-go-cmp-cmp
+                         go-github-com-k0kubun-pp))
     (synopsis "SQL language server written in Go")
     (description
      "This package implements the @acronym{LSP, Language Server Protocol} for SQL.")
-- 
cgit v1.2.3


From e1a0562dae8b723cfb6c123c2c22f58b76da6a14 Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sat, 24 Feb 2024 10:03:16 +0100
Subject: gnu: Add go-github-com-pkg-sftp.

* gnu/packages/golang-web.scm (go-github-com-pkg-sftp): New variable.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-web.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 5f5278e11c..1d7ad01af2 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -1216,6 +1216,34 @@ which produce colorized output using github.com/fatih/color.")
     (description "OpenTracing-Go is a Go implementation of the OpenTracing API.")
     (license license:asl2.0)))
 
+(define-public go-github-com-pkg-sftp
+  (package
+    (name "go-github-com-pkg-sftp")
+    (version "1.13.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pkg/sftp")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0n35lzfrnrffjqy34ny6gxs27kq81s67ply6q8s1g19mhfzm6my7"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/pkg/sftp"))
+    (propagated-inputs (list go-golang-org-x-crypto go-github-com-kr-fs))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (home-page "https://github.com/pkg/sftp")
+    (synopsis "SFTP implementation for Go")
+    (description
+     "This package provides an @acronym{SFTP, SSH File Transfer Protocol}
+implementation, as described in
+@url{https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt},
+for Go.")
+    (license license:bsd-2)))
+
 (define-public go-github-com-pquerna-cachecontrol
   (package
     (name "go-github-com-pquerna-cachecontrol")
-- 
cgit v1.2.3


From 7675dec155aea222678cd125bb23c971ec5b002e Mon Sep 17 00:00:00 2001
From: Troy Figiel <troy@troyfigiel.com>
Date: Sat, 24 Feb 2024 10:06:30 +0100
Subject: gnu: go-github-com-spf13-afero: Add missing input.

* gnu/packages/golang.scm (go-github-com-spf13-afero): Add missing input.
[propagated-inputs]: Add go-github-com-pkg-sftp.

Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Change-Id: If428fdf82c191ce3e408053886c5ec726e9644df
---
 gnu/packages/golang.scm | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 32c2171ca2..db57c16a84 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3781,8 +3781,7 @@ containers.")
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/spf13/afero"))
-    (propagated-inputs
-     `(("golang.org/x/text" ,go-golang-org-x-text)))
+    (propagated-inputs (list go-github-com-pkg-sftp go-golang-org-x-text))
     (home-page "https://github.com/spf13/afero")
     (synopsis "File system abstraction for Go")
     (description
-- 
cgit v1.2.3


From eb77abfb444edaa034f70c839fd31b02900278e9 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Fri, 1 Mar 2024 22:58:21 +0300
Subject: gnu: go-go-uber-org-zap: Update to 1.24.0.

* gnu/packages/golang.scm (go-go-uber-org-zap): Update to 1.24.0.

Change-Id: I3028c065ac71ca3accd2789f491829e466068cc2
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index db57c16a84..6d19bf4f70 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9322,7 +9322,7 @@ be used as both a binary and a library.")
 (define-public go-go-uber-org-zap
   (package
     (name "go-go-uber-org-zap")
-    (version "1.16.0")
+    (version "1.24.0")
     (source
      (origin
        (method git-fetch)
@@ -9331,7 +9331,7 @@ be used as both a binary and a library.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "05ix5wg1r8pgi7fb6084lg4x7mrkvzkh1nxa7zj337w5b9xj0myr"))))
+        (base32 "0lzbbs87fvixzbyv4wpl3s70vm2m0jz2jgdvrviiksc2al451qgs"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "go.uber.org/zap"
-- 
cgit v1.2.3


From d3bc9e73e5fdee97244069dadaa75b5109236359 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Fri, 1 Mar 2024 22:59:49 +0300
Subject: gnu: kubo: Update to 0.22.0.

* gnu/packages/ipfs.scm (kubo): Update to 0.22.0.

Change-Id: Iee640c01024a399bdf2b9c6e07ef6951e5567f54
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/ipfs.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index 830e2ccd32..36eed11802 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -227,7 +227,7 @@ written in Go.")
 (define-public kubo
   (package
     (name "kubo")
-    (version "0.19.0")
+    (version "0.22.0")
     (source
      (origin
        (method url-fetch/tarbomb)
@@ -235,7 +235,7 @@ written in Go.")
              "https://dist.ipfs.io/kubo/v" version
              "/kubo-source.tar.gz"))
        (sha256
-        (base32 "0k0mw44fq6306pmfp6v4wawgigry9plnl2ij8i5f46606j55c31w"))
+        (base32 "0p8iaa56lnac1lxnbzp4fbjqzps50z5yqs34szcp53xjq8rmjzjd"))
        (file-name (string-append name "-" version "-source"))
        (modules '((guix build utils)))
        (snippet '(for-each delete-file-recursively
-- 
cgit v1.2.3


From c3992c8871c6bef554e180ab0ecdb786a9595207 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 21:32:33 +0000
Subject: gnu: go-go-uber-org-zap: Move to golang-xyz.

* gnu/packages/golang.scm (go-go-uber-org-zap): Move from here ...
* gnu/packages/golang-xyz.scm: ... to here.

* gnu/packages/radio.scm: Add (gnu packages golang-xyz) module.

Change-Id: Id4de6cb4714b9b28e43e5aecabf5b32684f1a370
---
 gnu/packages/golang-xyz.scm | 34 ++++++++++++++++++++++++++++++++++
 gnu/packages/golang.scm     | 30 ------------------------------
 gnu/packages/radio.scm      |  1 +
 3 files changed, 35 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index f85bfe1e71..7e6e0aa27b 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020, 2021 raingloom <raingloom@riseup.net>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev>
@@ -1495,6 +1496,39 @@ weighted moving averages}.")
 CPU quota.")
     (license license:expat)))
 
+(define-public go-go-uber-org-zap
+  (package
+    (name "go-go-uber-org-zap")
+    (version "1.24.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/uber-go/zap")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0lzbbs87fvixzbyv4wpl3s70vm2m0jz2jgdvrviiksc2al451qgs"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "go.uber.org/zap"
+       #:tests? #f)) ; TODO: Fix tests
+    (native-inputs
+     (list go-github-com-stretchr-testify
+           go-golang-org-x-lint
+           go-honnef-co-go-tools))
+    (propagated-inputs
+     (list 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")
+    (synopsis "Logging library for Go")
+    (description
+     "This package provides a library for fast, structured, leveled logging in
+Go.")
+    (license license:expat)))
+
 (define-public go-gopkg-in-op-go-logging-v1
   (package
     (inherit go-github-com-op-go-logging)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 6d19bf4f70..fbf6b4c349 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9319,36 +9319,6 @@ be used as both a binary and a library.")
     (native-inputs '())
     (inputs '())))
 
-(define-public go-go-uber-org-zap
-  (package
-    (name "go-go-uber-org-zap")
-    (version "1.24.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/uber-go/zap")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0lzbbs87fvixzbyv4wpl3s70vm2m0jz2jgdvrviiksc2al451qgs"))))
-    (build-system go-build-system)
-    (arguments
-     '(#:import-path "go.uber.org/zap"
-       #:tests? #f)) ; TODO: Fix tests
-    (native-inputs
-     (list go-github-com-stretchr-testify go-golang-org-x-lint
-           go-honnef-co-go-tools))
-    (propagated-inputs
-     (list 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")
-    (synopsis "Logging library for Go")
-    (description
-     "This package provides a library for fast, structured, leveled logging in
-Go.")
-    (license license:expat)))
-
 (define-public go-github-com-davecgh-go-xdr
   (package
     (name "go-github-com-davecgh-go-xdr")
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 2f258b0364..caa8b61ee3 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -63,6 +63,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages golang)
+  #:use-module (gnu packages golang-xyz)
   #:use-module (gnu packages gps)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gstreamer)
-- 
cgit v1.2.3


From 496e0f10b63a3218cfc86804c8eb38b4d77acd8e Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sat, 2 Mar 2024 10:02:54 +0300
Subject: gnu: Add go-github-com-cskr-pubsub.

* gnu/packages/golang-xyz.scm (go-github-com-cskr-pubsub): New variable.

Change-Id: Ia0a3d5b86cdaad45b6b58af9441b1ea3396ec056
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 7e6e0aa27b..3fdc88c356 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -537,6 +537,31 @@ its C API.")))
     (description "Go bindings to systemd for (de)serialization and comparison
 of unit files.")))
 
+(define-public go-github-com-cskr-pubsub
+  (package
+    (name "go-github-com-cskr-pubsub")
+    (version "2.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cskr/pubsub")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "18kqfdzkfs7z8266a5q5wldwkcvnhc7yw09b9vr8r0s7svy8d5s6"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:tests? #t ; Tests require network interface access
+      #:go go-1.18
+      #:import-path "github.com/cskr/pubsub"))
+    (home-page "https://github.com/cskr/pubsub")
+    (synopsis "Simple pubsub package for go")
+    (description
+     "Package @code{pubsub} implements a simple multi-topic pub-sub library.")
+    (license license:bsd-2)))
+
 (define-public go-github-com-cyberdelia-go-metrics-graphite
   (package
     (name "go-github-com-cyberdelia-go-metrics-graphite")
-- 
cgit v1.2.3


From d7abe61507572f040cefe788a6853dbd5959e205 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sat, 2 Mar 2024 23:25:06 +0300
Subject: gnu: Add go-github-com-hashicorp-errwrap.

* gnu/packages/golang-xyz.scm (go-github-com-hashicorp-errwrap): New
  variable.

Change-Id: I4a0e7c23f9aaab4e29c81a68d976dafcd86dd2d1
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 3fdc88c356..f488b17e61 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -768,6 +768,30 @@ Differentiation between text and binary files}.
 @end itemize")
     (license license:expat)))
 
+(define-public go-github-com-hashicorp-errwrap
+  (package
+    (name "go-github-com-hashicorp-errwrap")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hashicorp/errwrap")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0p5wdz8p7dmwphmb33gwhy3iwci5k9wkfqmmfa6ay1lz0cqjwp7a"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/hashicorp/errwrap"))
+    (home-page "https://github.com/hashicorp/errwrap")
+    (synopsis "Wrapping and querying errors for Golang")
+    (description
+     "@code{errwrap} is a package for Go that formalizes the pattern of
+wrapping errors and checking if an error contains another error.")
+    (license license:mpl2.0)))
+
 (define-public go-github-com-hhrutter-tiff
   (package
     (name "go-github-com-hhrutter-tiff")
-- 
cgit v1.2.3


From b577550c0026b27c0493480cac7852881eec4116 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sat, 2 Mar 2024 23:26:40 +0300
Subject: gnu: Add go-github-com-hashicorp-go-multierror.

* gnu/packages/golang-xyz.scm (go-github-com-hashicorp-go-multierror): New
  variable.

Change-Id: I6b09a52dc314c4cc6903690738debf4b6c99393f
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
---
 gnu/packages/golang-xyz.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index f488b17e61..08c3df44b5 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -792,6 +792,34 @@ Differentiation between text and binary files}.
 wrapping errors and checking if an error contains another error.")
     (license license:mpl2.0)))
 
+(define-public go-github-com-hashicorp-go-multierror
+  (package
+    (name "go-github-com-hashicorp-go-multierror")
+    (version "1.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hashicorp/go-multierror")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0l4s41skdpifndn9s8y6s9vzgghdzg4z8z0lld9qjr28888wzp00"))))
+    (build-system go-build-system)
+    (inputs (list go-github-com-hashicorp-errwrap))
+    (arguments
+     (list
+      #:import-path "github.com/hashicorp/go-multierror"))
+    (home-page "https://github.com/hashicorp/go-multierror")
+    (synopsis "Representing a errors list as a single error for Golang")
+    (description
+     "@code{go-multierror} is Golang module providing a mechanism for
+representing a list of @code{error} values as a single @code{error}.  It is
+fully compatible with the standard @code{errors} package, including
+the functions @code{As}, @code{Is}, and @code{Unwrap}.  This provides a
+standardized approach for introspecting on error values.")
+    (license license:mpl2.0)))
+
 (define-public go-github-com-hhrutter-tiff
   (package
     (name "go-github-com-hhrutter-tiff")
-- 
cgit v1.2.3


From e6ce91d1bf610baba201d9d81557d79baa15ccd8 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 22:59:01 +0000
Subject: gnu: go-github-com-hashicorp-go-syslog: Move to golang-xyz.

* gnu/packages/golang.scm (go-github-com-hashicorp-go-syslog): Move from
here ...
* gnu/packages/golang-xyz.scm: ... to here.

Change-Id: Iae1acbde5fcccb7879944dbcbda8a32672478f6a
---
 gnu/packages/golang-xyz.scm | 24 ++++++++++++++++++++++++
 gnu/packages/golang.scm     | 22 ----------------------
 2 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 08c3df44b5..05f32ad2e4 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -820,6 +820,30 @@ the functions @code{As}, @code{Is}, and @code{Unwrap}.  This provides a
 standardized approach for introspecting on error values.")
     (license license:mpl2.0)))
 
+(define-public go-github-com-hashicorp-go-syslog
+  (package
+    (name "go-github-com-hashicorp-go-syslog")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hashicorp/go-syslog")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "09vccqggz212cg0jir6vv708d6mx0f9w5bxrcdah3h6chgmal6v1"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/hashicorp/go-syslog"))
+    (home-page "https://github.com/hashicorp/go-syslog")
+    (synopsis "Golang syslog wrapper, cross-compile friendly")
+    (description
+     "This package is a very simple wrapper around log/syslog")
+    (license license:expat)))
+
 (define-public go-github-com-hhrutter-tiff
   (package
     (name "go-github-com-hhrutter-tiff")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index fbf6b4c349..4382b12f7c 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8781,28 +8781,6 @@ is unchanged.  This package contains a series of small enhancements and
 additions.")
       (license license:bsd-3))))
 
-(define-public go-github-com-hashicorp-go-syslog
-  (package
-    (name "go-github-com-hashicorp-go-syslog")
-    (version "1.0.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/hashicorp/go-syslog")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "09vccqggz212cg0jir6vv708d6mx0f9w5bxrcdah3h6chgmal6v1"))))
-    (build-system go-build-system)
-    (arguments
-     '(#:import-path "github.com/hashicorp/go-syslog"))
-    (home-page "https://github.com/hashicorp/go-syslog")
-    (synopsis "Golang syslog wrapper, cross-compile friendly")
-    (description "This package is a very simple wrapper around log/syslog")
-    (license license:expat)))
-
 (define-public go-golang-zx2c4-com-wireguard
   (package
     (name "go-golang-zx2c4-com-wireguard")
-- 
cgit v1.2.3


From 5f5d8167b19e21146b56299c44117fd1a6509eba Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 23:03:39 +0000
Subject: gnu: go-github-com-hashicorp-go-uuid: Move to golang-xyz.

* gnu/packages/golang.scm (go-github-com-hashicorp-go-uuid): Move from
here ...
* gnu/packages/golang-xyz.scm: ... to here.

Change-Id: Ib97abb60b716c971bb54144d7d1ea015211e1ed4
---
 gnu/packages/golang-xyz.scm | 27 +++++++++++++++++++++++++++
 gnu/packages/golang.scm     | 25 -------------------------
 2 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 05f32ad2e4..c6c1c4bb24 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2023 Benjamin <benjamin@uvy.fr>
 ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
 ;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
 ;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr>
 ;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
 ;;; Copyright © 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
@@ -844,6 +845,32 @@ standardized approach for introspecting on error values.")
      "This package is a very simple wrapper around log/syslog")
     (license license:expat)))
 
+(define-public go-github-com-hashicorp-go-uuid
+  (package
+    (name "go-github-com-hashicorp-go-uuid")
+    (version "1.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hashicorp/go-uuid")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0wd4maaq20alxwcvfhr52rzfnwwpmc2a698ihyr0vfns2sl7gkzk"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/hashicorp/go-uuid"))
+    (home-page "https://github.com/hashicorp/go-uuid")
+    (synopsis "Generate UUID-format strings")
+    (description
+     "This package generates UUID-format strings using high quality bytes.
+It is not intended to be RFC compliant, merely to use a well-understood string
+representation of a 128-bit value.  It can also parse UUID-format strings into
+their component bytes.")
+    (license license:mpl2.0)))
+
 (define-public go-github-com-hhrutter-tiff
   (package
     (name "go-github-com-hhrutter-tiff")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 4382b12f7c..58126f7eeb 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3500,31 +3500,6 @@ editor.")
  spec in Go.")
       (license license:bsd-3))))
 
-(define-public go-github-com-hashicorp-go-uuid
-  (package
-    (name "go-github-com-hashicorp-go-uuid")
-    (version "1.0.3")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/hashicorp/go-uuid")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0wd4maaq20alxwcvfhr52rzfnwwpmc2a698ihyr0vfns2sl7gkzk"))))
-    (build-system go-build-system)
-    (arguments
-     '(#:import-path "github.com/hashicorp/go-uuid"))
-    (home-page "https://github.com/hashicorp/go-uuid")
-    (synopsis "Generate UUID-format strings")
-    (description
-     "This package generates UUID-format strings using high quality bytes.
-It is not intended to be RFC compliant, merely to use a well-understood string
-representation of a 128-bit value.  It can also parse UUID-format strings into
-their component bytes.")
-    (license license:mpl2.0)))
-
 (define-public go-github-com-hashicorp-go-version
   (let ((commit
          "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
-- 
cgit v1.2.3


From 080f93132064eb16df0ea1d7d744975193c2a9de Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 23:07:57 +0000
Subject: gnu: go-github-com-spf13-viper: Remove input labels.

* gnu/package/golang.scm (go-github-com-spf13-viper)
[propagated-inputs]: Remove input labels.

Change-Id: I0c8c616b9b44a2fd21f83dbfb609fe1bd861d657
---
 gnu/packages/golang.scm | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 58126f7eeb..74fc08f83d 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3888,21 +3888,21 @@ GNU extensions} to the POSIX recommendations for command-line options.")
          "099n2g7fg6r8hqyszqw2axr775qyhyvwhsykvgw0f0s16ql48h5c"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "github.com/spf13/viper"))
+     (list
+      #:import-path "github.com/spf13/viper"))
     (propagated-inputs
-     `(("github.com/spf13/afero" ,go-github-com-spf13-afero)
-       ("github.com/spf13/cast" ,go-github-com-spf13-cast)
-       ("github.com/spf13/pflag" ,go-github-com-spf13-pflag)
-       ("github.com/spf13/jwalterweatherman" ,go-github-com-spf13-jwalterweatherman)
-       ("github.com/fsnotify/fsnotify" ,go-github-com-fsnotify-fsnotify)
-       ("github.com/hashicorp/hcl" ,go-github-com-hashicorp-hcl)
-       ("github.com/magiconair/properties" ,go-github-com-magiconair-properties)
-       ("github.com/mitchellh/mapstructure" ,go-github-com-mitchellh-mapstructure)
-       ("github.com/pelletier/go-toml" ,go-github-com-pelletier-go-toml)
-       ("github.com/subosito/gotenv" ,go-github-com-subosito-gotenv)
-
-       ("gopkg.in/ini.v1" ,go-gopkg-in-ini-v1)
-       ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
+     (list go-github-com-fsnotify-fsnotify
+           go-github-com-hashicorp-hcl
+           go-github-com-magiconair-properties
+           go-github-com-mitchellh-mapstructure
+           go-github-com-pelletier-go-toml
+           go-github-com-spf13-afero
+           go-github-com-spf13-cast
+           go-github-com-spf13-jwalterweatherman
+           go-github-com-spf13-pflag
+           go-github-com-subosito-gotenv
+           go-gopkg-in-ini-v1
+           go-gopkg-in-yaml-v2))
     (native-inputs
      (list go-github-com-stretchr-testify))
     (home-page "https://github.com/spf13/viper")
-- 
cgit v1.2.3


From f3914c1a7bee3f552d2ce653f7fb8ac07829063a Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 23:12:57 +0000
Subject: gnu: go-github-com-hashicorp-go-version: Move to golang-xyz.

* gnu/packages/golang.scm (go-github-com-hashicorp-go-version): Move
from here ...
* gnu/packages/golang-xyz.scm: ... to here.

Change-Id: Ica0c069e90ade97efbbb201f36d92ff70bad1c8b
---
 gnu/packages/golang-xyz.scm | 29 +++++++++++++++++++++++++++++
 gnu/packages/golang.scm     | 30 ------------------------------
 2 files changed, 29 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index c6c1c4bb24..27216e745d 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -871,6 +871,35 @@ representation of a 128-bit value.  It can also parse UUID-format strings into
 their component bytes.")
     (license license:mpl2.0)))
 
+(define-public go-github-com-hashicorp-go-version
+  (let ((commit
+         "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
+        (revision "0"))
+    (package
+      (name "go-github-com-hashicorp-go-version")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/hashicorp/go-version")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/hashicorp/go-version"))
+      (home-page "https://github.com/hashicorp/go-version")
+      (synopsis "Go library for parsing and verifying versions and version
+constraints")
+      (description
+       "This package is a library for parsing versions and version
+constraints, and verifying versions against a set of constraints.  It can sort
+a collection of versions properly, handles prerelease/beta versions, can
+increment versions.")
+      (license license:mpl2.0))))
+
 (define-public go-github-com-hhrutter-tiff
   (package
     (name "go-github-com-hhrutter-tiff")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 74fc08f83d..d1f6bada15 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3500,36 +3500,6 @@ editor.")
  spec in Go.")
       (license license:bsd-3))))
 
-(define-public go-github-com-hashicorp-go-version
-  (let ((commit
-         "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
-        (revision "0"))
-    (package
-      (name "go-github-com-hashicorp-go-version")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/hashicorp/go-version")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/hashicorp/go-version"))
-      (home-page
-       "https://github.com/hashicorp/go-version")
-      (synopsis "Go library for parsing and verifying versions and version
-constraints")
-      (description "This package is a library for parsing versions and version
-constraints, and verifying versions against a set of constraints.  It can sort
-a collection of versions properly, handles prerelease/beta versions, can
-increment versions.")
-      (license license:mpl2.0))))
-
 (define-public go-github-com-jpillora-backoff
   (let ((commit
          "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
-- 
cgit v1.2.3


From 44790c7c8c31e4f543c330c61a9b11175a380483 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 23:15:47 +0000
Subject: gnu: go-github-com-hashicorp-go-version: Update to 1.6.0.

* gnu/packages/golang-xyz.scm (go-github-com-hashicorp-go-version): Update to 1.6.0.

Change-Id: I964c450d42a436bf093222c90abadcaf84b2968d
---
 gnu/packages/golang-xyz.scm | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 27216e745d..cda7d24de0 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -872,21 +872,18 @@ their component bytes.")
     (license license:mpl2.0)))
 
 (define-public go-github-com-hashicorp-go-version
-  (let ((commit
-         "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
-        (revision "0"))
     (package
       (name "go-github-com-hashicorp-go-version")
-      (version (git-version "0.0.0" revision commit))
+      (version "1.6.0")
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/hashicorp/go-version")
-               (commit commit)))
+               (commit (string-append "v" version))))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
+          (base32 "0fw6hwvjadpbfj10yk7f64ypw8lmv5s5ny3s4ria0nv6xam1wpai"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "github.com/hashicorp/go-version"))
@@ -898,7 +895,7 @@ constraints")
 constraints, and verifying versions against a set of constraints.  It can sort
 a collection of versions properly, handles prerelease/beta versions, can
 increment versions.")
-      (license license:mpl2.0))))
+      (license license:mpl2.0)))
 
 (define-public go-github-com-hhrutter-tiff
   (package
-- 
cgit v1.2.3


From adab22203ee41d95dc5fcff807adfab3a92a02fb Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 23:16:03 +0000
Subject: gnu: go-github-com-hashicorp-go-version: Fix indentation.

* gnu/packages/golang-xyz.scm (go-github-com-hashicorp-go-version): Fix
indentation.

Change-Id: Ib6f81057c9434097209875b91806703695c5089c
---
 gnu/packages/golang-xyz.scm | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index cda7d24de0..7221a54b6a 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -872,30 +872,30 @@ their component bytes.")
     (license license:mpl2.0)))
 
 (define-public go-github-com-hashicorp-go-version
-    (package
-      (name "go-github-com-hashicorp-go-version")
-      (version "1.6.0")
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/hashicorp/go-version")
-               (commit (string-append "v" version))))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0fw6hwvjadpbfj10yk7f64ypw8lmv5s5ny3s4ria0nv6xam1wpai"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/hashicorp/go-version"))
-      (home-page "https://github.com/hashicorp/go-version")
-      (synopsis "Go library for parsing and verifying versions and version
+  (package
+    (name "go-github-com-hashicorp-go-version")
+    (version "1.6.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hashicorp/go-version")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0fw6hwvjadpbfj10yk7f64ypw8lmv5s5ny3s4ria0nv6xam1wpai"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/hashicorp/go-version"))
+    (home-page "https://github.com/hashicorp/go-version")
+    (synopsis "Go library for parsing and verifying versions and version
 constraints")
-      (description
-       "This package is a library for parsing versions and version
+    (description
+     "This package is a library for parsing versions and version
 constraints, and verifying versions against a set of constraints.  It can sort
 a collection of versions properly, handles prerelease/beta versions, can
 increment versions.")
-      (license license:mpl2.0)))
+    (license license:mpl2.0)))
 
 (define-public go-github-com-hhrutter-tiff
   (package
-- 
cgit v1.2.3


From cd49133bfe97d6336adc85b1b587e335721cbdaa Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 23:21:12 +0000
Subject: gnu: go-github-com-hashicorp-hcl: Move to golang-xyz.

* gnu/packages/golang.scm (go-github-com-hashicorp-hcl): Move from here ...
* gnu/packages/golang-xyz.scm: ... to here.

Change-Id: I431689059384d203cdb1c2d40f16ef9c5958b5ab
---
 gnu/packages/golang-xyz.scm | 30 +++++++++++++++++++++++++++++-
 gnu/packages/golang.scm     | 27 ---------------------------
 2 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 7221a54b6a..5911461a59 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
 ;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
@@ -10,6 +11,7 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2021, 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev>
 ;;; Copyright © 2023 Benjamin <benjamin@uvy.fr>
 ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
@@ -17,7 +19,6 @@
 ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
 ;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr>
 ;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
-;;; Copyright © 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
 ;;;
@@ -793,6 +794,33 @@ Differentiation between text and binary files}.
 wrapping errors and checking if an error contains another error.")
     (license license:mpl2.0)))
 
+(define-public go-github-com-hashicorp-hcl
+  (package
+    (name "go-github-com-hashicorp-hcl")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hashicorp/hcl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/hashicorp/hcl"))
+    (native-inputs
+     (list go-github-com-davecgh-go-spew))
+    (synopsis "Go implementation of HashiCorp Configuration Language V1")
+    (description
+     "This package contains the main implementation of the @acronym{HCL,
+HashiCorp Configuration Language}.  HCL is designed to be a language for
+expressing configuration which is easy for both humans and machines to read.")
+    (home-page "https://github.com/hashicorp/hcl")
+    (license license:mpl2.0)))
+
 (define-public go-github-com-hashicorp-go-multierror
   (package
     (name "go-github-com-hashicorp-go-multierror")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index d1f6bada15..3fa3ed7ebf 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3304,33 +3304,6 @@ command-line parsers.")
     (home-page "https://github.com/tj/docopt")
     (license license:expat)))
 
-(define-public go-github-com-hashicorp-hcl
-  (package
-    (name "go-github-com-hashicorp-hcl")
-    (version "1.0.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/hashicorp/hcl")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66"))))
-    (build-system go-build-system)
-    (arguments
-     '(#:import-path "github.com/hashicorp/hcl"))
-    (native-inputs
-     (list go-github-com-davecgh-go-spew))
-    (synopsis "Go implementation of HashiCorp Configuration Language V1")
-    (description
-     "This package contains the main implementation of the @acronym{HCL,
-HashiCorp Configuration Language}.  HCL is designed to be a language for
-expressing configuration which is easy for both humans and machines to read.")
-    (home-page "https://github.com/hashicorp/hcl")
-    (license license:mpl2.0)))
-
 (define-public go-github-com-hashicorp-hcl-v2
   (package
     (name "go-github-com-hashicorp-hcl-v2")
-- 
cgit v1.2.3


From b4107ca3ad8bb8a6b8e669c298be2f14ff0237da Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Wed, 6 Mar 2024 23:24:24 +0000
Subject: gnu: go-github-com-hashicorp-hcl-v2: Move to golang-xyz.

* gnu/packages/golang.scm (go-github-com-hashicorp-hcl-v2): Move from
here ...
* gnu/packages/golang-xyz.scm: ... to here.

Change-Id: Ife07c1ca7b0ba7241955767ebd2430a8e60aec90
---
 gnu/packages/golang-xyz.scm | 32 ++++++++++++++++++++++++++++++++
 gnu/packages/golang.scm     | 31 -------------------------------
 2 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 5911461a59..0b3db6e379 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -821,6 +821,38 @@ expressing configuration which is easy for both humans and machines to read.")
     (home-page "https://github.com/hashicorp/hcl")
     (license license:mpl2.0)))
 
+(define-public go-github-com-hashicorp-hcl-v2
+  (package
+    (name "go-github-com-hashicorp-hcl-v2")
+    (version "2.11.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hashicorp/hcl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0f9flmmkj7fr1337fc56cqy73faq87ix375hnz3id4wc023przv1"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/hashicorp/hcl/v2"))
+    (native-inputs
+     (list go-github-com-davecgh-go-spew))
+    (inputs
+     (list go-github-com-agext-levenshtein
+           go-github-com-apparentlymart-go-textseg-v13
+           go-github-com-mitchellh-go-wordwrap
+           go-github-com-zclconf-go-cty))
+    (synopsis "Go implementation of HashiCorp Configuration Language V2")
+    (description
+     "This package contains the main implementation of the @acronym{HCL,
+HashiCorp Configuration Language}.  HCL is designed to be a language for
+expressing configuration which is easy for both humans and machines to read.")
+    (home-page "https://github.com/hashicorp/hcl")
+    (license license:mpl2.0)))
+
 (define-public go-github-com-hashicorp-go-multierror
   (package
     (name "go-github-com-hashicorp-go-multierror")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 3fa3ed7ebf..d12902290e 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3304,37 +3304,6 @@ command-line parsers.")
     (home-page "https://github.com/tj/docopt")
     (license license:expat)))
 
-(define-public go-github-com-hashicorp-hcl-v2
-  (package
-    (name "go-github-com-hashicorp-hcl-v2")
-    (version "2.11.1")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/hashicorp/hcl")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "0f9flmmkj7fr1337fc56cqy73faq87ix375hnz3id4wc023przv1"))))
-    (build-system go-build-system)
-    (arguments
-     '(#:import-path "github.com/hashicorp/hcl/v2"))
-    (native-inputs
-     (list go-github-com-davecgh-go-spew))
-    (inputs
-     (list go-github-com-agext-levenshtein go-github-com-mitchellh-go-wordwrap
-           go-github-com-zclconf-go-cty
-           go-github-com-apparentlymart-go-textseg-v13))
-    (synopsis "Go implementation of HashiCorp Configuration Language V2")
-    (description
-     "This package contains the main implementation of the @acronym{HCL,
-HashiCorp Configuration Language}.  HCL is designed to be a language for
-expressing configuration which is easy for both humans and machines to read.")
-    (home-page "https://github.com/hashicorp/hcl")
-    (license license:mpl2.0)))
-
 (define-public govulncheck
   (package
     (name "govulncheck")
-- 
cgit v1.2.3


From 915e2fc339db7b52beccb9e43fb888899ed8306b Mon Sep 17 00:00:00 2001
From: Suhail Singh <suhailsingh247@gmail.com>
Date: Tue, 5 Mar 2024 19:48:42 -0500
Subject: gnu: emacs-eldev: Update to 1.9.

* gnu/packages/emacs-xyz.scm (emacs-eldev): Update to 1.9.

Change-Id: I364f261a5d332793d7dd0b789e32a993fa749bd4
Signed-off-by: Andrew Tropin <andrew@trop.in>
---
 gnu/packages/emacs-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index e1d14ea4aa..903537acb5 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -23495,7 +23495,7 @@ according to a parsing expression grammar.")
 (define-public emacs-eldev
   (package
     (name "emacs-eldev")
-    (version "1.8.2")
+    (version "1.9")
     (source
      (origin
        (method git-fetch)
@@ -23504,7 +23504,7 @@ according to a parsing expression grammar.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "108px7lnf39ngvb8rcqb9qh2amcbs1h22dbwd1q7js2np2nd132y"))))
+        (base32 "0mhp3m4d5na844nnv107j706552h0q6xs93jkp4rmqiig73kq17w"))))
     (build-system emacs-build-system)
     (arguments
      (list
-- 
cgit v1.2.3


From 0f2eede9f1d4574813935b7f58384036d509002d Mon Sep 17 00:00:00 2001
From: Suhail Singh <suhailsingh247@gmail.com>
Date: Tue, 5 Mar 2024 19:50:38 -0500
Subject: gnu: emacs-ox-tufte: Simplify test invocation.

* gnu/packages/emacs-xyz.scm (emacs-ox-tufte): Simplify the test invocation
using the --use-emacsloadpath option in emacs-eldev@1.9.

Change-Id: Ie61a336251b2670872cc8d049cc1c62284b7f350
Signed-off-by: Andrew Tropin <andrew@trop.in>
---
 gnu/packages/emacs-xyz.scm | 17 +----------------
 1 file changed, 1 insertion(+), 16 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 903537acb5..7fa5df9202 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -33691,22 +33691,7 @@ simple but powerful Org contents.")
      (list
       #:include #~(cons "^src/" %default-include)
       #:tests? #t
-      ;; <https://github.com/emacs-eldev/eldev/issues/99#issuecomment-1912637609>
-      #:test-command #~(list "eldev" "-X" "-dtTC" "test")
-      #:phases
-      #~(modify-phases %standard-phases
-          (add-after 'unpack 'configure-eldev
-            (lambda _
-              (setenv "HOME"
-                      (string-append (getcwd) "/.eldev"))
-              (with-output-to-file "Eldev-local"
-                (lambda _
-                  (format #t "~s"
-                          '(dolist (d (split-string (getenv
-                                                     "EMACSLOADPATH")
-                                                    ":" t))
-                                   (ignore-errors
-                                    (eldev-use-local-dependency d)))))))))))
+      #:test-command #~(list "eldev" "--use-emacsloadpath" "-dtTC" "test")))
     (native-inputs (list emacs-buttercup emacs-eldev))
     (propagated-inputs (list emacs-org))
     (home-page "https://github.com/ox-tufte/ox-tufte")
-- 
cgit v1.2.3


From f7295486ac22ba51904b10bbedd518390c81ac57 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Thu, 7 Mar 2024 11:27:23 +0200
Subject: gnu: guix-icons: Clean-up package.

* gnu/packages/package-management.scm (guix-icons): Don't inherit from
guix.
[inputs]: Remove field.
[home-page]: Use Guix's home-page.
[license]: Update to cc-by-sa4.0.

Change-Id: Icc14bd16a1746a6d1f95260a0da5f8f5bf7494a7
---
 gnu/packages/package-management.scm | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 5d6bc47b8b..f392c737fe 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2018, 2019 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2019-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019-2024 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
@@ -682,15 +682,12 @@ overridden by setting the 'current-guix-package' parameter."
 
 (define-public guix-icons
   (package
-    (inherit guix)
     (name "guix-icons")
     (version "0.1")
     (source %artwork-repository)
     (build-system trivial-build-system)
     (native-inputs
      (list imagemagick))
-    (inputs
-     '())
     (arguments
      `(#:modules ((guix build utils)
                   (gnu build svg))
@@ -738,10 +735,12 @@ overridden by setting the 'current-guix-package' parameter."
                                #:width size
                                #:height size)))
                  sizes))))))
+    (home-page "https://www.gnu.org/software/guix/")
     (synopsis "GNU Guix icons")
     (description "This package contains GNU Guix icons organized according to
 the Icon Theme Specification.  They can be used by applications querying the
-GTK icon cache for instance.")))
+GTK icon cache for instance.")
+    (license license:cc-by-sa4.0)))
 
 (define-public guix-modules
   (package
-- 
cgit v1.2.3


From f7fcddef52e5d167922e0225a3a22c900a14cb5b Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Thu, 7 Mar 2024 11:29:20 +0200
Subject: gnu: Add guix-backgrounds.

* gnu/packages/package-management.scm (guix-backgrounds): New variable.

Change-Id: If6159ed955877c42452b5ab6d853d3bf8687cde0
---
 gnu/packages/package-management.scm | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index f392c737fe..c40f90ecfc 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -120,6 +120,7 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages version-control)
   #:autoload   (guix build-system channel) (channel-build-system)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system guile)
@@ -742,6 +743,23 @@ the Icon Theme Specification.  They can be used by applications querying the
 GTK icon cache for instance.")
     (license license:cc-by-sa4.0)))
 
+(define-public guix-backgrounds
+  (package
+    (name "guix-backgrounds")
+    (version "0.1")
+    (source %artwork-repository)
+    (build-system copy-build-system)
+    (arguments
+     (list #:install-plan
+           #~'(("backgrounds" "share/backgrounds/guix" #:exclude ("README")))))
+    (home-page "https://www.gnu.org/software/guix/")
+    (synopsis "Background images for GNU Guix")
+    (description "The SVG files in this directory are intended to be used as
+backgrounds for different components of the GNU system like login managers and
+desktop environments.  The backgrounds are available in different aspect ratios
+which are indicated in the file name.")
+    (license (list license:public-domain license:cc-by-sa4.0))))
+
 (define-public guix-modules
   (package
     (name "guix-modules")
-- 
cgit v1.2.3


From 7e72b7f119d720758e17cb7ebd0e2245c88863d1 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Tue, 5 Mar 2024 11:40:51 +0200
Subject: gnu: opus: Mark as tunable.

* gnu/packages/xiph.scm (opus)[properties]: Mark package as tunable.

Change-Id: I5df964b5692c6f390eef55d780810b03d6a895dc
---
 gnu/packages/xiph.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index f3603c39bb..6fc05711f4 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -367,6 +367,8 @@ is unmatched for interactive speech and music transmission over the Internet,
 but is also intended for storage and streaming applications.  It is
 standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which
 incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
+    ;; This package shows a sizable speed increase when tuned.
+    (properties `((tunable? . #t)))
     (license license:bsd-3)
     (home-page "https://www.opus-codec.org")))
 
-- 
cgit v1.2.3


From 0753dd3aa07f609db98d50438f69f96c27e11eec Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Tue, 5 Mar 2024 11:41:46 +0200
Subject: gnu: libvorbis: Mark as tunable.

* gnu/packages/xiph.scm (libvorbis)[properties]: Mark package as tunable.

Change-Id: Ie378a8c671ba6408a137e3c27824cb17671cafe3
---
 gnu/packages/xiph.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 6fc05711f4..9019029f24 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -100,6 +100,8 @@ a fully open, non-proprietary, patent-and-royalty-free, general-purpose
 compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit,
 polyphonic) audio and music at fixed and variable bitrates from 16 to
 128 kbps/channel.")
+   ;; This package shows a sizable speed increase when tuned.
+   (properties `((tunable? . #t)))
    (license (license:non-copyleft "file://COPYING"
                                "See COPYING in the distribution."))
    (home-page "https://xiph.org/vorbis/")))
-- 
cgit v1.2.3


From 63165a94862c2b338e329cbd781712c7a7a1b475 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Wed, 6 Mar 2024 09:09:56 +0200
Subject: cpu: Be consistent with x86_64 micro-architecture names.

* gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Rename
micro-architectures from x86_64-v* to x86-64-v*.
* guix/cpu.scm (cpu->gcc-architecture): Return x86-64 as the fallback.
(cpu->micro-architecture-level): Rename micro-architectures from
x86_64-v* to x86-64-v*.
(gcc-architecture->micro-architecture-level): Same.

Change-Id: I37db65970417c22699ae8097b0361bccf76c1267
---
 gnu/packages/golang.scm |  2 +-
 guix/cpu.scm            | 20 ++++++++++----------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index d12902290e..670056f8a0 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -870,7 +870,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
          ("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures))))))
 
 (define %go-1.18-x86_64-micro-architectures
-  (list "x86_64-v1" "x86_64-v2" "x86_64-v3" "x86_64-v4"))
+  (list "x86-64-v1" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
 
 (define-public go-1.18
   (package
diff --git a/guix/cpu.scm b/guix/cpu.scm
index e80b74f161..b69c9b5360 100644
--- a/guix/cpu.scm
+++ b/guix/cpu.scm
@@ -200,7 +200,7 @@ corresponds to CPU, a record as returned by 'current-cpu'."
 
          ;; TODO: Recognize CENTAUR/CYRIX/NSC?
 
-         "x86_64")))
+         "x86-64")))
     ("aarch64"
      ;; Transcribed from GCC's list of aarch64 processors in aarch64-cores.def
      ;; What to do with big.LITTLE cores?
@@ -290,12 +290,12 @@ correspond roughly to CPU, a record as returned by 'current-cpu'."
              ;; v2: CMPXCHG16B, LAHF, SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3
              ("avx512f" "avx512bw" "abx512cd" "abx512dq" "avx512vl"
               "avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe"
-              "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v4")
+              "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v4")
              ("avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe"
-              "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v3")
-             ("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v2")
-             (_ => "x86_64-v1")))
-         "x86_64-v1"))
+              "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v3")
+             ("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v2")
+             (_ => "x86-64-v1")))
+         "x86-64-v1"))
     (architecture
      ;; TODO: More architectures
      architecture)))
@@ -304,22 +304,22 @@ correspond roughly to CPU, a record as returned by 'current-cpu'."
   "Return a matching psABI micro-architecture, allowing optimizations for x86_64
 CPUs for compilers which don't allow for more focused optimizing."
   ;; Matching gcc-architectures isn't an easy task, with the rule-of-thumb being
-  ;; AVX512F+ for x86_64-v4, AVX+ for x86_64-v3.
+  ;; AVX512F+ for x86-64-v4, AVX+ for x86-64-v3.
   ;; https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex
   (match gcc-architecture
     ((or "graniterapids-d" "graniterapids" "tigerlake" "sapphirerapids"
          "cooperlake" "icelake-server" "icelake-client" "cannonlake" "knm"
          "knl" "skylake-avx512"
          "znver4")
-     "x86_64-v4")
+     "x86-64-v4")
     ((or "pantherlake" "clearwaterforest" "arrowlake-s" "sierraforest"
          "alderlake" "skylake" "broadwell" "haswell"
          "znver3" "znver2" "znver1" "bdver4")
-     "x86_64-v3")
+     "x86-64-v3")
     ((or "sandybridge" "tremont" "goldmont-plus" "goldmont" "silvermont"
          "nehalem" "bonnell" "core2"
          "btver2" "athalon" "k8-sse3" "k8" "bdver3" "bdver2" "bdver1" "btver1"
          "amdfam10"
          "lujiazui" "yongfeng" "x86-64")
-     "x86_64-v1")
+     "x86-64-v1")
     (_ gcc-architecture)))
-- 
cgit v1.2.3


From 7700dc2cf5e1ada04a6fbcbffbe150f8274ab502 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Wed, 6 Mar 2024 09:14:03 +0200
Subject: cpu: Rename x86-64-v1 to x86-64.

This is the actual micro-architecture designation used by compilers.

* gnu/packages/gcc.scm (%gcc-11-x86_64-micro-architectures): Rename
x86-64-v1 to x86-64.
* gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Same.
* guix/cpu.scm (cpu->micro-architecture-level): Same.
(gcc-architecture->micro-architecture-level): Same.

Change-Id: I19ed556a7e8deb4a77f4c63fca3b794f25092788
---
 gnu/packages/gcc.scm    | 2 +-
 gnu/packages/golang.scm | 3 ++-
 guix/cpu.scm            | 6 +++---
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 3abecdeadd..3555d12c44 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -624,7 +624,7 @@ Go.  It also includes runtime support libraries for these languages.")
             "btver1" "btver2"                     ;AMD
 
             ;; psABI micro-architecture levels
-            "x86-64-v1" "x86-64-v2" "x86-64-v3" "x86-64-v4")))
+            "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4")))
 
 ;; Suitable '-march' values for GCC 12.
 (define %gcc-12-aarch64-micro-architectures
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 670056f8a0..49e25320fa 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -870,7 +870,8 @@ in the style of communicating sequential processes (@dfn{CSP}).")
          ("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures))))))
 
 (define %go-1.18-x86_64-micro-architectures
-  (list "x86-64-v1" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
+  ;; GOAMD defaults to 'v1' so we match the default elsewhere.
+  (list "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
 
 (define-public go-1.18
   (package
diff --git a/guix/cpu.scm b/guix/cpu.scm
index b69c9b5360..6f9e8daa61 100644
--- a/guix/cpu.scm
+++ b/guix/cpu.scm
@@ -294,8 +294,8 @@ correspond roughly to CPU, a record as returned by 'current-cpu'."
              ("avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe"
               "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v3")
              ("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v2")
-             (_ => "x86-64-v1")))
-         "x86-64-v1"))
+             (_ => "x86-64")))
+         "x86-64"))
     (architecture
      ;; TODO: More architectures
      architecture)))
@@ -321,5 +321,5 @@ CPUs for compilers which don't allow for more focused optimizing."
          "btver2" "athalon" "k8-sse3" "k8" "bdver3" "bdver2" "bdver1" "btver1"
          "amdfam10"
          "lujiazui" "yongfeng" "x86-64")
-     "x86-64-v1")
+     "x86-64")
     (_ gcc-architecture)))
-- 
cgit v1.2.3


From cae9e9db329ff13188ef98bd062a7d5b6b5e5a99 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Wed, 6 Mar 2024 09:19:56 +0200
Subject: cpu: Enable tuning for i686-linux.

* gnu/packages/gcc.scm (gcc-7, gcc-10, gcc-11, gcc-12, gcc-13)
[properties]: In compiler-cpu-architectures use the
x86_64-micro-architectures list for i686.
* guix/cpu.scm (cpu->gcc-architecture): Expand the x86_64 case to also
support i686.

Change-Id: I0b820ceb715960db5e702814fa278dc8c619a836
---
 gnu/packages/gcc.scm | 5 +++++
 guix/cpu.scm         | 6 ++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 3555d12c44..c8902de6a0 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -673,6 +673,7 @@ It also includes runtime support libraries for these languages.")
      `((compiler-cpu-architectures
         ("aarch64" ,@%gcc-7.5-aarch64-micro-architectures)
         ("armhf" ,@%gcc-7.5-armhf-micro-architectures)
+        ("i686" ,@%gcc-7.5-x86_64-micro-architectures)
         ("x86_64" ,@%gcc-7.5-x86_64-micro-architectures))
        ,@(package-properties gcc-6)))))
 
@@ -729,6 +730,7 @@ It also includes runtime support libraries for these languages.")
     `((compiler-cpu-architectures
        ("aarch64" ,@%gcc-10-aarch64-micro-architectures)
        ("armhf" ,@%gcc-10-armhf-micro-architectures)
+       ("i686" ,@%gcc-10-x86_64-micro-architectures)
        ("x86_64" ,@%gcc-10-x86_64-micro-architectures))
       ,@(package-properties gcc-8)))))
 
@@ -764,6 +766,7 @@ It also includes runtime support libraries for these languages.")
     `((compiler-cpu-architectures
        ("aarch64" ,@%gcc-11-aarch64-micro-architectures)
        ("armhf" ,@%gcc-11-armhf-micro-architectures)
+       ("i686" ,@%gcc-11-x86_64-micro-architectures)
        ("x86_64" ,@%gcc-11-x86_64-micro-architectures))
       ,@(package-properties gcc-8)))))
 
@@ -786,6 +789,7 @@ It also includes runtime support libraries for these languages.")
     `((compiler-cpu-architectures
        ("aarch64" ,@%gcc-12-aarch64-micro-architectures)
        ("armhf" ,@%gcc-12-armhf-micro-architectures)
+       ("i686" ,@%gcc-12-x86_64-micro-architectures)
        ("x86_64" ,@%gcc-12-x86_64-micro-architectures))
       ,@(package-properties gcc-11)))))
 
@@ -808,6 +812,7 @@ It also includes runtime support libraries for these languages.")
      `((compiler-cpu-architectures
         ("aarch64" ,@%gcc-13-aarch64-micro-architectures)
         ("armhf" ,@%gcc-13-armhf-micro-architectures)
+        ("i686" ,@%gcc-13-x86_64-micro-architectures)
         ("x86_64" ,@%gcc-13-x86_64-micro-architectures))
        ,@(package-properties gcc-11)))))
 
diff --git a/guix/cpu.scm b/guix/cpu.scm
index 6f9e8daa61..840215cff0 100644
--- a/guix/cpu.scm
+++ b/guix/cpu.scm
@@ -113,7 +113,7 @@
   "Return the architecture name, suitable for GCC's '-march' flag, that
 corresponds to CPU, a record as returned by 'current-cpu'."
   (match (cpu-architecture cpu)
-    ("x86_64"
+    ((or "x86_64" "i686")
      ;; Transcribed from GCC's 'host_detect_local_cpu' in driver-i386.cc.
      (letrec-syntax ((if-flags (syntax-rules (=>)
                                  ((_)
@@ -200,7 +200,9 @@ corresponds to CPU, a record as returned by 'current-cpu'."
 
          ;; TODO: Recognize CENTAUR/CYRIX/NSC?
 
-         "x86-64")))
+         (match (cpu-architecture cpu)
+           ("x86_64" "x86-64")
+           (_ "generic")))))
     ("aarch64"
      ;; Transcribed from GCC's list of aarch64 processors in aarch64-cores.def
      ;; What to do with big.LITTLE cores?
-- 
cgit v1.2.3


From 7fd57fdd83c0e4ec60641f330dd2181018f8106e Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Wed, 6 Mar 2024 12:25:18 +0200
Subject: gnu: clang-properties: Update x86_64 micro-architectures.

* gnu/packages/llvm.scm (clang-properties): Add entries on x86_64 for
versions 17, 16, 15, 13, 9 and remove entry for version 10.

Change-Id: I93149c30f011c6de8ff0cc2c2b6f0186540359cd
---
 gnu/packages/llvm.scm | 122 +++++++++++++++++++++++++-------------------------
 1 file changed, 61 insertions(+), 61 deletions(-)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 2778d0ec38..2567405cb4 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -482,67 +482,67 @@ code analysis tools.")
 (define (clang-properties version)
   "Return package properties for Clang VERSION."
   `((compiler-cpu-architectures
-     ("x86_64"
-      ;; This list was obtained by running:
-      ;;
-      ;;   guix shell clang -- llc -march=x86-64 -mattr=help
-      ;;
-      ;; filtered from uninteresting entries such as "i686" and "pentium".
-      ,@(if (version>=? version "10.0")           ;TODO: refine
-            '("atom"
-              "barcelona"
-              "bdver1"
-              "bdver2"
-              "bdver3"
-              "bdver4"
-              "bonnell"
-              "broadwell"
-              "btver1"
-              "btver2"
-              "c3"
-              "c3-2"
-              "cannonlake"
-              "cascadelake"
-              "cooperlake"
-              "core-avx-i"
-              "core-avx2"
-              "core2"
-              "corei7"
-              "corei7-avx"
-              "generic"
-              "geode"
-              "goldmont"
-              "goldmont-plus"
-              "haswell"
-              "icelake-client"
-              "icelake-server"
-              "ivybridge"
-              "k8"
-              "k8-sse3"
-              "knl"
-              "knm"
-              "lakemont"
-              "nehalem"
-              "nocona"
-              "opteron"
-              "opteron-sse3"
-              "sandybridge"
-              "silvermont"
-              "skx"
-              "skylake"
-              "skylake-avx512"
-              "slm"
-              "tigerlake"
-              "tremont"
-              "westmere"
-              "x86-64"
-              "x86-64-v2"
-              "x86-64-v3"
-              "x86-64-v4"
-              "znver1"
-              "znver2"
-              "znver3")
-            '())))))
+      ("x86_64"
+       ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c
+       ,@(cond
+           ((version>=? version "17.0")
+            '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
+              "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
+              "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
+              "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
+              "cascadelake" "cooperlake" "cannonlake" "icelake-client"
+              "rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
+              "alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
+              "graniterapids" "graniterapids-d" "emeraldrapids" "knl" "knm" "k8"
+              "athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
+              "opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
+              "bdver2" "bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4"
+              "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
+           ((version>=? version "16.0")
+            '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
+              "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
+              "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
+              "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
+              "cascadelake" "cooperlake" "cannonlake" "icelake-client"
+              "rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
+              "alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
+              "graniterapids" "emeraldrapids" "knl" "knm" "k8" "athlon64"
+              "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3" "opteron-sse3"
+              "amdfam10" "barcelona" "btver1" "btver2" "bdver1" "bdver2"
+              "bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4" "x86-64"
+              "x86-64-v2" "x86-64-v3" "x86-64-v4"))
+           ((version>=? version "15.0")
+            '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
+              "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
+              "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
+              "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
+              "cascadelake" "cooperlake" "cannonlake" "icelake-client"
+              "rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
+              "alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron"
+              "k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona"
+              "btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"
+              "znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
+           ((version>=? version "13.0")
+            '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
+              "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
+              "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
+              "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
+              "cascadelake" "cooperlake" "cannonlake" "icelake-client"
+              "rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
+              "alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron"
+              "k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona"
+              "btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"
+              "znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
+           ((version>=? version "9.0")
+            '("atom" "silvermont" "slm" "goldmont" "goldmont-plus" "tremont"
+              "nehalem" "corei7" "westmere" "sandybridge" "corei7-avx"
+              "ivybridge" "core-avx-i" "haswell" "core-avx2" "broadwell"
+              "skylake" "skylake-avx512" "skx" "cascadelake" "cooperlake"
+              "cannonlake" "icelake-client" "icelake-server" "knl" "knm" "k8"
+              "athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
+              "opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
+              "bdver2" "bdver3" "bdver4" "znver1" "znver2" "x86-64"))
+           (else '()))))))
 
 (define-public (make-clang-toolchain clang libomp)
   (package
-- 
cgit v1.2.3


From e8c904318339fd3b9edd763d70fad78fd7c3b2a8 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Wed, 6 Mar 2024 12:28:08 +0200
Subject: gnu: clang-properties: Add micro-architecture support for
 powerpc64le.

* gnu/packages/llvm.scm (clang-properties): Add entry for powerpc64le.

Change-Id: I89f300922270a1f35aa08e73e62d90843bd902c8
---
 gnu/packages/llvm.scm | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 2567405cb4..c002f62cac 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -482,6 +482,11 @@ code analysis tools.")
 (define (clang-properties version)
   "Return package properties for Clang VERSION."
   `((compiler-cpu-architectures
+      ("powerpc64le"
+       ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c
+       ;; and then trimmed down.
+       ,@(if (version>=? version "11.0")
+             '("power8" "power9" "power10" "powerpc64le")))
       ("x86_64"
        ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c
        ,@(cond
-- 
cgit v1.2.3


From fa2029890fc1b9a6261582e545742dae6fad487f Mon Sep 17 00:00:00 2001
From: Christopher Baines <mail@cbaines.net>
Date: Thu, 7 Mar 2024 15:05:21 +0000
Subject: gnu: bffe: Update to 0-4.006b96a.

* gnu/packages/package-management.scm (bffe): Update to 0-4.006b96a.

Change-Id: Ie3a41c8ccad89ec746cd621088d1e45499e3d52a
---
 gnu/packages/package-management.scm | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index c40f90ecfc..68c4329b09 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -991,8 +991,8 @@ transactions from C or Python.")
     (license license:gpl2+)))
 
 (define-public bffe
-  (let ((commit "1c12da4e6f3c7d3ab557781769fb848354362748")
-        (revision "3"))
+  (let ((commit "006b96a9ff41f5d8e639f93f81eeab87d204bd89")
+        (revision "4"))
     (package
       (name "bffe")
       (version (git-version "0" revision commit))
@@ -1003,7 +1003,7 @@ transactions from C or Python.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "0qa63mssv85g38m3bcblgp3yscywgz0hrg4lc84dxx99b07pmfc3"))
+                  "1ai3dzwp5ddn5i7xzvg0qcj0nbip03jx0d3vhvxqr1vnlr71rzvh"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (native-inputs
@@ -1018,7 +1018,7 @@ transactions from C or Python.")
              guix
              guix-data-service
              guix-build-coordinator
-             guile-fibers-1.3
+             guile-fibers
              guile-prometheus
              guile-lib))
       (propagated-inputs
@@ -1027,7 +1027,7 @@ transactions from C or Python.")
              guix
              guix-data-service
              guix-build-coordinator
-             guile-fibers-1.3
+             guile-fibers
              guile-prometheus
              guile-lib))
       (home-page "https://git.cbaines.net/guix/bffe")
-- 
cgit v1.2.3


From 5a057914951047a299d7ec405aebe38dcf419253 Mon Sep 17 00:00:00 2001
From: Christopher Baines <mail@cbaines.net>
Date: Thu, 7 Mar 2024 15:09:31 +0000
Subject: gnu: guix-build-coordinator: Update to 0-98.1c80525.

* gnu/packages/package-management.scm (guix-build-coordinator): Update to
0-98.1c80525.

Change-Id: Ia590600c2112b39f4ceced5734d7ed46f9045a46
---
 gnu/packages/package-management.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 68c4329b09..f155edaca0 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1530,8 +1530,8 @@ environments.")
                   "0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
 
 (define-public guix-build-coordinator
-  (let ((commit "9f1545b15269523eac109b54e1a62f4c0cda837e")
-        (revision "97"))
+  (let ((commit "1c80525d21f183ed2556def6fcd021f6ea9a88a4")
+        (revision "98"))
     (package
       (name "guix-build-coordinator")
       (version (git-version "0" revision commit))
@@ -1542,7 +1542,7 @@ environments.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1h35jjpvl7lipbys8q7ivx13cffkya6n0jpc91ckag3z2vb09iwp"))
+                  "0krw4v04ynp8v12zgc87cx6d3rldr13b48kix9rzq4z17x7f39yc"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
-- 
cgit v1.2.3


From 7f2f1bcddae64c48f793cde15c21617fa706c157 Mon Sep 17 00:00:00 2001
From: Christopher Baines <mail@cbaines.net>
Date: Thu, 7 Mar 2024 15:11:49 +0000
Subject: gnu: guix-data-service: Update to 0.0.1-45.5f80856.

* gnu/packages/web.scm (guix-data-service): Update to 0.0.1-45.5f80856.

Change-Id: I8ca137ee0088a6eb453306f9a7e6d8f9f8225d71
---
 gnu/packages/web.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 040be69240..75edf7b152 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4967,8 +4967,8 @@ Cloud.")
     (license license:expat)))
 
 (define-public guix-data-service
-  (let ((commit "e13febc81706fbfb7f073bc4e9ce73fbc80d5180")
-        (revision "44"))
+  (let ((commit "5f80856ad1587aea38ee4e7b54db558cdb43f6b7")
+        (revision "45"))
     (package
       (name "guix-data-service")
       (version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -4980,7 +4980,7 @@ Cloud.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0pk86b44zg2yn73sxlcd9pqbz8xwprwzaib2npnq80y3yzc6qc22"))))
+                  "18m002d9pkh0qn4xn4n6lijl541m9z7c3lbapl7m6zi41p3dywww"))))
       (build-system gnu-build-system)
       (arguments
        (list
-- 
cgit v1.2.3


From 0db53e647028df60223ce0e2d4a404deaaca7652 Mon Sep 17 00:00:00 2001
From: arkhan <arkhan@riseup.net>
Date: Thu, 7 Mar 2024 12:27:14 -0500
Subject: gnu: xonsh: Update to 0.15.1

* gnu/packages/shells.scm (xonsh): Update to 0.15.1

Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
---
 gnu/packages/shells.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 1822380ac8..492f4693d8 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -547,14 +547,14 @@ ksh, and tcsh.")
 (define-public xonsh
   (package
     (name "xonsh")
-    (version "0.14.2")
+    (version "0.15.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "xonsh" version))
         (sha256
           (base32
-           "0fddxzd45zvfr687mvd90f5s376yz0a8ln7qbpl94q89z7l0y77k"))
+           "0427mimr4k75myg5mnig564kq7xbb5f5hws2ly3gxxl6g8mk79il"))
         (modules '((guix build utils)))
         (snippet
          #~(begin
-- 
cgit v1.2.3


From 2c5be45f3a3b1a60b3f5b2e02bc7f2f71b461c3b Mon Sep 17 00:00:00 2001
From: Ian Eure <ian@retrospec.tv>
Date: Sun, 25 Feb 2024 14:20:30 -0800
Subject: gnu: Add python-mpv-jsonipc.

* gnu/packages/python-xyz.scm (python-mpv-jsonipc): New variable.

Change-Id: Iec7679213d9b9e8e5cbf01a30838e27e71704e54
Signed-off-by: Andreas Enge <andreas@enge.fr>
---
 gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index fc6e997b6c..55fd4cdad2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -147,6 +147,7 @@
 ;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
 ;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
 ;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
+;;; Copyright © 2024 Ian Eure <ian@retrospec.tv>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25936,6 +25937,23 @@ cases, generating additional test cases, testing for your code, and
 submitting it.")
     (license license:expat)))
 
+(define-public python-mpv-jsonipc
+  (package
+    (name "python-mpv-jsonipc")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-mpv-jsonipc" version))
+       (sha256
+        (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
+    (build-system pyproject-build-system)
+    (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
+    (synopsis "Python API to control MPV using JSON IPC")
+    (description "Python MPV JSONIPC implements an interface similar to
+python-mpv, but it uses the JSON IPC protocol instead of the C API.")
+    (license license:asl2.0)))
+
 (define-public python-parso
   (package
     (name "python-parso")
-- 
cgit v1.2.3


From 34d7fa58edce071292050a3553081bcd3b5e180e Mon Sep 17 00:00:00 2001
From: Ian Eure <ian@retrospec.tv>
Date: Sun, 25 Feb 2024 14:20:31 -0800
Subject: gnu: Add python-jellyfin-apiclient.

* gnu/packages/python-xyz.scm (python-jellyfin-apiclient): New variable.

Change-Id: If84546b14d380a3a10af63d4f41711125298487a
Signed-off-by: Andreas Enge <andreas@enge.fr>
---
 gnu/packages/python-xyz.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 55fd4cdad2..b9c9b9da16 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25954,6 +25954,26 @@ submitting it.")
 python-mpv, but it uses the JSON IPC protocol instead of the C API.")
     (license license:asl2.0)))
 
+(define-public python-jellyfin-apiclient
+  (package
+    (name "python-jellyfin-apiclient")
+    (version "1.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jellyfin-apiclient-python" version))
+       (sha256
+        (base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-certifi python-requests python-urllib3
+                             python-websocket-client))
+    (home-page "https://github.com/jellyfin/jellyfin-apiclient-python")
+    (synopsis "Python API client for Jellyfin")
+    (description "The Jellyfin ApiClient Python package makes it possible
+to use the Jellyfin API from Python.  It was extracted from the Jellyfin
+Kodi plugin.")
+    (license license:gpl3+)))
+
 (define-public python-parso
   (package
     (name "python-parso")
-- 
cgit v1.2.3


From 719112d2c5be8bf6474480ff0c92ca0ee7616736 Mon Sep 17 00:00:00 2001
From: Andy Tai <atai@atai.org>
Date: Tue, 5 Mar 2024 22:30:53 -0800
Subject: gnu: meld: Update to 3.22.1

* gnu/packages/patchutils.scm (meld): Update to 3.22.1

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>

Change-Id: Ifb4ec944508fd5a3f34f973026291ad973be5690
---
 gnu/packages/patchutils.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index 3d7ffdcd88..afe4af3eb3 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.0")
+    (version "3.22.1")
     (source
      (origin
        (method url-fetch)
@@ -309,7 +309,7 @@ GiB).")
                            (version-major+minor version)
                            "/meld-" version ".tar.xz"))
        (sha256
-        (base32 "03f4j27amyi28flkks8i9bhqzd6xhm6d3c6jzxc57rzniv4hgh9z"))))
+        (base32 "0dk8j27jlqhxcjrkc8pa3rl7fz7pfwvrbyrhfsx1ld6lvcrbvlvd"))))
     (build-system meson-build-system)
     (native-inputs
      (list desktop-file-utils
-- 
cgit v1.2.3


From d29e5a83e887cd2f4f459a12cbbfc40c77e55ce2 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Wed, 6 Mar 2024 22:07:25 +0100
Subject: gnu: crawl: Update to 0.31.0.

* gnu/packages/games.scm (crawl): Update to 0.31.0.

Change-Id: I53c4de85a7e58ecd5eeffe31fbbfcaaab4563292
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
---
 gnu/packages/games.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 41bfe40dff..9ff08e5e74 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -30,7 +30,7 @@
 ;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 okapi <okapi@firemail.cc>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2018 Madalin Ionel-Patrascu <madalinionel.patrascu@mdc-berlin.de>
@@ -7089,7 +7089,7 @@ fish.  The whole game is accompanied by quiet, comforting music.")
 (define-public crawl
   (package
     (name "crawl")
-    (version "0.30.1")
+    (version "0.31.0")
     (source
      (origin
        (method git-fetch)
@@ -7098,7 +7098,7 @@ fish.  The whole game is accompanied by quiet, comforting music.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rlp8z1n7ziv7aaa3fb4h4nnq24pfz1m23a99c1ra582fh0yx1pl"))
+        (base32 "0igrl0a9qd2g27q3wr86xjkpqcqs4y7bh3na1saqvpd4vc8mbayk"))
        (patches (search-patches "crawl-upgrade-saves.patch"))))
     (build-system gnu-build-system)
     (inputs
-- 
cgit v1.2.3


From 0b5cbca689b2f91949e191ca256ffc9bb48c1141 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 7 Mar 2024 23:37:20 +0100
Subject: gnu: python-lambda-4dn: Fix pip install.

* gnu/packages/web.scm (python-lambda-4dn)[arguments]: Add phase
'fix-pip-install.
[propagated-inputs]: Add python-virtualenv.

Change-Id: I3722a9dd2b017d4db5ced7ac9c65603cfa98744d
---
 gnu/packages/web.scm | 37 ++++++++++++++++++++++++++++++++++---
 1 file changed, 34 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 75edf7b152..e519552a36 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
 ;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
@@ -4893,9 +4893,40 @@ their web site.")
                 "1p5i8wsi8q5fpq63i7n7ri1w1lnh4gpn17f88vhkbh14aah5wxj1"))))
     (properties '(("upstream-name" . "python-lambda-4dn")))
     (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-pip-install
+            (lambda _
+              (substitute* "aws_lambda/aws_lambda.py"
+                ;; This package uses pip to install Python packages, wrap them
+                ;; up, and push them to AWS Lambda.  We need to reset
+                ;; GUIX_PYTHONPATH to avoid introducing package conflicts that
+                ;; would cause pip to fail.
+                (("(subprocess.call\\(\\[sys.executable.*'--no-cache-dir'\\])\\)" _ m)
+                 (string-append m ", env={\"GUIX_PYTHONPATH\":\""
+                                #$(this-package-input "python")
+                                "/lib/python"
+                                #$(version-major+minor
+                                   (package-version (this-package-input "python")))
+                                "/site-packages/\"})"))
+                ;; Zipfile uses the mtime of the temporary directory to build
+                ;; a zip file.  But the temp directory has a timestamp of 0,
+                ;; and zipfile refuses to build a zip archive dated before
+                ;; 1980.  So we reset the mtime of all temp files before they
+                ;; are added to the zip archive.
+                (("^( +)arcname = os.path.join" line indent)
+                 (string-append indent
+                                "os.utime(os.path.join(root, file), (315619200, 315619200))\n"
+                                line))))))))
+    (inputs (list python))
     (propagated-inputs
-     (list python-boto3 python-botocore python-docutils
-           python-six))
+     (list python-boto3
+           python-botocore
+           python-docutils
+           python-six
+           python-virtualenv))
     (home-page "https://github.com/4dn-dcic/python-lambda")
     (synopsis
      "Toolkit for developing and deploying Python code in AWS Lambda")
-- 
cgit v1.2.3


From ce0435f8280cdf481284302f8e8229903733b734 Mon Sep 17 00:00:00 2001
From: Andy Tai <atai@atai.org>
Date: Wed, 6 Mar 2024 21:43:48 -0800
Subject: gnu: gnuradio: Update to 3.10.8.0.

* gnu/packages/radio.scm (gnuradio): Update to 3.10.8.0.

Change-Id: Ibf1560b642dd7d54f06eba0288f5068d7077e7ec
Reviewed-by: Juliana Sims <juli@incana.org>
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
---
 gnu/packages/radio.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index caa8b61ee3..9c8225d22b 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -791,7 +791,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
 (define-public gnuradio
   (package
     (name "gnuradio")
-    (version "3.10.3.0")
+    (version "3.10.8.0")
     (source
      (origin
        (method git-fetch)
@@ -800,7 +800,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0xdhb2blzajxpi0f2ch23hh6bzdwz5q7syi3bmiqzdjlj2yjfzd4"))))
+        (base32 "11p08qrbfh5dz6l5n4c2g8c2gv1qq8aiydq91ryzfzgp49r0j6p0"))))
     (build-system cmake-build-system)
     (native-inputs
      (list doxygen
-- 
cgit v1.2.3


From d2677a1ebb3cb19de0e2c27b84298700223d0234 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Wed, 6 Mar 2024 10:23:40 +0000
Subject: gnu: Add cl-all.

* gnu/packages/lisp-xyz.scm (sbcl-cl-all, cl-all): New variables.

Change-Id: I63903a81dbf9719c3f840778b92656cdf9cc9d76
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
---
 gnu/packages/lisp-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 6ee8ef22d2..c69cadda3b 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -1221,6 +1221,43 @@ Features:
 (define-public ecl-coleslaw
   (sbcl-package->ecl-package sbcl-coleslaw))
 
+(define-public sbcl-cl-all
+  (let ((commit "4ce1ea9d9f33c0dd6212044e7952a0c854757ace")
+        (revision "0"))
+    (package
+      (name "sbcl-cl-all")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/cl-all")
+               (commit commit)))
+         (file-name (git-file-name "cl-all" version))
+         (sha256
+          (base32 "0n4sjarj373zpxn78m32rmhxnsnr8qahdslrd9vrkkwjpzar2bwp"))))
+      (build-system asdf-build-system/sbcl)
+      (outputs '("out" "bin"))
+      (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'create-asdf-configuration 'build-program
+              (lambda* (#:key outputs #:allow-other-keys)
+                (build-program
+                 (string-append (assoc-ref outputs "bin") "/bin/cl-all")
+                 outputs
+                 #:entry-program '((cl-all:toplevel arguments))
+                 #:compress? #t))))))
+      (home-page "https://github.com/Shinmera/cl-all")
+      (synopsis "Evaluate Common Lisp expressions in multiple implementations")
+      (description "@samp{cl-all} is a library and script for evaluating Common
+Lisp expressions in multiple implementations.")
+      (license license:zlib))))
+
+(define-public cl-all
+  (sbcl-package->cl-source-package sbcl-cl-all))
+
 (define-public sbcl-tripod
   (let ((commit "b019a27cd7eb895870f84b0eb6c3edc5d7b05928")
         (revision "1"))
-- 
cgit v1.2.3


From 56e607efc85e220d89ddf42b8e5ba30dd7f05f16 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Wed, 6 Mar 2024 12:06:58 +0000
Subject: gnu: abcl: Fix quoting in wrapper script.

* gnu/packages/java.scm (abcl)[arguments]<#:phases>: Fix quoting in
installed wrapper script. Also set hash-bang to bash since '[[' is used.

Change-Id: I09ee266764c455194ab6097f096378ee1a986bcb
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
---
 gnu/packages/java.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 8be5d98a77..151fc8aa89 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2024 Paul A. Patience <paul@apatience.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -13578,14 +13579,14 @@ network protocols, and core version control algorithms.")
                                      ":"
                                      share "abcl-contrib.jar")))
                      (display (string-append
-                               "#!" (which "sh") "\n"
+                               "#!" (which "bash") "\n"
                                "if [[ -z $CLASSPATH ]]; then\n"
                                "  cp=\"" classpath "\"\n"
                                "else\n"
                                "  cp=\"" classpath ":$CLASSPATH\"\n"
                                "fi\n"
                                "exec " (which "java")
-                               " -cp $cp org.armedbear.lisp.Main $@\n")))))
+                               " -cp \"$cp\" org.armedbear.lisp.Main \"$@\"\n")))))
                (chmod (string-append bin "abcl") #o755)
                #t))))))
     (home-page "https://abcl.org/")
-- 
cgit v1.2.3


From 61ef4d2adb5a30ba98fb37b4a5626f84e08df567 Mon Sep 17 00:00:00 2001
From: "Paul A. Patience" <paul@apatience.com>
Date: Thu, 7 Mar 2024 09:30:57 +0000
Subject: gnu: cl-agnostic-lizard: Update to 0.0.0-2.fe1a1d7.

* gnu/packages/lisp-xyz.scm (sbcl-agnostic-lizard): Update to
0.0.0-2.fe1a1d7.

Change-Id: I31e9dbd060d8b510c8e3c28fe791d496268e80f4
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
---
 gnu/packages/lisp-xyz.scm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index c69cadda3b..f9c01c94ec 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -17876,8 +17876,8 @@ compression/decompression using bindings to the libzstd C library.")
   (sbcl-package->ecl-package sbcl-zstd))
 
 (define-public sbcl-agnostic-lizard
-  (let ((commit "fe3a73719f05901c8819f8995a3ebae738257952")
-        (revision "1"))
+  (let ((commit "fe1a1d7d80c8b56163754e0e5b3653fd750ad298")
+        (revision "2"))
     (package
       (name "sbcl-agnostic-lizard")
       (version (git-version "0.0.0" revision commit))
@@ -17887,9 +17887,9 @@ compression/decompression using bindings to the libzstd C library.")
          (uri (git-reference
                (url "https://gitlab.common-lisp.net/mraskin/agnostic-lizard")
                (commit commit)))
-         (file-name (git-file-name name version))
+         (file-name (git-file-name "cl-agnostic-lizard" version))
          (sha256
-          (base32 "0ax78y8w4zlp5dcwyhz2nq7j3shi49qn31dkfg8lv2jlg7mkwh2d"))))
+          (base32 "0amzshh6v3mp24j0h2cinv4zvdlg4kih04md5biakwhnmcw4j4pr"))))
       (build-system asdf-build-system/sbcl)
       (synopsis "Almost correct portable code walker for Common Lisp")
       (description
-- 
cgit v1.2.3


From 867eb0cfb9cce30b49b309c71f02be4cd5f51c28 Mon Sep 17 00:00:00 2001
From: nik gaffney <nik@fo.am>
Date: Tue, 5 Mar 2024 18:14:46 +0100
Subject: gnu: cl-osc: update to 0.9-0.f647738.

* gnu/packages/lisp-xyz.scm (sbcl-osc): Update to 0.9-0.f647738.
  [native-inputs]: Add sbcl-fiveam.
  [inputs]: Remove sbcl-usocket, add sbcl-ieee-floats.
  [description]: Update it.
  [license]: Remove llgpl.

Change-Id: Iba92207d845101a1c6e57d3676e7bd177127c192
Modified-by: Guillaume Le Vaillant <glv@posteo.net>
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
---
 gnu/packages/lisp-xyz.scm | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index f9c01c94ec..435f588ab3 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -43,6 +43,7 @@
 ;;; Copyright © 2023 Raven Hallsby <karl@hallsby.com>
 ;;; Copyright © 2024 Michal Atlas <michal_atlas+git@posteo.net>
 ;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au>
+;;; Copyright © 2024 Nik Gaffney <nik@fo.am>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25731,11 +25732,11 @@ Common Lisp.")
   (sbcl-package->ecl-package sbcl-cl-collider))
 
 (define-public sbcl-osc
-  (let ((commit "9f0a9d3da310a3a0f654f48af0203816f3f371ad")
+  (let ((commit "f647738ccc22925ed740a8ca9132fda76a05baeb")
         (revision "0"))
     (package
      (name "sbcl-osc")
-     (version (git-version "0.7" revision commit))
+     (version (git-version "0.9" revision commit))
      (source
        (origin
          (method git-fetch)
@@ -25744,16 +25745,18 @@ Common Lisp.")
                (commit commit)))
          (file-name (git-file-name "cl-osc" version))
          (sha256
-          (base32 "0gh29zcl9pmy3xlmwzpf9www2z06ah6b4jk06sj2cvxbc15nblqa"))))
+          (base32 "1x4cavspaxcr604g0hwak1ncy4m9cqq03ji4v56g2h1443n7h48a"))))
      (build-system asdf-build-system/sbcl)
-     (inputs (list sbcl-usocket))
+     (native-inputs (list sbcl-fiveam))
+     (inputs (list sbcl-ieee-floats))
      (synopsis "Implementation of the Open Sound Control protocol")
-     (description "This package provides a common lisp implementation
-of the Open Sound Control Protocol aka OSC.  The code should be close
-to the ansi standard, and does not rely on any external code/ffi/etc+
-to do the basic encoding and decoding of packets.")
+     (description "This is a lisp implementation of the Open Sound Control
+protocol (or more accurately “data transport specification” or
+“encoding”).  The code should be close to ANSI standard common lisp and
+provides self contained code for encoding and decoding of OSC data, messages,
+and bundles.")
      (home-page "https://github.com/zzkt/osc/")
-     (license (list license:gpl3 license:llgpl)))))
+     (license license:gpl3+))))
 
 (define-public cl-osc
   (sbcl-package->cl-source-package sbcl-osc))
-- 
cgit v1.2.3


From bd1cc64ddd6c9739351e9312d33f891cddbd198b Mon Sep 17 00:00:00 2001
From: AwesomeAdam54321 <adam.faiz@disroot.org>
Date: Wed, 6 Mar 2024 19:25:55 +0800
Subject: teams: Add entry for Adam Faiz.

* etc/teams.scm ("Adam Faiz"): New member.

Signed-off-by: Andreas Enge <andreas@enge.fr>
Change-Id: Idb913da5e4f622b8efdbadc87d2cf3e5aec118eb
---
 etc/teams.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/etc/teams.scm b/etc/teams.scm
index e2da31a2b4..afcd187abb 100755
--- a/etc/teams.scm
+++ b/etc/teams.scm
@@ -724,6 +724,10 @@ GLib/GIO, GTK, GStreamer and Webkit."
                        "mhw@netris.org")
   mozilla)
 
+(define-member (person "Adam Faiz"
+                       "adam.faiz@disroot.org")
+  games)
+
 
 (define (find-team name)
   (or (hash-ref %teams (string->symbol name))
-- 
cgit v1.2.3


From 906f380f7cd0570e253bc7affc90077f62e98528 Mon Sep 17 00:00:00 2001
From: "Andre A. Gomes" <andremegafone@gmail.com>
Date: Mon, 4 Mar 2024 12:36:39 +0200
Subject: gnu: webkitgtk: Update to 2.42.5 [security fixes].

Fixes CVE-2024-23222, CVE-2024-23206, CVE-2024-23213.

* gnu/packages/webkit.scm (webkitgtk): Update to 2.42.5.
[source]: Add snippet to fix build on some architectures.

Co-Authored-by: Efraim Flashner <efraim@flashner.co.il>
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I6edbe89c0e15a237fab6d678bc656881d6628ffe
---
 gnu/packages/webkit.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index d359d01f98..bf24a65e83 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -127,13 +127,20 @@ engine that uses Wayland for graphics output.")
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.42.4")
+    (version "2.42.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
-               (base32 "11pdcwmdj3i9aarrf7wsfvadi6jnkaf6zf7c5i2768x2plq8na2j"))
+               (base32 "0jg7c7z572afywwrnvdj3m5agaviv0vkqmzznnzzv30byb0phhmn"))
+              (snippet
+               #~(begin
+                   (use-modules (guix build utils))
+                   ;; https://bugs.webkit.org/show_bug.cgi?id=268739
+                   ;; Fix a FTBFS on i686, powerpc64le.
+                   (substitute* "Source/JavaScriptCore/llint/LowLevelInterpreter.cpp"
+                     (("UNUSED_VARIABLE\\(t[67]\\);") ""))))
               (patches (search-patches
                         "webkitgtk-adjust-bubblewrap-paths.patch"))))
     (build-system cmake-build-system)
-- 
cgit v1.2.3


From 30fdec375490fdf56d8f5caeede102eb103193b7 Mon Sep 17 00:00:00 2001
From: Juliana Sims <juli@incana.org>
Date: Thu, 7 Mar 2024 14:43:06 -0500
Subject: gnu: Add rdate.

* gnu/packages/time.scm (rdate): New variable.

Change-Id: I12217c62fe17a93bdb5364f807804eea7fc57a23
Signed-off-by: Andreas Enge <andreas@enge.fr>
---
 gnu/packages/time.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index b0d800da94..0bb493c27f 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -40,6 +40,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages time)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -549,6 +550,30 @@ datetime type.")
      "This package contains a library for parsing ISO 8601 datetime strings.")
     (license bsd-3)))
 
+(define-public rdate
+  (let ((commit "91d84610e3695e90a884e2953908e95a856a9b74")
+        (revision "1"))
+    (package
+      (name "rdate")
+      (version (git-version "1.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/njh/rdate")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "002ryjq8gj1ml5la4v6dr3bh1zw5kxwy65rpziq8d2ccccarhv59"))))
+      (build-system gnu-build-system)
+      (native-inputs (list autoconf automake))
+      (synopsis "Get date and time based on RFC 868")
+      (description
+       "@code{rdate} connects to an RFC 868 time server over a TCP/IP network,
+printing the returned time and/or setting the system clock.")
+      (home-page "https://www.aelius.com/njh/rdate/")
+      (license gpl2+))))
+
 (define-public datefudge
   (package
     (name "datefudge")
-- 
cgit v1.2.3


From 68b715ac4db5ff09cf9597e1de1062f384243604 Mon Sep 17 00:00:00 2001
From: Zheng Junjie <zhengjunjie@iscas.ac.cn>
Date: Wed, 6 Mar 2024 23:38:23 +0800
Subject: gnu: Register sajson-build-with-gcc10.patch.

This is a follow-up to commit e34bf9b63423f5846fa3b03be0c970cb3d33ac33 .

* gnu/local.mk (dist_patch_DATA): Add sajson-build-with-gcc10.patch.

Change-Id: Iaba2a03c0aeda38899225fffbd55b884e14dd3e6
Signed-off-by: Andreas Enge <andreas@enge.fr>
---
 gnu/local.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 83937db4c8..16241ee441 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2012,6 +2012,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/rxvt-unicode-fix-cursor-position.patch	\
   %D%/packages/patches/s7-flint-3.patch                      	\
   %D%/packages/patches/sajson-for-gemmi-numbers-as-strings.patch	\
+  %D%/packages/patches/sajson-build-with-gcc10.patch		\
   %D%/packages/patches/sbc-fix-build-non-x86.patch		\
   %D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch	\
   %D%/packages/patches/sbcl-aserve-fix-rfe12668.patch	\
-- 
cgit v1.2.3


From 42b228513de8eacbdaab329110c5f0c19ae4b16b Mon Sep 17 00:00:00 2001
From: Ian Eure <ian@retrospec.tv>
Date: Sun, 25 Feb 2024 14:20:32 -0800
Subject: gnu: Add python-pystray.

* gnu/packages/python-xyz.scm (python-pystray): New variable.

Change-Id: If10777c9ec91b549b9937b4825565223786a75cb
Signed-off-by: Andreas Enge <andreas@enge.fr>
---
 gnu/packages/python-xyz.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b9c9b9da16..07ca8a9723 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -31857,6 +31857,41 @@ handling those variations.")
 Qt applications.")
     (license license:expat)))
 
+(define-public python-pystray
+  (package
+    (name "python-pystray")
+    (version "0.19.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/moses-palmer/pystray")
+             (commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      ;; The test suite requires user interaction, there are no automated
+      ;; tests.
+      #:tests? #false
+      #:phases #~(modify-phases %standard-phases
+                   (add-before 'sanity-check 'use-dummy-backend
+                     (lambda _
+                       ;; Without setting this, pystray tries to connect to
+                       ;; X11 on import.
+                       (setenv "PYSTRAY_BACKEND" "dummy"))))))
+    (native-inputs (list python-sphinx))
+    (propagated-inputs (list python-pillow python-six python-xlib))
+    (home-page "https://github.com/moses-palmer/pystray")
+    (synopsis "Create a system tray icon")
+    (description "This library allows you to create a system tray icon.
+It makes it possible to specify an icon, a title and a callback for when
+the icon is activated.  The icon and title can be changed after the icon
+has been created, and the visibility of the icon can be toggled.")
+    (license license:lgpl3+)))
+
 (define-public python-bitstring
   (package
     (name "python-bitstring")
-- 
cgit v1.2.3


From 4d15e04a6df19082430dbdaaeb4660decd5c2553 Mon Sep 17 00:00:00 2001
From: 宋文武 <iyzsong@member.fsf.org>
Date: Fri, 8 Mar 2024 20:00:25 +0800
Subject: teams: lxqt: Remove qt.scm from scope.

* etc/teams.scm (lxqt)[#:scope]: Remove "gnu/packages/qt.scm".

Change-Id: If05ea534a827eba5a2acf6526d906cea43f72442
---
 etc/teams.scm | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/etc/teams.scm b/etc/teams.scm
index afcd187abb..c8fc095227 100755
--- a/etc/teams.scm
+++ b/etc/teams.scm
@@ -549,8 +549,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
   (team 'lxqt
         #:name "LXQt team"
         #:description "LXQt desktop environment."
-        #:scope (list "gnu/packages/lxqt.scm"
-                      "gnu/packages/qt.scm")))
+        #:scope (list "gnu/packages/lxqt.scm")))
 
 (define-team audio
   (team 'audio
-- 
cgit v1.2.3


From de3f86443837b7bd6e3bad11dbaeed2550d4207c Mon Sep 17 00:00:00 2001
From: 宋文武 <iyzsong@member.fsf.org>
Date: Fri, 8 Mar 2024 20:02:00 +0800
Subject: teams: Add 宋文武 to the qt team.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* etc/teams.scm (宋文武): Add qt team.

Change-Id: Ib1b50b109ded4dbbcfd0649d3e0c1e6884585c5e
---
 etc/teams.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/etc/teams.scm b/etc/teams.scm
index c8fc095227..ac2886a6eb 100755
--- a/etc/teams.scm
+++ b/etc/teams.scm
@@ -665,7 +665,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
 
 (define-member (person "宋文武"
                        "iyzsong@envs.net")
-  games localization lxqt xfce)
+  games localization lxqt qt xfce)
 
 (define-member (person "Vagrant Cascadian"
                        "vagrant@debian.org")
-- 
cgit v1.2.3


From c7cbe7ff8dfc4965677a3233738bc0b537e9918a Mon Sep 17 00:00:00 2001
From: Ian Eure <ian@retrospec.tv>
Date: Sun, 25 Feb 2024 14:20:33 -0800
Subject: gnu: Add jellyfin-mpv-shim.

* gnu/packages/video.scm (jellyfin-mpv-shim): New variable.

Change-Id: Ie030dee36b1c2afc796f082fdebf909cbddd59da
Signed-off-by: Andreas Enge <andreas@enge.fr>
---
 gnu/packages/video.scm | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 925f5ff83b..c4660c8998 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -162,6 +162,7 @@
   #:use-module (gnu packages man)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages messaging)
   #:use-module (gnu packages music)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
@@ -2751,6 +2752,78 @@ possibility to play Youtube videos, download subtitles, remember
 the last played position, etc.")
     (license license:gpl2+)))
 
+(define-public jellyfin-mpv-shim
+  (package
+    (name "jellyfin-mpv-shim")
+    (version "2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jellyfin-mpv-shim" version))
+       (sha256
+        (base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      ;; There is no test suite, but the code is ill-behaved and tries
+      ;; to open network connections at module import time, which makes
+      ;; `python setup.py test' fail.
+      #:tests? #f
+      #:phases
+        #~(modify-phases %standard-phases
+           ;; sanity-check loads console_scripts endpoints, which launches
+           ;; the program, which makes the build hang. Disable it.
+           (delete 'sanity-check)
+           (add-after 'unpack 'disable-updates
+             (lambda _
+               (substitute* "jellyfin_mpv_shim/conf.py"
+                 (("check_updates: bool = True")
+                   "check_updates: bool = False")
+                 (("notify_updates: bool = True")
+                   "notify_updates: bool = False"))))
+           (add-after 'install 'install-desktop-file
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (apps (string-append out "/share/applications"))
+                      (desktop-base "jellyfin_mpv_shim/integration/")
+                      (package-id
+                       "com.github.iwalton3.jellyfin-mpv-shim"))
+                 (for-each (lambda (size)
+                             (install-file (format #f
+                                                   "~ajellyfin-~a.png"
+                                                   desktop-base size) apps))
+                           '(256 128 64 48 32 16))
+                 (install-file (string-append desktop-base package-id
+                                              ".appdata.xml") apps)
+                 (install-file (string-append desktop-base package-id
+                                              ".desktop") apps)))))))
+    (inputs (list `(,python "tk")
+                  python-jellyfin-apiclient
+                  python-jinja2
+                  python-mpv
+                  python-mpv-jsonipc
+                  python-pypresence
+                  python-pystray
+                  python-requests))
+    (home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
+    (synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
+    (description "Jellyfin MPV Shim is a cross-platform cast client for
+Jellyfin.  It has support for various media files without transcoding.")
+    (license (list
+              ;; jellyfin-mpv-shim
+              license:gpl3
+
+              ;; jellyfin-mpv-shim, and Anime4K, FSRCNNX, NVIDIA Image
+              ;; Scaling, AMD FidelityFX Super Resolution, AMD
+              ;; FidelityFX Contrast Adaptive Sharpening shaders.
+              license:expat
+
+              ;; Static Grain shader.
+              license:public-domain
+
+              ;; KrigBilatera, SSimDownscaler, and NNEDI3 shaders.
+              license:lgpl3+))))
+
 (define-public gallery-dl
   (package
     (name "gallery-dl")
-- 
cgit v1.2.3


From d79c88e8809d2079452fd276bf4d17eb16636ff9 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Fri, 8 Mar 2024 13:33:37 +0100
Subject: gnu: nauty: Update to 2.8.8.

* gnu/packages/maths.scm (nauty): Update to 2.8.8.

Change-Id: I741b398e7ab367a7c82ee8cc454f1790524b5db6
---
 gnu/packages/maths.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 47070ded15..ea42341c41 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -30,7 +30,7 @@
 ;;; Copyright © 2018 Eric Brown <brown@fastmail.com>
 ;;; Copyright © 2018, 2021, 2024 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018 Amin Bandali <bandali@gnu.org>
-;;; Copyright © 2019, 2021-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019, 2021-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
 ;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -8735,7 +8735,7 @@ management via the GIMPS project's Primenet server.")
 (define-public nauty
   (package
     (name "nauty")
-    (version "2.8.6")
+    (version "2.8.8")
     (source
      (origin
        (method url-fetch)
@@ -8743,7 +8743,7 @@ management via the GIMPS project's Primenet server.")
              "https://pallini.di.uniroma1.it/"
              "nauty" (string-join (string-split version #\.) "_") ".tar.gz"))
        (sha256
-        (base32 "1yp6wpz2drq0viww8px1vl4pw919nq3xgxrmrrdhycx8bhi9ikpj"))))
+        (base32 "1ki9z60qcyx3va68hp7iv6451n5d86v1xmhc850b4sqah5b2378m"))))
     (build-system gnu-build-system)
     (outputs '("out" "lib"))
     (arguments
-- 
cgit v1.2.3


From 8b0500729754e208bff983563bfe60836de9f30b Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Fri, 8 Mar 2024 14:02:20 +0200
Subject: gnu: colord-minimal: Skip tests on big-endian systems.

* gnu/packages/gnome.scm (colord-minimal)[arguments]: Disable tests when
building on a big-endian system.

Change-Id: I6d1ba215894175e75ed4a3171ad3c54cb12653cd
---
 gnu/packages/gnome.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d14651c792..a0710aa78a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5583,6 +5583,9 @@ file.")
                                 "-Dlocalstatedir=/var"
                                 "-Dman=false"
                                 "-Dsystemd=false") ;no systemd
+      ;; Apparently the tests are known to fail on big-endian systems.
+      #:tests? (not (or (%current-target-system)
+                        (not (target-little-endian?))))
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'disable-problematic-tests
-- 
cgit v1.2.3


From 09346fd05f19da3846635e1a0f1c844050d59f26 Mon Sep 17 00:00:00 2001
From: Clément Lassieur <clement@lassieur.org>
Date: Fri, 8 Mar 2024 16:20:28 +0100
Subject: gnu: torbrowser: Update to 13.0.11.

* gnu/packages/tor-browsers.scm (%torbrowser-build-date): Update to
20240305132801.
(%torbrowser-version): Update to 13.0.11.
(%torbrowser-firefox-version): Update to 115.8.0esr-13.0-1-build2.
(translation-base-browser): Update to 16211a4b8524d71525f0ea73c07771c634132b30.
(translation-tor-browser): Update to 012f643d2d6b04ebf868bf62cdb7ad5b727734f5.

Change-Id: I1d5cd4a0d7c3a01f8489db7b69b65a9451ead315
---
 gnu/packages/tor-browsers.scm | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm
index 7c59cebd44..6c8113c461 100644
--- a/gnu/packages/tor-browsers.scm
+++ b/gnu/packages/tor-browsers.scm
@@ -149,16 +149,16 @@
 
 ;; We copy the official build id, which can be found there:
 ;; https://aus1.torproject.org/torbrowser/update_3/release/.
-(define %torbrowser-build-date "20240213172118")
+(define %torbrowser-build-date "20240305132801")
 
 ;; To find the last version, look at https://www.torproject.org/download/.
-(define %torbrowser-version "13.0.10")
+(define %torbrowser-version "13.0.11")
 
 ;; 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.8.0esr-13.0-1-build1")
+(define %torbrowser-firefox-version "115.8.0esr-13.0-1-build2")
 
 ;; See tor-browser-build/projects/translation/config.
 ;; If Tor Browser and Mullvad Browser updates are not synchronized, maybe this
@@ -168,11 +168,11 @@
     (method git-fetch)
     (uri (git-reference
           (url "https://gitlab.torproject.org/tpo/translation.git")
-          (commit "cbd9b6c415ec2edb99237ef67ccd4f033a7b9c2a")))
+          (commit "16211a4b8524d71525f0ea73c07771c634132b30")))
     (file-name "translation-base-browser")
     (sha256
      (base32
-      "103dj1zzc68gxzjxwcpc4sbc6qca4zg8kkhdivzpq37ma07sp9sf"))))
+      "1452lpzbx0a049ksw84q7fj93bldfpllpp86aa4kggiv7vb3dqxk"))))
 
 ;; See tor-browser-build/projects/translation/config.
 (define translation-tor-browser
@@ -180,11 +180,11 @@
     (method git-fetch)
     (uri (git-reference
           (url "https://gitlab.torproject.org/tpo/translation.git")
-          (commit "a50fa943d7428ebe6e4e6b09f175e098a97eec63")))
+          (commit "012f643d2d6b04ebf868bf62cdb7ad5b727734f5")))
     (file-name "translation-tor-browser")
     (sha256
      (base32
-      "0kvjdkgfdl0sh413wrli9pn7ygv9idrq5yvsi5q8c4bmnnxfig7c"))))
+      "1253zrpl59bwy6s71ip3f84k46m2wwid7ixgf72pzqrkkh5lcnkn"))))
 
 (define torbrowser-assets
   ;; This is a prebuilt Torbrowser from which we take the assets we need.
@@ -200,7 +200,7 @@
          version "/tor-browser-linux-x86_64-" version ".tar.xz"))
        (sha256
         (base32
-         "1v4jbgzw640lnsyxk275w62xdyqbw0p0fwvkzfawpg4d3pqp7fpw"))))
+         "0qcl9yqndnaqkvgmmb6f5rrzvwdr323l3r4s3hd9mwv9q1x41h3b"))))
     (arguments
      (list
       #:install-plan
@@ -236,7 +236,7 @@ Browser.")
          ".tar.xz"))
        (sha256
         (base32
-         "0lbarj4i21f6jkpk2ji1cmgv625yhqyjksln97zgbbki43bx09v6"))))
+         "0c7jfliznxfdfs5xrwwgib486vgpmpcvq4s54rxxcxfk633kgz67"))))
     (build-system mozilla-build-system)
     (inputs
      (list go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird
-- 
cgit v1.2.3


From bd306916817d54bc0ccd443d43865b5f32ce7aa4 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Fri, 8 Mar 2024 23:55:09 +0100
Subject: gnu: tgl: Remove -Werror.

* gnu/packages/telegram.scm (tgl)[arguments]: Add phase to remove "-Werror".

Change-Id: I0e93b41ed6bae4b74fc12bdeddd3019a8b0e6bd5
---
 gnu/packages/telegram.scm | 78 +++++++++++++++++++++++++----------------------
 1 file changed, 41 insertions(+), 37 deletions(-)

diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 990dc0a001..4be33e6003 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
 ;;; Copyright © 2023 Lu Hui <luhux76@gmail.com>
 ;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net>
+;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -613,47 +614,50 @@ formerly a part of telegram-cli, but now being maintained separately.")
           (base32 "0cf5s7ygslb5klg1qv9qdc3hivhspmvh3zkacyyhd2yyikb5p0f9"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:tests? #f                    ; No target
+       (list
+        #:tests? #f                    ; No target
          #:imported-modules
-         ((guix build copy-build-system)
-          ,@%gnu-build-system-modules)
+         `((guix build copy-build-system)
+           ,@%gnu-build-system-modules)
          #:modules
-         (((guix build copy-build-system)
-           #:prefix copy:)
-          (guix build gnu-build-system)
-          (guix build utils))
+         '(((guix build copy-build-system)
+            #:prefix copy:)
+           (guix build gnu-build-system)
+           (guix build utils))
          #:configure-flags
-         (list
-          ;; Use gcrypt instead of openssl.
-          "--disable-openssl"
-          ;; Enable extended queries system.
-          "--enable-extf"
-          ;; Include libevent-based net and timers.
-          "--enable-libevent")
+         '(list
+           ;; Use gcrypt instead of openssl.
+           "--disable-openssl"
+           ;; Enable extended queries system.
+           "--enable-extf"
+           ;; Include libevent-based net and timers.
+           "--enable-libevent")
          #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'trigger-bootstrap
-             (lambda _
-               (delete-file "configure")
-               #t))
-           (add-after 'trigger-bootstrap 'patch-tl-parser
-             (lambda _
-               (delete-file "Makefile.tl-parser")
-               (substitute* "Makefile.in"
-                 (("include \\$\\{srcdir\\}/Makefile\\.tl-parser")
-                  "")
-                 (("\\$\\{EXE\\}/tl-parser")
-                  "tl-parser"))
-               #t))
-           (replace 'install
-             (lambda args
-               (apply (assoc-ref copy:%standard-phases 'install)
-                      #:install-plan
-                      '(("bin" "bin")
-                        ("." "include/tgl"
-                         #:include-regexp ("\\.h$"))
-                        ("libs" "lib/tgl"))
-                      args))))))
+         '(modify-phases %standard-phases
+            (add-after 'unpack 'trigger-bootstrap
+              (lambda _
+                (delete-file "configure")))
+            (add-after 'trigger-bootstrap 'patch-tl-parser
+              (lambda _
+                (delete-file "Makefile.tl-parser")
+                (substitute* "Makefile.in"
+                  (("include \\$\\{srcdir\\}/Makefile\\.tl-parser")
+                   "")
+                  (("\\$\\{EXE\\}/tl-parser")
+                   "tl-parser"))))
+            (add-after 'unpack 'remove-Werror
+              (lambda _
+                (substitute* "Makefile.in"
+                  (("-Werror") ""))))
+            (replace 'install
+              (lambda args
+                (apply (assoc-ref copy:%standard-phases 'install)
+                       #:install-plan
+                       '(("bin" "bin")
+                         ("." "include/tgl"
+                          #:include-regexp ("\\.h$"))
+                         ("libs" "lib/tgl"))
+                       args))))))
       (native-inputs
        (list autoconf automake libtool pkg-config))
       (inputs
-- 
cgit v1.2.3


From c7c99aeb3c6f974a41b9fc79bce1e6ce4d8f1904 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Fri, 8 Mar 2024 23:57:15 +0100
Subject: gnu: telegram-cli: Update compiler flags.

* gnu/packages/telegram.scm (telegram-cli)[arguments]: Add phase to remove
-Werror and add -fcommon; remove trailing #T.

Change-Id: I1c82fdd914b5f27f00e4bf87e4adc3eb559a874c
---
 gnu/packages/telegram.scm | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 4be33e6003..8d835bf243 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -687,25 +687,29 @@ formerly a part of telegram-cli, but now being maintained separately.")
           (base32 "0c1w7jgska71jjbvg1y09v52549pwa4zkdjly18yxywn7gayd2p6"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:tests? #f                    ; No target
-         #:imported-modules
-         ((guix build copy-build-system)
+       (list
+        #:tests? #f                     ; No target
+        #:imported-modules
+        `((guix build copy-build-system)
           ,@%gnu-build-system-modules)
-         #:modules
-         (((guix build copy-build-system)
+        #:modules
+        '(((guix build copy-build-system)
            #:prefix copy:)
           (guix build gnu-build-system)
           (guix build utils))
-         #:configure-flags
-         (list
+        #:configure-flags
+        '(list
           ;; Use gcrypt instead of openssl.
           "--disable-openssl")
-         #:phases
-         (modify-phases %standard-phases
+        #:phases
+        '(modify-phases %standard-phases
+           (add-after 'unpack 'remove-Werror
+             (lambda _
+               (substitute* "Makefile.in"
+                 (("-Werror") "-fcommon"))))
            (add-after 'unpack 'trigger-bootstrap
              (lambda _
-               (delete-file "configure")
-               #t))
+               (delete-file "configure")))
            (add-after 'trigger-bootstrap 'patch-tgl-and-tlparser
              (lambda* (#:key inputs #:allow-other-keys)
                (for-each delete-file
@@ -725,8 +729,7 @@ formerly a part of telegram-cli, but now being maintained separately.")
                                  "/include/tgl/auto"))
                  (("LIB=libs")
                   (string-append "LIB=" (assoc-ref inputs "tgl")
-                                 "/lib/tgl")))
-               #t))
+                                 "/lib/tgl")))))
            (replace 'install
              (lambda args
                (apply (assoc-ref copy:%standard-phases 'install)
-- 
cgit v1.2.3


From 7fd0975edcf4f69e7c5c997f9b63642cfb82b5ca Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Sun, 25 Feb 2024 01:38:41 +0800
Subject: gnu: patatt: Update to 0.6.3.

* gnu/packages/version-control.scm (patatt): Update to 0.6.3.

Change-Id: I3a1c767c0dbbddade590ccddef6e6c28eb1d4c69
---
 gnu/packages/version-control.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index ceee5878dc..946b1f5aac 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2900,13 +2900,13 @@ based on a manifest file published by servers.")
 (define-public patatt
   (package
     (name "patatt")
-    (version "0.4.9")
+    (version "0.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "patatt" version))
        (sha256
-        (base32 "0fpbkmdlnz9s1lakw11jlrzpz4mb6f4dksdiir9g1ppq0g34sy58"))))
+        (base32 "0a0a5ndlnv7dk2smn8algss6q17gbd6mc7yacz17c9cxabv2c24q"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ; No tests.
     (propagated-inputs
-- 
cgit v1.2.3


From 8f8ec56052766aa5105d672b77ad9eaca5c1ab3c Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Mon, 26 Feb 2024 13:47:13 +0800
Subject: linux-initrd: Avoid looking up builtin modules.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/system/linux-initrd.scm (flat-linux-module-directory)
[build-exp]<builtin-modules,modules-to-lookup>: New variables.
<modules>: Use ‘modules-to-lookup’ to avoid looking up builtin modules.

Change-Id: I60fdae0211bb6632508b1c63582e013e78186cd1
---
 gnu/system/linux-initrd.scm | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 58e95a1312..6236d25b9d 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -132,15 +132,27 @@ MODULES and taken from LINUX."
         #~(begin
             (use-modules (gnu build linux-modules)
                          (guix build utils)
+                         (rnrs io ports)
                          (srfi srfi-1)
                          (srfi srfi-26))
 
             (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))))))
+
+            (define modules-to-lookup
+              (lset-difference string=? '#$modules builtin-modules))
+
             (define modules
               (let* ((lookup  (cut find-module-file module-dir <>))
-                     (modules (map lookup '#$modules)))
+                     (modules (map lookup modules-to-lookup)))
                 (append modules
                         (recursive-module-dependencies
                          modules
-- 
cgit v1.2.3


From c8529c32010ae632ff9b8cc21d7971a93b000033 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Tue, 27 Feb 2024 23:06:01 +0800
Subject: gnu: font-chiron-sung-hk: Update to 1.011.

* gnu/packages/fonts.scm (font-chiron-sung-hk): Update to 1.011.

Change-Id: Ib462e1707e611a2ff8053d69d38d28324e8d1cfe
---
 gnu/packages/fonts.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 2509aa65f2..9cfc959414 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -3321,7 +3321,7 @@ dialects in Hong Kong and Taiwan.")))
 (define-public font-chiron-sung-hk
   (package
     (name "font-chiron-sung-hk")
-    (version "1.010")
+    (version "1.011")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3330,7 +3330,7 @@ dialects in Hong Kong and Taiwan.")))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "065p1gc5xjwc4kfw8bqpsbhaf1p4w0k4l0j04vjsjhcl4k9vyvfz"))))
+                "1916bb834y4r4312g14zid7w3pbx1i70jcgkkfbf4z20grrj891m"))))
     (build-system font-build-system)
     (home-page "https://chiron-fonts.github.io/")
     (synopsis "Traditional Chinese Song typeface")
-- 
cgit v1.2.3


From e4265aa97f7ba14ccba52cd163a64de3bd8fa825 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Tue, 27 Feb 2024 23:11:25 +0800
Subject: gnu: font-chiron-hei-hk: Update to 2.509.

* gnu/packages/fonts.scm (font-chiron-hei-hk): Update to 2.509.

Change-Id: I29f2ad3409eaa9ecbdf964397d03110d83a91f75
---
 gnu/packages/fonts.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 9cfc959414..e1e4c50388 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -3345,7 +3345,7 @@ prevalent typefaces in Traditional Chinese regions.")
   (package
     (inherit font-chiron-sung-hk)
     (name "font-chiron-hei-hk")
-    (version "2.508")
+    (version "2.509")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3354,7 +3354,7 @@ prevalent typefaces in Traditional Chinese regions.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0drvkqk629z63k62v3ds559phl82dmkyvpx2r8mi99nnsz22a8ps"))))
+                "0bwx909sijpnc474355hlfjwgxin0m9yxd5k9qwmgxkp2rzqiwnk"))))
     (synopsis "Traditional Chinese Gothic typeface")
     (description
      "Chiron Hei HK is a Traditional Chinese Gothic typeface based on the Hong
-- 
cgit v1.2.3


From a900fa3c6c81fb9319d00966b89fa5c52fdd6ec1 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Tue, 27 Feb 2024 23:12:24 +0800
Subject: gnu: font-chiron-sung-hk: Split outputs.

* gnu/packages/fonts.scm (font-chiron-sung-hk)[arguments]: Split outputs.
[outputs]: Add "otf" and "ttf".

Change-Id: Id96bba47e8f9ae9404a528bcceab3e110a05db4e
---
 gnu/packages/fonts.scm | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index e1e4c50388..7700eaa4fa 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -3332,6 +3332,20 @@ dialects in Hong Kong and Taiwan.")))
                (base32
                 "1916bb834y4r4312g14zid7w3pbx1i70jcgkkfbf4z20grrj891m"))))
     (build-system font-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'install
+                 (lambda _
+                   (let ((install (assoc-ref %standard-phases 'install)))
+                     (with-directory-excursion "VAR"
+                       (for-each delete-file (find-files "." "\\.ttf$"))
+                       (install #:outputs `(("out" . ,#$output))))
+                     (with-directory-excursion "OTF"
+                       (install #:outputs `(("out" . ,#$output:otf))))
+                     (with-directory-excursion "TTF"
+                       (install #:outputs `(("out" . ,#$output:ttf))))))))))
+    (outputs '("out" "otf" "ttf"))
     (home-page "https://chiron-fonts.github.io/")
     (synopsis "Traditional Chinese Song typeface")
     (description
-- 
cgit v1.2.3


From 0e9c2d2eba5e573e43382611474784c8bf5a4309 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Tue, 27 Feb 2024 23:48:25 +0800
Subject: gnu: sway: Update to 1.9.

* gnu/packages/wm.scm (sway): Update to 1.9.
[arguments]<#:phases>: Don't hardcode path to scdoc.
[inputs]: Replace wlroots-0.16 with wlroots.

Change-Id: I2108e57180a91dc2873d5398dc5f6981002e1c3d
---
 gnu/packages/wm.scm | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 8ed3ed1107..9c0f5e38bd 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1762,7 +1762,7 @@ modules for building a Wayland compositor.")
 (define-public sway
   (package
     (name "sway")
-    (version "1.8.1")
+    (version "1.9")
     (source
      (origin
        (method git-fetch)
@@ -1771,7 +1771,7 @@ modules for building a Wayland compositor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1y7brfrsjnm9gksijgnr6zxqiqvn06mdiwsk5j87ggmxazxd66av"))))
+        (base32 "1n36vgpi4bg2gkiq4fam4khly1z9bjinmjclzq5vfx0z8h7a5bzz"))))
     (build-system meson-build-system)
     (arguments
      `(;; elogind is propagated by wlroots -> libseat
@@ -1786,11 +1786,6 @@ modules for building a Wayland compositor.")
                (("strdup..swaybg..")
                 (string-append "strdup(\"" (assoc-ref inputs "swaybg")
                                "/bin/swaybg\")")))
-             ;; Hardcode path to scdoc.
-             (substitute* "meson.build"
-               (("scdoc.get_pkgconfig_variable..scdoc..")
-                (string-append "'" (assoc-ref inputs "scdoc")
-                               "/bin/scdoc'")))
              #t)))))
     (inputs (list basu
                   cairo
@@ -1803,7 +1798,7 @@ modules for building a Wayland compositor.")
                   pcre2
                   swaybg
                   wayland
-                  wlroots-0.16))
+                  wlroots))
     (native-inputs
      (cons* linux-pam mesa pkg-config scdoc wayland-protocols
             (if (%current-target-system)
-- 
cgit v1.2.3


From 5759e8be03486f780104a400e020992acd2982d1 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Tue, 27 Feb 2024 23:51:22 +0800
Subject: gnu: sway: Update package style.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/wm.scm (sway)[arguments]: Use gexps.
<#:phases>: Adjust to use ‘search-input-file’.
Remove trailing #t.

Change-Id: I5bd91faf2c79566486437b37cf72964d2c6a85fc
---
 gnu/packages/wm.scm | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 9c0f5e38bd..edbb3096b8 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1774,19 +1774,20 @@ modules for building a Wayland compositor.")
         (base32 "1n36vgpi4bg2gkiq4fam4khly1z9bjinmjclzq5vfx0z8h7a5bzz"))))
     (build-system meson-build-system)
     (arguments
-     `(;; elogind is propagated by wlroots -> libseat
-       ;; and would otherwise shadow basu.
-       #:configure-flags '("-Dsd-bus-provider=basu")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'hardcode-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Hardcode path to swaybg.
-             (substitute* "sway/config.c"
-               (("strdup..swaybg..")
-                (string-append "strdup(\"" (assoc-ref inputs "swaybg")
-                               "/bin/swaybg\")")))
-             #t)))))
+     (list
+      ;; elogind is propagated by wlroots -> libseat
+      ;; and would otherwise shadow basu.
+      #:configure-flags
+      #~'("-Dsd-bus-provider=basu")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'configure 'hardcode-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; Hardcode path to swaybg.
+              (substitute* "sway/config.c"
+                (("strdup..swaybg..")
+                 (format #f "strdup(\"~a\")"
+                         (search-input-file inputs "bin/swaybg")))))))))
     (inputs (list basu
                   cairo
                   gdk-pixbuf
-- 
cgit v1.2.3


From 334f9f6b4fa14db9ad17035f58bf3cc3267efbd0 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Wed, 28 Feb 2024 00:22:39 +0800
Subject: gnu: font-lxgw-wenkai: Update to 1.320.

* gnu/packages/fonts.scm (font-lxgw-wenkai): Update to 1.320.

Change-Id: I2c533eec088a5b62a4a54138c179a5a9f89d79a6
---
 gnu/packages/fonts.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 7700eaa4fa..a60e84fe19 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -3280,7 +3280,7 @@ and readability.  This package bundles those icons into a font.")
 (define-public font-lxgw-wenkai
   (package
     (name "font-lxgw-wenkai")
-    (version "1.315")
+    (version "1.320")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3288,7 +3288,7 @@ and readability.  This package bundles those icons into a font.")
                     version "/lxgw-wenkai-v" version ".tar.gz"))
               (sha256
                (base32
-                "0isb7rbg8yb6hv8xk1ngngkgzpyb3papkl19jczwrwm373m8bn3f"))))
+                "1wvab2g2hcy8wqi23zva17rymqfrrfwd7yh0wbhfb67mz18wbjpm"))))
     (build-system font-build-system)
     (home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/")
     (synopsis "Simplified Chinese Imitation Song typeface")
-- 
cgit v1.2.3


From 67c45d836756727cde23bdc752d7ead7fbb67228 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Wed, 28 Feb 2024 00:23:02 +0800
Subject: gnu: font-lxgw-wenkai-tc: Update to 1.320.

* gnu/packages/fonts.scm (font-lxgw-wenkai-tc): Update to 1.320.

Change-Id: Id7881c2fd486341a48cc7f1cb9708988f672ab5a
---
 gnu/packages/fonts.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index a60e84fe19..368d4c331d 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -3302,7 +3302,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
   (package
     (inherit font-lxgw-wenkai)
     (name "font-lxgw-wenkai-tc")
-    (version "1.011")
+    (version "1.320")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3310,7 +3310,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
                     version "/lxgw-wenkai-tc-v" version ".tar.gz"))
               (sha256
                (base32
-                "0x83a7zg1w82bpilk84ajlisccf90kl01gz89fipgqji9nii71bv"))))
+                "0lzfci4zpia62vbnyv22ajlrd8gvwj1ff7iaa0mxs66dbb0p6pq8"))))
     (home-page "https://github.com/lxgw/LxgwWenKaitc")
     (synopsis "Traditional Chinese Imitation Song typeface")
     (description
-- 
cgit v1.2.3


From c5cb09e42f770744b3e1240c19c958fad018a479 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Sun, 3 Mar 2024 21:15:16 +0800
Subject: gnu: qbittorrent-enhanced: Update to 4.6.3.10.

* gnu/packages/bittorrent.scm (qbittorrent-enhanced): Update to 4.6.3.10.

Change-Id: I415d228dbbff2f4d5abf9bda2ca84ac81c0d0602
---
 gnu/packages/bittorrent.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 264e9e9724..6146468919 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -583,7 +583,7 @@ features.")
   (package
     (inherit qbittorrent)
     (name "qbittorrent-enhanced")
-    (version "4.6.1.10")
+    (version "4.6.3.10")
     (source
      (origin
        (method git-fetch)
@@ -593,7 +593,7 @@ features.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "101a9n2vk9d6b4vc3schkmpc56l0i0i60fcjh8hwadc6amc2ymvy"))))
+         "09b8237h0gn6y3s0a7qg247hsdra5f5kg6xhirnhhfvjd8k6qviv"))))
     (home-page "https://github.com/c0re100/qBittorrent-Enhanced-Edition")
     (description
      "qBittorrent Enhanced is a bittorrent client based on qBittorrent with
-- 
cgit v1.2.3


From 55c5f54f03ecad8d4b056a5d2421c5617dec98d1 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Sun, 3 Mar 2024 21:15:39 +0800
Subject: gnu: qbittorrent-no-x: Actually remove qtsvg from inputs.

* gnu/packages/bittorrent.scm (qbittorrent-no-x)[inputs]: Correct "qtsvg-5" to
"qtsvg".

Change-Id: I77bae8ccf3de7a1be51a74228e135176dc72425d
---
 gnu/packages/bittorrent.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 6146468919..d8abe84462 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -574,7 +574,7 @@ features.")
           #~(cons "-DGUI=OFF" #$configure-flags))))
       (inputs
        (modify-inputs (package-inputs base)
-         (delete "qtsvg-5"))))))
+         (delete "qtsvg"))))))
 
 (define-public qbittorrent-nox
   (deprecated-package "qbittorrent-nox" qbittorrent-no-x))
-- 
cgit v1.2.3


From 8d6d5b2a947b1ca2ff42709ee5faefec53d6cb10 Mon Sep 17 00:00:00 2001
From: Hilton Chain <hako@ultrarare.space>
Date: Sun, 3 Mar 2024 21:17:02 +0800
Subject: gnu: qbittorrent-enhanced-nox: Rename to qbittorrent-enhanced-no-x.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/bittorrent.scm (qbittorrent-enhanced-no-x): New variable, renamed
from…
(qbittorrent-enhanced-nox): …this package, now redefined as a
DEPRECATED-PACKAGE.

Change-Id: I4d1f9da937df6d6145ffbf9e9f2dd544365b9872
---
 gnu/packages/bittorrent.scm | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index d8abe84462..d53f717f0d 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -607,12 +607,15 @@ the following features:
 @item Peer whitelist/blacklist
 @end itemize")))
 
-(define-public qbittorrent-enhanced-nox
+(define-public qbittorrent-enhanced-no-x
   (package
     (inherit qbittorrent-enhanced)
-    (name "qbittorrent-enhanced-nox")
-    (arguments (package-arguments qbittorrent-nox))
-    (inputs (package-inputs qbittorrent-nox))))
+    (name "qbittorrent-enhanced-no-x")
+    (arguments (package-arguments qbittorrent-no-x))
+    (inputs (package-inputs qbittorrent-no-x))))
+
+(define-public qbittorrent-enhanced-nox
+  (deprecated-package "qbittorrent-enhanced-nox" qbittorrent-enhanced-no-x))
 
 (define-public deluge
   (package
-- 
cgit v1.2.3


From 52f9db6503b398bd2c9d73446c51ca99ee76fafe Mon Sep 17 00:00:00 2001
From: dan <i@dan.games>
Date: Mon, 26 Feb 2024 02:27:48 +0800
Subject: gnu: Add sioyek.

* gnu/packages/patches/sioyek-fix-build.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/pdf.scm (sioyek): New variable.

Change-Id: Id2708745bd7ef672b620b8e9c907126bdc5a1f55
Signed-off-by: Hilton Chain <hako@ultrarare.space>
---
 gnu/local.mk                                |  1 +
 gnu/packages/patches/sioyek-fix-build.patch | 82 +++++++++++++++++++++++++++++
 gnu/packages/pdf.scm                        | 60 +++++++++++++++++++++
 3 files changed, 143 insertions(+)
 create mode 100644 gnu/packages/patches/sioyek-fix-build.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 16241ee441..3becc8cb13 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1826,6 +1826,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/sdl-pango-header-guard.patch		\
   %D%/packages/patches/sdl-pango-matrix_declarations.patch	\
   %D%/packages/patches/sdl-pango-sans-serif.patch		\
+  %D%/packages/patches/sioyek-fix-build.patch			\
   %D%/packages/patches/smalltalk-multiplication-overflow.patch	\
   %D%/packages/patches/sqlite-hurd.patch			\
   %D%/packages/patches/strace-readlink-tests.patch		\
diff --git a/gnu/packages/patches/sioyek-fix-build.patch b/gnu/packages/patches/sioyek-fix-build.patch
new file mode 100644
index 0000000000..521b361f2a
--- /dev/null
+++ b/gnu/packages/patches/sioyek-fix-build.patch
@@ -0,0 +1,82 @@
+Patch fetched from https://git.alpinelinux.org/aports/tree/community/sioyek/mupdf-0.23.0.patch
+
+From 86e913eccf19b97a16f25d9b6cdf0f50232f1226 Mon Sep 17 00:00:00 2001
+From: ptrcnull <git@ptrcnull.me>
+Date: Fri, 25 Aug 2023 22:44:26 +0200
+Subject: community/sioyek: fix build with mupdf-0.23.0
+
+---
+
+diff --git a/pdf_viewer/document_view.cpp b/pdf_viewer/document_view.cpp
+index f48d05e..0bc3855 100644
+--- a/pdf_viewer/document_view.cpp
++++ b/pdf_viewer/document_view.cpp
+@@ -1121,7 +1121,7 @@ std::vector<DocumentPos> DocumentView::find_line_definitions() {
+
+ 			std::optional<PdfLink> pdf_link = current_document->get_link_in_page_rect(get_center_page_number(), line_rects[line_index]);
+ 			if (pdf_link.has_value()) {
+-				auto parsed_uri = parse_uri(mupdf_context, pdf_link.value().uri);
++				auto parsed_uri = parse_uri(mupdf_context, current_document->doc, pdf_link.value().uri);
+ 				result.push_back({ parsed_uri.page - 1, parsed_uri.x, parsed_uri.y });
+ 				return result;
+ 			}
+diff --git a/pdf_viewer/main_widget.cpp b/pdf_viewer/main_widget.cpp
+index 19b568b..335a93f 100644
+--- a/pdf_viewer/main_widget.cpp
++++ b/pdf_viewer/main_widget.cpp
+@@ -170,7 +170,7 @@ void MainWidget::set_overview_position(int page, float offset) {
+
+ void MainWidget::set_overview_link(PdfLink link) {
+
+-    auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri);
++    auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri);
+     if (page >= 1) {
+         set_overview_position(page - 1, offset_y);
+     }
+@@ -3178,7 +3178,7 @@ void MainWidget::handle_pending_text_command(std::wstring text) {
+ 					open_web_url(utf8_decode(selected_link->uri));
+                 }
+                 else{
+-					auto [page, offset_x, offset_y] = parse_uri(mupdf_context, selected_link->uri);
++					auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, selected_link->uri);
+ 					long_jump_to_destination(page-1, offset_y);
+                 }
+             }
+@@ -3863,7 +3863,7 @@ void MainWidget::handle_link_click(const PdfLink& link) {
+ 		return;
+ 	}
+
+-	auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri);
++	auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri);
+
+ 	// convert one indexed page to zero indexed page
+ 	page--;
+diff --git a/pdf_viewer/utils.cpp b/pdf_viewer/utils.cpp
+index 22d4265..3150e66 100644
+--- a/pdf_viewer/utils.cpp
++++ b/pdf_viewer/utils.cpp
+@@ -116,8 +116,9 @@ bool rects_intersect(fz_rect rect1, fz_rect rect2) {
+ 	return range_intersects(rect1.x0, rect1.x1, rect2.x0, rect2.x1) && range_intersects(rect1.y0, rect1.y1, rect2.y0, rect2.y1);
+ }
+
+-ParsedUri parse_uri(fz_context* mupdf_context, std::string uri) {
+-	fz_link_dest dest = pdf_parse_link_uri(mupdf_context, uri.c_str());
++ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri) {
++	pdf_document* doc = pdf_document_from_fz_document(mupdf_context, fz_doc);
++	fz_link_dest dest = pdf_resolve_link_dest(mupdf_context, doc, uri.c_str());
+ 	return { dest.loc.page + 1, dest.x, dest.y };
+ }
+
+diff --git a/pdf_viewer/utils.h b/pdf_viewer/utils.h
+index 2a12211..643b030 100644
+--- a/pdf_viewer/utils.h
++++ b/pdf_viewer/utils.h
+@@ -55,7 +55,7 @@ void get_flat_toc(const std::vector<TocNode*>& roots, std::vector<std::wstring>&
+ int mod(int a, int b);
+ bool range_intersects(float range1_start, float range1_end, float range2_start, float range2_end);
+ bool rects_intersect(fz_rect rect1, fz_rect rect2);
+-ParsedUri parse_uri(fz_context* mupdf_context, std::string uri);
++ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri);
+ char get_symbol(int key, bool is_shift_pressed, const std::vector<char>&special_symbols);
+
+ template<typename T>
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 0d796f65bb..f32403b954 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -25,6 +25,7 @@
 ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2023 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2024 dan <i@dan.games>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1710,3 +1711,62 @@ python library.
 
 Keywords: html2pdf, htmltopdf")
     (license license:bsd-3)))
+
+(define-public sioyek
+  (package
+    (name "sioyek")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ahrm/sioyek")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1vmmp2s032ygh1byz77pg9aljmp8hx745fr7mmz11831f96mlmhq"))
+       (modules '((guix build utils)))
+       ;; libmupdf-third.so no longer available since mupdf 1.18.0.
+       (snippet '(substitute* "pdf_viewer_build_config.pro"
+                   (("-lmupdf-third") "")))
+       ;; XXX: Fix build with mupdf-0.23.0+.
+       ;; See also: https://github.com/ahrm/sioyek/issues/804
+       (patches (search-patches "sioyek-fix-build.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list (string-append "PREFIX=" #$output))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-paths
+            (lambda _
+              (substitute* "pdf_viewer/main.cpp"
+                (("/usr/share")
+                 (string-append #$output "/share"))
+                (("/etc")
+                 (string-append #$output "/etc")))))
+          (replace 'configure
+            (lambda* (#:key configure-flags #:allow-other-keys)
+              (apply invoke "qmake" configure-flags)))
+          (add-after 'install 'instal-man-page
+            (lambda _
+              (install-file "resources/sioyek.1"
+                            (string-append #$output "/share/man/man1")))))))
+    (inputs
+     (list freetype
+           gumbo-parser
+           harfbuzz
+           jbig2dec
+           libjpeg-turbo
+           mujs
+           mupdf
+           openjpeg
+           qt3d-5
+           qtbase-5
+           zlib))
+    (home-page "https://sioyek.info/")
+    (synopsis "PDF viewer with a focus on technical books and research papers")
+    (description
+     "Sioyek is a PDF viewer with a focus on textbooks and research papers.")
+    (license license:gpl3+)))
-- 
cgit v1.2.3


From d13cfbc3f9f9461f9a72b9583eedddd342bbf4ea Mon Sep 17 00:00:00 2001
From: Andy Tai <atai@atai.org>
Date: Thu, 7 Mar 2024 22:31:45 -0800
Subject: gnu: mc: Update to 4.8.31.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/mc.scm (mc): Update to 4.8.31.

Change-Id: Ib610e76b2ef5e6c1a1f49f34073015c0b260ea77
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
---
 gnu/packages/mc.scm | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm
index 994f89f524..8cf760ac53 100644
--- a/gnu/packages/mc.scm
+++ b/gnu/packages/mc.scm
@@ -40,14 +40,14 @@
 (define-public mc
   (package
     (name "mc")
-    (version "4.8.30")
+    (version "4.8.31")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://ftp.osuosl.org/pub/midnightcommander/mc-"
                           version ".tar.xz"))
       (sha256
-       (base32 "1py7jm620lsas7rcv5j69608gdshmp25d9gx958hr5sb2jr3rg2y"))))
+       (base32 "06mbnhxd2k29jah4wp1ciicw1gb51a5d3af43zivhxbncvw1q694"))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -68,7 +68,6 @@
                   (list "lib/utilunix.c"
                         "src/filemanager/ext.c"
                         "src/usermenu.c"
-                        "src/vfs/fish/fish.c"
                         ;; This file hard-codes other shells, but they're never
                         ;; tried after mc's first choice (bash) is found.
                         "lib/shell.c")
-- 
cgit v1.2.3


From 3db5702e0b6dd6bf8966a26745efcd62a07df84a Mon Sep 17 00:00:00 2001
From: Skylar Chan <schan12@umd.edu>
Date: Tue, 5 Mar 2024 11:25:26 -0500
Subject: gnu: cmark: Update to 0.31.0.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/markup.scm (cmark): Update to 0.31.0.

Change-Id: Ie9890dec34400e2c4b11f20e2dc67aa5dc111574
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
---
 gnu/packages/markup.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index 4a9a382104..375367d395 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -333,7 +333,7 @@ convert HTML to Markdown.")
 (define-public cmark
   (package
     (name "cmark")
-    (version "0.30.3")
+    (version "0.31.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -342,7 +342,7 @@ convert HTML to Markdown.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "07d30s5v893nb1m7qbam5c3x9b3d84m80kzlj7fmkwhgjrlz7d7z"))))
+                "0llj68l9rxdhral0zyv0bz6yzqsxgq8d3730082sl3kx78lsq5qq"))))
     (build-system cmake-build-system)
     (arguments
      '(#:test-target "test"))
-- 
cgit v1.2.3


From 06ff53d94c519726b319da3147f5742d7496c243 Mon Sep 17 00:00:00 2001
From: unwox <me@unwox.com>
Date: Sat, 2 Mar 2024 16:47:26 +0600
Subject: gnu: fennel: Update to 1.4.2.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/lua.scm (fennel): Update to 1.4.2.

Change-Id: I40957cd55dc9278158551952bdfbabc77ecd5885
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
---
 gnu/packages/lua.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 1cde6bd66c..c35bbe8bcd 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -1233,7 +1233,7 @@ enabled.")
 (define-public fennel
   (package
     (name "fennel")
-    (version "1.3.1")
+    (version "1.4.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1242,7 +1242,7 @@ enabled.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "12zm3rd0vvkqazv1cv5bhwk6igsj18im2qakqw7cf4a20rc9wpmx"))))
+                "1h1i87jx889n1wczw5jvqmkx0jmlrq83pjspyd9v27j360d9fcik"))))
     (build-system gnu-build-system)
     (arguments
      (list #:make-flags #~(list (string-append "PREFIX="
-- 
cgit v1.2.3


From 584e24084299caf6392ebab3f98f0b59b65b7bd1 Mon Sep 17 00:00:00 2001
From: Zheng Junjie <zhengjunjie@iscas.ac.cn>
Date: Sat, 2 Mar 2024 18:07:27 +0800
Subject: gnu: catch2-3: Update to 3.5.3.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/check.scm (catch2-3): Update to 3.5.3.
[arguments]: Remove -DCMAKE_CXX_FLAGS from configure-flags.

Change-Id: Ib9e88dd6071d14ef70177fa83964a5d92b916ac0
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
---
 gnu/packages/check.scm | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 2dcf33a460..49a026bd20 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -49,6 +49,7 @@
 ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
 ;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
 ;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -609,7 +610,7 @@ pattern.")
 (define-public catch2-3
   (package
     (name "catch2")
-    (version "3.5.1")
+    (version "3.5.3")
     (home-page "https://github.com/catchorg/Catch2")
     (source (origin
               (method git-fetch)
@@ -619,19 +620,12 @@ pattern.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0p7rk01n4qfnnm1bgakllyqi83n1kbpz11gh65z1vspfz58hs9iv"))))
+                "11yla93vm2896fzhm3fz8lk3y3iz5iy7vd6wa7wnwvhsfd2dbfq3"))))
     (build-system cmake-build-system)
     (arguments
      (list
       #:configure-flags
-      #~(list #$@(match (%current-system)
-                   ((or "x86_64-linux" "i686-linux")
-                    ;; Tests fail on i686-linux without SSE2 for floats, see
-                    ;; upstream report
-                    ;; <https://github.com/catchorg/Catch2/issues/2796>.
-                    '("-DCMAKE_CXX_FLAGS=-msse2 -mfpmath=sse"))
-                   (_ '()))
-              "-DCATCH_DEVELOPMENT_BUILD=ON"
+      #~(list "-DCATCH_DEVELOPMENT_BUILD=ON"
               "-DCATCH_ENABLE_WERROR=OFF"
               "-DBUILD_SHARED_LIBS=ON")))
     (inputs (list python-wrapper))
-- 
cgit v1.2.3


From 757dc108b81115a8a773686982965ed1d9aa2408 Mon Sep 17 00:00:00 2001
From: Felix Gruber <felgru@posteo.net>
Date: Sun, 25 Feb 2024 17:03:54 +0000
Subject: gnu: oil: Update to 0.20.0.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/shells.scm (oil): Update to 0.20.0.

Change-Id: I052cd9a41feb81e0883f70554f1b99d240a1f920
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
---
 gnu/packages/shells.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 492f4693d8..ae4e73956e 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -861,7 +861,7 @@ Shell (pdksh).")
 (define-public oil
   (package
     (name "oil")
-    (version "0.17.0")
+    (version "0.20.0")
     (source
      ;; oil's sources contain a modified version of CPython 2.7.13.
      ;; According to https://www.oilshell.org/blog/2017/05/05.html
@@ -874,7 +874,7 @@ Shell (pdksh).")
        (uri (string-append "https://www.oilshell.org/download/oil-"
                            version ".tar.gz"))
        (sha256
-        (base32 "01b67dq56iam44d7c81ba9w62jjnjx2z7wm928rkc1ff6bacm37r"))))
+        (base32 "1jpxhixwq29ik01jx372g9acib59wmww8lrdlcypq7jpg5b0b7pi"))))
     (build-system gnu-build-system)
     (arguments
      (list #:strip-binaries? #f         ; strip breaks the binary
-- 
cgit v1.2.3


From f16a1125004fef707acb1947f1e08481096c5c15 Mon Sep 17 00:00:00 2001
From: Andy Tai <atai@atai.org>
Date: Mon, 4 Mar 2024 21:41:59 -0800
Subject: gnu: xnedit: Update to 1.5.3.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/text-editors.scm (xnedit): Update to 1.5.3.

Change-Id: I65242f061e8ecbb8d23e7a3e9ad5c50b2fe98842
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
---
 gnu/packages/text-editors.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 977a101c97..d17b370b6d 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -1548,14 +1548,14 @@ highlighting for dozens of languages.  Jed is very small and fast.")
 (define-public xnedit
   (package
     (name "xnedit")
-    (version "1.5.2")
+    (version "1.5.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/xnedit/" name "-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "09424qj03p7v7ih2gi3jnpm5iilr24ssab8rkijcjh6n9qn7izl0"))))
+                "10pw0yylhfmpcmhs74i3ikgsd8jq4dsy64zp9v14wj5s4qrac4c5"))))
 
     (build-system gnu-build-system)
     (arguments
-- 
cgit v1.2.3


From fd3e618cf0e351e6a1f2cf7e4585d7ff9490af7b Mon Sep 17 00:00:00 2001
From: Alex Devaure <ajadevaure@gmail.com>
Date: Sat, 24 Feb 2024 10:36:05 +0000
Subject: gnu: darktable: Update to 4.6.1.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/photo.scm (darktable): Update to 4.6.1.

Change-Id: I2642b78036205c97c8183349fc809fcfec78f866
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
---
 gnu/packages/photo.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 48f1c38695..1018d2e801 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -530,7 +530,7 @@ photographic equipment.")
 (define-public darktable
   (package
     (name "darktable")
-    (version "4.6.0")
+    (version "4.6.1")
     (source
      (origin
        (method url-fetch)
@@ -538,7 +538,7 @@ photographic equipment.")
              "https://github.com/darktable-org/darktable/releases/"
              "download/release-" version "/darktable-" version ".tar.xz"))
        (sha256
-        (base32 "1hmcib37b5v8893d69i2qgvmbkmils8a0gn5dpg2462d43ijfjvj"))))
+        (base32 "1zbsrx5cfyifzbi657izw8rfkgd9pm4hx8afv8y2sgi9f2hc1v8n"))))
     (build-system cmake-build-system)
     (arguments
      (list
-- 
cgit v1.2.3


From e51c26ef2daf7742eb1617ecb2c7f1594b73fb0c Mon Sep 17 00:00:00 2001
From: Zheng Junjie <zhengjunjie@iscas.ac.cn>
Date: Fri, 8 Mar 2024 10:49:46 +0800
Subject: gnu: plasma-desktop: Fix build.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/kde-plasma.scm (plasma-desktop)[inputs]: Replace
qtwayland with qtwayland-5.

Change-Id: I88b4a81b8e93ed94877344f86f8b7787ed5937ed
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
---
 gnu/packages/kde-plasma.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 331ab28cd1..cf45fa59f7 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2020, 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2020, 2023, 2024 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;;
@@ -1787,7 +1787,7 @@ the KDE Plasma 5 desktop.")
                   qtdeclarative-5
                   qtquickcontrols-5
                   qtquickcontrols2-5
-                  qtwayland
+                  qtwayland-5
                   qtx11extras
                   wayland
                   wayland-protocols
-- 
cgit v1.2.3


From a10cce5246e333be52acd7d334f59228895db89a Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@posteo.net>
Date: Mon, 26 Feb 2024 10:28:16 -0600
Subject: gnu: netsurf: Update to 3.11.

* gnu/packages/web.scm (netsurf): Update to 3.11.
[arguments]: Adjust to new source.  Netsurf's JS engine cannot handle
DuckDuckGo's redirect urls, so replace websearch form with post to DuckDuckGo
Lite.
(netsurf-buildsystem): Update to 1.10
(libparserutils): Update to 0.2.5.
(hubbub): Update to 0.3.8.
[source]: Remove hubbub-maybe-uninitialized.patch.
(libcss): Update to 0.9.2.
[source]: Remove snippet. Add patch for tests.
(libdom): Update to 0.4.2.
(libsvgtiny): Update to 0.1.8.
(libnsbmp): Update to 0.1.7.
(libnsgif): Update to 1.0.0.
(libnsutils): Update to 0.1.1.
(libnspsl): Update to 0.1.7.
(nsgenbind): Update to 0.9.
* gnu/packages/patches/netsurf-message-timestamp.patch: Adjust to latest
source.
* gnu/packages/patches/hubbub-maybe-uninitialized.patch: Delete patch.
* gnu/packages/patches/libcss-check-format.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Adjust.

Change-Id: I5834b0418270309aa30b6cd0a5a307e20c00fd4a
---
 gnu/local.mk                                       |  2 +-
 .../patches/hubbub-maybe-uninitialized.patch       | 40 ----------
 gnu/packages/patches/libcss-check-format.patch     | 13 ++++
 .../patches/netsurf-message-timestamp.patch        |  4 +-
 gnu/packages/web.scm                               | 88 +++++++++++-----------
 5 files changed, 62 insertions(+), 85 deletions(-)
 delete mode 100644 gnu/packages/patches/hubbub-maybe-uninitialized.patch
 create mode 100644 gnu/packages/patches/libcss-check-format.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 3becc8cb13..e5d1700077 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1442,7 +1442,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/http-parser-CVE-2020-8287.patch		\
   %D%/packages/patches/htslib-for-stringtie.patch		\
   %D%/packages/patches/hubbub-sort-entities.patch		\
-  %D%/packages/patches/hubbub-maybe-uninitialized.patch         \
   %D%/packages/patches/hueplusplus-mbedtls.patch		\
   %D%/packages/patches/hurd-add-without-rump-configure-option.patch \
   %D%/packages/patches/hurd-fix-rumpdisk-build.patch		\
@@ -1512,6 +1511,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch		\
   %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch	\
   %D%/packages/patches/julia-Use-MPFR-4.2.patch	                \
+  %D%/packages/patches/libcss-check-format.patch		\
   %D%/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch	\
   %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch	\
   %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch	\
diff --git a/gnu/packages/patches/hubbub-maybe-uninitialized.patch b/gnu/packages/patches/hubbub-maybe-uninitialized.patch
deleted file mode 100644
index 6f289a770e..0000000000
--- a/gnu/packages/patches/hubbub-maybe-uninitialized.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 69d81a8a4d4c223aad67cde0fdf64d64351b9802 Mon Sep 17 00:00:00 2001
-From: Andy Tai <atai@atai.org>
-Date: Sat, 27 May 2023 00:01:34 -0700
-Subject: [PATCH] prevent -Werror=maybe-uninitialized build failure with gcc 11
- when building tests tokeniser2 and tokeniser3
-
----
- test/tokeniser2.c | 2 +-
- test/tokeniser3.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/test/tokeniser2.c b/test/tokeniser2.c
-index c8ab9c0..4caae38 100644
---- a/test/tokeniser2.c
-+++ b/test/tokeniser2.c
-@@ -438,7 +438,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
- 			/* Expected token only contained part of the data
- 			 * Calculate how much is left, then try again with
- 			 * the next expected token */
--			hubbub_token t;
-+			hubbub_token t = { 0 };
- 
- 			t.type = HUBBUB_TOKEN_CHARACTER;
- 			t.data.character.ptr += len;
-diff --git a/test/tokeniser3.c b/test/tokeniser3.c
-index e33d018..b3be901 100644
---- a/test/tokeniser3.c
-+++ b/test/tokeniser3.c
-@@ -447,7 +447,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
- 			/* Expected token only contained part of the data
- 			 * Calculate how much is left, then try again with
- 			 * the next expected token */
--			hubbub_token t;
-+			hubbub_token t = { 0 };
- 
- 			t.type = HUBBUB_TOKEN_CHARACTER;
- 			t.data.character.ptr += len;
--- 
-2.40.1
-
diff --git a/gnu/packages/patches/libcss-check-format.patch b/gnu/packages/patches/libcss-check-format.patch
new file mode 100644
index 0000000000..b297ac1c92
--- /dev/null
+++ b/gnu/packages/patches/libcss-check-format.patch
@@ -0,0 +1,13 @@
+Submitted upstream at https://bugs.netsurf-browser.org/mantis/view.php?id=2870
+
+--- libcss-0.9.2/test/dump.h.orig
++++ libcss-0.9.2/test/dump.h
+@@ -131,7 +131,7 @@ void dump_rule_media(css_rule_media *s, char **buf, size_t *buflen)
+ 	char *ptr = *buf;
+ 	css_rule *rule;
+ 
+-	ptr += sprintf(ptr, "| @media %s%03lx",
++	ptr += sprintf(ptr, "| @media %s%03" PRIx64,
+ 			s->media->negate_type ? "not " : "",
+ 			s->media->type);
+ 
diff --git a/gnu/packages/patches/netsurf-message-timestamp.patch b/gnu/packages/patches/netsurf-message-timestamp.patch
index 8df9dbf8f7..03bfdfde3f 100644
--- a/gnu/packages/patches/netsurf-message-timestamp.patch
+++ b/gnu/packages/patches/netsurf-message-timestamp.patch
@@ -1,5 +1,5 @@
---- netsurf-3.8/utils/split-messages.pl.orig	1969-12-31 18:00:00.000000000 -0600
-+++ netsurf-3.8/utils/split-messages.pl	2018-08-30 00:18:58.158367530 -0500
+--- netsurf-3.11/tools/split-messages.pl.orig
++++ netsurf-3.11/tools/split-messages.pl
 @@ -238,7 +238,7 @@
  
      if( $opt{gzip} )
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index e519552a36..ddc673896b 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2015-2020, 2024 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
@@ -5459,7 +5459,7 @@ tools they trust (e.g. wget).")
 (define netsurf-buildsystem
   (package
     (name "netsurf-buildsystem")
-    (version "1.9")
+    (version "1.10")
     (source
      (origin
        (method url-fetch)
@@ -5467,7 +5467,7 @@ tools they trust (e.g. wget).")
                            "buildsystem-" version ".tar.gz"))
        (sha256
         (base32
-         "0alsmaig9ln8dgllb3z63gq90fiz75jz0ic71fi0k0k898qix14k"))))
+         "0yadmrpgvl9r08b56qiy5f77jracc7g9n4krn727fip4d7akjgix"))))
     (build-system gnu-build-system)
     (inputs `(("perl" ,perl)))
     (arguments
@@ -5498,7 +5498,7 @@ libraries.")
 (define-public libparserutils
   (package
     (name "libparserutils")
-    (version "0.2.4")
+    (version "0.2.5")
     (source
      (origin
        (method url-fetch)
@@ -5506,7 +5506,7 @@ libraries.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj"))))
+         "0ffi5q1jlcdl66nk3cax0mnzvhrjvvjvlx0rfasjfygi333xazii"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem pkg-config perl))                 ;for test harness
@@ -5521,7 +5521,7 @@ C.  It is developed as part of the NetSurf project.")
 (define-public hubbub
   (package
     (name "hubbub")
-    (version "0.3.7")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -5529,15 +5529,14 @@ C.  It is developed as part of the NetSurf project.")
                            "libhubbub-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1dimfyblmym98qa1b80c5jslv2zk8r44xbdrgrsrw1n9wr9y4yly"))
-       (patches (search-patches
-         "hubbub-sort-entities.patch"
-         "hubbub-maybe-uninitialized.patch"))))
+         "19fm5h8arnsgxd4w5vr9s2fcb422acciffar3la0b36lygsydhca"))
+       (patches (search-patches "hubbub-sort-entities.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem
            pkg-config
            doxygen
+           gperf
            json-c-0.12 ; check whether json-c-0.12 can be removed
            perl))
     (propagated-inputs
@@ -5705,7 +5704,7 @@ developed as part of the Netsurf project.")
 (define-public libcss
   (package
     (name "libcss")
-    (version "0.9.1")
+    (version "0.9.2")
     (source
      (origin
        (method url-fetch)
@@ -5713,13 +5712,8 @@ developed as part of the Netsurf project.")
                            "libcss-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1p66sdiiqm7w4jkq23hsf08khsnmq93hshh9f9m8sbirjdpf3p6j"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; This can be removed with the next release.
-           (substitute* "src/select/computed.c"
-             (("css_unit unit;") "css_unit unit = CSS_UNIT_PX;"))))))
+         "0khmf5bdpkc09fpsgwzi23sihpadvyr02jx0q5h1vm9lxjxibwid"))
+       (patches (search-patches "libcss-check-format.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem pkg-config perl))
@@ -5736,7 +5730,7 @@ written in C.  It is developed as part of the NetSurf project.")
 (define-public libdom
   (package
     (name "libdom")
-    (version "0.4.1")
+    (version "0.4.2")                 ;TODO include patch for additional tags?
     (source
      (origin
        (method url-fetch)
@@ -5744,7 +5738,7 @@ written in C.  It is developed as part of the NetSurf project.")
                            "libdom-" version "-src.tar.gz"))
        (sha256
         (base32
-         "0jpg5hx3y0mdxk5szd47dyijqimd2321brbqk2620pp5f4j0gvlq"))))
+         "0g0gqcglk8f8gbygbcq5ylcx84zsf0vczbm3n3118w2l2splapnh"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem
@@ -5771,7 +5765,7 @@ developed as part of the NetSurf project.")
 (define-public libsvgtiny
   (package
     (name "libsvgtiny")
-    (version "0.1.7")
+    (version "0.1.8")
     (source
      (origin
        (method url-fetch)
@@ -5779,7 +5773,7 @@ developed as part of the NetSurf project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
+         "0750q884ax8wygl64wq03zdjj8h838ch3f8jdfkv4gz809zj4my3"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem pkg-config gperf-3.0))
@@ -5800,7 +5794,7 @@ project.")
 (define-public libnsbmp
   (package
     (name "libnsbmp")
-    (version "0.1.6")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
@@ -5808,7 +5802,7 @@ project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "0krjg69a2amxjsahdgm3wmy9ngnyr3gfs2a1zhdlbvb0z1jr7i3r"))))
+         "14r2v1ich4lxn3sdwpiwq5adydrd1qlhbd8mbamalaqj59laf1sl"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem))
@@ -5856,7 +5850,7 @@ operations.")
 (define-public libnsgif
   (package
     (name "libnsgif")
-    (version "0.2.1")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
@@ -5864,7 +5858,7 @@ operations.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
+         "06q69hn0nz3c6hnwmzfcldyrppkvimx3s97ql3sx4m0lyr1ch530"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem))
@@ -5907,7 +5901,7 @@ client applications.  It is developed as part of the NetSurf project.")
 (define-public libnsutils
   (package
     (name "libnsutils")
-    (version "0.1.0")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
@@ -5915,7 +5909,7 @@ client applications.  It is developed as part of the NetSurf project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1w5fyy2i60a3v3if3iqcn9sy9sycx6966rcx53v85gja6hb6a33r"))))
+         "14pakllwf7a205d0dkvyg8jhmqfbi5sh5riw840d13j5dr9b952n"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem))
@@ -5930,7 +5924,7 @@ developed as part of the NetSurf project.")
 (define-public libnspsl
   (package
     (name "libnspsl")
-    (version "0.1.6")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
@@ -5938,7 +5932,7 @@ developed as part of the NetSurf project.")
                            "libnspsl-" version "-src.tar.gz"))
        (sha256
         (base32
-         "02q28n5i6fwqcz1nn167rb71k1q95mx38mfah6zi1lvqrc2q5ifk"))))
+         "105cjkb622wz11z26il4j1n4ydyrrgv0nglr67aawpam5z1wx11n"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem))
@@ -5953,7 +5947,7 @@ Public Suffix List.  It is developed as part of the NetSurf project.")
 (define-public nsgenbind
   (package
     (name "nsgenbind")
-    (version "0.8")
+    (version "0.9")
     (source
      (origin
        (method url-fetch)
@@ -5961,7 +5955,7 @@ Public Suffix List.  It is developed as part of the NetSurf project.")
                            "nsgenbind-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1cqwgwca49jvmijwiyaab2bwxicgxdrnlpinf8kp3nha02nm73ad"))))
+         "0p9q9ffn9hf1qrphz2qxq2xvyysn5kg2dbl8cbnkwb5wdkvf0b13"))))
     (build-system gnu-build-system)
     (native-inputs
      (list netsurf-buildsystem bison flex))
@@ -5979,7 +5973,7 @@ w3c webidl files and a binding configuration file.")
 (define-public netsurf
   (package
     (name "netsurf")
-    (version "3.10")
+    (version "3.11")
     (source
      (origin
        (method url-fetch)
@@ -5987,7 +5981,7 @@ w3c webidl files and a binding configuration file.")
                            "releases/source/netsurf-" version "-src.tar.gz"))
        (sha256
         (base32
-         "0plra64c5xyiw12yx2q13brxsv8apmany97zqa2lcqckw4ll8j1n"))
+         "1chw40nx7krpy7m14bajfrcj88h98if8py0k7c2qshpfxxm652n2"))
        (patches (search-patches "netsurf-system-utf8proc.patch"
                                 "netsurf-y2038-tests.patch"
                                 "netsurf-longer-test-timeout.patch"
@@ -6038,22 +6032,17 @@ w3c webidl files and a binding configuration file.")
          (add-after 'unpack 'remove-timestamps
            ;; Avoid embedding timestamp for reproducible builds
            (lambda _
-             (substitute* "utils/git-testament.pl"
+             (substitute* "tools/git-testament.pl"
                (("WT_COMPILEDATE ..$compiledate")
                 "WT_COMPILEDATE \\\""))))
          (add-after 'build 'adjust-welcome
            (lambda _
              (substitute* "frontends/gtk/res/welcome.html"
-             ;; Close some XHTML tags.
+               ;; Close some XHTML tags.
                (("<(img|input)([^>]*)>" _ tag contents)
                 (string-append "<" tag contents " />"))
                ;; Increase freedom.
-               ((" open source") ", free software")
-               ;; Prefer a more privacy-respecting default search engine.
-               (("www.google.co.uk") "www.duckduckgo.com/html")
-               (("Google Search") "DuckDuckGo Search")
-               (("name=\"btnG\"") ""))
-             ;; Remove default links so it doesn't seem we're endorsing them.
+               ((" open source") ", free software"))
              (with-atomic-file-replacement "frontends/gtk/res/welcome.html"
                (lambda (in out)
                  ;; Leave the DOCTYPE header as is.
@@ -6068,8 +6057,23 @@ w3c webidl files and a binding configuration file.")
                     ;; We'd like to use sxml-match here, but it can't
                     ;; match against generic tag symbols...
                     (match sxml
+                      ;; Remove default links so it doesn't seem we're
+                      ;; endorsing them.
                       (`(div (@ (class "links")) . ,rest)
                        '())
+                      ;; Prefer a more privacy-respecting default search
+                      ;; engine.
+                      (`(form . ,rest)
+                       `(form (@ (action "https://lite.duckduckgo.com/lite/")
+                                 (method "post"))
+                              (div (@ (class "websearch"))
+                                   (input (@ (type "text")
+                                             (size "42")
+                                             (name "q")
+                                             (autocomplete "off")
+                                             (value "")))
+                                   (input (@ (type "submit")
+                                             (value "DuckDuckGo Search"))))))
                       (`(ENTITY ,ent)
                        `(*ENTITY* ,ent))
                       ((x ...)
-- 
cgit v1.2.3


From 9c78902d8a9350a3277b2550c0dd87019ecc832e Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Thu, 29 Feb 2024 06:16:54 +0100
Subject: gnu: babl: Update to 0.1.108.

* gnu/packages/gimp.scm (babl): Update to 0.1.108.
---
 gnu/packages/gimp.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index b1ff08d652..5287ec78d5 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -175,7 +175,7 @@ of a larger interface.")
 (define-public babl
   (package
     (name "babl")
-    (version "0.1.96")
+    (version "0.1.108")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -189,7 +189,7 @@ of a larger interface.")
                                         "/babl-" version ".tar.xz")))
               (sha256
                (base32
-                "1xj5hlmm834lb84rpjlfxbqnm5piswgzhjas4h8z90x9b7j3yrrk"))))
+                "0x8lxvnhfpssj84x47y3y06vsvhd5afb9jknw38c8ymbxafzxpi6"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
-- 
cgit v1.2.3


From d6d9e65175d7e889c0d5020c949a65a396d1ca3d Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Thu, 29 Feb 2024 06:17:12 +0100
Subject: gnu: gegl: Update to 0.4.48.

* gnu/packages/gimp.scm (gegl): Update to 0.4.48.
---
 gnu/packages/gimp.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 5287ec78d5..555a170665 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -215,7 +215,7 @@ provided, as well as a framework to add new color models and data types.")
 (define-public gegl
   (package
     (name "gegl")
-    (version "0.4.42")
+    (version "0.4.48")
     (source
      (origin
        (method url-fetch)
@@ -229,7 +229,7 @@ provided, as well as a framework to add new color models and data types.")
                                  (version-major+minor version)
                                  "/gegl-" version ".tar.xz")))
        (sha256
-        (base32 "0bg0vlmj4n9x1291b9fsjqxsal192zlg48pa57f6xid6p863ma5b"))))
+        (base32 "0iw2wag3sls7va4c3dmczisbs9na4ml0rppnk1ymv0789gcjd321"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
-- 
cgit v1.2.3


From 99cfb624ca801d6d0e857f7cfd8d358ecfe59893 Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Thu, 29 Feb 2024 06:17:22 +0100
Subject: gnu: babl: Build with introspection.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/gimp.scm (babl)[#:configure-flags]: Remove “-Denable-gir=false”.
---
 gnu/packages/gimp.scm | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 555a170665..07581a4595 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -193,8 +193,7 @@ of a larger interface.")
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
-       (list "-Denable-gir=false"
-             "-Dwith-docs=false")))
+       (list "-Dwith-docs=false")))
     (native-inputs
      (list gobject-introspection pkg-config vala))
     (propagated-inputs
-- 
cgit v1.2.3


From 1f0767a85be59fe79e4ce8301cddd6aad74ce5b8 Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Thu, 29 Feb 2024 06:18:04 +0100
Subject: gnu: gegl: Build with introspection.

* gnu/packages/gimp.scm (gegl)[arguments]: Remove #:configure-flags.
---
 gnu/packages/gimp.scm | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 07581a4595..d065182c7f 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -231,9 +231,7 @@ provided, as well as a framework to add new color models and data types.")
         (base32 "0iw2wag3sls7va4c3dmczisbs9na4ml0rppnk1ymv0789gcjd321"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags
-       (list "-Dintrospection=false")
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'extend-test-time-outs
            (lambda _
-- 
cgit v1.2.3


From 0f816853b9ce72caba88f8c1f51b27ba0c134a71 Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Thu, 29 Feb 2024 18:47:02 +0100
Subject: gnu: gimp: Update to 2.10.36.

* gnu/packages/gimp.scm (gimp): Update to 2.10.36.
---
 gnu/packages/gimp.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index d065182c7f..ebe1e20c97 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -285,7 +285,7 @@ buffers.")
 (define-public gimp
   (package
     (name "gimp")
-    (version "2.10.32")
+    (version "2.10.36")
     (source
      (origin
        (method url-fetch)
@@ -293,7 +293,7 @@ buffers.")
                            (version-major+minor version)
                            "/gimp-" version ".tar.bz2"))
        (sha256
-        (base32 "09csp2d8bzf012n7hvbbwngwr9phv3rnip768qdwqpdgah2wf59z"))))
+        (base32 "1cnvgkni2q4psv8syyl5yd9kk84fv5g3imd2kgm3mnsbkb3c6frx"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                  ; 9 MiB of gtk-doc HTML
-- 
cgit v1.2.3


From 1bc05c6f6d56ad9e0e31d7f1cc75545a65e3d0f3 Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Thu, 29 Feb 2024 18:47:12 +0100
Subject: gnu: Add gimp-next.

* gnu/packages/gimp.scm (gimp-next): New variable.
---
 gnu/packages/gimp.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index ebe1e20c97..3c4353f8a0 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -38,6 +38,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages documentation)
@@ -367,6 +368,52 @@ as well as specialized ones.  It features a highly customizable interface
 that is extensible via a plugin system.")
     (license license:gpl3+))) ; some files are lgplv3
 
+(define-public gimp-next
+  (package
+    (inherit gimp)
+    (name "gimp-next")
+    (version "2.99.18")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.gimp.org/pub/gimp/v"
+                           (version-major+minor version)
+                           "/gimp-" version ".tar.xz"))
+       (sha256
+        (base32 "0vnvdl7x88njyyxkbgdbhz6jwz1qasrxh0fpwk6x1m609alvf6wc"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:modules `((ice-9 popen)
+                       (ice-9 rdelim)
+                       (guix build meson-build-system)
+                       (guix build utils))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'remove-gcc-reference
+                 ;; Avoid reference to GCC.
+                 (lambda _
+                   (let* ((port (open-input-pipe "gcc -v 2>&1 | tail -n 1"))
+                          (cc-version (read-line port)))
+                     (close-pipe port)
+                     (substitute* "app/gimp-version.c"
+                       (("CC_VERSION") (string-append "\"" cc-version "\""))))))
+               (add-after 'install 'move-doc
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out"))
+                         (doc (assoc-ref outputs "doc")))
+                     (mkdir-p (string-append doc "/share"))
+                     (rename-file (string-append out "/share/doc")
+                                  (string-append doc "/share/doc"))))))))
+    (inputs (modify-inputs (package-inputs gimp)
+              (replace "gtk+" gtk+)
+              (prepend libxmu libxt)
+              (prepend python gjs)
+              (prepend libxslt)))
+    (native-inputs (modify-inputs (package-native-inputs gimp)
+                     (prepend appstream-glib
+                              gi-docgen
+                              libarchive)))))
+
 (define-public gimp-fourier
   (package
     (name "gimp-fourier")
-- 
cgit v1.2.3


From d1b660a00c1e9a7128ccbd13d01314faedae8ebf Mon Sep 17 00:00:00 2001
From: Tanguy Le Carrour <tanguy@bioneland.org>
Date: Thu, 7 Mar 2024 19:58:18 +0100
Subject: gnu: Add python-3.12 and python-next.

* gnu/packages/python.scm (python-3.12, python-next): New variables.
* gnu/packages/patches/python-3.12-fix-tests.patch: New file.

Change-Id: Ie393b732a8863569578e72e62603b75a1655a34e
Signed-off-by: Tanguy Le Carrour <tanguy@bioneland.org>
Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
---
 gnu/packages/patches/python-3.12-fix-tests.patch | 334 +++++++++++++++++++
 gnu/packages/python.scm                          | 387 ++++++++++++++++++++++-
 2 files changed, 720 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/python-3.12-fix-tests.patch

diff --git a/gnu/packages/patches/python-3.12-fix-tests.patch b/gnu/packages/patches/python-3.12-fix-tests.patch
new file mode 100644
index 0000000000..fa5c8027ce
--- /dev/null
+++ b/gnu/packages/patches/python-3.12-fix-tests.patch
@@ -0,0 +1,334 @@
+From f0698133e7d6c353a3e6ae0fc62e57ba558a9bc0 Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Wed, 28 Oct 2020 22:55:05 -0400
+Subject: [PATCH] Skip problematic Python 3 tests in Guix.
+
+A subset of the hunks in this patch is tracked upstream at
+https://bugs.python.org/issue38845, which was contributed by Tanguy Le
+Carrour <tanguy@bioneland.org>.
+
+diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
+index e42c7ab4bd..8087c84dab 100644
+--- a/Lib/test/_test_multiprocessing.py
++++ b/Lib/test/_test_multiprocessing.py
+@@ -1695,6 +1695,7 @@ def _test_wait_result(cls, c, pid):
+         if pid is not None:
+             os.kill(pid, signal.SIGINT)
+
++    @unittest.skipIf(True, "This fails for unknown reasons on Guix")
+     def test_wait_result(self):
+         if isinstance(self, ProcessesMixin) and sys.platform != 'win32':
+             pid = os.getpid()
+@@ -4150,6 +4151,7 @@ def test_shared_memory_across_processes(self):
+         sms.close()
+
+     @unittest.skipIf(os.name != "posix", "not feasible in non-posix platforms")
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_shared_memory_SharedMemoryServer_ignores_sigint(self):
+         # bpo-36368: protect SharedMemoryManager server process from
+         # KeyboardInterrupt signals.
+diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
+index 85c8152d49..e35cfffe84 100644
+--- a/Lib/test/test_asyncio/test_base_events.py
++++ b/Lib/test/test_asyncio/test_base_events.py
+@@ -1377,6 +1377,8 @@ def test_create_connection_no_inet_pton(self, m_socket):
+         self._test_create_connection_ip_addr(m_socket, False)
+
+     @patch_socket
++    @unittest.skipUnless(support.is_resource_enabled('network'),
++                         'network is not enabled')
+     def test_create_connection_service_name(self, m_socket):
+         m_socket.getaddrinfo = socket.getaddrinfo
+         sock = m_socket.socket.return_value
+diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/test/test_ctypes/test_find.py
+index a41e94971d..1291af3057 100644
+--- a/Lib/test/test_ctypes/test_find.py
++++ b/Lib/test/test_ctypes/test_find.py
+@@ -117,6 +117,7 @@ def test_find_library_with_gcc(self):
+         with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None):
+             self.assertNotEqual(find_library('c'), None)
+
++    @unittest.skipIf(True, 'Fails on Guix.')
+     def test_find_library_with_ld(self):
+         with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \
+              unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None):
+diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
+index 1ee9958445..ab6b41befe 100644
+--- a/Lib/test/test_generators.py
++++ b/Lib/test/test_generators.py
+@@ -34,6 +34,7 @@ def generator2(self):
+         else:
+             return "FAILED"
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment')
+     def test_raise_and_yield_from(self):
+         gen = self.generator1()
+         gen.send(None)
+diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
+index ec105ae1a0..ae4c5b672e 100644
+--- a/Lib/test/test_pathlib.py
++++ b/Lib/test/test_pathlib.py
+@@ -3069,6 +3069,7 @@ def test_rglob(self):
+                          'pwd module does not expose getpwall()')
+     @unittest.skipIf(sys.platform == "vxworks",
+                      "no home directory on VxWorks")
++    @unittest.skipIf(True, "Guix builder home is '/' which causes trouble for these tests")
+     def test_expanduser(self):
+         P = self.cls
+         import_helper.import_module('pwd')
+diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
+index 51b844262e..004d3133cf 100644
+--- a/Lib/test/test_pdb.py
++++ b/Lib/test/test_pdb.py
+@@ -1580,6 +1580,7 @@ def test_pdb_next_command_subiterator():
+     (Pdb) continue
+     """
+
++@unittest.skipIf(True, 'Fails on Guix… but skipIf not taken into account?!')
+ def test_pdb_issue_20766():
+     """Test for reference leaks when the SIGINT handler is set.
+
+@@ -1598,11 +1599,11 @@ def test_pdb_issue_20766():
+     > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
+     -> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
+     (Pdb) continue
+-    pdb 1: <built-in function default_int_handler>
++    pdb 1: 1
+     > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
+     -> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
+     (Pdb) continue
+-    pdb 2: <built-in function default_int_handler>
++    pdb 2: 1
+     """
+
+ def test_pdb_issue_43318():
+diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
+index 2ab6f6a986..8cf6b4d1c8 100644
+--- a/Lib/test/test_regrtest.py
++++ b/Lib/test/test_regrtest.py
+@@ -1049,6 +1049,7 @@ def test_fromfile(self):
+         output = self.run_tests('--fromfile', filename)
+         self.check_executed_tests(output, tests, stats=stats)
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+     def test_interrupted(self):
+         code = TEST_INTERRUPTED
+         test = self.create_test('sigint', code=code)
+@@ -1066,6 +1067,7 @@ def test_slowest(self):
+                  % (self.TESTNAME_REGEX, len(tests)))
+         self.check_line(output, regex)
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+     def test_slowest_interrupted(self):
+         # Issue #25373: test --slowest with an interrupted test
+         code = TEST_INTERRUPTED
+diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
+index 317e7ca8f8..7f272daf24 100644
+--- a/Lib/test/test_resource.py
++++ b/Lib/test/test_resource.py
+@@ -151,6 +151,7 @@ def test_freebsd_contants(self):
+
+     @unittest.skipUnless(hasattr(resource, 'prlimit'), 'no prlimit')
+     @support.requires_linux_version(2, 6, 36)
++    @unittest.skipIf(True, "Bug: the PermissionError is not raised")
+     def test_prlimit(self):
+         self.assertRaises(TypeError, resource.prlimit)
+         self.assertRaises(ProcessLookupError, resource.prlimit,
+diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
+index bf60f37934..5e3a96380a 100644
+--- a/Lib/test/test_shutil.py
++++ b/Lib/test/test_shutil.py
+@@ -1743,6 +1743,7 @@ def test_make_archive(self):
+         base_name = os.path.join(tmpdir, 'archive')
+         self.assertRaises(ValueError, make_archive, base_name, 'xxx')
+
++    @unittest.skipIf(True, "The Guix build container has no root user")
+     @support.requires_zlib()
+     def test_make_archive_owner_group(self):
+         # testing make_archive with owner and group, with various combinations
+@@ -1771,6 +1772,7 @@ def test_make_archive_owner_group(self):
+         self.assertTrue(os.path.isfile(res))
+
+
++    @unittest.skipIf(True, "The Guix build container has no root user")
+     @support.requires_zlib()
+     @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
+     def test_tarfile_root_owner(self):
+diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
+index 637a0ca3b3..2fb804e340 100644
+--- a/Lib/test/test_signal.py
++++ b/Lib/test/test_signal.py
+@@ -160,6 +160,7 @@ def test_valid_signals(self):
+                 self.assertLess(signum, signal.NSIG)
+
+     @unittest.skipUnless(sys.executable, "sys.executable required.")
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     @support.requires_subprocess()
+     def test_keyboard_interrupt_exit_code(self):
+         """KeyboardInterrupt triggers exit via SIGINT."""
+@@ -211,6 +212,7 @@ def test_issue9324(self):
+             signal.signal(7, handler)
+
+     @unittest.skipUnless(sys.executable, "sys.executable required.")
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     @support.requires_subprocess()
+     def test_keyboard_interrupt_exit_code(self):
+         """KeyboardInterrupt triggers an exit using STATUS_CONTROL_C_EXIT."""
+@@ -1407,6 +1409,7 @@ def cycle_handlers():
+
+ class RaiseSignalTest(unittest.TestCase):
+
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     def test_sigint(self):
+         with self.assertRaises(KeyboardInterrupt):
+             signal.raise_signal(signal.SIGINT)
+@@ -1452,6 +1455,7 @@ def __del__(self):
+
+ class PidfdSignalTest(unittest.TestCase):
+
++    @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+     @unittest.skipUnless(
+         hasattr(signal, "pidfd_send_signal"),
+         "pidfd support not built in",
+diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
+index 4eb5af99d6..9c7b8f6dbc 100644
+--- a/Lib/test/test_socket.py
++++ b/Lib/test/test_socket.py
+@@ -1016,6 +1016,8 @@ def testHostnameRes(self):
+         if not fqhn in all_host_names:
+             self.fail("Error testing host resolution mechanisms. (fqdn: %s, all: %s)" % (fqhn, repr(all_host_names)))
+
++    @unittest.skipUnless(support.is_resource_enabled('network'),
++                         'network is not enabled')
+     def test_host_resolution(self):
+         for addr in [socket_helper.HOSTv4, '10.0.0.1', '255.255.255.255']:
+             self.assertEqual(socket.gethostbyname(addr), addr)
+@@ -1161,6 +1163,8 @@ def testNtoHErrors(self):
+             self.assertRaises(OverflowError, socket.ntohl, k)
+             self.assertRaises(OverflowError, socket.htonl, k)
+
++    @unittest.skipUnless(os.path.exists("/etc/services"),
++                         "getservbyname uses /etc/services, which is not in the chroot")
+     def testGetServBy(self):
+         eq = self.assertEqual
+         # Find one service that exists, then check all the related interfaces.
+@@ -1521,6 +1525,8 @@ def test_sio_loopback_fast_path(self):
+             raise
+         self.assertRaises(TypeError, s.ioctl, socket.SIO_LOOPBACK_FAST_PATH, None)
+
++    @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++                         "getaddrinfo() will fail")
+     def testGetaddrinfo(self):
+         try:
+             socket.getaddrinfo('localhost', 80)
+@@ -1653,6 +1659,8 @@ def test_getnameinfo(self):
+         # only IP addresses are allowed
+         self.assertRaises(OSError, socket.getnameinfo, ('mail.python.org',0), 0)
+
++    @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++                         "getaddrinfo() will fail")
+     @unittest.skipUnless(support.is_resource_enabled('network'),
+                          'network is not enabled')
+     def test_idna(self):
+diff --git a/Lib/test/test_spwd.py b/Lib/test/test_spwd.py
+index 50766c2548..0c7eb7a83a 100644
+--- a/Lib/test/test_spwd.py
++++ b/Lib/test/test_spwd.py
+@@ -9,8 +9,7 @@
+     spwd = import_helper.import_module('spwd')
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
+-                     'root privileges required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdRoot(unittest.TestCase):
+
+     def test_getspall(self):
+@@ -60,8 +59,7 @@ def test_getspnam(self):
+             self.assertRaises(TypeError, spwd.getspnam, bytes_name)
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() != 0,
+-                     'non-root user required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdNonRoot(unittest.TestCase):
+
+     def test_getspnam_exception(self):
+diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
+index 71489ea493..33351919fe 100644
+--- a/Lib/test/test_tarfile.py
++++ b/Lib/test/test_tarfile.py
+@@ -2911,9 +2911,12 @@ def root_is_uid_gid_0():
+         import pwd, grp
+     except ImportError:
+         return False
+-    if pwd.getpwuid(0)[0] != 'root':
+-        return False
+-    if grp.getgrgid(0)[0] != 'root':
++    try:
++        if pwd.getpwuid(0)[0] != 'root':
++            return False
++        if grp.getgrgid(0)[0] != 'root':
++            return False
++    except KeyError:
+         return False
+     return True
+
+diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
+index 00d9e591c7..2515603715 100644
+--- a/Lib/test/test_threading.py
++++ b/Lib/test/test_threading.py
+@@ -1962,6 +1962,7 @@ def check_interrupt_main_noerror(self, signum):
+             # Restore original handler
+             signal.signal(signum, handler)
+
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+     def test_interrupt_main_subthread(self):
+         # Calling start_new_thread with a function that executes interrupt_main
+         # should raise KeyboardInterrupt upon completion.
+@@ -1973,6 +1974,8 @@ def call_interrupt():
+             t.join()
+         t.join()
+
++
++    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+     def test_interrupt_main_mainthread(self):
+         # Make sure that if interrupt_main is called in main thread that
+         # KeyboardInterrupt is raised instantly.
+diff --git a/Lib/test/test_tools/test_freeze.py b/Lib/test/test_tools/test_freeze.py
+index 0e7ed67de7..6539a2983b 100644
+--- a/Lib/test/test_tools/test_freeze.py
++++ b/Lib/test/test_tools/test_freeze.py
+@@ -23,6 +23,7 @@
+                  'test is too slow with PGO')
+ class TestFreeze(unittest.TestCase):
+
++    @unittest.skipIf(True, 'Fails on Guix.')
+     @support.requires_resource('cpu') # Building Python is slow
+     def test_freeze_simple_script(self):
+         script = textwrap.dedent("""
+diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py
+index 515c3840cb..a96dfad0fe 100644
+--- a/Lib/test/test_unicodedata.py
++++ b/Lib/test/test_unicodedata.py
+@@ -342,6 +342,7 @@ def test_linebreak_7643(self):
+                 self.assertEqual(len(lines), 1,
+                                  r"\u%.4x should not be a linebreak" % i)
+
++@requires_resource('network')
+ class NormalizationTest(unittest.TestCase):
+     @staticmethod
+     def check_version(testfile):
+diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py
+index 445a34ae3e..8f750537c3 100644
+--- a/Tools/scripts/run_tests.py
++++ b/Tools/scripts/run_tests.py
+@@ -69,7 +69,7 @@ def main(regrtest_args):
+         else:
+             args.extend(['-j', '0'])  # Use all CPU cores
+     if not any(is_resource_use_flag(arg) for arg in regrtest_args):
+-        args.extend(['-u', 'all,-largefile,-audio,-gui'])
++        args.extend(['-u', 'all,-largefile,-audio,-gui,-network'])
+
+     if cross_compile and hostrunner:
+         # If HOSTRUNNER is set and -p/--python option is not given, then
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 51d5f598d7..0ae3709b99 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -55,7 +55,7 @@
 ;;; Copyright © 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
-;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019, 2024 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
@@ -596,6 +596,391 @@ data types.")
             (variable "PYTHONTZPATH")
             (files (list "share/zoneinfo")))))))
 
+(define-public python-3.12
+  (package
+    (name "python-next")
+    (version "3.12.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.python.org/ftp/python/" version
+                           "/Python-" version ".tar.xz"))
+       (sha256
+        (base32 "0w6qyfhc912xxav9x9pifwca40b4l49vy52wai9j0gc1mhni2a5y"))
+       (patches (search-patches "python-3-deterministic-build-info.patch"
+                                "python-3.12-fix-tests.patch"
+                                "python-3-hurd-configure.patch"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; Delete the bundled copy of libexpat.
+                   (delete-file-recursively "Modules/expat")
+                   (substitute* "Modules/Setup"
+                     ;; Link Expat instead of embedding the bundled one.
+                     (("^#pyexpat.*")
+                      "pyexpat pyexpat.c -lexpat\n"))
+                   ;; Delete windows binaries
+                   (for-each delete-file
+                             (find-files "Lib/distutils/command" "\\.exe$"))))))
+    (outputs '("out" "tk" ;tkinter; adds 50 MiB to the closure
+               "idle")) ;programming environment; weighs 5MB
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:configure-flags (list "--enable-shared" ;allow embedding
+                               "--with-system-expat" ;for XML support
+                               "--with-system-ffi" ;build ctypes
+                               "--with-ensurepip=install" ;install pip and setuptools
+                               "--with-computed-gotos" ;main interpreter loop optimization
+                               "--enable-unicode=ucs4"
+                               "--without-static-libpython"
+
+                               ;; FIXME: These flags makes Python significantly faster,
+                               ;; but leads to non-reproducible binaries.
+                               ;; "--with-lto"   ;increase size by 20MB, but 15% speedup
+                               ;; "--enable-optimizations"
+
+                               ;; Prevent the installed _sysconfigdata.py from retaining
+                               ;; a reference to coreutils.
+                               "INSTALL=install -c"
+                               "MKDIR_P=mkdir -p"
+
+                               ;; Disable runtime check failing if cross-compiling, see:
+                               ;; https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html
+                               ,@(if (%current-target-system)
+                                     '("ac_cv_buggy_getaddrinfo=no"
+                                       "ac_cv_file__dev_ptmx=no"
+                                       "ac_cv_file__dev_ptc=no")
+                                     '())
+                               ;; -fno-semantic-interposition reinstates some
+                               ;; optimizations by gcc leading to around 15% speedup.
+                               ;; This is the default starting from python 3.10.
+                               "CFLAGS=-fno-semantic-interposition"
+                               (string-append "LDFLAGS=-Wl,-rpath="
+                                              (assoc-ref %outputs "out")
+                                              "/lib"
+                                              " -fno-semantic-interposition"))
+       ;; With no -j argument tests use all available cpus, so provide one.
+       #:make-flags (list (string-append (format #f "TESTOPTS=-j~d"
+                                                 (parallel-job-count))
+                           ;; those tests fail on low-memory systems
+                           " --exclude test_mmap test_socket test_threading test_asyncio"
+                           ,@(if (system-hurd?)
+                                 '(" test_posix" ;multiple errors
+                                   " test_time"
+                                   " test_pty"
+                                   " test_shutil"
+                                   " test_tempfile" ;chflags: invalid argument:
+                                   ;; tbv14c9t/dir0/dir0/dir0/test0.txt
+                                   " test_os" ;stty: 'standard input':
+                                   ;; Inappropriate ioctl for device
+                                   " test_openpty" ;No such file or directory
+                                   " test_selectors" ;assertEqual(NUM_FDS // 2, len(fds))
+                                   ;; 32752 != 4
+                                   " test_compileall" ;multiple errors
+                                   " test_poll" ;list index out of range
+                                   " test_subprocess" ;runs over 10min
+                                   " test_asyncore" ;multiple errors
+                                   " test_threadsignals"
+                                   " test_eintr" ;Process return code is -14
+                                   " test_io" ;multiple errors
+                                   " test_logging"
+                                   " test_signal"
+                                   " test_flags" ;ERROR
+                                   " test_bidirectional_pty"
+                                   " test_create_unix_connection"
+                                   " test_unix_sock_client_ops"
+                                   " test_open_unix_connection"
+                                   " test_open_unix_connection_error"
+                                   " test_read_pty_output"
+                                   " test_write_pty"
+                                   " test_concurrent_futures" ;freeze
+                                   " test_venv" ;freeze
+                                   " test_multiprocessing_forkserver" ;runs over 10min
+                                   " test_multiprocessing_spawn" ;runs over 10min
+                                   " test_builtin"
+                                   " test_capi"
+                                   " test_dbm_ndbm"
+                                   " test_exceptions"
+                                   " test_faulthandler"
+                                   " test_getopt"
+                                   " test_importlib"
+                                   " test_json"
+                                   " test_multiprocessing_fork"
+                                   " test_multiprocessing_main_handling"
+                                   " test_pdb "
+                                   " test_regrtest"
+                                   " test_sqlite")
+                                 '())))
+
+       #:modules ((ice-9 ftw)
+                  (ice-9 match)
+                  (guix build utils)
+                  (guix build gnu-build-system))
+
+       #:phases (modify-phases %standard-phases
+                  ,@(if (system-hurd?)
+                        `((add-after 'unpack
+                                     'disable-multi-processing
+                                     (lambda _
+                                       (substitute* "Makefile.pre.in"
+                                         (("-j0")
+                                          "-j1")))))
+                        '())
+                  (add-before 'configure 'patch-lib-shells
+                    (lambda _
+                      ;; This variable is used in setup.py to enable cross compilation
+                      ;; specific switches. As it is not set properly by configure
+                      ;; script, set it manually.
+                      ,@(if (%current-target-system)
+                            '((setenv "_PYTHON_HOST_PLATFORM" ""))
+                            '())
+                      ;; Filter for existing files, since some may not exist in all
+                      ;; versions of python that are built with this recipe.
+                      (substitute* (filter file-exists?
+                                           '("Lib/subprocess.py"
+                                             "Lib/popen2.py"
+                                             "Lib/distutils/tests/test_spawn.py"
+                                             "Lib/test/support/__init__.py"
+                                             "Lib/test/test_subprocess.py"))
+                        (("/bin/sh")
+                         (which "sh")))))
+                  (add-before 'configure 'do-not-record-configure-flags
+                    (lambda* (#:key configure-flags #:allow-other-keys)
+                      ;; Remove configure flags from the installed '_sysconfigdata.py'
+                      ;; and 'Makefile' so we don't end up keeping references to the
+                      ;; build tools.
+                      ;;
+                      ;; Preserve at least '--with-system-ffi' since otherwise the
+                      ;; thing tries to build libffi, fails, and we end up with a
+                      ;; Python that lacks ctypes.
+                      (substitute* "configure"
+                        (("^CONFIG_ARGS=.*$")
+                         (format #f "CONFIG_ARGS='~a'\n"
+                                 (if (member "--with-system-ffi"
+                                             configure-flags)
+                                     "--with-system-ffi" ""))))))
+                  (add-before 'check 'pre-check
+                    (lambda _
+                      ;; 'Lib/test/test_site.py' needs a valid $HOME
+                      (setenv "HOME"
+                              (getcwd))))
+                  (add-after 'unpack 'set-source-file-times-to-1980
+                    ;; XXX One of the tests uses a ZIP library to pack up some of the
+                    ;; source tree, and fails with "ZIP does not support timestamps
+                    ;; before 1980".  Work around this by setting the file times in the
+                    ;; source tree to sometime in early 1980.
+                    (lambda _
+                      (let ((circa-1980 (* 10 366 24 60 60)))
+                        (ftw "."
+                             (lambda (file stat flag)
+                               (utime file circa-1980 circa-1980) #t)))))
+                  (add-after 'unpack '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)
+                                        ;; 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$"))))
+                  (add-after 'install 'remove-tests
+                    ;; Remove 25 MiB of unneeded unit tests.  Keep test_support.*
+                    ;; because these files are used by some libraries out there.
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (match (scandir (string-append out "/lib")
+                                        (lambda (name)
+                                          (string-prefix? "python" name)))
+                          ((pythonX.Y)
+                           (let ((testdir (string-append out "/lib/" pythonX.Y
+                                                         "/test")))
+                             (with-directory-excursion testdir
+                               (for-each delete-file-recursively
+                                         (scandir testdir
+                                                  (match-lambda
+                                                    ((or "." "..")
+                                                     #f)
+                                                    ("support" #f)
+                                                    (file (not (string-prefix?
+                                                                "test_support."
+                                                                file))))))
+                               (call-with-output-file "__init__.py"
+                                 (const #t))))
+                           (let ((libdir (string-append out "/lib/" pythonX.Y)))
+                             (for-each (lambda (directory)
+                                         (let ((dir (string-append libdir "/"
+                                                                   directory)))
+                                           (when (file-exists? dir)
+                                             (delete-file-recursively dir))))
+                                       '("email/test" "ctypes/test"
+                                         "unittest/test"
+                                         "tkinter/test"
+                                         "sqlite3/test"
+                                         "bsddb/test"
+                                         "lib-tk/test"
+                                         "json/tests"
+                                         "distutils/tests"))))))))
+                  (add-after 'remove-tests 'move-tk-inter
+                    (lambda* (#:key outputs inputs #:allow-other-keys)
+                      ;; When Tkinter support is built move it to a separate output so
+                      ;; that the main output doesn't contain a reference to Tcl/Tk.
+                      (let ((out (assoc-ref outputs "out"))
+                            (tk (assoc-ref outputs "tk")))
+                        (when tk
+                          (match (find-files out "tkinter.*\\.so")
+                            ((tkinter.so)
+                             ;; The .so is in OUT/lib/pythonX.Y/lib-dynload, but we
+                             ;; want it under TK/lib/pythonX.Y/site-packages.
+                             (let* ((len (string-length out))
+                                    (target (string-append tk "/"
+                                                           (string-drop (dirname
+                                                                         (dirname
+                                                                          tkinter.so))
+                                                                        len)
+                                                           "/site-packages")))
+                               (install-file tkinter.so target)
+                               (delete-file tkinter.so))))
+                          ;; Remove explicit store path references.
+                          (let ((tcl (assoc-ref inputs "tcl"))
+                                (tk (assoc-ref inputs "tk")))
+                            (substitute* (find-files (string-append out "/lib")
+                                          "^(_sysconfigdata_.*\\.py|Makefile)$")
+                              (((string-append "-L" tk "/lib"))
+                               "")
+                              (((string-append "-L" tcl "/lib"))
+                               "")))))))
+                  (add-after 'move-tk-inter 'move-idle
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      ;; when idle is built, move it to a separate output to save some
+                      ;; space (5MB)
+                      (let ((out (assoc-ref outputs "out"))
+                            (idle (assoc-ref outputs "idle")))
+                        (when idle
+                          (for-each (lambda (file)
+                                      (let ((target (string-append idle
+                                                                   "/bin/"
+                                                                   (basename
+                                                                    file))))
+                                        (install-file file
+                                                      (dirname target))
+                                        (delete-file file)))
+                                    (find-files (string-append out "/bin")
+                                                "^idle"))
+                          (match (find-files out "^idlelib$"
+                                             #:directories? #t)
+                            ((idlelib)
+                             (let* ((len (string-length out))
+                                    (target (string-append idle "/"
+                                                           (string-drop
+                                                            idlelib len)
+                                                           "/site-packages")))
+                               (mkdir-p (dirname target))
+                               (rename-file idlelib target))))))))
+                  (add-after 'move-idle 'rebuild-bytecode
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        ;; Disable hash randomization to ensure the generated .pycs
+                        ;; are reproducible.
+                        (setenv "PYTHONHASHSEED" "0")
+
+                        (for-each (lambda (output)
+                                    ;; XXX: Delete existing pycs generated by the build
+                                    ;; system beforehand because the -f argument does
+                                    ;; not necessarily overwrite all files, leading to
+                                    ;; indeterministic results.
+                                    (for-each (lambda (pyc)
+                                                (delete-file pyc))
+                                              (find-files output "\\.pyc$"))
+
+                                    (apply invoke
+                                           `(,,(if (%current-target-system)
+                                                   "python3"
+                                                   '(string-append out
+                                                     "/bin/python3")) "-m"
+                                             "compileall"
+                                             "-o"
+                                             "0"
+                                             "-o"
+                                             "1"
+                                             "-o"
+                                             "2"
+                                             "-f" ;force rebuild
+                                             "--invalidation-mode=unchecked-hash"
+                                             ;; Don't build lib2to3, because it's
+                                             ;; Python 2 code.
+                                             "-x"
+                                             "lib2to3/.*"
+                                             ,output)))
+                                  (map cdr outputs)))))
+                  (add-before 'check 'set-TZDIR
+                    (lambda* (#:key inputs native-inputs #:allow-other-keys)
+                      ;; test_email requires the Olson time zone database.
+                      (setenv "TZDIR"
+                              (string-append (assoc-ref (or native-inputs
+                                                            inputs) "tzdata")
+                                             "/share/zoneinfo"))))
+                  (add-after 'install 'install-sitecustomize.py
+                    ,(customize-site version)))))
+    (inputs (list bzip2
+                  expat
+                  gdbm
+                  libffi ;for ctypes
+                  sqlite ;for sqlite extension
+                  openssl
+                  readline
+                  zlib
+                  tcl
+                  tk)) ;for tkinter
+    (native-inputs `(("tzdata" ,tzdata-for-tests)
+                     ("unzip" ,unzip)
+                     ("zip" ,(@ (gnu packages compression) zip))
+                     ("pkg-config" ,pkg-config)
+                     ("sitecustomize.py" ,(local-file (search-auxiliary-file
+                                                       "python/sitecustomize.py")))
+                     ;; When cross-compiling, a native version of Python itself is needed.
+                     ,@(if (%current-target-system)
+                           `(("python" ,this-package)
+                             ("which" ,which))
+                           '())))
+    (native-search-paths
+     (list (guix-pythonpath-search-path version)
+           ;; Used to locate tzdata by the zoneinfo module introduced in
+           ;; Python 3.9.
+           (search-path-specification
+            (variable "PYTHONTZPATH")
+            (files (list "share/zoneinfo")))))
+    (home-page "https://www.python.org")
+    (synopsis "High-level, dynamically-typed programming language")
+    (description
+     "Python is a remarkably powerful dynamic programming language that
+is used in a wide variety of application domains.  Some of its key
+distinguishing features include: clear, readable syntax; strong
+introspection capabilities; intuitive object orientation; natural
+expression of procedural code; full modularity, supporting hierarchical
+packages; exception-based error handling; and very high level dynamic
+data types.")
+    (properties '((cpe-name . "python")))
+    (license license:psfl)))
+
+
+;; Next 3.x version.
+(define-public python-next python-3.12)
+
 ;; Current 3.x version.
 (define-public python-3 python-3.10)
 
-- 
cgit v1.2.3


From d53ca793707c2c94a580c572a5cf4ac383c951ee Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Sat, 9 Mar 2024 18:44:14 +0200
Subject: gnu: Register patch.

This is a follow-up to d1b660a00c1e9a7128ccbd13d01314faedae8ebf.

* gnu/local.mk (dist_patch_DATA): Register new patch.

Change-Id: I281aa1e7ed9f30dc17fd3092d0db9e193f94f9d5
---
 gnu/local.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index e5d1700077..fb8c4afe1d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1796,6 +1796,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/prusa-slicer-fix-tests.patch		\
   %D%/packages/patches/prusa-slicer-with-cereal-1.3.1.patch	\
   %D%/packages/patches/pthreadpool-system-libraries.patch	\
+  %D%/packages/patches/python-3.12-fix-tests.patch		\
   %D%/packages/patches/python-accupy-use-matplotx.patch		\
   %D%/packages/patches/python-accupy-fix-use-of-perfplot.patch	\
   %D%/packages/patches/python-chai-drop-python2.patch		\
-- 
cgit v1.2.3


From cfc63f673fb00dc30f6fd7916e78855721885d73 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Mon, 19 Feb 2024 15:39:19 +0100
Subject: lint: Switch to SRFI-71.

* guix/lint.scm: Switch from SRFI-11 to SRFI-71.

Change-Id: I62e6cd304ad73570bd12bd67f7051566205596bb
---
 guix/lint.scm | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/guix/lint.scm b/guix/lint.scm
index c95de85e69..84df171045 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -84,10 +84,10 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-6)                      ;Unicode string ports
   #: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)
   #:use-module (ice-9 rdelim)
   #:export (check-description-style
             check-inputs-should-be-native
@@ -823,8 +823,8 @@ for connections to complete; when TIMEOUT is #f, wait as long as needed."
                   ;; Return RESPONSE, unless the final response as we follow
                   ;; redirects is not 200.
                   (if location
-                      (let-values (((status response2)
-                                    (loop location (cons location visited))))
+                      (let ((status response2 (loop location
+                                                    (cons location visited))))
                         (case status
                           ((http-response)
                            (values 'http-response
@@ -926,8 +926,7 @@ display a message including MESSAGE and return ERROR-VALUE."
 (define (validate-uri uri package field)
   "Return #t if the given URI can be reached, otherwise return a warning for
 PACKAGE mentioning the FIELD."
-  (let-values (((status argument)
-                (probe-uri uri #:timeout 3)))     ;wait at most 3 seconds
+  (let ((status argument (probe-uri uri #:timeout 3))) ;wait at most 3 seconds
     (case status
       ((http-response)
        (cond ((= 200 (response-code argument))
-- 
cgit v1.2.3


From 3328dec08757a14ae47f4cbd7017b7518adc689e Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Mon, 19 Feb 2024 17:51:34 +0100
Subject: lint: archival: Fix crash in non-Git case.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes a bug introduced in 29f3089c841f00144f24f5c32296aebf22d752cc where
‘guix lint -c archival guile-wisp’ (for instance) would crash with a
match error because ‘lookup-by-nar-hash’ returns a string.

* guix/lint.scm (check-archival): Add SWHID case in the non-Git case.

Change-Id: I66fb060172d372041df47d90a14df168b0fa762d
---
 guix/lint.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/guix/lint.scm b/guix/lint.scm
index 84df171045..ad84048660 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -1736,6 +1736,8 @@ Disarchive entry refers to non-existent SWH directory '~a'")
                                               (list id)
                                               #:field 'source)))))))
                    ((? content?)
+                    '())
+                   ((? string? swhid)
                     '())))
                '()))
           ((? local-file?)
-- 
cgit v1.2.3


From 47a0e5d9fb2209a27c2bffa163becbcb3356bf00 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludovic.courtes@inria.fr>
Date: Mon, 19 Feb 2024 17:53:52 +0100
Subject: lint: archival: Trigger “Save Code Now” for VCSes other than Git.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Until now, ‘save-origin’ would be called only when given a
<git-reference>.  With this change, ‘save-origin’ gets called for other
version control systems as well.

* guix/lint.scm (swh-response->warning): New procedure, formerly in
‘check-archival’.
(vcs-origin, save-package-source): New procedures.
(check-archival)[response->warning]: Remove.
Call ‘save-package-source’ in both the Git and the non-Git cases.
* tests/lint.scm ("archival: missing svn revision"): New test.

Change-Id: I535e4ec89488faf83bfa544d5e4935fa73ef54fb
---
 guix/lint.scm  | 140 ++++++++++++++++++++++++++++++++++++---------------------
 tests/lint.scm |  20 +++++++++
 2 files changed, 109 insertions(+), 51 deletions(-)

diff --git a/guix/lint.scm b/guix/lint.scm
index ad84048660..68d532968d 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -67,6 +67,10 @@
                                     svn-multi-reference-url
                                     svn-multi-reference-user-name
                                     svn-multi-reference-password)
+  #:autoload   (guix hg-download)  (hg-reference?
+                                    hg-reference-url)
+  #:autoload   (guix bzr-download) (bzr-reference?
+                                    bzr-reference-url)
   #:use-module (guix import stackage)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
@@ -1632,6 +1636,69 @@ directory identifiers the spec refers to.  Otherwise return #f."
               (extract-swh-id spec)))))
        %disarchive-mirrors))
 
+(define (swh-response->warning package url method response)
+  "Given RESPONSE, the response of METHOD on URL, return a suitable warning
+list for PACKAGE."
+  (if (request-rate-limit-reached? url method)
+      (list (make-warning package
+                          (G_ "Software Heritage rate limit reached; \
+try again later")
+                          #:field 'source))
+      (list (make-warning package
+                          (G_ "'~a' returned ~a")
+                          (list url (response-code response))
+                          #:field 'source))))
+
+(define (vcs-origin origin)
+  "Return two values: the URL and type (a string) of the version-control used
+for ORIGIN.  Return #f and #f if ORIGIN is not a version-control checkout."
+  (match (and=> origin origin-uri)
+    ((? git-reference? ref)
+     (values (git-reference-url ref) "git"))
+    ((? svn-reference? ref)
+     (values (svn-reference-url ref) "svn"))
+    ((? svn-multi-reference? ref)
+     (values (svn-multi-reference-url ref) "svn"))
+    ((? hg-reference? ref)
+     (values (hg-reference-url ref) "hg"))
+    ((? bzr-reference? ref)
+     (values (bzr-reference-url ref) "bzr"))
+    ;; XXX: Not sure what to do with the weird CVS URIs (:pserver: etc.).
+    (_
+     (values #f #f))))
+
+(define (save-package-source package)
+  "Attempt to save the source of PACKAGE on SWH.  Return a list of warnings."
+  (let* ((origin (package-source package))
+         (url type (if origin (vcs-origin origin) (values #f #f))))
+    (cond ((and url type)
+           (catch 'swh-error
+             (lambda ()
+               (save-origin url type)
+               (list (make-warning
+                      package
+                      ;; TRANSLATORS: "Software Heritage" is a proper noun that
+                      ;; must remain untranslated.  See
+                      ;; <https://www.softwareheritage.org>.
+                      (G_ "scheduled Software Heritage archival")
+                      #:field 'source)))
+             (lambda (key url method response . _)
+               (cond ((= 429 (response-code response))
+                      (list (make-warning
+                             package
+                             (G_ "archival rate limit exceeded; \
+try again later")
+                             #:field 'source)))
+                     (else
+                      (swh-response->warning package url method response))))))
+          ((not origin)
+           '())
+          (else
+           (list (make-warning
+                  package
+                  (G_ "source code cannot be archived")
+                  #:field 'source))))))
+
 (define (check-archival package)
   "Check whether PACKAGE's source code is archived on Software Heritage.  If
 it's not, and if its source code is a VCS snapshot, then send a \"save\"
@@ -1640,17 +1707,6 @@ request to Software Heritage.
 Software Heritage imposes limits on the request rate per client IP address.
 This checker prints a notice and stops doing anything once that limit has been
 reached."
-  (define (response->warning url method response)
-    (if (request-rate-limit-reached? url method)
-        (list (make-warning package
-                            (G_ "Software Heritage rate limit reached; \
-try again later")
-                            #:field 'source))
-        (list (make-warning package
-                            (G_ "'~a' returned ~a")
-                            (list url (response-code response))
-                            #:field 'source))))
-
   (define skip-key (gensym "skip-archival-check"))
 
   (define (skip-when-limit-reached url method)
@@ -1685,28 +1741,8 @@ try again later")
               '())
              (#f
               ;; Revision is missing from the archive, attempt to save it.
-              (catch 'swh-error
-                (lambda ()
-                  (save-origin (git-reference-url reference) "git")
-                  (list (make-warning
-                         package
-                         ;; TRANSLATORS: "Software Heritage" is a proper noun
-                         ;; that must remain untranslated.  See
-                         ;; <https://www.softwareheritage.org>.
-                         (G_ "scheduled Software Heritage archival")
-                         #:field 'source)))
-                (lambda (key url method response . _)
-                  (cond ((= 429 (response-code response))
-                         (list (make-warning
-                                package
-                                (G_ "archival rate limit exceeded; \
-try again later")
-                                #:field 'source)))
-                        (else
-                         (response->warning url method response))))))))
+              (save-package-source package))))
           ((? origin? origin)
-           ;; Since "save" origins are not supported for non-VCS source, all
-           ;; we can do is tell whether a given tarball is available or not.
            (if (and=> (origin-hash origin)          ;XXX: for ungoogled-chromium
                       content-hash-value)           ;& icecat
                (let ((hash (origin-hash origin)))
@@ -1715,26 +1751,28 @@ try again later")
                                             (symbol->string
                                              (content-hash-algorithm hash))))
                    (#f
-                    ;; If SWH doesn't have HASH as is, it may be because it's
-                    ;; a hand-crafted tarball.  In that case, check whether
-                    ;; the Disarchive database has an entry for that tarball.
-                    (match (lookup-disarchive-spec hash)
-                      (#f
-                       (list (make-warning package
-                                           (G_ "source not archived on Software \
+                    ;; If ORIGIN is a version-control checkout, save it now.
+                    ;; If not, check whether HASH is in the Disarchive
+                    ;; database ("Save Code Now" does not accept tarballs).
+                    (if (vcs-origin origin)
+                        (save-package-source package)
+                        (match (lookup-disarchive-spec hash)
+                          (#f
+                           (list (make-warning package
+                                               (G_ "source not archived on Software \
 Heritage and missing from the Disarchive database")
-                                           #:field 'source)))
-                      (directory-ids
-                       (match (find (lambda (id)
-                                      (not (lookup-directory id)))
-                                    directory-ids)
-                         (#f '())
-                         (id
-                          (list (make-warning package
-                                              (G_ "\
+                                               #:field 'source)))
+                          (directory-ids
+                           (match (find (lambda (id)
+                                          (not (lookup-directory id)))
+                                        directory-ids)
+                             (#f '())
+                             (id
+                              (list (make-warning package
+                                                  (G_ "\
 Disarchive entry refers to non-existent SWH directory '~a'")
-                                              (list id)
-                                              #:field 'source)))))))
+                                                  (list id)
+                                                  #:field 'source))))))))
                    ((? content?)
                     '())
                    ((? string? swhid)
@@ -1749,7 +1787,7 @@ source is not an origin, it cannot be archived")
                                #:field 'source)))))
       (match-lambda*
         (('swh-error url method response)
-         (response->warning url method response))
+         (swh-response->warning package url method response))
         ((key . args)
          (if (eq? key skip-key)
              '()
diff --git a/tests/lint.scm b/tests/lint.scm
index 87213fcc78..95d82d7490 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -1407,6 +1407,26 @@
                        (check-archival (dummy-package "x" (source origin)))))))
     (warning-contains? "scheduled" warnings)))
 
+(test-assert "archival: missing svn revision"
+  (let* ((origin   (origin
+                     (method svn-fetch)
+                     (uri (svn-reference
+                           (url "http://example.org/svn/foo")
+                           (revision "1234")))
+                     (sha256 (make-bytevector 32))))
+         ;; https://archive.softwareheritage.org/api/1/origin/save/
+         (save     "{ \"origin_url\": \"http://example.org/svn/foo\",
+                      \"save_request_date\": \"2014-11-17T22:09:38+01:00\",
+                      \"save_request_status\": \"accepted\",
+                      \"save_task_status\": \"scheduled\" }")
+         (warnings (with-http-server `((404 "No extid.") ;lookup-directory-by-nar-hash
+                                       (404 "No revision.") ;lookup-revision
+                                       (404 "No origin.")   ;lookup-origin
+                                       (200 ,save))         ;save-origin
+                     (parameterize ((%swh-base-url (%local-url)))
+                       (check-archival (dummy-package "x" (source origin)))))))
+    (warning-contains? "scheduled" warnings)))
+
 (test-equal "archival: revision available"
   '()
   (let* ((origin   (origin
-- 
cgit v1.2.3


From a813d6890b9ba69f6a738b43919a6359478868cd Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Tue, 20 Feb 2024 14:30:41 +0100
Subject: swh: Add ‘type’ field to <visit>.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* guix/swh.scm (<visit>)[type]: New field.

Change-Id: I7677984c7daef38d8f3c3bef19723fa0efb035ba
---
 guix/swh.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/guix/swh.scm b/guix/swh.scm
index 04cecd854c..83f67423c8 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -54,6 +54,7 @@
             visit-snapshot-url
             visit-status
             visit-number
+            visit-type
             visit-snapshot
 
             snapshot?
@@ -312,6 +313,7 @@ FALSE-IF-404? is true, return #f upon 404 responses."
   (url visit-url "origin_visit_url")
   (snapshot-url visit-snapshot-url "snapshot_url" string*) ;string | #f
   (status visit-status "status" string->symbol)   ;'full | 'partial | 'ongoing
+  (type   visit-type "type" string->symbol)       ;'git | 'git-checkout | ...
   (number visit-number "visit"))
 
 ;; <https://archive.softwareheritage.org/api/1/snapshot/4334c3ed4bb208604ed780d8687fe523837f1bd1/>
-- 
cgit v1.2.3


From ed9d7d84314d4bea1ff610420cf09f79d9d82719 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Tue, 20 Feb 2024 14:38:23 +0100
Subject: swh: ‘origin-visits’ takes an optional ‘max’ parameter.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* guix/swh.scm (origin-visits): Add optional ‘max’ parameter and honor
it.

Change-Id: I642d7d4b0672b68fb5c7ce2b49161307e13d3c95
---
 guix/swh.scm | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/guix/swh.scm b/guix/swh.scm
index 83f67423c8..14c65f6806 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -474,10 +474,11 @@ and use of ALGORITHM."
                              hash)
          external-id-target))
 
-(define (origin-visits origin)
-  "Return the list of visits of ORIGIN, a record as returned by
-'lookup-origin'."
-  (call (swh-url (origin-visits-url origin))
+(define* (origin-visits origin #:optional (max 10))
+  "Return the list of the up to MAX latest visits of ORIGIN, a record as
+returned by 'lookup-origin'."
+  (call (string-append (swh-url (origin-visits-url origin))
+                       "?per_page=" (number->string max))
         (lambda (port)
           (map json->visit (vector->list (json->scm port))))))
 
-- 
cgit v1.2.3


From ddd455c0dd5a527f3c7e94b8b9056155facb37e6 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Tue, 20 Feb 2024 16:52:34 +0100
Subject: swh: ‘lookup-origin-revision’ handles branches pointing to
 directories.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes <https://issues.guix.gnu.org/69070>.

* guix/swh.scm (branch-target): Add clause for 'directory and 'alias.
(lookup-origin-revision): Iterate over all the visits of ORIGIN instead
of just the first one.  Handle the case where ‘branch-target’ returns
something other than a release or revision.
* tests/swh.scm ("lookup-origin-revision"): New test.

Change-Id: I7f636739a719908763bca1d3e7376341dd62e816
---
 guix/swh.scm  | 60 ++++++++++++++++++++++++++----------------------
 tests/swh.scm | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+), 27 deletions(-)

diff --git a/guix/swh.scm b/guix/swh.scm
index 14c65f6806..f602cd89d1 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -516,14 +516,20 @@ could not be found."
           (_ #f)))))
 
 (define (branch-target branch)
-  "Return the target of BRANCH, either a <revision> or a <release>."
+  "Return the target of BRANCH: a <revision>, a <release>, or the SWHID of a
+directory."
   (match (branch-target-type branch)
     ('release
      (call (swh-url (branch-target-url branch))
            json->release))
     ('revision
      (call (swh-url (branch-target-url branch))
-           json->revision))))
+           json->revision))
+    ((or 'directory 'alias)
+     (match (string-tokenize (branch-target-url branch)
+                             (char-set-complement (char-set #\/)))
+       ((_ ... "directory" id)
+        (string-append "swh:1:dir:" id))))))
 
 (define (lookup-origin-revision url tag)
   "Return a <revision> corresponding to the given TAG for the repository
@@ -537,31 +543,31 @@ URL could not be found."
   (match (lookup-origin url)
     (#f #f)
     (origin
-      (match (filter (lambda (visit)
-                       ;; Return #f if (visit-snapshot VISIT) would return #f.
-                       (and (visit-snapshot-url visit)
-                            (eq? 'full (visit-status visit))))
-                     (origin-visits origin))
-        ((visit . _)
-         (let ((snapshot (visit-snapshot visit)))
-           (match (and=> (find (lambda (branch)
-                                 (or
-                                  ;; Git specific.
-                                  (string=? (string-append "refs/tags/" tag)
-                                            (branch-name branch))
-                                  ;; Hg specific.
-                                  (string=? tag
-                                            (branch-name branch))))
-                               (snapshot-branches snapshot))
-                         branch-target)
-             ((? release? release)
-              (release-target release))
-             ((? revision? revision)
-              revision)
-             (#f                                  ;tag not found
-              #f))))
-        (()
-         #f)))))
+      (any (lambda (visit)
+             (and (visit-snapshot-url visit)
+                  (eq? 'full (visit-status visit))
+                  (let ((snapshot (visit-snapshot visit)))
+                    (match (and=> (find (lambda (branch)
+                                          (or
+                                           ;; Git specific.
+                                           (string=? (string-append "refs/tags/" tag)
+                                                     (branch-name branch))
+                                           ;; Hg specific.
+                                           (string=? tag
+                                                     (branch-name branch))))
+                                        (snapshot-branches snapshot))
+                                  branch-target)
+                      ((? release? release)
+                       (release-target release))
+                      ((? revision? revision)
+                       revision)
+                      (_
+                       ;; Either the branch points to a directory rather than
+                       ;; a revision (this is the case for visits of type
+                       ;; 'git-checkout, 'hg-checkout, 'tarball-directory,
+                       ;; etc.), or TAG was not found.
+                       #f)))))
+           (origin-visits origin 30)))))
 
 (define (release-target release)
   "Return the revision that is the target of RELEASE."
diff --git a/tests/swh.scm b/tests/swh.scm
index e7ced6b50c..11dcbdddd8 100644
--- a/tests/swh.scm
+++ b/tests/swh.scm
@@ -109,6 +109,80 @@
                  (directory-entry-length entry)))
          (lookup-directory "123"))))
 
+(test-equal "lookup-origin-revision"
+  '("cd86c72084993d9ef26fc9e24b73cea612b8c97b"
+    "d173c707ee88e3c89401ad77fafa65fcd9e9f5be")
+  (let ()
+    ;; Make sure that 'lookup-origin-revision' does the job, and in particular
+    ;; that it doesn't stop until it has found an actual revision:
+    ;; 'git-checkout visits point to directories instead of revisions.
+    ;; See <https://issues.guix.gnu.org/69070>.
+    (define visits
+      ;; Two visits of differing types: the first visit (type 'git-checkout')
+      ;; points to a directory, the second one (type 'git') points to a
+      ;; revision.
+      "[ {
+    \"origin\": \"https://example.org/repo.git\",
+    \"visit\": 1,
+    \"type\": \"git-checkout\",
+    \"date\": \"2020-05-17T21:43:45.422977+00:00\",
+    \"status\": \"full\",
+    \"metadata\": {},
+    \"type\": \"git-checkout\",
+    \"origin_visit_url\": \"/visit/42\",
+    \"snapshot_url\": \"/snapshot/1\"
+  }, {
+    \"origin\": \"https://example.org/repo.git\",
+    \"visit\": 2,
+    \"type\": \"git\",
+    \"date\": \"2020-05-17T21:43:49.422977+00:00\",
+    \"status\": \"full\",
+    \"metadata\": {},
+    \"type\": \"git\",
+    \"origin_visit_url\": \"/visit/41\",
+    \"snapshot_url\": \"/snapshot/2\"
+  } ]")
+    (define snapshot-for-git-checkout
+      "{ \"id\": 42,
+         \"branches\": { \"1.3.2\": {
+           \"target\": \"e4a4be18fae8d9c6528abff3bc9088feb19a76c7\",
+           \"target_type\": \"directory\",
+           \"target_url\": \"/directory/e4a4be18fae8d9c6528abff3bc9088feb19a76c7\"
+         }}
+       }")
+    (define snapshot-for-git
+      "{ \"id\": 42,
+         \"branches\": { \"1.3.2\": {
+           \"target\": \"e4a4be18fae8d9c6528abff3bc9088feb19a76c7\",
+           \"target_type\": \"revision\",
+           \"target_url\": \"/revision/e4a4be18fae8d9c6528abff3bc9088feb19a76c7\"
+         }}
+       }")
+    (define revision
+      "{ \"author\": {},
+         \"committer\": {},
+         \"committer_date\": \"2018-05-17T21:43:49.422977+00:00\",
+         \"date\": \"2018-05-17T21:43:49.422977+00:00\",
+         \"directory\": \"d173c707ee88e3c89401ad77fafa65fcd9e9f5be\",
+         \"directory_url\": \"/directory/d173c707ee88e3c89401ad77fafa65fcd9e9f5be\",
+         \"id\": \"cd86c72084993d9ef26fc9e24b73cea612b8c97b\",
+         \"merge\": false,
+         \"message\": \"Fix.\",
+         \"parents\": [],
+         \"type\": \"what type?\"
+       }")
+
+    (with-http-server `((200 ,%origin)
+                        (200 ,visits)
+                        (200 ,snapshot-for-git-checkout)
+                        (200 ,snapshot-for-git)
+                        (200 ,revision))
+      (parameterize ((%swh-base-url (%local-url)))
+        (let ((revision (lookup-origin-revision "https://example.org/repo.git"
+                                                "1.3.2")))
+          (list (revision-id revision)
+                (revision-directory revision)))))))
+
 (test-equal "lookup-directory-by-nar-hash"
   "swh:1:dir:84a8b34591712c0a90bab0af604188bcd1fe3153"
   (with-json-result %external-id
-- 
cgit v1.2.3


From 2a9f817ffdf66cc4b20538eec6232bfa504dba9d Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Tue, 20 Feb 2024 17:29:02 +0100
Subject: hg-download: Use ‘swh-download-directory-by-nar-hash’.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This allows content-addressed access to the checkout, which is
preferable.

* guix/hg-download.scm (hg-fetch): Add call to
‘swh-download-directory-by-nar-hash’ before ‘swh-download’ call.

Change-Id: I2afc8badc1f8bb2c8bdd3a47abbb72d455d93e64
---
 guix/hg-download.scm | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/guix/hg-download.scm b/guix/hg-download.scm
index 6d02de47e4..dd28d9c244 100644
--- a/guix/hg-download.scm
+++ b/guix/hg-download.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2017, 2019, 2024 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;;
@@ -117,9 +117,11 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                 (parameterize ((%verify-swh-certificate? #f))
                   (format (current-error-port)
                           "Trying to download from Software Heritage...~%")
-                  (swh-download #$(hg-reference-url ref)
-                                #$(hg-reference-changeset ref)
-                                #$output)))))))
+                  (or (swh-download-directory-by-nar-hash #$hash '#$hash-algo
+                                                          #$output)
+                      (swh-download #$(hg-reference-url ref)
+                                    #$(hg-reference-changeset ref)
+                                    #$output))))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "hg-checkout") build
-- 
cgit v1.2.3


From 0e73f933b291c7e154c7e019b6de1e2f3a97e4c1 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Tue, 20 Feb 2024 18:01:10 +0100
Subject: svn-download: Use ‘swh-download-directory-by-nar-hash’.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes <https://issues.guix.gnu.org/43442>.

* guix/svn-download.scm (svn-fetch)[build]: Add
‘swh-download-directory-by-nar-hash’ call as a last resort.
Import (guix swh).
* guix/svn-download.scm (svn-multi-fetch)[build]: Likewise.

Change-Id: Ifcb9be1e9c2b05ce172c44e45dcf3a3ea6df8e76
---
 guix/svn-download.scm | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/guix/svn-download.scm b/guix/svn-download.scm
index c6688908de..64af996a06 100644
--- a/guix/svn-download.scm
+++ b/guix/svn-download.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2016, 2019, 2021-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2016, 2019, 2021-2024 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;;
@@ -94,12 +94,14 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
     (with-imported-modules
         (source-module-closure '((guix build svn)
                                  (guix build download-nar)
-                                 (guix build utils)))
+                                 (guix build utils)
+                                 (guix swh)))
       (with-extensions (list guile-json guile-gnutls   ;for (guix swh)
                              guile-lzlib)
         #~(begin
             (use-modules (guix build svn)
                          (guix build download-nar)
+                         (guix swh)
                          (ice-9 match))
 
             (or (svn-fetch (getenv "svn url")
@@ -111,7 +113,10 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                                           (_ #f))
                            #:user-name (getenv "svn user name")
                            #:password (getenv "svn password"))
-                (download-nar #$output))))))
+                (download-nar #$output)
+                (parameterize ((%verify-swh-certificate? #f))
+                  (swh-download-directory-by-nar-hash #$hash '#$hash-algo
+                                                      #$output)))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "svn-checkout") build
@@ -174,13 +179,15 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
     (with-imported-modules
         (source-module-closure '((guix build svn)
                                  (guix build download-nar)
-                                 (guix build utils)))
+                                 (guix build utils)
+                                 (guix swh)))
       (with-extensions (list guile-json guile-gnutls   ;for (guix swh)
                              guile-lzlib)
         #~(begin
             (use-modules (guix build svn)
                          (guix build utils)
                          (guix build download-nar)
+                         (guix swh)
                          (srfi srfi-1)
                          (ice-9 match))
 
@@ -206,7 +213,14 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                 (begin
                   (when (file-exists? #$output)
                     (delete-file-recursively #$output))
-                  (download-nar #$output)))))))
+                  (or (download-nar #$output)
+                      (parameterize ((%verify-swh-certificate? #f))
+                        ;; SWH keeps HASH as an ExtID for the combination of
+                        ;; files/directories, which allows us to retrieve the
+                        ;; entire combination at once:
+                        ;; <https://gitlab.softwareheritage.org/swh/infra/sysadm-environment/-/issues/5263>.
+                        (swh-download-directory-by-nar-hash
+                         #$hash '#$hash-algo #$output)))))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "svn-checkout") build
-- 
cgit v1.2.3


From 8a42fc71401fce2086111f5d319aeeddf202513a Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Fri, 23 Feb 2024 14:17:07 +0100
Subject: bzr-download: Implement nar fallback.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* guix/bzr-download.scm (bzr-fetch)[guile-json, guile-lzlib,
guile-gnutls]: New variables.
[build]: Add ‘with-extensions’ and import more modules.  Invoke
‘download-nar’ when ‘bzr-fetch’ returns #f.
* guix/build/bzr.scm (bzr-fetch): Actually return #t on success.

Change-Id: Id5d4ebd0f9ddc3c44b6456d3b46c0000cc7b9997
---
 guix/build/bzr.scm    |  3 ++-
 guix/bzr-download.scm | 43 ++++++++++++++++++++++++++++++++-----------
 2 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/guix/build/bzr.scm b/guix/build/bzr.scm
index a0f5e15880..dede5e031a 100644
--- a/guix/build/bzr.scm
+++ b/guix/build/bzr.scm
@@ -37,6 +37,7 @@ revision identifier.  Return #t on success, else throw an exception."
   (invoke bzr-command "-Ossl.cert_reqs=none" "checkout"
           "--lightweight" "-r" revision url directory)
   (with-directory-excursion directory
-    (delete-file-recursively ".bzr")))
+    (delete-file-recursively ".bzr"))
+  #t)
 
 ;;; bzr.scm ends here
diff --git a/guix/bzr-download.scm b/guix/bzr-download.scm
index d97f84838e..01c12fd54d 100644
--- a/guix/bzr-download.scm
+++ b/guix/bzr-download.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,20 +52,40 @@
     (module-ref distro 'breezy)))
 
 (define* (bzr-fetch ref hash-algo hash
-                       #:optional name
-                       #:key (system (%current-system)) (guile (default-guile))
-                       (bzr (bzr-package)))
+                    #:optional name
+                    #:key (system (%current-system)) (guile (default-guile))
+                    (bzr (bzr-package)))
   "Return a fixed-output derivation that fetches REF, a <bzr-reference>
 object.  The output is expected to have recursive hash HASH of type
 HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
+  (define guile-json
+    (module-ref (resolve-interface '(gnu packages guile)) 'guile-json-4))
+
+  (define guile-lzlib
+    (module-ref (resolve-interface '(gnu packages guile)) 'guile-lzlib))
+
+  (define guile-gnutls
+    (module-ref (resolve-interface '(gnu packages tls)) 'guile-gnutls))
+
   (define build
-    (with-imported-modules (source-module-closure
-                            '((guix build bzr)))
-      #~(begin
-          (use-modules (guix build bzr))
-          (bzr-fetch
-           (getenv "bzr url") (getenv "bzr reference") #$output
-           #:bzr-command (string-append #+bzr "/bin/brz")))))
+    (with-extensions (list guile-gnutls guile-lzlib guile-json)
+      (with-imported-modules (source-module-closure
+                              '((guix build bzr)
+                                (guix build utils)
+                                (guix build download-nar)))
+        #~(begin
+            (use-modules (guix build bzr)
+                         (guix build download-nar)
+                         (guix build utils)
+                         (srfi srfi-34))
+
+            (or (guard (c ((invoke-error? c)
+                           (report-invoke-error c)
+                           #f))
+                  (bzr-fetch (getenv "bzr url") (getenv "bzr reference")
+                             #$output
+                             #:bzr-command (string-append #+bzr "/bin/brz")))
+                (download-nar #$output))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "bzr-branch") build
@@ -79,7 +100,7 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                                           "LC_ALL" "LC_MESSAGES" "LANG"
                                           "COLUMNS")
                       #:system system
-                      #:local-build? #t  ;don't offload repo branching
+                      #:local-build? #t          ;don't offload repo branching
                       #:hash-algo hash-algo
                       #:hash hash
                       #:recursive? #t
-- 
cgit v1.2.3


From 3e9bea7ee30a3425011afb8e2f70b7a8fe6a404b Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Fri, 23 Feb 2024 14:20:41 +0100
Subject: download-nar: Distinguish ‘output’ and ‘item’ parameter.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is useful when running a ‘--check’ build, where the output file
name differs from the store file name we are trying to restore.

* guix/build/download-nar.scm (download-nar): Add ‘output’ parameter and
distinguish it from ‘item’.

Change-Id: I42219b6d4c8fd1ed506720301384efc1aa351561
---
 guix/build/download-nar.scm | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/guix/build/download-nar.scm b/guix/build/download-nar.scm
index 3ba121b7fb..f26ad28cd0 100644
--- a/guix/build/download-nar.scm
+++ b/guix/build/download-nar.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2019, 2020, 2024 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,9 +57,9 @@ ITEM."
       (restore-file decompressed-port
                     item))))
 
-(define (download-nar item)
-  "Download and extract the normalized archive for ITEM.  Return #t on
-success, #f otherwise."
+(define* (download-nar item #:optional (output item))
+  "Download and extract to OUTPUT the normalized archive for ITEM, a store
+item.  Return #t on success, #f otherwise."
   ;; Let progress reports go through.
   (setvbuf (current-error-port) 'none)
   (setvbuf (current-output-port) 'none)
@@ -96,10 +96,10 @@ success, #f otherwise."
                                              #:download-size size)))
                  (if (string-contains url "/lzip")
                      (restore-lzipped-nar port-with-progress
-                                          item
+                                          output
                                           size)
                      (restore-file port-with-progress
-                                   item)))
+                                   output)))
                (newline)
                #t))))
       (()
-- 
cgit v1.2.3


From abd0cca2a9ccba4e57fd2cc318139658559979cf Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Fri, 23 Feb 2024 14:34:13 +0100
Subject: perform-download: Allow use of ‘download-nar’ for ‘--check’ builds.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Previously, the nar fallback would always fail on ‘--check’ build
because the output directory in that case is different from the store
file name.  This change fixes that.

* guix/build/git.scm (git-fetch-with-fallback): Add #:item parameter and
pass it to ‘download-nar’.
* guix/scripts/perform-download.scm (perform-git-download): Pass #:item
to ‘git-fetch-with-fallback’.

Change-Id: I30fc948718e99574005150bba5215a51ef153c49
---
 guix/build/git.scm                | 14 ++++++++------
 guix/scripts/perform-download.scm |  3 +++
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/guix/build/git.scm b/guix/build/git.scm
index 4c69365a7b..a135026fae 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -92,19 +92,21 @@ fetched, recursively.  Return #t on success, #f otherwise."
 
 
 (define* (git-fetch-with-fallback url commit directory
-                                  #:key (git-command "git")
+                                  #:key (item directory)
+                                  (git-command "git")
                                   hash hash-algorithm
                                   lfs? recursive?)
   "Like 'git-fetch', fetch COMMIT from URL into DIRECTORY, but fall back to
-alternative methods when fetching from URL fails: attempt to download a nar,
-and if that also fails, download from the Software Heritage archive.  When
-HASH and HASH-ALGORITHM are provided, they are interpreted as the nar hash of
-the directory of interested and are used as its content address at SWH."
+alternative methods when fetching from URL fails: attempt to download a nar
+for ITEM, and if that also fails, download from the Software Heritage archive.
+When HASH and HASH-ALGORITHM are provided, they are interpreted as the nar
+hash of the directory of interested and are used as its content address at
+SWH."
   (or (git-fetch url commit directory
                  #:lfs? lfs?
                  #:recursive? recursive?
                  #:git-command git-command)
-      (download-nar directory)
+      (download-nar item directory)
 
       ;; As a last resort, attempt to download from Software Heritage.
       ;; Disable X.509 certificate verification to avoid depending
diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm
index e7eb3b2a1f..b96959a09e 100644
--- a/guix/scripts/perform-download.scm
+++ b/guix/scripts/perform-download.scm
@@ -114,10 +114,13 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
       ;; on ambient authority, hence the PATH value below.
       (setenv "PATH" "/run/current-system/profile/bin:/bin:/usr/bin")
 
+      ;; Note: When doing a '--check' build, DRV-OUTPUT and OUTPUT are
+      ;; different, hence the #:item argument below.
       (git-fetch-with-fallback url commit output
                                #:hash hash
                                #:hash-algorithm algo
                                #:recursive? recursive?
+                               #:item (derivation-output-path drv-output)
                                #:git-command %git))))
 
 (define (assert-low-privileges)
-- 
cgit v1.2.3


From 2f441fc738976175d438f7942211b1894e2eb416 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Fri, 23 Feb 2024 14:42:43 +0100
Subject: download: Honor ‘GUIX_DOWNLOAD_METHODS’ environment variable.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This replaces ‘GUIX_DOWNLOAD_FALLBACK_TEST’ and allows you to test
various download methods, like so:

  GUIX_DOWNLOAD_METHODS=nar guix build guile-gcrypt -S --check
  GUIX_DOWNLOAD_METHODS=disarchive guix build hello -S --check

* guix/build/download.scm (%download-methods): New variable.
(download-method-enabled?): New procedure.
(url-fetch): Define ‘initial-uris’; honor ‘download-method-enabled?’.
Call ‘disarchive-fetch/any’ only when the 'disarchive method is enabled.
* guix/build/git.scm (git-fetch-with-fallback): Honor
‘download-method-enabled?’.
* guix/download.scm (%download-methods): New variable.
(%download-fallback-test): Remove.
(built-in-download): Add #:download-methods parameter and honor it.
(url-fetch*): Pass #:content-addressed-mirrors and #:disarchive-mirrors
unconditionally.
* guix/git-download.scm (git-fetch/in-band*): Pass “git url”
unconditionally.
(git-fetch/built-in): Likewise.  Pass “download-methods”.
* guix/bzr-download.scm (bzr-fetch)[build]: Honor ‘download-method-enabled?’.
Pass ‘GUIX_DOWNLOAD_METHODS’ to #:env-vars.
* guix/cvs-download.scm (cvs-fetch)[build]: Honor ‘download-method-enabled?’.
Pass ‘GUIX_DOWNLOAD_METHODS’ to #:env-vars.
* guix/hg-download.scm (hg-fetch): Honor ‘download-method-enabled?’.
Pass #:env-vars to ‘gexp->derivation’.
* guix/scripts/perform-download.scm (perform-download): Honor
“download-methods” from DRV.  Parameterize ‘%download-methods’ before
calling ‘url-fetch’.
(perform-git-download): Likewise.
* guix/svn-download.scm (svn-fetch): Honor ‘download-method-enabled?’.
Pass ‘GUIX_DOWNLOAD_METHODS’ to #:env-vars.
(svn-multi-fetch): Likewise.

Change-Id: Ia3402e17f0303dfa964bdc761265efe8a1dd69ab
---
 guix/build/download.scm           | 50 +++++++++++++++++-----
 guix/build/git.scm                | 15 ++++---
 guix/bzr-download.scm             | 28 +++++++++----
 guix/cvs-download.scm             | 24 +++++++----
 guix/download.scm                 | 53 +++++++++--------------
 guix/git-download.scm             | 20 ++++-----
 guix/hg-download.scm              | 36 ++++++++++------
 guix/scripts/perform-download.scm | 72 ++++++++++++++++++--------------
 guix/svn-download.scm             | 88 ++++++++++++++++++++++++---------------
 9 files changed, 231 insertions(+), 155 deletions(-)

diff --git a/guix/build/download.scm b/guix/build/download.scm
index db0a39084b..74b7486b7b 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.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 © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
@@ -40,7 +40,10 @@
   #:autoload   (guix swh) (swh-download-directory %verify-swh-certificate?)
   #:use-module (ice-9 match)
   #:use-module (ice-9 format)
-  #:export (open-socket-for-uri
+  #:export (%download-methods
+            download-method-enabled?
+
+            open-socket-for-uri
             open-connection-for-uri
             http-fetch
             %x509-certificate-directory
@@ -622,6 +625,20 @@ true, verify HTTPS certificates; otherwise simply ignore them."
     (lambda (key . args)
       (print-exception (current-error-port) #f key args))))
 
+(define %download-methods
+  ;; Either #f (the default) or a list of symbols denoting the sequence of
+  ;; download methods to be used--e.g., '(swh nar upstream).
+  (make-parameter
+   (and=> (getenv "GUIX_DOWNLOAD_METHODS")
+          (lambda (str)
+            (map string->symbol (string-tokenize str))))))
+
+(define (download-method-enabled? method)
+  "Return true if METHOD (a symbol such as 'swh) is enabled as part of the
+download fallback sequence."
+  (or (not (%download-methods))
+      (memq method (%download-methods))))
+
 (define (uri-vicinity dir file)
   "Concatenate DIR, slash, and FILE, keeping only one slash in between.
 This is required by some HTTP servers."
@@ -788,18 +805,28 @@ otherwise simply ignore them."
                          hashes)))
                 disarchive-mirrors))
 
+  (define initial-uris
+    (append (if (download-method-enabled? 'upstream)
+                uri
+                '())
+            (if (download-method-enabled? 'content-addressed-mirrors)
+                content-addressed-uris
+                '())
+            (if (download-method-enabled? 'internet-archive)
+                (match uri
+                  ((first . _)
+                   (or (and=> (internet-archive-uri first) list)
+                       '()))
+                  (() '()))
+                '())))
+
   ;; Make this unbuffered so 'progress-report/file' works as expected.  'line
   ;; means '\n', not '\r', so it's not appropriate here.
   (setvbuf (current-output-port) 'none)
 
   (setvbuf (current-error-port) 'line)
 
-  (let try ((uri (append uri content-addressed-uris
-                   (match uri
-                     ((first . _)
-                      (or (and=> (internet-archive-uri first) list)
-                          '()))
-                     (() '())))))
+  (let try ((uri initial-uris))
     (match uri
       ((uri tail ...)
        (or (fetch uri file)
@@ -807,9 +834,10 @@ otherwise simply ignore them."
       (()
        ;; If we are looking for a software archive, one last thing we
        ;; can try is to use Disarchive to assemble it.
-       (or (disarchive-fetch/any disarchive-uris file
-                                 #:verify-certificate? verify-certificate?
-                                 #:timeout timeout)
+       (or (and (download-method-enabled? 'disarchive)
+                (disarchive-fetch/any disarchive-uris file
+                                      #:verify-certificate? verify-certificate?
+                                      #:timeout timeout))
            (begin
              (format (current-error-port) "failed to download ~s from ~s~%"
                      file url)
diff --git a/guix/build/git.scm b/guix/build/git.scm
index a135026fae..62877394bb 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -19,6 +19,8 @@
 
 (define-module (guix build git)
   #:use-module (guix build utils)
+  #:use-module ((guix build download)
+                #:select (download-method-enabled?))
   #:autoload   (guix build download-nar) (download-nar)
   #:autoload   (guix swh) (%verify-swh-certificate?
                            swh-download
@@ -102,17 +104,20 @@ for ITEM, and if that also fails, download from the Software Heritage archive.
 When HASH and HASH-ALGORITHM are provided, they are interpreted as the nar
 hash of the directory of interested and are used as its content address at
 SWH."
-  (or (git-fetch url commit directory
-                 #:lfs? lfs?
-                 #:recursive? recursive?
-                 #:git-command git-command)
-      (download-nar item directory)
+  (or (and (download-method-enabled? 'upstream)
+           (git-fetch url commit directory
+                      #:lfs? lfs?
+                      #:recursive? recursive?
+                      #:git-command git-command))
+      (and (download-method-enabled? 'nar)
+           (download-nar item directory))
 
       ;; As a last resort, attempt to download from Software Heritage.
       ;; Disable X.509 certificate verification to avoid depending
       ;; on nss-certs--we're authenticating the checkout anyway.
       ;; XXX: Currently recursive checkouts are not supported.
       (and (not recursive?)
+           (download-method-enabled? 'swh)
            (parameterize ((%verify-swh-certificate? #f))
              (format (current-error-port)
                      "Trying to download from Software Heritage...~%")
diff --git a/guix/bzr-download.scm b/guix/bzr-download.scm
index 01c12fd54d..a22c9bee99 100644
--- a/guix/bzr-download.scm
+++ b/guix/bzr-download.scm
@@ -24,7 +24,7 @@
   #:use-module (guix packages)
   #:use-module (guix records)
   #:use-module (guix store)
-
+  #:use-module (ice-9 match)
   #:export (bzr-reference
             bzr-reference?
             bzr-reference-url
@@ -72,20 +72,26 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
       (with-imported-modules (source-module-closure
                               '((guix build bzr)
                                 (guix build utils)
+                                (guix build download)
                                 (guix build download-nar)))
         #~(begin
             (use-modules (guix build bzr)
                          (guix build download-nar)
+                         ((guix build download)
+                          #:select (download-method-enabled?))
                          (guix build utils)
                          (srfi srfi-34))
 
-            (or (guard (c ((invoke-error? c)
-                           (report-invoke-error c)
-                           #f))
-                  (bzr-fetch (getenv "bzr url") (getenv "bzr reference")
-                             #$output
-                             #:bzr-command (string-append #+bzr "/bin/brz")))
-                (download-nar #$output))))))
+            (or (and (download-method-enabled? 'upstream)
+                     (guard (c ((invoke-error? c)
+                                (report-invoke-error c)
+                                #f))
+                       (bzr-fetch (getenv "bzr url") (getenv "bzr reference")
+                                  #$output
+                                  #:bzr-command
+                                  (string-append #+bzr "/bin/brz"))))
+                (and (download-method-enabled? 'nar)
+                     (download-nar #$output)))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "bzr-branch") build
@@ -95,7 +101,11 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                       #:script-name "bzr-download"
                       #:env-vars
                       `(("bzr url" . ,(bzr-reference-url ref))
-                        ("bzr reference" . ,(bzr-reference-revision ref)))
+                        ("bzr reference" . ,(bzr-reference-revision ref))
+                        ,@(match (getenv "GUIX_DOWNLOAD_METHODS")
+                            (#f '())
+                            (value
+                             `(("GUIX_DOWNLOAD_METHODS" . ,value)))))
                       #:leaked-env-vars '("http_proxy" "https_proxy"
                                           "LC_ALL" "LC_MESSAGES" "LANG"
                                           "COLUMNS")
diff --git a/guix/cvs-download.scm b/guix/cvs-download.scm
index c0c526b9db..023054941b 100644
--- a/guix/cvs-download.scm
+++ b/guix/cvs-download.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2017, 2019, 2024 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;;
@@ -73,6 +73,7 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
   (define modules
     (delete '(guix config)
             (source-module-closure '((guix build cvs)
+                                     (guix build download)
                                      (guix build download-nar)))))
   (define build
     (with-imported-modules modules
@@ -80,20 +81,29 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                              guile-lzlib)
         #~(begin
             (use-modules (guix build cvs)
+                         ((guix build download)
+                          #:select (download-method-enabled?))
                          (guix build download-nar))
 
-            (or (cvs-fetch '#$(cvs-reference-root-directory ref)
-                           '#$(cvs-reference-module ref)
-                           '#$(cvs-reference-revision ref)
-                           #$output
-                           #:cvs-command (string-append #+cvs "/bin/cvs"))
-                (download-nar #$output))))))
+            (or (and (download-method-enabled? 'upstream)
+                     (cvs-fetch '#$(cvs-reference-root-directory ref)
+                                '#$(cvs-reference-module ref)
+                                '#$(cvs-reference-revision ref)
+                                #$output
+                                #:cvs-command
+                                #+(file-append cvs "/bin/cvs")))
+                (and (download-method-enabled? 'nar)
+                     (download-nar #$output)))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "cvs-checkout") build
                       #:leaked-env-vars '("http_proxy" "https_proxy"
                                           "LC_ALL" "LC_MESSAGES" "LANG"
                                           "COLUMNS")
+                      #:env-vars (match (getenv "GUIX_DOWNLOAD_METHODS")
+                                   (#f '())
+                                   (value
+                                    `(("GUIX_DOWNLOAD_METHODS" . ,value))))
                       #:system system
                       #:hash-algo hash-algo
                       #:hash hash
diff --git a/guix/download.scm b/guix/download.scm
index 21d02ab203..3dfe143e9f 100644
--- a/guix/download.scm
+++ b/guix/download.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 © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
@@ -35,9 +35,9 @@
   #:use-module (web uri)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
-  #:export (%mirrors
+  #:export (%download-methods
+            %mirrors
             %disarchive-mirrors
-            %download-fallback-test
             (url-fetch* . url-fetch)
             url-fetch/executable
             url-fetch/tarbomb
@@ -434,10 +434,19 @@
 (define built-in-builders*
   (store-lift built-in-builders))
 
+(define %download-methods
+  ;; Either #f (the default) or a list of symbols denoting the sequence of
+  ;; download methods to be used--e.g., '(swh nar upstream).
+  (make-parameter
+   (and=> (getenv "GUIX_DOWNLOAD_METHODS")
+          (lambda (str)
+            (map string->symbol (string-tokenize str))))))
+
 (define* (built-in-download file-name url
                             #:key system hash-algo hash
                             mirrors content-addressed-mirrors
                             disarchive-mirrors
+                            (download-methods (%download-methods))
                             executable?
                             (guile 'unused))
   "Download FILE-NAME from URL using the built-in 'download' builder.  When
@@ -471,6 +480,11 @@ download by itself using its own dependencies."
                                  ("disarchive-mirrors" . ,disarchive-mirrors)
                                  ,@(if executable?
                                        '(("executable" . "1"))
+                                       '())
+                                 ,@(if download-methods
+                                       `(("download-methods"
+                                          . ,(object->string
+                                              download-methods)))
                                        '()))
 
                     ;; Do not offload this derivation because we cannot be
@@ -479,24 +493,6 @@ download by itself using its own dependencies."
                     ;; for that built-in is widespread.
                     #:local-build? #t)))
 
-(define %download-fallback-test
-  ;; Define whether to test one of the download fallback mechanism.  Possible
-  ;; values are:
-  ;;
-  ;;   - #f, to use the normal download methods, not trying to exercise the
-  ;;     fallback mechanism;
-  ;;
-  ;;   - 'none, to disable all the fallback mechanisms;
-  ;;
-  ;;   - 'content-addressed-mirrors, to purposefully attempt to download from
-  ;;     a content-addressed mirror;
-  ;;
-  ;;   - 'disarchive-mirrors, to download from Disarchive + Software Heritage.
-  ;;
-  ;; This is meant to be used for testing purposes.
-  (make-parameter (and=> (getenv "GUIX_DOWNLOAD_FALLBACK_TEST")
-                         string->symbol)))
-
 (define* (url-fetch* url hash-algo hash
                      #:optional name
                      #:key (system (%current-system))
@@ -532,10 +528,7 @@ name in the store."
           (unless (member "download" builtins)
             (error "'guix-daemon' is too old, please upgrade" builtins))
 
-          (built-in-download (or name file-name)
-                             (match (%download-fallback-test)
-                               ((or #f 'none) url)
-                               (_ "https://example.org/does-not-exist"))
+          (built-in-download (or name file-name) url
                              #:guile guile
                              #:system system
                              #:hash-algo hash-algo
@@ -543,15 +536,9 @@ name in the store."
                              #:executable? executable?
                              #:mirrors %mirror-file
                              #:content-addressed-mirrors
-                             (match (%download-fallback-test)
-                               ((or #f 'content-addressed-mirrors)
-                                %content-addressed-mirror-file)
-                               (_ %no-mirrors-file))
+                             %content-addressed-mirror-file
                              #:disarchive-mirrors
-                             (match (%download-fallback-test)
-                               ((or #f 'disarchive-mirrors)
-                                %disarchive-mirror-file)
-                               (_ %no-disarchive-mirrors-file)))))))
+                             %disarchive-mirror-file)))))
 
 (define* (url-fetch/executable url hash-algo hash
                                #:optional name
diff --git a/guix/git-download.scm b/guix/git-download.scm
index aadcbd234c..d26a814e07 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -29,8 +29,8 @@
   #:use-module (guix packages)
   #:use-module (guix modules)
   #:use-module ((guix derivations) #:select (raw-derivation))
+  #:autoload   (guix download) (%download-methods)
   #:autoload   (guix build-system gnu) (standard-packages)
-  #:autoload   (guix download) (%download-fallback-test)
   #:autoload   (git bindings)   (libgit2-init!)
   #:autoload   (git repository) (repository-open
                                  repository-close!
@@ -180,11 +180,7 @@ respective documentation."
                       ;; downloads.
                       #:script-name "git-download"
                       #:env-vars
-                      `(("git url" . ,(match (%download-fallback-test)
-                                        ('content-addressed-mirrors
-                                         "https://example.org/does-not-exist")
-                                        (_
-                                         (git-reference-url ref))))
+                      `(("git url" . ,(git-reference-url ref))
                         ("git commit" . ,(git-reference-commit ref))
                         ("git recursive?" . ,(object->string
                                               (git-reference-recursive? ref)))
@@ -246,14 +242,14 @@ download by itself using its own dependencies."
                   #:recursive? #t
                   #:env-vars
                   `(("url" . ,(object->string
-                               (match (%download-fallback-test)
-                                 ('content-addressed-mirrors
-                                  "https://example.org/does-not-exist")
-                                 (_
-                                  (git-reference-url ref)))))
+                               (git-reference-url ref)))
                     ("commit" . ,(git-reference-commit ref))
                     ("recursive?" . ,(object->string
-                                      (git-reference-recursive? ref))))
+                                      (git-reference-recursive? ref)))
+                    ,@(if (%download-methods)
+                          `(("download-methods"
+                             . ,(object->string (%download-methods))))
+                          '()))
                   #:leaked-env-vars '("http_proxy" "https_proxy"
                                       "LC_ALL" "LC_MESSAGES" "LANG"
                                       "COLUMNS")
diff --git a/guix/hg-download.scm b/guix/hg-download.scm
index dd28d9c244..55d908817f 100644
--- a/guix/hg-download.scm
+++ b/guix/hg-download.scm
@@ -84,6 +84,7 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
   (define modules
     (delete '(guix config)
             (source-module-closure '((guix build hg)
+                                     (guix build download)
                                      (guix build download-nar)
                                      (guix swh)))))
 
@@ -94,6 +95,8 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
         #~(begin
             (use-modules (guix build hg)
                          (guix build utils) ;for `set-path-environment-variable'
+                         ((guix build download)
+                          #:select (download-method-enabled?))
                          (guix build download-nar)
                          (guix swh)
                          (ice-9 match))
@@ -106,28 +109,35 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
             (setvbuf (current-output-port) 'line)
             (setvbuf (current-error-port) 'line)
 
-            (or (hg-fetch '#$(hg-reference-url ref)
-                          '#$(hg-reference-changeset ref)
-                          #$output
-                          #:hg-command (string-append #+hg "/bin/hg"))
-                (download-nar #$output)
+            (or (and (download-method-enabled? 'upstream)
+                     (hg-fetch '#$(hg-reference-url ref)
+                               '#$(hg-reference-changeset ref)
+                               #$output
+                               #:hg-command (string-append #+hg "/bin/hg")))
+                (and (download-method-enabled? 'nar)
+                     (download-nar #$output))
                 ;; As a last resort, attempt to download from Software Heritage.
                 ;; Disable X.509 certificate verification to avoid depending
                 ;; on nss-certs--we're authenticating the checkout anyway.
-                (parameterize ((%verify-swh-certificate? #f))
-                  (format (current-error-port)
-                          "Trying to download from Software Heritage...~%")
-                  (or (swh-download-directory-by-nar-hash #$hash '#$hash-algo
-                                                          #$output)
-                      (swh-download #$(hg-reference-url ref)
-                                    #$(hg-reference-changeset ref)
-                                    #$output))))))))
+                (and (download-method-enabled? 'swh)
+                     (parameterize ((%verify-swh-certificate? #f))
+                       (format (current-error-port)
+                               "Trying to download from Software Heritage...~%")
+                       (or (swh-download-directory-by-nar-hash
+                            #$hash '#$hash-algo #$output)
+                           (swh-download #$(hg-reference-url ref)
+                                         #$(hg-reference-changeset ref)
+                                         #$output)))))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "hg-checkout") build
                       #:leaked-env-vars '("http_proxy" "https_proxy"
                                           "LC_ALL" "LC_MESSAGES" "LANG"
                                           "COLUMNS")
+                      #:env-vars (match (getenv "GUIX_DOWNLOAD_METHODS")
+                                   (#f '())
+                                   (value
+                                    `(("GUIX_DOWNLOAD_METHODS" . ,value))))
                       #:system system
                       #:local-build? #t           ;don't offload repo cloning
                       #:hash-algo hash-algo
diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm
index b96959a09e..5079d0ea71 100644
--- a/guix/scripts/perform-download.scm
+++ b/guix/scripts/perform-download.scm
@@ -21,7 +21,7 @@
   #:use-module (guix scripts)
   #:use-module (guix derivations)
   #:use-module ((guix store) #:select (derivation-path? store-path?))
-  #:autoload   (guix build download) (url-fetch)
+  #:autoload   (guix build download) (%download-methods url-fetch)
   #:autoload   (guix build git) (git-fetch-with-fallback)
   #:autoload   (guix config) (%git)
   #:use-module (ice-9 match)
@@ -55,7 +55,8 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
                        (executable "executable")
                        (mirrors "mirrors")
                        (content-addressed-mirrors "content-addressed-mirrors")
-                       (disarchive-mirrors "disarchive-mirrors"))
+                       (disarchive-mirrors "disarchive-mirrors")
+                       (download-methods "download-methods"))
     (unless url
       (leave (G_ "~a: missing URL~%") (derivation-file-name drv)))
 
@@ -64,26 +65,30 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
            (algo       (derivation-output-hash-algo drv-output))
            (hash       (derivation-output-hash drv-output)))
       ;; We're invoked by the daemon, which gives us write access to OUTPUT.
-      (when (url-fetch url output
-                       #:print-build-trace? print-build-trace?
-                       #:mirrors (if mirrors
-                                     (call-with-input-file mirrors read)
-                                     '())
-                       #:content-addressed-mirrors
-                       (if content-addressed-mirrors
-                           (call-with-input-file content-addressed-mirrors
-                             (lambda (port)
-                               (eval (read port) %user-module)))
-                           '())
-                       #:disarchive-mirrors
-                       (if disarchive-mirrors
-                           (call-with-input-file disarchive-mirrors read)
-                           '())
-                       #:hashes `((,algo . ,hash))
-
-                       ;; Since DRV's output hash is known, X.509 certificate
-                       ;; validation is pointless.
-                       #:verify-certificate? #f)
+      (when (parameterize ((%download-methods
+                            (and download-methods
+                                 (call-with-input-string download-methods
+                                   read))))
+              (url-fetch url output
+                         #:print-build-trace? print-build-trace?
+                         #:mirrors (if mirrors
+                                       (call-with-input-file mirrors read)
+                                       '())
+                         #:content-addressed-mirrors
+                         (if content-addressed-mirrors
+                             (call-with-input-file content-addressed-mirrors
+                               (lambda (port)
+                                 (eval (read port) %user-module)))
+                             '())
+                         #:disarchive-mirrors
+                         (if disarchive-mirrors
+                             (call-with-input-file disarchive-mirrors read)
+                             '())
+                         #:hashes `((,algo . ,hash))
+
+                         ;; Since DRV's output hash is known, X.509 certificate
+                         ;; validation is pointless.
+                         #:verify-certificate? #f))
         (when (and executable (string=? executable "1"))
           (chmod output #o755))))))
 
@@ -96,7 +101,8 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
 'bmRepair' builds."
   (derivation-let drv ((url "url")
                        (commit "commit")
-                       (recursive? "recursive?"))
+                       (recursive? "recursive?")
+                       (download-methods "download-methods"))
     (unless url
       (leave (G_ "~a: missing Git URL~%") (derivation-file-name drv)))
     (unless commit
@@ -114,14 +120,18 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
       ;; on ambient authority, hence the PATH value below.
       (setenv "PATH" "/run/current-system/profile/bin:/bin:/usr/bin")
 
-      ;; Note: When doing a '--check' build, DRV-OUTPUT and OUTPUT are
-      ;; different, hence the #:item argument below.
-      (git-fetch-with-fallback url commit output
-                               #:hash hash
-                               #:hash-algorithm algo
-                               #:recursive? recursive?
-                               #:item (derivation-output-path drv-output)
-                               #:git-command %git))))
+      (parameterize ((%download-methods
+                      (and download-methods
+                           (call-with-input-string download-methods
+                             read))))
+        ;; Note: When doing a '--check' build, DRV-OUTPUT and OUTPUT are
+        ;; different, hence the #:item argument below.
+        (git-fetch-with-fallback url commit output
+                                 #:hash hash
+                                 #:hash-algorithm algo
+                                 #:recursive? recursive?
+                                 #:item (derivation-output-path drv-output)
+                                 #:git-command %git)))))
 
 (define (assert-low-privileges)
   (when (zero? (getuid))
diff --git a/guix/svn-download.scm b/guix/svn-download.scm
index 64af996a06..17a7f4f957 100644
--- a/guix/svn-download.scm
+++ b/guix/svn-download.scm
@@ -93,6 +93,7 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
   (define build
     (with-imported-modules
         (source-module-closure '((guix build svn)
+                                 (guix build download)
                                  (guix build download-nar)
                                  (guix build utils)
                                  (guix swh)))
@@ -100,23 +101,28 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                              guile-lzlib)
         #~(begin
             (use-modules (guix build svn)
+                         ((guix build download)
+                          #:select (download-method-enabled?))
                          (guix build download-nar)
                          (guix swh)
                          (ice-9 match))
 
-            (or (svn-fetch (getenv "svn url")
-                           (string->number (getenv "svn revision"))
-                           #$output
-                           #:svn-command #+(file-append svn "/bin/svn")
-                           #:recursive? (match (getenv "svn recursive?")
-                                          ("yes" #t)
-                                          (_ #f))
-                           #:user-name (getenv "svn user name")
-                           #:password (getenv "svn password"))
-                (download-nar #$output)
-                (parameterize ((%verify-swh-certificate? #f))
-                  (swh-download-directory-by-nar-hash #$hash '#$hash-algo
-                                                      #$output)))))))
+            (or (and (download-method-enabled? 'upstream)
+                     (svn-fetch (getenv "svn url")
+                                (string->number (getenv "svn revision"))
+                                #$output
+                                #:svn-command #+(file-append svn "/bin/svn")
+                                #:recursive? (match (getenv "svn recursive?")
+                                               ("yes" #t)
+                                               (_ #f))
+                                #:user-name (getenv "svn user name")
+                                #:password (getenv "svn password")))
+                (and (download-method-enabled? 'nar)
+                     (download-nar #$output))
+                (and (download-method-enabled? 'swh)
+                     (parameterize ((%verify-swh-certificate? #f))
+                       (swh-download-directory-by-nar-hash #$hash '#$hash-algo
+                                                           #$output))))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "svn-checkout") build
@@ -139,7 +145,11 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                         ,@(if (svn-reference-password ref)
                               `(("svn password"
                                  . ,(svn-reference-password ref)))
-                              '()))
+                              '())
+                        ,@(match (getenv "GUIX_DOWNLOAD_METHODS")
+                            (#f '())
+                            (value
+                             `(("GUIX_DOWNLOAD_METHODS" . ,value)))))
 
                       #:system system
                       #:hash-algo hash-algo
@@ -178,6 +188,7 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
   (define build
     (with-imported-modules
         (source-module-closure '((guix build svn)
+                                 (guix build download)
                                  (guix build download-nar)
                                  (guix build utils)
                                  (guix swh)))
@@ -186,6 +197,8 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
         #~(begin
             (use-modules (guix build svn)
                          (guix build utils)
+                         ((guix build download)
+                          #:select (download-method-enabled?))
                          (guix build download-nar)
                          (guix swh)
                          (srfi srfi-1)
@@ -197,30 +210,33 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                    ;; single file.
                    (unless (string-suffix? "/" location)
                      (mkdir-p (string-append #$output "/" (dirname location))))
-                   (svn-fetch (string-append (getenv "svn url") "/" location)
-                              (string->number (getenv "svn revision"))
-                              (if (string-suffix? "/" location)
-                                  (string-append #$output "/" location)
-                                  (string-append #$output "/" (dirname location)))
-                              #:svn-command #+(file-append svn "/bin/svn")
-                              #:recursive? (match (getenv "svn recursive?")
-                                             ("yes" #t)
-                                             (_ #f))
-                              #:user-name (getenv "svn user name")
-                              #:password (getenv "svn password")))
+                   (and (download-method-enabled? 'upstream)
+                        (svn-fetch (string-append (getenv "svn url") "/" location)
+                                   (string->number (getenv "svn revision"))
+                                   (if (string-suffix? "/" location)
+                                       (string-append #$output "/" location)
+                                       (string-append #$output "/" (dirname location)))
+                                   #:svn-command #+(file-append svn "/bin/svn")
+                                   #:recursive? (match (getenv "svn recursive?")
+                                                  ("yes" #t)
+                                                  (_ #f))
+                                   #:user-name (getenv "svn user name")
+                                   #:password (getenv "svn password"))))
                  (call-with-input-string (getenv "svn locations")
                    read))
                 (begin
                   (when (file-exists? #$output)
                     (delete-file-recursively #$output))
-                  (or (download-nar #$output)
-                      (parameterize ((%verify-swh-certificate? #f))
-                        ;; SWH keeps HASH as an ExtID for the combination of
-                        ;; files/directories, which allows us to retrieve the
-                        ;; entire combination at once:
-                        ;; <https://gitlab.softwareheritage.org/swh/infra/sysadm-environment/-/issues/5263>.
-                        (swh-download-directory-by-nar-hash
-                         #$hash '#$hash-algo #$output)))))))))
+                  (or (and (download-method-enabled? 'nar)
+                           (download-nar #$output))
+                      (and (download-method-enabled? 'swh)
+                           ;; SWH keeps HASH as an ExtID for the combination
+                           ;; of files/directories, which allows us to
+                           ;; retrieve the entire combination at once:
+                           ;; <https://gitlab.softwareheritage.org/swh/infra/sysadm-environment/-/issues/5263>.
+                           (parameterize ((%verify-swh-certificate? #f))
+                             (swh-download-directory-by-nar-hash
+                              #$hash '#$hash-algo #$output))))))))))
 
   (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation (or name "svn-checkout") build
@@ -245,7 +261,11 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
                         ,@(if (svn-multi-reference-password ref)
                               `(("svn password"
                                  . ,(svn-multi-reference-password ref)))
-                              '()))
+                              '())
+                        ,@(match (getenv "GUIX_DOWNLOAD_METHODS")
+                            (#f '())
+                            (value
+                             `(("GUIX_DOWNLOAD_METHODS" . ,value)))))
 
                       #:leaked-env-vars '("http_proxy" "https_proxy"
                                           "LC_ALL" "LC_MESSAGES" "LANG"
-- 
cgit v1.2.3


From 7b9a23ea315d2b4efde755c3bd0b1db3cacba9c2 Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Sat, 9 Mar 2024 22:05:59 +0100
Subject: gnu: gnome-photos: Build against gegl-0.4.44.

On gnome-team, this dependency was already accounted for in commit
4beac7d95c84ea3be809030f942b8b71d155129e, but it was forgotten when updating
gimp on master.

* gnu/packages/gimp.scm (babl-0.1.96, gegl-0.4.44): New variables.
* gnu/packages/gnome.scm (gnome-photos)[inputs]: Replace gegl with gegl-0.4.44.
---
 gnu/packages/gimp.scm  | 43 +++++++++++++++++++++++++++++++++++++++++++
 gnu/packages/gnome.scm |  2 +-
 2 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 3c4353f8a0..8987a4502d 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -283,6 +283,49 @@ buffers.")
     ;; application and GUI binary gegl is licensed under GPL.
     (license (list license:lgpl3+ license:gpl3+))))
 
+;; gnome-photos does not build against gegl 0.4.46 or newer yet.
+;; See also <https://gitlab.gnome.org/GNOME/gnome-photos/-/issues/214>.
+(define-public babl-0.1.96
+  (package
+    (inherit babl)
+    (version "0.1.96")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list (string-append "https://download.gimp.org/pub/babl/"
+                                 (version-major+minor version)
+                                 "/babl-" version ".tar.xz")
+                  (string-append "https://ftp.gtk.org/pub/babl/"
+                                 (version-major+minor version)
+                                 "/babl-" version ".tar.xz")
+                  (string-append "ftp://ftp.gtk.org/pub/babl/"
+                                 (version-major+minor version)
+                                 "/babl-" version ".tar.xz")))
+       (sha256
+        (base32 "1xj5hlmm834lb84rpjlfxbqnm5piswgzhjas4h8z90x9b7j3yrrk"))))))
+
+(define-public gegl-0.4.44
+  (package
+    (inherit gegl)
+    (version "0.4.44")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list (string-append "https://download.gimp.org/pub/gegl/"
+                                 (string-take version 3)
+                                 "/gegl-" version ".tar.xz")
+                  (string-append "https://ftp.gtk.org/pub/gegl/"
+                                 (version-major+minor version)
+                                 "/gegl-" version ".tar.xz")
+                  (string-append "ftp://ftp.gtk.org/pub/gegl/"
+                                 (version-major+minor version)
+                                 "/gegl-" version ".tar.xz")))
+       (sha256
+        (base32 "09k1sn4h0bakgmq2hgd1iamprngpr81ky3fd9446lh2ycd0xnk0a"))))
+    (propagated-inputs
+     (modify-inputs (package-propagated-inputs gegl)
+       (replace "babl" babl-0.1.96)))))
+
 (define-public gimp
   (package
     (name "gimp")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a0710aa78a..06256066bc 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -857,7 +857,7 @@ tomorrow, the rest of the week and for special occasions.")
     (inputs
      (list babl
            cairo
-           gegl
+           gegl-0.4.44
            geocode-glib
            gexiv2
            gfbgraph
-- 
cgit v1.2.3