~ruther/guix-local

618cae45dc2a45079e910e72be2062c58590f262 — Christopher Baines 2 years ago 2ee5451 + 00bf07e
Merge remote-tracking branch 'savannah/master' into gnome-team

Change-Id: I775274c2693536e2efa36c9abca4c54c5c458e26
78 files changed, 2003 insertions(+), 1030 deletions(-)

M doc/build.scm
M doc/guix.texi
M etc/guix-daemon.service.in
M etc/guix-publish.service.in
M etc/news.scm
M etc/teams.scm
M etc/time-travel-manifest.scm
M gnu/local.mk
M gnu/packages/bioconductor.scm
M gnu/packages/bioinformatics.scm
M gnu/packages/c.scm
M gnu/packages/check.scm
M gnu/packages/containers.scm
M gnu/packages/cpp.scm
M gnu/packages/cran.scm
M gnu/packages/crates-io.scm
M gnu/packages/diffoscope.scm
M gnu/packages/docker.scm
M gnu/packages/emacs-xyz.scm
M gnu/packages/finance.scm
M gnu/packages/freedesktop.scm
M gnu/packages/freeipmi.scm
M gnu/packages/games.scm
M gnu/packages/gnunet.scm
M gnu/packages/gnuzilla.scm
M gnu/packages/golang-crypto.scm
M gnu/packages/golang-xyz.scm
M gnu/packages/golang.scm
M gnu/packages/guile-xyz.scm
M gnu/packages/ipfs.scm
M gnu/packages/java.scm
M gnu/packages/linux.scm
M gnu/packages/lisp-xyz.scm
A gnu/packages/llvm-meta.scm
M gnu/packages/llvm.scm
M gnu/packages/man.scm
M gnu/packages/maths.scm
M gnu/packages/music.scm
A gnu/packages/nx.scm
M gnu/packages/package-management.scm
M gnu/packages/password-utils.scm
A gnu/packages/patches/clang-17.0-link-dsymutil-latomic.patch
A gnu/packages/patches/libextractor-tidy-support.patch
D gnu/packages/patches/python-poppler-qt5-fix-build.patch
A gnu/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch
M gnu/packages/pdf.scm
M gnu/packages/plotutils.scm
M gnu/packages/python-web.scm
M gnu/packages/python-xyz.scm
M gnu/packages/python.scm
M gnu/packages/qt.scm
M gnu/packages/raspberry-pi.scm
M gnu/packages/rdf.scm
M gnu/packages/ruby.scm
M gnu/packages/rust-apps.scm
M gnu/packages/rust.scm
M gnu/packages/scheme.scm
M gnu/packages/statistics.scm
M gnu/packages/swig.scm
M gnu/packages/syncthing.scm
M gnu/packages/terminals.scm
M gnu/packages/texinfo.scm
M gnu/packages/text-editors.scm
M gnu/packages/tor-browsers.scm
M gnu/packages/video.scm
M gnu/packages/web-browsers.scm
M gnu/packages/web.scm
M gnu/packages/wm.scm
M gnu/packages/xfce.scm
M gnu/packages/xorg.scm
M gnu/packages/zig-xyz.scm
M gnu/packages/zig.scm
M guix/scripts/time-machine.scm
M guix/transformations.scm
M nix/libstore/build.cc
M nix/libutil/util.cc
M nix/libutil/util.hh
M tests/guix-time-machine.sh
M doc/build.scm => doc/build.scm +13 -13
@@ 365,7 365,7 @@ actual file name."
                                                            #:languages
                                                            languages))
                                  (syntax-css-url
                                   "/static/base/css/code.css"))
                                   "/themes/initial/css/code.css"))
  "Return a derivation called NAME that processes all the HTML files in INPUT
to (1) add them a link to SYNTAX-CSS-URL, and (2) highlight the syntax of all
its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."


@@ 624,7 624,7 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
                        #:key
                        (languages %languages)
                        (manual %manual)
                        (manual-css-url "/static/base/css/manual.css"))
                        (manual-css-url "/themes/initial/css/manual.css"))
  "Process all the HTML files in INPUT; add them MANUAL-CSS-URL as a <style>
link, and add a menu to choose among LANGUAGES.  Use the Guix PO files found
in SOURCE."


@@ 741,7 741,7 @@ in SOURCE."
                            (list (menu-dropdown
                                   #:label
                                   `(img (@ (alt "Language")
                                            (src "/static/base/img/language-picker.svg")))
                                            (src "/themes/initial/img/language-picker.svg")))
                                   #:items
                                   (language-menu-items file)))
                            #:split-node? split-node?)


@@ 1141,16 1141,16 @@ must be the Guix top-level source directory, from which PO files are taken."
                    ;; Menu prefetch.
                    (link (@ (rel "prefetch") (href ,(guix-url "menu/index.html"))))
                    ;; Base CSS.
                    (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/elements.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/common.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/messages.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/navbar.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/breadcrumbs.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/buttons.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/footer.css"))))

                    (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/page.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/post.css")))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/elements.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/common.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/messages.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/navbar.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/breadcrumbs.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/buttons.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/footer.css"))))

                    (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/page.css"))))
                    (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/post.css")))))
                   (body
                    (header (@ (class "navbar"))
                            (h1 (a (@ (class "branding")

M doc/guix.texi => doc/guix.texi +8 -8
@@ 2728,20 2728,20 @@ the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html,
@code{man cryptsetup}} for more information).

@quotation Warning
Note that GRUB can unlock LUKS2 devices since version 2.06, but only
supports the PBKDF2 key derivation function, which is not the default
for @command{cryptsetup luksFormat}.  You can check which key derivation
function is being used by a device by running @command{cryptsetup
luksDump @var{device}}, and looking for the PBKDF field of your
keyslots.
While efforts are in progress to extend support to LUKS2, please note
that Guix only supports devices of type LUKS1 at the moment. You can
verify that your existing LUKS device is of the right type by running
@command{cryptsetup luksDump @var{device}}. Alternatively, you can
create a new LUKS1 device with @command{cryptsetup luksFormat --type
luks1 @var{device}}.
@end quotation

Assuming you want to store the root partition on @file{/dev/sda2}, the
command sequence to format it as a LUKS2 partition would be along these
command sequence to format it as a LUKS1 partition would be along these
lines:

@example
cryptsetup luksFormat --type luks2 --pbkdf pbkdf2 /dev/sda2
cryptsetup luksFormat --type luks1 /dev/sda2
cryptsetup open /dev/sda2 my-partition
mkfs.ext4 -L my-root /dev/mapper/my-partition
@end example

M etc/guix-daemon.service.in => etc/guix-daemon.service.in +2 -2
@@ 9,8 9,8 @@ Description=Build daemon for GNU Guix
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
    --build-users-group=guixbuild --discover=no
Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
StandardOutput=syslog
StandardError=syslog
StandardOutput=journal
StandardError=journal

# Work around a nasty systemd ‘feature’ that kills the entire process tree
# (including the daemon!) if any child, such as cc1plus, runs out of memory.

M etc/guix-publish.service.in => etc/guix-publish.service.in +2 -2
@@ 11,8 11,8 @@ After=guix-daemon.service
[Service]
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix publish --user=nobody --port=8181
Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
StandardOutput=syslog
StandardError=syslog
StandardOutput=journal
StandardError=journal

# Despite the name, this is rate-limited: a broken daemon will eventually fail.
Restart=always

M etc/news.scm => etc/news.scm +70 -1
@@ 1,6 1,6 @@
;; GNU Guix news, for use by 'guix pull'.
;;
;; Copyright © 2019-2023 Ludovic Courtès <ludo@gnu.org>
;; Copyright © 2019-2024 Ludovic Courtès <ludo@gnu.org>
;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;; Copyright © 2019, 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>


@@ 103,6 103,75 @@ configuré et étendu avec des fichiers de configuration de matériel (appelés
         (zh "現可使用 eudev 的硬件配置文件(@dfn{hwdb})設置及拓展
@code{udev-service-type}。")))

 (entry (commit "ff1251de0bc327ec478fc66a562430fbf35aef42")
        (title
         (en "Daemon vulnerability allowing store corruption has been fixed")
         (de "Schwachstelle im Daemon behoben, durch die der Store verfälscht werden konnte")
         (fr "Une faille du démon permettant de corrompre le dépôt a été corrigée"))
        (body
         (en "A vulnerability in the build daemon, @command{guix-daemon}, was
identified and fixed.  The vulnerability would allow unprivileged users to
corrupt the result of @dfn{fixed-output derivations} such as source code
tarballs and Git checkouts, which in turn could lead to local privilege
escalation.

This bug is fixed and Guix System users are advised to upgrade their system,
with a command along the lines of:

@example
sudo guix system reconfigure /run/current-system/configuration.scm
sudo herd restart guix-daemon
@end example

If you are using Guix on another distro, run @command{info \"(guix) Upgrading
Guix\"} or visit
@uref{https://guix.gnu.org/manual/devel/en/html_node/Upgrading-Guix.html} to
learn how to upgrade Guix.

See @uref{https://issues.guix.gnu.org/69728} for more information on this
issue.")
         (de "Eine Sicherheitslücke im Erstellungs-Daemon,
@command{guix-daemon}, wurde gefunden und geschlossen.  Sie hatte es
unprivilegierten Nutzern ermöglicht, das Ergebnis einer @dfn{Ableitung mit
fester Ausgabe}, wie Quellcode-Tarballs und Git-Checkouts, zu manipulieren.
So war eine lokale Rechteausweitung möglich.

Der Fehler ist behoben und wir raten Nutzern von Guix System, ihr System zu
aktualisieren mit einem Befehl wie:

@example
sudo guix system reconfigure /run/current-system/configuration.scm
sudo herd restart guix-daemon
@end example

Wenn Sie Guix auf einer anderen Distribution verwenden, erfahren Sie mit dem
Befehl @command{info \"(guix.de) Aktualisieren von Guix\"} oder auf
@uref{https://guix.gnu.org/manual/devel/de/html_node/Aktualisieren-von-Guix.html},
wie Sie Guix aktualisieren.

Siehe @uref{https://issues.guix.gnu.org/69728} für mehr Informationen zu dem
Fehler.")
         (fr "Une faille de sécurité du démon de compilation,
@command{guix-daemon}, a été identifiée et corrigée.  La faille permettait à
un·e utilisateur·rice sans privilège de corrompre le résultat d'une
@dfn{dérivation à sortie fixe} telle qu'une archive ou un @i{checkout} Git, ce
qui peut ensuite permettre une élévation locale de privilèges.

Ce problème est corrigé et les utilisateur·rices de Guix System sont invité·es
à mettre à jour leur système avec une commande telle que :

@example
sudo guix system reconfigure /run/current-system/configuration.scm
sudo herd restart guix-daemon
@end example

Pour voir comment mettre à jour Guix sur une autre distribution, lancer
@command{info \"(guix.fr) Mettre à niveau Guix\"} ou visiter
@uref{https://guix.gnu.org/manual/devel/fr/html_node/Mettre-a-niveau-Guix.html}.

Voir @uref{https://issues.guix.gnu.org/69728} pour plus d'informations sur
cette anomalie.")))

 (entry (commit "10a193596368443f441077525ebbddf787d91e4b")
        (title
          (en "Linux-libre 4.14 removed due to end of upstream support")

M etc/teams.scm => etc/teams.scm +4 -0
@@ 587,6 587,10 @@ GLib/GIO, GTK, GStreamer and Webkit."
                       "andreas@enge.fr")
  lxqt science tex)

(define-member (person "Tanguy Le Carrour"
                       "tanguy@bioneland.org")
  python home)

(define-member (person "Tobias Geerinckx-Rice"
                       "me@tobias.gr")
  core kernel mentors)

M etc/time-travel-manifest.scm => etc/time-travel-manifest.scm +11 -13
@@ 66,21 66,19 @@

(define %release-commits
  ;; Release commits: the list of version/commit pairs.
  ;;
  ;; Note: To merely compute the derivation of these revisions, we need to be
  ;; able to build their dependencies.  Some of them no longer build from
  ;; source due to time traps like <https://issues.guix.gnu.org/58650>; those
  ;; need to be built beforehand in a virtual build machine running "in the
  ;; past".
  '(("1.4.0" . "8e2f32cee982d42a79e53fc1e9aa7b8ff0514714")
    ("1.3.0" . "a0178d34f582b50e9bdbb0403943129ae5b560ff")

    ;; FIXME: To merely compute the derivation of these revisions, we need to
    ;; be able to build their dependencies.  However, pre-built binaries are
    ;; currently missing and some of these no longer build from source due to
    ;; time bombs like <https://issues.guix.gnu.org/58650>.  Thus, comment
    ;; them output until we have substitutes for these old things.

    ;; ("1.2.0" . "a099685659b4bfa6b3218f84953cbb7ff9e88063")
    ;; ("1.1.0" . "d62c9b2671be55ae0305bebfda17b595f33797f2")
    ;; ("1.0.1" . "d68de958b60426798ed62797ff7c96c327a672ac")
    ;; ("1.0.0" . "6298c3ffd9654d3231a6f25390b056483e8f407c")
    ;; ("0.16.0" . "4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c")
    ))
    ("1.2.0" . "a099685659b4bfa6b3218f84953cbb7ff9e88063")
    ("1.1.0" . "d62c9b2671be55ae0305bebfda17b595f33797f2")
    ("1.0.1" . "d68de958b60426798ed62797ff7c96c327a672ac")
    ("1.0.0" . "6298c3ffd9654d3231a6f25390b056483e8f407c")
    ("0.16.0" . "4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c")))

(manifest
 (map (match-lambda

M gnu/local.mk => gnu/local.mk +5 -1
@@ 426,6 426,7 @@ GNU_SYSTEM_MODULES =				\
  %D%/packages/lisp-check.scm			\
  %D%/packages/lisp-xyz.scm			\
  %D%/packages/llvm.scm				\
  %D%/packages/llvm-meta.scm			\
  %D%/packages/lout.scm				\
  %D%/packages/logging.scm			\
  %D%/packages/logo.scm				\


@@ 488,6 489,7 @@ GNU_SYSTEM_MODULES =				\
  %D%/packages/ntp.scm				\
  %D%/packages/nutrition.scm			\
  %D%/packages/nvi.scm				\
  %D%/packages/nx.scm				\
  %D%/packages/ocaml.scm			\
  %D%/packages/ocr.scm				\
  %D%/packages/openkinect.scm			\


@@ 1044,6 1046,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/clang-15.0-libc-search-path.patch	\
  %D%/packages/patches/clang-16.0-libc-search-path.patch	\
  %D%/packages/patches/clang-17.0-libc-search-path.patch	\
  %D%/packages/patches/clang-17.0-link-dsymutil-latomic.patch	\
  %D%/packages/patches/clang-runtime-asan-build-fixes.patch	\
  %D%/packages/patches/clang-runtime-esan-build-fixes.patch	\
  %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch	\


@@ 1520,6 1523,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/julia-Use-MPFR-4.2.patch	                \
  %D%/packages/patches/libcall-ui-make-it-installable.patch	\
  %D%/packages/patches/libcss-check-format.patch		\
  %D%/packages/patches/libextractor-tidy-support.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	\


@@ 1811,7 1815,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/python-feedparser-missing-import.patch	\
  %D%/packages/patches/python-louvain-fix-test.patch		\
  %D%/packages/patches/python-random2-getrandbits-test.patch		\
  %D%/packages/patches/python-poppler-qt5-fix-build.patch	\
  %D%/packages/patches/python-pyreadstat-link-libiconv.patch	\
  %D%/packages/patches/python-pyls-black-41.patch		\
  %D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch	\


@@ 2004,6 2007,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/ruby-latex-decode-fix-test.patch		\
  %D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
  %D%/packages/patches/ruby-nokogiri.patch			\
  %D%/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch \
  %D%/packages/patches/rustc-1.54.0-src.patch			\
  %D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch	\
  %D%/packages/patches/rust-1.70-fix-rustix-build.patch	\

M gnu/packages/bioconductor.scm => gnu/packages/bioconductor.scm +25 -23
@@ 4076,13 4076,13 @@ model as latent variables.")
(define-public r-asics
  (package
    (name "r-asics")
    (version "2.18.0")
    (version "2.18.1")
    (source (origin
              (method url-fetch)
              (uri (bioconductor-uri "ASICS" version))
              (sha256
               (base32
                "10wlmnlpn6ji256fp81rhsm2rsbsqsbvbjqqpw9vib11cwpam9wd"))))
                "0sii6sg20l6mfm8cj8zas2dm3wq6fwcwanav6fl7wkv8msk02sxb"))))
    (properties `((upstream-name . "ASICS")))
    (build-system r-build-system)
    (propagated-inputs


@@ 4838,13 4838,13 @@ enrichment in single cell data.")
(define-public r-coregx
  (package
    (name "r-coregx")
    (version "2.6.0")
    (version "2.6.1")
    (source
     (origin
       (method url-fetch)
       (uri (bioconductor-uri "CoreGx" version))
       (sha256
        (base32 "0ffbi5afw759mi5r657h67hdh9yr5jrzvl3aigp960jzb5542105"))))
        (base32 "16i8xq98vg8xgscwj0w9bsq68vjmhsvwwdw66kcphvf3jjfmn1rv"))))
    (properties `((upstream-name . "CoreGx")))
    (build-system r-build-system)
    (propagated-inputs


@@ 6900,13 6900,13 @@ objects.")
(define-public r-biostrings
  (package
    (name "r-biostrings")
    (version "2.70.2")
    (version "2.70.3")
    (source (origin
              (method url-fetch)
              (uri (bioconductor-uri "Biostrings" version))
              (sha256
               (base32
                "0lmaknlw3mk946h26davr9cz5xpzjp0c8qjxbr7drj8b2cjfm66a"))))
                "1704fn4dlswy5silmw2ri4yjbibqv249cnrb5mdgiwjh7l51w725"))))
    (properties
     `((upstream-name . "Biostrings")))
    (build-system r-build-system)


@@ 7332,14 7332,14 @@ distribution.")
(define-public r-deseq2
  (package
    (name "r-deseq2")
    (version "1.42.0")
    (version "1.42.1")
    (source
     (origin
       (method url-fetch)
       (uri (bioconductor-uri "DESeq2" version))
       (sha256
        (base32
         "1mz7v0vcl741zjvj63mk48hhbq6sk2fl2dwn9y1a6hr8fb79vy1a"))))
         "1s104b9k45b7kjrk56yw2yi4gi716nkcwnpqj4vj9w17xsb5m6zp"))))
    (properties `((upstream-name . "DESeq2")))
    (build-system r-build-system)
    (propagated-inputs


@@ 7882,18 7882,18 @@ genomic intervals.  In addition, it can use BAM or BigWig files as input.")
(define-public r-genomeinfodb
  (package
    (name "r-genomeinfodb")
    (version "1.38.6")
    (version "1.38.7")
    (source (origin
              (method url-fetch)
              (uri (bioconductor-uri "GenomeInfoDb" version))
              (sha256
               (base32
                "0z8wkv5jhx8wr6idnakm26lhhk4ssj6ivbb7hfbzhkajcbnnf7mq"))))
                "0xx6ybvnbpxj59g1fiij8bicniamhhd7d7fcw8c7py15y3h2mlc1"))))
    (properties
     `((upstream-name . "GenomeInfoDb")))
    (build-system r-build-system)
    (propagated-inputs
     (list r-biocgenerics r-genomeinfodbdata r-iranges r-rcurl r-s4vectors))
     (list r-biocgenerics r-genomeinfodbdata r-iranges r-s4vectors))
    (native-inputs
     (list r-knitr))
    (home-page "https://bioconductor.org/packages/GenomeInfoDb")


@@ 7973,13 7973,13 @@ Commons RESTful service.")
(define-public r-genomicfeatures
  (package
    (name "r-genomicfeatures")
    (version "1.54.3")
    (version "1.54.4")
    (source (origin
              (method url-fetch)
              (uri (bioconductor-uri "GenomicFeatures" version))
              (sha256
               (base32
                "1b78fss1nfyph6b7pv3ss6iv6r2qgrmx4klxvq8waz2nxvikxdl5"))))
                "0g2fv4r82ql7p2allapmgs2bj4ad70c8030vzkml7ghrxsgrryp3"))))
    (properties
     `((upstream-name . "GenomicFeatures")))
    (build-system r-build-system)


@@ 7993,8 7993,9 @@ Commons RESTful service.")
           r-dbi
           r-genomeinfodb
           r-genomicranges
           r-httr
           r-iranges
           r-rcurl
           r-rjson
           r-rsqlite
           r-rtracklayer
           r-s4vectors


@@ 8220,13 8221,13 @@ Enrichment Analysis} (GSEA).")
(define-public r-gsva
  (package
    (name "r-gsva")
    (version "1.50.0")
    (version "1.50.1")
    (source (origin
              (method url-fetch)
              (uri (bioconductor-uri "GSVA" version))
              (sha256
               (base32
                "01w5j7fmi3hsfd282kcn4v41mi58z2yfhapff2zgf9swdfps4m6z"))))
                "0ld0bbl6ar3yhi6ncg9d8q60hg4m4v5kphl044fw63l19ixln7cf"))))
    (properties `((upstream-name . "GSVA")))
    (build-system r-build-system)
    (propagated-inputs (list r-biobase


@@ 11724,24 11725,24 @@ Biology at
(define-public r-stringdb
  (package
    (name "r-stringdb")
    (version "2.14.0")
    (version "2.14.3")
    (source
     (origin
       (method url-fetch)
       (uri (bioconductor-uri "STRINGdb" version))
       (sha256
        (base32 "1ffn73sx0qbzbh8cjil9r159g0fjnvi6y8rlbg6nf7p3zx3aya54"))))
        (base32 "06bckzczg2rspazcbpp3v265c1dkr9l1vpdhkc7gdn2dk960jlkh"))))
    (properties `((upstream-name . "STRINGdb")))
    (build-system r-build-system)
    (propagated-inputs
     (list r-gplots
           r-hash
           r-httr
           r-igraph
           r-plotrix
           r-plyr
           r-png
           r-rcolorbrewer
           r-rcurl
           r-sqldf))
    (home-page "https://git.bioconductor.org/packages/STRINGdb")
    (synopsis "Search tool for the retrieval of interacting proteins database")


@@ 12261,16 12262,17 @@ describing each of the graphs.")
(define-public r-zlibbioc
  (package
    (name "r-zlibbioc")
    (version "1.48.0")
    (version "1.48.2")
    (source (origin
              (method url-fetch)
              (uri (bioconductor-uri "zlibbioc" version))
              (sha256
               (base32
                "043xwgw3yclxnxlfl7fdwf7qf7fajzvqdv34qxnngxj9wpgha3gv"))))
                "078v1iywzc0ng27r0wjchvkh4znzydq1swlalqb95xkmn72vrq8d"))))
    (properties
     `((upstream-name . "zlibbioc")))
    (build-system r-build-system)
    (native-inputs (list r-knitr))
    (home-page "https://bioconductor.org/packages/zlibbioc")
    (synopsis "Provider for zlib-1.2.5 to R packages")
    (description "This package uses the source code of zlib-1.2.5 to create


@@ 15912,14 15914,14 @@ attempts to assess their statistical significance.")
(define-public r-clusterprofiler
  (package
    (name "r-clusterprofiler")
    (version "4.10.0")
    (version "4.10.1")
    (source
     (origin
       (method url-fetch)
       (uri (bioconductor-uri "clusterProfiler" version))
       (sha256
        (base32
         "1vlrybyczfci5qnw50k0y2j2853r2p1ff5bpj35rdca4ja0iqh2q"))))
         "1jwi9029dy7ga4hv75grib7wdaghslwh4qk5awhgw3192a0qcixf"))))
    (properties
     `((upstream-name . "clusterProfiler")))
    (build-system r-build-system)

M gnu/packages/bioinformatics.scm => gnu/packages/bioinformatics.scm +63 -0
@@ 9308,6 9308,69 @@ viewer.")
               (delete 'patch-tests)
               (delete 'configure))))))))

(define-public morpheus
  (package
    (name "morpheus")
    (version "2.3.6")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://gitlab.com/morpheus.lab/morpheus")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1jyzbkz8d39kjicrk3ihcx7yvq5wsynvnlcw922bqqsw8nwnn12c"))
       (modules '((guix build utils)))
       (snippet
        '(begin
           (delete-file-recursively "3rdparty/eigen")
           (substitute* '("morpheus/core/cpm_shape_tracker.cpp"
                          "morpheus/core/membranemapper.h"
                          "morpheus/testing/components/motility/directed_motion_test.cpp"
                          "morpheus/testing/components/interaction/generator_cell_sorting.cpp"
                          "morpheus/testing/components/interaction/test_cell_sorting.cpp"
                          "morpheus/testing/core/cpm/generator_csm_plane.cpp"
                          "morpheus/testing/test_operators.h")
             (("#include \"eigen/") "#include \"eigen3/"))))))
    ;; This is for a different Morpheus.
    (properties '((lint-hidden-cve "CVE-2022-31261")))
    (build-system cmake-build-system)
    (arguments
     (list
      #:configure-flags
      '(list "-DMORPHEUS_GUI=OFF"
             "-DBUILD_TESTING=ON"
             "-DDOWNLOAD_XTENSOR=OFF")
      #:phases
      '(modify-phases %standard-phases
         (add-after 'unpack 'disable-gtest-download
           (lambda _
             (substitute* "3rdparty/CMakeLists.txt"
               (("add_subdirectory\\(GTest\\)") ""))))
         (replace 'check
           (lambda* (#:key tests? #:allow-other-keys)
             (when tests?
               (invoke "ctest" "--output-junit" "test_results.xml")))))))
    (inputs (list boost
                  eigen
                  file
                  gnuplot
                  libtiff
                  libxslt
                  xsimd
                  xtensor
                  xtl
                  zlib))
    (native-inputs
     (list doxygen googletest xxd))
    (home-page "https://gitlab.com/morpheus.lab/morpheus")
    (synopsis "Multicellular simulation")
    (description
     "Morpheus is a modeling and simulation environment for the study of
multi-scale and multicellular systems.")
    (license license:bsd-3)))

(define-public mosaik
  (let ((commit "5c25216d3522d6a33e53875cd76a6d65001e4e67"))
    (package

M gnu/packages/c.scm => gnu/packages/c.scm +2 -2
@@ 326,7 326,7 @@ compiler while still keeping it small, simple, fast and understandable.")
(define-public qbe
  (package
    (name "qbe")
    (version "1.1")
    (version "1.2")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 335,7 335,7 @@ compiler while still keeping it small, simple, fast and understandable.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "07nl1kdgpz7hwfkng0yy4xihk0fmv1a2hq9bxzgvhy3vk9r7fmn8"))))
                "1sxz5dn788n5c4v6mxa2kg3hf0a4qryg8wp0w3wx0qkzj6flj2sj"))))
    (build-system gnu-build-system)
    (arguments
     (list #:make-flags

M gnu/packages/check.scm => gnu/packages/check.scm +1 -0
@@ 250,6 250,7 @@ source code editors and IDEs.")
    (inherit check)
    (version "0.14.0")
    (source (origin
              (inherit (package-source check))
              (method url-fetch)
              (uri (string-append "https://github.com/libcheck/check/releases"
                                  "/download/" version "/check-" version ".tar.gz"))

M gnu/packages/containers.scm => gnu/packages/containers.scm +2 -2
@@ 291,7 291,7 @@ Layer-4 sockets.")
(define-public cni-plugins
  (package
    (name "cni-plugins")
    (version "1.0.1")
    (version "1.4.1")
    (source
     (origin
       (method git-fetch)


@@ 299,7 299,7 @@ Layer-4 sockets.")
             (url "https://github.com/containernetworking/plugins")
             (commit (string-append "v" version))))
       (sha256
        (base32 "1j91in0mg4nblpdccyq63ncbnn2pc2zzjp1fh3jy0bsndllgv0nc"))
        (base32 "0l6f4z762n8blak41wcxdmdhm92gqw2qcxcqd3s4wiql3d7273kj"))
       (file-name (git-file-name name version))))
    (build-system go-build-system)
    (arguments

M gnu/packages/cpp.scm => gnu/packages/cpp.scm +7 -4
@@ 30,7 30,7 @@
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022, 2023, 2024 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022-2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 Sughosha <Sughosha@proton.me>


@@ 907,9 907,12 @@ lock-free fixed size queue written in C++11.")
       (file-name (git-file-name name version))))
    (build-system gnu-build-system)
    (arguments
      ;; The tests are flaky when run in parallel. For more info:
      ;; https://bugs.gnu.org/46562
     '(#:parallel-tests? #f))
     ;; The tests are flaky when run in parallel. For more info:
     ;; https://bugs.gnu.org/46562
     `(#:parallel-tests? #f
       ,@(if (target-riscv64?)
             `(#:make-flags (list "LDFLAGS=-latomic"))
             '())))
    (native-inputs
     (list autoconf automake libtool
           ;; For tests.

M gnu/packages/cran.scm => gnu/packages/cran.scm +50 -58
@@ 2318,13 2318,13 @@ known as Dynamic Linear Models.")
(define-public r-zcompositions
  (package
    (name "r-zcompositions")
    (version "1.5.0-1")
    (version "1.5.0-2")
    (source (origin
              (method url-fetch)
              (uri (cran-uri "zCompositions" version))
              (sha256
               (base32
                "0sx6i03iyg4jxmjiyzkssz3i6c8nv29wwhbl7yd0wxapwpakmlj8"))))
                "08kcl870x7kai7zdhqgm4cbfhbrf673rjxghbwpn08l7pwkhix60"))))
    (properties `((upstream-name . "zCompositions")))
    (build-system r-build-system)
    (propagated-inputs


@@ 14572,13 14572,13 @@ tidyverse workflow.")
(define-public r-nodbi
  (package
    (name "r-nodbi")
    (version "0.10.3")
    (version "0.10.4")
    (source (origin
              (method url-fetch)
              (uri (cran-uri "nodbi" version))
              (sha256
               (base32
                "17ghgp6sabj4dlmx3cdn9rrhci7050a73cd17fymjksgvy1jbwf6"))))
                "0q4nsxic1jlraipdc6zi711c3316n9wgq1cgbywhjlxb52qhkmd7"))))
    (properties `((upstream-name . "nodbi")))
    (build-system r-build-system)
    (propagated-inputs


@@ 14652,14 14652,14 @@ functions.")
(define-public r-flextable
  (package
    (name "r-flextable")
    (version "0.9.4")
    (version "0.9.5")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "flextable" version))
       (sha256
        (base32
         "1dlsag1y3s7d5lp1dh2kxf1qax4r9xvxycpmxl64gkr50dk13bam"))))
         "14mq27k7998405qwpdpxa1csbf5pdgzj9s892xm95bd4chnshdvw"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-data-table


@@ 16525,14 16525,14 @@ console, resulting in an interactive editing environment.")
(define-public r-survey
  (package
    (name "r-survey")
    (version "4.2-1")
    (version "4.4-1")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "survey" version))
       (sha256
        (base32
         "0l7iml53k2blmcgvbvplln08fn2s6da856m5izcvw87v6bhn2g6c"))))
         "1649srmdr8i9j8grqikkm8nbfav31s7iygx6pv96jvr3wh80yh46"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-lattice


@@ 16540,7 16540,10 @@ console, resulting in an interactive editing environment.")
           r-minqa
           r-mitools
           r-numderiv
           r-rcpp
           r-rcpparmadillo
           r-survival))
    (native-inputs (list r-r-rsp))
    (home-page "https://r-survey.r-forge.r-project.org/survey/")
    (synopsis "Analysis of complex survey samples")
    (description


@@ 17065,13 17068,13 @@ Hothorn, Westfall, 2010, CRC Press).")
(define-public r-multcompview
  (package
    (name "r-multcompview")
    (version "0.1-9")
    (version "0.1-10")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "multcompView" version))
       (sha256
        (base32 "15vki166n2k4ng72hy62c2mzz18s10h6l6w839qplg0zsplr6f8z"))))
        (base32 "12mdk12xciq1d3zn94rixahhcah2qq41lvb5n4kzgjaq4yr4kwiq"))))
    (properties `((upstream-name . "multcompView")))
    (build-system r-build-system)
    (home-page "https://cran.r-project.org/package=multcompView")


@@ 18529,14 18532,14 @@ Bioconductor packages.")
(define-public r-rgl
  (package
    (name "r-rgl")
    (version "1.2.8")
    (version "1.3.1")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "rgl" version))
       (sha256
        (base32
         "1x0p2yldg2mjf64xd5dd0bidzgy7b39w7zn18ghan2rdf0wffdg5"))
         "0jbda1b4lrkcpdld369687pm7isy69l5sx1wg2yrpvvzvmcppslz"))
       (snippet
        '(delete-file "inst/htmlwidgets/lib/CanvasMatrix/CanvasMatrix.min.js"))))
    ;; For OpenGL and X11 support


@@ 18561,10 18564,10 @@ Bioconductor packages.")
           r-rmarkdown))                ;for vignettes
    (inputs
     (list freetype
           libpng
           glu
           libpng
           libx11
           pandoc
           zlib
           zlib))
    (propagated-inputs
     (list r-base64enc


@@ 18978,13 18981,13 @@ Tabelow (2007) <DOI:10.18637/jss.v019.i01>.")
(define-public r-admisc
  (package
    (name "r-admisc")
    (version "0.34")
    (version "0.35")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "admisc" version))
       (sha256
        (base32 "1psvi8hb7j65abw8g4ya9r43r5kd9mcv478pg2d09za0cig8gkzx"))))
        (base32 "0gzdb9dm34qfkjqgfrd3wm96dzhcps4xayyrhp80mzgh14zmnjyg"))))
    (properties `((upstream-name . "admisc")))
    (build-system r-build-system)
    (home-page "https://github.com/dusadrian/admisc")


@@ 19327,14 19330,14 @@ over-plotting in scatter plots with text.")
(define-public r-colorramps
  (package
    (name "r-colorramps")
    (version "2.3.2")
    (version "2.3.4")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "colorRamps" version))
       (sha256
        (base32
         "0cq8l6ybhff2q2dj2i73b4cnw6v2c6ql24jbrkh0xrpc9wjsarxj"))))
         "1y4gn6v8wmwq3wcfgdnx1ah2qa53gayvbfa62kp286ga4c8k3prw"))))
    (properties `((upstream-name . "colorRamps")))
    (build-system r-build-system)
    (home-page "https://cran.r-project.org/web/packages/colorRamps")


@@ 19931,14 19934,14 @@ and compatibility with @code{ape} objects.")
(define-public r-rnifti
  (package
    (name "r-rnifti")
    (version "1.6.0")
    (version "1.6.1")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "RNifti" version))
       (sha256
        (base32
         "0spsdkqvlkk7xn6wz6778gc6cc7dnfcwpz91q8wdzxgcbgxdy0yv"))))
         "0wn06fnq5c7f0vwakryb75vzkjh03dqz2z57lgmn68hwgssnpalc"))))
    (properties `((upstream-name . "RNifti")))
    (build-system r-build-system)
    (inputs (list zlib))


@@ 21642,14 21645,14 @@ subsetting.")
(define-public r-globals
  (package
    (name "r-globals")
    (version "0.16.2")
    (version "0.16.3")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "globals" version))
       (sha256
        (base32
         "02kpdlrx1bannaixz03c0f7bii9g36iy2nw779mfgi56byljcb38"))))
         "0nwcl40sbmmf812di9c3lryls9wn2k2dyjvpkp9832wd4jafsg6p"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-codetools))


@@ 22208,14 22211,14 @@ numbers (e.g. concentrations).")
(define-public r-cobs
  (package
    (name "r-cobs")
    (version "1.3-7")
    (version "1.3-8")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "cobs" version))
       (sha256
        (base32
         "0gz6i8scvfkmg0z7rcqc422dm360xv5ygcxnj6yyvpcpdv7sdp9k"))))
         "08cqpiylbfy5j5xxajpngqaycmmciwhyf3sk3972x2l6rg3lj81c"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-quantreg r-sparsem))


@@ 22798,14 22801,14 @@ network.")
(define-public r-gmodels
  (package
    (name "r-gmodels")
    (version "2.18.1.1")
    (version "2.19.1")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "gmodels" version))
       (sha256
        (base32
         "158y7yh4maawn9vki8cq4sil48xib2bbpl6qgj5gvlkw3c14hzfs"))))
         "13c8x7iwyz36qir3ikbvjb5dl6gdh4fh82qdxcpcdinwfhrbhmxv"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-gdata r-mass))


@@ 24829,14 24832,14 @@ databases, including ENA, PDB or ChEMBL are also accessible.")
(define-public r-ggraph
  (package
    (name "r-ggraph")
    (version "2.2.0")
    (version "2.2.1")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "ggraph" version))
       (sha256
        (base32
         "0zs02xyzvimk8hj1z465zxp1hlca3gfirdcwb3gqriwsmnfhg661"))))
         "1w9snb43wpa2rv16fx5vmh7nqpgkr05iz6flnmlfx3xd0ylzh1a4"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-cli


@@ 27262,14 27265,14 @@ both R code and compiled C/C++/FORTRAN code.")
(define-public r-systemfonts
  (package
    (name "r-systemfonts")
    (version "1.0.5")
    (version "1.0.6")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "systemfonts" version))
       (sha256
        (base32
         "08sqw5izpwhawcjkcyscvslz914skwfi0s68rdwrqwwkh8fzn3w4"))))
         "1mqxb2njfnk5rfwkqc940xbpwd3dh25zac4sapv5mjyddrxnwn6i"))))
    (properties `((upstream-name . "systemfonts")))
    (build-system r-build-system)
    (propagated-inputs


@@ 27291,14 27294,14 @@ be used further by e.g. graphic devices.")
(define-public r-graphlayouts
  (package
    (name "r-graphlayouts")
    (version "1.1.0")
    (version "1.1.1")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "graphlayouts" version))
       (sha256
        (base32
         "14ib4yjcxb6zgci5h89p9swqabab57bzywwp96d3nhn620chap22"))))
         "009q5y46lbizdabbb6a61xlfa3g5lf3nd9w42709lcxi0ad4bhkv"))))
    (properties `((upstream-name . "graphlayouts")))
    (build-system r-build-system)
    (propagated-inputs


@@ 28550,21 28553,18 @@ and mixture of Gaussian models.")
(define-public r-accsda
  (package
    (name "r-accsda")
    (version "1.1.2")
    (version "1.1.3")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "accSDA" version))
       (sha256
        (base32
         "0jf4x5j9y7a3mvf2ghjp6bxdq1s5jh2sx3x3ar6f3lyzzvrnls4v"))))
         "1s0c4wy4bzrc2fkka7kl519z1yckp6s4ggzy1ik992ygyprdcs1q"))))
    (properties `((upstream-name . "accSDA")))
    (build-system r-build-system)
    (propagated-inputs
     (list r-ggplot2
           r-ggthemes
           r-gridextra
           r-mass))
     (list r-ggplot2 r-gridextra r-mass))
    (home-page "https://github.com/gumeo/accSDA/wiki")
    (synopsis "Accelerated sparse discriminant analysis")
    (description


@@ 29856,14 29856,14 @@ variable observed over time.")
(define-public r-fda
  (package
    (name "r-fda")
    (version "6.1.7")
    (version "6.1.8")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "fda" version))
       (sha256
        (base32
         "00hiz15v31zs5l0bqdkim1fpfd3bjvssv77iczq0si724s4fqxiq"))))
         "01y488zviaj9z8h88vnia9wg4as62jx73la1qji1ljbr5258b3gg"))))
    (properties `((upstream-name . "fda")))
    (build-system r-build-system)
    (propagated-inputs


@@ 32714,14 32714,14 @@ techniques to average Bayesian predictive distributions.")
(define-public r-rstan
  (package
    (name "r-rstan")
    (version "2.32.5")
    (version "2.32.6")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "rstan" version))
       (sha256
        (base32
         "0m655pf0lrhqh2mzylximd2vch9wy252k4zwyfqn1sfwmx642dva"))))
         "0w0si8sd26c4nivqh85y0imil14sp4vy97yikmrv1lxvj40x141k"))))
    (properties
     '((upstream-name . "rstan")
       (updater-extra-native-inputs . ("tzdata-for-tests"))))


@@ 32750,6 32750,7 @@ techniques to average Bayesian predictive distributions.")
           r-rcppeigen
           r-rcppparallel
           r-stanheaders))
    (inputs (list pandoc))
    (home-page "https://discourse.mc-stan.org/")
    (synopsis "R interface to Stan")
    (description


@@ 39592,28 39593,19 @@ package.")
(define-public r-qs
  (package
    (name "r-qs")
    (version "0.25.7")
    (version "0.26.1")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "qs" version))
       (sha256
        (base32
         "0a0jay9p2k0ahf08s94dr1w66qhbgzs87vkaanwkd4j6lvijncz7"))))
         "0qmgnc4igy8mjzarm30cgi4z75hh8f01kvcs6n6s63cy4qk30vs6"))))
    (properties `((upstream-name . "qs")))
    (build-system r-build-system)
    (arguments
     (list
      #:phases
      '(modify-phases %standard-phases
         ;; Our zstd is at 1.5.0, but this package bundles 1.5.2.
         (add-after 'unpack 'use-older-zstd
           (lambda _
             (substitute* "configure"
               (("100502") "100500")))))))
    (inputs (list lz4 (list zstd "lib")))
    (propagated-inputs
     (list r-rapiserialize r-rcpp r-stringfish))
     (list r-bh r-rapiserialize r-rcpp r-stringfish))
    (native-inputs
     (list pkg-config r-knitr))
    (home-page "https://github.com/traversc/qs")


@@ 40039,14 40031,14 @@ fully reproducible.")
(define-public r-paws-common
  (package
    (name "r-paws-common")
    (version "0.7.0")
    (version "0.7.1")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "paws.common" version))
       (sha256
        (base32
         "05rld34brjc32p9f9cbqyyh208rh9idnyih33cpw7bz7bfyicnqm"))))
         "1mjbyykav3f5yv59hnaihqsqhinvrlhphp93ks9xp756w6abciqf"))))
    (properties `((upstream-name . "paws.common")))
    (build-system r-build-system)
    (propagated-inputs


@@ 41082,13 41074,13 @@ Monte Carlo approach implemented in JAGS.")
(define-public r-logger
  (package
    (name "r-logger")
    (version "0.2.2")
    (version "0.3.0")
    (source
     (origin
       (method url-fetch)
       (uri (cran-uri "logger" version))
       (sha256
        (base32 "08kym5i5fvbf5xhh9qdszp4jdgyc7j7zpnwzy68wabqz73aff6sg"))))
        (base32 "0ivhrmq408pb7gx7yhmrn6mjkx15dvkb4bpk4z5y642l3j2vv9vd"))))
    (properties `((upstream-name . "logger")))
    (build-system r-build-system)
    (native-inputs (list r-knitr))

M gnu/packages/crates-io.scm => gnu/packages/crates-io.scm +1 -0
@@ 9664,6 9664,7 @@ capabilities.")
    (description "This package provides spec generation for clap-rs/clap.")
    (license license:expat)))

;; TODO: Remove this package in favor of rust-cargo in rust-apps.scm.
(define-public rust-cargo-0.76
  (package
    (name "rust-cargo")

M gnu/packages/diffoscope.scm => gnu/packages/diffoscope.scm +3 -2
@@ 74,7 74,7 @@
(define-public diffoscope
  (package
    (name "diffoscope")
    (version "258")
    (version "260")
    (source
     (origin
       (method git-fetch)


@@ 83,7 83,7 @@
             (commit version)))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1wppshi18lyrgxxi8j06ij0qi31zdgqwjj6bycsyvipkc1cj6xhp"))))
        (base32 "1yp32g2769mn91k6wx6fs7lhcfi1cdy54apkgfaf7ib6l0ji5hwv"))))
    (build-system python-build-system)
    (arguments
     (list


@@ 198,6 198,7 @@
            odt2txt
            openssh
            openssl
            p7zip
            pgpdump
            poppler
            python-jsbeautifier

M gnu/packages/docker.scm => gnu/packages/docker.scm +7 -3
@@ 8,6 8,7 @@
;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com>
;;; Copyright © 2021, 2022 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2024 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 47,6 48,7 @@
  #:use-module (gnu packages networking)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python)
  #:use-module (gnu packages python-build)
  #:use-module (gnu packages python-crypto)
  #:use-module (gnu packages python-web)
  #:use-module (gnu packages python-xyz)


@@ 60,22 62,24 @@
(define-public python-docker
  (package
    (name "python-docker")
    (version "5.0.3")
    (version "7.0.0")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "docker" version))
       (sha256
        (base32
         "1yr7w8vmdis01myx26pqx7wcyz2cy1mfs421alppq3lpc9ms45nr"))))
         "18z5wzqm7dbxaa5q4gs8yh2dma8i7savqcvibvy1i56djbxkcdrj"))))
    (build-system python-build-system)
    ;; TODO: Tests require a running Docker daemon.
    (arguments '(#:tests? #f))
    (inputs
     (list python-requests python-six python-urllib3))
    (native-inputs
     (list python-setuptools-scm))
    (propagated-inputs
     (list python-docker-pycreds python-paramiko ;adds SSH support
           python-websocket-client))
           python-packaging python-websocket-client))
    (home-page "https://github.com/docker/docker-py/")
    (synopsis "Python client for Docker")
    (description "Docker-Py is a Python client for the Docker container

M gnu/packages/emacs-xyz.scm => gnu/packages/emacs-xyz.scm +60 -54
@@ 448,7 448,7 @@ input via a small child-frame spawned at the position of the cursor.")
(define-public emacs-arei
  (package
    (name "emacs-arei")
    (version "0.9.2")
    (version "0.9.3")
    (source
     (origin
       (method git-fetch)


@@ 458,7 458,7 @@ input via a small child-frame spawned at the position of the cursor.")
       (file-name (git-file-name name version))
       (sha256
        (base32
         "0qpri3ygb1fffi9mlipa7qmb6434aispbz1z3j14i7zrqassigm4"))))
         "0nf101zdrz8yqscpvvmaw0dgb334h9v2ychyjlq95vksvx9r1zid"))))
    (build-system emacs-build-system)
    (propagated-inputs (list emacs-eros emacs-sesman emacs-queue))
    (home-page "https://git.sr.ht/~abcdw/emacs-arei")


@@ 1065,19 1065,20 @@ uploading PlatformIO projects.")
(define-public emacs-hyperbole
  (package
    (name "emacs-hyperbole")
    (version "9.0.0")
    (version "9.0.1")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "https://elpa.gnu.org/packages/"
                           "hyperbole-" version ".tar"))
       (sha256
        (base32 "07kpyp3ggf4knakn18niy819l184apx4d9vbcwv57j8zyqgn4c3l"))))
        (base32 "0a7py2dvszh0rf2smbmm8msjrc8vbbvlqnsqw0m2l12v8vllmxnb"))))
    (build-system emacs-build-system)
    (arguments
     (list #:include #~(cons* "DEMO"
                              "DEMO-ROLO.otl"
                              "HY-ABOUT"
                              "HY-NEWS"
                              "man/hkey-help.txt"
                              "man/hyberbole.info"
                              "kotl/.*"


@@ 11287,41 11288,44 @@ Features degrade gracefully when viewed from terminal.")
    (license license:gpl3+)))

(define-public emacs-org-pandoc-import
  (package
    (name "emacs-org-pandoc-import")
    (version "1.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/tecosaur/org-pandoc-import/")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "00z9bpm975mlyqlxbyib3j547br6kvcam04b70qkmq22vh8yf341"))))
    (build-system emacs-build-system)
    (arguments
     `(#:include
       (cons* "^filters\\/" "^preprocessors" %default-include)
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'patch-exec-paths
           (lambda* (#:key inputs #:allow-other-keys)
             (let ((pandoc (assoc-ref inputs "pandoc")))
               (substitute* "org-pandoc-import.el"
                 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))))))))
    (inputs
     (list pandoc))
    (home-page "https://github.com/tecosaur/org-pandoc-import/")
    (synopsis "Read and edit non-Org file types in Org")
    (description
     "This package uses Pandoc to convert selected file types to Org.  It can
  (let ((commit "db308f1a05be26ce5b287633637ce554599b1377")
        (revision "0"))
    (package
      (name "emacs-org-pandoc-import")
      (version (git-version "1.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/tecosaur/org-pandoc-import/")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "19z1qaairhpj8kyyqwx8yf53j3f03a9a1z1jfa348qmncnra5jmh"))))
      (build-system emacs-build-system)
      (arguments
       `(#:include
         (cons* "^filters\\/" "^preprocessors" %default-include)
         #:phases
         (modify-phases %standard-phases
           (add-after 'unpack 'patch-exec-paths
             (lambda* (#:key inputs #:allow-other-keys)
               (let ((pandoc (assoc-ref inputs "pandoc")))
                 (substitute* "org-pandoc-import.el"
                   (("\"pandoc\"")
                    (string-append "\"" pandoc "/bin/pandoc\"")))))))))
      (inputs
       (list pandoc))
      (home-page "https://github.com/tecosaur/org-pandoc-import/")
      (synopsis "Read and edit non-Org file types in Org")
      (description
       "This package uses Pandoc to convert selected file types to Org.  It can
convert supported non-Org files to an Org file with Pandoc.

It can also intercept requests for non-Org files it knows it can convert,
convert the file to a temporary Org file, and open this file instead.  On
save, it exports back to the original non-Org file.")
    (license license:gpl3+)))
      (license license:gpl3+))))

(define-public emacs-org-pomodoro
  ;; Last release version was from 2016.


@@ 13088,27 13092,29 @@ The following completions are currently available:
    (license license:gpl3+)))

(define-public emacs-sway
  (package
    (name "emacs-sway")
    (version "0.7")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/thblt/sway.el")
             (commit version)))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1w29dkl7s835zgwnc4jx1cp84s6mmwbvlil8z2c31psy0rlajc6i"))))
    (build-system emacs-build-system)
    (home-page "https://github.com/thblt/sway.el")
    (synopsis "Communication with the Sway window manager")
    (description
     "This is a basic library to control the Sway window manager from Emacs.
  (let ((commit "84eae5e16a643eb00b0a422ded751cceb17cc8f0")
        (revision "0"))
    (package
      (name "emacs-sway")
      (version (git-version "0.7" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/thblt/sway.el")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "194plzc6rg7a5j3f68say0znix34yp8421cdlkwnw345czh52mjn"))))
      (build-system emacs-build-system)
      (home-page "https://github.com/thblt/sway.el")
      (synopsis "Communication with the Sway window manager")
      (description
       "This is a basic library to control the Sway window manager from Emacs.
Its main use case is in combination with popup managers like Shackle, to
use frames instead of windows while still giving focus to existing frames
instead of duplicating them.")
    (license license:gpl3+)))
      (license license:gpl3+))))

(define-public emacs-sweet-theme
  (let ((commit "78f741806ecebe01224bf54d09ad80e306652508")


@@ 24405,7 24411,7 @@ mode.")
(define-public emacs-crux
  (package
    (name "emacs-crux")
    (version "0.4.0")
    (version "0.5.0")
    (source
     (origin
       (method git-fetch)


@@ 24415,7 24421,7 @@ mode.")
       (file-name (git-file-name name version))
       (sha256
        (base32
         "1h28chpyq61k72qh749r5kqq1y70wx3xw9c3zyfzmy750wlw6nyj"))))
         "00n4k09x3slchs81xw1q0rcb78ncb5k2lvsigb9j7s3kxbj6bvvy"))))
    (build-system emacs-build-system)
    (home-page "https://github.com/bbatsov/crux")
    (synopsis "Collection of useful functions for Emacs")

M gnu/packages/finance.scm => gnu/packages/finance.scm +6 -6
@@ 684,7 684,7 @@ blockchain.")
  ;; the system's dynamically linked library.
  (package
    (name "monero")
    (version "0.18.3.1")
    (version "0.18.3.2")
    (source
     (origin
       (method git-fetch)


@@ 702,7 702,7 @@ blockchain.")
            delete-file-recursively
            '("external/miniupnp" "external/rapidjson"))))
       (sha256
        (base32 "1k6mrgsvmqsfk95w8kjmp9v2fghjmmpj40667zndrw9jx1h85mwx"))))
        (base32 "0ri3ss5vgsjk5pzmaaw8yi7sg4lasx58d8kz3m6z5vg7p69gdzxv"))))
    (build-system cmake-build-system)
    (native-inputs
     (list doxygen


@@ 789,7 789,7 @@ the Monero command line client and daemon.")
(define-public monero-gui
  (package
    (name "monero-gui")
    (version "0.18.3.1")
    (version "0.18.3.2")
    (source
     (origin
       (method git-fetch)


@@ 805,7 805,7 @@ the Monero command line client and daemon.")
           ;; See the 'extract-monero-sources' phase.
           (delete-file-recursively "monero")))
       (sha256
        (base32 "1fjx8gdzc1pmfsi14r09gfmkglvh560pnxk70p0k82a4gbs1vyz2"))))
        (base32 "0jic43b7jzc1i7x2mqqpbbb2992687nm12kk642yr10dm4maklzb"))))
    (build-system qt-build-system)
    (native-inputs
     `(,@(package-native-inputs monero)


@@ 1750,7 1750,7 @@ following three utilities are included with the library:
(define-public bitcoin-unlimited
  (package
    (name "bitcoin-unlimited")
    (version "2.0.0.0")
    (version "2.0.0.1")
    (source
     (origin
       (method git-fetch)


@@ 1759,7 1759,7 @@ following three utilities are included with the library:
             (commit (string-append "BCHunlimited" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0s4iyjfhjx21xa3z7433m4skfr115565k0ckza87ha2d4nl8kz5h"))))
        (base32 "1kkmg0gp86qz3ya8y5a00yic1mals138b9fv2cjlm7683sfjjljx"))))
    (build-system gnu-build-system)
    (native-inputs
     (list autoconf

M gnu/packages/freedesktop.scm => gnu/packages/freedesktop.scm +5 -6
@@ 1582,7 1582,7 @@ move and resize windows, etc.")
(define-public exempi
  (package
    (name "exempi")
    (version "2.5.2")
    (version "2.6.5")
    (source (origin
             (method url-fetch)
             (uri (string-append


@@ 1590,7 1590,7 @@ move and resize windows, etc.")
                   name "-" version ".tar.bz2"))
             (sha256
              (base32
               "1mdfxb36p8251n5m7l55gx3fcqpk46yz9v568xfr8igxmqa47xaj"))))
               "1zhzwkfna14sy78llhfc94cy5hv3076j5v3p1zmvawzz5gaa7yg9"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags (list (string-append "--with-boost="


@@ 1604,8 1604,7 @@ move and resize windows, etc.")
             ;; <https://gitlab.freedesktop.org/libopenraw/exempi/-/issues/17>.
             ;; Simply delete the static library instead to save ~4.3 MiB.
             (delete-file (string-append (assoc-ref outputs "out")
                                         "/lib/libexempi.a"))
             #t)))))
                                         "/lib/libexempi.a")))))))
    (native-inputs
     (list boost)) ; tests
    (inputs


@@ 2536,14 2535,14 @@ their MIME type.
(define-public uchardet
  (package
    (name "uchardet")
    (version "0.0.7")
    (version "0.0.8")
    (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.freedesktop.org/software/"
                            name "/releases/" name "-" version ".tar.xz"))
        (sha256
          (base32 "1ca51sryhryqz82v4d0graaiqqq5w2f33a9gj83b910xmq499irz"))))
          (base32 "1w659aiphbnczpry771diakrzg9a8aqpn2abcxx1870aq37n0yp9"))))
    (build-system cmake-build-system)
    (home-page "https://www.freedesktop.org/wiki/Software/uchardet/")
    (synopsis "Encoding detector library")

M gnu/packages/freeipmi.scm => gnu/packages/freeipmi.scm +2 -2
@@ 28,14 28,14 @@
(define-public freeipmi
  (package
    (name "freeipmi")
    (version "1.6.11")
    (version "1.6.14")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/freeipmi/freeipmi-"
                                 version ".tar.gz"))
             (sha256
              (base32
               "15x861i8r1gk44924d2pszlb8mapgkr18m3991vla4601y8xdyv5"))))
               "1dgd2izbp6mqk7l0bgw9fkpvl4mjz672p8baz3ac9k5pfrfaqg8s"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags '("--disable-static"

M gnu/packages/games.scm => gnu/packages/games.scm +8 -11
@@ 2130,14 2130,14 @@ It is similar to standard chess but this variant is far more complicated.")
(define-public ltris
  (package
    (name "ltris")
    (version "1.2.6")
    (version "1.3")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/lgames/ltris/"
                           "ltris-" version ".tar.gz"))
       (sha256
        (base32 "1xj65kn815x2hq1ynzjyc90dj178xwa2xvx7jx99qf60ahaf4g62"))))
        (base32 "144zvnnky79z5ychyyb2wsp7h2pcbl50fbzd9w9dvxkw6adz4yip"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases


@@ 4676,7 4676,7 @@ on the screen and keyboard to display letters.")
(define-public manaplus
  (package
    (name "manaplus")
    (version "1.9.3.23")
    (version "2.1.3.17")
    (source (origin
              (method url-fetch)
              (uri (string-append


@@ 4684,18 4684,15 @@ on the screen and keyboard to display letters.")
                    version "/manaplus-" version ".tar.xz"))
              (sha256
               (base32
                "1ky182p4svwdqm6cf7jbns85hidkhkhq4s17cs2p381f0klapfjz"))))
                "0ggswsa3xq7lss3j4k7fyzn56sw7hlrwk744i3d9w0n4932nmlg8"))))
    (build-system gnu-build-system)
    (arguments
     '(#:configure-flags
       (list (string-append "CPPFLAGS=-I"
                            (assoc-ref %build-inputs "sdl-union")
                            "/include/SDL"))))
     (list #:configure-flags #~'("--with-sdl2")))
    (native-inputs
     (list pkg-config))
    (inputs
     (list glu curl libxml2 mesa
           (sdl-union)))
           sdl2 sdl2-image sdl2-mixer sdl2-net sdl2-ttf))
    (home-page "https://manaplus.org")
    (synopsis "Client for 'The Mana World' and similar games")
    (description


@@ 11379,7 11376,7 @@ play; it will look for them at @file{~/.local/share/fheroes2} folder.")
(define-public vcmi
  (package
    (name "vcmi")
    (version "1.4.2")
    (version "1.4.5")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 11388,7 11385,7 @@ play; it will look for them at @file{~/.local/share/fheroes2} folder.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "039d9dvb2i4y1fj6q5py34r17fwb5jqxkjcg7j57asjk4w9b7i8b"))
                "1z4vy3drj6dra8rb243pyryr61jnlw3l7yxsxwl9rddv8cdk69lz"))
              (patches (search-patches "vcmi-disable-privacy-breach.patch"))))
    (build-system cmake-build-system)
    (arguments

M gnu/packages/gnunet.scm => gnu/packages/gnunet.scm +73 -77
@@ 13,7 13,7 @@
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2023 Adam Faiz <adam.faiz@disroot.org>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 32,6 32,7 @@

(define-module (gnu packages gnunet)
  #:use-module (gnu packages)
  #:use-module (gnu packages apparmor)
  #:use-module (gnu packages base)
  #:use-module (gnu packages file)
  #:use-module (gnu packages aidc)


@@ 65,6 66,7 @@
  #:use-module (gnu packages python)
  #:use-module (gnu packages sphinx)
  #:use-module (gnu packages sqlite)
  #:use-module (gnu packages texinfo)
  #:use-module (gnu packages text-editors)
  #:use-module (gnu packages tls)
  #:use-module (gnu packages upnp)


@@ 83,86 85,80 @@

(define-public libextractor
  (package
   (name "libextractor")
   (version "1.11")
   (source (origin
            (method url-fetch)
            (uri (string-append "mirror://gnu/libextractor/libextractor-"
                                version ".tar.gz"))
            (sha256
             (base32
              "13xxv11mif3m0mpk7i43mljhhaqrj52kznm1qi3qb8s6hymk7xhn"))))
   (build-system gnu-build-system)
   ;; WARNING: Checks require /dev/shm to be in the build chroot, especially
   ;; not to be a symbolic link to /run/shm.
   ;; FIXME:
   ;; The following dependencies are all optional, but should be
   ;; available for maximum coverage:
   ;; * librpm (rpm)    ; investigate failure
   ;; * libtidy-html (tidy-html) ; investigate failure
   (inputs
    `(("exiv2" ,exiv2)
      ("bzip2" ,bzip2)
      ("flac" ,flac)
      ("ffmpeg" ,ffmpeg-4)
      ("file" ,file)                           ;libmagic, for the MIME plug-in
      ("glib" ,glib)
      ("giflib" ,giflib)
      ("gstreamer" ,gstreamer)
      ("gst-plugins-base" ,gst-plugins-base)
      ("gtk+" ,gtk+)
      ("libarchive" ,libarchive)
      ("libgsf" ,libgsf)
      ("libjpeg" ,libjpeg-turbo)
      ("libltdl" ,libltdl)
      ("libmpeg2" ,libmpeg2)
      ("libmp4v2" ,libmp4v2)
      ("libsmf" ,libsmf)
      ("libogg" ,libogg)
      ("libtiff" ,libtiff)
      ("libvorbis" ,libvorbis)
      ("zlib" ,zlib)))
   (native-inputs
    (list pkg-config))
   (outputs '("out"
              "static")) ; 420 KiB .a files
   (arguments
    `(#:configure-flags
      (list (string-append "--with-ltdl="
                           (assoc-ref %build-inputs "libltdl")))
      #:parallel-tests? #f
      #:phases
      (modify-phases %standard-phases
        (add-after 'configure 'fix-exiv2-tests
          ;; exiv2>=0.27.3 rounds geolocation
          ;; https://github.com/Exiv2/exiv2/pull/1107/commits/db1be4ae8e1077949fcb6a960e93069d6a41b395#diff-f3f55183ccbe956c720c86e61f708d9f
          (lambda _
            (substitute* "src/plugins/test_exiv2.c"
              (("17.585\\\\\" ") "18\\\"")
              (("21.713\\\\\" ") "22\\\""))
            #t))
        (add-after 'install 'move-static-libraries
          (lambda* (#:key outputs #:allow-other-keys)
            ;; Move static libraries to the "static" output.
            (let* ((out    (assoc-ref outputs "out"))
                   (lib    (string-append out "/lib"))
                   (static (assoc-ref outputs "static"))
                   (slib   (string-append static "/lib")))
              (mkdir-p slib)
              (for-each (lambda (file)
                          (install-file file slib)
                          (delete-file file))
                        (find-files lib "\\.a$"))
              #t))))))
   (synopsis "Library to extract meta-data from media files")
   (description
    "GNU libextractor is a library for extracting metadata from files.  It
    (name "libextractor")
    (version "1.13")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/libextractor/libextractor-"
                                  version ".tar.gz"))
              (sha256
               (base32
                "0mgprmwdhdwq9xhfxfhcncd304425nvcc4zi8ci5f0nja4n333xv"))
              (patches
               (search-patches "libextractor-tidy-support.patch"))))
    (build-system gnu-build-system)
    (outputs '("out"
               "static"))               ; 420 KiB .a files
    (arguments
     (list #:configure-flags
           #~(list (string-append "--with-ltdl="
                                  #$(this-package-input "libltdl")))
           #:phases
           #~(modify-phases %standard-phases
               (add-after 'unpack 'force-reconfigure
                 (lambda _
                   (delete-file "configure")))
               (add-after 'install 'move-static-libraries
                 (lambda* (#:key outputs #:allow-other-keys)
                   ;; Move static libraries to the "static" output.
                   (let* ((out    #$output)
                          (lib    (string-append out "/lib"))
                          (slib   (string-append #$output:static "/lib")))
                     (mkdir-p slib)
                     (for-each (lambda (file)
                                 (install-file file slib)
                                 (delete-file file))
                               (find-files lib "\\.a$"))))))))
    (native-inputs
     (list autoconf-2.71
           automake
           gettext-minimal
           libtool
           pkg-config
           texinfo))
    (inputs
     (list bzip2
           exiv2
           file                         ;libmagic, for the MIME plug-in
           flac
           gdk-pixbuf
           giflib
           glib
           gst-plugins-base
           gstreamer
           libapparmor
           libarchive
           libgsf
           libjpeg-turbo
           libltdl
           libmp4v2
           libmpeg2
           libogg
           libsmf
           libtiff
           libvorbis
           rpm
           tidy-html
           zlib))
    (synopsis "Library to extract meta-data from media files")
    (description
     "GNU libextractor is a library for extracting metadata from files.  It
supports a very large number of file formats, including audio files, document
files, and archive files.  Each file format is implemented as a plugin, so
new formats can be added easily.  The package also contains a command-line
tool to extract metadata from a file and print the results.")
   (license license:gpl3+)
   (home-page "https://www.gnu.org/software/libextractor/")))
    (license license:gpl3+)
    (home-page "https://www.gnu.org/software/libextractor/")))

(define-public libmicrohttpd
  (package

M gnu/packages/gnuzilla.scm => gnu/packages/gnuzilla.scm +3 -3
@@ 3,7 3,7 @@
;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014-2024 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016-2019, 2021, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017, 2023 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017, 2018 Nikita <nikita@n0.is>


@@ 764,7 764,7 @@ variable defined below.  It requires guile-json to be installed."
      ;;  ,(search-patch "icecat-use-system-media-libs.patch"))
      rust
      `(,rust "cargo")
      rust-cbindgen-0.24
      rust-cbindgen
      llvm-15
      clang-15
      perl


@@ 1851,7 1851,7 @@ ca495991b7852b855"))
           pkg-config
           python-wrapper
           rust
           rust-cbindgen-0.23
           rust-cbindgen
           which
           yasm))
    (home-page "https://www.thunderbird.net")

M gnu/packages/golang-crypto.scm => gnu/packages/golang-crypto.scm +23 -0
@@ 261,6 261,29 @@ been designed so it can be used as a standalone package for any projects
needing to use secp256k1 elliptic curve cryptography.")
      (license license:isc))))

(define-public go-github-com-bwesterb-go-ristretto
  (package
    (name "go-github-com-bwesterb-go-ristretto")
    (version "1.2.3")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/bwesterb/go-ristretto")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0h508v790wk6g8jq0gh18296xl87vmgc4fhwnac7mk6i5g3mz6v4"))))
    (build-system go-build-system)
    (arguments
     (list #:unpack-path "github.com/bwesterb/go-ristretto"
           #:import-path "github.com/bwesterb/go-ristretto/edwards25519"))
    (home-page "https://github.com/bwesterb/go-ristretto")
    (synopsis "Operations on the Ristretto prime-order group")
    (description "This is a pure Go implementation of the group operations on
the Ristretto prime-order group built from Edwards25519.")
    (license license:expat)))

(define-public go-github-com-cespare-xxhash
  (package
    (name "go-github-com-cespare-xxhash")

M gnu/packages/golang-xyz.scm => gnu/packages/golang-xyz.scm +70 -22
@@ 237,6 237,31 @@ interface around the standard library's @code{time} package so that the applicat
can use the realtime clock while tests can use the mock clock.")
    (license license:expat)))

(define-public go-github-com-beorn7-perks-quantile
  (package
    (name "go-github-com-beorn7-perks-quantile")
    (version "1.0.1")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/beorn7/perks")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "github.com/beorn7/perks/quantile"
           #:unpack-path "github.com/beorn7/perks"))
    (home-page "https://github.com/beorn7/perks")
    (synopsis "Compute approximate quantiles over an unbounded data stream")
    (description
     "Perks contains the Go package @code{quantile} that computes
approximate quantiles over an unbounded data stream within low memory and CPU
bounds.")
    (license license:expat)))

(define-public go-github-com-bitly-go-hostpool
  (package
    (name "go-github-com-bitly-go-hostpool")


@@ 285,28 310,51 @@ information and periodically output metrics")
    (license license:expat)))

(define-public go-github-com-blang-semver
  (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
        (revision "0"))
    (package
      (name "go-github-com-blang-semver")
      (version (git-version "0.0.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/blang/semver")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
      (build-system go-build-system)
      (arguments
       '(#:import-path "github.com/blang/semver"))
      (home-page "https://github.com/blang/semver")
      (synopsis "Semantic versioning library written in Go")
      (description
       "Semver is a library for Semantic versioning written in Go.")
      (license license:expat))))
  (package
    (name "go-github-com-blang-semver")
    (version "3.8.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/blang/semver")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "16s66zbfkn35msmxpkiwf5dv91kzw7yzxzkcv8ma44j7lbgzx5qk"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/blang/semver"))
    (home-page "https://github.com/blang/semver")
    (synopsis "Semantic versioning library written in Go")
    (description
     "Semver is a library for Semantic versioning written in Go.")
    (license license:expat)))

(define-public go-github-com-blang-semver-v4
  (package
    (inherit go-github-com-blang-semver)
    (name "go-github-com-blang-semver-v4")
    (version "4.0.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/blang/semver")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "14h9ys4n4kx9cbj42lkdf4i5k3nkll6sd62jcvl7cs565v6fiknz"))))
    (arguments
     (list
      #:import-path "github.com/blang/semver/v4"
      #:unpack-path "github.com/blang/semver"
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'remove-examples
            (lambda* (#:key import-path #:allow-other-keys)
              (delete-file-recursively
               (string-append "src/" import-path "/examples")))))))))

(define-public go-github-com-bmizerany-perks-quantile
  (package

M gnu/packages/golang.scm => gnu/packages/golang.scm +0 -23
@@ 8519,29 8519,6 @@ configuration languages, but other uses may be possible too.")
    (description "This package implements a low-level key/value store in Go.")
    (license license:expat)))

(define-public go-github-com-bwesterb-go-ristretto
  (package
    (name "go-github-com-bwesterb-go-ristretto")
    (version "1.2.3")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/bwesterb/go-ristretto")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0h508v790wk6g8jq0gh18296xl87vmgc4fhwnac7mk6i5g3mz6v4"))))
    (build-system go-build-system)
    (arguments
     '(#:unpack-path "github.com/bwesterb/go-ristretto"
       #:import-path "github.com/bwesterb/go-ristretto/edwards25519"))
    (home-page "https://github.com/bwesterb/go-ristretto")
    (synopsis "operations on the Ristretto prime-order group")
    (description "This is a pure Go implementation of the group operations on
the Ristretto prime-order group built from Edwards25519.")
    (license license:expat)))

(define-public go-github-com-rogpeppe-go-internal
  (package
    (name "go-github-com-rogpeppe-go-internal")

M gnu/packages/guile-xyz.scm => gnu/packages/guile-xyz.scm +7 -5
@@ 47,6 47,7 @@
;;; Copyright © 2022 Evgeny Pisemsky <evgeny@pisemsky.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2024 Ilya Chernyshov <ichernyshovvv@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 1088,7 1089,7 @@ It has a nice, simple s-expression based syntax.")
(define-public guile-scheme-json-rpc
  (package
    (name "guile-scheme-json-rpc")
    (version "0.4.0")
    (version "0.4.5a")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 1097,14 1098,15 @@ It has a nice, simple s-expression based syntax.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0jsampz2ahs18z6yh9b5l3lkj8ycnavs0vg9sjngdj3w3zvrdcvm"))))
                "0356hm6phcfgvwvx3ys6b927v40jzb7qrfgvql7g78na24zp2cmi"))))
    (build-system gnu-build-system)
    (arguments
     `(#:phases (modify-phases %standard-phases
                  (add-after 'unpack 'change-to-guile-dir
                    (lambda _
                      (chdir "guile"))))))
    (inputs (list guile-3.0 guile-srfi-145 guile-srfi-180))
    (inputs (list guile-3.0))
    (propagated-inputs (list guile-srfi-145 guile-srfi-180))
    (native-inputs (list pkg-config))
    (synopsis "Library providing JSON-RPC capability for Guile Scheme")
    (description


@@ 1117,7 1119,7 @@ for calling methods on remote servers by exchanging JSON objects.")
(define-public guile-ares-rs
  (package
    (name "guile-ares-rs")
    (version "0.9.1")
    (version "0.9.3")
    (source
     (origin
       (method git-fetch)


@@ 1127,7 1129,7 @@ for calling methods on remote servers by exchanging JSON objects.")
       (file-name (git-file-name name version))
       (sha256
        (base32
         "173jg8z0cwq5r67lzxsmyir5f6cxd9i5gzb3qryq71cqq4h1c77n"))))
         "021lg06c5lrp2j1qv8hl4jh4yq07k158h824kjv6b87bxqk7vq54"))))
    (build-system guile-build-system)
    (arguments
     (list

M gnu/packages/ipfs.scm => gnu/packages/ipfs.scm +13 -13
@@ 241,10 241,13 @@ written in Go.")
       (snippet '(for-each delete-file-recursively
                           ;; TODO: unbundle the rest as well
                           '("vendor/github.com/alecthomas"
                             ;; "vendor/github.com/blang"
                             "vendor/github.com/benbjohnson/clock"
                             "vendor/github.com/beorn7/perks"
                             "vendor/github.com/blang"
                             "vendor/github.com/cespare"
                             ;; TODO: Go files not found
                             ;; "vendor/github.com/cheggaaa"
                             ;; TODO: kubo depends on v1.0.29 which is way too
                             ;; hard to back port.
                             ; "vendor/github.com/cheggaaa/pb"
                             "vendor/github.com/davecgh"
                             "vendor/github.com/dustin"
                             "vendor/github.com/flynn"


@@ 261,8 264,6 @@ written in Go.")
                             ;; "vendor/github.com/ipld"
                             "vendor/github.com/jackpal"
                             "vendor/github.com/klauspost"
                             ;; TODO: Go files not found
                             ;; "vendor/github.com/lucas-clemente"
                             "vendor/github.com/mattn"
                             "vendor/github.com/mgutz"
                             "vendor/github.com/minio"


@@ 306,20 307,19 @@ written in Go.")
                                  #~(string-append #$output "/bin/ipfs"))
                            "commands" "completion" "bash")))))))))
    (inputs (list go-github-com-alecthomas-units
                  ;; TODO: needs to be updated first
                  ;; go-github-com-blang-semver
                  go-github-com-benbjohnson-clock
                  go-github-com-blang-semver-v4
                  go-github-com-cespare-xxhash
                  go-github-com-cheekybits-genny
                  go-github-com-cheggaaa-pb-v3
                  go-github-com-davecgh-go-spew
                  go-github-com-dustin-go-humanize
                  go-github-com-flynn-noise
                  go-github-com-francoispqt-gojay
                  go-github-com-fsnotify-fsnotify
                  go-github-com-gogo-protobuf
                  go-github-com-google-uuid
                  go-github-com-golang-groupcache-lru
                  go-github-com-golang-snappy
                  go-github-com-google-uuid
                  go-github-com-gorilla-mux
                  go-github-com-gorilla-websocket
                  go-github-com-jackpal-go-nat-pmp


@@ 344,12 344,11 @@ written in Go.")
                  go-github-com-spaolacci-murmur3
                  go-github-com-stretchr-testify
                  go-github-com-syndtr-goleveldb
                  go-gopkg-in-yaml-v2
                  go-gopkg-in-yaml-v3
                  go-go-uber-org-atomic
                  go-go-uber-org-multierr
                  go-go-uber-org-zap
                  go-golang-org-x-crypto
                  go-golang-org-x-exp
                  go-golang-org-x-lint
                  go-golang-org-x-mod
                  go-golang-org-x-net


@@ 357,10 356,11 @@ written in Go.")
                  go-golang-org-x-sync
                  go-golang-org-x-sys
                  go-golang-org-x-term
                  go-golang-org-x-text
                  go-golang-org-x-tools
                  go-golang-org-x-xerrors
                  go-golang-org-x-exp
                  go-golang-org-x-text
                  go-gopkg-in-yaml-v2
                  go-gopkg-in-yaml-v3
                  go-lukechampine-com-blake3))
    (native-inputs
     (append (if (%current-target-system)

M gnu/packages/java.scm => gnu/packages/java.scm +16 -16
@@ 1217,7 1217,7 @@ new Date();"))
(define-public openjdk11
  (package
    (name "openjdk")
    (version "11.0.17")
    (version "11.0.22")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://openjdk-sources.osci.io/openjdk11/openjdk-"


@@ 1225,7 1225,7 @@ new Date();"))
              (file-name (string-append name "-" version ".tar.xz"))
              (sha256
               (base32
                "1prvqy0ysz0999wrhsrbz6vrknpqfihl9l74l16ph93g89dqi5ia"))
                "18ca4syp9xlrqjgyjkb1sp9835riy6aym5xs81r8byrz6jlb2473"))
              (modules '((guix build utils)))
              (snippet
               '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))


@@ 1534,7 1534,7 @@ new Date();"))

(define-public openjdk12
  (make-openjdk
   openjdk11 "12.33" "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"
   openjdk11 "12.33" "0pi2gwib3j2imi4l623iaywrmvfh9rqzh82lj2gxqbrmg55swvjf"
   (source
    (origin
      (method url-fetch)


@@ 1542,7 1542,7 @@ new Date();"))
      (file-name (string-append name "-" version ".tar.bz2"))
      (sha256
       (base32
        "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"))
        "0pi2gwib3j2imi4l623iaywrmvfh9rqzh82lj2gxqbrmg55swvjf"))
      (modules '((guix build utils)))
      (snippet
       '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))


@@ 1573,8 1573,8 @@ blacklisted.certs.pem"
                  "#! java BlacklistedCertsConverter SHA-256\n"))))))))))

(define-public openjdk13
  (make-openjdk openjdk12 "13.0.13"
                "0pxf4dlig61k0pg7amg4mi919hzam7nzwckry01avgq1wj8ambji"
  (make-openjdk openjdk12 "13.0.14"
                "1v92i5rhahqkjw8mz09c9qasnxqc67ygy0y266kdmm534z0da755"
  (source (origin
            (inherit (package-source base))
            (patches '())))))


@@ 1596,8 1596,8 @@ blacklisted.certs.pem"

(define-public openjdk15
  (make-openjdk
   openjdk14 "15.0.9"
   "1k3x06fv89l84ysjsyw8s89q8blghq85m6xjzv373x6297ln8n7a"
   openjdk14 "15.0.10"
   "0hdllv348bws6m992bh73jik18x0sv0k2m9l817b3zb7q802sp7x"
   (source (origin
             (inherit (package-source base))
             (modules '())


@@ 1623,8 1623,8 @@ blacklisted.certs.pem"

(define-public openjdk17
  (make-openjdk
   openjdk16 "17.0.5"
   "1asnysg6kxdkrmb88y6qihdr12ljsyxv0mg6hlcs7cwxgsdlqkfs"
   openjdk16 "17.0.10"
   "1bq1rqnipz6wdr05s20gm8nlpb3328ljxckzvc5ag0gf7fzlhn5f"
   (source (origin
             (inherit (package-source base))
             (patches (search-patches "openjdk-15-xcursor-no-dynamic.patch"))))


@@ 1639,8 1639,8 @@ blacklisted.certs.pem"
                 (("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))))))))

(define-public openjdk18
  (make-openjdk openjdk17 "18.0.2"
                "1yimfdkwpinhg5cf1mcrzk9xvjwnray3cx762kypb9jcwbranjwx"))
  (make-openjdk openjdk17 "18.0.2.1"
                "0zxanjzz4p3psqahlidh55vx1ldanq70c2ygk3gcfn9a94vnr9rg"))

(define-public openjdk19
  (make-openjdk openjdk18 "19.0.2"


@@ 1660,12 1660,12 @@ blacklisted.certs.pem"
               (setenv "SOURCE_DATE_EPOCH" "1234567890")))))))))

(define-public openjdk20
  (make-openjdk openjdk19 "20"
                "0pk5lpwijfv9qv7vwpsq2xfklbnqdfs6xbdhc5aamrpar4xi4ykx"))
  (make-openjdk openjdk19 "20.0.2"
                "1af1v2c3d8x4c6shzl6cv9qwq7a4hn5map5pjh9vjcky0hkzd489"))

(define-public openjdk21
  (make-openjdk openjdk20 "21"
                "06wjfwrkqykjdkis2s1nh91cy8vwincnmc699cxvyk3fc12jf3vw"
  (make-openjdk openjdk20 "21.0.2"
                "0d1g3wnzr5whjpq8gvxq0h7kd7lxd3xgc6bh3kg8vzz096asn0kj"
   (source (origin
             (inherit (package-source base))
             (patches (search-patches "openjdk-21-fix-rpath.patch"

M gnu/packages/linux.scm => gnu/packages/linux.scm +31 -42
@@ 497,17 497,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."

;; The current "mainline" kernel.

(define-public linux-libre-6.7-version "6.7.6")
(define-public linux-libre-6.7-version "6.7.9")
(define-public linux-libre-6.7-gnu-revision "gnu")
(define deblob-scripts-6.7
  (linux-libre-deblob-scripts
   linux-libre-6.7-version
   linux-libre-6.7-gnu-revision
   (base32 "1ddngihfmwffgvxxv8xsppi76r6grvdxr6zzfzvgl9qw07a6c9fd")
   (base32 "1vb2pd0wdfl9p5qi8hj1i5xg1p4pyrp01iqhap9xbb2yai4l80j5")))
   (base32 "1lhsy2qnmz47r8m926k1kng912m64j7pnpcvd1ddgdqpq5byp88j")))
(define-public linux-libre-6.7-pristine-source
  (let ((version linux-libre-6.7-version)
        (hash (base32 "1lrp7pwnxnqyy8c2l4n4nz997039gbnssrfm8ss8kl3h2c7fr2g4")))
        (hash (base32 "0inkvyrvq60j9lxgivkivq3qh94lsfc1dpv6vwgxmy3q0zy37mqg")))
   (make-linux-libre-source version
                            (%upstream-linux-source version hash)
                            deblob-scripts-6.7)))


@@ 515,17 515,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.

(define-public linux-libre-6.6-version "6.6.18")
(define-public linux-libre-6.6-version "6.6.21")
(define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6
  (linux-libre-deblob-scripts
   linux-libre-6.6-version
   linux-libre-6.6-gnu-revision
   (base32 "1qm8f3fq4yx59f7b6yky5ryyf229ypxnry922sr8cy0s7mp62cmv")
   (base32 "0kavbby960k7wg355p3hjb9v1c4gnk8dv3lkfhpz44ayhv7kihg5")))
   (base32 "014w19b9igdy3rpwrqn21why151zlc9hdx2b1qvdkjsbz6smx3lp")))
(define-public linux-libre-6.6-pristine-source
  (let ((version linux-libre-6.6-version)
        (hash (base32 "07cv97l5jiakmmv35n0ganvqfr0590b02f3qb617qkx1zg2xhhsf")))
        (hash (base32 "0mz420w99agr7jv1jgqfr4fjhzbv005xif086sqx556s900l62zf")))
   (make-linux-libre-source version
                            (%upstream-linux-source version hash)
                            deblob-scripts-6.6)))


@@ 533,37 533,37 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
(define-public linux-libre-6.1-version "6.1.79")
(define-public linux-libre-6.1-version "6.1.81")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
  (linux-libre-deblob-scripts
   linux-libre-6.1-version
   linux-libre-6.1-gnu-revision
   (base32 "1sf80f2i4vf888xjcn84ymn4w5ynn30ib9033zwmv7f09yvfhapy")
   (base32 "0vghx43lf7madaihsm279qnw8fsmgwq6p7r39r2m645mvap8mjxw")))
   (base32 "08y5smwgbl2l74dlk850pbvn8d1y14cqvll2gbx80vmvfwlzp8c3")))
(define-public linux-libre-6.1-pristine-source
  (let ((version linux-libre-6.1-version)
        (hash (base32 "16xkd0hcslqlcf55d4ivzhf1fkhfs5yy0m9arbax8pmm5yi9r97s")))
        (hash (base32 "0arl96yrqplbmp2gjyqcfma1lgc30kbn95m0sflv0yyldwf8dg8f")))
   (make-linux-libre-source version
                            (%upstream-linux-source version hash)
                            deblob-scripts-6.1)))

(define-public linux-libre-5.15-version "5.15.149")
(define-public linux-libre-5.15-version "5.15.151")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
  (linux-libre-deblob-scripts
   linux-libre-5.15-version
   linux-libre-5.15-gnu-revision
   (base32 "18ac30kxg2mf2f6gk3p935hzhz2qs110jy4xwk21kblnnkskbxj8")
   (base32 "14pw0yl0yxdgcdp01rpi91ylil9irwzxfq04kfvn3gg2abaq37bn")))
   (base32 "1a4la9nfdl5qiyfbzhgbqhl638wy1crkgpfnfaj0qf3hg4jsg0g4")))
(define-public linux-libre-5.15-pristine-source
  (let ((version linux-libre-5.15-version)
        (hash (base32 "1c01fnaghj55mkgsgddznq1zq4mswsa05rz00kmh1d3y6sd8115x")))
        (hash (base32 "0jby224ncdardjwmf8c59s5j71inpvdlzah984ilf2b6y85pc7la")))
   (make-linux-libre-source version
                            (%upstream-linux-source version hash)
                            deblob-scripts-5.15)))

(define-public linux-libre-5.10-version "5.10.210")
(define-public linux-libre-5.10-version "5.10.212")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
  (linux-libre-deblob-scripts


@@ 573,12 573,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
   (base32 "12csh2zyjrqzgqcv799gv8h4xaw1irxh2zqddn4jqp5p7psx4j5k")))
(define-public linux-libre-5.10-pristine-source
  (let ((version linux-libre-5.10-version)
        (hash (base32 "0vggj3a71awc1w803cdzrnkn88rxr7l1xh9mmdcw9hzxj1d3r9jf")))
        (hash (base32 "14vll2bghd52wngjxy78hgglydcxka59yziji0w56dcdpmky9wqc")))
   (make-linux-libre-source version
                            (%upstream-linux-source version hash)
                            deblob-scripts-5.10)))

(define-public linux-libre-5.4-version "5.4.269")
(define-public linux-libre-5.4-version "5.4.271")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
  (linux-libre-deblob-scripts


@@ 588,12 588,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
   (base32 "0x0xg0fcykpd117x3q0gim8jilhx922ashhckjvafxv2gk2zzjhj")))
(define-public linux-libre-5.4-pristine-source
  (let ((version linux-libre-5.4-version)
        (hash (base32 "1kqqm4hpif3jy2ycnb0dfjgzyn18vqhm1i5q7d7rkisks33bwm7z")))
        (hash (base32 "0l2qv4xlhnry9crs90rkihsxyny6jz8kxw08bfad7nys9hrn3g6d")))
   (make-linux-libre-source version
                            (%upstream-linux-source version hash)
                            deblob-scripts-5.4)))

(define-public linux-libre-4.19-version "4.19.307")
(define-public linux-libre-4.19-version "4.19.309")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
  (linux-libre-deblob-scripts


@@ 603,7 603,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
   (base32 "0fgkp3v7qgqpn7l1987xcwwlrmwsbscqnxfv06p8nkavrhymrv3c")))
(define-public linux-libre-4.19-pristine-source
  (let ((version linux-libre-4.19-version)
        (hash (base32 "0lp3fc7sqy48vpcl2g0n1bz7i1hp9k0nlz3i1xfh9l056ihzzvl3")))
        (hash (base32 "1yc45kfiwdqsqa11sxafs82b0day6qvgjcll8rx9vipidsmagbcm")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-4.19)))


@@ 1100,24 1100,24 @@ Linux kernel.  It has been modified to remove all non-free binary blobs.")
;;; Generic kernel packages.
;;;

(define-public linux-libre-6.6
  (make-linux-libre* linux-libre-6.6-version
                     linux-libre-6.6-gnu-revision
                     linux-libre-6.6-source
(define-public linux-libre-6.7
  (make-linux-libre* linux-libre-6.7-version
                     linux-libre-6.7-gnu-revision
                     linux-libre-6.7-source
                     '("x86_64-linux" "i686-linux" "armhf-linux"
                       "aarch64-linux" "powerpc64le-linux" "riscv64-linux")
                     #:configuration-file kernel-config))

(define-public linux-libre-version         linux-libre-6.6-version)
(define-public linux-libre-gnu-revision    linux-libre-6.6-gnu-revision)
(define-public linux-libre-pristine-source linux-libre-6.6-pristine-source)
(define-public linux-libre-source          linux-libre-6.6-source)
(define-public linux-libre                 linux-libre-6.6)
(define-public linux-libre-version         linux-libre-6.7-version)
(define-public linux-libre-gnu-revision    linux-libre-6.7-gnu-revision)
(define-public linux-libre-pristine-source linux-libre-6.7-pristine-source)
(define-public linux-libre-source          linux-libre-6.7-source)
(define-public linux-libre                 linux-libre-6.7)

(define-public linux-libre-6.7
  (make-linux-libre* linux-libre-6.7-version
                     linux-libre-6.7-gnu-revision
                     linux-libre-6.7-source
(define-public linux-libre-6.6
  (make-linux-libre* linux-libre-6.6-version
                     linux-libre-6.6-gnu-revision
                     linux-libre-6.6-source
                     '("x86_64-linux" "i686-linux" "armhf-linux"
                       "aarch64-linux" "powerpc64le-linux" "riscv64-linux")
                     #:configuration-file kernel-config))


@@ 2005,17 2005,6 @@ GnuPG-based password manager like @code{pass}.")
  (package
    (inherit linux-libre)
    (name "linux-libre-documentation")
    (source
     (origin
       (inherit linux-libre-source)
       (patches
        (list
         (origin
           (method url-fetch)
           (uri "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/Documentation/sphinx/kernel_feat.py?id=c23de7ceae59e4ca5894c3ecf4f785c50c0fa428")
           (sha256
            (base32
             "0inw2pl7nh82sw8bhvvzqa61552bisl78yc1nyl2x6dmpyppzrld")))))))
    (arguments
     (list
      #:tests? #f

M gnu/packages/lisp-xyz.scm => gnu/packages/lisp-xyz.scm +38 -33
@@ 12426,11 12426,11 @@ Scalable Vector Graphics files.")
  (sbcl-package->cl-source-package sbcl-cl-svg))

(define-public sbcl-nodgui
  (let ((commit "6baccf45371afd4dcc8cd3f38332b300614783b6")
  (let ((commit "35fd379e11162995ed48c2f8ebe6a5bf0a6f48cb")
        (revision "1"))
    (package
      (name "sbcl-nodgui")
      (version (git-version "0.4.8.6" revision commit))
      (version (git-version "0.6.0.2" revision commit))
      (source
       (origin
         (method git-fetch)


@@ 12439,7 12439,7 @@ Scalable Vector Graphics files.")
               (commit commit)))
         (file-name (git-file-name "cl-nodgui" version))
         (sha256
          (base32 "0fjz8362qmvkbzj9ylyllkdxg7vvj38l3y5qn4xi2gim92x4lx67"))))
          (base32 "01l1hyzf8ryc35ydrjhqjn4az8asdwn46knl5gx8v02z2jcv7j24"))))
      (build-system asdf-build-system/sbcl)
      (inputs
       (list sbcl-alexandria


@@ 12451,8 12451,11 @@ Scalable Vector Graphics files.")
             sbcl-esrap
             sbcl-jpeg-turbo
             sbcl-named-readtables
             sbcl-cl-opengl
             sbcl-parse-number
             sbcl-pngload
             sbcl-sdl2
             sbcl-zpng
             tk
             tklib))
      (arguments


@@ 19105,37 19108,39 @@ protocol for Mastodon.")
  (sbcl-package->cl-source-package sbcl-tooter))

(define-public sbcl-croatoan
  (package
    (name "sbcl-croatoan")
    (version "0.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/McParen/croatoan")
             (commit (string-append "v" version))))
       (file-name (git-file-name "cl-croatoan" version))
       (sha256
        (base32 "0x2rlckyn8kn5mqy0fib8piggz694g3naarz2dvha1hsy4jhb1wg"))))
    (build-system asdf-build-system/sbcl)
    (arguments
     '(#:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'fix-paths
           (lambda* (#:key inputs #:allow-other-keys)
             (substitute* "ncurses/ncurses.lisp"
               (("libncursesw.so")
                (search-input-file inputs "/lib/libncursesw.so"))))))))
    (inputs
     (list ncurses
           sbcl-cffi
           sbcl-trivial-gray-streams
           sbcl-bordeaux-threads))
    (synopsis "Common Lisp bindings for the ncurses terminal library")
    (description "Croatoan provides high-level Common Lisp CLOS bindings for
  (let ((commit "282145ff9e9005fddc4241bc6827b3ab09c5bd25")
        (revision "1"))
    (package
      (name "sbcl-croatoan")
      (version (git-version "2.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/McParen/croatoan")
               (commit commit)))
         (file-name (git-file-name "cl-croatoan" version))
         (sha256
          (base32 "021h2f2yj4j9gynr3k7qi36x94jm5b95p3vaddbaih96wyzgbmq5"))))
      (build-system asdf-build-system/sbcl)
      (arguments
       '(#:phases
         (modify-phases %standard-phases
           (add-after 'unpack 'fix-paths
             (lambda* (#:key inputs #:allow-other-keys)
               (substitute* "ncurses/ncurses.lisp"
                 (("libncursesw.so")
                  (search-input-file inputs "/lib/libncursesw.so"))))))))
      (inputs
       (list ncurses
             sbcl-cffi
             sbcl-trivial-gray-streams
             sbcl-bordeaux-threads))
      (synopsis "Common Lisp bindings for the ncurses terminal library")
      (description "Croatoan provides high-level Common Lisp CLOS bindings for
the ncurses terminal library.")
    (home-page "https://github.com/McParen/croatoan")
    (license license:expat)))
      (home-page "https://github.com/McParen/croatoan")
      (license license:expat))))

(define-public ecl-croatoan
  (sbcl-package->ecl-package sbcl-croatoan))

A gnu/packages/llvm-meta.scm => gnu/packages/llvm-meta.scm +83 -0
@@ 0,0 1,83 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages llvm-meta)
  #:use-module (guix utils)
  #:export (clang-compiler-cpu-architectures))

(define (clang-compiler-cpu-architectures version)
  "Return package properties for Clang VERSION."
  `((compiler-cpu-architectures
      ;; These lists were obtained by running:
      ;;
      ;; guix shell clang -- llc -march=x86-64 -mattr=help
      ;;
      ;; and then filtering against clang/test/Misc/target-invalid-cpu-note.c
      ("powerpc64le"
       ,@(if (version>=? version "11.0")
           '("power8" "power9" "power10" "powerpc64le")))
      ("x86_64"
       ,@(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 "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 '()))))))

M gnu/packages/llvm.scm => gnu/packages/llvm.scm +6 -71
@@ 7,7 7,7 @@
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018–2022 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2021-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2021-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>


@@ 65,6 65,7 @@
  #:use-module (gnu packages compression)
  #:use-module (gnu packages libedit)
  #:use-module (gnu packages libffi)
  #:use-module (gnu packages llvm-meta)
  #:use-module (gnu packages lua)
  #:use-module (gnu packages mpi)
  #:use-module (gnu packages ncurses)


@@ 79,8 80,7 @@
  #:use-module (srfi srfi-1)
  #:use-module (ice-9 match)
  #:export (make-lld-wrapper
            system->llvm-target
            clang-properties))
            system->llvm-target))

(define* (system->llvm-target #:optional
                              (system (or (and=> (%current-target-system)


@@ 481,73 481,7 @@ 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
           ((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 '()))))))
  `((clang-compiler-cpu-architectures version)))

(define-public (make-clang-toolchain clang libomp)
  (package


@@ 616,7 550,8 @@ output), and Binutils.")
  '(("14.0.6" . ("clang-14.0-libc-search-path.patch"))
    ("15.0.7" . ("clang-15.0-libc-search-path.patch"))
    ("16.0.6" . ("clang-16.0-libc-search-path.patch"))
    ("17.0.6" . ("clang-17.0-libc-search-path.patch"))))
    ("17.0.6" . ("clang-17.0-libc-search-path.patch"
                 "clang-17.0-link-dsymutil-latomic.patch"))))

(define (llvm-monorepo version)
  (origin

M gnu/packages/man.scm => gnu/packages/man.scm +46 -1
@@ 10,7 10,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Imran Iqbal <imran@imraniqbal.org>
;;;
;;; This file is part of GNU Guix.


@@ 219,6 219,51 @@ accessed using the man command.  It uses a Berkeley DB database in place of
the traditional flat-text whatis databases.")
    (license license:gpl2+)))

(define-public man2html
  (package
    (name "man2html")
    (version "1.6g-16")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://salsa.debian.org/debian/man2html")
                    (commit (string-append "debian/" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1cxm8b2x4cjmyidi4gfz9q29zrhaxhbnsiqcmlnyr1bdhjsmk786"))))
    (build-system gnu-build-system)
    (arguments
     (list
      #:tests? #f                       ;no test suite
      ;; The source include a man page viewer as well as the man2html
      ;; converter.  We're only interested in the converter, so we specify the
      ;; explicit 'manhtml' target.
      #:make-flags #~(list (string-append "bindir=" #$output "/bin")
                           "manhtml")
      #:phases #~(modify-phases %standard-phases
                   (replace 'configure
                     (lambda _
                       (setenv "CC" #$(cc-for-target))
                       (invoke "./configure"
                               (string-append "-prefix=" #$output))))
                   (add-before 'install 'chdir
                     (lambda _
                       (chdir "man2html")))
                   (replace 'install
                     ;; This is needed because the 'manhtml' top level target
                     ;; doesn't exist in man2html/Makefile.
                     (lambda* (#:key make-flags #:allow-other-keys
                               #:rest args)
                       (apply (assoc-ref %standard-phases 'install)
                              `(,@args #:make-flags
                                       ,(delete "manhtml" make-flags))))))))
    (home-page "https://salsa.debian.org/debian/man2html")
    (synopsis "Man pages to HTML format converter")
    (description "@command{man2html} is a command-line tool for converting man
pages into HTML format.")
    (license license:gpl2+)))

(define-public mandoc
  (package
    (name "mandoc")

M gnu/packages/maths.scm => gnu/packages/maths.scm +18 -12
@@ 3516,7 3516,8 @@ September 2004}")
data structures and routines for the scalable (parallel) solution of
scientific applications modeled by partial differential equations.")
    (license (license:non-copyleft
              "https://www.mcs.anl.gov/petsc/documentation/copyright.html"))))
              "https://www.mcs.anl.gov/petsc/documentation/copyright.html"))
    (properties '((tunable? . #t)))))

(define-public petsc-complex
  (package


@@ 7136,16 7137,21 @@ set.")
           (lambda _
             (invoke "make" "-C" "docs")))
         (replace 'check
           (lambda _
             (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/hypre/lib"))
             (setenv "PATH" (string-append "." ":" (getenv "PATH")))
             (invoke "make" "check" "CHECKRUN=")
             (for-each (lambda (filename)
                         (let ((size (stat:size (stat filename))))
                           (when (positive? size)
                             (error (format #f "~a size ~d; error indication~%"
                                            filename size)))))
                       (find-files "test" ".*\\.err$"))))
           (lambda* (#:key tests? #:allow-other-keys)
             (when tests?
               (setenv "LD_LIBRARY_PATH"
                       (string-append (getcwd) "/hypre/lib"))
               (setenv "PATH"
                       (string-append "." ":"
                                      (getenv "PATH")))
               (invoke "make" "check" "CHECKRUN=")
               (for-each (lambda (filename)
                           (let ((size (stat:size (stat filename))))
                             (when (positive? size)
                               (error (format #f
                                       "~a size ~d; error indication~%"
                                       filename size)))))
                         (find-files "test" ".*\\.err$")))))
         (add-after 'install 'install-docs
           (lambda* (#:key outputs #:allow-other-keys)
             ;; Custom install because docs/Makefile doesn't honor ${docdir}.


@@ 8070,7 8076,7 @@ easily be incorporated into existing simulation codes.")
                           ".tgz"))
       (sha256
        (base32
         "1a9wbgdqyy1whhfc0yl0yqkax3amnqa6iihhq48d063gc0jwfd9a"))
         "0gzxgd2ybnh49h57rh47vrqnsyk11jn206j5kf9y7p5vksc79ffz"))
       (patches (search-patches "combinatorial-blas-awpm.patch"
                                "combinatorial-blas-io-fix.patch"))))
    (build-system cmake-build-system)

M gnu/packages/music.scm => gnu/packages/music.scm +79 -47
@@ 3040,38 3040,63 @@ main purpose is to liberate raw audio rendering from audio and MIDI drivers.")
using a system-independent interface.")
    (license license:expat)))

(define-public python-pyportmidi
(define-public portmidi-2
  (package
    (name "python-pyportmidi")
    (version (package-version portmidi))
    (source (package-source portmidi))
    (build-system python-build-system)
    (name "portmidi")
    (version "2.0.4")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/PortMidi/portmidi")
             (commit "b808babecdc5d05205467dab5c1006c5ac0fdfd4")))
       (sha256
        (base32 "05a3dfpgbpcg08p8a3acjrrd1qy5hvvray2kz2asygy1vf3mx85s"))
       (file-name (git-file-name name version))))
    (build-system cmake-build-system)
    (arguments
     `(#:tests? #f ; no tests included
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'enter-dir
           (lambda _ (chdir "pm_python") #t))
         (add-after 'enter-dir 'fix-setup.py
           (lambda _
             (substitute* "setup.py"
               ;; Use Python 3 syntax
               (("print (\".*\")" _ text)
                (string-append "print(" text ")\n"))
               ;; TODO.txt and CHANGES.txt don't exist
               (("CHANGES =.*") "CHANGES = \"\"\n")
               (("TODO =.*") "TODO = \"\"\n"))
             #t)))))
    (inputs
     (list portmidi alsa-lib))
    (native-inputs
     (list python-cython unzip))
    (home-page "https://portmedia.sourceforge.net/portmidi/")
    (synopsis "Python bindings to PortMidi")
     `(#:tests? #f       ;Tests are interactive and can be found in the
       #:configure-flags ;pm_tests/ directory of the build tree.
       (list "-DBUILD_PORTMIDI_TESTS=On")
       #:phases (modify-phases %standard-phases
                  (add-after 'unpack 'fix-version
                    (lambda _
                      (substitute* "CMakeLists.txt"
                        (("2.0.3")
                         (version))))))))
    (inputs (list alsa-lib))
    (native-inputs (list unzip))
    (home-page "https://github.com/PortMidi/")
    (synopsis "Library for MIDI I/O")
    (description
     "This package provides Python bindings to the PortMidi library.")
     "PortMidi is a library supporting real-time input and output of MIDI data
using a system-independent interface.")
    (license license:expat)))

(define-public python-pyportmidi
  (let ((commit "d9e5ee00b208b09618fa0d4a5bbce3c9c077b386")
        (revision "0"))
    (package
      (name "python-pyportmidi")
      (version (git-version "0.0.7" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/PortMidi/pm_python")
               (commit commit)))
         (sha256
          (base32 "1jvp9na8d1hw46w9ybhkimbavfb3ysw7hp30cbk6dj40k5y5vgvz"))
         (file-name (git-file-name name version))))
      (build-system python-build-system)
      (inputs (list portmidi-2 alsa-lib))
      (native-inputs (list python-cython))
      (home-page "https://github.com/PortMidi")
      (synopsis "Python bindings to PortMidi")
      (description
       "This package provides Python bindings to the PortMidi library.")
      (license license:expat))))

(define-public frescobaldi
  (package
    (name "frescobaldi")


@@ 3080,32 3105,39 @@ using a system-independent interface.")
     (origin
       (method url-fetch)
       (uri (string-append
             "https://github.com/wbsoft/frescobaldi/releases/download/v"
             "https://github.com/frescobaldi/frescobaldi/releases/download/v"
             version "/frescobaldi-" version ".tar.gz"))
       (sha256
        (base32 "1n60gfnf6x0l1bac088g9adzx0lskbl9knd4y1ynr3y0zcs0kfcz"))))
    (build-system python-build-system)
    (arguments
     (list
      #:tests? #f                       ;no tests included
      #:phases
      #~(modify-phases %standard-phases
          (add-before 'build 'generate-translations
            (lambda _
              (invoke "make" "-C" "i18n")))
          (add-before 'build 'generate-metadata
            (lambda _
              (invoke "make" "-C" "linux"))))))
    (inputs
     (list lilypond
           poppler
           portmidi
           python-ly
           python-poppler-qt5
           python-pyportmidi
           python-pyqt
           python-sip
           qpageview))
      #:tests? #f ;no tests included
      #:phases #~(modify-phases %standard-phases
                   (add-before 'build 'generate-translations
                     (lambda _
                       (invoke "make" "-C" "i18n")))
                   (add-before 'build 'generate-metadata
                     (lambda _
                       (invoke "make" "-C" "linux")))
                   (add-after 'install 'wrap-executable
                     (lambda _
                       ;; Ensure that icons are found at runtime.
                       (wrap-program (string-append #$output
                                                    "/bin/frescobaldi")
                         `("QT_PLUGIN_PATH" prefix
                           ,(list (getenv "QT_PLUGIN_PATH")))))))))
    (inputs (list bash-minimal
                  lilypond
                  poppler
                  portmidi-2
                  python-ly
                  python-poppler-qt5
                  python-pyportmidi
                  python-pyqt
                  python-sip
                  qpageview
                  qtsvg-5))
    (home-page "https://www.frescobaldi.org/")
    (synopsis "LilyPond sheet music text editor")
    (description

A gnu/packages/nx.scm => gnu/packages/nx.scm +246 -0
@@ 0,0 1,246 @@
;;; This file is part of GNU Guix.
;;; Copyright © 2024 Nicolas Debonnaire <nicolas.debonnaire@gmail.com>
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages nx)
  #:use-module (guix build-system gnu)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages base)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages commencement)
  #:use-module (gnu packages cups)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages image)
  #:use-module (gnu packages man)
  #:use-module (gnu packages onc-rpc)
  #:use-module (gnu packages openldap)
  #:use-module (gnu packages patchutils)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages pulseaudio)
  #:use-module (gnu packages python)
  #:use-module (gnu packages qt)
  #:use-module (gnu packages ssh)
  #:use-module (gnu packages xdisorg)
  #:use-module (gnu packages xml)
  #:use-module (gnu packages xorg))

(define-public nx-libs
  (package
    (name "nx-libs")
    (version "3.5.99.27")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/ArcticaProject/nx-libs")
             (commit version)))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0ykbza39ksycpyydaiwwbp7hkmdk96v7b36pn989k39lhfwnn8kz"))))
    (build-system gnu-build-system)
    (arguments
     (list
      #:tests? #f   ;no test suite
      ;; The build randomly fails when run in parallel (see:
      ;; https://github.com/ArcticaProject/nx-libs/issues/1072).
      #:parallel-build? #f
      #:make-flags #~(let ((sh (search-input-file %build-inputs "bin/sh")))
                       (list (string-append "PREFIX=" #$output)
                             (string-append "ETCDIR_NX=" #$output "/etc")
                             (string-append "LOCAL_LDFLAGS=-Wl,"
                                            "-rpath=" #$output "/lib,"
                                            "-rpath=" #$output "/lib/nx/X11")
                             (string-append "IMAKE_DEFINES=-DUseTIRPC=1"
                                            " -DBourneShell=" sh
                                            " -DProjectRoot=" #$output
                                            " -DDefaultUserPath="
                                            #$output "/bin")
                             (string-append "CONFIG_SHELL=" sh)
                             (string-append "SHELL=" sh)
                             ;; Autoreconf being run by Make, the generated
                             ;; configure script shebangs thus haven't been
                             ;; patched; workaround this by running explicitly
                             ;; via the shell.
                             (string-append "CONFIGURE=" sh " ./configure "
                                            "--prefix=" #$output)
                             "VERBOSE=1"))
      #:phases #~(modify-phases %standard-phases
                   (delete 'configure)
                   (add-before 'build 'adjust-Makefile
                     (lambda _
                       ;; It's best to source a script via its absolute path,
                       ;; otherwise it's looked from PATH and fails for POSIX
                       ;; shells, such as our Bash-provided 'sh' (see:
                       ;; https://github.com/ArcticaProject/nx-libs/issues/1071).
                       (substitute* "Makefile"
                         (("\\. replace.sh")
                          ". ./replace.sh"))))
                   (add-after 'install 'wrap-nxdialog
                     (lambda* (#:key inputs #:allow-other-keys)
                       (wrap-program (string-append #$output "/bin/nxdialog")
                         `("GUIX_PYTHONPATH" =
                           (,(getenv "GUIX_PYTHONPATH")))
                         ;; Ensure GObject Introspection typelibs are found.
                         `("GI_TYPELIB_PATH" ":" =
                           (,(getenv "GI_TYPELIB_PATH")))))))))
    (native-inputs
     (list autoconf
           automake
           bash-minimal                 ;for wrap-program
           font-util
           gccmakedep
           imake
           libtool
           perl
           pkg-config
           quilt
           which))
    (inputs
     (list gtk+
           libjpeg-turbo
           libtirpc
           libxcomposite
           libxdamage
           libxext
           libxfont
           libxinerama
           libxml2
           libxpm
           libxrandr
           libxtst
           pixman
           python-pygobject
           python-wrapper
           xkbcomp))
    (propagated-inputs
     (list libpng))                     ;in Requires of nxcomp.pc
    (synopsis "NX X11 protocol compression libraries")
    (description "NX is a software suite which implements very efficient
compression of the X11 protocol.  This increases performance when using X
applications over a network, especially a slow one.  This package provides the
following libraries:
@table @code
@item NX_X11
NX's modified X Window System (X11) library
@item Xcomp
NX differential compression library for X11
@item Xcompshad
Session shadowing library
@end table

The following commands are also provided:

@table @command
@item nxagent
Agent providing NX transport of X sessions
@item nxproxy
The NX proxy (client) binary
@item nxdialog
Helper script
@end table")
    (home-page "https://github.com/ArcticaProject/nx-libs")
    (license license:gpl2)))

(define-public x2goclient
  (package
    (name "x2goclient")
    (version "4.1.2.3")
    (source
     (origin
       (method url-fetch)
       (uri (string-append
             "https://code.x2go.org/releases/source/x2goclient/x2goclient-"
             version ".tar.gz"))
       (sha256
        (base32 "0g6aba8kpsixq4486a8mga945lp31y0mzwa2krs5qqiiip3v72xb"))))
    (build-system gnu-build-system)
    (arguments
     (list
      #:tests? #f                       ;no test suite
      #:make-flags
      #~(list (string-append "SHELL="
                             (search-input-file %build-inputs "bin/bash"))
              "QT_VERSION=5"
              "INSTALL_DIR=install -d -m 755"
              "INSTALL_FILE=install -m 644"
              "INSTALL_PROGRAM=install -m 755"
              (string-append "PREFIX=" #$output)
              (string-append "ETCDIR=" #$output "/etc"))
      #:phases
      #~(modify-phases %standard-phases
          (delete 'configure)
          (add-before 'build 'patch-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/onmainwindow.cpp"
                (("/usr/sbin/sshd")
                 (search-input-file inputs "sbin/sshd"))))))))
    (native-inputs
     (list man2html
           pkg-config
           qtbase-5
           qttools-5))
    (inputs
     (list cups
           libssh
           libxpm
           nx-libs
           openldap
           openssh
           pulseaudio
           qtbase-5
           qtx11extras
           qtsvg-5))
    (synopsis "Remote desktop and application solution")
    (description
     "X2Go enables you to access a graphical desktop of a computer via
SSH (Secure Shell).  This package provides the X2Go Client, which can connect
to the X2Go Server.  Basic features of X2Go include:
@itemize
@item
Graphical remote desktop that works well over both low bandwidth and high
bandwidth connections
@item
The ability to disconnect and reconnect to a session, even from another
client
@item
Support for sound
@item
Support for as many simultaneous users as the computer's resources will
allow
@item
Traffic is securely tunneled over SSH
@item
File sharing from client to server
@item
Printer sharing from client to server
@item
Easily select from multiple desktop environments (e.g., MATE, GNOME, KDE)
@item
Remote support possible via desktop sharing
@item
The ability to access single applications by specifying the name of the
desired executable in the client configuration or selecting one of the
pre-defined common applications.
@end itemize")
    (home-page "https://wiki.x2go.org/doku.php")
    (license license:gpl2)))

M gnu/packages/package-management.scm => gnu/packages/package-management.scm +9 -9
@@ 176,8 176,8 @@
  ;; Note: the 'update-guix-package.scm' script expects this definition to
  ;; start precisely like this.
  (let ((version "1.4.0")
        (commit "aeb494322ca9dec4a4d66a7d063239c8536bd538")
        (revision 16))
        (commit "4c94b9e983bc51d9504655f1e7727c4f6d14b6b7")
        (revision 18))
    (package
      (name "guix")



@@ 193,7 193,7 @@
                      (commit commit)))
                (sha256
                 (base32
                  "1xl769lkpvkjpvq4vwkxm4dp77sr9finvr6izvf4kvyi6s3hbsys"))
                  "19lqlfafs5mrnciw4jz4iccx5zzhj4pyb20bz6cdqcqbf9nmkfp1"))
                (file-name (string-append "guix-" version "-checkout"))))
      (build-system gnu-build-system)
      (arguments


@@ 991,8 991,8 @@ transactions from C or Python.")
    (license license:gpl2+)))

(define-public bffe
  (let ((commit "006b96a9ff41f5d8e639f93f81eeab87d204bd89")
        (revision "4"))
  (let ((commit "bdfaab91e82d7d43c35405da3b18c46cde8096de")
        (revision "5"))
    (package
      (name "bffe")
      (version (git-version "0" revision commit))


@@ 1003,7 1003,7 @@ transactions from C or Python.")
                      (commit commit)))
                (sha256
                 (base32
                  "1ai3dzwp5ddn5i7xzvg0qcj0nbip03jx0d3vhvxqr1vnlr71rzvh"))
                  "0qwnd49apwdx8wrfms2spii1kdg5ashf4591kyfyr89070jjmpa7"))
                (file-name (string-append name "-" version "-checkout"))))
      (build-system gnu-build-system)
      (native-inputs


@@ 1530,8 1530,8 @@ environments.")
                  "0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))

(define-public guix-build-coordinator
  (let ((commit "1c80525d21f183ed2556def6fcd021f6ea9a88a4")
        (revision "98"))
  (let ((commit "d802b817d81e2ea8c9f30664acd7b3b37b16f7c5")
        (revision "99"))
    (package
      (name "guix-build-coordinator")
      (version (git-version "0" revision commit))


@@ 1542,7 1542,7 @@ environments.")
                      (commit commit)))
                (sha256
                 (base32
                  "0krw4v04ynp8v12zgc87cx6d3rldr13b48kix9rzq4z17x7f39yc"))
                  "1c69sww6mgwh17dd9k00fy6mi05asxb5l1jf2a7q63gv06h3bp0l"))
                (file-name (string-append name "-" version "-checkout"))))
      (build-system gnu-build-system)
      (arguments

M gnu/packages/password-utils.scm => gnu/packages/password-utils.scm +3 -3
@@ 425,7 425,7 @@ applications, there is xclip integration." )
(define-public ssh-to-age
  (package
    (name "ssh-to-age")
    (version "1.1.2")
    (version "1.1.7")
    (source
     (origin
       (method git-fetch)


@@ 434,7 434,7 @@ applications, there is xclip integration." )
             (commit version)))
       (file-name (git-file-name name version))
       (sha256
        (base32 "09rhga9iqmyyq8pkprydy8y15qhzqvbpgzvs681rcyllf8szrj73"))))
        (base32 "134gpbalyll238wvj9ci0rascgm4csayz863ci99cy5qq8266wrl"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/Mic92/ssh-to-age/cmd/ssh-to-age"


@@ 443,7 443,7 @@ applications, there is xclip integration." )
                  go-filippo-io-edwards25519
                  go-filippo-io-age))
    (home-page "https://github.com/Mic92/ssh-to-age")
    (synopsis "Convert SSH @code{ed25519} keys to @code{age} keys.")
    (synopsis "Convert SSH @code{ed25519} keys to @code{age} keys")
    (description "This package provides a simple command-line tool to
convert SSH @code{ed25519} keys to @code{age} keys.")
    (license license:expat)))

A gnu/packages/patches/clang-17.0-link-dsymutil-latomic.patch => gnu/packages/patches/clang-17.0-link-dsymutil-latomic.patch +14 -0
@@ 0,0 1,14 @@
This was mistakenly added to llvm-17 while a patch was being rebased.

---

diff --git a/llvm/tools/dsymutil/CMakeLists.txt b/llvm/tools/dsymutil/CMakeLists.txt
index 3cb88a50ce25..8699d0bb1d6b 100644
--- a/llvm/tools/dsymutil/CMakeLists.txt
+++ b/llvm/tools/dsymutil/CMakeLists.txt
@@ -42,4 +42,4 @@ if(APPLE)
   target_link_libraries(dsymutil PRIVATE "-framework CoreFoundation")
 endif(APPLE)
 
-# target_link_libraries(dsymutil PRIVATE ${LLVM_ATOMIC_LIB})
+target_link_libraries(dsymutil PRIVATE ${LLVM_ATOMIC_LIB})

A gnu/packages/patches/libextractor-tidy-support.patch => gnu/packages/patches/libextractor-tidy-support.patch +81 -0
@@ 0,0 1,81 @@
Upstream status: submitted to bug-libextractor@gnu.org.

From 1fc6daaeaf829fb941a176831c011888a73c43b9 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Mon, 11 Mar 2024 09:36:26 -0400
Subject: [PATCH] html_extractor: Add support for modern tidy-html.

* configure.ac: Use PKG_PROG_PKG_CONFIG to initialize pkg-config detection.
<tidy>: Check for library via pkg-config.
* src/plugins/html_extractor.c: Standardize tidy include file names.
---
 configure.ac                 | 28 +++++++++-------------------
 src/plugins/html_extractor.c |  4 ++--
 2 files changed, 11 insertions(+), 21 deletions(-)

diff --git a/configure.ac b/configure.ac
index d17ff39..e89d70c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -176,6 +176,8 @@ AS_CASE(["$target_os"],
 
 AM_ICONV
 
+PKG_PROG_PKG_CONFIG()
+
 # We define the paths here, because MinGW/GCC expands paths
 # passed through the command line ("-DLOCALEDIR=..."). This would
 # lead to hard-coded paths ("C:\mingw\mingw\bin...") that do
@@ -424,25 +426,13 @@ AC_CHECK_LIB(magic, magic_open,
    AM_CONDITIONAL(HAVE_MAGIC, false))],
   AM_CONDITIONAL(HAVE_MAGIC, false))
 
-AC_MSG_CHECKING(for tidyNodeGetValue -ltidy)
-AC_LANG_PUSH(C++)
-SAVED_LIBS=$LIBS
-LIBS="$LIBS -ltidy"
-AC_LINK_IFELSE(
-  [AC_LANG_PROGRAM([[#include <tidy/tidy.h>]],
-    [[ Bool b = tidyNodeGetValue (NULL, NULL, NULL); ]])],
-  [AC_MSG_RESULT(yes)
-   AM_CONDITIONAL(HAVE_TIDY, true)
-   AC_DEFINE(HAVE_TIDY,1,[Have tidyNodeGetValue in libtidy])],
-  [AC_MSG_RESULT(no)
-   AM_CONDITIONAL(HAVE_TIDY, false)])
-LIBS=$SAVED_LIBS
-AC_LANG_POP(C++)
-
-# restore LIBS
-LIBS=$LIBSOLD
-
-
+dnl tidyNodeGetValue was already available in 5.0.0, released in 2015.
+PKG_CHECK_MODULES([TIDY], [tidy >= 5.0.0],
+ [AC_DEFINE(HAVE_TIDY, 1, [Have tidy])
+  AM_CONDITIONAL(HAVE_TIDY, true)],
+ [AM_CONDITIONAL(HAVE_TIDY, false)])
+CFLAGS="$CFLAGS $TIDY_CFLAGS"
+LIBS="$LIBS $TIDY_LIBS"
 
 # should 'make check' run tests?
 AC_MSG_CHECKING(whether to run tests)
diff --git a/src/plugins/html_extractor.c b/src/plugins/html_extractor.c
index 5ebf97b..88100d3 100644
--- a/src/plugins/html_extractor.c
+++ b/src/plugins/html_extractor.c
@@ -26,8 +26,8 @@
 #include "platform.h"
 #include "extractor.h"
 #include <magic.h>
-#include <tidy/tidy.h>
-#include <tidy/tidybuffio.h>
+#include <tidy.h>
+#include <tidybuffio.h>
 
 /**
  * Mapping of HTML META names to LE types.

base-commit: a75f40b64b5868967c95ea214e8eaac4f7088b23
-- 
2.41.0


D gnu/packages/patches/python-poppler-qt5-fix-build.patch => gnu/packages/patches/python-poppler-qt5-fix-build.patch +0 -116
@@ 1,116 0,0 @@
Patch taken from the upstream repository
https://github.com/frescobaldi/python-poppler-qt5/issues/43

From 92e5962ec3751ab051d0b655fd61afc7a1cf709e Mon Sep 17 00:00:00 2001
From: Ben Greiner <code@bnavigator.de>
Date: Thu, 4 Mar 2021 17:02:51 +0100
Subject: [PATCH] map type QVector< QPair<TYPE, TYPE> > for
 FormFieldChoice::choicesWithExportValues() (#45)

---
 types.sip | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

diff --git a/types.sip b/types.sip
index 239b8c9..81cb283 100644
--- a/types.sip
+++ b/types.sip
@@ -331,5 +331,98 @@ template <TYPE>
 };
 
 
+/**
+ * Convert QVector< QPair<TYPE, TYPE> >
+ * from and to a Python list of a 2-item tuple
+ */
+
+template<TYPE>
+%MappedType QVector< QPair<TYPE, TYPE> >
+{
+%TypeHeaderCode
+#include <qvector.h>
+#include <qpair.h>
+%End
+
+%ConvertFromTypeCode
+  // Create the list.
+  PyObject *l;
+
+  if ((l = PyList_New(sipCpp->size())) == NULL)
+      return NULL;
+
+  // Set the list elements.
+  for (int i = 0; i < sipCpp->size(); ++i)
+  {
+    QPair<TYPE, TYPE>* p = new QPair<TYPE, TYPE>(sipCpp->at(i));
+    PyObject *ptuple = PyTuple_New(2);
+    PyObject *pfirst;
+    PyObject *psecond;
+
+    TYPE *sfirst = new TYPE(p->first);
+    if ((pfirst = sipConvertFromType(sfirst, sipType_TYPE, sipTransferObj)) == NULL)
+    {
+      Py_DECREF(l);
+      Py_DECREF(ptuple);
+      return NULL;
+    }
+    PyTuple_SET_ITEM(ptuple, 0, pfirst);
+
+    TYPE *ssecond = new TYPE(p->second);
+    if ((psecond = sipConvertFromType(ssecond, sipType_TYPE, sipTransferObj)) == NULL)
+    {
+      Py_DECREF(l);
+      Py_DECREF(ptuple);
+      Py_DECREF(pfirst);
+      return NULL;
+    }
+    PyTuple_SET_ITEM(ptuple, 1, psecond);
+
+    PyList_SET_ITEM(l, i, ptuple);
+  }
+
+  return l;
+%End
+
+%ConvertToTypeCode
+  const sipTypeDef* qpair_type = sipFindType("QPair<TYPE, TYPE>");
+
+  // Check the type if that is all that is required.
+  if (sipIsErr == NULL)
+  {
+    if (!PySequence_Check(sipPy))
+      return 0;
+
+    for (int i = 0; i < PySequence_Size(sipPy); ++i)
+      if (!sipCanConvertToType(PySequence_ITEM(sipPy, i), qpair_type, SIP_NOT_NONE))
+        return 0;
+
+    return 1;
+  }
+
+
+  QVector< QPair<TYPE, TYPE> > *qv = new QVector< QPair<TYPE, TYPE> >;
+
+  for (int i = 0; i < PySequence_Size(sipPy); ++i)
+  {
+    int state;
+    QPair<TYPE, TYPE> * p = reinterpret_cast< QPair<TYPE, TYPE> * >(sipConvertToType(PySequence_ITEM(sipPy, i), qpair_type, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+    if (*sipIsErr)
+    {
+      sipReleaseType(p, qpair_type, state);
+      delete qv;
+      return 0;
+    }
+    qv->append(*p);
+    sipReleaseType(p, qpair_type, state);
+  }
+
+  *sipCppPtr = qv;
+  return sipGetState(sipTransferObj);
+%End
+
+};
+
 
 /* kate: indent-width 4; space-indent on; hl c++; indent-mode cstyle; */

A gnu/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch => gnu/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch +45 -0
@@ 0,0 1,45 @@
from https://patch-diff.githubusercontent.com/raw/RubyCrypto/x25519/pull/36.patch

From 5886507e08488c0ed116b1979a073b78b9495683 Mon Sep 17 00:00:00 2001
From: Eric Long <i@hack3r.moe>
Date: Sat, 15 Apr 2023 02:58:26 +0800
Subject: [PATCH] Add automatic fallback for non-x86_64 targets

---
 Rakefile                          | 2 +-
 ext/x25519_precomputed/extconf.rb | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Rakefile b/Rakefile
index 535697c..6e4f4d3 100644
--- a/Rakefile
+++ b/Rakefile
@@ -7,7 +7,7 @@ CLEAN.include("**/*.o", "**/*.so", "**/*.bundle", "pkg", "tmp")
 
 require "rake/extensiontask"
 %w[precomputed ref10].each do |provider|
-  next if provider == "precomputed" && RUBY_PLATFORM =~ /arm64-darwin/
+  next if provider == "precomputed" && RUBY_PLATFORM !~ /x86_64|x64/
 
   Rake::ExtensionTask.new("x25519_#{provider}") do |ext|
     ext.ext_dir = "ext/x25519_#{provider}"
diff --git a/ext/x25519_precomputed/extconf.rb b/ext/x25519_precomputed/extconf.rb
index 7f2ba4d..b049f98 100644
--- a/ext/x25519_precomputed/extconf.rb
+++ b/ext/x25519_precomputed/extconf.rb
@@ -4,12 +4,12 @@
 
 require "mkmf"
 
-if RUBY_PLATFORM =~ /arm64-darwin|aarch64-linux/
-  File.write("Makefile", "install clean: ;")
-else
+if RUBY_PLATFORM =~ /x86_64|x64/
   $CFLAGS << " -Wall -O3 -pedantic -std=c99 -mbmi -mbmi2 -march=haswell"
 
   create_makefile "x25519_precomputed"
+else
+  File.write("Makefile", "install clean: ;")
 end
 
 # rubocop:enable Style/GlobalVars

M gnu/packages/pdf.scm => gnu/packages/pdf.scm +26 -48
@@ 17,7 17,7 @@
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Ben Sturmfels <ben@sturm.com.au>
;;; Copyright © 2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020, 2024 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>


@@ 26,6 26,7 @@
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2023 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2024 dan <i@dan.games>
;;; Copyright © 2023 Benjamin Slade <slade@lambda-y.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 56,6 57,7 @@
  #:use-module (guix build-system python)
  #:use-module (guix build-system qt)
  #:use-module (gnu packages)
  #:use-module (gnu packages aidc)
  #:use-module (gnu packages audio)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages backup)


@@ 432,40 434,25 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
(define-public python-poppler-qt5
  (package
    (name "python-poppler-qt5")
    (version "21.1.0")
    (version "21.3.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-poppler-qt5" version))
        (sha256
         (base32
          "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"))
       (patches (search-patches "python-poppler-qt5-fix-build.patch"))))
    (build-system python-build-system)
     (origin
       (method url-fetch)
       (uri (pypi-uri "python-poppler-qt5" version))
       (sha256
        (base32 "1q3gvmsmsq3llf9mcbhlkryrgprqrw2z7wmnvagy180f3y2fhxxl"))))
    (build-system pyproject-build-system)
    (arguments
     `(;; There are no tests.  The check phase just causes a rebuild.
       #:tests? #f
       #:phases
       (modify-phases %standard-phases
         (replace 'build
           (lambda* (#:key inputs #:allow-other-keys)
             (substitute* "setup.py"
               ;; This check always fails, so disable it.
               (("if not check_qtxml\\(\\)")
                "if True"))
             ;; We need to pass an extra flag here.  This cannot be in
             ;; configure-flags because it should not be passed for the
             ;; installation phase.
             ((@@ (guix build python-build-system) call-setuppy)
              "build_ext" (list (string-append "--pyqt-sip-dir="
                                               (assoc-ref inputs "python-pyqt")
                                               "/share/sip")) #t))))))
    (native-inputs
     (list pkg-config))
    (inputs
     (list python-sip-4 python-pyqt poppler-qt5 qtbase-5))
    (home-page "https://pypi.org/project/python-poppler-qt5/")
    (synopsis "Python bindings for Poppler-Qt5")
     `(;; The sipbuild.api backend builder expects a Python dictionary as per
       ;; https://peps.python.org/pep-0517/#config-settings, but we
       ;; give it lists and it fails.  The next line is a workaround.
       #:configure-flags '#nil
       #:tests? #f))
    (native-inputs (list pkg-config))
    (inputs (list python-sip python-pyqt-builder python-pyqt poppler-qt5
                  qtbase-5))
    (home-page "https://github.com/frescobaldi/python-poppler-qt5")
    (synopsis "Python binding to Poppler-Qt5")
    (description
     "This package provides Python bindings for the Qt5 interface of the
Poppler PDF rendering library.")


@@ 1050,7 1037,7 @@ using a stylus.")
(define-public xournalpp
  (package
    (name "xournalpp")
    (version "1.2.2")
    (version "1.2.3")
    (source
     (origin
       (method git-fetch)


@@ 1059,7 1046,7 @@ using a stylus.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1svmdj43z1shm3wnkrdrq1h6rba843mp4x4d8jmxsx7kwiiz9l78"))))
        (base32 "1rj9kz21r59cswfpczp5dcmvchbbmybv661iyycaiii2z5gh0h7i"))))
    (build-system cmake-build-system)
    (arguments
     (list


@@ 1527,7 1514,7 @@ multiple files.")
(define-public pdfpc
  (package
    (name "pdfpc")
    (version "4.5.0")
    (version "4.6.0")
    (source
     (origin
       (method git-fetch)


@@ 1536,22 1523,13 @@ multiple files.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0bmy51w6ypz927hxwp5g7wapqvzqmsi3w32rch6i3f94kg1152ck"))))
        (base32 "0kj84sf5hgr2v2ra6dxmxqcr173h17cpnhg9lcq36shdbdnncwg4"))))
    (build-system cmake-build-system)
    (arguments
     '(#:tests? #f          ; no test target
       #:phases
       (modify-phases %standard-phases
         ;; This is really a bug in Vala.
         ;; https://github.com/pdfpc/pdfpc/issues/594
         (add-after 'unpack 'fix-vala-API-conflict
           (lambda _
             (substitute* "src/classes/action/movie.vala"
               (("info.from_caps\\(caps\\)")
                "Gst.Video.info_from_caps(out info, caps)")))))))
    (arguments '(#:tests? #f))           ; no test target
    (inputs
     `(("cairo" ,cairo)
       ("discount" ,discount) ; libmarkdown
       ("qrencode" ,qrencode)
       ("gtk+" ,gtk+)
       ("gstreamer" ,gstreamer)
       ("gst-plugins-base" ,gst-plugins-base)

M gnu/packages/plotutils.scm => gnu/packages/plotutils.scm +3 -3
@@ 1,7 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>


@@ 276,14 276,14 @@ colors, styles, options and details.")
(define-public asymptote
  (package
    (name "asymptote")
    (version "2.86")
    (version "2.87")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/asymptote/"
                           version "/asymptote-" version ".src.tgz"))
       (sha256
        (base32 "07y9yg7kdkgmz024qzny8xhjw3c367kxfpwzv19cxcy7qcgsvsy4"))
        (base32 "06sr0fpc3zci7ncj9gwp3h8zhbvxs37rwwzqirnxa86zyfar4shf"))
       (modules '((guix build utils)))
       (snippet
        ;; Remove bundled RapidJSON.

M gnu/packages/python-web.scm => gnu/packages/python-web.scm +167 -24
@@ 44,7 44,7 @@
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev>
;;; Copyright © 2021, 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2021, 2022, 2024 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2021, 2022 jgart <jgart@dismail.de>
;;; Copyright © 2021 Alice Brenon <alice.brenon@ens-lyon.fr>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>


@@ 61,6 61,7 @@
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 78,15 79,15 @@
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages python-web)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix build-system copy)
  #:use-module (guix build-system pyproject)
  #:use-module (guix build-system python)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module (guix git-download)
  #:use-module (guix packages)
  #:use-module (guix utils)
  #:use-module (gnu packages)
  #:use-module (gnu packages admin)
  #:use-module (gnu packages base)
  #:use-module (gnu packages bash)


@@ 106,8 107,8 @@
  #:use-module (gnu packages node)
  #:use-module (gnu packages openstack)
  #:use-module (gnu packages pcre)
  #:use-module (gnu packages protobuf)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages protobuf)
  #:use-module (gnu packages python)
  #:use-module (gnu packages python-build)
  #:use-module (gnu packages python-check)


@@ 121,12 122,12 @@
  #:use-module (gnu packages serialization)
  #:use-module (gnu packages sphinx)
  #:use-module (gnu packages texinfo)
  #:use-module (gnu packages tls)
  #:use-module (gnu packages time)
  #:use-module (gnu packages tls)
  #:use-module (gnu packages version-control)
  #:use-module (gnu packages web)
  #:use-module (gnu packages xml)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (gnu packages)
  #:use-module (srfi srfi-1))

(define-public python-huggingface-hub


@@ 1917,21 1918,47 @@ Amazon S3 compatible object storage server.")
       (uri (pypi-uri "pycurl" version))
       (sha256
        (base32 "1ji46b924caa4saxvjxs9h673yy0kif297nxpnjn84r7w05mjc2p"))))
    (build-system python-build-system)
    (build-system pyproject-build-system)
    (arguments
     ;; The tests attempt to access external web servers, so we cannot run
     ;; them.  Furthermore, they are skipped altogether when using Python 2.
     '(#:tests? #f
     '(#:test-flags
       (list "-n" "auto"
             "-k" (string-append
                   ;; Disable hanginging tests
                   "not test_multi_socket_select"
                   ;; E assert None is not None
                   ;; E+ where None =
                   ;; <tests.multi_callback_test.MultiCallbackTest
                   ;; testMethod=test_easy_pause_unpause>.socket_result
                   " and not test_easy_pause_unpause"
                   " and not test_multi_socket_action"
                   ;; E pycurl.error: (1, '')
                   " and not test_http_version_3"
                   ;; OSError: tests/fake-curl/libcurl/with_gnutls.so: cannot
                   ;; open shared object file: No such file or directory
                   " and not test_libcurl_ssl_gnutls"
                   ;; OSError: tests/fake-curl/libcurl/with_nss.so: cannot
                   ;; open shared object file: No such file or directory
                   " and not test_libcurl_ssl_nss"
                   ;; OSError: tests/fake-curl/libcurl/with_openssl.so: cannot
                   ;; open shared object file: No such file or directory
                   " and not test_libcurl_ssl_openssl"
                   ;; pycurl.error: (56, 'Recv failure: Connection reset by
                   ;; peer')
                   " and not test_post_with_read_callback"))
       #:phases (modify-phases %standard-phases
                    (add-before 'build 'configure-tls-backend
                      (lambda _
                        ;; XXX: PycURL fails to automatically determine which TLS
                        ;; backend to use when cURL is built with --disable-static.
                        ;; See setup.py and <https://github.com/pycurl/pycurl/pull/147>.
                        (setenv "PYCURL_SSL_LIBRARY" "gnutls")
                        #t)))))
    (native-inputs
     (list python-nose python-bottle))
                  (add-before 'build 'configure-tls-backend
                    (lambda _
                      ;; XXX: PycURL fails to automatically determine which
                      ;; TLS backend to use when cURL is built with
                      ;; --disable-static.  See setup.py and
                      ;; <https://github.com/pycurl/pycurl/pull/147>.
                      (setenv "PYCURL_SSL_LIBRARY" "gnutls"))))))
    (native-inputs
     (list python-bottle
           python-flaky
           python-nose
           python-pytest
           python-pytest-xdist))
    (inputs
     (list curl gnutls))
    (home-page "http://pycurl.io/")


@@ 2722,6 2749,123 @@ object to help create WSGI responses.")
files.  These locks can also be used to mediate access to other files.")
    (license license:zpl2.1)))

(define-public python-zconfig
  (package
    (name "python-zconfig")
    (version "4.0")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "ZConfig" version))
       (sha256
        (base32 "0mh13p38vq7ip4zkvaplzr8w0mqrmmqiyb5y663d165slvxl5mpq"))))
    (build-system python-build-system)
    (arguments
     '(#:phases (modify-phases %standard-phases
                  (replace 'check
                    (lambda* (#:key tests? #:allow-other-keys)
                      (if tests?
                          (begin
                            ;; This test assumes we still have setup.py in the
                            ;; directory from which we import zconfig, which
                            ;; does not work after installing the package.
                            (delete-file-recursively
                             "src/ZConfig/tests/test_readme.py")
                            (invoke "zope-testrunner" "-vv" "--test-path=src"
                                    "--all"))
                          (format #t "test suite not run~%")))))))
    (native-inputs (list python-docutils python-manuel python-zope-exceptions
                         python-zope-testrunner))
    (home-page "https://github.com/zopefoundation/ZConfig/")
    (synopsis "Structured configuration library intended for general use")
    (description
     "@code{zconfig} is a configuration library intended for general
use.  It supports a hierarchical schema-driven configuration model that allows
a schema to specify data conversion routines written in Python.  Its model is
very different from the model supported by the @code{configparser} module
found in Python's standard library, and is more suitable to
configuration-intensive applications.")
    (license license:zpl2.1)))

(define-public python-zodb
  (package
    (name "python-zodb")
    (version "5.8.1")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "ZODB" version))
       (sha256
        (base32 "1pv4w8mnx6j4xvkcjbkh99pv8ljby7g9f7zjq7zhdmk06sykmiy6"))))
    (build-system pyproject-build-system)
    (arguments
     '(#:phases (modify-phases %standard-phases
                  (replace 'check
                    (lambda* (#:key tests? #:allow-other-keys)
                      (if tests?
                          (begin
                            ;; This test does not work after installing the
                            ;; package, since it expects the ZODB source code
                            ;; to reside in the src/ directory.
                            (delete-file-recursively
                             "src/ZODB/tests/testdocumentation.py")
                            (invoke "zope-testrunner" "-vv" "--test-path=src"
                                    "--all"))
                          (format #t "test suite not run~%")))))))
    (propagated-inputs (list python-btrees
                             python-persistent
                             python-zconfig
                             python-six
                             python-transaction
                             python-zc-lockfile
                             python-zodbpickle
                             python-zope-interface))
    (native-inputs (list python-manuel python-zope-testing
                         python-zope-testrunner))
    (home-page "http://zodb-docs.readthedocs.io")
    (synopsis "Object-oriented database for Python")
    (description
     "@code{ZODB} provides an object-oriented and @acronym{ACID,
Atomicity Consistency Isolation Durability} compliant database for Python with
a high degree of transparency.  @code{ZODB} is an object-oriented database,
not an object-relational mapping.  This comes with several advantaged:

@itemize
@item no separate language for database operations
@item very little impact on your code to make objects persistent
@item no database mapper that partially hides the database.
@item almost no seam between code and database.
@end itemize")
    (license license:zpl2.1)))

(define-public python-zodbpickle
  (package
    (name "python-zodbpickle")
    (version "3.2")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "zodbpickle" version))
       (sha256
        (base32 "035bjrksl4h92mvjkx6id4gjcpc1k4mbci8ryjl6l9mki7ihx77b"))))
    (build-system pyproject-build-system)
    (arguments
     '(#:phases (modify-phases %standard-phases
                  (replace 'check
                    (lambda* (#:key tests? #:allow-other-keys)
                      (if tests?
                          (invoke "zope-testrunner" "-vv" "--test-path=src"
                                  "--all")
                          (format #t "test suite not run~%")))))))
    (native-inputs (list python-zope-testrunner))
    (home-page "https://github.com/zopefoundation/zodbpickle")
    (synopsis "Uniform pickling interface for @code{zodb}")
    (description
     "This package is a fork of the @code{pickle} module (and the
supporting C extension) from both Python 3.2 and Python 3.3.  The fork adds
support for the @code{noload} operations used by @code{zodb}.")
    (license (list license:psfl license:zpl2.1))))

(define-public python-zope-event
  (package
    (name "python-zope-event")


@@ 8409,7 8553,7 @@ compatibility with Microformats1 (mf1).")
(define-public python-extruct
  (package
    (name "python-extruct")
    (version "0.13.0")
    (version "0.16.0")
    (source (origin
              (method git-fetch)        ;for tests
              (uri (git-reference


@@ 8418,7 8562,7 @@ compatibility with Microformats1 (mf1).")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "075zldf3dqcc429z1vk2ngbmv034bnlyk6arh3rh30jbsvz9pzl5"))))
                "1s05sz6nghrap1gjkg3vsqz6djld6lczd6w3r1542ir8n7binl7a"))))
    (build-system python-build-system)
    (arguments
     (list


@@ 8436,7 8580,6 @@ compatibility with Microformats1 (mf1).")
           python-mf2py
           python-pyrdfa3
           python-rdflib
           python-rdflib-jsonld
           python-w3lib))
    (home-page "https://github.com/scrapinghub/extruct")
    (synopsis "Extract embedded metadata from HTML markup")

M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +56 -3
@@ 148,6 148,7 @@
;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
;;; Copyright © 2024 Ian Eure <ian@retrospec.tv>
;;; Copyright © 2024 Adriel Dumas--Jondeau <leirda@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 6378,6 6379,46 @@ accessible for novices, as well as a scripting interface offering the full
flexibility and power of the Python language.")
    (license license:gpl3+)))

(define-public kalamine
  (package
    (name "kalamine")
    (version "0.36")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "kalamine" version))
       (sha256
        (base32 "1xxncavq5a0dydhzpfjdxmqsddl77275d9k9giw1032bdyb9d5is"))))
    (build-system pyproject-build-system)
    (arguments
     (list
      #:phases
      #~(modify-phases %standard-phases
          (add-before 'check 'make-test-layouts
            (lambda _
              (apply invoke
                     (cons* "python" "-m" "kalamine.cli" "build"
                            (find-files "layouts" "\\.toml")))
              (invoke "python" "-m" "kalamine.cli" "new" "test.toml"))))))
    (propagated-inputs
     (list python-click
           python-livereload
           python-lxml
           python-progress
           python-pyyaml
           python-tomli))
    ;; TODO: Add python-pytest-ruff to native-inputs once it has been
    ;; packaged.
    (native-inputs
     (list python-hatchling python-mypy python-pytest))
    (home-page "https://github.com/OneDeadKey/kalamine")
    (synopsis "Keyboard layout maker")
    (description
     "Kalamine provides a CLI to create advanced keyboard layout from a
textual portable description.  It also supports layout emulation via web
browser.")
    (license license:expat)))

(define-public python-dm-tree
  (package
    (name "python-dm-tree")


@@ 17269,16 17310,18 @@ consistent API regardless of how the configuration was created.")
(define-public python-configargparse
  (package
    (name "python-configargparse")
    (version "1.5.3")
    (version "1.7")
    (source (origin
              (method url-fetch)
              (uri (pypi-uri "ConfigArgParse" version))
              (sha256
               (base32
                "17vky4ihicbf7nggg30xs7h3g5rxzwgch8vilnnrvdaacszkq2qv"))))
                "1l866g1dcf2ljf8fl7ggpxk1rggry0lya4d5b264gradi1qp81p7"))))
    (build-system pyproject-build-system)
    (native-inputs
     (list python-mock python-pytest))
    (propagated-inputs
     (list python-pyyaml))
    (synopsis "Replacement for argparse")
    (description "A drop-in replacement for argparse that allows options to also
be set via config files and/or environment variables.")


@@ 24004,8 24047,18 @@ manipulation, or @code{stdout}.")
         (base32
          "1vi2fj31vygfcqrkimdmk52q2ldw08g9fn4v4zlgdfgcjlhqyhxn"))))
    (build-system python-build-system)
    (arguments
     (list
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'fix-rdflib-6-compatibility
            (lambda _
              ;; See https://github.com/trungdong/prov/issues/151
              (substitute* "src/prov/tests/test_rdf.py"
                (("\\.serialize\\(format=\"nt\"\\)")
                 ".serialize(format=\"nt\", encoding=\"utf-8\")")))))))
    (propagated-inputs
     (list python-dateutil python-lxml python-networkx python-rdflib-5))
     (list python-dateutil python-lxml python-networkx python-rdflib))
    (native-inputs
     (list graphviz python-pydot))
    (home-page "https://github.com/trungdong/prov")

M gnu/packages/python.scm => gnu/packages/python.scm +6 -1
@@ 663,7 663,12 @@ data types.")
       #: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"
                           " --exclude"
                           " test_mmap"
                           " test_socket"
                           " test_threading"
                           " test_asyncio"
                           " test_shutdown"
                           ,@(if (system-hurd?)
                                 '(" test_posix" ;multiple errors
                                   " test_time"

M gnu/packages/qt.scm => gnu/packages/qt.scm +14 -3
@@ 218,14 218,14 @@ of C++20 coroutines in connection with certain asynchronous Qt actions.")
(define-public qt5ct
  (package
    (name "qt5ct")
    (version "1.5")
    (version "1.8")
    (source
     (origin
       (method url-fetch)
       (uri
        (string-append "mirror://sourceforge/qt5ct/qt5ct-" version ".tar.bz2"))
       (sha256
        (base32 "14742vs32m98nbfb5mad0i8ciff5f45gfcb5v03p4hh2dvhhqgfn"))))
        (base32 "1s88v3x5vxrz981jiqb9cnwak0shz6kgjbkp511i592y85a41dr3"))))
    (build-system qt-build-system)
    (arguments
     (list


@@ 2171,7 2171,18 @@ plugin for Adobe After Effects.")
                "1bkx2sc5hyldarc7w76ymv7dlcna3ib9r2kp67jdqcf856bnrx36"))))
    (arguments
     (substitute-keyword-arguments (package-arguments qtsvg-5)
       ((#:tests? _ #f) #f)))           ; TODO: Enable the tests
       ((#:tests? _ #f) #f)           ; TODO: Enable the tests
       ((#:phases phases '%standard-phases)
        #~(modify-phases #$phases
            (add-after 'unpack 'patch-qmake
              (lambda* (#:key inputs #:allow-other-keys)
                ;; Adjust the default location of the 'qmake' command known to
                ;; the 'lprodump' command, which would otherwise look for it
                ;; in its own bindir.
                (substitute* "src/linguist/lprodump/main.cpp"
                  (("app.applicationDirPath\\() \\+ QLatin1String\\(\"/qmake\")")
                   (format #f "QLatin1String(~s)"
                           (search-input-file inputs "bin/qmake"))))))))))
    (native-inputs (list perl qtdeclarative-5 vulkan-headers))
    (inputs (list mesa qtbase-5))
    (synopsis "Qt Tools and Designer modules")

M gnu/packages/raspberry-pi.scm => gnu/packages/raspberry-pi.scm +3 -3
@@ 85,7 85,7 @@ used in the Raspberry Pi")
    (supported-systems '("armhf-linux" "aarch64-linux"))
    (license license:gpl3)))

(define raspi-gpio
(define-public raspi-gpio
  (let ((commit "6d0769ac04760b6e9f33b4aa1f11c682237bf368")
        (revision "1"))
    (package


@@ 466,7 466,7 @@ secondary LCD display connected to the Raspberry Pi board.")
(define-public rpi-imager
  (package
    (name "rpi-imager")
    (version "1.7.5")
    (version "1.8.5")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 489,7 489,7 @@ secondary LCD display connected to the Raspberry Pi board.")
                                                    (cut member <> keep)))))))
              (sha256
               (base32
                "0c5qsqh7drvf76hc75m2cp7bf44w7gwbmhgaqjrl5qwb6pbqf7y8"))))
                "1jr4w9h0bvqpy4r1g22n7b07zpplmc318v4lcfvh70c0rhl2vfi6"))))
    (build-system qt-build-system)
    (arguments
     (list

M gnu/packages/rdf.scm => gnu/packages/rdf.scm +0 -39
@@ 367,45 367,6 @@ powerful language for representing information.")
    (license (license:non-copyleft "file://LICENSE"
                                   "See LICENSE in the distribution."))))

(define-public python-rdflib-5
  (package
    (inherit python-rdflib)
    (version "5.0.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "rdflib" version))
        (sha256
         (base32
          "0mdi7xh4zcr3ngqwlgqdqf0i5bxghwfddyxdng1zwpiqkpa9s53q"))))
    ;; XXX: Lazily disable tests because they require a lot of work
    ;; and this package is only transitional.
    (arguments '(#:tests? #f))))

;; Note: This package is only needed for rdflib < 6.0; supersede when
;; the above are removed.
(define-public python-rdflib-jsonld
  (package
    (name "python-rdflib-jsonld")
    (version "0.6.2")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "rdflib-jsonld" version))
        (sha256
         (base32
          "0qrshlqzv5g5bign7kjja3xf7hyk7xgayr3yd0qlqda1kl0x6z0h"))))
    (build-system python-build-system)
    (native-inputs
     (list python-nose))
    (propagated-inputs
     (list python-rdflib))
    (home-page "https://github.com/RDFLib/rdflib-jsonld")
    (synopsis "rdflib extension adding JSON-LD parser and serializer")
    (description "This package provides an rdflib extension adding JSON-LD
parser and serializer.")
    (license license:bsd-3)))

(define-public python-cfgraph
  (package
    (name "python-cfgraph")

M gnu/packages/ruby.scm => gnu/packages/ruby.scm +12 -6
@@ 7,7 7,7 @@
;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017, 2019-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net>


@@ 34,7 34,7 @@
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023, 2024 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.


@@ 3259,7 3259,10 @@ error streams.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1g0311ly32f6hfn4q5fvkbjbl2bhv1l9fx6s0kglxfsrwq51926y"))))
                "1g0311ly32f6hfn4q5fvkbjbl2bhv1l9fx6s0kglxfsrwq51926y"))
              (patches
               (search-patches
                "ruby-x25519-automatic-fallback-non-x86_64.patch"))))
    (build-system ruby-build-system)
    (arguments
     (list #:test-target "spec"


@@ 9847,13 9850,13 @@ navigation capabilities to @code{pry}, using @code{byebug}.")
(define-public ruby-stackprof
  (package
    (name "ruby-stackprof")
    (version "0.2.25")
    (version "0.2.26")
    (source
     (origin
       (method url-fetch)
       (uri (rubygems-uri "stackprof" version))
       (sha256
        (base32 "0bhdgfb0pmw9mav1kw9fn0ka012sa0i3h5ppvqssw5xq48nhxnr8"))))
        (base32 "1gdqqwnampxmc54nf6zfy9apkmkpdavzipvfssmjlhnrrjy8qh7f"))))
    (build-system ruby-build-system)
    (arguments
     (list


@@ 9873,7 9876,10 @@ navigation capabilities to @code{pry}, using @code{byebug}.")
                (("def test_(cputime)" _ name)
                 (string-append "def skip_" name))
                ;; This test often fails
                (("def test_gc") "def skip_test_gc"))))
                (("def test_gc") "def skip_test_gc")
                ;; This test is known to fail on 32-bit systems.
                ;; /gnu/store/w8y8wm82by1cnp33n5vy976wbrns9jys-stackprof-0.2.26.gem
                (("def test_raw") "def skip_test_raw"))))
          (add-before 'check 'build-tests
            (lambda _
              (invoke "rake" "compile")))

M gnu/packages/rust-apps.scm => gnu/packages/rust-apps.scm +170 -33
@@ 84,6 84,7 @@
  #:use-module (gnu packages jemalloc)
  #:use-module (gnu packages kde)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages llvm)
  #:use-module (gnu packages networking)
  #:use-module (gnu packages shells)
  #:use-module (gnu packages ssh)


@@ 1782,39 1783,8 @@ by modifying your @file{Cargo.toml} file from the command line.")
rebase.")
    (license license:gpl3+)))

(define-public rust-cbindgen
  (package
    (name "rust-cbindgen")
    (version "0.13.2")
    (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cbindgen" version))
        (file-name (string-append name "-" version ".tar.xz"))
        (sha256
         (base32
          "0673pq96hs7waavkv58v2pakpxpsfyjvbraa5kyl2b44phgdzcid"))))
    (build-system cargo-build-system)
    (arguments
     `(#:cargo-inputs
       (("clap" ,rust-clap-2)
        ("log" ,rust-log-0.4)
        ("proc-macro2" ,rust-proc-macro2-1)
        ("quote" ,rust-quote-1)
        ("serde" ,rust-serde-1)
        ("serde-json" ,rust-serde-json-1)
        ("syn" ,rust-syn-1)
        ("tempfile" ,rust-tempfile-3)
        ("toml" ,rust-toml-0.5))))
    (home-page "https://github.com/eqrion/cbindgen/")
    (synopsis "Tool for generating C bindings to Rust code")
    (description
     "This package provides a tool for generating C/C++ bindings to Rust code.")
    (license license:mpl2.0)))

(define-public rust-cbindgen-0.26
  (package
    (inherit rust-cbindgen)
    (name "rust-cbindgen")
    (version "0.26.0")
    (source


@@ 1824,6 1794,7 @@ rebase.")
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "0jdbxmn5h5nlr4bifx85gny309djv5djs9q78fa1d7sj0wdw2sys"))))
    (build-system cargo-build-system)
    (arguments
     `(#:cargo-inputs (("rust-clap" ,rust-clap-3)
                       ("rust-heck" ,rust-heck-0.4)


@@ 1837,7 1808,12 @@ rebase.")
                       ("rust-tempfile" ,rust-tempfile-3)
                       ("rust-toml" ,rust-toml-0.5))
       #:cargo-development-inputs (("rust-serial-test" ,rust-serial-test-0.5))))
    (native-inputs (list python-cython))))
    (native-inputs (list python-cython))
    (home-page "https://github.com/eqrion/cbindgen/")
    (synopsis "Tool for generating C bindings to Rust code")
    (description
     "This package provides a tool for generating C/C++ bindings to Rust code.")
    (license license:mpl2.0)))

(define-public rust-cbindgen-0.24
  (package


@@ 1865,6 1841,69 @@ rebase.")
              (base32
               "006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav"))))))

(define-public rust-cbindgen rust-cbindgen-0.26)

(define-public rust-bindgen-cli
  (package
    (name "rust-bindgen-cli")
    (version "0.69.4")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "bindgen-cli" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "00dfny07m4xfnqbfn7yr7cqwilj6935lbyg5d39yxjfj8jglfcax"))))
    (build-system cargo-build-system)
    (arguments
     `(#:install-source? #f
       #:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.69)
                       ("rust-clap" ,rust-clap-4)
                       ("rust-clap-complete" ,rust-clap-complete-4)
                       ("rust-env-logger" ,rust-env-logger-0.10)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-shlex" ,rust-shlex-1))
       #:phases
       (modify-phases %standard-phases
         (replace 'install
           (lambda* (#:key inputs outputs #:allow-other-keys)
             (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
                    (bindgen (string-append bin "/bindgen"))
                    (llvm-dir (string-append
                                (assoc-ref inputs "clang") "/lib")))
               (install-file "target/release/bindgen" bin)
               (wrap-program bindgen
                 `("LIBCLANG_PATH" = (,llvm-dir))))))
         (add-after 'install 'install-completions
           (lambda* (#:key native-inputs outputs #:allow-other-keys)
             (let* ((out (assoc-ref outputs "out"))
                    (share (string-append out "/share"))
                    (bindgen (string-append out "/bin/bindgen")))
               (mkdir-p (string-append share "/bash-completion/completions"))
               (with-output-to-file
                 (string-append share "/bash-completion/completions/bindgen")
                 (lambda _ (invoke bindgen "--generate-shell-completions" "bash")))
               (mkdir-p (string-append share "/fish/vendor_completions.d"))
               (with-output-to-file
                 (string-append share "/fish/vendor_completions.d/bindgen.fish")
                 (lambda _ (invoke bindgen "--generate-shell-completions" "fish")))
               (mkdir-p (string-append share "/zsh/site-functions"))
               (with-output-to-file
                 (string-append share "/zsh/site-functions/_bindgen")
                 (lambda _ (invoke bindgen "--generate-shell-completions" "zsh")))
               (mkdir-p (string-append share "/elvish/lib"))
               (with-output-to-file
                 (string-append share "/elvish/lib/bindgen")
                 (lambda _
                   (invoke bindgen "--generate-shell-completions" "elvish")))))))))
    (inputs (list bash-minimal clang))
    (home-page "https://rust-lang.github.io/rust-bindgen/")
    (synopsis "Generate Rust FFI bindings to C and C++ libraries")
    (description "This package can be used to automatically generate Rust FFI
bindings to C and C++ libraries.  This package provides the @command{bindgen}
command.")
    (license license:bsd-3)))

(define-public sniffglue
  (package
    (name "sniffglue")


@@ 2361,7 2400,105 @@ work.  This allows the client to be used in a much simpler way, with the
background agent taking care of maintaining the necessary state.")
    (license license:expat)))

;;; Note: keep in sync with our current Rust/Cargo version.
;; Note: Keep rust-cargo and rust-cargo-c in sync with our current
;; rust:cargo version.
(define-public rust-cargo
  (package
    (name "rust-cargo")
    (version "0.76.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "cargo" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "14yjyvj9bl6mlzx6bbi3igflgdrx1hil9ifnf1dl9xnm4mb2gjw6"))))
    (build-system cargo-build-system)
    (arguments
     `(#:tests? #f      ; unresolved import `cargo_test_support`
       #:cargo-inputs
       (("rust-anstream" ,rust-anstream-0.6)
        ("rust-anstyle" ,rust-anstyle-1)
        ("rust-anyhow" ,rust-anyhow-1)
        ("rust-base64" ,rust-base64-0.21)
        ("rust-bytesize" ,rust-bytesize-1)
        ("rust-cargo-credential" ,rust-cargo-credential-0.4)
        ("rust-cargo-credential-libsecret" ,rust-cargo-credential-libsecret-0.4)
        ("rust-cargo-credential-macos-keychain" ,rust-cargo-credential-macos-keychain-0.4)
        ("rust-cargo-credential-wincred" ,rust-cargo-credential-wincred-0.4)
        ("rust-cargo-platform" ,rust-cargo-platform-0.1)
        ("rust-cargo-util" ,rust-cargo-util-0.2)
        ("rust-clap" ,rust-clap-4)
        ("rust-color-print" ,rust-color-print-0.3)
        ("rust-crates-io" ,rust-crates-io-0.39)
        ("rust-curl" ,rust-curl-0.4)
        ("rust-curl-sys" ,rust-curl-sys-0.4)
        ("rust-filetime" ,rust-filetime-0.2)
        ("rust-flate2" ,rust-flate2-1)
        ("rust-flate2" ,rust-flate2-1)
        ("rust-git2" ,rust-git2-0.18)
        ("rust-git2-curl" ,rust-git2-curl-0.19)
        ("rust-gix" ,rust-gix-0.55)
        ("rust-gix-features" ,rust-gix-features-0.35)
        ("rust-glob" ,rust-glob-0.3)
        ("rust-hex" ,rust-hex-0.4)
        ("rust-hmac" ,rust-hmac-0.12)
        ("rust-home" ,rust-home-0.5)
        ("rust-http-auth" ,rust-http-auth-0.1)
        ("rust-humantime" ,rust-humantime-2)
        ("rust-ignore" ,rust-ignore-0.4)
        ("rust-im-rc" ,rust-im-rc-15)
        ("rust-indexmap" ,rust-indexmap-2)
        ("rust-itertools" ,rust-itertools-0.11)
        ("rust-jobserver" ,rust-jobserver-0.1)
        ("rust-lazycell" ,rust-lazycell-1)
        ("rust-libc" ,rust-libc-0.2)
        ("rust-libgit2-sys" ,rust-libgit2-sys-0.16)
        ("rust-memchr" ,rust-memchr-2)
        ("rust-opener" ,rust-opener-0.6)
        ("rust-openssl" ,rust-openssl-0.10)
        ("rust-os-info" ,rust-os-info-3)
        ("rust-pasetors" ,rust-pasetors-0.6)
        ("rust-pathdiff" ,rust-pathdiff-0.2)
        ("rust-pulldown-cmark" ,rust-pulldown-cmark-0.9)
        ("rust-rand" ,rust-rand-0.8)
        ("rust-rustfix" ,rust-rustfix-0.6)
        ("rust-semver" ,rust-semver-1)
        ("rust-serde" ,rust-serde-1)
        ("rust-serde-untagged" ,rust-serde-untagged-0.1)
        ("rust-serde-value" ,rust-serde-value-0.7)
        ("rust-serde-ignored" ,rust-serde-ignored-0.1)
        ("rust-serde-json" ,rust-serde-json-1)
        ("rust-sha1" ,rust-sha1-0.10)
        ("rust-shell-escape" ,rust-shell-escape-0.1)
        ("rust-supports-hyperlinks" ,rust-supports-hyperlinks-2)
        ("rust-syn" ,rust-syn-2)
        ("rust-tar" ,rust-tar-0.4)
        ("rust-tar" ,rust-tar-0.4)
        ("rust-tempfile" ,rust-tempfile-3)
        ("rust-time" ,rust-time-0.3)
        ("rust-toml" ,rust-toml-0.8)
        ("rust-toml-edit" ,rust-toml-edit-0.20)
        ("rust-tracing" ,rust-tracing-0.1)
        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)
        ("rust-unicase" ,rust-unicase-2)
        ("rust-unicode-width" ,rust-unicode-width-0.1)
        ("rust-unicode-xid" ,rust-unicode-xid-0.2)
        ("rust-url" ,rust-url-2)
        ("rust-walkdir" ,rust-walkdir-2)
        ("rust-windows-sys" ,rust-windows-sys-0.48))
       #:cargo-development-inputs (("rust-same-file" ,rust-same-file-1)
                                   ("rust-snapbox" ,rust-snapbox-0.4))))
    (native-inputs
     (list pkg-config))
    (inputs
     (list curl libssh2 libgit2-1.7 openssl zlib))
    (home-page "https://crates.io")
    (synopsis "Package manager for Rust")
    (description "Cargo, a package manager for Rust.  This package provides
the library crate of Cargo.")
    (license (list license:expat license:asl2.0))))

(define-public rust-cargo-c
  (package
    (name "rust-cargo-c")

M gnu/packages/rust.scm => gnu/packages/rust.scm +6 -3
@@ 49,6 49,7 @@
  #:use-module (gnu packages libffi)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages llvm)
  #:use-module (gnu packages llvm-meta)
  #:use-module (gnu packages mingw)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python)


@@ 905,7 906,7 @@ safety and thread safety guarantees.")
               (("features = \\[\"fs\"" all)
                (string-append all ", \"use-libc\""))))))))))

(define rust-1.74
(define-public rust-1.74
  (let ((base-rust (rust-bootstrapped-package rust-1.73 "1.74.1"
                    "07930r17dkj3dnsrmilywb6p9i2g2jx56ndfpa2wh8crzhi3xnv7")))
    (package


@@ 937,7 938,7 @@ safety and thread safety guarantees.")
               (delete 'revert-riscv-pause-instruction))))
         (package-arguments base-rust))))))

(define rust-1.75
(define-public rust-1.75
  (let ((base-rust (rust-bootstrapped-package rust-1.74 "1.75.0"
                    "1260mf3066ki6y55pvr35lnf54am6z96a3ap3hniwd4xpi2rywsv")))
    (package


@@ 964,7 965,9 @@ safety and thread safety guarantees.")
  (let ((base-rust rust-1.75))
    (package
      (inherit base-rust)
      (properties (alist-delete 'hidden? (package-properties base-rust)))
      (properties (append
                    (alist-delete 'hidden? (package-properties base-rust))
                    (clang-compiler-cpu-architectures "15")))
      (outputs (cons* "rust-src" "tools" (package-outputs base-rust)))
      (source
       (origin

M gnu/packages/scheme.scm => gnu/packages/scheme.scm +2 -2
@@ 701,14 701,14 @@ regular-expression notation.")
(define-public slib
  (package
    (name "slib")
    (version "3b6")
    (version "3c1")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://groups.csail.mit.edu/mac/ftpdir/scm/slib-"
                                 version ".zip"))
             (sha256
              (base32
               "137dn2wwwwg0qbifgxfckjhzj4m4820crpg9kziv402l7f2b931f"))))
               "10f7l0fmd0xzs6kc2cwqjrx7msdn0fsd918r459xyc05wscfpy62"))))
    (build-system gnu-build-system)
    (arguments
     `(#:tests? #f ; There is no check target.

M gnu/packages/statistics.scm => gnu/packages/statistics.scm +5 -6
@@ 3271,30 3271,29 @@ certain criterion, e.g., it contains a certain regular file.")
(define-public r-rmarkdown
  (package
    (name "r-rmarkdown")
    (version "2.25")
    (version "2.26")
    (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rmarkdown" version))
        (sha256
          (base32 "0m814598vc67sjwk83xh9g17n72618l32dgg7fz8y0gycqk6dr06"))))
          (base32 "1q6z2j1y6pjdz4nzw44srv9j62irnxqhkvrsi46ma7xrzq6ig34g"))))
    (properties
     `((upstream-name . "rmarkdown")
       (updater-extra-propagated-inputs . ("pandoc"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-bslib
     (list pandoc
           r-bslib
           r-evaluate
           r-fontawesome
           r-htmltools
           r-jquerylib
           r-jsonlite
           r-knitr
           r-stringr
           r-tinytex
           r-xfun
           r-yaml
           pandoc))
           r-yaml))
    (native-inputs
     (list esbuild r-knitr))
    (home-page "https://rmarkdown.rstudio.com")

M gnu/packages/swig.scm => gnu/packages/swig.scm +2 -2
@@ 79,7 79,7 @@ you tailor the wrapping process to suit your application.")
  (package
    (inherit swig)
    (name "swig")
    (version "4.2.0")
    (version "4.2.1")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/" name "/" name "/"


@@ 87,5 87,5 @@ you tailor the wrapping process to suit your application.")
                                 name "-" version ".tar.gz"))
              (sha256
               (base32
                "15wwh9215rdkflpr85r7zxr2nmrib03jr4bvh5i0f9lyb3bs4716"))))
                "1n5pb77hwadjpbqgqn28i5v4cp94ar19wmv9vk6v4j6hw9a5617s"))))
    (inputs (list pcre2))))

M gnu/packages/syncthing.scm => gnu/packages/syncthing.scm +3 -27
@@ 129,7 129,9 @@ Protocol.")
    (home-page "https://github.com/syncthing/syncthing")
    (properties
     '((release-monitoring-url . "https://syncthing.net/downloads/")
       (upstream-name . "syncthing-source")))
       (upstream-name . "syncthing-source")
       ;; The hashing code greatly benefits from newer architecture support.
       (tunable? . #t)))
    (license mpl2.0)))

(define-public syncthing-gtk


@@ 706,32 708,6 @@ notification library in Go.")
      (home-page "https://github.com/syncthing/notify")
      (license expat))))

(define-public go-github-com-beorn7-perks-quantile
  (let ((commit "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9")
        (revision "0"))
    (package
      (name "go-github-com-beorn7-perks-quantile")
      (version (git-version "0.0.0" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                       (url "https://github.com/beorn7/perks")
                       (commit commit)))
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"))))
      (build-system go-build-system)
      (arguments
       '(#:import-path "github.com/beorn7/perks/quantile"
         #:unpack-path "github.com/beorn7/perks"))
      (synopsis "Compute approximate quantiles over an unbounded data stream")
      (description "Perks contains the Go package @code{quantile} that computes
approximate quantiles over an unbounded data stream within low memory and CPU
bounds.")
      (home-page "https://github.com/beorn7/perks")
      (license expat))))

(define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
  (let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c")
        (revision "0"))

M gnu/packages/terminals.scm => gnu/packages/terminals.scm +3 -0
@@ 39,6 39,7 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; Copyright © 2024 Suhail <suhail@bayesians.ca>
;;; Copyright © 2024 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 1604,6 1605,8 @@ basic input/output.")
                (search-input-file inputs (string-append "lib/" all)))
               (("libwayland-[[:alpha:]]*\\.so" all)
                (search-input-file inputs (string-append "lib/" all)))
               (("libxkbcommon-x11\\.so")
                (search-input-file inputs "lib/libxkbcommon-x11.so"))
               (("libxkbcommon\\.so")
                (search-input-file inputs "lib/libxkbcommon.so")))))
         (replace 'install

M gnu/packages/texinfo.scm => gnu/packages/texinfo.scm +2 -2
@@ 104,14 104,14 @@ is on expressing the content semantically, avoiding physical markup commands.")
(define-public texinfo-7
  (package
    (inherit texinfo)
    (version "7.0.3")
    (version "7.1")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/texinfo/texinfo-"
                                  version ".tar.xz"))
              (sha256
               (base32
                "1gq7i01iblgfcwby1977adh8mab9vpq318vsz628wlkzkp821d3l"))))
                "0lq9nf1as11mfqf2ydyc6b1xl1hqk0qj5llavxph97hmkzqwkvny"))))
    (inputs (modify-inputs (package-inputs texinfo)
              (append perl-archive-zip)))        ;needed for 'tex2any --epub3'
    (arguments

M gnu/packages/text-editors.scm => gnu/packages/text-editors.scm +4 -12
@@ 1480,7 1480,7 @@ commands.")
(define-public lite-xl
  (package
    (name "lite-xl")
    (version "2.1.1")
    (version "2.1.3")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 1489,18 1489,10 @@ commands.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1pnmax68hvk1ry4bjsxwq4qimfn55pai8jlljw6jiqzcmh4mp7xm"))
              (modules '((guix build utils)))
              (snippet '(substitute* "meson.build"
                          (("dependency\\('lua5\\.4',")
                           "dependency('lua-5.4',")))))
                "19wdq8w6ickyynx6r2wg2vf5isl2577zjizgwbzql9vhqdsi8ag3"))))
    (build-system meson-build-system)
    (inputs (list agg
                  freetype
                  lua-5.4
                  pcre2
                  reproc
                  sdl2))
    (arguments (list #:configure-flags #~'("-Duse_system_lua=true")))
    (inputs (list lua-5.4 pcre2 freetype sdl2))
    (native-inputs (list pkg-config))
    (home-page "https://lite-xl.com")
    (synopsis "Lightweight text editor written in Lua")

M gnu/packages/tor-browsers.scm => gnu/packages/tor-browsers.scm +1 -1
@@ 292,7 292,7 @@ Browser.")
     (list
      rust
      `(,rust "cargo")
      rust-cbindgen-0.24
      rust-cbindgen
      llvm-15
      clang-15
      perl

M gnu/packages/video.scm => gnu/packages/video.scm +2 -0
@@ 6021,6 6021,8 @@ result in several formats:
    (description "@code{rav1e} is an AV1 video encoder.  It is designed to
eventually cover all use cases, though in its current form it is most suitable
for cases where libaom (the reference encoder) is too slow.")
    ;; This package shows a large speed boost when tuned for newer architectures.
    (properties `((tunable? . #t)))
    (license license:bsd-2)))

(define-public peek

M gnu/packages/web-browsers.scm => gnu/packages/web-browsers.scm +13 -13
@@ 590,7 590,7 @@ driven and does not detract you from your daily work.")
(define-public nyxt
  (package
    (name "nyxt")
    (version "3.11.3")
    (version "3.11.4")
    (source
     (origin
       (method git-fetch)


@@ 599,7 599,7 @@ driven and does not detract you from your daily work.")
             (commit version)))
       (sha256
        (base32
         "0vp3w9a3zzn9kbq48a4b1nylrn1i4ibwxpl377yq04ggqkd6fi9a"))
         "1c1kiwa7chm491gpzihpqv33ysmxfp83gw6wcsbq72hkwir6kf74"))
       (file-name (git-file-name name version))))
    (build-system gnu-build-system)
    (arguments


@@ 848,7 848,7 @@ http, and https via third-party applications.")
(define-public tinmop
  (package
    (name "tinmop")
    (version "0.9.9.1414213")
    (version "0.9.9.141421356")
    (source
     (origin
       (method git-fetch)


@@ 857,7 857,7 @@ http, and https via third-party applications.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0rlgnqld6ls46452xvcr8k4ji4lwmlsrxib5ii9l9clkm0s477wv"))))
        (base32 "0cw8scjxci98jx5cmm98x0frjrbs3q7w3dwz60xpy67aqmwq7kqx"))))
    (build-system gnu-build-system)
    (native-inputs
     (list autoconf


@@ 919,15 919,15 @@ http, and https via third-party applications.")
             #t))
         (add-after 'unpack 'fix-configure.ac
           (lambda _
              (delete-file "configure")
              (substitute* "configure.ac"
                (("AC_PATH_PROG.+CURL")
                 "dnl")
                (("AC_PATH_PROGS.+GIT")
                 "dnl")
                (("AC_PATH_PROG.+GPG")
                 "dnl"))
               #t))
             (delete-file "configure")
             (substitute* "configure.ac"
               (("AC_PATH_PROG.+CURL")
                "dnl")
               (("AC_PATH_PROGS.+GIT")
                "dnl")
               (("AC_PATH_PROG.+GPG")
                "dnl"))
             #t))
         (add-after 'configure 'fix-asdf
           (lambda* (#:key inputs #:allow-other-keys)
             (substitute* "Makefile.in"

M gnu/packages/web.scm => gnu/packages/web.scm +39 -35
@@ 1109,40 1109,44 @@ APIs.")
    (license (license:non-copyleft "file://LICENSE.TERMS"))))

(define-public fcgiwrap
  (package
    (name "fcgiwrap")
    (version "1.1.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/gnosek/fcgiwrap")
             (commit version)))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1ryw66h9aazi83amk8l7ha8k5g0c7qvk5g6jv376a1ws9xk2qw6f"))))
    (build-system gnu-build-system)
    (arguments
     `(#:tests? #f                      ; no tests included
       #:make-flags (list "CC=gcc")
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'fix-CFLAGS
           ;; Remove broken options unconditionally added to CFLAGS.
           (lambda _
             (substitute* "configure.ac"
               ((" -Werror") ""))
             #t)))))
    (native-inputs
     (list autoconf automake pkg-config))
    (inputs
     (list fcgi))
    (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
    (synopsis "Simple server for running CGI applications over FastCGI")
    (description "Fcgiwrap is a simple server for running CGI applications
  (let ((commit "2870d2729a3930988f0041e2d78fec672e69afac")
        (revision "1"))
    (package
      (name "fcgiwrap")
      (version (git-version "1.1.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               ;; Upstream last updated in 2015, this forked version has better
               ;; socket cleanup.
               (url "https://github.com/flu0r1ne/fcgiwrap")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "0rkpp4apfhdcrmym3pcpqlncd0r4fyr3pa45i8g6x4p38b4azmmm"))))
      (build-system gnu-build-system)
      (arguments
       `(#:tests? #f                    ; no tests included
         #:make-flags (list "CC=gcc")
         #:phases
         (modify-phases %standard-phases
           (add-after 'unpack 'fix-CFLAGS
             ;; Remove broken options unconditionally added to CFLAGS.
             (lambda _
               (substitute* "configure.ac"
                 ((" -Werror") ""))
               #t)))))
      (native-inputs
       (list autoconf automake pkg-config))
      (inputs
       (list fcgi))
      (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
      (synopsis "Simple server for running CGI applications over FastCGI")
      (description "Fcgiwrap is a simple server for running CGI applications
over FastCGI.  It hopes to provide clean CGI support to Nginx (and other web
servers that may need it).")
    (license license:expat)))
      (license license:expat))))

(define-public starman
  (package


@@ 4998,8 5002,8 @@ Cloud.")
    (license license:expat)))

(define-public guix-data-service
  (let ((commit "5f80856ad1587aea38ee4e7b54db558cdb43f6b7")
        (revision "45"))
  (let ((commit "b4583bb17714954530e1cc851efaea1666f6adc2")
        (revision "46"))
    (package
      (name "guix-data-service")
      (version (string-append "0.0.1-" revision "." (string-take commit 7)))


@@ 5011,7 5015,7 @@ Cloud.")
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "18m002d9pkh0qn4xn4n6lijl541m9z7c3lbapl7m6zi41p3dywww"))))
                  "0l9nflx5npmmbvqxrfjhfvyr7mcs9qrf0w3dabs65r7q0g0pjcp0"))))
      (build-system gnu-build-system)
      (arguments
       (list

M gnu/packages/wm.scm => gnu/packages/wm.scm +3 -3
@@ 3054,7 3054,7 @@ shows a notification for the user on the screen.")
(define-public cagebreak
  (package
    (name "cagebreak")
    (version "2.2.0")
    (version "2.3.1")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 3063,7 3063,7 @@ shows a notification for the user on the screen.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0yhn77hdy7c80hd6r8nmvs206pmp76bx4zr94imfvgs8fh5gb8cy"))))
                "0firjpp7qw4kb2h1zh5pv5k0xf0jvx6x0r0s7j6y7dhlh5j0s00q"))))
    (build-system meson-build-system)
    (arguments
     (list


@@ 3079,7 3079,7 @@ shows a notification for the user on the screen.")
                (("/etc/") (string-append #$output "/etc/"))
                (("/usr/share/") (string-append #$output "/usr/share/"))))))))
    (native-inputs (list pkg-config scdoc))
    (inputs (list libevdev pango wlroots-0.16))
    (inputs (list libevdev pango wlroots))
    (home-page "https://github.com/project-repo/cagebreak")
    (synopsis "Tiling wayland compositor inspired by ratpoison")
    (description

M gnu/packages/xfce.scm => gnu/packages/xfce.scm +42 -21
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2014, 2015, 2024 宋文武 <iyzsong@envs.net>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net>


@@ 134,7 134,7 @@ Xfce Desktop Environment.")
(define-public xfconf
  (package
    (name "xfconf")
    (version "4.18.1")
    (version "4.18.3")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/xfce/"


@@ 142,7 142,7 @@ Xfce Desktop Environment.")
                                  "xfconf-" version ".tar.bz2"))
              (sha256
               (base32
                "0mr20250mp4pgy82v5kvb0hp5060vy6yz9hd6icmmp6gpd8lfwfr"))))
                "165xbr6y5z4zr235znkqlwkcy2ib9hgfqrdic0n7p57nas8ccv65"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases


@@ 332,7 332,7 @@ development.")
(define-public garcon
  (package
    (name "garcon")
    (version "4.18.1")
    (version "4.18.2")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/xfce/"


@@ 340,7 340,7 @@ development.")
                                  "garcon-" version ".tar.bz2"))
              (sha256
               (base32
                "02y2nkxwx5mp1w6x2ydi3hpgymk7159zvyzk70afp5dcdlm96ypy"))))
                "0ka35nxqhl4cbmyf9x2ysinihixsqmibqywqr2zqz5iiw699530v"))))
    (build-system gnu-build-system)
    (native-inputs
     (list `(,glib "bin") gobject-introspection intltool pkg-config))


@@ 359,7 359,7 @@ merging features essential for loading menus modified with menu editors.")
(define-public tumbler
  (package
    (name "tumbler")
    (version "4.18.1")
    (version "4.18.2")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/xfce/"


@@ 367,7 367,7 @@ merging features essential for loading menus modified with menu editors.")
                                  "tumbler-" version ".tar.bz2"))
              (sha256
               (base32
                "1833qnfw2c9wv7iw5cad5x5scj1rsqmmbwfld33zxx8akhd9hqgz"))))
                "0ymy6a0hbv5iainphgpd7dfi8snpg7zs7lyqq2cgiiza6p3fwc5m"))))
    (build-system gnu-build-system)
    (native-inputs
     (list pkg-config intltool


@@ 398,7 398,7 @@ management D-Bus specification.")
(define-public xfce4-panel
  (package
    (name "xfce4-panel")
    (version "4.18.4")
    (version "4.18.6")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/xfce/"


@@ 406,7 406,7 @@ management D-Bus specification.")
                                  name "-" version ".tar.bz2"))
              (sha256
               (base32
                "0m7vmk7rc2sjfqba0flgnw77kn1j222xqs7r86bpg8sf1614yc1j"))
                "0qkw1msrvq7hc4mjg9iai0kymgkrpj1nijv04zjbdfcbymhp2cr1"))
              (patches (search-patches "xfce4-panel-plugins.patch"))))
    (build-system gnu-build-system)
    (arguments


@@ 605,7 605,7 @@ per window.")
(define-public xfce4-appfinder
  (package
    (name "xfce4-appfinder")
    (version "4.18.0")
    (version "4.18.1")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/xfce/"


@@ 614,7 614,7 @@ per window.")
                                  "/" name "-" version ".tar.bz2"))
              (sha256
               (base32
                "136137w2xc78jq0xcbymjwdxapllwyy7h3ydshz0gli7ngbrhaln"))))
                "1yck11y86d45yxsppd1yqk894k3cf5vh91a5sm559gl175jylm4q"))))
    (build-system gnu-build-system)
    (native-inputs
     (list pkg-config intltool))


@@ 682,7 682,7 @@ allows you to shut down the computer from Xfce.")
(define-public xfce4-settings
  (package
    (name "xfce4-settings")
    (version "4.18.3")
    (version "4.18.4")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/xfce/"


@@ 690,7 690,7 @@ allows you to shut down the computer from Xfce.")
                                  name "-" version ".tar.bz2"))
              (sha256
               (base32
                "18giyc190i7b3nc3l745p6fqpnqivwxm0yc7l0whfa03wndykf9d"))
                "1p513i8zwc3glv2cf3x2abwm4hvdb7clamj19yadj2036v85a37i"))
              (patches (search-patches "xfce4-settings-defaults.patch"))))
    (build-system gnu-build-system)
    (arguments


@@ 727,7 727,7 @@ like appearance, display, keyboard and mouse settings.")
(define-public thunar
  (package
    (name "thunar")
    (version "4.18.7")                           ;stable version = even minor
    (version "4.18.10")                           ;stable version = even minor
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/xfce/"


@@ 735,7 735,7 @@ like appearance, display, keyboard and mouse settings.")
                                  "thunar-" version ".tar.bz2"))
              (sha256
               (base32
                "0shbbih2l6h3sda2221h7gsskv2lnchnmypk76cdgf51iafafxi2"))))
                "020xrwzdnk5b7cli8vmv3yn7sfq6pg7bz57m4p0xh0ln2cgqlc78"))))
    (build-system gnu-build-system)
    (arguments
     '(#:configure-flags '("--with-custom-thunarx-dirs-enabled")))


@@ 949,6 949,26 @@ menu.")
on the screen.")
    (license gpl2+)))

(define-public xfwm4-themes
  (package
    (name "xfwm4-themes")
    (version "4.10.0")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "https://archive.xfce.org/src/art/xfwm4-themes/"
                           (version-major+minor version) "/"
                           "xfwm4-themes-" version ".tar.bz2"))
       (sha256
        (base32
         "0xfmdykav4rf6gdxbd6fhmrfrvbdc1yjihz7r7lba0wp1vqda51j"))))
    (build-system gnu-build-system)
    (home-page "https://www.xfce.org/")
    (synopsis "Themes for the Xfce window manager")
    (description "This package provides a set of additional themes for the Xfce
window manager.")
    (license gpl3+)))

(define-public xfdesktop
  (package
    (name "xfdesktop")


@@ 1082,7 1102,7 @@ features playback of local media files, DVD/CD and live streams.")
(define-public xfce4-terminal
  (package
    (name "xfce4-terminal")
    (version "1.1.0")
    (version "1.1.3")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/apps/" name "/"


@@ 1090,7 1110,7 @@ features playback of local media files, DVD/CD and live streams.")
                                  name "-" version ".tar.bz2"))
              (sha256
               (base32
                "18yl792x617qa90g6caw4cy1arfl847majjxkxs0k6rb4ivk70j0"))))
                "0i9xgd0rgw0j59hlp9kyxndw2b35nhxjls09c20rzdj1sj4dak91"))))
    (build-system gnu-build-system)
    (arguments
     (list


@@ 1226,6 1246,7 @@ for and start applications.")
           xfconf
           xfdesktop
           xfwm4
           xfwm4-themes
           xkill
           ;; Panel plugins.
           xfce4-battery-plugin


@@ 1250,7 1271,7 @@ system resources, while still being visually appealing and user friendly.")
(define-public xfce4-power-manager
  (package
    (name "xfce4-power-manager")
    (version "4.18.2")
    (version "4.18.3")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/xfce/"


@@ 1258,7 1279,7 @@ system resources, while still being visually appealing and user friendly.")
                                  "xfce4-power-manager-" version ".tar.bz2"))
              (sha256
               (base32
                "0kfzvhb1hnr16fcplm7bdpp4fcxr3irzq3w4q0lpbc5n6kaqyq71"))))
                "1w445v3911cf7l6w5c0f84aphv8s579f8srnhjrhf3drd07xsy8d"))))
    (build-system gnu-build-system)
    (native-inputs
     (list pkg-config intltool))


@@ 2200,7 2221,7 @@ local weather in the panel, using forecast data provided by the
(define-public xfce4-dev-tools
  (package
    (name "xfce4-dev-tools")
    (version "4.18.0")
    (version "4.18.1")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://archive.xfce.org/src/xfce/"


@@ 2208,7 2229,7 @@ local weather in the panel, using forecast data provided by the
                                  "xfce4-dev-tools-" version ".tar.bz2"))
              (sha256
               (base32
                "0dxyfsx70nddkkv0ygkl02wv4p99g62zjkw68sf4bqzhap4lznzf"))))
                "10bnb8q7sj60ahzfwrb3av4ngr17wk1p6jsnfv0yn8l90kksnb41"))))
    (build-system gnu-build-system)
    (native-inputs
     (list pkg-config))

M gnu/packages/xorg.scm => gnu/packages/xorg.scm +2 -2
@@ 6157,14 6157,14 @@ basic eye-candy effects.")
(define-public xpra
  (package
    (name "xpra")
    (version "5.0.4")
    (version "5.0.7")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "https://www.xpra.org/src/xpra-"
                           version ".tar.xz"))
       (sha256
        (base32 "0zb49adrjrdsmf0k9xdc6j2idqy5lgzsjjrb4awjh5i4r3wc58m0"))
        (base32 "0rkcsv0b55xbvkqi38nm01yxc09f7l9nj7xnp8v23rn6bp86m8mr"))
       (patches (search-patches "xpra-5.0-systemd-run.patch"
                                "xpra-5.0-install_libs.patch"))))
    (build-system python-build-system)

M gnu/packages/zig-xyz.scm => gnu/packages/zig-xyz.scm +7 -18
@@ 2,6 2,7 @@
;;; Copyright © 2022 Maya Tomasek <maya.tomasek@disroot.org>
;;; Copyright © 2023 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
;;; Copyright © 2024 Justin Veilleux <terramorpha@cock.li>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 107,7 108,7 @@ mission-critical safety and performance for financial services.")
(define-public zig-zls
  (package
    (name "zig-zls")
    (version "0.9.0")
    (version "0.10.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 117,24 118,12 @@ mission-critical safety and performance for financial services.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1hhs7dz9rpshfd1a7x5swmix2rmh53vsqskh3mzqlrj2lgb3cnii"))))
    (build-system gnu-build-system)
    (inputs (list zig-0.9 python))
                "1lsks7h3z2m4psyn9mwdylv1d6a9i3z54ssadiz76w0clbh8ch9k"))))
    (build-system zig-build-system)
    (inputs (list zig-0.10 python))
    (arguments
     (list #:phases #~(modify-phases %standard-phases
                        (delete 'configure)
                        (replace 'build
                          (lambda* (#:key outputs #:allow-other-keys)
                            (let ((out (assoc-ref outputs "out")))
                              (setenv "ZIG_GLOBAL_CACHE_DIR"
                                      (string-append (getcwd) "/zig-cache"))
                              (invoke "zig" "build" "install"
                                      "-Drelease-safe" "--prefix" out))))
                        (delete 'install)
                        (replace 'check
                          (lambda* (#:key tests? #:allow-other-keys)
                            (when tests?
                              (invoke "zig" "build" "test")))))))
     ;; The tests fail with memory leaks.
     (list #:tests? #f))
    (synopsis "Zig language server")
    (description
     "Zig Language Server is a language server implementing the @acronym{LSP,

M gnu/packages/zig.scm => gnu/packages/zig.scm +4 -3
@@ 28,7 28,8 @@
  #:use-module (guix build-system cmake)
  #:use-module (gnu packages)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages llvm))
  #:use-module (gnu packages llvm)
  #:use-module (gnu packages llvm-meta))

(define-public zig-0.9
  (package


@@ 130,7 131,7 @@ toolchain.  Among other features it provides
    (supported-systems %64bit-supported-systems)
    ;; Stage3 can take a lot of time and isn't verbose.
    (properties `((max-silent-time . 9600)
                  ,@(clang-properties "13")))
                  ,@(clang-compiler-cpu-architectures "13")))
    (license license:expat)))

(define-public zig-0.10


@@ 195,6 196,6 @@ toolchain.  Among other features it provides
     (modify-inputs (package-native-inputs zig-0.9)
       (replace "llvm" llvm-15)))
    (properties `((max-silent-time . 9600)
                  ,@(clang-properties "15")))))
                  ,@(clang-compiler-cpu-architectures "15")))))

(define-public zig zig-0.10)

M guix/scripts/time-machine.scm => guix/scripts/time-machine.scm +2 -2
@@ 1,6 1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2019, 2020, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019-2021, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;


@@ 147,7 147,7 @@ Execute COMMAND ARGS... in an older version of Guix.\n"))
;;; firmed up in v1.0.0; it is the oldest, safest commit that can be travelled
;;; to.
(define %oldest-possible-commit
  "6298c3ffd9654d3231a6f25390b056483e8f407c") ;v1.0.0
  "4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c") ;v0.16.0

(define %reference-channels
  (list (channel (inherit %default-guix-channel)

M guix/transformations.scm => guix/transformations.scm +6 -2
@@ 2,7 2,7 @@
;;; Copyright © 2016-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Sarthak Shah <shahsarthakw@gmail.com>
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2023 Ekaitz Zarraga <ekaitz@elenq.tech>
;;;
;;; This file is part of GNU Guix.


@@ 499,6 499,10 @@ actual compiler."
                                 "-Dcpu="
                                 (string-replace-substring
                                   #$micro-architecture "-" "_"))))
                           ((and (search-next "rustc")
                                 (string=? next (search-next "rustc")))
                            (list "-C" (string-append "target_cpu="
                                                      #$micro-architecture)))
                           (else
                             (list (string-append "-march="
                                                  #$micro-architecture))))))))))))


@@ 519,7 523,7 @@ actual compiler."
                                     (symlink #$program
                                              (string-append bin "/" program)))
                                   '("cc" "gcc" "clang" "g++" "c++" "clang++"
                                     "go" "zig")))))))
                                     "go" "rustc" "zig")))))))

(define (build-system-with-tuning-compiler bs micro-architecture)
  "Return a variant of BS, a build system, that ensures that the compiler that

M nix/libstore/build.cc => nix/libstore/build.cc +17 -0
@@ 1382,6 1382,23 @@ void DerivationGoal::buildDone()
                % drvPath % statusToString(status));
        }

	if (fixedOutput) {
	    /* Replace the output, if it exists, by a fresh copy of itself to
               make sure that there's no stale file descriptor pointing to it
               (CVE-2024-27297).  */
	    foreach (DerivationOutputs::iterator, i, drv.outputs) {
		Path output = chrootRootDir + i->second.path;
		if (pathExists(output)) {
		    Path pivot = output + ".tmp";
		    copyFileRecursively(output, pivot, true);
		    int err = rename(pivot.c_str(), output.c_str());
		    if (err != 0)
			throw SysError(format("renaming `%1%' to `%2%'")
				       % pivot % output);
		}
	    }
	}

        /* Compute the FS closure of the outputs and register them as
           being valid. */
        registerOutputs();

M nix/libutil/util.cc => nix/libutil/util.cc +111 -5
@@ 215,14 215,11 @@ bool isLink(const Path & path)
}


DirEntries readDirectory(const Path & path)
static DirEntries readDirectory(DIR *dir)
{
    DirEntries entries;
    entries.reserve(64);

    AutoCloseDir dir = opendir(path.c_str());
    if (!dir) throw SysError(format("opening directory `%1%'") % path);

    struct dirent * dirent;
    while (errno = 0, dirent = readdir(dir)) { /* sic */
        checkInterrupt();


@@ 230,11 227,29 @@ DirEntries readDirectory(const Path & path)
        if (name == "." || name == "..") continue;
        entries.emplace_back(name, dirent->d_ino, dirent->d_type);
    }
    if (errno) throw SysError(format("reading directory `%1%'") % path);
    if (errno) throw SysError(format("reading directory"));

    return entries;
}

DirEntries readDirectory(const Path & path)
{
    AutoCloseDir dir = opendir(path.c_str());
    if (!dir) throw SysError(format("opening directory `%1%'") % path);
    return readDirectory(dir);
}

static DirEntries readDirectory(int fd)
{
    /* Since 'closedir' closes the underlying file descriptor, duplicate FD
       beforehand.  */
    int fdcopy = dup(fd);
    if (fdcopy < 0) throw SysError("dup");

    AutoCloseDir dir = fdopendir(fdcopy);
    if (!dir) throw SysError(format("opening directory from file descriptor `%1%'") % fd);
    return readDirectory(dir);
}

unsigned char getFileType(const Path & path)
{


@@ 364,6 379,97 @@ void deletePath(const Path & path, unsigned long long & bytesFreed, size_t linkT
    _deletePath(path, bytesFreed, linkThreshold);
}

static void copyFile(int sourceFd, int destinationFd)
{
    struct stat st;
    if (fstat(sourceFd, &st) == -1) throw SysError("statting file");

    ssize_t result = copy_file_range(sourceFd, NULL, destinationFd, NULL, st.st_size, 0);
    if (result < 0 && errno == ENOSYS) {
	for (size_t remaining = st.st_size; remaining > 0; ) {
	    unsigned char buf[8192];
	    size_t count = std::min(remaining, sizeof buf);

	    readFull(sourceFd, buf, count);
	    writeFull(destinationFd, buf, count);
	    remaining -= count;
	}
    } else {
	if (result < 0)
	    throw SysError(format("copy_file_range `%1%' to `%2%'") % sourceFd % destinationFd);
	if (result < st.st_size)
	    throw SysError(format("short write in copy_file_range `%1%' to `%2%'")
			   % sourceFd % destinationFd);
    }
}

static void copyFileRecursively(int sourceroot, const Path &source,
				int destinationroot, const Path &destination,
				bool deleteSource)
{
    struct stat st;
    if (fstatat(sourceroot, source.c_str(), &st, AT_SYMLINK_NOFOLLOW) == -1)
	throw SysError(format("statting file `%1%'") % source);

    if (S_ISREG(st.st_mode)) {
	AutoCloseFD sourceFd = openat(sourceroot, source.c_str(),
				      O_CLOEXEC | O_NOFOLLOW | O_RDONLY);
	if (sourceFd == -1) throw SysError(format("opening `%1%'") % source);

	AutoCloseFD destinationFd = openat(destinationroot, destination.c_str(),
					   O_CLOEXEC | O_CREAT | O_WRONLY | O_TRUNC,
					   st.st_mode);
	if (destinationFd == -1) throw SysError(format("opening `%1%'") % source);

	copyFile(sourceFd, destinationFd);
	fchown(destinationFd, st.st_uid, st.st_gid);
    } else if (S_ISLNK(st.st_mode)) {
	char target[st.st_size + 1];
	ssize_t result = readlinkat(sourceroot, source.c_str(), target, st.st_size);
	if (result != st.st_size) throw SysError("reading symlink target");
	target[st.st_size] = '\0';
	int err = symlinkat(target, destinationroot, destination.c_str());
	if (err != 0)
	    throw SysError(format("creating symlink `%1%'") % destination);
	fchownat(destinationroot, destination.c_str(),
		 st.st_uid, st.st_gid, AT_SYMLINK_NOFOLLOW);
    } else if (S_ISDIR(st.st_mode)) {
	int err = mkdirat(destinationroot, destination.c_str(), 0755);
	if (err != 0)
	    throw SysError(format("creating directory `%1%'") % destination);

	AutoCloseFD destinationFd = openat(destinationroot, destination.c_str(),
					   O_CLOEXEC | O_RDONLY | O_DIRECTORY);
	if (err != 0)
	    throw SysError(format("opening directory `%1%'") % destination);

	AutoCloseFD sourceFd = openat(sourceroot, source.c_str(),
				      O_CLOEXEC | O_NOFOLLOW | O_RDONLY);
	if (sourceFd == -1)
	    throw SysError(format("opening `%1%'") % source);

        if (deleteSource && !(st.st_mode & S_IWUSR)) {
	    /* Ensure the directory writable so files within it can be
	       deleted.  */
            if (fchmod(sourceFd, st.st_mode | S_IWUSR) == -1)
                throw SysError(format("making `%1%' directory writable") % source);
        }

        for (auto & i : readDirectory(sourceFd))
	    copyFileRecursively((int)sourceFd, i.name, (int)destinationFd, i.name,
				deleteSource);
	fchown(destinationFd, st.st_uid, st.st_gid);
    } else throw Error(format("refusing to copy irregular file `%1%'") % source);

    if (deleteSource)
	unlinkat(sourceroot, source.c_str(),
		 S_ISDIR(st.st_mode) ? AT_REMOVEDIR : 0);
}

void copyFileRecursively(const Path &source, const Path &destination, bool deleteSource)
{
    copyFileRecursively(AT_FDCWD, source, AT_FDCWD, destination, deleteSource);
}

static Path tempName(Path tmpRoot, const Path & prefix, bool includePid,
    int & counter)

M nix/libutil/util.hh => nix/libutil/util.hh +7 -0
@@ 102,6 102,13 @@ void deletePath(const Path & path);
void deletePath(const Path & path, unsigned long long & bytesFreed,
    size_t linkThreshold = 1);

/* Copy SOURCE to DESTINATION, recursively, preserving ownership.  Throw if
   SOURCE contains a file that is not a regular file, symlink, or directory.
   When DELETESOURCE is true, delete source files once they have been
   copied.  */
void copyFileRecursively(const Path &source, const Path &destination,
    bool deleteSource = false);

/* Create a temporary directory. */
Path createTempDir(const Path & tmpRoot = "", const Path & prefix = "nix",
    bool includePid = true, bool useGlobalCounter = true, mode_t mode = 0755);

M tests/guix-time-machine.sh => tests/guix-time-machine.sh +2 -2
@@ 1,6 1,6 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
# Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2023-2024 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#


@@ 39,7 39,7 @@ else
    EXTRA_OPTIONS=""
fi

# Visiting a commit older than v1.0.0 must fail (this test is expensive
# Visiting a commit older than v0.16.0 must fail (this test is expensive
# because it clones the whole repository).
guix time-machine -q --commit=v0.15.0 $EXTRA_OPTIONS -- describe && false