diff options
101 files changed, 3740 insertions, 1419 deletions
@@ -95,3 +95,5 @@ Tomas Volf <~@wolfsden.cz> <wolf@wolfsden.cz> Tomáš Čech <sleep_walker@gnu.org> <sleep_walker@suse.cz> Vincent Legoll <vincent.legoll@gmail.com> <vincent.legoll@idgrilles.fr> Zheng Junjie <873216071@qq.com> Z572 <873216071@qq.com> +Zheng Junjie <873216071@qq.com> Zheng Junjie <zhengjunjie@iscas.ac.cn> +Zheng Junjie <873216071@qq.com> Zheng junjie <873216071@qq.com>
\ No newline at end of file diff --git a/Makefile.am b/Makefile.am index f911d432dd..f759803b8b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -140,6 +140,7 @@ MODULES = \ guix/platform.scm \ guix/platforms/arm.scm \ guix/platforms/avr.scm \ + guix/platforms/loongarch.scm \ guix/platforms/mips.scm \ guix/platforms/or1k.scm \ guix/platforms/powerpc.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 0015d739bb..9a53bdcd37 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -111,12 +111,12 @@ Copyright @copyright{} 2022 (@* Copyright @copyright{} 2022 John Kehayias@* Copyright @copyright{} 2022–2023 Bruno Victal@* Copyright @copyright{} 2022 Ivan Vilata-i-Balaguer@* -Copyright @copyright{} 2023-2024 Giacomo Leidi@* +Copyright @copyright{} 2023-2025 Giacomo Leidi@* Copyright @copyright{} 2022 Antero Mejr@* Copyright @copyright{} 2023 Karl Hallsby@* Copyright @copyright{} 2023 Nathaniel Nicandro@* Copyright @copyright{} 2023 Tanguy Le Carrour@* -Copyright @copyright{} 2023, 2024 Zheng Junjie@* +Copyright @copyright{} 2023-2024 Zheng Junjie@* Copyright @copyright{} 2023 Brian Cully@* Copyright @copyright{} 2023 Felix Lechner@* Copyright @copyright{} 2023 Foundation Devices, Inc.@* @@ -17044,6 +17044,7 @@ The available targets are: - i586-pc-gnu - i686-linux-gnu - i686-w64-mingw32 + - loongarch64-linux-gnu - mips64el-linux-gnu - or1k-elf - powerpc-linux-gnu @@ -42709,19 +42710,16 @@ following configuration: "/etc/guix/signing-key.sec")))))))))) @end lisp -Each @code{restic-backup-job} translates to an mcron job which sets the +Each @code{restic-backup-job} translates to a Shepherd timer which sets the @env{RESTIC_PASSWORD} environment variable by reading the first line of @code{password-file} and runs @command{restic backup}, creating backups using rclone of all the files listed in the @code{files} field. -The @code{restic-backup-service-type} installs as well @code{restic-guix} -to the system profile, a @code{restic} utility wrapper that allows for easier -interaction with the Guix configured backup jobs. For example the following -could be used to instantaneusly trigger a backup for the above shown -configuration, without waiting for the scheduled job: +The @code{restic-backup-service-type} provides the ability to instantaneously +trigger a backup with the @code{trigger} Shepherd action: @example -restic-guix backup remote-ftp +sudo herd trigger remote-ftp @end example @c %start of fragment @@ -42752,6 +42750,23 @@ The restic package to be used for the current job. @item @code{user} (default: @code{"root"}) (type: string) The user used for running the current job. +@item @code{group} (default: @code{"root"}) (type: string) +The group used for running the current job. + +@item @code{log-file} (type: maybe-string) +The file system path to the log file for this job. By default the file will +have be @file{/var/log/restic-backup/@var{job-name}.log}, where @var{job-name} is the +name defined in the @code{name} field. + +@item @code{max-duration} (type: maybe-number) +The maximum duration in seconds that a job may last. Past +@code{max-duration} seconds, the job is forcefully terminated. + +@item @code{wait-for-termination?} (default: @code{#f}) (type: boolean) +Wait until the job has finished before considering executing it again; +otherwise, perform it strictly on every occurrence of event, at the risk of +having multiple instances running concurrently. + @item @code{repository} (type: string) The restic repository target of this job. @@ -42764,9 +42779,12 @@ that will be used to set the @env{RESTIC_PASSWORD} environment variable for the current job. @item @code{schedule} (type: gexp-or-string) -A string or a gexp that will be passed as time specification in the -mcron job specification (@pxref{Syntax, mcron job specifications,, -mcron,GNU@tie{}mcron}). +A string or a gexp representing the frequency of the backup. Gexp must +evaluate to @code{calendar-event} records or to strings. Strings must contain +Vixie cron date lines. + +@item @code{requirement} (default: @code{'()}) (type: list-of-symbols) +The list of Shepherd services that this backup job depends upon. @item @code{files} (default: @code{'()}) (type: list-of-lowerables) The list of files or directories to be backed up. It must be a list of @@ -46645,8 +46663,9 @@ dotfiles/ @end example For an informal specification please refer to the Stow manual -(@pxref{Top,,, stow, Introduction}). This tree structure is installed following -GNU Stow's logic to the home directory upon @command{guix home reconfigure}. +(@pxref{Introduction,,, stow, The GNU Stow Manual}). This tree structure +is installed following GNU Stow's logic to the home directory upon +@command{guix home reconfigure}. A suitable configuration with a @code{'plain} layout could be: @@ -48150,6 +48169,9 @@ The WirePlumber package to use. @item @code{enable-pulseaudio?} (default: @code{#t}) (type: boolean) When true, enable PipeWire's PulseAudio emulation support, allowing PulseAudio clients to use PipeWire transparently. + +@item @code{extra-content} (default: @code{""}) (type: string) +Extra content to add to the end of @file{~/.config/alsa/asoundrc}. @end table @end deftp @@ -49354,6 +49376,10 @@ Platform targeting ARM v7 CPU running GNU/Linux. Platform targeting ARM v8 CPU running GNU/Linux. @end defvar +@defvar loongarch64-linux +Platform targeting loongarch 64-bit CPU running GNU/Linux. +@end defvar + @defvar mips64-linux Platform targeting MIPS little-endian 64-bit CPU running GNU/Linux. @end defvar diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf index dc819a92ad..34e1745e51 100644 --- a/doc/htmlxref.cnf +++ b/doc/htmlxref.cnf @@ -1,10 +1,11 @@ # htmlxref.cnf - reference file for free Texinfo manuals on the web. # Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual. +# Further modified by Tomas Volf <~@wolfsden.cz>. -htmlxrefversion=2024-06-02.15; # UTC +htmlxrefversion=2025-01-22.18; # UTC # Copyright 2010-2020, 2022 Free Software Foundation, Inc. -# +# # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice and this notice are preserved. @@ -23,10 +24,10 @@ htmlxrefversion=2024-06-02.15; # UTC # - follow the naming convention for nodes described at # http://www.gnu.org/software/texinfo/manual/texinfo/html_node/HTML-Xref.html # This is what makeinfo and texi2html implement. -# +# # Unless the above criteria are met, it's not possible to generate # reliable cross-manual references. -# +# # For information on automatically generating all the useful formats for # a manual to put on the web, see # http://www.gnu.org/prep/maintain/html_node/Manuals-on-Web-Pages.html. @@ -664,6 +665,9 @@ sqltutor node ${GS}/sqltutor/manual/html_node/ src-highlite mono ${GS}/src-highlite/source-highlight.html +stow mono ${GS}/stow/manual/stow.html +stow node ${GS}/stow/manual/html_node/ + swbis mono ${GS}/swbis/manual.html tar mono ${GS}/tar/manual/tar.html @@ -714,9 +718,14 @@ latex2e mono ${T}/latex2e.html tlbuild mono ${T}/tlbuild.html web2c mono ${T}/web2c.html +ELPA = https://elpa.gnu.org +ELPA_DOC = ${ELPA}/packages/doc + +debbugs-ug mono ${ELPA_DOC}/debbugs-ug.html + # Local Variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "htmlxrefversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index c2462d5d03..e136482c54 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -140,7 +140,12 @@ Otherwise the picture in IMAGE is just copied." (svg->png #+image #$output #:width #$width #:height #$height)) - (copy-file #+image #$output)))))) + (copy-file #+image #$output)))) + ;; Work around a bug in grafts where different versions of + ;; guile-cairo are loaded from (gnu build svg). + ;; As seen in https://issues.guix.gnu.org/47115#23 and + ;; in https://issues.guix.gnu.org/75510. + #:options '(#:graft? #f))) (define* (grub-background-image config) "Return the GRUB background image defined in CONFIG or #f if none was found. diff --git a/gnu/home/services/sound.scm b/gnu/home/services/sound.scm index 313a57305b..5366c0634f 100644 --- a/gnu/home/services/sound.scm +++ b/gnu/home/services/sound.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2023 Brian Cully <bjc@spork.org> +;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,7 +50,10 @@ (enable-pulseaudio? (boolean #t) "When true, enable PipeWire's PulseAudio emulation support, allowing -PulseAudio clients to use PipeWire transparently.")) +PulseAudio clients to use PipeWire transparently.") + (extra-content + (string "") + "Extra content to add to the end of @file{~/.config/alsa/asoundrc}.")) (define (home-pipewire-shepherd-service config) (shepherd-service @@ -93,7 +97,7 @@ PulseAudio clients to use PipeWire transparently.")) (define (home-pipewire-asoundrc config) (match-record config <home-pipewire-configuration> - (pipewire) + (pipewire extra-content) (mixed-text-file "asoundrc" "<" pipewire "/share/alsa/alsa.conf.d/50-pipewire.conf>\n" @@ -103,7 +107,8 @@ PulseAudio clients to use PipeWire transparently.")) "}\n" "ctl_type.pipewire {\n" " lib \"" pipewire "/lib/alsa-lib/libasound_module_ctl_pipewire.so\"\n" - "}\n"))) + "}\n" + extra-content))) (define home-pipewire-disable-pulseaudio-auto-start (plain-file "client.conf" "autospawn = no")) diff --git a/gnu/local.mk b/gnu/local.mk index c9ebb8814e..6961b8816c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -19,7 +19,7 @@ # Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> # Copyright © 2018, 2019, 2020, 2021, 2022, 2024 Oleg Pykhalov <go.wigust@gmail.com> # Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com> -# Copyright © 2018, 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> +# Copyright © 2018, 2020-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com> # Copyright © 2019, 2020, 2021, 2022, 2024 Guillaume Le Vaillant <glv@posteo.net> # Copyright © 2019, 2020 John Soo <jsoo1@asu.edu> # Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de> @@ -1183,6 +1183,7 @@ dist_patch_DATA = \ %D%/packages/patches/docbook2x-static-datadir-evaluation.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ + %D%/packages/patches/dolphin-emu-data.patch \ %D%/packages/patches/dovecot-opensslv3.patch \ %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ @@ -1658,6 +1659,7 @@ dist_patch_DATA = \ %D%/packages/patches/libgeotiff-fix-tests-on-i386.patch \ %D%/packages/patches/libguestfs-syms.patch \ %D%/packages/patches/libobjc2-unbundle-robin-map.patch \ + %D%/packages/patches/libretro-dolphin-emu-data.patch \ %D%/packages/patches/librewolf-use-system-wide-dir.patch \ %D%/packages/patches/libvirt-add-install-prefix.patch \ %D%/packages/patches/libziparchive-add-includes.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 5f3092f9c8..82de7c360f 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -31,7 +31,7 @@ ;;; Copyright © 2019, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019, 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> -;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2020, 2023, 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com> @@ -74,6 +74,7 @@ ;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> ;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; Copyright © 2025 Dariqq <dariqq@posteo.net> +;;; Copyright © 2024 nik gaffney <nik@fo.am> ;;; ;;; This file is part of GNU Guix. ;;; @@ -5055,7 +5056,7 @@ Logitech Unifying Receiver.") (package (name "lynis") ;; Also update the ‘lynis-sdk’ input to the commit matching this release. - (version "3.0.9") + (version "3.1.1") (source (origin (method git-fetch) @@ -5064,7 +5065,7 @@ Logitech Unifying Receiver.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1rgiifbzlk9lfjhbgxy6pqza5kxpr5rsr8vj9fcqvqihzdb5izj1")) + (base32 "05bh16i916xz9w8p8fz8flzj9ayyzg7wpbi7q61ylrlahhc03nqd")) (modules '((guix build utils))) (snippet '(begin @@ -5080,10 +5081,10 @@ Logitech Unifying Receiver.") (method git-fetch) (uri (git-reference (url "https://github.com/CISOfy/lynis-sdk") - (commit "92522b3ec39ad4cdef4756dc303d99741ec7fe20"))) + (commit "f4f885f1f049f59940487a6ffc2d53806c729d12"))) (file-name (git-file-name "lynis-sdk" version)) (sha256 - (base32 "05qq4395x8f0kyl1ppm74npsf8sb3hhgz0ck4fya91sy6a26b4ja")))))) + (base32 "09d98wmvan7nlchm056kls5xm939d1231pwsvlp4q2aznz8cmg42")))))) (arguments (list #:phases diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 76b16bc0fd..41d3d0bf47 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016–2023 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2020, 2024 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 okapi <okapi@firemail.cc> -;;; Copyright © 2018, 2020, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2018, 2020, 2022-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2018, 2019, 2022 Marius Bakke <marius@gnu.org> @@ -4409,6 +4409,30 @@ application developers writing sound processing tools that require tempo/pitch control functionality, or just for playing around with the sound effects.") (license license:lgpl2.1+))) +(define-public soundtouch-1/integer-samples + (package + (inherit soundtouch) + (name "soundtouch") + (version "1.9.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/soundtouch/soundtouch.git") + (commit (string-append name "-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ir961w5gz86cm6yivr1ypi6n2y52vn319gy2gvdkkbbz5wyjkrq")))) + (arguments + ;; Dolphin expects the samples to be of the integer type. + (list #:configure-flags #~(list "--enable-integer-samples") + #:phases #~(modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + ;; Avoid the bootstrap script, which has a broken + ;; shebang. + (invoke "autoreconf" "-vif")))))))) + (define-public stargate-soundtouch ;; Stargate's fork of soundtouch. (let ((commit "464f474c0be5d7e0970909dd30593012e4621468") diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 37ae08f8cd..bc449a9591 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> -;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017, 2020, 2021, 2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> @@ -1189,6 +1189,14 @@ interactive mode.") (("= /etc") (string-append "= $(PREFIX)/etc"))))) (delete 'check) + #$@(if (this-package-native-input "ruby-asciidoctor") + #~() + ;; The 'build phase only builds the manpages. + #~((delete 'build) + (add-before 'install 'adjust-install-targets + (lambda _ + (substitute* "Makefile" + (("install-man ") "")))))) (add-after 'install 'wrap-scripts (lambda* (#:key inputs outputs #:allow-other-keys) (define btrbk (search-input-file outputs "bin/btrbk")) @@ -1212,7 +1220,10 @@ interactive mode.") "bin/find" "bin/mbuffer" "bin/ssh"))))))))) - (native-inputs (list ruby-asciidoctor)) + (native-inputs + (if (supported-package? ruby-asciidoctor) + (list ruby-asciidoctor) + '())) (inputs (list bash-minimal btrfs-progs coreutils diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 4639050623..4c96ffa1a4 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -217,7 +217,23 @@ including, for example, recursive directory searching.") (modules '((guix build utils))))) (build-system gnu-build-system) (synopsis "Stream editor") - (native-inputs (list perl)) ;for tests + (native-inputs (append (if (target-loongarch64?) + (list config) + '()) + (list perl))) ;for tests + (arguments (if (target-loongarch64?) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'update-config-scripts + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.guess and config.sub. + (for-each (lambda (file) + (install-file + (search-input-file + (or native-inputs inputs) + (string-append "/bin/" file)) "./build-aux")) + '("config.guess" "config.sub")))))) + '())) (description "Sed is a non-interactive, text stream editor. It receives a text input from a file or from standard input and it then applies a series of text diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 642a405985..ef530522ec 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -28,6 +28,7 @@ (define-module (gnu packages bash) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bootstrap) #:use-module (gnu packages compression) @@ -150,6 +151,9 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." (outputs '("out" "doc" ;1.7 MiB of HTML and extra files "include")) ;headers used by extensions + (native-inputs (if (target-loongarch64?) + (list config) + '())) (inputs (list readline ncurses)) ;TODO: add texinfo (arguments `(;; When cross-compiling, `configure' incorrectly guesses that job @@ -219,7 +223,18 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." "/Makefile.inc") (("^INSTALL =.*") "INSTALL = install -c\n")) - #t)))))) + #t))) + ,@(if (target-loongarch64?) + `((add-after 'unpack 'update-config-scripts + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.guess and config.sub. + (for-each (lambda (file) + (install-file + (search-input-file + (or native-inputs inputs) + (string-append "/bin/" file)) "./support")) + '("config.guess" "config.sub"))))) + '())))) (native-search-paths (list (search-path-specification ;new in 4.4 diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 8eed98d1fd..71103d1c77 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -29,6 +29,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages autotools) #:use-module (gnu packages hurd)) (define-public libgc @@ -155,6 +156,22 @@ C or C++ programs, though that is not its primary goal.") "0glzah695wsf6c27hs5wwlw4mnq1vfivdshz1rb8pq7w4mp5dazh")))) (build-system gnu-build-system) (outputs '("out" "debug")) + (native-inputs (if (target-loongarch64?) + (list config) + '())) + (arguments (if (target-loongarch64?) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'update-config-scripts + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.guess and config.sub. + (for-each (lambda (file) + (install-file + (search-input-file + (or native-inputs inputs) + (string-append "/bin/" file)) ".")) + '("config.guess" "config.sub")))))) + '())) (synopsis "Accessing hardware atomic memory update operations") (description "This C library provides semi-portable access to hardware-provided atomic diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index f778d71fd2..fc1df4745d 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1342,6 +1342,33 @@ gene regulations.") within this package are the 3000 bone marrow cells used for vignettes.") (license license:gpl3)))) +(define-public r-pizzarr + (let ((commit "7b3fd727a4ce7cb0fe8e443b971c5f63e18df991") + (revision "1")) + (package + (name "r-pizzarr") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/keller-mark/pizzarr") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xwb7cl52nzwgh0xiz8cda27qy5q45cqna5k40fngwj4mrbfm383")))) + (properties `((upstream-name . "pizzarr"))) + (build-system r-build-system) + (propagated-inputs (list r-jsonlite r-memoise r-qs r-r6 r-stringr)) + (native-inputs (list r-pbapply r-testthat r-vcr)) + (home-page "https://github.com/keller-mark/pizzarr") + (synopsis "Slice into Zarr arrays in R") + (description + "This package provides an implementation of chunked, compressed, +N-dimensional arrays for R, Zarr specification version 2 (2024) +<doi:10.5281/zenodo.11320255>.") + (license license:expat)))) + (define-public r-rhtslib12 (let ((commit "ee186daf04876969c7f31c16a0e0fda8e7c16a30") (revision "1")) @@ -1526,6 +1553,43 @@ tests (SAIGE) and controlling for sample relatedness in region-based assoc tests in large cohorts and biobanks (SAIGE-GENE+).") (license license:gpl2+)))) +(define-public r-sigfit + (package + (name "r-sigfit") + (version "2.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kgori/sigfit") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16r6m8p90rnb4hxl86fz3kbals3626232i8fj0zhhd23p89z3w4v")))) + (properties `((upstream-name . "sigfit"))) + (build-system r-build-system) + (native-inputs (list r-codetools)) + (propagated-inputs (list r-rcpp + r-rstan + r-rstantools + r-coda + r-clue + r-knitr + r-rmarkdown + r-bh + r-rcppeigen + r-stanheaders)) + (home-page "https://github.com/kgori/sigfit") + (synopsis "Flexible Bayesian inference of mutational signatures") + (description + "This R package lets you estimate signatures of mutational processes and +their activities on mutation count data. Starting from a set of +@dfn{single-nucleotide variants} (SNVs), it allows both estimation of the +exposure of samples to predefined mutational signatures (including whether the +signatures are present at all), and identification of signatures de novo from +the mutation counts.") + (license license:gpl3))) + (define-public r-singlet (let ((commit "765a6c45081807a1522f0e8983e2417822a36f36") (revision "1")) @@ -1687,6 +1751,47 @@ shape. This package provides an @code{htmlwidget} for building streamgraph visualizations.") (license license:expat)))) +(define-public r-vitesscer + (let ((commit "0096880c1b7b7afb42a26277e34508b4cce815bd") + (revision "1")) + (package + (name "r-vitesscer") + (version (git-version "0.99.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vitessce/vitessceR") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0axragpfl9xz7a10wx7n2j88lcv64kzi4ixkr6s69x3xa2fmlvay")))) + (properties `((upstream-name . "vitessceR"))) + (build-system r-build-system) + (propagated-inputs (list r-delayedarray + r-future + r-htmlwidgets + r-httpuv + r-jsonlite + r-matrix + r-mime + r-plumber + r-r6 + r-s4vectors + r-stringi + r-stringr)) + (native-inputs (list r-knitr r-testthat)) + (home-page "https://github.com/vitessce/vitessceR") + (synopsis "Create interactive Single-cell visualizations") + (description + "This package provides an R API and @code{htmlwidget} facilitating +interactive visualization of spatial single-cell data with Vitessce. The R +API contains classes and functions for loading single-cell data stored in +compatible on-disk formats. The @code{htmlwidget} is a wrapper around the +Vitessce JavaScript library and can be used in the Viewer tab of RStudio or +Shiny apps.") + (license license:expat)))) + (define-public r-wasabi (let ((commit "8c33cabde8d18c2657cd6e38e7cb834f87cf9846") (revision "1")) @@ -3720,7 +3825,8 @@ use-case, we encourage users to compose functions to achieve their goals.") ;;python-scikit-bio ;mutually recursive dependency python-scipy)) (native-inputs - (list python-cython python-pytest python-pytest-cov)) + (list python-cython python-pytest python-pytest-cov + python-wheel)) (home-page "https://www.biom-format.org") (synopsis "Biological Observation Matrix (BIOM) format utilities") (description @@ -22184,8 +22290,8 @@ patterns.") (license license:gpl3)))) (define-public r-voltron - (let ((commit "9f9415c72e9347f578a166981842d33e43b0466d") - (revision "1")) + (let ((commit "bbd7abb72681ae6dc91cb2f8fe4f3ce3a246f56b") + (revision "2")) (package (name "r-voltron") (version (git-version "0.2.0" revision commit)) @@ -22197,14 +22303,29 @@ patterns.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0bvvpj96ix2ij6034dfrh7za1lvf73qxqsdvbs2wrpc931s18q32")))) + (base32 "1h5m2r2hdp73yqsz60wq1sf98dbsqpx155qlxbxnzvhc0l8hjshd")))) (properties `((upstream-name . "VoltRon"))) (build-system r-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; By default VoltRon will use Basilisk, which uses Conda to set + ;; up a Python environment. We override the fallback default + ;; here. Users can still override the location of the Python + ;; interpreter with the option "voltron.python.path". + (add-after 'unpack 'do-not-use-conda + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "R/conversion.R" + (("return\\(NULL\\)") + (string-append "Sys.setenv(GUIX_PYTHONPATH=\"" + (getenv "GUIX_PYTHONPATH") + "\"); return(\"" + (search-input-file inputs "/bin/python3") + "\")")))))))) (inputs (list opencv - ;; These Python inputs would be fetched by Basilisk via Conda. - ;; We add these inputs in anticipation of an upstream change to - ;; allow for a Conda-free use of the package. + ;; These Python inputs are used via reticulate. python python-numpy python-pandas @@ -22217,8 +22338,7 @@ patterns.") python-tifffile python-zarr zlib)) - (propagated-inputs (list r-basilisk - r-data-table + (propagated-inputs (list r-data-table r-dplyr r-ebimage r-ggplot2 @@ -22229,6 +22349,7 @@ patterns.") r-irlba r-magick r-matrix + r-pizzarr r-rann r-rcdt r-rcpp @@ -22236,6 +22357,7 @@ patterns.") r-rcpparmadillo r-reshape2 r-reticulate + r-rhdf5 r-rjson r-rlang r-s4arrays diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index db20e71fe0..79ef8a5f41 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -333,6 +333,10 @@ or false to signal an error." ((string=? system "powerpc64-linux") "/lib/ld64.so.1") ((string=? system "alpha-linux") "/lib/ld-linux.so.2") + ;; TODO: Remove it when we support native loongarch64 build. + ((string=? system "loongarch64-linux") + "/lib/ld-linux-loongarch-lp64d.so.1") + ;; TODO: Differentiate between x86_64-linux-gnu and x86_64-linux-gnux32. ((string=? system "x86_64-linux-gnux32") "/lib/ld-linux-x32.so.2") diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 15b591a015..1ddcfa4d80 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2017, 2018, 2020, 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2019, 2020, 2021, 2022, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> @@ -45,6 +45,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system emacs) + #:use-module (guix build-system python) #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE)) #:use-module (gnu packages) #:use-module (gnu packages backup) @@ -56,6 +57,8 @@ #:use-module (gnu packages file) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages libevent) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages ncurses) #:use-module (gnu packages rust) #:use-module (gnu packages serialization) @@ -444,6 +447,42 @@ and workspaces that can be used in the compiler environment of your choice.") (search-paths (package-native-search-paths cmake-minimal)))) +(define-public cmakelang + (package + (name "cmakelang") + (version "0.6.13") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cmakelang" version)) + (sha256 + (base32 "0zz6g1ignqanl4ja9f5nrlk5f3mvv7cp5y9yswjd0m06n23jx603")))) + (build-system python-build-system) + (arguments (list #:tests? #f ;no test data in pypi archive + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-setup.py + (lambda _ + (substitute* "setup.py" + (("cmakelang/doc/README.rst") + "README.rst"))))))) + (inputs (list python-jinja2 python-pyyaml python-six)) + (home-page "https://github.com/cheshirekow/cmake_format/") + (synopsis "Language tools for CMake (format, lint, etc.)") + (description "The cmakelang project provides quality assurance (QA) tools +for CMake: +@table @command +@item cmake-annotate +generate pretty HTML from your listfiles +@item cmake-format +format your listfiles nicely +@item cmake-lint +check your listfiles for problems +@item ctest-to +parse a ctest output tree and translate it into a more structured +format (either JSON or XML). +@end table") + (license license:gpl3+))) + (define-public corrosion (package (name "corrosion") diff --git a/gnu/packages/compton.scm b/gnu/packages/compton.scm index 00bea9669b..6e8dd5442e 100644 --- a/gnu/packages/compton.scm +++ b/gnu/packages/compton.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> ;;; Copyright © 2023, 2024 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2025 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,7 +42,8 @@ #:use-module (gnu packages textutils) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (gnu packages ruby)) (define-public compton (let ((upstream-version "0.1_beta2")) @@ -113,7 +115,7 @@ performance). (define-public picom (package (name "picom") - (version "11.2") + (version "12.5") (source (origin (method git-fetch) @@ -122,7 +124,7 @@ performance). (commit (string-append "v" version)))) (sha256 (base32 - "0swmpw6lj0aiwypdfkzsy38jwsm9wfcn7i5klrqfn2klrwinv27f")) + "1skkchrlir9si9ljawg0xcgpfnd2macw7ny5vhx5f5zk7b7iphhz")) (file-name (string-append "picom-" version)))) (build-system meson-build-system) (inputs @@ -142,10 +144,17 @@ performance). xcb-util-image xprop)) (native-inputs - (list asciidoc pkg-config xorgproto)) + (append + (list pkg-config xorgproto) + (if (supported-package? ruby-asciidoctor) + (list ruby-asciidoctor) + '()))) (arguments (list #:build-type "release" - #:configure-flags #~'("-Dwith_docs=true") + #:configure-flags + (if (this-package-native-input "ruby-asciidoctor") + #~'("-Dwith_docs=true") + #~'("-Dwith_docs=false")) #:phases #~(modify-phases %standard-phases ;; This file would be patched by 'patch-dot-desktop-files but diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm index 1f3ad19c5b..b38994ad21 100644 --- a/gnu/packages/containers.scm +++ b/gnu/packages/containers.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2023 Zongyuan Li <zongyuan.li@c0x0o.me> ;;; Copyright © 2023 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz> +;;; Copyright © 2024, 2025 Tomas Volf <~@wolfsden.cz> ;;; Copyright © 2024 Foundation Devices, Inc. <hello@foundation.xyz> ;;; Copyright © 2024 Jean-Pierre De Jesus DIAZ <jean@foundation.xyz> ;;; @@ -163,7 +163,7 @@ runtime (like runc or crun) for a single container.") (define-public distrobox (package (name "distrobox") - (version "1.8.0") + (version "1.8.1.1") (source (origin (method git-fetch) @@ -171,7 +171,7 @@ runtime (like runc or crun) for a single container.") (url "https://github.com/89luca89/distrobox") (commit version))) (sha256 - (base32 "1igd2g19m4slk90zaz8ry49722xbrhwama988pj4m5ll9x715nkv")) + (base32 "0w4hg8qa0v01f8sfxgj00q1fb4581lbajkh1dl5vbsvlrm27w67l")) (file-name (git-file-name name version)))) (build-system copy-build-system) (arguments @@ -468,7 +468,7 @@ Its main purpose is to support the key usage by @code{docker-init}: (define-public podman (package (name "podman") - (version "5.3.1") + (version "5.3.2") (outputs '("out" "docker")) (properties `((output-synopsis "docker" "docker alias for podman"))) @@ -479,7 +479,7 @@ Its main purpose is to support the key usage by @code{docker-init}: (url "https://github.com/containers/podman") (commit (string-append "v" version)))) (sha256 - (base32 "1315rqsfiwq4i2vvdzb6nkwbvgwimsj7f71ma1svvqhp8kbly04h")) + (base32 "100jjj3fjb2mlx6hdj8gm4c1khcfrrf67rvm3r1nz7p007pkx4yg")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -626,7 +626,7 @@ being rootless and not requiring any daemon to be running.") (define-public buildah (package (name "buildah") - (version "1.38.0") + (version "1.38.1") (source (origin (method git-fetch) @@ -634,7 +634,7 @@ being rootless and not requiring any daemon to be running.") (url "https://github.com/containers/buildah") (commit (string-append "v" version)))) (sha256 - (base32 "1lnl5v8d5p4g0rm4d90rw4hdh066w7v8r9g1h0v1z533mbgxgry8")) + (base32 "10bgdn154b0akmni27vasnpylvwk9anb1gj08g6n004di9chg7ds")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 936f3cf593..44167a3433 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -39,6 +39,7 @@ ;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2024 Marco Baggio <guix@mawumag.com> ;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com> +;;; Copyright © 2024 Tor-björn Claesson <tclaesson@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -7033,6 +7034,36 @@ extensive prebuilt widgets make it possible to build beautiful, responsive, and powerful applications with minimal effort.") (license license:artistic2.0))) +(define-public r-shinyauthr + (package + (name "r-shinyauthr") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "shinyauthr" version)) + (sha256 + (base32 "0apaqjkxpr96kx9indl0pifk5y75gdx5npfcvxfg5k2crpx9vmxk")))) + (properties `((upstream-name . "shinyauthr"))) + (build-system r-build-system) + ;; One of the tests requires r-shinytest, which has a big JavaScript + ;; problem. + (arguments (list #:tests? #false)) + (native-inputs (list r-testthat)) + (propagated-inputs (list r-dplyr + r-glue + r-rlang + r-shiny + r-shinyjs + r-sodium)) + (home-page "https://github.com/paulc91/shinyauthr") + (synopsis "Shiny authentication modules") + (description + "With this package you can add in-app user authentication to Shiny, +allowing you to secure publicly hosted apps and build dynamic user interfaces +from user information.") + (license license:expat))) + (define-public r-shinydisconnect (package (name "r-shinydisconnect") @@ -7116,6 +7147,28 @@ console). It also provides tools for bundling both the code and results to the end user.") (license license:gpl3))) +(define-public r-shiny-router + (package + (name "r-shiny-router") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "shiny.router" version)) + (sha256 + (base32 "1zg8cdxmw620i1iv7jrghd768gw7iv52hi6lx79xvnfjz8w4si3x")))) + (properties `((upstream-name . "shiny.router"))) + (build-system r-build-system) + (propagated-inputs (list r-glue r-htmltools r-rlang r-shiny)) + (native-inputs (list r-testthat)) + (home-page "https://appsilon.github.io/shiny.router/") + (synopsis "Basic Routing for Shiny Web Applications") + (description + "This package provides a simple router for your Shiny apps. The router +allows you to create dynamic web applications with a real-time User Interface +and easily share url to pages within your Shiny apps.") + (license license:expat))) + ;; This package includes minified JavaScript files. When upgrading please ;; check that there are no new minified JavaScript files. (define-public r-shinytree @@ -7764,6 +7817,30 @@ page dashboard or a multi-page template, where the navigation menu is contained in the navigation bar.") (license license:gpl2+))) +(define-public r-spdl + (package + (name "r-spdl") + (version "0.0.5") + (source + (origin + (method url-fetch) + (uri (cran-uri "spdl" version)) + (sha256 + (base32 "185qzlwac7acq126xpvcd71nv25zgkrdr8m73gv2sn1zxj78hyid")))) + (properties `((upstream-name . "spdl"))) + (build-system r-build-system) + (propagated-inputs (list r-rcppspdlog)) + (home-page "https://github.com/eddelbuettel/spdl") + (synopsis "Easier use of RcppSpdlog functions via wrapper") + (description + "Logging functions in @code{RcppSpdlog} provide access to the logging +functionality from the spdlog C++ library. This package offers shorter +convenience wrappers for the R functions which match the C++ functions, namely +via, say, @code{spdl::debug()} at the debug level. The actual formatting is +done by the @code{fmt::format()} function from the fmtlib library (that is +also @code{std::format()} in C++20 or later).") + (license license:gpl2+))) + (define-public r-spelling (package (name "r-spelling") @@ -8098,6 +8175,29 @@ coordinates.") complex non-linear objective function with a very large number of optima.") (license license:gpl2))) +(define-public r-geojsonr + (package + (name "r-geojsonr") + (version "1.1.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "geojsonR" version)) + (sha256 + (base32 "10li5xj0vx6a86nccwql4inwfbjycvaxqfbjdp4h1p5qxyibnls3")))) + (properties `((upstream-name . "geojsonR"))) + (build-system r-build-system) + (propagated-inputs (list r-r6 r-rcpp r-rcpparmadillo)) + (native-inputs (list r-knitr r-testthat)) + (home-page "https://github.com/mlampros/geojsonR") + (synopsis "GeoJson processing toolkit") + (description + "This package includes functions for processing @code{GeoJson} objects +relying on RFC 7946. The geojson encoding is based on json11, a tiny JSON +library for C++11. Furthermore, the source code is exported in R through the +Rcpp and @code{RcppArmadillo} packages.") + (license license:expat))) + (define-public r-geos (package (name "r-geos") @@ -8781,6 +8881,55 @@ and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see @code{citation(\"Rcpp\")} for details on these last two.") (license license:gpl2+))) +(define-public r-rcppcctz + (package + (name "r-rcppcctz") + (version "0.2.13") + (source + (origin + (method url-fetch) + (uri (cran-uri "RcppCCTZ" version)) + (sha256 + (base32 "1wmbyaj08fbl4g47aq0mfkkvqwpah3d2j94fzc813dijxlsi847l")))) + (properties + `((upstream-name . "RcppCCTZ") + (updater-extra-native-inputs . ("tzdata-for-tests")))) + (build-system r-build-system) + (propagated-inputs (list r-rcpp)) + (native-inputs (list r-tinytest tzdata-for-tests)) + (home-page "https://github.com/eddelbuettel/rcppcctz") + (synopsis "Rcpp bindings for the CCTZ library") + (description + "Rcpp access to the CCTZ timezone library is provided. CCTZ is a C++ +library for translating between absolute and civil times using the rules of a +time zone. The CCTZ source code is included in this package.") + (license (list license:gpl2+ + license:asl2.0)))) ;for CCTZ + +(define-public r-rcppdate + (package + (name "r-rcppdate") + (version "0.0.4") + (source + (origin + (method url-fetch) + (uri (cran-uri "RcppDate" version)) + (sha256 + (base32 "1cnhvbgqfcjrwm1rx6bhhj4yf4dipcp6g1hjv1qa86pmxzyjp3dn")))) + (properties `((upstream-name . "RcppDate"))) + (build-system r-build-system) + (home-page "https://github.com/eddelbuettel/rcppdate") + (synopsis "date C++ header library for date and time functionality") + (description + "This package provides a header-only C++ library is provided with support +for dates, time zones, ISO weeks, Julian dates, and Islamic dates. +@code{date} offers extensive date and time functionality for the C++11, C++14 +and C++17 standards. A slightly modified version has been accepted (along +with @file{tz.h}) as part of C++20. This package regroups all header files +from the upstream repository so that other R packages can use them in their +C++ code.") + (license license:gpl2+))) + (define-public r-rcppde (package (name "r-rcppde") @@ -8827,6 +8976,33 @@ code using Rcpp or RcppArmadillo. Functions are available that return a distributions, Armadillo vectors and matrices.") (license license:gpl2+))) +(define-public r-rcppint64 + (package + (name "r-rcppint64") + (version "0.0.5") + (source + (origin + (method url-fetch) + (uri (cran-uri "RcppInt64" version)) + (sha256 + (base32 "1h4lshkn3p3c7swygbpmkg0pa80xcp3f9alck5q4bmml61hicwjk")))) + (properties `((upstream-name . "RcppInt64"))) + (build-system r-build-system) + (propagated-inputs (list r-rcpp)) + (native-inputs (list r-tinytest)) + (home-page "https://github.com/eddelbuettel/rcppint64") + (synopsis + "Rcpp-based helper functions to pass Int64 values between R and C++") + (description + "@code{int64} values can be created and accessed via the @code{bit64} +package and its @code{integer64} class which package the @code{int64} +representation cleverly into a @code{double}. The @code{nanotime} package +builds on this to support nanosecond-resolution timestamps. This package +helps conversions between R and C++ via several helper functions provided via +a single header file. A complete example client package is included as an +illustration.") + (license license:gpl2+))) + (define-public r-rcppml (package (name "r-rcppml") @@ -10238,6 +10414,32 @@ experiments\" (2011), Annals of Applied Statistics, Vol. 5, No. 3, 1752-1779, by Li, Brown, Huang, and Bickel") (license license:gpl2+))) +(define-public r-imola + (package + (name "r-imola") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "imola" version)) + (sha256 + (base32 "087zdzn1vkyvqrdlwnackr6jyacrhg69q4b77s8z477kplickw8x")))) + (properties `((upstream-name . "imola"))) + (build-system r-build-system) + (propagated-inputs (list r-glue + r-htmltools + r-magrittr + r-shiny + r-stringi + r-yaml)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/pedrocoutinhosilva/imola") + (synopsis "CSS layouts (grid and flexbox) for R/Shiny") + (description + "This package allows users to create CSS grid and flexbox layouts for +R/Shiny without needing to write custom CSS.") + (license license:expat))) + (define-public r-inext (package (name "r-inext") @@ -13600,6 +13802,28 @@ units, plus unit conversions based on the data from @acronym{NIST, National Institute of Standards and Technology}, USA.") (license license:gpl3+))) +(define-public r-numero + (package + (name "r-numero") + (version "1.9.7") + (source + (origin + (method url-fetch) + (uri (cran-uri "Numero" version)) + (sha256 + (base32 "04pf6x7qmgkfyj98c23maxcvlwwwfw6jas7l72xp0713lyndjl15")))) + (properties `((upstream-name . "Numero"))) + (build-system r-build-system) + (propagated-inputs (list r-rcpp)) + (native-inputs (list r-knitr r-rmarkdown)) + (home-page "https://cran.r-project.org/package=Numero") + (synopsis "Statistical framework to define subgroups in complex datasets") + (description + "The package includes the necessary functions to construct a +self-organizing map of data, to evaluate the statistical signifcance of the +observed data patterns, and to visualize the results.") + (license license:gpl2+))) + (define-public r-stabs (package (name "r-stabs") @@ -38153,6 +38377,52 @@ range of object-specific analytical and tree-visualization functions found across a wide array of bioinformatic R packages.") (license license:gpl3))) +(define-public r-phytools + (package + (name "r-phytools") + (version "2.4-4") + (source + (origin + (method url-fetch) + (uri (cran-uri "phytools" version)) + (sha256 + (base32 "1i25dlikdx9av5653ra2709sjm9fc3fsis1yfsb7zagivi408ph9")))) + (properties `((upstream-name . "phytools"))) + (build-system r-build-system) + (propagated-inputs (list r-ape + r-clustergeneration + r-coda + r-combinat + r-deoptim + r-doparallel + r-expm + r-foreach + r-maps + r-mass + r-mnormt + r-nlme + r-numderiv + r-optimparallel + r-phangorn + r-scatterplot3d)) + (home-page "https://github.com/liamrevell/phytools") + (synopsis "Phylogenetic tools for comparative biology") + (description + "This package offers extensive tools for phylogenetic analysis. It +focuses on phylogenetic comparative biology but also includes methods for +visualizing, analyzing, manipulating, reading, writing, and inferring +phylogenetic trees. Functions for comparative biology include ancestral state +reconstruction, model fitting, and phylogeny and trait data simulation. A +broad range of plotting methods includes mapping trait evolution on trees, +projecting trees into phenotype space or geographic maps, and visualizing +correlated speciation between trees. Additional functions allow for reading, +writing, analyzing, inferring, simulating, and manipulating phylogenetic trees +and comparative data. Examples include computing consensus trees, simulating +trees and data under various models, and attaching species or clades to a tree +either randomly or non-randomly. This package provides numerous tools for +tree manipulations and analyses that are valuable for phylogenetic research.") + (license license:gpl2+))) + (define-public r-kmer (package (name "r-kmer") @@ -39313,6 +39583,63 @@ book @emph{Nondetects and Data Analysis: Statistics for Censored Environmental Data}.") (license license:gpl2+))) +(define-public r-nanoarrow + (package + (name "r-nanoarrow") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "nanoarrow" version)) + (sha256 + (base32 "0wad6dvc7f4z9ll0v5mvqlvk2waf2wfhpnd3sckxsjfpg2s1an6b")))) + (properties `((upstream-name . "nanoarrow"))) + (build-system r-build-system) + (native-inputs (list r-arrow + r-bit64 + r-blob + r-hms + r-jsonlite + r-testthat + r-tibble + r-vctrs + r-withr)) + (home-page "https://arrow.apache.org/nanoarrow/latest/r/") + (synopsis "Interface to the nanoarrow C library") + (description + "This package provides an R interface to the @code{nanoarrow} C library +and the Apache Arrow application binary interface. Functions to import and +export @code{ArrowArray}, @code{ArrowSchema}, and @code{ArrowArrayStream} C +structures to and from R objects are provided alongside helpers to facilitate +zero-copy data transfer among R bindings to libraries implementing the Arrow C +data interface.") + (license license:asl2.0))) + +(define-public r-nanotime + (package + (name "r-nanotime") + (version "0.3.11") + (source + (origin + (method url-fetch) + (uri (cran-uri "nanotime" version)) + (sha256 + (base32 "19q8xklkdp8jsq1hjj78wzr0q00fy8z5p2skyz2xlzvam3555pnb")))) + (properties + `((upstream-name . "nanotime") + (updater-extra-native-inputs . ("tzdata-for-tests")))) + (build-system r-build-system) + (propagated-inputs (list r-bit64 r-rcpp r-rcppcctz r-rcppdate r-zoo)) + (native-inputs (list r-tinytest tzdata-for-tests)) + (home-page "https://github.com/eddelbuettel/nanotime") + (synopsis "Nanosecond-resolution time support for R") + (description + "Full 64-bit resolution date and time functionality with nanosecond +granularity is provided, with easy transition to and from the standard POSIXct +type. Three additional classes offer interval, period and duration +functionality for nanosecond-resolution timestamps.") + (license license:gpl2+))) + (define-public r-naturalsort (package (name "r-naturalsort") diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index ad3616eaba..a4e9c2a9cb 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -418,7 +418,10 @@ target that libc." (define* (cross-kernel-headers/deprecated target #:optional - (linux-headers linux-libre-headers) + (linux-headers + (if (target-loongarch64? target) + linux-libre-headers-5.19.17 + linux-libre-headers)) (xgcc (cross-gcc target)) (xbinutils (cross-binutils target))) (warning (G_ "'cross-kernel-headers' must be used with keyword arguments~%")) @@ -493,7 +496,9 @@ the base compiler. Use XBINUTILS as the associated cross-Binutils." (define* (cross-kernel-headers* target #:key - (linux-headers linux-libre-headers) + (linux-headers (if (target-loongarch64? target) + linux-libre-headers-5.19.17 + linux-libre-headers)) (xgcc (cross-gcc target)) (xbinutils (cross-binutils target))) "Return headers depending on TARGET." diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index be6571ed2d..95a9c1fa6c 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -4003,7 +4003,7 @@ text search extension.") (define-public python-sqlite-utils (package (name "python-sqlite-utils") - (version "3.32.1") + (version "3.38") (source (origin (method git-fetch) ;for tests (uri (git-reference @@ -4012,7 +4012,7 @@ text search extension.") (file-name (git-file-name name version)) (sha256 (base32 - "1qf9zwn9gdkx8825klicwkw8zj5wpidd8csdhjxvybq56nkgnrpm")))) + "1rai8rbw5drxppypyl3r8j9gr12278h3snkj7l280zkskbxxh7hf")))) (build-system pyproject-build-system) (arguments (list #:phases #~(modify-phases %standard-phases diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm index 7c36d30a34..433d469ae8 100644 --- a/gnu/packages/dbm.scm +++ b/gnu/packages/dbm.scm @@ -189,7 +189,22 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") (base32 "1kfapds42j1sjq6wl7fygipw5904wpbfa5kwppj3mwgz44fhicbl")))) (arguments `(#:configure-flags '("--enable-libgdbm-compat" - "--disable-static"))) + "--disable-static") + ,@(if (target-loongarch64?) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'update-config + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (for-each (lambda (file) + (install-file + (search-input-file + (or native-inputs inputs) + (string-append "/bin/" file)) "build-aux")) + '("config.guess" "config.sub")))))) + '()))) + (native-inputs (if (target-loongarch64?) + (list config) + '())) (build-system gnu-build-system) (home-page "https://www.gnu.org.ua/software/gdbm") (synopsis diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index c08c5351ce..6743bdd529 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -77,7 +77,7 @@ (define-public diffoscope (package (name "diffoscope") - (version "284") + (version "285") (source (origin (method git-fetch) @@ -86,7 +86,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1nl5njb4harq4f3xks0fj92nwxkpfzywpkrakh7jy2l9ngic1vb2")))) + (base32 "06fz3ypmb9j9hi0z826iinp22qdsn9lp0rkz6840r6gfychfffhm")))) (build-system python-build-system) (arguments (list diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index a3f57ee2a1..3616faf61c 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -1212,7 +1212,11 @@ to create devices with respective mappings for the ATARAID sets discovered.") (false-if-exception (search-input-file inputs (string-append "sbin/" program))) - program))))))))) + (begin + (format (current-warning-port) + "warning: program ~s left unpatched~%" + program) + program)))))))))) (native-inputs (list gobject-introspection pkg-config diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index a32339b600..74bc62a300 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -120,6 +120,17 @@ (("run-strip-strmerge.sh") "") (("run-elflint-self.sh") ""))))) #~()) + #$@(if (target-loongarch64?) + `((add-after 'unpack 'update-config-scripts + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.guess and config.sub. + (for-each (lambda (file) + (install-file + (search-input-file + (or native-inputs inputs) + (string-append "/bin/" file)) "./config")) + '("config.guess" "config.sub"))))) + '()) #$@(if (system-hurd?) #~((add-after 'unpack 'skip-tests (lambda _ @@ -151,8 +162,10 @@ (search-patch "elfutils-libdwfl-string-overflow.patch")))))) #~())))) - - (native-inputs (list m4)) + (native-inputs (append (if (target-loongarch64?) + (list config) + (list)) + (list m4))) (inputs (list xz zlib)) (home-page "https://sourceware.org/elfutils/") (synopsis "Collection of utilities and libraries to handle ELF files and diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 0b2f736aa7..30dedbfc85 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -41,7 +41,7 @@ (define-public elixir (package (name "elixir") - (version "1.18.1") + (version "1.18.2") (source (origin (method git-fetch) @@ -50,7 +50,7 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1bzg3m4dbhvrxv7f20q77j3648j0fkpnmajh4yfz53wj5ail14yc")) + (base32 "128jbl90scf7acs4x2b73sfypiy4ckvm9ba72xf113440ql58n7h")) (patches (search-patches "elixir-path-length.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 36cad3a7df..29905b985d 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -141,7 +141,7 @@ ;;; Copyright © 2024 Ilya Chernyshov <ichernyshovvv@gmail.com> ;;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu> ;;; Copyright © 2024 Noé Lopez <noelopez@free.fr> -;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com> +;;; Copyright © 2024, 2025 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2024 Daniel Szmulewicz <daniel.szmulewicz@gmail.com> ;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> @@ -151,6 +151,7 @@ ;;; Copyright © 2024 aurtzy <aurtzy@gmail.com> ;;; Copyright © 2024 Olivier Rojon <o.rojon@posteo.net> ;;; Copyright © 2024 Divya Ranjan Pattanaik <divya@subvertising.org> +;;; Copyright © 2025 Remco van 't Veer <remco@remworks.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -616,7 +617,7 @@ summarizing text using an LLM.") (define-public emacs-chatgpt-shell (package (name "emacs-chatgpt-shell") - (version "2.9.1") + (version "2.12.2") (source (origin (method git-fetch) (uri (git-reference @@ -625,7 +626,7 @@ summarizing text using an LLM.") (file-name (git-file-name name version)) (sha256 (base32 - "103s9w2i7f2hxxr00s10d42z5hqzdczpfpmhf2va0sf8s19y4jm8")))) + "1wvfqgzhhqq2n0nvx5cqbn74bh79pzxmhlss4fxdx487y86rs8w7")))) (build-system emacs-build-system) (arguments (list #:phases @@ -1337,7 +1338,7 @@ is based off of Slim mode.") (define-public emacs-show-font (package (name "emacs-show-font") - (version "0.1.2") + (version "0.2.0") (source (origin (method git-fetch) @@ -1346,7 +1347,7 @@ is based off of Slim mode.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0kbkbvqhdqpsmci0756w2j7igxdj0qfzy823mvc5lb6yj8gwq9dl")))) + (base32 "0bvd1jw5x623zh0ga8hvq7mdmijlvlwk478adlvg1k1a6s371wss")))) (build-system emacs-build-system) (home-page "https://github.com/protesilaos/show-font") (synopsis "Show font features in a buffer") @@ -1770,7 +1771,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.") (define-public emacs-llama (package (name "emacs-llama") - (version "0.4.0") + (version "0.5.0") (source (origin (method git-fetch) (uri (git-reference @@ -1779,13 +1780,14 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.") (file-name (git-file-name name version)) (sha256 (base32 - "1km89ks7xg89sjqxiri9lxj58hc17z13z7mzcq3y66yv1dfrrziz")))) + "1zb3iqb1nks2y9i1033x4pa0kb7nb4jqwrcrkqrsq3w612213hkd")))) (build-system emacs-build-system) (arguments (list #:tests? #true #:test-command #~(list "emacs" "-Q" "--batch" "-l" "llama.el" "-f" "ert-run-tests-batch-and-exit"))) + (propagated-inputs (list emacs-compat)) (home-page "https://github.com/tarsius/llama") (synopsis "Compact syntax for short lambda") (description @@ -1796,7 +1798,7 @@ syntax for short lambda.") (define-public emacs-llm (package (name "emacs-llm") - (version "0.20.0") + (version "0.22.0") (source (origin (method git-fetch) (uri (git-reference @@ -1805,7 +1807,7 @@ syntax for short lambda.") (file-name (git-file-name name version)) (sha256 (base32 - "1cjifshb8h5zz63v47n99kwaxj5axgmi3iy5m8zcz9xyab8ac2yx")))) + "08s7q6gfkb2bf1hvszj2wlqsrrnpiyzrsk7mpx4p7bymjy1r0qdz")))) (build-system emacs-build-system) (propagated-inputs (list emacs-plz emacs-plz-event-source @@ -1821,7 +1823,7 @@ before interacting with non-free LLMs.") (define-public emacs-magit (package (name "emacs-magit") - (version "4.1.3") + (version "4.2.0") (source (origin (method git-fetch) @@ -1830,7 +1832,7 @@ before interacting with non-free LLMs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0nggfqywxdnnzaw4vqn1m6h8qklyp7cwbaxxsnkr5pjcwn5nz69v")))) + (base32 "0zmrd6xlrvlr0i1a75xwlknmyx4hvpfxaqjkl61n12gd8598ji1j")))) (build-system emacs-build-system) (arguments (list @@ -2175,7 +2177,7 @@ bottom, or top, of the buffer, or to a trash file.") (define-public emacs-minions (package (name "emacs-minions") - (version "1.0.2") + (version "1.0.3") (source (origin (method git-fetch) @@ -2184,7 +2186,7 @@ bottom, or top, of the buffer, or to a trash file.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "10pxhsl9yr1nkbkhhvz5iq1q2dbcl315b6q02v23wmns66a9akya")))) + (base32 "1rinshdxln1wvzf7by8gq9wiqgcqy406k5jl1f86jd17b3wv5bxx")))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat emacs-dash)) @@ -2229,7 +2231,7 @@ displayed at the bottom or at the top.") (define-public emacs-moody (package (name "emacs-moody") - (version "1.1.1") + (version "1.1.2") (source (origin (method git-fetch) @@ -2238,7 +2240,7 @@ displayed at the bottom or at the top.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dgamndly8lbjwzb4435v99izabdir9fbx31sm9bh1c5yqdka6cp")))) + (base32 "1byphhdp41cn2qs91la6fvgzrwgbyx4yaajknvwz8qxzgl2c4aq2")))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat)) @@ -3477,13 +3479,13 @@ and ease-of-key score. Most frequently used commands have most easy keys.") (define-public emacs-xr (package (name "emacs-xr") - (version "2.0") + (version "2.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar")) (sha256 - (base32 "1y5pcrph6v8q06mipv3l49qhw55yvvb1nnq0817bzm25k0s3z70v")))) + (base32 "1yssl7av2rpanzmm93iw74acnb3pbrnh0b51kr64wcj6hwb26cy2")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/xr.html") (synopsis "Convert string regexp to rx notation") @@ -3706,14 +3708,14 @@ project root.") (define-public emacs-relint (package (name "emacs-relint") - (version "2.0") + (version "2.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "relint-" version ".tar")) (sha256 - (base32 "0r89b5yk5lp92k4gnr0sx6ccilqzpv6kd5csqhxydk0xmqh8rsff")))) + (base32 "0ikml87y0k85qd92m3l1gkzjd9ng3mhjfk19w15ln0w801351cq0")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xr)) (home-page "https://github.com/mattiase/relint") @@ -3905,14 +3907,14 @@ podcasts) in Emacs.") (define emacs-emms-print-metadata (package (name "emacs-emms-print-metadata") - (version "20.2") + (version "21") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "emms-" version ".tar")) (sha256 - (base32 "0amc956amyfsjlq5aqc7nk2cs2ph2zcpci5wkms6w973wx67z2j6")))) + (base32 "188rij39qqaya7hk0p05ygcw5vlha7qd6pm4ws6nfw7g0nv1rbcc")))) (build-system gnu-build-system) (arguments (list @@ -4052,7 +4054,7 @@ Selectrum.") (define-public emacs-empv (package (name "emacs-empv") - (version "4.5.0") + (version "4.9.0") (source (origin (method git-fetch) @@ -4062,7 +4064,7 @@ Selectrum.") (file-name (git-file-name name version)) (sha256 (base32 - "1qwbxhdcl2vvdf0sjgl1iafh47rgbabzmjjwg6jq32p7q64pw6dr")))) + "16xplsbiv1ybaws3n7xlysyqgx78haa9m260r4z8w5zfvl0h0lxz")))) (build-system emacs-build-system) (arguments (list @@ -4222,7 +4224,7 @@ code completion and project management support.") (define-public emacs-auto-compile (package (name "emacs-auto-compile") - (version "2.0.3") + (version "2.0.4") (source (origin (method git-fetch) (uri (git-reference @@ -4231,7 +4233,7 @@ code completion and project management support.") (file-name (git-file-name name version)) (sha256 (base32 - "1pgc4m73yxz0hivf6cclqiwmjmg9hs3ncggk7wa10p8scd39ky2p")))) + "0cd42xigvw7fy2qy5kn0xlc97sp03w8ja6qjs2y22h29xva6fwsl")))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat emacs-packed)) (home-page "https://github.com/emacscollective/auto-compile") @@ -4553,36 +4555,34 @@ programs such as @code{vi}, @code{top}, @code{htop} or even @code{emacs (license license:gpl3+))) (define-public emacs-mistty - (let ((revision "0") - (commit "6284c0f6529bcce57d183e20765052c603846115")) - (package - (name "emacs-mistty") - (version (git-version "1.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/szermatt/mistty") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1159dy63dq7kyh06q9kfvq6x4bx59w9g1slq2m3xvx2ngaiydf97")))) - (build-system emacs-build-system) - (arguments - (list - #:phases #~(modify-phases %standard-phases - (add-before 'patch-el-files 'replace-bash-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "mistty-term.el" - (("/bin/bash") - (search-input-file inputs "bin/bash")))))))) - (inputs (list bash)) - (home-page "https://github.com/szermatt/mistty") - (synopsis "Emacs terminal major mode based on Term") - (description - "This package defines a major mode that runs a shell inside of + (package + (name "emacs-mistty") + (version "1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/szermatt/mistty") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wyhv6skml0p9lajhmfbwc8wm3r1107kgwyvh31dyi9m4zhc52zh")))) + (build-system emacs-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-before 'patch-el-files 'replace-bash-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "mistty-term.el" + (("/bin/bash") + (search-input-file inputs "bin/bash")))))))) + (inputs (list bash)) + (home-page "https://github.com/szermatt/mistty") + (synopsis "Emacs terminal major mode based on Term") + (description + "This package defines a major mode that runs a shell inside of a buffer, similarly to Comint mode. It is built on top of Term.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-counsel-bbdb (package @@ -5574,7 +5574,7 @@ that the binary uses instead of the actual binary contents.") (define-public emacs-ellama (package (name "emacs-ellama") - (version "0.13.0") + (version "0.13.3") (source (origin (method git-fetch) (uri (git-reference @@ -5582,7 +5582,7 @@ that the binary uses instead of the actual binary contents.") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1abjp70q9ms6kdd1rs4zcrqzz0hfy7a5bizgl0ddrx7r0sfk9r06")))) + "0rih610qirrh3nn5lwnvqyvnmlkdqfrhsdjm6nqks1yia020sdgx")))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat emacs-dash emacs-llm emacs-spinner)) (home-page "https://github.com/s-kostyaev/ellama") @@ -5677,25 +5677,23 @@ calculated based on how well you remembered the contents of the card.") (license license:gpl3+)))) (define-public emacs-font-lock-studio - (let ((commit "12c35967b31233e06946c70627aa3152dacfe261") - (revision "1")) - (package - (name "emacs-font-lock-studio") - (version (git-version "0.0.7" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Lindydancer/font-lock-studio") - (commit "12c35967b31233e06946c70627aa3152dacfe261"))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0q0s6f5vi3sfifj7vq2nnsmgyyivp1sd3idk32858md5ri71qif0")))) - (build-system emacs-build-system) - (home-page "https://github.com/Lindydancer/font-lock-studio") - (synopsis "Interactive debugger for Font Lock keywords") - (description - "Font Lock Studio is an interactive debugger for Emacs syntax highlighting + (package + (name "emacs-font-lock-studio") + (version "0.0.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Lindydancer/font-lock-studio") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ssa62qm3zv0l9adz0bpi4iaixbi788ihh1qy5n41h6jzcjig4k4")))) + (build-system emacs-build-system) + (home-page "https://github.com/Lindydancer/font-lock-studio") + (synopsis "Interactive debugger for Font Lock keywords") + (description + "Font Lock Studio is an interactive debugger for Emacs syntax highlighting rules, also called Font Lock keywords. It can @emph{single-step} Font Lock keywords -- matchers, highlights, and anchored rules, to see what happens when a buffer is fontified. Breakpoints can be set on or inside rules. When @@ -5703,7 +5701,7 @@ inside a rule, matches are visualized using a palette of background colors. The explainer can describe a rule in plain-text English. Finally, tight integration with Edebug allows stepping into Lisp expressions that are part of the Font Lock keywords.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-fontaine (package @@ -7777,10 +7775,10 @@ column by drawing a thin line down the length of the editing window.") (license license:gpl3+))) (define-public emacs-greader - (let ((commit "0379b8a704692d6dbd728afdd982317803052e32")) ;version bump + (let ((commit "d58c1ee051afe384e23455b7c8b72ee1eae4850f")) ;version bump (package (name "emacs-greader") - (version "0.12.3") + (version "0.12.5") (source (origin (uri (git-reference @@ -7789,7 +7787,7 @@ column by drawing a thin line down the length of the editing window.") (method git-fetch) (file-name (git-file-name name version)) (sha256 - (base32 "0jg45w3w5qr2x7ga3z68ihs2g1fid6bl5dvvs10yh1rkpc6mjbd0")))) + (base32 "1wh9xbz4az4b90m2r2ffmrvwlv2ig75bxycmkqghaz4hhx2gkvaz")))) (build-system emacs-build-system) (arguments (list @@ -8371,14 +8369,14 @@ configuration, cache, and other data.") (define-public emacs-standard-themes (package (name "emacs-standard-themes") - (version "2.1.0") + (version "2.2.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/standard-themes-" version ".tar")) (sha256 - (base32 "0x7fphd36kwg4vfwix5rq7260xl6x6cjfwsq11rj4af30sm4hlfn")))) + (base32 "0qdld75vcfhsn2l0xips52vrlp5q7ss3973hd722h2gp1wddn5f7")))) (build-system emacs-build-system) (home-page "https://github.com/protesilaos/standard-themes") (synopsis "Like the default Emacs theme but more consistent") @@ -9259,7 +9257,7 @@ the speedbar window.") (define-public emacs-shell-maker (package (name "emacs-shell-maker") - (version "0.74.1") + (version "0.76.2") (source (origin (method git-fetch) (uri (git-reference @@ -9268,7 +9266,7 @@ the speedbar window.") (file-name (git-file-name name version)) (sha256 (base32 - "06prky3c8hfvbnb705qa436vznq05zjicdz870l7m2760h6803iz")))) + "0df0mxaz2g4fzdlhxygifmsjnxw7n8v1ghz1pnlhad0anpwdsdv9")))) (build-system emacs-build-system) (home-page "https://github.com/xenodium/shell-maker") (synopsis "Create Emacs shells") @@ -9278,7 +9276,7 @@ the speedbar window.") (define-public emacs-shell-switcher (package (name "emacs-shell-switcher") - (version "1.0.1") + (version "1.1.0") (source (origin (method git-fetch) @@ -9287,7 +9285,7 @@ the speedbar window.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria")))) + (base32 "0py95c6i7bffidwkwld1j1h2isyq7psna2kz81jigzz0wi885pjr")))) (build-system emacs-build-system) (home-page "https://github.com/DamienCassou/shell-switcher") (synopsis "Provide fast switching between shell buffers") @@ -9379,6 +9377,30 @@ a file).") package namespace prefix is hidden by a colon.") (license license:gpl2+))) +(define-public emacs-nano-theme + ;; No named branches. + (let ((commit "ffe414c8af9c673caf8b8b05ba89a229cb9ad48b") + (revision "0")) + (package + (name "emacs-nano-theme") + (version (git-version "0.3.4" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rougier/nano-theme") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wi5snsakpag7lcdndz10x5fxb0yrnignqdx3v4fm5drbk0d7hkr")))) + (build-system emacs-build-system) + (home-page "https://github.com/rougier/nano-theme") + (synopsis "GNU Emacs / N Λ N O Theme") + (description + "Nano is a consistent theme for GNU Emacs which is based on Material +colors and the dark theme is based on Nord colors.") + (license license:gpl3+)))) + (define-public emacs-evil-leader (package (name "emacs-evil-leader") @@ -9685,7 +9707,7 @@ files which are intended to be packages.") (define-public emacs-el-job (package (name "emacs-el-job") - (version "0.3.18") + (version "0.3.21") (source (origin (method git-fetch) (uri (git-reference @@ -9694,7 +9716,7 @@ files which are intended to be packages.") (file-name (git-file-name name version)) (sha256 (base32 - "1n9yg804z778cwcdrfvdf087nsy2x2g13kvrf47gg5zdp5wa1fnc")))) + "0jxq4j7sc46wp4niakrcfavv3jiba89civ492aj4szlx0wnz08pl")))) (build-system emacs-build-system) (arguments (list #:tests? #true @@ -9999,14 +10021,14 @@ by a query, so both a link can refer to several mails.") (define-public emacs-debbugs (package (name "emacs-debbugs") - (version "0.42") + (version "0.43") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/debbugs-" version ".tar")) (sha256 - (base32 "0n0kvkyzggn8q72dpy6c7rsjwn1rjx0r33y5jc080j7sw85xpigg")))) + (base32 "1jzdr7bp48incg1bdnq4s1ldnyp6hncz0mydy0bizk3c68chsls5")))) (build-system emacs-build-system) (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) (propagated-inputs @@ -10259,7 +10281,7 @@ correct movement and editing than you would otherwise have.") (define-public emacs-compat (package (name "emacs-compat") - (version "30.0.1.0") + (version "30.0.2.0") (source (origin (method git-fetch) (uri (git-reference @@ -10268,7 +10290,7 @@ correct movement and editing than you would otherwise have.") (file-name (git-file-name name version)) (sha256 (base32 - "0nh820w2m139yk2s410hwwzbn2gvaf0qilpq9qd5f9g58swhqw2w")))) + "020rn3l2sn0vzfhx30k47jd2cgvsddk0zfbizgb68hbajcxqfsl4")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/compat.html") (synopsis "Emacs Lisp compatibility library") @@ -12817,7 +12839,7 @@ built-in custom themes.") (define-public emacs-gruvbox-theme (package (name "emacs-gruvbox-theme") - (version "1.30.1") + (version "1.30.2") (source (origin (method git-fetch) (uri (git-reference @@ -12826,7 +12848,7 @@ built-in custom themes.") (file-name (git-file-name name version)) (sha256 (base32 - "0dgjf86i8179l1nsjyc20chysqmy8yhphpd5lzv2ypx79l4z3jka")))) + "1bnmp9nbpsrnxhn6v81533xcb9hx043wf86n5hwj9mpacl5ic33y")))) (build-system emacs-build-system) (propagated-inputs (list emacs-autothemer)) @@ -13250,14 +13272,14 @@ completion using Consult.") (define-public emacs-consult-denote (package (name "emacs-consult-denote") - (version "0.2.2") + (version "0.2.4") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/consult-denote-" version ".tar")) (sha256 - (base32 "1dpl9aq25j9nbrxa469gl584km93ry2rnkm0ydxljid9w15szpls")))) + (base32 "1a5gxrm8qw638hdplvlizwmyvm84ispm5w751vd7ngmcsiaabvmp")))) (build-system emacs-build-system) (propagated-inputs (list emacs-consult emacs-denote)) (home-page "https://github.com/protesilaos/consult-denote") @@ -13344,7 +13366,7 @@ versions utilizing Consult's internal API.") (define-public emacs-consult-eglot (package (name "emacs-consult-eglot") - (version "0.3.0") + (version "0.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -13352,7 +13374,7 @@ versions utilizing Consult's internal API.") (commit (string-append "v" version)))) (sha256 (base32 - "0mn9d87m05bhqrw7sscx4a2a5h7gkqyhv06a80ky9vbzlfjfk6hh")) + "0y3n161kfa4a791jh70n6k1s6vyv55lr3ly8zz2zww5gxkx8m137")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs (list emacs-consult emacs-eglot)) @@ -13662,7 +13684,7 @@ between symbols.") (define-public emacs-hl-todo (package (name "emacs-hl-todo") - (version "3.8.1") + (version "3.8.2") (source (origin (method git-fetch) (uri (git-reference @@ -13671,7 +13693,7 @@ between symbols.") (file-name (git-file-name name version)) (sha256 (base32 - "00x17bcpdp7xa49jf2np77s8rxk6q8wb0rhfwmbg52z5y61gl7f8")))) + "0py936brc7kwggzcxi8mdndpgphzrxdd3ig9hbjlccs9ihwq3hi4")))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat)) @@ -14055,26 +14077,28 @@ line program.") (license license:gpl3+)))) (define-public emacs-ruby-electric - (package - (name "emacs-ruby-electric") - (version "2.3.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ruby/elisp-ruby-electric") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1p0l0fsn0jcgb4raimyc4d1wpfksrfhn0rkwdazadvm6s8baydf7")))) - (build-system emacs-build-system) - (home-page "https://github.com/ruby/elisp-ruby-electric") - (synopsis "Minor mode for electrically editing Ruby code") - (description - "Ruby Electric mode accelerates code writing in Ruby by making some keys + (let ((revision "0") + (commit "c53376da891713e0c49f01aad2ff64d4fbb0b812")) + (package + (name "emacs-ruby-electric") + (version (git-version "2.3.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ruby/elisp-ruby-electric") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14grv2gwr6lyjlcp8h1frvipyisakkw2q0jpv4h5rd5bzky7m8w0")))) + (build-system emacs-build-system) + (home-page "https://github.com/ruby/elisp-ruby-electric") + (synopsis "Minor mode for electrically editing Ruby code") + (description + "Ruby Electric mode accelerates code writing in Ruby by making some keys electric and automatically supplying with closing parentheses and @code{end} as appropriate.") - (license license:ruby))) + (license license:ruby)))) (define-public emacs-rudel (package @@ -16114,7 +16138,7 @@ maximizes flexibility (at the expense of conciseness).") (define-public emacs-find-file-in-project (package (name "emacs-find-file-in-project") - (version "6.2.1") + (version "6.2.2") (source (origin (method git-fetch) @@ -16123,7 +16147,7 @@ maximizes flexibility (at the expense of conciseness).") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1vrr3fwifn3lpajh03rx5rzzgc5dks0p6154y1c7f49wqffds36p")))) + (base32 "1aqlzx1aibhkmvqasb7vbawj277rbyrk93v6svqs0m3v6n3g996i")))) (build-system emacs-build-system) (arguments `(#:tests? #t @@ -16472,6 +16496,30 @@ of its name.") names, e.g., @samp{#0000ff} is displayed in white with a blue background.") (license license:gpl3+))) +(define-public emacs-indent-bars + (package + (name "emacs-indent-bars") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/indent-bars-" + version ".tar")) + (sha256 + (base32 "1bhdrykkklsscgiz3p29x8kdkw0kbc4mlpnhxghvphx159clhgym")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-compat)) + (home-page "https://github.com/jdtsmith/indent-bars") + (synopsis "Highlight indentation with bars") + (description + "Indent Bars highlights indentation with configurable vertical graphical +bars, using stipples. The color and appearance (weight, pattern, position +within the character, zigzag, etc.) are all configurable. Indent Bars works +in any mode using fixed tab or space-based indentation. In the terminal (or +on request) it uses vertical bar characters instead of stipple patterns. +Optional Treesitter support is also available.") + (license license:gpl3+))) + (define-public emacs-ryo-modal ;; Package has no release. Version is extracted from "Version:" keyword in ;; main file. @@ -16549,7 +16597,7 @@ window edge.") (name "emacs-visual-replace") ;; XXX: when updating version, please ensure substitution in install-info ;; phase is still accurate. - (version "1.1") + (version "1.2") (source (origin (method git-fetch) @@ -16558,7 +16606,7 @@ window edge.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "05s21qhq23mmv8in88qxfbq79h26j14vcw5pc112sjr1a4fl5306")))) + (base32 "1bvaw44mkiz6yq1r5hvayfp0iaxqcwbzihdrbizyynm4qjzspca1")))) (build-system emacs-build-system) (arguments (list @@ -18340,7 +18388,7 @@ federated blogging platform WriteFreely.") (define-public emacs-org (package (name "emacs-org") - (version "9.7.19") + (version "9.7.20") (source (origin (method git-fetch) @@ -18349,7 +18397,7 @@ federated blogging platform WriteFreely.") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qzgxk6427mdsd1yw3z7r0x4wsgkzfq7b4jlsh369zdvn8w4377m")))) + (base32 "0sjyg3jj4s84mqkwa0fgfh5cppc080yw0ja9szzk7wcq7adj8czm")))) (build-system emacs-build-system) (arguments (list @@ -18898,14 +18946,14 @@ editing nginx config files.") (define-public emacs-stream (package (name "emacs-stream") - (version "2.3.0") + (version "2.4.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "stream-" version ".tar")) (sha256 - (base32 "1jvk5j0wn2f4dxnyqji85f8cgbpyrxk02mz5dzyw4xlqr0d9zc9n")))) + (base32 "16wl1q7wikk0wyzfwjz16azq025dx4wdh1j9q0nadi68ygxi172b")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/stream.html") (synopsis "Implementation of streams for Emacs") @@ -19074,6 +19122,36 @@ Denote files that goes beyond using the standard Dired Emacs command to view your Denote directory.") (license license:gpl3+))) +(define-public emacs-denote-explore + (package + (name "emacs-denote-explore") + (version "3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pprevos/denote-explore") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0773691jxyv039y407c8dppkky41b3icacavddcv9m8v481763b7")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-denote emacs-dash)) + (home-page "https://github.com/pprevos/denote-explore") + (synopsis "Analyse and visualise a collection of Denote notes") + (description + "The Denote Explore package provides auxiliary functions to +maintain and explore your collection of Denote files. Denote Explore provides +four groups of Emacs commands: +@enumerate +@item Summary statistics: Count and visualize notes, attachments and keywords. +@item Random walks: Generate new ideas using Serendipity. +@item Janitor: Manage your Denote collection. +@item Visualisations: Visualise your Denote network as a network +graph. (Optional dependencies GraphViz, D3js, to be acquired separately!) +@end enumerate") + (license license:gpl3+))) + (define-public emacs-logos (package (name "emacs-logos") @@ -19162,7 +19240,7 @@ using a convenient notation.") (let ((commit "c3f4583b0767e7f8c38c83ed29af40af8ba3bdfa")) ;version bump (package (name "emacs-beframe") - (version "1.2.1") + (version "1.3.0") (source (origin (method git-fetch) (uri (git-reference @@ -19171,7 +19249,7 @@ using a convenient notation.") (file-name (git-file-name name version)) (sha256 (base32 - "1j9v85wxahnm2h828c8dbjm0f81j9pxlf54dgcw443cl0kwcda9c")))) + "0vmmvy56ngaf5k6xfb1fglyqayc5zp823clsr8skgzy2xb72zs60")))) (build-system emacs-build-system) (arguments (list @@ -20892,7 +20970,7 @@ methods from a given list.") (define-public emacs-mini-echo (package (name "emacs-mini-echo") - (version "0.14.0") + (version "0.15.0") (source (origin (method git-fetch) @@ -20901,7 +20979,7 @@ methods from a given list.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1yvrwdni4dsqb19rqpb4sy1brx5jg13v2m4l9gqvb2v9mk9al681")))) + (base32 "1fgh93xzf4y3fhi7nby0h1vnay78sc2hv06ai5x3j972qz5b0v5v")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash emacs-hide-mode-line)) (home-page "https://github.com/liuyinz/mini-echo.el") @@ -21026,7 +21104,7 @@ and lambdas.") (define-public emacs-org2web (package (name "emacs-org2web") - (version "0.9.1") + (version "0.9.2") (source (origin (method git-fetch) @@ -21035,7 +21113,7 @@ and lambdas.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7")))) + (base32 "103fzmadgd93x1y0c6xsdjx70z0jkwpvj0xnkybdancxz4ba8p9l")))) (build-system emacs-build-system) (arguments (list @@ -21127,7 +21205,7 @@ It should enable you to implement low-level X11 applications.") (define-public emacs-exwm (package (name "emacs-exwm") - (version "0.32") + (version "0.33") (synopsis "Emacs X window manager") (source (origin @@ -21135,7 +21213,7 @@ It should enable you to implement low-level X11 applications.") (uri (string-append "https://elpa.gnu.org/packages/" "exwm-" version ".tar")) (sha256 - (base32 "0k3c7grgkkpgd0r8b9vsqa5ywhb4vwxr3wfjyfxw8xy0yq7y0jvn")))) + (base32 "13wywayvdxpr2z14lri3ggni1wj20r452a0gxnx0cpgif3c1l2sx")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xelb)) @@ -21517,7 +21595,7 @@ Emacs.") (define-public emacs-eglot (package (name "emacs-eglot") - (version "1.17") + (version "1.18") (source (origin (method url-fetch) @@ -21525,14 +21603,16 @@ Emacs.") ".tar")) (sha256 (base32 - "1can988d7qdn0dj4wg8adjz1s9j5yin8bcp7ylhq1pr327d5flky")))) + "1zqs498yn3i8wn045jgq9nw4pddiyrwwgyq39mndzvgvi1j6a431")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-eldoc + (list emacs-compat + emacs-eldoc emacs-external-completion emacs-jsonrpc emacs-project emacs-seq + emacs-track-changes emacs-xref)) (home-page "https://github.com/joaotavora/eglot") (synopsis "Client for Language Server Protocol (LSP) servers") @@ -21678,7 +21758,7 @@ variable instead, to remind you of that variable's meaning.") (define-public emacs-eldoc-box (package (name "emacs-eldoc-box") - (version "1.12.1") + (version "1.13.2") (source (origin (method git-fetch) (uri (git-reference @@ -21687,7 +21767,7 @@ variable instead, to remind you of that variable's meaning.") (file-name (git-file-name name version)) (sha256 (base32 - "1v163zk8qazz92q2iv9f0sgq2paryx80m94hbl588lhnyk227lsb")))) + "1136rgi7qy5kmciqrz88lxvk01fdcpry2srsvv3h2rfqwmiccpl0")))) (build-system emacs-build-system) (home-page "https://github.com/casouri/eldoc-box") (synopsis "Childframe doc for eglot and anything that uses eldoc") @@ -23400,40 +23480,35 @@ Slack client.") (license license:gpl3+)))) (define-public emacs-bash-completion - ;; This commit fixes an issue that would brake the shell process if trying - ;; to complete a command (see: - ;; https://github.com/szermatt/emacs-bash-completion/issues/63). - (let ((commit "b38f9bca0c194ee3a79c19a14db3b38d1262ca8c") - (revision "1")) - (package - (name "emacs-bash-completion") - (version (git-version "3.1.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/szermatt/emacs-bash-completion") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "09didsy8l6q083djlf9xqqx4fbsisaq5j7vj8fj4qlwh34pfl94c")))) - (build-system emacs-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-before 'install 'configure - (lambda* (#:key inputs #:allow-other-keys) - (emacs-substitute-variables "bash-completion.el" - ("bash-completion-prog" - (search-input-file inputs "/bin/bash")))))))) - (inputs (list bash)) - (home-page "https://github.com/szermatt/emacs-bash-completion") - (synopsis "Bash completion for the shell buffer") - (description - "Bash Completion defines dynamic completion hooks for Shell mode and + (package + (name "emacs-bash-completion") + (version "3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/szermatt/emacs-bash-completion") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0664dihdfvrbxqxy00fw0skdg454njm673ip54qrgkh38vyv5432")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'configure + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "bash-completion.el" + ("bash-completion-prog" + (search-input-file inputs "/bin/bash")))))))) + (inputs (list bash)) + (home-page "https://github.com/szermatt/emacs-bash-completion") + (synopsis "Bash completion for the shell buffer") + (description + "Bash Completion defines dynamic completion hooks for Shell mode and @code{shell-command} prompts that are based on Bash completion.") - (license license:gpl2+)))) + (license license:gpl2+))) (define-public emacs-easy-kill (package @@ -24612,7 +24687,7 @@ match and total match information in the mode-line in various search modes.") (define-public emacs-pg (package (name "emacs-pg") - (version "0.45") + (version "0.46") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/emarsden/pg-el") @@ -24620,7 +24695,7 @@ match and total match information in the mode-line in various search modes.") (file-name (git-file-name name version)) (sha256 (base32 - "10k166l3zh6wi59il147cal0p50md3dv618wnkg1clax51xk1h44")))) + "0i2ckljbfnc1sgjs14zpzppv1i1icidkrhzss3gkl7fj5wqgdqlh")))) (build-system emacs-build-system) (propagated-inputs (list emacs-peg)) (home-page "https://github.com/emarsden/pg-el") @@ -24768,7 +24843,7 @@ match your personal coding style.") (define-public emacs-epkg (package (name "emacs-epkg") - (version "4.0.2") + (version "4.0.3") (source (origin (method git-fetch) @@ -24777,7 +24852,7 @@ match your personal coding style.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1kg0jd8067brd4772sd6r0lj7vbf5pxhbj916nd6293a0hc10i58")))) + (base32 "0zdlymx44jgrzm68cnh636mpdazihqiakf5m3v1c2rhvh6cb6yg6")))) (build-system emacs-build-system) (arguments `(#:phases @@ -25506,7 +25581,7 @@ files to be expanded upon opening them.") (define-public emacs-parsebib (package (name "emacs-parsebib") - (version "6.3") + (version "6.4") (source (origin (method git-fetch) @@ -25515,7 +25590,7 @@ files to be expanded upon opening them.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1rgawqwa7dqfiz74fsj1z6nsmjp7dszrxm9jjc9kgnr8w4s3yb2a")))) + (base32 "1mx47gkn3l7hvknksfcl9r36hhm2hlskibvbkxd31sgzhzgjaxdr")))) (build-system emacs-build-system) (home-page "https://github.com/joostkremers/parsebib") (synopsis "Library for parsing @file{.bib} files") @@ -25526,7 +25601,7 @@ files to be expanded upon opening them.") (define-public emacs-ebib (package (name "emacs-ebib") - (version "2.48") + (version "2.49.1") (source (origin (method git-fetch) @@ -25535,7 +25610,7 @@ files to be expanded upon opening them.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "11rm51lx5nz2drhjb4nm5ls57gz9rqf9wm51qp9r03rlvrr6v85c")))) + (base32 "0b2ybyjnw8ig7vjw4x7c1dsvj7d56b7a8nmli7nbsp5ncz6w7jpp")))) (build-system emacs-build-system) (propagated-inputs (list emacs-biblio emacs-compat emacs-ivy emacs-parsebib)) @@ -27319,7 +27394,7 @@ and doesn't require memorisation of commands. (define-public emacs-logview (package (name "emacs-logview") - (version "0.19") + (version "0.19.1.1") (source (origin (method git-fetch) @@ -27328,7 +27403,7 @@ and doesn't require memorisation of commands. (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1z9w1rdr1d7j6fw9rb05wjrpdj9zka683xj35cxws7qplk3dlz29")))) + (base32 "0qgkmjw5prc5zrsccdmh9wfr1fyk9jfdfnqn6ldsbi7jhbr71366")))) (propagated-inputs (list emacs-datetime emacs-extmap)) (build-system emacs-build-system) @@ -27977,8 +28052,10 @@ keep Parens and Indentation inline with one another.") (add-after 'unpack 'configure (lambda* (#:key inputs #:allow-other-keys) (let ((parinfer-lib - (dirname - (search-input-file inputs "lib/libparinfer_rust.so")))) + (string-append + (dirname + (search-input-file inputs "lib/libparinfer_rust.so")) + "/"))) ;; Specify the absolute file names of the parinfer shared ;; library. ;; (make-file-writable "parinfer-rust-mode.el") @@ -29816,7 +29893,7 @@ text in neighboring sections.") (define-public emacs-pandoc-mode (package (name "emacs-pandoc-mode") - (version "2.33") + (version "2.34.1") (source (origin (method git-fetch) @@ -29826,7 +29903,7 @@ text in neighboring sections.") (file-name (git-file-name name version)) (sha256 (base32 - "13hg9qf64drpz7ak0sz13gj0dblgrfypjszx8iprf6z5kvh33zpk")))) + "1kraah7663cr9lsymqff25ad80nlih94y871byd925nhyl908kfl")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash emacs-hydra)) @@ -30725,10 +30802,10 @@ and comments.") (license license:gpl3+)))) (define-public emacs-yeetube - (let ((commit "5c0a3efd2fb5cc25a6a90741ad198e31fdb15640")) ;version bump + (let ((commit "b8877e61b58dfabcc30044680d0975b3c6b12052")) ;version bump (package (name "emacs-yeetube") - (version "2.1.7") + (version "2.1.8") (source (origin (method git-fetch) @@ -30737,7 +30814,7 @@ and comments.") (commit commit))) (sha256 (base32 - "0a3pm8cz6yl5s2xnbnjvdwm8mf5hyman419xl4fyyfgwy6vrxp70")) + "1gii2y4cvw795039kdky1mdmgpfrfm4s48ld7z4gv7bvb0fs9hpq")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (arguments @@ -30842,7 +30919,7 @@ execute its commands and resize images.") (define-public emacs-synosaurus (package (name "emacs-synosaurus") - (version "0.2.0") + (version "0.2.1") (source (origin (method git-fetch) @@ -30852,7 +30929,7 @@ execute its commands and resize images.") (file-name (git-file-name name version)) (sha256 (base32 - "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv")))) + "1bkd989712wj5mpk6i3pqp0j19ajnqpw2vcz2r1l0fb91n382d3y")))) (build-system emacs-build-system) (propagated-inputs (list wordnet)) @@ -32634,7 +32711,7 @@ constant expressions.") (define-public emacs-kubed (package (name "emacs-kubed") - (version "0.4.2") + (version "0.4.3") (source (origin (method git-fetch) (uri (git-reference @@ -32643,7 +32720,7 @@ constant expressions.") (file-name (git-file-name name version)) (sha256 (base32 - "16a6v9c2ks12shsi76x957cfsq4hpqvrn637g8svs7b0zv9qwzaw")))) + "1sff9frllfrzxs7ba5m6dvjvigdcid2ivrl3pqwycvaxnbzzg13s")))) (build-system emacs-build-system) (synopsis "Kubernetes control") (description "This package provides a Kubernetes control interface @@ -33406,7 +33483,7 @@ as Emacs Lisp.") (define-public emacs-transient (package (name "emacs-transient") - (version "0.8.1") + (version "0.8.2") (source (origin (method git-fetch) (uri (git-reference @@ -33415,7 +33492,7 @@ as Emacs Lisp.") (file-name (git-file-name name version)) (sha256 (base32 - "1r6rkgkly3s5rqarlhwqrqm37h139p9bdb9q7grp3zq1gnng7vlx")))) + "1jz65hgv4b6k4s3nfzr6js98ghl33f7vk1zyhvh7pxiznsi2s010")))) (build-system emacs-build-system) (arguments `(#:tests? #f ;no test suite @@ -33445,7 +33522,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (define-public emacs-forge (package (name "emacs-forge") - (version "0.4.5") + (version "0.4.6") (source (origin (method git-fetch) @@ -33454,7 +33531,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0jmq2mzbshz3dh39vwkqnb94li5bnq00rg3cn41wmqv3bvi0734y")))) + (base32 "0mh542c9hy401jcvammd89v9ja3zxc16k7zhfflq67x90987mwhp")))) (build-system emacs-build-system) (arguments `(#:tests? #f ;no tests @@ -33667,7 +33744,7 @@ JavaScript.") (let ((commit "10ccff7a5cec6fd2f4484c1d55347634e5b46432")) ;version bump (package (name "emacs-jsdoc") - (version "0.3") + (version "0.4.0") (source (origin (method git-fetch) @@ -33675,7 +33752,7 @@ JavaScript.") (url "https://github.com/isamert/jsdoc.el") (commit commit))) (sha256 - (base32 "0cbchri4117wjcnlk3npi4x1sfx248vck1q61cis8drrrz4c8jyp")) + (base32 "0j99rax3n905ya0ya42093pl8q7kcb8xx2qz6b918f7d8q0mr44n")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs @@ -34846,8 +34923,8 @@ to be examined using Ediff.") (license license:expat))) (define-public emacs-info-plus - (let ((commit "29811edf7a71764ac343631facc00268d9483146") - (revision "3")) + (let ((commit "34d54e58b6cbb4f135dc0583ebdce4437b052dce") + (revision "4")) (package (name "emacs-info-plus") (version (git-version "0" revision commit)) @@ -34860,7 +34937,7 @@ to be examined using Ediff.") (file-name (git-file-name name version)) (sha256 (base32 - "0ayq7z6dbf43vczbkjm1l976hxcfrmw45nfywbf1kjpzl3viy4gy")))) + "0xkn26a2h47v5y4fgznbflsbh7vz61nz4j9kkshg3lv8wnkbipmv")))) (build-system emacs-build-system) (home-page "https://github.com/emacsmirror/info-plus") (synopsis "Extensions to @file{info.el}") @@ -35079,14 +35156,14 @@ well as an option for visually flashing evaluated s-expressions.") (define-public emacs-tramp (package (name "emacs-tramp") - (version "2.7.1.5") + (version "2.7.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "tramp-" version ".tar")) (sha256 - (base32 "11a2zyk0d1y9bxhdqfzcx4ynazfs6hb3mdgpz5kp9p3lk8l6bz5g")))) + (base32 "1m1ar9k5f4yx98m8v0y8rm7hq5dwjafb096gmdg6mz57k1k3y6vl")))) (build-system emacs-build-system) (arguments (list @@ -36150,25 +36227,27 @@ federated microblogging social network.") (license license:gpl3+))) (define-public emacs-fedi - (package - (name "emacs-fedi") - (version "0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://codeberg.org/martianh/fedi.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0a5zq7axxh3khx6465s7ym9s7v2iw7ky9z486d0zg41k7926bm9d")))) - (build-system emacs-build-system) - (propagated-inputs (list emacs-markdown-mode)) - (home-page "https://codeberg.org/martianh/fedi.el") - (synopsis "Library to make writing clients for APIs easier") - (description "@code{fedi.el} is an Emacs library used by several fediverse -frontend packages.") - (license license:gpl3+))) + (let ((commit "8f0afbb5cd264033f10ba58158a5e1f3737b16d4") + (revision "0")) + (package + (name "emacs-fedi") + (version (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/martianh/fedi.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0lmjqwq0nrimcqs3j9cadl2yz0nvg250vy2l6czg2648x6fdvcc6")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-markdown-mode)) + (home-page "https://codeberg.org/martianh/fedi.el") + (synopsis "Library to make writing clients for APIs easier") + (description "@code{fedi.el} is an Emacs library used by several + fediverse frontend packages.") + (license license:gpl3+)))) (define-public emacs-ebdb (package @@ -36191,6 +36270,29 @@ a re-write of the Insidious Big Brother Database (BBDB) using Emacs Lisp's (relatively new) EIEIO object oriented libraries.") (license license:gpl3+))) +(define-public emacs-fj + (let ((commit "c2684eab1cdd745dbc5af6cd5abacd9822099662") + (revision "0")) + (package + (name "emacs-fj") + (version (git-version "0.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/martianh/fj.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05kx1h7r4g7x58k849m4h57a7lmcbhhm40qivn39mxfjx4ckn6n9")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-fedi emacs-magit emacs-tp)) + (home-page "https://codeberg.org/martianh/fj.el") + (synopsis "Client for Forgejo instances") + (description + "Fj contains basic functions for interacting with a Forgejo instance.") + (license license:gpl3+)))) + (define-public emacs-ebdb-i18n-chn (package (name "emacs-ebdb-i18n-chn") @@ -36425,8 +36527,8 @@ Emacs.") (license license:gpl3+))) (define-public emacs-ssh-config-mode - (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56") - (revision "1")) + (let ((commit "d0596f5fbeab3d2c3c30eb83527316403bc5b2f7") + (revision "2")) (package (name "emacs-ssh-config-mode") (version (git-version "8.0" revision commit)) @@ -36440,7 +36542,7 @@ Emacs.") (file-name (git-file-name name commit)) (sha256 (base32 - "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd")))) + "1xs9ixp2bgbn2whjpj7l1n15fklivfh7544sgai61225jprckyak")))) (build-system emacs-build-system) (arguments '(#:include '("\\.el$" "\\.txt$"))) (home-page @@ -38481,7 +38583,7 @@ launching other commands/applications from within Emacs, similar to the (define-public emacs-no-littering (package (name "emacs-no-littering") - (version "1.7.4") + (version "1.7.5") (source (origin (method git-fetch) @@ -38490,7 +38592,7 @@ launching other commands/applications from within Emacs, similar to the (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0l88l1np4s5925d6i33l1cas8mk0nwbgbyw7fa1akzj8qv6782sm")))) + (base32 "1qr0spndzv03h0lcs2bjajadp9rg7clm506bnwbcqwfqxz9cxnvx")))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat)) @@ -39176,7 +39278,7 @@ personal wiki.") (define-public emacs-org-node (package (name "emacs-org-node") - (version "1.9.15") + (version "1.9.28") (source (origin (method git-fetch) (uri (git-reference @@ -39185,7 +39287,7 @@ personal wiki.") (file-name (git-file-name name version)) (sha256 (base32 - "0a064b3d6mmzyyss9w79mx5z6xpniy53272hfz7691sl1k3cb6fn")))) + "0zjwmcxgnhrs4a0kj39fphwah0jqyjpprzmpn2pclcc4gbbl9qp9")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash @@ -39991,7 +40093,7 @@ web development.") (define-public emacs-iter2 (package (name "emacs-iter2") - (version "1.4") + (version "2.0") (source (origin (method git-fetch) @@ -40000,7 +40102,7 @@ web development.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1k0n35vxcvvy8c2yih24c8gjc4bqd5lawda0zz62c5kgksgn87ri")))) + (base32 "17rraqidypxypmvqrh8k0ja57is178q72p6fxj3wlp7mbld1hcp3")))) (build-system emacs-build-system) (home-page "https://github.com/doublep/iter2") (synopsis "Reimplementation of Elisp generators") @@ -40093,14 +40195,14 @@ provides an easy way to bind keys under a configurable prefix key.") (define-public emacs-spacious-padding (package (name "emacs-spacious-padding") - (version "0.5.0") + (version "0.6.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/spacious-padding-" version ".tar")) (sha256 - (base32 "0x5bsyd6b1d3bzrsrpf9nvw7xj5ch114m2dilq64bg8y2db3452z")))) + (base32 "0czx4w6vm56blvc26gymmijvcqhvmrlakqwlks1prckgnkgsvcpx")))) (build-system emacs-build-system) (home-page "https://github.com/protesilaos/spacious-padding") (synopsis "Increase the padding or spacing of frames and windows") @@ -41307,13 +41409,13 @@ with the ed editor.") (method git-fetch) (uri (git-reference - (url "https://github.com/remvee/alsamixer-el") + (url "https://codeberg.org/rwv/alsamixer-el.git") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0c40vycphv5nf374rp8pnzvi50vlmgab3wrdq92hyprjw76gwxhk")))) (build-system emacs-build-system) - (home-page "https://github.com/remvee/alsamixer-el") + (home-page "https://codeberg.org/rwv/alsamixer-el") (synopsis "Emacs interface to amixer") (description "@code{emacs-alsamixer-el} provides basic commands to control audio volume via amixer.") @@ -41611,7 +41713,7 @@ can bind a popon to a specific buffer to only show on that buffer.") (define-public emacs-consult-lsp (package (name "emacs-consult-lsp") - (version "1.1") + (version "2.1") (source (origin (method git-fetch) @@ -41620,7 +41722,7 @@ can bind a popon to a specific buffer to only show on that buffer.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0bnq8jahcyjsai1y4ngdq08y77m1hn78h3p48czr7sg907nr42yh")))) + (base32 "1y0dgpgvw90phqi44dyijnnz3z0rys4bkmbnrkkx2fbd3pyvqs1i")))) (build-system emacs-build-system) (propagated-inputs (list emacs-consult emacs-lsp-mode emacs-f)) (home-page "https://github.com/gagbo/consult-lsp/") @@ -42205,7 +42307,7 @@ in Emacs.") (define-public emacs-vertico-posframe (package (name "emacs-vertico-posframe") - (version "0.7.8") + (version "0.8.0") (source (origin (method url-fetch) (uri (string-append @@ -42213,7 +42315,7 @@ in Emacs.") ".tar")) (sha256 (base32 - "08f1fmr0s9kx3f7ivh1isdik04cq87j69wgl5ir0gppa39ip0dqw")))) + "0iqy8m1cf819x7ln5sp8b3sh4dk291k9sril35hxsxkiyjal1rqk")))) (build-system emacs-build-system) (propagated-inputs (list emacs-posframe emacs-vertico)) (home-page "https://github.com/tumashu/vertico-posframe") diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 1331fa1716..f20b6da79b 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com> ;;; Copyright © 2021 Felipe Balbi <balbi@kernel.org> ;;; Copyright © 2021, 2024 Felix Gruber <felgru@posteo.net> -;;; Copyright © 2021, 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021, 2024, 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2023 c4droid <c4droid@foxmail.com> ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> @@ -95,9 +95,11 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-build) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages sdl) #:use-module (gnu packages sphinx) @@ -289,64 +291,158 @@ console.") (file-name (git-file-name name version)) (sha256 (base32 "1p8qsxlabgmz3nic0a9ghh9d3lzl5f8i3kmdrrvx6w8kdlp33018")) - (modules '((guix build utils))) + (modules '((guix build utils) + (ice-9 regex))) (snippet '(begin ;; Remove external stuff we don't need. (for-each (lambda (dir) (delete-file-recursively - (string-append "Externals/" dir))) - '("LZO" "OpenAL" "Qt" "SFML" "curl" "ffmpeg" - "gettext" "hidapi" "libpng" "libusb" "mbedtls" - "miniupnpc" "MoltenVK" "zlib")) - ;; Clean up source. + (string-append "Externals/" dir))) + '("LZO" "OpenAL" "Qt" "SFML" "bzip2" + ;; XXX: Attempting to use the vulkan-headers package + ;; results in "error: + ;; ‘VK_PRESENT_MODE_RANGE_SIZE_KHR’ was not declared + ;; in this scope". + ;;"Vulkan" + "cubeb" "curl" "enet" + "ffmpeg" "fmt" "gettext" + ;; XXX: Attempting to use an unbundled glslang at the + ;; exact commit used by Dolphin still results in + ;; "error: ‘DefaultTBuiltInResource’ is not a member + ;; of ‘glslang’". + ;;"glslang" + ;; XXX: Googletest cannot currently easily be + ;; unbundled, as there are missing linking + ;; directives. + ;;"gtest" + "hidapi" "libpng" "libusb" "mbedtls" + "miniupnpc" "minizip" "MoltenVK" "pugixml" + "soundtouch" + "xxhash" "zlib" "zstd")) + ;; Clean up the source. (for-each delete-file - (find-files "." ".*\\.(bin|dsy|exe|jar|rar)$")))))) + (find-files + "." + (lambda (file _) + (and (string-match "\\.(bin|dsy|exe|jar|rar)$" file) + ;; Preserve the important wc24 .bin + ;; configuration *data* files. + (not (member (basename file) + '("misc.bin" + "nwc24dl.bin" + "nwc24fl.bin" + "nwc24fls.bin"))))))) + ;; Do not attempt to include now-missing directories. + (substitute* "CMakeLists.txt" + ((".*add_subdirectory.*Externals/enet.*") "") + ((".*add_subdirectory.*Externals/soundtouch.*") "") + ((".*add_subdirectory.*Externals/xxhash.*") "")))) + (patches (search-patches "dolphin-emu-data.patch")))) (build-system cmake-build-system) (arguments - '(#:tests? #f - #:phases - (modify-phases %standard-phases - (add-before 'configure 'generate-fonts&hardcore-libvulkan-path - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((fontfile - (search-input-file inputs - "/share/fonts/truetype/wqy-microhei.ttc")) - (libvulkan - (search-input-file inputs "/lib/libvulkan.so"))) - (chdir "docs") - (invoke "bash" "-c" "g++ -O2 $(freetype-config \ + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'remove-unittests-target-post-build-command + (lambda _ + ;; To skip a few problematic tests, CTest will be manually + ;; invoked in the post-check phase. + (with-directory-excursion "Source/UnitTests" + (substitute* "CMakeLists.txt" + (("add_custom_command\\(TARGET unittests POST_BUILD.*") + ""))))) + (add-before 'configure 'generate-fonts&hardcore-libvulkan-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((fontfile + (search-input-file inputs + "/share/fonts/truetype/wqy-microhei.ttc")) + (libvulkan + (search-input-file inputs "/lib/libvulkan.so"))) + (chdir "docs") + (invoke "bash" "-c" "g++ -O2 $(freetype-config \ --cflags --libs) gc-font-tool.cpp -o gc-font-tool") - (invoke "./gc-font-tool" "a" fontfile "font_western.bin") - (invoke "./gc-font-tool" "s" fontfile "font_japanese.bin") - (copy-file "font_japanese.bin" "../Data/Sys/GC/font_japanese.bin") - (copy-file "font_western.bin" "../Data/Sys/GC/font_western.bin") - (chdir "..") - (substitute* "Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp" - (("\"vulkan\", 1") (string-append "\"vulkan\"")) - (("\"vulkan\"") (string-append "\"" libvulkan "\"")) - (("Common::DynamicLibrary::GetVersionedFilename") "")))))) - - ;; The FindGTK2 cmake script only checks hardcoded directories for - ;; glib/gtk headers. - - #:configure-flags - (list (string-append "-DX11_INCLUDE_DIR=" - (assoc-ref %build-inputs "libx11") - "/include") - (string-append "-DX11_LIBRARIES=" - (assoc-ref %build-inputs "libx11") - "/lib/libX11.so") - "-DX11_FOUND=1"))) + (invoke "./gc-font-tool" "a" fontfile "font_western.bin") + (invoke "./gc-font-tool" "s" fontfile "font_japanese.bin") + (copy-file "font_japanese.bin" "../Data/Sys/GC/font_japanese.bin") + (copy-file "font_western.bin" "../Data/Sys/GC/font_western.bin") + (chdir "..") + (substitute* "Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp" + (("\"vulkan\", 1") (string-append "\"vulkan\"")) + (("\"vulkan\"") (string-append "\"" libvulkan "\"")) + (("Common::DynamicLibrary::GetVersionedFilename") ""))))) + (add-after 'check 'post-check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "Source/UnitTests" + (invoke "ctest" "-V" "--output-on-failure" + ;; These tests fail due to libusb failing to + ;; init inside the build container. + "-E" (string-join + '("MMIOTest" + "PageFaultTest" + "CoreTimingTest" + "FileSystemTest" + "PowerPCTest" + "VertexLoaderTest") + "|")))))) + (add-before 'install 'build-codeloader.bin + (lambda _ + (with-directory-excursion "../source/docs" + ;; The following command-line is adapted from the example in + ;; codehandler.s. + (invoke "powerpc-linux-gnu-gcc" "-mpowerpc" "-mbig" + "codehandler.s" "-nostartfiles" "-nodefaultlibs" + "-nostdlib" "-T" "codehandler.ld" + "-o" "codehandler.bin") + (copy-file "codehandler.bin" "../Data/Sys/codehandler.bin")))) + (add-before 'install 'build-dsp_rom.bin + (lambda _ + ;; Ensure dsptool is on PATH. + (setenv "PATH" (string-append (getenv "PATH") ":" + (getcwd) "/Binaries")) + (with-directory-excursion "../source" + (invoke "dsptool" "-o" "Data/Sys/GC/dsp_rom.bin" + "docs/DSP/free_dsp_rom/dsp_rom.ds")))) + (add-before 'install 'build-dsp_coefs.bin + (lambda _ + (with-directory-excursion "../source" + (invoke "python3" "docs/DSP/free_dsp_rom/generate_coefs.py") + (rename-file "dsp_coef.bin" "Data/Sys/GC/dsp_coef.bin"))))) + ;; The FindGTK2 cmake script only checks hardcoded directories for + ;; glib/gtk headers. Also add some include directories via the CXX + ;; flags to let GCC find some headers not actively searched by the + ;; build system. + #:configure-flags + #~(list (string-append "-DCMAKE_CXX_FLAGS=" + "-I" (search-input-directory + %build-inputs "include/soundtouch")) + "-DDSPTOOL=ON" + (string-append "-DX11_INCLUDE_DIR=" + #$(this-package-input "libx11") + "/include") + (string-append "-DX11_LIBRARIES=" + (search-input-file %build-inputs + "lib/libX11.so")) + "-DX11_FOUND=1") + #:test-target "unittests")) (native-inputs - (list gettext-minimal pkg-config)) + (list (cross-gcc "powerpc-linux-gnu") + gettext-minimal + pkg-config + python-minimal + python-numpy)) (inputs (list alsa-lib ao bluez + bzip2 + cubeb curl + enet eudev ffmpeg-4 + fmt-7 font-wqy-microhei freetype glew @@ -364,6 +460,7 @@ console.") mbedtls-lts mesa miniupnpc + minizip-ng openal pugixml pulseaudio @@ -371,9 +468,11 @@ console.") sdl2 sfml soil - soundtouch + soundtouch-1/integer-samples vulkan-loader - zlib)) + xxhash + zlib + `(,zstd "lib"))) (home-page "https://dolphin-emu.org/") (synopsis "Nintendo Wii and GameCube emulator") (description @@ -381,9 +480,61 @@ console.") GameCube and the Wii. It provides compatibility with all PC controllers, turbo speed, networked multiplayer, and graphical enhancements.") (supported-systems '("x86_64-linux" "aarch64-linux")) - ; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0. + ;; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0. (license (list license:gpl2+ license:asl2.0 license:fdl1.2+))))) +(define-public libretro-dolphin-emu + ;; There are no tag or release; use the latest commit. + (let ((commit "89a4df725d4eb24537728f7d655cddb1add25c18") + (revision "0")) + (package + (inherit dolphin-emu) + (name "libretro-dolphin-emu") + (version (git-version "5.0" revision commit)) + (source (origin + (inherit (package-source dolphin-emu)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/libretro/dolphin") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fvm6hy0ihc0j3sgv88a7ak08c0kyikmmiif827j981fy7zvglvz")) + (patches (search-patches "libretro-dolphin-emu-data.patch")))) + (arguments + (substitute-keyword-arguments (package-arguments dolphin-emu) + ((#:configure-flags flags ''()) + #~(cons "-DLIBRETRO=ON" #$flags)) + ((#:phases phases '%standard-phases) + #~(modify-phases #$phases + (add-after 'unpack 'deregister-bundled-sources + (lambda _ + (substitute* "CMakeLists.txt" + ((".*add_subdirectory.*Externals/curl.*") "") + ((".*add_subdirectory.*Externals/libpng.*") "")))) + (replace 'install + (lambda _ + (install-file "dolphin_libretro.so" + (string-append #$output "/lib/libretro")) + ;; The system data files are also required for the proper + ;; functioning of dolphin; without them, it crashes with + ;; segmentation faults and cannot save files to the memory + ;; card. + (let ((sysdir (string-append + #$output + "/share/libretro/system/dolphin-emu"))) + (mkdir-p sysdir) + (copy-recursively "../source/Data/Sys" + (string-append sysdir "/Sys"))))))))) + (inputs + ;; Delete large and extraneous inputs. + (modify-inputs (package-inputs dolphin-emu) + (delete "ffmpeg" + "gtk+" + "qtbase"))) + (synopsis "Libretro port of Dolphin, the Nintendo Wii/GameCube emulator")))) + (define-public dosbox (package (name "dosbox") @@ -1630,32 +1781,70 @@ libretro API, based on Mupen64Plus. It incorporates the following projects: generate the various User Experience (UX) environments.") (license license:cc-by4.0))) -(define-public retroarch-core-info - ;; Use the latest commit, to get recent additions such as bsnes-jg. - (let ((commit "c0e7b76d02504754de67a1318f93089f1e29f15f") - (revision "0")) - (package - (name "retroarch-core-info") - (version (git-version "1.19.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/libretro/libretro-core-info") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "11xpy3zhy2smp4a70fc0r1b76mvmjyabkaaipifsxm3j25drki5z")))) - (build-system copy-build-system) - (arguments - (list #:install-plan #~'(("." "lib/libretro/" - #:include-regexp ("\\.info$"))))) - (home-page "https://github.com/libretro/libretro-core-info") - (synopsis "Libretro core info files") - (description "This is a versioned snapshot of the files containing +(define-public libretro-core-info + (package + (name "libretro-core-info") + (version "1.20.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libretro/libretro-core-info") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1rfvp0lkv99jgpfyb9pp6vrh1i1974p3lckh93y1bibdizyxmwjg")))) + (build-system copy-build-system) + (arguments + (list #:install-plan #~'(("." "lib/libretro/" + #:include-regexp ("\\.info$"))))) + (home-page "https://github.com/libretro/libretro-core-info") + (synopsis "Libretro core info files") + (description "This is a versioned snapshot of the files containing metadata about each known libretro core. The snapshot is taken from the @url{https://github.com/libretro/libretro-super, libretro-super} repository.") - (license license:expat)))) + (license license:expat))) + +(define-public retroarch-core-info + (deprecated-package "retroarch-core-info" libretro-core-info)) + +(define-public libretro-database + (package + (name "libretro-database") + (version "1.20.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libretro/libretro-database") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "086a9grpd1irsdns2zx3hlna72bbrmsfra4r498wi4ia9zf8nb0p")))) + (build-system gnu-build-system) + (arguments (list #:tests? #f + #:make-flags #~(list (string-append "PREFIX=" #$output)))) + (home-page "https://github.com/libretro/libretro-database/") + (synopsis "Cheat codes and content data files for RetroArch") + (description "RetroArch incorporates a ROM scanning system to +automatically produce playlists. Each ROM that is scanned by the playlist +generator is checked against a database of ROMs that are known to be good +copies. The various directories contain: +@table @code +@item cht +Cheat codes for various games +@item cursors +Methods for querying the playlists +@item dat +Customized DAT files, maintained by the libretro team +@item metadat +Different metadata and third-party DATs available to the system +@item rdb +The compiled RetroArch database files +@item scripts +Various scripts that are used to maintain the database files. +@end table") + (license license:cc-by-sa4.0))) (define-public retroarch-joypad-autoconfig (package @@ -2388,173 +2577,183 @@ GLSL (@file{.slang}) shaders for use with RetroArch.") license:unlicense))))) (define-public retroarch-minimal - (let ((commit "48b71d5cf8a070e785e2302d8fe241a7c2180fdd") - (revision "1")) - (package - (name "retroarch-minimal") - (version "1.19.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/libretro/RetroArch") - (commit commit))) - (snippet - #~(begin - (use-modules (guix build utils) - (ice-9 ftw) - (srfi srfi-26)) - ;; XXX: 'delete-all-but' is copied from the turbovnc package. - (define (delete-all-but directory . preserve) - (define (directory? x) - (and=> (stat x #f) - (compose (cut eq? 'directory <>) stat:type))) - (with-directory-excursion directory - (let* ((pred - (negate (cut member <> (append '("." "..") preserve)))) - (items (scandir "." pred))) - (for-each (lambda (item) - (if (directory? item) - (delete-file-recursively item) - (delete-file item))) - items)))) - ;; Remove as much bundled sources as possible, shaving off about - ;; 65 MiB. - (delete-all-but "deps" - "feralgamemode" ;used in platform_unix.c - "mbedtls" ;further refined below - "yxml") ;used in rxml.c - ;; This is an old root certificate used in net_socket_ssl_mbed.c, - ;; not actually from mbedtls. - (delete-all-but "deps/mbedtls" "cacert.h"))) - (patches (search-patches "retroarch-improved-search-paths.patch" - "retroarch-unbundle-spirv-cross.patch")) - (file-name (git-file-name name version)) - (sha256 - (base32 "13hgg4pxkpwlcmmyp9npr9k9cb94waqiyjpy2jzs8m9rc7xl2ap9")))) - (build-system gnu-build-system) - (arguments - (list - #:tests? #f ; no tests - #:phases - #~(modify-phases %standard-phases - (replace 'configure - (lambda* (#:key inputs #:allow-other-keys) - ;; Hard-code some store file names. - (substitute* "gfx/common/vulkan_common.c" - (("libvulkan.so") - (search-input-file inputs "lib/libvulkan.so"))) - (substitute* "gfx/common/wayland/generate_wayland_protos.sh" - (("/usr/local/share/wayland-protocols") - (search-input-directory inputs "share/wayland-protocols"))) + (package + (name "retroarch-minimal") + (version "1.20.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libretro/RetroArch") + (commit (string-append "v" version)))) + (snippet + #~(begin + (use-modules (guix build utils) + (ice-9 ftw) + (srfi srfi-26)) + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + (define (delete-all-but directory . preserve) + (define (directory? x) + (and=> (stat x #f) + (compose (cut eq? 'directory <>) stat:type))) + (with-directory-excursion directory + (let* ((pred + (negate (cut member <> (append '("." "..") preserve)))) + (items (scandir "." pred))) + (for-each (lambda (item) + (if (directory? item) + (delete-file-recursively item) + (delete-file item))) + items)))) + ;; Remove as much bundled sources as possible, shaving off about + ;; 65 MiB. + (delete-all-but "deps" + "feralgamemode" ;used in platform_unix.c + "mbedtls" ;further refined below + "yxml") ;used in rxml.c + ;; This is an old root certificate used in net_socket_ssl_mbed.c, + ;; not actually from mbedtls. + (delete-all-but "deps/mbedtls" "cacert.h"))) + (patches (search-patches "retroarch-improved-search-paths.patch" + "retroarch-unbundle-spirv-cross.patch")) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yc16j3g2g0if64xqd7qr4dza8rw10x0zypwbl92y735825p87qi")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; no tests + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Hard-code some store file names. + (substitute* "gfx/common/vulkan_common.c" + (("libvulkan.so") + (search-input-file inputs "lib/libvulkan.so"))) + (substitute* "gfx/common/wayland/generate_wayland_protos.sh" + (("/usr/local/share/wayland-protocols") + (search-input-directory inputs "share/wayland-protocols"))) - ;; Without HLSL, we can still enable GLSLANG and Vulkan support. - (substitute* "qb/config.libs.sh" - (("[$]HAVE_GLSLANG_HLSL") "notcare")) + ;; Without HLSL, we can still enable GLSLANG and Vulkan support. + (substitute* "qb/config.libs.sh" + (("[$]HAVE_GLSLANG_HLSL") "notcare")) - ;; The configure script does not yet accept the extra arguments - ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase. - (invoke - "./configure" - #$@(if (string-prefix? "armhf" (or (%current-target-system) - (%current-system))) - '("--enable-neon" "--enable-floathard") - '()) - (string-append "--prefix=" #$output) - ;; D-Bus support is required for 'suspend screensaver' option - ;; to work. - "--enable-dbus" - ;; Non-free software are available through the core updater, - ;; disable it. See <https://issues.guix.gnu.org/38360>. - "--disable-update_cores" - "--disable-update_core_info" - "--disable-online_updater" - ;; The assets are provided via the `retroarch-assets' package. - "--disable-update_assets" - "--disable-builtinmbedtls" - "--disable-builtinbearssl" - "--disable-builtinzlib" - "--disable-builtinflac" - "--disable-builtinglslang" - "--disable-builtinspirv_cross" - ;; These are disabled to avoid requiring the bundled - ;; dependencies. - "--disable-7zip" - "--disable-cheevos" - "--disable-crtswitchres" - "--disable-discord" - "--disable-dr_mp3" - "--disable-ibxm" - "--disable-stb_font" - "--disable-stb_image" - "--disable-stb_vorbis" - "--disable-xdelta")))))) - (native-inputs - (list pkg-config - wayland-protocols - which)) - (inputs - (list alsa-lib - dbus - eudev - ffmpeg - flac - fontconfig - freetype - glslang - libxinerama - libxkbcommon - libxml2 - libxrandr - libxv - mbedtls-lts - mesa - openal - openssl - pulseaudio - python - qtbase-5 - sdl2 - spirv-cross - spirv-headers - spirv-tools - v4l-utils - vulkan-loader - wayland - zlib)) - (native-search-paths - (list (search-path-specification - (variable "LIBRETRO_DIRECTORY") - (separator #f) ;single entry - (files '("lib/libretro"))) - (search-path-specification - (variable "LIBRETRO_ASSETS_DIRECTORY") - (separator #f) ;single entry - (files '("share/libretro/assets"))) - (search-path-specification - (variable "LIBRETRO_AUTOCONFIG_DIRECTORY") - (separator #f) ;single entry - (files '("share/libretro/autoconfig"))) - (search-path-specification - (variable "LIBRETRO_VIDEO_FILTER_DIRECTORY") - (separator #f) ;single entry - (files '("share/libretro/filters/video"))) - (search-path-specification - (variable "LIBRETRO_VIDEO_SHADER_DIRECTORY") - (separator #f) ;single entry - (files '("share/libretro/shaders"))))) - (home-page "https://www.libretro.com/") - (synopsis "Reference frontend for the libretro API") - (description - "Libretro is a simple but powerful development interface that allows for + ;; The configure script does not yet accept the extra arguments + ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase. + (invoke + "./configure" + #$@(if (string-prefix? "armhf" (or (%current-target-system) + (%current-system))) + '("--enable-neon" "--enable-floathard") + '()) + (string-append "--prefix=" #$output) + ;; D-Bus support is required for 'suspend screensaver' option + ;; to work. + "--enable-dbus" + ;; Non-free software are available through the core updater, + ;; disable it. See <https://issues.guix.gnu.org/38360>. + "--disable-update_cores" + "--disable-update_core_info" + "--disable-online_updater" + ;; The assets are provided via the `retroarch-assets' package. + "--disable-update_assets" + "--disable-builtinmbedtls" + "--disable-builtinbearssl" + "--disable-builtinzlib" + "--disable-builtinflac" + "--disable-builtinglslang" + "--disable-builtinspirv_cross" + ;; These are disabled to avoid requiring the bundled + ;; dependencies. + "--disable-7zip" + "--disable-cheevos" + "--disable-crtswitchres" + "--disable-discord" + "--disable-dr_mp3" + "--disable-ibxm" + "--disable-stb_font" + "--disable-stb_image" + "--disable-stb_vorbis" + "--disable-xdelta")))))) + (native-inputs + (list pkg-config + wayland-protocols + which)) + (inputs + (list alsa-lib + dbus + eudev + ffmpeg + flac + fontconfig + freetype + glslang + libxinerama + libxkbcommon + libxml2 + libxrandr + libxv + mbedtls-lts + mesa + openal + openssl + pulseaudio + python + qtbase-5 + sdl2 + spirv-cross + spirv-headers + spirv-tools + v4l-utils + vulkan-loader + wayland + zlib)) + (native-search-paths + (list (search-path-specification + (variable "LIBRETRO_DIRECTORY") + (separator #f) ;single entry + (files '("lib/libretro"))) + (search-path-specification + (variable "LIBRETRO_ASSETS_DIRECTORY") + (separator #f) ;single entry + (files '("share/libretro/assets"))) + (search-path-specification + (variable "LIBRETRO_AUTOCONFIG_DIRECTORY") + (separator #f) ;single entry + (files '("share/libretro/autoconfig"))) + (search-path-specification + (variable "LIBRETRO_CHEATS_DIRECTORY") + (separator #f) ;single entry + (files '("share/libretro/database/cht"))) + (search-path-specification + (variable "LIBRETRO_DATABASE_DIRECTORY") + (separator #f) ;single entry + (files '("share/libretro/database/rdb"))) + (search-path-specification + (variable "LIBRETRO_SYSTEM_DIRECTORY") + (separator #f) ;single entry + (files '("share/libretro/system"))) + (search-path-specification + (variable "LIBRETRO_VIDEO_FILTER_DIRECTORY") + (separator #f) ;single entry + (files '("share/libretro/filters/video"))) + (search-path-specification + (variable "LIBRETRO_VIDEO_SHADER_DIRECTORY") + (separator #f) ;single entry + (files '("share/libretro/shaders"))))) + (home-page "https://www.libretro.com/") + (synopsis "Reference frontend for the libretro API") + (description + "Libretro is a simple but powerful development interface that allows for the easy creation of emulators, games and multimedia applications that can plug straight into any libretro-compatible frontend. RetroArch is the official reference frontend for the libretro API, currently used by most as a modular multi-system game/emulator system.") - (license (list license:gpl3+ ;for RetroArch itself - license:asl2.0 ;SPIRV-Cross - license:expat ;yxml - license:bsd-3))))) ;feragamemode + (license (list license:gpl3+ ;for RetroArch itself + license:asl2.0 ;SPIRV-Cross + license:expat ;yxml + license:bsd-3)))) ;feragamemode (define-public retroarch (package @@ -2570,7 +2769,8 @@ multi-system game/emulator system.") ;; which is problematic. The environment variables overrides the ;; configuration file values. retroarch-assets - retroarch-core-info + libretro-core-info + libretro-database retroarch-joypad-autoconfig)))) (define-public wasm4 diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index b0c3b5787a..47ba393c47 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -35,7 +35,7 @@ ;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2022, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> -;;; Copyright © 2022, 2023 Felix Gruber <felgru@posteo.net> +;;; Copyright © 2022, 2023, 2025 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2023 Theofilos Pechlivanis <theofilos.pechlivanis@gmail.com> ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> @@ -1744,6 +1744,14 @@ developed at MIT to model electromagnetic systems.") (base32 "0i37c9k6q1iglmzp9736rrgsnx7sw8xn3djqbbjw29zsyl3pf62c")))) (build-system gnu-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-shebang + (lambda _ + (substitute* "bootstrap.sh" + (("# !/bin/sh") + (string-append "#!" (which "sh"))))))))) (native-inputs (list autoconf automake @@ -2709,7 +2717,11 @@ measurement devices and test equipment via GPIB, RS232, Ethernet or USB.") (sha256 (base32 "139ahp08kci8asmv35bcibbnkfr5s1ff5j84n490s47ibsglk4yi")))) (build-system pyproject-build-system) - (native-inputs (list python-pyproj python-pytest unzip)) + (native-inputs (list python-pyproj + python-pytest + python-setuptools + python-wheel + unzip)) (propagated-inputs (list python-deepdiff python-geojson python-networkx @@ -2746,6 +2758,8 @@ Newton-Raphson power flow solvers in the C++ library lightsim2grid, and the (native-inputs (list python-nbmake python-pytest python-pytest-xdist + python-setuptools + python-wheel unzip)) (propagated-inputs (list python-matplotlib python-pandapower diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 6f1c033aec..624aa289ce 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org> +;;; Copyright © 2024, 2025 Igor Goryachev <igor@goryachev.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,13 +35,13 @@ (define-public erlang-luerl (package (name "erlang-luerl") - (version "1.2.0") + (version "1.2.3") (source (origin (method url-fetch) (uri (hexpm-uri "luerl" version)) (sha256 - (base32 "0paj3gr0kn8v9g6wmdnz1f16q0iy1pb83zbqsalzbw2g17vd9bww")))) + (base32 "1v9svw2ki9dsaqazkgv23dj158pmx5g6lykqsb8q1lnpll69sjqv")))) (build-system rebar-build-system) (synopsis "Implementation of Lua on Erlang") (description "This package provides implementation of Lua on Erlang.") @@ -124,13 +124,13 @@ Erlang and Elixir.") (define-public erlang-p1-acme (package (name "erlang-p1-acme") - (version "1.0.23") + (version "1.0.25") (source (origin (method url-fetch) (uri (hexpm-uri "p1_acme" version)) (sha256 - (base32 "0nfxs3ldgbh7a8r7wxl0gw98r1v50jaj54c0nw8fl8ixdvr9dqcc")))) + (base32 "136h8nkfd62xd76p8p4mgdiz8hxdqcg4arayl6c4znsx953mpdd7")))) (build-system rebar-build-system) (inputs (list erlang-base64url erlang-idna erlang-jiffy erlang-jose erlang-yconf)) @@ -183,13 +183,13 @@ Erlang and Elixir.") (define-public erlang-p1-mysql (package (name "erlang-p1-mysql") - (version "1.0.24") + (version "1.0.25") (source (origin (method url-fetch) (uri (hexpm-uri "p1_mysql" version)) (sha256 - (base32 "0pv5zfpkw6sgmn6jbm5k635xnx8kkcvgynka5ix50zr5cigqcn7h")))) + (base32 "0d7438sfzzh57d0fxq165k75khja6krfcglgx2c60wjvx7x7y676")))) (build-system rebar-build-system) (synopsis "Pure Erlang MySQL driver") (description "This package provides pure Erlang @code{MySQL} driver.") @@ -199,13 +199,13 @@ Erlang and Elixir.") (define-public erlang-p1-pgsql (package (name "erlang-p1-pgsql") - (version "1.1.27") + (version "1.1.29") (source (origin (method url-fetch) (uri (hexpm-uri "p1_pgsql" version)) (sha256 - (base32 "1fgzchikv31gbyid3qqy9wzwmap1nalwb7fqal77hs6b09v1lkcf")))) + (base32 "1h9qigb3qfys46rqpqm6s5a0r7cz38hscgnsjlw3z6bln7l5izx6")))) (build-system rebar-build-system) (inputs (list erlang-xmpp)) (synopsis "PostgreSQL driver for Erlang") @@ -372,13 +372,13 @@ implementation.") (define-public erlang-fast-tls (package (name "erlang-fast-tls") - (version "1.1.21") + (version "1.1.22") (source (origin (method url-fetch) (uri (hexpm-uri "fast_tls" version)) (sha256 - (base32 "0nsh5597pa1643kj2mmp05anss2r0gq83al0rm45w0ip768l458k")))) + (base32 "0ns8wbl5gxprficlm653ql6d51z6fy0fy3r3am3mrcbszfp7jmz6")))) (build-system rebar-build-system) (inputs (list erlang-p1-utils openssl)) (native-inputs (list erlang-pc openssl)) @@ -412,13 +412,13 @@ for Erlang/Elixir.") (define-public erlang-stun (package (name "erlang-stun") - (version "1.2.14") + (version "1.2.15") (source (origin (method url-fetch) (uri (hexpm-uri "stun" version)) (sha256 - (base32 "10qm6wh6smj3ixpy251x5w2b9iv51vhgxvk49vczz3bs3dxq0d71")))) + (base32 "1vzdq3mpajv4y7g54nq4dswn44k6rk07ddjqwqn3zlczl90sbn7n")))) (build-system rebar-build-system) (inputs (list erlang-fast-tls erlang-p1-utils)) (synopsis "STUN and TURN library for Erlang/Elixir") @@ -430,13 +430,13 @@ Erlang/Elixir.") (define-public erlang-fast-xml (package (name "erlang-fast-xml") - (version "1.1.52") + (version "1.1.55") (source (origin (method url-fetch) (uri (hexpm-uri "fast_xml" version)) (sha256 - (base32 "1z8vrpnjx8y9qfqhhj4is8k4lzvjlnzhp6d62r8bdlh61qwr4lbr")))) + (base32 "11czr4iqv2m9b5msigwxf26q6ny90qzrawzcrmkzbm8fg0xf5ww3")))) (build-system rebar-build-system) (inputs (list erlang-p1-utils)) (native-inputs (list erlang-pc)) @@ -457,13 +457,13 @@ parsing library.") (define-public erlang-xmpp (package (name "erlang-xmpp") - (version "1.8.3") + (version "1.9.1") (source (origin (method url-fetch) (uri (hexpm-uri "xmpp" version)) (sha256 - (base32 "04gpka0dp03jvgnin1g12ha4yzwy1h44rds3zzf1ia49k9ghcw7d")))) + (base32 "1p3m6a8x89j8gsfpxf13hdxh9syd276g1jlhpz4a9hg4yqd47cfj")))) (build-system rebar-build-system) (inputs (list erlang-ezlib erlang-fast-tls @@ -489,13 +489,13 @@ for Erlang/Elixir.") (define-public erlang-esip (package (name "erlang-esip") - (version "1.0.54") + (version "1.0.56") (source (origin (method url-fetch) (uri (hexpm-uri "esip" version)) (sha256 - (base32 "1vip49gbz1z6sgrab6021fdlqq7g7712d5znvanwsnbjkn0sz1w1")))) + (base32 "07ys2n43fdg3cka6v7lh6633a177yiwmrkcd6vvj7dlkxw66dwwy")))) (build-system rebar-build-system) (inputs (list erlang-fast-tls erlang-p1-utils erlang-stun)) (native-inputs (list erlang-pc)) @@ -548,13 +548,13 @@ Erlang/Elixir.") (define-public erlang-yconf (package (name "erlang-yconf") - (version "1.0.16") + (version "1.0.17") (source (origin (method url-fetch) (uri (hexpm-uri "yconf" version)) (sha256 - (base32 "12bcb0w0nc30bws4lx2ghnz7n755r6nf9a75nb3i31zkfcr82iz9")))) + (base32 "098s6if76z37amcqi99m0xq30h5i1znbjmw4ri39li216a994a6x")))) (build-system rebar-build-system) (inputs (list erlang-fast-yaml)) (synopsis "YAML configuration processor") diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 09cb67b903..b0f86085a7 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; Copyright © 2023 wrobell <wrobell@riseup.net> ;;; Copyright © 2023 Tim Johann <t1m@phrogstar.de> -;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org> +;;; Copyright © 2024, 2025 Igor Goryachev <igor@goryachev.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,7 +49,7 @@ (define-public erlang (package (name "erlang") - (version "27.2") + (version "27.2.1") (source (origin (method git-fetch) ;; The tarball from http://erlang.org/download contains many @@ -61,7 +61,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0s9pw7vyjb53mvk4y0kj5zdv8nr30yklvnjs6va4gxn0xm4k7amb")) + "17hylbmdd82qqrajfcq961nql9asslc4b57130r6p77ch435a357")) (patches (search-patches "erlang-man-path.patch")))) (build-system gnu-build-system) (native-inputs @@ -74,7 +74,7 @@ "/OTP-" version "/otp_doc_man_" version ".tar.gz")) (sha256 (base32 - "12biwwh6yzaf8j8w4qzk9mbzcw567ffmx6i8vx2ry8qd2758mvp6")))))) + "13j1z082cimqxad2r6jfbs3bnslfmqvlfi8pj61rahny9qzpixy9")))))) (inputs (list ncurses openssl wxwidgets)) (propagated-inputs diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 68dba4ed1a..b7413063af 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -149,7 +149,7 @@ ;; <https://bitcoincore.org/en/lifecycle/#schedule>. (package (name "bitcoin-core") - (version "28.0") + (version "28.1") (source (origin (method url-fetch) (uri @@ -157,7 +157,7 @@ version "/bitcoin-" version ".tar.gz")) (sha256 (base32 - "0zzk5w88xzw07xcr18nwq2bbr4wqcvkacy97gyq2wq04wb8y42kh")))) + "1fl312ns86syc6871il9l3lzf96nm6jhnj92qyvxkyf78782vbn5")))) (build-system gnu-build-system) (native-inputs (list autoconf @@ -410,8 +410,8 @@ in ability, and easy to use.") (define-public emacs-ledger-mode ;; The last release was on Nov 8, 2019 and doesn't build with Emacs 28. - (let ((commit "11e850395448ee7012dba16bd6df103f5552ebfb") - (revision "0")) + (let ((commit "356d8049ede02c06db4f487d1d6076f74d6098c5") + (revision "1")) (package (name "emacs-ledger-mode") (version (git-version "4.0.0" revision commit)) @@ -423,18 +423,19 @@ in ability, and easy to use.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0hzky36vrlb7kvpyz4gy3zn01zdlmlx0s58w6ggk5djbcvjc2rfx")))) + (base32 "1wssagczhils0nx12b2nq2jk2gp9j26jn8nrqdrj255nzl40aia1")))) (build-system emacs-build-system) (arguments (list - ;; ledger-test.el is needed at runtime (but probably not for a good reason). - #:exclude #~'() #:tests? #t #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'do-not-require-tests-at-runtime + (lambda _ + (substitute* "ledger-mode.el" + (("\\(require 'ledger-test\\)") "")))) (add-after 'unpack 'patch-path (lambda* (#:key inputs #:allow-other-keys) - (make-file-writable "ledger-exec.el") (emacs-substitute-variables "ledger-exec.el" ("ledger-binary-path" (search-input-file inputs "/bin/ledger"))))) (add-after 'build 'build-doc @@ -447,7 +448,9 @@ in ability, and easy to use.") (lambda* (#:key tests? #:allow-other-keys) (when tests? (with-directory-excursion "../source/test" - (invoke "make" "test-batch")))))))) + ;; Test does not respect `ledger-binary-path' and thus fails + (delete-file-recursively "report-test.el") + (invoke "make" "test")))))))) (inputs (list ledger)) (native-inputs @@ -1051,21 +1054,28 @@ of Bitcoin BIP-0039.") (define-public python-ledgerblue (package (name "python-ledgerblue") - (version "0.1.44") + (version "0.1.54") (source (origin (method url-fetch) (uri (pypi-uri "ledgerblue" version)) (sha256 (base32 - "0nbfa5i9ww7jsfc8cgy0r229pq2a1vj4xvn8mz0nxl7mx1wykqm4")))) - (build-system python-build-system) + "0ghpvxgih1zarp788qi1xh5xmprv6yhaxglfbix4974i7r4pszqy")))) + (build-system pyproject-build-system) (arguments `(#:tests? #f)) ; no tests + (native-inputs + (list python-setuptools python-wheel)) (propagated-inputs - (list python-ecpy + (list python-bleak + python-pyelftools + python-pycryptodome + python-ecpy python-future + python-gnupg python-hidapi + python-nfcpy python-pillow python-protobuf python-pycryptodomex @@ -2371,7 +2381,7 @@ mining.") (define-public p2pool (package (name "p2pool") - (version "4.1.1") + (version "4.3") (source (origin (method git-fetch) @@ -2380,7 +2390,7 @@ mining.") (commit (string-append "v" version)) (recursive? #t))) (file-name (git-file-name name version)) - (sha256 (base32 "1vcgzip0w4mdnaj49s539nlnkc8mnxw4idzy2935nx83p1p0l6xg")) + (sha256 (base32 "1hfdhanbdfjxv2n355m6b9n0ihxgcdlgxgnsqz5f6q59957fcyiw")) (modules '((guix build utils))) (snippet #~(for-each delete-file-recursively @@ -2393,7 +2403,7 @@ mining.") "external/src/robin-hood-hashing"))))) (build-system cmake-build-system) (inputs - (list cppzmq curl gss libuv rapidjson robin-hood-hashing zeromq)) + (list cppzmq curl libuv rapidjson robin-hood-hashing zeromq)) (arguments (list ; FIXME: Linking fails when LTO is activated. #:configure-flags #~(list "-DWITH_LTO=OFF") diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 4dbbca69dc..8da0f6b9ec 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -55,11 +55,12 @@ ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org> ;;; Copyright © 2023 Arnaud Lechevallier <arnaud.lechevallier@free.fr> -;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> +;;; Copyright © 2023, 2024 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2023 chris <chris@bumblehead.com> ;;; Copyright © 2023, 2024 Luis Felipe López Acevedo <sirgazil@zoho.com> ;;; Copyright © 2024 Christina O'Donnell <cdo@mutix.org> +;;; Copyright © 2025 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1054,7 +1055,7 @@ for use at smaller text sizes"))) (define-public font-gnu-unifont (package (name "font-gnu-unifont") - (version "15.1.05") + (version "16.0.02") (source (origin (method url-fetch) @@ -1064,7 +1065,7 @@ for use at smaller text sizes"))) (string-append "mirror://gnu/unifont/unifont-" version "/unifont-" version ".tar.gz"))) (sha256 - (base32 "1yi33kxlgw7ds99za5bclh537sw8ggl94nrhhq7hwxaq8dgzaxfj")) + (base32 "0bd5mf3j7f0wggh9ss3a6rji62qwcfak37q6zb8lq9pjcf3yqa7i")) (snippet '(begin (use-modules (guix build utils)) @@ -1086,7 +1087,12 @@ for use at smaller text sizes"))) (add-after 'unpack 'patch-source (lambda _ (substitute* (find-files "." "Makefile") - (("/bin/sh -s") (string-append (which "sh") " -s"))))) + (("/bin/sh\\b") (which "sh"))) + ;; Skip thumbnail generation as it requires ImageMagick and the generated + ;; thumbnails will not be installed. + (substitute* "font/Makefile" + (("^(compiled-files:.+)thumbnails(.+)" _ pre post) + (string-append pre post))))) (replace 'install (lambda* (#:key make-flags outputs #:allow-other-keys) (let* ((ttf (string-append (assoc-ref outputs "out") diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm index fadf72ba1d..eb26fdaff0 100644 --- a/gnu/packages/fpga.scm +++ b/gnu/packages/fpga.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2023 Simon South <simon@simonsouth.net> ;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de> +;;; Copyright © 2025 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -154,7 +155,7 @@ For synthesis, the compiler generates netlists in the desired format.") (define-public yosys (package (name "yosys") - (version "0.48") + (version "0.49") (source (origin (method git-fetch) (uri (git-reference @@ -162,7 +163,7 @@ For synthesis, the compiler generates netlists in the desired format.") (commit (string-append "v" version)))) (sha256 (base32 - "1y5yrmw8b5l2s70451rcy83h0kavdjrsavwvxff3nrgqi3q4r1sc")) + "0mw8csk91s72vl73a9ngc3rrwhr4rfr8fm0abfycj3wcy8n3zr57")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -554,31 +555,29 @@ automated testing of HDL code.") (define-public nvc (package (name "nvc") - (version "1.14.0") + (version "1.15.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/nickg/nvc.git") - (commit (string-append "r" version)))) - (file-name (string-append name "-" version "-checkout")) + (url "https://github.com/nickg/nvc") + (commit (string-append "r" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1b71j8bps9zirvxhycrc9fhbr3f89si6h064xnly7gq06ggnv8n5")))) + "1hqkgwkvflha1fpch13byb8clwa97n6z1d9a2d34cqzsjrzkdx0k")))) (build-system gnu-build-system) (arguments - `(#:out-of-source? #t - #:configure-flags - '("--enable-vhpi") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'clean-up - (lambda _ - (delete-file "autogen.sh")))))) + (list #:out-of-source? #t + #:configure-flags #~(list "--enable-vhpi") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'clean-up + (lambda _ + (delete-file "autogen.sh")))))) (native-inputs (list automake autoconf flex - gnu-gettext + gettext-minimal libtool pkg-config which diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index c6f18e9949..e17dc74310 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1865,6 +1865,16 @@ Analysis and Reporting Technology) functionality.") (string-append "--with-udevdir=" #$output "/lib/udev")) #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-commands + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/udiskslinuxdrive.c" + (("\"eject %s\"") + (format #f "\"~a %s\"" + (search-input-file inputs "bin/eject")))) + (substitute* "src/udisksstate.c" + (("\"umount -l %s\"") + (format #f "\"~a -l %s\"" + (search-input-file inputs "bin/umount")))))) (add-before 'configure 'fix-girdir (lambda _ ;; Install introspection data to its own output. diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 162c25de40..ae40e5786e 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -19,7 +19,7 @@ ;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> -;;; Copyright © 2016-2021, 2023, 2024 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016-2021, 2023-2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com> ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info> @@ -7702,29 +7702,37 @@ at their peak of economic growth and military prowess. (lambda _ (substitute* (list "tests/Makefile" "tests/tapview") (("/bin/echo") (which "echo"))))) - (add-after 'build 'build-manpage - (lambda _ - ;; This target is missing a dependency - (substitute* "Makefile" - ((".adoc.6:" line) - (string-append line " advent.adoc"))) - (invoke "make" ".adoc.6"))) - ;; There is no install target. - (replace 'install - (lambda _ - (let ((bin (string-append #$output "/bin")) - (man (string-append #$output "/share/man/man6"))) - (install-file "advent" bin) - (install-file "advent.6" man))))))) + #$@(if (this-package-native-input "ruby-asciidoctor") + #~((add-after 'build 'build-manpage + (lambda _ + ;; This target is missing a dependency + (substitute* "Makefile" + ((".adoc.6:" line) + (string-append line " advent.adoc"))) + (invoke "make" ".adoc.6"))) + ;; There is no install target. + (replace 'install + (lambda _ + (let ((bin (string-append #$output "/bin")) + (man (string-append #$output "/share/man/man6"))) + (install-file "advent" bin) + (install-file "advent.6" man))))) + #~((replace 'install + (lambda _ + (let ((bin (string-append #$output "/bin"))) + (install-file "advent" bin))))))))) (native-inputs - (list asciidoc - cppcheck - libedit - pkg-config - python-pylint - python-pyyaml - python-wrapper - ruby-asciidoctor)) + (append + (list asciidoc + cppcheck + libedit + pkg-config + python-pylint + python-pyyaml + python-wrapper) + (if (supported-package? ruby-asciidoctor) + (list ruby-asciidoctor) + '()))) (home-page "https://gitlab.com/esr/open-adventure") (synopsis "Colossal Cave Adventure") (description diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 6247919fec..36783af37d 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -37,6 +37,7 @@ #:use-module ((guix licenses) #:select (gpl3+ gpl2+ lgpl2.1+ lgpl2.0+ fdl1.3+)) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages bootstrap) #:use-module (gnu packages compression) #:use-module (gnu packages multiprecision) @@ -1416,7 +1417,7 @@ provides the GNU compiler for the Go programming language.")) (build-system gnu-build-system) (outputs '("out" "static")) (arguments - '(#:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (add-after 'install 'move-static-library (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1431,7 +1432,21 @@ provides the GNU compiler for the Go programming language.")) ;; libtool looks for it in the usual locations. (substitute* (string-append out "/lib/libisl.la") (("^old_library=.*") - "old_library=''\n")))))))) + "old_library=''\n"))))) + ,@(if (target-loongarch64?) + `((add-after 'unpack 'update-config-scripts + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.guess and config.sub. + (for-each (lambda (file) + (install-file + (search-input-file + (or native-inputs inputs) + (string-append "/bin/" file)) ".")) + '("config.guess" "config.sub"))))) + '())))) + (native-inputs (if (target-loongarch64?) + (list config) + '())) (inputs (list gmp)) (home-page "https://libisl.sourceforge.io/") ;https://repo.or.cz/w/isl.git (properties `((release-monitoring-url . ,home-page))) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 36170606d7..1225570c3c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -39,7 +39,7 @@ ;;; Copyright © 2019, 2024, 2025 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net> -;;; Copyright © 2019-2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2019 David Wilson <david@daviwil.com> ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org> @@ -237,6 +237,7 @@ #:use-module (gnu artwork) #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) @@ -12812,22 +12813,38 @@ integrate seamlessly with the GNOME desktop.") libxml2 qemu-minimal ;for qemu-img sparql-query - spice-gtk tracker vte webkitgtk-for-gtk3)) + (propagated-inputs + ;; Propagating spice-gtk is necessary so that the gnome-desktop-service + ;; type configures the polkit actions necessary for the USB redirection + ;; feature to work when gnome-boxes added as a extra GNOME package. + (list spice-gtk)) (home-page "https://wiki.gnome.org/Apps/Boxes") (synopsis "View, access, and manage remote and virtual systems") (description "GNOME Boxes is a simple application to view, access, and manage remote and virtual systems. Note that this application requires the @code{libvirt} and @code{virtlog} daemons to run. Use the command @command{info '(guix) Virtualization Services'} to learn how to configure -these services on the Guix System. If you do not use the -@code{gnome-desktop-service-type}, you will also want to extend the -@code{polkit-service-type} with the @code{spice-gtk} package, as well as -configure the @file{libexec/spice-client-glib-usb-acl-helper} executable of -@code{spice-gtk} as setuid, to make it possible to redirect USB devices as a -non-privileged user.") +these services on the Guix System. + +To make it possible to redirect USB devices as a non-privileged user, some +extra configuration is necessary: if you use the +@code{gnome-desktop-service-type}, you should add the @code{gnome-boxes} +package to the @code{extra-packages} field of the +@code{gnome-desktop-configuration}, for example: +@lisp +(service gnome-desktop-service-type + (gnome-desktop-configuration + (extra-packages (list gnome-boxes gnome-essential-extras)))) +@end lisp +If you do @emph{not} use the @code{gnome-desktop-service-type}, you will need +manually extend the @code{polkit-service-type} with the @code{spice-gtk} +package, as well as configure the +@file{libexec/spice-client-glib-usb-acl-helper} executable of @code{spice-gtk} +as setuid, to make it possible to redirect USB devices as a non-privileged +user.") (license (list ;; For data/icons/empty-boxes.png. license:cc-by2.0 @@ -13641,7 +13658,7 @@ profiler via Sysprof, debugging support, and more.") (define-public komikku (package (name "komikku") - (version "1.46.0") + (version "1.57.0") (source (origin (method git-fetch) @@ -13651,7 +13668,7 @@ profiler via Sysprof, debugging support, and more.") (file-name (git-file-name name version)) (sha256 (base32 - "1ggg4hgd1kyc69b06kcgvvjwmz72xgjakva19gs3nrszr4cinank")))) + "0z8sigv1a8a96y0hgm21j4qmpy06ziqw8yhlgbp8kbg70g5yhrbg")))) (build-system meson-build-system) (arguments (list @@ -13699,6 +13716,7 @@ profiler via Sysprof, debugging support, and more.") python-natsort python-piexif python-pillow + python-pillow-heif python-pure-protobuf python-pycairo python-pygobject @@ -13718,6 +13736,51 @@ profiler via Sysprof, debugging support, and more.") (synopsis "Manga reader for GNOME") (description "Komikku is an online/offline manga reader for GNOME, developed with the aim of being used with the Librem 5 phone.") + (license license:gpl3+) + (native-search-paths (list (search-path-specification + (variable "KOMIKKU_SERVERS_PATH") + (files '("lib/komikku/servers"))))))) + +(define-public komikku-servers + (package + (name "komikku-servers") + (version "1.59.0") ; latest version that works with 1.57 + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/valos/Komikku/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0sfqmqcpdl3bsbs0wxl4jwvd7wpgigkvvasy1niz6qm2vnp35gzq")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan + #~'(("komikku/servers" "lib/komikku/servers")) + #:modules '((guix build copy-build-system) + (guix build utils) + (ice-9 ftw)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'delete-conflicting-files + (lambda _ + (with-directory-excursion "komikku/servers" + (for-each delete-file + (scandir "." + (lambda (f) (string-suffix? ".py" f))))))) + (add-after 'install 'compile + (lambda* (#:key outputs #:allow-other-keys) + (let ((site-dir (string-append (assoc-ref outputs "out") + "/lib/komikku/servers"))) + (invoke "python" "-m" "compileall" + "--invalidation-mode=unchecked-hash" site-dir))))))) + (native-inputs (list python-wrapper)) + (home-page "https://apps.gnome.org/Komikku") + (synopsis "Servers for Komikku") + (description "This package provides more recent servers for Komikku.") (license license:gpl3+))) (define-public libgda diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index ef2344d7e6..633600870b 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -630,15 +630,15 @@ decrypt messages using the OpenPGP format by making use of GPGME.") (define-public python-gnupg (package (name "python-gnupg") - (version "0.4.8") + (version "0.5.0") (source (origin (method url-fetch) (uri (pypi-uri "python-gnupg" version)) (sha256 (base32 - "1mq7hljy3bjkxdvh3qx2bv4y0b66l9pmc6i06ys75y7dbjpf2kdn")))) - (build-system python-build-system) + "0ali2zz6k568yzhdgzm8f14v6s5ymihlyffbvfxc9q60gww8wxbh")))) + (build-system pyproject-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -654,7 +654,7 @@ decrypt messages using the OpenPGP format by making use of GPGME.") ;; so we disable them. (invoke "python" "test_gnupg.py" "--no-doctests"))))))) (native-inputs - (list gnupg)) + (list gnupg python-setuptools python-wheel)) (home-page "https://pythonhosted.org/python-gnupg/index.html") (synopsis "Wrapper for the GNU Privacy Guard") (description @@ -1083,14 +1083,14 @@ however, pgpdump produces more detailed and easier to understand output.") (define-public gpa (package (name "gpa") - (version "0.10.0") + (version "0.11.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gpa/" name "-" version ".tar.bz2")) (sha256 (base32 - "1cbpc45f8qbdkd62p12s3q2rdq6fa5xdzwmcwd3xrj55bzkspnwm")))) + "1k1kvxffyb4nm83yp3mnx9bfmcciwb7vfw8c3xscnh85yxdzma16")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1108,7 +1108,7 @@ however, pgpdump produces more detailed and easier to understand output.") gpgme libassuan libgpg-error - gtk+-2)) + gtk+)) (home-page "https://gnupg.org/software/gpa/") (synopsis "Graphical user interface for GnuPG") (description diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index b102c8b644..590805a88f 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3577,7 +3577,7 @@ from @code{tree-il}.") (define-public guile-hoot (package (name "guile-hoot") - (version "0.5.0") + (version "0.6.0") (source (origin (method url-fetch) (uri (string-append "https://spritely.institute/files/releases" @@ -3585,7 +3585,7 @@ from @code{tree-il}.") version ".tar.gz")) (sha256 (base32 - "0c7qrhr4k3bdsfbdncb11ysfq94bapkpigckmj23rdc0skvijwk4")))) + "0miq9bv09xvzdrcvzdrca9vychsznpzi4jj87f5r1mwz0xxpvxjb")))) (build-system gnu-build-system) (arguments '(#:make-flags '("GUILE_AUTO_COMPILE=0" @@ -5266,14 +5266,14 @@ Relay Chat} (IRC).") (define-public guile-websocket (package (name "guile-websocket") - (version "0.1") + (version "0.2.0") (source (origin (method url-fetch) (uri (string-append "https://files.dthompson.us/guile-websocket/" "guile-websocket-" version ".tar.gz")) (sha256 (base32 - "0x2hw188kcg6zd6480dqfynfvzjgfp50kji4y4ql69mnf1jd6h94")))) + "143ng1x5xwy218wd1svj718ikqnrglwsywyzpd3ap9jnivw66g7f")))) (build-system gnu-build-system) (arguments '(#:make-flags @@ -5281,7 +5281,7 @@ Relay Chat} (IRC).") (native-inputs (list autoconf automake pkg-config)) (inputs - (list guile-3.0)) + (list guile-3.0 guile-gnutls)) (synopsis "Websocket server/client for Guile") (description "Guile-websocket provides an implementation of the WebSocket protocol as defined by RFC 6455.") @@ -6263,8 +6263,8 @@ is an attempt to combine both into something useful.") (license license:asl2.0)))) (define-public guile-knots - (let ((commit "d572f591a3c136bfc7b23160e16381c92588f8d9") - (revision "4")) + (let ((commit "c1796f0081cef266cbbc494cbf0791b4105d5b89") + (revision "5")) (package (name "guile-knots") (version (git-version "0" revision commit)) @@ -6275,7 +6275,7 @@ is an attempt to combine both into something useful.") (commit commit))) (sha256 (base32 - "0g85frfniblxb2cl81fg558ic3cxvla7fvml08scjgbbxn8151gv")) + "1dlckjjixxljcz7pvsxqvcwqdz2x8gpvgh781lgxw5prs0pxccl2")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (native-inputs @@ -6480,16 +6480,16 @@ This module implements this interface by use of Guile's dynamic FFI.") (define-public guile-goblins (package (name "guile-goblins") - (version "0.14.0") + (version "0.15.0") (source (origin (method url-fetch) - (uri (string-append "https://spritely.institute/files/releases" + (uri (string-append "https://files.spritely.institute/releases" "/guile-goblins/guile-goblins-" version ".tar.gz")) (sha256 (base32 - "1gqyx8mq54dcs8waxjidk6xk43b2dfnw3hrbs22z6pnd9rdaj7wd")))) + "1dyxh8xvl8f707dzfzckz4343z1iwfp7v6wwyryn5psy86gq328z")))) (build-system gnu-build-system) (arguments (list #:make-flags @@ -6498,7 +6498,7 @@ This module implements this interface by use of Guile's dynamic FFI.") (list pkg-config texinfo)) (inputs (list guile-3.0)) (propagated-inputs - (list guile-fibers guile-gcrypt guile-gnutls)) + (list guile-fibers guile-gnutls guile-websocket)) (home-page "https://spritely.institute/goblins") (synopsis "Distributed programming environment for Guile") (description diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 94739c4ce2..477caafd4e 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -117,6 +117,55 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages)) +(define-public swayimg + (package + (name "swayimg") + (version "3.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/artemsen/swayimg") + (commit (string-append "v" version)))) + (sha256 + (base32 "15nqb1igikkvrzx3dhyj9msynfpvrnqvql6plqm8fhg10fbimfhd")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '(,(string-append "-Dversion=" version)))) + (native-inputs (list pkg-config)) + (inputs (list bash-completion + fontconfig + freetype + giflib + ijg-libjpeg + imath + json-c + libavif + libexif + libheif + libjxl + libpng + librsvg + libtiff + libwebp + libxkbcommon + openexr + wayland + wayland-protocols)) + (home-page "https://github.com/artemsen/swayimg") + (synopsis "Customizable and lightweight image viewer for Wayland") + (description + "Swayimg is a fully customizable and lightweight image viewer for Wayland +based display servers. It supports the most popular image formats (JPEG, JPEG +XL, PNG, GIF, SVG, WebP, HEIF/AVIF, AV1F/AVIFS, TIFF, EXR, BMP, PNM, TGA, QOI, +DICOM, Farbfeld). It has fully customizable keyboard bindings, colors, and +many other parameters. It also supports loading images from files and pipes, +and provides gallery and viewer modes with slideshow and animation support. +It also includes a Sway integration mode: the application creates an overlay +above the currently active window, which gives the illusion that you are +opening the image directly in a terminal window.") + (license license:expat))) + (define-public ytfzf (package (name "ytfzf") diff --git a/gnu/packages/kde-games.scm b/gnu/packages/kde-games.scm index e9e25c9e88..0f487b93a0 100644 --- a/gnu/packages/kde-games.scm +++ b/gnu/packages/kde-games.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> +;;; Copyright © 2024, 2025 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,14 +46,14 @@ (define-public ktuberling (package (name "ktuberling") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/ktuberling-" version ".tar.xz")) (sha256 - (base32 "15fizh4f1y6j475c91myw87fg8h5d0wi79niby19wgwwbhphzb2r")))) + (base32 "0bklrihrv9c1pxxg3swlkllh280hzgjri2zkkz8klml0vznvrya4")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -94,14 +95,14 @@ This package is part of the KDE games module.") (define-public picmi (package (name "picmi") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/picmi-" version ".tar.xz")) (sha256 - (base32 "0xx3bwib7p1g0xzykpsln07606rms8awrh1myr46lx65r1xffw05")))) + (base32 "1xxcpg4siwvm26lwi6y6pwkykd3lj8nmj5r2ys719k8mym2wjqj8")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -130,14 +131,14 @@ This package is part of the KDE games module.") (define-public kolf (package (name "kolf") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kolf-" version ".tar.xz")) (sha256 - (base32 "0i0rh3dw90j8p46dhfmmcl6nah080ilmhy9d1m9jwlb6xd03zg66")))) + (base32 "1fgqh3mry89rqx4lfxprzi9m733nr77kziqj29sgva3n3xwbysib")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -177,14 +178,14 @@ This package is part of the KDE games module.") (define-public libkmahjongg (package (name "libkmahjongg") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/libkmahjongg-" version ".tar.xz")) (sha256 - (base32 "1bjsrnkwkv4w94q5q4nhfy11jfrvxsl2v2kjv6dcm47z0k9y9v63")))) + (base32 "1ynrgk6fkybdzycj4gafc1n9x868ixhwk71mihmi7hlaiq1r9rd8")))) (build-system qt-build-system) (arguments (list @@ -225,14 +226,14 @@ other Mah Jongg like games.") (define-public kmahjongg (package (name "kmahjongg") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kmahjongg-" version ".tar.xz")) (sha256 - (base32 "07x3rxxhg3z538bbwqi75mv1z546gvzssav43xzgyga3zg7179b6")))) + (base32 "04af747rfw98carz2z5f5gmczvzmhlj3f1gn32hkqyn87mq6kvyw")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -264,14 +265,14 @@ This package is part of the KDE games module.") (define-public kshisen (package (name "kshisen") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kshisen-" version ".tar.xz")) (sha256 - (base32 "1bx28jlvmwfh5rrvwd2kiq1c5r83s9lr49kl3x1rm5w7w5hlxyf1")))) + (base32 "1h31ambrcy3ybwvjdx22wd8jw65p3mlsi2fzpls6d0qvmrbln51i")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules @@ -301,14 +302,14 @@ This package is part of the KDE games module.") (define-public kajongg (package (name "kajongg") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kajongg-" version ".tar.xz")) (sha256 - (base32 "0xwnin738zj6kh607asmwdq7n6jva9wk240c9rc53ja98nw4crpv")))) + (base32 "03j20x8w1bbxd9s402g6h37c2835hm7sg24910kpz436q764yvq4")))) (build-system qt-build-system) (arguments (list @@ -373,14 +374,14 @@ This package is part of the KDE games module.") (define-public kbreakout (package (name "kbreakout") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kbreakout-" version ".tar.xz")) (sha256 - (base32 "0qnsvmhil1ybs94g533r26sqrfkqb06jh6gk4siqdd32dyyn7x3q")))) + (base32 "0k6290knp5piq2w90wn4qd7s2ps41nhxs871pwjnljrjf3v6fzv3")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -410,14 +411,14 @@ This package is part of the KDE games module.") (define-public kmines (package (name "kmines") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kmines-" version ".tar.xz")) (sha256 - (base32 "1ng0bda7q2ha7kmr83rlf9z24pkf14id5w6jzzgjw2yc21mbnwhm")))) + (base32 "1j56fbj10slklj996vlkkmpq9nyhlsh7z736ygkvndgb762r35ln")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -447,14 +448,14 @@ This package is part of the KDE games module.") (define-public konquest (package (name "konquest") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/konquest-" version ".tar.xz")) (sha256 - (base32 "0bykh3ihigvzaxkzhk801hfr28frxq4hkwixicapzdfamhc22w95")))) + (base32 "1jq7xfd9h19p02vmkvvjz48k35i5npfz302mq6lgj6pwwn683v4w")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -487,14 +488,14 @@ This package is part of the KDE games module.") (define-public kbounce (package (name "kbounce") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kbounce-" version ".tar.xz")) (sha256 - (base32 "0s9009qi40fdi24lwp789cydgy1rm0n9f0fsb8pbldi9rmdk9x60")))) + (base32 "0v1ag7m621rpb53ap6s05dnlrza334slb9d84nav6fr761lbldj0")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -525,14 +526,14 @@ This package is part of the KDE games module.") (define-public kblocks (package (name "kblocks") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kblocks-" version ".tar.xz")) (sha256 - (base32 "05l2g21rzpln7kzywgraplqymgfdk1wvr1jfm3ffk0nzdyi0fy08")))) + (base32 "0n9knhhmr2jlclqbzahxdjs3xax5vsfdn18yncbhy7q6a5b00g6n")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -565,14 +566,14 @@ This package is part of the KDE games module.") (define-public ksudoku (package (name "ksudoku") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/ksudoku-" version ".tar.xz")) (sha256 - (base32 "1hygl0m26ylj0gm9i8mm7cr2aclq27z8ammydhw824d1nwjw98b0")))) + (base32 "1xa4rw6im3gi88xl54y9pnld4z4xpcfjnpahagqydagannpxfddh")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -626,14 +627,14 @@ This package is part of the KDE games module.") (define-public klines (package (name "klines") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/klines-" version ".tar.xz")) (sha256 - (base32 "1c6y071h2w1v3bn7cc5qy1l5m3s1s0vah72196y8gdh7bfx7kaxx")))) + (base32 "0crbz3vlz95yyddyp0j67rq307lbdl9i0qcmh4y4j2i53rw81gc2")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -669,14 +670,14 @@ This package is part of the KDE games module.") (define-public kgoldrunner (package (name "kgoldrunner") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kgoldrunner-" version ".tar.xz")) (sha256 - (base32 "10v280785ds03h6ra384hhck422dwy8zz57x4wpcq87azzf0mi4c")))) + (base32 "0a6fpmjznqdlzixa3xcak5h4cykr33150ynhv350i891bmmldp77")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -710,14 +711,14 @@ This package is part of the KDE games module.") (define-public kdiamond (package (name "kdiamond") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kdiamond-" version ".tar.xz")) (sha256 - (base32 "1ql8psh6lyahrdiqj0qji1dsyz8jl260msp76k804jk0477gjw8h")))) + (base32 "14yfi627p3n1qxk6w1wm1p11hyjql0mrka4rkwqwvdph8wa1bar7")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -748,14 +749,14 @@ This package is part of the KDE games module.") (define-public kfourinline (package (name "kfourinline") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kfourinline-" version ".tar.xz")) (sha256 - (base32 "15l1bvz3c7h3pv0inaq73haqhwh2v5gdqnxsrhi5ra6dw5nm0d8l")))) + (base32 "0jjsnbc08w8jzdgvzk2y3qaf5dnik5pqnfyyspf8dpbrc2c9p542")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -787,14 +788,14 @@ This package is part of the KDE games module.") (define-public kblackbox (package (name "kblackbox") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kblackbox-" version ".tar.xz")) (sha256 - (base32 "0andcfwrq8nhb75diif3pm2a1y6lrmkdncaszjhyan1v9mycdi8r")))) + (base32 "09zldalfdy592n9nqirfa00j2s7rjp81alc79hv18i7sbjpk9r3g")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -827,14 +828,14 @@ This package is part of the KDE games module.") (define-public knetwalk (package (name "knetwalk") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/knetwalk-" version ".tar.xz")) (sha256 - (base32 "1p6d27l2j6h5kqyjpws4s0ilvzhrhbd3lwd7776z1lmidqixvwfq")))) + (base32 "0p10x80vqfralxnjc2fd3wkyrxizx5fz2fs8a6qs6brzmm092p7y")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -868,14 +869,14 @@ This package is part of the KDE games module.") (define-public bomber (package (name "bomber") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/bomber-" version ".tar.xz")) (sha256 - (base32 "1sw3a2nvwciq7m8d30k0ipzx5gsa48jwflxkih8ha354wl5mk1cs")))) + (base32 "0qbh9hd55cvjdkf940q6k4jr3bvss8r491agdg1xh9chrhczymfr")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -909,14 +910,14 @@ This package is part of the KDE games module.") (define-public granatier (package (name "granatier") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/granatier-" version ".tar.xz")) (sha256 - (base32 "0g38sfx4x61isvi3h6b8xmdbbqrvq8z8rrxb0xdbz3fkwxyigy75")))) + (base32 "122shd4wxa34i0z7sfnxyv96z32ifa3nw3k8bg2k4d9ffxdbdr95")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -946,14 +947,14 @@ This package is part of the KDE games module.") (define-public ksirk (package (name "ksirk") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/ksirk-" version ".tar.xz")) (sha256 - (base32 "0ki9z8p4flrs7msihya8ykxs3p4w10v3ivmgf43ldygjjndyhql9")))) + (base32 "0sv17ykq8afm0sdsrbhi6f0r4yvx1dgq2f2i4acbxhx8ij5ygwpc")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -1004,14 +1005,14 @@ This package is part of the KDE games module.") (define-public palapeli (package (name "palapeli") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/palapeli-" version ".tar.xz")) (sha256 - (base32 "1436rbfrppjb73k8p9amzwa6hhjns3hjli279r8fqscjimil0vv4")))) + (base32 "1qwk23vc9qqdg8npz0c13nyhb7x3mnlidsabwy3r7739nqdqvv10")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -1050,14 +1051,14 @@ This package is part of the KDE games module.") (define-public kiriki (package (name "kiriki") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kiriki-" version ".tar.xz")) (sha256 - (base32 "0gysvh9afr1zhjv5d5kan6m6b8b45jd1p3f2kssiql84m5xv7jsy")))) + (base32 "0zb9100l1wfg2xxppjal0lgacqava46yf04qr8bgya41mj4099md")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -1088,14 +1089,14 @@ This package is part of the KDE games module.") (define-public kigo (package (name "kigo") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kigo-" version ".tar.xz")) (sha256 - (base32 "18jdv0dwxysf3i3c8d663x95h1pbkbvlw860lqgapdx9cnybqz1a")))) + (base32 "0ic9ydd47z15nah27j6xlqiikd6y58pvkklwcdj8jvwgr14q8ir2")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -1134,14 +1135,14 @@ This package is part of the KDE games module.") (define-public kubrick (package (name "kubrick") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kubrick-" version ".tar.xz")) (sha256 - (base32 "05mcrjbf6gm7dldww3iqhhrknzf59xj8fw4rzbb6l79rrvp1vrvz")))) + (base32 "1wpys5i3w3wbphv94x2ii1yjzf89lnid4bi67bi0v2z4rm5hpyw4")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -1177,14 +1178,14 @@ This package is part of the KDE games module.") (define-public lskat (package (name "lskat") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/lskat-" version ".tar.xz")) (sha256 - (base32 "1p5gq8zkjr3cl7scq9irhiaf96az02k1fk3c0myqh0l9nyxakpsw")))) + (base32 "1nz1qcc8d3xmmivqmbprrgjkj4qgcc1kvz8i5l1wpik6rvw4kwcb")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -1216,14 +1217,14 @@ This package is part of the KDE games module.") (define-public kapman (package (name "kapman") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kapman-" version ".tar.xz")) (sha256 - (base32 "1lwxrd8ky9bkrxjg42spyyywxv17lp5idm5xr4xybq3sqi2gahhx")))) + (base32 "1390zajbvp7zh86qs4fjkii803igkqdd0nzdg7mx08p7rpn6zc6s")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -1255,14 +1256,14 @@ This package is part of the KDE games module.") (define-public kspaceduel (package (name "kspaceduel") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kspaceduel-" version ".tar.xz")) (sha256 - (base32 "04sjx32b4jgz9hwjmfyjcxlrd6jwg355sr6knr8vdxhjg18k2wa0")))) + (base32 "01x3gqw876d2x5kd0za192wawv4fhn6zl55g4w85dvbzjisiljyb")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -1290,14 +1291,14 @@ This package is part of the KDE games module.") (define-public bovo (package (name "bovo") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/bovo-" version ".tar.xz")) (sha256 - (base32 "0rcnc3v4p0xgkybk4csjwkd7mfiffhqfwx3c5yfwnnrh7rdrmh5j")))) + (base32 "1bxbcxv4fggm5cm4xk06xmg7n670xd4lxcazbhwb8bcz23lmggjp")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -1326,14 +1327,14 @@ This package is part of the KDE games module.") (define-public killbots (package (name "killbots") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/killbots-" version ".tar.xz")) (sha256 - (base32 "1vs4prhflmy6z9p3ab6r3qgzqn2vqv4abc0mhq04zbnh7sqcy0k7")))) + (base32 "0zjlj311klarlx3bqb2h3a2q5wqph0m988d9aff4ravzdg58rv6d")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -1367,14 +1368,14 @@ This package is part of the KDE games module.") (define-public ksnakeduel (package (name "ksnakeduel") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/ksnakeduel-" version ".tar.xz")) (sha256 - (base32 "11v8zrbwb8dhdmaa76rhv5qa084raxldl8sjp9299hd8wk34297b")))) + (base32 "1cg9v3ki6bd8h5gz0aakm0jfyc8w5r4b4sqvg3iqmqd5n4f3j7hm")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -1405,14 +1406,14 @@ This package is part of the KDE games module.") (define-public kollision (package (name "kollision") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kollision-" version ".tar.xz")) (sha256 - (base32 "1fvhbvb72w5xgz6hyp795j07ngc78isbk4i9g0yfznl1z59hygs7")))) + (base32 "009kvcfg2acnk1lnx3p0aky6q41jm6kpbwrfz9ihvib08micgkk1")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -1442,14 +1443,14 @@ This package is part of the KDE games module.") (define-public knavalbattle (package (name "knavalbattle") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/knavalbattle-" version ".tar.xz")) (sha256 - (base32 "0smr35f76hhy7gzla6q2ly9ip01ly3v33xhqq9dqpp144bs4vkab")))) + (base32 "1f3vkqv4kph8p0g6d7ycycnzf843y2iwajm89yxamjzn3jr7v57s")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -1482,14 +1483,14 @@ This package is part of the KDE games module.") (define-public kreversi (package (name "kreversi") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kreversi-" version ".tar.xz")) (sha256 - (base32 "1vrh1kl2qh03826m5n3nvj5fn0jrakqvkrlc3jxr9hm26c2k26ah")))) + (base32 "1fh956hnvlzd1dcg9nkcgzgarmgv9i47w6c8jx71xbx81fcylwf6")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -1524,14 +1525,14 @@ This package is part of the KDE games module.") (define-public ksquares (package (name "ksquares") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/ksquares-" version ".tar.xz")) (sha256 - (base32 "1nmlnqirgp53h03kyj0cwg0nny0dckb6c7vs16jkqr11rmb39g1v")))) + (base32 "1pp3nk9hnvf8bbrxpjcfj2lv2d0qawfb8b3hzys02p99hncp9rd8")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -1560,14 +1561,14 @@ This package is part of the KDE games module.") (define-public kjumpingcube (package (name "kjumpingcube") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/kjumpingcube-" version ".tar.xz")) (sha256 - (base32 "1ihll2x7inc76752xwj3dfs2653i9c5prfllh2p8vfc1ss0raa34")))) + (base32 "01134n461adq51h6dx2w12hch4gvyyrwps3136mpcjdl0pg5zx86")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -1597,14 +1598,14 @@ This package is part of the KDE games module.") (define-public knights (package (name "knights") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/knights-" version ".tar.xz")) (sha256 - (base32 "19xsa79p0ad3cgm1zz2ykbm4487fyizshn7ir8f5azhkr1bi6l8k")))) + (base32 "1cgnnna4kaklqbghgvl4f6kyg5lnh74r6w6y36mj02i8z5h7cfwn")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) @@ -1657,7 +1658,7 @@ This package is part of the KDE games module.") (define-public kde-games (package (name "kde-games") - (version "24.05.2") + (version "24.12.1") (source #f) (build-system trivial-build-system) (arguments diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm index 213145a367..4bf40afe88 100644 --- a/gnu/packages/kde-internet.scm +++ b/gnu/packages/kde-internet.scm @@ -517,3 +517,88 @@ features including but not limited to torrent downloading and seeding, torrent creation and downloaded data verification, magnet links, advanced peer management, IP blocking lists.") (license license:gpl2+))) + +(define-public ruqola + (package + (name "ruqola") + (version "2.4.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/ruqola/ruqola-" + version ".tar.xz")) + (sha256 + (base32 + "0w05ww6dn1xfmz67i3avkzdlcrb575hjad2lnm2cxd0jds0b1bg5")))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'set-home-directory + (lambda _ + (setenv "HOME" "/tmp")))))) + (native-inputs + (list extra-cmake-modules kdoctools)) + (inputs + (list karchive + kcodecs + kcoreaddons + kcrash + kdbusaddons + ki18n + kiconthemes + kidletime + kio + knotifications + knotifyconfig + kstatusnotifieritem + ksyntaxhighlighting + ktextaddons + ktextwidgets + kwidgetsaddons + kxmlgui + plasma-activities + prison + purpose + qtkeychain-qt6 + qtwebsockets + qtnetworkauth + qtmultimedia + qtsvg + sonnet)) + (home-page "https://apps.kde.org/ruqola/") + (synopsis "Rocket.Chat client") + (description + "Ruqola is a @uref{https://www.rocket.chat/, Rocket.Chat} client for KDE +desktop. It supports: +@itemize +@item direct and thread messaging, +@item @acronym{OTR, Off-the-Record} messages, +@item individual and group channels, +@item autotranslate support, +@item emojis, +@item videos, +@item GIFs, +@item uploading auttachments, +@item searching messages in a room, +@item showing unread message information, +@item discussion rooms and configuring them, +@item storing messages in a local database, +@item exporting messages, +@item importing/exporting accounts, +@item registering and configuring accounts, +@item two-factor authentication via TOTP or email, +@item multiple accounts, +@item auto-away, +@item blocking/unblocking users, +@item administrator settings, +@item console moderation, +@item message URL previews, +@item channel list styles, +@item forwarding messages, +@item Rocket.Chat marketplace, +@item notifications, +@item replying directly from the notification and +@item DND image to websites or local folder. +@end itemize") + (license (list license:lgpl2.1+ license:gpl2+)))) diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm index 4b0e170b79..ad0b504268 100644 --- a/gnu/packages/kde-multimedia.scm +++ b/gnu/packages/kde-multimedia.scm @@ -147,13 +147,13 @@ This package is part of the KDE multimedia module.") (define-public haruna (package (name "haruna") - (version "1.2.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/haruna/" version "/haruna-" version ".tar.xz")) (sha256 - (base32 "1yv2qcjb2q17r416y055ib6kisvslg76qkh651ff5ilq6hd2c0gb")))) + (base32 "0gvwsxlrwn2s6i4agmwa0r1lq1fybfyxv933g2z3n76qnn9mkbrb")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) diff --git a/gnu/packages/kde-office.scm b/gnu/packages/kde-office.scm index 96c8318225..633ecb5595 100644 --- a/gnu/packages/kde-office.scm +++ b/gnu/packages/kde-office.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2024 Sughosha <sughosha@disroot.org> +;;; Copyright © 2024, 2025 Sughosha <sughosha@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,30 +19,38 @@ (define-module (gnu packages kde-office) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system qt) #:use-module (guix gexp) #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages algebra) #:use-module (gnu packages boost) + #:use-module (gnu packages cdrom) #:use-module (gnu packages compression) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages glib) #:use-module (gnu packages ghostscript) #:use-module (gnu packages graphics) #:use-module (gnu packages hunspell) #:use-module (gnu packages kde) #:use-module (gnu packages kde-frameworks) + #:use-module (gnu packages kde-multimedia) #:use-module (gnu packages libreoffice) #:use-module (gnu packages maths) + #:use-module (gnu packages mp3) + #:use-module (gnu packages networking) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) + #:use-module (gnu packages serialization) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages wm) - #:use-module (gnu packages xdisorg)) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml)) (define-public calligra (package @@ -182,3 +190,102 @@ in an aesthetic writing environment. It comes with the cmark-gfm Markdown processor built in, and can integrate with Pandoc, MultiMarkdown, Discount, and cmark processors if they are installed.") (license license:gpl3+))) + +(define-public tellico + (package + (name "tellico") + (version "4.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://invent.kde.org/office/tellico") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dni1n3caj2wb7kwiv08k2qqbv8swfd7xdil6aiqdvmv6xihycy7")) + (modules '((guix build utils))) + (snippet + ;; Fix including QtPrintSupport. + '(substitute* (find-files "src" "\\.(h|cpp)$") + (("#include <QPrint") "#include <QtPrintSupport/QPrint"))))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'set-home-directory + (lambda _ + (setenv "HOME" "/tmp"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "dbus-launch" "ctest"))))))) + (native-inputs + (list dbus extra-cmake-modules kdoctools pkg-config)) + (inputs + (list exempi + karchive + kcodecs + kcompletion + kconfig + kconfigwidgets + kcoreaddons + kcrash + kfilemetadata + kguiaddons + ki18n + kiconthemes + kio + kitemmodels + kjobwidgets + knewstuff + ktextwidgets + kwidgetsaddons + kxmlgui + libcdio + libcsv + libkcddb + libksane + libxml2 + libxslt + perl-text-bibtex + poppler-qt6 + qtcharts + qtsvg + qtwayland + qtwebengine + solid + sonnet + taglib + yaz)) + (home-page "https://tellico-project.org/") + (synopsis "Collection manager") + (description "Tellico is an application for organizing your collections. It +provides default templates for books, bibliographies, videos, music, video +games, coins, stamps, trading cards, comic books, and wines. It allows you to +enter your collection in a catalogue database, saving many different properties +like title, author, etc. + +Features: + +@itemize +@item Supports default collections of books, bibliographic entries, videos, + music, video games, comic books, coins, stamps, trading cards, wines, board + games, and file catalogs. +@item Supports user-defined custom collections. +@item Supports any number of user-defined fields, of several different types: + text, paragraph, list, checkbox, number, URL, date, images, and combinations. +@item Handles entries with multiple authors, genres, keywords, etc. +#item Automatically formats titles and names. +@item Supports collection searching and view filtering. +@item Sorts and groups collection by various properties. +@item Allows customizable entry templates through XSLT. +@item Imports MODS, BibTeX, RIS, CSV, PDF metadata, and many other formats. +@item Exports to BibTeX, ONIX, CSV, HTML, and other formats. +@item Imports information directly from Amazon.com, IMDb, Z39.50 servers, + PubMed, SRU servers, CrossRef.org, various other websites, and from external + scripts. +@item Imports CDDB data for cataloging audio CDs. +@item Scans and imports audio file collections, such as mp3 or ogg. +@end itemize") + (license license:gpl2+))) diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm index 1cff636844..d4c3d5c7a8 100644 --- a/gnu/packages/kde-utils.scm +++ b/gnu/packages/kde-utils.scm @@ -54,14 +54,14 @@ (define-public ark (package (name "ark") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/ark-" version ".tar.xz")) (sha256 (base32 - "1q0fyx65gp0d1vj4jxiaswdfzi15hbfi537f3i8y277b621qp3rs")) + "1f96k7jisjdvpg8wjrm1pyz6p6zkqcx70054cg3sd0244skrzrna")) ;; The libarchive package in Guix does not support ;; xar; disable related tests. (patches (search-patches "ark-skip-xar-test.patch")))) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 30e79dc59f..765176f42b 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com> -;;; Copyright © 2020, 2021, 2022, 2023, 2024 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2020-2025 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org> ;;; Copyright © 2021, 2022, 2023, 2024 Vinicius Monego <monego@posteo.net> @@ -19,6 +19,7 @@ ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2023 Mehmet Tekman <mtekman89@gmail.com> ;;; Copyright © 2024 Remco van 't Veer <remco@remworks.net> +;;; Copyright © 2025 Sughosha <sughosha@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -102,6 +103,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages samba) + #:use-module (gnu packages scanner) #:use-module (gnu packages sdl) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) @@ -829,7 +831,7 @@ painting, image manipulating and icon editing.") (define-public krita (package (name "krita") - (version "5.2.3") + (version "5.2.6") (source (origin (method url-fetch) @@ -837,7 +839,7 @@ painting, image manipulating and icon editing.") "mirror://kde/stable/krita/" version "/krita-" version ".tar.gz")) (sha256 - (base32 "1h2whbccgr2xhln4zx708hksg4284dhgjz10cnnkfgiwp7nlcsj6")) + (base32 "1yymhbybnjkl0smfqv6sm13iz4pp5ask3bjl5klv9x7xaj2i5ms8")) (patches (search-patches "krita-bump-sip-abi-version-to-12.8.patch")))) (build-system qt-build-system) (arguments @@ -1331,6 +1333,61 @@ multi-floor indoor maps.") transport data and for performing public transport journey queries.") (license (list license:lgpl2.0+)))) +(define-public ksanecore + (package + (name "ksanecore") + (version "24.12.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/release-service/" version + "/src/ksanecore-" version ".tar.xz")) + (sha256 + (base32 "0bh7i2qh5jdxfgy122vbwin7g46s16kdmam6szj14zc1ggnhqvfb")))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase)) + (native-inputs + (list extra-cmake-modules)) + (inputs + (list ki18n + sane-backends)) + (home-page "https://invent.kde.org/libraries/ksanecore") + (synopsis "Library providing logic to interface scanners") + (description + "KSaneCore is a library that provides a Qt interface for the SANE library +for scanner hardware.") + (license license:lgpl3+))) + +(define-public libksane + (package + (name "libksane") + (version "24.12.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/release-service/" version + "/src/libksane-" version ".tar.xz")) + (sha256 + (base32 "1sv81mpai350196x5sskvf2qsq2abmvjpv28zy7n8cy31if931ga")))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase)) + (native-inputs + (list extra-cmake-modules)) + (inputs + (list ki18n + ksanecore + ktextwidgets + kwallet + kwidgetsaddons)) + (home-page "https://invent.kde.org/graphics/libksane") + (synopsis "Library providing QWidget with logic to interface scanners") + (description + "Libksane is a Qt-based interface for SANE library to control flat +scanners.") + (license license:lgpl3+))) + (define-public snorenotify (package (name "snorenotify") @@ -1622,14 +1679,14 @@ Python, PHP, and Perl.") (define-public libkdegames (package (name "libkdegames") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/libkdegames-" version ".tar.xz")) (sha256 - (base32 "1sqhlhanb5vfbxp6g01rkgaj5v9gi1cxfgsmw39s0cikjfvidwpa")))) + (base32 "0y7y883bd9f2w9dq5l9r8jsi6hrk0fddaj9w7y1g9zk4rfkmm13y")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase)) (native-inputs @@ -1725,14 +1782,14 @@ creating routes by drag and drop and more.") (define-public okular (package (name "okular") - (version "24.08.2") + (version "24.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/" name "-" version ".tar.xz")) (sha256 - (base32 "1yy86fnra7dhc79m3ka0lqarp47336iln3fs8nyys2p6bdywg2a0")))) + (base32 "085zw8lrb2ll7p9178xl8m2bnvv5aw5xxy18wcyqnnfc9495ql5v")))) (build-system qt-build-system) (arguments (list @@ -1812,7 +1869,7 @@ a variety of formats, including PDF, PostScript, DejaVu, and EPub.") (define-public poxml (package (name "poxml") - (version "24.05.2") + (version "24.12.1") (source (origin (method url-fetch) (uri @@ -1820,12 +1877,12 @@ a variety of formats, including PDF, PostScript, DejaVu, and EPub.") "/src/poxml-" version ".tar.xz")) (sha256 (base32 - "0998ss7jib255x9kyhsz79lgnf97m7hbm6dsyh6xj9rcwv8i9srk")))) + "1mbkmh0zy5bi13vbcqdnppg2f1cl77hdfscy3wp2mfz209sa83a0")))) (build-system cmake-build-system) (native-inputs - (list extra-cmake-modules kdoctools-5)) + (list extra-cmake-modules kdoctools)) (inputs - (list gettext-minimal qtbase-5)) + (list gettext-minimal qtbase)) (home-page "https://apps.kde.org/development/") (synopsis "Tools for translating DocBook XML files with Gettext") (description "This is a collection of tools that facilitate translating diff --git a/gnu/packages/librewolf.scm b/gnu/packages/librewolf.scm index 42bae0fbc0..28abaefe53 100644 --- a/gnu/packages/librewolf.scm +++ b/gnu/packages/librewolf.scm @@ -21,7 +21,7 @@ ;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2023 Tomas Volf <wolf@wolfsden.cz> -;;; Copyright © 2023 Ian Eure <ian@retrospec.tv> +;;; Copyright © 2023, 2024, 2025 Ian Eure <ian@retrospec.tv> ;;; Copyright © 2024 Remco van 't Veer <remco@remworks.net> ;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; @@ -117,16 +117,16 @@ (define computed-origin-method (@@ (guix packages) computed-origin-method)) (define firefox-l10n - (let ((commit "bdfd4e10606204450a3e88d219ecf2b252349c2b")) + (let ((commit "d219efa7c64850dfb5904893e17a5431c7058192")) (origin (method git-fetch) (uri (git-reference (url "https://github.com/mozilla-l10n/firefox-l10n.git") (commit commit))) (file-name (git-file-name "firefox-l10n" commit)) - (sha256 (base32 "0i31b1024jck6467j9phcqvac32psl4nkyb0nm4h9zzyj8zw31xp"))))) + (sha256 (base32 "0g778fnxg5mkqm3rgryzl64f3n4pczngjdlby07vh2dycvmlyga8"))))) -(define* (make-librewolf-source #:key version firefox-hash librewolf-hash) +(define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n) (let* ((ff-src (firefox-source-origin (car (string-split version #\-)) firefox-hash)) @@ -154,7 +154,7 @@ #+(canonical-package xz) #+(canonical-package sed) #+(canonical-package grep) - #+(canonical-package gzip) + #+(canonical-package pigz) #+(canonical-package tar))) (set-path-environment-variable "PYTHONPATH" @@ -182,7 +182,7 @@ (substitute* "scripts/librewolf-patches.py" (("l10n_dir = Path(\"..\", \"l10n\")") (string-append - "l10n_dir = \"" #+firefox-l10n "\"")))) + "l10n_dir = \"" #+l10n "\"")))) ;; Run the build script (invoke "make" "all") @@ -194,26 +194,29 @@ "torbrowser-compare-paths.patch" "librewolf-use-system-wide-dir.patch"))))) -;; Define the versions of rust needed to build librewolf, trying to match -;; upstream. See the file taskcluster/ci/toolchain/rust.yml at -;; https://searchfox.org under the particular firefox release, like -;; mozilla-esr102. -(define rust-librewolf rust) ; 1.75 is the default in Guix, 1.65 is the minimum. +;;; Define the versions of rust needed to build firefox, trying to match +;;; upstream. See table at [0], `Uses' column for the specific version. +;;; Using `rust' will likely lead to a newer version then listed in the table, +;;; but since in Guix only the latest packaged Rust is officially supported, +;;; it is a tradeoff worth making. +;;; 0: https://firefox-source-docs.mozilla.org/writing-rust-code/update-policy.html +(define rust-librewolf rust-1.81) ;; Update this id with every update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. ;; ex: date '+%Y%m%d%H%M%S' -(define %librewolf-build-id "20241130102406") +(define %librewolf-build-id "20250121184331") (define-public librewolf (package (name "librewolf") - (version "133.0-1") + (version "134.0.1-1") (source (make-librewolf-source #:version version - #:firefox-hash "0q6cqfnwc2x09frdvsndmhck8ixrnbl281j9rqw5w8bd7fd2qas9" - #:librewolf-hash "1xf7gx3xm3c7dhch9gwpb0xp11lcyim1nrbm8sjljxdcs7iq9jy4")) + #:firefox-hash "1rb54b62zcmhabmx3rsd5badv9wwih6h19a0g80c03qgwwy8b8g3" + #:librewolf-hash "0bcjk3pkyq2w39n022kcpl8nqd8ng9653jc8gklfrfw9avwmpmk2" + #:l10n firefox-l10n)) (build-system gnu-build-system) (arguments (list @@ -569,10 +572,13 @@ (string-append (assoc-ref inputs lib-name) "/lib")) - '("mesa" "libpng-apng" "libnotify" "libva" - "pulseaudio" "gtk+" "pipewire" - ;; For U2F and WebAuthn - "eudev"))) + '("eudev" ; For U2F and WebAuthn + "libnotify" + "libpng-apng" + "libva" + "mesa" + "pipewire" ; For sharing on Wayland + "pulseaudio"))) ;; VA-API is run in the RDD (Remote Data Decoder) sandbox ;; and must be explicitly given access to files it needs. @@ -583,11 +589,12 @@ ;; runpaths of the needed libraries to add everything to ;; LD_LIBRARY_PATH. These will then be accessible in the ;; RDD sandbox. - (rdd-whitelist (map (cut string-append <> "/") - (delete-duplicates (append-map - runpaths-of-input - '("mesa" - "ffmpeg"))))) + (rdd-whitelist + (map (cut string-append <> "/") + (delete-duplicates + (append-map runpaths-of-input + '("mesa" + "ffmpeg"))))) (gtk-share (string-append (assoc-ref inputs "gtk+") "/share"))) @@ -661,7 +668,7 @@ gtk+ gtk+-2 hunspell - icu4c-73 + icu4c-75 jemalloc libcanberra libevent diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index a2bdda6057..a6e24f8c41 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -752,14 +752,14 @@ HID-Class devices.") (define-public python-hidapi (package (name "python-hidapi") - (version "0.7.99.post21") + (version "0.14.0.post2") (source (origin (method url-fetch) (uri (pypi-uri "hidapi" version)) (sha256 (base32 - "15ws59zdrxahf3k7z5rcrwc4jgv1307anif8ixm2cyb9ask1mgp0")) + "1b2q4kpzvfbbdy5xjh5nas3ymg7gspqai5dla6fk16h5dfx9f3kc")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. @@ -795,7 +795,7 @@ HID-Class devices.") (inputs (list hidapi libusb eudev)) (native-inputs - (list python-cython)) + (list python-cython pkg-config)) (home-page "https://github.com/trezor/cython-hidapi") (synopsis "Cython interface to hidapi") (description "This package provides a Cython interface to @code{hidapi}.") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b418ab05a2..5873b4db2e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2021, 2021-2024 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2021, 2021-2025 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org> @@ -792,6 +792,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (make-linux-libre-headers "5.15.49" "gnu" "13zqdcm4664vh7g57sxbfrlpsxm7zrma72mxdfdz7d9yndy2gfv8")) +;; linux 5.19 include loongarch support. +(define-public linux-libre-headers-5.19.17 + (make-linux-libre-headers "5.19.17" "gnu" + "0m1yabfvaanbzv0ip04r4kvs16aq0pp2dk93xzi5cq18i3vw351m")) + (define-public linux-libre-headers linux-libre-headers-5.15.49) ;; linux-libre-headers-latest points to the latest headers package ;; and should be used as a dependency for packages that depend on @@ -1262,32 +1267,38 @@ Linux kernel. It has been modified to remove all non-free binary blobs.") (default-extra-linux-options linux-libre-version)))) (define-public linux-libre-lts-arm64-generic - (make-linux-libre* linux-libre-lts-version - linux-libre-lts-gnu-revision - linux-libre-lts-source - '("aarch64-linux") - #:defconfig "defconfig" - #:extra-version "arm64-generic" - #:extra-options - (append - `(;; Provide support for ath9k wireless - ("CONFIG_ATH9K_HTC" . m) - ;; needed to fix the RTC on rockchip platforms - ("CONFIG_RTC_DRV_RK808" . #t) - ;; Pinebook display, battery, charger and usb - ("CONFIG_DRM_ANALOGIX_ANX6345" . m) - ("CONFIG_CHARGER_AXP20X" . m) - ("CONFIG_INPUT_AXP20X_PEK" . m) - ("CONFIG_CHARGER_AXP20X" . m) - ("CONFIG_BATTERY_AXP20X" . m) - ("CONFIG_PINCTRL_AXP209" . m) - ("CONFIG_AXP20X_POWER" . m) - ("CONFIG_AXP20X_ADC" . m) - ;; Pinebook PRO battery and sound support - ("CONFIG_BATTERY_CW2015" . m) - ("CONFIG_CHARGER_GPIO" . m) - ("CONFIG_SND_SOC_ES8316" . m)) - (default-extra-linux-options linux-libre-lts-version)))) + (if (string=? linux-libre-lts-version linux-libre-version) + + ;; Make it a strict alias so that the user interface does not see two + ;; packages with the exact same name and version. + linux-libre-arm64-generic + + (make-linux-libre* linux-libre-lts-version + linux-libre-lts-gnu-revision + linux-libre-lts-source + '("aarch64-linux") + #:defconfig "defconfig" + #:extra-version "arm64-generic" + #:extra-options + (append + `( ;; Provide support for ath9k wireless + ("CONFIG_ATH9K_HTC" . m) + ;; needed to fix the RTC on rockchip platforms + ("CONFIG_RTC_DRV_RK808" . #t) + ;; Pinebook display, battery, charger and usb + ("CONFIG_DRM_ANALOGIX_ANX6345" . m) + ("CONFIG_CHARGER_AXP20X" . m) + ("CONFIG_INPUT_AXP20X_PEK" . m) + ("CONFIG_CHARGER_AXP20X" . m) + ("CONFIG_BATTERY_AXP20X" . m) + ("CONFIG_PINCTRL_AXP209" . m) + ("CONFIG_AXP20X_POWER" . m) + ("CONFIG_AXP20X_ADC" . m) + ;; Pinebook PRO battery and sound support + ("CONFIG_BATTERY_CW2015" . m) + ("CONFIG_CHARGER_GPIO" . m) + ("CONFIG_SND_SOC_ES8316" . m)) + (default-extra-linux-options linux-libre-lts-version))))) (define-public linux-libre-arm64-generic-5.10 (make-linux-libre* linux-libre-5.10-version diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index ab6ec76a5f..becb5ade1d 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -23,7 +23,7 @@ ;;; Copyright © 2020-2024 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2021, 2022 Aurora <rind38@disroot.org> ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org> -;;; Copyright © 2021-2024 André A. Gomes <andremegafone@gmail.com> +;;; Copyright © 2021-2025 André A. Gomes <andremegafone@gmail.com> ;;; Copyright © 2021, 2022, 2023 Cage <cage-dev@twistfold.it> ;;; Copyright © 2021 Cameron Chaparro <cameron@cameronchaparro.com> ;;; Copyright © 2021, 2024 Charles Jackson <charles.b.jackson@protonmail.com> @@ -45,6 +45,7 @@ ;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2024 Nik Gaffney <nik@fo.am> ;;; Copyright © 2024 Grigory Shepelev <shegeley@gmail.com> +;;; Copyright © 2025 Junker <dk@junkeria.club> ;;; ;;; This file is part of GNU Guix. ;;; @@ -126,6 +127,7 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages statistics) #:use-module (gnu packages tcl) + #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages video) @@ -933,8 +935,17 @@ within your Lisp program, so you don't need to invoke a separate tool.") (sha256 (base32 "0pdj779j3nwzn8f1661vf00rrjrbks1xgiq0rvwjw6qyxsfqfnl9")))) (build-system asdf-build-system/sbcl) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'build 'build-doc + (lambda _ + (with-directory-excursion "doc" + (invoke "make" "info") + (install-file "alexandria.info" + (string-append #$output "/share/info")))))))) (native-inputs - (list sbcl-rt)) + (list sbcl-rt texinfo)) (synopsis "Collection of portable utilities for Common Lisp") (description "Alexandria is a collection of portable utilities. It does not contain @@ -947,7 +958,15 @@ portable between implementations.") (sbcl-package->cl-source-package sbcl-alexandria)) (define-public ecl-alexandria - (sbcl-package->ecl-package sbcl-alexandria)) + (let ((pkg (sbcl-package->ecl-package sbcl-alexandria))) + (package + (inherit pkg) + (outputs '("out")) + (arguments + (substitute-keyword-arguments (package-arguments pkg) + ((#:phases phases) + `(modify-phases ,phases + (delete 'build-doc)))))))) (define-public sbcl-alexandria-plus (let ((commit "adafb09838a84895bedb119f8253b89b6a04a2c5") @@ -12527,7 +12546,7 @@ based on code from chapter 24 of the book @emph{Practical Common Lisp}.") (define-public sbcl-command-line-args (package (name "sbcl-command-line-args") - (version "0.1.2") + (version "0.1.3") (source (origin (method git-fetch) @@ -12536,7 +12555,7 @@ based on code from chapter 24 of the book @emph{Practical Common Lisp}.") (commit (string-append "v" version)))) (file-name (git-file-name "cl-command-line-args" version)) (sha256 - (base32 "1ds3s26lbl7j8i3m8d7c69jdcpwdc21qjqd9sarrz6mw1i26xfd5")))) + (base32 "1vzybqnqwrfl8b708h8wx8xsm1ml5c3r0lcx23615hb4p800iagf")))) (build-system asdf-build-system/sbcl) (arguments '(#:asd-systems '("whereiseveryone.command-line-args"))) @@ -29978,6 +29997,36 @@ backtrace portably.") (define-public ecl-trivial-backtrace (sbcl-package->ecl-package sbcl-trivial-backtrace)) +(define-public sbcl-trivial-battery + (let ((commit "318c9da88b4d11d3f33062e0fd09be660a383404") + (revision "1")) + (package + (name "sbcl-trivial-battery") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pokepay/trivial-battery") + (commit commit))) + (file-name (git-file-name "cl-trivial-battery" version)) + (sha256 + (base32 "12ni2502v9gjszhjsh0aai08cm64gl8g815xghdjhcf7y34ffl2b")))) + (build-system asdf-build-system/sbcl) + (inputs (list sbcl-split-sequence)) + (home-page "https://github.com/pokepay/trivial-battery") + (synopsis "Trivial library for getting the battery information") + (description + "This package provides a Common Lisp library for getting the battery +information.") + (license license:bsd-2)))) + +(define-public cl-trivial-battery + (sbcl-package->cl-source-package sbcl-trivial-battery)) + +(define-public ecl-trivial-battery + (sbcl-package->ecl-package sbcl-trivial-battery)) + (define-public sbcl-trivial-benchmark (let ((commit "1fbc8d15f09ed8aa426bc73956b8b7c9b2668802") (revision "2")) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index c910e5888b..a81a9ab59e 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -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-2025 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> @@ -594,74 +594,92 @@ output), and Binutils.") (sha256 (base32 (assoc-ref %llvm-monorepo-hashes version))) (patches (map search-patch (assoc-ref %llvm-patches version))))) -;;; TODO: Make the base llvm all other LLVM inherit from on core-updates. -(define-public llvm-15 - (package - (name "llvm") - (version "15.0.7") - (source (llvm-monorepo version)) - (build-system cmake-build-system) - (outputs '("out" "opt-viewer")) - (arguments - (list - #:configure-flags - #~(list - ;; These options are required for cross-compiling LLVM according - ;; to <https://llvm.org/docs/HowToCrossCompileLLVM.html>. - #$@(if (%current-target-system) - (or (and=> - (system->llvm-target-arch) - (lambda (llvm-target-arch) - #~((string-append "-DLLVM_TABLEGEN=" - #+(file-append this-package - "/bin/llvm-tblgen")) - #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE=" - (%current-target-system)) - #$(string-append "-DLLVM_TARGET_ARCH=" llvm-target-arch) - #$(string-append "-DLLVM_TARGETS_TO_BUILD=" - (system->llvm-target))))) - (raise (condition - (&package-unsupported-target-error - (package this-package) - (target (%current-target-system)))))) - '()) - ;; Note: sadly, the build system refuses the use of - ;; -DBUILD_SHARED_LIBS=ON and the large static archives are needed to - ;; build clang-runtime, so we cannot delete them. - "-DLLVM_BUILD_LLVM_DYLIB=ON" - "-DLLVM_LINK_LLVM_DYLIB=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" ;for some third-party utilities - "-DLLVM_INSTALL_UTILS=ON" ;needed for rustc - "-DLLVM_PARALLEL_LINK_JOBS=1") ;cater to smaller build machines - ;; Don't use '-g' during the build, to save space. - #:build-type "Release" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'change-directory - (lambda _ - (chdir "llvm"))) - (add-after 'install 'install-opt-viewer - (lambda* (#:key outputs #:allow-other-keys) - (let* ((opt-viewer-share (string-append #$output:opt-viewer - "/share"))) - (mkdir-p opt-viewer-share) - (rename-file (string-append #$output "/share/opt-viewer") - opt-viewer-share))))))) - (native-inputs (list python-wrapper perl)) - (inputs (list libffi)) - (propagated-inputs (list zlib)) ;to use output from llvm-config - (home-page "https://www.llvm.org") - (synopsis "Optimizing compiler infrastructure") - (description - "LLVM is a compiler infrastructure designed for compile-time, link-time, +;; A base llvm package that can be used for creating other llvm packages. +(define make-llvm + (mlambda (version) + (package + (name "llvm") + (version version) + (source (llvm-monorepo version)) + (build-system cmake-build-system) + (outputs '("out" "opt-viewer")) + (arguments + (list + #:configure-flags + #~(list + ;; These options are required for cross-compiling LLVM according + ;; to <https://llvm.org/docs/HowToCrossCompileLLVM.html>. + #$@(if (%current-target-system) + (or (and=> + (system->llvm-target-arch) + (lambda (llvm-target-arch) + #~((string-append "-DLLVM_TABLEGEN=" + #+(file-append this-package + "/bin/llvm-tblgen")) + #$@(if (version>=? version "16.0") + #~((string-append + "-DLLVM_NATIVE_TOOL_DIR=" + #+(file-append this-package "/bin"))) + #~()) + #$@(if (version>=? version "17.0") + #~((string-append "-DLLVM_HOST_TRIPLE=" + #$(%current-target-system))) + #~((string-append "-DLLVM_DEFAULT_TARGET_TRIPLE=" + #$(%current-target-system)) + (string-append "-DLLVM_TARGET_ARCH=" + #$llvm-target-arch))) + #$(string-append "-DLLVM_TARGETS_TO_BUILD=" + (system->llvm-target))))) + (raise (condition + (&package-unsupported-target-error + (package this-package) + (target (%current-target-system)))))) + '()) + ;; Note: sadly, the build system refuses the use of + ;; -DBUILD_SHARED_LIBS=ON and the large static archives are needed to + ;; build clang-runtime, so we cannot delete them. + "-DLLVM_BUILD_LLVM_DYLIB=ON" + "-DLLVM_LINK_LLVM_DYLIB=ON" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_ENABLE_RTTI=ON" ;for some third-party utilities + "-DLLVM_INSTALL_UTILS=ON" ;needed for rustc + "-DLLVM_PARALLEL_LINK_JOBS=1") ;cater to smaller build machines + ;; Don't use '-g' during the build, to save space. + #:build-type "Release" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "llvm"))) + (add-after 'install 'install-opt-viewer + (lambda* (#:key outputs #:allow-other-keys) + (let* ((opt-viewer-share (string-append #$output:opt-viewer + "/share"))) + (mkdir-p opt-viewer-share) + (rename-file (string-append #$output "/share/opt-viewer") + opt-viewer-share)))) + ;; The build daemon goes OOM on i686-linux on this phase. + #$@(if (and (version>=? version "16.0") + (target-x86-32?)) + #~((delete 'make-dynamic-linker-cache)) + #~())))) + (native-inputs (list python-wrapper perl)) + (inputs (list libffi)) + (propagated-inputs (list zlib)) ;to use output from llvm-config + (home-page "https://www.llvm.org") + (synopsis "Optimizing compiler infrastructure") + (description + "LLVM is a compiler infrastructure designed for compile-time, link-time, runtime, and idle-time optimization of programs from arbitrary programming languages. It currently supports compilation of C and C++ programs, using front-ends derived from GCC 4.0.1. A new front-end for the C family of languages is in development. The compiler infrastructure includes mirror sets of programming tools as well as libraries with equivalent functionality.") - (license license:asl2.0) - (properties `((release-monitoring-url . ,%llvm-release-monitoring-url))))) + (license license:asl2.0) + (properties `((release-monitoring-url . ,%llvm-release-monitoring-url)))))) + +(define-public llvm-15 + (make-llvm "15.0.7")) (define-public llvm-14 (package @@ -1428,18 +1446,7 @@ Library.") #:patches '("clang-3.5-libc-search-path.patch"))) (define-public llvm-16 - (package - (inherit llvm-15) - (version "16.0.6") - (source (llvm-monorepo version)) - (arguments - (substitute-keyword-arguments (package-arguments llvm-15) - ;; The build daemon goes OOM on i686-linux on this phase. - ((#:phases phases #~'%standard-phases) - (if (target-x86-32?) - #~(modify-phases #$phases - (delete 'make-dynamic-linker-cache)) - phases)))))) + (make-llvm "16.0.6")) (define-public clang-runtime-16 (clang-runtime-from-llvm llvm-16)) @@ -1470,18 +1477,7 @@ Library.") (make-clang-toolchain clang-16 libomp-16)) (define-public llvm-17 - (package - (inherit llvm-15) - (version "17.0.6") - (source (llvm-monorepo version)) - (arguments - (substitute-keyword-arguments (package-arguments llvm-15) - ;; The build daemon goes OOM on i686-linux on this phase. - ((#:phases phases #~'%standard-phases) - (if (target-x86-32?) - #~(modify-phases #$phases - (delete 'make-dynamic-linker-cache)) - phases)))))) + (make-llvm "17.0.6")) (define-public clang-runtime-17 (clang-runtime-from-llvm llvm-17)) @@ -1518,6 +1514,30 @@ Library.") (source (llvm-monorepo version)) (arguments (substitute-keyword-arguments (package-arguments llvm-15) + ((#:modules modules '((guix build cmake-build-system) + (guix build utils))) + (if (%current-target-system) + `((ice-9 regex) + (srfi srfi-1) + (srfi srfi-26) + ,@modules) + modules)) + ((#:configure-flags cf #~'()) + (if (%current-target-system) + ;; Use a newer version of llvm-tblgen and add the new + ;; configure-flag needed for cross-building. + #~(cons* (string-append "-DLLVM_TABLEGEN=" + #+(file-append this-package + "/bin/llvm-tblgen")) + (string-append "-DLLVM_NATIVE_TOOL_DIR=" + #+(file-append this-package "/bin")) + (string-append "-DLLVM_HOST_TRIPLE=" + #$(%current-target-system)) + (remove + (cut string-match + "-DLLVM_(DEFAULT_TARGET|TARGET_ARCH|TABLEGEN).*" <>) + #$cf)) + cf)) ;; The build daemon goes OOM on i686-linux on this phase. ((#:phases phases #~'%standard-phases) (if (target-x86-32?) @@ -1554,18 +1574,7 @@ Library.") (make-clang-toolchain clang-18 libomp-18)) (define-public llvm-19 - (package - (inherit llvm-15) - (version "19.1.4") - (source (llvm-monorepo version)) - (arguments - (substitute-keyword-arguments (package-arguments llvm-15) - ;; The build daemon goes OOM on i686-linux on this phase. - ((#:phases phases #~'%standard-phases) - (if (target-x86-32?) - #~(modify-phases #$phases - (delete 'make-dynamic-linker-cache)) - phases)))))) + (make-llvm "19.1.4")) (define-public clang-runtime-19 (clang-runtime-from-llvm llvm-19)) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index cd39b34d83..d248c1fc34 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -583,7 +583,7 @@ Performance is achieved by using the LLVM JIT compiler.") (deprecated-package "guile-aiscm-next" guile-aiscm)) (define-public llama-cpp - (let ((tag "b4137")) + (let ((tag "b4549")) (package (name "llama-cpp") (version (string-append "0.0.0-" tag)) @@ -595,7 +595,7 @@ Performance is achieved by using the LLVM JIT compiler.") (commit tag))) (file-name (git-file-name name tag)) (sha256 - (base32 "0agm0188f9y2pr15v83a2fm0k9b8wag96qb3ryq4l2g6nkysiqlj")))) + (base32 "1xf2579q0r8nv06kj8padi6w9cv30w58vdys65nq8yzm3dy452a1")))) (build-system cmake-build-system) (arguments (list @@ -630,9 +630,8 @@ Performance is achieved by using the LLVM JIT compiler.") ;; run in Guix build environment (lambda _ (substitute* '("examples/eval-callback/CMakeLists.txt") - (("add_test") "#add_test")) - (substitute* '("examples/eval-callback/CMakeLists.txt") - (("set_property") "#set_property")))) + (("COMMAND llama-eval-callback") + "COMMAND true llama-eval-callback")))) (add-before 'install 'install-python-scripts (lambda _ (let ((bin (string-append #$output "/bin/"))) @@ -1092,6 +1091,76 @@ It currently houses implementations of ") (license license:expat))) ; MIT License +(define-public python-pot + (package + (name "python-pot") + (version "0.9.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pot" version)) + (sha256 + (base32 "0hk0dmjgnpwka0a7gyzrcq155wzlvzcrsav3qaizyg0wymzywi4n")) + (snippet '(delete-file "ot/lp/emd_wrap.cpp")))) + (build-system pyproject-build-system) + (propagated-inputs + (list python-autograd + python-numpy + python-pytorch + python-pytorch-geometric + python-pymanopt + python-scikit-learn + python-scipy)) + (native-inputs (list python-cython + python-setuptools + python-wheel)) + (home-page "https://github.com/PythonOT/POT") + (synopsis "Python Optimal Transport Library") + (description "This Python library provides several solvers for +optimization problems related to Optimal Transport for signal, image +processing and machine learning.") + (license license:expat))) + +(define-public python-pymanopt + (package + (name "python-pymanopt") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pymanopt" version)) + (sha256 + (base32 "1nm1yz5hbj1valqq23r8c1g9rhfdndfswlqv6xrnvc3f8fd95167")))) + (build-system pyproject-build-system) + (arguments + (list + ;; Tests require jax and tensorflow, which are optional. + #:tests? #false + #:phases + '(modify-phases %standard-phases + ;; This is probably a bad idea. We don't have scipy 1.13 just yet. + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "pyproject.toml" + ((",!=1.12\\.\\*") ""))))))) + (propagated-inputs (list python-numpy python-scipy)) + (native-inputs (list python-autograd + python-flake8 + python-flake8-bugbear + python-isort + python-matplotlib + python-pytest + python-pytest-cov + python-setuptools + python-setuptools-scm + python-wheel)) + (home-page "https://pymanopt.org/") + (synopsis "Toolbox for optimization on Riemannian manifolds") + (description + "This package is a toolbox for optimization on Riemannian manifolds with +support for automatic differentiation.") + (license license:bsd-3))) + (define-public python-ripser (package (name "python-ripser") @@ -5530,6 +5599,37 @@ and common image transformations for computer vision.") Python.") (license license:bsd-3))) +(define-public python-geomloss + (package + (name "python-geomloss") + (version "0.2.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "geomloss" version)) + (sha256 + (base32 "1szsjpcwjlvqiiws120fwn581a6hs8gm9si8c75v40ahbh44f729")))) + (build-system pyproject-build-system) + ;; There are no automated tests. + (arguments (list #:tests? #false)) + (propagated-inputs (list python-numpy python-pytorch)) + (native-inputs (list python-setuptools python-wheel)) + (home-page "https://www.kernel-operations.io/geomloss/") + (synopsis + "Geometric loss functions between point clouds, images and volumes") + (description + "The GeomLoss library provides efficient GPU implementations for: + +@itemize +@item Kernel norms (also known as Maximum Mean Discrepancies). +@item Hausdorff divergences, which are positive definite generalizations of +the Chamfer-ICP loss and are analogous to log-likelihoods of Gaussian Mixture +Models. +@item Debiased Sinkhorn divergences, which are affordable yet positive and +definite approximations of Optimal Transport (Wasserstein) distances. +@end itemize") + (license license:expat))) + (define-public python-hmmlearn (package (name "python-hmmlearn") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 710cdc96ef..91b106c33c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -3311,7 +3311,9 @@ from the Cyrus IMAP project.") libxcrypt zlib)) (native-inputs - (list bison + (list autoconf + automake + bison groff ;for man pages pkg-config)) (arguments @@ -3336,10 +3338,13 @@ from the Cyrus IMAP project.") ;; Fix some incorrectly hard-coded external tool file names. (add-after 'unpack 'patch-FHS-file-names (lambda* (#:key inputs #:allow-other-keys) - ;; avoids warning smtpd: couldn't enqueue offline message - ;; smtpctl exited abnormally - (substitute* "usr.sbin/smtpd/smtpd.h" - (("/usr/bin/smtpctl") "/run/privileged/bin/smtpctl")) + (substitute* "mk/pathnames" + ;; avoids warning smtpd: couldn't enqueue offline message + ;; smtpctl exited abnormally + (("(-DPATH_SMTPCTL=).*\\\\" all def) + (string-append def "\\\"/run/privileged/bin/smtpctl\\\" \\")) + (("(-DPATH_MAKEMAP=).*\\\\" all def) + (string-append def "\\\"/run/privileged/bin/makemap\\\" \\"))) (substitute* "usr.sbin/smtpd/smtpctl.c" ;; ‘gzcat’ is auto-detected at compile time, but ‘cat’ isn't. (("/bin/cat" file) (search-input-file inputs file))) diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 59c117f226..864d84d89e 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -475,11 +475,13 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." glibc))))) (inputs `(("kernel-headers" - ,(if (or (and (%current-target-system) + ,(cond ((or (and (%current-target-system) (target-hurd? (%current-target-system))) (string-suffix? "-hurd" (%current-system))) - gnumach-headers - linux-libre-headers)))) + gnumach-headers) + ;; linux 5.19 include loongarch support. + ((target-loongarch64?) linux-libre-headers-5.19.17) + (else linux-libre-headers))))) (propagated-inputs '()) ;; Only one output. diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ed9c7bfa0e..1e9de1f38c 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1773,6 +1773,7 @@ extremely large and complex data collections.") (license (license:x11-style "https://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING")))) +;; When updating this package, please also update hdf-java. (define-public hdf5-1.10 (package (inherit hdf5-1.8) @@ -1835,131 +1836,97 @@ extremely large and complex data collections.") ;; Default version of HDF5. hdf5-1.10) +;; Keep this in sync with the current hdf5 package. (define-public hdf-java (package (name "hdf-java") - (version "3.3.2") + (version "1.10.9") (source (origin - (method url-fetch) - (uri (string-append - "https://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-" - version "/src/CMake-hdfjava-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/HDFGroup/hdf5") + (commit (string-append "hdf5-" + (string-map + (lambda (c) (if (char=? c #\.) #\_ c)) + version))))) + (file-name (git-file-name name version)) (sha256 - (base32 "0m1gp2aspcblqzmpqbdpfp6giskws85ds6p5gz8sx7asyp7wznpr")) + (base32 "1sjdcnafvzsy99vqhybkps8rnwmxb6fsvmkw89wb2mrrp4vi5z9v")) (modules '((guix build utils))) (snippet ; Make sure we don't use the bundled sources and binaries. - `(begin - (for-each delete-file - (list "SZip.tar.gz" "ZLib.tar.gz" "JPEG8d.tar.gz" - "HDF4.tar.gz" "HDF5.tar.gz")) - (delete-file-recursively ,(string-append "hdfjava-" version "/lib")) - #t)))) + '(for-each delete-file + (find-files "java/lib" "\\.jar$"))))) (build-system gnu-build-system) + (arguments + (list + #:configure-flags + #~(list "--enable-java" + "--disable-tools") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unbundle + (lambda* (#:key inputs #:allow-other-keys) + (let ((simple + (search-input-file + inputs "/lib/m2/org/slf4j/slf4j-simple/1.7.25/slf4j-simple-1.7.25.jar")) + (api + (search-input-file + inputs "/lib/m2/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar")) + (junit + (search-input-file + inputs "/lib/m2/junit/junit/4.12/junit-4.12.jar")) + (hamcrest + (search-input-file + inputs "/lib/m2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"))) + (substitute* (append (find-files "java" "Makefile.am") + (find-files "java" "Makefile.in")) + (("\\$\\(top_srcdir\\)/java/lib/ext/slf4j-simple-1.7.33.jar") + simple) + (("\\$\\(top_srcdir\\)/java/lib/slf4j-api-1.7.33.jar") + api) + (("\\$\\(top_srcdir\\)/java/lib/junit.jar") + junit) + (("\\$\\(top_srcdir\\)/java/lib/hamcrest-core.jar") + hamcrest)) + (substitute* '("java/test/junit.sh.in" + "java/examples/datatypes/JavaDatatypeExample.sh.in" + "java/examples/datasets/JavaDatasetExample.sh.in" + "java/examples/intro/JavaIntroExample.sh.in" + "java/examples/groups/JavaGroupExample.sh.in") + (("^LIST_JAR_TESTFILES=\"" m) + (string-append m hamcrest "\n" + junit "\n" + api "\n" + simple "\n")) + (("^\\$HDFLIB_HOME/.*") "") + (("\"\\$BLDLIBDIR\"/junit.jar") + junit) + (("\"\\$BLDLIBDIR\"/hamcrest-core.jar") + hamcrest) + (("\"\\$BLDLIBDIR\"/slf4j-api-1.7.33.jar") + api) + (("\"\\$BLDLIBDIR\"/slf4j-simple-1.7.33.jar") + simple) + (("/usr/bin/test") + (search-input-file inputs "/bin/test")) + (("/usr/bin/uname") + (search-input-file inputs "/bin/uname"))) + (substitute* (find-files "java/test/testfiles/" ".*\\.txt$") + (("JUnit version 4.11") + "JUnit version 4.12-SNAPSHOT")))))))) (native-inputs - `(("jdk" ,icedtea "jdk") - ("automake" ,automake) ; For up to date 'config.guess' and 'config.sub'. - ;; For tests: - ("hamcrest-core" ,java-hamcrest-core) - ("junit" ,java-junit) - ("slf4j-simple" ,java-slf4j-simple))) + (list `(,icedtea "jdk") + ;; For tests: + java-hamcrest-core + java-junit + java-slf4j-simple)) (inputs - `(("hdf4" ,hdf4) - ("hdf5" ,hdf5-1.8) - ("zlib" ,zlib) - ("libjpeg" ,libjpeg-turbo) - ("slf4j-api" ,java-slf4j-api))) - (arguments - `(#:configure-flags - (list (string-append "--target=" ,(or (%current-target-system) (%current-system))) - (string-append "--with-jdk=" (assoc-ref %build-inputs "jdk") "/include," - (assoc-ref %build-inputs "jdk") "/lib" ) - (string-append "--with-hdf4=" (assoc-ref %build-inputs "hdf4") "/lib") - (string-append "--with-hdf5=" (assoc-ref %build-inputs "hdf5") "/lib")) - - #:make-flags - (list (string-append "HDFLIB=" (assoc-ref %build-inputs "hdf4") "/lib") - (string-append "HDF5LIB=" (assoc-ref %build-inputs "hdf5") "/lib") - (string-append "ZLIB=" (search-input-file %build-inputs "/lib/libz.so")) - (string-append "JPEGLIB=" - (search-input-file %build-inputs "/lib/libjpeg.so")) - "LLEXT=so") - - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir-to-source - (lambda _ (chdir ,(string-append "hdfjava-" version)) #t)) - (add-before 'configure 'patch-build - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "configure" - (("COPT=\"") "COPT=\"-O2 ") ; CFLAGS is ignored in Makefiles - (("/bin/cat") (which "cat"))) - ;; Set classpath for compilation - (substitute* '("hdf/hdf5lib/Makefile.in" - "hdf/hdf5lib/exceptions/Makefile.in" - "hdf/hdflib/Makefile.in") - (("\\$\\(TOP\\)/lib/slf4j-api-1\\.7\\.5\\.jar") - ;; 'slf4j-api-X.Y.Z.jar' is installed in a Maven-style - ;; directory, so use 'find-files' to find it. - (car (find-files (assoc-ref inputs "slf4j-api") - "^slf4j-api.*\\.jar$")))) - ;; Replace outdated config.sub and config.guess: - (with-directory-excursion "config" - (for-each (lambda (file) - (install-file - (search-input-file inputs - (string-append - "/share/automake-" - ,(version-major+minor (package-version automake)) - "/" file)) - ".")) - '("config.sub" "config.guess"))) - - ;; Fix embedded version number - (let ((hdf5version (list ,@(string-split (package-version hdf5) #\.)))) - (substitute* "hdf/hdf5lib/H5.java" - (("1, 8, 19") - (string-join hdf5version ", ")))) - - (mkdir-p (string-append (assoc-ref outputs "out"))) - ;; Set classpath for tests - (let* ((build-dir (getcwd)) - (lib (string-append build-dir "/lib")) - (jhdf (string-append lib "/jhdf.jar")) - (jhdf5 (string-append lib "/jhdf5.jar")) - (testjars - (append - (map (lambda (i) - (car (find-files (assoc-ref inputs i) - (string-append "^" i - ".*\\.jar$")))) - '("slf4j-api" "slf4j-simple")) - (list - (car (find-files (assoc-ref inputs "junit") "jar$")) - (car (find-files (assoc-ref inputs "hamcrest-core") - "jar$"))))) - (class-path - (string-join `("." ,build-dir ,jhdf ,jhdf5 ,@testjars) ":"))) - - (substitute* '("test/hdf5lib/Makefile.in" - "test/hdf5lib/junit.sh.in" - "examples/runExample.sh.in") - (("/usr/bin/test") - (search-input-file inputs "/bin/test")) - (("/usr/bin/uname") - (search-input-file inputs "/bin/uname")) - (("CLASSPATH=[^\n]*") - (string-append "CLASSPATH=" class-path))) - (setenv "CLASSPATH" class-path)) - #t)) - (add-before 'check 'build-examples - (lambda _ - (apply invoke `("javac" - ,@(find-files "examples" ".*\\.java")))))) - - #:parallel-build? #f - - #:parallel-tests? #f )) + (list hdf4 + hdf5 + java-slf4j-api + libjpeg-turbo + zlib)) (home-page "https://support.hdfgroup.org/products/java") (synopsis "Java interface for the HDF4 and HDF5 libraries") (description "Java HDF Interface (JHI) and Java HDF5 Interface (JHI5) use @@ -10898,3 +10865,25 @@ groups. Documentation is available on (home-page "http://www-math.univ-poitiers.fr/~maavl/LiE/") ;; <http://www-math.univ-poitiers.fr/~maavl/LiE/> says LGPL. (license license:lgpl3+))) + +(define-public exprtk + (package + (name "exprtk") + (version "0.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ArashPartow/exprtk") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pszh11w29nc256qhil51g3635n06ncf0ihg7g4h86jrhqsk7183")))) + (build-system copy-build-system) + (arguments + '(#:install-plan '(("exprtk.hpp" "include/")))) + (synopsis "C++ Mathematical Expression Parsing And Evaluation Library") + (description "ExprTk is a C++ headers only library for mathematical +expression parsing and evaluation.") + (home-page "https://www.partow.net/programming/exprtk/index.html") + (license license:expat))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 01361c6889..f6ac865512 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -44,7 +44,7 @@ ;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu> ;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> -;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org> +;;; Copyright © 2024, 2025 Igor Goryachev <igor@goryachev.org> ;;; Copyright © 2024 Nguyễn Gia Phong <mcsinyx@disroot.org> ;;; ;;; This file is part of GNU Guix. @@ -3739,7 +3739,7 @@ a text snippet), using @code{libphonenumber}.") (define-public ejabberd (package (name "ejabberd") - (version "24.07") + (version "24.12") (source (origin (method git-fetch) @@ -3748,7 +3748,7 @@ a text snippet), using @code{libphonenumber}.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0d5i9skgfjzs2100k0g99sigc2w61480ysz3va6pmb4nx43100g3")))) + (base32 "1l82d8l4ck60vijzirl4xkyc2wv28jnq6amwi8dralm7r218hg7m")))) (build-system rebar-build-system) (inputs (list bash-minimal coreutils procps sed)) (native-inputs diff --git a/gnu/packages/mtools.scm b/gnu/packages/mtools.scm index 267e0af3b0..bd17ac1c52 100644 --- a/gnu/packages/mtools.scm +++ b/gnu/packages/mtools.scm @@ -29,14 +29,14 @@ (define-public mtools (package (name "mtools") - (version "4.0.46") + (version "4.0.47") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mtools/mtools-" version ".tar.bz2")) (sha256 (base32 - "1h0npkb90hl5ki841j6npbvsplwj05clgv14g5wbg3zqb7c8vbcs")) + "1zy7gjyrbr9myixw1gcwgvc7klbdql4sjwayp68hbxf3ih3hdaii")) (patches (search-patches "mtools-mformat-uninitialized.patch")))) (build-system gnu-build-system) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 12b4d72a55..6659dc0d53 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -4373,7 +4373,8 @@ your music.") python-musicbrainzngs python-requests python-six - python-unidecode)) + python-unidecode + python-typing-extensions)) (home-page "https://github.com/unrblt/beets-bandcamp") (synopsis "Bandcamp plugin for beets") (description diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 467e2e97da..970a502b59 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -65,6 +65,7 @@ ;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev> ;;; Copyright © 2024 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org> +;;; Copyright © 2025 Sughosha <sughosha@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -4637,6 +4638,29 @@ network.") QUIC protocol.") (license license:expat))) +(define-public yaz + (package + (name "yaz") + (version "5.34.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.indexdata.com/pub/yaz/yaz-" + version ".tar.gz")) + (sha256 + (base32 "1h54vda4rgisih309jbdzs6d5vk5mfv5ca9csdbwwrg8hgjbjk6f")))) + (build-system gnu-build-system) + (home-page "https://www.indexdata.com/resources/software/yaz/") + (synopsis "Z39.50 toolkit for C") + (description + "YAZ is a C/C++ library for information retrieval applications using +@uref{https://www.loc.gov/z3950/, Z39.50}, +@uref{https://www.loc.gov/standards/sru/, SRU} or +@uref{https://solr.apache.org/, Solr Web Service} protocols for information +retrieval. It also offers @uref{https://zoom.z3950.org/, ZOOM} API +implementing them.") + (license license:bsd-3))) + (define-public yggdrasil (package (name "yggdrasil") diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index f7f76400a2..33ea790c9a 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016, 2017, 2018, 2022 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2018, 2022, 2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Marius Bakke <marius@gnu.org> @@ -78,6 +78,14 @@ (add-after 'unpack 'set-CC (lambda _ (setenv "CC" #$(cc-for-target)))) + #$@(if (this-package-native-input "ruby-asciidoctor") + #~() + #~((add-after 'unpack 'adjust-makefile + (lambda _ + (substitute* "doc/Makefile.in" + (("install:") + (string-append "install:\n\n" + "not-install:"))))))) (add-after 'unpack 'stay-inside-out ;; Simply setting CHRONYVARDIR to something nonsensical at install ;; time would result in nonsense file names in man pages. @@ -93,7 +101,11 @@ (copy-recursively "examples" (string-append doc "/examples")))))))) (native-inputs - (list bison ruby-asciidoctor pkg-config)) + (append (list bison + pkg-config) + (if (supported-package? ruby-asciidoctor) + (list ruby-asciidoctor) + '()))) (inputs (list gnutls libcap libseccomp nettle)) (home-page "https://chrony-project.org/") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index af1760c2fd..d06df2c55b 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1543,8 +1543,8 @@ environments.") "0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc"))))))) (define-public guix-build-coordinator - (let ((commit "44c81082c34c6d819743cf452db8d1769301805a") - (revision "112")) + (let ((commit "d588c9c1920b863a17b68e5fe15b8f9d7bb1969d") + (revision "113")) (package (name "guix-build-coordinator") (version (git-version "0" revision commit)) @@ -1555,7 +1555,7 @@ environments.") (commit commit))) (sha256 (base32 - "0chry1y781qb0s8mvkmbrm0473bd0rdw4b96vqm97fbgsvgkb6x6")) + "13hgvxq1ngngjp68afx5njc0q3vjbkxvsjy4xygz3s04y748j826")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 0197891fb6..f3340f66e3 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -78,14 +78,14 @@ (define-public parallel (package (name "parallel") - (version "20241222") + (version "20250122") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parallel/parallel-" version ".tar.bz2")) (sha256 - (base32 "0y8s635p21k9m27p08c1hm2xhy3f2wm7q6v0z43l2q4qn66066vs")) + (base32 "1cwdpjcy211gniv4d5j8hk8cvjsz8dd8w71qwpwhqcvf6idrxiq3")) (snippet '(begin (use-modules (guix build utils)) diff --git a/gnu/packages/patches/ark-skip-xar-test.patch b/gnu/packages/patches/ark-skip-xar-test.patch index be891ad139..e9286618cb 100644 --- a/gnu/packages/patches/ark-skip-xar-test.patch +++ b/gnu/packages/patches/ark-skip-xar-test.patch @@ -15,7 +15,7 @@ Guix libarchive no support xar. --- ark-24.05.2.orig/autotests/kerfuffle/extracttest.cpp 2024-07-08 11:21:25.849219202 +0800 +++ ark-24.05.2/autotests/kerfuffle/extracttest.cpp 2024-07-08 11:22:01.413789814 +0800 -@@ -329,18 +329,5 @@ +@@ -329,19 +329,6 @@ qDebug() << "lz4 executable not found in path. Skipping lz4 test."; } @@ -32,5 +32,6 @@ Guix libarchive no support xar. - archivePath = QFINDTESTDATA("data/simplearchive.xar"); - setupRow("extract all entries from a xar archive with path", archivePath, QList<Archive::Entry *>(), optionsPreservePaths, 6); - - archivePath = QFINDTESTDATA("data/hello-1.0-x86_64.AppImage"); - setupRow("extract all entries from an AppImage with path", archivePath, QList<Archive::Entry *>(), optionsPreservePaths, 7); + // Test tarball with leading /, i.e. here /tmp/testfile instead of tmp/testfile + archivePath = QFINDTESTDATA("data/absolutepath.tar.xz"); + setupRow("extract all entries from a tar archive with absolute path", archivePath, QList<Archive::Entry *>(), optionsPreservePaths, 2); diff --git a/gnu/packages/patches/dolphin-emu-data.patch b/gnu/packages/patches/dolphin-emu-data.patch new file mode 100644 index 0000000000..6ba959b929 --- /dev/null +++ b/gnu/packages/patches/dolphin-emu-data.patch @@ -0,0 +1,15 @@ +Resolve a hang in the menu of this game. + +Upstream-status: https://github.com/dolphin-emu/dolphin/pull/13285 + +diff --git a/Data/Sys/GameSettings/GWR.ini b/Data/Sys/GameSettings/GWR.ini +new file mode 100644 +index 0000000000..fdbc0c312f +--- /dev/null ++++ b/Data/Sys/GameSettings/GWR.ini +@@ -0,0 +1,5 @@ ++# GWR - WAVE RACE / BLUE STORM ++ ++[Core] ++# Disable multi-threading to avoid a hang in the game menu. ++CPUThread = False diff --git a/gnu/packages/patches/libretro-dolphin-emu-data.patch b/gnu/packages/patches/libretro-dolphin-emu-data.patch new file mode 100644 index 0000000000..e98660d8ab --- /dev/null +++ b/gnu/packages/patches/libretro-dolphin-emu-data.patch @@ -0,0 +1,17 @@ +Resolve a hang in the menu of this game. + +Upstream-status: https://github.com/libretro/dolphin/pull/337 + +diff --git a/Data/Sys/GameSettings/GWR.ini b/Data/Sys/GameSettings/GWR.ini +new file mode 100644 +index 0000000000..a55f4d29cd +--- /dev/null ++++ b/Data/Sys/GameSettings/GWR.ini +@@ -0,0 +1,7 @@ ++# GWR - WAVE RACE / BLUE STORM ++ ++[Core] ++# Disable multi-threading to avoid a hang in the game menu. ++# TODO: Change to 'CPUThread = False' after rebasing to latest ++# upstream (see commit 869edd5a66). ++SyncGPU = True diff --git a/gnu/packages/patches/retroarch-improved-search-paths.patch b/gnu/packages/patches/retroarch-improved-search-paths.patch index 6fcd4745ac..ae815bfbb1 100644 --- a/gnu/packages/patches/retroarch-improved-search-paths.patch +++ b/gnu/packages/patches/retroarch-improved-search-paths.patch @@ -1,38 +1,27 @@ -Allows discovery of assets file via the LIBRETRO_ASSETS_DIRECTORY environment -variable. +Add support for various environment variables, used in search paths. -Upstream-status: https://github.com/libretro/RetroArch/pull/17054 +Upstream status: https://github.com/libretro/RetroArch/pull/17440 diff --git a/configuration.c b/configuration.c -index 5808a3f21c..0cc2909102 100644 +index 7eb6c08e1e..0449e77ac2 100644 --- a/configuration.c +++ b/configuration.c -@@ -3573,6 +3573,11 @@ static bool config_load_file(global_t *global, +@@ -3568,6 +3568,14 @@ static bool config_load_file(global_t *global, { unsigned i; char tmp_str[PATH_MAX_LENGTH]; + char* libretro_directory = NULL; + char* libretro_assets_directory = NULL; + char* libretro_autoconfig_directory = NULL; ++ char* libretro_cheats_directory = NULL; ++ char* libretro_database_directory = NULL; ++ char* libretro_system_directory = NULL; + char* libretro_video_filter_directory = NULL; + char* libretro_video_shader_directory = NULL; static bool first_load = true; bool without_overrides = false; unsigned msg_color = 0; -@@ -3848,12 +3853,6 @@ static bool config_load_file(global_t *global, - strlcpy(path_settings[i].ptr, tmp_str, PATH_MAX_LENGTH); - } - --#if !IOS -- if (config_get_path(conf, "libretro_directory", tmp_str, sizeof(tmp_str))) -- configuration_set_string(settings, -- settings->paths.directory_libretro, tmp_str); --#endif -- - #ifdef RARCH_CONSOLE - if (conf) - video_driver_load_settings(global, conf); -@@ -3861,6 +3860,20 @@ static bool config_load_file(global_t *global, +@@ -3862,6 +3870,38 @@ static bool config_load_file(global_t *global, /* Post-settings load */ @@ -45,15 +34,33 @@ index 5808a3f21c..0cc2909102 100644 + } + + libretro_autoconfig_directory = getenv("LIBRETRO_AUTOCONFIG_DIRECTORY"); -+ if (libretro_autoconfig_directory) ++ if (libretro_autoconfig_directory) /* override configuration value */ + configuration_set_string(settings, + settings->paths.directory_autoconfig, + libretro_autoconfig_directory); + ++ libretro_cheats_directory = getenv("LIBRETRO_CHEATS_DIRECTORY"); ++ if (libretro_cheats_directory) /* override configuration value */ ++ configuration_set_string(settings, ++ settings->paths.path_cheat_database, ++ libretro_cheats_directory); ++ ++ libretro_database_directory = getenv("LIBRETRO_DATABASE_DIRECTORY"); ++ if (libretro_database_directory) /* override configuration value */ ++ configuration_set_string(settings, ++ settings->paths.path_content_database, ++ libretro_database_directory); ++ ++ libretro_system_directory = getenv("LIBRETRO_SYSTEM_DIRECTORY"); ++ if (libretro_system_directory) /* override configuration value */ ++ configuration_set_string(settings, ++ settings->paths.directory_system, ++ libretro_system_directory); ++ if ( (rarch_flags & RARCH_FLAGS_HAS_SET_USERNAME) && (override_username)) { -@@ -4032,15 +4045,27 @@ static bool config_load_file(global_t *global, +@@ -4026,15 +4066,27 @@ static bool config_load_file(global_t *global, *settings->paths.path_menu_wallpaper = '\0'; if (string_is_equal(settings->paths.path_rgui_theme_preset, "default")) *settings->paths.path_rgui_theme_preset = '\0'; @@ -85,18 +92,18 @@ index 5808a3f21c..0cc2909102 100644 #ifdef _3DS if (string_is_equal(settings->paths.directory_bottom_assets, "default")) diff --git a/docs/retroarch.6 b/docs/retroarch.6 -index 7478040e17..f864e0e0d5 100644 +index 7478040e17..d38a8ee565 100644 --- a/docs/retroarch.6 +++ b/docs/retroarch.6 @@ -1,6 +1,6 @@ .\" retroarch.6: -.TH "RETROARCH" "6" "November 1, 2011" "RETROARCH" "System Manager's Manual: retroarch" -+.TH "RETROARCH" "6" "September 28, 2024" "RETROARCH" "System Manager's Manual: retroarch" ++.TH "RETROARCH" "6" "January 20, 2025" "RETROARCH" "System Manager's Manual: retroarch" .SH NAME -@@ -239,3 +239,36 @@ Disables all kinds of content patching. +@@ -239,3 +239,54 @@ Disables all kinds of content patching. .TP \fB-D, --detach\fR Detach from the current console. This is currently only relevant for Microsoft Windows. @@ -123,6 +130,24 @@ index 7478040e17..f864e0e0d5 100644 +"joypad_autoconfig_dir" configuration file option. + +.TP ++\fBLIBRETRO_CHEATS_DIRECTORY\fR ++Specify the directory where RetroArch looks for cheat files, ++overriding the value of the "cheat_database_path" configuration file ++option. ++ ++.TP ++\fBLIBRETRO_DATABASE_DIRECTORY\fR ++Specify the directory where RetroArch looks for database files, ++overriding the value of the "content_database_path" configuration file ++option. ++ ++.TP ++\fBLIBRETRO_SYSTEM_DIRECTORY\fR ++Specify the directory where RetroArch looks for system files, ++overriding the value of the "system_directory" configuration file ++option. ++ ++.TP +\fBLIBRETRO_VIDEO_FILTER_DIRECTORY\fR +Specify the directory where RetroArch looks for video filters, +overriding the value of the "video_filter_dir" configuration file @@ -134,21 +159,24 @@ index 7478040e17..f864e0e0d5 100644 +overriding the value of the "video_shader_dir" configuration file +option. diff --git a/frontend/drivers/platform_unix.c b/frontend/drivers/platform_unix.c -index c157d355a1..ddf0b5ca87 100644 +index 778f54eeda..cce011c875 100644 --- a/frontend/drivers/platform_unix.c +++ b/frontend/drivers/platform_unix.c -@@ -1324,6 +1324,10 @@ static void frontend_unix_get_env(int *argc, +@@ -1323,6 +1323,13 @@ static void frontend_unix_get_env(int *argc, { unsigned i; const char* libretro_directory = getenv("LIBRETRO_DIRECTORY"); + const char* libretro_assets_directory = getenv("LIBRETRO_ASSETS_DIRECTORY"); + const char* libretro_autoconfig_directory = getenv("LIBRETRO_AUTOCONFIG_DIRECTORY"); ++ const char* libretro_cheats_directory = getenv("LIBRETRO_CHEATS_DIRECTORY"); ++ const char* libretro_database_directory = getenv("LIBRETRO_DATABASE_DIRECTORY"); ++ const char* libretro_system_directory = getenv("LIBRETRO_SYSTEM_DIRECTORY"); + const char* libretro_video_filter_directory = getenv("LIBRETRO_VIDEO_FILTER_DIRECTORY"); + const char* libretro_video_shader_directory = getenv("LIBRETRO_VIDEO_SHADER_DIRECTORY"); #ifdef ANDROID int32_t major, minor, rel; char device_model[PROP_VALUE_MAX] = {0}; -@@ -1765,12 +1769,20 @@ static void frontend_unix_get_env(int *argc, +@@ -1764,12 +1771,20 @@ static void frontend_unix_get_env(int *argc, "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO])); else #endif @@ -174,7 +202,7 @@ index c157d355a1..ddf0b5ca87 100644 #ifdef ASSETS_DIR if (path_is_directory(ASSETS_DIR "/assets")) fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], -@@ -1778,7 +1790,10 @@ static void frontend_unix_get_env(int *argc, +@@ -1777,7 +1792,10 @@ static void frontend_unix_get_env(int *argc, "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS])); else #endif @@ -186,7 +214,7 @@ index c157d355a1..ddf0b5ca87 100644 fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], "/usr/local/share/retroarch", "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS])); -@@ -1838,7 +1853,11 @@ static void frontend_unix_get_env(int *argc, +@@ -1837,7 +1855,11 @@ static void frontend_unix_get_env(int *argc, "filters/video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER])); else #endif @@ -199,12 +227,23 @@ index c157d355a1..ddf0b5ca87 100644 fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], "/usr/local/share/retroarch", "filters/video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER])); -@@ -1872,8 +1891,13 @@ static void frontend_unix_get_env(int *argc, +@@ -1869,12 +1891,27 @@ static void frontend_unix_get_env(int *argc, + "records_config", sizeof(g_defaults.dirs[DEFAULT_DIR_RECORD_CONFIG])); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_RECORD_OUTPUT], base_path, "records", sizeof(g_defaults.dirs[DEFAULT_DIR_RECORD_OUTPUT])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_DATABASE], base_path, - "database/rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); +- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_DATABASE], base_path, +- "database/rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADER], base_path, - "shaders", sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER])); +- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CHEATS], base_path, +- "cheats", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); ++ if (!string_is_empty(libretro_database_directory)) ++ strlcpy(g_defaults.dirs[DEFAULT_DIR_DATABASE], ++ libretro_database_directory, ++ sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); ++ else ++ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_DATABASE], base_path, ++ "database/rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); + if (!string_is_empty(libretro_video_shader_directory)) + strlcpy(g_defaults.dirs[DEFAULT_DIR_SHADER], + libretro_video_shader_directory, @@ -212,19 +251,45 @@ index c157d355a1..ddf0b5ca87 100644 + else + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADER], base_path, + "shaders", sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CHEATS], base_path, - "cheats", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); ++ if (!string_is_empty(libretro_cheats_directory)) ++ strlcpy(g_defaults.dirs[DEFAULT_DIR_CHEATS], ++ libretro_cheats_directory, ++ sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); ++ else ++ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CHEATS], base_path, ++ "cheats", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], base_path, + "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OSK_OVERLAY], base_path, +@@ -1891,8 +1928,13 @@ static void frontend_unix_get_env(int *argc, + "saves", sizeof(g_defaults.dirs[DEFAULT_DIR_SRAM])); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SAVESTATE], base_path, + "states", sizeof(g_defaults.dirs[DEFAULT_DIR_SAVESTATE])); +- fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SYSTEM], base_path, +- "system", sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM])); ++ if (!string_is_empty(libretro_system_directory)) ++ strlcpy(g_defaults.dirs[DEFAULT_DIR_SYSTEM], ++ libretro_system_directory, ++ sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM])); ++ else ++ fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SYSTEM], base_path, ++ "system", sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM])); + #endif + + #ifndef IS_SALAMANDER diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c -index 26ed25c04f..0cc9a9dc95 100644 +index adb27b425c..f12fb8717e 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c -@@ -565,24 +565,38 @@ static void frontend_win32_env_get(int *argc, char *argv[], +@@ -566,24 +566,51 @@ static void frontend_win32_env_get(int *argc, char *argv[], { const char *tmp_dir = getenv("TMP"); const char *libretro_directory = getenv("LIBRETRO_DIRECTORY"); + const char *libretro_assets_directory = getenv("LIBRETRO_ASSETS_DIRECTORY"); + const char* libretro_autoconfig_directory = getenv("LIBRETRO_AUTOCONFIG_DIRECTORY"); ++ const char* libretro_cheats_directory = getenv("LIBRETRO_CHEATS_DIRECTORY"); ++ const char* libretro_database_directory = getenv("LIBRETRO_DATABASE_DIRECTORY"); ++ const char* libretro_system_directory = getenv("LIBRETRO_SYSTEM_DIRECTORY"); + const char* libretro_video_filter_directory = getenv("LIBRETRO_VIDEO_FILTER_DIRECTORY"); + const char* libretro_video_shader_directory = getenv("LIBRETRO_VIDEO_SHADER_DIRECTORY"); if (!string_is_empty(tmp_dir)) @@ -246,6 +311,10 @@ index 26ed25c04f..0cc9a9dc95 100644 ":\\filters\\audio", sizeof(g_defaults.dirs[DEFAULT_DIR_AUDIO_FILTER])); - fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], - ":\\filters\\video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER])); +- fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_CHEATS], +- ":\\cheats", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); +- fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_DATABASE], +- ":\\database\\rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); + if (!string_is_empty(libretro_video_filter_directory)) + strlcpy(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], + libretro_video_filter_directory, @@ -253,17 +322,27 @@ index 26ed25c04f..0cc9a9dc95 100644 + else + fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], + ":\\filters\\video", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER])); - fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_CHEATS], - ":\\cheats", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); - fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_DATABASE], - ":\\database\\rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); ++ if (!string_is_empty(libretro_cheats_directory)) ++ strlcpy(g_defaults.dirs[DEFAULT_DIR_CHEATS], ++ libretro_cheats_directory, ++ sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); ++ else ++ fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_CHEATS], ++ ":\\cheats", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); ++ if (!string_is_empty(libretro_database_directory)) ++ strlcpy(g_defaults.dirs[DEFAULT_DIR_DATABASE], ++ libretro_database_directory, ++ sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); ++ else ++ fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_DATABASE], ++ ":\\database\\rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_PLAYLIST], - ":\\playlists", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS])); + ":\\playlists", sizeof(g_defaults.dirs[DEFAULT_DIR_PLAYLIST])); fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_RECORD_CONFIG], ":\\config\\record", sizeof(g_defaults.dirs[DEFAULT_DIR_RECORD_CONFIG])); fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_RECORD_OUTPUT], -@@ -605,12 +619,26 @@ static void frontend_win32_env_get(int *argc, char *argv[], +@@ -606,12 +633,26 @@ static void frontend_win32_env_get(int *argc, char *argv[], else fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_CORE], ":\\cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE])); @@ -296,3 +375,52 @@ index 26ed25c04f..0cc9a9dc95 100644 fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], ":\\downloads", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS])); fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT], +@@ -620,8 +661,13 @@ static void frontend_win32_env_get(int *argc, char *argv[], + ":\\saves", sizeof(g_defaults.dirs[DEFAULT_DIR_SRAM])); + fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_SAVESTATE], + ":\\states", sizeof(g_defaults.dirs[DEFAULT_DIR_SAVESTATE])); +- fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_SYSTEM], +- ":\\system", sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM])); ++ if (!string_is_empty(libretro_system_directory)) ++ strlcpy(g_defaults.dirs[DEFAULT_DIR_SYSTEM], ++ libretro_system_directory, ++ sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM])); ++ else ++ fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_SYSTEM], ++ ":\\system", sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM])); + fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_LOGS], + ":\\logs", sizeof(g_defaults.dirs[DEFAULT_DIR_LOGS])); + +diff --git a/retroarch.c b/retroarch.c +index a7e5f5299f..59d7879ec5 100644 +--- a/retroarch.c ++++ b/retroarch.c +@@ -6516,7 +6516,28 @@ static void retroarch_print_help(const char *arg0) + "Path for the save state files (*.state). (DEPRECATED, use --appendconfig and savestate_directory)\n" + , sizeof(buf) - _len); + ++ /* Flush buffer here to avoid the error "error: string length ‘752’ ++ * is greater than the length ‘509’ ISO C90 compilers are required ++ * to support" */ + fputs(buf, stdout); ++ ++#if defined(__linux__) || defined(__GNU__) || (defined(BSD) && !defined(__MACH__)) ++ buf[0] = '\0'; ++ _len = 0; ++ _len += strlcpy(buf + _len, ++ "\nThe following environment variables are supported:\n\n" ++ " LIBRETRO_ASSETS_DIRECTORY\n" ++ " LIBRETRO_AUTOCONFIG_DIRECTORY\n" ++ " LIBRETRO_CHEATS_DIRECTORY\n" ++ " LIBRETRO_DATABASE_DIRECTORY\n" ++ " LIBRETRO_DIRECTORY\n" ++ " LIBRETRO_SYSTEM_DIRECTORY\n" ++ " LIBRETRO_VIDEO_FILTER_DIRECTORY\n" ++ " LIBRETRO_VIDEO_SHADER_DIRECTORY\n\n" ++ "Refer to `man 6 retroarch' for a description of what they do.\n" ++ , sizeof(buf) - _len); ++ fputs(buf, stdout); ++#endif + } + + #ifdef HAVE_DYNAMIC diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index 6f31d3c1d7..1dbd2180a8 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -112,8 +112,10 @@ POSIX regular expression API.") "--enable-pcre2test-libreadline" "--enable-pcre2-16" "--enable-pcre2-32" - ;; riscv64-linux is an unsupported architecture. - #$@(if (target-riscv64?) + ;; riscv64-linux and loongarch64-linux is an unsupported + ;; architecture. + #$@(if (or (target-riscv64?) + (target-loongarch64?)) #~() #~("--enable-jit"))) #:phases diff --git a/gnu/packages/prolog.scm b/gnu/packages/prolog.scm index d9c00c65e5..98490adb44 100644 --- a/gnu/packages/prolog.scm +++ b/gnu/packages/prolog.scm @@ -182,7 +182,7 @@ it.") (define-public trealla (package (name "trealla") - (version "2.63.25") + (version "2.63.33") (source (origin (method git-fetch) @@ -191,7 +191,7 @@ it.") (url "https://github.com/trealla-prolog/trealla") (commit (string-append "v" version)))) (sha256 - (base32 "0rlnq0m644c5rqzyyp9yqfjpd8wa49znn928487psa86j8v5wbxr")) + (base32 "12bg0ag185fviazvi5pmirn2izdzrrfkiw93pzqnsrdfhafy7xla")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 4ba2beec72..bf2262950a 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -446,19 +446,33 @@ blake3, a cryptographic hash function.") "1yxqfb5131wahjyw9pxz03bq476rcfx62s6k53xx4cqbzzgdaqkq")))) (build-system pyproject-build-system) (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'adjust-test - (lambda _ - ;; Newer PyOpenSSL no longer separates extensions with - ;; newline (this can be removed for >1.3.0). - (substitute* "test/test_certauth.py" - (("7334\\\\n, DNS") - "7334, DNS"))))))) + (list + #:test-flags + #~(list "-k" (string-join + (list + ;; Those tests uses PKCS12, which has been removed in + ;; pyopenssl 23.3.0: + "not test_custom_not_before_not_after" + "test_ca_cert_in_mem" + ;; Those tests try to download certificates: + "test_file_wildcard" + "test_file_wildcard_subdomains" + "test_in_mem_parent_wildcard_cert" + "test_in_mem_parent_wildcard_cert_at_tld" + "test_in_mem_parent_wildcard_cert_2") + " and not ")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-test + (lambda _ + ;; Newer PyOpenSSL no longer separates extensions with + ;; newline (this can be removed for >1.3.0). + (substitute* "test/test_certauth.py" + (("7334\\\\n, DNS") "7334, DNS"))))))) (propagated-inputs (list python-pyopenssl python-tldextract)) (native-inputs - (list python-pytest-cov)) + (list python-pytest-cov python-setuptools python-wheel)) (home-page "https://github.com/ikreymer/certauth") (synopsis "Certificate authority creation tool") (description "This package provides a small library, built on top of @@ -956,14 +970,14 @@ protocol (Javascript Object Signing and Encryption).") (define-public python-pycryptodome (package (name "python-pycryptodome") - (version "3.15.0") + (version "3.21.0") (source (origin (method url-fetch) (uri (pypi-uri "pycryptodome" version)) (sha256 (base32 - "1f0qc0ns3ppybkr7wi66gsl5wfkcx1fdklmh3362nn84spddsdci")) + "15vjyjy686kgm4fnpwlah1wvxxy0wvr4q5vnp1iygnlv8q6pwy7p")) (modules '((guix build utils))) (snippet pycryptodome-unbundle-tomcrypt-snippet))) (build-system python-build-system) @@ -1018,7 +1032,7 @@ PyCryptodome variants, the other being python-pycryptodomex.") (method url-fetch) (uri (pypi-uri "pycryptodomex" version)) (sha256 - (base32 "1vf0xbsqvcp4k3cl8cmxrlij9a88hajw6d3z0jhd3c5d5nxz2hbk")) + (base32 "0v4y03ha7rm9kdcv9fkrmc94425z3q3mq1nn5p1jbpc1ag80nb92")) (modules '((guix build utils))) (snippet pycryptodome-unbundle-tomcrypt-snippet))) (description @@ -1782,3 +1796,23 @@ against (name, birthdate, etc.) in different situations. @end enumerate") (license license:expat))) + +(define-public python-pydes + (package + (name "python-pydes") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyDes" version)) + (sha256 + (base32 "04lh71f47y04vspfrdrq6a0hn060ibxvdp5z1pcr0gmqs8hqxaz2")))) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) + (home-page "http://twhiteman.netfirms.com/des.html") + (synopsis + "Pure python implementation of the DES and TRIPLE DES encryption algorithms") + (description + "This package provides a pure Python implementation of the DES and +TRIPLE DES encryption algorithms.") + (license license:public-domain))) diff --git a/gnu/packages/python-graphics.scm b/gnu/packages/python-graphics.scm index bc0c93a8ee..da8ef2d4df 100644 --- a/gnu/packages/python-graphics.scm +++ b/gnu/packages/python-graphics.scm @@ -287,7 +287,8 @@ music." ) (list python-cython-3 python-pytest python-setuptools - python-setuptools-scm)) + python-setuptools-scm + python-wheel)) (inputs (list fontconfig mesa)) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 1bdc7dafa5..f466969456 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -49,7 +49,7 @@ ;;; Copyright © 2021 Alice Brenon <alice.brenon@ens-lyon.fr> ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> -;;; Copyright © 2022, 2023 Felix Gruber <felgru@posteo.net> +;;; Copyright © 2022, 2023, 2025 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io> ;;; Copyright © 2022 Antero Mejr <antero@mailbox.org> ;;; Copyright © 2022 Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com> @@ -374,6 +374,58 @@ The event dispatch is implicit, which means you can easily use @code{Eventlet} from the Python interpreter, or as a small part of a larger application.") (license license:expat))) +(define-public python-hookdns + (package + (name "python-hookdns") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "hookdns" version)) + (sha256 + (base32 "087x12dy6slhyqwqblby2fpjdcy61yk3lqp3fplami0rmbn02fb7")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "-k" (string-join + ;; Tests requiring networking. + (list + "not test_patch_contextmanager_with_another_hostname" + "test_patch_contextmanager_with_another_hostname_ipv6" + "test_patch_contextmanager_with_ipv4" + "test_patch_contextmanager_with_name" + "test_patch_contextmanager_with_public_fqdn_and_" + "test_patch_contextmanager_with_unknown_hostname" + "test_patch_decorator_with_another_hostname" + "test_patch_decorator_with_another_hostname_ipv6" + "test_patch_decorator_with_ipv4" + "test_patch_decorator_with_name" + "test_patch_decorator_with_public_fqdn_and_a_name_for_" + "test_patch_decorator_with_unknown_hostname" + "test_real_getaddrinfo_with_name_ipv6" + "test_real_getaddrinfo_with_public_fqdn_ipv4" + "test_real_getaddrinfo_with_public_fqdn_ipv6" + "test_real_gethostbyname_ex_with_public_fqdn" + "test_real_gethostbyname_with_public_fqdn" + "test_real_requests_ip" + "test_real_requests_name" + "test_real_requests_with_public_fqdn" + "test_reentrant") + " and not ")))) + (native-inputs + (list python-pytest + python-requests + python-setuptools + python-wheel)) + (home-page "https://github.com/cle-b/hookdns") + (synopsis "DNS resolution customization library") + (description + "HookDNS implements functionality that allows for modifying name +resolution in a Python script without any changes to the hosts file or the use +of a fake DNS resolver.") + (license license:asl2.0))) + (define-public python-huggingface-hub (package (name "python-huggingface-hub") @@ -7696,44 +7748,48 @@ them to a designated prefix.") (define-public python-warcio ;; The PyPI release is missing some test support files (see: ;; https://github.com/webrecorder/warcio/issues/132). - (let ((revision "0") - (commit "aa702cb321621b233c6e5d2a4780151282a778be")) - (package - (name "python-warcio") - (version (git-version "1.7.4" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/webrecorder/warcio") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "11afr6zy3r6rda81010iq496dazg4xid0izg3smg6ighpmvsnzf2")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags ; These tests fail due to networking requirements. - '(list "-k" (format #f "not ~a" - (string-join - '("test_post_chunked" - "test_remote" - "test_capture_http_proxy" - "test_capture_https_proxy" - "test_capture_https_proxy_same_session") - " and not "))))) - (native-inputs - ;; These inputs are required for the test suite. - (list python-httpbin python-pytest-cov python-requests - python-wsgiprox)) - (home-page "https://github.com/webrecorder/warcio") - (synopsis "Streaming web archival archive (WARC) library") - (description "warcio is a Python library to read and write the WARC format + (package + (name "python-warcio") + (version "1.7.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/webrecorder/warcio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r3kijsm8wsbipi5pxsrqpg5nn4w8iaw5i8010b0ligmfxnxamlb")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags ; These tests fail due to networking requirements. + '(list "-k" (format #f "not ~a" + (string-join + '("test_post_chunked" + "test_remote" + "test_capture_http_proxy" + "test_capture_https_proxy" + "test_capture_https_proxy_same_session") + " and not ")) + ; The following test requires the hookdns package. + "--ignore=test/test_capture_http_proxy.py"))) + (native-inputs + ;; These inputs are required for the test suite. + (list python-httpbin + python-pytest-cov + python-requests + python-setuptools + python-wheel + python-wsgiprox)) + (home-page "https://github.com/webrecorder/warcio") + (synopsis "Streaming web archival archive (WARC) library") + (description "warcio is a Python library to read and write the WARC format commonly used in Web archives. It is designed for fast, low-level access to web archival content, oriented around a stream of WARC records rather than files.") - (license license:asl2.0)))) + (license license:asl2.0))) (define-public python-websockets (package diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 202599305e..7fcf9c3ba8 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -157,9 +157,10 @@ ;;; Copyright © 2024 Rick Huijzer <ikbenrickhuyzer@gmail.com> ;;; Copyright © 2024 Peter Kannewitz <petre-vps@posteo.net> ;;; Copyright © 2024 Aaron Covrig <aaron.covrig.us@ieee.org> -;;; Copyright © 2024 Evgeny Pisemsky <mail@pisemsky.site> +;;; Copyright © 2024, 2025 Evgeny Pisemsky <mail@pisemsky.site> ;;; Copyright © 2024 Markku Korkeala <markku.korkeala@iki.fi> ;;; Copyright © 2025 Jordan Moore <lockbox@struct.foo> +;;; Copyright © 2025 Dariqq <dariqq@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -315,13 +316,13 @@ (define-public python-apprise (package (name "python-apprise") - (version "1.9.1") + (version "1.9.2") (source (origin (method url-fetch) (uri (pypi-uri "apprise" version)) (sha256 - (base32 "12a6wh6ri2gr043ivghs0ivyfin80rfcqddv279gyvfq84nd1v3r")))) + (base32 "1a3kzpjdp29l4ryafd36gs8apg61f16ljw93h1051p98f0hv23i9")))) (build-system pyproject-build-system) (arguments (list @@ -329,7 +330,9 @@ #~(list "--numprocesses" (number->string (parallel-job-count)) "--ignore=test/test_plugin_macosx.py" "-k" (string-append "not test_plugin_mqtt_tls_connect_success" - " and not test_plugin_mqtt_tls_no_verify_success")))) + " and not test_plugin_mqtt_tls_no_verify_success" + ;; AssertionError: assert False + " and not test_plugin_wxpusher_edge_cases")))) (propagated-inputs (list python-certifi python-click python-markdown @@ -499,6 +502,32 @@ including arbitrary-length lists, records, mixed types, and missing data, using NumPy-like idioms.") (license license:bsd-3))) +(define-public python-bresenham + (package + (name "python-bresenham") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/encukou/bresenham") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07h04l50y35rhp13mqis61d1dkd7426q1gdfy5hd6rcgcfv15kxd")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-setuptools + python-wheel)) + (home-page "https://github.com/encukou/bresenham") + (synopsis "Implementation of Bresenham's line drawing algorithm") + (description + "This package provides a Python implementation of +@url{https://en.wikipedia.org/wiki/Bresenham's_line_algorithm, Bresenham's +line drawing algorithm}.") + (license license:expat))) + (define-public python-distance (package (name "python-distance") @@ -11148,6 +11177,50 @@ a general image processing tool.") "http://www.pythonware.com/products/pil/license.htm" "The PIL Software License")))) +(define-public python-pillow-heif + (package + (name "python-pillow-heif") + (version "0.21.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pillow_heif" version)) + (sha256 + (base32 "16xl2a51z4rjfy7y8vnn3w0ngcr1mr2sgsl9p7z62payy2zy3bh7")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "-k" ; XXX: 10/12 bit tests fail + (string-append + "not test_save_bgr_16bit_to_10_12_bit" + " and not test_save_bgra_16bit_to_10_12_bit" + " and not test_open_heif_compare_non_standard_modes_data" + " and not test_open_save_disable_16bit" + " and not test_heif_read_images[image_path16]" + " and not test_heif_read_images[image_path43]" + " and not test_premultiplied_alpha" + " and not test_hdr_save" + " and not test_I_color_modes_to_10_12_bit")))) + (inputs (list libheif)) + (propagated-inputs (list python-pillow)) + (native-inputs (list opencv ; for opencv-python + python-coverage + python-defusedxml + python-numpy + python-packaging + python-pre-commit + python-pylint + python-pympler + python-setuptools + python-pytest + python-wheel)) + (home-page "https://github.com/bigcat88/pillow_heif") + (synopsis "Python interface for libheif library") + (description "This package provides Python bindings for the libheif library +and a plugin for Pillow.") + (license license:bsd-3))) + (define-public python-pillow-2.9 (package (inherit python-pillow) @@ -18299,7 +18372,7 @@ JSON Reference and JSON Pointer.") (sha256 (base32 "15x1in22gwam7wwga5lbj1pd8hc9jk741pia3pv1m29n2xywpq2z")))) (build-system python-build-system) - (native-inputs (list python-cython)) + (native-inputs (list python-cython-3)) (home-page "https://github.com/breezy-team/fastbencode") (synopsis "Python Bencode (de)serializer with optional fast C extensions") (description @@ -38819,6 +38892,87 @@ profile. It supports: Currently, Linux is the only platform supported by this library.") (license license:expat))) +(define-public python-dbus-fast + (package + (name "python-dbus-fast") + (version "2.30.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "dbus_fast" version)) + (sha256 + (base32 "1cx71lbw716smpr4vsc9d421v45s36hcqj2z95nl3wm2yhan6ac7")))) + (build-system pyproject-build-system) + (native-inputs (list python-cython python-poetry-core python-setuptools + python-wheel)) + (home-page "https://github.com/bluetooth-devices/dbus-fast") + (synopsis "Faster version of dbus-next") + (description "This package provides a faster version of dbus-next.") + (license license:expat))) + +(define-public python-bleak + (package + (name "python-bleak") + (version "0.22.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bleak" version)) + (sha256 + (base32 "0p04kk84vjmfv2pl1lichaaq8rc9xdm9sgd5g9r5gr2pjv0w6j9i")))) + (build-system pyproject-build-system) + (arguments + `(#:tests? #f)) ; no tests + (propagated-inputs (list python-async-timeout + python-dbus-fast + python-typing-extensions)) + (native-inputs (list python-poetry-core)) + (home-page "https://github.com/hbldh/bleak") + (synopsis "Bluetooth Low Energy platform Agnostic Klient") + (description "This package provides a Bluetooth Low Energy platform-agnostic +client library.") + (license license:expat))) + +(define-public python-ndeflib + (package + (name "python-ndeflib") + (version "0.3.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ndeflib" version)) + (sha256 + (base32 "122a8prbcj070y3fl82kvxmbciv36hj1h1d448l6zcdrb22q4mhx")))) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) + (home-page "https://ndeflib.readthedocs.io/") + (synopsis "NFC Data Exchange Format decoder and encoder.") + (description "This package provides a NFC (Near-Field Communication) +Data Exchange Format decoder and encoder.") + (license license:isc))) + +(define-public python-nfcpy + (package + (name "python-nfcpy") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "nfcpy" version)) + (sha256 + (base32 "0sxgp298i8y17i9drp8sclxx0i3vn0wgh5ajs2arw7cy2780igg5")))) + (build-system pyproject-build-system) + (arguments + `(#:tests? #f)) ; Tests use nfc.ndef even though that has been removed. + (propagated-inputs (list python-libusb1 python-ndeflib python-pydes + python-pyserial)) + (native-inputs (list python-setuptools python-wheel)) + (home-page "https://github.com/nfcpy/nfcpy") + (synopsis "Python module for Near-Field Communication.") + (description "This package provides a Python module for Near-Field +Communication.") + (license license:eupl1.1))) + (define-public python-clrprint (package (name "python-clrprint") diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 7816daf0fa..417c787144 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2022 Ryan Tolboom <ryan@using.tech> ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> -;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2023, 2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2024 Andy Tai <atai@atai.org> ;;; Copyright © 2024 Noisytoot <ron@noisytoot.org> ;;; @@ -797,7 +797,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") (define-public gnuradio (package (name "gnuradio") - (version "3.10.10.0") + (version "3.10.11.0") (source (origin (method git-fetch) @@ -806,7 +806,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1jq94nycccpgw2cc39hgixjq7cqdw836bnz0fvmynfg3f22mcid4")))) + (base32 "1px44c9clafivjw37zy6h6d94xf70v7i5iyarrdgm6cr7x95grj0")))) (build-system cmake-build-system) (native-inputs (list doxygen @@ -1711,7 +1711,10 @@ weak-signal conditions.") (base32 "1lw9q7ggh2jlasipl3v5pkbabysjr6baw15lnmg664ah3fwdrvnx")))) (build-system qt-build-system) (native-inputs - (list asciidoc gfortran pkg-config qttools-5 ruby-asciidoctor)) + (append (list asciidoc gfortran pkg-config qttools-5) + (if (supported-package? ruby-asciidoctor) + (list ruby-asciidoctor) + '()))) (inputs (list boost @@ -1724,7 +1727,10 @@ weak-signal conditions.") qtmultimedia-5 qtserialport-5)) (arguments - `(#:tests? #f)) ; No test suite + `(,@(if (this-package-native-input "ruby-asciidoctor") + '() + `(#:configure-flags '("-DWSJT_GENERATE_DOCS=OFF"))) + #:tests? #f)) ; No test suite (synopsis "Weak-signal ham radio communication program, forked from WSJTX") (description "JTDX means \"JT,T10 and FT8 and FT4 modes for DXing\", it is being @@ -1790,8 +1796,7 @@ focused on DXing and being shaped by community of DXers.JTDX") (list asciidoc gfortran pkg-config - qttools-5 - ruby-asciidoctor)) + qttools-5)) (inputs (list boost fftw diff --git a/gnu/packages/readline.scm b/gnu/packages/readline.scm index 8200a24f1a..42d8c6ed63 100644 --- a/gnu/packages/readline.scm +++ b/gnu/packages/readline.scm @@ -82,29 +82,46 @@ (build-system gnu-build-system) (propagated-inputs (list ncurses)) (arguments - (list #:configure-flags - #~(list (string-append - "LDFLAGS=-Wl,-rpath -Wl," - (dirname (search-input-file %build-inputs - "lib/libncurses.so"))) + (append + (if (target-loongarch64?) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'update-config-scripts + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.guess and config.sub. + (for-each (lambda (file) + (install-file + (search-input-file + (or native-inputs inputs) + (string-append "/bin/" file)) "./support")) + '("config.guess" "config.sub")))))) + '()) + (list #:configure-flags + #~(list (string-append + "LDFLAGS=-Wl,-rpath -Wl," + (dirname (search-input-file %build-inputs + "lib/libncurses.so"))) - ;; This test does an 'AC_TRY_RUN', which aborts when - ;; cross-compiling, so provide the correct answer. - #$@(if (%current-target-system) - '("bash_cv_wcwidth_broken=no") - '()) - ;; MinGW: ncurses provides the termcap api. - #$@(if (target-mingw?) - '("bash_cv_termcap_lib=ncurses") - '())) + ;; This test does an 'AC_TRY_RUN', which aborts when + ;; cross-compiling, so provide the correct answer. + #$@(if (%current-target-system) + '("bash_cv_wcwidth_broken=no") + '()) + ;; MinGW: ncurses provides the termcap api. + #$@(if (target-mingw?) + '("bash_cv_termcap_lib=ncurses") + '())) - #:make-flags - (if (target-mingw?) - ;; MinGW: termcap in ncurses - ;; some SIG_* #defined in _POSIX - #~'("TERMCAP_LIB=-lncurses" - "CPPFLAGS=-D_POSIX -D'chown(f,o,g)=0'") - #~'()))) + #:make-flags + (if (target-mingw?) + ;; MinGW: termcap in ncurses + ;; some SIG_* #defined in _POSIX + #~'("TERMCAP_LIB=-lncurses" + "CPPFLAGS=-D_POSIX -D'chown(f,o,g)=0'") + #~'())))) + (native-inputs (if (target-loongarch64?) + (list config) + '())) (synopsis "Edit command lines while typing, with history support") (description "The GNU readline library allows users to edit command lines as they diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 36bd06a423..42fcf35d40 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Evgeny Pisemsky <mail@pisemsky.site> ;;; Copyright © 2023, 2024 dan <i@dan.games> +;;; Copyright © 2025 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -150,17 +151,16 @@ hardware.") (package (inherit sdl2) (name "sdl3") - (version "3.1.8") + (version "3.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/libsdl-org/SDL") - ;; Change to release- when 3.2.0 is released. - (commit (string-append "preview-" version)))) + (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "13iw79lhr1hrs6yqfnnaacsgdwawlsavvbqnglifh4bx5zkxdyf9")))) + "11hrhvf74in0amdrmhcf11ll48pxqbidyqawr9hx2cgdwlzdjll1")))) (build-system cmake-build-system) (arguments (list diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index bb42a889dc..69a3583e6c 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -692,14 +692,14 @@ bibliographic data and simple document and bibtex retrieval.") (define-public ugrep (package (name "ugrep") - (version "7.1.3") + (version "7.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Genivia/ugrep") (commit (string-append "v" version)))) (sha256 - (base32 "1avqay6kd5n384r3nhzkjk3jmqzdmhaypnn2hyjiczcrjvqkghk3")) + (base32 "1506yymsx4a41w0q31b5wigy9k7d14gq4xqqc3lv3ivdaa8y6qpx")) (file-name (git-file-name name version)) (modules '((guix build utils))) (snippet diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 338682d16c..2e51b0ade7 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -423,6 +423,24 @@ that implements both the msgpack and msgpack-rpc specifications.") (inputs `(("lua" ,lua-5.2))))) +(define-public libcsv + (package + (name "libcsv") + (version "3.0.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libcsv/libcsv/libcsv-" + version "/libcsv-" version ".tar.gz")) + (sha256 + (base32 + "1r6pxdxrc3vfil1f9ng1dblm82asdqz6hkz7dj4vkkh3p0f47h6r")))) + (build-system gnu-build-system) + (home-page "http://sourceforge.net/projects/libcsv/") + (synopsis "CSV parser and writer library") + (description + "This package provides a C library for parsing and writing CSV data.") + (license license:lgpl2.1+))) + (define-public libscfg (package (name "libscfg") diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index f656f4d5c0..13a1701e0a 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson <davet@gnu.org> -;;; Copyright © 2015, 2017, 2019, 2020, 2021, 2023, 2024 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2017, 2019, 2020, 2021, 2023, 2024, 2025 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016-2019, 2022, 2023 Marius Bakke <marius@gnu.org> @@ -348,22 +348,25 @@ Apple help books.") (define-public python-sphinx-click (package (name "python-sphinx-click") - (version "4.0.3") + (version "6.0.0") (source (origin (method url-fetch) (uri (pypi-uri "sphinx-click" version)) (sha256 (base32 - "1nqy3b7wr64rbmdp7kpi723az53a89y6250h46i505g1rw0czam1")))) - (build-system python-build-system) + "0ns6mfiw4q6g0kh11dfyzpn0rkjq9v4f3w8ry0pn5in03lr69mpm")))) + (build-system pyproject-build-system) (arguments - (list #:phases #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv" "tests"))))))) - (native-inputs (list python-pbr python-pytest python-wheel)) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-build-system + (lambda _ + ;; The build system is confused about this top level directory, + ;; so we delete it. + (delete-file-recursively "releasenotes")))))) + (native-inputs (list python-pytest python-setuptools python-wheel)) (propagated-inputs (list python-click python-docutils python-sphinx)) (home-page "https://github.com/click-contrib/sphinx-click") (synopsis "Sphinx extension that documents click applications") @@ -1317,7 +1320,7 @@ executed during the Sphinx build process.") (define-public python-jupyter-sphinx (package (name "python-jupyter-sphinx") - (version "0.3.2") + (version "0.5.3") (source (origin ;; Pypi tarball doesn't contain tests. @@ -1328,21 +1331,26 @@ executed during the Sphinx build process.") (file-name (git-file-name name version)) (sha256 (base32 - "0bsb17vzbgvrzvh87pi88b157hyigdwnf1lhrgvan03i2300h15c")))) - (build-system python-build-system) + "1l8skhjir7j9jr4xdmwzj5lk5w31jn21ydpcxvgr6adgnrdbgy53")))) + (build-system pyproject-build-system) (arguments (list - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest"))))))) + #:test-flags + #~(list "-W" "ignore::DeprecationWarning") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'ignore-warnings + (lambda _ + (substitute* "pyproject.toml" + (("\"error\",") ""))))))) (propagated-inputs (list python-ipython python-ipywidgets python-nbconvert python-nbformat)) (native-inputs - (list python-pytest python-sphinx)) + (list python-hatchling + python-ipykernel + python-pytest + python-sphinx)) (home-page "https://github.com/jupyter/jupyter-sphinx/") (synopsis "Jupyter Sphinx Extensions") (description diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 71a1eb3326..3fe5b48e20 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Petter <petter@mykolab.ch> -;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name> +;;; Copyright © 2016-2021, 2024 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020-2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> @@ -38,7 +38,6 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) - #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-compression) #:use-module (gnu packages gtk) @@ -49,7 +48,7 @@ (define-public syncthing (package (name "syncthing") - (version "1.27.2") + (version "1.28.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" @@ -57,71 +56,70 @@ "/syncthing-source-v" version ".tar.gz")) (sha256 (base32 - "0g418jyqqik8ds8qcrlnmm2bhwwpbrfgd82fg2jyip4zw1aicqia")))) + "16j5w6hdr1x2231hw0zsxm53sw34wxcs4ijjjcnzcg1vz9drjrg9")))) (build-system go-build-system) ;; The primary Syncthing executable goes to "out", while the auxiliary ;; server programs and utility tools go to "utils". This reduces the size ;; of "out" by ~144 MiB. (outputs '("out" "utils")) (arguments - (list #:modules '((srfi srfi-26) ; for cut - (guix build utils) - (guix build go-build-system)) - #:import-path "github.com/syncthing/syncthing" - ;; We don't need to install the source code for end-user applications. - #:install-source? #f - #:phases - #~(modify-phases %standard-phases - (add-before 'build 'increase-test-timeout - (lambda _ - (substitute* "src/github.com/syncthing/syncthing/build.go" - (("120s") "999s")))) + (list + #:modules '((srfi srfi-26) ; for cut + (guix build utils) + (guix build go-build-system)) + #:import-path "github.com/syncthing/syncthing" + ;; We don't need to install the source code for end-user applications. + #:install-source? #f + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'increase-test-timeout + (lambda _ + (substitute* "src/github.com/syncthing/syncthing/build.go" + (("120s") "999s")))) - (replace 'build - (lambda _ - (with-directory-excursion "src/github.com/syncthing/syncthing" - ;; XXX The only way to build Syncthing without its automatic - ;; updater and to build the utilities is to "build all" and then - ;; "build syncthing" again with -no-upgrade. - ;; https://github.com/syncthing/syncthing/issues/6118 - (invoke "go" "run" "build.go") - (delete-file "bin/syncthing") - (invoke "go" "run" "build.go" "-no-upgrade" "build" "syncthing")))) + (replace 'build + (lambda _ + (with-directory-excursion "src/github.com/syncthing/syncthing" + ; Build the primary Syncthing executable + (invoke "go" "run" "build.go" "-no-upgrade") + ; Build utilities used to run an independent Syncthing network + (for-each (cut invoke "go" "run" "build.go" "build" <>) + '("stcrashreceiver" "strelaypoolsrv" "stupgrades" + "ursrv"))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (with-directory-excursion "src/github.com/syncthing/syncthing" - (invoke "go" "run" "build.go" "test"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "src/github.com/syncthing/syncthing" + (invoke "go" "run" "build.go" "test"))))) - (replace 'install - (lambda _ - (with-directory-excursion "src/github.com/syncthing/syncthing/bin" - (install-file "../syncthing" (string-append #$output "/bin")) - (for-each (cut install-file <> (string-append #$output:utils "/bin/")) - '("stcompdirs" "stcrashreceiver" - "stdisco" "stdiscosrv" "stevents" "stfileinfo" - "stfinddevice" "stfindignored" "stgenfiles" - "strelaypoolsrv" "strelaysrv" "stsigtool" - "stvanity" "stwatchfile" "ursrv"))))) + (replace 'install + (lambda _ + (with-directory-excursion "src/github.com/syncthing/syncthing/bin" + (install-file "syncthing" (string-append #$output "/bin")) + (for-each (cut install-file <> (string-append #$output:utils "/bin/")) + '("stdiscosrv" "strelaysrv"))) + (with-directory-excursion "src/github.com/syncthing/syncthing" + (for-each (cut install-file <> (string-append #$output:utils "/bin/")) + '("ursrv" "stupgrades" "strelaypoolsrv" "stcrashreceiver"))))) - (add-after 'install 'install-docs - (lambda _ - (let ((man (string-append #$output "/share/man")) - (man:utils (string-append #$output:utils "/share/man"))) - ;; Install all the man pages to "out". - (for-each - (lambda (file) - (install-file file - (string-append man "/man" (string-take-right file 1)))) - (find-files "src/github.com/syncthing/syncthing/man" "\\.[1-9]")) - ;; Copy all the man pages to "utils" - (copy-recursively man man:utils) - ;; Delete extraneous man pages from "out" and "utils", - ;; respectively. - (delete-file (string-append man "/man1/stdiscosrv.1")) - (delete-file (string-append man "/man1/strelaysrv.1")) - (delete-file (string-append man:utils "/man1/syncthing.1")))))))) + (add-after 'install 'install-docs + (lambda _ + (let ((man (string-append #$output "/share/man")) + (man:utils (string-append #$output:utils "/share/man"))) + ;; Install all the man pages to "out". + (for-each + (lambda (file) + (install-file file + (string-append man "/man" (string-take-right file 1)))) + (find-files "src/github.com/syncthing/syncthing/man" "\\.[1-9]")) + ;; Copy all the man pages to "utils" + (copy-recursively man man:utils) + ;; Delete extraneous man pages from "out" and "utils", + ;; respectively. + (delete-file (string-append man "/man1/stdiscosrv.1")) + (delete-file (string-append man "/man1/strelaysrv.1")) + (delete-file (string-append man:utils "/man1/syncthing.1")))))))) (synopsis "Decentralized continuous file system synchronization") (description "Syncthing is a peer-to-peer file synchronization tool that supports a wide variety of computing platforms. It uses the Block Exchange @@ -215,27 +213,26 @@ notification area icon for Syncthing. Supported Syncthing features: (deprecated-package "qsyncthingtray" syncthing-gtk)) (define-public go-github-com-syncthing-notify - (let ((commit "69c7a957d3e261f9744f46b3dd4d608d8480ad90") - (revision "5")) - (package - (name "go-github-com-syncthing-notify") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/syncthing/notify") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1mmdzyfnmjabyhbipl4bggw4w5nlxyyjp0d93qd824kj07kmsr1f")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/syncthing/notify")) - (propagated-inputs - (list go-golang-org-x-sys)) - (synopsis "File system event notification library") - (description "This package provides @code{notify}, a file system event -notification library in Go.") - (home-page "https://github.com/syncthing/notify") - (license expat)))) + (package + (name "go-github-com-syncthing-notify") + (version "0.0.0-20210616190510-c6b7342338d2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/syncthing/notify") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mw7kxj0smcf4vgpxai7m9vncdx2d3blxqy13hffvza0fxnwkv37")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/syncthing/notify")) + (propagated-inputs + (list go-golang-org-x-sys)) + (home-page "https://github.com/syncthing/notify") + (synopsis "File system event notification library") + (description + "This package provides @code{notify}, a file system event notification +library in Go.") + (license expat))) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 1fde977dff..202a4545cb 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2015-2022 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015-2022, 2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org> ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> @@ -494,7 +494,7 @@ can load dynamic libraries.") (define-public parinfer-rust-emacs (package (name "parinfer-rust-emacs") - (version "0.4.6") + (version "0.4.7") (source (origin (method git-fetch) @@ -502,22 +502,22 @@ can load dynamic libraries.") (url "https://github.com/justinbarclay/parinfer-rust-emacs") (commit (string-append "v" version)))) (sha256 - (base32 "1v5lcbs1x4f3b428sj9rkjbmfpzyxzny7i0pgdpnr8nyjvpkzns8")) + (base32 "1gay4m6hd893p5m3fayfdqxncg8cg9kw60w5qm8z14p9nxyqb0i5")) (file-name (git-file-name name version)))) (build-system cargo-build-system) (arguments (list #:install-source? #f - #:cargo-inputs `(("rust-getopts" ,rust-getopts-0.2) - ("rust-libc" ,rust-libc-0.2) - ("rust-emacs" ,rust-emacs-0.19) - ("rust-serde" ,rust-serde-1) - ("rust-serde-json" ,rust-serde-json-1) - ("rust-serde-derive" ,rust-serde-derive-1) - ("rust-stdweb" ,rust-stdweb-0.4) - ("rust-unicode-segmentation" ,rust-unicode-segmentation-1) - ("rust-unicode-width" ,rust-unicode-width-0.1) - ("rust-winapi" ,rust-winapi-0.3)) + #:cargo-inputs (list rust-getopts-0.2 + rust-libc-0.2 + rust-emacs-0.19 + rust-serde-1 + rust-serde-json-1 + rust-serde-derive-1 + rust-stdweb-0.4 + rust-unicode-segmentation-1 + rust-unicode-width-0.1 + rust-winapi-0.3) #:phases #~(modify-phases %standard-phases (add-after 'install 'install-library (lambda _ diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 3d9951b59b..01997c6b73 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -398,7 +398,8 @@ OpenSSL for TARGET." (cond ((target-hurd? target) "hurd") ((and (target-linux? target) - (target-riscv64? target)) + (or (target-riscv64? target) + (target-loongarch64? target))) "linux64") ((target-linux? target) "linux") @@ -428,6 +429,8 @@ OpenSSL for TARGET." ((and (target-powerpc? target) (target-64bit? target)) "ppc64") + ((target-loongarch64? target) + "loongarch64") ((target-riscv64? target) "riscv64") ((target-64bit? target) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8334b255d7..d0b5907bdd 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3184,6 +3184,7 @@ YouTube.com and many more sites.") (build-system pyproject-build-system) (arguments `(#:tests? ,(not (%current-target-system)) + #:test-flags '("--ignore=test/test_websockets.py") #:phases (modify-phases %standard-phases ;; See <https://issues.guix.gnu.org/43418#5>. @@ -3211,9 +3212,9 @@ YouTube.com and many more sites.") "yt-dlp" "completions")))) (replace 'check - (lambda* (#:key tests? #:allow-other-keys) + (lambda* (#:key tests? test-flags #:allow-other-keys) (when tests? - (invoke "pytest" "-k" "not download"))))))) + (apply invoke "pytest" "-k" "not download" test-flags))))))) (inputs (list ffmpeg python-brotli python-certifi python-mutagen diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index e77578cf18..f1b6cf940f 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> -;;; Copyright © 2016-2024 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016-2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> @@ -87,7 +87,7 @@ (define-public vim (package (name "vim") - (version "9.1.0889") + (version "9.1.1046") (source (origin (method git-fetch) (uri (git-reference @@ -96,7 +96,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1ma8g9zqqbr7pkwkb9zl62n80av18cb7yswq51fciwq3gb2hww5m")))) + "0zfpqx0caczy0gq3xvbkv328z7xq76jbx52vhq8x8l6nqzpyjzbc")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -161,9 +161,12 @@ (string-append line "return\n"))) (with-fluids ((%default-port-encoding #f)) (substitute* "src/testdir/test_writefile.vim" + ;; No setfattr in the build environment. ((".*Test_write_with_xattr_support.*" line) (string-append line "return\n")))) - (delete-file "runtime/syntax/testdir/input/sh_11.sh"))) + ;; These two depend on full bash. + (delete-file "runtime/syntax/testdir/input/sh_11.sh") + (delete-file "runtime/syntax/testdir/input/sh_12.sh"))) (add-before 'install 'fix-installman.sh (lambda _ (substitute* "src/installman.sh" diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index dd5b51c7fe..241dff73ac 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2018, 2023, 2024 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018, 2023-2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org> ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org> ;;; Copyright © 2022 Kaelyn Takata <kaelyn.alexi@protonmail.com> @@ -363,7 +363,7 @@ Enhanced Subpixel Morphological Anti-Aliasing (list ;; As many as 23 tests are expected to fail per architecture. ;; Limit the tests to those architectures tested upstream. - #:tests? (and (%current-system) + #:tests? (and (not (%current-target-system)) (target-x86?)) #:configure-flags #~(list (string-append "-DVULKAN_HEADERS_INSTALL_DIR=" diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index d680761f74..c0138eea17 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -1044,6 +1044,40 @@ Features include @end itemize") (license license:bsd-2))) +(define-public dillo + (package + (name "dillo") + (version "3.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dillo-browser/dillo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19rr09b4xvnz7isng8pzxm5879g3pqvml5v8vh4gbwwn93dnlwpn")))) + (build-system gnu-build-system) + (native-inputs (list autoconf automake)) + (inputs (list fltk + fontconfig + openssl + libjpeg-turbo + libpng + libwebp + libxext + libx11 + libxfixes + libxft + libxrender + zlib)) + (home-page "https://dillo-browser.github.io/") + (synopsis "Very small and fast graphical web browser") + (description + "Dillo is a minimalistic web browser particularly intended for +-older or slower computers and embedded systems.") + (license license:gpl3+))) + (define-public edbrowse (package (name "edbrowse") diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index bed4765895..3056083c94 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5273,8 +5273,8 @@ Cloud.") (license license:expat))) (define-public guix-data-service - (let ((commit "c886685e9284da4bbed9377f70dd70da9e7ca29f") - (revision "58")) + (let ((commit "25bf45fe7734ea8de4e98c97595420b19c871e61") + (revision "59")) (package (name "guix-data-service") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -5286,7 +5286,7 @@ Cloud.") (file-name (git-file-name name version)) (sha256 (base32 - "0rg8ydzg4s984bvz73343vqb3fkykk7x48121c1rzdiakh3ndp1i")))) + "1na02i9mfxpc9hwnvx2zp2ykvxgffc8i0fjzbh9vi9n1l6iryiwz")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 2f69911b97..ea36774d36 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -218,6 +218,17 @@ hierarchical form with variable field lengths.") (list #:phases #~(modify-phases %standard-phases + #$@(if (target-loongarch64?) + #~((add-after 'unpack 'update-config-scripts + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.guess and config.sub. + (for-each (lambda (file) + (install-file + (search-input-file + (or native-inputs inputs) + (string-append "/bin/" file)) ".")) + '("config.guess" "config.sub"))))) + #~()) (add-after 'install 'use-other-outputs (lambda _ (let ((doc (string-append #$output:doc "/share/")) @@ -242,7 +253,10 @@ hierarchical form with variable field lengths.") (synopsis "C parser for XML") (inputs (list xz)) (propagated-inputs (list zlib)) ; libxml2.la says '-lz'. - (native-inputs (list perl)) + (native-inputs (append (if (target-loongarch64?) + (list config) + '()) + (list perl))) (native-search-paths (list $SGML_CATALOG_FILES $XML_CATALOG_FILES)) (search-paths native-search-paths) diff --git a/gnu/services/backup.scm b/gnu/services/backup.scm index 555e9fc959..99a79ff5fb 100644 --- a/gnu/services/backup.scm +++ b/gnu/services/backup.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org> +;;; Copyright © 2024, 2025 Giacomo Leidi <goodoldpaul@autistici.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,9 +18,10 @@ (define-module (gnu services backup) #:use-module (gnu packages backup) + #:use-module (gnu packages bash) #:use-module (gnu services) #:use-module (gnu services configuration) - #:use-module (gnu services mcron) + #:use-module (gnu services shepherd) #:use-module (guix build-system copy) #:use-module (guix gexp) #:use-module ((guix licenses) @@ -33,11 +34,16 @@ restic-backup-job-fields restic-backup-job-restic restic-backup-job-user + restic-backup-job-group + restic-backup-job-log-file + restic-backup-job-max-duration + restic-backup-job-wait-for-termination? restic-backup-job-name restic-backup-job-repository restic-backup-job-password-file restic-backup-job-schedule restic-backup-job-files + restic-backup-job-requirement restic-backup-job-verbose? restic-backup-job-extra-flags @@ -64,6 +70,12 @@ (define list-of-lowerables? (list-of lowerable?)) +(define list-of-symbols? + (list-of symbol?)) + +(define-maybe/no-serialization string) +(define-maybe/no-serialization number) + (define-configuration/no-serialization restic-backup-job (restic (package restic) @@ -71,6 +83,23 @@ (user (string "root") "The user used for running the current job.") + (group + (string "root") + "The group used for running the current job.") + (log-file + (maybe-string) + "The file system path to the log file for this job. By default the file will +have be @file{/var/log/restic-backup/@var{job-name}.log}, where @var{job-name} is the +name defined in the @code{name} field.") + (max-duration + (maybe-number) + "The maximum duration in seconds that a job may last. Past +@code{max-duration} seconds, the job is forcefully terminated.") + (wait-for-termination? + (boolean #f) + "Wait until the job has finished before considering executing it again; +otherwise, perform it strictly on every occurrence of event, at the risk of +having multiple instances running concurrently.") (name (string) "A string denoting a name for this job.") @@ -84,9 +113,12 @@ will be used to set the @code{RESTIC_PASSWORD} environment variable for the current job.") (schedule (gexp-or-string) - "A string or a gexp that will be passed as time specification in the mcron -job specification (@pxref{Syntax, mcron job specifications,, mcron, -GNU@tie{}mcron}).") + "A string or a gexp representing the frequency of the backup. Gexp must +evaluate to @code{calendar-event} records or to strings. Strings must contain +Vixie cron date lines.") + (requirement + (list-of-symbols '()) + "The list of Shepherd services that this backup job depends upon.") (files (list-of-lowerables '()) "The list of files or directories to be backed up. It must be a list of @@ -175,16 +207,59 @@ command-line arguments to the current job @command{restic backup} invokation.")) (main (command-line))))) -(define (restic-backup-job->mcron-job config) - (let ((user - (restic-backup-job-user config)) - (schedule - (restic-backup-job-schedule config)) - (name - (restic-backup-job-name config))) - #~(job #$schedule - #$(string-append "restic-guix backup " name) - #:user #$user))) +(define (restic-job-log-file job) + (let ((name (restic-backup-job-name job)) + (log-file (restic-backup-job-log-file job))) + (if (maybe-value-set? log-file) + log-file + (string-append "/var/log/restic-backup/" name ".log")))) + +(define (restic-backup-job->shepherd-service config) + (let ((schedule (restic-backup-job-schedule config)) + (name (restic-backup-job-name config)) + (user (restic-backup-job-user config)) + (group (restic-backup-job-group config)) + (max-duration (restic-backup-job-max-duration config)) + (wait-for-termination? (restic-backup-job-wait-for-termination? config)) + (log-file (restic-job-log-file config)) + (requirement (restic-backup-job-requirement config))) + (shepherd-service (provision `(,(string->symbol name))) + (requirement + `(user-processes file-systems ,@requirement)) + (documentation + "Run @code{restic} backed backups on a regular basis.") + (modules '((shepherd service timer))) + (start + #~(make-timer-constructor + (if (string? #$schedule) + (cron-string->calendar-event #$schedule) + #$schedule) + (command + (list + ;; We go through bash, instead of executing + ;; restic-guix directly, because the login shell + ;; gives us the correct user environment that some + ;; backends require, such as rclone. + (string-append #+bash-minimal "/bin/bash") + "-l" "-c" + (string-append "restic-guix backup " #$name)) + #:user #$user + #:group #$group + #:environment-variables + (list + (string-append + "HOME=" (passwd:dir (getpwnam #$user))))) + #:log-file #$log-file + #:wait-for-termination? #$wait-for-termination? + #:max-duration #$(and (maybe-value-set? max-duration) + max-duration))) + (stop + #~(make-timer-destructor)) + (actions (list (shepherd-action + (name 'trigger) + (documentation "Manually trigger a backup, +without waiting for the scheduled time.") + (procedure #~trigger-timer))))))) (define (restic-guix-wrapper-package jobs) (package @@ -212,15 +287,24 @@ without waiting for the scheduled job to run.") (restic-guix-wrapper-package jobs)) '()))) +(define (restic-backup-activation config) + #~(for-each + (lambda (log-file) + (mkdir-p (dirname log-file))) + (list #$@(map restic-job-log-file + (restic-backup-configuration-jobs config))))) + (define restic-backup-service-type (service-type (name 'restic-backup) (extensions (list + (service-extension activation-service-type + restic-backup-activation) (service-extension profile-service-type restic-backup-service-profile) - (service-extension mcron-service-type + (service-extension shepherd-root-service-type (lambda (config) - (map restic-backup-job->mcron-job + (map restic-backup-job->shepherd-service (restic-backup-configuration-jobs config)))))) (compose concatenate) @@ -232,5 +316,5 @@ without waiting for the scheduled job to run.") jobs))))) (default-value (restic-backup-configuration)) (description - "This service configures @code{mcron} jobs for running backups -with @code{restic}."))) + "This service configures Shepherd timers for running backups +with restic."))) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index c18c12a8b8..e544656182 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com> -;;; Copyright © 2017, 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2017, 2020, 2022, 2023, 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2017 Nikita <nikita@n0.is> ;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2018, 2020, 2022 Efraim Flashner <efraim@flashner.co.il> @@ -152,6 +152,7 @@ gnome-desktop-configuration-shell gnome-desktop-configuration-utilities gnome-desktop-configuration-extra-packages + gnome-desktop-configuration-polkit-ignorelist gnome-desktop-configuration-udev-ignorelist gnome-desktop-service gnome-desktop-service-type @@ -1546,7 +1547,7 @@ dependencies by filtering out the ignorelist." (union-build #$output (search-path-as-list (list "lib/udev" "libexec/udev") - (list #$@(gnome-profile config))) + (list #$@(gnome-profile config #:transitive? #t))) #:create-all-directories? #t) (for-each (lambda (pattern) @@ -1571,7 +1572,7 @@ rules." (union-build output (search-path-as-list (list "share/polkit-1") - (list #$@(gnome-profile config))) + (list #$@(gnome-profile config #:transitive? #t))) #:create-all-directories? #t) (for-each (lambda (pattern) @@ -1580,21 +1581,56 @@ rules." (find-files output pattern))) (list #$@(gnome-desktop-configuration-polkit-ignorelist config)))))))) -(define (gnome-profile config) - "Return a list of packages propagated through CONFIG." - (append - (gnome-desktop-configuration-core-services config) - (gnome-desktop-configuration-shell config) - (gnome-desktop-configuration-utilities config) - (let ((gnome-meta (gnome-desktop-configuration-gnome config))) - (if (maybe-value-set? gnome-meta) - (begin - (warning - (gnome-desktop-configuration-source-location config) - (G_ "Using a meta-package for gnome-desktop is discouraged.~%")) - (list gnome-meta)) - (list))) - (gnome-desktop-configuration-extra-packages config))) +(define* (gnome-profile config #:key transitive?) + "Return the list of the packages specified in CONFIG. When TRANSITIVE? is +#t, also include their transitive propagated inputs. If there are transitive +inputs using non-default outputs, they are returned as gexp-input objects." + (define gnome-packages + (append + (gnome-desktop-configuration-core-services config) + (gnome-desktop-configuration-shell config) + (gnome-desktop-configuration-utilities config) + (let ((gnome-meta (gnome-desktop-configuration-gnome config))) + (if (maybe-value-set? gnome-meta) + (begin + (warning + (gnome-desktop-configuration-source-location config) + (G_ "Using a meta-package for gnome-desktop is discouraged.~%")) + (list gnome-meta)) + (list))) + (gnome-desktop-configuration-extra-packages config))) + (if transitive? + (append gnome-packages + (append-map (compose (cut map (match-lambda ;discard labels + ((_ pkg) pkg) + ((_ pkg out) + (gexp-input pkg out))) + <>) + package-transitive-propagated-inputs) + gnome-packages)) + gnome-packages)) + +(define (gnome-setuid-programs config) + "Return the list of setuid programs found within the packages specified in +CONFIG, a <gnome-desktop-configuration> object." + ;; spice-gtk provides polkit actions for USB redirection in GNOME Boxes; set + ;; its usb-acl-helper script setuid automatically when the gnome-boxes or + ;; spice-gtk packages are added to one of the gnome-desktop-configuration + ;; fields. + (let* ((gnome-packages (gnome-profile config #:transitive? #t)) + (spice-gtk (find (compose (cut string=? "spice-gtk" <>) + package-name + (match-lambda ;disregard potential output + ((? package? p) p) + ((? gexp-input? p) + (gexp-input-thing p)))) + gnome-packages)) + (files `(,@(if spice-gtk + (list (file-append + spice-gtk + "/libexec/spice-client-glib-usb-acl-helper")) + '())))) + (map file-like->setuid-program files))) (define gnome-desktop-service-type (service-type @@ -1604,6 +1640,8 @@ rules." gnome-udev-configuration-files) (service-extension polkit-service-type gnome-polkit-settings) + (service-extension privileged-program-service-type + gnome-setuid-programs) (service-extension profile-service-type gnome-profile))) (default-value (gnome-desktop-configuration)) diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm index 1a4d090fa9..863177c59e 100644 --- a/guix/build-system/go.scm +++ b/guix/build-system/go.scm @@ -111,6 +111,7 @@ commit hash and its date rather than a proper release tag." ("i686" "386") ("x86_64" "amd64") ("mips64el" "mips64le") + ("loongarch64" "loong64") (_ arch)) (match os ((or "mingw32" "cygwin") "windows") diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm index 67be007717..5eeeb59e65 100644 --- a/guix/build-system/meson.scm +++ b/guix/build-system/meson.scm @@ -69,6 +69,7 @@ for TRIPLET." "ppc64" "ppc")) ((target-riscv64? triplet) "riscv64") + ((target-loongarch64? triplet) "loongarch64") (else (raise (condition diff --git a/guix/docker.scm b/guix/docker.scm index 7ab1a46c7b..22f18a910b 100644 --- a/guix/docker.scm +++ b/guix/docker.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017-2019, 2021, 2025 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Oleg Pykhalov <go.wigust@gmail.com> @@ -171,8 +171,15 @@ Return a version of TAG that follows these rules." (1- items-length))))) (list head tail))) +(define (tar . arguments) + "Invoke 'tar' with the given ARGUMENTS together with options to build +tarballs in a reproducible fashion." + (apply invoke "tar" "--mtime=@1" + "--owner=0" "--group=0" "--numeric-owner" + "--sort=name" "--mode=go+u,go-w" arguments)) + (define (create-empty-tar file) - (invoke "tar" "-cf" file "--files-from" "/dev/null")) + (tar "-cf" file "--files-from" "/dev/null")) (define* (build-docker-image image paths prefix #:key @@ -256,7 +263,7 @@ added to image as a layer." (file-name (string-append file-hash "/layer.tar"))) (mkdir file-hash) (rename-file "layer.tar" file-name) - (invoke "tar" "-rf" "image.tar" file-name) + (tar "-rf" "image.tar" file-name) (delete-file file-name) file-hash)) (define layers-hashes @@ -269,20 +276,20 @@ added to image as a layer." (let* ((head-layers (map (lambda (file) - (invoke "tar" "cf" "layer.tar" file) + (tar "cf" "layer.tar" file) (seal-layer)) head)) (tail-layer (begin (create-empty-tar "layer.tar") (for-each (lambda (file) - (invoke "tar" "-rf" "layer.tar" file)) + (tar "-rf" "layer.tar" file)) tail) (let* ((file-hash (layer-diff-id "layer.tar")) (file-name (string-append file-hash "/layer.tar"))) (mkdir file-hash) (rename-file "layer.tar" file-name) - (invoke "tar" "-rf" "image.tar" file-name) + (tar "-rf" "image.tar" file-name) (delete-file file-name) file-hash))) (customization-layer @@ -291,7 +298,7 @@ added to image as a layer." (file-name (string-append file-hash "/layer.tar"))) (mkdir file-hash) (rename-file file-id file-name) - (invoke "tar" "-rf" "image.tar" file-name) + (tar "-rf" "image.tar" file-name) file-hash)) (all-layers (append head-layers (list tail-layer customization-layer)))) @@ -301,7 +308,7 @@ added to image as a layer." (map (cut string-append <> "/layer.tar") all-layers) repository)))) - (invoke "tar" "-rf" "image.tar" "manifest.json") + (tar "-rf" "image.tar" "manifest.json") all-layers)))) (let* ((directory "/tmp/docker-image") ;temporary working directory (id (docker-id prefix)) @@ -390,7 +397,7 @@ added to image as a layer." #:entry-point entry-point)))) (if max-layers (begin - (invoke "tar" "-rf" "image.tar" "config.json") + (tar "-rf" "image.tar" "config.json") (if compressor (begin (apply invoke `(,@compressor "image.tar")) diff --git a/guix/import/crate.scm b/guix/import/crate.scm index b4806c8bb2..d790126ef6 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2023 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2023, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023, 2024 David Elsing <david.elsing@posteo.net> +;;; Copyright © 2025 Herman Rimm <herman@rimm.ee> ;;; ;;; This file is part of GNU Guix. ;;; @@ -290,6 +291,31 @@ and LICENSE." (not (crate-version-yanked? entry))) (crate-versions crate))) +(define (find-package-version name range allow-yanked?) + "Find the latest existing package that fulfills the SemVer RANGE. If +ALLOW-YANKED? is #t, include packages marked as yanked at a lower +priority." + (set! range (string->semver-range range)) + (let loop ((packages (find-packages-by-name + (crate-name->package-name name))) + (semver #f) + (yanked? #f)) + (match packages + ((pkg packages ...) + (let ((pkg-yanked? (assoc-ref (package-properties pkg) + 'crate-version-yanked?))) + (if (or allow-yanked? (not pkg-yanked?)) + (let ((pkg-semver (string->semver (package-version pkg)))) + (if (and (or (not semver) + (and yanked? (not pkg-yanked?)) + (and (eq? yanked? pkg-yanked?) + (semver>? pkg-semver semver))) + (semver-range-contains? range pkg-semver)) + (loop packages pkg-semver pkg-yanked?) + (loop packages semver yanked?))) + (loop packages semver yanked?)))) + (() (and semver (list (semver->string semver) yanked?)))))) + (define* (crate->guix-package crate-name #:key version include-dev-deps? allow-yanked? #:allow-other-keys) @@ -316,32 +342,6 @@ look up the development dependencs for the given crate." (or version (crate-latest-version crate)))) - ;; Find the highest existing package that fulfills the semver <range>. - ;; Packages previously marked as yanked take lower priority. - (define (find-package-version name range) - (let* ((semver-range (string->semver-range range)) - (version - (min-element - (filter (match-lambda ((semver yanked) - (and - (or allow-yanked? (not yanked)) - (semver-range-contains? semver-range semver)))) - (map (lambda (pkg) - (let ((version (package-version pkg))) - (list - (string->semver version) - (assoc-ref (package-properties pkg) - 'crate-version-yanked?)))) - (find-packages-by-name - (crate-name->package-name name)))) - (match-lambda* (((semver1 yanked1) (semver2 yanked2)) - (or (and yanked1 (not yanked2)) - (and (eq? yanked1 yanked2) - (semver<? semver1 semver2)))))))) - (and (not (eq? #f version)) - (match-let (((semver yanked) version)) - (list (semver->string semver) yanked))))) - ;; Find the highest version of a crate that fulfills the semver <range>. ;; If no matching non-yanked version has been found and allow-yanked? is #t, ;; also consider yanked packages. @@ -361,7 +361,8 @@ look up the development dependencs for the given crate." (define (dependency-name+version+yanked dep) (let* ((name (crate-dependency-id dep)) (req (crate-dependency-requirement dep)) - (existing-version (find-package-version name req))) + (existing-version + (find-package-version name req allow-yanked?))) (if (and existing-version (not (second existing-version))) (cons name existing-version) (let* ((crate (lookup-crate* name)) diff --git a/guix/platforms/loongarch.scm b/guix/platforms/loongarch.scm new file mode 100644 index 0000000000..f569669373 --- /dev/null +++ b/guix/platforms/loongarch.scm @@ -0,0 +1,30 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix platforms loongarch) + #:use-module (guix platform) + #:use-module (guix records) + #:export (loongarch64-linux)) + +(define loongarch64-linux + (platform + (target "loongarch64-linux-gnu") + (system #f) + (linux-architecture "loongarch") + (rust-target "loongarch64-unknown-linux-gnu") + (glibc-dynamic-linker "/lib/ld-linux-loongarch-lp64d.so.1"))) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index d0e66c3013..7f5a5f2aa7 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -1018,15 +1018,22 @@ generating the AppImage. Valid compressors are: ~a~%") compressor-name %valid-compressors))) + (define database + (and localstatedir? + (file-append (store-database (list profile)) + "/db/db.sqlite"))) + (define builder (with-extensions (list guile-gcrypt) (with-imported-modules (source-module-closure '((guix build store-copy) - (guix build utils)) + (guix build utils) + (gnu build install)) #:select? not-config?) #~(begin (use-modules (guix build utils) (guix build store-copy) + (gnu build install) (rnrs io ports) (srfi srfi-1) (srfi srfi-26)) @@ -1060,6 +1067,10 @@ generating the AppImage. Valid compressors are: ~a~%") (string-append appdir "/" #$name ".desktop") #:name #$name #:exec #$entry-point) + ;; Install database and gc roots. + (when #+database + ;; Initialize /var/guix. + (install-database-and-gc-roots appdir #+database profile)) ;; Compress the AppDir. (invoke #+(file-append squashfs-tools "/bin/mksquashfs") appdir squashfs "-root-owned" "-noappend" diff --git a/guix/upstream.scm b/guix/upstream.scm index c44afbc677..62ba6c9d39 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -427,7 +427,8 @@ string such as \"xz\". Otherwise return #f." (let ((extension (file-extension file))) ;; FILE might be "example-1.2-checkout", in which case we want to ;; ignore the extension. - (and (or (string-contains extension "z") + (and (string? extension) + (or (string-contains extension "z") (string-contains extension "tar")) extension))))) diff --git a/guix/utils.scm b/guix/utils.scm index 2d82329cb7..b6cf5aea4f 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -113,6 +113,7 @@ target-ppc64le? target-powerpc? target-riscv64? + target-loongarch64? target-mips64el? target-64bit? target-little-endian? @@ -810,6 +811,10 @@ architecture (x86_64) using 32-bit data types?" "Is the architecture of TARGET a variant of Microchip's AVR architecture?" (or (string=? target "avr") (string-prefix? "avr-" target))) +(define* (target-loongarch64? #:optional (target (or (%current-target-system) + (%current-system)))) + (string-prefix? "loongarch64-" target)) + (define* (target-ppc32? #:optional (target (or (%current-target-system) (%current-system)))) (string-prefix? "powerpc-" target)) @@ -834,7 +839,7 @@ architecture (x86_64) using 32-bit data types?" (define* (target-64bit? #:optional (system (or (%current-target-system) (%current-system)))) (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" - "powerpc64" "riscv64"))) + "powerpc64" "riscv64" "loongarch64"))) (define* (target-little-endian? #:optional (target (or (%current-target-system) (%current-system)))) diff --git a/tests/crate.scm b/tests/crate.scm index 5b4ad08c3c..02b708f9d9 100644 --- a/tests/crate.scm +++ b/tests/crate.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> -;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2023, 2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023 David Elsing <david.elsing@posteo.net> ;;; ;;; This file is part of GNU Guix. @@ -1030,7 +1030,7 @@ (method url-fetch) (uri (crate-uri "leaf-bob" version)) (file-name - (string-append name "-" version ".tar.gz")) + (string-append name "-" version "-yanked.tar.gz")) (sha256 (base32 (? string? hash))))) @@ -1050,7 +1050,7 @@ (method url-fetch) (uri (crate-uri "leaf-bob" version)) (file-name - (string-append name "-" version ".tar.gz")) + (string-append name "-" version "-yanked.tar.gz")) (sha256 (base32 (? string? hash))))) diff --git a/tests/lint.scm b/tests/lint.scm index 3e9dbd29db..71476f5ae2 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014-2025 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Alex Kost <alezost@gmail.com> @@ -448,31 +448,29 @@ (check-inputs-should-be-native pkg)))) (test-equal - "inputs: python-setuptools should not be an input at all (input)" - "'python-setuptools' should probably not be an input at all" + "inputs: python-pip should not be an input at all (input)" + "'python-pip' should probably not be an input at all" (single-lint-warning-message (let ((pkg (dummy-package "x" - (inputs `(("python-setuptools" - ,python-setuptools)))))) + (inputs `(("python-pip" ,python-pip)))))) (check-inputs-should-not-be-an-input-at-all pkg)))) (test-equal - "inputs: python-setuptools should not be an input at all (native-input)" - "'python-setuptools' should probably not be an input at all" + "inputs: python-pip should not be an input at all (native-input)" + "'python-pip' should probably not be an input at all" (single-lint-warning-message (let ((pkg (dummy-package "x" (native-inputs - `(("python-setuptools" - ,python-setuptools)))))) + `(("python-pip" ,python-pip)))))) (check-inputs-should-not-be-an-input-at-all pkg)))) (test-equal - "inputs: python-setuptools should not be an input at all (propagated-input)" - "'python-setuptools' should probably not be an input at all" + "inputs: python-pip should not be an input at all (propagated-input)" + "'python-pip' should probably not be an input at all" (single-lint-warning-message (let ((pkg (dummy-package "x" (propagated-inputs - `(("python-setuptools" ,python-setuptools)))))) + `(("python-pip" ,python-pip)))))) (check-inputs-should-not-be-an-input-at-all pkg)))) (test-assert "input labels: no warnings" diff --git a/tests/pack.scm b/tests/pack.scm index 1c1e312557..9c7e0a50ba 100644 --- a/tests/pack.scm +++ b/tests/pack.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017-2021, 2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017-2021, 2023, 2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Oleg Pykhalov <go.wigust@gmail.com> @@ -34,14 +34,15 @@ #:use-module ((guix build utils) #:select (%store-directory)) #:use-module (gnu packages) #:use-module ((gnu packages base) #:select (libc-utf8-locales-for-target - hello)) + hello glibc)) #:use-module (gnu packages bootstrap) #:use-module ((gnu packages package-management) #:select (rpm)) #:use-module ((gnu packages compression) #:select (squashfs-tools)) #:use-module ((gnu packages debian) #:select (dpkg)) - #:use-module ((gnu packages guile) #:select (guile-sqlite3)) + #:use-module ((gnu packages guile) #:select (guile-sqlite3 guile-3.0)) #:use-module ((gnu packages gnupg) #:select (guile-gcrypt)) #:use-module ((gnu packages linux) #:select (fakeroot)) + #:use-module ((ice-9 textual-ports) #:select (get-string-all)) #:use-module (srfi srfi-64)) (define %store @@ -347,36 +348,64 @@ (mlet* %store-monad ((guile (set-guile-for-build (default-guile))) (profile -> (profile - (content (packages->manifest (list %bootstrap-guile hello))) + ;; When using '--appimage-extract-and-run', the dynamic + ;; linker is necessary, hence glibc below. + (content (packages->manifest (list hello glibc))) (hooks '()) (locales? #f))) (image (self-contained-appimage "hello-appimage" profile #:entry-point "bin/hello" #:extra-options - (list #:relocatable? #t))) + '(#:relocatable? #t))) (check (gexp->derivation "check-appimage" - #~(invoke #$image)))) - (built-derivations (list check)))) + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (ice-9 popen) + (guix build utils)) + (let ((pipe (open-pipe* OPEN_READ + #$image "--appimage-extract-and-run"))) + (call-with-output-file #$output + (lambda (port) + (dump-port pipe port))) + (exit (status:exit-val (close-pipe pipe))))))))) + (mbegin %store-monad + (built-derivations (list (pk 'APPIMAGE-drv check))) + (return (string=? (call-with-input-file (derivation->output-path check) + get-string-all) + "Hello, world!\n"))))) (unless store (test-skip 1)) (test-assertm "appimage + localstatedir" (mlet* %store-monad ((guile (set-guile-for-build (default-guile))) (profile -> (profile - (content (packages->manifest (list %bootstrap-guile hello))) + ;; When using '--appimage-extract-and-run', the dynamic + ;; linker is necessary, hence glibc below. + (content (packages->manifest (list guile-3.0 glibc))) (hooks '()) (locales? #f))) - (image (self-contained-appimage "hello-appimage" profile - #:entry-point "bin/hello" + (image (self-contained-appimage "guile-appimage" profile + #:entry-point "bin/guile" #:localstatedir? #t #:extra-options - (list #:relocatable? #t))) + '(#:relocatable? #t))) (check (gexp->derivation - "check-appimage" + "check-appimage-with-localstatedir" #~(begin - (invoke #$image))))) - (built-derivations (list check)))) + (system* #$image "--appimage-extract-and-run" "-c" + (object->string + `(call-with-output-file #$output + (lambda (port) + (display "Hello from Guile!\n" + port))))) + (system* #$image "--appimage-extract") + (exit (file-exists? "squashfs-root/var/guix/db/db.sqlite")))))) + (mbegin %store-monad + (built-derivations (list (pk 'APPIMAGE-drv check))) + (return (string=? (call-with-input-file (derivation->output-path check) + get-string-all) + "Hello from Guile!\n"))))) (unless store (test-skip 1)) (test-assertm "deb archive with symlinks and control files" |