aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-04-20 11:18:46 +0100
committerChristopher Baines <mail@cbaines.net>2024-04-20 11:18:46 +0100
commit6b881028a3f9c01eb4b3d0ab2e8058105cb59207 (patch)
tree8e738c4e04a21ba45a22ebbecd521a5d761a5d52
parentc364566cb7286bf96e358bdd132cda3c6322feff (diff)
parent3d2966e0b7dbf15a5cb497037ace73d1be92febf (diff)
downloadguix-6b881028a3f9c01eb4b3d0ab2e8058105cb59207.tar
guix-6b881028a3f9c01eb4b3d0ab2e8058105cb59207.tar.gz
Merge commit '3d2966e0b7' into core-update-new-2
Change-Id: I532430d9692b48cb3fbde2af8753b7d9829aa1da Conflicts: gnu/local.mk gnu/packages/freedesktop.scm gnu/packages/java.scm gnu/packages/llvm.scm gnu/packages/man.scm gnu/packages/telegram.scm gnu/packages/wm.scm
-rw-r--r--doc/build.scm26
-rw-r--r--doc/contributing.texi254
-rw-r--r--doc/guix-cookbook.texi17
-rw-r--r--doc/guix.texi44
-rw-r--r--etc/guix-daemon.service.in4
-rw-r--r--etc/guix-publish.service.in4
-rw-r--r--etc/news.scm71
-rwxr-xr-xetc/teams.scm13
-rw-r--r--etc/teams/qt/common.scm4
-rw-r--r--etc/teams/qt/qt-manifest.scm4
-rw-r--r--etc/teams/qt/qt5-manifest.scm4
-rw-r--r--etc/time-travel-manifest.scm24
-rw-r--r--gnu/home/services/shepherd.scm14
-rw-r--r--gnu/local.mk13
-rw-r--r--gnu/packages/admin.scm126
-rw-r--r--gnu/packages/algebra.scm6
-rw-r--r--gnu/packages/audio.scm37
-rw-r--r--gnu/packages/bioconductor.scm46
-rw-r--r--gnu/packages/bioinformatics.scm179
-rw-r--r--gnu/packages/bittorrent.scm17
-rw-r--r--gnu/packages/c.scm4
-rw-r--r--gnu/packages/calendar.scm4
-rw-r--r--gnu/packages/check.scm15
-rw-r--r--gnu/packages/code.scm8
-rw-r--r--gnu/packages/containers.scm4
-rw-r--r--gnu/packages/cpp.scm11
-rw-r--r--gnu/packages/cran.scm277
-rw-r--r--gnu/packages/crates-io.scm1
-rw-r--r--gnu/packages/databases.scm4
-rw-r--r--gnu/packages/diffoscope.scm5
-rw-r--r--gnu/packages/dns.scm8
-rw-r--r--gnu/packages/documentation.scm45
-rw-r--r--gnu/packages/education.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm893
-rw-r--r--gnu/packages/emulators.scm17
-rw-r--r--gnu/packages/finance.scm130
-rw-r--r--gnu/packages/fonts.scm126
-rw-r--r--gnu/packages/fontutils.scm6
-rw-r--r--gnu/packages/freedesktop.scm25
-rw-r--r--gnu/packages/freeipmi.scm4
-rw-r--r--gnu/packages/games.scm73
-rw-r--r--gnu/packages/gcc.scm7
-rw-r--r--gnu/packages/gimp.scm109
-rw-r--r--gnu/packages/gnome.scm5
-rw-r--r--gnu/packages/gnunet.scm150
-rw-r--r--gnu/packages/gnuzilla.scm18
-rw-r--r--gnu/packages/golang-check.scm64
-rw-r--r--gnu/packages/golang-compression.scm45
-rw-r--r--gnu/packages/golang-crypto.scm26
-rw-r--r--gnu/packages/golang-web.scm232
-rw-r--r--gnu/packages/golang-xyz.scm296
-rw-r--r--gnu/packages/golang.scm179
-rw-r--r--gnu/packages/guile-xyz.scm12
-rw-r--r--gnu/packages/ipfs.scm26
-rw-r--r--gnu/packages/java.scm37
-rw-r--r--gnu/packages/javascript.scm20
-rw-r--r--gnu/packages/kde-plasma.scm4
-rw-r--r--gnu/packages/linux.scm73
-rw-r--r--gnu/packages/lisp-xyz.scm801
-rw-r--r--gnu/packages/lisp.scm4
-rw-r--r--gnu/packages/llvm-meta.scm83
-rw-r--r--gnu/packages/llvm.scm72
-rw-r--r--gnu/packages/logging.scm11
-rw-r--r--gnu/packages/lua.scm4
-rw-r--r--gnu/packages/machine-learning.scm55
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/man.scm49
-rw-r--r--gnu/packages/markup.scm4
-rw-r--r--gnu/packages/mastodon.scm19
-rw-r--r--gnu/packages/maths.scm42
-rw-r--r--gnu/packages/mc.scm5
-rw-r--r--gnu/packages/music.scm174
-rw-r--r--gnu/packages/nx.scm246
-rw-r--r--gnu/packages/ocr.scm6
-rw-r--r--gnu/packages/package-management.scm49
-rw-r--r--gnu/packages/password-utils.scm12
-rw-r--r--gnu/packages/patches/clang-17.0-link-dsymutil-latomic.patch14
-rw-r--r--gnu/packages/patches/hubbub-maybe-uninitialized.patch40
-rw-r--r--gnu/packages/patches/libcss-check-format.patch13
-rw-r--r--gnu/packages/patches/libextractor-tidy-support.patch81
-rw-r--r--gnu/packages/patches/netsurf-message-timestamp.patch4
-rw-r--r--gnu/packages/patches/python-3.12-fix-tests.patch334
-rw-r--r--gnu/packages/patches/python-poppler-qt5-fix-build.patch116
-rw-r--r--gnu/packages/patches/qemu-build-info-manual.patch37
-rw-r--r--gnu/packages/patches/qemu-disable-bios-tables-test.patch (renamed from gnu/packages/patches/qemu-disable-some-qtests-tests.patch)36
-rw-r--r--gnu/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch45
-rw-r--r--gnu/packages/patches/sioyek-fix-build.patch82
-rw-r--r--gnu/packages/patchutils.scm4
-rw-r--r--gnu/packages/pdf.scm138
-rw-r--r--gnu/packages/photo.scm4
-rw-r--r--gnu/packages/plotutils.scm6
-rw-r--r--gnu/packages/python-web.scm248
-rw-r--r--gnu/packages/python-xyz.scm325
-rw-r--r--gnu/packages/python.scm392
-rw-r--r--gnu/packages/qt.scm60
-rw-r--r--gnu/packages/radio.scm4
-rw-r--r--gnu/packages/raspberry-pi.scm6
-rw-r--r--gnu/packages/rdf.scm39
-rw-r--r--gnu/packages/ruby.scm18
-rw-r--r--gnu/packages/rust-apps.scm203
-rw-r--r--gnu/packages/rust.scm9
-rw-r--r--gnu/packages/scheme.scm4
-rw-r--r--gnu/packages/security-token.scm49
-rw-r--r--gnu/packages/shells.scm8
-rw-r--r--gnu/packages/statistics.scm23
-rw-r--r--gnu/packages/swig.scm4
-rw-r--r--gnu/packages/syncthing.scm30
-rw-r--r--gnu/packages/telegram.scm107
-rw-r--r--gnu/packages/terminals.scm3
-rw-r--r--gnu/packages/text-editors.scm30
-rw-r--r--gnu/packages/time.scm25
-rw-r--r--gnu/packages/tor-browsers.scm66
-rw-r--r--gnu/packages/version-control.scm4
-rw-r--r--gnu/packages/video.scm75
-rw-r--r--gnu/packages/virtualization.scm25
-rw-r--r--gnu/packages/weather.scm6
-rw-r--r--gnu/packages/web-browsers.scm30
-rw-r--r--gnu/packages/web.scm199
-rw-r--r--gnu/packages/webkit.scm11
-rw-r--r--gnu/packages/wget.scm12
-rw-r--r--gnu/packages/wine.scm12
-rw-r--r--gnu/packages/wm.scm130
-rw-r--r--gnu/packages/xdisorg.scm26
-rw-r--r--gnu/packages/xfce.scm132
-rw-r--r--gnu/packages/xiph.scm4
-rw-r--r--gnu/packages/xorg.scm4
-rw-r--r--gnu/packages/zig-xyz.scm25
-rw-r--r--gnu/packages/zig.scm7
-rw-r--r--gnu/services/base.scm15
-rw-r--r--gnu/services/messaging.scm6
-rw-r--r--gnu/services/sddm.scm7
-rw-r--r--gnu/services/shepherd.scm13
-rw-r--r--gnu/services/xorg.scm2
-rw-r--r--gnu/system/linux-initrd.scm14
-rw-r--r--gnu/tests/messaging.scm2
-rw-r--r--guix/build/bzr.scm3
-rw-r--r--guix/build/download-nar.scm12
-rw-r--r--guix/build/download.scm50
-rw-r--r--guix/build/git.scm27
-rw-r--r--guix/bzr-download.scm57
-rw-r--r--guix/cpu.scm24
-rw-r--r--guix/cvs-download.scm24
-rw-r--r--guix/describe.scm48
-rw-r--r--guix/download.scm53
-rw-r--r--guix/git-download.scm20
-rw-r--r--guix/hg-download.scm36
-rw-r--r--guix/lint.scm151
-rw-r--r--guix/profiles.scm4
-rw-r--r--guix/scripts/git/authenticate.scm2
-rw-r--r--guix/scripts/perform-download.scm69
-rw-r--r--guix/scripts/system/reconfigure.scm3
-rw-r--r--guix/scripts/time-machine.scm4
-rw-r--r--guix/svn-download.scm88
-rw-r--r--guix/swh.scm71
-rw-r--r--guix/transformations.scm8
-rw-r--r--nix/libstore/build.cc17
-rw-r--r--nix/libutil/util.cc116
-rw-r--r--nix/libutil/util.hh7
-rw-r--r--tests/guix-time-machine.sh4
-rw-r--r--tests/lint.scm20
-rw-r--r--tests/swh.scm74
161 files changed, 7102 insertions, 2772 deletions
diff --git a/doc/build.scm b/doc/build.scm
index 2cd57b4a92..9ab2ca32d2 100644
--- a/doc/build.scm
+++ b/doc/build.scm
@@ -365,7 +365,7 @@ actual file name."
#:languages
languages))
(syntax-css-url
- "/static/base/css/code.css"))
+ "/themes/initial/css/code.css"))
"Return a derivation called NAME that processes all the HTML files in INPUT
to (1) add them a link to SYNTAX-CSS-URL, and (2) highlight the syntax of all
its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
@@ -624,7 +624,7 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
#:key
(languages %languages)
(manual %manual)
- (manual-css-url "/static/base/css/manual.css"))
+ (manual-css-url "/themes/initial/css/manual.css"))
"Process all the HTML files in INPUT; add them MANUAL-CSS-URL as a <style>
link, and add a menu to choose among LANGUAGES. Use the Guix PO files found
in SOURCE."
@@ -741,7 +741,7 @@ in SOURCE."
(list (menu-dropdown
#:label
`(img (@ (alt "Language")
- (src "/static/base/img/language-picker.svg")))
+ (src "/themes/initial/img/language-picker.svg")))
#:items
(language-menu-items file)))
#:split-node? split-node?)
@@ -1141,16 +1141,16 @@ must be the Guix top-level source directory, from which PO files are taken."
;; Menu prefetch.
(link (@ (rel "prefetch") (href ,(guix-url "menu/index.html"))))
;; Base CSS.
- (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/elements.css"))))
- (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/common.css"))))
- (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/messages.css"))))
- (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/navbar.css"))))
- (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/breadcrumbs.css"))))
- (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/buttons.css"))))
- (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/footer.css"))))
-
- (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/page.css"))))
- (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/post.css")))))
+ (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/elements.css"))))
+ (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/common.css"))))
+ (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/messages.css"))))
+ (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/navbar.css"))))
+ (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/breadcrumbs.css"))))
+ (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/buttons.css"))))
+ (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/footer.css"))))
+
+ (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/page.css"))))
+ (link (@ (rel "stylesheet") (href ,(guix-url "themes/initial/css/post.css")))))
(body
(header (@ (class "navbar"))
(h1 (a (@ (class "branding")
diff --git a/doc/contributing.texi b/doc/contributing.texi
index a7d91724fb..f5b01f42fd 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -23,7 +23,8 @@ choice.
* Building from Git:: The latest and greatest.
* Running Guix Before It Is Installed:: Hacker tricks.
* The Perfect Setup:: The right tools.
-* Alternative Setups:: Other posible tools that do the job.
+* Alternative Setups:: Other possible tools that do the job.
+* Source Tree Structure:: Source code guided tour.
* Packaging Guidelines:: Growing the distribution.
* Coding Style:: Hygiene of the contributor.
* Submitting Patches:: Share your work.
@@ -546,6 +547,257 @@ In NeoVim you can even make a similar setup to Geiser using
process and inject your code there live (sadly it's not packaged in Guix yet).
+@node Source Tree Structure
+@section Source Tree Structure
+
+@cindex structure, of the source tree
+If you're willing to contribute to Guix beyond packages, or if you'd
+like to learn how it all fits together, this section provides a guided
+tour in the code base that you may find useful.
+
+Overall, the Guix source tree contains almost exclusively Guile
+@dfn{modules}, each of which can be seen as an independent library
+(@pxref{Modules,,, guile, GNU Guile Reference Manual}).
+
+The following table gives an overview of the main directories and what
+they contain. Remember that in Guile, each module name is derived from
+its file name---e.g., the module in file @file{guix/packages.scm} is
+called @code{(guix packages)}.
+
+@table @file
+@item guix
+This is the location of core Guix mechanisms. To illustrate what is
+meant by ``core'', here are a few examples, starting from low-level
+tools and going towards higher-level tools:
+
+@table @code
+@item (guix store)
+Connecting to and interacting with the build daemon (@pxref{The Store}).
+@item (guix derivations)
+Creating derivations (@pxref{Derivations}).
+@item (guix gexps)
+Writing G-expressions (@pxref{G-Expressions}).
+@item (guix packages)
+Defining packages and origins (@pxref{package Reference}).
+@item (guix download)
+@itemx (guix git-download)
+The @code{url-fetch} and @code{git-fetch} origin download methods
+(@pxref{origin Reference}).
+@item (guix swh)
+Fetching source code from the
+@uref{https://archive.softwareheritage.org,Software Heritage archive}.
+@item (guix search-paths)
+Implementing search paths (@pxref{Search Paths}).
+@item (guix build-system)
+The build system interface (@pxref{Build Systems}).
+@item (guix profiles)
+Implementing profiles.
+@end table
+
+@cindex build system, directory structure
+@item guix/build-system
+This directory contains specific build system implementations
+(@pxref{Build Systems}), such as:
+
+@table @code
+@item (guix build-system gnu)
+the GNU build system;
+@item (guix build-system cmake)
+the CMake build system;
+@item (guix build-system pyproject)
+The Python ``pyproject'' build system.
+@end table
+
+@item guix/build
+This contains code generally used on the ``build side''
+(@pxref{G-Expressions, strata of code}). This includes code used to
+build packages or other operating system components, as well as
+utilities:
+
+@table @code
+@item (guix build utils)
+Utilities for package definitions and more (@pxref{Build Utilities}).
+@item (guix build gnu-build-system)
+@itemx (guix build cmake-build-system)
+@itemx (guix build pyproject-build-system)
+Implementation of build systems, and in particular definition of their
+build phases (@pxref{Build Phases}).
+@item (guix build syscalls)
+Interface to the C library and to Linux system calls.
+@end table
+
+@cindex command-line tools, as Guile modules
+@cindex command modules
+@item guix/scripts
+This contains modules corresponding to @command{guix} sub-commands. For
+example, the @code{(guix scripts shell)} module exports the
+@code{guix-shell} procedure, which directly corresponds to the
+@command{guix shell} command (@pxref{Invoking guix shell}).
+
+@cindex importer modules
+@item guix/import
+This contains supporting code for the importers and updaters
+(@pxref{Invoking guix import}, and @pxref{Invoking guix refresh}). For
+example, @code{(guix import pypi)} defines the interface to PyPI, which
+is used by the @code{guix import pypi} command.
+@end table
+
+The directories we have seen so far all live under @file{guix/}. The
+other important place is the @file{gnu/} directory, which contains
+primarily package definitions as well as libraries and tools for Guix
+System (@pxref{System Configuration}) and Guix Home (@pxref{Home
+Configuration}), all of which build upon functionality provided by
+@code{(guix @dots{})} modules@footnote{For this reason, @code{(guix
+@dots{})} modules must generally not depend on @code{(gnu @dots{})}
+modules, with notable exceptions: @code{(guix build-system @dots{})}
+modules may look up packages at run time---e.g., @code{(guix
+build-system cmake)} needs to access the @code{cmake} variable at run
+time---, @code{(guix scripts @dots{})} often rely on @code{(gnu @dots{})}
+modules, and the same goes for some of the @code{(guix import @dots{})}
+modules.}.
+
+@table @file
+@cindex package modules
+@item gnu/packages
+This is by far the most crowded directory of the source tree: it
+contains @dfn{package modules} that export package definitions
+(@pxref{Package Modules}). A few examples:
+
+@table @code
+@item (gnu packages base)
+Module providing ``base'' packages: @code{glibc}, @code{coreutils},
+@code{grep}, etc.
+@item (gnu packages guile)
+Guile and core Guile packages.
+@item (gnu packages linux)
+The Linux-libre kernel and related packages.
+@item (gnu packages python)
+Python and core Python packages.
+@item (gnu packages python-xyz)
+Miscellaneous Python packages (we were not very creative).
+@end table
+
+In any case, you can jump to a package definition using @command{guix
+edit} (@pxref{Invoking guix edit}) and view its location with
+@command{guix show} (@pxref{Invoking guix package}).
+
+@findex search-patches
+@item gnu/packages/patches
+This directory contains patches applied against packages and obtained
+using the @code{search-patches} procedure.
+
+@item gnu/services
+This contains service definitions, primarily for Guix System
+(@pxref{Services}) but some of them are adapted and reused for Guix Home
+as we will see below. Examples:
+
+@table @code
+@item (gnu services)
+The service framework itself, which defines the service and service type
+data types (@pxref{Service Composition}).
+@item (gnu services base)
+``Base'' services (@pxref{Base Services}).
+@item (gnu services desktop)
+``Desktop'' services (@pxref{Desktop Services}).
+@item (gnu services shepherd)
+Support for Shepherd services (@pxref{Shepherd Services}).
+@end table
+
+You can jump to a service definition using @command{guix system edit}
+and view its location with @command{guix system search} (@pxref{Invoking
+guix system}).
+
+@item gnu/system
+These are core Guix System modules, such as:
+
+@table @code
+@item (gnu system)
+Defines @code{operating-system} (@pxref{operating-system Reference}).
+@item (gnu system file-systems)
+Defines @code{file-system} (@pxref{File Systems}).
+@item (gnu system mapped-devices)
+Defines @code{mapped-device} (@pxref{Mapped Devices}).
+@end table
+
+@item gnu/build
+These are modules that are either used on the ``build side'' when
+building operating systems or packages, or at run time by operating
+systems.
+
+@table @code
+@item (gnu build accounts)
+Creating @file{/etc/passwd}, @file{/etc/shadow}, etc. (@pxref{User
+Accounts}).
+@item (gnu build activation)
+Activating an operating system at boot time or reconfiguration time.
+@item (gnu build file-systems)
+Searching, checking, and mounting file systems.
+@item (gnu build linux-boot)
+@itemx (gnu build hurd-boot)
+Booting GNU/Linux and GNU/Hurd operating systems.
+@item (gnu build linux-initrd)
+Creating a Linux initial RAM disk (@pxref{Initial RAM Disk}).
+@end table
+
+@item gnu/home
+This contains all things Guix Home (@pxref{Home Configuration});
+examples:
+
+@table @code
+@item (gnu home services)
+Core services such as @code{home-files-service-type}.
+@item (gnu home services ssh)
+SSH-related services (@pxref{Secure Shell}).
+@end table
+
+@item gnu/installer
+This contains the text-mode graphical system installer (@pxref{Guided
+Graphical Installation}).
+
+@item gnu/machine
+These are the @dfn{machine abstractions} used by @command{guix deploy}
+(@pxref{Invoking guix deploy}).
+
+@item gnu/tests
+This contains system tests---tests that spawn virtual machines to check
+that system services work as expected (@pxref{Running the Test Suite}).
+@end table
+
+Last, there's also a few directories that contain files that are
+@emph{not} Guile modules:
+
+@table @file
+@item nix
+This is the C++ implementation of @command{guix-daemon}, inherited from
+Nix (@pxref{Invoking guix-daemon}).
+
+@item tests
+These are unit tests, each file corresponding more or less to one
+module, in particular @code{(guix @dots{})} modules (@pxref{Running the
+Test Suite}).
+
+@item doc
+This is the documentation in the form of Texinfo files: this manual and
+the Cookbook. @xref{Writing a Texinfo File,,, texinfo, GNU Texinfo},
+for information on Texinfo markup language.
+
+@item po
+This is the location of translations of Guix itself, of package synopses
+and descriptions, of the manual, and of the cookbook. Note that
+@file{.po} files that live here are pulled directly from Weblate
+(@pxref{Translating Guix}).
+
+@item etc
+Miscellaneous files: shell completions, support for systemd and other
+init systems, Git hooks, etc.
+@end table
+
+With all this, a fair chunk of your operating system is at your
+fingertips! Beyond @command{grep} and @command{git grep}, @pxref{The
+Perfect Setup} on how to navigate code from your editor, and
+@pxref{Using Guix Interactively} for information on how to use Scheme
+modules interactively. Enjoy!
+
@node Packaging Guidelines
@section Packaging Guidelines
diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index 2366c13caf..e7ef5fa784 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -22,7 +22,7 @@ Copyright @copyright{} 2020 André Batista@*
Copyright @copyright{} 2020 Christine Lemmer-Webber@*
Copyright @copyright{} 2021 Joshua Branson@*
Copyright @copyright{} 2022, 2023 Maxim Cournoyer@*
-Copyright @copyright{} 2023 Ludovic Courtès@*
+Copyright @copyright{} 2023-2024 Ludovic Courtès@*
Copyright @copyright{} 2023 Thomas Ieong
Permission is granted to copy, distribute and/or modify this document
@@ -5299,14 +5299,17 @@ export LC_ALL
For convenience, @code{guix package} automatically generates
@file{~/.guix-profile/etc/profile}, which defines all the environment
variables necessary to use the packages---@code{PATH},
-@code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Thus it's a good idea to
-source it from @code{/etc/profile}:
+@code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Likewise, @command{guix
+pull} does that under @file{~/.config/guix/current}. Thus it's a good
+idea to source both from @code{/etc/profile}:
@example
-GUIX_PROFILE="$HOME/.guix-profile"
-if [ -f "$GUIX_PROFILE/etc/profile" ]; then
- . "$GUIX_PROFILE/etc/profile"
-fi
+for GUIX_PROFILE in "$HOME/.config/guix/current" "$HOME/.guix-profile"
+do
+ if [ -f "$GUIX_PROFILE/etc/profile" ]; then
+ . "$GUIX_PROFILE/etc/profile"
+ fi
+done
@end example
Last but not least, Guix provides command-line completion notably for
diff --git a/doc/guix.texi b/doc/guix.texi
index 536e7c5ea8..27dc9143fa 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2728,20 +2728,20 @@ the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html,
@code{man cryptsetup}} for more information).
@quotation Warning
-Note that GRUB can unlock LUKS2 devices since version 2.06, but only
-supports the PBKDF2 key derivation function, which is not the default
-for @command{cryptsetup luksFormat}. You can check which key derivation
-function is being used by a device by running @command{cryptsetup
-luksDump @var{device}}, and looking for the PBKDF field of your
-keyslots.
+While efforts are in progress to extend support to LUKS2, please note
+that Guix only supports devices of type LUKS1 at the moment. You can
+verify that your existing LUKS device is of the right type by running
+@command{cryptsetup luksDump @var{device}}. Alternatively, you can
+create a new LUKS1 device with @command{cryptsetup luksFormat --type
+luks1 @var{device}}.
@end quotation
Assuming you want to store the root partition on @file{/dev/sda2}, the
-command sequence to format it as a LUKS2 partition would be along these
+command sequence to format it as a LUKS1 partition would be along these
lines:
@example
-cryptsetup luksFormat --type luks2 --pbkdf pbkdf2 /dev/sda2
+cryptsetup luksFormat --type luks1 /dev/sda2
cryptsetup open /dev/sda2 my-partition
mkfs.ext4 -L my-root /dev/mapper/my-partition
@end example
@@ -3445,7 +3445,7 @@ Install the package @var{exp} evaluates to.
@var{exp} must be a Scheme expression that evaluates to a
@code{<package>} object. This option is notably useful to disambiguate
between same-named variants of a package, with expressions such as
-@code{(@@ (gnu packages base) guile-final)}.
+@code{(@@ (gnu packages commencement) guile-final)}.
Note that this option installs the first output of the specified
package, which may be insufficient when needing a specific output of a
@@ -7632,6 +7632,9 @@ contain OpenPGP public keys in @file{.key} files, either in binary form
or ``ASCII-armored''. By default the keyring is loaded from the branch
named @code{keyring}.
+@item --end=@var{commit}
+Authenticate revisions up to @var{commit}.
+
@item --stats
Display commit signing statistics upon completion.
@@ -7677,7 +7680,8 @@ assembly is to C programs. The term ``derivation'' comes from the fact
that build results @emph{derive} from them.
This chapter describes all these APIs in turn, starting from high-level
-package definitions.
+package definitions. @xref{Source Tree Structure}, for a more general
+overview of the source code.
@menu
* Package Modules:: Packages from the programmer's viewpoint.
@@ -21135,7 +21139,7 @@ the @code{loopback} Shepherd service.
@defvar %qemu-static-networking
This is the @code{static-networking} record representing network setup
when using QEMU's user-mode network stack on @code{eth0} (@pxref{Using
-the user mode network stack,,, QEMU, QEMU Documentation}).
+the user mode network stack,,, qemu, QEMU Documentation}).
@end defvar
@cindex DHCP, networking service
@@ -22770,9 +22774,9 @@ Logging level.
This service type adds a list of known Facebook hosts to the
@file{/etc/hosts} file.
(@pxref{Host Names,,, libc, The GNU C Library Reference Manual})
-Each line contains a entry that maps a known server name of the Facebook
-on-line service---e.g., @code{www.facebook.com}---to the local
-host---@code{127.0.0.1} or its IPv6 equivalent, @code{::1}.
+Each line contains an entry that maps a known server name of the Facebook
+on-line service---e.g., @code{www.facebook.com}---to unroutable IPv4 and
+IPv6 addresses.
This mechanism can prevent programs running locally, such as Web
browsers, from accessing Facebook.
@@ -28605,6 +28609,12 @@ Set of mechanisms that will never be offered. See
Defaults to @samp{'("DIGEST-MD5")}.
@end deftypevr
+@deftypevr {@code{prosody-configuration} parameter} string-list insecure-sasl-mechanisms
+Set of mechanisms that will not be offered on unencrypted connections.
+See @url{https://prosody.im/doc/modules/mod_saslauth}.
+Defaults to @samp{'("PLAIN" "LOGIN")}.
+@end deftypevr
+
@deftypevr {@code{prosody-configuration} parameter} boolean s2s-require-encryption?
Whether to force all server-to-server connections to be encrypted or not.
See @url{https://prosody.im/doc/modules/mod_tls}.
@@ -28684,7 +28694,7 @@ See @url{https://prosody.im/doc/configure#virtual_host_settings}.
Available @code{virtualhost-configuration} fields are:
-all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:
+all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{insecure-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:
@deftypevr {@code{virtualhost-configuration} parameter} string domain
Domain you wish Prosody to serve.
@end deftypevr
@@ -28706,7 +28716,7 @@ Defaults to @samp{'()}.
Available @code{int-component-configuration} fields are:
-all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:
+all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{insecure-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:
@deftypevr {@code{int-component-configuration} parameter} string hostname
Hostname of the component.
@end deftypevr
@@ -28759,7 +28769,7 @@ Defaults to @samp{'()}.
Available @code{ext-component-configuration} fields are:
-all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:
+all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{insecure-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus:
@deftypevr {@code{ext-component-configuration} parameter} string component-secret
Password which the component will use to log in.
@end deftypevr
diff --git a/etc/guix-daemon.service.in b/etc/guix-daemon.service.in
index 9dbc3b5678..5e75379b5e 100644
--- a/etc/guix-daemon.service.in
+++ b/etc/guix-daemon.service.in
@@ -9,8 +9,8 @@ Description=Build daemon for GNU Guix
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
--build-users-group=guixbuild --discover=no
Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
-StandardOutput=syslog
-StandardError=syslog
+StandardOutput=journal
+StandardError=journal
# Work around a nasty systemd ‘feature’ that kills the entire process tree
# (including the daemon!) if any child, such as cc1plus, runs out of memory.
diff --git a/etc/guix-publish.service.in b/etc/guix-publish.service.in
index b8fd3b4c03..0d82e73d94 100644
--- a/etc/guix-publish.service.in
+++ b/etc/guix-publish.service.in
@@ -11,8 +11,8 @@ After=guix-daemon.service
[Service]
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix publish --user=nobody --port=8181
Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
-StandardOutput=syslog
-StandardError=syslog
+StandardOutput=journal
+StandardError=journal
# Despite the name, this is rate-limited: a broken daemon will eventually fail.
Restart=always
diff --git a/etc/news.scm b/etc/news.scm
index 3e8c88499f..ab7fa4c0d5 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -1,6 +1,6 @@
;; GNU Guix news, for use by 'guix pull'.
;;
-;; Copyright © 2019-2023 Ludovic Courtès <ludo@gnu.org>
+;; Copyright © 2019-2024 Ludovic Courtès <ludo@gnu.org>
;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;; Copyright © 2019, 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
@@ -28,6 +28,75 @@
(channel-news
(version 0)
+ (entry (commit "ff1251de0bc327ec478fc66a562430fbf35aef42")
+ (title
+ (en "Daemon vulnerability allowing store corruption has been fixed")
+ (de "Schwachstelle im Daemon behoben, durch die der Store verfälscht werden konnte")
+ (fr "Une faille du démon permettant de corrompre le dépôt a été corrigée"))
+ (body
+ (en "A vulnerability in the build daemon, @command{guix-daemon}, was
+identified and fixed. The vulnerability would allow unprivileged users to
+corrupt the result of @dfn{fixed-output derivations} such as source code
+tarballs and Git checkouts, which in turn could lead to local privilege
+escalation.
+
+This bug is fixed and Guix System users are advised to upgrade their system,
+with a command along the lines of:
+
+@example
+sudo guix system reconfigure /run/current-system/configuration.scm
+sudo herd restart guix-daemon
+@end example
+
+If you are using Guix on another distro, run @command{info \"(guix) Upgrading
+Guix\"} or visit
+@uref{https://guix.gnu.org/manual/devel/en/html_node/Upgrading-Guix.html} to
+learn how to upgrade Guix.
+
+See @uref{https://issues.guix.gnu.org/69728} for more information on this
+issue.")
+ (de "Eine Sicherheitslücke im Erstellungs-Daemon,
+@command{guix-daemon}, wurde gefunden und geschlossen. Sie hatte es
+unprivilegierten Nutzern ermöglicht, das Ergebnis einer @dfn{Ableitung mit
+fester Ausgabe}, wie Quellcode-Tarballs und Git-Checkouts, zu manipulieren.
+So war eine lokale Rechteausweitung möglich.
+
+Der Fehler ist behoben und wir raten Nutzern von Guix System, ihr System zu
+aktualisieren mit einem Befehl wie:
+
+@example
+sudo guix system reconfigure /run/current-system/configuration.scm
+sudo herd restart guix-daemon
+@end example
+
+Wenn Sie Guix auf einer anderen Distribution verwenden, erfahren Sie mit dem
+Befehl @command{info \"(guix.de) Aktualisieren von Guix\"} oder auf
+@uref{https://guix.gnu.org/manual/devel/de/html_node/Aktualisieren-von-Guix.html},
+wie Sie Guix aktualisieren.
+
+Siehe @uref{https://issues.guix.gnu.org/69728} für mehr Informationen zu dem
+Fehler.")
+ (fr "Une faille de sécurité du démon de compilation,
+@command{guix-daemon}, a été identifiée et corrigée. La faille permettait à
+un·e utilisateur·rice sans privilège de corrompre le résultat d'une
+@dfn{dérivation à sortie fixe} telle qu'une archive ou un @i{checkout} Git, ce
+qui peut ensuite permettre une élévation locale de privilèges.
+
+Ce problème est corrigé et les utilisateur·rices de Guix System sont invité·es
+à mettre à jour leur système avec une commande telle que :
+
+@example
+sudo guix system reconfigure /run/current-system/configuration.scm
+sudo herd restart guix-daemon
+@end example
+
+Pour voir comment mettre à jour Guix sur une autre distribution, lancer
+@command{info \"(guix.fr) Mettre à niveau Guix\"} ou visiter
+@uref{https://guix.gnu.org/manual/devel/fr/html_node/Mettre-a-niveau-Guix.html}.
+
+Voir @uref{https://issues.guix.gnu.org/69728} pour plus d'informations sur
+cette anomalie.")))
+
(entry (commit "10a193596368443f441077525ebbddf787d91e4b")
(title
(en "Linux-libre 4.14 removed due to end of upstream support")
diff --git a/etc/teams.scm b/etc/teams.scm
index 6bd10426d7..a01ea27254 100755
--- a/etc/teams.scm
+++ b/etc/teams.scm
@@ -550,8 +550,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(team 'lxqt
#:name "LXQt team"
#:description "LXQt desktop environment."
- #:scope (list "gnu/packages/lxqt.scm"
- "gnu/packages/qt.scm")))
+ #:scope (list "gnu/packages/lxqt.scm")))
(define-team audio
(team 'audio
@@ -589,6 +588,10 @@ GLib/GIO, GTK, GStreamer and Webkit."
"andreas@enge.fr")
lxqt science tex)
+(define-member (person "Tanguy Le Carrour"
+ "tanguy@bioneland.org")
+ python home)
+
(define-member (person "Tobias Geerinckx-Rice"
"me@tobias.gr")
core kernel mentors)
@@ -667,7 +670,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "宋文武"
"iyzsong@envs.net")
- games localization lxqt xfce)
+ games localization lxqt qt xfce)
(define-member (person "Vagrant Cascadian"
"vagrant@debian.org")
@@ -725,6 +728,10 @@ GLib/GIO, GTK, GStreamer and Webkit."
"mhw@netris.org")
mozilla)
+(define-member (person "Adam Faiz"
+ "adam.faiz@disroot.org")
+ games)
+
(define (find-team name)
(or (hash-ref %teams (string->symbol name))
diff --git a/etc/teams/qt/common.scm b/etc/teams/qt/common.scm
index 8e11ac220b..4735b408d0 100644
--- a/etc/teams/qt/common.scm
+++ b/etc/teams/qt/common.scm
@@ -16,10 +16,6 @@
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-;;; This file returns a manifest of packages related to linux-libre.
-;;; Simplistically, it selects packages whose names begin with "linux-libre".
-;;; It is used to assist continuous integration of the kernel packages.
-
(use-modules (guix packages)
(guix profiles)
(guix utils)
diff --git a/etc/teams/qt/qt-manifest.scm b/etc/teams/qt/qt-manifest.scm
index 0d8fa95bfe..22078530a7 100644
--- a/etc/teams/qt/qt-manifest.scm
+++ b/etc/teams/qt/qt-manifest.scm
@@ -16,10 +16,6 @@
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-;;; This file returns a manifest of packages related to linux-libre.
-;;; Simplistically, it selects packages whose names begin with "linux-libre".
-;;; It is used to assist continuous integration of the kernel packages.
-
(load "common.scm")
;;; Commentary:
diff --git a/etc/teams/qt/qt5-manifest.scm b/etc/teams/qt/qt5-manifest.scm
index 34fdf479bf..2b25888d4b 100644
--- a/etc/teams/qt/qt5-manifest.scm
+++ b/etc/teams/qt/qt5-manifest.scm
@@ -16,10 +16,6 @@
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-;;; This file returns a manifest of packages related to linux-libre.
-;;; Simplistically, it selects packages whose names begin with "linux-libre".
-;;; It is used to assist continuous integration of the kernel packages.
-
(load "common.scm")
;;; Commentary:
diff --git a/etc/time-travel-manifest.scm b/etc/time-travel-manifest.scm
index 80c4c7c346..039ca89889 100644
--- a/etc/time-travel-manifest.scm
+++ b/etc/time-travel-manifest.scm
@@ -66,21 +66,19 @@
(define %release-commits
;; Release commits: the list of version/commit pairs.
+ ;;
+ ;; Note: To merely compute the derivation of these revisions, we need to be
+ ;; able to build their dependencies. Some of them no longer build from
+ ;; source due to time traps like <https://issues.guix.gnu.org/58650>; those
+ ;; need to be built beforehand in a virtual build machine running "in the
+ ;; past".
'(("1.4.0" . "8e2f32cee982d42a79e53fc1e9aa7b8ff0514714")
("1.3.0" . "a0178d34f582b50e9bdbb0403943129ae5b560ff")
-
- ;; FIXME: To merely compute the derivation of these revisions, we need to
- ;; be able to build their dependencies. However, pre-built binaries are
- ;; currently missing and some of these no longer build from source due to
- ;; time bombs like <https://issues.guix.gnu.org/58650>. Thus, comment
- ;; them output until we have substitutes for these old things.
-
- ;; ("1.2.0" . "a099685659b4bfa6b3218f84953cbb7ff9e88063")
- ;; ("1.1.0" . "d62c9b2671be55ae0305bebfda17b595f33797f2")
- ;; ("1.0.1" . "d68de958b60426798ed62797ff7c96c327a672ac")
- ;; ("1.0.0" . "6298c3ffd9654d3231a6f25390b056483e8f407c")
- ;; ("0.16.0" . "4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c")
- ))
+ ("1.2.0" . "a099685659b4bfa6b3218f84953cbb7ff9e88063")
+ ("1.1.0" . "d62c9b2671be55ae0305bebfda17b595f33797f2")
+ ("1.0.1" . "d68de958b60426798ed62797ff7c96c327a672ac")
+ ("1.0.0" . "6298c3ffd9654d3231a6f25390b056483e8f407c")
+ ("0.16.0" . "4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c")))
(manifest
(map (match-lambda
diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm
index 176f4575cb..962e633618 100644
--- a/gnu/home/services/shepherd.scm
+++ b/gnu/home/services/shepherd.scm
@@ -77,7 +77,19 @@ as shepherd package."
(use-modules (srfi srfi-34)
(system repl error-handling))
- (register-services (map load '#$files))
+ (define (make-user-module)
+ ;; Copied from (shepherd support), where it's private.
+ (let ((m (make-fresh-user-module)))
+ (module-use! m (resolve-interface '(shepherd service)))
+ m))
+
+ (register-services
+ (map (lambda (file)
+ (save-module-excursion
+ (lambda ()
+ (set-current-module (make-user-module))
+ (load file))))
+ '#$files))
#$@(if daemonize?
`((action 'root 'daemonize))
diff --git a/gnu/local.mk b/gnu/local.mk
index 20c4e3659c..0969c69b95 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -425,6 +425,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/lisp-check.scm \
%D%/packages/lisp-xyz.scm \
%D%/packages/llvm.scm \
+ %D%/packages/llvm-meta.scm \
%D%/packages/lout.scm \
%D%/packages/logging.scm \
%D%/packages/logo.scm \
@@ -487,6 +488,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/ntp.scm \
%D%/packages/nutrition.scm \
%D%/packages/nvi.scm \
+ %D%/packages/nx.scm \
%D%/packages/ocaml.scm \
%D%/packages/ocr.scm \
%D%/packages/openkinect.scm \
@@ -1045,6 +1047,7 @@ dist_patch_DATA = \
%D%/packages/patches/clang-16.0-libc-search-path.patch \
%D%/packages/patches/clang-16-remove-crypt-interceptors.patch \
%D%/packages/patches/clang-17.0-libc-search-path.patch \
+ %D%/packages/patches/clang-17.0-link-dsymutil-latomic.patch \
%D%/packages/patches/clang-runtime-asan-build-fixes.patch \
%D%/packages/patches/clang-runtime-esan-build-fixes.patch \
%D%/packages/patches/clang-runtime-13-glibc-2.36-compat.patch \
@@ -1471,7 +1474,6 @@ dist_patch_DATA = \
%D%/packages/patches/http-parser-CVE-2020-8287.patch \
%D%/packages/patches/htslib-for-stringtie.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
- %D%/packages/patches/hubbub-maybe-uninitialized.patch \
%D%/packages/patches/hueplusplus-mbedtls.patch \
%D%/packages/patches/hurd-rumpdisk-no-hd.patch \
%D%/packages/patches/hwloc-1-test-btrfs.patch \
@@ -1532,6 +1534,8 @@ dist_patch_DATA = \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \
%D%/packages/patches/julia-Use-MPFR-4.2.patch \
+ %D%/packages/patches/libcss-check-format.patch \
+ %D%/packages/patches/libextractor-tidy-support.patch \
%D%/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch \
@@ -1833,6 +1837,7 @@ dist_patch_DATA = \
%D%/packages/patches/prusa-slicer-fix-tests.patch \
%D%/packages/patches/prusa-slicer-with-cereal-1.3.1.patch \
%D%/packages/patches/pthreadpool-system-libraries.patch \
+ %D%/packages/patches/python-3.12-fix-tests.patch \
%D%/packages/patches/python-accupy-use-matplotx.patch \
%D%/packages/patches/python-accupy-fix-use-of-perfplot.patch \
%D%/packages/patches/python-chai-drop-python2.patch \
@@ -1842,7 +1847,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-matplotlib-fix-legend-loc-best-test.patch \
%D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/python-pillow-use-zlib-1.3.patch \
- %D%/packages/patches/python-poppler-qt5-fix-build.patch \
%D%/packages/patches/python-pyreadstat-link-libiconv.patch \
%D%/packages/patches/python-pyls-black-41.patch \
%D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch \
@@ -1865,6 +1869,7 @@ dist_patch_DATA = \
%D%/packages/patches/sdl-pango-header-guard.patch \
%D%/packages/patches/sdl-pango-matrix_declarations.patch \
%D%/packages/patches/sdl-pango-sans-serif.patch \
+ %D%/packages/patches/sioyek-fix-build.patch \
%D%/packages/patches/smalltalk-multiplication-overflow.patch \
%D%/packages/patches/sqlite-hurd.patch \
%D%/packages/patches/strace-readlink-tests.patch \
@@ -1984,7 +1989,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-werkzeug-tests.patch \
%D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \
%D%/packages/patches/qemu-build-info-manual.patch \
- %D%/packages/patches/qemu-disable-some-qtests-tests.patch \
+ %D%/packages/patches/qemu-disable-bios-tables-test.patch \
%D%/packages/patches/qemu-glibc-2.27.patch \
%D%/packages/patches/qemu-glibc-2.30.patch \
%D%/packages/patches/qemu-fix-agent-paths.patch \
@@ -2038,6 +2043,7 @@ dist_patch_DATA = \
%D%/packages/patches/ruby-latex-decode-fix-test.patch \
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
%D%/packages/patches/ruby-nokogiri.patch \
+ %D%/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch \
%D%/packages/patches/rustc-1.54.0-src.patch \
%D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-1.70-fix-rustix-build.patch \
@@ -2055,6 +2061,7 @@ dist_patch_DATA = \
%D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \
%D%/packages/patches/s7-flint-3.patch \
%D%/packages/patches/sajson-for-gemmi-numbers-as-strings.patch \
+ %D%/packages/patches/sajson-build-with-gcc10.patch \
%D%/packages/patches/sbc-fix-build-non-x86.patch \
%D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \
%D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 4da423e531..1bd9432b58 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -5522,71 +5522,73 @@ This allows greetd-pam-mount to auto-(un)mount @env{XDG_RUNTIME_DIR} without
interfering with any pam-mount configuration.")))
(define-public wlgreet
- (package
- (name "wlgreet")
- (version "0.4.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.sr.ht/~kennylevinsen/wlgreet")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1k0jmgh0rjbnb49gkvs0a4d7z9xb6pad8v5w5f7my4s0rfpk7wd9"))))
- (build-system cargo-build-system)
- (arguments
- (list #:cargo-inputs
- `(("rust-chrono" ,rust-chrono-0.4)
- ("rust-getopts" ,rust-getopts-0.2)
- ("rust-greetd-ipc" ,rust-greetd-ipc-0.9)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-memmap2" ,rust-memmap2-0.3)
- ("rust-nix" ,rust-nix-0.25)
- ("rust-os-pipe" ,rust-os-pipe-1)
- ("rust-rusttype" ,rust-rusttype-0.9)
- ("rust-serde" ,rust-serde-1)
- ("rust-smithay-client-toolkit"
- ,rust-smithay-client-toolkit-0.15)
- ("rust-toml" ,rust-toml-0.5)
- ("rust-wayland-client" ,rust-wayland-client-0.29)
- ("rust-wayland-protocols" ,rust-wayland-protocols-0.29))
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'remove-bundled-fonts
- (lambda _
- (delete-file-recursively "fonts")))
- (add-after 'remove-bundled-fonts 'fix-font-references
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/draw.rs"
- (("\\.\\./fonts/dejavu/DejaVuSansMono\\.ttf" _)
- (search-input-file
- inputs
- "share/fonts/truetype/DejaVuSansMono.ttf"))
- (("\\.\\./fonts/Roboto-Regular\\.ttf" _)
- (search-input-file
- inputs
- "share/fonts/truetype/Roboto-Regular.ttf")))))
- (add-after 'configure 'fix-library-references
- (lambda* (#:key inputs vendor-dir #:allow-other-keys)
- (substitute* (find-files vendor-dir "\\.rs$")
- (("lib(wayland-.*|xkbcommon)\\.so" so-file)
- (search-input-file
- inputs
- (string-append "lib/" so-file)))))))))
- (inputs
- (list font-dejavu
- font-google-roboto
- libxkbcommon
- wayland))
- (home-page "https://git.sr.ht/~kennylevinsen/wlgreet")
- (synopsis "Bare-bones Wayland-based greeter for @command{greetd}")
- (description
- "@command{wlgreet} provides a @command{greetd} greeter
+ (let ((commit "7e79d6004fc5e765a5c3ece6d377f8c5999d9dfa")
+ (revision "1"))
+ (package
+ (name "wlgreet")
+ (version (git-version "0.4.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~kennylevinsen/wlgreet")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "039a05v6c2i3al86k4fncqr3z47dnrz7y8wmhx6wvm08zx8s89ww"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-chrono" ,rust-chrono-0.4)
+ ("rust-getopts" ,rust-getopts-0.2)
+ ("rust-greetd-ipc" ,rust-greetd-ipc-0.9)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-memmap2" ,rust-memmap2-0.3)
+ ("rust-nix" ,rust-nix-0.25)
+ ("rust-os-pipe" ,rust-os-pipe-1)
+ ("rust-rusttype" ,rust-rusttype-0.9)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-smithay-client-toolkit"
+ ,rust-smithay-client-toolkit-0.15)
+ ("rust-toml" ,rust-toml-0.5)
+ ("rust-wayland-client" ,rust-wayland-client-0.29)
+ ("rust-wayland-protocols" ,rust-wayland-protocols-0.29))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-bundled-fonts
+ (lambda _
+ (delete-file-recursively "fonts")))
+ (add-after 'remove-bundled-fonts 'fix-font-references
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/draw.rs"
+ (("\\.\\./fonts/dejavu/DejaVuSansMono\\.ttf" _)
+ (search-input-file
+ inputs
+ "share/fonts/truetype/DejaVuSansMono.ttf"))
+ (("\\.\\./fonts/Roboto-Regular\\.ttf" _)
+ (search-input-file
+ inputs
+ "share/fonts/truetype/Roboto-Regular.ttf")))))
+ (add-after 'configure 'fix-library-references
+ (lambda* (#:key inputs vendor-dir #:allow-other-keys)
+ (substitute* (find-files vendor-dir "\\.rs$")
+ (("lib(wayland-.*|xkbcommon)\\.so" so-file)
+ (search-input-file
+ inputs
+ (string-append "lib/" so-file)))))))))
+ (inputs
+ (list font-dejavu
+ font-google-roboto
+ libxkbcommon
+ wayland))
+ (home-page "https://git.sr.ht/~kennylevinsen/wlgreet")
+ (synopsis "Bare-bones Wayland-based greeter for @command{greetd}")
+ (description
+ "@command{wlgreet} provides a @command{greetd} greeter
that runs on a Wayland compositor such as @command{sway}. It
is implemented with pure Wayland APIs, so it does not depend
on a GUI toolkit.")
- (license license:gpl3)))
+ (license license:gpl3))))
(define-public libseat
(package
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 90507ebd90..3fb9362b91 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022, 2023, 2024 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019, 2021, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il>
@@ -357,7 +357,7 @@ precision.")
(define-public giac
(package
(name "giac")
- (version "1.9.0-45")
+ (version "1.9.0-93")
(source
(origin
(method url-fetch)
@@ -369,7 +369,7 @@ precision.")
"~parisse/debian/dists/stable/main/source/"
"giac_" version ".tar.gz"))
(sha256
- (base32 "0yxsl1vvwcbpwcmzp9v9rfm9djmapab0nhb3gs7zmjv5yvzbgj4d"))))
+ (base32 "11acbgd264vi9r3gzx8js8x2piavhybr97iyrh027qvxlbsdsgqm"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index e8a2bb6e63..1dee19128d 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -31,7 +31,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
-;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2020, 2024 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020, 2021, 2023 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 jgart <jgart@dismail.de>
@@ -262,6 +262,41 @@ softsynth library that can be used with other applications.")
;; Player.
license:gpl3+))))
+(define-public alsa-midi-latency-test
+ (let ((version "0.0.5")
+ (revision "0")
+ (commit "07e43f8a1e6fd6d3bd97a00f2ee5afb74cb66f95"))
+ (package
+ (name "alsa-midi-latency-test")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/koppi/alsa-midi-latency-test")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0b3xd4z7zx6mmh6q2q7wnyd0hzikny2cikwzhaab3q86b551vb9n"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ;there are no tests
+ #:phases #~(modify-phases %standard-phases
+ (replace 'bootstrap
+ (lambda _
+ (invoke "sh" "./autogen.sh"))))))
+ (native-inputs (list automake autoconf libtool))
+ (inputs (list alsa-lib))
+ (synopsis "Measure the roundtrip time of MIDI messages")
+ (description
+ "@code{alsa-midi-latency-test} measures the roundtrip time of a MIDI
+message in the alsa subsystem of the Linux kernel using a high precision timer.
+It calculates the worst case roundtrip time of all sent MIDI messages and
+displays a histogram of the roundtrip time jitter.")
+ (home-page "https://github.com/koppi/alsa-midi-latency-test")
+ (license license:gpl2+))))
+
(define-public webrtc-audio-processing
(package
(name "webrtc-audio-processing")
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 4dc7000250..ec18568e53 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -4076,13 +4076,13 @@ model as latent variables.")
(define-public r-asics
(package
(name "r-asics")
- (version "2.18.0")
+ (version "2.18.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "ASICS" version))
(sha256
(base32
- "10wlmnlpn6ji256fp81rhsm2rsbsqsbvbjqqpw9vib11cwpam9wd"))))
+ "0sii6sg20l6mfm8cj8zas2dm3wq6fwcwanav6fl7wkv8msk02sxb"))))
(properties `((upstream-name . "ASICS")))
(build-system r-build-system)
(propagated-inputs
@@ -4838,13 +4838,13 @@ enrichment in single cell data.")
(define-public r-coregx
(package
(name "r-coregx")
- (version "2.6.0")
+ (version "2.6.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "CoreGx" version))
(sha256
- (base32 "0ffbi5afw759mi5r657h67hdh9yr5jrzvl3aigp960jzb5542105"))))
+ (base32 "16i8xq98vg8xgscwj0w9bsq68vjmhsvwwdw66kcphvf3jjfmn1rv"))))
(properties `((upstream-name . "CoreGx")))
(build-system r-build-system)
(propagated-inputs
@@ -6900,13 +6900,13 @@ objects.")
(define-public r-biostrings
(package
(name "r-biostrings")
- (version "2.70.2")
+ (version "2.70.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "Biostrings" version))
(sha256
(base32
- "0lmaknlw3mk946h26davr9cz5xpzjp0c8qjxbr7drj8b2cjfm66a"))))
+ "1704fn4dlswy5silmw2ri4yjbibqv249cnrb5mdgiwjh7l51w725"))))
(properties
`((upstream-name . "Biostrings")))
(build-system r-build-system)
@@ -7332,14 +7332,14 @@ distribution.")
(define-public r-deseq2
(package
(name "r-deseq2")
- (version "1.42.0")
+ (version "1.42.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "DESeq2" version))
(sha256
(base32
- "1mz7v0vcl741zjvj63mk48hhbq6sk2fl2dwn9y1a6hr8fb79vy1a"))))
+ "1s104b9k45b7kjrk56yw2yi4gi716nkcwnpqj4vj9w17xsb5m6zp"))))
(properties `((upstream-name . "DESeq2")))
(build-system r-build-system)
(propagated-inputs
@@ -7882,13 +7882,13 @@ genomic intervals. In addition, it can use BAM or BigWig files as input.")
(define-public r-genomeinfodb
(package
(name "r-genomeinfodb")
- (version "1.38.6")
+ (version "1.38.8")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomeInfoDb" version))
(sha256
(base32
- "0z8wkv5jhx8wr6idnakm26lhhk4ssj6ivbb7hfbzhkajcbnnf7mq"))))
+ "126qq2549h3dpjiq36709pym5bfwk6jqbz5q2sb5hl8lwm1apv8w"))))
(properties
`((upstream-name . "GenomeInfoDb")))
(build-system r-build-system)
@@ -7973,13 +7973,13 @@ Commons RESTful service.")
(define-public r-genomicfeatures
(package
(name "r-genomicfeatures")
- (version "1.54.3")
+ (version "1.54.4")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version))
(sha256
(base32
- "1b78fss1nfyph6b7pv3ss6iv6r2qgrmx4klxvq8waz2nxvikxdl5"))))
+ "0g2fv4r82ql7p2allapmgs2bj4ad70c8030vzkml7ghrxsgrryp3"))))
(properties
`((upstream-name . "GenomicFeatures")))
(build-system r-build-system)
@@ -7993,8 +7993,9 @@ Commons RESTful service.")
r-dbi
r-genomeinfodb
r-genomicranges
+ r-httr
r-iranges
- r-rcurl
+ r-rjson
r-rsqlite
r-rtracklayer
r-s4vectors
@@ -8220,13 +8221,13 @@ Enrichment Analysis} (GSEA).")
(define-public r-gsva
(package
(name "r-gsva")
- (version "1.50.0")
+ (version "1.50.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GSVA" version))
(sha256
(base32
- "01w5j7fmi3hsfd282kcn4v41mi58z2yfhapff2zgf9swdfps4m6z"))))
+ "0ld0bbl6ar3yhi6ncg9d8q60hg4m4v5kphl044fw63l19ixln7cf"))))
(properties `((upstream-name . "GSVA")))
(build-system r-build-system)
(propagated-inputs (list r-biobase
@@ -11724,24 +11725,24 @@ Biology at
(define-public r-stringdb
(package
(name "r-stringdb")
- (version "2.14.0")
+ (version "2.14.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "STRINGdb" version))
(sha256
- (base32 "1ffn73sx0qbzbh8cjil9r159g0fjnvi6y8rlbg6nf7p3zx3aya54"))))
+ (base32 "06bckzczg2rspazcbpp3v265c1dkr9l1vpdhkc7gdn2dk960jlkh"))))
(properties `((upstream-name . "STRINGdb")))
(build-system r-build-system)
(propagated-inputs
(list r-gplots
r-hash
+ r-httr
r-igraph
r-plotrix
r-plyr
r-png
r-rcolorbrewer
- r-rcurl
r-sqldf))
(home-page "https://git.bioconductor.org/packages/STRINGdb")
(synopsis "Search tool for the retrieval of interacting proteins database")
@@ -12261,16 +12262,17 @@ describing each of the graphs.")
(define-public r-zlibbioc
(package
(name "r-zlibbioc")
- (version "1.48.0")
+ (version "1.48.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "zlibbioc" version))
(sha256
(base32
- "043xwgw3yclxnxlfl7fdwf7qf7fajzvqdv34qxnngxj9wpgha3gv"))))
+ "078v1iywzc0ng27r0wjchvkh4znzydq1swlalqb95xkmn72vrq8d"))))
(properties
`((upstream-name . "zlibbioc")))
(build-system r-build-system)
+ (native-inputs (list r-knitr))
(home-page "https://bioconductor.org/packages/zlibbioc")
(synopsis "Provider for zlib-1.2.5 to R packages")
(description "This package uses the source code of zlib-1.2.5 to create
@@ -15912,14 +15914,14 @@ attempts to assess their statistical significance.")
(define-public r-clusterprofiler
(package
(name "r-clusterprofiler")
- (version "4.10.0")
+ (version "4.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "clusterProfiler" version))
(sha256
(base32
- "1vlrybyczfci5qnw50k0y2j2853r2p1ff5bpj35rdca4ja0iqh2q"))))
+ "1jwi9029dy7ga4hv75grib7wdaghslwh4qk5awhgw3192a0qcixf"))))
(properties
`((upstream-name . "clusterProfiler")))
(build-system r-build-system)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 609c91e7b1..35c5c4aff1 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -9300,6 +9300,69 @@ viewer.")
(delete 'patch-tests)
(delete 'configure))))))))
+(define-public morpheus
+ (package
+ (name "morpheus")
+ (version "2.3.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/morpheus.lab/morpheus")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1jyzbkz8d39kjicrk3ihcx7yvq5wsynvnlcw922bqqsw8nwnn12c"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "3rdparty/eigen")
+ (substitute* '("morpheus/core/cpm_shape_tracker.cpp"
+ "morpheus/core/membranemapper.h"
+ "morpheus/testing/components/motility/directed_motion_test.cpp"
+ "morpheus/testing/components/interaction/generator_cell_sorting.cpp"
+ "morpheus/testing/components/interaction/test_cell_sorting.cpp"
+ "morpheus/testing/core/cpm/generator_csm_plane.cpp"
+ "morpheus/testing/test_operators.h")
+ (("#include \"eigen/") "#include \"eigen3/"))))))
+ ;; This is for a different Morpheus.
+ (properties '((lint-hidden-cve "CVE-2022-31261")))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ '(list "-DMORPHEUS_GUI=OFF"
+ "-DBUILD_TESTING=ON"
+ "-DDOWNLOAD_XTENSOR=OFF")
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'disable-gtest-download
+ (lambda _
+ (substitute* "3rdparty/CMakeLists.txt"
+ (("add_subdirectory\\(GTest\\)") ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ctest" "--output-junit" "test_results.xml")))))))
+ (inputs (list boost
+ eigen
+ file
+ gnuplot
+ libtiff
+ libxslt
+ xsimd
+ xtensor
+ xtl
+ zlib))
+ (native-inputs
+ (list doxygen googletest xxd))
+ (home-page "https://gitlab.com/morpheus.lab/morpheus")
+ (synopsis "Multicellular simulation")
+ (description
+ "Morpheus is a modeling and simulation environment for the study of
+multi-scale and multicellular systems.")
+ (license license:bsd-3)))
+
(define-public mosaik
(let ((commit "5c25216d3522d6a33e53875cd76a6d65001e4e67"))
(package
@@ -11604,30 +11667,6 @@ clustering analysis, differential analysis, motif inference and exploration of
single cell ATAC-seq sequencing data.")
(license license:gpl3)))
-(define-public r-tictoc
- (package
- (name "r-tictoc")
- (version "1.2")
- (source (origin
- (method url-fetch)
- (uri (cran-uri "tictoc" version))
- (sha256
- (base32
- "037jbwb58mj5asf3kr6hpf3fy9c6fkinnd8hbpfb141a2jsa8pph"))))
- (properties `((upstream-name . "tictoc")))
- (build-system r-build-system)
- (home-page "https://github.com/jabiru/tictoc")
- (synopsis
- "Time R scripts and implementations of stack and list structures")
- (description
- "The tictoc package provides the timing functions @code{tic} and
-@code{toc} that can be nested. It provides an alternative to
-@code{system.time()} with a different syntax similar to that in another
-well-known software package. @code{tic} and @code{toc} are easy to use, and
-are especially useful when timing several sections in more than a few lines of
-code.")
- (license license:asl2.0)))
-
(define-public r-tsis
(let ((commit "24460298fbe1d26e4da390f6e4f3d4d9d62334dc")
(revision "1"))
@@ -12343,6 +12382,59 @@ Needleman-Wunsch).")
;; Dual licensed; also includes public domain source.
(license (list license:gpl3 license:bsd-2))))
+(define-public pairadise
+ (package
+ (name "pairadise")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Xinglab/PAIRADISE")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ycwcqabm4zdng0a7j593g35d5yzvvwm7dyi3b8s19zdi4rjzrwd"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "pairadise")))
+ (add-before 'build '2to3
+ (lambda _ (invoke "2to3" "--write" "--nobackups" "."))))))
+ (inputs (list star))
+ (propagated-inputs (list python-pysam))
+ (home-page "https://github.com/Xinglab/PAIRADISE")
+ (synopsis "Paired replicate analysis of allelic differential splicing events")
+ (description
+ "PAIRADISE is a method for detecting @dfn{allele-specific alternative
+splicing} (ASAS) from RNA-seq data. Unlike conventional approaches that
+detect ASAS events one sample at a time, PAIRADISE aggregates ASAS signals
+across multiple individuals in a population. By treating the two alleles of
+an individual as paired, and multiple individuals sharing a heterozygous SNP
+as replicates, PAIRADISE formulates ASAS detection as a statistical problem
+for identifying differential alternative splicing from RNA-seq data with
+paired replicates.")
+ (license license:gpl3+)))
+
+(define-public r-pairadise
+ (package
+ (inherit pairadise)
+ (name "r-pairadise")
+ (build-system r-build-system)
+ (arguments
+ (list
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "pairadise/src/pairadise_model"))))))
+ (inputs '())
+ (propagated-inputs (list r-doparallel r-foreach r-iterators r-nloptr))
+ (license license:expat)))
+
(define-public pardre
(package
(name "pardre")
@@ -16415,45 +16507,6 @@ sequencing data in microbiome studies with the Dirichlet-tree Multinomial
Mixtures.")
(license license:cc0))))
-(define-public r-dyngen
- (package
- (name "r-dyngen")
- (version "1.0.5")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "dyngen" version))
- (sha256
- (base32
- "095jqn1rd83qm3ayca9hmv6bhlaa2c338020l46vniq8n38kbnra"))))
- (properties `((upstream-name . "dyngen")))
- (build-system r-build-system)
- (propagated-inputs
- (list r-assertthat
- r-dplyr
- r-dynutils
- r-ggplot2
- r-ggraph
- r-ggrepel
- r-gillespiessa2
- r-igraph
- r-lmds
- r-matrix
- r-patchwork
- r-pbapply
- r-purrr
- r-rlang
- r-tibble
- r-tidygraph
- r-tidyr
- r-viridis))
- (home-page "https://github.com/dynverse/dyngen")
- (synopsis "Multi-Modal simulator for single-cell omics analyses")
- (description
- "This package provides a multi-modal simulation engine for studying
-dynamic cellular processes at single-cell resolution.")
- (license license:expat)))
-
;; Needed for r-liana
(define-public r-omnipathr/devel
(let ((commit "679bb79e319af246a16968d27d64d8d6937a331a")
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index f236437b53..54130a42cd 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -575,7 +575,7 @@ features.")
#~(cons "-DGUI=OFF" #$configure-flags))))
(inputs
(modify-inputs (package-inputs base)
- (delete "qtsvg-5"))))))
+ (delete "qtsvg"))))))
(define-public qbittorrent-nox
(deprecated-package "qbittorrent-nox" qbittorrent-no-x))
@@ -584,7 +584,7 @@ features.")
(package
(inherit qbittorrent)
(name "qbittorrent-enhanced")
- (version "4.6.1.10")
+ (version "4.6.3.10")
(source
(origin
(method git-fetch)
@@ -594,7 +594,7 @@ features.")
(file-name (git-file-name name version))
(sha256
(base32
- "101a9n2vk9d6b4vc3schkmpc56l0i0i60fcjh8hwadc6amc2ymvy"))))
+ "09b8237h0gn6y3s0a7qg247hsdra5f5kg6xhirnhhfvjd8k6qviv"))))
(home-page "https://github.com/c0re100/qBittorrent-Enhanced-Edition")
(description
"qBittorrent Enhanced is a bittorrent client based on qBittorrent with
@@ -608,12 +608,15 @@ the following features:
@item Peer whitelist/blacklist
@end itemize")))
-(define-public qbittorrent-enhanced-nox
+(define-public qbittorrent-enhanced-no-x
(package
(inherit qbittorrent-enhanced)
- (name "qbittorrent-enhanced-nox")
- (arguments (package-arguments qbittorrent-nox))
- (inputs (package-inputs qbittorrent-nox))))
+ (name "qbittorrent-enhanced-no-x")
+ (arguments (package-arguments qbittorrent-no-x))
+ (inputs (package-inputs qbittorrent-no-x))))
+
+(define-public qbittorrent-enhanced-nox
+ (deprecated-package "qbittorrent-enhanced-nox" qbittorrent-enhanced-no-x))
(define-public deluge
(package
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index b558145ea0..c004aade73 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -326,7 +326,7 @@ compiler while still keeping it small, simple, fast and understandable.")
(define-public qbe
(package
(name "qbe")
- (version "1.1")
+ (version "1.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -335,7 +335,7 @@ compiler while still keeping it small, simple, fast and understandable.")
(file-name (git-file-name name version))
(sha256
(base32
- "07nl1kdgpz7hwfkng0yy4xihk0fmv1a2hq9bxzgvhy3vk9r7fmn8"))))
+ "1sxz5dn788n5c4v6mxa2kg3hf0a4qryg8wp0w3wx0qkzj6flj2sj"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index aef5cbf0a8..4fa15cd4dd 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -179,13 +179,13 @@ data units.")
(define-public khal
(package
(name "khal")
- (version "0.11.2")
+ (version "0.11.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "khal" version))
(sha256
(base32
- "1flrz01nsmvphiv673b8ia279qcp3gj6a1rsjlsj4gp5f69xif4g"))))
+ "0pijq7crjpak1rq3hzx68fz34n7ikkcz3xsk9r3brny17z2brk58"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; The test suite is unreliable. See <https://bugs.gnu.org/44197>
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index b1be5484f9..721cdf8e68 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -49,6 +49,7 @@
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -290,6 +291,7 @@ source code editors and IDEs.")
(inherit check)
(version "0.14.0")
(source (origin
+ (inherit (package-source check))
(method url-fetch)
(uri (string-append "https://github.com/libcheck/check/releases"
"/download/" version "/check-" version ".tar.gz"))
@@ -650,7 +652,7 @@ pattern.")
(define-public catch2-3
(package
(name "catch2")
- (version "3.5.1")
+ (version "3.5.3")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(method git-fetch)
@@ -660,19 +662,12 @@ pattern.")
(file-name (git-file-name name version))
(sha256
(base32
- "0p7rk01n4qfnnm1bgakllyqi83n1kbpz11gh65z1vspfz58hs9iv"))))
+ "11yla93vm2896fzhm3fz8lk3y3iz5iy7vd6wa7wnwvhsfd2dbfq3"))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
- #~(list #$@(match (%current-system)
- ((or "x86_64-linux" "i686-linux")
- ;; Tests fail on i686-linux without SSE2 for floats, see
- ;; upstream report
- ;; <https://github.com/catchorg/Catch2/issues/2796>.
- '("-DCMAKE_CXX_FLAGS=-msse2 -mfpmath=sse"))
- (_ '()))
- "-DCATCH_DEVELOPMENT_BUILD=ON"
+ #~(list "-DCATCH_DEVELOPMENT_BUILD=ON"
"-DCATCH_ENABLE_WERROR=OFF"
"-DBUILD_SHARED_LIBS=ON")))
(inputs (list python-wrapper))
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 377328688a..dcfaa235e9 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -183,14 +183,14 @@ highlighting your own code that seemed comprehensible when you wrote it.")
(define-public global ; a global variable
(package
(name "global")
- (version "6.6.10")
+ (version "6.6.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/global/global-"
version ".tar.gz"))
(sha256
(base32
- "1s6c9nzpp4jfq14l3mk9fnyipizljkka8hdr1wwh2g798nlydl9d"))))
+ "00ari03n0wdzz1ib73p64h8g1p0a9js61fxl92jyq50fhh35najl"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
@@ -437,7 +437,7 @@ features that are not supported by the standard @code{stdio} implementation.")
(define-public universal-ctags
(package
(name "universal-ctags")
- (version "6.1.20240218.0")
+ (version "6.1.20240317.0")
(source
(origin
(method git-fetch)
@@ -447,7 +447,7 @@ features that are not supported by the standard @code{stdio} implementation.")
(file-name (git-file-name name version))
(sha256
(base32
- "09cjlj7mq3s98x9zsg4slq86h1myixjxxqfnc0kglf2hnr9nrkf5"))
+ "1bs48bickx04rdr2g60pppyb5r0rjhyslwr1gr05qdv0bsmwf61x"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
index aa270a25f3..6d4877460d 100644
--- a/gnu/packages/containers.scm
+++ b/gnu/packages/containers.scm
@@ -291,7 +291,7 @@ Layer-4 sockets.")
(define-public cni-plugins
(package
(name "cni-plugins")
- (version "1.0.1")
+ (version "1.4.1")
(source
(origin
(method git-fetch)
@@ -299,7 +299,7 @@ Layer-4 sockets.")
(url "https://github.com/containernetworking/plugins")
(commit (string-append "v" version))))
(sha256
- (base32 "1j91in0mg4nblpdccyq63ncbnn2pc2zzjp1fh3jy0bsndllgv0nc"))
+ (base32 "0l6f4z762n8blak41wcxdmdhm92gqw2qcxcqd3s4wiql3d7273kj"))
(file-name (git-file-name name version))))
(build-system go-build-system)
(arguments
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index da4e93c280..2ab80b8e2a 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -30,7 +30,7 @@
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022, 2023, 2024 David Elsing <david.elsing@posteo.net>
-;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2022-2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 Sughosha <Sughosha@proton.me>
@@ -907,9 +907,12 @@ lock-free fixed size queue written in C++11.")
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
- ;; The tests are flaky when run in parallel. For more info:
- ;; https://bugs.gnu.org/46562
- '(#:parallel-tests? #f))
+ ;; The tests are flaky when run in parallel. For more info:
+ ;; https://bugs.gnu.org/46562
+ `(#:parallel-tests? #f
+ ,@(if (target-riscv64?)
+ `(#:make-flags (list "LDFLAGS=-latomic"))
+ '())))
(native-inputs
(list autoconf automake libtool
;; For tests.
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index dbbf30c551..22edad035a 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -1344,13 +1344,13 @@ compositional data.")
(define-public r-gwasexacthw
(package
(name "r-gwasexacthw")
- (version "1.01")
+ (version "1.2")
(source (origin
(method url-fetch)
(uri (cran-uri "GWASExactHW" version))
(sha256
(base32
- "19qmk8h7kxmn9kzw0x4xns5p3qqz27xkqq4q6zmh4jzizd0fsl78"))))
+ "1xzcvmbh27ibd7g9zlqyp215q4yfkhdypcvm5gjkvw1qhd3pl4yk"))))
(properties `((upstream-name . "GWASExactHW")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/package=GWASExactHW")
@@ -2318,13 +2318,13 @@ known as Dynamic Linear Models.")
(define-public r-zcompositions
(package
(name "r-zcompositions")
- (version "1.5.0-1")
+ (version "1.5.0-3")
(source (origin
(method url-fetch)
(uri (cran-uri "zCompositions" version))
(sha256
(base32
- "0sx6i03iyg4jxmjiyzkssz3i6c8nv29wwhbl7yd0wxapwpakmlj8"))))
+ "1gbwx3vgx5viqnn5jsszild6ikyc2pmf1hdjc9475caf9xx9l589"))))
(properties `((upstream-name . "zCompositions")))
(build-system r-build-system)
(propagated-inputs
@@ -3841,6 +3841,30 @@ algorithm described in MetaCell analysis of single-cell RNA-seq
data using K-nn graph partitions.")
(license license:gpl2)))
+(define-public r-tictoc
+ (package
+ (name "r-tictoc")
+ (version "1.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "tictoc" version))
+ (sha256
+ (base32
+ "0cw8r1gn4p2v1l3d80brk9sfr9nyckyyym5nr9xq3d74l74vgkcg"))))
+ (properties `((upstream-name . "tictoc")))
+ (build-system r-build-system)
+ (home-page "https://github.com/jabiru/tictoc")
+ (synopsis
+ "Time R scripts and implementations of stack and list structures")
+ (description
+ "The tictoc package provides the timing functions @code{tic} and
+@code{toc} that can be nested. It provides an alternative to
+@code{system.time()} with a different syntax similar to that in another
+well-known software package. @code{tic} and @code{toc} are easy to use, and
+are especially useful when timing several sections in more than a few lines of
+code.")
+ (license license:asl2.0)))
+
(define-public r-tidyft
(package
(name "r-tidyft")
@@ -4998,14 +5022,14 @@ weights.")
(define-public r-sass
(package
(name "r-sass")
- (version "0.4.8")
+ (version "0.4.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "sass" version))
(sha256
(base32
- "0364ndnmlqrga3k4c1hfy1894k5wpm9srf9201g9zb92rlq2kfj2"))))
+ "1lnl2xssz33vg7p6a8ij55hg6j1p1d3y2mq22pvf0r3rmnd08cz1"))))
(properties `((upstream-name . "sass")))
(build-system r-build-system)
(propagated-inputs
@@ -6515,13 +6539,13 @@ processes. Most of its code is based on the @code{psutil} Python package.")
(define-public r-pkgbuild
(package
(name "r-pkgbuild")
- (version "1.4.3")
+ (version "1.4.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "pkgbuild" version))
(sha256
- (base32 "0rci20gj2x0bgjy51jp8i4gld6arsigj7lhdkpwvdyhadjsyv0qm"))))
+ (base32 "1a72s2gg7ddjj94naiii44f3vyhky05gaa6xvdf72m1nshy88wjr"))))
(build-system r-build-system)
(propagated-inputs
(list r-callr r-cli r-desc r-processx r-r6))
@@ -8945,14 +8969,14 @@ problems as well as resampling based estimators of prediction error.")
(define-public r-psych
(package
(name "r-psych")
- (version "2.4.1")
+ (version "2.4.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "psych" version))
(sha256
(base32
- "08ip2m91c6hinva18zv575cn6w14pnjc503m1gisrg65c3z3f69b"))))
+ "0ic479y314knn20m1cjlp15lji7f70xrg95ln570pgkhrk5853bi"))))
(build-system r-build-system)
(propagated-inputs
(list r-lattice r-mnormt r-nlme))
@@ -9132,13 +9156,13 @@ from the data points.")
(define-public r-coro
(package
(name "r-coro")
- (version "1.0.3")
+ (version "1.0.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "coro" version))
(sha256
- (base32 "0wvxdpdh3xrskz5s5wfkva856x849knx1jigbf0ff6s6n6qjjxsf"))))
+ (base32 "0r6cb2gr29vxjlbfzqxdgbccp57l6raxncljisl1vyj6xi2by8cg"))))
(properties `((upstream-name . "coro")))
(build-system r-build-system)
(propagated-inputs (list r-rlang))
@@ -10277,13 +10301,13 @@ constants, and control debugging of packages via environment variables.")
(define-public r-processx
(package
(name "r-processx")
- (version "3.8.3")
+ (version "3.8.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "processx" version))
(sha256
- (base32 "0cfq6pq8rg0vhjfgvf48hfvngbn1g6hv28b6pgxh55xqh8acbn0s"))))
+ (base32 "02z7n59pglz6jw1vyyl0mkc7mz2c7y8yzsnhq5yz62digwnnf9v6"))))
(build-system r-build-system)
(propagated-inputs
(list r-ps r-r6))
@@ -10712,14 +10736,14 @@ vectors.")
(define-public r-tinytex
(package
(name "r-tinytex")
- (version "0.49")
+ (version "0.50")
(source
(origin
(method url-fetch)
(uri (cran-uri "tinytex" version))
(sha256
(base32
- "0i9icscy5n6p6w3f4v2z3cznywrrv2l6xyyhb0k1fpa4cpn6j4cl"))))
+ "11k0pl073b4k4wmpxkw4a071jbpvhr1g3cwm9v99rw3gh6p6x15l"))))
(build-system r-build-system)
(propagated-inputs
(list r-xfun))
@@ -10797,13 +10821,13 @@ implementation of an approximate nearest neighbor search using hierarchical
(define-public r-nestedcv
(package
(name "r-nestedcv")
- (version "0.7.4")
+ (version "0.7.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "nestedcv" version))
(sha256
- (base32 "0ymy1dbkcpiyq44zpvpkz1m5ivnchip07q6agh6ij50imddxb48s"))))
+ (base32 "1pdky7kzqs1rhl0f4hba3sggifplfgbp339imxym4dvvdb81b589"))))
(properties `((upstream-name . "nestedcv")))
(build-system r-build-system)
(propagated-inputs (list r-caret
@@ -10812,13 +10836,13 @@ implementation of an approximate nearest neighbor search using hierarchical
r-foreach
r-ggplot2
r-glmnet
- r-magrittr
r-matrixstats
r-matrixtests
r-proc
r-rfast
r-rhpcblasctl
- r-rlang))
+ r-rlang
+ r-rocr))
(native-inputs (list r-knitr))
(home-page "https://github.com/myles-lewis/nestedcv")
(synopsis "Nested cross-validation with glmnet and caret")
@@ -12593,6 +12617,45 @@ contain lags, diffs and missing values.")
;; Any GPL version.
(license license:gpl2+)))
+(define-public r-dyngen
+ (package
+ (name "r-dyngen")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "dyngen" version))
+ (sha256
+ (base32
+ "095jqn1rd83qm3ayca9hmv6bhlaa2c338020l46vniq8n38kbnra"))))
+ (properties `((upstream-name . "dyngen")))
+ (build-system r-build-system)
+ (propagated-inputs
+ (list r-assertthat
+ r-dplyr
+ r-dynutils
+ r-ggplot2
+ r-ggraph
+ r-ggrepel
+ r-gillespiessa2
+ r-igraph
+ r-lmds
+ r-matrix
+ r-patchwork
+ r-pbapply
+ r-purrr
+ r-rlang
+ r-tibble
+ r-tidygraph
+ r-tidyr
+ r-viridis))
+ (home-page "https://github.com/dynverse/dyngen")
+ (synopsis "Multi-Modal simulator for single-cell omics analyses")
+ (description
+ "This package provides a multi-modal simulation engine for studying
+dynamic cellular processes at single-cell resolution.")
+ (license license:expat)))
+
(define-public r-dynutils
(package
(name "r-dynutils")
@@ -13709,14 +13772,14 @@ Sequence logos can easily be combined with other ggplot2 plots.")
(define-public r-ggsci
(package
(name "r-ggsci")
- (version "3.0.1")
+ (version "3.0.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggsci" version))
(sha256
(base32
- "030rkjx64mlhy19d74p3blsi92nyjq9vbn33323dvm1rihb8avgi"))))
+ "0qasxv3aliqqmfi3nk3140lrbcrw4lbfw5hm65hfkgf5a3bkca67"))))
(build-system r-build-system)
(propagated-inputs
(list r-ggplot2 r-scales))
@@ -14486,14 +14549,14 @@ Decomposition in R (Beaton et al 2014) <doi:10.1016/j.csda.2013.11.006>.")
(define-public r-insight
(package
(name "r-insight")
- (version "0.19.8")
+ (version "0.19.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "insight" version))
(sha256
(base32
- "1f76fqrcv54l01z2nb46ysh3f41j06nqpn4ffn2gmjfggmj4xvwq"))))
+ "0q6wd28bnav9vwzprwvm9fhpmhqvq85iyg4h503lavcvi5g39a9x"))))
(build-system r-build-system)
(native-inputs
(list r-knitr))
@@ -14572,13 +14635,13 @@ tidyverse workflow.")
(define-public r-nodbi
(package
(name "r-nodbi")
- (version "0.10.3")
+ (version "0.10.4")
(source (origin
(method url-fetch)
(uri (cran-uri "nodbi" version))
(sha256
(base32
- "17ghgp6sabj4dlmx3cdn9rrhci7050a73cd17fymjksgvy1jbwf6"))))
+ "0q4nsxic1jlraipdc6zi711c3316n9wgq1cgbywhjlxb52qhkmd7"))))
(properties `((upstream-name . "nodbi")))
(build-system r-build-system)
(propagated-inputs
@@ -14652,14 +14715,14 @@ functions.")
(define-public r-flextable
(package
(name "r-flextable")
- (version "0.9.4")
+ (version "0.9.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "flextable" version))
(sha256
(base32
- "1dlsag1y3s7d5lp1dh2kxf1qax4r9xvxycpmxl64gkr50dk13bam"))))
+ "14mq27k7998405qwpdpxa1csbf5pdgzj9s892xm95bd4chnshdvw"))))
(build-system r-build-system)
(propagated-inputs
(list r-data-table
@@ -14730,13 +14793,13 @@ contains or can be specified by the user.")
(define-public r-wrs2
(package
(name "r-wrs2")
- (version "1.1-5")
+ (version "1.1-6")
(source (origin
(method url-fetch)
(uri (cran-uri "WRS2" version))
(sha256
(base32
- "028xs424m879siaf3rrhzl1dacp9j7wcl5fpikyx2n0cc7anq4vq"))))
+ "1wsnsl4gy1hbgxfzzhfybak0jqmxq9fsh3scqyxydd7ia9r2n52k"))))
(properties `((upstream-name . "WRS2")))
(build-system r-build-system)
(propagated-inputs (list r-mass r-plyr r-reshape))
@@ -16525,14 +16588,14 @@ console, resulting in an interactive editing environment.")
(define-public r-survey
(package
(name "r-survey")
- (version "4.2-1")
+ (version "4.4-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "survey" version))
(sha256
(base32
- "0l7iml53k2blmcgvbvplln08fn2s6da856m5izcvw87v6bhn2g6c"))))
+ "1649srmdr8i9j8grqikkm8nbfav31s7iygx6pv96jvr3wh80yh46"))))
(build-system r-build-system)
(propagated-inputs
(list r-lattice
@@ -16540,7 +16603,10 @@ console, resulting in an interactive editing environment.")
r-minqa
r-mitools
r-numderiv
+ r-rcpp
+ r-rcpparmadillo
r-survival))
+ (native-inputs (list r-r-rsp))
(home-page "https://r-survey.r-forge.r-project.org/survey/")
(synopsis "Analysis of complex survey samples")
(description
@@ -16607,13 +16673,13 @@ handle data from simple random samples as well as complex surveys.")
(define-public r-tarchetypes
(package
(name "r-tarchetypes")
- (version "0.7.12")
+ (version "0.8.0")
(source (origin
(method url-fetch)
(uri (cran-uri "tarchetypes" version))
(sha256
(base32
- "0l5kk7a3p0pbqh9rrjz43aa4dgcfffcb3wwsl60bm9v48lzv7frv"))))
+ "18vn2mx5nqlib0by5v7493g8gsbzcdbg0dn92cpbf713r69v1lbk"))))
(properties `((upstream-name . "tarchetypes")))
(build-system r-build-system)
(propagated-inputs (list r-digest
@@ -16641,13 +16707,13 @@ were influenced by the drake R package by Will Landau (2018)
(define-public r-targets
(package
(name "r-targets")
- (version "1.5.1")
+ (version "1.6.0")
(source (origin
(method url-fetch)
(uri (cran-uri "targets" version))
(sha256
(base32
- "1g21cp0p5jdghr61w9q3y73jm2k248z4apn7rlxqm6m18i4x7zsb"))))
+ "1ddpbhvdydxm62k6ay7hpqjh8kh2isjpcdh3gygzcdrghx6d7x65"))))
(properties `((upstream-name . "targets")))
(build-system r-build-system)
(propagated-inputs (list r-base64url
@@ -17065,13 +17131,13 @@ Hothorn, Westfall, 2010, CRC Press).")
(define-public r-multcompview
(package
(name "r-multcompview")
- (version "0.1-9")
+ (version "0.1-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "multcompView" version))
(sha256
- (base32 "15vki166n2k4ng72hy62c2mzz18s10h6l6w839qplg0zsplr6f8z"))))
+ (base32 "12mdk12xciq1d3zn94rixahhcah2qq41lvb5n4kzgjaq4yr4kwiq"))))
(properties `((upstream-name . "multcompView")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/package=multcompView")
@@ -17780,14 +17846,14 @@ more information about packages, and where they were installed from.")
(define-public r-remotes
(package
(name "r-remotes")
- (version "2.4.2.1")
+ (version "2.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "remotes" version))
(sha256
(base32
- "1790q52z4fy4zb1hnpn066q9fph53syl7gaxlbgbqq1dcndcma3v"))))
+ "0345s9q0fyv0wrxkklcy97h7bi85jfb3vwkh80px926d4qa3yrjd"))))
(build-system r-build-system)
(native-inputs
(list r-knitr))
@@ -18529,14 +18595,14 @@ Bioconductor packages.")
(define-public r-rgl
(package
(name "r-rgl")
- (version "1.2.8")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "rgl" version))
(sha256
(base32
- "1x0p2yldg2mjf64xd5dd0bidzgy7b39w7zn18ghan2rdf0wffdg5"))
+ "0jbda1b4lrkcpdld369687pm7isy69l5sx1wg2yrpvvzvmcppslz"))
(snippet
'(delete-file "inst/htmlwidgets/lib/CanvasMatrix/CanvasMatrix.min.js"))))
;; For OpenGL and X11 support
@@ -18561,10 +18627,10 @@ Bioconductor packages.")
r-rmarkdown)) ;for vignettes
(inputs
(list freetype
- libpng
glu
+ libpng
libx11
- pandoc
+ zlib
zlib))
(propagated-inputs
(list r-base64enc
@@ -18978,13 +19044,13 @@ Tabelow (2007) <DOI:10.18637/jss.v019.i01>.")
(define-public r-admisc
(package
(name "r-admisc")
- (version "0.34")
+ (version "0.35")
(source
(origin
(method url-fetch)
(uri (cran-uri "admisc" version))
(sha256
- (base32 "1psvi8hb7j65abw8g4ya9r43r5kd9mcv478pg2d09za0cig8gkzx"))))
+ (base32 "0gzdb9dm34qfkjqgfrd3wm96dzhcps4xayyrhp80mzgh14zmnjyg"))))
(properties `((upstream-name . "admisc")))
(build-system r-build-system)
(home-page "https://github.com/dusadrian/admisc")
@@ -19198,14 +19264,14 @@ Processing.")
(define-public r-tm
(package
(name "r-tm")
- (version "0.7-11")
+ (version "0.7-12")
(source
(origin
(method url-fetch)
(uri (cran-uri "tm" version))
(sha256
(base32
- "0hp7xamjmifd56qwsin5m0xng592wwxsbfxdz37n4k6zjf28paws"))))
+ "1z0zpz6jgzg34cz07cdpya2zwwsvywrd8xgwahhlz15vnaij7j3y"))))
(properties `((upstream-name . "tm")))
(build-system r-build-system)
(propagated-inputs
@@ -19327,14 +19393,14 @@ over-plotting in scatter plots with text.")
(define-public r-colorramps
(package
(name "r-colorramps")
- (version "2.3.2")
+ (version "2.3.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "colorRamps" version))
(sha256
(base32
- "0cq8l6ybhff2q2dj2i73b4cnw6v2c6ql24jbrkh0xrpc9wjsarxj"))))
+ "1y4gn6v8wmwq3wcfgdnx1ah2qa53gayvbfa62kp286ga4c8k3prw"))))
(properties `((upstream-name . "colorRamps")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/colorRamps")
@@ -19931,14 +19997,14 @@ and compatibility with @code{ape} objects.")
(define-public r-rnifti
(package
(name "r-rnifti")
- (version "1.6.0")
+ (version "1.6.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "RNifti" version))
(sha256
(base32
- "0spsdkqvlkk7xn6wz6778gc6cc7dnfcwpz91q8wdzxgcbgxdy0yv"))))
+ "0wn06fnq5c7f0vwakryb75vzkjh03dqz2z57lgmn68hwgssnpalc"))))
(properties `((upstream-name . "RNifti")))
(build-system r-build-system)
(inputs (list zlib))
@@ -20429,14 +20495,14 @@ preparing, executing, and processing HTTP requests.")
(define-public r-bigrquery
(package
(name "r-bigrquery")
- (version "1.5.0")
+ (version "1.5.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "bigrquery" version))
(sha256
(base32
- "1s2vvygv4d8mdd67r6j2s9d1xg009lpxysfarmrnqh0s2s1rglkz"))))
+ "0wkm9xka83skq1cnv830q4jnqvwm8rlmns2mj8n692h2y5qxlmna"))))
(build-system r-build-system)
(propagated-inputs
(list r-bit64
@@ -21642,14 +21708,14 @@ subsetting.")
(define-public r-globals
(package
(name "r-globals")
- (version "0.16.2")
+ (version "0.16.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "globals" version))
(sha256
(base32
- "02kpdlrx1bannaixz03c0f7bii9g36iy2nw779mfgi56byljcb38"))))
+ "0nwcl40sbmmf812di9c3lryls9wn2k2dyjvpkp9832wd4jafsg6p"))))
(build-system r-build-system)
(propagated-inputs
(list r-codetools))
@@ -22208,14 +22274,14 @@ numbers (e.g. concentrations).")
(define-public r-cobs
(package
(name "r-cobs")
- (version "1.3-7")
+ (version "1.3-8")
(source
(origin
(method url-fetch)
(uri (cran-uri "cobs" version))
(sha256
(base32
- "0gz6i8scvfkmg0z7rcqc422dm360xv5ygcxnj6yyvpcpdv7sdp9k"))))
+ "08cqpiylbfy5j5xxajpngqaycmmciwhyf3sk3972x2l6rg3lj81c"))))
(build-system r-build-system)
(propagated-inputs
(list r-quantreg r-sparsem))
@@ -22798,14 +22864,14 @@ network.")
(define-public r-gmodels
(package
(name "r-gmodels")
- (version "2.18.1.1")
+ (version "2.19.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "gmodels" version))
(sha256
(base32
- "158y7yh4maawn9vki8cq4sil48xib2bbpl6qgj5gvlkw3c14hzfs"))))
+ "13c8x7iwyz36qir3ikbvjb5dl6gdh4fh82qdxcpcdinwfhrbhmxv"))))
(build-system r-build-system)
(propagated-inputs
(list r-gdata r-mass))
@@ -23727,13 +23793,13 @@ lspec, polyclass, and polymars.")
(define-public r-rms
(package
(name "r-rms")
- (version "6.7-1")
+ (version "6.8-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "rms" version))
(sha256
- (base32 "199xb98zxsbd8wa9g33bgrvbcpq79glnfmq060ic8f9vjw96r0qz"))))
+ (base32 "1cd6m6i2ild2f2x9rkyd2aqb33q3xy0596bs3dnvr2mnh5fcar5d"))))
(build-system r-build-system)
(propagated-inputs
(list r-cluster
@@ -24829,14 +24895,14 @@ databases, including ENA, PDB or ChEMBL are also accessible.")
(define-public r-ggraph
(package
(name "r-ggraph")
- (version "2.2.0")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggraph" version))
(sha256
(base32
- "0zs02xyzvimk8hj1z465zxp1hlca3gfirdcwb3gqriwsmnfhg661"))))
+ "1w9snb43wpa2rv16fx5vmh7nqpgkr05iz6flnmlfx3xd0ylzh1a4"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli
@@ -25631,14 +25697,14 @@ colored by the number of neighboring points. This is useful to visualize the
(define-public r-arrow
(package
(name "r-arrow")
- (version "14.0.2.1")
+ (version "15.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "arrow" version))
(sha256
(base32
- "1l1ninmq6mbqm7cckcy0qw4f20fkrixrykcqkh24bszg514r9af5"))))
+ "070pp0p5h1ij7pg34l5grrx4vwfihagnvnk4kj7l3w0gh8y88ibz"))))
(properties `((upstream-name . "arrow")))
(build-system r-build-system)
(inputs
@@ -27262,14 +27328,14 @@ both R code and compiled C/C++/FORTRAN code.")
(define-public r-systemfonts
(package
(name "r-systemfonts")
- (version "1.0.5")
+ (version "1.0.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "systemfonts" version))
(sha256
(base32
- "08sqw5izpwhawcjkcyscvslz914skwfi0s68rdwrqwwkh8fzn3w4"))))
+ "1mqxb2njfnk5rfwkqc940xbpwd3dh25zac4sapv5mjyddrxnwn6i"))))
(properties `((upstream-name . "systemfonts")))
(build-system r-build-system)
(propagated-inputs
@@ -27291,14 +27357,14 @@ be used further by e.g. graphic devices.")
(define-public r-graphlayouts
(package
(name "r-graphlayouts")
- (version "1.1.0")
+ (version "1.1.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "graphlayouts" version))
(sha256
(base32
- "14ib4yjcxb6zgci5h89p9swqabab57bzywwp96d3nhn620chap22"))))
+ "009q5y46lbizdabbb6a61xlfa3g5lf3nd9w42709lcxi0ad4bhkv"))))
(properties `((upstream-name . "graphlayouts")))
(build-system r-build-system)
(propagated-inputs
@@ -27443,14 +27509,14 @@ in pipelines.")
(define-public r-parameters
(package
(name "r-parameters")
- (version "0.21.5")
+ (version "0.21.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "parameters" version))
(sha256
(base32
- "0yxljycspmljj5s4i5knwyhxp29s616f7kg3xcwn0ip15kfg260v"))))
+ "004ld3m9qdq3bwl8qmp3h700kzqlgbmgz739d7fpiqgrs0s2gv83"))))
(properties `((upstream-name . "parameters")))
(build-system r-build-system)
(propagated-inputs
@@ -28550,21 +28616,18 @@ and mixture of Gaussian models.")
(define-public r-accsda
(package
(name "r-accsda")
- (version "1.1.2")
+ (version "1.1.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "accSDA" version))
(sha256
(base32
- "0jf4x5j9y7a3mvf2ghjp6bxdq1s5jh2sx3x3ar6f3lyzzvrnls4v"))))
+ "1s0c4wy4bzrc2fkka7kl519z1yckp6s4ggzy1ik992ygyprdcs1q"))))
(properties `((upstream-name . "accSDA")))
(build-system r-build-system)
(propagated-inputs
- (list r-ggplot2
- r-ggthemes
- r-gridextra
- r-mass))
+ (list r-ggplot2 r-gridextra r-mass))
(home-page "https://github.com/gumeo/accSDA/wiki")
(synopsis "Accelerated sparse discriminant analysis")
(description
@@ -28790,14 +28853,14 @@ discussed in Reisen et al. (2017) @url{doi:10.1016/j.jspi.2017.02.008}.")
(define-public r-gamlss-data
(package
(name "r-gamlss-data")
- (version "6.0-2")
+ (version "6.0-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "gamlss.data" version))
(sha256
(base32
- "07mpdl4h9rwmnpl9jmsn6ig8ji11an6pyjfsvg62h2alapwbdcyv"))))
+ "08mb154mz1kk19zb414i5mg1q1yv7nylwpc5kzsb602mv4cxpq5s"))))
(properties `((upstream-name . "gamlss.data")))
(build-system r-build-system)
(home-page "http://www.gamlss.org/")
@@ -29856,14 +29919,14 @@ variable observed over time.")
(define-public r-fda
(package
(name "r-fda")
- (version "6.1.7")
+ (version "6.1.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "fda" version))
(sha256
(base32
- "00hiz15v31zs5l0bqdkim1fpfd3bjvssv77iczq0si724s4fqxiq"))))
+ "01y488zviaj9z8h88vnia9wg4as62jx73la1qji1ljbr5258b3gg"))))
(properties `((upstream-name . "fda")))
(build-system r-build-system)
(propagated-inputs
@@ -32360,14 +32423,14 @@ Latent regression models and plausible value imputation are also supported.")
(define-public r-erm
(package
(name "r-erm")
- (version "1.0-5")
+ (version "1.0-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "eRm" version))
(sha256
(base32
- "0bkivhiy02pibdcvb9z0i0yvc3wz3v33n6slhkkik61gcw1idmf0"))))
+ "059xny2jl81is1qyxgpbf4qi5zqpvdc64322kjz1i011kq9apwmw"))))
(properties `((upstream-name . "eRm")))
(build-system r-build-system)
(propagated-inputs
@@ -32714,14 +32777,14 @@ techniques to average Bayesian predictive distributions.")
(define-public r-rstan
(package
(name "r-rstan")
- (version "2.32.5")
+ (version "2.32.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "rstan" version))
(sha256
(base32
- "0m655pf0lrhqh2mzylximd2vch9wy252k4zwyfqn1sfwmx642dva"))))
+ "0w0si8sd26c4nivqh85y0imil14sp4vy97yikmrv1lxvj40x141k"))))
(properties
'((upstream-name . "rstan")
(updater-extra-native-inputs . ("tzdata-for-tests"))))
@@ -32750,6 +32813,7 @@ techniques to average Bayesian predictive distributions.")
r-rcppeigen
r-rcppparallel
r-stanheaders))
+ (inputs (list pandoc))
(home-page "https://discourse.mc-stan.org/")
(synopsis "R interface to Stan")
(description
@@ -35663,14 +35727,14 @@ model.")
(define-public r-igraph
(package
(name "r-igraph")
- (version "2.0.2")
+ (version "2.0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "igraph" version))
(sha256
(base32
- "0kfc9blyy54cz0m4mdzzwgvn0rkil49kdk438411mx62g2vxby9l"))))
+ "0xlg5lxzr8dc260fii43chsspqvb962i1yrcars988b78lnig2lf"))))
(properties
`((upstream-name . "igraph")
(updater-extra-native-inputs . ("which"))))
@@ -35678,7 +35742,7 @@ model.")
(native-inputs
(list gfortran pkg-config r-knitr which))
(inputs
- (list glpk gmp libxml2 zlib))
+ (list glpk libxml2 zlib))
(propagated-inputs
(list r-cli
r-cpp11
@@ -36892,13 +36956,13 @@ other R users.")
(define-public r-seurat
(package
(name "r-seurat")
- (version "5.0.2")
+ (version "5.0.3")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
- "1d49a9mhip81lvnkr8i4dznkmzyskdzrpi485w7yw2sr0qbyzg5c"))))
+ "08r5l6sk8i134izd29ydfm7hva7a9b3lfglmgngc9w73qs9dzwz4"))))
(properties `((upstream-name . "Seurat")))
(build-system r-build-system)
(propagated-inputs
@@ -37668,13 +37732,13 @@ computational operations, add-on packages provide additional functionality.")
(define-public r-mlr3learners
(package
(name "r-mlr3learners")
- (version "0.5.8")
+ (version "0.6.0")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3learners" version))
(sha256
(base32
- "0q44qmd9zfc68jl2zz684rx9744g83vd7z40dck8cdvnnrxcff5g"))))
+ "06gz6h19cnb62js1b35nddy453dyj64mr788p8ww56kgfk6yzxr8"))))
(build-system r-build-system)
(propagated-inputs
(list r-checkmate
@@ -38019,14 +38083,14 @@ the font tool-set provided by the @code{systemfonts} package.")
(define-public r-ragg
(package
(name "r-ragg")
- (version "1.2.7")
+ (version "1.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ragg" version))
(sha256
(base32
- "17qc53scxf02f8hlpyirsjdav4wjh3mk6q04npf82y0j5mk1hynp"))))
+ "1chlas4i6p8gigx02x1y7nanmz9jbv1h4fa145zk223bbg9j931j"))))
(properties `((upstream-name . "ragg")))
(build-system r-build-system)
(inputs
@@ -39592,28 +39656,19 @@ package.")
(define-public r-qs
(package
(name "r-qs")
- (version "0.25.7")
+ (version "0.26.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "qs" version))
(sha256
(base32
- "0a0jay9p2k0ahf08s94dr1w66qhbgzs87vkaanwkd4j6lvijncz7"))))
+ "0qmgnc4igy8mjzarm30cgi4z75hh8f01kvcs6n6s63cy4qk30vs6"))))
(properties `((upstream-name . "qs")))
(build-system r-build-system)
- (arguments
- (list
- #:phases
- '(modify-phases %standard-phases
- ;; Our zstd is at 1.5.0, but this package bundles 1.5.2.
- (add-after 'unpack 'use-older-zstd
- (lambda _
- (substitute* "configure"
- (("100502") "100500")))))))
(inputs (list lz4 (list zstd "lib")))
(propagated-inputs
- (list r-rapiserialize r-rcpp r-stringfish))
+ (list r-bh r-rapiserialize r-rcpp r-stringfish))
(native-inputs
(list pkg-config r-knitr))
(home-page "https://github.com/traversc/qs")
@@ -40039,14 +40094,14 @@ fully reproducible.")
(define-public r-paws-common
(package
(name "r-paws-common")
- (version "0.7.0")
+ (version "0.7.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.common" version))
(sha256
(base32
- "05rld34brjc32p9f9cbqyyh208rh9idnyih33cpw7bz7bfyicnqm"))))
+ "1mjbyykav3f5yv59hnaihqsqhinvrlhphp93ks9xp756w6abciqf"))))
(properties `((upstream-name . "paws.common")))
(build-system r-build-system)
(propagated-inputs
@@ -41082,13 +41137,13 @@ Monte Carlo approach implemented in JAGS.")
(define-public r-logger
(package
(name "r-logger")
- (version "0.2.2")
+ (version "0.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "logger" version))
(sha256
- (base32 "08kym5i5fvbf5xhh9qdszp4jdgyc7j7zpnwzy68wabqz73aff6sg"))))
+ (base32 "0ivhrmq408pb7gx7yhmrn6mjkx15dvkb4bpk4z5y642l3j2vv9vd"))))
(properties `((upstream-name . "logger")))
(build-system r-build-system)
(native-inputs (list r-knitr))
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 1a08748392..a67d3d74bb 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -9664,6 +9664,7 @@ capabilities.")
(description "This package provides spec generation for clap-rs/clap.")
(license license:expat)))
+;; TODO: Remove this package in favor of rust-cargo in rust-apps.scm.
(define-public rust-cargo-0.76
(package
(name "rust-cargo")
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 100bd5c026..93e36c515a 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -4511,7 +4511,7 @@ the SQL language using a syntax that reflects the resulting query.")
(define-public apache-arrow
(package
(name "apache-arrow")
- (version "14.0.2")
+ (version "15.0.1")
(source
(origin
(method git-fetch)
@@ -4521,7 +4521,7 @@ the SQL language using a syntax that reflects the resulting query.")
(file-name (git-file-name name version))
(sha256
(base32
- "1idw58vs8r6g6xy2qkhccgc79hwx4r5rr4bhd6ilxx56fwq9hkn2"))))
+ "0zrcwsq9c976xncc1kg6lw24s5r3ag8vfzhmcnkvi5z2c9x4lvvc"))))
(build-system cmake-build-system)
(arguments
(list
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index f5a3bbc5b9..52f615f2cf 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -74,7 +74,7 @@
(define-public diffoscope
(package
(name "diffoscope")
- (version "258")
+ (version "260")
(source
(origin
(method git-fetch)
@@ -83,7 +83,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1wppshi18lyrgxxi8j06ij0qi31zdgqwjj6bycsyvipkc1cj6xhp"))))
+ (base32 "1yp32g2769mn91k6wx6fs7lhcfi1cdy54apkgfaf7ib6l0ji5hwv"))))
(build-system python-build-system)
(arguments
(list
@@ -198,6 +198,7 @@
odt2txt
openssh
openssl
+ p7zip
pgpdump
poppler
python-jsbeautifier
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index d10f8355d2..802030b783 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -1274,7 +1274,7 @@ nameservers other than libc.")
(define-public smartdns
(package
(name "smartdns")
- (version "43")
+ (version "45")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1286,7 +1286,7 @@ nameservers other than libc.")
((".*SYSTEMDSYSTEMUNITDIR.*") "")))
(sha256
(base32
- "0s789l6i4yirmarg80mknc1pp65rz01ky9f7gidgclkfcwzz41l3"))))
+ "1f0j6d8vz1x2f4nr2w3q7azkjh8hlkj81v61a8sw1kq5160qhlb9"))))
(build-system gnu-build-system)
(arguments
(list #:test-target "test"
@@ -1294,7 +1294,7 @@ nameservers other than libc.")
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "DESTDIR=" #$output)
"PREFIX=''"
- (string-append "VER=" #$version))
+ (string-append "VER=" #$(package-version this-package)))
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
@@ -1322,7 +1322,7 @@ nameservers other than libc.")
(lambda _
(chdir "../../source"))))))
(inputs (list openssl))
- (native-inputs (list googletest `(,isc-bind "utils")))
+ (native-inputs (list googletest `(,isc-bind "utils") which))
(home-page "https://github.com/pymumu/smartdns")
(synopsis "Local DNS server")
(description
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index 1d2c15921e..ab26d7f420 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -30,7 +30,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages documentation)
- #:use-module (guix licenses)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -104,7 +104,7 @@
(description "LaTeX2HTML is a utility that converts LaTeX documents to web
pages in HTML.")
(home-page "https://www.latex2html.org/")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public asciidoc
(package
@@ -175,7 +175,7 @@ EPUB, man page.
AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
the backend output markups (which can be almost any type of SGML/XML
markup) can be customized and extended by the user.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-deprecated asciidoc-py3 asciidoc)
@@ -241,7 +241,34 @@ documentation from annotated C++ sources, but it also supports other popular
programming languages such as C, Objective-C, C#, PHP, Java, Python,
IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
and to some extent D.")
- (license gpl3+)))
+ (license license:gpl3+)))
+
+(define-public halibut
+ (package
+ (name "halibut")
+ (version "1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.chiark.greenend.org.uk/~sgtatham/halibut/halibut-"
+ version "/halibut-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0ciikn878vivs4ayvwvr63nnhpcg12m8023xv514zxqpdxlzg85a"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ;No tests.
+ (native-inputs (list pkg-config perl))
+ (home-page "https://www.chiark.greenend.org.uk/~sgtatham/halibut/")
+ (synopsis "Documentation production system for software manuals")
+ (description
+ "Halibut is a text formatting system designed primarily for writing software
+documentation. It accepts a single source format and outputs any combination of
+plain text, HTML, Unix man or info pages, PostScript or PDF. It has extensive
+support for indexing and cross-referencing, and generates hyperlinks within output
+documents wherever possible. It supports Unicode, with the ability to fall back to
+an alternative representation if Unicode output is not available.")
+ (license license:expat)))
(define-public doc++
(package
@@ -266,7 +293,7 @@ and to some extent D.")
generate both TeX output for high-quality hardcopies or HTML output for online
browsing. The documentation is extracted directly from the C/C++/IDL source
or Java class files.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public pod2pdf
(package
@@ -292,7 +319,7 @@ or Java class files.")
Documentation} format to PDF files. It also supports some extensions to the POD
format, and supports the file types JPG, GIF, TIFF, PNG, and PNM for embedded
objects.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public python-docrepr
(package
@@ -344,7 +371,7 @@ objects.")
(description "Docrepr renders Python docstrings to HTML with Sphinx. It
can generate rich and plain representations of docstrings, alongside
additional metadata about the object to which the docstring belongs.")
- (license bsd-3)))
+ (license license:bsd-3)))
(define-public scrollkeeper
(package
@@ -377,7 +404,7 @@ documentation metadata as specified by the Open Source Metadata Framework and
provides a simple API to allow help browsers to find, sort, and search the
document catalog. It will also be able to communicate with catalog servers on
the Net to search for documents which are not on the local system.")
- (license lgpl2.1+)))
+ (license license:lgpl2.1+)))
(define-public zeal
(let ((commit "1cfa7c637f745be9d98777f06b4f8dec90892bf2")
@@ -426,4 +453,4 @@ the Net to search for documents which are not on the local system.")
(synopsis "Offline documentation browser inspired by Dash")
(description "Zeal is a simple offline documentation browser
inspired by Dash.")
- (license gpl3+))))
+ (license license:gpl3+))))
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 698f15678b..f67e83aa9f 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -566,7 +566,7 @@ a pen-tablet display and a beamer.")
(define-public fet
(package
(name "fet")
- (version "6.15.0")
+ (version "6.18.1")
(source
(origin
(method url-fetch)
@@ -575,7 +575,7 @@ a pen-tablet display and a beamer.")
(list (string-append directory base)
(string-append directory "old/" base))))
(sha256
- (base32 "0mmk9f0b23lmmk40mv25wf9vgb7wdgfn5zsa1qrkvkh7dh1hjpax"))))
+ (base32 "0yf94z4yybaw53jf0hzi1p53rwa91wl3g6pai7gsr4palssyfxw2"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index f5136363fa..766ec937d0 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -313,7 +313,7 @@
(define-public emacs-ac-php
(package
(name "emacs-ac-php")
- (version "2.5.0")
+ (version "2.6.0")
(source
(origin
(method git-fetch)
@@ -322,7 +322,7 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0fmp1595v06dgmx9skxphknaagf9ds9l7ygi7lzxas1s8d05dj10"))))
+ (base32 "1xz86cjsjm72b0rm50fr2z82rcllhczsd4jr5rnp2clbind5w697"))))
(build-system emacs-build-system)
(arguments
(list
@@ -372,14 +372,14 @@
(define-public emacs-activities
(package
(name "emacs-activities")
- (version "0.6")
+ (version "0.7")
(source
(origin
(method url-fetch)
(uri (string-append
"https://elpa.gnu.org/packages/activities-" version ".tar"))
(sha256
- (base32 "03dc2d9w40qp0qacv5vk49498qyb9y9n6ppd79jbglkpr0a60y21"))))
+ (base32 "17vwbblcwayf1lqfvc64s606cyv1pyh094i3d8fz0k5ivgfp6ybi"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-persist))
(home-page "https://github.com/alphapapa/activities.el")
@@ -448,7 +448,7 @@ input via a small child-frame spawned at the position of the cursor.")
(define-public emacs-arei
(package
(name "emacs-arei")
- (version "0.9.2")
+ (version "0.9.3")
(source
(origin
(method git-fetch)
@@ -458,7 +458,7 @@ input via a small child-frame spawned at the position of the cursor.")
(file-name (git-file-name name version))
(sha256
(base32
- "0qpri3ygb1fffi9mlipa7qmb6434aispbz1z3j14i7zrqassigm4"))))
+ "0nf101zdrz8yqscpvvmaw0dgb334h9v2ychyjlq95vksvx9r1zid"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-eros emacs-sesman emacs-queue))
(home-page "https://git.sr.ht/~abcdw/emacs-arei")
@@ -516,7 +516,7 @@ e.g. emacs-geiser-guile for Guile.")
(define-public emacs-gptel
(package
(name "emacs-gptel")
- (version "0.7.0")
+ (version "0.8.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -525,7 +525,7 @@ e.g. emacs-geiser-guile for Guile.")
(file-name (git-file-name name version))
(sha256
(base32
- "0wfqwp5rz77xzsxb56g4w9h047zb0y06ajcr724b5sjykbbznhzw"))))
+ "1n3kdylv50filla692j2vcjalw6yza80xlg90cw54m9jp9br8sch"))))
(build-system emacs-build-system)
(arguments
(list
@@ -1065,19 +1065,20 @@ uploading PlatformIO projects.")
(define-public emacs-hyperbole
(package
(name "emacs-hyperbole")
- (version "9.0.0")
+ (version "9.0.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"hyperbole-" version ".tar"))
(sha256
- (base32 "07kpyp3ggf4knakn18niy819l184apx4d9vbcwv57j8zyqgn4c3l"))))
+ (base32 "0a7py2dvszh0rf2smbmm8msjrc8vbbvlqnsqw0m2l12v8vllmxnb"))))
(build-system emacs-build-system)
(arguments
(list #:include #~(cons* "DEMO"
"DEMO-ROLO.otl"
"HY-ABOUT"
+ "HY-NEWS"
"man/hkey-help.txt"
"man/hyberbole.info"
"kotl/.*"
@@ -3471,14 +3472,14 @@ podcasts) in Emacs.")
(define emacs-emms-print-metadata
(package
(name "emacs-emms-print-metadata")
- (version "18")
+ (version "19")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"emms-" version ".tar"))
(sha256
- (base32 "1jslk37kx7yzvwy4hq1a6b71kp4a3bgfzzp8bpplv7z6vcmwrmgq"))))
+ (base32 "13c884s92ddn52psgkaz3zvb94g23gq41dbidpx7x4gzdhd9qqxm"))))
(build-system gnu-build-system)
(arguments
(list
@@ -4368,14 +4369,14 @@ as a library for other Emacs packages.")
(define-public emacs-auctex
(package
(name "emacs-auctex")
- (version "14.0.3")
+ (version "14.0.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"auctex-" version ".tar"))
(sha256
- (base32 "1xk29nk3r7ilxk2vag3diacamqvlws7mbjk5a0iivz5y6fy7hmjc"))))
+ (base32 "03w6qs4f0ksb8f54zsx189775w3wdyfaqg3dwn20a77y5cvisk52"))))
(build-system emacs-build-system)
;; We use 'emacs' because AUCTeX requires dbus at compile time
;; ('emacs-minimal' does not provide dbus).
@@ -4823,7 +4824,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.")
(define-public emacs-cape
(package
(name "emacs-cape")
- (version "1.3")
+ (version "1.4")
(source
(origin
(method git-fetch)
@@ -4832,7 +4833,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1zz5sah8zdkvmbh2kdn4v5vf3sb09krdrxhzyzcg63zjya2z8prz"))))
+ (base32 "1ml3w9xvcxbcbsi01rdsclsxra5h7jrm9lsrkbj1hin2wl5gr9np"))))
(build-system emacs-build-system)
(arguments
(list
@@ -5436,16 +5437,16 @@ Lisp developers who want to write macros with convenience.")
(define-public emacs-tablist
(package
(name "emacs-tablist")
- (version "1.0")
+ (version "1.1")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/politza/tablist")
+ (url "https://github.com/emacsorphanage/tablist")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
+ "11vmvrhmsxy97bfj7jndpc58bik7177i3wvc45mlyldxwyirs962"))))
(build-system emacs-build-system)
(home-page "https://github.com/politza/tablist")
(synopsis "Extension for @code{tabulated-list-mode}")
@@ -5874,8 +5875,8 @@ code written in the D programming language.")
(define-public emacs-extempore-mode
;; Use the latest commit at time of packaging. There are no releases or tags.
- (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
- (revision "1"))
+ (let ((commit "92e0fff482a0a4dc2971c39581c5ea9e84ae5e1c")
+ (revision "2"))
(package
(name "emacs-extempore-mode")
(version (git-version "0.0.0" revision commit))
@@ -5887,7 +5888,7 @@ code written in the D programming language.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
+ (base32 "1chxl2x9wjblhfknx7aa8pgqppc60917n437bxapx4hp3275x16q"))))
(build-system emacs-build-system)
(home-page "https://github.com/extemporelang/extempore-emacs-mode")
(synopsis "Emacs major mode for Extempore source files")
@@ -6496,7 +6497,7 @@ files and directories.")
(define-public emacs-fountain-mode
(package
(name "emacs-fountain-mode")
- (version "3.7.1")
+ (version "3.7.2")
(source
(origin
(method git-fetch)
@@ -6505,7 +6506,7 @@ files and directories.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1m6xvda2bx5pxzklc0nlzfc9a9fbnvysld2zha59qdjlr9zzi298"))))
+ (base32 "0xy45inihqwaix49vxr5yiqyps4r2djkzdd4g7kkc0fv7kzrm1m4"))))
(arguments
(list
#:phases #~(modify-phases %standard-phases
@@ -6603,7 +6604,7 @@ window.")
(define-public emacs-git-link
(package
(name "emacs-git-link")
- (version "0.8.6")
+ (version "0.9.1")
(source
(origin
(method git-fetch)
@@ -6612,7 +6613,7 @@ window.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1ifq9z4p0rbz2bpm6qz89xg5ycn5fflsyradzzxzsgyys0zc6szx"))))
+ (base32 "1dxmzk4qrz69h097lwshfg4qavdp92an5212ndhjkpmkgvk1v0xl"))))
(build-system emacs-build-system)
(arguments
(list
@@ -6674,7 +6675,7 @@ This mode supports Apache HTTP Server 2.4 and major modules.")
(define-public emacs-apheleia
(package
(name "emacs-apheleia")
- (version "4.0")
+ (version "4.1")
(source
(origin
(method git-fetch)
@@ -6683,7 +6684,7 @@ This mode supports Apache HTTP Server 2.4 and major modules.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0afv75w028v59qf777nrf57xj9yaz3jj2bixfmkgiqrn1wii9pm6"))))
+ (base32 "10adk4l5090dy0as6xqv5qpgdc0vf7jy8s1nrsn3zgf6n3s3ffqb"))))
(build-system emacs-build-system)
(home-page "https://github.com/raxod502/apheleia")
(synopsis "Reformat buffer stably")
@@ -7983,7 +7984,7 @@ mode-line.")
(define-public emacs-robe
(package
(name "emacs-robe")
- (version "0.8.3")
+ (version "0.8.4")
(source
(origin
(method git-fetch)
@@ -7992,7 +7993,7 @@ mode-line.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"))))
+ (base32 "0kvyfyr4b0z0l964a8z9shy8nlnxzxc2ljcc02gj2pn1rn1wz0gq"))))
(build-system emacs-build-system)
(arguments
'(#:include (cons "^lib\\/" %default-include)))
@@ -8957,7 +8958,14 @@ user.")
(arguments
(list
#:tests? #t
- #:test-command #~(list "make" "test-only")))
+ #:test-command #~(list "make" "test-only")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'compatibility-with-recent-buttercup
+ (lambda _
+ (substitute* (find-files "tests/" "\\.el$")
+ (("\\(buttercup-minor-mode\\) -\\*-")
+ "(buttercup-minor-mode); lexical-binding: t -*-")))))))
(native-inputs (list emacs-buttercup))
(build-system emacs-build-system)
(home-page "https://elpa.nongnu.org/nongnu/subed.html")
@@ -9315,14 +9323,14 @@ correct movement and editing than you would otherwise have.")
(define-public emacs-compat
(package
(name "emacs-compat")
- (version "29.1.4.4")
+ (version "29.1.4.5")
(source (origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"compat-" version ".tar"))
(sha256
(base32
- "0710g552b1nznnfx2774gmg6yizs27s0bakqm95nsjrp6kgznbfr"))))
+ "191cjzrw9xm5bvcf8s1yr9hdcn9i02789xfd8pz33lk65s0rq413"))))
(build-system emacs-build-system)
(home-page "https://git.sr.ht/~pkal/compat")
(synopsis "Emacs Lisp Compatibility Library")
@@ -10355,70 +10363,68 @@ in HTML mode.")
(define-public emacs-slime
;; Update together with sbcl-slime-swank.
- (let ((commit "735258a26bb97e85d25f39e4bef83c1f80c12f5d")
- (revision "1"))
- (package
- (name "emacs-slime")
- (version (git-version "2.28" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/slime/slime")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0prskgzfqjmn8sc7p9nklnd0n1plwcvh40slgh23km31raplmzk7"))))
- (build-system emacs-build-system)
- (arguments
- (list
- #:include #~(cons* "\\.lisp$" "\\.asd$"
- "contrib"
- "lib/hyperspec.el"
- %default-include)
- #:exclude #~(list "^slime-tests.el" "^contrib/test/"
- "^contrib/Makefile$" "^contrib/README.md$")
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'install 'configure
- (lambda* _
- (emacs-substitute-variables "slime.el"
- ("inferior-lisp-program" "sbcl"))))
- (add-before 'install 'install-doc
- (lambda _
- (let ((info-dir (string-append #$output "/share/info"))
- (doc-dir (string-append #$output "/share/doc/"
- #$name "-" #$version))
- (doc-files '("doc/slime-refcard.pdf"
- "README.md" "NEWS" "PROBLEMS"
- "CONTRIBUTING.md")))
- (with-directory-excursion "doc"
- (substitute* "Makefile"
- (("infodir=/usr/local/info")
- (string-append "infodir=" info-dir)))
- (invoke "make" "html/index.html")
- (invoke "make" "slime.info")
- (install-file "slime.info" info-dir)
- (copy-recursively "html" (string-append doc-dir "/html")))
- (for-each (lambda (f)
- (install-file f doc-dir)
- (delete-file f))
- doc-files)
- (delete-file-recursively "doc")))))))
- (propagated-inputs
- (list emacs-macrostep))
- (native-inputs
- (list texinfo))
- (home-page "https://github.com/slime/slime")
- (synopsis "Superior Lisp Interaction Mode for Emacs")
- (description
- "SLIME extends Emacs with support for interactive programming in
+ (package
+ (name "emacs-slime")
+ (version "2.29.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/slime/slime")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fcasqsdfwsphkfx1vd3r5mr89vgvzb9g2dbw82mc9lijg1mr1ki"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:include #~(cons* "\\.lisp$" "\\.asd$"
+ "contrib"
+ "lib/hyperspec.el"
+ %default-include)
+ #:exclude #~(list "^slime-tests.el" "^contrib/test/"
+ "^contrib/Makefile$" "^contrib/README.md$")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'configure
+ (lambda* _
+ (emacs-substitute-variables "slime.el"
+ ("inferior-lisp-program" "sbcl"))))
+ (add-before 'install 'install-doc
+ (lambda _
+ (let ((info-dir (string-append #$output "/share/info"))
+ (doc-dir (string-append #$output "/share/doc/"
+ #$name "-" #$version))
+ (doc-files '("doc/slime-refcard.pdf"
+ "README.md" "NEWS" "PROBLEMS"
+ "CONTRIBUTING.md")))
+ (with-directory-excursion "doc"
+ (substitute* "Makefile"
+ (("infodir=/usr/local/info")
+ (string-append "infodir=" info-dir)))
+ (invoke "make" "html/index.html")
+ (invoke "make" "slime.info")
+ (install-file "slime.info" info-dir)
+ (copy-recursively "html" (string-append doc-dir "/html")))
+ (for-each (lambda (f)
+ (install-file f doc-dir)
+ (delete-file f))
+ doc-files)
+ (delete-file-recursively "doc")))))))
+ (propagated-inputs
+ (list emacs-macrostep))
+ (native-inputs
+ (list texinfo))
+ (home-page "https://github.com/slime/slime")
+ (synopsis "Superior Lisp Interaction Mode for Emacs")
+ (description
+ "SLIME extends Emacs with support for interactive programming in
Common Lisp. The features are centered around @command{slime-mode},
an Emacs minor mode that complements the standard @command{lisp-mode}.
While lisp-mode supports editing Lisp source files, @command{slime-mode}
adds support for interacting with a running Common Lisp process
for compilation, debugging, documentation lookup, and so on.")
- (license (list license:gpl2+ license:public-domain)))))
+ (license (list license:gpl2+ license:public-domain))))
(define-public emacs-popup
(package
@@ -10897,7 +10903,7 @@ sgml/html integration, and indentation (working with sgml).")
(define-public emacs-jinx
(package
(name "emacs-jinx")
- (version "1.2")
+ (version "1.4")
(source
(origin
(method git-fetch)
@@ -10907,7 +10913,7 @@ sgml/html integration, and indentation (working with sgml).")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "04avl356y0m0i1mqmzzz0245fxflj7i8ssicnvf4wmpjc0qdr694"))))
+ (base32 "14zamk2s20f6dnv23v9snya0mi1bs2nq6xpp5bj06kiymzwhcqjw"))))
(build-system emacs-build-system)
(arguments
(list
@@ -11287,41 +11293,44 @@ Features degrade gracefully when viewed from terminal.")
(license license:gpl3+)))
(define-public emacs-org-pandoc-import
- (package
- (name "emacs-org-pandoc-import")
- (version "1.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/tecosaur/org-pandoc-import/")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "00z9bpm975mlyqlxbyib3j547br6kvcam04b70qkmq22vh8yf341"))))
- (build-system emacs-build-system)
- (arguments
- `(#:include
- (cons* "^filters\\/" "^preprocessors" %default-include)
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-exec-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((pandoc (assoc-ref inputs "pandoc")))
- (substitute* "org-pandoc-import.el"
- (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))))))))
- (inputs
- (list pandoc))
- (home-page "https://github.com/tecosaur/org-pandoc-import/")
- (synopsis "Read and edit non-Org file types in Org")
- (description
- "This package uses Pandoc to convert selected file types to Org. It can
+ (let ((commit "db308f1a05be26ce5b287633637ce554599b1377")
+ (revision "0"))
+ (package
+ (name "emacs-org-pandoc-import")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tecosaur/org-pandoc-import/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "19z1qaairhpj8kyyqwx8yf53j3f03a9a1z1jfa348qmncnra5jmh"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:include
+ (cons* "^filters\\/" "^preprocessors" %default-include)
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-exec-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((pandoc (assoc-ref inputs "pandoc")))
+ (substitute* "org-pandoc-import.el"
+ (("\"pandoc\"")
+ (string-append "\"" pandoc "/bin/pandoc\"")))))))))
+ (inputs
+ (list pandoc))
+ (home-page "https://github.com/tecosaur/org-pandoc-import/")
+ (synopsis "Read and edit non-Org file types in Org")
+ (description
+ "This package uses Pandoc to convert selected file types to Org. It can
convert supported non-Org files to an Org file with Pandoc.
It can also intercept requests for non-Org files it knows it can convert,
convert the file to a temporary Org file, and open this file instead. On
save, it exports back to the original non-Org file.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-org-pomodoro
;; Last release version was from 2016.
@@ -12015,7 +12024,7 @@ include installing, removing or visiting the homepage.")
(define-public emacs-prescient
(package
(name "emacs-prescient")
- (version "6.2")
+ (version "6.3")
(source
(origin
(method git-fetch)
@@ -12024,7 +12033,7 @@ include installing, removing or visiting the homepage.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1vj21kcqlsa02nvslmxgxsbv4pc93gakj4x2a6rbk87zl6ccw7pk"))))
+ (base32 "0pfc0ycp4cr9zwkjv3rqfkwkx8p52ad7aq2c60j0qwp3yd0cghc4"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-company emacs-corfu emacs-ivy emacs-selectrum emacs-vertico))
@@ -12098,7 +12107,7 @@ style, or as multiple word prefixes.")
(define-public emacs-consult
(package
(name "emacs-consult")
- (version "1.2")
+ (version "1.4")
(source
(origin
(method git-fetch)
@@ -12106,7 +12115,7 @@ style, or as multiple word prefixes.")
(url "https://github.com/minad/consult")
(commit version)))
(sha256
- (base32 "1466f6j9bxw9mh0ad9yv2qfkhzlz1ysgch53nlkvbry4llhdhj43"))
+ (base32 "0kp1xrivs111d8ksjyf3m1ldzb8qknwrh2k2lzbrq6yiwc4bigy7"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(arguments
@@ -13088,27 +13097,29 @@ The following completions are currently available:
(license license:gpl3+)))
(define-public emacs-sway
- (package
- (name "emacs-sway")
- (version "0.7")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/thblt/sway.el")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1w29dkl7s835zgwnc4jx1cp84s6mmwbvlil8z2c31psy0rlajc6i"))))
- (build-system emacs-build-system)
- (home-page "https://github.com/thblt/sway.el")
- (synopsis "Communication with the Sway window manager")
- (description
- "This is a basic library to control the Sway window manager from Emacs.
+ (let ((commit "84eae5e16a643eb00b0a422ded751cceb17cc8f0")
+ (revision "0"))
+ (package
+ (name "emacs-sway")
+ (version (git-version "0.7" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/thblt/sway.el")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "194plzc6rg7a5j3f68say0znix34yp8421cdlkwnw345czh52mjn"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/thblt/sway.el")
+ (synopsis "Communication with the Sway window manager")
+ (description
+ "This is a basic library to control the Sway window manager from Emacs.
Its main use case is in combination with popup managers like Shackle, to
use frames instead of windows while still giving focus to existing frames
instead of duplicating them.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-sweet-theme
(let ((commit "78f741806ecebe01224bf54d09ad80e306652508")
@@ -13582,31 +13593,33 @@ allowing unprefixed keys to insert their respective characters as expected.")
(license license:gpl3+))))
(define-public emacs-clojure-mode
- (package
- (name "emacs-clojure-mode")
- (version "5.18.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/clojure-emacs/clojure-mode")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1d5kkq2i8d04k2qfrb31zyjpij92ckbccnzvz01mls3xrvpr57m5"))))
- (build-system emacs-build-system)
- (native-inputs
- (list emacs-buttercup emacs-dash emacs-paredit emacs-s))
- (arguments
- `(#:tests? #t
- #:test-command '("buttercup")))
- (home-page "https://github.com/clojure-emacs/clojure-mode")
- (synopsis "Major mode for Clojure code")
- (description
- "This Emacs package provides font-lock, indentation, navigation and basic
+ (let ((commit "af0e518a6b86f2c6f32dfb30b99c067071ed5cd4")
+ (revision "1"))
+ (package
+ (name "emacs-clojure-mode")
+ (version (git-version "5.18.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/clojure-emacs/clojure-mode")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1wx3zgrwxywqk7f47idp2d09vjf557xf4l6p5a9xwqmpylnwaznh"))))
+ (build-system emacs-build-system)
+ (native-inputs
+ (list emacs-buttercup emacs-dash emacs-paredit emacs-s))
+ (arguments
+ `(#:tests? #t
+ #:test-command '("buttercup")))
+ (home-page "https://github.com/clojure-emacs/clojure-mode")
+ (synopsis "Major mode for Clojure code")
+ (description
+ "This Emacs package provides font-lock, indentation, navigation and basic
refactoring for the @uref{http://clojure.org, Clojure programming language}.
It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-clj-deps-new
(let ((commit "e1cf65eb040f5a2e9a3eca970044ba71cc53fb27")
@@ -13636,7 +13649,7 @@ Clojure projects from templates.")
(define-public emacs-clj-refactor
(package
(name "emacs-clj-refactor")
- (version "3.11.3")
+ (version "3.12.0")
(source
(origin
(method git-fetch)
@@ -13645,7 +13658,7 @@ Clojure projects from templates.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "17c9lrykbfp0ab7lmi4jh34q6ir7i46acn313xw5342d2q5ql6sk"))))
+ (base32 "0mha1wqn5hd9g8y0fp35qkhlnxlrwli62x7mbifman279h16gaml"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-cider
@@ -15192,7 +15205,7 @@ generated by Org mode (or Markdown mode) is left untouched.")
(define-public emacs-visual-fill-column
(package
(name "emacs-visual-fill-column")
- (version "2.5.2")
+ (version "2.6.2")
(source
(origin
(method git-fetch)
@@ -15201,7 +15214,7 @@ generated by Org mode (or Markdown mode) is left untouched.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0mw61gc70bi64kypnag9xl3y9sd2y7mb8d2q97aq74jx7hq6cm8j"))))
+ (base32 "1imliz6fb5bxwcflkiqgk82xa34qkxaxzmy3rmj1cy2va148afx9"))))
(build-system emacs-build-system)
(home-page "https://codeberg.org/joostkremers/visual-fill-column")
(synopsis "Fill-column for visual-line-mode")
@@ -16173,35 +16186,45 @@ using package inferred style.")
(license license:gpl3+))))
(define-public emacs-lua-mode
- (package
- (name "emacs-lua-mode")
- (version "20210802")
- (home-page "https://github.com/immerrr/lua-mode/")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0r3svhggdml2n256k3b0zmbjnw51p46gan6dg07bhavpfrqs5196"))))
- (build-system emacs-build-system)
- (arguments
- `(#:tests? #t
- #:test-command '("buttercup" "-l" "lua-mode.el")))
- (native-inputs
- (list emacs-buttercup lua))
- (synopsis "Major mode for lua")
- (description
- "This Emacs package provides a mode for @uref{https://www.lua.org/,
+ (let ((commit "d074e4134b1beae9ed4c9b512af741ca0d852ba3")
+ (revision "1"))
+ (package
+ (name "emacs-lua-mode")
+ (version (git-version "20221027" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/immerrr/lua-mode/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00gvrmw8pll0cl7srygh2kmbf0g44sk9asj5sm77qvhr8jz4xkkq"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:tests? #t
+ #:test-command #~(list "buttercup" "-l" "lua-mode.el")
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: These tests are not compatible with Buttercup, and cause
+ ;; build to fail. Remove them until they are fixed by upstream.
+ (add-after 'unpack 'remove-faulty-tests
+ (lambda _
+ (delete-file "test/test-indentation.el"))))))
+ (native-inputs
+ (list emacs-buttercup lua))
+ (home-page "https://github.com/immerrr/lua-mode/")
+ (synopsis "Major mode for Lua")
+ (description
+ "This Emacs package provides a mode for @uref{https://www.lua.org/,
Lua programming language}.")
- (license license:gpl2+)))
+ (license license:gpl2+))))
(define-public emacs-ebuild-mode
(package
(name "emacs-ebuild-mode")
- (version "1.69")
+ (version "1.70")
(source
(origin
(method url-fetch)
@@ -16210,7 +16233,7 @@ Lua programming language}.")
"ebuild-mode-" version ".tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
- (base32 "1sqyjz4qy07q6wkh89gg4f4s1fk96mv2f99y4rm0sp7gf6bkdj38"))))
+ (base32 "14cy52hyh5gam1m5a4ys1zmlwabi7gv4nc8l6ki61lh5g1gqmbly"))))
(build-system emacs-build-system)
(arguments
(list
@@ -16298,7 +16321,7 @@ extensions.")
(define-public emacs-evil-collection
(package
(name "emacs-evil-collection")
- (version "0.0.9")
+ (version "0.0.10")
(source
(origin
(method git-fetch)
@@ -16307,7 +16330,7 @@ extensions.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1y1ig4shqaaiiwqm5pv8hvh8ynr6irhffkgmpyzmhdaaicxnfazc"))))
+ (base32 "09hnxb8nh3g0hi93fz9f1y164gv9iyh5994wfn6fsq2v1xdz8phm"))))
(build-system emacs-build-system)
(arguments
(list
@@ -16889,7 +16912,7 @@ passive voice.")
(define-public emacs-org
(package
(name "emacs-org")
- (version "9.6.19")
+ (version "9.6.21")
(source
(origin
(method git-fetch)
@@ -16898,7 +16921,7 @@ passive voice.")
(commit (string-append "release_" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0yxicr9z6drsaybp8jl0jmslcqbz0np4gzzkr70j8pq3x9y69i7z"))))
+ (base32 "1hf76wa7qvp9lvkr3rgzk7q3slq7mf17w6w6axaj6cn73ryn2ldw"))))
(build-system emacs-build-system)
(arguments
(list
@@ -19274,25 +19297,24 @@ methods from a given list.")
(license license:gpl3+)))
(define-public emacs-mini-echo
- (let ((commit "f25a2f543b3e9fa5043ef37c81c17fc15aceb534")
- (revision "1"))
- (package
- (name "emacs-mini-echo")
- (version (git-version "0.7.2" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/liuyinz/mini-echo.el.git")
- (commit commit)))
- (sha256
- (base32 "1nbwwf087v1mp5vbmasxqnmbrsgzgm87yd5ajq1hnfxd412w3vhx"))))
- (build-system emacs-build-system)
- (home-page "https://github.com/liuyinz/mini-echo.el")
- (synopsis "Echo buffer status in minibuffer window")
- (description "This package lets you show buffer status in the echo area,
+ (package
+ (name "emacs-mini-echo")
+ (version "0.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/liuyinz/mini-echo.el")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "0q4hvbypnjg5q1szwki2md45r5kkdxrr4zxqh57y7d53idjzhpnf"))))
+ (build-system emacs-build-system)
+ (propagated-inputs (list emacs-hide-mode-line))
+ (home-page "https://github.com/liuyinz/mini-echo.el")
+ (synopsis "Echo buffer status in minibuffer window")
+ (description "This package lets you show buffer status in the echo area,
so you can get rid of the mode-line.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public emacs-mini-frame
(let ((commit "60838f3cab438dcbda8eaa15ab3e5d1af88910e9")
@@ -19779,15 +19801,17 @@ a point. The plugin provides visual feedback for marked regions.")
(define-public emacs-key-chord
(package
(name "emacs-key-chord")
- (version "0.6")
+ (version "0.7")
(source
(origin
- (method url-fetch)
- (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
- (file-name (string-append "key-chord-" version ".el"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emacsorphanage/key-chord")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
+ "0r3zvq1z79csgcq0mgifdakx0z0li3haxk4wxvijwxllfb9kn22g"))))
(build-system emacs-build-system)
(home-page "https://www.emacswiki.org/emacs/key-chord.el")
(synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
@@ -20251,7 +20275,7 @@ a @url{http://json.org/, JSON} file.")
(define-public emacs-json-mode
(package
(name "emacs-json-mode")
- (version "1.9.0")
+ (version "1.9.1")
(source
(origin
(method git-fetch)
@@ -20260,7 +20284,7 @@ a @url{http://json.org/, JSON} file.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0irz9gpw43wkhiq8828wm9nsc3baqg299dgly9iv7jiygk2lp14s"))))
+ (base32 "1yy440aaf17y6nrlcq0phz0x5j3wcymcrdm8pm0rmwdxfmar0csx"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-json-snatcher))
@@ -21583,57 +21607,45 @@ part, which includes creating tokens.")
(license license:asl2.0)))
(define-public emacs-circe
- (package
- (name "emacs-circe")
- (version "2.12")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/jorgenschaefer/circe")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0lrxd4hanaxj85nafsc0wss677slmyaks3qb7a95mj7vic3ib937"))))
- (build-system emacs-build-system)
- (arguments
- `(#:tests? #t
- #:test-command '("buttercup" "-L" ".")
- #:emacs ,emacs ;requires gnutls
- #:phases
- (modify-phases %standard-phases
- ;; The HOME environment variable should be set to an existing
- ;; directory for the tests to succeed.
- (add-before 'check 'set-home
- (lambda _
- (setenv "HOME" "/tmp")))
- (add-before 'check 'remove-failing-tests
- (lambda _
- (make-file-writable "tests/test-circe.el")
- (emacs-batch-edit-file "tests/test-circe.el"
- `(progn
- (dolist (test
- '("should have circe-server-buffer set in the mode hook"
- "should complete nicks with colon at the beginning of the input"
- "should complete nicks without colon later in the input"))
- (goto-char (point-min))
- (search-forward (format "(it %S" test))
- (beginning-of-line)
- (kill-sexp))
- (basic-save-buffer))))))))
- (native-inputs
- (list emacs-buttercup))
- ;; In order to securely connect to an IRC server using TLS, Circe requires
- ;; the GnuTLS binary.
- (propagated-inputs
- (list gnutls))
- (home-page "https://github.com/jorgenschaefer/circe")
- (synopsis "Client for IRC in Emacs")
- (description "Circe is a Client for IRC in Emacs. It integrates well with
+ (let ((commit "cc630eb9acb835012ad207dce545d2c380588da7")
+ (revision "1"))
+ (package
+ (name "emacs-circe")
+ (version (git-version "2.13" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jorgenschaefer/circe")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1m2vnp38yv9fnxchcbf6mrzb7yp7z214vr28pr7sslrmm99dqg89"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:tests? #t
+ #:test-command '("buttercup" "-L" ".")
+ #:emacs ,emacs ;requires gnutls
+ #:phases
+ (modify-phases %standard-phases
+ ;; The HOME environment variable should be set to an existing
+ ;; directory for the tests to succeed.
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" "/tmp"))))))
+ (native-inputs
+ (list emacs-buttercup))
+ ;; In order to securely connect to an IRC server using TLS, Circe requires
+ ;; the GnuTLS binary.
+ (propagated-inputs
+ (list gnutls))
+ (home-page "https://github.com/jorgenschaefer/circe")
+ (synopsis "Client for IRC in Emacs")
+ (description "Circe is a Client for IRC in Emacs. It integrates well with
the rest of the editor, using standard Emacs key bindings and indicating
activity in channels in the status bar so it stays out of your way unless you
want to use it.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-tracking
(package
@@ -22867,7 +22879,7 @@ match and total match information in the mode-line in various search modes.")
(define-public emacs-pg
(package
(name "emacs-pg")
- (version "0.28")
+ (version "0.30")
(source (origin
(method git-fetch)
(uri (git-reference (url "https://github.com/emarsden/pg-el")
@@ -22875,7 +22887,7 @@ match and total match information in the mode-line in various search modes.")
(file-name (git-file-name name version))
(sha256
(base32
- "00sdvlb9ybyzncjijibw81mf3lhw5p40v7086cg18xvpa2qvzdfz"))))
+ "1g04izsnvxinbwvzx0sj643ix5jlwdd7dkl61nvaqkkkm3g35jp6"))))
(build-system emacs-build-system)
(home-page "https://github.com/emarsden/pg-el")
(synopsis "Emacs Lisp interface for PostgreSQL")
@@ -23496,7 +23508,7 @@ according to a parsing expression grammar.")
(define-public emacs-eldev
(package
(name "emacs-eldev")
- (version "1.8.2")
+ (version "1.9.1")
(source
(origin
(method git-fetch)
@@ -23505,7 +23517,7 @@ according to a parsing expression grammar.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "108px7lnf39ngvb8rcqb9qh2amcbs1h22dbwd1q7js2np2nd132y"))))
+ (base32 "1v0jwzwq0xpih8m4aymz90fdfvypkiqczh0ip5jg4kcvzikliw3f"))))
(build-system emacs-build-system)
(arguments
(list
@@ -23711,7 +23723,7 @@ files to be expanded upon opening them.")
(define-public emacs-ebib
(package
(name "emacs-ebib")
- (version "2.40.4")
+ (version "2.40.5")
(source
(origin
(method git-fetch)
@@ -23720,7 +23732,7 @@ files to be expanded upon opening them.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0b60k4yqmnim9hx25dhyvn6g646mq10pym8k6h176jr06br8kc2y"))))
+ (base32 "1ga8zzzqs6vrjzm6jily37jyzpq4vsgh49vxy8a68399bdl90s77"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-biblio emacs-compat emacs-ivy emacs-parsebib))
@@ -24406,7 +24418,7 @@ mode.")
(define-public emacs-crux
(package
(name "emacs-crux")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method git-fetch)
@@ -24416,7 +24428,7 @@ mode.")
(file-name (git-file-name name version))
(sha256
(base32
- "1h28chpyq61k72qh749r5kqq1y70wx3xw9c3zyfzmy750wlw6nyj"))))
+ "00n4k09x3slchs81xw1q0rcb78ncb5k2lvsigb9j7s3kxbj6bvvy"))))
(build-system emacs-build-system)
(home-page "https://github.com/bbatsov/crux")
(synopsis "Collection of useful functions for Emacs")
@@ -26782,31 +26794,30 @@ be changed by customizing the appropriate variables.")
(license license:gpl3+))))
(define-public emacs-org-caldav
- (let ((commit "754989ae500b3f576bdb94fe2ef3059f12eaf7d7")) ;version bump
- (package
- (name "emacs-org-caldav")
- (version "3.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/dengste/org-caldav")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0vx465di6imfxmxxkhd8lsdgywyz3gnindg0fyvb2zshg3zz80bg"))))
- (build-system emacs-build-system)
- (arguments
- ;; Tests require to have two specific calendars on a test server.
- `(#:exclude '("^org-caldav-testsuite\\.el")))
- (propagated-inputs
- (list emacs-org))
- (home-page "https://github.com/dengste/org-caldav")
- (synopsis "Sync Org files with external calendars via the CalDAV protocol")
- (description
- "Org CalDAV synchronizes events between Org files and a CalDAV
+ (package
+ (name "emacs-org-caldav")
+ (version "3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dengste/org-caldav")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0im6swyhdy8g56lh2nnbz7hb4hjqspi7aag7qc4616m5fs7ijlig"))))
+ (build-system emacs-build-system)
+ (arguments
+ ;; Tests require to have two specific calendars on a test server.
+ `(#:exclude '("^org-caldav-testsuite\\.el")))
+ (propagated-inputs
+ (list emacs-org))
+ (home-page "https://github.com/dengste/org-caldav")
+ (synopsis "Sync Org files with external calendars via the CalDAV protocol")
+ (description
+ "Org CalDAV synchronizes events between Org files and a CalDAV
calendar.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public emacs-zotxt
(package
@@ -27769,8 +27780,17 @@ turn.")
(native-inputs
(list emacs-buttercup emacs-undercover))
(arguments
- `(#:tests? #t
- #:test-command '("buttercup" "-L" "test/github-review-test.el")))
+ (list
+ #:tests? #t
+ #:test-command #~(list "buttercup" "-L" "test/github-review-test.el")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'compatibility-with-recent-buttercup
+ (lambda _
+ (emacs-batch-edit-file "test/github-review-test.el"
+ '(progn
+ (insert ";;; -*-lexical-binding:t-*-")
+ (basic-save-buffer))))))))
(home-page "https://github.com/charignon/github-review")
(synopsis "Review GitHub pull requests within Emacs")
(description "This package provides commands to pull in, comment on, and
@@ -28699,49 +28719,51 @@ and comments.")
(license license:gpl3+))))
(define-public emacs-yeetube
- (package
- (name "emacs-yeetube")
- (version "2.1.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.thanosapollo.org/yeetube")
- (commit version)))
- (sha256
- (base32
- "0c2iq6rb179zh9qbw7prxsjbiz77j060pj75s82wbbz5xjavzgp5"))
- (file-name (git-file-name name version))))
- (build-system emacs-build-system)
- (arguments
- (list
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'locate-binaries
- (lambda* (#:key inputs #:allow-other-keys)
- (emacs-substitute-variables "yeetube.el"
- ("yeetube-ytdlp"
- (search-input-file inputs "/bin/yt-dlp")))
- (emacs-substitute-variables "yeetube-mpv.el"
- ("yeetube-mpv-path"
- (search-input-file inputs "/bin/mpv"))
- ("yeetube-mpv-torsocks"
- (search-input-file inputs "/bin/torsocks")))))
- (add-after 'unpack 'relax-check
- (lambda _
- (substitute* "yeetube-mpv.el"
- (("\\(yeetube-mpv-check\\)") "")))))))
- (inputs (list mpv torsocks yt-dlp))
- (propagated-inputs (list emacs-compat))
- (home-page "https://thanosapollo.com/blog/yeetube/")
- (synopsis "Youtube and Invidious front-end for Emacs")
- (description
- "This package offers an Emacs interface that allows you to search YouTube
+ (let ((commit "c74e4e77156297624d278a05bdd19c016a91ff9b")) ;version bump
+ (package
+ (name "emacs-yeetube")
+ (version "2.1.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.thanosapollo.org/yeetube")
+ (commit commit)))
+ (sha256
+ (base32
+ "1gpfm41d4wzk1i0hnmfn81xv05ida9ljibar7ji4d7nisjbd4vp9"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'locate-binaries
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "." "\\.el$")
+ (("\\(executable-find \"mpv\"\\)")
+ (format #f "~s"
+ (search-input-file inputs "/bin/mpv")))
+ (("\\(executable-find \"torsocks\"\\)")
+ (format #f "~s"
+ (search-input-file inputs "/bin/torsocks")))
+ (("\\(executable-find \"wget\"\\)")
+ (format #f "~s"
+ (search-input-file inputs "/bin/wget")))
+ (("\\(executable-find \"yt-dlp\"\\)")
+ (format #f "~s"
+ (search-input-file inputs "/bin/yt-dlp")))))))))
+ (inputs (list mpv torsocks wget yt-dlp))
+ (propagated-inputs (list emacs-compat))
+ (home-page "https://thanosapollo.com/blog/yeetube/")
+ (synopsis "Youtube and Invidious front-end for Emacs")
+ (description
+ "This package offers an Emacs interface that allows you to search YouTube
or an Invidious instance for a specific query. The search results are shown
as links in an Org mode buffer. The videos can be opened to a user-defined
video player (by default @command{mpv}) or downloaded using @command{yt-dlp}.
This package also includes a @code{yt-dlp} front-end.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-org-web-tools
(package
@@ -29351,7 +29373,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
(define-public emacs-buttercup
(package
(name "emacs-buttercup")
- (version "1.33")
+ (version "1.34")
(source
(origin
(method git-fetch)
@@ -29361,7 +29383,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
(file-name (git-file-name name version))
(sha256
(base32
- "10q6zr837yaal1g3l7vmj08b3c301j99b290pylshb0si360a27h"))))
+ "07bsbzqxsb6sbayriymy54bqcy7is7c61fpnm83mg9527w0w4g19"))))
(build-system emacs-build-system)
(arguments
(list
@@ -31529,28 +31551,25 @@ functions for Fish shell scripts.")
(license license:gpl3+)))
(define-public emacs-eshell-up
- (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
- (version "0.0.3")
- (revision "12"))
- (package
- (name "emacs-eshell-up")
- (version (git-version version revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/peterwvj/eshell-up")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
- (build-system emacs-build-system)
- (home-page "https://github.com/peterwvj/eshell-up")
- (synopsis "Quickly go to a parent directory in @code{Eshell}")
- (description "This package provides quick navigation to a specific
-parent directory using @code{Eshell}.")
- (license license:gpl3+))))
+ (package
+ (name "emacs-eshell-up")
+ (version "0.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/peterwvj/eshell-up")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0kdqbnapgdk6p4sid9yjlk16sps2qq3xyh7j0jljn0c25qhqbw21"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/peterwvj/eshell-up")
+ (synopsis "Quickly go to a parent directory in Eshell")
+ (description "This package provides quick navigation to a specific parent
+directory using Eshell.")
+ (license license:gpl3+)))
(define-public emacs-springboard
;; Upstream provides no tag. Using the latest commit. Version is extracted
@@ -32739,14 +32758,14 @@ well as an option for visually flashing evaluated s-expressions.")
(define-public emacs-tramp
(package
(name "emacs-tramp")
- (version "2.6.2.1")
+ (version "2.6.2.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"tramp-" version ".tar"))
(sha256
- (base32 "145riknpdvw7rvpz20m766yci3w012f241mw38pbbb9cb8pn2rbf"))))
+ (base32 "0bbsff2qr71f70nxhdi19b3jzpv6bgfb7x7qkrccsygvsvgyrb2h"))))
(build-system emacs-build-system)
(arguments
(list
@@ -33676,7 +33695,7 @@ simple but powerful Org contents.")
(define-public emacs-ox-tufte
(package
(name "emacs-ox-tufte")
- (version "4.0.4")
+ (version "4.1.1")
(source
(origin
(method git-fetch)
@@ -33685,28 +33704,13 @@ simple but powerful Org contents.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "15jfwrdawj8flgyfqhsfhdlnam6n5gzw5minnixwxyp69q5vxnpw"))))
+ (base32 "0nmi6p19sg2vl64znm356bchphbybq03jyjsnqhddb39c4pilxah"))))
(build-system emacs-build-system)
(arguments
(list
#:include #~(cons "^src/" %default-include)
#:tests? #t
- ;; <https://github.com/emacs-eldev/eldev/issues/99#issuecomment-1912637609>
- #:test-command #~(list "eldev" "-X" "-dtTC" "test")
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'configure-eldev
- (lambda _
- (setenv "HOME"
- (string-append (getcwd) "/.eldev"))
- (with-output-to-file "Eldev-local"
- (lambda _
- (format #t "~s"
- '(dolist (d (split-string (getenv
- "EMACSLOADPATH")
- ":" t))
- (ignore-errors
- (eldev-use-local-dependency d)))))))))))
+ #:test-command #~(list "eldev" "--use-emacsloadpath" "-dtTC" "test")))
(native-inputs (list emacs-buttercup emacs-eldev))
(propagated-inputs (list emacs-org))
(home-page "https://github.com/ox-tufte/ox-tufte")
@@ -33791,7 +33795,7 @@ time.")
(define-public emacs-mastodon
(package
(name "emacs-mastodon")
- (version "1.0.14")
+ (version "1.0.18")
(source
(origin
(method git-fetch)
@@ -33800,7 +33804,7 @@ time.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "151190hcafm0r8pi053lm7akjli3m55q676sa3i3fy9c0pc4bhz8"))))
+ (base32 "1l4arid01m5475wq4sy8j598ww13847sbpg9grl71r72rs83071w"))))
(build-system emacs-build-system)
(arguments
(list
@@ -34267,16 +34271,16 @@ Emacs that integrate with major modes like Org-mode.")
(define-public emacs-modus-themes
(package
(name "emacs-modus-themes")
- (version "4.3.0")
+ (version "4.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://git.sr.ht/~protesilaos/modus-themes")
+ (url "https://github.com/protesilaos/modus-themes")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "12i32y7y6hcv7mqc6g7pcmxr2f54xf3vl2yavdv76643vlhay32v"))))
+ (base32 "1vy6wyq8hv8fih4m8m1k9n7fdp913nmv0k5g8vppnjivmnrwfswy"))))
(native-inputs (list texinfo))
(build-system emacs-build-system)
(arguments
@@ -34309,6 +34313,29 @@ users with red-green color deficiency.")
(license (list license:gpl3+
license:fdl1.3+)))) ; GFDLv1.3+ for the manual
+(define-public emacs-plan9-theme
+ (let ((commit "c2da2fcb241e9800d931a1ff19ecd9fd84d30382")
+ (revision "0"))
+ (package
+ (name "emacs-plan9-theme")
+ (home-page "https://github.com/john2x/plan9-theme.el")
+ (version (git-version "0.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0rjxbk9fljnjmg00vdqcyynzg591cgknyy2d92xsxsyg4d28dvwi"))))
+ (build-system emacs-build-system)
+ (synopsis "Light color theme for Emacs based on Plan 9")
+ (description
+ "@code{plan9} is an Emacs theme with light colors and a classic
+look which is inspired by the colors of Plan 9 from Bell Labs.")
+ (license license:gpl3+))))
+
(define-public emacs-punpun-theme
(let ((commit "7026684cd568cb691af3ced5de14c375fe6f5a1a")
(revision "0"))
@@ -37908,44 +37935,46 @@ released, and track their progress in watching a series.")
(license license:gpl3+)))
(define-public emacs-webpaste
- (package
- (name "emacs-webpaste")
- (version "3.2.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/etu/webpaste.el")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "07hj9nr7x6c9w2dnvc58cfbprgp9cqzdxflp5qlpglzdw0bi9s3c"))))
- (build-system emacs-build-system)
- (arguments
- `(#:tests? #t
- #:test-command '("make" "unit" "integration")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-tests
- (lambda _
- ;; Do not use cask to run tests.
- (substitute* "Makefile"
- (("\\$\\{CASK\\} exec ") ""))
- ;; Disable tests that need network access.
- (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
- "tests/integration/test-webpaste-providers.el")
- (("describe") "xdescribe")))))))
- (native-inputs
- (list emacs-buttercup))
- (propagated-inputs
- (list emacs-request))
- (home-page "https://github.com/etu/webpaste.el")
- (synopsis "Paste to pastebin-like services")
- (description "This mode pastes whole buffers or parts of buffers
+ (let ((commit "8ac7b2d409f158bcaa853aa1c5763e8acf2857bb")
+ (revision "1"))
+ (package
+ (name "emacs-webpaste")
+ (version (git-version "3.2.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/etu/webpaste.el")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1wl2q4q7c2a1m60q4dnajsyzkc9yprkyzx4hxzmxkwry22k906x3"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:tests? #t
+ #:test-command '("make" "unit" "integration")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ ;; Do not use cask to run tests.
+ (substitute* "Makefile"
+ (("\\$\\{CASK\\} exec ") ""))
+ ;; Disable tests that need network access.
+ (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
+ "tests/integration/test-webpaste-providers.el")
+ (("describe") "xdescribe")))))))
+ (native-inputs
+ (list emacs-buttercup))
+ (propagated-inputs
+ (list emacs-request))
+ (home-page "https://github.com/etu/webpaste.el")
+ (synopsis "Paste to pastebin-like services")
+ (description "This mode pastes whole buffers or parts of buffers
to pastebin-like services. It supports more than one service and will
failover if one service fails. More services can easily be added over time
and preferred services can easily be configured.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-keystore-mode
(let ((release "0.0.1")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index ed9f3578b4..c4d57929cc 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2015, 2018, 2023 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -410,7 +410,7 @@ older games.")
;; This is not a patch staging area for DOSBox, but an unaffiliated fork.
(package
(name "dosbox-staging")
- (version "0.80.1")
+ (version "0.81.0")
(source
(origin
(method git-fetch)
@@ -419,7 +419,7 @@ older games.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1iqqrw95lpgjbmi777jdl5z1nizxgfy8xwpmy1fasjlb2yh2kp93"))))
+ (base32 "1fkshxaq12pd72v8m2f3a6d6jk9gh39hn0846gfkfinvw7yykzrl"))))
(build-system meson-build-system)
(arguments
(list #:configure-flags
@@ -737,7 +737,7 @@ The following systems are supported:
(define-public mgba
(package
(name "mgba")
- (version "0.10.2")
+ (version "0.10.3")
(source
(origin
(method git-fetch)
@@ -747,7 +747,7 @@ The following systems are supported:
(file-name (git-file-name name version))
(sha256
(base32
- "1wwpjcblp2c1svab4z1if5xb7707wsy6zw590lwdz9za35i0h37q"))
+ "1h4wsx76kylsn4f4418swbp6zjp1x94dfn751iks1i6i529pfay1"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
@@ -761,7 +761,8 @@ The following systems are supported:
(arguments
`(#:tests? #f ;no "test" target
#:configure-flags
- (list "-DUSE_LZMA=OFF" ;do not use bundled LZMA
+ (list "-DBUILD_LTO=OFF" ;FIXME: <https://github.com/mgba-emu/mgba/issues/3115>
+ "-DUSE_LZMA=OFF" ;do not use bundled LZMA
"-DUSE_LIBZIP=OFF"))) ;use "zlib" instead
(native-inputs (list pkg-config qttools-5))
(inputs
@@ -1575,14 +1576,14 @@ that compiles to WebAssembly.")
(define-public scummvm
(package
(name "scummvm")
- (version "2.7.0")
+ (version "2.8.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://downloads.scummvm.org/frs/scummvm/" version
"/scummvm-" version ".tar.xz"))
(sha256
- (base32 "14wrrzai25mh8qra3lsfibx8z6f96cqbnmsfh9kyhkvpc7yiyjs4"))))
+ (base32 "1dr70z1dkfw2gp43jq0qp7g73glr36a7qdcv1jvp1m927nhz95vy"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index f1259a6e7e..91c57e0a87 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -31,12 +31,14 @@
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2022 Collin J. Doering <collin@rekahsoft.ca>
+;;; Copyright © 2023 dan <i@dan.games>
;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
;;; Copyright © 2023 Skylar Hill <stellarskylark@posteo.net>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2024 Saku Laesvuori <saku@laesvuori.fi>
+;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -609,7 +611,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(define-public electron-cash
(package
(name "electron-cash")
- (version "4.3.1")
+ (version "4.4.0")
(source
(origin
(method git-fetch)
@@ -618,7 +620,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0slx7hmlw2gpcqg951vwvnyl7j52pfzqyaldphghhfxbfzjs7v64"))))
+ (base32 "1hfkp24m1yipadanjf5wm6clmyllkcbh7fbw8whnrvxa2v7sa4l8"))))
(build-system python-build-system)
(arguments
(list
@@ -686,7 +688,7 @@ blockchain.")
;; the system's dynamically linked library.
(package
(name "monero")
- (version "0.18.3.1")
+ (version "0.18.3.2")
(source
(origin
(method git-fetch)
@@ -704,7 +706,7 @@ blockchain.")
delete-file-recursively
'("external/miniupnp" "external/rapidjson"))))
(sha256
- (base32 "1k6mrgsvmqsfk95w8kjmp9v2fghjmmpj40667zndrw9jx1h85mwx"))))
+ (base32 "0ri3ss5vgsjk5pzmaaw8yi7sg4lasx58d8kz3m6z5vg7p69gdzxv"))))
(build-system cmake-build-system)
(native-inputs
(list doxygen
@@ -791,7 +793,7 @@ the Monero command line client and daemon.")
(define-public monero-gui
(package
(name "monero-gui")
- (version "0.18.3.1")
+ (version "0.18.3.2")
(source
(origin
(method git-fetch)
@@ -807,7 +809,7 @@ the Monero command line client and daemon.")
;; See the 'extract-monero-sources' phase.
(delete-file-recursively "monero")))
(sha256
- (base32 "1fjx8gdzc1pmfsi14r09gfmkglvh560pnxk70p0k82a4gbs1vyz2"))))
+ (base32 "0jic43b7jzc1i7x2mqqpbbb2992687nm12kk642yr10dm4maklzb"))))
(build-system qt-build-system)
(native-inputs
`(,@(package-native-inputs monero)
@@ -1752,7 +1754,7 @@ following three utilities are included with the library:
(define-public bitcoin-unlimited
(package
(name "bitcoin-unlimited")
- (version "2.0.0.0")
+ (version "2.0.0.1")
(source
(origin
(method git-fetch)
@@ -1761,7 +1763,7 @@ following three utilities are included with the library:
(commit (string-append "BCHunlimited" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0s4iyjfhjx21xa3z7433m4skfr115565k0ckza87ha2d4nl8kz5h"))))
+ (base32 "1kkmg0gp86qz3ya8y5a00yic1mals138b9fv2cjlm7683sfjjljx"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@@ -1971,35 +1973,54 @@ that allows you to run services and through them access the Bitcoin Cash network
(version "2.3.6")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "beancount" version))
+ (method git-fetch) ; no test data files in PyPI archive
+ (uri (git-reference
+ (url "https://github.com/beancount/beancount")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0nj7sdh7wxc0hv8wxwqhw9v1zgx1sn4w92368ci2wzdmssz967w0"))
- (patches (search-patches "beancount-disable-googleapis-fonts.patch"))))
- (build-system python-build-system)
+ (base32 "1slxsjw29cyr2kbirdpijhpqspk55k38rpmk3zc02pr1wll62qsv"))
+ (patches (search-patches "beancount-disable-googleapis-fonts.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(begin
+ ;; Remove broken experiments.
+ (delete-file-recursively "experiments")
+ ;; Remove bundled packages.
+ (delete-file-recursively "third_party")))))
+ (build-system pyproject-build-system)
(arguments
- `(#:tests? #f ; Says test is missing, not sure why
- #:phases
- (modify-phases %standard-phases
- ;; Not importing the googleapis package for now
- (add-after 'unpack 'ignore-googleapis
- (lambda _
- (substitute* "setup.py"
- (("'google-api-python-client',") ""))
- #t))
- ;; No module named 'google_auth_oauthlib'
- (delete 'sanity-check))))
- (inputs
+ (list
+ #:test-flags
+ #~(list "-k" (string-append
+ ;; ModuleNotFoundError: No module named 'pytest'
+ "not test_parse_stdin"
+ ;; AssertionError: 5 not greater than 20
+ " and not test_setup"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "setup.py"
+ ;; Use compatible fork, and do not fail during sanity check.
+ (("\"pdfminer2\",") ""))))
+ (add-before 'check 'build-extensions
+ (lambda _
+ (invoke "python" "setup.py" "build_ext" "--inplace"))))))
+ (propagated-inputs
(list python-beautifulsoup4
python-bottle
python-chardet
python-dateutil
+ python-google-api-client
+ python-google-auth-oauthlib
python-lxml
python-magic
+ python-oauth2client
python-ply
python-requests))
(native-inputs
- (list python-pytest))
+ (list gnupg python-pdfminer-six python-pytest))
(home-page "https://beancount.github.io/")
(synopsis "Command-line double-entry accounting tool")
(description
@@ -2008,6 +2029,55 @@ define financial transaction records in a text file, read them in memory,
generate a variety of reports from them, and provides a web interface.")
(license license:gpl2)))
+(define-public fava
+ (package
+ (name "fava")
+ ;; XXX: A newer version requires Flask > 2.2, which is not available in
+ ;; Guix yet.
+ (version "1.24.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "fava" version))
+ (sha256
+ (base32 "1iwha9vx223iiyjqbixpz1lp8q766ikhi7xcap3pscjhldxlym4j"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "setup.cfg"
+ ((">=8,<10") ">8"))))
+ ;; Tests write to $HOME.
+ ;; FileNotFoundError: [Errno 2] No such file or directory
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" "/tmp"))))))
+ (propagated-inputs
+ (list beancount
+ python-babel
+ python-cheroot
+ python-click
+ python-flask
+ python-flask-babel
+ python-jinja2
+ python-markdown2
+ python-ply
+ python-simplejson
+ python-werkzeug))
+ (native-inputs
+ (list python-pytest
+ python-chardet
+ python-dateutil
+ python-setuptools-scm))
+ (home-page "https://beancount.github.io/fava/")
+ (synopsis "Web interface for the accounting tool Beancount")
+ (description "Fava is a web interface for the double-entry bookkeeping
+software Beancount with a focus on features and usability.")
+ (license license:expat)))
+
(define-public emacs-beancount
;; Note that upstream has not made any release since this project moved
;; into its own repository (it was originally part of beancount itself)
@@ -2361,11 +2431,11 @@ pool.")
(define-public opentaxsolver
;; The OTS version is formatted like tax-year_version. So, at time of
- ;; writing, the version is 2022_20.00. Each part of this is used in
+ ;; writing, the version is 2023_21.03. Each part of this is used in
;; different places in the source uri, so it's convenient to have them
;; separately like this.
- (let ((tax-year "2022")
- (ots-version "20.00"))
+ (let ((tax-year "2023")
+ (ots-version "21.03"))
(package
(name "opentaxsolver")
(version (string-append tax-year "_" ots-version))
@@ -2377,7 +2447,7 @@ pool.")
"_linux/OpenTaxSolver" version "_linux64.tgz"))
(sha256
(base32
- "06k0a72bmwdmr71dvrp8b4vl8vilnggsh92hrp7wjdgcjj9m074w"))
+ "1i543bvclnyiwnyjlskhr2bxlsigggvwdhg2519rf12lsghgfszq"))
(patches (search-patches "opentaxsolver-file-browser-fix.patch"))))
(build-system glib-or-gtk-build-system)
(arguments
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 72b10a8243..7563d390e8 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -1088,7 +1088,7 @@ utilities to ease adding new glyphs to the font.")
(define-public font-google-noto
(package
(name "font-google-noto")
- (version "23.11.1")
+ (version "24.2.1")
(source
(origin
(method git-fetch)
@@ -1097,8 +1097,53 @@ utilities to ease adding new glyphs to the font.")
(commit (string-append "noto-monthly-release-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0vvxhky35l4i0ha60yw0gj26f3v33hpf2zax17yyj16mww4cn4d8"))))
+ (base32 "087jg8ahpq35xwyrmvm9ivxl0wjic2j4r28bbrwqmgdva9brms40"))))
(build-system font-build-system)
+ (arguments
+ (list
+ #:modules
+ '((guix build font-build-system)
+ (guix build utils)
+ (ice-9 ftw))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (define* (install source #:optional (output #$output))
+ (let ((%install (assoc-ref %standard-phases 'install)))
+ (with-directory-excursion source
+ (%install #:outputs `(("out" . ,output))))))
+
+ (define (scan-directory name)
+ (scandir name (lambda (file)
+ (not (member file '("." ".." "LICENSE"))))))
+
+ (define (install-font-variant variant)
+ "Given font variant VARIANT, install one of its formats,
+variable TTF or OTF or TTF."
+ (with-directory-excursion variant
+ (let ((formats (scan-directory ".")))
+ (cond
+ ((member "variable-ttf" formats)
+ (install "variable-ttf"))
+ ((member "otf" formats)
+ (install "otf"))
+ ((member "ttf" formats)
+ (install "ttf"))))))
+
+ (define (install-font font)
+ "Given FONT, install one of its variants, either full or
+unhinted, and install its hinted variant into 'ttf' output. According to the
+source, unhinted and hinted variants are always available."
+ (with-directory-excursion font
+ (if (member "full" (scan-directory "."))
+ (install-font-variant "full")
+ (install-font-variant "unhinted"))
+ (install "hinted" #$output:ttf)))
+
+ (with-directory-excursion "fonts"
+ (for-each install-font (scan-directory "."))))))))
+ (outputs '("out" "ttf"))
(home-page "https://www.google.com/get/noto/")
(synopsis "Fonts to cover all languages")
(description "Google Noto Fonts is a family of fonts designed to support
@@ -1109,7 +1154,7 @@ display all Unicode symbols.")
(define-public font-google-noto-emoji
(package
(name "font-google-noto-emoji")
- (version "2.038")
+ (version "2.042")
(source
(origin
(method git-fetch)
@@ -1119,7 +1164,7 @@ display all Unicode symbols.")
(file-name (git-file-name name version))
(sha256
(base32
- "1rgmcc6nqq805iqr8kvxxlk5cf50q714xaxk3ld6rjrd69kb8ix9"))))
+ "17i7awyqz9jv0j2blcf0smmpas375c3pdhjv1zqzl861g8qm1lm2"))))
(build-system font-build-system)
(arguments
(list
@@ -1129,11 +1174,10 @@ display all Unicode symbols.")
(lambda _
;; Note this ensures the correct license file is installed.
(chdir "fonts")))
- (add-after 'enter-font-directory 'remove-unsupported
- (lambda* _
- (delete-file "NotoColorEmoji_WindowsCompatible.ttf")
- (delete-file "Noto-COLRv1-noflags.ttf")
- (delete-file "Noto-COLRv1.ttf"))))))
+ (replace 'install
+ (lambda _
+ (let ((dir (string-append #$output "/share/fonts/truetype")))
+ (install-file "NotoColorEmoji.ttf" dir)))))))
(home-page "https://fonts.google.com/noto/specimen/Noto+Color+Emoji")
(synopsis "Font for rendering color emoji characters")
(description
@@ -1150,11 +1194,23 @@ family.")
(method url-fetch)
(uri (string-append
"https://github.com/googlefonts/noto-cjk/releases/download/Sans"
- version "/03_NotoSansCJK-OTC.zip"))
+ version "/01_NotoSansCJK-OTF-VF.zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
- (base32 "1v9yda7r98g4a3pk0y3cjbgc1i2lv4ax0f0v6aqasfzz4ldlx3sj"))))
+ (base32 "1ka37kqyd0sfqwk485nv6ihrdjl5xycr38m4jq40r2lzmpmkmqym"))))
(build-system font-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (chdir "..") ;For license.
+ (let ((install (assoc-ref %standard-phases 'install)))
+ (with-directory-excursion "Variable/OTC"
+ (install #:outputs `(("out" . ,#$output))))
+ (with-directory-excursion "Variable/OTF"
+ (install #:outputs `(("out" . ,#$output:otf))))))))))
+ (outputs '("out" "otf"))
(home-page "https://www.google.com/get/noto/")
(synopsis "Fonts to cover all languages")
(description "Google Noto Fonts is a family of fonts designed to support
@@ -1166,17 +1222,29 @@ CJK fonts.")
(define-public font-google-noto-serif-cjk
(package
(name "font-google-noto-serif-cjk")
- (version "2.001")
+ (version "2.002")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/googlefonts/noto-cjk/releases/download/Serif"
- version "/04_NotoSerifCJKOTC.zip"))
+ version "/02_NotoSerifCJK-OTF-VF.zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
- (base32 "1l6r3sz2s0vcyfx6ria7wqcq45zp40gxgg97lh8hpmajhzw301ig"))))
+ (base32 "007jk7rmfapq5zq4ji9d1l5gpp34p98l9ylhiw33q42d66v2g717"))))
(build-system font-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (chdir "..") ;For license.
+ (let ((install (assoc-ref %standard-phases 'install)))
+ (with-directory-excursion "Variable/OTC"
+ (install #:outputs `(("out" . ,#$output))))
+ (with-directory-excursion "Variable/OTF"
+ (install #:outputs `(("out" . ,#$output:otf))))))))))
+ (outputs '("out" "otf"))
(home-page "https://www.google.com/get/noto/")
(synopsis "Fonts to cover all languages")
(description "Google Noto Fonts is a family of fonts designed to support
@@ -3286,7 +3354,7 @@ and readability. This package bundles those icons into a font.")
(define-public font-lxgw-wenkai
(package
(name "font-lxgw-wenkai")
- (version "1.315")
+ (version "1.320")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3294,7 +3362,7 @@ and readability. This package bundles those icons into a font.")
version "/lxgw-wenkai-v" version ".tar.gz"))
(sha256
(base32
- "0isb7rbg8yb6hv8xk1ngngkgzpyb3papkl19jczwrwm373m8bn3f"))))
+ "1wvab2g2hcy8wqi23zva17rymqfrrfwd7yh0wbhfb67mz18wbjpm"))))
(build-system font-build-system)
(home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/")
(synopsis "Simplified Chinese Imitation Song typeface")
@@ -3308,7 +3376,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
(package
(inherit font-lxgw-wenkai)
(name "font-lxgw-wenkai-tc")
- (version "1.011")
+ (version "1.320")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3316,7 +3384,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
version "/lxgw-wenkai-tc-v" version ".tar.gz"))
(sha256
(base32
- "0x83a7zg1w82bpilk84ajlisccf90kl01gz89fipgqji9nii71bv"))))
+ "0lzfci4zpia62vbnyv22ajlrd8gvwj1ff7iaa0mxs66dbb0p6pq8"))))
(home-page "https://github.com/lxgw/LxgwWenKaitc")
(synopsis "Traditional Chinese Imitation Song typeface")
(description
@@ -3327,7 +3395,7 @@ dialects in Hong Kong and Taiwan.")))
(define-public font-chiron-sung-hk
(package
(name "font-chiron-sung-hk")
- (version "1.010")
+ (version "1.011")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3336,8 +3404,22 @@ dialects in Hong Kong and Taiwan.")))
(file-name (git-file-name name version))
(sha256
(base32
- "065p1gc5xjwc4kfw8bqpsbhaf1p4w0k4l0j04vjsjhcl4k9vyvfz"))))
+ "1916bb834y4r4312g14zid7w3pbx1i70jcgkkfbf4z20grrj891m"))))
(build-system font-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (let ((install (assoc-ref %standard-phases 'install)))
+ (with-directory-excursion "VAR"
+ (for-each delete-file (find-files "." "\\.ttf$"))
+ (install #:outputs `(("out" . ,#$output))))
+ (with-directory-excursion "OTF"
+ (install #:outputs `(("out" . ,#$output:otf))))
+ (with-directory-excursion "TTF"
+ (install #:outputs `(("out" . ,#$output:ttf))))))))))
+ (outputs '("out" "otf" "ttf"))
(home-page "https://chiron-fonts.github.io/")
(synopsis "Traditional Chinese Song typeface")
(description
@@ -3351,7 +3433,7 @@ prevalent typefaces in Traditional Chinese regions.")
(package
(inherit font-chiron-sung-hk)
(name "font-chiron-hei-hk")
- (version "2.508")
+ (version "2.509")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3360,7 +3442,7 @@ prevalent typefaces in Traditional Chinese regions.")
(file-name (git-file-name name version))
(sha256
(base32
- "0drvkqk629z63k62v3ds559phl82dmkyvpx2r8mi99nnsz22a8ps"))))
+ "0bwx909sijpnc474355hlfjwgxin0m9yxd5k9qwmgxkp2rzqiwnk"))))
(synopsis "Traditional Chinese Gothic typeface")
(description
"Chiron Hei HK is a Traditional Chinese Gothic typeface based on the Hong
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index d55a50acfe..d0d430d925 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2018, 2019, 2020, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020, 2021, 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2022 Felipe Balbi <balbi@kernel.org>
@@ -2051,7 +2051,7 @@ Unicode Charts. It was developed for use with DejaVu Fonts project.")
(define-public libraqm
(package
(name "libraqm")
- (version "0.8.0")
+ (version "0.10.1")
(source
(origin
(method git-fetch)
@@ -2060,7 +2060,7 @@ Unicode Charts. It was developed for use with DejaVu Fonts project.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0qrdw67n14n0km2f8l0gk8scgj3ybz662s9x8jwj3rrj33nl2d1a"))))
+ (base32 "1bzdrvacgj9629r4mgmag9sm5ay5914fbs8pnxf8xphvrbnbxm8z"))))
(build-system meson-build-system)
(native-inputs
(list gtk-doc/stable pkg-config python-wrapper))
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index b270f381e0..826425f5f3 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -34,6 +34,7 @@
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2023 Alex Devaure <ajadevaure@gmail.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1439,7 +1440,10 @@ XEv.")
(base32 "0bpix92vzip9vlhzihj3k8h9flrlna231x3y8ah7p4965l177yjd"))))
(build-system meson-build-system)
(native-inputs
- (list pkg-config wayland libxkbcommon))
+ (list pkg-config
+ ;; for wayland-scanner
+ wayland))
+ (inputs (list wayland libxkbcommon))
(synopsis "Xdotool type for Wayland")
(description "Wtype lets you simulate keyboard input and mouse activity,
move and resize windows, etc.")
@@ -1450,7 +1454,7 @@ move and resize windows, etc.")
(define-public exempi
(package
(name "exempi")
- (version "2.5.2")
+ (version "2.6.5")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1458,7 +1462,7 @@ move and resize windows, etc.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "1mdfxb36p8251n5m7l55gx3fcqpk46yz9v568xfr8igxmqa47xaj"))))
+ "1zhzwkfna14sy78llhfc94cy5hv3076j5v3p1zmvawzz5gaa7yg9"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list (string-append "--with-boost="
@@ -1472,8 +1476,7 @@ move and resize windows, etc.")
;; <https://gitlab.freedesktop.org/libopenraw/exempi/-/issues/17>.
;; Simply delete the static library instead to save ~4.3 MiB.
(delete-file (string-append (assoc-ref outputs "out")
- "/lib/libexempi.a"))
- #t)))))
+ "/lib/libexempi.a")))))))
(native-inputs
(list boost)) ; tests
(inputs
@@ -2369,14 +2372,14 @@ their MIME type.
(define-public uchardet
(package
(name "uchardet")
- (version "0.0.7")
+ (version "0.0.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.freedesktop.org/software/"
name "/releases/" name "-" version ".tar.xz"))
(sha256
- (base32 "1ca51sryhryqz82v4d0graaiqqq5w2f33a9gj83b910xmq499irz"))))
+ (base32 "1w659aiphbnczpry771diakrzg9a8aqpn2abcxx1870aq37n0yp9"))))
(build-system cmake-build-system)
(home-page "https://www.freedesktop.org/wiki/Software/uchardet/")
(synopsis "Encoding detector library")
@@ -2695,7 +2698,7 @@ compatible with the well-known scripts of the same name.")
(define-public libportal
(package
(name "libportal")
- (version "0.6")
+ (version "0.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2704,7 +2707,7 @@ compatible with the well-known scripts of the same name.")
(file-name (git-file-name name version))
(sha256
(base32
- "1q1kqq72cs7f5b17gzw7218mxs65hijzkll27mh51s02fpiw8c60"))))
+ "0ypl9ds5g5jzyirjg4ic0r7lzv39w67yrh8njz1cw566g4j1kfny"))))
(build-system meson-build-system)
(arguments
(list
@@ -2903,7 +2906,7 @@ for xdg-desktop-portal that is using Qt/KF5.")
(define-public xdg-desktop-portal-wlr
(package
(name "xdg-desktop-portal-wlr")
- (version "0.7.0")
+ (version "0.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2912,7 +2915,7 @@ for xdg-desktop-portal that is using Qt/KF5.")
(file-name (git-file-name name version))
(sha256
(base32
- "1b3hpp3ybjgnnmnwsyb5bsnvz9q5nr3zz0j1alh02g24f68lf00k"))
+ "1mbq3czka9swwmfaasnaj89y2m254p3qa522ayclh688jdwh70hq"))
(patches (search-patches "xdg-desktop-portal-wlr-harcoded-length.patch"))))
(build-system meson-build-system)
(arguments
diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm
index cc33e821de..55ffa6a53b 100644
--- a/gnu/packages/freeipmi.scm
+++ b/gnu/packages/freeipmi.scm
@@ -28,14 +28,14 @@
(define-public freeipmi
(package
(name "freeipmi")
- (version "1.6.11")
+ (version "1.6.14")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/freeipmi/freeipmi-"
version ".tar.gz"))
(sha256
(base32
- "15x861i8r1gk44924d2pszlb8mapgkr18m3991vla4601y8xdyv5"))))
+ "1dgd2izbp6mqk7l0bgw9fkpvl4mjz672p8baz3ac9k5pfrfaqg8s"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-static"
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 7b587e7da8..4c349b42b9 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -30,7 +30,7 @@
;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2018 Madalin Ionel-Patrascu <madalinionel.patrascu@mdc-berlin.de>
@@ -938,6 +938,41 @@ original rogue game found on 4.2BSD.")
(home-page "https://github.com/Davidslv/rogue")
(license license:bsd-3)))
+(define-public sgt-puzzles
+ (let ((commit "80aac3104096aee4057b675c53ece8e60793aa90")
+ (revision "0"))
+ (package
+ (name "sgt-puzzles")
+ (version (git-version "20240302" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.tartarus.org/simon/puzzles.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0z4clv0xi98q28riz323ppn165cm62gj1c6h3xdd2sym4v8gy65z"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list "-DNAME_PREFIX=sgt-")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-xdg-open-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "gtk.c"
+ (("(#define HELP_BROWSER_PATH).+" all define)
+ (format #f "~a ~s~%" define
+ (search-input-file inputs "/bin/xdg-open")))))))))
+ (inputs (list gtk+ xdg-utils))
+ (native-inputs (list pkg-config perl imagemagick halibut))
+ (home-page "https://www.chiark.greenend.org.uk/~sgtatham/puzzles/")
+ (synopsis "Simon Tatham's portable puzzle collection")
+ (description "Simon Tatham's Portable Puzzle Collection contains a number of
+popular puzzle games for one player.")
+ (license license:expat))))
(define-public bzflag
(package
@@ -2131,14 +2166,14 @@ It is similar to standard chess but this variant is far more complicated.")
(define-public ltris
(package
(name "ltris")
- (version "1.2.6")
+ (version "1.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/lgames/ltris/"
"ltris-" version ".tar.gz"))
(sha256
- (base32 "1xj65kn815x2hq1ynzjyc90dj178xwa2xvx7jx99qf60ahaf4g62"))))
+ (base32 "144zvnnky79z5ychyyb2wsp7h2pcbl50fbzd9w9dvxkw6adz4yip"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -4677,7 +4712,7 @@ on the screen and keyboard to display letters.")
(define-public manaplus
(package
(name "manaplus")
- (version "1.9.3.23")
+ (version "2.1.3.17")
(source (origin
(method url-fetch)
(uri (string-append
@@ -4685,18 +4720,15 @@ on the screen and keyboard to display letters.")
version "/manaplus-" version ".tar.xz"))
(sha256
(base32
- "1ky182p4svwdqm6cf7jbns85hidkhkhq4s17cs2p381f0klapfjz"))))
+ "0ggswsa3xq7lss3j4k7fyzn56sw7hlrwk744i3d9w0n4932nmlg8"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- (list (string-append "CPPFLAGS=-I"
- (assoc-ref %build-inputs "sdl-union")
- "/include/SDL"))))
+ (list #:configure-flags #~'("--with-sdl2")))
(native-inputs
(list pkg-config))
(inputs
(list glu curl libxml2 mesa
- (sdl-union)))
+ sdl2 sdl2-image sdl2-mixer sdl2-net sdl2-ttf))
(home-page "https://manaplus.org")
(synopsis "Client for 'The Mana World' and similar games")
(description
@@ -7088,7 +7120,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
(define-public crawl
(package
(name "crawl")
- (version "0.30.1")
+ (version "0.31.0")
(source
(origin
(method git-fetch)
@@ -7097,7 +7129,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1rlp8z1n7ziv7aaa3fb4h4nnq24pfz1m23a99c1ra582fh0yx1pl"))
+ (base32 "0igrl0a9qd2g27q3wr86xjkpqcqs4y7bh3na1saqvpd4vc8mbayk"))
(patches (search-patches "crawl-upgrade-saves.patch"))))
(build-system gnu-build-system)
(inputs
@@ -7425,7 +7457,7 @@ at their peak of economic growth and military prowess.
(define-public open-adventure
(package
(name "open-adventure")
- (version "1.16")
+ (version "1.18")
(source
(origin
(method git-fetch)
@@ -7434,7 +7466,7 @@ at their peak of economic growth and military prowess.
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0spciwqcyldalzdd813zwigbldcnyaxi7kfslq1yp0fg4c4a10aa"))))
+ (base32 "1zl72lsp443aryzmwzh5w4j439jgf5njvh9xig6vjvmzhfcjkk9q"))))
(build-system gnu-build-system)
(arguments
(list
@@ -7463,10 +7495,13 @@ at their peak of economic growth and military prowess.
(install-file "advent.6" man)))))))
(native-inputs
(list asciidoc
+ cppcheck
libedit
pkg-config
+ python-pylint
python-pyyaml
- python-wrapper))
+ python-wrapper
+ ruby-asciidoctor))
(home-page "https://gitlab.com/esr/open-adventure")
(synopsis "Colossal Cave Adventure")
(description
@@ -8452,7 +8487,7 @@ ncurses for text display.")
(define-public naev
(package
(name "naev")
- (version "0.10.4")
+ (version "0.11.4")
(source
(origin
(method git-fetch)
@@ -8462,7 +8497,7 @@ ncurses for text display.")
(recursive? #t))) ; for game data
(file-name (git-file-name name version))
(sha256
- (base32 "0lg8cmzdzzpmqgmh9a1v190vv4d15hwa0inyzdwsq5x8lyc13hyr"))))
+ (base32 "1gd7jgb996fgnlrlqkfyx416g1kd458vik3nviazwwj83ksafaqb"))))
(build-system meson-build-system)
(arguments
;; XXX: Do not add debugging symbols, which cause the build to fail.
@@ -11375,7 +11410,7 @@ play; it will look for them at @file{~/.local/share/fheroes2} folder.")
(define-public vcmi
(package
(name "vcmi")
- (version "1.4.2")
+ (version "1.4.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -11384,7 +11419,7 @@ play; it will look for them at @file{~/.local/share/fheroes2} folder.")
(file-name (git-file-name name version))
(sha256
(base32
- "039d9dvb2i4y1fj6q5py34r17fwb5jqxkjcg7j57asjk4w9b7i8b"))
+ "1z4vy3drj6dra8rb243pyryr61jnlw3l7yxsxwl9rddv8cdk69lz"))
(patches (search-patches "vcmi-disable-privacy-breach.patch"))))
(build-system cmake-build-system)
(arguments
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 82ee137620..863b8c76b2 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -645,7 +645,7 @@ Go. It also includes runtime support libraries for these languages.")
"btver1" "btver2" ;AMD
;; psABI micro-architecture levels
- "x86-64-v1" "x86-64-v2" "x86-64-v3" "x86-64-v4")))
+ "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4")))
;; Suitable '-march' values for GCC 12.
(define %gcc-12-aarch64-micro-architectures
@@ -695,6 +695,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-7.5-aarch64-micro-architectures)
("armhf" ,@%gcc-7.5-armhf-micro-architectures)
+ ("i686" ,@%gcc-7.5-x86_64-micro-architectures)
("x86_64" ,@%gcc-7.5-x86_64-micro-architectures))
,@(package-properties gcc-6)))))
@@ -754,6 +755,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-10-aarch64-micro-architectures)
("armhf" ,@%gcc-10-armhf-micro-architectures)
+ ("i686" ,@%gcc-10-x86_64-micro-architectures)
("x86_64" ,@%gcc-10-x86_64-micro-architectures))
,@(package-properties gcc-8)))))
@@ -778,6 +780,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-11-aarch64-micro-architectures)
("armhf" ,@%gcc-11-armhf-micro-architectures)
+ ("i686" ,@%gcc-11-x86_64-micro-architectures)
("x86_64" ,@%gcc-11-x86_64-micro-architectures))
,@(package-properties gcc-8)))))
@@ -802,6 +805,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-12-aarch64-micro-architectures)
("armhf" ,@%gcc-12-armhf-micro-architectures)
+ ("i686" ,@%gcc-12-x86_64-micro-architectures)
("x86_64" ,@%gcc-12-x86_64-micro-architectures))
,@(package-properties gcc-11)))))
@@ -825,6 +829,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-13-aarch64-micro-architectures)
("armhf" ,@%gcc-13-armhf-micro-architectures)
+ ("i686" ,@%gcc-13-x86_64-micro-architectures)
("x86_64" ,@%gcc-13-x86_64-micro-architectures))
,@(package-properties gcc-11)))))
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 86422d6272..c7d3ddf805 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -38,6 +38,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages documentation)
@@ -175,7 +176,7 @@ of a larger interface.")
(define-public babl
(package
(name "babl")
- (version "0.1.96")
+ (version "0.1.108")
(source (origin
(method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -189,12 +190,11 @@ of a larger interface.")
"/babl-" version ".tar.xz")))
(sha256
(base32
- "1xj5hlmm834lb84rpjlfxbqnm5piswgzhjas4h8z90x9b7j3yrrk"))))
+ "0x8lxvnhfpssj84x47y3y06vsvhd5afb9jknw38c8ymbxafzxpi6"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
- (list "-Denable-gir=false"
- "-Dwith-docs=false")))
+ (list "-Dwith-docs=false")))
(native-inputs
(list gobject-introspection pkg-config vala))
(propagated-inputs
@@ -215,7 +215,7 @@ provided, as well as a framework to add new color models and data types.")
(define-public gegl
(package
(name "gegl")
- (version "0.4.42")
+ (version "0.4.48")
(source
(origin
(method url-fetch)
@@ -229,12 +229,10 @@ provided, as well as a framework to add new color models and data types.")
(version-major+minor version)
"/gegl-" version ".tar.xz")))
(sha256
- (base32 "0bg0vlmj4n9x1291b9fsjqxsal192zlg48pa57f6xid6p863ma5b"))))
+ (base32 "0iw2wag3sls7va4c3dmczisbs9na4ml0rppnk1ymv0789gcjd321"))))
(build-system meson-build-system)
(arguments
- `(#:configure-flags
- (list "-Dintrospection=false")
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'extend-test-time-outs
(lambda _
@@ -285,10 +283,53 @@ buffers.")
;; application and GUI binary gegl is licensed under GPL.
(license (list license:lgpl3+ license:gpl3+))))
+;; gnome-photos does not build against gegl 0.4.46 or newer yet.
+;; See also <https://gitlab.gnome.org/GNOME/gnome-photos/-/issues/214>.
+(define-public babl-0.1.96
+ (package
+ (inherit babl)
+ (version "0.1.96")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (list (string-append "https://download.gimp.org/pub/babl/"
+ (version-major+minor version)
+ "/babl-" version ".tar.xz")
+ (string-append "https://ftp.gtk.org/pub/babl/"
+ (version-major+minor version)
+ "/babl-" version ".tar.xz")
+ (string-append "ftp://ftp.gtk.org/pub/babl/"
+ (version-major+minor version)
+ "/babl-" version ".tar.xz")))
+ (sha256
+ (base32 "1xj5hlmm834lb84rpjlfxbqnm5piswgzhjas4h8z90x9b7j3yrrk"))))))
+
+(define-public gegl-0.4.44
+ (package
+ (inherit gegl)
+ (version "0.4.44")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (list (string-append "https://download.gimp.org/pub/gegl/"
+ (string-take version 3)
+ "/gegl-" version ".tar.xz")
+ (string-append "https://ftp.gtk.org/pub/gegl/"
+ (version-major+minor version)
+ "/gegl-" version ".tar.xz")
+ (string-append "ftp://ftp.gtk.org/pub/gegl/"
+ (version-major+minor version)
+ "/gegl-" version ".tar.xz")))
+ (sha256
+ (base32 "09k1sn4h0bakgmq2hgd1iamprngpr81ky3fd9446lh2ycd0xnk0a"))))
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs gegl)
+ (replace "babl" babl-0.1.96)))))
+
(define-public gimp
(package
(name "gimp")
- (version "2.10.32")
+ (version "2.10.36")
(source
(origin
(method url-fetch)
@@ -296,7 +337,7 @@ buffers.")
(version-major+minor version)
"/gimp-" version ".tar.bz2"))
(sha256
- (base32 "09csp2d8bzf012n7hvbbwngwr9phv3rnip768qdwqpdgah2wf59z"))))
+ (base32 "1cnvgkni2q4psv8syyl5yd9kk84fv5g3imd2kgm3mnsbkb3c6frx"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 9 MiB of gtk-doc HTML
@@ -370,6 +411,52 @@ as well as specialized ones. It features a highly customizable interface
that is extensible via a plugin system.")
(license license:gpl3+))) ; some files are lgplv3
+(define-public gimp-next
+ (package
+ (inherit gimp)
+ (name "gimp-next")
+ (version "2.99.18")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.gimp.org/pub/gimp/v"
+ (version-major+minor version)
+ "/gimp-" version ".tar.xz"))
+ (sha256
+ (base32 "0vnvdl7x88njyyxkbgdbhz6jwz1qasrxh0fpwk6x1m609alvf6wc"))))
+ (build-system meson-build-system)
+ (arguments
+ (list #:modules `((ice-9 popen)
+ (ice-9 rdelim)
+ (guix build meson-build-system)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-gcc-reference
+ ;; Avoid reference to GCC.
+ (lambda _
+ (let* ((port (open-input-pipe "gcc -v 2>&1 | tail -n 1"))
+ (cc-version (read-line port)))
+ (close-pipe port)
+ (substitute* "app/gimp-version.c"
+ (("CC_VERSION") (string-append "\"" cc-version "\""))))))
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (mkdir-p (string-append doc "/share"))
+ (rename-file (string-append out "/share/doc")
+ (string-append doc "/share/doc"))))))))
+ (inputs (modify-inputs (package-inputs gimp)
+ (replace "gtk+" gtk+)
+ (prepend libxmu libxt)
+ (prepend python gjs)
+ (prepend libxslt)))
+ (native-inputs (modify-inputs (package-native-inputs gimp)
+ (prepend appstream-glib
+ gi-docgen
+ libarchive)))))
+
(define-public gimp-fourier
(package
(name "gimp-fourier")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index bdf300cf77..576bccd4a1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -855,7 +855,7 @@ tomorrow, the rest of the week and for special occasions.")
(list bash-minimal
babl
cairo
- gegl
+ gegl-0.4.44
geocode-glib
gexiv2
gfbgraph
@@ -5576,6 +5576,9 @@ file.")
"-Dlocalstatedir=/var"
"-Dman=false"
"-Dsystemd=false") ;no systemd
+ ;; Apparently the tests are known to fail on big-endian systems.
+ #:tests? (not (or (%current-target-system)
+ (not (target-little-endian?))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-problematic-tests
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index fd101a8acf..e23755302d 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2023 Adam Faiz <adam.faiz@disroot.org>
-;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,6 +32,7 @@
(define-module (gnu packages gnunet)
#:use-module (gnu packages)
+ #:use-module (gnu packages apparmor)
#:use-module (gnu packages base)
#:use-module (gnu packages file)
#:use-module (gnu packages aidc)
@@ -65,6 +66,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages texinfo)
#:use-module (gnu packages text-editors)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
@@ -83,86 +85,80 @@
(define-public libextractor
(package
- (name "libextractor")
- (version "1.11")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/libextractor/libextractor-"
- version ".tar.gz"))
- (sha256
- (base32
- "13xxv11mif3m0mpk7i43mljhhaqrj52kznm1qi3qb8s6hymk7xhn"))))
- (build-system gnu-build-system)
- ;; WARNING: Checks require /dev/shm to be in the build chroot, especially
- ;; not to be a symbolic link to /run/shm.
- ;; FIXME:
- ;; The following dependencies are all optional, but should be
- ;; available for maximum coverage:
- ;; * librpm (rpm) ; investigate failure
- ;; * libtidy-html (tidy-html) ; investigate failure
- (inputs
- `(("exiv2" ,exiv2)
- ("bzip2" ,bzip2)
- ("flac" ,flac)
- ("ffmpeg" ,ffmpeg-4)
- ("file" ,file) ;libmagic, for the MIME plug-in
- ("glib" ,glib)
- ("giflib" ,giflib)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("gtk+" ,gtk+)
- ("libarchive" ,libarchive)
- ("libgsf" ,libgsf)
- ("libjpeg" ,libjpeg-turbo)
- ("libltdl" ,libltdl)
- ("libmpeg2" ,libmpeg2)
- ("libmp4v2" ,libmp4v2)
- ("libsmf" ,libsmf)
- ("libogg" ,libogg)
- ("libtiff" ,libtiff)
- ("libvorbis" ,libvorbis)
- ("zlib" ,zlib)))
- (native-inputs
- (list pkg-config))
- (outputs '("out"
- "static")) ; 420 KiB .a files
- (arguments
- `(#:configure-flags
- (list (string-append "--with-ltdl="
- (assoc-ref %build-inputs "libltdl")))
- #:parallel-tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-after 'configure 'fix-exiv2-tests
- ;; exiv2>=0.27.3 rounds geolocation
- ;; https://github.com/Exiv2/exiv2/pull/1107/commits/db1be4ae8e1077949fcb6a960e93069d6a41b395#diff-f3f55183ccbe956c720c86e61f708d9f
- (lambda _
- (substitute* "src/plugins/test_exiv2.c"
- (("17.585\\\\\" ") "18\\\"")
- (("21.713\\\\\" ") "22\\\""))
- #t))
- (add-after 'install 'move-static-libraries
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Move static libraries to the "static" output.
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib"))
- (static (assoc-ref outputs "static"))
- (slib (string-append static "/lib")))
- (mkdir-p slib)
- (for-each (lambda (file)
- (install-file file slib)
- (delete-file file))
- (find-files lib "\\.a$"))
- #t))))))
- (synopsis "Library to extract meta-data from media files")
- (description
- "GNU libextractor is a library for extracting metadata from files. It
+ (name "libextractor")
+ (version "1.13")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/libextractor/libextractor-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0mgprmwdhdwq9xhfxfhcncd304425nvcc4zi8ci5f0nja4n333xv"))
+ (patches
+ (search-patches "libextractor-tidy-support.patch"))))
+ (build-system gnu-build-system)
+ (outputs '("out"
+ "static")) ; 420 KiB .a files
+ (arguments
+ (list #:configure-flags
+ #~(list (string-append "--with-ltdl="
+ #$(this-package-input "libltdl")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'force-reconfigure
+ (lambda _
+ (delete-file "configure")))
+ (add-after 'install 'move-static-libraries
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Move static libraries to the "static" output.
+ (let* ((out #$output)
+ (lib (string-append out "/lib"))
+ (slib (string-append #$output:static "/lib")))
+ (mkdir-p slib)
+ (for-each (lambda (file)
+ (install-file file slib)
+ (delete-file file))
+ (find-files lib "\\.a$"))))))))
+ (native-inputs
+ (list autoconf-2.71
+ automake
+ gettext-minimal
+ libtool
+ pkg-config
+ texinfo))
+ (inputs
+ (list bzip2
+ exiv2
+ file ;libmagic, for the MIME plug-in
+ flac
+ gdk-pixbuf
+ giflib
+ glib
+ gst-plugins-base
+ gstreamer
+ libapparmor
+ libarchive
+ libgsf
+ libjpeg-turbo
+ libltdl
+ libmp4v2
+ libmpeg2
+ libogg
+ libsmf
+ libtiff
+ libvorbis
+ rpm
+ tidy-html
+ zlib))
+ (synopsis "Library to extract meta-data from media files")
+ (description
+ "GNU libextractor is a library for extracting metadata from files. It
supports a very large number of file formats, including audio files, document
files, and archive files. Each file format is implemented as a plugin, so
new formats can be added easily. The package also contains a command-line
tool to extract metadata from a file and print the results.")
- (license license:gpl3+)
- (home-page "https://www.gnu.org/software/libextractor/")))
+ (license license:gpl3+)
+ (home-page "https://www.gnu.org/software/libextractor/")))
(define-public libmicrohttpd
(package
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index b7187be683..618f6e1a98 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014-2024 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2016, 2017, 2018, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016-2019, 2021, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017, 2023 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017, 2018 Nikita <nikita@n0.is>
@@ -522,9 +522,9 @@ variable defined below. It requires guile-json to be installed."
;; XXXX: Workaround 'snippet' limitations.
(define computed-origin-method (@@ (guix packages) computed-origin-method))
-(define %icecat-base-version "115.8.0")
+(define %icecat-base-version "115.9.0")
(define %icecat-version (string-append %icecat-base-version "-guix0-preview1"))
-(define %icecat-build-id "20240220000000") ;must be of the form YYYYMMDDhhmmss
+(define %icecat-build-id "20240319000000") ;must be of the form YYYYMMDDhhmmss
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -544,12 +544,12 @@ variable defined below. It requires guile-json to be installed."
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
- "1slmp2v1q3my81z8kiym9rpxw5d9n4sn07v7hv99517w7vr8d05g"))))
+ "00r847l2j2wk20wf1plbnz2ifyqkvwqmaqwq6zknsqz6qmqk6fyv"))))
;; The upstream-icecat-base-version may be older than the
;; %icecat-base-version.
- (upstream-icecat-base-version "115.8.0")
- (gnuzilla-commit "7e2ff1ad7e03d2bfe0b2daf3f25961b06cab8848")
+ (upstream-icecat-base-version "115.9.0")
+ (gnuzilla-commit "d1dab742d12e2ffacae70733b14016287fc46613")
(gnuzilla-source
(origin
(method git-fetch)
@@ -561,7 +561,7 @@ variable defined below. It requires guile-json to be installed."
(string-take gnuzilla-commit 8)))
(sha256
(base32
- "1lv3vfqv0zb634gnvzb37fs04rb1jlrd2n1k51yjsvdznpqfpi1y"))))
+ "16z2l0fbbxpl2q80w9mx0x89cq82plkb45jpf172xah0k782akhd"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
@@ -764,7 +764,7 @@ variable defined below. It requires guile-json to be installed."
;; ,(search-patch "icecat-use-system-media-libs.patch"))
rust
`(,rust "cargo")
- rust-cbindgen-0.24
+ rust-cbindgen
llvm-15
clang-15
perl
@@ -1852,7 +1852,7 @@ ca495991b7852b855"))
pkg-config
python-wrapper
rust
- rust-cbindgen-0.23
+ rust-cbindgen
which
yasm))
(home-page "https://www.thunderbird.net")
diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm
index aaa2de33a6..1558536182 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -404,6 +404,31 @@ signalling failures, it offers ways to express expectations and get nice failure
messages automatically.")
(license license:asl2.0))))
+(define-public go-github-com-jbenet-go-cienv
+ (package
+ (name "go-github-com-jbenet-go-cienv")
+ (version "0.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jbenet/go-cienv")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1qyfjvr8n5chpb5zi6r9cf0danrwds3k5lbf7vp7ygcl6wnm0vmv"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/jbenet/go-cienv"))
+ (home-page "https://github.com/jbenet/go-cienv")
+ (synopsis "CI system environment variables")
+ (description
+ "Package @code{cienv} implements some helper functions to use during tests.
+Many times certain facilities are not available, or tests must run
+differently.")
+ (license license:expat)))
+
(define-public go-github-com-onsi-ginkgo
(package
(name "go-github-com-onsi-ginkgo")
@@ -779,6 +804,45 @@ custom assertions to be used alongside native Go testing.")
advanced Go linter.")
(license license:expat)))
+(define-public go-pgregory-net-rapid
+ (package
+ (name "go-pgregory-net-rapid")
+ (version "1.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/flyingmutant/rapid")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1alyhcbdq6113sfymx7xxmxpcbgvkaipsn15cgjrcqrx8ks1hm5i"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.18
+ #:import-path "pgregory.net/rapid"))
+ (home-page "https://pgregory.net/rapid/")
+ (synopsis "Go property-based testing library")
+ (description
+ "@code{Rapid} is a Go library for property-based testing.
+
+Rapid checks that properties you define hold for a large number of automatically
+generated test cases. If a failure is found, rapid automatically minimizes the
+failing test case before presenting it.
+
+Features:
+@itemize
+@item imperative Go API with type-safe data generation using generics
+@item data generation biased to explore \"small\" values and edge cases more
+thoroughly
+@item fully automatic minimization of failing test cases
+@item persistence and automatic re-running of minimized failing test cases
+@item support for state machine (\"stateful\" or \"model-based\") testing
+@item no dependencies outside the Go standard library
+@end itemize")
+ (license license:mpl2.0)))
+
;;;
;;; Executables:
;;;
diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm
index b999c063ee..a1ad00f588 100644
--- a/gnu/packages/golang-compression.scm
+++ b/gnu/packages/golang-compression.scm
@@ -140,6 +140,33 @@ library included in the stdlib, and supports GIF, TIFF and PDF.")
(description "@code{compress} provides various compression algorithms.")
(license license:bsd-3)))
+(define-public go-github-com-klauspost-pgzip
+ (package
+ (name "go-github-com-klauspost-pgzip")
+ (version "1.2.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/klauspost/pgzip")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1j29wr6nd9ncdbkjphyziv0h8p5s2mj222cgcfqxmzjnfn7623d8"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/klauspost/pgzip"))
+ (propagated-inputs (list go-github-com-klauspost-compress))
+ (home-page "https://github.com/klauspost/pgzip")
+ (synopsis "Parallel (de)compression of gzip files in Go")
+ (description
+ "This package implements parallel gzip compression and decompression in
+Golang and is fully compatible with @code{compress/gzip} from the standard
+library. This is beneficial for large amounts of data, say more than 1MB at a
+time, as otherwise the internal gzip library will likely be faster.")
+ (license (list license:bsd-3 license:expat))))
+
(define-public go-github-com-nwaples-rardecode-v2
(package
(name "go-github-com-nwaples-rardecode-v2")
@@ -166,23 +193,27 @@ library included in the stdlib, and supports GIF, TIFF and PDF.")
(define-public go-github-com-ulikunitz-xz
(package
(name "go-github-com-ulikunitz-xz")
- (version "0.5.8")
+ (version "0.5.11")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/ulikunitz/xz.git")
+ (url "https://github.com/ulikunitz/xz")
(commit (string-append "v" version))))
- (file-name (string-append name "-" version "-checkout"))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1xnsymi5fmmm734bi4c6z57p5cvnyxlpi29yxs4v21w5k763aypd"))))
+ (base32 "1hbs3x7s7d5ch6ipaqi265w0fwpijs0j19xdbhbjjsyr4khxbqd0"))))
(build-system go-build-system)
(arguments
- `(#:import-path "github.com/ulikunitz/xz"))
+ (list
+ #:import-path "github.com/ulikunitz/xz"))
(home-page "https://github.com/ulikunitz/xz")
(synopsis "Read and write xz compressed streams in Go")
- (description "This package provides a library to read and write xz
-compressed streams in Go.")
+ (description
+ "This package provides a support of reading and writing of xz
+compressed streams. It includes also a gxz command for compressing and
+decompressing data. The package is completely written in Go and doesn't have
+any dependency on any C code.")
(license license:bsd-3)))
;;;
diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 53ae308219..8d0e0ddb64 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -47,7 +47,8 @@
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
- #:use-module (gnu packages golang-compression))
+ #:use-module (gnu packages golang-compression)
+ #:use-module (gnu packages golang-web))
;;; Commentary:
;;;
@@ -261,6 +262,29 @@ been designed so it can be used as a standalone package for any projects
needing to use secp256k1 elliptic curve cryptography.")
(license license:isc))))
+(define-public go-github-com-bwesterb-go-ristretto
+ (package
+ (name "go-github-com-bwesterb-go-ristretto")
+ (version "1.2.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bwesterb/go-ristretto")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0h508v790wk6g8jq0gh18296xl87vmgc4fhwnac7mk6i5g3mz6v4"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:unpack-path "github.com/bwesterb/go-ristretto"
+ #:import-path "github.com/bwesterb/go-ristretto/edwards25519"))
+ (home-page "https://github.com/bwesterb/go-ristretto")
+ (synopsis "Operations on the Ristretto prime-order group")
+ (description "This is a pure Go implementation of the group operations on
+the Ristretto prime-order group built from Edwards25519.")
+ (license license:expat)))
+
(define-public go-github-com-cespare-xxhash
(package
(name "go-github-com-cespare-xxhash")
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 1d7ad01af2..e19ca4f5ff 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -1,4 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
@@ -98,6 +99,45 @@
API service accounts for Go.")
(license license:asl2.0)))
+(define-public go-github-com-alexliesenfeld-health
+ (package
+ (name "go-github-com-alexliesenfeld-health")
+ (version "0.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alexliesenfeld/health")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fchlvxwidsscskwq07vhxfwcn5wbigbizi51619l8gg09mr158q"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/alexliesenfeld/health"
+ #:phases #~(modify-phases %standard-phases
+ ;; Examples requires additional dependencies and comes with
+ ;; their own go.mod, consider to pack it as separate
+ ;; package if required.
+ (add-after 'unpack 'remove-examples
+ (lambda* (#:key import-path #:allow-other-keys)
+ (delete-file-recursively
+ (string-append "src/" import-path "/examples")))))))
+ (native-inputs (list go-github-com-stretchr-testify))
+ (home-page "https://github.com/alexliesenfeld/health")
+ (synopsis "Simple and flexible health check library for Go")
+ (description
+ "This library provides a @code{http.Handler} that acts as a health
+endpoint. It can be used by cloud infrastructure or other services to
+determine the availability of an application.
+
+Rather than simply returning a response with HTTP status code 200, this
+library allows building health checks that test the availability of all
+required dependencies. The HTTP response contains the aggregated health
+result and details about the health status of each component.")
+ (license license:expat)))
+
(define-public go-github-com-andybalholm-cascadia
(package
(name "go-github-com-andybalholm-cascadia")
@@ -964,6 +1004,35 @@ compliant cache for HTTP responses. It is only suitable for use as a
shared proxy).")
(license license:expat))))
+(define-public go-github-com-hashicorp-go-cleanhttp
+ (package
+ (name "go-github-com-hashicorp-go-cleanhttp")
+ (version "0.5.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hashicorp/go-cleanhttp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1i5xslizzwd966w81bz6dxjwzgml4q9bwqa186bsxd1vi8lqxl9p"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/hashicorp/go-cleanhttp"))
+ (home-page "https://github.com/hashicorp/go-cleanhttp")
+ (synopsis "Functions for accessing clean Go @code{http.Client} values")
+ (description
+ "The Go standard library contains a default @code{http.Client} and it is
+a common idiom to tweak it as necessary. Unfortunately, this is a shared
+value, and it is not uncommon for libraries to assume that they are free to
+modify it at will. This package provides some simple functions to get a
+\"clean\" @code{http.Client}, namely one that uses the same default values as
+the Go standard library, but returns a client that does not share any state
+with other clients.")
+ (license license:mpl2.0)))
+
(define-public go-github-com-hjson-hjson-go
(package
(name "go-github-com-hjson-hjson-go")
@@ -1166,6 +1235,94 @@ router.")
(description "@code{bluemonday} is a HTML sanitizer implemented in Go.")
(license license:bsd-3)))
+(define-public go-github-com-multiformats-go-multiaddr
+ ;; This commit is from <2018-10-01> and associated with GX package manager,
+ ;; since that time the project has changed versing stile and GX is dropped.
+ ;; Current versioned tag is v0.12.2 <2024-01-26>.
+ (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
+ (revision "0"))
+ (package
+ (name "go-github-com-multiformats-go-multiaddr")
+ (version (git-version "1.3.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multiaddr")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/multiformats/go-multiaddr"))
+ (native-inputs
+ (list go-github-com-gxed-hashland-keccakpg
+ go-github-com-minio-blake2b-simd
+ go-github-com-minio-sha256-simd
+ go-github-com-mr-tron-base58
+ go-github-com-multiformats-go-multihash
+ go-github-com-spaolacci-murmur3
+ go-golang-org-x-crypto))
+ (home-page "https://github.com/multiformats/go-multiaddr")
+ (synopsis "Composable and future-proof network addresses")
+ (description
+ "Multiaddr is a standard way to represent addresses that does the
+following:
+
+@itemize
+@item Support any standard network protocols.
+@item Self-describe (include protocols).
+@item Have a binary packed format.
+@item Have a nice string representation.
+@item Encapsulate well.
+@end itemize\n")
+ (license license:expat))))
+
+(define-public go-github-com-multiformats-go-multiaddr-net
+ ;; This commit is from <2018-10-01> and associated with GX package manager,
+ ;; since that time the project has changed versing stile and GX is dropped.
+ ;; The latest versioned tag is v0.1.5 <2020-04-30>. The project is archved
+ ;; on <2021-10-05>.
+ (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
+ (revision "0"))
+ (package
+ (name "go-github-com-multiformats-go-multiaddr-net")
+ (version (git-version "1.6.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-multiaddr-net")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ ;; TODO: Tests fail because they try to access the network.
+ #:tests? #f
+ #:import-path "github.com/multiformats/go-multiaddr-net"))
+ (native-inputs
+ (list go-github-com-gxed-hashland-keccakpg
+ go-github-com-minio-blake2b-simd
+ go-github-com-minio-sha256-simd
+ go-github-com-mr-tron-base58
+ go-github-com-multiformats-go-multiaddr
+ go-github-com-multiformats-go-multihash
+ go-github-com-spaolacci-murmur3
+ go-golang-org-x-crypto))
+ (home-page "https://github.com/multiformats/go-multiaddr-net")
+ (synopsis "Multiaddress net tools")
+ (description
+ "This package provides Multiaddr specific versions of common functions
+in stdlib's @command{net} package. This means wrappers of standard net
+symbols like @command{net.Dial} and @command{net.Listen}, as well as
+conversion to and from @command{net.Addr}.")
+ (license license:expat))))
+
(define-public go-github-com-nwidger-jsoncolor
(package
(name "go-github-com-nwidger-jsoncolor")
@@ -1293,6 +1450,81 @@ Caching.")
to jQuery to the Go language.")
(license license:bsd-3)))
+(define-public go-github-com-quic-go-qpack
+ (package
+ (name "go-github-com-quic-go-qpack")
+ (version "0.4.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/quic-go/qpack")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00mjz445hhx4yar5l8p21bpp4d06jyg2ajw0ax7bh64d37l4kx39"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ ;; Tests require ginkgo v2.
+ #:tests? #f
+ #:go go-1.20
+ #:import-path "github.com/quic-go/qpack"))
+ (propagated-inputs
+ (list go-github-com-onsi-ginkgo
+ go-github-com-onsi-gomega
+ go-golang-org-x-net))
+ (home-page "https://github.com/quic-go/qpack")
+ (synopsis "Minimal QPACK (RFC 9204) implementation for Go")
+ (description
+ "A minimal QPACK (RFC 9204) implementation in Go. It is minimal in the sense
+that it doesn't use the dynamic table at all, but just the static table and (Huffman
+encoded) string literals. Wherever possible, it reuses code from the
+@url{https://github.com/golang/net/tree/master/http2/hpack, HPACK implementation in
+the Go standard library}.")
+ (license license:expat)))
+
+(define-public go-github-com-quic-go-quic-go
+ (package
+ (name "go-github-com-quic-go-quic-go")
+ (version "0.39.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/quic-go/quic-go")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0acabl3cz48nxpggc5s7fwxpmr5amyi09jygn5m5xxkkbhqs2cxq"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ ;; XXX More packages required...
+ #:tests? #f
+ #:go go-1.20
+ #:import-path "github.com/quic-go/quic-go"))
+ (propagated-inputs
+ (list go-github-com-cheekybits-genny
+ go-github-com-golang-protobuf-proto
+ go-github-com-marten-seemann-chacha20
+ go-github-com-quic-go-qpack
+ go-github-com-quic-go-qtls-go1-20
+ go-golang-org-x-crypto
+ go-golang-org-x-exp
+ go-golang-org-x-net
+ go-golang-org-x-sync
+ go-golang-org-x-sys))
+ (home-page "https://github.com/quic-go/quic-go")
+ (synopsis "QUIC in Go")
+ (description
+ "This package provides a Go language implementation of the QUIC network
+protocol.")
+ (license license:expat)))
+
+(define-public go-github-com-lucas-clemente-quic-go
+ (deprecated-package "go-github-com-lucas-clemente-quic-go" go-github-com-quic-go-quic-go))
+
(define-public go-github-com-sourcegraph-jsonrpc2
(package
(name "go-github-com-sourcegraph-jsonrpc2")
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 0b3db6e379..cf0b52a043 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -237,6 +237,31 @@ interface around the standard library's @code{time} package so that the applicat
can use the realtime clock while tests can use the mock clock.")
(license license:expat)))
+(define-public go-github-com-beorn7-perks-quantile
+ (package
+ (name "go-github-com-beorn7-perks-quantile")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/beorn7/perks")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/beorn7/perks/quantile"
+ #:unpack-path "github.com/beorn7/perks"))
+ (home-page "https://github.com/beorn7/perks")
+ (synopsis "Compute approximate quantiles over an unbounded data stream")
+ (description
+ "Perks contains the Go package @code{quantile} that computes
+approximate quantiles over an unbounded data stream within low memory and CPU
+bounds.")
+ (license license:expat)))
+
(define-public go-github-com-bitly-go-hostpool
(package
(name "go-github-com-bitly-go-hostpool")
@@ -285,28 +310,51 @@ information and periodically output metrics")
(license license:expat)))
(define-public go-github-com-blang-semver
- (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
- (revision "0"))
- (package
- (name "go-github-com-blang-semver")
- (version (git-version "0.0.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/blang/semver")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/blang/semver"))
- (home-page "https://github.com/blang/semver")
- (synopsis "Semantic versioning library written in Go")
- (description
- "Semver is a library for Semantic versioning written in Go.")
- (license license:expat))))
+ (package
+ (name "go-github-com-blang-semver")
+ (version "3.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/blang/semver")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16s66zbfkn35msmxpkiwf5dv91kzw7yzxzkcv8ma44j7lbgzx5qk"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/blang/semver"))
+ (home-page "https://github.com/blang/semver")
+ (synopsis "Semantic versioning library written in Go")
+ (description
+ "Semver is a library for Semantic versioning written in Go.")
+ (license license:expat)))
+
+(define-public go-github-com-blang-semver-v4
+ (package
+ (inherit go-github-com-blang-semver)
+ (name "go-github-com-blang-semver-v4")
+ (version "4.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/blang/semver")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14h9ys4n4kx9cbj42lkdf4i5k3nkll6sd62jcvl7cs565v6fiknz"))))
+ (arguments
+ (list
+ #:import-path "github.com/blang/semver/v4"
+ #:unpack-path "github.com/blang/semver"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-examples
+ (lambda* (#:key import-path #:allow-other-keys)
+ (delete-file-recursively
+ (string-append "src/" import-path "/examples")))))))))
(define-public go-github-com-bmizerany-perks-quantile
(package
@@ -853,6 +901,40 @@ expressing configuration which is easy for both humans and machines to read.")
(home-page "https://github.com/hashicorp/hcl")
(license license:mpl2.0)))
+(define-public go-github-com-hashicorp-go-hclog
+ (package
+ (name "go-github-com-hashicorp-go-hclog")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hashicorp/go-hclog")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1lvr4ga95a0xb62vgq1hy558x3r65hn2d0h7bf0a88lsfsrcik0n"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/hashicorp/go-hclog"))
+ (propagated-inputs
+ (list go-github-com-fatih-color
+ go-github-com-mattn-go-isatty
+ go-golang-org-x-tools))
+ (native-inputs
+ (list go-github-com-stretchr-testify))
+ (home-page "https://github.com/hashicorp/go-hclog")
+ (synopsis "Key/value logging interface for Go")
+ (description
+ "This package provides a simple key/value logging interface for Golang
+for use in development and production environments. Unlike the standard
+library @code{log} package, this package provides logging levels that provide
+decreased output based upon the desired amount of output. It also comes with
+a command-line program @code{hclogvet} that can be used to check that the logging level
+methods on @code{hclog.Logger} are used correctly.")
+ (license license:expat)))
+
(define-public go-github-com-hashicorp-go-multierror
(package
(name "go-github-com-hashicorp-go-multierror")
@@ -987,6 +1069,83 @@ increment versions.")
@end itemize")
(license license:bsd-3)))
+(define-public go-github-com-jbenet-go-random
+ (package
+ (name "go-github-com-jbenet-go-random")
+ (version "0.0.0-20190219211222-123a90aedc0c")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jbenet/go-random")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0kgx19m8p76rmin8s8y6j1padciv1dx37qzy7jkh9bw49ai3haw3"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/jbenet/go-random"))
+ (propagated-inputs
+ (list go-github-com-dustin-go-humanize))
+ (home-page "https://github.com/jbenet/go-random")
+ (synopsis "Go library and a program that outputs randomness")
+ (description
+ "This is a Unix utility that outputs randomness. It is a thin
+wrapper around @code{crypto/rand}.")
+ (license license:expat)))
+
+(define-public go-github-com-jbenet-go-temp-err-catcher
+ (package
+ (name "go-github-com-jbenet-go-temp-err-catcher")
+ (version "0.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jbenet/go-temp-err-catcher")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0n482jhh6jwq43jj21xkq8grqzx78hjh7f44p0q3n01zp1dsh97r"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/jbenet/go-temp-err-catcher"))
+ (home-page "https://github.com/jbenet/go-temp-err-catcher")
+ (synopsis "Error handling helper library")
+ (description "Package @code{temperrcatcher} provides a @code{TempErrCatcher}
+object, which implements simple error-retrying functionality.")
+ (license license:expat)))
+
+(define-public go-github-com-jbenet-goprocess
+ (package
+ (name "go-github-com-jbenet-goprocess")
+ (version "0.1.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jbenet/goprocess")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1z4a5skx9kh2c727pc6zz0vhf9v8acd320s7z0f1kwy3y1nbdhjk"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/jbenet/goprocess"))
+ (native-inputs
+ (list go-github-com-jbenet-go-cienv))
+ (home-page "https://github.com/jbenet/goprocess")
+ (synopsis "Manage process life cycles in Go")
+ (description
+ "@code{goprocess} introduces a way to manage process lifecycles in
+Go. It is much like @code{go.net/context} (it actually uses a Context), but it is
+more like a Context-WaitGroup hybrid. @code{goprocess} is about being able to start
+and stop units of work, which may receive @code{Close} signals from many clients.")
+ (license license:expat)))
+
(define-public go-github-com-jinzhu-copier
(package
(name "go-github-com-jinzhu-copier")
@@ -1010,6 +1169,31 @@ increment versions.")
struct to another.")
(license license:expat)))
+(define-public go-github-com-josharian-intern
+ (package
+ (name "go-github-com-josharian-intern")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/josharian/intern")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1za48ppvwd5vg8vv25ldmwz1biwpb3p6qhf8vazhsfdg9m07951c"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/josharian/intern"))
+ (home-page "https://github.com/josharian/intern")
+ (synopsis "String interning for Go")
+ (description
+ "This library defines functions to perform string interning in Go,
+storing only one copy of each unique string in memory. All functions may be
+called concurrently with themselves and each other.")
+ (license license:expat)))
+
(define-public go-github-com-k0kubun-pp
(package
(name "go-github-com-k0kubun-pp")
@@ -1182,6 +1366,30 @@ command line flags, config files, and default struct values.")
@url{https://github.com/judwhite/go-svc/raw/master/svc/svc_windows_test.go,here}.")
(license license:expat))))
+(define-public go-github-com-multiformats-go-varint
+ (package
+ (name "go-github-com-multiformats-go-varint")
+ (version "0.0.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multiformats/go-varint")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0l4s0z3rc3d350zp6qximl1jjhic6l8w74wkmx244jgfzsxd93af"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/mreiferson/go-options"))
+ (home-page "https://github.com/mreiferson/go-options")
+ (synopsis "Varint helpers that enforce minimal encoding")
+ (description
+ "This package provides a functionality for encoding and decoding unsigned
+varints.")
+ (license license:expat)))
+
(define-public go-github-com-nats-io-nats-go
(package
(name "go-github-com-nats-io-nats-go")
@@ -1685,6 +1893,34 @@ query information regarding the number of CPUs available to the system.")
weighted moving averages}.")
(license license:expat)))
+(define-public go-github-com-whyrusleeping-go-sysinfo
+ (package
+ (name "go-github-com-whyrusleeping-go-sysinfo")
+ (version "0.0.0-20190219211824-4a357d4b90b1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/whyrusleeping/go-sysinfo")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0s6yjp9incc579wbbga33vq0hcanv8j2xh9l90ya0r4fihz39jiq"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/whyrusleeping/go-sysinfo"))
+ (propagated-inputs
+ (list go-github-com-dustin-go-humanize))
+ (home-page "https://github.com/whyrusleeping/go-sysinfo")
+ (synopsis "Package to extract system information")
+ ;; There is not much information provided by the project, see
+ ;; <https://github.com/whyrusleeping/go-sysinfo/issues>.
+ (description
+ "This packages provides a basic system stats like @code{DiskUsage} and
+@code{MemoryInfo}.")
+ (license license:expat)))
+
(define-public go-go-uber-org-automaxprocs
(package
(name "go-go-uber-org-automaxprocs")
@@ -1756,6 +1992,22 @@ Go.")
;;; Executables:
;;;
+(define-public go-hclogvet
+ (package
+ (inherit go-github-com-hashicorp-go-hclog)
+ (name "go-hclogvet")
+ (arguments
+ (list
+ #:import-path "github.com/hashicorp/go-hclog/hclogvet"
+ #:unpack-path "github.com/hashicorp/go-hclog"
+ #:install-source? #f))
+ (propagated-inputs
+ (list go-golang-org-x-tools))
+ (description
+ "@code{hclogvet} is a @code{go vet} tool for checking that the
+Trace/Debug/Info/Warn/Error methods on @code{hclog.Logger} are used
+correctly.")))
+
(define-public go-numcpus
(package
(inherit go-github-com-tklauser-numcpus)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index d12902290e..6533914f80 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -870,7 +870,8 @@ in the style of communicating sequential processes (@dfn{CSP}).")
("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures))))))
(define %go-1.18-x86_64-micro-architectures
- (list "x86_64-v1" "x86_64-v2" "x86_64-v3" "x86_64-v4"))
+ ;; GOAMD defaults to 'v1' so we match the default elsewhere.
+ (list "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
(define-public go-1.18
(package
@@ -5175,86 +5176,6 @@ maps, slices, or pointers, and copy their data as well instead of just their
references.")
(license license:expat)))
-(define-public go-github-com-multiformats-go-multiaddr
- (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
- (revision "0"))
- (package
- (name "go-github-com-multiformats-go-multiaddr")
- (version (git-version "1.3.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/multiformats/go-multiaddr")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path
- "github.com/multiformats/go-multiaddr"))
- (native-inputs
- (list go-github-com-multiformats-go-multihash
- go-github-com-gxed-hashland-keccakpg
- go-github-com-minio-blake2b-simd
- go-github-com-minio-sha256-simd
- go-github-com-mr-tron-base58
- go-github-com-spaolacci-murmur3
- go-golang-org-x-crypto))
- (home-page "https://github.com/multiformats/go-multiaddr")
- (synopsis "Composable and future-proof network addresses")
- (description "Multiaddr is a standard way to represent addresses that
-does the following:
-
-@itemize
-@item Support any standard network protocols.
-@item Self-describe (include protocols).
-@item Have a binary packed format.
-@item Have a nice string representation.
-@item Encapsulate well.
-@end itemize\n")
- (license license:expat))))
-
-(define-public go-github-com-multiformats-go-multiaddr-net
- (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
- (revision "0"))
- (package
- (name "go-github-com-multiformats-go-multiaddr-net")
- (version (git-version "1.6.3" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/multiformats/go-multiaddr-net")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
- (build-system go-build-system)
- (arguments
- (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
- ;; TODO: Tests fail because they try to access the network.
- #:tests? #f)))
- (native-inputs
- (list go-github-com-multiformats-go-multiaddr
- go-github-com-multiformats-go-multihash
- go-github-com-gxed-hashland-keccakpg
- go-github-com-minio-blake2b-simd
- go-github-com-minio-sha256-simd
- go-github-com-mr-tron-base58
- go-github-com-spaolacci-murmur3
- go-golang-org-x-crypto))
- (home-page "https://github.com/multiformats/go-multiaddr-net")
- (synopsis "Multiaddress net tools")
- (description "This package provides Multiaddr specific versions of
-common functions in stdlib's @command{net} package. This means wrappers of
-standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
-as conversion to and from @command{net.Addr}.")
- (license license:expat))))
-
(define-public go-github-com-whyrusleeping-tar-utils
(let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
(revision "0"))
@@ -6050,79 +5971,6 @@ implementation of generics.")
(home-page "https://github.com/cheekybits/genny/")
(license license:expat)))
-(define-public go-github-com-quic-go-qpack
- (package
- (name "go-github-com-quic-go-qpack")
- (version "0.4.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/quic-go/qpack")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "00mjz445hhx4yar5l8p21bpp4d06jyg2ajw0ax7bh64d37l4kx39"))))
- (build-system go-build-system)
- (arguments
- (list
- #:import-path "github.com/quic-go/qpack"
- ;; Tests require ginkgo v2.
- #:tests? #f
- #:go go-1.20))
- (propagated-inputs (list go-github-com-onsi-gomega
- go-github-com-onsi-ginkgo
- go-golang-org-x-net))
- (synopsis "Minimal QPACK (RFC 9204) implementation for Go")
- (description
- "A minimal QPACK (RFC 9204) implementation in Go. It is minimal in the sense
-that it doesn't use the dynamic table at all, but just the static table and (Huffman
-encoded) string literals. Wherever possible, it reuses code from the
-@url{https://github.com/golang/net/tree/master/http2/hpack, HPACK implementation in
-the Go standard library}.")
- (home-page "https://github.com/quic-go/qpack")
- (license license:expat)))
-
-(define-public go-github-com-quic-go-quic-go
- (package
- (name "go-github-com-quic-go-quic-go")
- (version "0.39.3")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/quic-go/quic-go")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0acabl3cz48nxpggc5s7fwxpmr5amyi09jygn5m5xxkkbhqs2cxq"))))
- (build-system go-build-system)
- (arguments
- (list #:import-path "github.com/quic-go/quic-go"
- ;; XXX More packages required...
- #:tests? #f
- #:go go-1.20))
- (propagated-inputs
- (list go-github-com-quic-go-qtls-go1-20
- go-github-com-quic-go-qpack
- go-golang-org-x-crypto
- go-github-com-cheekybits-genny
- go-github-com-marten-seemann-chacha20
- go-github-com-golang-protobuf-proto
- go-golang-org-x-crypto
- go-golang-org-x-exp
- go-golang-org-x-net
- go-golang-org-x-sys
- go-golang-org-x-sync))
- (synopsis "QUIC in Go")
- (description "This package provides a Go language implementation of the QUIC
-network protocol.")
- (home-page "https://github.com/quic-go/quic-go")
- (license license:expat)))
-
-(define-public go-github-com-lucas-clemente-quic-go
- (deprecated-package "go-github-com-lucas-clemente-quic-go" go-github-com-quic-go-quic-go))
-
(define-public go-github-com-lunixbochs-vtclean
(package
(name "go-github-com-lunixbochs-vtclean")
@@ -8518,29 +8366,6 @@ configuration languages, but other uses may be possible too.")
(description "This package implements a low-level key/value store in Go.")
(license license:expat)))
-(define-public go-github-com-bwesterb-go-ristretto
- (package
- (name "go-github-com-bwesterb-go-ristretto")
- (version "1.2.3")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/bwesterb/go-ristretto")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0h508v790wk6g8jq0gh18296xl87vmgc4fhwnac7mk6i5g3mz6v4"))))
- (build-system go-build-system)
- (arguments
- '(#:unpack-path "github.com/bwesterb/go-ristretto"
- #:import-path "github.com/bwesterb/go-ristretto/edwards25519"))
- (home-page "https://github.com/bwesterb/go-ristretto")
- (synopsis "operations on the Ristretto prime-order group")
- (description "This is a pure Go implementation of the group operations on
-the Ristretto prime-order group built from Edwards25519.")
- (license license:expat)))
-
(define-public go-github-com-rogpeppe-go-internal
(package
(name "go-github-com-rogpeppe-go-internal")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 58f977138a..231a1149a8 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -47,6 +47,7 @@
;;; Copyright © 2022 Evgeny Pisemsky <evgeny@pisemsky.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2023 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2024 Ilya Chernyshov <ichernyshovvv@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1088,7 +1089,7 @@ It has a nice, simple s-expression based syntax.")
(define-public guile-scheme-json-rpc
(package
(name "guile-scheme-json-rpc")
- (version "0.4.0")
+ (version "0.4.5a")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1097,14 +1098,15 @@ It has a nice, simple s-expression based syntax.")
(file-name (git-file-name name version))
(sha256
(base32
- "0jsampz2ahs18z6yh9b5l3lkj8ycnavs0vg9sjngdj3w3zvrdcvm"))))
+ "0356hm6phcfgvwvx3ys6b927v40jzb7qrfgvql7g78na24zp2cmi"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'change-to-guile-dir
(lambda _
(chdir "guile"))))))
- (inputs (list guile-3.0 guile-srfi-145 guile-srfi-180))
+ (inputs (list guile-3.0))
+ (propagated-inputs (list guile-srfi-145 guile-srfi-180))
(native-inputs (list pkg-config))
(synopsis "Library providing JSON-RPC capability for Guile Scheme")
(description
@@ -1117,7 +1119,7 @@ for calling methods on remote servers by exchanging JSON objects.")
(define-public guile-ares-rs
(package
(name "guile-ares-rs")
- (version "0.9.1")
+ (version "0.9.3")
(source
(origin
(method git-fetch)
@@ -1127,7 +1129,7 @@ for calling methods on remote servers by exchanging JSON objects.")
(file-name (git-file-name name version))
(sha256
(base32
- "173jg8z0cwq5r67lzxsmyir5f6cxd9i5gzb3qryq71cqq4h1c77n"))))
+ "021lg06c5lrp2j1qv8hl4jh4yq07k158h824kjv6b87bxqk7vq54"))))
(build-system guile-build-system)
(arguments
(list
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index 36eed11802..0a1065535b 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -241,10 +241,13 @@ written in Go.")
(snippet '(for-each delete-file-recursively
;; TODO: unbundle the rest as well
'("vendor/github.com/alecthomas"
- ;; "vendor/github.com/blang"
+ "vendor/github.com/benbjohnson/clock"
+ "vendor/github.com/beorn7/perks"
+ "vendor/github.com/blang"
"vendor/github.com/cespare"
- ;; TODO: Go files not found
- ;; "vendor/github.com/cheggaaa"
+ ;; TODO: kubo depends on v1.0.29 which is way too
+ ;; hard to back port.
+ ; "vendor/github.com/cheggaaa/pb"
"vendor/github.com/davecgh"
"vendor/github.com/dustin"
"vendor/github.com/flynn"
@@ -261,8 +264,6 @@ written in Go.")
;; "vendor/github.com/ipld"
"vendor/github.com/jackpal"
"vendor/github.com/klauspost"
- ;; TODO: Go files not found
- ;; "vendor/github.com/lucas-clemente"
"vendor/github.com/mattn"
"vendor/github.com/mgutz"
"vendor/github.com/minio"
@@ -306,20 +307,19 @@ written in Go.")
#~(string-append #$output "/bin/ipfs"))
"commands" "completion" "bash")))))))))
(inputs (list go-github-com-alecthomas-units
- ;; TODO: needs to be updated first
- ;; go-github-com-blang-semver
+ go-github-com-benbjohnson-clock
+ go-github-com-blang-semver-v4
go-github-com-cespare-xxhash
go-github-com-cheekybits-genny
- go-github-com-cheggaaa-pb-v3
go-github-com-davecgh-go-spew
go-github-com-dustin-go-humanize
go-github-com-flynn-noise
go-github-com-francoispqt-gojay
go-github-com-fsnotify-fsnotify
go-github-com-gogo-protobuf
- go-github-com-google-uuid
go-github-com-golang-groupcache-lru
go-github-com-golang-snappy
+ go-github-com-google-uuid
go-github-com-gorilla-mux
go-github-com-gorilla-websocket
go-github-com-jackpal-go-nat-pmp
@@ -344,12 +344,11 @@ written in Go.")
go-github-com-spaolacci-murmur3
go-github-com-stretchr-testify
go-github-com-syndtr-goleveldb
- go-gopkg-in-yaml-v2
- go-gopkg-in-yaml-v3
go-go-uber-org-atomic
go-go-uber-org-multierr
go-go-uber-org-zap
go-golang-org-x-crypto
+ go-golang-org-x-exp
go-golang-org-x-lint
go-golang-org-x-mod
go-golang-org-x-net
@@ -357,10 +356,11 @@ written in Go.")
go-golang-org-x-sync
go-golang-org-x-sys
go-golang-org-x-term
+ go-golang-org-x-text
go-golang-org-x-tools
go-golang-org-x-xerrors
- go-golang-org-x-exp
- go-golang-org-x-text
+ go-gopkg-in-yaml-v2
+ go-gopkg-in-yaml-v3
go-lukechampine-com-blake3))
(native-inputs
(append (if (%current-target-system)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 7245c2a870..3d33dc6a3a 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -19,6 +19,7 @@
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2024 Paul A. Patience <paul@apatience.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1289,7 +1290,7 @@ new Date();"))
(define-public openjdk11
(package
(name "openjdk")
- (version "11.0.17")
+ (version "11.0.22")
(source (origin
(method url-fetch)
(uri (string-append "https://openjdk-sources.osci.io/openjdk11/openjdk-"
@@ -1297,7 +1298,7 @@ new Date();"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "1prvqy0ysz0999wrhsrbz6vrknpqfihl9l74l16ph93g89dqi5ia"))
+ "18ca4syp9xlrqjgyjkb1sp9835riy6aym5xs81r8byrz6jlb2473"))
(modules '((guix build utils)))
(snippet
'(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))
@@ -1621,7 +1622,7 @@ new Date();"))
(define-public openjdk12
(make-openjdk
- openjdk11 "12.33" "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"
+ openjdk11 "12.33" "0pi2gwib3j2imi4l623iaywrmvfh9rqzh82lj2gxqbrmg55swvjf"
(source
(origin
(method url-fetch)
@@ -1629,7 +1630,7 @@ new Date();"))
(file-name (string-append name "-" version ".tar.bz2"))
(sha256
(base32
- "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"))
+ "0pi2gwib3j2imi4l623iaywrmvfh9rqzh82lj2gxqbrmg55swvjf"))
(modules '((guix build utils)))
(snippet
'(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))
@@ -1665,8 +1666,8 @@ blacklisted.certs.pem"
"#! java BlacklistedCertsConverter SHA-256\n"))))))))))
(define-public openjdk13
- (make-openjdk openjdk12 "13.0.13"
- "0pxf4dlig61k0pg7amg4mi919hzam7nzwckry01avgq1wj8ambji"
+ (make-openjdk openjdk12 "13.0.14"
+ "1v92i5rhahqkjw8mz09c9qasnxqc67ygy0y266kdmm534z0da755"
(source (origin
(inherit (package-source base))
(patches (search-patches "openjdk-13-classlist-reproducibility.patch"
@@ -1701,8 +1702,8 @@ blacklisted.certs.pem"
(define-public openjdk15
(make-openjdk
- openjdk14 "15.0.9"
- "1k3x06fv89l84ysjsyw8s89q8blghq85m6xjzv373x6297ln8n7a"
+ openjdk14 "15.0.10"
+ "0hdllv348bws6m992bh73jik18x0sv0k2m9l817b3zb7q802sp7x"
(source (origin
(inherit (package-source base))
(modules '())
@@ -1729,8 +1730,8 @@ blacklisted.certs.pem"
(define-public openjdk17
(make-openjdk
- openjdk16 "17.0.5"
- "1asnysg6kxdkrmb88y6qihdr12ljsyxv0mg6hlcs7cwxgsdlqkfs"
+ openjdk16 "17.0.10"
+ "1bq1rqnipz6wdr05s20gm8nlpb3328ljxckzvc5ag0gf7fzlhn5f"
(source (origin
(inherit (package-source base))
(patches (search-patches "openjdk-15-xcursor-no-dynamic.patch"))))
@@ -1745,8 +1746,8 @@ blacklisted.certs.pem"
(("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))))))))
(define-public openjdk18
- (make-openjdk openjdk17 "18.0.2"
- "1yimfdkwpinhg5cf1mcrzk9xvjwnray3cx762kypb9jcwbranjwx"))
+ (make-openjdk openjdk17 "18.0.2.1"
+ "0zxanjzz4p3psqahlidh55vx1ldanq70c2ygk3gcfn9a94vnr9rg"))
(define-public openjdk19
(make-openjdk openjdk18 "19.0.2"
@@ -1766,12 +1767,12 @@ blacklisted.certs.pem"
(setenv "SOURCE_DATE_EPOCH" "1234567890")))))))))
(define-public openjdk20
- (make-openjdk openjdk19 "20"
- "0pk5lpwijfv9qv7vwpsq2xfklbnqdfs6xbdhc5aamrpar4xi4ykx"))
+ (make-openjdk openjdk19 "20.0.2"
+ "1af1v2c3d8x4c6shzl6cv9qwq7a4hn5map5pjh9vjcky0hkzd489"))
(define-public openjdk21
- (make-openjdk openjdk20 "21"
- "06wjfwrkqykjdkis2s1nh91cy8vwincnmc699cxvyk3fc12jf3vw"
+ (make-openjdk openjdk20 "21.0.2"
+ "0d1g3wnzr5whjpq8gvxq0h7kd7lxd3xgc6bh3kg8vzz096asn0kj"
(source (origin
(inherit (package-source base))
(patches (search-patches "openjdk-21-fix-rpath.patch"
@@ -13685,14 +13686,14 @@ network protocols, and core version control algorithms.")
":"
share "abcl-contrib.jar")))
(display (string-append
- "#!" (which "sh") "\n"
+ "#!" (which "bash") "\n"
"if [[ -z $CLASSPATH ]]; then\n"
" cp=\"" classpath "\"\n"
"else\n"
" cp=\"" classpath ":$CLASSPATH\"\n"
"fi\n"
"exec " (which "java")
- " -cp $cp org.armedbear.lisp.Main $@\n")))))
+ " -cp \"$cp\" org.armedbear.lisp.Main \"$@\"\n")))))
(chmod (string-append bin "abcl") #o755)
#t))))))
(home-page "https://abcl.org/")
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index 84d12f6b13..c6e7443f85 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2021 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Frank Pursel <frank.pursel@gmail.com>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -835,15 +836,16 @@ roots, or wrestle with obscure build systems.")
"06pywwpmfwjz225h59wf90q96a2fd66qfcw5xa6m6y9k9k7glnx4"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags
- (list "prefix="
- (string-append "DESTDIR=" %output))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (replace 'check
- (lambda _
- (invoke "make" "microbench"))))))
+ (list #:make-flags
+ #~(list "prefix="
+ (string-append "DESTDIR=" #$output)
+ #$@(if (target-riscv64?) '("LDFLAGS=-latomic") '()))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "microbench")))))))
(home-page "https://bellard.org/quickjs/")
(synopsis "Small embeddable Javascript engine")
(description "QuickJS supports the ES2020 specification including modules,
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 2c93075544..54850913f8 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2020, 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2020, 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;;
@@ -1787,7 +1787,7 @@ the KDE Plasma 5 desktop.")
qtdeclarative-5
qtquickcontrols-5
qtquickcontrols2-5
- qtwayland
+ qtwayland-5
qtx11extras
wayland
wayland-protocols
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 7ae9f98299..f0f6333ddd 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -497,17 +497,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "mainline" kernel.
-(define-public linux-libre-6.7-version "6.7.6")
+(define-public linux-libre-6.7-version "6.7.9")
(define-public linux-libre-6.7-gnu-revision "gnu")
(define deblob-scripts-6.7
(linux-libre-deblob-scripts
linux-libre-6.7-version
linux-libre-6.7-gnu-revision
(base32 "1ddngihfmwffgvxxv8xsppi76r6grvdxr6zzfzvgl9qw07a6c9fd")
- (base32 "1vb2pd0wdfl9p5qi8hj1i5xg1p4pyrp01iqhap9xbb2yai4l80j5")))
+ (base32 "1lhsy2qnmz47r8m926k1kng912m64j7pnpcvd1ddgdqpq5byp88j")))
(define-public linux-libre-6.7-pristine-source
(let ((version linux-libre-6.7-version)
- (hash (base32 "1lrp7pwnxnqyy8c2l4n4nz997039gbnssrfm8ss8kl3h2c7fr2g4")))
+ (hash (base32 "0inkvyrvq60j9lxgivkivq3qh94lsfc1dpv6vwgxmy3q0zy37mqg")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.7)))
@@ -515,17 +515,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
-(define-public linux-libre-6.6-version "6.6.18")
+(define-public linux-libre-6.6-version "6.6.21")
(define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6
(linux-libre-deblob-scripts
linux-libre-6.6-version
linux-libre-6.6-gnu-revision
(base32 "1qm8f3fq4yx59f7b6yky5ryyf229ypxnry922sr8cy0s7mp62cmv")
- (base32 "0kavbby960k7wg355p3hjb9v1c4gnk8dv3lkfhpz44ayhv7kihg5")))
+ (base32 "014w19b9igdy3rpwrqn21why151zlc9hdx2b1qvdkjsbz6smx3lp")))
(define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version)
- (hash (base32 "07cv97l5jiakmmv35n0ganvqfr0590b02f3qb617qkx1zg2xhhsf")))
+ (hash (base32 "0mz420w99agr7jv1jgqfr4fjhzbv005xif086sqx556s900l62zf")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.6)))
@@ -533,37 +533,37 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-6.1-version "6.1.79")
+(define-public linux-libre-6.1-version "6.1.81")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
linux-libre-6.1-version
linux-libre-6.1-gnu-revision
(base32 "1sf80f2i4vf888xjcn84ymn4w5ynn30ib9033zwmv7f09yvfhapy")
- (base32 "0vghx43lf7madaihsm279qnw8fsmgwq6p7r39r2m645mvap8mjxw")))
+ (base32 "08y5smwgbl2l74dlk850pbvn8d1y14cqvll2gbx80vmvfwlzp8c3")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
- (hash (base32 "16xkd0hcslqlcf55d4ivzhf1fkhfs5yy0m9arbax8pmm5yi9r97s")))
+ (hash (base32 "0arl96yrqplbmp2gjyqcfma1lgc30kbn95m0sflv0yyldwf8dg8f")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
-(define-public linux-libre-5.15-version "5.15.149")
+(define-public linux-libre-5.15-version "5.15.151")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
linux-libre-5.15-version
linux-libre-5.15-gnu-revision
(base32 "18ac30kxg2mf2f6gk3p935hzhz2qs110jy4xwk21kblnnkskbxj8")
- (base32 "14pw0yl0yxdgcdp01rpi91ylil9irwzxfq04kfvn3gg2abaq37bn")))
+ (base32 "1a4la9nfdl5qiyfbzhgbqhl638wy1crkgpfnfaj0qf3hg4jsg0g4")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
- (hash (base32 "1c01fnaghj55mkgsgddznq1zq4mswsa05rz00kmh1d3y6sd8115x")))
+ (hash (base32 "0jby224ncdardjwmf8c59s5j71inpvdlzah984ilf2b6y85pc7la")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
-(define-public linux-libre-5.10-version "5.10.210")
+(define-public linux-libre-5.10-version "5.10.212")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@@ -573,12 +573,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "12csh2zyjrqzgqcv799gv8h4xaw1irxh2zqddn4jqp5p7psx4j5k")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "0vggj3a71awc1w803cdzrnkn88rxr7l1xh9mmdcw9hzxj1d3r9jf")))
+ (hash (base32 "14vll2bghd52wngjxy78hgglydcxka59yziji0w56dcdpmky9wqc")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.269")
+(define-public linux-libre-5.4-version "5.4.271")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@@ -588,12 +588,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0x0xg0fcykpd117x3q0gim8jilhx922ashhckjvafxv2gk2zzjhj")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "1kqqm4hpif3jy2ycnb0dfjgzyn18vqhm1i5q7d7rkisks33bwm7z")))
+ (hash (base32 "0l2qv4xlhnry9crs90rkihsxyny6jz8kxw08bfad7nys9hrn3g6d")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.307")
+(define-public linux-libre-4.19-version "4.19.309")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
@@ -603,7 +603,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0fgkp3v7qgqpn7l1987xcwwlrmwsbscqnxfv06p8nkavrhymrv3c")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "0lp3fc7sqy48vpcl2g0n1bz7i1hp9k0nlz3i1xfh9l056ihzzvl3")))
+ (hash (base32 "1yc45kfiwdqsqa11sxafs82b0day6qvgjcll8rx9vipidsmagbcm")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
@@ -1100,24 +1100,24 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
;;; Generic kernel packages.
;;;
-(define-public linux-libre-6.6
- (make-linux-libre* linux-libre-6.6-version
- linux-libre-6.6-gnu-revision
- linux-libre-6.6-source
+(define-public linux-libre-6.7
+ (make-linux-libre* linux-libre-6.7-version
+ linux-libre-6.7-gnu-revision
+ linux-libre-6.7-source
'("x86_64-linux" "i686-linux" "armhf-linux"
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
-(define-public linux-libre-version linux-libre-6.6-version)
-(define-public linux-libre-gnu-revision linux-libre-6.6-gnu-revision)
-(define-public linux-libre-pristine-source linux-libre-6.6-pristine-source)
-(define-public linux-libre-source linux-libre-6.6-source)
-(define-public linux-libre linux-libre-6.6)
+(define-public linux-libre-version linux-libre-6.7-version)
+(define-public linux-libre-gnu-revision linux-libre-6.7-gnu-revision)
+(define-public linux-libre-pristine-source linux-libre-6.7-pristine-source)
+(define-public linux-libre-source linux-libre-6.7-source)
+(define-public linux-libre linux-libre-6.7)
-(define-public linux-libre-6.7
- (make-linux-libre* linux-libre-6.7-version
- linux-libre-6.7-gnu-revision
- linux-libre-6.7-source
+(define-public linux-libre-6.6
+ (make-linux-libre* linux-libre-6.6-version
+ linux-libre-6.6-gnu-revision
+ linux-libre-6.6-source
'("x86_64-linux" "i686-linux" "armhf-linux"
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
@@ -2005,17 +2005,6 @@ GnuPG-based password manager like @code{pass}.")
(package
(inherit linux-libre)
(name "linux-libre-documentation")
- (source
- (origin
- (inherit linux-libre-source)
- (patches
- (list
- (origin
- (method url-fetch)
- (uri "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/Documentation/sphinx/kernel_feat.py?id=c23de7ceae59e4ca5894c3ecf4f785c50c0fa428")
- (sha256
- (base32
- "0inw2pl7nh82sw8bhvvzqa61552bisl78yc1nyl2x6dmpyppzrld")))))))
(arguments
(list
#:tests? #f
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 6ee8ef22d2..a5c34908d0 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -43,6 +43,7 @@
;;; Copyright © 2023 Raven Hallsby <karl@hallsby.com>
;;; Copyright © 2024 Michal Atlas <michal_atlas+git@posteo.net>
;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au>
+;;; Copyright © 2024 Nik Gaffney <nik@fo.am>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -250,6 +251,39 @@ accessors, hash-tables, sets, uiop:run-program, arrays and a few others.")
;; TODO: Tests fail on call to coreutils echo for ecl.
`(#:tests? #f))))
+(define-public sbcl-st-json
+ (let ((commit "4a0025bcc5b6921454822f1b9f38f697b4eeaf43")
+ (revision "0"))
+ (package
+ (name "sbcl-st-json")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/marijnh/ST-JSON")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06qrhr5iw73k96lai2x9w52l6gnmlxy7fsr0r35gz6nz1f71x7gx"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://marijnhaverbeke.nl/st-json/")
+ (synopsis "JSON for Common Lisp")
+ (description
+ "ST-JSON (@code{ST} because it originated at Streamtech) is a Common Lisp
+ library for encoding and decoding JSON values (as specified on json.org).
+
+This library does mostly the same thing as CL-JSON, but is simpler and more
+precise about types (distinguishing boolean false, the empty array, and the
+empty object).")
+ (license license:zlib))))
+
+(define-public cl-st-json
+ (sbcl-package->cl-source-package sbcl-st-json))
+
+(define-public ecl-st-json
+ (sbcl-package->ecl-package sbcl-st-json))
+
(define-public sbcl-stdutils
(let ((commit "4a4e5a4036b815318282da5dee2a22825369137b")
(revision "0"))
@@ -1221,6 +1255,43 @@ Features:
(define-public ecl-coleslaw
(sbcl-package->ecl-package sbcl-coleslaw))
+(define-public sbcl-cl-all
+ (let ((commit "4ce1ea9d9f33c0dd6212044e7952a0c854757ace")
+ (revision "0"))
+ (package
+ (name "sbcl-cl-all")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shinmera/cl-all")
+ (commit commit)))
+ (file-name (git-file-name "cl-all" version))
+ (sha256
+ (base32 "0n4sjarj373zpxn78m32rmhxnsnr8qahdslrd9vrkkwjpzar2bwp"))))
+ (build-system asdf-build-system/sbcl)
+ (outputs '("out" "bin"))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'create-asdf-configuration 'build-program
+ (lambda* (#:key outputs #:allow-other-keys)
+ (build-program
+ (string-append (assoc-ref outputs "bin") "/bin/cl-all")
+ outputs
+ #:entry-program '((cl-all:toplevel arguments))
+ #:compress? #t))))))
+ (home-page "https://github.com/Shinmera/cl-all")
+ (synopsis "Evaluate Common Lisp expressions in multiple implementations")
+ (description "@samp{cl-all} is a library and script for evaluating Common
+Lisp expressions in multiple implementations.")
+ (license license:zlib))))
+
+(define-public cl-all
+ (sbcl-package->cl-source-package sbcl-cl-all))
+
(define-public sbcl-tripod
(let ((commit "b019a27cd7eb895870f84b0eb6c3edc5d7b05928")
(revision "1"))
@@ -1654,6 +1725,42 @@ expression library for Common Lisp. It is a non-recursive, backtracing VM.")
(define-public cl-re
(sbcl-package->cl-source-package sbcl-re))
+(define-public sbcl-boost-json
+ (let ((commit "eca166f5ff1f10bad14e00b9fd5bf9fcf3691a47")
+ (revision "0"))
+ (package
+ (name "sbcl-boost-json")
+ (version (git-version "1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cl-boost/json")
+ (commit commit)))
+ (file-name (git-file-name "cl-boost-json" version))
+ (sha256
+ (base32 "12k0470899qsll2qixksxf2vrhjmskk3nzp1di9k04n1b29nrakd"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; See <https://github.com/cl-boost/json/pull/2>.
+ (add-after 'unpack 'fix-decode-symbol
+ (lambda _
+ (substitute* '("decode.lisp" "encode.lisp")
+ (("formfeed") "page")))))))
+ (home-page "https://github.com/cl-boost/json")
+ (synopsis "JSON encoding and decoding for Common Lisp")
+ (description
+ "BOOST-JSON is a simple JSON parsing library for Common Lisp.")
+ (license license:asl2.0))))
+
+(define-public cl-boost-json
+ (sbcl-package->cl-source-package sbcl-boost-json))
+
+(define-public ecl-boost-json
+ (sbcl-package->ecl-package sbcl-boost-json))
+
(define-public sbcl-boost-parse
(let ((commit "c8f7e536b950752f3e35003e7ee0446e0fd51b50")
(revision "0"))
@@ -2884,6 +2991,57 @@ management.")
(define-public ecl-eager-future2
(sbcl-package->ecl-package sbcl-eager-future2))
+(define-public sbcl-easy-routes
+ (let ((commit "7832f8bf3d07825b5eb967a2ef04da7c40c18248")
+ (revision "0"))
+ (package
+ (name "sbcl-easy-routes")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mmontone/easy-routes")
+ (commit commit)))
+ (file-name (git-file-name "cl-easy-routes" version))
+ (sha256
+ (base32 "1banw54kz2llzb9h5sm47ckfc9l348m7qncm0npsy0w837rxkyzx"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:asd-systems '("easy-routes"
+ "easy-routes+djula"
+ "easy-routes+errors")))
+ (native-inputs
+ (list sbcl-stefil))
+ (inputs
+ (list sbcl-djula
+ sbcl-hunchentoot
+ sbcl-hunchentoot-errors
+ sbcl-routes))
+ (home-page "https://github.com/mmontone/easy-routes/")
+ (synopsis "Routes handling utility on top of Hunchentoot")
+ (description
+ "EASY-ROUTES is yet another routes handling system on top of
+Hunchentoot. It's just glue code for Restas routing subsystem (CL-ROUTES).
+
+It supports:
+@itemize
+@item dispatch based on HTTP method
+@item arguments extraction from the url path
+@item decorators
+@item URL generation from route names
+@end itemize
+
+This package provides EASY-ROUTES, EASY-ROUTES+DJULA and EASY-ROUTES+ERRORS
+systems.")
+ (license license:expat))))
+
+(define-public cl-easy-routes
+ (sbcl-package->cl-source-package sbcl-easy-routes))
+
+(define-public ecl-easy-routes
+ (sbcl-package->ecl-package sbcl-easy-routes))
+
(define-public sbcl-jpl-util
(let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
(package
@@ -3649,48 +3807,47 @@ writing code that contains string literals that contain code themselves.")
(sbcl-package->ecl-package sbcl-pythonic-string-reader))
(define-public sbcl-slime-swank
- (let ((commit "735258a26bb97e85d25f39e4bef83c1f80c12f5d")
- (revision "1"))
- (package
- (name "sbcl-slime-swank")
- (version (git-version "2.28" revision commit))
- (source
- (origin
- (file-name (git-file-name "cl-slime-swank" version))
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/slime/slime/")
- (commit commit)))
- (sha256
- (base32 "0prskgzfqjmn8sc7p9nklnd0n1plwcvh40slgh23km31raplmzk7"))
- (modules '((guix build utils)))
- (snippet
- ;; The doc folder drags `gawk' into the closure. Doc is already
- ;; provided by emacs-slime.
- `(begin
- (delete-file-recursively "doc")
- #t))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-systems '("swank" "swank/exts")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'set-fasl-directory
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "swank-loader.lisp"
- (("\\(probe-file fasl\\)" all)
- ;; Do not try to delete Guix store files.
- (string-append
- all "\n"
- " (not (equal (subseq (pathname-directory fasl) 1 3)"
- " '(\"gnu\" \"store\"))) ; XXX: GUIX PATCH"))))))))
- (home-page "https://github.com/slime/slime")
- (synopsis "Common Lisp Swank server")
- (description
- "This is only useful if you want to start a Swank server in a Lisp
+ ;; Update together with emacs-slime.
+ (package
+ (name "sbcl-slime-swank")
+ (version "2.29.1")
+ (source
+ (origin
+ (file-name (git-file-name "cl-slime-swank" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/slime/slime/")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "1fcasqsdfwsphkfx1vd3r5mr89vgvzb9g2dbw82mc9lijg1mr1ki"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; The doc folder drags `gawk' into the closure. Doc is already
+ ;; provided by emacs-slime.
+ `(begin
+ (delete-file-recursively "doc")
+ #t))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:asd-systems '("swank" "swank/exts")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-fasl-directory
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "swank-loader.lisp"
+ (("\\(probe-file fasl\\)" all)
+ ;; Do not try to delete Guix store files.
+ (string-append
+ all "\n"
+ " (not (equal (subseq (pathname-directory fasl) 1 3)"
+ " '(\"gnu\" \"store\"))) ; XXX: GUIX PATCH"))))))))
+ (home-page "https://github.com/slime/slime")
+ (synopsis "Common Lisp Swank server")
+ (description
+ "This is only useful if you want to start a Swank server in a Lisp
processes that doesn't run under Emacs. Lisp processes created by
@command{M-x slime} automatically start the server.")
- (license (list license:gpl2+ license:public-domain)))))
+ (license (list license:gpl2+ license:public-domain))))
(define-public cl-slime-swank
(sbcl-package->cl-source-package sbcl-slime-swank))
@@ -4241,6 +4398,36 @@ utilities that make it even easier to manipulate text in Common Lisp. It has
(define-public ecl-cl-string-match
(sbcl-package->ecl-package sbcl-cl-string-match))
+(define-public sbcl-cl-punch
+ (package
+ (name "sbcl-cl-punch")
+ (version "0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/windymelt/cl-punch")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-punch" version))
+ (sha256
+ (base32 "1vmbaz9y9lq4wvi8mfbyif8vc9yfk2i0qd3ysbzl152wx32dbzs3"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-prove))
+ (inputs
+ (list sbcl-cl-syntax))
+ (home-page "https://github.com/windymelt/cl-punch")
+ (synopsis "Anonymous lambda literal in Common Lisp, respecting Scala")
+ (description
+ "CL-PUNCH is a Scala-like anonymous lambda literal.")
+ (license license:expat )))
+
+(define-public cl-punch
+ (sbcl-package->cl-source-package sbcl-cl-punch))
+
+(define-public ecl-cl-punch
+ (sbcl-package->ecl-package sbcl-cl-punch))
+
(define-public sbcl-puri
(let ((commit "4bbab89d9ccbb26346899d1f496c97604fec567b")
(revision "2"))
@@ -4841,6 +5028,47 @@ similar to that provided by @command{yason} or @command{st-json}.")
(define-public ecl-cl-json
(sbcl-package->ecl-package sbcl-cl-json))
+(define-public sbcl-cl-json-pointer
+ (let ((commit "f6760e2a02972783f96b92a15f801e14a6828e0c")
+ (revision "0"))
+ (package
+ (name "sbcl-cl-json-pointer")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/y2q-actionman/cl-json-pointer")
+ (commit commit)))
+ (file-name (git-file-name "cl-json-pointer" version))
+ (sha256
+ (base32 "0b7a755wc2ghsd1pv7d32877b21h4nssp41xs017anbmj55czb2h"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ ;; FIXME: Component "cl-json-pointer/test" not found.
+ `(#:tests? #f
+ #:asd-systems '("cl-json-pointer" "cl-json-pointer/synonyms")))
+ (inputs
+ (list sbcl-alexandria
+ sbcl-boost-json
+ sbcl-cl-json
+ sbcl-closer-mop
+ sbcl-st-json))
+ (home-page "https://github.com/y2q-actionman/cl-json-pointer")
+ (synopsis "JSON Pointer processor for Common Lisp")
+ (description "
+This package provides a JSON
+Pointer (@url{https://tools.ietf.org/html/rfc6901,RFC6901}) implementation for
+Common Lisp. This libary aims to be independent from any JSON libraries (as much
+as possible).")
+ (license license:expat))))
+
+(define-public cl-json-pointer
+ (sbcl-package->cl-source-package sbcl-cl-json-pointer))
+
+(define-public ecl-cl-json-poiniter
+ (sbcl-package->ecl-package sbcl-cl-json-pointer))
+
(define-public sbcl-unix-opts
(let ((commit "0e61f34b2ecf62288437810d4abb31e572048b04")
(revision "1"))
@@ -6288,6 +6516,40 @@ connections (keep-alive), and SSL.")
;; Tests fail on ECL with 'Socket error in "socket": EINVAL'.
'(#:tests? #f))))
+(define-public sbcl-hunchentoot-errors
+ (let ((commit "69eb3bcea59ed1ccf3dd1960e6d48fb21f1dadab")
+ (revision "0"))
+ (package
+ (name "sbcl-hunchentoot-errors")
+ (version (git-version "0.0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mmontone/hunchentoot-errors")
+ (commit commit)))
+ (file-name (git-file-name "cl-hunchentoot-errors" version))
+ (sha256
+ (base32 "0fab7s8qhhs713cw014qqvzm5z61wmxm2fcbkarhg41cz3li9k1j"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-cl-mimeparse
+ sbcl-hunchentoot
+ sbcl-parse-number
+ sbcl-string-case))
+ (home-page "https://github.com/mmontone/hunchentoot-errors/")
+ (synopsis "Hunchentoot error pages and logs with request and session information")
+ (description
+ "This package provides a functionality augmenting Hunchentoot error
+pages and logs with request and session information.")
+ (license license:expat))))
+
+(define-public cl-hunchentoot-errors
+ (sbcl-package->cl-source-package sbcl-hunchentoot-errors))
+
+(define-public ecl-hunchentoot-errors
+ (sbcl-package->ecl-package sbcl-hunchentoot-errors))
+
(define-public sbcl-lunamech-matrix-api
(let ((commit "aa54a820149584c237b03d500ad83397fe25dc92")
(revision "0"))
@@ -6872,6 +7134,96 @@ multipart/form-data.")
(define-public ecl-http-body
(sbcl-package->ecl-package sbcl-http-body))
+(define-public sbcl-ciel
+ (let ((commit "6cc1cef5e37e9f495c8163271a5de48de99f348a")
+ (revision "0"))
+ (package
+ (name "sbcl-ciel")
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ciel-lang/CIEL")
+ (commit commit)))
+ (file-name (git-file-name "ciel" version))
+ (sha256
+ (base32 "1bwafbbsppxqvijf43dii55mpzrklh6faj2m5dhajg2f2m8qckgi"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-fiveam))
+ (inputs
+ (list sbcl-access
+ sbcl-alexandria
+ sbcl-arrow-macros
+ sbcl-bordeaux-threads
+ sbcl-cl-ansi-text
+ sbcl-cl-ansi-text
+ sbcl-cl-cron
+ sbcl-cl-csv
+ sbcl-cl-json-pointer
+ sbcl-cl-ppcre
+ sbcl-cl-punch
+ sbcl-cl-reexport
+ sbcl-cl-str
+ sbcl-clesh
+ sbcl-clingon
+ sbcl-closer-mop
+ sbcl-cmd
+ sbcl-dbi
+ sbcl-defstar
+ sbcl-deploy
+ sbcl-dexador
+ sbcl-dissect
+ sbcl-easy-routes
+ sbcl-file-notify
+ sbcl-fn
+ sbcl-for
+ sbcl-fset
+ sbcl-generic-cl
+ sbcl-hunchentoot
+ sbcl-local-time
+ sbcl-log4cl
+ sbcl-lparallel
+ sbcl-lquery
+ sbcl-metabang-bind
+ sbcl-modf
+ sbcl-named-readtables
+ sbcl-nodgui
+ sbcl-parse-float
+ sbcl-parse-number
+ sbcl-printv
+ sbcl-pythonic-string-reader
+ sbcl-quicksearch
+ sbcl-quri
+ sbcl-repl-utilities
+ sbcl-serapeum
+ sbcl-shasht
+ sbcl-shlex
+ sbcl-spinneret
+ sbcl-sxql
+ sbcl-trivia
+ sbcl-trivial-arguments
+ sbcl-trivial-do
+ sbcl-trivial-monitored-thread
+ sbcl-trivial-package-local-nicknames
+ sbcl-trivial-types
+ sbcl-vgplot
+ sbcl-which))
+ (home-page "http://ciel-lang.org/")
+ (synopsis "CIEL Is an Extended Lisp")
+ (description
+ "CIEL is a ready-to-use collection of libraries providing: a binary, to
+run CIEL scripts; a simple full-featured REPL for the terminal; a Lisp library
+and a core image .")
+ (license license:expat))))
+
+(define-public cl-ciel
+ (sbcl-package->cl-source-package sbcl-ciel))
+
+(define-public ecl-ciel
+ (sbcl-package->ecl-package sbcl-ciel))
+
(define-public sbcl-circular-streams
(let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
(revision "1"))
@@ -7329,21 +7681,21 @@ audio library for Common Lisp.")
(sha256
(base32 "0sfmvqmsg9z13x0v77448rpdqgyprdq739nsbrjw9a28hv9jmkg9"))))
(build-system asdf-build-system/sbcl)
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("cl-fastcgi" ,sbcl-cl-fastcgi)
- ("flexi-streams" ,sbcl-flexi-streams)
- ("hunchentoot" ,sbcl-hunchentoot)
- ("lack" ,sbcl-lack)
- ("split-sequence" ,sbcl-split-sequence)
- ("usocket" ,sbcl-usocket)
- ("quri" ,sbcl-quri)))
(arguments
'(#:asd-systems '("clack"
"clack-handler-fcgi"
"clack-socket"
"clack-handler-hunchentoot")))
+ (inputs
+ (list sbcl-alexandria
+ sbcl-bordeaux-threads
+ sbcl-cl-fastcgi
+ sbcl-flexi-streams
+ sbcl-hunchentoot
+ sbcl-lack
+ sbcl-quri
+ sbcl-split-sequence
+ sbcl-usocket))
(home-page "https://github.com/fukamachi/clack")
(synopsis "Web Application Environment for Common Lisp")
(description
@@ -7527,6 +7879,40 @@ by either a symbol or a keyword.")
(define-public cl-verbose
(sbcl-package->cl-source-package sbcl-verbose))
+(define-public sbcl-vgplot
+ (let ((commit "76329928a3709387c0779175af56ec49d16bcd35")
+ (revision "0"))
+ (package
+ (name "sbcl-vgplot")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/volkers/vgplot")
+ (commit commit)))
+ (file-name (git-file-name "vgplot" version))
+ (sha256
+ (base32 "1vc5fd787xa8831wjbmwrpg17f9isi5k8dmb85fsysz47plbvi1y"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-lisp-unit))
+ (inputs
+ (list sbcl-cl-fad sbcl-cl-ppcre sbcl-ltk))
+ (home-page "https://github.com/volkers/vgplot")
+ (synopsis "Common lisp library interfacing to the gnuplot utility")
+ (description
+ "This package provides an interface to the @code{gnuplot} plotting
+utility. The intention of the API is to resemble to some of the plot commands
+of octave or matlab.")
+ (license license:gpl3+))))
+
+(define-public cl-vgplot
+ (sbcl-package->cl-source-package sbcl-vgplot))
+
+(define-public ecl-vgplot
+ (sbcl-package->ecl-package sbcl-vgplot))
+
(define-public sbcl-find-port
(let ((commit "811727f88d7f000623bf92fdb0e64678a7112a28")
(revision "2"))
@@ -8054,6 +8440,38 @@ UTF-8 has is that it doesn't depend on any other libraries.")
(define-public ecl-trivial-utf-8
(sbcl-package->ecl-package sbcl-trivial-utf-8))
+(define-public sbcl-trivial-utilities
+ (let ((commit "279ff255562628196942632c543d91c357067221")
+ (revision "0"))
+ (package
+ (name "sbcl-trivial-utilities")
+ (version (git-version "0.4.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/ediethelm/trivial-utilities")
+ (commit commit)))
+ (file-name (git-file-name "trivial-utilities" version))
+ (sha256
+ (base32 "0k1xmn5f5dik7scadw0vyy67mik4ypnfqbhlv2vsg9afxzbpx2dz"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria sbcl-iterate sbcl-closer-mop))
+ (home-page "https://gitlab.com/ediethelm/trivial-utilities")
+ (synopsis "Collection of useful types, functions and macros for Common Lisp")
+ (description
+ "This package provides a collection of types, functions and macros. Some
+ of the functionality is implemented from Graham's On Lisp and Seibel's Practical
+ Common Lisp.")
+ (license license:expat))))
+
+(define-public cl-trivial-utilities
+ (sbcl-package->cl-source-package sbcl-trivial-utilities))
+
+(define-public ecl-trivial-utilities
+ (sbcl-package->ecl-package sbcl-trivial-utilities))
+
(define-public sbcl-idna
(package
(name "sbcl-idna")
@@ -10152,6 +10570,38 @@ supplement, not a competitor, to Alexandria.")
(define-public ecl-rutils
(sbcl-package->ecl-package sbcl-rutils))
+(define-public sbcl-arrow-macros
+ ;; The latest upstream version tag is dated (pushed in 2020), use the latest
+ ;; commit instead.
+ (let ((commit "16bdfd31298182099c7d70df4598104e5a38b05e")
+ (revision "0"))
+ (package
+ (name "sbcl-arrow-macros")
+ (version (git-version "0.2.7" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hipeta/arrow-macros")
+ (commit commit)))
+ (file-name (git-file-name "arrow-macros" version))
+ (sha256
+ (base32 "0q4vpysk4h9ghs5zmnzzilky9jyz7i8n0x0p98nq528crbrkh6c4"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs (list sbcl-fiveam))
+ (home-page "https://github.com/hipeta/arrow-macros/")
+ (synopsis "Clojure-like arrow macros in Common Lisp")
+ (description
+ "Arrow-macros provides clojure-like arrow macros (ex. ->, ->>) and diamond wands
+in swiss-arrows.")
+ (license license:expat))))
+
+(define-public cl-arrow-macros
+ (sbcl-package->cl-source-package sbcl-arrow-macros))
+
+(define-public ecl-arrow-macros
+ (sbcl-package->ecl-package sbcl-arrow-macros))
+
(define-public sbcl-arrows
(let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
(revision "0"))
@@ -12388,11 +12838,11 @@ Scalable Vector Graphics files.")
(sbcl-package->cl-source-package sbcl-cl-svg))
(define-public sbcl-nodgui
- (let ((commit "6baccf45371afd4dcc8cd3f38332b300614783b6")
+ (let ((commit "35fd379e11162995ed48c2f8ebe6a5bf0a6f48cb")
(revision "1"))
(package
(name "sbcl-nodgui")
- (version (git-version "0.4.8.6" revision commit))
+ (version (git-version "0.6.0.2" revision commit))
(source
(origin
(method git-fetch)
@@ -12401,7 +12851,7 @@ Scalable Vector Graphics files.")
(commit commit)))
(file-name (git-file-name "cl-nodgui" version))
(sha256
- (base32 "0fjz8362qmvkbzj9ylyllkdxg7vvj38l3y5qn4xi2gim92x4lx67"))))
+ (base32 "01l1hyzf8ryc35ydrjhqjn4az8asdwn46knl5gx8v02z2jcv7j24"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria
@@ -12413,8 +12863,11 @@ Scalable Vector Graphics files.")
sbcl-esrap
sbcl-jpeg-turbo
sbcl-named-readtables
+ sbcl-cl-opengl
sbcl-parse-number
sbcl-pngload
+ sbcl-sdl2
+ sbcl-zpng
tk
tklib))
(arguments
@@ -16615,7 +17068,7 @@ and comparison operations when used heavily in numeric code.")
(define-public sbcl-cl-form-types
(package
(name "sbcl-cl-form-types")
- (version "0.3.1")
+ (version "0.3.2")
(source
(origin
(method git-fetch)
@@ -16625,7 +17078,7 @@ and comparison operations when used heavily in numeric code.")
(file-name (git-file-name name version))
(sha256
(base32
- "17kdjqmm2ib347b8lqm3k4kca2j53kr0azb6h7m0v5i157ibndsw"))))
+ "0k4j657vfh4zblp9a7d3z15r82yyz4fzqh8vfn2s7ljsj1dmhp2n"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-agutil
@@ -16653,7 +17106,15 @@ Macros and symbol-macros are fully expanded and all special forms, except
(sbcl-package->cl-source-package sbcl-cl-form-types))
(define-public ecl-cl-form-types
- (sbcl-package->ecl-package sbcl-cl-form-types))
+ (let ((pkg (sbcl-package->ecl-package sbcl-cl-form-types)))
+ (package
+ (inherit pkg)
+ (arguments
+ ;; FIXME: Syntax error in declaration (TYPE T (FORM &KEY STRICT
+ ;; EXPAND-COMPILER-MACROS (TEST (QUOTE FORM-TYPE=))))
+ ;; An error occurred during initialization: COMPILE-FILE-ERROR while...
+ ;; See <https://github.com/alex-gutev/cl-form-types/issues/22>.
+ '(#:tests? #f)))))
(define-public sbcl-generic-cl
(package
@@ -16670,21 +17131,21 @@ Macros and symbol-macros are fully expanded and all special forms, except
(base32
"1c40vqb49g0adfv17jxgk0ds1n6a2dph30cibq01sicmqdgrrbi8"))))
(build-system asdf-build-system/sbcl)
- (inputs
- `(("agutil" ,sbcl-agutil)
- ("alexandria" ,sbcl-alexandria)
- ("anaphora" ,sbcl-anaphora)
- ("arrows" ,sbcl-arrows)
- ("cl-custom-hash-table" ,sbcl-custom-hash-table)
- ("cl-form-types" ,sbcl-cl-form-types)
- ("static-dispatch" ,sbcl-static-dispatch)
- ("trivia" ,sbcl-trivia)))
- (native-inputs
- (list sbcl-prove))
(arguments
;; Tests fail because SBCL head size is not high enough.
;; https://github.com/alex-gutev/generic-cl/issues/6
`(#:tests? #f))
+ (inputs
+ (list sbcl-agutil
+ sbcl-alexandria
+ sbcl-anaphora
+ sbcl-arrows
+ sbcl-cl-form-types
+ sbcl-custom-hash-table
+ sbcl-static-dispatch
+ sbcl-trivia))
+ (native-inputs
+ (list sbcl-prove))
(home-page "https://alex-gutev.github.io/generic-cl/")
(synopsis "Generic function interface to standard Common Lisp functions")
(description "@code{generic-cl} provides a generic function wrapper over
@@ -16748,12 +17209,9 @@ predictable cross-platform behavior and some utilities useful for versioning.")
(base32 "07pfkibaridihg8lbq2czwa4iqifqk24n6rx7bfnv7i49p1ppja1"))))
(build-system asdf-build-system/sbcl)
(native-inputs
- `(("cl-mpg123" ,sbcl-cl-mpg123)
- ("cl-out123" ,sbcl-cl-out123)))
+ (list sbcl-cl-mpg123 sbcl-cl-out123))
(inputs
- `(("cffi" ,sbcl-cffi)
- ("documentation-utils" ,sbcl-documentation-utils)
- ("trivial-features" ,sbcl-trivial-features)))
+ (list sbcl-cffi sbcl-documentation-utils sbcl-trivial-features))
(home-page "https://shinmera.github.io/deploy/")
(synopsis "Deployment tools for standalone Common Lisp application")
(description
@@ -17839,8 +18297,8 @@ compression/decompression using bindings to the libzstd C library.")
(sbcl-package->ecl-package sbcl-zstd))
(define-public sbcl-agnostic-lizard
- (let ((commit "fe3a73719f05901c8819f8995a3ebae738257952")
- (revision "1"))
+ (let ((commit "fe1a1d7d80c8b56163754e0e5b3653fd750ad298")
+ (revision "2"))
(package
(name "sbcl-agnostic-lizard")
(version (git-version "0.0.0" revision commit))
@@ -17850,9 +18308,9 @@ compression/decompression using bindings to the libzstd C library.")
(uri (git-reference
(url "https://gitlab.common-lisp.net/mraskin/agnostic-lizard")
(commit commit)))
- (file-name (git-file-name name version))
+ (file-name (git-file-name "cl-agnostic-lizard" version))
(sha256
- (base32 "0ax78y8w4zlp5dcwyhz2nq7j3shi49qn31dkfg8lv2jlg7mkwh2d"))))
+ (base32 "0amzshh6v3mp24j0h2cinv4zvdlg4kih04md5biakwhnmcw4j4pr"))))
(build-system asdf-build-system/sbcl)
(synopsis "Almost correct portable code walker for Common Lisp")
(description
@@ -19067,37 +19525,39 @@ protocol for Mastodon.")
(sbcl-package->cl-source-package sbcl-tooter))
(define-public sbcl-croatoan
- (package
- (name "sbcl-croatoan")
- (version "0.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/McParen/croatoan")
- (commit (string-append "v" version))))
- (file-name (git-file-name "cl-croatoan" version))
- (sha256
- (base32 "0x2rlckyn8kn5mqy0fib8piggz694g3naarz2dvha1hsy4jhb1wg"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "ncurses/ncurses.lisp"
- (("libncursesw.so")
- (search-input-file inputs "/lib/libncursesw.so"))))))))
- (inputs
- (list ncurses
- sbcl-cffi
- sbcl-trivial-gray-streams
- sbcl-bordeaux-threads))
- (synopsis "Common Lisp bindings for the ncurses terminal library")
- (description "Croatoan provides high-level Common Lisp CLOS bindings for
+ (let ((commit "282145ff9e9005fddc4241bc6827b3ab09c5bd25")
+ (revision "1"))
+ (package
+ (name "sbcl-croatoan")
+ (version (git-version "2.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/McParen/croatoan")
+ (commit commit)))
+ (file-name (git-file-name "cl-croatoan" version))
+ (sha256
+ (base32 "021h2f2yj4j9gynr3k7qi36x94jm5b95p3vaddbaih96wyzgbmq5"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "ncurses/ncurses.lisp"
+ (("libncursesw.so")
+ (search-input-file inputs "/lib/libncursesw.so"))))))))
+ (inputs
+ (list ncurses
+ sbcl-cffi
+ sbcl-trivial-gray-streams
+ sbcl-bordeaux-threads))
+ (synopsis "Common Lisp bindings for the ncurses terminal library")
+ (description "Croatoan provides high-level Common Lisp CLOS bindings for
the ncurses terminal library.")
- (home-page "https://github.com/McParen/croatoan")
- (license license:expat)))
+ (home-page "https://github.com/McParen/croatoan")
+ (license license:expat))))
(define-public ecl-croatoan
(sbcl-package->ecl-package sbcl-croatoan))
@@ -20251,6 +20711,41 @@ encodings.")
(define-public cl-mime
(sbcl-package->cl-source-package sbcl-cl-mime))
+(define-public sbcl-cl-mimeparse
+ (let ((commit "93cbdf6f6fe8a2eb5f652f8adec453eb98ea0547")
+ (revision "0"))
+ (package
+ (name "sbcl-cl-mimeparse")
+ (version (git-version "0.0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mmontone/cl-mimeparse")
+ (commit commit)))
+ (file-name (git-file-name "cl-mimeparse" version))
+ (sha256
+ (base32 "0gdkpi3620va0a3q56svcn1q9f5w0pqfhx30lnldg8fjnrdfiwkk"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:asd-test-systems '("cl-mimeparse-tests")))
+ (native-inputs
+ (list sbcl-rt))
+ (inputs
+ (list sbcl-cl-ppcre sbcl-parse-number))
+ (home-page "https://github.com/mmontone/cl-mimeparse/")
+ (synopsis "Common Lisp library for parsing MIME types")
+ (description
+ "This package provides a library for parsing MIME types, in the spirit
+of http://code.google.com/p/mimeparse/, with a Common Lisp flavor.")
+ (license license:expat))))
+
+(define-public cl-mimeparse
+ (sbcl-package->cl-source-package sbcl-cl-mimeparse))
+
+(define-public ecl-cl-mimeparse
+ (sbcl-package->ecl-package sbcl-cl-mimeparse))
+
(define-public sbcl-cl-mixed
(let ((commit "4aaff134d3902d93a2a8605c10de4bcfc62d7afa")
(revision "0"))
@@ -21207,6 +21702,39 @@ implementation, for example drawing calls of GUI applications.")
(define-public cl-trivial-main-thread
(sbcl-package->cl-source-package sbcl-trivial-main-thread))
+(define-public sbcl-trivial-monitored-thread
+ (let ((commit "b0bab23f9a9bd06f0f33809635c7ba4e6a3d5a21")
+ (revision "0"))
+ (package
+ (name "sbcl-trivial-monitored-thread")
+ (version (git-version "0.3.11" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/ediethelm/trivial-monitored-thread")
+ (commit commit)))
+ (file-name (git-file-name "trivial-monitored-thread" version))
+ (sha256
+ (base32 "1ipnp2l944hc587bifxsnmiymw468imar0v8bqvgxv8pc5sym4ib"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-fiveam))
+ (inputs
+ (list sbcl-iterate sbcl-log4cl sbcl-trivial-utilities))
+ (home-page "https://gitlab.com/ediethelm/trivial-monitored-thread")
+ (synopsis "Thread monitoring library for Common Lisp")
+ (description
+ "Trivial Monitored Thread offers a very simple (aka trivial) way of
+spawning threads and being informed when one any of them crash and die.")
+ (license license:expat))))
+
+(define-public cl-trivial-monitored-thread
+ (sbcl-package->cl-source-package sbcl-trivial-monitored-thread))
+
+(define-public ecl-trivial-monitored-thread
+ (sbcl-package->ecl-package sbcl-trivial-monitored-thread))
+
(define-public sbcl-moira
(let ((commit "21f1cfd5942fcaea2ed2e4f6055b2a5a39ac4c6e")
(revision "0"))
@@ -21468,24 +21996,23 @@ Common Lisp.")
;; clack-test and dexador.
`(#:tests? #f))
(native-inputs
- `(("clack" ,sbcl-clack)
- ("rove" ,sbcl-rove)))
+ (list sbcl-clack sbcl-rove))
(inputs
- `(("alexandria" ,sbcl-alexandria)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("cffi" ,sbcl-cffi)
- ("cl-speedy-queue" ,sbcl-cl-speedy-queue) ;; Required for ecl build
- ("clack-socket" ,sbcl-clack)
- ("fast-http" ,sbcl-fast-http)
- ("fast-io" ,sbcl-fast-io)
- ("lev" ,sbcl-lev)
- ("quri" ,sbcl-quri)
- ("rove" ,sbcl-rove)
- ("smart-buffer" ,sbcl-smart-buffer)
- ("static-vectors" ,sbcl-static-vectors)
- ("swap-bytes" ,sbcl-swap-bytes)
- ("trivial-utf-8" ,sbcl-trivial-utf-8)
- ("vom" ,sbcl-vom)))
+ (list sbcl-alexandria
+ sbcl-bordeaux-threads
+ sbcl-cffi
+ sbcl-cl-speedy-queue ;; Required for ecl build
+ sbcl-clack
+ sbcl-fast-http
+ sbcl-fast-io
+ sbcl-lev
+ sbcl-quri
+ sbcl-rove
+ sbcl-smart-buffer
+ sbcl-static-vectors
+ sbcl-swap-bytes
+ sbcl-trivial-utf-8
+ sbcl-vom))
(home-page "https://github.com/fukamachi/woo")
(synopsis "Non-blocking HTTP server based on libev")
(description
@@ -22046,8 +22573,8 @@ application development library.")
(sbcl-package->cl-source-package sbcl-cl-glfw3))
(define-public sbcl-cl-gltf
- (let ((commit "dab186ebf9169926ccfcdec121a157162ad6ed83")
- (revision "0"))
+ (let ((commit "7a3af05a7f491d8973b217f096806ef12a97474b")
+ (revision "1"))
(package
(name "sbcl-cl-gltf")
(version (git-version "2.0.0" revision commit))
@@ -22059,7 +22586,7 @@ application development library.")
(commit commit)))
(file-name (git-file-name "cl-gltf" version))
(sha256
- (base32 "0ijy0paph7w037a2k14pv8j44mnj4gwhddhxzyqsz3qwl6fpb7yb"))))
+ (base32 "1d64fg2l2c0wns3wpp1xypd8687gnp3k70fv9fb48m1kpzg4kvrh"))))
(build-system asdf-build-system/sbcl)
(arguments
;; No tests provided.
@@ -22086,6 +22613,8 @@ application development library.")
;; initialization: COMPILE-FILE-ERROR while compiling #<cl-source-file
;; "trivial-extensible-sequences" "fallback">.
;;
+;; See <https://github.com/Shirakumo/cl-gltf/issues/3>
+;;
;; (define-public ecl-cl-gltf
;; (sbcl-package->ecl-package sbcl-cl-gltf))
@@ -25694,11 +26223,11 @@ Common Lisp.")
(sbcl-package->ecl-package sbcl-cl-collider))
(define-public sbcl-osc
- (let ((commit "9f0a9d3da310a3a0f654f48af0203816f3f371ad")
+ (let ((commit "f647738ccc22925ed740a8ca9132fda76a05baeb")
(revision "0"))
(package
(name "sbcl-osc")
- (version (git-version "0.7" revision commit))
+ (version (git-version "0.9" revision commit))
(source
(origin
(method git-fetch)
@@ -25707,16 +26236,18 @@ Common Lisp.")
(commit commit)))
(file-name (git-file-name "cl-osc" version))
(sha256
- (base32 "0gh29zcl9pmy3xlmwzpf9www2z06ah6b4jk06sj2cvxbc15nblqa"))))
+ (base32 "1x4cavspaxcr604g0hwak1ncy4m9cqq03ji4v56g2h1443n7h48a"))))
(build-system asdf-build-system/sbcl)
- (inputs (list sbcl-usocket))
+ (native-inputs (list sbcl-fiveam))
+ (inputs (list sbcl-ieee-floats))
(synopsis "Implementation of the Open Sound Control protocol")
- (description "This package provides a common lisp implementation
-of the Open Sound Control Protocol aka OSC. The code should be close
-to the ansi standard, and does not rely on any external code/ffi/etc+
-to do the basic encoding and decoding of packets.")
+ (description "This is a lisp implementation of the Open Sound Control
+protocol (or more accurately “data transport specification” or
+“encoding”). The code should be close to ANSI standard common lisp and
+provides self contained code for encoding and decoding of OSC data, messages,
+and bundles.")
(home-page "https://github.com/zzkt/osc/")
- (license (list license:gpl3 license:llgpl)))))
+ (license license:gpl3+))))
(define-public cl-osc
(sbcl-package->cl-source-package sbcl-osc))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index c58e56b7a7..219b183753 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1003,7 +1003,7 @@ the HTML documentation of TXR.")
(define-public txr
(package
(name "txr")
- (version "293")
+ (version "294")
(source
(origin
(method git-fetch)
@@ -1012,7 +1012,7 @@ the HTML documentation of TXR.")
(commit (string-append "txr-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1b3vhlnw4ymznnlh9d71qhkcdc1p69a53hilckc3rql9y4jsik57"))))
+ (base32 "0cd0ah6lzwszn4jjxrbwknhscdm6rgsprpiybzlikcckgcylpkdn"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
diff --git a/gnu/packages/llvm-meta.scm b/gnu/packages/llvm-meta.scm
new file mode 100644
index 0000000000..822cb5aade
--- /dev/null
+++ b/gnu/packages/llvm-meta.scm
@@ -0,0 +1,83 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages llvm-meta)
+ #:use-module (guix utils)
+ #:export (clang-compiler-cpu-architectures))
+
+(define (clang-compiler-cpu-architectures version)
+ "Return package properties for Clang VERSION."
+ `((compiler-cpu-architectures
+ ;; These lists were obtained by running:
+ ;;
+ ;; guix shell clang -- llc -march=x86-64 -mattr=help
+ ;;
+ ;; and then filtering against clang/test/Misc/target-invalid-cpu-note.c
+ ("powerpc64le"
+ ,@(if (version>=? version "11.0")
+ '("power8" "power9" "power10" "powerpc64le")))
+ ("x86_64"
+ ,@(cond
+ ((version>=? version "17.0")
+ '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
+ "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
+ "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
+ "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
+ "cascadelake" "cooperlake" "cannonlake" "icelake-client"
+ "rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
+ "alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
+ "graniterapids" "graniterapids-d" "emeraldrapids" "knl" "knm" "k8"
+ "athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
+ "opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
+ "bdver2" "bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4"
+ "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
+ ((version>=? version "16.0")
+ '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
+ "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
+ "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
+ "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
+ "cascadelake" "cooperlake" "cannonlake" "icelake-client"
+ "rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
+ "alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
+ "graniterapids" "emeraldrapids" "knl" "knm" "k8" "athlon64"
+ "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3" "opteron-sse3"
+ "amdfam10" "barcelona" "btver1" "btver2" "bdver1" "bdver2"
+ "bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4" "x86-64"
+ "x86-64-v2" "x86-64-v3" "x86-64-v4"))
+ ((version>=? version "13.0")
+ '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
+ "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
+ "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
+ "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
+ "cascadelake" "cooperlake" "cannonlake" "icelake-client"
+ "rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
+ "alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron"
+ "k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona"
+ "btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"
+ "znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
+ ((version>=? version "9.0")
+ '("atom" "silvermont" "slm" "goldmont" "goldmont-plus" "tremont"
+ "nehalem" "corei7" "westmere" "sandybridge" "corei7-avx"
+ "ivybridge" "core-avx-i" "haswell" "core-avx2" "broadwell"
+ "skylake" "skylake-avx512" "skx" "cascadelake" "cooperlake"
+ "cannonlake" "icelake-client" "icelake-server" "knl" "knm" "k8"
+ "athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
+ "opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
+ "bdver2" "bdver3" "bdver4" "znver1" "znver2" "x86-64"))
+ (else '()))))))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 59d096cb1a..b0210efc77 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-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -66,6 +66,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages llvm-meta)
#:use-module (gnu packages lua)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
@@ -80,8 +81,7 @@
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:export (make-lld-wrapper
- system->llvm-target
- clang-properties))
+ system->llvm-target))
(define* (system->llvm-target #:optional
(system (or (and=> (%current-target-system)
@@ -470,68 +470,7 @@ code analysis tools.")
(define (clang-properties version)
"Return package properties for Clang VERSION."
- `((compiler-cpu-architectures
- ("x86_64"
- ;; This list was obtained by running:
- ;;
- ;; guix shell clang -- llc -march=x86-64 -mattr=help
- ;;
- ;; filtered from uninteresting entries such as "i686" and "pentium".
- ,@(if (version>=? version "10.0") ;TODO: refine
- '("atom"
- "barcelona"
- "bdver1"
- "bdver2"
- "bdver3"
- "bdver4"
- "bonnell"
- "broadwell"
- "btver1"
- "btver2"
- "c3"
- "c3-2"
- "cannonlake"
- "cascadelake"
- "cooperlake"
- "core-avx-i"
- "core-avx2"
- "core2"
- "corei7"
- "corei7-avx"
- "generic"
- "geode"
- "goldmont"
- "goldmont-plus"
- "haswell"
- "icelake-client"
- "icelake-server"
- "ivybridge"
- "k8"
- "k8-sse3"
- "knl"
- "knm"
- "lakemont"
- "nehalem"
- "nocona"
- "opteron"
- "opteron-sse3"
- "sandybridge"
- "silvermont"
- "skx"
- "skylake"
- "skylake-avx512"
- "slm"
- "tigerlake"
- "tremont"
- "westmere"
- "x86-64"
- "x86-64-v2"
- "x86-64-v3"
- "x86-64-v4"
- "znver1"
- "znver2"
- "znver3")
- '())))))
+ `((clang-compiler-cpu-architectures version)))
(define-public (make-clang-toolchain clang libomp)
(package
@@ -604,7 +543,8 @@ output), and Binutils.")
"clang-16-remove-crypt-interceptors.patch"))
("16.0.6" . ("clang-16.0-libc-search-path.patch"
"clang-16-remove-crypt-interceptors.patch"))
- ("17.0.6" . ("clang-17.0-libc-search-path.patch"))))
+ ("17.0.6" . ("clang-17.0-libc-search-path.patch"
+ clang-17.0-link-dsymutil-latomic.patch))))
(define (llvm-monorepo version)
(origin
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index 47e8cd39c2..a757c22154 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -26,6 +26,7 @@
(define-module (gnu packages logging)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix download)
@@ -227,10 +228,12 @@ output in multiple windows in a terminal.")
;; TODO run benchmark. Currently not possible, as adding
;; (gnu packages benchmark) forms a dependency cycle
(arguments
- '(#:configure-flags
- (list "-DSPDLOG_BUILD_BENCH=OFF"
- "-DSPDLOG_BUILD_SHARED=ON"
- "-DSPDLOG_BUILD_TESTS=ON")))
+ (list #:configure-flags
+ #~(list "-DSPDLOG_BUILD_BENCH=OFF"
+ "-DSPDLOG_BUILD_SHARED=ON"
+ #$@(if (%current-target-system)
+ '()
+ '("-DSPDLOG_BUILD_TESTS=ON")))))
(native-inputs (list catch2-3))
(home-page "https://github.com/gabime/spdlog")
(synopsis "Fast C++ logging library")
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 07c803d27e..9c66edb8d7 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -1274,7 +1274,7 @@ enabled.")
(define-public fennel
(package
(name "fennel")
- (version "1.3.1")
+ (version "1.4.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1283,7 +1283,7 @@ enabled.")
(file-name (git-file-name name version))
(sha256
(base32
- "12zm3rd0vvkqazv1cv5bhwk6igsj18im2qakqw7cf4a20rc9wpmx"))))
+ "1h1i87jx889n1wczw5jvqmkx0jmlrq83pjspyd9v27j360d9fcik"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags #~(list (string-append "PREFIX="
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 6b1a53e717..05de6538c1 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4246,6 +4246,61 @@ PyTorch when needed.
Note: currently this package does not provide GPU support.")
(license license:bsd-3)))
+(define-public python-pytorch2
+ (package
+ (inherit python-pytorch)
+ (name "python-pytorch")
+ (version "2.2.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pytorch/pytorch")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0hdr0d6n072qd0nq2dkxhc9pva6vggj9hpzc0glpc60vfgk0cgzb"))
+ (patches (search-patches "python-pytorch2-system-libraries.patch"
+ "python-pytorch-runpath.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; XXX: Let's be clear: this package is a bundling fest. We
+ ;; delete as much as we can, but there's still a lot left.
+ (for-each (lambda (directory)
+ (delete-file-recursively
+ (string-append "third_party/" directory)))
+ '("benchmark" "cpuinfo" "eigen"
+
+ ;; FIXME: QNNPACK (of which XNNPACK is a fork)
+ ;; needs these.
+ ;; "FP16" "FXdiv" "gemmlowp" "psimd"
+
+ "gloo" "googletest" "ios-cmake" "NNPACK"
+ "onnx" "protobuf" "pthreadpool"
+ "pybind11" "python-peachpy"
+ "tbb" "XNNPACK" "zstd"))
+ (substitute* "caffe2/CMakeLists.txt"
+ (("target_link_libraries\\(\\$\\{test_name\\}_\\$\\{CPU_CAPABILITY\\} c10 sleef gtest_main\\)")
+ "target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest gtest_main)"))
+ (substitute* "functorch/CMakeLists.txt"
+ (("\\$\\{_rpath_portable_origin\\}/../torch/lib")
+ "$ORIGIN/../torch/lib"))))))
+ (inputs
+ (modify-inputs (package-inputs python-pytorch)
+ (replace "xnnpack" xnnpack-for-torch2)))
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs python-pytorch)
+ (append python-filelock
+ python-fsspec
+ python-jinja2
+ python-networkx
+ python-opt-einsum
+ python-sympy)
+ (replace "onnx" onnx-for-torch2)
+ (replace "onnx-optimizer" onnx-optimizer-for-torch2)))))
+
(define-public python-pytorch-for-r-torch
(package
(inherit python-pytorch)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index b5325fc32f..9d6f2e5476 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -2638,13 +2638,13 @@ maintained.")
(define-public khard
(package
(name "khard")
- (version "0.18.0")
+ (version "0.19.1")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
- "05860fdayqap128l7i6bcmi9kdyi2gx02g2pmh88d56xgysd927y"))))
+ "1464j728hjjpzlc89v4rbml3p4b38zp1igjd9yq3xnn3lc6hmwsr"))))
(build-system python-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index e744fc4004..35451b621c 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -9,8 +9,8 @@
;;; Copyright © 2018, 2019, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2021, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 2024 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2022, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Imran Iqbal <imran@imraniqbal.org>
;;;
;;; This file is part of GNU Guix.
@@ -220,6 +220,51 @@ accessed using the man command. It uses a Berkeley DB database in place of
the traditional flat-text whatis databases.")
(license license:gpl2+)))
+(define-public man2html
+ (package
+ (name "man2html")
+ (version "1.6g-16")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://salsa.debian.org/debian/man2html")
+ (commit (string-append "debian/" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1cxm8b2x4cjmyidi4gfz9q29zrhaxhbnsiqcmlnyr1bdhjsmk786"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ ;; The source include a man page viewer as well as the man2html
+ ;; converter. We're only interested in the converter, so we specify the
+ ;; explicit 'manhtml' target.
+ #:make-flags #~(list (string-append "bindir=" #$output "/bin")
+ "manhtml")
+ #:phases #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (setenv "CC" #$(cc-for-target))
+ (invoke "./configure"
+ (string-append "-prefix=" #$output))))
+ (add-before 'install 'chdir
+ (lambda _
+ (chdir "man2html")))
+ (replace 'install
+ ;; This is needed because the 'manhtml' top level target
+ ;; doesn't exist in man2html/Makefile.
+ (lambda* (#:key make-flags #:allow-other-keys
+ #:rest args)
+ (apply (assoc-ref %standard-phases 'install)
+ `(,@args #:make-flags
+ ,(delete "manhtml" make-flags))))))))
+ (home-page "https://salsa.debian.org/debian/man2html")
+ (synopsis "Man pages to HTML format converter")
+ (description "@command{man2html} is a command-line tool for converting man
+pages into HTML format.")
+ (license license:gpl2+)))
+
(define-public mandoc
(package
(name "mandoc")
diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index 4a9a382104..375367d395 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -333,7 +333,7 @@ convert HTML to Markdown.")
(define-public cmark
(package
(name "cmark")
- (version "0.30.3")
+ (version "0.31.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -342,7 +342,7 @@ convert HTML to Markdown.")
(file-name (git-file-name name version))
(sha256
(base32
- "07d30s5v893nb1m7qbam5c3x9b3d84m80kzlj7fmkwhgjrlz7d7z"))))
+ "0llj68l9rxdhral0zyv0bz6yzqsxgq8d3730082sl3kx78lsq5qq"))))
(build-system cmake-build-system)
(arguments
'(#:test-target "test"))
diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm
index cbeccdb402..7f7afec90d 100644
--- a/gnu/packages/mastodon.scm
+++ b/gnu/packages/mastodon.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Taiju HIGASHI <higashi@taiju.info>
;;;
@@ -24,6 +24,7 @@
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system meson)
+ #:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
@@ -37,6 +38,7 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
@@ -47,14 +49,14 @@
(define-public toot
(package
(name "toot")
- (version "0.38.1")
+ (version "0.42.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "toot" version))
(sha256
- (base32 "1cn646jzys9vjaw20sxmgzc7zq5a5ma8vabvrw9zpa0yl9wm97my"))))
- (build-system python-build-system)
+ (base32 "1vw3j504dxmq22s40kysps3d09hl7l48cwznwrfr9zqif67i4v3g"))))
+ (build-system pyproject-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
@@ -64,12 +66,17 @@
(add-installed-pythonpath inputs outputs)
(invoke "py.test")))))))
(native-inputs
- (list python-psycopg2 python-pytest))
+ (list python-psycopg2-binary
+ python-pytest
+ python-pyyaml
+ python-typing-extensions))
(inputs
(list python-beautifulsoup4
- python-tomlkit
+ python-click
python-requests
+ python-tomlkit
python-urwid
+ python-urwidgets
python-wcwidth))
(home-page "https://github.com/ihabunek/toot/")
(synopsis "Mastodon CLI client")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index bb0bf8a4dc..e5f2172841 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -30,7 +30,7 @@
;;; Copyright © 2018 Eric Brown <brown@fastmail.com>
;;; Copyright © 2018, 2021, 2024 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Amin Bandali <bandali@gnu.org>
-;;; Copyright © 2019, 2021-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019, 2021-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -3516,7 +3516,8 @@ September 2004}")
data structures and routines for the scalable (parallel) solution of
scientific applications modeled by partial differential equations.")
(license (license:non-copyleft
- "https://www.mcs.anl.gov/petsc/documentation/copyright.html"))))
+ "https://www.mcs.anl.gov/petsc/documentation/copyright.html"))
+ (properties '((tunable? . #t)))))
(define-public petsc-complex
(package
@@ -7136,16 +7137,21 @@ set.")
(lambda _
(invoke "make" "-C" "docs")))
(replace 'check
- (lambda _
- (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/hypre/lib"))
- (setenv "PATH" (string-append "." ":" (getenv "PATH")))
- (invoke "make" "check" "CHECKRUN=")
- (for-each (lambda (filename)
- (let ((size (stat:size (stat filename))))
- (when (positive? size)
- (error (format #f "~a size ~d; error indication~%"
- filename size)))))
- (find-files "test" ".*\\.err$"))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "LD_LIBRARY_PATH"
+ (string-append (getcwd) "/hypre/lib"))
+ (setenv "PATH"
+ (string-append "." ":"
+ (getenv "PATH")))
+ (invoke "make" "check" "CHECKRUN=")
+ (for-each (lambda (filename)
+ (let ((size (stat:size (stat filename))))
+ (when (positive? size)
+ (error (format #f
+ "~a size ~d; error indication~%"
+ filename size)))))
+ (find-files "test" ".*\\.err$")))))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
;; Custom install because docs/Makefile doesn't honor ${docdir}.
@@ -8070,7 +8076,7 @@ easily be incorporated into existing simulation codes.")
".tgz"))
(sha256
(base32
- "1a9wbgdqyy1whhfc0yl0yqkax3amnqa6iihhq48d063gc0jwfd9a"))
+ "0gzxgd2ybnh49h57rh47vrqnsyk11jn206j5kf9y7p5vksc79ffz"))
(patches (search-patches "combinatorial-blas-awpm.patch"
"combinatorial-blas-io-fix.patch"))))
(build-system cmake-build-system)
@@ -8089,6 +8095,12 @@ easily be incorporated into existing simulation codes.")
#:parallel-tests? #f ;tests use 'mpiexec -n4'
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ ;; Skip failing tests (SIGFPE and SIGSEGV).
+ (substitute* "ReleaseTests/CMakeLists.txt"
+ (("^.*SpAsgnTest.*$") "")
+ (("^.*IndexingTest.*$") ""))))
(add-before 'check 'mpi-setup
,%openmpi-setup)
(add-before 'check 'test-setup
@@ -8736,7 +8748,7 @@ management via the GIMPS project's Primenet server.")
(define-public nauty
(package
(name "nauty")
- (version "2.8.6")
+ (version "2.8.8")
(source
(origin
(method url-fetch)
@@ -8744,7 +8756,7 @@ management via the GIMPS project's Primenet server.")
"https://pallini.di.uniroma1.it/"
"nauty" (string-join (string-split version #\.) "_") ".tar.gz"))
(sha256
- (base32 "1yp6wpz2drq0viww8px1vl4pw919nq3xgxrmrrdhycx8bhi9ikpj"))))
+ (base32 "1ki9z60qcyx3va68hp7iv6451n5d86v1xmhc850b4sqah5b2378m"))))
(build-system gnu-build-system)
(outputs '("out" "lib"))
(arguments
diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm
index 994f89f524..8cf760ac53 100644
--- a/gnu/packages/mc.scm
+++ b/gnu/packages/mc.scm
@@ -40,14 +40,14 @@
(define-public mc
(package
(name "mc")
- (version "4.8.30")
+ (version "4.8.31")
(source
(origin
(method url-fetch)
(uri (string-append "https://ftp.osuosl.org/pub/midnightcommander/mc-"
version ".tar.xz"))
(sha256
- (base32 "1py7jm620lsas7rcv5j69608gdshmp25d9gx958hr5sb2jr3rg2y"))))
+ (base32 "06mbnhxd2k29jah4wp1ciicw1gb51a5d3af43zivhxbncvw1q694"))))
(build-system gnu-build-system)
(arguments
(list
@@ -68,7 +68,6 @@
(list "lib/utilunix.c"
"src/filemanager/ext.c"
"src/usermenu.c"
- "src/vfs/fish/fish.c"
;; This file hard-codes other shells, but they're never
;; tried after mc's first choice (bash) is found.
"lib/shell.c")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 0e47d948b3..4244ffbbac 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 nikita <nikita@n0.is>
;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
-;;; Copyright © 2017–2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017–2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017, 2018, 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -55,6 +55,7 @@
;;; Copyright © 2023 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -869,7 +870,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(define-public hydrogen
(package
(name "hydrogen")
- (version "1.2.0")
+ (version "1.2.3")
(source
(origin
(method git-fetch)
@@ -878,7 +879,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0v4ir1my8zndw5rvz6jr42ysprwycgxrlsc53070y3620n699nha"))))
+ (base32 "0qb16yn3igs95silvngwy5mjwlzsyz5axwbd3lz6pjhwbf81rn7d"))))
(build-system cmake-build-system)
(arguments
`(#:test-target "tests"
@@ -1510,7 +1511,7 @@ and auto-mapping slices to MIDI note numbers.")
(define-public lilypond
(package
(name "lilypond")
- (version "2.24.1")
+ (version "2.24.3")
(source
(origin
(method url-fetch)
@@ -1518,7 +1519,7 @@ and auto-mapping slices to MIDI note numbers.")
"v" (version-major+minor version) "/"
"lilypond-" version ".tar.gz"))
(sha256
- (base32 "028m31fjcfgsq3f8ahz4hp2r36shsvkq1fjjibqdcp2aas3r1ifm"))))
+ (base32 "1gj4xjc9842wnqvqj08lkykpz2r72mqqw3x1fk6s9xbsxxv5y06z"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;out-test/collated-files.html fails
@@ -3043,38 +3044,63 @@ main purpose is to liberate raw audio rendering from audio and MIDI drivers.")
using a system-independent interface.")
(license license:expat)))
-(define-public python-pyportmidi
+(define-public portmidi-2
(package
- (name "python-pyportmidi")
- (version (package-version portmidi))
- (source (package-source portmidi))
- (build-system python-build-system)
+ (name "portmidi")
+ (version "2.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PortMidi/portmidi")
+ (commit "b808babecdc5d05205467dab5c1006c5ac0fdfd4")))
+ (sha256
+ (base32 "05a3dfpgbpcg08p8a3acjrrd1qy5hvvray2kz2asygy1vf3mx85s"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
(arguments
- `(#:tests? #f ; no tests included
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'enter-dir
- (lambda _ (chdir "pm_python") #t))
- (add-after 'enter-dir 'fix-setup.py
- (lambda _
- (substitute* "setup.py"
- ;; Use Python 3 syntax
- (("print (\".*\")" _ text)
- (string-append "print(" text ")\n"))
- ;; TODO.txt and CHANGES.txt don't exist
- (("CHANGES =.*") "CHANGES = \"\"\n")
- (("TODO =.*") "TODO = \"\"\n"))
- #t)))))
- (inputs
- (list portmidi alsa-lib))
- (native-inputs
- (list python-cython unzip))
- (home-page "https://portmedia.sourceforge.net/portmidi/")
- (synopsis "Python bindings to PortMidi")
+ `(#:tests? #f ;Tests are interactive and can be found in the
+ #:configure-flags ;pm_tests/ directory of the build tree.
+ (list "-DBUILD_PORTMIDI_TESTS=On")
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'fix-version
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("2.0.3")
+ (version))))))))
+ (inputs (list alsa-lib))
+ (native-inputs (list unzip))
+ (home-page "https://github.com/PortMidi/")
+ (synopsis "Library for MIDI I/O")
(description
- "This package provides Python bindings to the PortMidi library.")
+ "PortMidi is a library supporting real-time input and output of MIDI data
+using a system-independent interface.")
(license license:expat)))
+(define-public python-pyportmidi
+ (let ((commit "d9e5ee00b208b09618fa0d4a5bbce3c9c077b386")
+ (revision "0"))
+ (package
+ (name "python-pyportmidi")
+ (version (git-version "0.0.7" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PortMidi/pm_python")
+ (commit commit)))
+ (sha256
+ (base32 "1jvp9na8d1hw46w9ybhkimbavfb3ysw7hp30cbk6dj40k5y5vgvz"))
+ (file-name (git-file-name name version))))
+ (build-system python-build-system)
+ (inputs (list portmidi-2 alsa-lib))
+ (native-inputs (list python-cython))
+ (home-page "https://github.com/PortMidi")
+ (synopsis "Python bindings to PortMidi")
+ (description
+ "This package provides Python bindings to the PortMidi library.")
+ (license license:expat))))
+
(define-public frescobaldi
(package
(name "frescobaldi")
@@ -3083,32 +3109,39 @@ using a system-independent interface.")
(origin
(method url-fetch)
(uri (string-append
- "https://github.com/wbsoft/frescobaldi/releases/download/v"
+ "https://github.com/frescobaldi/frescobaldi/releases/download/v"
version "/frescobaldi-" version ".tar.gz"))
(sha256
(base32 "1n60gfnf6x0l1bac088g9adzx0lskbl9knd4y1ynr3y0zcs0kfcz"))))
(build-system python-build-system)
(arguments
(list
- #:tests? #f ;no tests included
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'build 'generate-translations
- (lambda _
- (invoke "make" "-C" "i18n")))
- (add-before 'build 'generate-metadata
- (lambda _
- (invoke "make" "-C" "linux"))))))
- (inputs
- (list lilypond
- poppler
- portmidi
- python-ly
- python-poppler-qt5
- python-pyportmidi
- python-pyqt
- python-sip
- qpageview))
+ #:tests? #f ;no tests included
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'build 'generate-translations
+ (lambda _
+ (invoke "make" "-C" "i18n")))
+ (add-before 'build 'generate-metadata
+ (lambda _
+ (invoke "make" "-C" "linux")))
+ (add-after 'install 'wrap-executable
+ (lambda _
+ ;; Ensure that icons are found at runtime.
+ (wrap-program (string-append #$output
+ "/bin/frescobaldi")
+ `("QT_PLUGIN_PATH" prefix
+ ,(list (getenv "QT_PLUGIN_PATH")))))))))
+ (inputs (list bash-minimal
+ lilypond
+ poppler
+ portmidi-2
+ python-ly
+ python-poppler-qt5
+ python-pyportmidi
+ python-pyqt
+ python-sip
+ qpageview
+ qtsvg-5))
(home-page "https://www.frescobaldi.org/")
(synopsis "LilyPond sheet music text editor")
(description
@@ -4996,7 +5029,7 @@ includes LV2 plugins and a JACK standalone client.")
(define-public musescore
(package
(name "musescore")
- (version "4.1.1")
+ (version "4.2.1")
(source
(origin
(method git-fetch)
@@ -5005,7 +5038,7 @@ includes LV2 plugins and a JACK standalone client.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "12h26k9qnsq027gdpch579nchwrqva1ymwm2fj5xmlh0aayrwy4d"))
+ (base32 "0rc5ma1k0cjllfl86apbyj61sh0691lsmqnvqicyn0zi53z8w9v0"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -5233,7 +5266,7 @@ specification and header.")
(define-public rosegarden
(package
(name "rosegarden")
- (version "23.06")
+ (version "23.12")
(source
(origin
(method url-fetch)
@@ -5241,7 +5274,7 @@ specification and header.")
(version-major+minor version) "/"
"rosegarden-" version ".tar.xz"))
(sha256
- (base32 "1k3j5p6lx3w6pbsh95xiyfj8g8ysmvd18v0wmx7kdb3vyj5mfd0z"))))
+ (base32 "0clkzrs931dypvqcn5hzx2v3bq9gc439g71phahgwkh4c1jfcmrz"))))
(build-system cmake-build-system)
(arguments
(list
@@ -7196,22 +7229,27 @@ It is provided as an LV2 plugin and as a standalone Jack application.")
(uri (git-reference
(url "https://github.com/jackaudio/a2jmidid")
(commit version)))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Fix build for for riscv64-linux, same as:
+ ;; https://github.com/jackaudio/a2jmidid/pull/18
+ '(substitute* "sigsegv.c"
+ (("!defined[(]__aarch64__[)]")
+ "!defined(__arch64__) && !defined(__riscv)")))
(sha256
(base32 "1x6rcl3f4nklnx4p5jln9a7fpj9y7agjxs9rw7cccmwnski7pnsq"))
(file-name (git-file-name name version))))
(arguments
- `(#:tests? #f ; No tests.
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'wrap-programs
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin/")))
- (substitute* (string-append bin "a2j")
- (("a2j_control") (string-append bin "a2j_control")))
- (wrap-program (string-append bin "a2j_control")
- `("PYTHONPATH" prefix (,(getenv "GUIX_PYTHONPATH"))))
- #t))))))
+ (list #:tests? #f ; No tests.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((bin (string-append #$output "/bin/")))
+ (substitute* (string-append bin "a2j")
+ (("a2j_control") (string-append bin "a2j_control")))
+ (wrap-program (string-append bin "a2j_control")
+ `("PYTHONPATH" prefix (,(getenv "GUIX_PYTHONPATH"))))))))))
(build-system meson-build-system)
(inputs
(list alsa-lib
diff --git a/gnu/packages/nx.scm b/gnu/packages/nx.scm
new file mode 100644
index 0000000000..189cf7de29
--- /dev/null
+++ b/gnu/packages/nx.scm
@@ -0,0 +1,246 @@
+;;; This file is part of GNU Guix.
+;;; Copyright © 2024 Nicolas Debonnaire <nicolas.debonnaire@gmail.com>
+;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages nx)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages commencement)
+ #:use-module (gnu packages cups)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages man)
+ #:use-module (gnu packages onc-rpc)
+ #:use-module (gnu packages openldap)
+ #:use-module (gnu packages patchutils)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages ssh)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg))
+
+(define-public nx-libs
+ (package
+ (name "nx-libs")
+ (version "3.5.99.27")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ArcticaProject/nx-libs")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ykbza39ksycpyydaiwwbp7hkmdk96v7b36pn989k39lhfwnn8kz"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ ;; The build randomly fails when run in parallel (see:
+ ;; https://github.com/ArcticaProject/nx-libs/issues/1072).
+ #:parallel-build? #f
+ #:make-flags #~(let ((sh (search-input-file %build-inputs "bin/sh")))
+ (list (string-append "PREFIX=" #$output)
+ (string-append "ETCDIR_NX=" #$output "/etc")
+ (string-append "LOCAL_LDFLAGS=-Wl,"
+ "-rpath=" #$output "/lib,"
+ "-rpath=" #$output "/lib/nx/X11")
+ (string-append "IMAKE_DEFINES=-DUseTIRPC=1"
+ " -DBourneShell=" sh
+ " -DProjectRoot=" #$output
+ " -DDefaultUserPath="
+ #$output "/bin")
+ (string-append "CONFIG_SHELL=" sh)
+ (string-append "SHELL=" sh)
+ ;; Autoreconf being run by Make, the generated
+ ;; configure script shebangs thus haven't been
+ ;; patched; workaround this by running explicitly
+ ;; via the shell.
+ (string-append "CONFIGURE=" sh " ./configure "
+ "--prefix=" #$output)
+ "VERBOSE=1"))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'adjust-Makefile
+ (lambda _
+ ;; It's best to source a script via its absolute path,
+ ;; otherwise it's looked from PATH and fails for POSIX
+ ;; shells, such as our Bash-provided 'sh' (see:
+ ;; https://github.com/ArcticaProject/nx-libs/issues/1071).
+ (substitute* "Makefile"
+ (("\\. replace.sh")
+ ". ./replace.sh"))))
+ (add-after 'install 'wrap-nxdialog
+ (lambda* (#:key inputs #:allow-other-keys)
+ (wrap-program (string-append #$output "/bin/nxdialog")
+ `("GUIX_PYTHONPATH" =
+ (,(getenv "GUIX_PYTHONPATH")))
+ ;; Ensure GObject Introspection typelibs are found.
+ `("GI_TYPELIB_PATH" ":" =
+ (,(getenv "GI_TYPELIB_PATH")))))))))
+ (native-inputs
+ (list autoconf
+ automake
+ bash-minimal ;for wrap-program
+ font-util
+ gccmakedep
+ imake
+ libtool
+ perl
+ pkg-config
+ quilt
+ which))
+ (inputs
+ (list gtk+
+ libjpeg-turbo
+ libtirpc
+ libxcomposite
+ libxdamage
+ libxext
+ libxfont
+ libxinerama
+ libxml2
+ libxpm
+ libxrandr
+ libxtst
+ pixman
+ python-pygobject
+ python-wrapper
+ xkbcomp))
+ (propagated-inputs
+ (list libpng)) ;in Requires of nxcomp.pc
+ (synopsis "NX X11 protocol compression libraries")
+ (description "NX is a software suite which implements very efficient
+compression of the X11 protocol. This increases performance when using X
+applications over a network, especially a slow one. This package provides the
+following libraries:
+@table @code
+@item NX_X11
+NX's modified X Window System (X11) library
+@item Xcomp
+NX differential compression library for X11
+@item Xcompshad
+Session shadowing library
+@end table
+
+The following commands are also provided:
+
+@table @command
+@item nxagent
+Agent providing NX transport of X sessions
+@item nxproxy
+The NX proxy (client) binary
+@item nxdialog
+Helper script
+@end table")
+ (home-page "https://github.com/ArcticaProject/nx-libs")
+ (license license:gpl2)))
+
+(define-public x2goclient
+ (package
+ (name "x2goclient")
+ (version "4.1.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://code.x2go.org/releases/source/x2goclient/x2goclient-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0g6aba8kpsixq4486a8mga945lp31y0mzwa2krs5qqiiip3v72xb"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ #:make-flags
+ #~(list (string-append "SHELL="
+ (search-input-file %build-inputs "bin/bash"))
+ "QT_VERSION=5"
+ "INSTALL_DIR=install -d -m 755"
+ "INSTALL_FILE=install -m 644"
+ "INSTALL_PROGRAM=install -m 755"
+ (string-append "PREFIX=" #$output)
+ (string-append "ETCDIR=" #$output "/etc"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/onmainwindow.cpp"
+ (("/usr/sbin/sshd")
+ (search-input-file inputs "sbin/sshd"))))))))
+ (native-inputs
+ (list man2html
+ pkg-config
+ qtbase-5
+ qttools-5))
+ (inputs
+ (list cups
+ libssh
+ libxpm
+ nx-libs
+ openldap
+ openssh
+ pulseaudio
+ qtbase-5
+ qtx11extras
+ qtsvg-5))
+ (synopsis "Remote desktop and application solution")
+ (description
+ "X2Go enables you to access a graphical desktop of a computer via
+SSH (Secure Shell). This package provides the X2Go Client, which can connect
+to the X2Go Server. Basic features of X2Go include:
+@itemize
+@item
+Graphical remote desktop that works well over both low bandwidth and high
+bandwidth connections
+@item
+The ability to disconnect and reconnect to a session, even from another
+client
+@item
+Support for sound
+@item
+Support for as many simultaneous users as the computer's resources will
+allow
+@item
+Traffic is securely tunneled over SSH
+@item
+File sharing from client to server
+@item
+Printer sharing from client to server
+@item
+Easily select from multiple desktop environments (e.g., MATE, GNOME, KDE)
+@item
+Remote support possible via desktop sharing
+@item
+The ability to access single applications by specifying the name of the
+desired executable in the client configuration or selecting one of the
+pre-defined common applications.
+@end itemize")
+ (home-page "https://wiki.x2go.org/doku.php")
+ (license license:gpl2)))
diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm
index 3d41a2adde..8e376da78b 100644
--- a/gnu/packages/ocr.scm
+++ b/gnu/packages/ocr.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2021, 2024 Andy Tai <atai@atai.org>
-;;; Copyright © 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2021, 2022, 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -209,7 +209,7 @@ default. To add support for more languages, the
(define-public gimagereader
(package
(name "gimagereader")
- (version "3.4.1")
+ (version "3.4.2")
(source
(origin
(method url-fetch)
@@ -218,7 +218,7 @@ default. To add support for more languages, the
"/download/v" version "/"
"gimagereader-" version ".tar.xz"))
(sha256
- (base32 "1972bvnk2bkgbh70vy2prcmdzf4wlna862p2vja9yjxi2c0scmwc"))))
+ (base32 "0r52j5q2d0mvzw6qkds6vrapcqhdgyj2jvp7bh8w9zw6gpjsyk0q"))))
(build-system cmake-build-system)
(arguments
(list
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 935c8fd32b..908346e6a0 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -9,7 +9,7 @@
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2018, 2019 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2019-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
@@ -120,6 +120,7 @@
#:use-module (gnu packages xorg)
#:use-module (gnu packages version-control)
#:autoload (guix build-system channel) (channel-build-system)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
@@ -175,8 +176,8 @@
;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this.
(let ((version "1.4.0")
- (commit "aeb494322ca9dec4a4d66a7d063239c8536bd538")
- (revision 16))
+ (commit "4c94b9e983bc51d9504655f1e7727c4f6d14b6b7")
+ (revision 18))
(package
(name "guix")
@@ -192,7 +193,7 @@
(commit commit)))
(sha256
(base32
- "1xl769lkpvkjpvq4vwkxm4dp77sr9finvr6izvf4kvyi6s3hbsys"))
+ "19lqlfafs5mrnciw4jz4iccx5zzhj4pyb20bz6cdqcqbf9nmkfp1"))
(file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -685,15 +686,12 @@ overridden by setting the 'current-guix-package' parameter."
(define-public guix-icons
(package
- (inherit guix)
(name "guix-icons")
(version "0.1")
(source %artwork-repository)
(build-system trivial-build-system)
(native-inputs
(list imagemagick))
- (inputs
- '())
(arguments
`(#:modules ((guix build utils)
(gnu build svg))
@@ -741,10 +739,29 @@ overridden by setting the 'current-guix-package' parameter."
#:width size
#:height size)))
sizes))))))
+ (home-page "https://www.gnu.org/software/guix/")
(synopsis "GNU Guix icons")
(description "This package contains GNU Guix icons organized according to
the Icon Theme Specification. They can be used by applications querying the
-GTK icon cache for instance.")))
+GTK icon cache for instance.")
+ (license license:cc-by-sa4.0)))
+
+(define-public guix-backgrounds
+ (package
+ (name "guix-backgrounds")
+ (version "0.1")
+ (source %artwork-repository)
+ (build-system copy-build-system)
+ (arguments
+ (list #:install-plan
+ #~'(("backgrounds" "share/backgrounds/guix" #:exclude ("README")))))
+ (home-page "https://www.gnu.org/software/guix/")
+ (synopsis "Background images for GNU Guix")
+ (description "The SVG files in this directory are intended to be used as
+backgrounds for different components of the GNU system like login managers and
+desktop environments. The backgrounds are available in different aspect ratios
+which are indicated in the file name.")
+ (license (list license:public-domain license:cc-by-sa4.0))))
(define-public guix-modules
(package
@@ -977,8 +994,8 @@ transactions from C or Python.")
(license license:gpl2+)))
(define-public bffe
- (let ((commit "1c12da4e6f3c7d3ab557781769fb848354362748")
- (revision "3"))
+ (let ((commit "bdfaab91e82d7d43c35405da3b18c46cde8096de")
+ (revision "5"))
(package
(name "bffe")
(version (git-version "0" revision commit))
@@ -989,7 +1006,7 @@ transactions from C or Python.")
(commit commit)))
(sha256
(base32
- "0qa63mssv85g38m3bcblgp3yscywgz0hrg4lc84dxx99b07pmfc3"))
+ "0qwnd49apwdx8wrfms2spii1kdg5ashf4591kyfyr89070jjmpa7"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(native-inputs
@@ -1004,7 +1021,7 @@ transactions from C or Python.")
guix
guix-data-service
guix-build-coordinator
- guile-fibers-1.3
+ guile-fibers
guile-prometheus
guile-lib))
(propagated-inputs
@@ -1013,7 +1030,7 @@ transactions from C or Python.")
guix
guix-data-service
guix-build-coordinator
- guile-fibers-1.3
+ guile-fibers
guile-prometheus
guile-lib))
(home-page "https://git.cbaines.net/guix/bffe")
@@ -1516,8 +1533,8 @@ environments.")
"0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
(define-public guix-build-coordinator
- (let ((commit "9f1545b15269523eac109b54e1a62f4c0cda837e")
- (revision "97"))
+ (let ((commit "14e18eed98d1836662d8787d08f7a37cf8c2f69d")
+ (revision "100"))
(package
(name "guix-build-coordinator")
(version (git-version "0" revision commit))
@@ -1528,7 +1545,7 @@ environments.")
(commit commit)))
(sha256
(base32
- "1h35jjpvl7lipbys8q7ivx13cffkya6n0jpc91ckag3z2vb09iwp"))
+ "1vv1l6y80ymqi7qz70bfq4is4y1xh21jm4d4gapn63931ac4fiij"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 9fd484f595..2b2395e3bd 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2017, 2020-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017, 2020-2022, 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2022 Marius Bakke <marius@gnu.org>
@@ -149,7 +149,7 @@ human.")
(define-public keepassxc
(package
(name "keepassxc")
- (version "2.7.6")
+ (version "2.7.7")
(source
(origin
(method url-fetch)
@@ -157,7 +157,7 @@ human.")
"/releases/download/" version "/keepassxc-"
version "-src.tar.xz"))
(sha256
- (base32 "0w6nh2lnzfqcxasfsppmh4q309p1flzgfiv25hahzsd8kx879055"))))
+ (base32 "0rzfh8xdsd1r0xb7yb0h2zyzwhbsp7si8c0haaqgzcz4k2p4bz2q"))))
(build-system qt-build-system)
(arguments
(list
@@ -423,7 +423,7 @@ applications, there is xclip integration." )
(define-public ssh-to-age
(package
(name "ssh-to-age")
- (version "1.1.2")
+ (version "1.1.7")
(source
(origin
(method git-fetch)
@@ -432,7 +432,7 @@ applications, there is xclip integration." )
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "09rhga9iqmyyq8pkprydy8y15qhzqvbpgzvs681rcyllf8szrj73"))))
+ (base32 "134gpbalyll238wvj9ci0rascgm4csayz863ci99cy5qq8266wrl"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/Mic92/ssh-to-age/cmd/ssh-to-age"
@@ -441,7 +441,7 @@ applications, there is xclip integration." )
go-filippo-io-edwards25519
go-filippo-io-age))
(home-page "https://github.com/Mic92/ssh-to-age")
- (synopsis "Convert SSH @code{ed25519} keys to @code{age} keys.")
+ (synopsis "Convert SSH @code{ed25519} keys to @code{age} keys")
(description "This package provides a simple command-line tool to
convert SSH @code{ed25519} keys to @code{age} keys.")
(license license:expat)))
diff --git a/gnu/packages/patches/clang-17.0-link-dsymutil-latomic.patch b/gnu/packages/patches/clang-17.0-link-dsymutil-latomic.patch
new file mode 100644
index 0000000000..f94840527e
--- /dev/null
+++ b/gnu/packages/patches/clang-17.0-link-dsymutil-latomic.patch
@@ -0,0 +1,14 @@
+This was mistakenly added to llvm-17 while a patch was being rebased.
+
+---
+
+diff --git a/llvm/tools/dsymutil/CMakeLists.txt b/llvm/tools/dsymutil/CMakeLists.txt
+index 3cb88a50ce25..8699d0bb1d6b 100644
+--- a/llvm/tools/dsymutil/CMakeLists.txt
++++ b/llvm/tools/dsymutil/CMakeLists.txt
+@@ -42,4 +42,4 @@ if(APPLE)
+ target_link_libraries(dsymutil PRIVATE "-framework CoreFoundation")
+ endif(APPLE)
+
+-# target_link_libraries(dsymutil PRIVATE ${LLVM_ATOMIC_LIB})
++target_link_libraries(dsymutil PRIVATE ${LLVM_ATOMIC_LIB})
diff --git a/gnu/packages/patches/hubbub-maybe-uninitialized.patch b/gnu/packages/patches/hubbub-maybe-uninitialized.patch
deleted file mode 100644
index 6f289a770e..0000000000
--- a/gnu/packages/patches/hubbub-maybe-uninitialized.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 69d81a8a4d4c223aad67cde0fdf64d64351b9802 Mon Sep 17 00:00:00 2001
-From: Andy Tai <atai@atai.org>
-Date: Sat, 27 May 2023 00:01:34 -0700
-Subject: [PATCH] prevent -Werror=maybe-uninitialized build failure with gcc 11
- when building tests tokeniser2 and tokeniser3
-
----
- test/tokeniser2.c | 2 +-
- test/tokeniser3.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/test/tokeniser2.c b/test/tokeniser2.c
-index c8ab9c0..4caae38 100644
---- a/test/tokeniser2.c
-+++ b/test/tokeniser2.c
-@@ -438,7 +438,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
- /* Expected token only contained part of the data
- * Calculate how much is left, then try again with
- * the next expected token */
-- hubbub_token t;
-+ hubbub_token t = { 0 };
-
- t.type = HUBBUB_TOKEN_CHARACTER;
- t.data.character.ptr += len;
-diff --git a/test/tokeniser3.c b/test/tokeniser3.c
-index e33d018..b3be901 100644
---- a/test/tokeniser3.c
-+++ b/test/tokeniser3.c
-@@ -447,7 +447,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
- /* Expected token only contained part of the data
- * Calculate how much is left, then try again with
- * the next expected token */
-- hubbub_token t;
-+ hubbub_token t = { 0 };
-
- t.type = HUBBUB_TOKEN_CHARACTER;
- t.data.character.ptr += len;
---
-2.40.1
-
diff --git a/gnu/packages/patches/libcss-check-format.patch b/gnu/packages/patches/libcss-check-format.patch
new file mode 100644
index 0000000000..b297ac1c92
--- /dev/null
+++ b/gnu/packages/patches/libcss-check-format.patch
@@ -0,0 +1,13 @@
+Submitted upstream at https://bugs.netsurf-browser.org/mantis/view.php?id=2870
+
+--- libcss-0.9.2/test/dump.h.orig
++++ libcss-0.9.2/test/dump.h
+@@ -131,7 +131,7 @@ void dump_rule_media(css_rule_media *s, char **buf, size_t *buflen)
+ char *ptr = *buf;
+ css_rule *rule;
+
+- ptr += sprintf(ptr, "| @media %s%03lx",
++ ptr += sprintf(ptr, "| @media %s%03" PRIx64,
+ s->media->negate_type ? "not " : "",
+ s->media->type);
+
diff --git a/gnu/packages/patches/libextractor-tidy-support.patch b/gnu/packages/patches/libextractor-tidy-support.patch
new file mode 100644
index 0000000000..8fe2f21b2b
--- /dev/null
+++ b/gnu/packages/patches/libextractor-tidy-support.patch
@@ -0,0 +1,81 @@
+Upstream status: submitted to bug-libextractor@gnu.org.
+
+From 1fc6daaeaf829fb941a176831c011888a73c43b9 Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Mon, 11 Mar 2024 09:36:26 -0400
+Subject: [PATCH] html_extractor: Add support for modern tidy-html.
+
+* configure.ac: Use PKG_PROG_PKG_CONFIG to initialize pkg-config detection.
+<tidy>: Check for library via pkg-config.
+* src/plugins/html_extractor.c: Standardize tidy include file names.
+---
+ configure.ac | 28 +++++++++-------------------
+ src/plugins/html_extractor.c | 4 ++--
+ 2 files changed, 11 insertions(+), 21 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d17ff39..e89d70c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -176,6 +176,8 @@ AS_CASE(["$target_os"],
+
+ AM_ICONV
+
++PKG_PROG_PKG_CONFIG()
++
+ # We define the paths here, because MinGW/GCC expands paths
+ # passed through the command line ("-DLOCALEDIR=..."). This would
+ # lead to hard-coded paths ("C:\mingw\mingw\bin...") that do
+@@ -424,25 +426,13 @@ AC_CHECK_LIB(magic, magic_open,
+ AM_CONDITIONAL(HAVE_MAGIC, false))],
+ AM_CONDITIONAL(HAVE_MAGIC, false))
+
+-AC_MSG_CHECKING(for tidyNodeGetValue -ltidy)
+-AC_LANG_PUSH(C++)
+-SAVED_LIBS=$LIBS
+-LIBS="$LIBS -ltidy"
+-AC_LINK_IFELSE(
+- [AC_LANG_PROGRAM([[#include <tidy/tidy.h>]],
+- [[ Bool b = tidyNodeGetValue (NULL, NULL, NULL); ]])],
+- [AC_MSG_RESULT(yes)
+- AM_CONDITIONAL(HAVE_TIDY, true)
+- AC_DEFINE(HAVE_TIDY,1,[Have tidyNodeGetValue in libtidy])],
+- [AC_MSG_RESULT(no)
+- AM_CONDITIONAL(HAVE_TIDY, false)])
+-LIBS=$SAVED_LIBS
+-AC_LANG_POP(C++)
+-
+-# restore LIBS
+-LIBS=$LIBSOLD
+-
+-
++dnl tidyNodeGetValue was already available in 5.0.0, released in 2015.
++PKG_CHECK_MODULES([TIDY], [tidy >= 5.0.0],
++ [AC_DEFINE(HAVE_TIDY, 1, [Have tidy])
++ AM_CONDITIONAL(HAVE_TIDY, true)],
++ [AM_CONDITIONAL(HAVE_TIDY, false)])
++CFLAGS="$CFLAGS $TIDY_CFLAGS"
++LIBS="$LIBS $TIDY_LIBS"
+
+ # should 'make check' run tests?
+ AC_MSG_CHECKING(whether to run tests)
+diff --git a/src/plugins/html_extractor.c b/src/plugins/html_extractor.c
+index 5ebf97b..88100d3 100644
+--- a/src/plugins/html_extractor.c
++++ b/src/plugins/html_extractor.c
+@@ -26,8 +26,8 @@
+ #include "platform.h"
+ #include "extractor.h"
+ #include <magic.h>
+-#include <tidy/tidy.h>
+-#include <tidy/tidybuffio.h>
++#include <tidy.h>
++#include <tidybuffio.h>
+
+ /**
+ * Mapping of HTML META names to LE types.
+
+base-commit: a75f40b64b5868967c95ea214e8eaac4f7088b23
+--
+2.41.0
+
diff --git a/gnu/packages/patches/netsurf-message-timestamp.patch b/gnu/packages/patches/netsurf-message-timestamp.patch
index 8df9dbf8f7..03bfdfde3f 100644
--- a/gnu/packages/patches/netsurf-message-timestamp.patch
+++ b/gnu/packages/patches/netsurf-message-timestamp.patch
@@ -1,5 +1,5 @@
---- netsurf-3.8/utils/split-messages.pl.orig 1969-12-31 18:00:00.000000000 -0600
-+++ netsurf-3.8/utils/split-messages.pl 2018-08-30 00:18:58.158367530 -0500
+--- netsurf-3.11/tools/split-messages.pl.orig
++++ netsurf-3.11/tools/split-messages.pl
@@ -238,7 +238,7 @@
if( $opt{gzip} )
diff --git a/gnu/packages/patches/python-3.12-fix-tests.patch b/gnu/packages/patches/python-3.12-fix-tests.patch
new file mode 100644
index 0000000000..fa5c8027ce
--- /dev/null
+++ b/gnu/packages/patches/python-3.12-fix-tests.patch
@@ -0,0 +1,334 @@
+From f0698133e7d6c353a3e6ae0fc62e57ba558a9bc0 Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Wed, 28 Oct 2020 22:55:05 -0400
+Subject: [PATCH] Skip problematic Python 3 tests in Guix.
+
+A subset of the hunks in this patch is tracked upstream at
+https://bugs.python.org/issue38845, which was contributed by Tanguy Le
+Carrour <tanguy@bioneland.org>.
+
+diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
+index e42c7ab4bd..8087c84dab 100644
+--- a/Lib/test/_test_multiprocessing.py
++++ b/Lib/test/_test_multiprocessing.py
+@@ -1695,6 +1695,7 @@ def _test_wait_result(cls, c, pid):
+ if pid is not None:
+ os.kill(pid, signal.SIGINT)
+
++ @unittest.skipIf(True, "This fails for unknown reasons on Guix")
+ def test_wait_result(self):
+ if isinstance(self, ProcessesMixin) and sys.platform != 'win32':
+ pid = os.getpid()
+@@ -4150,6 +4151,7 @@ def test_shared_memory_across_processes(self):
+ sms.close()
+
+ @unittest.skipIf(os.name != "posix", "not feasible in non-posix platforms")
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ def test_shared_memory_SharedMemoryServer_ignores_sigint(self):
+ # bpo-36368: protect SharedMemoryManager server process from
+ # KeyboardInterrupt signals.
+diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
+index 85c8152d49..e35cfffe84 100644
+--- a/Lib/test/test_asyncio/test_base_events.py
++++ b/Lib/test/test_asyncio/test_base_events.py
+@@ -1377,6 +1377,8 @@ def test_create_connection_no_inet_pton(self, m_socket):
+ self._test_create_connection_ip_addr(m_socket, False)
+
+ @patch_socket
++ @unittest.skipUnless(support.is_resource_enabled('network'),
++ 'network is not enabled')
+ def test_create_connection_service_name(self, m_socket):
+ m_socket.getaddrinfo = socket.getaddrinfo
+ sock = m_socket.socket.return_value
+diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/test/test_ctypes/test_find.py
+index a41e94971d..1291af3057 100644
+--- a/Lib/test/test_ctypes/test_find.py
++++ b/Lib/test/test_ctypes/test_find.py
+@@ -117,6 +117,7 @@ def test_find_library_with_gcc(self):
+ with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None):
+ self.assertNotEqual(find_library('c'), None)
+
++ @unittest.skipIf(True, 'Fails on Guix.')
+ def test_find_library_with_ld(self):
+ with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \
+ unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None):
+diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
+index 1ee9958445..ab6b41befe 100644
+--- a/Lib/test/test_generators.py
++++ b/Lib/test/test_generators.py
+@@ -34,6 +34,7 @@ def generator2(self):
+ else:
+ return "FAILED"
+
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment')
+ def test_raise_and_yield_from(self):
+ gen = self.generator1()
+ gen.send(None)
+diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
+index ec105ae1a0..ae4c5b672e 100644
+--- a/Lib/test/test_pathlib.py
++++ b/Lib/test/test_pathlib.py
+@@ -3069,6 +3069,7 @@ def test_rglob(self):
+ 'pwd module does not expose getpwall()')
+ @unittest.skipIf(sys.platform == "vxworks",
+ "no home directory on VxWorks")
++ @unittest.skipIf(True, "Guix builder home is '/' which causes trouble for these tests")
+ def test_expanduser(self):
+ P = self.cls
+ import_helper.import_module('pwd')
+diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
+index 51b844262e..004d3133cf 100644
+--- a/Lib/test/test_pdb.py
++++ b/Lib/test/test_pdb.py
+@@ -1580,6 +1580,7 @@ def test_pdb_next_command_subiterator():
+ (Pdb) continue
+ """
+
++@unittest.skipIf(True, 'Fails on Guix… but skipIf not taken into account?!')
+ def test_pdb_issue_20766():
+ """Test for reference leaks when the SIGINT handler is set.
+
+@@ -1598,11 +1599,11 @@ def test_pdb_issue_20766():
+ > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
+ -> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
+ (Pdb) continue
+- pdb 1: <built-in function default_int_handler>
++ pdb 1: 1
+ > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
+ -> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
+ (Pdb) continue
+- pdb 2: <built-in function default_int_handler>
++ pdb 2: 1
+ """
+
+ def test_pdb_issue_43318():
+diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
+index 2ab6f6a986..8cf6b4d1c8 100644
+--- a/Lib/test/test_regrtest.py
++++ b/Lib/test/test_regrtest.py
+@@ -1049,6 +1049,7 @@ def test_fromfile(self):
+ output = self.run_tests('--fromfile', filename)
+ self.check_executed_tests(output, tests, stats=stats)
+
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+ def test_interrupted(self):
+ code = TEST_INTERRUPTED
+ test = self.create_test('sigint', code=code)
+@@ -1066,6 +1067,7 @@ def test_slowest(self):
+ % (self.TESTNAME_REGEX, len(tests)))
+ self.check_line(output, regex)
+
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+ def test_slowest_interrupted(self):
+ # Issue #25373: test --slowest with an interrupted test
+ code = TEST_INTERRUPTED
+diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
+index 317e7ca8f8..7f272daf24 100644
+--- a/Lib/test/test_resource.py
++++ b/Lib/test/test_resource.py
+@@ -151,6 +151,7 @@ def test_freebsd_contants(self):
+
+ @unittest.skipUnless(hasattr(resource, 'prlimit'), 'no prlimit')
+ @support.requires_linux_version(2, 6, 36)
++ @unittest.skipIf(True, "Bug: the PermissionError is not raised")
+ def test_prlimit(self):
+ self.assertRaises(TypeError, resource.prlimit)
+ self.assertRaises(ProcessLookupError, resource.prlimit,
+diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
+index bf60f37934..5e3a96380a 100644
+--- a/Lib/test/test_shutil.py
++++ b/Lib/test/test_shutil.py
+@@ -1743,6 +1743,7 @@ def test_make_archive(self):
+ base_name = os.path.join(tmpdir, 'archive')
+ self.assertRaises(ValueError, make_archive, base_name, 'xxx')
+
++ @unittest.skipIf(True, "The Guix build container has no root user")
+ @support.requires_zlib()
+ def test_make_archive_owner_group(self):
+ # testing make_archive with owner and group, with various combinations
+@@ -1771,6 +1772,7 @@ def test_make_archive_owner_group(self):
+ self.assertTrue(os.path.isfile(res))
+
+
++ @unittest.skipIf(True, "The Guix build container has no root user")
+ @support.requires_zlib()
+ @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
+ def test_tarfile_root_owner(self):
+diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
+index 637a0ca3b3..2fb804e340 100644
+--- a/Lib/test/test_signal.py
++++ b/Lib/test/test_signal.py
+@@ -160,6 +160,7 @@ def test_valid_signals(self):
+ self.assertLess(signum, signal.NSIG)
+
+ @unittest.skipUnless(sys.executable, "sys.executable required.")
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ @support.requires_subprocess()
+ def test_keyboard_interrupt_exit_code(self):
+ """KeyboardInterrupt triggers exit via SIGINT."""
+@@ -211,6 +212,7 @@ def test_issue9324(self):
+ signal.signal(7, handler)
+
+ @unittest.skipUnless(sys.executable, "sys.executable required.")
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ @support.requires_subprocess()
+ def test_keyboard_interrupt_exit_code(self):
+ """KeyboardInterrupt triggers an exit using STATUS_CONTROL_C_EXIT."""
+@@ -1407,6 +1409,7 @@ def cycle_handlers():
+
+ class RaiseSignalTest(unittest.TestCase):
+
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ def test_sigint(self):
+ with self.assertRaises(KeyboardInterrupt):
+ signal.raise_signal(signal.SIGINT)
+@@ -1452,6 +1455,7 @@ def __del__(self):
+
+ class PidfdSignalTest(unittest.TestCase):
+
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ @unittest.skipUnless(
+ hasattr(signal, "pidfd_send_signal"),
+ "pidfd support not built in",
+diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
+index 4eb5af99d6..9c7b8f6dbc 100644
+--- a/Lib/test/test_socket.py
++++ b/Lib/test/test_socket.py
+@@ -1016,6 +1016,8 @@ def testHostnameRes(self):
+ if not fqhn in all_host_names:
+ self.fail("Error testing host resolution mechanisms. (fqdn: %s, all: %s)" % (fqhn, repr(all_host_names)))
+
++ @unittest.skipUnless(support.is_resource_enabled('network'),
++ 'network is not enabled')
+ def test_host_resolution(self):
+ for addr in [socket_helper.HOSTv4, '10.0.0.1', '255.255.255.255']:
+ self.assertEqual(socket.gethostbyname(addr), addr)
+@@ -1161,6 +1163,8 @@ def testNtoHErrors(self):
+ self.assertRaises(OverflowError, socket.ntohl, k)
+ self.assertRaises(OverflowError, socket.htonl, k)
+
++ @unittest.skipUnless(os.path.exists("/etc/services"),
++ "getservbyname uses /etc/services, which is not in the chroot")
+ def testGetServBy(self):
+ eq = self.assertEqual
+ # Find one service that exists, then check all the related interfaces.
+@@ -1521,6 +1525,8 @@ def test_sio_loopback_fast_path(self):
+ raise
+ self.assertRaises(TypeError, s.ioctl, socket.SIO_LOOPBACK_FAST_PATH, None)
+
++ @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++ "getaddrinfo() will fail")
+ def testGetaddrinfo(self):
+ try:
+ socket.getaddrinfo('localhost', 80)
+@@ -1653,6 +1659,8 @@ def test_getnameinfo(self):
+ # only IP addresses are allowed
+ self.assertRaises(OSError, socket.getnameinfo, ('mail.python.org',0), 0)
+
++ @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++ "getaddrinfo() will fail")
+ @unittest.skipUnless(support.is_resource_enabled('network'),
+ 'network is not enabled')
+ def test_idna(self):
+diff --git a/Lib/test/test_spwd.py b/Lib/test/test_spwd.py
+index 50766c2548..0c7eb7a83a 100644
+--- a/Lib/test/test_spwd.py
++++ b/Lib/test/test_spwd.py
+@@ -9,8 +9,7 @@
+ spwd = import_helper.import_module('spwd')
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
+- 'root privileges required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdRoot(unittest.TestCase):
+
+ def test_getspall(self):
+@@ -60,8 +59,7 @@ def test_getspnam(self):
+ self.assertRaises(TypeError, spwd.getspnam, bytes_name)
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() != 0,
+- 'non-root user required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdNonRoot(unittest.TestCase):
+
+ def test_getspnam_exception(self):
+diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
+index 71489ea493..33351919fe 100644
+--- a/Lib/test/test_tarfile.py
++++ b/Lib/test/test_tarfile.py
+@@ -2911,9 +2911,12 @@ def root_is_uid_gid_0():
+ import pwd, grp
+ except ImportError:
+ return False
+- if pwd.getpwuid(0)[0] != 'root':
+- return False
+- if grp.getgrgid(0)[0] != 'root':
++ try:
++ if pwd.getpwuid(0)[0] != 'root':
++ return False
++ if grp.getgrgid(0)[0] != 'root':
++ return False
++ except KeyError:
+ return False
+ return True
+
+diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
+index 00d9e591c7..2515603715 100644
+--- a/Lib/test/test_threading.py
++++ b/Lib/test/test_threading.py
+@@ -1962,6 +1962,7 @@ def check_interrupt_main_noerror(self, signum):
+ # Restore original handler
+ signal.signal(signum, handler)
+
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+ def test_interrupt_main_subthread(self):
+ # Calling start_new_thread with a function that executes interrupt_main
+ # should raise KeyboardInterrupt upon completion.
+@@ -1973,6 +1974,8 @@ def call_interrupt():
+ t.join()
+ t.join()
+
++
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+ def test_interrupt_main_mainthread(self):
+ # Make sure that if interrupt_main is called in main thread that
+ # KeyboardInterrupt is raised instantly.
+diff --git a/Lib/test/test_tools/test_freeze.py b/Lib/test/test_tools/test_freeze.py
+index 0e7ed67de7..6539a2983b 100644
+--- a/Lib/test/test_tools/test_freeze.py
++++ b/Lib/test/test_tools/test_freeze.py
+@@ -23,6 +23,7 @@
+ 'test is too slow with PGO')
+ class TestFreeze(unittest.TestCase):
+
++ @unittest.skipIf(True, 'Fails on Guix.')
+ @support.requires_resource('cpu') # Building Python is slow
+ def test_freeze_simple_script(self):
+ script = textwrap.dedent("""
+diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py
+index 515c3840cb..a96dfad0fe 100644
+--- a/Lib/test/test_unicodedata.py
++++ b/Lib/test/test_unicodedata.py
+@@ -342,6 +342,7 @@ def test_linebreak_7643(self):
+ self.assertEqual(len(lines), 1,
+ r"\u%.4x should not be a linebreak" % i)
+
++@requires_resource('network')
+ class NormalizationTest(unittest.TestCase):
+ @staticmethod
+ def check_version(testfile):
+diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py
+index 445a34ae3e..8f750537c3 100644
+--- a/Tools/scripts/run_tests.py
++++ b/Tools/scripts/run_tests.py
+@@ -69,7 +69,7 @@ def main(regrtest_args):
+ else:
+ args.extend(['-j', '0']) # Use all CPU cores
+ if not any(is_resource_use_flag(arg) for arg in regrtest_args):
+- args.extend(['-u', 'all,-largefile,-audio,-gui'])
++ args.extend(['-u', 'all,-largefile,-audio,-gui,-network'])
+
+ if cross_compile and hostrunner:
+ # If HOSTRUNNER is set and -p/--python option is not given, then
diff --git a/gnu/packages/patches/python-poppler-qt5-fix-build.patch b/gnu/packages/patches/python-poppler-qt5-fix-build.patch
deleted file mode 100644
index 099bb86d2f..0000000000
--- a/gnu/packages/patches/python-poppler-qt5-fix-build.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-Patch taken from the upstream repository
-https://github.com/frescobaldi/python-poppler-qt5/issues/43
-
-From 92e5962ec3751ab051d0b655fd61afc7a1cf709e Mon Sep 17 00:00:00 2001
-From: Ben Greiner <code@bnavigator.de>
-Date: Thu, 4 Mar 2021 17:02:51 +0100
-Subject: [PATCH] map type QVector< QPair<TYPE, TYPE> > for
- FormFieldChoice::choicesWithExportValues() (#45)
-
----
- types.sip | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 93 insertions(+)
-
-diff --git a/types.sip b/types.sip
-index 239b8c9..81cb283 100644
---- a/types.sip
-+++ b/types.sip
-@@ -331,5 +331,98 @@ template <TYPE>
- };
-
-
-+/**
-+ * Convert QVector< QPair<TYPE, TYPE> >
-+ * from and to a Python list of a 2-item tuple
-+ */
-+
-+template<TYPE>
-+%MappedType QVector< QPair<TYPE, TYPE> >
-+{
-+%TypeHeaderCode
-+#include <qvector.h>
-+#include <qpair.h>
-+%End
-+
-+%ConvertFromTypeCode
-+ // Create the list.
-+ PyObject *l;
-+
-+ if ((l = PyList_New(sipCpp->size())) == NULL)
-+ return NULL;
-+
-+ // Set the list elements.
-+ for (int i = 0; i < sipCpp->size(); ++i)
-+ {
-+ QPair<TYPE, TYPE>* p = new QPair<TYPE, TYPE>(sipCpp->at(i));
-+ PyObject *ptuple = PyTuple_New(2);
-+ PyObject *pfirst;
-+ PyObject *psecond;
-+
-+ TYPE *sfirst = new TYPE(p->first);
-+ if ((pfirst = sipConvertFromType(sfirst, sipType_TYPE, sipTransferObj)) == NULL)
-+ {
-+ Py_DECREF(l);
-+ Py_DECREF(ptuple);
-+ return NULL;
-+ }
-+ PyTuple_SET_ITEM(ptuple, 0, pfirst);
-+
-+ TYPE *ssecond = new TYPE(p->second);
-+ if ((psecond = sipConvertFromType(ssecond, sipType_TYPE, sipTransferObj)) == NULL)
-+ {
-+ Py_DECREF(l);
-+ Py_DECREF(ptuple);
-+ Py_DECREF(pfirst);
-+ return NULL;
-+ }
-+ PyTuple_SET_ITEM(ptuple, 1, psecond);
-+
-+ PyList_SET_ITEM(l, i, ptuple);
-+ }
-+
-+ return l;
-+%End
-+
-+%ConvertToTypeCode
-+ const sipTypeDef* qpair_type = sipFindType("QPair<TYPE, TYPE>");
-+
-+ // Check the type if that is all that is required.
-+ if (sipIsErr == NULL)
-+ {
-+ if (!PySequence_Check(sipPy))
-+ return 0;
-+
-+ for (int i = 0; i < PySequence_Size(sipPy); ++i)
-+ if (!sipCanConvertToType(PySequence_ITEM(sipPy, i), qpair_type, SIP_NOT_NONE))
-+ return 0;
-+
-+ return 1;
-+ }
-+
-+
-+ QVector< QPair<TYPE, TYPE> > *qv = new QVector< QPair<TYPE, TYPE> >;
-+
-+ for (int i = 0; i < PySequence_Size(sipPy); ++i)
-+ {
-+ int state;
-+ QPair<TYPE, TYPE> * p = reinterpret_cast< QPair<TYPE, TYPE> * >(sipConvertToType(PySequence_ITEM(sipPy, i), qpair_type, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
-+
-+ if (*sipIsErr)
-+ {
-+ sipReleaseType(p, qpair_type, state);
-+ delete qv;
-+ return 0;
-+ }
-+ qv->append(*p);
-+ sipReleaseType(p, qpair_type, state);
-+ }
-+
-+ *sipCppPtr = qv;
-+ return sipGetState(sipTransferObj);
-+%End
-+
-+};
-+
-
- /* kate: indent-width 4; space-indent on; hl c++; indent-mode cstyle; */
diff --git a/gnu/packages/patches/qemu-build-info-manual.patch b/gnu/packages/patches/qemu-build-info-manual.patch
index ff28266aaa..0950787810 100644
--- a/gnu/packages/patches/qemu-build-info-manual.patch
+++ b/gnu/packages/patches/qemu-build-info-manual.patch
@@ -13,50 +13,33 @@ readers.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
diff --git a/docs/meson.build b/docs/meson.build
+index 9040f860ae..2ae7886fcb 100644
--- a/docs/meson.build
+++ b/docs/meson.build
-@@ -92,4 +92,25 @@ if build_docs
+@@ -98,4 +98,26 @@ if build_docs
alias_target('sphinxdocs', sphinxdocs)
alias_target('html', sphinxdocs)
alias_target('man', sphinxmans)
+
-+ # Generate a Texinfo version of the QEMU manual.
++ # Add a target to build and install a Texinfo version of the QEMU
++ # manual, if 'makeinfo' is available.
+ makeinfo = find_program(['texi2any', 'makeinfo'])
+ if makeinfo.found()
+ sphinxtexi = custom_target(
-+ 'QEMU manual generated texinfo source',
-+ output: ['QEMU.texi', 'sphinxtexi.stamp'],
++ 'qemu.texi',
++ output: ['qemu.texi', 'sphinxtexi.stamp'],
+ depfile: 'sphinxtexi.d',
+ command: [SPHINX_ARGS, '-Ddepfile=@DEPFILE@',
+ '-Ddepfile_stamp=@OUTPUT1@', '-b', 'texinfo',
-+ meson.current_source_dir(), meson.current_build_dir()])
++ '-d', private_dir, input_dir, meson.current_build_dir()])
+ sphinxinfo = custom_target(
-+ 'QEMU info manual',
++ 'qemu.info',
+ input: sphinxtexi,
-+ output: 'QEMU.info',
++ output: 'qemu.info',
+ install: true,
+ install_dir: get_option('infodir'),
-+ command: [makeinfo, '--no-split', '@INPUT0@', '--output=@OUTPUT@'])
++ command: [makeinfo, '--no-split', '--output=@OUTPUT@', '@INPUT0@'])
+ alias_target('texi', sphinxtexi)
+ alias_target('info', sphinxinfo)
+ endif
endif
-diff --git a/meson.build b/meson.build
---- a/meson.build
-+++ b/meson.build
-@@ -37,6 +37,7 @@ endif
- qemu_confdir = get_option('sysconfdir') / get_option('qemu_suffix')
- qemu_datadir = get_option('datadir') / get_option('qemu_suffix')
- qemu_docdir = get_option('docdir') / get_option('qemu_suffix')
-+qemu_infodir = get_option('infodir') / get_option('qemu_suffix')
- qemu_moddir = get_option('libdir') / get_option('qemu_suffix')
-
- qemu_desktopdir = get_option('datadir') / 'applications'
-@@ -3698,6 +3699,7 @@ else
- summary_info += {'local state directory': 'queried at runtime'}
- endif
- summary_info += {'Doc directory': get_option('prefix') / get_option('docdir')}
-+summary_info += {'Info directory': get_option('prefix') / get_option('infodir')}
- summary_info += {'Build directory': meson.current_build_dir()}
- summary_info += {'Source path': meson.current_source_dir()}
- summary_info += {'GIT submodules': config_host['GIT_SUBMODULES']}
diff --git a/gnu/packages/patches/qemu-disable-some-qtests-tests.patch b/gnu/packages/patches/qemu-disable-bios-tables-test.patch
index f60698de8f..39b7b0b53c 100644
--- a/gnu/packages/patches/qemu-disable-some-qtests-tests.patch
+++ b/gnu/packages/patches/qemu-disable-bios-tables-test.patch
@@ -1,20 +1,18 @@
-Disable the qtest-aarch64/migration-test, which sometimes fail
-non-deterministically (see:
-https://gitlab.com/qemu-project/qemu/-/issues/1230).
+The bios-tables-test may fail; disable it (see: https://gitlab.com/qemu-project/qemu/-/issues/1098)
-Also disable the bios-tables-test, which may fail on older machines (see:
-https://gitlab.com/qemu-project/qemu/-/issues/1098).
-
---- qemu-8.1.0/tests/qtest/meson.build.old 2023-08-30 11:48:27.871146249 -0400
-+++ qemu-8.1.0/tests/qtest/meson.build 2023-08-30 13:53:25.994084948 -0400
-@@ -1,6 +1,5 @@
+diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
+index f096cf3ecd..82f6e1ffeb 100644
+--- a/tests/qtest/meson.build
++++ b/tests/qtest/meson.build
+@@ -1,7 +1,6 @@
slow_qtests = {
'ahci-test' : 60,
+ 'aspeed_smc-test': 360,
- 'bios-tables-test' : 120,
'boot-serial-test' : 60,
'migration-test' : 150,
'npcm7xx_pwm-test': 150,
-@@ -81,9 +80,6 @@
+@@ -82,9 +81,6 @@ qtests_i386 = \
config_all_devices.has_key('CONFIG_Q35') and \
config_all_devices.has_key('CONFIG_VIRTIO_PCI') and \
slirp.found() ? ['virtio-net-failover'] : []) + \
@@ -24,27 +22,17 @@ https://gitlab.com/qemu-project/qemu/-/issues/1098).
qtests_pci + \
qtests_cxl + \
['fdc-test',
-@@ -212,7 +208,6 @@
-
+@@ -213,7 +209,6 @@ qtests_arm = \
+
# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make bios-tables-test unconditional
qtests_aarch64 = \
- (cpu != 'arm' and unpack_edk2_blobs ? ['bios-tables-test'] : []) + \
(config_all.has_key('CONFIG_TCG') and config_all_devices.has_key('CONFIG_TPM_TIS_SYSBUS') ? \
['tpm-tis-device-test', 'tpm-tis-device-swtpm-test'] : []) + \
(config_all_devices.has_key('CONFIG_XLNX_ZYNQMP_ARM') ? ['xlnx-can-test', 'fuzz-xlnx-dp-test'] : []) + \
-@@ -222,8 +217,7 @@
- config_all_devices.has_key('CONFIG_TPM_TIS_I2C') ? ['tpm-tis-i2c-test'] : []) + \
- ['arm-cpu-features',
- 'numa-test',
-- 'boot-serial-test',
-- 'migration-test']
-+ 'boot-serial-test']
-
- qtests_s390x = \
- qtests_filter + \
-@@ -301,7 +295,6 @@
+@@ -304,7 +299,6 @@ if gnutls.found()
endif
-
+
qtests = {
- 'bios-tables-test': [io, 'boot-sector.c', 'acpi-utils.c', 'tpm-emu.c'],
'cdrom-test': files('boot-sector.c'),
diff --git a/gnu/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch b/gnu/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch
new file mode 100644
index 0000000000..cd501bb343
--- /dev/null
+++ b/gnu/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch
@@ -0,0 +1,45 @@
+from https://patch-diff.githubusercontent.com/raw/RubyCrypto/x25519/pull/36.patch
+
+From 5886507e08488c0ed116b1979a073b78b9495683 Mon Sep 17 00:00:00 2001
+From: Eric Long <i@hack3r.moe>
+Date: Sat, 15 Apr 2023 02:58:26 +0800
+Subject: [PATCH] Add automatic fallback for non-x86_64 targets
+
+---
+ Rakefile | 2 +-
+ ext/x25519_precomputed/extconf.rb | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Rakefile b/Rakefile
+index 535697c..6e4f4d3 100644
+--- a/Rakefile
++++ b/Rakefile
+@@ -7,7 +7,7 @@ CLEAN.include("**/*.o", "**/*.so", "**/*.bundle", "pkg", "tmp")
+
+ require "rake/extensiontask"
+ %w[precomputed ref10].each do |provider|
+- next if provider == "precomputed" && RUBY_PLATFORM =~ /arm64-darwin/
++ next if provider == "precomputed" && RUBY_PLATFORM !~ /x86_64|x64/
+
+ Rake::ExtensionTask.new("x25519_#{provider}") do |ext|
+ ext.ext_dir = "ext/x25519_#{provider}"
+diff --git a/ext/x25519_precomputed/extconf.rb b/ext/x25519_precomputed/extconf.rb
+index 7f2ba4d..b049f98 100644
+--- a/ext/x25519_precomputed/extconf.rb
++++ b/ext/x25519_precomputed/extconf.rb
+@@ -4,12 +4,12 @@
+
+ require "mkmf"
+
+-if RUBY_PLATFORM =~ /arm64-darwin|aarch64-linux/
+- File.write("Makefile", "install clean: ;")
+-else
++if RUBY_PLATFORM =~ /x86_64|x64/
+ $CFLAGS << " -Wall -O3 -pedantic -std=c99 -mbmi -mbmi2 -march=haswell"
+
+ create_makefile "x25519_precomputed"
++else
++ File.write("Makefile", "install clean: ;")
+ end
+
+ # rubocop:enable Style/GlobalVars
diff --git a/gnu/packages/patches/sioyek-fix-build.patch b/gnu/packages/patches/sioyek-fix-build.patch
new file mode 100644
index 0000000000..521b361f2a
--- /dev/null
+++ b/gnu/packages/patches/sioyek-fix-build.patch
@@ -0,0 +1,82 @@
+Patch fetched from https://git.alpinelinux.org/aports/tree/community/sioyek/mupdf-0.23.0.patch
+
+From 86e913eccf19b97a16f25d9b6cdf0f50232f1226 Mon Sep 17 00:00:00 2001
+From: ptrcnull <git@ptrcnull.me>
+Date: Fri, 25 Aug 2023 22:44:26 +0200
+Subject: community/sioyek: fix build with mupdf-0.23.0
+
+---
+
+diff --git a/pdf_viewer/document_view.cpp b/pdf_viewer/document_view.cpp
+index f48d05e..0bc3855 100644
+--- a/pdf_viewer/document_view.cpp
++++ b/pdf_viewer/document_view.cpp
+@@ -1121,7 +1121,7 @@ std::vector<DocumentPos> DocumentView::find_line_definitions() {
+
+ std::optional<PdfLink> pdf_link = current_document->get_link_in_page_rect(get_center_page_number(), line_rects[line_index]);
+ if (pdf_link.has_value()) {
+- auto parsed_uri = parse_uri(mupdf_context, pdf_link.value().uri);
++ auto parsed_uri = parse_uri(mupdf_context, current_document->doc, pdf_link.value().uri);
+ result.push_back({ parsed_uri.page - 1, parsed_uri.x, parsed_uri.y });
+ return result;
+ }
+diff --git a/pdf_viewer/main_widget.cpp b/pdf_viewer/main_widget.cpp
+index 19b568b..335a93f 100644
+--- a/pdf_viewer/main_widget.cpp
++++ b/pdf_viewer/main_widget.cpp
+@@ -170,7 +170,7 @@ void MainWidget::set_overview_position(int page, float offset) {
+
+ void MainWidget::set_overview_link(PdfLink link) {
+
+- auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri);
++ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri);
+ if (page >= 1) {
+ set_overview_position(page - 1, offset_y);
+ }
+@@ -3178,7 +3178,7 @@ void MainWidget::handle_pending_text_command(std::wstring text) {
+ open_web_url(utf8_decode(selected_link->uri));
+ }
+ else{
+- auto [page, offset_x, offset_y] = parse_uri(mupdf_context, selected_link->uri);
++ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, selected_link->uri);
+ long_jump_to_destination(page-1, offset_y);
+ }
+ }
+@@ -3863,7 +3863,7 @@ void MainWidget::handle_link_click(const PdfLink& link) {
+ return;
+ }
+
+- auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri);
++ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri);
+
+ // convert one indexed page to zero indexed page
+ page--;
+diff --git a/pdf_viewer/utils.cpp b/pdf_viewer/utils.cpp
+index 22d4265..3150e66 100644
+--- a/pdf_viewer/utils.cpp
++++ b/pdf_viewer/utils.cpp
+@@ -116,8 +116,9 @@ bool rects_intersect(fz_rect rect1, fz_rect rect2) {
+ return range_intersects(rect1.x0, rect1.x1, rect2.x0, rect2.x1) && range_intersects(rect1.y0, rect1.y1, rect2.y0, rect2.y1);
+ }
+
+-ParsedUri parse_uri(fz_context* mupdf_context, std::string uri) {
+- fz_link_dest dest = pdf_parse_link_uri(mupdf_context, uri.c_str());
++ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri) {
++ pdf_document* doc = pdf_document_from_fz_document(mupdf_context, fz_doc);
++ fz_link_dest dest = pdf_resolve_link_dest(mupdf_context, doc, uri.c_str());
+ return { dest.loc.page + 1, dest.x, dest.y };
+ }
+
+diff --git a/pdf_viewer/utils.h b/pdf_viewer/utils.h
+index 2a12211..643b030 100644
+--- a/pdf_viewer/utils.h
++++ b/pdf_viewer/utils.h
+@@ -55,7 +55,7 @@ void get_flat_toc(const std::vector<TocNode*>& roots, std::vector<std::wstring>&
+ int mod(int a, int b);
+ bool range_intersects(float range1_start, float range1_end, float range2_start, float range2_end);
+ bool rects_intersect(fz_rect rect1, fz_rect rect2);
+-ParsedUri parse_uri(fz_context* mupdf_context, std::string uri);
++ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri);
+ char get_symbol(int key, bool is_shift_pressed, const std::vector<char>&special_symbols);
+
+ template<typename T>
diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index 48327014e9..963cba8c2b 100644
--- a/gnu/packages/patchutils.scm
+++ b/gnu/packages/patchutils.scm
@@ -301,7 +301,7 @@ GiB).")
(define-public meld
(package
(name "meld")
- (version "3.22.0")
+ (version "3.22.1")
(source
(origin
(method url-fetch)
@@ -309,7 +309,7 @@ GiB).")
(version-major+minor version)
"/meld-" version ".tar.xz"))
(sha256
- (base32 "03f4j27amyi28flkks8i9bhqzd6xhm6d3c6jzxc57rzniv4hgh9z"))))
+ (base32 "0dk8j27jlqhxcjrkc8pa3rl7fz7pfwvrbyrhfsx1ld6lvcrbvlvd"))))
(build-system meson-build-system)
(native-inputs
(list desktop-file-utils
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index c4327b3b64..db77d4ca77 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -17,7 +17,7 @@
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Ben Sturmfels <ben@sturm.com.au>
;;; Copyright © 2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2020-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020, 2024 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -25,6 +25,8 @@
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2023 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2024 dan <i@dan.games>
+;;; Copyright © 2023 Benjamin Slade <slade@lambda-y.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -55,6 +57,7 @@
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (gnu packages)
+ #:use-module (gnu packages aidc)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
@@ -430,40 +433,25 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
(define-public python-poppler-qt5
(package
(name "python-poppler-qt5")
- (version "21.1.0")
+ (version "21.3.0")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "python-poppler-qt5" version))
- (sha256
- (base32
- "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"))
- (patches (search-patches "python-poppler-qt5-fix-build.patch"))))
- (build-system python-build-system)
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-poppler-qt5" version))
+ (sha256
+ (base32 "1q3gvmsmsq3llf9mcbhlkryrgprqrw2z7wmnvagy180f3y2fhxxl"))))
+ (build-system pyproject-build-system)
(arguments
- `(;; There are no tests. The check phase just causes a rebuild.
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (replace 'build
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "setup.py"
- ;; This check always fails, so disable it.
- (("if not check_qtxml\\(\\)")
- "if True"))
- ;; We need to pass an extra flag here. This cannot be in
- ;; configure-flags because it should not be passed for the
- ;; installation phase.
- ((@@ (guix build python-build-system) call-setuppy)
- "build_ext" (list (string-append "--pyqt-sip-dir="
- (assoc-ref inputs "python-pyqt")
- "/share/sip")) #t))))))
- (native-inputs
- (list pkg-config))
- (inputs
- (list python-sip-4 python-pyqt poppler-qt5 qtbase-5))
- (home-page "https://pypi.org/project/python-poppler-qt5/")
- (synopsis "Python bindings for Poppler-Qt5")
+ `(;; The sipbuild.api backend builder expects a Python dictionary as per
+ ;; https://peps.python.org/pep-0517/#config-settings, but we
+ ;; give it lists and it fails. The next line is a workaround.
+ #:configure-flags '#nil
+ #:tests? #f))
+ (native-inputs (list pkg-config))
+ (inputs (list python-sip python-pyqt-builder python-pyqt poppler-qt5
+ qtbase-5))
+ (home-page "https://github.com/frescobaldi/python-poppler-qt5")
+ (synopsis "Python binding to Poppler-Qt5")
(description
"This package provides Python bindings for the Qt5 interface of the
Poppler PDF rendering library.")
@@ -1048,7 +1036,7 @@ using a stylus.")
(define-public xournalpp
(package
(name "xournalpp")
- (version "1.2.2")
+ (version "1.2.3")
(source
(origin
(method git-fetch)
@@ -1057,7 +1045,7 @@ using a stylus.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1svmdj43z1shm3wnkrdrq1h6rba843mp4x4d8jmxsx7kwiiz9l78"))))
+ (base32 "1rj9kz21r59cswfpczp5dcmvchbbmybv661iyycaiii2z5gh0h7i"))))
(build-system cmake-build-system)
(arguments
(list
@@ -1221,13 +1209,13 @@ the PDF pages.")
(define-public img2pdf
(package
(name "img2pdf")
- (version "0.4.4")
+ (version "0.5.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "img2pdf" version))
(sha256
- (base32 "0g3rpq68y5phnlgxrqn39k10j9nmgksg6m5ic8wgs8v5cjlrij4f"))))
+ (base32 "158bgnk2jhjnpyld4z3jq8v2j8837vh4j0672g8mnjrg4i3px13k"))))
(build-system python-build-system)
(propagated-inputs
(list python-pikepdf python-pillow
@@ -1525,7 +1513,7 @@ multiple files.")
(define-public pdfpc
(package
(name "pdfpc")
- (version "4.5.0")
+ (version "4.6.0")
(source
(origin
(method git-fetch)
@@ -1534,22 +1522,13 @@ multiple files.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0bmy51w6ypz927hxwp5g7wapqvzqmsi3w32rch6i3f94kg1152ck"))))
+ (base32 "0kj84sf5hgr2v2ra6dxmxqcr173h17cpnhg9lcq36shdbdnncwg4"))))
(build-system cmake-build-system)
- (arguments
- '(#:tests? #f ; no test target
- #:phases
- (modify-phases %standard-phases
- ;; This is really a bug in Vala.
- ;; https://github.com/pdfpc/pdfpc/issues/594
- (add-after 'unpack 'fix-vala-API-conflict
- (lambda _
- (substitute* "src/classes/action/movie.vala"
- (("info.from_caps\\(caps\\)")
- "Gst.Video.info_from_caps(out info, caps)")))))))
+ (arguments '(#:tests? #f)) ; no test target
(inputs
`(("cairo" ,cairo)
("discount" ,discount) ; libmarkdown
+ ("qrencode" ,qrencode)
("gtk+" ,gtk+)
("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
@@ -1709,3 +1688,62 @@ python library.
Keywords: html2pdf, htmltopdf")
(license license:bsd-3)))
+
+(define-public sioyek
+ (package
+ (name "sioyek")
+ (version "2.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ahrm/sioyek")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vmmp2s032ygh1byz77pg9aljmp8hx745fr7mmz11831f96mlmhq"))
+ (modules '((guix build utils)))
+ ;; libmupdf-third.so no longer available since mupdf 1.18.0.
+ (snippet '(substitute* "pdf_viewer_build_config.pro"
+ (("-lmupdf-third") "")))
+ ;; XXX: Fix build with mupdf-0.23.0+.
+ ;; See also: https://github.com/ahrm/sioyek/issues/804
+ (patches (search-patches "sioyek-fix-build.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda _
+ (substitute* "pdf_viewer/main.cpp"
+ (("/usr/share")
+ (string-append #$output "/share"))
+ (("/etc")
+ (string-append #$output "/etc")))))
+ (replace 'configure
+ (lambda* (#:key configure-flags #:allow-other-keys)
+ (apply invoke "qmake" configure-flags)))
+ (add-after 'install 'instal-man-page
+ (lambda _
+ (install-file "resources/sioyek.1"
+ (string-append #$output "/share/man/man1")))))))
+ (inputs
+ (list freetype
+ gumbo-parser
+ harfbuzz
+ jbig2dec
+ libjpeg-turbo
+ mujs
+ mupdf
+ openjpeg
+ qt3d-5
+ qtbase-5
+ zlib))
+ (home-page "https://sioyek.info/")
+ (synopsis "PDF viewer with a focus on technical books and research papers")
+ (description
+ "Sioyek is a PDF viewer with a focus on textbooks and research papers.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 3a0dce6286..88a6791822 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -533,7 +533,7 @@ photographic equipment.")
(define-public darktable
(package
(name "darktable")
- (version "4.6.0")
+ (version "4.6.1")
(source
(origin
(method url-fetch)
@@ -541,7 +541,7 @@ photographic equipment.")
"https://github.com/darktable-org/darktable/releases/"
"download/release-" version "/darktable-" version ".tar.xz"))
(sha256
- (base32 "1hmcib37b5v8893d69i2qgvmbkmils8a0gn5dpg2462d43ijfjvj"))))
+ (base32 "1zbsrx5cfyifzbi657izw8rfkgd9pm4hx8afv8y2sgi9f2hc1v8n"))))
(build-system cmake-build-system)
(arguments
(list
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 3411883895..8233aeebae 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
@@ -275,14 +275,14 @@ colors, styles, options and details.")
(define-public asymptote
(package
(name "asymptote")
- (version "2.86")
+ (version "2.88")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/asymptote/"
version "/asymptote-" version ".src.tgz"))
(sha256
- (base32 "07y9yg7kdkgmz024qzny8xhjw3c367kxfpwzv19cxcy7qcgsvsy4"))
+ (base32 "1fzm58md2kc32sj19bksnd8yzkg47z5pblkxp28r7vm67xs1mrqd"))
(modules '((guix build utils)))
(snippet
;; Remove bundled RapidJSON.
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 4a92b3e22e..5474232847 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -44,7 +44,7 @@
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev>
-;;; Copyright © 2021, 2022 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2021, 2022, 2024 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2021, 2022 jgart <jgart@dismail.de>
;;; Copyright © 2021 Alice Brenon <alice.brenon@ens-lyon.fr>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
@@ -58,9 +58,11 @@
;;; Copyright © 2022 msimonin <matthieu.simonin@inria.fr>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
+;;; Copyright © 2023 dan <i@dan.games>
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -78,15 +80,15 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages python-web)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix git-download)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system copy)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
+ #:use-module (guix download)
#:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
#:use-module (guix utils)
- #:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
@@ -106,8 +108,8 @@
#:use-module (gnu packages node)
#:use-module (gnu packages openstack)
#:use-module (gnu packages pcre)
- #:use-module (gnu packages protobuf)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
@@ -121,12 +123,12 @@
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
- #:use-module (gnu packages tls)
#:use-module (gnu packages time)
+ #:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
- #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
#:use-module (srfi srfi-1))
(define-public python-huggingface-hub
@@ -1278,6 +1280,62 @@ over a different origin than that of the web application.")
other HTTP libraries.")
(license license:expat)))
+(define-public python-cheroot
+ (package
+ (name "python-cheroot")
+ (version "10.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cheroot" version))
+ (sha256
+ (base32
+ "1w0ind0dza9j1py56y23344piqkpyfmcm060qfrnk6gggy3s3i2r"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "--cov=cheroot"
+ ;; Tests are flaky in parallel invocation.
+ ;; "--numprocesses=auto"
+ "--doctest-modules"
+ "--showlocals"
+ ;; Disable test requiring networking.
+ "-k" "not test_tls_client_auth")
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? test-flags #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "/tmp"
+ (apply invoke "pytest" "-v"
+ (append test-flags (list #$output))))))))))
+ (propagated-inputs
+ (list python-jaraco-functools
+ python-more-itertools
+ python-six))
+ (native-inputs
+ (list python-cryptography
+ python-jaraco-text
+ python-portend
+ python-pyopenssl
+ python-pypytools
+ python-pytest
+ python-pytest-cov
+ python-pytest-mock
+ python-pytest-xdist
+ python-requests
+ python-requests-toolbelt
+ python-requests-unixsocket
+ python-setuptools-scm
+ python-setuptools-scm-git-archive
+ python-trustme))
+ (home-page "https://cheroot.cherrypy.dev")
+ (synopsis "Highly-optimized, pure-python HTTP server")
+ (description
+ "Cheroot is a high-performance, pure-Python HTTP server.")
+ (license license:bsd-3)))
+
(define-public httpie
(package
(name "httpie")
@@ -1917,21 +1975,47 @@ Amazon S3 compatible object storage server.")
(uri (pypi-uri "pycurl" version))
(sha256
(base32 "1ji46b924caa4saxvjxs9h673yy0kif297nxpnjn84r7w05mjc2p"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
- ;; The tests attempt to access external web servers, so we cannot run
- ;; them. Furthermore, they are skipped altogether when using Python 2.
- '(#:tests? #f
+ '(#:test-flags
+ (list "-n" "auto"
+ "-k" (string-append
+ ;; Disable hanginging tests
+ "not test_multi_socket_select"
+ ;; E assert None is not None
+ ;; E+ where None =
+ ;; <tests.multi_callback_test.MultiCallbackTest
+ ;; testMethod=test_easy_pause_unpause>.socket_result
+ " and not test_easy_pause_unpause"
+ " and not test_multi_socket_action"
+ ;; E pycurl.error: (1, '')
+ " and not test_http_version_3"
+ ;; OSError: tests/fake-curl/libcurl/with_gnutls.so: cannot
+ ;; open shared object file: No such file or directory
+ " and not test_libcurl_ssl_gnutls"
+ ;; OSError: tests/fake-curl/libcurl/with_nss.so: cannot
+ ;; open shared object file: No such file or directory
+ " and not test_libcurl_ssl_nss"
+ ;; OSError: tests/fake-curl/libcurl/with_openssl.so: cannot
+ ;; open shared object file: No such file or directory
+ " and not test_libcurl_ssl_openssl"
+ ;; pycurl.error: (56, 'Recv failure: Connection reset by
+ ;; peer')
+ " and not test_post_with_read_callback"))
#:phases (modify-phases %standard-phases
- (add-before 'build 'configure-tls-backend
- (lambda _
- ;; XXX: PycURL fails to automatically determine which TLS
- ;; backend to use when cURL is built with --disable-static.
- ;; See setup.py and <https://github.com/pycurl/pycurl/pull/147>.
- (setenv "PYCURL_SSL_LIBRARY" "gnutls")
- #t)))))
- (native-inputs
- (list python-nose python-bottle))
+ (add-before 'build 'configure-tls-backend
+ (lambda _
+ ;; XXX: PycURL fails to automatically determine which
+ ;; TLS backend to use when cURL is built with
+ ;; --disable-static. See setup.py and
+ ;; <https://github.com/pycurl/pycurl/pull/147>.
+ (setenv "PYCURL_SSL_LIBRARY" "gnutls"))))))
+ (native-inputs
+ (list python-bottle
+ python-flaky
+ python-nose
+ python-pytest
+ python-pytest-xdist))
(inputs
(list curl gnutls))
(home-page "http://pycurl.io/")
@@ -2722,6 +2806,123 @@ object to help create WSGI responses.")
files. These locks can also be used to mediate access to other files.")
(license license:zpl2.1)))
+(define-public python-zconfig
+ (package
+ (name "python-zconfig")
+ (version "4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ZConfig" version))
+ (sha256
+ (base32 "0mh13p38vq7ip4zkvaplzr8w0mqrmmqiyb5y663d165slvxl5mpq"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (begin
+ ;; This test assumes we still have setup.py in the
+ ;; directory from which we import zconfig, which
+ ;; does not work after installing the package.
+ (delete-file-recursively
+ "src/ZConfig/tests/test_readme.py")
+ (invoke "zope-testrunner" "-vv" "--test-path=src"
+ "--all"))
+ (format #t "test suite not run~%")))))))
+ (native-inputs (list python-docutils python-manuel python-zope-exceptions
+ python-zope-testrunner))
+ (home-page "https://github.com/zopefoundation/ZConfig/")
+ (synopsis "Structured configuration library intended for general use")
+ (description
+ "@code{zconfig} is a configuration library intended for general
+use. It supports a hierarchical schema-driven configuration model that allows
+a schema to specify data conversion routines written in Python. Its model is
+very different from the model supported by the @code{configparser} module
+found in Python's standard library, and is more suitable to
+configuration-intensive applications.")
+ (license license:zpl2.1)))
+
+(define-public python-zodb
+ (package
+ (name "python-zodb")
+ (version "5.8.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ZODB" version))
+ (sha256
+ (base32 "1pv4w8mnx6j4xvkcjbkh99pv8ljby7g9f7zjq7zhdmk06sykmiy6"))))
+ (build-system pyproject-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (begin
+ ;; This test does not work after installing the
+ ;; package, since it expects the ZODB source code
+ ;; to reside in the src/ directory.
+ (delete-file-recursively
+ "src/ZODB/tests/testdocumentation.py")
+ (invoke "zope-testrunner" "-vv" "--test-path=src"
+ "--all"))
+ (format #t "test suite not run~%")))))))
+ (propagated-inputs (list python-btrees
+ python-persistent
+ python-zconfig
+ python-six
+ python-transaction
+ python-zc-lockfile
+ python-zodbpickle
+ python-zope-interface))
+ (native-inputs (list python-manuel python-zope-testing
+ python-zope-testrunner))
+ (home-page "http://zodb-docs.readthedocs.io")
+ (synopsis "Object-oriented database for Python")
+ (description
+ "@code{ZODB} provides an object-oriented and @acronym{ACID,
+Atomicity Consistency Isolation Durability} compliant database for Python with
+a high degree of transparency. @code{ZODB} is an object-oriented database,
+not an object-relational mapping. This comes with several advantaged:
+
+@itemize
+@item no separate language for database operations
+@item very little impact on your code to make objects persistent
+@item no database mapper that partially hides the database.
+@item almost no seam between code and database.
+@end itemize")
+ (license license:zpl2.1)))
+
+(define-public python-zodbpickle
+ (package
+ (name "python-zodbpickle")
+ (version "3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "zodbpickle" version))
+ (sha256
+ (base32 "035bjrksl4h92mvjkx6id4gjcpc1k4mbci8ryjl6l9mki7ihx77b"))))
+ (build-system pyproject-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (invoke "zope-testrunner" "-vv" "--test-path=src"
+ "--all")
+ (format #t "test suite not run~%")))))))
+ (native-inputs (list python-zope-testrunner))
+ (home-page "https://github.com/zopefoundation/zodbpickle")
+ (synopsis "Uniform pickling interface for @code{zodb}")
+ (description
+ "This package is a fork of the @code{pickle} module (and the
+supporting C extension) from both Python 3.2 and Python 3.3. The fork adds
+support for the @code{noload} operations used by @code{zodb}.")
+ (license (list license:psfl license:zpl2.1))))
+
(define-public python-zope-event
(package
(name "python-zope-event")
@@ -8411,7 +8612,7 @@ compatibility with Microformats1 (mf1).")
(define-public python-extruct
(package
(name "python-extruct")
- (version "0.13.0")
+ (version "0.16.0")
(source (origin
(method git-fetch) ;for tests
(uri (git-reference
@@ -8420,7 +8621,7 @@ compatibility with Microformats1 (mf1).")
(file-name (git-file-name name version))
(sha256
(base32
- "075zldf3dqcc429z1vk2ngbmv034bnlyk6arh3rh30jbsvz9pzl5"))))
+ "1s05sz6nghrap1gjkg3vsqz6djld6lczd6w3r1542ir8n7binl7a"))))
(build-system python-build-system)
(arguments
(list
@@ -8438,7 +8639,6 @@ compatibility with Microformats1 (mf1).")
python-mf2py
python-pyrdfa3
python-rdflib
- python-rdflib-jsonld
python-w3lib))
(home-page "https://github.com/scrapinghub/extruct")
(synopsis "Extract embedded metadata from HTML markup")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 22fa80efcb..2e53356b31 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -49,7 +49,7 @@
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
-;;; Copyright © 2018-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019, 2021, 2023 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -136,6 +136,7 @@
;;; Copyright © 2023 Amade Nemes <nemesamade@gmail.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
+;;; Copyright © 2023 dan <i@dan.games>
;;; Copyright © 2023 Dominik Delgado Steuter <d@delgado.nrw>
;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net>
;;; Copyright © 2023 Ontje Lünsdorf <ontje.luensdorf@dlr.de>
@@ -147,6 +148,8 @@
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
+;;; Copyright © 2024 Ian Eure <ian@retrospec.tv>
+;;; Copyright © 2024 Adriel Dumas--Jondeau <leirda@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -6054,6 +6057,54 @@ adds a 'now' tag providing a convenient access to the arrow.now() API from
templates. A format string can be provided to control the output.")
(license license:expat)))
+(define-public python-pypugjs
+ (package
+ (name "python-pypugjs")
+ (version "5.9.12")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kakulukia/pypugjs")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0zj7a560h973cl7brfw1nmyhgm8rp8j80wnih0shvhmw4ql23lpa"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ ;; Our pyramid is outdated and pyramid-mako is not packaged.
+ (add-after 'unpack 'disable-pyramid
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "setup.py"
+ (("'pyramid")
+ "#'pyramid"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "python" "-m" "pytest" "-v"
+ "pypugjs/testsuite/")))))))
+ (native-inputs (list python-coverage
+ python-django
+ python-jinja2
+ python-flake8
+ python-flask
+ python-mako
+ python-nose
+ python-poetry-core
+ python-pytest
+ python-tornado-6
+ python-wheel))
+ (propagated-inputs (list python-charset-normalizer python-six))
+ (home-page "https://github.com/kakulukia/pypugjs")
+ (synopsis "Convert Pug source files into different template languages")
+ (description
+ "PyPugJS is a high-performance port of PugJS for Python, that converts
+any @file{.pug} source into different template languages: Django, Jinja2,
+Mako, and Tornado.")
+ (license license:expat))) ;; MIT
+
(define-public python-pysdl2
(package
(name "python-pysdl2")
@@ -6169,26 +6220,20 @@ bookmarks using a declarative input in the form of a markdown file.")
(define-public python-joblib
(package
(name "python-joblib")
- (version "1.1.1")
+ (version "1.3.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "joblib" version))
(sha256
(base32
- "0019p280s2k941mihl67l7y6amwx86639xp3zvpsg1lmyish67rh"))))
- (build-system python-build-system)
+ "1cbjjzsh9hzaqr2cqja95673p7j88b8bd02hjpkq8xz147k6by4j"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (setenv "JOBLIB_MULTIPROCESSING" "0")
- (invoke "pytest" "-v" "joblib"
- ;; We disable this test to avoid having to depend on ipython/jupyter
- "-k" "not test_parallel_call_cached_function_defined_in_jupyter")))))))
- (native-inputs
- (list python-pytest))
+ (list
+ #:test-flags ; disabled to avoid having to depend on ipython/jupyter
+ #~(list "-k" "not test_parallel_call_cached_function_defined_in_jupyter")))
+ (native-inputs (list python-pytest))
+ (propagated-inputs (list python-psutil))
(home-page "https://joblib.readthedocs.io/")
(synopsis "Using Python functions as pipeline jobs")
(description
@@ -6375,6 +6420,46 @@ accessible for novices, as well as a scripting interface offering the full
flexibility and power of the Python language.")
(license license:gpl3+)))
+(define-public kalamine
+ (package
+ (name "kalamine")
+ (version "0.36")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "kalamine" version))
+ (sha256
+ (base32 "1xxncavq5a0dydhzpfjdxmqsddl77275d9k9giw1032bdyb9d5is"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'make-test-layouts
+ (lambda _
+ (apply invoke
+ (cons* "python" "-m" "kalamine.cli" "build"
+ (find-files "layouts" "\\.toml")))
+ (invoke "python" "-m" "kalamine.cli" "new" "test.toml"))))))
+ (propagated-inputs
+ (list python-click
+ python-livereload
+ python-lxml
+ python-progress
+ python-pyyaml
+ python-tomli))
+ ;; TODO: Add python-pytest-ruff to native-inputs once it has been
+ ;; packaged.
+ (native-inputs
+ (list python-hatchling python-mypy python-pytest))
+ (home-page "https://github.com/OneDeadKey/kalamine")
+ (synopsis "Keyboard layout maker")
+ (description
+ "Kalamine provides a CLI to create advanced keyboard layout from a
+textual portable description. It also supports layout emulation via web
+browser.")
+ (license license:expat)))
+
(define-public python-dm-tree
(package
(name "python-dm-tree")
@@ -11396,6 +11481,27 @@ removal, line continuation, indentation, comment processing, identifier
processing, values parsing, case insensitive comparison, and more.")
(license license:expat)))
+(define-public python-pypytools
+ (package
+ (name "python-pypytools")
+ (version "0.6.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pypytools" version))
+ (sha256
+ (base32 "0ag5xyzagprji0m2pkqsfy8539s003mn41pl6plbmh6iwi9w0h51"))))
+ (build-system python-build-system)
+ (arguments (list #:tests? #f)) ; no tests
+ (propagated-inputs (list python-py))
+ (home-page "https://github.com/antocuni/pypytools/")
+ (synopsis
+ "Tools to use PyPy-specific features, with CPython fallbacks")
+ (description
+ "This package provides a collection of useful tools to use PyPy-specific
+features, with CPython fallbacks.")
+ (license license:x11)))
+
(define-public python-simplegeneric
(package
(name "python-simplegeneric")
@@ -12266,6 +12372,24 @@ features useful for text console applications.")
supports @code{readline} shortcuts.")
(license license:expat)))
+(define-public python-urwidgets
+ (package
+ (name "python-urwidgets")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "urwidgets" version))
+ (sha256
+ (base32 "123n9qfg6qwwh1911y71c3msxi89n8cjj15wh2snqmwdkyfwy6nl"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-urwid))
+ (home-page "https://github.com/AnonymouX47/urwidgets")
+ (synopsis "Collection of widgets for urwid")
+ (description
+ "This package provides a collection of widgets for urwid.")
+ (license license:expat)))
+
(define-public python-textdistance
(package
(name "python-textdistance")
@@ -12763,19 +12887,18 @@ approach.")
(build-system python-build-system)
(arguments
;; TODO: Package missing test dependencies.
- '(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- ;; For cluster execution Snakemake will call Python. Since there is
- ;; no suitable PYTHONPATH set, cluster execution will fail. We fix
- ;; this by calling the snakemake wrapper instead.
- (add-after 'unpack 'call-wrapper-not-wrapped-snakemake
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "snakemake/executors/__init__.py"
- (("\\{sys.executable\\} -m snakemake")
- (string-append (assoc-ref outputs "out")
- "/bin/snakemake")))
- #t)))))
+ (list
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; For cluster execution Snakemake will call Python. Since there is
+ ;; no suitable PYTHONPATH set, cluster execution will fail. We fix
+ ;; this by calling the snakemake wrapper instead.
+ (add-after 'unpack 'call-wrapper-not-wrapped-snakemake
+ (lambda _
+ (substitute* "snakemake/executors/__init__.py"
+ (("\\{sys.executable\\} -m snakemake")
+ (string-append #$output "/bin/snakemake"))))))))
(propagated-inputs
(list python-appdirs
python-configargparse
@@ -12906,7 +13029,22 @@ Python style, together with a fast and comfortable execution environment.")
"")
(("\"-m snakemake\"")
(string-append "\"" #$output
- "/bin/snakemake" "\"")))))
+ "/bin/snakemake" "\""))
+ ;; The snakemake command produced by format_job_exec contains
+ ;; references to /gnu/store. Prior to patching above that's
+ ;; just a reference to Python; after patching it's a reference
+ ;; to the snakemake executable.
+ ;;
+ ;; In Tibanna execution mode Snakemake arranges for a certain
+ ;; Docker image to be deployed to AWS. It then passes its own
+ ;; command line to Tibanna. This is misguided because it only
+ ;; ever works if the local Snakemake command was run inside
+ ;; the same Docker image. In the case of using Guix this is
+ ;; never correct, so we need to replace the store reference.
+ (("tibanna_args.command = command")
+ (string-append
+ "tibanna_args.command = command.replace('"
+ #$output "/bin/snakemake', 'python3 -m snakemake')")))))
(add-after 'unpack 'patch-version
(lambda _
(substitute* "setup.py"
@@ -14209,6 +14347,41 @@ extensions, and several HTML output formats. A command line wrapper
markdown_py is also provided to convert Markdown files to HTML.")
(license license:bsd-3)))
+(define-public python-markdown2
+ (package
+ (name "python-markdown2")
+ (version "2.4.13")
+ (source
+ (origin
+ (method git-fetch) ; no tests data in PyPi package
+ (uri (git-reference
+ (url "https://github.com/trentm/python-markdown2")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0m1wy8i4xmna5b97dvks8cfjmc1wid8pxmd2h82869d0ajva3r6a"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? test-flags #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "test"
+ (invoke "python" "testall.py"))))))))
+ (native-inputs
+ (list python-pygments))
+ (home-page "https://github.com/trentm/python-markdown2")
+ (synopsis "Fast and complete Python implementation of Markdown")
+ (description
+ "This package provides a fast and complete Python implementation of
+Markdown. It was written to closely match the behaviour of the original
+Perl-implemented Markdown.pl. It also comes with a number of
+extensions (called @code{extras}) for things like syntax coloring, tables,
+header-ids.")
+ (license license:expat)))
+
(define-public python-mdx-include
(package
(name "python-mdx-include")
@@ -17254,16 +17427,18 @@ consistent API regardless of how the configuration was created.")
(define-public python-configargparse
(package
(name "python-configargparse")
- (version "1.5.3")
+ (version "1.7")
(source (origin
(method url-fetch)
(uri (pypi-uri "ConfigArgParse" version))
(sha256
(base32
- "17vky4ihicbf7nggg30xs7h3g5rxzwgch8vilnnrvdaacszkq2qv"))))
+ "1l866g1dcf2ljf8fl7ggpxk1rggry0lya4d5b264gradi1qp81p7"))))
(build-system pyproject-build-system)
(native-inputs
(list python-mock python-pytest))
+ (propagated-inputs
+ (list python-pyyaml))
(synopsis "Replacement for argparse")
(description "A drop-in replacement for argparse that allows options to also
be set via config files and/or environment variables.")
@@ -23992,8 +24167,18 @@ manipulation, or @code{stdout}.")
(base32
"1vi2fj31vygfcqrkimdmk52q2ldw08g9fn4v4zlgdfgcjlhqyhxn"))))
(build-system python-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-rdflib-6-compatibility
+ (lambda _
+ ;; See https://github.com/trungdong/prov/issues/151
+ (substitute* "src/prov/tests/test_rdf.py"
+ (("\\.serialize\\(format=\"nt\"\\)")
+ ".serialize(format=\"nt\", encoding=\"utf-8\")")))))))
(propagated-inputs
- (list python-dateutil python-lxml python-networkx python-rdflib-5))
+ (list python-dateutil python-lxml python-networkx python-rdflib))
(native-inputs
(list graphviz python-pydot))
(home-page "https://github.com/trungdong/prov")
@@ -25945,6 +26130,43 @@ cases, generating additional test cases, testing for your code, and
submitting it.")
(license license:expat)))
+(define-public python-mpv-jsonipc
+ (package
+ (name "python-mpv-jsonipc")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-mpv-jsonipc" version))
+ (sha256
+ (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
+ (synopsis "Python API to control MPV using JSON IPC")
+ (description "Python MPV JSONIPC implements an interface similar to
+python-mpv, but it uses the JSON IPC protocol instead of the C API.")
+ (license license:asl2.0)))
+
+(define-public python-jellyfin-apiclient
+ (package
+ (name "python-jellyfin-apiclient")
+ (version "1.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-apiclient-python" version))
+ (sha256
+ (base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-certifi python-requests python-urllib3
+ python-websocket-client))
+ (home-page "https://github.com/jellyfin/jellyfin-apiclient-python")
+ (synopsis "Python API client for Jellyfin")
+ (description "The Jellyfin ApiClient Python package makes it possible
+to use the Jellyfin API from Python. It was extracted from the Jellyfin
+Kodi plugin.")
+ (license license:gpl3+)))
+
(define-public python-parso
(package
(name "python-parso")
@@ -30414,7 +30636,7 @@ accessor layer.")
(define-public pyzo
(package
(name "pyzo")
- (version "4.13.3")
+ (version "4.15.0")
(source
(origin
(method git-fetch)
@@ -30424,7 +30646,7 @@ accessor layer.")
(file-name (git-file-name name version))
(sha256
(base32
- "1m0mrp20wjvy804214f4zzlbaqrakam0g3qr562yn2mjcgfba554"))))
+ "0m2sp65q21hhlfkvyby4sjc8cmwv3l0avw42xsna8za8ax9xadxr"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -31828,6 +32050,41 @@ handling those variations.")
Qt applications.")
(license license:expat)))
+(define-public python-pystray
+ (package
+ (name "python-pystray")
+ (version "0.19.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/moses-palmer/pystray")
+ (commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ ;; The test suite requires user interaction, there are no automated
+ ;; tests.
+ #:tests? #false
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'sanity-check 'use-dummy-backend
+ (lambda _
+ ;; Without setting this, pystray tries to connect to
+ ;; X11 on import.
+ (setenv "PYSTRAY_BACKEND" "dummy"))))))
+ (native-inputs (list python-sphinx))
+ (propagated-inputs (list python-pillow python-six python-xlib))
+ (home-page "https://github.com/moses-palmer/pystray")
+ (synopsis "Create a system tray icon")
+ (description "This library allows you to create a system tray icon.
+It makes it possible to specify an icon, a title and a callback for when
+the icon is activated. The icon and title can be changed after the icon
+has been created, and the visibility of the icon can be toggled.")
+ (license license:lgpl3+)))
+
(define-public python-bitstring
(package
(name "python-bitstring")
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 5b3a7196e6..02520420bc 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -55,7 +55,7 @@
;;; Copyright © 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
-;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019, 2024 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
@@ -625,6 +625,396 @@ data types.")
(variable "PYTHONTZPATH")
(files (list "share/zoneinfo")))))))
+(define-public python-3.12
+ (package
+ (name "python-next")
+ (version "3.12.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.python.org/ftp/python/" version
+ "/Python-" version ".tar.xz"))
+ (sha256
+ (base32 "0w6qyfhc912xxav9x9pifwca40b4l49vy52wai9j0gc1mhni2a5y"))
+ (patches (search-patches "python-3-deterministic-build-info.patch"
+ "python-3.12-fix-tests.patch"
+ "python-3-hurd-configure.patch"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ ;; Delete the bundled copy of libexpat.
+ (delete-file-recursively "Modules/expat")
+ (substitute* "Modules/Setup"
+ ;; Link Expat instead of embedding the bundled one.
+ (("^#pyexpat.*")
+ "pyexpat pyexpat.c -lexpat\n"))
+ ;; Delete windows binaries
+ (for-each delete-file
+ (find-files "Lib/distutils/command" "\\.exe$"))))))
+ (outputs '("out" "tk" ;tkinter; adds 50 MiB to the closure
+ "idle")) ;programming environment; weighs 5MB
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:configure-flags (list "--enable-shared" ;allow embedding
+ "--with-system-expat" ;for XML support
+ "--with-system-ffi" ;build ctypes
+ "--with-ensurepip=install" ;install pip and setuptools
+ "--with-computed-gotos" ;main interpreter loop optimization
+ "--enable-unicode=ucs4"
+ "--without-static-libpython"
+
+ ;; FIXME: These flags makes Python significantly faster,
+ ;; but leads to non-reproducible binaries.
+ ;; "--with-lto" ;increase size by 20MB, but 15% speedup
+ ;; "--enable-optimizations"
+
+ ;; Prevent the installed _sysconfigdata.py from retaining
+ ;; a reference to coreutils.
+ "INSTALL=install -c"
+ "MKDIR_P=mkdir -p"
+
+ ;; Disable runtime check failing if cross-compiling, see:
+ ;; https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html
+ ,@(if (%current-target-system)
+ '("ac_cv_buggy_getaddrinfo=no"
+ "ac_cv_file__dev_ptmx=no"
+ "ac_cv_file__dev_ptc=no")
+ '())
+ ;; -fno-semantic-interposition reinstates some
+ ;; optimizations by gcc leading to around 15% speedup.
+ ;; This is the default starting from python 3.10.
+ "CFLAGS=-fno-semantic-interposition"
+ (string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out")
+ "/lib"
+ " -fno-semantic-interposition"))
+ ;; With no -j argument tests use all available cpus, so provide one.
+ #:make-flags (list (string-append (format #f "TESTOPTS=-j~d"
+ (parallel-job-count))
+ ;; those tests fail on low-memory systems
+ " --exclude"
+ " test_mmap"
+ " test_socket"
+ " test_threading"
+ " test_asyncio"
+ " test_shutdown"
+ ,@(if (system-hurd?)
+ '(" test_posix" ;multiple errors
+ " test_time"
+ " test_pty"
+ " test_shutil"
+ " test_tempfile" ;chflags: invalid argument:
+ ;; tbv14c9t/dir0/dir0/dir0/test0.txt
+ " test_os" ;stty: 'standard input':
+ ;; Inappropriate ioctl for device
+ " test_openpty" ;No such file or directory
+ " test_selectors" ;assertEqual(NUM_FDS // 2, len(fds))
+ ;; 32752 != 4
+ " test_compileall" ;multiple errors
+ " test_poll" ;list index out of range
+ " test_subprocess" ;runs over 10min
+ " test_asyncore" ;multiple errors
+ " test_threadsignals"
+ " test_eintr" ;Process return code is -14
+ " test_io" ;multiple errors
+ " test_logging"
+ " test_signal"
+ " test_flags" ;ERROR
+ " test_bidirectional_pty"
+ " test_create_unix_connection"
+ " test_unix_sock_client_ops"
+ " test_open_unix_connection"
+ " test_open_unix_connection_error"
+ " test_read_pty_output"
+ " test_write_pty"
+ " test_concurrent_futures" ;freeze
+ " test_venv" ;freeze
+ " test_multiprocessing_forkserver" ;runs over 10min
+ " test_multiprocessing_spawn" ;runs over 10min
+ " test_builtin"
+ " test_capi"
+ " test_dbm_ndbm"
+ " test_exceptions"
+ " test_faulthandler"
+ " test_getopt"
+ " test_importlib"
+ " test_json"
+ " test_multiprocessing_fork"
+ " test_multiprocessing_main_handling"
+ " test_pdb "
+ " test_regrtest"
+ " test_sqlite")
+ '())))
+
+ #:modules ((ice-9 ftw)
+ (ice-9 match)
+ (guix build utils)
+ (guix build gnu-build-system))
+
+ #:phases (modify-phases %standard-phases
+ ,@(if (system-hurd?)
+ `((add-after 'unpack
+ 'disable-multi-processing
+ (lambda _
+ (substitute* "Makefile.pre.in"
+ (("-j0")
+ "-j1")))))
+ '())
+ (add-before 'configure 'patch-lib-shells
+ (lambda _
+ ;; This variable is used in setup.py to enable cross compilation
+ ;; specific switches. As it is not set properly by configure
+ ;; script, set it manually.
+ ,@(if (%current-target-system)
+ '((setenv "_PYTHON_HOST_PLATFORM" ""))
+ '())
+ ;; Filter for existing files, since some may not exist in all
+ ;; versions of python that are built with this recipe.
+ (substitute* (filter file-exists?
+ '("Lib/subprocess.py"
+ "Lib/popen2.py"
+ "Lib/distutils/tests/test_spawn.py"
+ "Lib/test/support/__init__.py"
+ "Lib/test/test_subprocess.py"))
+ (("/bin/sh")
+ (which "sh")))))
+ (add-before 'configure 'do-not-record-configure-flags
+ (lambda* (#:key configure-flags #:allow-other-keys)
+ ;; Remove configure flags from the installed '_sysconfigdata.py'
+ ;; and 'Makefile' so we don't end up keeping references to the
+ ;; build tools.
+ ;;
+ ;; Preserve at least '--with-system-ffi' since otherwise the
+ ;; thing tries to build libffi, fails, and we end up with a
+ ;; Python that lacks ctypes.
+ (substitute* "configure"
+ (("^CONFIG_ARGS=.*$")
+ (format #f "CONFIG_ARGS='~a'\n"
+ (if (member "--with-system-ffi"
+ configure-flags)
+ "--with-system-ffi" ""))))))
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; 'Lib/test/test_site.py' needs a valid $HOME
+ (setenv "HOME"
+ (getcwd))))
+ (add-after 'unpack 'set-source-file-times-to-1980
+ ;; XXX One of the tests uses a ZIP library to pack up some of the
+ ;; source tree, and fails with "ZIP does not support timestamps
+ ;; before 1980". Work around this by setting the file times in the
+ ;; source tree to sometime in early 1980.
+ (lambda _
+ (let ((circa-1980 (* 10 366 24 60 60)))
+ (ftw "."
+ (lambda (file stat flag)
+ (utime file circa-1980 circa-1980) #t)))))
+ (add-after 'unpack 'remove-windows-binaries
+ (lambda _
+ ;; Delete .exe from embedded .whl (zip) files
+ (for-each (lambda (whl)
+ (let ((dir "whl-content")
+ (circa-1980 (* 10 366 24 60 60)))
+ (mkdir-p dir)
+ (with-directory-excursion dir
+ (let ((whl (string-append "../" whl)))
+ (invoke "unzip" whl)
+ (for-each delete-file
+ (find-files "." "\\.exe$"))
+ (delete-file whl)
+ ;; Reset timestamps to prevent them from ending
+ ;; up in the Zip archive.
+ (ftw "."
+ (lambda (file stat flag)
+ (utime file circa-1980
+ circa-1980) #t))
+ (apply invoke "zip" "-X" whl
+ (find-files "."
+ #:directories? #t))))
+ (delete-file-recursively dir)))
+ (find-files "Lib/ensurepip" "\\.whl$"))))
+ (add-after 'install 'remove-tests
+ ;; Remove 25 MiB of unneeded unit tests. Keep test_support.*
+ ;; because these files are used by some libraries out there.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (match (scandir (string-append out "/lib")
+ (lambda (name)
+ (string-prefix? "python" name)))
+ ((pythonX.Y)
+ (let ((testdir (string-append out "/lib/" pythonX.Y
+ "/test")))
+ (with-directory-excursion testdir
+ (for-each delete-file-recursively
+ (scandir testdir
+ (match-lambda
+ ((or "." "..")
+ #f)
+ ("support" #f)
+ (file (not (string-prefix?
+ "test_support."
+ file))))))
+ (call-with-output-file "__init__.py"
+ (const #t))))
+ (let ((libdir (string-append out "/lib/" pythonX.Y)))
+ (for-each (lambda (directory)
+ (let ((dir (string-append libdir "/"
+ directory)))
+ (when (file-exists? dir)
+ (delete-file-recursively dir))))
+ '("email/test" "ctypes/test"
+ "unittest/test"
+ "tkinter/test"
+ "sqlite3/test"
+ "bsddb/test"
+ "lib-tk/test"
+ "json/tests"
+ "distutils/tests"))))))))
+ (add-after 'remove-tests 'move-tk-inter
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ ;; When Tkinter support is built move it to a separate output so
+ ;; that the main output doesn't contain a reference to Tcl/Tk.
+ (let ((out (assoc-ref outputs "out"))
+ (tk (assoc-ref outputs "tk")))
+ (when tk
+ (match (find-files out "tkinter.*\\.so")
+ ((tkinter.so)
+ ;; The .so is in OUT/lib/pythonX.Y/lib-dynload, but we
+ ;; want it under TK/lib/pythonX.Y/site-packages.
+ (let* ((len (string-length out))
+ (target (string-append tk "/"
+ (string-drop (dirname
+ (dirname
+ tkinter.so))
+ len)
+ "/site-packages")))
+ (install-file tkinter.so target)
+ (delete-file tkinter.so))))
+ ;; Remove explicit store path references.
+ (let ((tcl (assoc-ref inputs "tcl"))
+ (tk (assoc-ref inputs "tk")))
+ (substitute* (find-files (string-append out "/lib")
+ "^(_sysconfigdata_.*\\.py|Makefile)$")
+ (((string-append "-L" tk "/lib"))
+ "")
+ (((string-append "-L" tcl "/lib"))
+ "")))))))
+ (add-after 'move-tk-inter 'move-idle
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; when idle is built, move it to a separate output to save some
+ ;; space (5MB)
+ (let ((out (assoc-ref outputs "out"))
+ (idle (assoc-ref outputs "idle")))
+ (when idle
+ (for-each (lambda (file)
+ (let ((target (string-append idle
+ "/bin/"
+ (basename
+ file))))
+ (install-file file
+ (dirname target))
+ (delete-file file)))
+ (find-files (string-append out "/bin")
+ "^idle"))
+ (match (find-files out "^idlelib$"
+ #:directories? #t)
+ ((idlelib)
+ (let* ((len (string-length out))
+ (target (string-append idle "/"
+ (string-drop
+ idlelib len)
+ "/site-packages")))
+ (mkdir-p (dirname target))
+ (rename-file idlelib target))))))))
+ (add-after 'move-idle 'rebuild-bytecode
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; Disable hash randomization to ensure the generated .pycs
+ ;; are reproducible.
+ (setenv "PYTHONHASHSEED" "0")
+
+ (for-each (lambda (output)
+ ;; XXX: Delete existing pycs generated by the build
+ ;; system beforehand because the -f argument does
+ ;; not necessarily overwrite all files, leading to
+ ;; indeterministic results.
+ (for-each (lambda (pyc)
+ (delete-file pyc))
+ (find-files output "\\.pyc$"))
+
+ (apply invoke
+ `(,,(if (%current-target-system)
+ "python3"
+ '(string-append out
+ "/bin/python3")) "-m"
+ "compileall"
+ "-o"
+ "0"
+ "-o"
+ "1"
+ "-o"
+ "2"
+ "-f" ;force rebuild
+ "--invalidation-mode=unchecked-hash"
+ ;; Don't build lib2to3, because it's
+ ;; Python 2 code.
+ "-x"
+ "lib2to3/.*"
+ ,output)))
+ (map cdr outputs)))))
+ (add-before 'check 'set-TZDIR
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ ;; test_email requires the Olson time zone database.
+ (setenv "TZDIR"
+ (string-append (assoc-ref (or native-inputs
+ inputs) "tzdata")
+ "/share/zoneinfo"))))
+ (add-after 'install 'install-sitecustomize.py
+ ,(customize-site version)))))
+ (inputs (list bzip2
+ expat
+ gdbm
+ libffi ;for ctypes
+ sqlite ;for sqlite extension
+ openssl
+ readline
+ zlib
+ tcl
+ tk)) ;for tkinter
+ (native-inputs `(("tzdata" ,tzdata-for-tests)
+ ("unzip" ,unzip)
+ ("zip" ,(@ (gnu packages compression) zip))
+ ("pkg-config" ,pkg-config)
+ ("sitecustomize.py" ,(local-file (search-auxiliary-file
+ "python/sitecustomize.py")))
+ ;; When cross-compiling, a native version of Python itself is needed.
+ ,@(if (%current-target-system)
+ `(("python" ,this-package)
+ ("which" ,which))
+ '())))
+ (native-search-paths
+ (list (guix-pythonpath-search-path version)
+ ;; Used to locate tzdata by the zoneinfo module introduced in
+ ;; Python 3.9.
+ (search-path-specification
+ (variable "PYTHONTZPATH")
+ (files (list "share/zoneinfo")))))
+ (home-page "https://www.python.org")
+ (synopsis "High-level, dynamically-typed programming language")
+ (description
+ "Python is a remarkably powerful dynamic programming language that
+is used in a wide variety of application domains. Some of its key
+distinguishing features include: clear, readable syntax; strong
+introspection capabilities; intuitive object orientation; natural
+expression of procedural code; full modularity, supporting hierarchical
+packages; exception-based error handling; and very high level dynamic
+data types.")
+ (properties '((cpe-name . "python")))
+ (license license:psfl)))
+
+
+;; Next 3.x version.
+(define-public python-next python-3.12)
+
;; Current 3.x version.
(define-public python-3 python-3.10)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index e6ff3ceabe..807c6ea413 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -218,14 +218,14 @@ of C++20 coroutines in connection with certain asynchronous Qt actions.")
(define-public qt5ct
(package
(name "qt5ct")
- (version "1.5")
+ (version "1.8")
(source
(origin
(method url-fetch)
(uri
(string-append "mirror://sourceforge/qt5ct/qt5ct-" version ".tar.bz2"))
(sha256
- (base32 "14742vs32m98nbfb5mad0i8ciff5f45gfcb5v03p4hh2dvhhqgfn"))))
+ (base32 "1s88v3x5vxrz981jiqb9cnwak0shz6kgjbkp511i592y85a41dr3"))))
(build-system qt-build-system)
(arguments
(list
@@ -2171,7 +2171,18 @@ plugin for Adobe After Effects.")
"1bkx2sc5hyldarc7w76ymv7dlcna3ib9r2kp67jdqcf856bnrx36"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg-5)
- ((#:tests? _ #f) #f))) ; TODO: Enable the tests
+ ((#:tests? _ #f) #f) ; TODO: Enable the tests
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'patch-qmake
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Adjust the default location of the 'qmake' command known to
+ ;; the 'lprodump' command, which would otherwise look for it
+ ;; in its own bindir.
+ (substitute* "src/linguist/lprodump/main.cpp"
+ (("app.applicationDirPath\\() \\+ QLatin1String\\(\"/qmake\")")
+ (format #f "QLatin1String(~s)"
+ (search-input-file inputs "bin/qmake"))))))))))
(native-inputs (list perl qtdeclarative-5 vulkan-headers))
(inputs (list mesa qtbase-5))
(synopsis "Qt Tools and Designer modules")
@@ -2349,7 +2360,7 @@ control equipment. The module provides both QML and C++ interfaces. The
primary target audience are embedded devices with fullscreen user interfaces,
and mobile applications targeting TV-like form factors.")))
-(define-public qtscxml
+(define-public qtscxml-5
(package
(inherit qtsvg-5)
(name "qtscxml")
@@ -2377,6 +2388,45 @@ machines (loading the SCXML file and instantiating states and transitions) and
generating a C++ file that has a class implementing the state machine. It
also contains functionality to support data models and executable content.")))
+(define-public qtscxml
+ (package
+ (name "qtscxml")
+ (version "6.5.2")
+ (source (origin
+ (method url-fetch)
+ (uri (qt-url name version))
+ (sha256
+ (base32
+ "1jxx9p7zi40r990ky991xd43mv6i8hdpnj2fhl7sf4q9fpng4c58"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "tests/3rdparty")))))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'check) ;move after the install phase
+ (add-after 'install 'check
+ (assoc-ref %standard-phases 'check))
+ (add-before 'check 'check-setup
+ (lambda _
+ (setenv "ARGS" "-E tst_scion")
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ (setenv "QML2_IMPORT_PATH"
+ (string-append #$output "/lib/qt6/qml:"
+ (getenv "QML2_IMPORT_PATH"))))))))
+ (build-system cmake-build-system)
+ (inputs (list qtbase qtdeclarative libxkbcommon))
+ (synopsis "Qt SCXML module")
+ (description "The Qt SCXML module provides functionality to create state
+machines from SCXML files. This includes both dynamically creating state
+machines (loading the SCXML file and instantiating states and transitions) and
+generating a C++ file that has a class implementing the state machine. It
+also contains functionality to support data models and executable content.")
+ (home-page (package-home-page qtbase))
+ (license (package-license qtbase))))
+
(define-public qtpositioning
(package
(name "qtpositioning")
@@ -4486,7 +4536,7 @@ color-related widgets.")
qtquickcontrols-5
qtquickcontrols2-5
qtscript
- qtscxml
+ qtscxml-5
qtsensors
qtspeech
qtsvg-5
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index bb49306a54..0ef4e9d4b5 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -791,7 +791,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
(define-public gnuradio
(package
(name "gnuradio")
- (version "3.10.3.0")
+ (version "3.10.8.0")
(source
(origin
(method git-fetch)
@@ -800,7 +800,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0xdhb2blzajxpi0f2ch23hh6bzdwz5q7syi3bmiqzdjlj2yjfzd4"))))
+ (base32 "11p08qrbfh5dz6l5n4c2g8c2gv1qq8aiydq91ryzfzgp49r0j6p0"))))
(build-system cmake-build-system)
(native-inputs
(list doxygen
diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm
index eb86246237..216c74cb9c 100644
--- a/gnu/packages/raspberry-pi.scm
+++ b/gnu/packages/raspberry-pi.scm
@@ -84,7 +84,7 @@ used in the Raspberry Pi")
(supported-systems '("armhf-linux" "aarch64-linux"))
(license license:gpl3)))
-(define raspi-gpio
+(define-public raspi-gpio
(let ((commit "6d0769ac04760b6e9f33b4aa1f11c682237bf368")
(revision "1"))
(package
@@ -467,7 +467,7 @@ secondary LCD display connected to the Raspberry Pi board.")
(define-public rpi-imager
(package
(name "rpi-imager")
- (version "1.7.5")
+ (version "1.8.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -490,7 +490,7 @@ secondary LCD display connected to the Raspberry Pi board.")
(cut member <> keep)))))))
(sha256
(base32
- "0c5qsqh7drvf76hc75m2cp7bf44w7gwbmhgaqjrl5qwb6pbqf7y8"))))
+ "1jr4w9h0bvqpy4r1g22n7b07zpplmc318v4lcfvh70c0rhl2vfi6"))))
(build-system qt-build-system)
(arguments
(list
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index 3063ff5887..cc6b009f14 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -367,45 +367,6 @@ powerful language for representing information.")
(license (license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution."))))
-(define-public python-rdflib-5
- (package
- (inherit python-rdflib)
- (version "5.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "rdflib" version))
- (sha256
- (base32
- "0mdi7xh4zcr3ngqwlgqdqf0i5bxghwfddyxdng1zwpiqkpa9s53q"))))
- ;; XXX: Lazily disable tests because they require a lot of work
- ;; and this package is only transitional.
- (arguments '(#:tests? #f))))
-
-;; Note: This package is only needed for rdflib < 6.0; supersede when
-;; the above are removed.
-(define-public python-rdflib-jsonld
- (package
- (name "python-rdflib-jsonld")
- (version "0.6.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "rdflib-jsonld" version))
- (sha256
- (base32
- "0qrshlqzv5g5bign7kjja3xf7hyk7xgayr3yd0qlqda1kl0x6z0h"))))
- (build-system python-build-system)
- (native-inputs
- (list python-nose))
- (propagated-inputs
- (list python-rdflib))
- (home-page "https://github.com/RDFLib/rdflib-jsonld")
- (synopsis "rdflib extension adding JSON-LD parser and serializer")
- (description "This package provides an rdflib extension adding JSON-LD
-parser and serializer.")
- (license license:bsd-3)))
-
(define-public python-cfgraph
(package
(name "python-cfgraph")
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index aa3428fbd4..32f072b74c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017, 2019-2022 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2017-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net>
@@ -34,7 +34,7 @@
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023, 2024 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
@@ -3243,7 +3243,10 @@ error streams.")
(file-name (git-file-name name version))
(sha256
(base32
- "1g0311ly32f6hfn4q5fvkbjbl2bhv1l9fx6s0kglxfsrwq51926y"))))
+ "1g0311ly32f6hfn4q5fvkbjbl2bhv1l9fx6s0kglxfsrwq51926y"))
+ (patches
+ (search-patches
+ "ruby-x25519-automatic-fallback-non-x86_64.patch"))))
(build-system ruby-build-system)
(arguments
(list #:test-target "spec"
@@ -9831,13 +9834,13 @@ navigation capabilities to @code{pry}, using @code{byebug}.")
(define-public ruby-stackprof
(package
(name "ruby-stackprof")
- (version "0.2.25")
+ (version "0.2.26")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "stackprof" version))
(sha256
- (base32 "0bhdgfb0pmw9mav1kw9fn0ka012sa0i3h5ppvqssw5xq48nhxnr8"))))
+ (base32 "1gdqqwnampxmc54nf6zfy9apkmkpdavzipvfssmjlhnrrjy8qh7f"))))
(build-system ruby-build-system)
(arguments
(list
@@ -9857,7 +9860,10 @@ navigation capabilities to @code{pry}, using @code{byebug}.")
(("def test_(cputime)" _ name)
(string-append "def skip_" name))
;; This test often fails
- (("def test_gc") "def skip_test_gc"))))
+ (("def test_gc") "def skip_test_gc")
+ ;; This test is known to fail on 32-bit systems.
+ ;; /gnu/store/w8y8wm82by1cnp33n5vy976wbrns9jys-stackprof-0.2.26.gem
+ (("def test_raw") "def skip_test_raw"))))
(add-before 'check 'build-tests
(lambda _
(invoke "rake" "compile")))
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 7313cdef77..d73bd1a030 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -84,6 +84,7 @@
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages kde)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages networking)
#:use-module (gnu packages shells)
#:use-module (gnu packages ssh)
@@ -1782,39 +1783,8 @@ by modifying your @file{Cargo.toml} file from the command line.")
rebase.")
(license license:gpl3+)))
-(define-public rust-cbindgen
- (package
- (name "rust-cbindgen")
- (version "0.13.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "cbindgen" version))
- (file-name (string-append name "-" version ".tar.xz"))
- (sha256
- (base32
- "0673pq96hs7waavkv58v2pakpxpsfyjvbraa5kyl2b44phgdzcid"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("clap" ,rust-clap-2)
- ("log" ,rust-log-0.4)
- ("proc-macro2" ,rust-proc-macro2-1)
- ("quote" ,rust-quote-1)
- ("serde" ,rust-serde-1)
- ("serde-json" ,rust-serde-json-1)
- ("syn" ,rust-syn-1)
- ("tempfile" ,rust-tempfile-3)
- ("toml" ,rust-toml-0.5))))
- (home-page "https://github.com/eqrion/cbindgen/")
- (synopsis "Tool for generating C bindings to Rust code")
- (description
- "This package provides a tool for generating C/C++ bindings to Rust code.")
- (license license:mpl2.0)))
-
(define-public rust-cbindgen-0.26
(package
- (inherit rust-cbindgen)
(name "rust-cbindgen")
(version "0.26.0")
(source
@@ -1824,6 +1794,7 @@ rebase.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0jdbxmn5h5nlr4bifx85gny309djv5djs9q78fa1d7sj0wdw2sys"))))
+ (build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-clap" ,rust-clap-3)
("rust-heck" ,rust-heck-0.4)
@@ -1837,7 +1808,12 @@ rebase.")
("rust-tempfile" ,rust-tempfile-3)
("rust-toml" ,rust-toml-0.5))
#:cargo-development-inputs (("rust-serial-test" ,rust-serial-test-0.5))))
- (native-inputs (list python-cython))))
+ (native-inputs (list python-cython))
+ (home-page "https://github.com/eqrion/cbindgen/")
+ (synopsis "Tool for generating C bindings to Rust code")
+ (description
+ "This package provides a tool for generating C/C++ bindings to Rust code.")
+ (license license:mpl2.0)))
(define-public rust-cbindgen-0.24
(package
@@ -1865,6 +1841,69 @@ rebase.")
(base32
"006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav"))))))
+(define-public rust-cbindgen rust-cbindgen-0.26)
+
+(define-public rust-bindgen-cli
+ (package
+ (name "rust-bindgen-cli")
+ (version "0.69.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "bindgen-cli" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "00dfny07m4xfnqbfn7yr7cqwilj6935lbyg5d39yxjfj8jglfcax"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:install-source? #f
+ #:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.69)
+ ("rust-clap" ,rust-clap-4)
+ ("rust-clap-complete" ,rust-clap-complete-4)
+ ("rust-env-logger" ,rust-env-logger-0.10)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-shlex" ,rust-shlex-1))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
+ (bindgen (string-append bin "/bindgen"))
+ (llvm-dir (string-append
+ (assoc-ref inputs "clang") "/lib")))
+ (install-file "target/release/bindgen" bin)
+ (wrap-program bindgen
+ `("LIBCLANG_PATH" = (,llvm-dir))))))
+ (add-after 'install 'install-completions
+ (lambda* (#:key native-inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share"))
+ (bindgen (string-append out "/bin/bindgen")))
+ (mkdir-p (string-append share "/bash-completion/completions"))
+ (with-output-to-file
+ (string-append share "/bash-completion/completions/bindgen")
+ (lambda _ (invoke bindgen "--generate-shell-completions" "bash")))
+ (mkdir-p (string-append share "/fish/vendor_completions.d"))
+ (with-output-to-file
+ (string-append share "/fish/vendor_completions.d/bindgen.fish")
+ (lambda _ (invoke bindgen "--generate-shell-completions" "fish")))
+ (mkdir-p (string-append share "/zsh/site-functions"))
+ (with-output-to-file
+ (string-append share "/zsh/site-functions/_bindgen")
+ (lambda _ (invoke bindgen "--generate-shell-completions" "zsh")))
+ (mkdir-p (string-append share "/elvish/lib"))
+ (with-output-to-file
+ (string-append share "/elvish/lib/bindgen")
+ (lambda _
+ (invoke bindgen "--generate-shell-completions" "elvish")))))))))
+ (inputs (list bash-minimal clang))
+ (home-page "https://rust-lang.github.io/rust-bindgen/")
+ (synopsis "Generate Rust FFI bindings to C and C++ libraries")
+ (description "This package can be used to automatically generate Rust FFI
+bindings to C and C++ libraries. This package provides the @command{bindgen}
+command.")
+ (license license:bsd-3)))
+
(define-public sniffglue
(package
(name "sniffglue")
@@ -2361,7 +2400,105 @@ work. This allows the client to be used in a much simpler way, with the
background agent taking care of maintaining the necessary state.")
(license license:expat)))
-;;; Note: keep in sync with our current Rust/Cargo version.
+;; Note: Keep rust-cargo and rust-cargo-c in sync with our current
+;; rust:cargo version.
+(define-public rust-cargo
+ (package
+ (name "rust-cargo")
+ (version "0.76.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "cargo" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "14yjyvj9bl6mlzx6bbi3igflgdrx1hil9ifnf1dl9xnm4mb2gjw6"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:tests? #f ; unresolved import `cargo_test_support`
+ #:cargo-inputs
+ (("rust-anstream" ,rust-anstream-0.6)
+ ("rust-anstyle" ,rust-anstyle-1)
+ ("rust-anyhow" ,rust-anyhow-1)
+ ("rust-base64" ,rust-base64-0.21)
+ ("rust-bytesize" ,rust-bytesize-1)
+ ("rust-cargo-credential" ,rust-cargo-credential-0.4)
+ ("rust-cargo-credential-libsecret" ,rust-cargo-credential-libsecret-0.4)
+ ("rust-cargo-credential-macos-keychain" ,rust-cargo-credential-macos-keychain-0.4)
+ ("rust-cargo-credential-wincred" ,rust-cargo-credential-wincred-0.4)
+ ("rust-cargo-platform" ,rust-cargo-platform-0.1)
+ ("rust-cargo-util" ,rust-cargo-util-0.2)
+ ("rust-clap" ,rust-clap-4)
+ ("rust-color-print" ,rust-color-print-0.3)
+ ("rust-crates-io" ,rust-crates-io-0.39)
+ ("rust-curl" ,rust-curl-0.4)
+ ("rust-curl-sys" ,rust-curl-sys-0.4)
+ ("rust-filetime" ,rust-filetime-0.2)
+ ("rust-flate2" ,rust-flate2-1)
+ ("rust-flate2" ,rust-flate2-1)
+ ("rust-git2" ,rust-git2-0.18)
+ ("rust-git2-curl" ,rust-git2-curl-0.19)
+ ("rust-gix" ,rust-gix-0.55)
+ ("rust-gix-features" ,rust-gix-features-0.35)
+ ("rust-glob" ,rust-glob-0.3)
+ ("rust-hex" ,rust-hex-0.4)
+ ("rust-hmac" ,rust-hmac-0.12)
+ ("rust-home" ,rust-home-0.5)
+ ("rust-http-auth" ,rust-http-auth-0.1)
+ ("rust-humantime" ,rust-humantime-2)
+ ("rust-ignore" ,rust-ignore-0.4)
+ ("rust-im-rc" ,rust-im-rc-15)
+ ("rust-indexmap" ,rust-indexmap-2)
+ ("rust-itertools" ,rust-itertools-0.11)
+ ("rust-jobserver" ,rust-jobserver-0.1)
+ ("rust-lazycell" ,rust-lazycell-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-libgit2-sys" ,rust-libgit2-sys-0.16)
+ ("rust-memchr" ,rust-memchr-2)
+ ("rust-opener" ,rust-opener-0.6)
+ ("rust-openssl" ,rust-openssl-0.10)
+ ("rust-os-info" ,rust-os-info-3)
+ ("rust-pasetors" ,rust-pasetors-0.6)
+ ("rust-pathdiff" ,rust-pathdiff-0.2)
+ ("rust-pulldown-cmark" ,rust-pulldown-cmark-0.9)
+ ("rust-rand" ,rust-rand-0.8)
+ ("rust-rustfix" ,rust-rustfix-0.6)
+ ("rust-semver" ,rust-semver-1)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-untagged" ,rust-serde-untagged-0.1)
+ ("rust-serde-value" ,rust-serde-value-0.7)
+ ("rust-serde-ignored" ,rust-serde-ignored-0.1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-sha1" ,rust-sha1-0.10)
+ ("rust-shell-escape" ,rust-shell-escape-0.1)
+ ("rust-supports-hyperlinks" ,rust-supports-hyperlinks-2)
+ ("rust-syn" ,rust-syn-2)
+ ("rust-tar" ,rust-tar-0.4)
+ ("rust-tar" ,rust-tar-0.4)
+ ("rust-tempfile" ,rust-tempfile-3)
+ ("rust-time" ,rust-time-0.3)
+ ("rust-toml" ,rust-toml-0.8)
+ ("rust-toml-edit" ,rust-toml-edit-0.20)
+ ("rust-tracing" ,rust-tracing-0.1)
+ ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)
+ ("rust-unicase" ,rust-unicase-2)
+ ("rust-unicode-width" ,rust-unicode-width-0.1)
+ ("rust-unicode-xid" ,rust-unicode-xid-0.2)
+ ("rust-url" ,rust-url-2)
+ ("rust-walkdir" ,rust-walkdir-2)
+ ("rust-windows-sys" ,rust-windows-sys-0.48))
+ #:cargo-development-inputs (("rust-same-file" ,rust-same-file-1)
+ ("rust-snapbox" ,rust-snapbox-0.4))))
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list curl libssh2 libgit2-1.7 openssl zlib))
+ (home-page "https://crates.io")
+ (synopsis "Package manager for Rust")
+ (description "Cargo, a package manager for Rust. This package provides
+the library crate of Cargo.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-cargo-c
(package
(name "rust-cargo-c")
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 01ecbdf042..1193cfae6e 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -50,6 +50,7 @@
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
+ #:use-module (gnu packages llvm-meta)
#:use-module (gnu packages mingw)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -908,7 +909,7 @@ safety and thread safety guarantees.")
(("features = \\[\"fs\"" all)
(string-append all ", \"use-libc\""))))))))))
-(define rust-1.74
+(define-public rust-1.74
(let ((base-rust (rust-bootstrapped-package rust-1.73 "1.74.1"
"07930r17dkj3dnsrmilywb6p9i2g2jx56ndfpa2wh8crzhi3xnv7")))
(package
@@ -940,7 +941,7 @@ safety and thread safety guarantees.")
(delete 'revert-riscv-pause-instruction))))
(package-arguments base-rust))))))
-(define rust-1.75
+(define-public rust-1.75
(let ((base-rust (rust-bootstrapped-package rust-1.74 "1.75.0"
"1260mf3066ki6y55pvr35lnf54am6z96a3ap3hniwd4xpi2rywsv")))
(package
@@ -967,7 +968,9 @@ safety and thread safety guarantees.")
(let ((base-rust rust-1.75))
(package
(inherit base-rust)
- (properties (alist-delete 'hidden? (package-properties base-rust)))
+ (properties (append
+ (alist-delete 'hidden? (package-properties base-rust))
+ (clang-compiler-cpu-architectures "15")))
(outputs (cons* "rust-src" "tools" (package-outputs base-rust)))
(source
(origin
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 93fdb6d7c2..7a1f9416b2 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -701,14 +701,14 @@ regular-expression notation.")
(define-public slib
(package
(name "slib")
- (version "3b6")
+ (version "3c1")
(source (origin
(method url-fetch)
(uri (string-append "http://groups.csail.mit.edu/mac/ftpdir/scm/slib-"
version ".zip"))
(sha256
(base32
- "137dn2wwwwg0qbifgxfckjhzj4m4820crpg9kziv402l7f2b931f"))))
+ "10f7l0fmd0xzs6kc2cwqjrx7msdn0fsd918r459xyc05wscfpy62"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There is no check target.
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index f8ca6c05d3..84b6502253 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -42,6 +42,7 @@
#:use-module (gnu packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
+ #:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix utils)
@@ -950,43 +951,42 @@ for interaction with Nitrokey Pro, Nitrokey Storage, and Librem Key
devices.")
(license license:gpl3+)))
-(define-public ausweisapp2
+(define-public ausweisapp
(package
- (name "ausweisapp2")
- (version "1.22.2")
+ (name "ausweisapp")
+ (version "2.1.0")
(source (origin
(method url-fetch)
- (uri (string-append "https://github.com/Governikus/AusweisApp2/releases"
- "/download/" version "/AusweisApp2-" version ".tar.gz"))
+ (uri (string-append "https://github.com/Governikus/AusweisApp/releases"
+ "/download/" version "/AusweisApp-" version ".tar.gz"))
(sha256
(base32
- "1qh1m057va7njs3yk0s31kwsvv44fjlsdac6lhiw5npcwssgjn8l"))))
+ "1jzxfybjrc3byw42bqjvn1nsn7vbgcl8y94sywjy6vaj3a58hy36"))))
- (build-system cmake-build-system)
+ (build-system qt-build-system)
(native-inputs
- (list pkg-config qttools-5))
+ (list pkg-config qttools))
(inputs
- (list qtbase-5
- qtsvg-5
- qtdeclarative-5
- qtwebsockets-5
+ (list qtbase
+ qtsvg
+ qtscxml
+ qtdeclarative
+ qtshadertools
+ qtwebsockets
qtgraphicaleffects
- qtquickcontrols2-5
pcsc-lite
openssl))
(arguments
- `(#:modules ((guix build cmake-build-system)
- (guix build qt-utils)
- (guix build utils))
- #:imported-modules (,@%cmake-build-system-modules
- (guix build qt-utils))
+ `(#:qtbase ,qtbase
#:phases
(modify-phases %standard-phases
- (add-after 'install 'wrap-qt
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (wrap-qt-program "AusweisApp2" #:output out #:inputs inputs)))))))
- (home-page "https://github.com/Governikus/AusweisApp2")
+ (replace 'check
+ (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+ (when tests? (invoke "ctest" "--output-on-failure" "-j"
+ (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1"))))))))
+ (home-page "https://github.com/Governikus/AusweisApp")
(synopsis
"Authentication program for German ID cards and residence permits")
(description
@@ -996,6 +996,9 @@ titles. To use this app, a supported RFID card reader or NFC-enabled smart
phone is required.")
(license license:eupl1.2)))
+(define-deprecated/public ausweisapp2 ausweisapp
+ (deprecated-package "ausweisapp2" ausweisapp))
+
(define-public libfido2
(package
(name "libfido2")
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 0556617ce8..f7b80d874b 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -548,14 +548,14 @@ ksh, and tcsh.")
(define-public xonsh
(package
(name "xonsh")
- (version "0.14.2")
+ (version "0.15.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xonsh" version))
(sha256
(base32
- "0fddxzd45zvfr687mvd90f5s376yz0a8ln7qbpl94q89z7l0y77k"))
+ "0427mimr4k75myg5mnig564kq7xbb5f5hws2ly3gxxl6g8mk79il"))
(modules '((guix build utils)))
(snippet
#~(begin
@@ -862,7 +862,7 @@ Shell (pdksh).")
(define-public oil
(package
(name "oil")
- (version "0.17.0")
+ (version "0.20.0")
(source
;; oil's sources contain a modified version of CPython 2.7.13.
;; According to https://www.oilshell.org/blog/2017/05/05.html
@@ -875,7 +875,7 @@ Shell (pdksh).")
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.gz"))
(sha256
- (base32 "01b67dq56iam44d7c81ba9w62jjnjx2z7wm928rkc1ff6bacm37r"))))
+ (base32 "1jpxhixwq29ik01jx372g9acib59wmww8lrdlcypq7jpg5b0b7pi"))))
(build-system gnu-build-system)
(arguments
(list #:strip-binaries? #f ; strip breaks the binary
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 0d9f593614..952335be54 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -972,13 +972,13 @@ effects of different types of color-blindness.")
(define-public r-digest
(package
(name "r-digest")
- (version "0.6.34")
+ (version "0.6.35")
(source
(origin
(method url-fetch)
(uri (cran-uri "digest" version))
(sha256
- (base32 "1na47pywh059g9ymf56z232h5yxbj0gn755cb10ms5igjd97awqb"))))
+ (base32 "07vqv2mnf8ppan2a3gydh4yr84n8489hypfas1rlk7050nxkycyc"))))
(build-system r-build-system)
;; Vignettes require r-knitr, which requires r-digest, so we have to
;; disable them and the tests.
@@ -3271,30 +3271,29 @@ certain criterion, e.g., it contains a certain regular file.")
(define-public r-rmarkdown
(package
(name "r-rmarkdown")
- (version "2.25")
+ (version "2.26")
(source
(origin
(method url-fetch)
(uri (cran-uri "rmarkdown" version))
(sha256
- (base32 "0m814598vc67sjwk83xh9g17n72618l32dgg7fz8y0gycqk6dr06"))))
+ (base32 "1q6z2j1y6pjdz4nzw44srv9j62irnxqhkvrsi46ma7xrzq6ig34g"))))
(properties
`((upstream-name . "rmarkdown")
(updater-extra-propagated-inputs . ("pandoc"))))
(build-system r-build-system)
(propagated-inputs
- (list r-bslib
+ (list pandoc
+ r-bslib
r-evaluate
r-fontawesome
r-htmltools
r-jquerylib
r-jsonlite
r-knitr
- r-stringr
r-tinytex
r-xfun
- r-yaml
- pandoc))
+ r-yaml))
(native-inputs
(list esbuild r-knitr))
(home-page "https://rmarkdown.rstudio.com")
@@ -4534,14 +4533,14 @@ more complete @code{viridis} package.")
(define-public r-tidyselect
(package
(name "r-tidyselect")
- (version "1.2.0")
+ (version "1.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "tidyselect" version))
(sha256
(base32
- "0fwy4qp3j0ksy15rkrh3588h7wa8c21h0fzx5s762zg34yvjd3ak"))))
+ "0g4h8mfm5ima0izy4h0c65q478473xsj4hskh15dzg5z1fx9g7hn"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli r-glue r-lifecycle r-rlang r-vctrs r-withr))
@@ -4953,13 +4952,13 @@ package instead.")
(define-public r-hmisc
(package
(name "r-hmisc")
- (version "5.1-1")
+ (version "5.1-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "Hmisc" version))
(sha256
- (base32 "0laan26ja6m9k3spkk1ymalwb181ramzjq6ii3b0404xv2kfywa9"))))
+ (base32 "088gniwbymzhqg3vp0kpkbazryjzy9iq6wdvf9hg9qf0sjbibpg7"))))
(properties `((upstream-name . "Hmisc")))
(build-system r-build-system)
(native-inputs
diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm
index 7025d05038..03cddcf28e 100644
--- a/gnu/packages/swig.scm
+++ b/gnu/packages/swig.scm
@@ -79,7 +79,7 @@ you tailor the wrapping process to suit your application.")
(package
(inherit swig)
(name "swig")
- (version "4.2.0")
+ (version "4.2.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
@@ -87,5 +87,5 @@ you tailor the wrapping process to suit your application.")
name "-" version ".tar.gz"))
(sha256
(base32
- "15wwh9215rdkflpr85r7zxr2nmrib03jr4bvh5i0f9lyb3bs4716"))))
+ "1n5pb77hwadjpbqgqn28i5v4cp94ar19wmv9vk6v4j6hw9a5617s"))))
(inputs (list pcre2))))
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index a4a26d7b5c..0d9e8d684f 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -130,7 +130,9 @@ Protocol.")
(home-page "https://github.com/syncthing/syncthing")
(properties
'((release-monitoring-url . "https://syncthing.net/downloads/")
- (upstream-name . "syncthing-source")))
+ (upstream-name . "syncthing-source")
+ ;; The hashing code greatly benefits from newer architecture support.
+ (tunable? . #t)))
(license mpl2.0)))
(define-public syncthing-gtk
@@ -708,32 +710,6 @@ notification library in Go.")
(home-page "https://github.com/syncthing/notify")
(license expat))))
-(define-public go-github-com-beorn7-perks-quantile
- (let ((commit "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9")
- (revision "0"))
- (package
- (name "go-github-com-beorn7-perks-quantile")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/beorn7/perks")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/beorn7/perks/quantile"
- #:unpack-path "github.com/beorn7/perks"))
- (synopsis "Compute approximate quantiles over an unbounded data stream")
- (description "Perks contains the Go package @code{quantile} that computes
-approximate quantiles over an unbounded data stream within low memory and CPU
-bounds.")
- (home-page "https://github.com/beorn7/perks")
- (license expat))))
-
(define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
(let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c")
(revision "0"))
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index f43fb7bb1f..c4d1ba2868 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
;;; Copyright © 2023 Lu Hui <luhux76@gmail.com>
;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net>
+;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -613,47 +614,50 @@ formerly a part of telegram-cli, but now being maintained separately.")
(base32 "0cf5s7ygslb5klg1qv9qdc3hivhspmvh3zkacyyhd2yyikb5p0f9"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; No target
+ (list
+ #:tests? #f ; No target
#:imported-modules
- ((guix build copy-build-system)
- ,@%default-gnu-imported-modules)
+ `((guix build copy-build-system)
+ ,@%default-gnu-imported-modules)
#:modules
- (((guix build copy-build-system)
- #:prefix copy:)
- (guix build gnu-build-system)
- (guix build utils))
+ '(((guix build copy-build-system)
+ #:prefix copy:)
+ (guix build gnu-build-system)
+ (guix build utils))
#:configure-flags
- (list
- ;; Use gcrypt instead of openssl.
- "--disable-openssl"
- ;; Enable extended queries system.
- "--enable-extf"
- ;; Include libevent-based net and timers.
- "--enable-libevent")
+ '(list
+ ;; Use gcrypt instead of openssl.
+ "--disable-openssl"
+ ;; Enable extended queries system.
+ "--enable-extf"
+ ;; Include libevent-based net and timers.
+ "--enable-libevent")
#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'trigger-bootstrap
- (lambda _
- (delete-file "configure")
- #t))
- (add-after 'trigger-bootstrap 'patch-tl-parser
- (lambda _
- (delete-file "Makefile.tl-parser")
- (substitute* "Makefile.in"
- (("include \\$\\{srcdir\\}/Makefile\\.tl-parser")
- "")
- (("\\$\\{EXE\\}/tl-parser")
- "tl-parser"))
- #t))
- (replace 'install
- (lambda args
- (apply (assoc-ref copy:%standard-phases 'install)
- #:install-plan
- '(("bin" "bin")
- ("." "include/tgl"
- #:include-regexp ("\\.h$"))
- ("libs" "lib/tgl"))
- args))))))
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'trigger-bootstrap
+ (lambda _
+ (delete-file "configure")))
+ (add-after 'trigger-bootstrap 'patch-tl-parser
+ (lambda _
+ (delete-file "Makefile.tl-parser")
+ (substitute* "Makefile.in"
+ (("include \\$\\{srcdir\\}/Makefile\\.tl-parser")
+ "")
+ (("\\$\\{EXE\\}/tl-parser")
+ "tl-parser"))))
+ (add-after 'unpack 'remove-Werror
+ (lambda _
+ (substitute* "Makefile.in"
+ (("-Werror") ""))))
+ (replace 'install
+ (lambda args
+ (apply (assoc-ref copy:%standard-phases 'install)
+ #:install-plan
+ '(("bin" "bin")
+ ("." "include/tgl"
+ #:include-regexp ("\\.h$"))
+ ("libs" "lib/tgl"))
+ args))))))
(native-inputs
(list autoconf automake libtool pkg-config))
(inputs
@@ -683,25 +687,29 @@ formerly a part of telegram-cli, but now being maintained separately.")
(base32 "0c1w7jgska71jjbvg1y09v52549pwa4zkdjly18yxywn7gayd2p6"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; No target
- #:imported-modules
- ((guix build copy-build-system)
+ (list
+ #:tests? #f ; No target
+ #:imported-modules
+ `((guix build copy-build-system)
,@%default-gnu-imported-modules)
- #:modules
- (((guix build copy-build-system)
+ #:modules
+ '(((guix build copy-build-system)
#:prefix copy:)
(guix build gnu-build-system)
(guix build utils))
- #:configure-flags
- (list
+ #:configure-flags
+ '(list
;; Use gcrypt instead of openssl.
"--disable-openssl")
- #:phases
- (modify-phases %standard-phases
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'remove-Werror
+ (lambda _
+ (substitute* "Makefile.in"
+ (("-Werror") "-fcommon"))))
(add-after 'unpack 'trigger-bootstrap
(lambda _
- (delete-file "configure")
- #t))
+ (delete-file "configure")))
(add-after 'trigger-bootstrap 'patch-tgl-and-tlparser
(lambda* (#:key inputs #:allow-other-keys)
(for-each delete-file
@@ -721,8 +729,7 @@ formerly a part of telegram-cli, but now being maintained separately.")
"/include/tgl/auto"))
(("LIB=libs")
(string-append "LIB=" (assoc-ref inputs "tgl")
- "/lib/tgl")))
- #t))
+ "/lib/tgl")))))
(replace 'install
(lambda args
(apply (assoc-ref copy:%standard-phases 'install)
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 785e7e5d91..0711d8b70a 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -39,6 +39,7 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; Copyright © 2024 Suhail <suhail@bayesians.ca>
+;;; Copyright © 2024 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1604,6 +1605,8 @@ basic input/output.")
(search-input-file inputs (string-append "lib/" all)))
(("libwayland-[[:alpha:]]*\\.so" all)
(search-input-file inputs (string-append "lib/" all)))
+ (("libxkbcommon-x11\\.so")
+ (search-input-file inputs "lib/libxkbcommon-x11.so"))
(("libxkbcommon\\.so")
(search-input-file inputs "lib/libxkbcommon.so")))))
(replace 'install
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 5bf7a95053..538035d231 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2019, 2020, 2021, 2022, 2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
;;; Copyright © 2020 Mark Meyer <mark@ofosos.org>
@@ -810,7 +810,7 @@ environment with Markdown markup.")
(define-public manuskript
(package
(name "manuskript")
- (version "0.15.0")
+ (version "0.16.1")
(source
(origin
(method git-fetch)
@@ -819,7 +819,7 @@ environment with Markdown markup.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0d1r62s1qidspck0b1zf8dibyjn9g72agbkjcica4bvfylnbqz9z"))))
+ (base32 "1w1wscq7w0xx4wkkk9rl3pc067yspbk8qnfaq3i9sxc7k6zsy77x"))))
(build-system python-build-system)
(arguments
(list
@@ -962,14 +962,14 @@ editors.")
(define-public texmacs
(package
(name "texmacs")
- (version "2.1.1")
+ (version "2.1.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.texmacs.org/Download/ftp/tmftp/"
"source/TeXmacs-" version "-src.tar.gz"))
(sha256
- (base32 "0c780vcwppzhb70d3d96md3hra7338d4fv3aj0sm7jx0mj2a334i"))))
+ (base32 "11l1q5lmsj9g7yil1dn7n1cgsr8iikx59kg9riahpb6xw0p959l7"))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config xdg-utils)) ;for xdg-icon-resource
@@ -1475,7 +1475,7 @@ commands.")
(define-public lite-xl
(package
(name "lite-xl")
- (version "2.1.1")
+ (version "2.1.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1484,18 +1484,10 @@ commands.")
(file-name (git-file-name name version))
(sha256
(base32
- "1pnmax68hvk1ry4bjsxwq4qimfn55pai8jlljw6jiqzcmh4mp7xm"))
- (modules '((guix build utils)))
- (snippet '(substitute* "meson.build"
- (("dependency\\('lua5\\.4',")
- "dependency('lua-5.4',")))))
+ "19wdq8w6ickyynx6r2wg2vf5isl2577zjizgwbzql9vhqdsi8ag3"))))
(build-system meson-build-system)
- (inputs (list agg
- freetype
- lua-5.4
- pcre2
- reproc
- sdl2))
+ (arguments (list #:configure-flags #~'("-Duse_system_lua=true")))
+ (inputs (list lua-5.4 pcre2 freetype sdl2))
(native-inputs (list pkg-config))
(home-page "https://lite-xl.com")
(synopsis "Lightweight text editor written in Lua")
@@ -1550,14 +1542,14 @@ highlighting for dozens of languages. Jed is very small and fast.")
(define-public xnedit
(package
(name "xnedit")
- (version "1.5.2")
+ (version "1.5.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/xnedit/" name "-"
version ".tar.gz"))
(sha256
(base32
- "09424qj03p7v7ih2gi3jnpm5iilr24ssab8rkijcjh6n9qn7izl0"))))
+ "10pw0yylhfmpcmhs74i3ikgsd8jq4dsy64zp9v14wj5s4qrac4c5"))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index 6a93f5c538..6a8cfdba04 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -41,6 +41,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages time)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
@@ -550,6 +551,30 @@ datetime type.")
"This package contains a library for parsing ISO 8601 datetime strings.")
(license bsd-3)))
+(define-public rdate
+ (let ((commit "91d84610e3695e90a884e2953908e95a856a9b74")
+ (revision "1"))
+ (package
+ (name "rdate")
+ (version (git-version "1.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/njh/rdate")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "002ryjq8gj1ml5la4v6dr3bh1zw5kxwy65rpziq8d2ccccarhv59"))))
+ (build-system gnu-build-system)
+ (native-inputs (list autoconf automake))
+ (synopsis "Get date and time based on RFC 868")
+ (description
+ "@code{rdate} connects to an RFC 868 time server over a TCP/IP network,
+printing the returned time and/or setting the system clock.")
+ (home-page "https://www.aelius.com/njh/rdate/")
+ (license gpl2+))))
+
(define-public datefudge
(package
(name "datefudge")
diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm
index 2f69830cdf..6efe22fc97 100644
--- a/gnu/packages/tor-browsers.scm
+++ b/gnu/packages/tor-browsers.scm
@@ -149,42 +149,40 @@
;; We copy the official build id, which can be found there:
;; https://aus1.torproject.org/torbrowser/update_3/release/.
-(define %torbrowser-build-date "20240213172118")
+(define %torbrowser-build-date "20240318163712")
;; To find the last version, look at https://www.torproject.org/download/.
-(define %torbrowser-version "13.0.10")
+(define %torbrowser-version "13.0.12")
;; To find the last Firefox version, browse
;; https://archive.torproject.org/tor-package-archive/torbrowser/<%torbrowser-version>
;; There should be only one archive that starts with
;; "src-firefox-tor-browser-".
-(define %torbrowser-firefox-version "115.8.0esr-13.0-1-build1")
+(define %torbrowser-firefox-version "115.9.0esr-13.0-1-build3")
;; See tor-browser-build/projects/translation/config.
-;; If Tor Browser and Mullvad Browser updates are not synchronized, maybe this
-;; will have to be duplicated.
-(define translation-base-browser
+(define torbrowser-translation-base
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
- (commit "cbd9b6c415ec2edb99237ef67ccd4f033a7b9c2a")))
+ (commit "a4d224e82808529e135259e04fb58fb39b90da2d")))
(file-name "translation-base-browser")
(sha256
(base32
- "103dj1zzc68gxzjxwcpc4sbc6qca4zg8kkhdivzpq37ma07sp9sf"))))
+ "0lvxjzj86gqgn6gns5593qrwd1gfrfcxdjvp1bl0jf9h3vwsiv5k"))))
;; See tor-browser-build/projects/translation/config.
-(define translation-tor-browser
+(define torbrowser-translation-specific
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
- (commit "a50fa943d7428ebe6e4e6b09f175e098a97eec63")))
+ (commit "e7aabc54138211e23bc60af1abe492c8bc68ce4b")))
(file-name "translation-tor-browser")
(sha256
(base32
- "0kvjdkgfdl0sh413wrli9pn7ygv9idrq5yvsi5q8c4bmnnxfig7c"))))
+ "0885scd85vqd0dyyvhasqb6qyi760qb4x08h82svqmnlzm54wsyv"))))
(define torbrowser-assets
;; This is a prebuilt Torbrowser from which we take the assets we need.
@@ -200,7 +198,7 @@
version "/tor-browser-linux-x86_64-" version ".tar.xz"))
(sha256
(base32
- "1v4jbgzw640lnsyxk275w62xdyqbw0p0fwvkzfawpg4d3pqp7fpw"))))
+ "0l6himzzzyv2ylc78gln6c7s7m073l1v8xndza4vybp0i46xq36q"))))
(arguments
(list
#:install-plan
@@ -219,6 +217,8 @@ Browser.")
moz-app-name
moz-app-remotingname
branding-directory
+ translation-base
+ translation-specific
assets
locales
build-date
@@ -236,7 +236,7 @@ Browser.")
".tar.xz"))
(sha256
(base32
- "0lbarj4i21f6jkpk2ji1cmgv625yhqyjksln97zgbbki43bx09v6"))))
+ "0h56g8yhsclh2rvmv94vs2zclj1w3j0p4pna62hmmnjgnwapblgn"))))
(build-system mozilla-build-system)
(inputs
(list go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird
@@ -291,7 +291,7 @@ Browser.")
(list
rust
`(,rust "cargo")
- rust-cbindgen-0.24
+ rust-cbindgen
llvm-15
clang-15
perl
@@ -567,7 +567,7 @@ Browser.")
(let ((l10ncentral ".mozbuild/l10n-central"))
;; Temporary copy so that we can use ‘mv’ to mimic
;; tor-browser-build/projects/firefox/build.
- (copy-recursively #$translation-base-browser
+ (copy-recursively #$translation-base
"translation-base-browser")
(for-each
(lambda (lang)
@@ -591,7 +591,7 @@ Browser.")
(let ((l10ncentral ".mozbuild/l10n-central"))
;; Temporary copy so that we can use ‘mv’ to mimic
;; tor-browser-build/projects/firefox/build.
- (copy-recursively #$translation-tor-browser
+ (copy-recursively #$translation-specific
"translation-tor-browser")
(for-each
(lambda (lang)
@@ -839,6 +839,8 @@ attacks on the privacy of Tor users.")
(make-torbrowser #:moz-app-name "torbrowser"
#:moz-app-remotingname "Tor Browser"
#:branding-directory "browser/branding/tb-release"
+ #:translation-base torbrowser-translation-base
+ #:translation-specific torbrowser-translation-specific
#:assets torbrowser-assets
#:locales %torbrowser-locales
#:build-date %torbrowser-build-date
@@ -876,29 +878,41 @@ attacks on the privacy of Tor users.")
;; We copy the official build id, which can be found there:
;; https://cdn.mullvad.net/browser/update_responses/update_1/release.
-(define %mullvadbrowser-build-date "20240213150358")
+(define %mullvadbrowser-build-date "20240313183935")
;; To find the last version, look at
;; https://mullvad.net/en/download/browser/linux.
-(define %mullvadbrowser-version "13.0.10")
+(define %mullvadbrowser-version "13.0.12")
;; To find the last Firefox version, browse
;; https://archive.torproject.org/tor-package-archive/mullvadbrowser/<%mullvadbrowser-version>
;; There should be only one archive that starts with
;; "src-firefox-mullvad-browser-".
-(define %mullvadbrowser-firefox-version "115.8.0esr-13.0-1-build1")
+(define %mullvadbrowser-firefox-version "115.9.0esr-13.0-1-build2")
;; See tor-browser-build/projects/translation/config.
-(define translation-mullvad-browser
+(define mullvadbrowser-translation-base
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
- (commit "57de1569da0e2c48fd999a13e555f6b522041993")))
+ (commit "595dcd5efe752cddc1b6ba47082ad9f5f4917fee")))
+ (file-name "translation-base-browser")
+ (sha256
+ (base32
+ "0j1sf2qa5y74ki0x6pyb1gp19zzh12i5c7p3qy3fhyxk284qgk22"))))
+
+;; See tor-browser-build/projects/translation/config.
+(define mullvadbrowser-translation-specific
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.torproject.org/tpo/translation.git")
+ (commit "c5361cb496ae7e047fd9226139537f1fcfc7938d")))
(file-name "translation-mullvad-browser")
(sha256
(base32
- "1q3979ac92c5mib573hx9w06x3hrfw7r52wzmj9r75sz2hhsmrq3"))))
+ "0kxna8hcn6xyj9mq0k8pzmj0xh6drq6fs69vjhk31g9wjjm99hss"))))
(define mullvadbrowser-assets
;; This is a prebuilt Mullvad Browser from which we take the assets we need.
@@ -914,7 +928,7 @@ attacks on the privacy of Tor users.")
version "/mullvad-browser-linux-x86_64-" version ".tar.xz"))
(sha256
(base32
- "1dkkk90lhvmhmi89rfjkx2m0ynyj0zajhxhxfmkzjj6bflmzgipv"))))
+ "1gxbppkjbsmfviw76q45fmx5w45v7z6mv2cf820npnlwv2szgb5a"))))
(arguments
(list
#:install-plan
@@ -935,6 +949,8 @@ Mullvad Browser.")
(make-torbrowser #:moz-app-name "mullvadbrowser"
#:moz-app-remotingname "Mullvad Browser"
#:branding-directory "browser/branding/mb-release"
+ #:translation-base mullvadbrowser-translation-base
+ #:translation-specific mullvadbrowser-translation-specific
#:assets mullvadbrowser-assets
#:locales %mullvadbrowser-locales
#:build-date %mullvadbrowser-build-date
@@ -955,7 +971,7 @@ Mullvad Browser.")
%mullvadbrowser-firefox-version ".tar.xz"))
(sha256
(base32
- "09wawhb3ci0i7038xs0cqvlm37i90a5iwn9m2p5gaal5cz55dz3n"))))
+ "1vl7xq7dn5j2vdjhb4q5n6f1w70zsawrrziqg60hxsf0cbmr130f"))))
(arguments
(substitute-keyword-arguments (package-arguments mullvadbrowser-base)
((#:phases phases)
@@ -976,7 +992,7 @@ Mullvad Browser.")
(lambda (lang)
(system
(format #f "cp -Lr ~a/~a .mozbuild/l10n-central/"
- #$translation-mullvad-browser lang)))
+ #$mullvadbrowser-translation-specific lang)))
(map car #$%mullvadbrowser-locales))))
(add-before 'build 'fix-profiles
;; Otherwise the profile would change every time the install
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 29664e073d..613f43cf1c 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2917,13 +2917,13 @@ based on a manifest file published by servers.")
(define-public patatt
(package
(name "patatt")
- (version "0.4.9")
+ (version "0.6.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "patatt" version))
(sha256
- (base32 "0fpbkmdlnz9s1lakw11jlrzpz4mb6f4dksdiir9g1ppq0g34sy58"))))
+ (base32 "0a0a5ndlnv7dk2smn8algss6q17gbd6mc7yacz17c9cxabv2c24q"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; No tests.
(propagated-inputs
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index aeb1b80b05..f2bdd20352 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -162,6 +162,7 @@
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages messaging)
#:use-module (gnu packages music)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
@@ -2750,6 +2751,78 @@ possibility to play Youtube videos, download subtitles, remember
the last played position, etc.")
(license license:gpl2+)))
+(define-public jellyfin-mpv-shim
+ (package
+ (name "jellyfin-mpv-shim")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-mpv-shim" version))
+ (sha256
+ (base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ ;; There is no test suite, but the code is ill-behaved and tries
+ ;; to open network connections at module import time, which makes
+ ;; `python setup.py test' fail.
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; sanity-check loads console_scripts endpoints, which launches
+ ;; the program, which makes the build hang. Disable it.
+ (delete 'sanity-check)
+ (add-after 'unpack 'disable-updates
+ (lambda _
+ (substitute* "jellyfin_mpv_shim/conf.py"
+ (("check_updates: bool = True")
+ "check_updates: bool = False")
+ (("notify_updates: bool = True")
+ "notify_updates: bool = False"))))
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications"))
+ (desktop-base "jellyfin_mpv_shim/integration/")
+ (package-id
+ "com.github.iwalton3.jellyfin-mpv-shim"))
+ (for-each (lambda (size)
+ (install-file (format #f
+ "~ajellyfin-~a.png"
+ desktop-base size) apps))
+ '(256 128 64 48 32 16))
+ (install-file (string-append desktop-base package-id
+ ".appdata.xml") apps)
+ (install-file (string-append desktop-base package-id
+ ".desktop") apps)))))))
+ (inputs (list `(,python "tk")
+ python-jellyfin-apiclient
+ python-jinja2
+ python-mpv
+ python-mpv-jsonipc
+ python-pypresence
+ python-pystray
+ python-requests))
+ (home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
+ (synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
+ (description "Jellyfin MPV Shim is a cross-platform cast client for
+Jellyfin. It has support for various media files without transcoding.")
+ (license (list
+ ;; jellyfin-mpv-shim
+ license:gpl3
+
+ ;; jellyfin-mpv-shim, and Anime4K, FSRCNNX, NVIDIA Image
+ ;; Scaling, AMD FidelityFX Super Resolution, AMD
+ ;; FidelityFX Contrast Adaptive Sharpening shaders.
+ license:expat
+
+ ;; Static Grain shader.
+ license:public-domain
+
+ ;; KrigBilatera, SSimDownscaler, and NNEDI3 shaders.
+ license:lgpl3+))))
+
(define-public gallery-dl
(package
(name "gallery-dl")
@@ -5936,6 +6009,8 @@ result in several formats:
(description "@code{rav1e} is an AV1 video encoder. It is designed to
eventually cover all use cases, though in its current form it is most suitable
for cases where libaom (the reference encoder) is too slow.")
+ ;; This package shows a large speed boost when tuned for newer architectures.
+ (properties `((tunable? . #t)))
(license license:bsd-2)))
(define-public peek
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 584eb5a923..e7248b8c19 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com>
@@ -169,15 +169,16 @@
(define-public qemu
(package
(name "qemu")
- (version "8.1.3")
+ (version "8.2.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.qemu.org/qemu-"
version ".tar.xz"))
(sha256
- (base32 "1fv5wbxpjxqzv10bdlq0ykgqfmzqx4s8yfch9zvqcm8h0il1gk23"))
- (patches (search-patches "qemu-disable-some-qtests-tests.patch"
+ (base32 "1wy45fbf4816l4ylsz8b8cbypva9apcdnvlgqfr586icp30lcww4"))
+ (patches (search-patches "qemu-build-info-manual.patch"
+ "qemu-disable-bios-tables-test.patch"
"qemu-fix-agent-paths.patch"))
(modules '((guix build utils)))
(snippet
@@ -196,7 +197,7 @@
(for-each delete-file (find-files "." "^(efi|pxe)-.*\\.rom$")))
;; Delete bundled code that we provide externally.
(for-each delete-file-recursively
- '("subprojects/dtc"
+ '("roms/u-boot/scripts/dtc"
"roms/ipxe"
"roms/openbios"
"roms/opensbi"
@@ -321,10 +322,18 @@
(lambda* (#:key native-inputs inputs #:allow-other-keys)
;; Ensure the executables created by these source files reference
;; /bin/sh from the store so they work inside the build container.
- (substitute* '("block/cloop.c" "migration/exec.c"
- "net/tap.c" "tests/qtest/libqtest.c"
+ (substitute* '("block/cloop.c"
+ "migration/exec.c"
+ "migration/migration.c"
+ "net/tap.c"
+ "util/envlist.c")
+ (("/bin/sh")
+ (search-input-file inputs "/bin/sh")))
+ ;; For tests, use the native /bin/sh is available.
+ (substitute* '("tests/qtest/libqtest.c"
"tests/qtest/vhost-user-blk-test.c")
- (("/bin/sh") (search-input-file inputs "/bin/sh")))
+ (("/bin/sh")
+ (search-input-file (or native-inputs inputs) "/bin/sh")))
(substitute* "tests/qemu-iotests/testenv.py"
(("#!/usr/bin/env python3")
(string-append "#!" (search-input-file (or native-inputs inputs)
diff --git a/gnu/packages/weather.scm b/gnu/packages/weather.scm
index 5a58b97a30..e95f6bb501 100644
--- a/gnu/packages/weather.scm
+++ b/gnu/packages/weather.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2022, 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,7 +28,7 @@
(define-public wego
(package
(name "wego")
- (version "2.1")
+ (version "2.2")
(source
(origin
(method git-fetch)
@@ -37,7 +37,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0bji9fywa0kg29zj1vrwq7l5f18hh0lcz6rl6sppi5id0qbjpiwl"))))
+ (base32 "09zn1z2744izzkkavs3lc1scsv22js8h28b0d86qd5dh2zfwfikf"))))
(build-system go-build-system)
(arguments '(#:import-path "github.com/schachmat/wego"))
(propagated-inputs
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 82ac3526d9..33c79bb7c5 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -589,7 +589,7 @@ driven and does not detract you from your daily work.")
(define-public nyxt
(package
(name "nyxt")
- (version "3.11.3")
+ (version "3.11.5")
(source
(origin
(method git-fetch)
@@ -598,7 +598,7 @@ driven and does not detract you from your daily work.")
(commit version)))
(sha256
(base32
- "0vp3w9a3zzn9kbq48a4b1nylrn1i4ibwxpl377yq04ggqkd6fi9a"))
+ "1f7pvh5bzkasbcfydd82pg7qn987ysbxk3j58dxzq2nzi05s0y4p"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -720,7 +720,7 @@ is fully configurable and extensible in Common Lisp.")
(define-public lagrange
(package
(name "lagrange")
- (version "1.16.7")
+ (version "1.17.6")
(source
(origin
(method url-fetch)
@@ -728,7 +728,7 @@ is fully configurable and extensible in Common Lisp.")
(string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
"download/v" version "/lagrange-" version ".tar.gz"))
(sha256
- (base32 "0ig7xdsihq7wc8h7n1af275z3kjxq5iiy0x4dwjahgligrdmj7vm"))
+ (base32 "0fsjn74cmrchqgnj88yzdxyj1gm0i2vrzh69b9b9bi7y2wk9il5r"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -848,7 +848,7 @@ http, and https via third-party applications.")
(define-public tinmop
(package
(name "tinmop")
- (version "0.9.9.1414213")
+ (version "0.9.9.141421356")
(source
(origin
(method git-fetch)
@@ -857,7 +857,7 @@ http, and https via third-party applications.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0rlgnqld6ls46452xvcr8k4ji4lwmlsrxib5ii9l9clkm0s477wv"))))
+ (base32 "0cw8scjxci98jx5cmm98x0frjrbs3q7w3dwz60xpy67aqmwq7kqx"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@@ -919,15 +919,15 @@ http, and https via third-party applications.")
#t))
(add-after 'unpack 'fix-configure.ac
(lambda _
- (delete-file "configure")
- (substitute* "configure.ac"
- (("AC_PATH_PROG.+CURL")
- "dnl")
- (("AC_PATH_PROGS.+GIT")
- "dnl")
- (("AC_PATH_PROG.+GPG")
- "dnl"))
- #t))
+ (delete-file "configure")
+ (substitute* "configure.ac"
+ (("AC_PATH_PROG.+CURL")
+ "dnl")
+ (("AC_PATH_PROGS.+GIT")
+ "dnl")
+ (("AC_PATH_PROG.+GPG")
+ "dnl"))
+ #t))
(add-after 'configure 'fix-asdf
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile.in"
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3cc06539a3..48bebf7d8c 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3,10 +3,10 @@
;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2015-2020, 2024 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
@@ -1111,40 +1111,44 @@ APIs.")
(license (license:non-copyleft "file://LICENSE.TERMS"))))
(define-public fcgiwrap
- (package
- (name "fcgiwrap")
- (version "1.1.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/gnosek/fcgiwrap")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1ryw66h9aazi83amk8l7ha8k5g0c7qvk5g6jv376a1ws9xk2qw6f"))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f ; no tests included
- #:make-flags (list "CC=gcc")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-CFLAGS
- ;; Remove broken options unconditionally added to CFLAGS.
- (lambda _
- (substitute* "configure.ac"
- ((" -Werror") ""))
- #t)))))
- (native-inputs
- (list autoconf automake pkg-config))
- (inputs
- (list fcgi))
- (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
- (synopsis "Simple server for running CGI applications over FastCGI")
- (description "Fcgiwrap is a simple server for running CGI applications
+ (let ((commit "2870d2729a3930988f0041e2d78fec672e69afac")
+ (revision "1"))
+ (package
+ (name "fcgiwrap")
+ (version (git-version "1.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ ;; Upstream last updated in 2015, this forked version has better
+ ;; socket cleanup.
+ (url "https://github.com/flu0r1ne/fcgiwrap")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0rkpp4apfhdcrmym3pcpqlncd0r4fyr3pa45i8g6x4p38b4azmmm"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no tests included
+ #:make-flags (list "CC=gcc")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-CFLAGS
+ ;; Remove broken options unconditionally added to CFLAGS.
+ (lambda _
+ (substitute* "configure.ac"
+ ((" -Werror") ""))
+ #t)))))
+ (native-inputs
+ (list autoconf automake pkg-config))
+ (inputs
+ (list fcgi))
+ (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
+ (synopsis "Simple server for running CGI applications over FastCGI")
+ (description "Fcgiwrap is a simple server for running CGI applications
over FastCGI. It hopes to provide clean CGI support to Nginx (and other web
servers that may need it).")
- (license license:expat)))
+ (license license:expat))))
(define-public starman
(package
@@ -4904,9 +4908,40 @@ their web site.")
"1p5i8wsi8q5fpq63i7n7ri1w1lnh4gpn17f88vhkbh14aah5wxj1"))))
(properties '(("upstream-name" . "python-lambda-4dn")))
(build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-pip-install
+ (lambda _
+ (substitute* "aws_lambda/aws_lambda.py"
+ ;; This package uses pip to install Python packages, wrap them
+ ;; up, and push them to AWS Lambda. We need to reset
+ ;; GUIX_PYTHONPATH to avoid introducing package conflicts that
+ ;; would cause pip to fail.
+ (("(subprocess.call\\(\\[sys.executable.*'--no-cache-dir'\\])\\)" _ m)
+ (string-append m ", env={\"GUIX_PYTHONPATH\":\""
+ #$(this-package-input "python")
+ "/lib/python"
+ #$(version-major+minor
+ (package-version (this-package-input "python")))
+ "/site-packages/\"})"))
+ ;; Zipfile uses the mtime of the temporary directory to build
+ ;; a zip file. But the temp directory has a timestamp of 0,
+ ;; and zipfile refuses to build a zip archive dated before
+ ;; 1980. So we reset the mtime of all temp files before they
+ ;; are added to the zip archive.
+ (("^( +)arcname = os.path.join" line indent)
+ (string-append indent
+ "os.utime(os.path.join(root, file), (315619200, 315619200))\n"
+ line))))))))
+ (inputs (list python))
(propagated-inputs
- (list python-boto3 python-botocore python-docutils
- python-six))
+ (list python-boto3
+ python-botocore
+ python-docutils
+ python-six
+ python-virtualenv))
(home-page "https://github.com/4dn-dcic/python-lambda")
(synopsis
"Toolkit for developing and deploying Python code in AWS Lambda")
@@ -4978,8 +5013,8 @@ Cloud.")
(license license:expat)))
(define-public guix-data-service
- (let ((commit "e13febc81706fbfb7f073bc4e9ce73fbc80d5180")
- (revision "44"))
+ (let ((commit "b4583bb17714954530e1cc851efaea1666f6adc2")
+ (revision "46"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -4991,7 +5026,7 @@ Cloud.")
(file-name (git-file-name name version))
(sha256
(base32
- "0pk86b44zg2yn73sxlcd9pqbz8xwprwzaib2npnq80y3yzc6qc22"))))
+ "0l9nflx5npmmbvqxrfjhfvyr7mcs9qrf0w3dabs65r7q0g0pjcp0"))))
(build-system gnu-build-system)
(arguments
(list
@@ -5440,7 +5475,7 @@ tools they trust (e.g. wget).")
(define netsurf-buildsystem
(package
(name "netsurf-buildsystem")
- (version "1.9")
+ (version "1.10")
(source
(origin
(method url-fetch)
@@ -5448,7 +5483,7 @@ tools they trust (e.g. wget).")
"buildsystem-" version ".tar.gz"))
(sha256
(base32
- "0alsmaig9ln8dgllb3z63gq90fiz75jz0ic71fi0k0k898qix14k"))))
+ "0yadmrpgvl9r08b56qiy5f77jracc7g9n4krn727fip4d7akjgix"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)))
(arguments
@@ -5479,7 +5514,7 @@ libraries.")
(define-public libparserutils
(package
(name "libparserutils")
- (version "0.2.4")
+ (version "0.2.5")
(source
(origin
(method url-fetch)
@@ -5487,7 +5522,7 @@ libraries.")
name "-" version "-src.tar.gz"))
(sha256
(base32
- "1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj"))))
+ "0ffi5q1jlcdl66nk3cax0mnzvhrjvvjvlx0rfasjfygi333xazii"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem pkg-config perl)) ;for test harness
@@ -5502,7 +5537,7 @@ C. It is developed as part of the NetSurf project.")
(define-public hubbub
(package
(name "hubbub")
- (version "0.3.7")
+ (version "0.3.8")
(source
(origin
(method url-fetch)
@@ -5510,15 +5545,14 @@ C. It is developed as part of the NetSurf project.")
"libhubbub-" version "-src.tar.gz"))
(sha256
(base32
- "1dimfyblmym98qa1b80c5jslv2zk8r44xbdrgrsrw1n9wr9y4yly"))
- (patches (search-patches
- "hubbub-sort-entities.patch"
- "hubbub-maybe-uninitialized.patch"))))
+ "19fm5h8arnsgxd4w5vr9s2fcb422acciffar3la0b36lygsydhca"))
+ (patches (search-patches "hubbub-sort-entities.patch"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem
pkg-config
doxygen
+ gperf
json-c-0.12 ; check whether json-c-0.12 can be removed
perl))
(propagated-inputs
@@ -5682,7 +5716,7 @@ developed as part of the Netsurf project.")
(define-public libcss
(package
(name "libcss")
- (version "0.9.1")
+ (version "0.9.2")
(source
(origin
(method url-fetch)
@@ -5690,13 +5724,8 @@ developed as part of the Netsurf project.")
"libcss-" version "-src.tar.gz"))
(sha256
(base32
- "1p66sdiiqm7w4jkq23hsf08khsnmq93hshh9f9m8sbirjdpf3p6j"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; This can be removed with the next release.
- (substitute* "src/select/computed.c"
- (("css_unit unit;") "css_unit unit = CSS_UNIT_PX;"))))))
+ "0khmf5bdpkc09fpsgwzi23sihpadvyr02jx0q5h1vm9lxjxibwid"))
+ (patches (search-patches "libcss-check-format.patch"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem pkg-config perl))
@@ -5713,7 +5742,7 @@ written in C. It is developed as part of the NetSurf project.")
(define-public libdom
(package
(name "libdom")
- (version "0.4.1")
+ (version "0.4.2") ;TODO include patch for additional tags?
(source
(origin
(method url-fetch)
@@ -5721,7 +5750,7 @@ written in C. It is developed as part of the NetSurf project.")
"libdom-" version "-src.tar.gz"))
(sha256
(base32
- "0jpg5hx3y0mdxk5szd47dyijqimd2321brbqk2620pp5f4j0gvlq"))))
+ "0g0gqcglk8f8gbygbcq5ylcx84zsf0vczbm3n3118w2l2splapnh"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem
@@ -5748,7 +5777,7 @@ developed as part of the NetSurf project.")
(define-public libsvgtiny
(package
(name "libsvgtiny")
- (version "0.1.7")
+ (version "0.1.8")
(source
(origin
(method url-fetch)
@@ -5756,7 +5785,7 @@ developed as part of the NetSurf project.")
name "-" version "-src.tar.gz"))
(sha256
(base32
- "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
+ "0750q884ax8wygl64wq03zdjj8h838ch3f8jdfkv4gz809zj4my3"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem pkg-config gperf-3.0))
@@ -5777,7 +5806,7 @@ project.")
(define-public libnsbmp
(package
(name "libnsbmp")
- (version "0.1.6")
+ (version "0.1.7")
(source
(origin
(method url-fetch)
@@ -5785,7 +5814,7 @@ project.")
name "-" version "-src.tar.gz"))
(sha256
(base32
- "0krjg69a2amxjsahdgm3wmy9ngnyr3gfs2a1zhdlbvb0z1jr7i3r"))))
+ "14r2v1ich4lxn3sdwpiwq5adydrd1qlhbd8mbamalaqj59laf1sl"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem))
@@ -5833,7 +5862,7 @@ operations.")
(define-public libnsgif
(package
(name "libnsgif")
- (version "0.2.1")
+ (version "1.0.0")
(source
(origin
(method url-fetch)
@@ -5841,7 +5870,7 @@ operations.")
name "-" version "-src.tar.gz"))
(sha256
(base32
- "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
+ "06q69hn0nz3c6hnwmzfcldyrppkvimx3s97ql3sx4m0lyr1ch530"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem))
@@ -5884,7 +5913,7 @@ client applications. It is developed as part of the NetSurf project.")
(define-public libnsutils
(package
(name "libnsutils")
- (version "0.1.0")
+ (version "0.1.1")
(source
(origin
(method url-fetch)
@@ -5892,7 +5921,7 @@ client applications. It is developed as part of the NetSurf project.")
name "-" version "-src.tar.gz"))
(sha256
(base32
- "1w5fyy2i60a3v3if3iqcn9sy9sycx6966rcx53v85gja6hb6a33r"))))
+ "14pakllwf7a205d0dkvyg8jhmqfbi5sh5riw840d13j5dr9b952n"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem))
@@ -5907,7 +5936,7 @@ developed as part of the NetSurf project.")
(define-public libnspsl
(package
(name "libnspsl")
- (version "0.1.6")
+ (version "0.1.7")
(source
(origin
(method url-fetch)
@@ -5915,7 +5944,7 @@ developed as part of the NetSurf project.")
"libnspsl-" version "-src.tar.gz"))
(sha256
(base32
- "02q28n5i6fwqcz1nn167rb71k1q95mx38mfah6zi1lvqrc2q5ifk"))))
+ "105cjkb622wz11z26il4j1n4ydyrrgv0nglr67aawpam5z1wx11n"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem))
@@ -5930,7 +5959,7 @@ Public Suffix List. It is developed as part of the NetSurf project.")
(define-public nsgenbind
(package
(name "nsgenbind")
- (version "0.8")
+ (version "0.9")
(source
(origin
(method url-fetch)
@@ -5938,7 +5967,7 @@ Public Suffix List. It is developed as part of the NetSurf project.")
"nsgenbind-" version "-src.tar.gz"))
(sha256
(base32
- "1cqwgwca49jvmijwiyaab2bwxicgxdrnlpinf8kp3nha02nm73ad"))))
+ "0p9q9ffn9hf1qrphz2qxq2xvyysn5kg2dbl8cbnkwb5wdkvf0b13"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem bison flex))
@@ -5956,7 +5985,7 @@ w3c webidl files and a binding configuration file.")
(define-public netsurf
(package
(name "netsurf")
- (version "3.10")
+ (version "3.11")
(source
(origin
(method url-fetch)
@@ -5964,7 +5993,7 @@ w3c webidl files and a binding configuration file.")
"releases/source/netsurf-" version "-src.tar.gz"))
(sha256
(base32
- "0plra64c5xyiw12yx2q13brxsv8apmany97zqa2lcqckw4ll8j1n"))
+ "1chw40nx7krpy7m14bajfrcj88h98if8py0k7c2qshpfxxm652n2"))
(patches (search-patches "netsurf-system-utf8proc.patch"
"netsurf-y2038-tests.patch"
"netsurf-longer-test-timeout.patch"
@@ -6015,22 +6044,17 @@ w3c webidl files and a binding configuration file.")
(add-after 'unpack 'remove-timestamps
;; Avoid embedding timestamp for reproducible builds
(lambda _
- (substitute* "utils/git-testament.pl"
+ (substitute* "tools/git-testament.pl"
(("WT_COMPILEDATE ..$compiledate")
"WT_COMPILEDATE \\\""))))
(add-after 'build 'adjust-welcome
(lambda _
(substitute* "frontends/gtk/res/welcome.html"
- ;; Close some XHTML tags.
+ ;; Close some XHTML tags.
(("<(img|input)([^>]*)>" _ tag contents)
(string-append "<" tag contents " />"))
;; Increase freedom.
- ((" open source") ", free software")
- ;; Prefer a more privacy-respecting default search engine.
- (("www.google.co.uk") "www.duckduckgo.com/html")
- (("Google Search") "DuckDuckGo Search")
- (("name=\"btnG\"") ""))
- ;; Remove default links so it doesn't seem we're endorsing them.
+ ((" open source") ", free software"))
(with-atomic-file-replacement "frontends/gtk/res/welcome.html"
(lambda (in out)
;; Leave the DOCTYPE header as is.
@@ -6045,8 +6069,23 @@ w3c webidl files and a binding configuration file.")
;; We'd like to use sxml-match here, but it can't
;; match against generic tag symbols...
(match sxml
+ ;; Remove default links so it doesn't seem we're
+ ;; endorsing them.
(`(div (@ (class "links")) . ,rest)
'())
+ ;; Prefer a more privacy-respecting default search
+ ;; engine.
+ (`(form . ,rest)
+ `(form (@ (action "https://lite.duckduckgo.com/lite/")
+ (method "post"))
+ (div (@ (class "websearch"))
+ (input (@ (type "text")
+ (size "42")
+ (name "q")
+ (autocomplete "off")
+ (value "")))
+ (input (@ (type "submit")
+ (value "DuckDuckGo Search"))))))
(`(ENTITY ,ent)
`(*ENTITY* ,ent))
((x ...)
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index d359d01f98..bf24a65e83 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -127,13 +127,20 @@ engine that uses Wayland for graphics output.")
(define-public webkitgtk
(package
(name "webkitgtk")
- (version "2.42.4")
+ (version "2.42.5")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz"))
(sha256
- (base32 "11pdcwmdj3i9aarrf7wsfvadi6jnkaf6zf7c5i2768x2plq8na2j"))
+ (base32 "0jg7c7z572afywwrnvdj3m5agaviv0vkqmzznnzzv30byb0phhmn"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ ;; https://bugs.webkit.org/show_bug.cgi?id=268739
+ ;; Fix a FTBFS on i686, powerpc64le.
+ (substitute* "Source/JavaScriptCore/llint/LowLevelInterpreter.cpp"
+ (("UNUSED_VARIABLE\\(t[67]\\);") ""))))
(patches (search-patches
"webkitgtk-adjust-bubblewrap-paths.patch"))))
(build-system cmake-build-system)
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index 875e22af18..4bd4d3c87a 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2017, 2019-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -77,7 +77,7 @@ in downloaded documents to relative links.")
(define-public wgetpaste
(package
(name "wgetpaste")
- (version "2.33")
+ (version "2.34")
(source
(origin
(method git-fetch)
@@ -86,7 +86,7 @@ in downloaded documents to relative links.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0gx5y3f0qf3hrah1z0q243hyldshaq6mvbg1lnjzciviv1vc8zx0"))))
+ (base32 "1z70wfzkrzlhhqm82i5gdk6clmsc06n9gsf2wizb1kzk3h61h296"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@@ -96,12 +96,6 @@ in downloaded documents to relative links.")
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
- (add-after 'unpack 'change-unfriendly-default
- (lambda _
- (substitute* "wgetpaste"
- ;; dpaste blocks Tor users. Use a better default.
- (("DEFAULT_SERVICE:-dpaste")
- "DEFAULT_SERVICE-bpaste"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 38f6217da2..a4a06c495a 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
-;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
+;;; Copyright © 2023, 2024 Kaelyn Takata <kaelyn.alexi@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -79,7 +79,7 @@
(define-public wine-minimal
(package
(name "wine-minimal")
- (version "8.18")
+ (version "9.0")
(source
(origin
(method url-fetch)
@@ -91,7 +91,7 @@
(string-append "https://dl.winehq.org/wine/source/" dir
"wine-" version ".tar.xz")))
(sha256
- (base32 "1nv06awb3hv26v64nqnks9yiz7w368scxznj77vxa3zpmhafzyih"))))
+ (base32 "1vm61hrkinjqicxidhbhq3j8sb1iianfypdvjmnvgxcmac50kzbw"))))
(properties '((upstream-name . "wine")))
(build-system gnu-build-system)
(native-inputs (list bison flex))
@@ -304,7 +304,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
- (version "8.18")
+ (version "9.0")
(source
(origin
(method git-fetch)
@@ -313,7 +313,7 @@ integrate Windows applications into your desktop.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0qabyw5139xdfsvzbwbrn1nnqssgwk8mn88mxnq2cdkk9gbjvq56"))))
+ (base32 "0xdinbj9byihy8snv6h1mcb79rh35zwhhld4g7mjg0k2wvjgskwl"))))
(build-system trivial-build-system)
(native-inputs
(list coreutils))
@@ -359,7 +359,7 @@ integrate Windows applications into your desktop.")
"wine-" wine-version ".tar.xz"))
(file-name (string-append name "-" wine-version ".tar.xz"))
(sha256
- (base32 "1nv06awb3hv26v64nqnks9yiz7w368scxznj77vxa3zpmhafzyih")))))
+ (base32 "1vm61hrkinjqicxidhbhq3j8sb1iianfypdvjmnvgxcmac50kzbw")))))
(inputs (modify-inputs (package-inputs wine)
(prepend autoconf ; for autoreconf
ffmpeg
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index eefa60a5b9..f2ec7bd557 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -188,13 +188,13 @@
xcb-util-keysyms
xcb-util-wm))
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (delete 'configure)) ; no configure script
- #:tests? #f ; no check target
- #:make-flags
- (list "CC=gcc"
- (string-append "PREFIX=" %output))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)) ; no configure script
+ #:tests? #f ; no check target
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))))
(home-page "https://github.com/baskerville/bspwm")
(synopsis "Tiling window manager based on binary space partitioning")
(description "bspwm is a tiling window manager that represents windows as
@@ -1758,10 +1758,54 @@ modules for building a Wayland compositor.")
(propagated-inputs (modify-inputs (package-propagated-inputs wlroots)
(delete libdisplay-info)))))
+(define-public wlroots-0.15
+ (package
+ (inherit wlroots)
+ (name "wlroots-0.15")
+ (version "0.15.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.freedesktop.org/wlroots/wlroots")
+ (commit version)))
+ (file-name (git-file-name "wlroots" version))
+ (sha256
+ (base32 "00s73nhi3sc48l426jdlqwpclg41kx1hv0yk4yxhbzw19gqpfm1h"))))))
+
+(define-public wmenu
+ (package
+ (name "wmenu")
+ (version "0.1.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~adnano/wmenu")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0wjn68r5cx4zvw7sby6sk2ip5h4fn0jbgb1nasm9nsgjpv63pnpm"))))
+ (build-system meson-build-system)
+ (native-inputs (append (if (%current-target-system)
+ ;; for wayland-scanner
+ (list pkg-config-for-build
+ wayland)
+ '())
+ (list pkg-config scdoc)))
+ (inputs (list cairo pango wayland libxkbcommon wayland-protocols))
+ (home-page "https://git.sr.ht/~adnano/wmenu")
+ (synopsis "Dynamic menu for Wayland")
+ (description "@command{wmenu} is a dynamic menu for Wayland, which reads a list
+of newline-separated items from stdin. When the user selects an item and presses
+Return, their choice is printed to stdout and wmenu terminates. Entering text will
+narrow the items to those matching the tokens in the input.")
+ (license license:expat)))
+
(define-public sway
(package
(name "sway")
- (version "1.8.1")
+ (version "1.9")
(source
(origin
(method git-fetch)
@@ -1770,28 +1814,24 @@ modules for building a Wayland compositor.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1y7brfrsjnm9gksijgnr6zxqiqvn06mdiwsk5j87ggmxazxd66av"))
+ (base32 "1n36vgpi4bg2gkiq4fam4khly1z9bjinmjclzq5vfx0z8h7a5bzz"))
(patches (search-patches "sway-add-libinput-config-accel.patch"))))
(build-system meson-build-system)
(arguments
- `(;; elogind is propagated by wlroots -> libseat
- ;; and would otherwise shadow basu.
- #:configure-flags '("-Dsd-bus-provider=basu")
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'hardcode-paths
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Hardcode path to swaybg.
- (substitute* "sway/config.c"
- (("strdup..swaybg..")
- (string-append "strdup(\"" (assoc-ref inputs "swaybg")
- "/bin/swaybg\")")))
- ;; Hardcode path to scdoc.
- (substitute* "meson.build"
- (("scdoc.get_pkgconfig_variable..scdoc..")
- (string-append "'" (assoc-ref inputs "scdoc")
- "/bin/scdoc'")))
- #t)))))
+ (list
+ ;; elogind is propagated by wlroots -> libseat
+ ;; and would otherwise shadow basu.
+ #:configure-flags
+ #~'("-Dsd-bus-provider=basu")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'hardcode-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Hardcode path to swaybg.
+ (substitute* "sway/config.c"
+ (("strdup..swaybg..")
+ (format #f "strdup(\"~a\")"
+ (search-input-file inputs "bin/swaybg")))))))))
(inputs (list basu
cairo
gdk-pixbuf
@@ -1803,7 +1843,7 @@ modules for building a Wayland compositor.")
pcre2
swaybg
wayland
- wlroots-0.16))
+ wlroots))
(native-inputs
(cons* linux-pam mesa pkg-config scdoc wayland-protocols
(if (%current-target-system)
@@ -1841,7 +1881,7 @@ corners, shadows, inactive window dimming, etc.")
(define-public swayidle
(package
(name "swayidle")
- (version "1.7.1")
+ (version "1.8.0")
(source
(origin
(method git-fetch)
@@ -1850,7 +1890,7 @@ corners, shadows, inactive window dimming, etc.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "06iq12p4438d6bv3jlqsf01wjaxrzlnj1bnicn41kad563aq41xl"))))
+ (base32 "0y0qdqzx90kvk6l80darldvizr7p5g65bnblhxlq5a2rgvs9hkpx"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Dlogind-provider=elogind")))
@@ -3058,7 +3098,7 @@ shows a notification for the user on the screen.")
(define-public cagebreak
(package
(name "cagebreak")
- (version "2.2.0")
+ (version "2.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3067,7 +3107,7 @@ shows a notification for the user on the screen.")
(file-name (git-file-name name version))
(sha256
(base32
- "0yhn77hdy7c80hd6r8nmvs206pmp76bx4zr94imfvgs8fh5gb8cy"))))
+ "0firjpp7qw4kb2h1zh5pv5k0xf0jvx6x0r0s7j6y7dhlh5j0s00q"))))
(build-system meson-build-system)
(arguments
(list
@@ -3083,7 +3123,7 @@ shows a notification for the user on the screen.")
(("/etc/") (string-append #$output "/etc/"))
(("/usr/share/") (string-append #$output "/usr/share/"))))))))
(native-inputs (list pkg-config scdoc))
- (inputs (list libevdev pango wlroots-0.16))
+ (inputs (list libevdev pango wlroots))
(home-page "https://github.com/project-repo/cagebreak")
(synopsis "Tiling wayland compositor inspired by ratpoison")
(description
@@ -3223,7 +3263,7 @@ session. Nor does it depend on any UI toolkits such as Qt or GTK.")
linux-pam
pango
wayland
- wlroots-0.16))
+ wlroots-0.15))
(arguments
`(#:tests? #f ; no tests
#:make-flags
@@ -3528,20 +3568,24 @@ used for multimedia keys.")
(define-public grimshot
(package
- (inherit sway)
(name "grimshot")
+ (version "1.9-contrib.0")
(source (origin
- (inherit (package-source sway))
- (snippet #~(delete-file "contrib/grimshot.1"))))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/OctopusET/sway-contrib")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (snippet #~(delete-file "grimshot.1"))
+ (sha256
+ (base32
+ "16fa8l81zjy25nsky1i525hb7zjprqz74mbirm9b76pvksschdv5"))))
(build-system copy-build-system)
(arguments
(list #:install-plan #~`(("grimshot" "bin/")
("grimshot.1" "share/man/man1/"))
#:phases #~(modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda _
- (chdir "contrib")))
- (add-after 'chdir 'patch-script-dependencies
+ (add-after 'unpack 'patch-script-dependencies
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "grimshot"
(("\\b(date|grim|jq|notify-send|slurp|swaymsg|wl-copy)\\b"
@@ -3563,11 +3607,13 @@ used for multimedia keys.")
slurp
sway
wl-clipboard))
+ (home-page "https://github.com/OctopusET/sway-contrib")
(synopsis "Screenshot utility for the Sway window manager")
(description "Grimshot is a screenshot utility for @code{sway}. It provides
an interface over @code{grim}, @code{slurp} and @code{jq}, and supports storing
the screenshot either directly to the clipboard using @code{wl-copy} or to a
-file.")))
+file.")
+ (license license:expat)))
(define-public wld
(let ((commit "6586736176ef50a88025abae835e29a7ca980126")
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 34de73401b..1e59f96618 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -41,9 +41,9 @@
;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2020 James Smith <jsubuntuxp@disroot.org>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
-;;; Copyright © 2020, 2021, 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2020, 2021, 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2021, 2022, 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Renzo Poddighe <renzo@poddighe.nl>
;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
@@ -1275,14 +1275,14 @@ transparent text on your screen.")
(define-public wob
(package
(name "wob")
- (version "0.14.2")
+ (version "0.15.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/francma/wob/releases/download/"
version "/wob-" version ".tar.gz"))
(sha256
- (base32 "12s9pc0dhqgawq6jiqhamj1zq9753kgpswny1rcsdx1lkpzrgaq1"))))
+ (base32 "1632y0yr1ig5nihs6kqyvfi117815zszhnfvaabm97qkf5blkj5p"))))
(build-system meson-build-system)
(native-inputs
(list pkg-config scdoc))
@@ -1360,16 +1360,16 @@ Guile will work for XBindKeys.")
(base32 "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r"))))
(build-system gnu-build-system)
(inputs
- (list asciidoc libxcb xcb-util xcb-util-keysyms xcb-util-wm))
+ (list libxcb xcb-util xcb-util-keysyms xcb-util-wm))
(arguments
- `(#:phases (modify-phases %standard-phases (delete 'configure))
- #:tests? #f ; no check target
- #:make-flags
- (list ,(string-append "CC=" (cc-for-target))
- (string-append "PREFIX=" %output)
- ;; Keep the documentation where the build system installs LICENSE.
- (string-append "DOCPREFIX=" %output
- "/share/doc/" ,name "-" ,version))))
+ (list #:phases #~(modify-phases %standard-phases (delete 'configure))
+ #:tests? #f ; no check target
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output)
+ ;; Keep the documentation where the build system installs LICENSE.
+ (string-append "DOCPREFIX=" #$output
+ "/share/doc/" #$name "-" #$version))))
(home-page "https://github.com/baskerville/sxhkd")
(synopsis "Simple X hotkey daemon")
(description "sxhkd is a simple X hotkey daemon with a powerful and
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index 1a42f7494e..fa8ddaa9aa 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2014, 2015, 2024 宋文武 <iyzsong@envs.net>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net>
@@ -134,7 +134,7 @@ Xfce Desktop Environment.")
(define-public xfconf
(package
(name "xfconf")
- (version "4.18.1")
+ (version "4.18.3")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -142,7 +142,7 @@ Xfce Desktop Environment.")
"xfconf-" version ".tar.bz2"))
(sha256
(base32
- "0mr20250mp4pgy82v5kvb0hp5060vy6yz9hd6icmmp6gpd8lfwfr"))))
+ "165xbr6y5z4zr235znkqlwkcy2ib9hgfqrdic0n7p57nas8ccv65"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -332,7 +332,7 @@ development.")
(define-public garcon
(package
(name "garcon")
- (version "4.18.1")
+ (version "4.18.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -340,7 +340,7 @@ development.")
"garcon-" version ".tar.bz2"))
(sha256
(base32
- "02y2nkxwx5mp1w6x2ydi3hpgymk7159zvyzk70afp5dcdlm96ypy"))))
+ "0ka35nxqhl4cbmyf9x2ysinihixsqmibqywqr2zqz5iiw699530v"))))
(build-system gnu-build-system)
(native-inputs
(list `(,glib "bin") gobject-introspection intltool pkg-config))
@@ -359,7 +359,7 @@ merging features essential for loading menus modified with menu editors.")
(define-public tumbler
(package
(name "tumbler")
- (version "4.18.1")
+ (version "4.18.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -367,7 +367,7 @@ merging features essential for loading menus modified with menu editors.")
"tumbler-" version ".tar.bz2"))
(sha256
(base32
- "1833qnfw2c9wv7iw5cad5x5scj1rsqmmbwfld33zxx8akhd9hqgz"))))
+ "0ymy6a0hbv5iainphgpd7dfi8snpg7zs7lyqq2cgiiza6p3fwc5m"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config intltool
@@ -398,7 +398,7 @@ management D-Bus specification.")
(define-public xfce4-panel
(package
(name "xfce4-panel")
- (version "4.18.4")
+ (version "4.18.6")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -406,7 +406,7 @@ management D-Bus specification.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "0m7vmk7rc2sjfqba0flgnw77kn1j222xqs7r86bpg8sf1614yc1j"))
+ "0qkw1msrvq7hc4mjg9iai0kymgkrpj1nijv04zjbdfcbymhp2cr1"))
(patches (search-patches "xfce4-panel-plugins.patch"))))
(build-system gnu-build-system)
(arguments
@@ -471,7 +471,7 @@ applications menu, workspace switcher and more.")
(define-public xfce4-clipman-plugin
(package
(name "xfce4-clipman-plugin")
- (version "1.6.4")
+ (version "1.6.6")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -479,7 +479,7 @@ applications menu, workspace switcher and more.")
"xfce4-clipman-plugin-" version ".tar.bz2"))
(sha256
(base32
- "1v5c1z154a46426198m3pl0fyrlsgfiqy4x9rvzcwzlp6lg5iplz"))))
+ "083i9pbcqjkdzzjx055ld4gd4gn3xnc3rn10vpsqv1vg01dlgb88"))))
(build-system gnu-build-system)
(native-inputs
(list intltool pkg-config))
@@ -498,7 +498,7 @@ matching them against regular expressions.")
(define-public xfce4-pulseaudio-plugin
(package
(name "xfce4-pulseaudio-plugin")
- (version "0.4.7")
+ (version "0.4.8")
(source
(origin
(method url-fetch)
@@ -507,7 +507,7 @@ matching them against regular expressions.")
(version-major+minor version) "/"
"xfce4-pulseaudio-plugin-" version ".tar.bz2"))
(sha256
- (base32 "0b4fjvrrah0b97cbv8ds7r6cwnj392ya2r7703ixf724f43hkpah"))))
+ (base32 "0j037wnx0z22nw11mq0y3cnq1srr52zckjap3klj3hirghh2nx5x"))))
(build-system gnu-build-system)
(native-inputs
(list intltool pkg-config dbus-glib dbus))
@@ -605,7 +605,7 @@ per window.")
(define-public xfce4-appfinder
(package
(name "xfce4-appfinder")
- (version "4.18.0")
+ (version "4.18.1")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -614,7 +614,7 @@ per window.")
"/" name "-" version ".tar.bz2"))
(sha256
(base32
- "136137w2xc78jq0xcbymjwdxapllwyy7h3ydshz0gli7ngbrhaln"))))
+ "1yck11y86d45yxsppd1yqk894k3cf5vh91a5sm559gl175jylm4q"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config intltool))
@@ -682,7 +682,7 @@ allows you to shut down the computer from Xfce.")
(define-public xfce4-settings
(package
(name "xfce4-settings")
- (version "4.18.3")
+ (version "4.18.4")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -690,7 +690,7 @@ allows you to shut down the computer from Xfce.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "18giyc190i7b3nc3l745p6fqpnqivwxm0yc7l0whfa03wndykf9d"))
+ "1p513i8zwc3glv2cf3x2abwm4hvdb7clamj19yadj2036v85a37i"))
(patches (search-patches "xfce4-settings-defaults.patch"))))
(build-system gnu-build-system)
(arguments
@@ -727,7 +727,7 @@ like appearance, display, keyboard and mouse settings.")
(define-public thunar
(package
(name "thunar")
- (version "4.18.7") ;stable version = even minor
+ (version "4.18.10") ;stable version = even minor
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -735,7 +735,7 @@ like appearance, display, keyboard and mouse settings.")
"thunar-" version ".tar.bz2"))
(sha256
(base32
- "0shbbih2l6h3sda2221h7gsskv2lnchnmypk76cdgf51iafafxi2"))))
+ "020xrwzdnk5b7cli8vmv3yn7sfq6pg7bz57m4p0xh0ln2cgqlc78"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--with-custom-thunarx-dirs-enabled")))
@@ -793,7 +793,7 @@ and import the new pictures from your camera.")
(define-public thunar-archive-plugin
(package
(name "thunar-archive-plugin")
- (version "0.5.1")
+ (version "0.5.2")
(source
(origin
(method url-fetch)
@@ -801,7 +801,7 @@ and import the new pictures from your camera.")
name "/" (version-major+minor version)
"/" name "-" version ".tar.bz2"))
(sha256
- (base32 "1vcbbmh2vw43231c7vbkwc35pmhj7ixb65fvssrwfxydsfqkl6x8"))))
+ (base32 "1qxdsnwjy8z358yd0avi1h2r6y1izfv26dzlp5fsh3pwpivzhyb3"))))
(build-system gnu-build-system)
(native-inputs (list pkg-config intltool))
(inputs (list exo thunar gtk+))
@@ -836,7 +836,7 @@ Samba from Thunar (the Xfce file manager) without requiring root access.")
(define-public thunar-media-tags-plugin
(package
(name "thunar-media-tags-plugin")
- (version "0.3.0")
+ (version "0.4.0")
(source
(origin
(method url-fetch)
@@ -844,7 +844,7 @@ Samba from Thunar (the Xfce file manager) without requiring root access.")
name "/" (version-major+minor version)
"/" name "-" version ".tar.bz2"))
(sha256
- (base32 "06sr7b4p9f585gian8vpx7j0pkzg0vvwcrjmrhvh7i5sb90w8rg2"))))
+ (base32 "02n99ymqs8msa798r63sy409pwrycg8p4pxx3yf497k924g134lm"))))
(build-system gnu-build-system)
(native-inputs (list pkg-config intltool))
(inputs (list exo gtk+ thunar taglib))
@@ -949,6 +949,26 @@ menu.")
on the screen.")
(license gpl2+)))
+(define-public xfwm4-themes
+ (package
+ (name "xfwm4-themes")
+ (version "4.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://archive.xfce.org/src/art/xfwm4-themes/"
+ (version-major+minor version) "/"
+ "xfwm4-themes-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0xfmdykav4rf6gdxbd6fhmrfrvbdc1yjihz7r7lba0wp1vqda51j"))))
+ (build-system gnu-build-system)
+ (home-page "https://www.xfce.org/")
+ (synopsis "Themes for the Xfce window manager")
+ (description "This package provides a set of additional themes for the Xfce
+window manager.")
+ (license gpl3+)))
+
(define-public xfdesktop
(package
(name "xfdesktop")
@@ -1012,7 +1032,7 @@ devices and folders.")
(define-public gigolo
(package
(name "gigolo")
- (version "0.5.2")
+ (version "0.5.3")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/"
@@ -1020,7 +1040,7 @@ devices and folders.")
"/" name "-" version ".tar.bz2"))
(sha256
(base32
- "1hxv3lla567nnqxxly8xfi8fzmpcdhxb493x9hinr7szfnh1ljp3"))))
+ "1l1g9ljvyzir1jpjf0248nnwwf3sakwljlik6cj5wrj4azv88nfj"))))
(build-system gnu-build-system)
(native-inputs (list pkg-config intltool))
(inputs (list gtk+))
@@ -1082,7 +1102,7 @@ features playback of local media files, DVD/CD and live streams.")
(define-public xfce4-terminal
(package
(name "xfce4-terminal")
- (version "1.1.0")
+ (version "1.1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/" name "/"
@@ -1090,7 +1110,7 @@ features playback of local media files, DVD/CD and live streams.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "18yl792x617qa90g6caw4cy1arfl847majjxkxs0k6rb4ivk70j0"))))
+ "0i9xgd0rgw0j59hlp9kyxndw2b35nhxjls09c20rzdj1sj4dak91"))))
(build-system gnu-build-system)
(arguments
(list
@@ -1116,7 +1136,7 @@ on your desktop.")
(define-public xfce4-dict
(package
(name "xfce4-dict")
- (version "0.8.5")
+ (version "0.8.6")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/" name "/"
@@ -1124,7 +1144,7 @@ on your desktop.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "06xa7987azyx6y4mkmg58qv7gsg66szmr8ly29l9l1v1xl5sp7i9"))))
+ "0h8adjgb7126hafik7r1k9wr3g6d835ggsh8zj9k4k9mf35bfpdf"))))
(build-system gnu-build-system)
(native-inputs
(list intltool pkg-config))
@@ -1226,6 +1246,7 @@ for and start applications.")
xfconf
xfdesktop
xfwm4
+ xfwm4-themes
xkill
;; Panel plugins.
xfce4-battery-plugin
@@ -1250,7 +1271,7 @@ system resources, while still being visually appealing and user friendly.")
(define-public xfce4-power-manager
(package
(name "xfce4-power-manager")
- (version "4.18.2")
+ (version "4.18.3")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -1258,7 +1279,7 @@ system resources, while still being visually appealing and user friendly.")
"xfce4-power-manager-" version ".tar.bz2"))
(sha256
(base32
- "0kfzvhb1hnr16fcplm7bdpp4fcxr3irzq3w4q0lpbc5n6kaqyq71"))))
+ "1w445v3911cf7l6w5c0f84aphv8s579f8srnhjrhf3drd07xsy8d"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config intltool))
@@ -1279,7 +1300,7 @@ inhibit interface which allows applications to prevent automatic sleep.")
(define-public ristretto
(package
(name "ristretto")
- (version "0.13.1")
+ (version "0.13.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/ristretto/"
@@ -1287,7 +1308,7 @@ inhibit interface which allows applications to prevent automatic sleep.")
"ristretto-" version ".tar.bz2"))
(sha256
(base32
- "07kraf6k18f53vgx98hvrb20hcm5134m7c958w96fl142nzzy6np"))))
+ "1nbxfm6ljcw45vn8hhjxwcv3k387hdah4jnn07n9w08n63g5x7vp"))))
(build-system gnu-build-system)
(native-inputs
(list intltool desktop-file-utils
@@ -1307,7 +1328,7 @@ the desktop wallpaper.")
(define-public xfce4-taskmanager
(package
(name "xfce4-taskmanager")
- (version "1.5.5")
+ (version "1.5.7")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/"
@@ -1315,7 +1336,7 @@ the desktop wallpaper.")
"xfce4-taskmanager-" version ".tar.bz2"))
(sha256
(base32
- "1rcaalqv6sdsnc6ick8fifgkqcf2xiflw9yk5szqn2qs4jx02kzn"))))
+ "1fv83xcbnlwabi32z3fsdik1knh7v45ji529dx9kwlv4b8pq6dk7"))))
(build-system gnu-build-system)
(native-inputs
(list intltool pkg-config))
@@ -1367,7 +1388,7 @@ several different time zones.")
(define-public xfce4-notifyd
(package
(name "xfce4-notifyd")
- (version "0.8.2")
+ (version "0.9.4")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/"
@@ -1375,7 +1396,7 @@ several different time zones.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "115fy87lcn9scwx52kjs0g250q2d3r10sahl6l8l38fs13dqm8p3"))))
+ "063qxbcy8djijsb0clzkai3mwg43mmlswwrg403vsi2w0n614v5f"))))
(build-system glib-or-gtk-build-system)
(arguments
(list #:phases
@@ -1388,7 +1409,9 @@ several different time zones.")
(("\\$PKG_CONFIG --variable=glib_compile_resources gio-2.0")
"which glib-compile-resources")
(("\\$PKG_CONFIG --variable=glib_genmarshal glib-2.0")
- "which glib-genmarshal")))))))
+ "which glib-genmarshal")
+ (("\\$PKG_CONFIG --variable=glib_mkenums glib-2.0")
+ "which glib-mkenums")))))))
(native-inputs
(list intltool pkg-config (list glib "bin") which))
(inputs
@@ -1442,7 +1465,7 @@ of data to either CD/DVD/BD.")
(define-public mousepad
(package
(name "mousepad")
- (version "0.6.1")
+ (version "0.6.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/mousepad/"
@@ -1450,7 +1473,7 @@ of data to either CD/DVD/BD.")
version ".tar.bz2"))
(sha256
(base32
- "0dpzzy03hlw6gljp7ywdi6np41r88p2nr7rypwzy6zdwqwv5832n"))))
+ "17fi33mkdz1nfmsgqlfa20l06wwy0s8lcj21cfg6ikdiihxwpjp7"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '(;; Use the GSettings keyfile backend rather than
@@ -1481,7 +1504,7 @@ of data to either CD/DVD/BD.")
(define-public xfce4-screenshooter
(package
(name "xfce4-screenshooter")
- (version "1.10.4")
+ (version "1.10.5")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/"
@@ -1491,7 +1514,7 @@ of data to either CD/DVD/BD.")
version ".tar.bz2"))
(sha256
(base32
- "1534h1a3a8b9pl20zpccaifrlsrbsihdcdjndn9nmqalgrl9kwd2"))))
+ "0732f1v6s1zkflq47rgdsimq73k7q94gwag1y9sza5smd8m1ywgs"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config intltool
@@ -1510,7 +1533,7 @@ A plugin for the Xfce panel is also available.")
(define-public xfce4-screensaver
(package
(name "xfce4-screensaver")
- (version "4.18.2")
+ (version "4.18.3")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/"
@@ -1520,7 +1543,7 @@ A plugin for the Xfce panel is also available.")
version ".tar.bz2"))
(sha256
(base32
- "161bdsvkbknaf9fpz4b1r4amnm72hzfmx9c6krg2396k2k2d5z74"))))
+ "0f9sw703pcgz47689qgc550h2hpqlzvsfgggd7z9s6516rhk2wfi"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -1581,7 +1604,7 @@ A plugin for the Xfce panel is also available.")
(define-public xfce4-cpugraph-plugin
(package
(name "xfce4-cpugraph-plugin")
- (version "1.2.8")
+ (version "1.2.10")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1590,7 +1613,7 @@ A plugin for the Xfce panel is also available.")
"/xfce4-cpugraph-plugin-" version ".tar.bz2"))
(sha256
(base32
- "1gylfmpn36cm1b1kz0x8smy5hixzlhmdg5i53cj5fzgk4773id5z"))))
+ "05frfn3y009xndks9rsw90jgk0v5zfarn5jqaqci45v9ab82sy9p"))))
(build-system gnu-build-system)
(native-inputs
(list intltool pkg-config))
@@ -1766,7 +1789,7 @@ be clicked to open the chosen mount point.")
(define-public xfce4-genmon-plugin
(package
(name "xfce4-genmon-plugin")
- (version "4.1.1")
+ (version "4.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1775,7 +1798,7 @@ be clicked to open the chosen mount point.")
"/xfce4-genmon-plugin-" version ".tar.bz2"))
(sha256
(base32
- "0d81npcqnmkw2qaqa8c6igh9j5r4ivgb15zcjwxjkyhrzz89y4dj"))))
+ "0qh3b818kbf5sc07dshkd54nhqncsk0inlwv21zq8h11bzp0i3cl"))))
(build-system gnu-build-system)
(native-inputs
(list intltool pkg-config))
@@ -2174,7 +2197,7 @@ lan interface (signal state, signal quality, network name (SSID)).")
(define-public xfce4-weather-plugin
(package
(name "xfce4-weather-plugin")
- (version "0.11.1")
+ (version "0.11.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -2183,12 +2206,12 @@ lan interface (signal state, signal quality, network name (SSID)).")
"/xfce4-weather-plugin-" version ".tar.bz2"))
(sha256
(base32
- "0fajhibacccfw0rl8741iz7qkqls4ynn9760j78rbp6wl3wlcld4"))))
+ "0sw7p8xsgyc7b5w92abigqz9mii79w2vdlprm5c0hmb3g3zhmm35"))))
(build-system gnu-build-system)
(native-inputs
(list intltool pkg-config))
(inputs
- (list gtk+ libsoup-minimal-2 libxfce4ui libxml2 xfce4-panel))
+ (list gtk+ json-c libsoup-minimal-2 libxfce4ui libxml2 xfce4-panel))
(home-page
"https://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin")
(synopsis "Show information about local weather in the Xfce panel")
@@ -2200,7 +2223,7 @@ local weather in the panel, using forecast data provided by the
(define-public xfce4-dev-tools
(package
(name "xfce4-dev-tools")
- (version "4.18.0")
+ (version "4.18.1")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -2208,10 +2231,11 @@ local weather in the panel, using forecast data provided by the
"xfce4-dev-tools-" version ".tar.bz2"))
(sha256
(base32
- "0dxyfsx70nddkkv0ygkl02wv4p99g62zjkw68sf4bqzhap4lznzf"))))
+ "10bnb8q7sj60ahzfwrb3av4ngr17wk1p6jsnfv0yn8l90kksnb41"))))
(build-system gnu-build-system)
(native-inputs
- (list pkg-config))
+ (list pkg-config
+ libxslt))
(inputs
(list glib))
(home-page "https://docs.xfce.org/xfce/xfce4-dev-tools/")
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 9baee6469c..62f181d216 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -100,6 +100,8 @@ a fully open, non-proprietary, patent-and-royalty-free, general-purpose
compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit,
polyphonic) audio and music at fixed and variable bitrates from 16 to
128 kbps/channel.")
+ ;; This package shows a sizable speed increase when tuned.
+ (properties `((tunable? . #t)))
(license (license:non-copyleft "file://COPYING"
"See COPYING in the distribution."))
(home-page "https://xiph.org/vorbis/")))
@@ -367,6 +369,8 @@ is unmatched for interactive speech and music transmission over the Internet,
but is also intended for storage and streaming applications. It is
standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which
incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
+ ;; This package shows a sizable speed increase when tuned.
+ (properties `((tunable? . #t)))
(license license:bsd-3)
(home-page "https://www.opus-codec.org")))
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 6be10fb67b..b2b004123a 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -6158,14 +6158,14 @@ basic eye-candy effects.")
(define-public xpra
(package
(name "xpra")
- (version "5.0.4")
+ (version "5.0.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.xpra.org/src/xpra-"
version ".tar.xz"))
(sha256
- (base32 "0zb49adrjrdsmf0k9xdc6j2idqy5lgzsjjrb4awjh5i4r3wc58m0"))
+ (base32 "0rkcsv0b55xbvkqi38nm01yxc09f7l9nj7xnp8v23rn6bp86m8mr"))
(patches (search-patches "xpra-5.0-systemd-run.patch"
"xpra-5.0-install_libs.patch"))))
(build-system python-build-system)
diff --git a/gnu/packages/zig-xyz.scm b/gnu/packages/zig-xyz.scm
index fd194a6a4f..0cd08b6ac6 100644
--- a/gnu/packages/zig-xyz.scm
+++ b/gnu/packages/zig-xyz.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2022 Maya Tomasek <maya.tomasek@disroot.org>
;;; Copyright © 2023 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
+;;; Copyright © 2024 Justin Veilleux <terramorpha@cock.li>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -107,7 +108,7 @@ mission-critical safety and performance for financial services.")
(define-public zig-zls
(package
(name "zig-zls")
- (version "0.9.0")
+ (version "0.10.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -117,24 +118,12 @@ mission-critical safety and performance for financial services.")
(file-name (git-file-name name version))
(sha256
(base32
- "1hhs7dz9rpshfd1a7x5swmix2rmh53vsqskh3mzqlrj2lgb3cnii"))))
- (build-system gnu-build-system)
- (inputs (list zig-0.9 python))
+ "1lsks7h3z2m4psyn9mwdylv1d6a9i3z54ssadiz76w0clbh8ch9k"))))
+ (build-system zig-build-system)
+ (inputs (list zig-0.10 python))
(arguments
- (list #:phases #~(modify-phases %standard-phases
- (delete 'configure)
- (replace 'build
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (setenv "ZIG_GLOBAL_CACHE_DIR"
- (string-append (getcwd) "/zig-cache"))
- (invoke "zig" "build" "install"
- "-Drelease-safe" "--prefix" out))))
- (delete 'install)
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "zig" "build" "test")))))))
+ ;; The tests fail with memory leaks.
+ (list #:tests? #f))
(synopsis "Zig language server")
(description
"Zig Language Server is a language server implementing the @acronym{LSP,
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 3cbfdd66fa..6994d48818 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -28,7 +28,8 @@
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
- #:use-module (gnu packages llvm))
+ #:use-module (gnu packages llvm)
+ #:use-module (gnu packages llvm-meta))
(define-public zig-0.9
(package
@@ -129,7 +130,7 @@ toolchain. Among other features it provides
(supported-systems %64bit-supported-systems)
;; Stage3 can take a lot of time and isn't verbose.
(properties `((max-silent-time . 9600)
- ,@(clang-properties "13")))
+ ,@(clang-compiler-cpu-architectures "13")))
(license license:expat)))
(define-public zig-0.10
@@ -193,6 +194,6 @@ toolchain. Among other features it provides
(modify-inputs (package-native-inputs zig-0.9)
(replace "llvm" llvm-15)))
(properties `((max-silent-time . 9600)
- ,@(clang-properties "15")))))
+ ,@(clang-compiler-cpu-architectures "15")))))
(define-public zig zig-0.10)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 2340cf1696..36aa878b73 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
@@ -2179,15 +2179,10 @@ raise a deprecation warning if the 'compression-level' field was used."
;; Use lazy socket activation unless ADVERTISE? is true: in that
;; case the process should start right away to advertise itself.
- (start #~(if (and (defined? 'make-systemd-constructor) ;> 0.9.0?
- #$(not advertise?))
- (make-systemd-constructor
- #$command #$endpoints #$@options)
- (make-forkexec-constructor #$command #$@options)))
- (stop #~(if (and (defined? 'make-systemd-destructor)
- #$(not advertise?))
- (make-systemd-destructor)
- (make-kill-destructor))))))))
+ (start #~(make-systemd-constructor
+ #$command #$endpoints #$@options
+ #:lazy-start? #$(not advertise?)))
+ (stop #~(make-systemd-destructor)))))))
(define %guix-publish-accounts
(list (user-group (name "guix-publish") (system? #t))
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index 9702170b3e..a914d0f89e 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -427,6 +427,12 @@ See @url{https://prosody.im/doc/modules/mod_tls}."
@url{https://prosody.im/doc/modules/mod_saslauth}."
common)
+ (insecure-sasl-mechanisms
+ (string-list '("PLAIN" "LOGIN"))
+ "Set of mechanisms that will not be offered on unencrypted connections.
+See @url{https://prosody.im/doc/modules/mod_saslauth}."
+ common)
+
(s2s-require-encryption?
(boolean #f)
"Whether to force all server-to-server connections to be encrypted or not.
diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm
index 69c737829b..48695e2806 100644
--- a/gnu/services/sddm.scm
+++ b/gnu/services/sddm.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -328,7 +329,11 @@ Relogin=" (if (sddm-configuration-relogin? config)
(service-extension account-service-type
(const %sddm-accounts))
(service-extension profile-service-type
- sddm-profile-service)))
+ sddm-profile-service)
+ (service-extension localed-service-type
+ (compose
+ xorg-configuration-keyboard-layout
+ sddm-configuration-xorg))))
(default-value (sddm-configuration))
(description
"Run SDDM, a display and log-in manager for X11 and
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index f5bcde721f..455e972535 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -383,6 +383,12 @@ as shepherd package."
(use-modules (srfi srfi-34)
(system repl error-handling))
+ (define (make-user-module)
+ ;; Copied from (shepherd support), where it's private.
+ (let ((m (make-fresh-user-module)))
+ (module-use! m (resolve-interface '(shepherd service)))
+ m))
+
;; There's code run from shepherd that uses 'call-with-input-file' &
;; co.--e.g., the 'urandom-seed' service. Starting from Shepherd
;; 0.9.2, users need to make sure not to leak non-close-on-exec file
@@ -416,7 +422,12 @@ as shepherd package."
(register-services
(parameterize ((current-warning-port
(%make-void-port "w")))
- (map load-compiled '#$(map scm->go files))))))
+ (map (lambda (file)
+ (save-module-excursion
+ (lambda ()
+ (set-current-module (make-user-module))
+ (load-compiled file))))
+ '#$(map scm->go files))))))
(format #t "starting services...~%")
(let ((services-to-start
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 1ee15ea90c..b86e2d3c5b 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2022 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 muradm <mail@muradm.net>
+;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -77,6 +78,7 @@
xorg-configuration-extra-config
xorg-configuration-server
xorg-configuration-server-arguments
+ xorg-configuration-keyboard-layout
%default-xorg-modules
%default-xorg-fonts
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 58e95a1312..6236d25b9d 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -132,15 +132,27 @@ MODULES and taken from LINUX."
#~(begin
(use-modules (gnu build linux-modules)
(guix build utils)
+ (rnrs io ports)
(srfi srfi-1)
(srfi srfi-26))
(define module-dir
(string-append #$linux "/lib/modules"))
+ (define builtin-modules
+ (call-with-input-file
+ (first (find-files module-dir "modules.builtin$"))
+ (lambda (port)
+ (map file-name->module-name
+ (string-tokenize
+ (get-string-all port))))))
+
+ (define modules-to-lookup
+ (lset-difference string=? '#$modules builtin-modules))
+
(define modules
(let* ((lookup (cut find-module-file module-dir <>))
- (modules (map lookup '#$modules)))
+ (modules (map lookup modules-to-lookup)))
(append modules
(recursive-module-dependencies
modules
diff --git a/gnu/tests/messaging.scm b/gnu/tests/messaging.scm
index 1e26c0ddea..dfcc92f7ed 100644
--- a/gnu/tests/messaging.scm
+++ b/gnu/tests/messaging.scm
@@ -145,7 +145,7 @@
(define %test-prosody
(let* ((config (prosody-configuration
- (disable-sasl-mechanisms '())
+ (insecure-sasl-mechanisms '())
(virtualhosts
(list
(virtualhost-configuration
diff --git a/guix/build/bzr.scm b/guix/build/bzr.scm
index a0f5e15880..dede5e031a 100644
--- a/guix/build/bzr.scm
+++ b/guix/build/bzr.scm
@@ -37,6 +37,7 @@ revision identifier. Return #t on success, else throw an exception."
(invoke bzr-command "-Ossl.cert_reqs=none" "checkout"
"--lightweight" "-r" revision url directory)
(with-directory-excursion directory
- (delete-file-recursively ".bzr")))
+ (delete-file-recursively ".bzr"))
+ #t)
;;; bzr.scm ends here
diff --git a/guix/build/download-nar.scm b/guix/build/download-nar.scm
index 3ba121b7fb..f26ad28cd0 100644
--- a/guix/build/download-nar.scm
+++ b/guix/build/download-nar.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2019, 2020, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -57,9 +57,9 @@ ITEM."
(restore-file decompressed-port
item))))
-(define (download-nar item)
- "Download and extract the normalized archive for ITEM. Return #t on
-success, #f otherwise."
+(define* (download-nar item #:optional (output item))
+ "Download and extract to OUTPUT the normalized archive for ITEM, a store
+item. Return #t on success, #f otherwise."
;; Let progress reports go through.
(setvbuf (current-error-port) 'none)
(setvbuf (current-output-port) 'none)
@@ -96,10 +96,10 @@ success, #f otherwise."
#:download-size size)))
(if (string-contains url "/lzip")
(restore-lzipped-nar port-with-progress
- item
+ output
size)
(restore-file port-with-progress
- item)))
+ output)))
(newline)
#t))))
(()
diff --git a/guix/build/download.scm b/guix/build/download.scm
index db0a39084b..74b7486b7b 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
@@ -40,7 +40,10 @@
#:autoload (guix swh) (swh-download-directory %verify-swh-certificate?)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
- #:export (open-socket-for-uri
+ #:export (%download-methods
+ download-method-enabled?
+
+ open-socket-for-uri
open-connection-for-uri
http-fetch
%x509-certificate-directory
@@ -622,6 +625,20 @@ true, verify HTTPS certificates; otherwise simply ignore them."
(lambda (key . args)
(print-exception (current-error-port) #f key args))))
+(define %download-methods
+ ;; Either #f (the default) or a list of symbols denoting the sequence of
+ ;; download methods to be used--e.g., '(swh nar upstream).
+ (make-parameter
+ (and=> (getenv "GUIX_DOWNLOAD_METHODS")
+ (lambda (str)
+ (map string->symbol (string-tokenize str))))))
+
+(define (download-method-enabled? method)
+ "Return true if METHOD (a symbol such as 'swh) is enabled as part of the
+download fallback sequence."
+ (or (not (%download-methods))
+ (memq method (%download-methods))))
+
(define (uri-vicinity dir file)
"Concatenate DIR, slash, and FILE, keeping only one slash in between.
This is required by some HTTP servers."
@@ -788,18 +805,28 @@ otherwise simply ignore them."
hashes)))
disarchive-mirrors))
+ (define initial-uris
+ (append (if (download-method-enabled? 'upstream)
+ uri
+ '())
+ (if (download-method-enabled? 'content-addressed-mirrors)
+ content-addressed-uris
+ '())
+ (if (download-method-enabled? 'internet-archive)
+ (match uri
+ ((first . _)
+ (or (and=> (internet-archive-uri first) list)
+ '()))
+ (() '()))
+ '())))
+
;; Make this unbuffered so 'progress-report/file' works as expected. 'line
;; means '\n', not '\r', so it's not appropriate here.
(setvbuf (current-output-port) 'none)
(setvbuf (current-error-port) 'line)
- (let try ((uri (append uri content-addressed-uris
- (match uri
- ((first . _)
- (or (and=> (internet-archive-uri first) list)
- '()))
- (() '())))))
+ (let try ((uri initial-uris))
(match uri
((uri tail ...)
(or (fetch uri file)
@@ -807,9 +834,10 @@ otherwise simply ignore them."
(()
;; If we are looking for a software archive, one last thing we
;; can try is to use Disarchive to assemble it.
- (or (disarchive-fetch/any disarchive-uris file
- #:verify-certificate? verify-certificate?
- #:timeout timeout)
+ (or (and (download-method-enabled? 'disarchive)
+ (disarchive-fetch/any disarchive-uris file
+ #:verify-certificate? verify-certificate?
+ #:timeout timeout))
(begin
(format (current-error-port) "failed to download ~s from ~s~%"
file url)
diff --git a/guix/build/git.scm b/guix/build/git.scm
index 4c69365a7b..62877394bb 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -19,6 +19,8 @@
(define-module (guix build git)
#:use-module (guix build utils)
+ #:use-module ((guix build download)
+ #:select (download-method-enabled?))
#:autoload (guix build download-nar) (download-nar)
#:autoload (guix swh) (%verify-swh-certificate?
swh-download
@@ -92,25 +94,30 @@ fetched, recursively. Return #t on success, #f otherwise."
(define* (git-fetch-with-fallback url commit directory
- #:key (git-command "git")
+ #:key (item directory)
+ (git-command "git")
hash hash-algorithm
lfs? recursive?)
"Like 'git-fetch', fetch COMMIT from URL into DIRECTORY, but fall back to
-alternative methods when fetching from URL fails: attempt to download a nar,
-and if that also fails, download from the Software Heritage archive. When
-HASH and HASH-ALGORITHM are provided, they are interpreted as the nar hash of
-the directory of interested and are used as its content address at SWH."
- (or (git-fetch url commit directory
- #:lfs? lfs?
- #:recursive? recursive?
- #:git-command git-command)
- (download-nar directory)
+alternative methods when fetching from URL fails: attempt to download a nar
+for ITEM, and if that also fails, download from the Software Heritage archive.
+When HASH and HASH-ALGORITHM are provided, they are interpreted as the nar
+hash of the directory of interested and are used as its content address at
+SWH."
+ (or (and (download-method-enabled? 'upstream)
+ (git-fetch url commit directory
+ #:lfs? lfs?
+ #:recursive? recursive?
+ #:git-command git-command))
+ (and (download-method-enabled? 'nar)
+ (download-nar item directory))
;; As a last resort, attempt to download from Software Heritage.
;; Disable X.509 certificate verification to avoid depending
;; on nss-certs--we're authenticating the checkout anyway.
;; XXX: Currently recursive checkouts are not supported.
(and (not recursive?)
+ (download-method-enabled? 'swh)
(parameterize ((%verify-swh-certificate? #f))
(format (current-error-port)
"Trying to download from Software Heritage...~%")
diff --git a/guix/bzr-download.scm b/guix/bzr-download.scm
index d97f84838e..a22c9bee99 100644
--- a/guix/bzr-download.scm
+++ b/guix/bzr-download.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,7 +24,7 @@
#:use-module (guix packages)
#:use-module (guix records)
#:use-module (guix store)
-
+ #:use-module (ice-9 match)
#:export (bzr-reference
bzr-reference?
bzr-reference-url
@@ -51,20 +52,46 @@
(module-ref distro 'breezy)))
(define* (bzr-fetch ref hash-algo hash
- #:optional name
- #:key (system (%current-system)) (guile (default-guile))
- (bzr (bzr-package)))
+ #:optional name
+ #:key (system (%current-system)) (guile (default-guile))
+ (bzr (bzr-package)))
"Return a fixed-output derivation that fetches REF, a <bzr-reference>
object. The output is expected to have recursive hash HASH of type
HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
+ (define guile-json
+ (module-ref (resolve-interface '(gnu packages guile)) 'guile-json-4))
+
+ (define guile-lzlib
+ (module-ref (resolve-interface '(gnu packages guile)) 'guile-lzlib))
+
+ (define guile-gnutls
+ (module-ref (resolve-interface '(gnu packages tls)) 'guile-gnutls))
+
(define build
- (with-imported-modules (source-module-closure
- '((guix build bzr)))
- #~(begin
- (use-modules (guix build bzr))
- (bzr-fetch
- (getenv "bzr url") (getenv "bzr reference") #$output
- #:bzr-command (string-append #+bzr "/bin/brz")))))
+ (with-extensions (list guile-gnutls guile-lzlib guile-json)
+ (with-imported-modules (source-module-closure
+ '((guix build bzr)
+ (guix build utils)
+ (guix build download)
+ (guix build download-nar)))
+ #~(begin
+ (use-modules (guix build bzr)
+ (guix build download-nar)
+ ((guix build download)
+ #:select (download-method-enabled?))
+ (guix build utils)
+ (srfi srfi-34))
+
+ (or (and (download-method-enabled? 'upstream)
+ (guard (c ((invoke-error? c)
+ (report-invoke-error c)
+ #f))
+ (bzr-fetch (getenv "bzr url") (getenv "bzr reference")
+ #$output
+ #:bzr-command
+ (string-append #+bzr "/bin/brz"))))
+ (and (download-method-enabled? 'nar)
+ (download-nar #$output)))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "bzr-branch") build
@@ -74,12 +101,16 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
#:script-name "bzr-download"
#:env-vars
`(("bzr url" . ,(bzr-reference-url ref))
- ("bzr reference" . ,(bzr-reference-revision ref)))
+ ("bzr reference" . ,(bzr-reference-revision ref))
+ ,@(match (getenv "GUIX_DOWNLOAD_METHODS")
+ (#f '())
+ (value
+ `(("GUIX_DOWNLOAD_METHODS" . ,value)))))
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"
"COLUMNS")
#:system system
- #:local-build? #t ;don't offload repo branching
+ #:local-build? #t ;don't offload repo branching
#:hash-algo hash-algo
#:hash hash
#:recursive? #t
diff --git a/guix/cpu.scm b/guix/cpu.scm
index e80b74f161..840215cff0 100644
--- a/guix/cpu.scm
+++ b/guix/cpu.scm
@@ -113,7 +113,7 @@
"Return the architecture name, suitable for GCC's '-march' flag, that
corresponds to CPU, a record as returned by 'current-cpu'."
(match (cpu-architecture cpu)
- ("x86_64"
+ ((or "x86_64" "i686")
;; Transcribed from GCC's 'host_detect_local_cpu' in driver-i386.cc.
(letrec-syntax ((if-flags (syntax-rules (=>)
((_)
@@ -200,7 +200,9 @@ corresponds to CPU, a record as returned by 'current-cpu'."
;; TODO: Recognize CENTAUR/CYRIX/NSC?
- "x86_64")))
+ (match (cpu-architecture cpu)
+ ("x86_64" "x86-64")
+ (_ "generic")))))
("aarch64"
;; Transcribed from GCC's list of aarch64 processors in aarch64-cores.def
;; What to do with big.LITTLE cores?
@@ -290,12 +292,12 @@ correspond roughly to CPU, a record as returned by 'current-cpu'."
;; v2: CMPXCHG16B, LAHF, SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3
("avx512f" "avx512bw" "abx512cd" "abx512dq" "avx512vl"
"avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe"
- "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v4")
+ "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v4")
("avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe"
- "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v3")
- ("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v2")
- (_ => "x86_64-v1")))
- "x86_64-v1"))
+ "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v3")
+ ("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v2")
+ (_ => "x86-64")))
+ "x86-64"))
(architecture
;; TODO: More architectures
architecture)))
@@ -304,22 +306,22 @@ correspond roughly to CPU, a record as returned by 'current-cpu'."
"Return a matching psABI micro-architecture, allowing optimizations for x86_64
CPUs for compilers which don't allow for more focused optimizing."
;; Matching gcc-architectures isn't an easy task, with the rule-of-thumb being
- ;; AVX512F+ for x86_64-v4, AVX+ for x86_64-v3.
+ ;; AVX512F+ for x86-64-v4, AVX+ for x86-64-v3.
;; https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex
(match gcc-architecture
((or "graniterapids-d" "graniterapids" "tigerlake" "sapphirerapids"
"cooperlake" "icelake-server" "icelake-client" "cannonlake" "knm"
"knl" "skylake-avx512"
"znver4")
- "x86_64-v4")
+ "x86-64-v4")
((or "pantherlake" "clearwaterforest" "arrowlake-s" "sierraforest"
"alderlake" "skylake" "broadwell" "haswell"
"znver3" "znver2" "znver1" "bdver4")
- "x86_64-v3")
+ "x86-64-v3")
((or "sandybridge" "tremont" "goldmont-plus" "goldmont" "silvermont"
"nehalem" "bonnell" "core2"
"btver2" "athalon" "k8-sse3" "k8" "bdver3" "bdver2" "bdver1" "btver1"
"amdfam10"
"lujiazui" "yongfeng" "x86-64")
- "x86_64-v1")
+ "x86-64")
(_ gcc-architecture)))
diff --git a/guix/cvs-download.scm b/guix/cvs-download.scm
index c0c526b9db..023054941b 100644
--- a/guix/cvs-download.scm
+++ b/guix/cvs-download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2017, 2019, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;;
@@ -73,6 +73,7 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define modules
(delete '(guix config)
(source-module-closure '((guix build cvs)
+ (guix build download)
(guix build download-nar)))))
(define build
(with-imported-modules modules
@@ -80,20 +81,29 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
guile-lzlib)
#~(begin
(use-modules (guix build cvs)
+ ((guix build download)
+ #:select (download-method-enabled?))
(guix build download-nar))
- (or (cvs-fetch '#$(cvs-reference-root-directory ref)
- '#$(cvs-reference-module ref)
- '#$(cvs-reference-revision ref)
- #$output
- #:cvs-command (string-append #+cvs "/bin/cvs"))
- (download-nar #$output))))))
+ (or (and (download-method-enabled? 'upstream)
+ (cvs-fetch '#$(cvs-reference-root-directory ref)
+ '#$(cvs-reference-module ref)
+ '#$(cvs-reference-revision ref)
+ #$output
+ #:cvs-command
+ #+(file-append cvs "/bin/cvs")))
+ (and (download-method-enabled? 'nar)
+ (download-nar #$output)))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "cvs-checkout") build
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"
"COLUMNS")
+ #:env-vars (match (getenv "GUIX_DOWNLOAD_METHODS")
+ (#f '())
+ (value
+ `(("GUIX_DOWNLOAD_METHODS" . ,value))))
#:system system
#:hash-algo hash-algo
#:hash hash
diff --git a/guix/describe.scm b/guix/describe.scm
index 65cd79094b..a4ca2462f4 100644
--- a/guix/describe.scm
+++ b/guix/describe.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018-2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +27,7 @@
sexp->channel
manifest-entry-channel)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-34)
#:use-module (ice-9 match)
#:export (current-profile
current-profile-date
@@ -55,20 +56,49 @@
;; later on.
(program-arguments))
+(define (find-profile program)
+ "Return the profile created by 'guix pull' or 'guix time-machine' that
+PROGRAM lives in; PROGRAM is expected to end in \"/bin/guix\". Return #f if
+such a profile could not be found."
+ (and (string-suffix? "/bin/guix" program)
+ ;; Note: We want to do _lexical dot-dot resolution_. Using ".." for
+ ;; real would instead take us into the /gnu/store directory that
+ ;; ~/.config/guix/current/bin points to, whereas we want to obtain
+ ;; ~/.config/guix/current.
+ (let ((candidate (dirname (dirname program))))
+ (and (file-exists? (string-append candidate "/manifest"))
+ (let ((manifest (guard (c ((profile-error? c) #f))
+ (profile-manifest candidate))))
+ (define (fallback)
+ (or (and=> (false-if-exception (readlink program))
+ find-profile)
+ (and=> (false-if-exception (readlink (dirname program)))
+ (lambda (target)
+ (find-profile (in-vicinity target "guix"))))))
+
+ ;; Is CANDIDATE the "right" profile--the one created by 'guix
+ ;; pull'? It might be that CANDIDATE itself contains a
+ ;; symlink to the "right" profile; this happens for instance
+ ;; when using 'guix shell -CW'. Thus, if CANDIDATE doesn't
+ ;; fit the bill, dereference PROGRAM or its parent directory
+ ;; and try again.
+ (match (and manifest
+ (manifest-lookup manifest
+ (manifest-pattern (name "guix"))))
+ (#f
+ (fallback))
+ (entry
+ (if (assq 'source (manifest-entry-properties entry))
+ candidate
+ (fallback)))))))))
+
(define current-profile
(mlambda ()
"Return the profile (created by 'guix pull') the calling process lives in,
or #f if this is not applicable."
(match initial-program-arguments
((program . _)
- (and (string-suffix? "/bin/guix" program)
- ;; Note: We want to do _lexical dot-dot resolution_. Using ".."
- ;; for real would instead take us into the /gnu/store directory
- ;; that ~/.config/guix/current/bin points to, whereas we want to
- ;; obtain ~/.config/guix/current.
- (let ((candidate (dirname (dirname program))))
- (and (file-exists? (string-append candidate "/manifest"))
- candidate)))))))
+ (find-profile program)))))
(define (current-profile-date)
"Return the creation date of the current profile (produced by 'guix pull'),
diff --git a/guix/download.scm b/guix/download.scm
index 21d02ab203..3dfe143e9f 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
@@ -35,9 +35,9 @@
#:use-module (web uri)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
- #:export (%mirrors
+ #:export (%download-methods
+ %mirrors
%disarchive-mirrors
- %download-fallback-test
(url-fetch* . url-fetch)
url-fetch/executable
url-fetch/tarbomb
@@ -434,10 +434,19 @@
(define built-in-builders*
(store-lift built-in-builders))
+(define %download-methods
+ ;; Either #f (the default) or a list of symbols denoting the sequence of
+ ;; download methods to be used--e.g., '(swh nar upstream).
+ (make-parameter
+ (and=> (getenv "GUIX_DOWNLOAD_METHODS")
+ (lambda (str)
+ (map string->symbol (string-tokenize str))))))
+
(define* (built-in-download file-name url
#:key system hash-algo hash
mirrors content-addressed-mirrors
disarchive-mirrors
+ (download-methods (%download-methods))
executable?
(guile 'unused))
"Download FILE-NAME from URL using the built-in 'download' builder. When
@@ -471,6 +480,11 @@ download by itself using its own dependencies."
("disarchive-mirrors" . ,disarchive-mirrors)
,@(if executable?
'(("executable" . "1"))
+ '())
+ ,@(if download-methods
+ `(("download-methods"
+ . ,(object->string
+ download-methods)))
'()))
;; Do not offload this derivation because we cannot be
@@ -479,24 +493,6 @@ download by itself using its own dependencies."
;; for that built-in is widespread.
#:local-build? #t)))
-(define %download-fallback-test
- ;; Define whether to test one of the download fallback mechanism. Possible
- ;; values are:
- ;;
- ;; - #f, to use the normal download methods, not trying to exercise the
- ;; fallback mechanism;
- ;;
- ;; - 'none, to disable all the fallback mechanisms;
- ;;
- ;; - 'content-addressed-mirrors, to purposefully attempt to download from
- ;; a content-addressed mirror;
- ;;
- ;; - 'disarchive-mirrors, to download from Disarchive + Software Heritage.
- ;;
- ;; This is meant to be used for testing purposes.
- (make-parameter (and=> (getenv "GUIX_DOWNLOAD_FALLBACK_TEST")
- string->symbol)))
-
(define* (url-fetch* url hash-algo hash
#:optional name
#:key (system (%current-system))
@@ -532,10 +528,7 @@ name in the store."
(unless (member "download" builtins)
(error "'guix-daemon' is too old, please upgrade" builtins))
- (built-in-download (or name file-name)
- (match (%download-fallback-test)
- ((or #f 'none) url)
- (_ "https://example.org/does-not-exist"))
+ (built-in-download (or name file-name) url
#:guile guile
#:system system
#:hash-algo hash-algo
@@ -543,15 +536,9 @@ name in the store."
#:executable? executable?
#:mirrors %mirror-file
#:content-addressed-mirrors
- (match (%download-fallback-test)
- ((or #f 'content-addressed-mirrors)
- %content-addressed-mirror-file)
- (_ %no-mirrors-file))
+ %content-addressed-mirror-file
#:disarchive-mirrors
- (match (%download-fallback-test)
- ((or #f 'disarchive-mirrors)
- %disarchive-mirror-file)
- (_ %no-disarchive-mirrors-file)))))))
+ %disarchive-mirror-file)))))
(define* (url-fetch/executable url hash-algo hash
#:optional name
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 1adb079de6..015e7f8962 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -29,8 +29,8 @@
#:use-module (guix packages)
#:use-module (guix modules)
#:use-module ((guix derivations) #:select (raw-derivation))
+ #:autoload (guix download) (%download-methods)
#:autoload (guix build-system gnu) (standard-packages)
- #:autoload (guix download) (%download-fallback-test)
#:autoload (git bindings) (libgit2-init!)
#:autoload (git repository) (repository-open
repository-close!
@@ -172,11 +172,7 @@ respective documentation."
;; downloads.
#:script-name "git-download"
#:env-vars
- `(("git url" . ,(match (%download-fallback-test)
- ('content-addressed-mirrors
- "https://example.org/does-not-exist")
- (_
- (git-reference-url ref))))
+ `(("git url" . ,(git-reference-url ref))
("git commit" . ,(git-reference-commit ref))
("git recursive?" . ,(object->string
(git-reference-recursive? ref)))
@@ -238,14 +234,14 @@ download by itself using its own dependencies."
#:recursive? #t
#:env-vars
`(("url" . ,(object->string
- (match (%download-fallback-test)
- ('content-addressed-mirrors
- "https://example.org/does-not-exist")
- (_
- (git-reference-url ref)))))
+ (git-reference-url ref)))
("commit" . ,(git-reference-commit ref))
("recursive?" . ,(object->string
- (git-reference-recursive? ref))))
+ (git-reference-recursive? ref)))
+ ,@(if (%download-methods)
+ `(("download-methods"
+ . ,(object->string (%download-methods))))
+ '()))
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"
"COLUMNS")
diff --git a/guix/hg-download.scm b/guix/hg-download.scm
index 6d02de47e4..55d908817f 100644
--- a/guix/hg-download.scm
+++ b/guix/hg-download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2017, 2019, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;;
@@ -84,6 +84,7 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define modules
(delete '(guix config)
(source-module-closure '((guix build hg)
+ (guix build download)
(guix build download-nar)
(guix swh)))))
@@ -94,6 +95,8 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
#~(begin
(use-modules (guix build hg)
(guix build utils) ;for `set-path-environment-variable'
+ ((guix build download)
+ #:select (download-method-enabled?))
(guix build download-nar)
(guix swh)
(ice-9 match))
@@ -106,26 +109,35 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(setvbuf (current-output-port) 'line)
(setvbuf (current-error-port) 'line)
- (or (hg-fetch '#$(hg-reference-url ref)
- '#$(hg-reference-changeset ref)
- #$output
- #:hg-command (string-append #+hg "/bin/hg"))
- (download-nar #$output)
+ (or (and (download-method-enabled? 'upstream)
+ (hg-fetch '#$(hg-reference-url ref)
+ '#$(hg-reference-changeset ref)
+ #$output
+ #:hg-command (string-append #+hg "/bin/hg")))
+ (and (download-method-enabled? 'nar)
+ (download-nar #$output))
;; As a last resort, attempt to download from Software Heritage.
;; Disable X.509 certificate verification to avoid depending
;; on nss-certs--we're authenticating the checkout anyway.
- (parameterize ((%verify-swh-certificate? #f))
- (format (current-error-port)
- "Trying to download from Software Heritage...~%")
- (swh-download #$(hg-reference-url ref)
- #$(hg-reference-changeset ref)
- #$output)))))))
+ (and (download-method-enabled? 'swh)
+ (parameterize ((%verify-swh-certificate? #f))
+ (format (current-error-port)
+ "Trying to download from Software Heritage...~%")
+ (or (swh-download-directory-by-nar-hash
+ #$hash '#$hash-algo #$output)
+ (swh-download #$(hg-reference-url ref)
+ #$(hg-reference-changeset ref)
+ #$output)))))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "hg-checkout") build
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"
"COLUMNS")
+ #:env-vars (match (getenv "GUIX_DOWNLOAD_METHODS")
+ (#f '())
+ (value
+ `(("GUIX_DOWNLOAD_METHODS" . ,value))))
#:system system
#:local-build? #t ;don't offload repo cloning
#:hash-algo hash-algo
diff --git a/guix/lint.scm b/guix/lint.scm
index c95de85e69..68d532968d 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -67,6 +67,10 @@
svn-multi-reference-url
svn-multi-reference-user-name
svn-multi-reference-password)
+ #:autoload (guix hg-download) (hg-reference?
+ hg-reference-url)
+ #:autoload (guix bzr-download) (bzr-reference?
+ bzr-reference-url)
#:use-module (guix import stackage)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
@@ -84,10 +88,10 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-6) ;Unicode string ports
#:use-module (srfi srfi-9)
- #:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
+ #:use-module (srfi srfi-71)
#:use-module (ice-9 rdelim)
#:export (check-description-style
check-inputs-should-be-native
@@ -823,8 +827,8 @@ for connections to complete; when TIMEOUT is #f, wait as long as needed."
;; Return RESPONSE, unless the final response as we follow
;; redirects is not 200.
(if location
- (let-values (((status response2)
- (loop location (cons location visited))))
+ (let ((status response2 (loop location
+ (cons location visited))))
(case status
((http-response)
(values 'http-response
@@ -926,8 +930,7 @@ display a message including MESSAGE and return ERROR-VALUE."
(define (validate-uri uri package field)
"Return #t if the given URI can be reached, otherwise return a warning for
PACKAGE mentioning the FIELD."
- (let-values (((status argument)
- (probe-uri uri #:timeout 3))) ;wait at most 3 seconds
+ (let ((status argument (probe-uri uri #:timeout 3))) ;wait at most 3 seconds
(case status
((http-response)
(cond ((= 200 (response-code argument))
@@ -1633,6 +1636,69 @@ directory identifiers the spec refers to. Otherwise return #f."
(extract-swh-id spec)))))
%disarchive-mirrors))
+(define (swh-response->warning package url method response)
+ "Given RESPONSE, the response of METHOD on URL, return a suitable warning
+list for PACKAGE."
+ (if (request-rate-limit-reached? url method)
+ (list (make-warning package
+ (G_ "Software Heritage rate limit reached; \
+try again later")
+ #:field 'source))
+ (list (make-warning package
+ (G_ "'~a' returned ~a")
+ (list url (response-code response))
+ #:field 'source))))
+
+(define (vcs-origin origin)
+ "Return two values: the URL and type (a string) of the version-control used
+for ORIGIN. Return #f and #f if ORIGIN is not a version-control checkout."
+ (match (and=> origin origin-uri)
+ ((? git-reference? ref)
+ (values (git-reference-url ref) "git"))
+ ((? svn-reference? ref)
+ (values (svn-reference-url ref) "svn"))
+ ((? svn-multi-reference? ref)
+ (values (svn-multi-reference-url ref) "svn"))
+ ((? hg-reference? ref)
+ (values (hg-reference-url ref) "hg"))
+ ((? bzr-reference? ref)
+ (values (bzr-reference-url ref) "bzr"))
+ ;; XXX: Not sure what to do with the weird CVS URIs (:pserver: etc.).
+ (_
+ (values #f #f))))
+
+(define (save-package-source package)
+ "Attempt to save the source of PACKAGE on SWH. Return a list of warnings."
+ (let* ((origin (package-source package))
+ (url type (if origin (vcs-origin origin) (values #f #f))))
+ (cond ((and url type)
+ (catch 'swh-error
+ (lambda ()
+ (save-origin url type)
+ (list (make-warning
+ package
+ ;; TRANSLATORS: "Software Heritage" is a proper noun that
+ ;; must remain untranslated. See
+ ;; <https://www.softwareheritage.org>.
+ (G_ "scheduled Software Heritage archival")
+ #:field 'source)))
+ (lambda (key url method response . _)
+ (cond ((= 429 (response-code response))
+ (list (make-warning
+ package
+ (G_ "archival rate limit exceeded; \
+try again later")
+ #:field 'source)))
+ (else
+ (swh-response->warning package url method response))))))
+ ((not origin)
+ '())
+ (else
+ (list (make-warning
+ package
+ (G_ "source code cannot be archived")
+ #:field 'source))))))
+
(define (check-archival package)
"Check whether PACKAGE's source code is archived on Software Heritage. If
it's not, and if its source code is a VCS snapshot, then send a \"save\"
@@ -1641,17 +1707,6 @@ request to Software Heritage.
Software Heritage imposes limits on the request rate per client IP address.
This checker prints a notice and stops doing anything once that limit has been
reached."
- (define (response->warning url method response)
- (if (request-rate-limit-reached? url method)
- (list (make-warning package
- (G_ "Software Heritage rate limit reached; \
-try again later")
- #:field 'source))
- (list (make-warning package
- (G_ "'~a' returned ~a")
- (list url (response-code response))
- #:field 'source))))
-
(define skip-key (gensym "skip-archival-check"))
(define (skip-when-limit-reached url method)
@@ -1686,28 +1741,8 @@ try again later")
'())
(#f
;; Revision is missing from the archive, attempt to save it.
- (catch 'swh-error
- (lambda ()
- (save-origin (git-reference-url reference) "git")
- (list (make-warning
- package
- ;; TRANSLATORS: "Software Heritage" is a proper noun
- ;; that must remain untranslated. See
- ;; <https://www.softwareheritage.org>.
- (G_ "scheduled Software Heritage archival")
- #:field 'source)))
- (lambda (key url method response . _)
- (cond ((= 429 (response-code response))
- (list (make-warning
- package
- (G_ "archival rate limit exceeded; \
-try again later")
- #:field 'source)))
- (else
- (response->warning url method response))))))))
+ (save-package-source package))))
((? origin? origin)
- ;; Since "save" origins are not supported for non-VCS source, all
- ;; we can do is tell whether a given tarball is available or not.
(if (and=> (origin-hash origin) ;XXX: for ungoogled-chromium
content-hash-value) ;& icecat
(let ((hash (origin-hash origin)))
@@ -1716,27 +1751,31 @@ try again later")
(symbol->string
(content-hash-algorithm hash))))
(#f
- ;; If SWH doesn't have HASH as is, it may be because it's
- ;; a hand-crafted tarball. In that case, check whether
- ;; the Disarchive database has an entry for that tarball.
- (match (lookup-disarchive-spec hash)
- (#f
- (list (make-warning package
- (G_ "source not archived on Software \
+ ;; If ORIGIN is a version-control checkout, save it now.
+ ;; If not, check whether HASH is in the Disarchive
+ ;; database ("Save Code Now" does not accept tarballs).
+ (if (vcs-origin origin)
+ (save-package-source package)
+ (match (lookup-disarchive-spec hash)
+ (#f
+ (list (make-warning package
+ (G_ "source not archived on Software \
Heritage and missing from the Disarchive database")
- #:field 'source)))
- (directory-ids
- (match (find (lambda (id)
- (not (lookup-directory id)))
- directory-ids)
- (#f '())
- (id
- (list (make-warning package
- (G_ "\
+ #:field 'source)))
+ (directory-ids
+ (match (find (lambda (id)
+ (not (lookup-directory id)))
+ directory-ids)
+ (#f '())
+ (id
+ (list (make-warning package
+ (G_ "\
Disarchive entry refers to non-existent SWH directory '~a'")
- (list id)
- #:field 'source)))))))
+ (list id)
+ #:field 'source))))))))
((? content?)
+ '())
+ ((? string? swhid)
'())))
'()))
((? local-file?)
@@ -1748,7 +1787,7 @@ source is not an origin, it cannot be archived")
#:field 'source)))))
(match-lambda*
(('swh-error url method response)
- (response->warning url method response))
+ (swh-response->warning package url method response))
((key . args)
(if (eq? key skip-key)
'()
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 7fa5dab62a..5d3dd59211 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
@@ -652,6 +652,8 @@ denoting a specific output of a package."
vlist-null)))
(_
(raise (condition
+ (&profile-error
+ (profile (and=> (source-property sexp 'filename) dirname)))
(&message (message "unsupported manifest format")))))))
(define (read-manifest port)
diff --git a/guix/scripts/git/authenticate.scm b/guix/scripts/git/authenticate.scm
index 6ff5cee682..def4879e96 100644
--- a/guix/scripts/git/authenticate.scm
+++ b/guix/scripts/git/authenticate.scm
@@ -101,6 +101,8 @@ Authenticate the given Git checkout using COMMIT/SIGNER as its introduction.\n")
-k, --keyring=REFERENCE
load keyring from REFERENCE, a Git branch"))
(display (G_ "
+ --end=COMMIT authenticate revisions up to COMMIT"))
+ (display (G_ "
--stats display commit signing statistics upon completion"))
(display (G_ "
--cache-key=KEY cache authenticated commits under KEY"))
diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm
index e7eb3b2a1f..5079d0ea71 100644
--- a/guix/scripts/perform-download.scm
+++ b/guix/scripts/perform-download.scm
@@ -21,7 +21,7 @@
#:use-module (guix scripts)
#:use-module (guix derivations)
#:use-module ((guix store) #:select (derivation-path? store-path?))
- #:autoload (guix build download) (url-fetch)
+ #:autoload (guix build download) (%download-methods url-fetch)
#:autoload (guix build git) (git-fetch-with-fallback)
#:autoload (guix config) (%git)
#:use-module (ice-9 match)
@@ -55,7 +55,8 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
(executable "executable")
(mirrors "mirrors")
(content-addressed-mirrors "content-addressed-mirrors")
- (disarchive-mirrors "disarchive-mirrors"))
+ (disarchive-mirrors "disarchive-mirrors")
+ (download-methods "download-methods"))
(unless url
(leave (G_ "~a: missing URL~%") (derivation-file-name drv)))
@@ -64,26 +65,30 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
(algo (derivation-output-hash-algo drv-output))
(hash (derivation-output-hash drv-output)))
;; We're invoked by the daemon, which gives us write access to OUTPUT.
- (when (url-fetch url output
- #:print-build-trace? print-build-trace?
- #:mirrors (if mirrors
- (call-with-input-file mirrors read)
- '())
- #:content-addressed-mirrors
- (if content-addressed-mirrors
- (call-with-input-file content-addressed-mirrors
- (lambda (port)
- (eval (read port) %user-module)))
- '())
- #:disarchive-mirrors
- (if disarchive-mirrors
- (call-with-input-file disarchive-mirrors read)
- '())
- #:hashes `((,algo . ,hash))
-
- ;; Since DRV's output hash is known, X.509 certificate
- ;; validation is pointless.
- #:verify-certificate? #f)
+ (when (parameterize ((%download-methods
+ (and download-methods
+ (call-with-input-string download-methods
+ read))))
+ (url-fetch url output
+ #:print-build-trace? print-build-trace?
+ #:mirrors (if mirrors
+ (call-with-input-file mirrors read)
+ '())
+ #:content-addressed-mirrors
+ (if content-addressed-mirrors
+ (call-with-input-file content-addressed-mirrors
+ (lambda (port)
+ (eval (read port) %user-module)))
+ '())
+ #:disarchive-mirrors
+ (if disarchive-mirrors
+ (call-with-input-file disarchive-mirrors read)
+ '())
+ #:hashes `((,algo . ,hash))
+
+ ;; Since DRV's output hash is known, X.509 certificate
+ ;; validation is pointless.
+ #:verify-certificate? #f))
(when (and executable (string=? executable "1"))
(chmod output #o755))))))
@@ -96,7 +101,8 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
'bmRepair' builds."
(derivation-let drv ((url "url")
(commit "commit")
- (recursive? "recursive?"))
+ (recursive? "recursive?")
+ (download-methods "download-methods"))
(unless url
(leave (G_ "~a: missing Git URL~%") (derivation-file-name drv)))
(unless commit
@@ -114,11 +120,18 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
;; on ambient authority, hence the PATH value below.
(setenv "PATH" "/run/current-system/profile/bin:/bin:/usr/bin")
- (git-fetch-with-fallback url commit output
- #:hash hash
- #:hash-algorithm algo
- #:recursive? recursive?
- #:git-command %git))))
+ (parameterize ((%download-methods
+ (and download-methods
+ (call-with-input-string download-methods
+ read))))
+ ;; Note: When doing a '--check' build, DRV-OUTPUT and OUTPUT are
+ ;; different, hence the #:item argument below.
+ (git-fetch-with-fallback url commit output
+ #:hash hash
+ #:hash-algorithm algo
+ #:recursive? recursive?
+ #:item (derivation-output-path drv-output)
+ #:git-command %git)))))
(define (assert-low-privileges)
(when (zero? (getuid))
diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm
index ff6242ffb4..9418060158 100644
--- a/guix/scripts/system/reconfigure.scm
+++ b/guix/scripts/system/reconfigure.scm
@@ -194,7 +194,8 @@ services as defined by OS."
(filter live-service-running live-services)))
(to-start (lset-difference eqv?
(map shepherd-service-canonical-name
- target-services)
+ (filter shepherd-service-auto-start?
+ target-services))
running))
(service-files (map shepherd-service-file target-services)))
(eval #~(parameterize ((current-warning-port (%make-void-port "w")))
diff --git a/guix/scripts/time-machine.scm b/guix/scripts/time-machine.scm
index 2c30fe7cfd..d9ce85df84 100644
--- a/guix/scripts/time-machine.scm
+++ b/guix/scripts/time-machine.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Konrad Hinsen <konrad.hinsen@fastmail.net>
-;;; Copyright © 2019, 2020, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019-2021, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
@@ -147,7 +147,7 @@ Execute COMMAND ARGS... in an older version of Guix.\n"))
;;; firmed up in v1.0.0; it is the oldest, safest commit that can be travelled
;;; to.
(define %oldest-possible-commit
- "6298c3ffd9654d3231a6f25390b056483e8f407c") ;v1.0.0
+ "4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c") ;v0.16.0
(define %reference-channels
(list (channel (inherit %default-guix-channel)
diff --git a/guix/svn-download.scm b/guix/svn-download.scm
index c6688908de..17a7f4f957 100644
--- a/guix/svn-download.scm
+++ b/guix/svn-download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2016, 2019, 2021-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2016, 2019, 2021-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;;
@@ -93,25 +93,36 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define build
(with-imported-modules
(source-module-closure '((guix build svn)
+ (guix build download)
(guix build download-nar)
- (guix build utils)))
+ (guix build utils)
+ (guix swh)))
(with-extensions (list guile-json guile-gnutls ;for (guix swh)
guile-lzlib)
#~(begin
(use-modules (guix build svn)
+ ((guix build download)
+ #:select (download-method-enabled?))
(guix build download-nar)
+ (guix swh)
(ice-9 match))
- (or (svn-fetch (getenv "svn url")
- (string->number (getenv "svn revision"))
- #$output
- #:svn-command #+(file-append svn "/bin/svn")
- #:recursive? (match (getenv "svn recursive?")
- ("yes" #t)
- (_ #f))
- #:user-name (getenv "svn user name")
- #:password (getenv "svn password"))
- (download-nar #$output))))))
+ (or (and (download-method-enabled? 'upstream)
+ (svn-fetch (getenv "svn url")
+ (string->number (getenv "svn revision"))
+ #$output
+ #:svn-command #+(file-append svn "/bin/svn")
+ #:recursive? (match (getenv "svn recursive?")
+ ("yes" #t)
+ (_ #f))
+ #:user-name (getenv "svn user name")
+ #:password (getenv "svn password")))
+ (and (download-method-enabled? 'nar)
+ (download-nar #$output))
+ (and (download-method-enabled? 'swh)
+ (parameterize ((%verify-swh-certificate? #f))
+ (swh-download-directory-by-nar-hash #$hash '#$hash-algo
+ #$output))))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "svn-checkout") build
@@ -134,7 +145,11 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
,@(if (svn-reference-password ref)
`(("svn password"
. ,(svn-reference-password ref)))
- '()))
+ '())
+ ,@(match (getenv "GUIX_DOWNLOAD_METHODS")
+ (#f '())
+ (value
+ `(("GUIX_DOWNLOAD_METHODS" . ,value)))))
#:system system
#:hash-algo hash-algo
@@ -173,14 +188,19 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define build
(with-imported-modules
(source-module-closure '((guix build svn)
+ (guix build download)
(guix build download-nar)
- (guix build utils)))
+ (guix build utils)
+ (guix swh)))
(with-extensions (list guile-json guile-gnutls ;for (guix swh)
guile-lzlib)
#~(begin
(use-modules (guix build svn)
(guix build utils)
+ ((guix build download)
+ #:select (download-method-enabled?))
(guix build download-nar)
+ (guix swh)
(srfi srfi-1)
(ice-9 match))
@@ -190,23 +210,33 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
;; single file.
(unless (string-suffix? "/" location)
(mkdir-p (string-append #$output "/" (dirname location))))
- (svn-fetch (string-append (getenv "svn url") "/" location)
- (string->number (getenv "svn revision"))
- (if (string-suffix? "/" location)
- (string-append #$output "/" location)
- (string-append #$output "/" (dirname location)))
- #:svn-command #+(file-append svn "/bin/svn")
- #:recursive? (match (getenv "svn recursive?")
- ("yes" #t)
- (_ #f))
- #:user-name (getenv "svn user name")
- #:password (getenv "svn password")))
+ (and (download-method-enabled? 'upstream)
+ (svn-fetch (string-append (getenv "svn url") "/" location)
+ (string->number (getenv "svn revision"))
+ (if (string-suffix? "/" location)
+ (string-append #$output "/" location)
+ (string-append #$output "/" (dirname location)))
+ #:svn-command #+(file-append svn "/bin/svn")
+ #:recursive? (match (getenv "svn recursive?")
+ ("yes" #t)
+ (_ #f))
+ #:user-name (getenv "svn user name")
+ #:password (getenv "svn password"))))
(call-with-input-string (getenv "svn locations")
read))
(begin
(when (file-exists? #$output)
(delete-file-recursively #$output))
- (download-nar #$output)))))))
+ (or (and (download-method-enabled? 'nar)
+ (download-nar #$output))
+ (and (download-method-enabled? 'swh)
+ ;; SWH keeps HASH as an ExtID for the combination
+ ;; of files/directories, which allows us to
+ ;; retrieve the entire combination at once:
+ ;; <https://gitlab.softwareheritage.org/swh/infra/sysadm-environment/-/issues/5263>.
+ (parameterize ((%verify-swh-certificate? #f))
+ (swh-download-directory-by-nar-hash
+ #$hash '#$hash-algo #$output))))))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "svn-checkout") build
@@ -231,7 +261,11 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
,@(if (svn-multi-reference-password ref)
`(("svn password"
. ,(svn-multi-reference-password ref)))
- '()))
+ '())
+ ,@(match (getenv "GUIX_DOWNLOAD_METHODS")
+ (#f '())
+ (value
+ `(("GUIX_DOWNLOAD_METHODS" . ,value)))))
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"
diff --git a/guix/swh.scm b/guix/swh.scm
index 04cecd854c..f602cd89d1 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -54,6 +54,7 @@
visit-snapshot-url
visit-status
visit-number
+ visit-type
visit-snapshot
snapshot?
@@ -312,6 +313,7 @@ FALSE-IF-404? is true, return #f upon 404 responses."
(url visit-url "origin_visit_url")
(snapshot-url visit-snapshot-url "snapshot_url" string*) ;string | #f
(status visit-status "status" string->symbol) ;'full | 'partial | 'ongoing
+ (type visit-type "type" string->symbol) ;'git | 'git-checkout | ...
(number visit-number "visit"))
;; <https://archive.softwareheritage.org/api/1/snapshot/4334c3ed4bb208604ed780d8687fe523837f1bd1/>
@@ -472,10 +474,11 @@ and use of ALGORITHM."
hash)
external-id-target))
-(define (origin-visits origin)
- "Return the list of visits of ORIGIN, a record as returned by
-'lookup-origin'."
- (call (swh-url (origin-visits-url origin))
+(define* (origin-visits origin #:optional (max 10))
+ "Return the list of the up to MAX latest visits of ORIGIN, a record as
+returned by 'lookup-origin'."
+ (call (string-append (swh-url (origin-visits-url origin))
+ "?per_page=" (number->string max))
(lambda (port)
(map json->visit (vector->list (json->scm port))))))
@@ -513,14 +516,20 @@ could not be found."
(_ #f)))))
(define (branch-target branch)
- "Return the target of BRANCH, either a <revision> or a <release>."
+ "Return the target of BRANCH: a <revision>, a <release>, or the SWHID of a
+directory."
(match (branch-target-type branch)
('release
(call (swh-url (branch-target-url branch))
json->release))
('revision
(call (swh-url (branch-target-url branch))
- json->revision))))
+ json->revision))
+ ((or 'directory 'alias)
+ (match (string-tokenize (branch-target-url branch)
+ (char-set-complement (char-set #\/)))
+ ((_ ... "directory" id)
+ (string-append "swh:1:dir:" id))))))
(define (lookup-origin-revision url tag)
"Return a <revision> corresponding to the given TAG for the repository
@@ -534,31 +543,31 @@ URL could not be found."
(match (lookup-origin url)
(#f #f)
(origin
- (match (filter (lambda (visit)
- ;; Return #f if (visit-snapshot VISIT) would return #f.
- (and (visit-snapshot-url visit)
- (eq? 'full (visit-status visit))))
- (origin-visits origin))
- ((visit . _)
- (let ((snapshot (visit-snapshot visit)))
- (match (and=> (find (lambda (branch)
- (or
- ;; Git specific.
- (string=? (string-append "refs/tags/" tag)
- (branch-name branch))
- ;; Hg specific.
- (string=? tag
- (branch-name branch))))
- (snapshot-branches snapshot))
- branch-target)
- ((? release? release)
- (release-target release))
- ((? revision? revision)
- revision)
- (#f ;tag not found
- #f))))
- (()
- #f)))))
+ (any (lambda (visit)
+ (and (visit-snapshot-url visit)
+ (eq? 'full (visit-status visit))
+ (let ((snapshot (visit-snapshot visit)))
+ (match (and=> (find (lambda (branch)
+ (or
+ ;; Git specific.
+ (string=? (string-append "refs/tags/" tag)
+ (branch-name branch))
+ ;; Hg specific.
+ (string=? tag
+ (branch-name branch))))
+ (snapshot-branches snapshot))
+ branch-target)
+ ((? release? release)
+ (release-target release))
+ ((? revision? revision)
+ revision)
+ (_
+ ;; Either the branch points to a directory rather than
+ ;; a revision (this is the case for visits of type
+ ;; 'git-checkout, 'hg-checkout, 'tarball-directory,
+ ;; etc.), or TAG was not found.
+ #f)))))
+ (origin-visits origin 30)))))
(define (release-target release)
"Return the revision that is the target of RELEASE."
diff --git a/guix/transformations.scm b/guix/transformations.scm
index 132ccd957a..f02b9f94d6 100644
--- a/guix/transformations.scm
+++ b/guix/transformations.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2016-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Sarthak Shah <shahsarthakw@gmail.com>
-;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2023 Ekaitz Zarraga <ekaitz@elenq.tech>
;;;
;;; This file is part of GNU Guix.
@@ -499,6 +499,10 @@ actual compiler."
"-Dcpu="
(string-replace-substring
#$micro-architecture "-" "_"))))
+ ((and (search-next "rustc")
+ (string=? next (search-next "rustc")))
+ (list "-C" (string-append "target_cpu="
+ #$micro-architecture)))
(else
(list (string-append "-march="
#$micro-architecture))))))))))))
@@ -519,7 +523,7 @@ actual compiler."
(symlink #$program
(string-append bin "/" program)))
'("cc" "gcc" "clang" "g++" "c++" "clang++"
- "go" "zig")))))))
+ "go" "rustc" "zig")))))))
(define (build-system-with-tuning-compiler bs micro-architecture)
"Return a variant of BS, a build system, that ensures that the compiler that
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index 461fcbc584..d23c0944a4 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -1382,6 +1382,23 @@ void DerivationGoal::buildDone()
% drvPath % statusToString(status));
}
+ if (fixedOutput) {
+ /* Replace the output, if it exists, by a fresh copy of itself to
+ make sure that there's no stale file descriptor pointing to it
+ (CVE-2024-27297). */
+ foreach (DerivationOutputs::iterator, i, drv.outputs) {
+ Path output = chrootRootDir + i->second.path;
+ if (pathExists(output)) {
+ Path pivot = output + ".tmp";
+ copyFileRecursively(output, pivot, true);
+ int err = rename(pivot.c_str(), output.c_str());
+ if (err != 0)
+ throw SysError(format("renaming `%1%' to `%2%'")
+ % pivot % output);
+ }
+ }
+ }
+
/* Compute the FS closure of the outputs and register them as
being valid. */
registerOutputs();
diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc
index 82eac72120..578d657293 100644
--- a/nix/libutil/util.cc
+++ b/nix/libutil/util.cc
@@ -215,14 +215,11 @@ bool isLink(const Path & path)
}
-DirEntries readDirectory(const Path & path)
+static DirEntries readDirectory(DIR *dir)
{
DirEntries entries;
entries.reserve(64);
- AutoCloseDir dir = opendir(path.c_str());
- if (!dir) throw SysError(format("opening directory `%1%'") % path);
-
struct dirent * dirent;
while (errno = 0, dirent = readdir(dir)) { /* sic */
checkInterrupt();
@@ -230,11 +227,29 @@ DirEntries readDirectory(const Path & path)
if (name == "." || name == "..") continue;
entries.emplace_back(name, dirent->d_ino, dirent->d_type);
}
- if (errno) throw SysError(format("reading directory `%1%'") % path);
+ if (errno) throw SysError(format("reading directory"));
return entries;
}
+DirEntries readDirectory(const Path & path)
+{
+ AutoCloseDir dir = opendir(path.c_str());
+ if (!dir) throw SysError(format("opening directory `%1%'") % path);
+ return readDirectory(dir);
+}
+
+static DirEntries readDirectory(int fd)
+{
+ /* Since 'closedir' closes the underlying file descriptor, duplicate FD
+ beforehand. */
+ int fdcopy = dup(fd);
+ if (fdcopy < 0) throw SysError("dup");
+
+ AutoCloseDir dir = fdopendir(fdcopy);
+ if (!dir) throw SysError(format("opening directory from file descriptor `%1%'") % fd);
+ return readDirectory(dir);
+}
unsigned char getFileType(const Path & path)
{
@@ -364,6 +379,97 @@ void deletePath(const Path & path, unsigned long long & bytesFreed, size_t linkT
_deletePath(path, bytesFreed, linkThreshold);
}
+static void copyFile(int sourceFd, int destinationFd)
+{
+ struct stat st;
+ if (fstat(sourceFd, &st) == -1) throw SysError("statting file");
+
+ ssize_t result = copy_file_range(sourceFd, NULL, destinationFd, NULL, st.st_size, 0);
+ if (result < 0 && errno == ENOSYS) {
+ for (size_t remaining = st.st_size; remaining > 0; ) {
+ unsigned char buf[8192];
+ size_t count = std::min(remaining, sizeof buf);
+
+ readFull(sourceFd, buf, count);
+ writeFull(destinationFd, buf, count);
+ remaining -= count;
+ }
+ } else {
+ if (result < 0)
+ throw SysError(format("copy_file_range `%1%' to `%2%'") % sourceFd % destinationFd);
+ if (result < st.st_size)
+ throw SysError(format("short write in copy_file_range `%1%' to `%2%'")
+ % sourceFd % destinationFd);
+ }
+}
+
+static void copyFileRecursively(int sourceroot, const Path &source,
+ int destinationroot, const Path &destination,
+ bool deleteSource)
+{
+ struct stat st;
+ if (fstatat(sourceroot, source.c_str(), &st, AT_SYMLINK_NOFOLLOW) == -1)
+ throw SysError(format("statting file `%1%'") % source);
+
+ if (S_ISREG(st.st_mode)) {
+ AutoCloseFD sourceFd = openat(sourceroot, source.c_str(),
+ O_CLOEXEC | O_NOFOLLOW | O_RDONLY);
+ if (sourceFd == -1) throw SysError(format("opening `%1%'") % source);
+
+ AutoCloseFD destinationFd = openat(destinationroot, destination.c_str(),
+ O_CLOEXEC | O_CREAT | O_WRONLY | O_TRUNC,
+ st.st_mode);
+ if (destinationFd == -1) throw SysError(format("opening `%1%'") % source);
+
+ copyFile(sourceFd, destinationFd);
+ fchown(destinationFd, st.st_uid, st.st_gid);
+ } else if (S_ISLNK(st.st_mode)) {
+ char target[st.st_size + 1];
+ ssize_t result = readlinkat(sourceroot, source.c_str(), target, st.st_size);
+ if (result != st.st_size) throw SysError("reading symlink target");
+ target[st.st_size] = '\0';
+ int err = symlinkat(target, destinationroot, destination.c_str());
+ if (err != 0)
+ throw SysError(format("creating symlink `%1%'") % destination);
+ fchownat(destinationroot, destination.c_str(),
+ st.st_uid, st.st_gid, AT_SYMLINK_NOFOLLOW);
+ } else if (S_ISDIR(st.st_mode)) {
+ int err = mkdirat(destinationroot, destination.c_str(), 0755);
+ if (err != 0)
+ throw SysError(format("creating directory `%1%'") % destination);
+
+ AutoCloseFD destinationFd = openat(destinationroot, destination.c_str(),
+ O_CLOEXEC | O_RDONLY | O_DIRECTORY);
+ if (err != 0)
+ throw SysError(format("opening directory `%1%'") % destination);
+
+ AutoCloseFD sourceFd = openat(sourceroot, source.c_str(),
+ O_CLOEXEC | O_NOFOLLOW | O_RDONLY);
+ if (sourceFd == -1)
+ throw SysError(format("opening `%1%'") % source);
+
+ if (deleteSource && !(st.st_mode & S_IWUSR)) {
+ /* Ensure the directory writable so files within it can be
+ deleted. */
+ if (fchmod(sourceFd, st.st_mode | S_IWUSR) == -1)
+ throw SysError(format("making `%1%' directory writable") % source);
+ }
+
+ for (auto & i : readDirectory(sourceFd))
+ copyFileRecursively((int)sourceFd, i.name, (int)destinationFd, i.name,
+ deleteSource);
+ fchown(destinationFd, st.st_uid, st.st_gid);
+ } else throw Error(format("refusing to copy irregular file `%1%'") % source);
+
+ if (deleteSource)
+ unlinkat(sourceroot, source.c_str(),
+ S_ISDIR(st.st_mode) ? AT_REMOVEDIR : 0);
+}
+
+void copyFileRecursively(const Path &source, const Path &destination, bool deleteSource)
+{
+ copyFileRecursively(AT_FDCWD, source, AT_FDCWD, destination, deleteSource);
+}
static Path tempName(Path tmpRoot, const Path & prefix, bool includePid,
int & counter)
diff --git a/nix/libutil/util.hh b/nix/libutil/util.hh
index 880b0e93b2..377aac0684 100644
--- a/nix/libutil/util.hh
+++ b/nix/libutil/util.hh
@@ -102,6 +102,13 @@ void deletePath(const Path & path);
void deletePath(const Path & path, unsigned long long & bytesFreed,
size_t linkThreshold = 1);
+/* Copy SOURCE to DESTINATION, recursively, preserving ownership. Throw if
+ SOURCE contains a file that is not a regular file, symlink, or directory.
+ When DELETESOURCE is true, delete source files once they have been
+ copied. */
+void copyFileRecursively(const Path &source, const Path &destination,
+ bool deleteSource = false);
+
/* Create a temporary directory. */
Path createTempDir(const Path & tmpRoot = "", const Path & prefix = "nix",
bool includePid = true, bool useGlobalCounter = true, mode_t mode = 0755);
diff --git a/tests/guix-time-machine.sh b/tests/guix-time-machine.sh
index 983f796225..df75c681da 100644
--- a/tests/guix-time-machine.sh
+++ b/tests/guix-time-machine.sh
@@ -1,6 +1,6 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-# Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2023-2024 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -39,7 +39,7 @@ else
EXTRA_OPTIONS=""
fi
-# Visiting a commit older than v1.0.0 must fail (this test is expensive
+# Visiting a commit older than v0.16.0 must fail (this test is expensive
# because it clones the whole repository).
guix time-machine -q --commit=v0.15.0 $EXTRA_OPTIONS -- describe && false
diff --git a/tests/lint.scm b/tests/lint.scm
index 87213fcc78..95d82d7490 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -1407,6 +1407,26 @@
(check-archival (dummy-package "x" (source origin)))))))
(warning-contains? "scheduled" warnings)))
+(test-assert "archival: missing svn revision"
+ (let* ((origin (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url "http://example.org/svn/foo")
+ (revision "1234")))
+ (sha256 (make-bytevector 32))))
+ ;; https://archive.softwareheritage.org/api/1/origin/save/
+ (save "{ \"origin_url\": \"http://example.org/svn/foo\",
+ \"save_request_date\": \"2014-11-17T22:09:38+01:00\",
+ \"save_request_status\": \"accepted\",
+ \"save_task_status\": \"scheduled\" }")
+ (warnings (with-http-server `((404 "No extid.") ;lookup-directory-by-nar-hash
+ (404 "No revision.") ;lookup-revision
+ (404 "No origin.") ;lookup-origin
+ (200 ,save)) ;save-origin
+ (parameterize ((%swh-base-url (%local-url)))
+ (check-archival (dummy-package "x" (source origin)))))))
+ (warning-contains? "scheduled" warnings)))
+
(test-equal "archival: revision available"
'()
(let* ((origin (origin
diff --git a/tests/swh.scm b/tests/swh.scm
index e7ced6b50c..11dcbdddd8 100644
--- a/tests/swh.scm
+++ b/tests/swh.scm
@@ -109,6 +109,80 @@
(directory-entry-length entry)))
(lookup-directory "123"))))
+(test-equal "lookup-origin-revision"
+ '("cd86c72084993d9ef26fc9e24b73cea612b8c97b"
+ "d173c707ee88e3c89401ad77fafa65fcd9e9f5be")
+ (let ()
+ ;; Make sure that 'lookup-origin-revision' does the job, and in particular
+ ;; that it doesn't stop until it has found an actual revision:
+ ;; 'git-checkout visits point to directories instead of revisions.
+ ;; See <https://issues.guix.gnu.org/69070>.
+ (define visits
+ ;; Two visits of differing types: the first visit (type 'git-checkout')
+ ;; points to a directory, the second one (type 'git') points to a
+ ;; revision.
+ "[ {
+ \"origin\": \"https://example.org/repo.git\",
+ \"visit\": 1,
+ \"type\": \"git-checkout\",
+ \"date\": \"2020-05-17T21:43:45.422977+00:00\",
+ \"status\": \"full\",
+ \"metadata\": {},
+ \"type\": \"git-checkout\",
+ \"origin_visit_url\": \"/visit/42\",
+ \"snapshot_url\": \"/snapshot/1\"
+ }, {
+ \"origin\": \"https://example.org/repo.git\",
+ \"visit\": 2,
+ \"type\": \"git\",
+ \"date\": \"2020-05-17T21:43:49.422977+00:00\",
+ \"status\": \"full\",
+ \"metadata\": {},
+ \"type\": \"git\",
+ \"origin_visit_url\": \"/visit/41\",
+ \"snapshot_url\": \"/snapshot/2\"
+ } ]")
+ (define snapshot-for-git-checkout
+ "{ \"id\": 42,
+ \"branches\": { \"1.3.2\": {
+ \"target\": \"e4a4be18fae8d9c6528abff3bc9088feb19a76c7\",
+ \"target_type\": \"directory\",
+ \"target_url\": \"/directory/e4a4be18fae8d9c6528abff3bc9088feb19a76c7\"
+ }}
+ }")
+ (define snapshot-for-git
+ "{ \"id\": 42,
+ \"branches\": { \"1.3.2\": {
+ \"target\": \"e4a4be18fae8d9c6528abff3bc9088feb19a76c7\",
+ \"target_type\": \"revision\",
+ \"target_url\": \"/revision/e4a4be18fae8d9c6528abff3bc9088feb19a76c7\"
+ }}
+ }")
+ (define revision
+ "{ \"author\": {},
+ \"committer\": {},
+ \"committer_date\": \"2018-05-17T21:43:49.422977+00:00\",
+ \"date\": \"2018-05-17T21:43:49.422977+00:00\",
+ \"directory\": \"d173c707ee88e3c89401ad77fafa65fcd9e9f5be\",
+ \"directory_url\": \"/directory/d173c707ee88e3c89401ad77fafa65fcd9e9f5be\",
+ \"id\": \"cd86c72084993d9ef26fc9e24b73cea612b8c97b\",
+ \"merge\": false,
+ \"message\": \"Fix.\",
+ \"parents\": [],
+ \"type\": \"what type?\"
+ }")
+
+ (with-http-server `((200 ,%origin)
+ (200 ,visits)
+ (200 ,snapshot-for-git-checkout)
+ (200 ,snapshot-for-git)
+ (200 ,revision))
+ (parameterize ((%swh-base-url (%local-url)))
+ (let ((revision (lookup-origin-revision "https://example.org/repo.git"
+ "1.3.2")))
+ (list (revision-id revision)
+ (revision-directory revision)))))))
+
(test-equal "lookup-directory-by-nar-hash"
"swh:1:dir:84a8b34591712c0a90bab0af604188bcd1fe3153"
(with-json-result %external-id