aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2024-02-13 16:11:14 +0100
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2024-02-13 16:11:14 +0100
commit622df12ef389c9e91f68ae10c54c043f34828c83 (patch)
tree888542636c0717727d52a4cd56d42338601e661a
parent952c691b51f8f5d56df69686c2785414709c7949 (diff)
parent8a0910e042ad1670435613e06458a6fb2c4131c4 (diff)
downloadguix-622df12ef389c9e91f68ae10c54c043f34828c83.tar
guix-622df12ef389c9e91f68ae10c54c043f34828c83.tar.gz
Merge branch 'master' into gnome-team
-rw-r--r--doc/guix.texi139
-rw-r--r--etc/disarchive-manifest.scm4
-rwxr-xr-xetc/teams.scm13
-rw-r--r--gnu/build/marionette.scm32
-rw-r--r--gnu/build/secret-service.scm62
-rw-r--r--gnu/local.mk14
-rw-r--r--gnu/packages/admin.scm29
-rw-r--r--gnu/packages/antivirus.scm4
-rw-r--r--gnu/packages/astronomy.scm5
-rw-r--r--gnu/packages/audio.scm4
-rw-r--r--gnu/packages/backup.scm8
-rw-r--r--gnu/packages/bioconductor.scm76
-rw-r--r--gnu/packages/bioinformatics.scm34
-rw-r--r--gnu/packages/browser-extensions.scm14
-rw-r--r--gnu/packages/c.scm6
-rw-r--r--gnu/packages/check.scm1
-rw-r--r--gnu/packages/chemistry.scm175
-rw-r--r--gnu/packages/clifm.scm6
-rw-r--r--gnu/packages/clojure.scm4
-rw-r--r--gnu/packages/compression.scm4
-rw-r--r--gnu/packages/configuration-management.scm1
-rw-r--r--gnu/packages/coq.scm163
-rw-r--r--gnu/packages/cpp.scm24
-rw-r--r--gnu/packages/cran.scm221
-rw-r--r--gnu/packages/crypto.scm1
-rw-r--r--gnu/packages/curl.scm1
-rw-r--r--gnu/packages/databases.scm1
-rw-r--r--gnu/packages/debian.scm38
-rw-r--r--gnu/packages/diffoscope.scm4
-rw-r--r--gnu/packages/disk.scm1
-rw-r--r--gnu/packages/docker.scm1
-rw-r--r--gnu/packages/education.scm2
-rw-r--r--gnu/packages/elixir.scm15
-rw-r--r--gnu/packages/emacs-xyz.scm71
-rw-r--r--gnu/packages/emulators.scm14
-rw-r--r--gnu/packages/file-systems.scm190
-rw-r--r--gnu/packages/fonts.scm34
-rw-r--r--gnu/packages/fontutils.scm3
-rw-r--r--gnu/packages/fpga.scm7
-rw-r--r--gnu/packages/game-development.scm12
-rw-r--r--gnu/packages/games.scm53
-rw-r--r--gnu/packages/geo.scm86
-rw-r--r--gnu/packages/gnome.scm14
-rw-r--r--gnu/packages/gnupg.scm32
-rw-r--r--gnu/packages/golang-build.scm506
-rw-r--r--gnu/packages/golang-check.scm67
-rw-r--r--gnu/packages/golang-compression.scm144
-rw-r--r--gnu/packages/golang-crypto.scm81
-rw-r--r--gnu/packages/golang-web.scm3
-rw-r--r--gnu/packages/golang-xyz.scm612
-rw-r--r--gnu/packages/golang.scm866
-rw-r--r--gnu/packages/gps.scm5
-rw-r--r--gnu/packages/guile-xyz.scm29
-rw-r--r--gnu/packages/guile.scm24
-rw-r--r--gnu/packages/hardware.scm4
-rw-r--r--gnu/packages/haxe.scm6
-rw-r--r--gnu/packages/high-availability.scm50
-rw-r--r--gnu/packages/image-processing.scm10
-rw-r--r--gnu/packages/image-viewers.scm1
-rw-r--r--gnu/packages/ipfs.scm9
-rw-r--r--gnu/packages/irc.scm3
-rw-r--r--gnu/packages/julia-jll.scm4
-rw-r--r--gnu/packages/julia.scm12
-rw-r--r--gnu/packages/jupyter.scm8
-rw-r--r--gnu/packages/linphone.scm2
-rw-r--r--gnu/packages/linux.scm36
-rw-r--r--gnu/packages/lisp-xyz.scm48
-rw-r--r--gnu/packages/lisp.scm4
-rw-r--r--gnu/packages/llvm.scm8
-rw-r--r--gnu/packages/logging.scm5
-rw-r--r--gnu/packages/machine-learning.scm69
-rw-r--r--gnu/packages/mail.scm7
-rw-r--r--gnu/packages/maths.scm54
-rw-r--r--gnu/packages/medical.scm54
-rw-r--r--gnu/packages/messaging.scm7
-rw-r--r--gnu/packages/moe.scm5
-rw-r--r--gnu/packages/music.scm32
-rw-r--r--gnu/packages/networking.scm104
-rw-r--r--gnu/packages/node-xyz.scm26
-rw-r--r--gnu/packages/ocaml.scm854
-rw-r--r--gnu/packages/ocr.scm6
-rw-r--r--gnu/packages/package-management.scm4
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/password-utils.scm85
-rw-r--r--gnu/packages/patches/avalon-toolkit-rdkit-fixes.patch110
-rw-r--r--gnu/packages/patches/coq-fix-envvars.patch53
-rw-r--r--gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch37
-rw-r--r--gnu/packages/patches/libgeotiff-fix-tests-on-i386.patch35
-rw-r--r--gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch51
-rw-r--r--gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch40
-rw-r--r--gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch52
-rw-r--r--gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch133
-rw-r--r--gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch25
-rw-r--r--gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch9
-rw-r--r--gnu/packages/patches/rdkit-unbundle-external-dependencies.patch208
-rw-r--r--gnu/packages/patches/spdlog-fix-tests.patch26
-rw-r--r--gnu/packages/patches/tinydir-fix-cbehave-test.patch16
-rw-r--r--gnu/packages/patool.scm25
-rw-r--r--gnu/packages/pdf.scm6
-rw-r--r--gnu/packages/pretty-print.scm4
-rw-r--r--gnu/packages/python-check.scm125
-rw-r--r--gnu/packages/python-science.scm59
-rw-r--r--gnu/packages/python-web.scm5
-rw-r--r--gnu/packages/python-xyz.scm7
-rw-r--r--gnu/packages/rrdtool.scm1
-rw-r--r--gnu/packages/ruby.scm6
-rw-r--r--gnu/packages/search.scm2
-rw-r--r--gnu/packages/shellutils.scm2
-rw-r--r--gnu/packages/skarnet.scm6
-rw-r--r--gnu/packages/sssd.scm6
-rw-r--r--gnu/packages/statistics.scm31
-rw-r--r--gnu/packages/sugar.scm79
-rw-r--r--gnu/packages/syncthing.scm113
-rw-r--r--gnu/packages/terminals.scm1
-rw-r--r--gnu/packages/tex.scm4
-rw-r--r--gnu/packages/text-editors.scm26
-rw-r--r--gnu/packages/textutils.scm34
-rw-r--r--gnu/packages/tls.scm90
-rw-r--r--gnu/packages/tor-browsers.scm174
-rw-r--r--gnu/packages/toys.scm9
-rw-r--r--gnu/packages/uucp.scm2
-rw-r--r--gnu/packages/version-control.scm1
-rw-r--r--gnu/packages/video.scm2
-rw-r--r--gnu/packages/vim.scm6
-rw-r--r--gnu/packages/virtualization.scm4
-rw-r--r--gnu/packages/vpn.scm30
-rw-r--r--gnu/packages/weather.scm3
-rw-r--r--gnu/packages/web-browsers.scm4
-rw-r--r--gnu/packages/web.scm9
-rw-r--r--gnu/packages/wm.scm5
-rw-r--r--gnu/packages/xorg.scm27
-rw-r--r--gnu/services/linux.scm2
-rw-r--r--gnu/services/virtualization.scm656
-rw-r--r--gnu/system/image.scm1
-rw-r--r--gnu/system/linux-container.scm88
-rw-r--r--gnu/system/vm.scm115
-rw-r--r--gnu/tests/virtualization.scm176
-rw-r--r--guix/build-system/perl.scm4
-rw-r--r--guix/build/git.scm20
-rw-r--r--guix/git-download.scm4
-rw-r--r--guix/lint.scm30
-rw-r--r--guix/scripts/git/authenticate.scm15
-rw-r--r--guix/scripts/perform-download.scm4
-rw-r--r--guix/self.scm5
-rw-r--r--guix/swh.scm113
-rw-r--r--tests/lint.scm33
-rw-r--r--tests/swh.scm21
147 files changed, 5651 insertions, 2820 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 92d10ff6e5..67878dc525 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -1297,6 +1297,11 @@ environment variable is set to the non-existent
@file{/homeless-shelter}. This helps to highlight inappropriate uses of
@env{HOME} in the build scripts of packages.
+All this usually enough to ensure details of the environment do not
+influence build processes. In some exceptional cases where more control
+is needed---typically over the date, kernel, or CPU---you can resort to
+a virtual build machine (@pxref{build-vm, virtual build machines}).
+
You can influence the directory where the daemon stores build trees
@i{via} the @env{TMPDIR} environment variable. However, the build tree
within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0},
@@ -9850,7 +9855,7 @@ MbedTLS package:
(("generate_wrapper_header.*")
(string-append
"generate_wrapper_header(\"MbedTLS\", \""
- (assoc-ref inputs "mbedtls-apache") "\")\n"))))
+ (assoc-ref inputs "mbedtls") "\")\n"))))
;; There's a Julia file for each platform, override them all.
(find-files "src/wrappers/" "\\.jl$"))))
@end lisp
@@ -36369,6 +36374,138 @@ host. If empty, QEMU uses a default file name.
@end deftp
+@anchor{build-vm}
+@subsubheading Virtual Build Machines
+
+@cindex virtual build machines
+@cindex build VMs
+@cindex VMs, for offloading
+@dfn{Virtual build machines} or ``build VMs'' let you offload builds to
+a fully controlled environment. ``How can it be more controlled than
+regular builds? And why would it be useful?'', you ask. Good
+questions.
+
+Builds spawned by @code{guix-daemon} indeed run in a controlled
+environment; specifically the daemon spawns build processes in separate
+namespaces and in a chroot, such as that build processes only see their
+declared dependencies and a well-defined subset of the file system tree
+(@pxref{Build Environment Setup}, for details). A few aspects of the
+environments are not controlled though: the operating system kernel, the
+CPU model, and the date. Most of the time, these aspects have no impact
+on the build process: the level of isolation @code{guix-daemon} provides
+is ``good enough''.
+
+@cindex time traps
+However, there are occasionally cases where those aspects @emph{do}
+influence the build process. A typical example is @dfn{time traps}:
+build processes that stop working after a certain date@footnote{The most
+widespread example of time traps is test suites that involve checking
+the expiration date of a certificate. Such tests exists in TLS
+implementations such as OpenSSL and GnuTLS, but also in high-level
+software such as Python.}. Another one is software that optimizes for
+the CPU microarchitecture it is built on or, worse, bugs that manifest
+only on specific CPUs.
+
+To address that, @code{virtual-build-machine-service-type} lets you add
+a virtual build machine on your system, as in this example:
+
+@lisp
+(use-modules (gnu services virtualization))
+
+(operating-system
+ ;; @dots{}
+ (services (append (list (service virtual-build-machine-service-type))
+ %base-services)))
+@end lisp
+
+By default, you have to explicitly start the build machine when you need
+it, at which point builds may be offloaded to it (@pxref{Daemon Offload
+Setup}):
+
+@example
+herd start build-vm
+@end example
+
+With the default setting shown above, the build VM runs with its clock
+set to a date several years in the past, and on a CPU model that
+corresponds to that date---a model possibly older than that of your
+machine. This lets you rebuild today software from the past that would
+otherwise fail to build due to a time trap or other issues in its build
+process.
+
+You can configure the build VM, as in this example:
+
+@lisp
+(service virtual-build-machine-service-type
+ (virtual-build-machine
+ (cpu "Westmere")
+ (cpu-count 8)
+ (memory-size (* 1 1024))
+ (auto-start? #t)))
+@end lisp
+
+The available options are shown below.
+
+@defvar virtual-build-machine-service-type
+This is the service type to run @dfn{virtual build machines}. Virtual
+build machines are configured so that builds are offloaded to them when
+they are running.
+@end defvar
+
+@deftp {Data Type} virtual-build-machine
+This is the data type specifying the configuration of a build machine.
+It contains the fields below:
+
+@table @asis
+@item @code{name} (default: @code{'build-vm})
+The name of this build VM. It is used to construct the name of its
+Shepherd service.
+
+@item @code{image}
+The image of the virtual machine (@pxref{System Images}). This notably
+specifies the virtual disk size and the operating system running into it
+(@pxref{operating-system Reference}). The default value is a minimal
+operating system image.
+
+@item @code{qemu} (default: @code{qemu-minimal})
+The QEMU package to run the image.
+
+@item @code{cpu}
+The CPU model being emulated as a string denoting a model known to QEMU.
+
+The default value is a model that matches @code{date} (see below). To
+see what CPU models are available, run, for example:
+
+@example
+qemu-system-x86_64 -cpu help
+@end example
+
+@item @code{cpu-count} (default: @code{4})
+The number of CPUs emulated by the virtual machine.
+
+@item @code{memory-size} (default: @code{2048})
+Size in mebibytes (MiB) of the virtual machine's main memory (RAM).
+
+@item @code{date} (default: a few years ago)
+Date inside the virtual machine when it starts; this must be a SRFI-19
+date object (@pxref{SRFI-19 Date,,, guile, GNU Guile Reference Manual}).
+
+@item @code{port-forwardings} (default: 11022 and 11004)
+TCP ports of the virtual machine forwarded to the host. By default, the
+SSH and secrets ports are forwarded into the host.
+
+@item @code{systems} (default: @code{(list (%current-system))})
+List of system types supported by the build VM---e.g.,
+@code{"x86_64-linux"}.
+
+@item @code{auto-start?} (default: @code{#f})
+Whether to start the virtual machine when the system boots.
+@end table
+@end deftp
+
+In the next section, you'll find a variant on this theme: GNU/Hurd
+virtual machines!
+
@anchor{hurd-vm}
@subsubheading The Hurd in a Virtual Machine
diff --git a/etc/disarchive-manifest.scm b/etc/disarchive-manifest.scm
index 41f64eae4f..3dbfa356df 100644
--- a/etc/disarchive-manifest.scm
+++ b/etc/disarchive-manifest.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021-2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,6 +35,8 @@
(and (origin-hash origin)
(or (string-suffix? ".tar.gz" file)
(string-suffix? ".tgz" file)
+ (string-suffix? ".tar.bz2" file)
+ (string-suffix? ".tbz2" file)
(string-suffix? ".tar.xz" file)
(string-suffix? ".tar" file))))))
diff --git a/etc/teams.scm b/etc/teams.scm
index 6dd98ecd87..e2bc250028 100755
--- a/etc/teams.scm
+++ b/etc/teams.scm
@@ -300,11 +300,7 @@ asdf-build-system."
(team 'go
#:name "Go team"
#:scope (list "gnu/packages/configuration-management.scm"
- "gnu/packages/golang-check.scm"
- "gnu/packages/golang-crypto.scm"
- "gnu/packages/golang-web.scm"
- "gnu/packages/golang-xyz.scm"
- "gnu/packages/golang.scm"
+ "gnu/packages/golang(-.+|)\\.scm$"
"gnu/packages/syncthing.scm"
"gnu/packages/terraform.scm"
"guix/build-system/go.scm"
@@ -501,7 +497,8 @@ asdf-build-system."
and Thunderbird."
#:scope (list "gnu/build/icecat-extension.scm"
"gnu/packages/browser-extensions.scm"
- "gnu/packages/gnuzilla.scm")))
+ "gnu/packages/gnuzilla.scm"
+ "gnu/packages/tor-browsers.scm")))
(define-team racket
(team 'racket
@@ -716,6 +713,10 @@ GLib/GIO, GTK, GStreamer and Webkit."
"w@wmeyer.eu")
kernel)
+(define-member (person "Mark H Weaver"
+ "mhw@netris.org")
+ mozilla)
+
(define (find-team name)
(or (hash-ref %teams (string->symbol name))
diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm
index 27c10e3dfe..0b0a8a70d8 100644
--- a/gnu/build/marionette.scm
+++ b/gnu/build/marionette.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
@@ -223,29 +223,49 @@ FILE has not shown up after TIMEOUT seconds, raise an error."
(define* (wait-for-tcp-port port marionette
#:key
(timeout 20)
+ (peek? #f)
(address `(make-socket-address AF_INET
INADDR_LOOPBACK
,port)))
"Wait for up to TIMEOUT seconds for PORT to accept connections in
MARIONETTE. ADDRESS must be an expression that returns a socket address,
-typically a call to 'make-socket-address'. Raise an error on failure."
+typically a call to 'make-socket-address'. When PEEK? is true, attempt to
+read a byte from the socket upon connection; retry if that gives the
+end-of-file object.
+
+Raise an error on failure."
;; Note: The 'connect' loop has to run within the guest because, when we
;; forward ports to the host, connecting to the host never raises
;; ECONNREFUSED.
(match (marionette-eval
- `(let* ((address ,address)
- (sock (socket (sockaddr:fam address) SOCK_STREAM 0)))
- (let loop ((i 0))
+ `(let* ((address ,address))
+ (define (open-socket)
+ (socket (sockaddr:fam address) SOCK_STREAM 0))
+
+ (let loop ((sock (open-socket))
+ (i 0))
(catch 'system-error
(lambda ()
(connect sock address)
+ (when ,peek?
+ (let ((byte ((@ (ice-9 binary-ports) lookahead-u8)
+ sock)))
+ (when (eof-object? byte)
+ (close-port sock)
+ (throw 'system-error
+ "wait-for-tcp-port" "~A"
+ (list (strerror ECONNRESET))
+ (list ECONNRESET)))))
(close-port sock)
'success)
(lambda args
(if (< i ,timeout)
(begin
(sleep 1)
- (loop (+ 1 i)))
+ (loop (if (port-closed? sock)
+ (open-socket)
+ sock)
+ (+ 1 i)))
(list 'failure address))))))
marionette)
('success #t)
diff --git a/gnu/build/secret-service.scm b/gnu/build/secret-service.scm
index e13fd4eef3..0226c64032 100644
--- a/gnu/build/secret-service.scm
+++ b/gnu/build/secret-service.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -93,13 +93,28 @@ Return #t in the former case and #f in the latter case."
('readable #t)
('timeout #f)))))))
-(define* (secret-service-send-secrets port secret-root
+(define (socket-address->string address)
+ "Return a human-readable representation of ADDRESS, an object as returned by
+'make-socket-address'."
+ (let ((family (sockaddr:fam address)))
+ (cond ((= AF_INET family)
+ (string-append (inet-ntop AF_INET (sockaddr:addr address))
+ ":" (number->string (sockaddr:port address))))
+ ((= AF_INET6 family)
+ (string-append "[" (inet-ntop AF_INET6 (sockaddr:addr address)) "]"
+ ":" (number->string (sockaddr:port address))))
+ ((= AF_UNIX family)
+ (sockaddr:path address))
+ (else
+ (object->string address)))))
+
+(define* (secret-service-send-secrets address secret-root
#:key (retry 60)
(handshake-timeout 180))
- "Copy all files under SECRET-ROOT using TCP to secret-service listening at
-local PORT. If connect fails, sleep 1s and retry RETRY times; once connected,
-wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
-#f on failure."
+ "Copy all files under SECRET-ROOT by connecting to secret-service listening
+at ADDRESS, an address as returned by 'make-socket-address'. If connection
+fails, sleep 1s and retry RETRY times; once connected, wait for at most
+HANDSHAKE-TIMEOUT seconds for handshake to complete. Return #f on failure."
(define (file->file+size+mode file-name)
(let ((stat (stat file-name))
(target (substring file-name (string-length secret-root))))
@@ -118,9 +133,9 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
(dump-port input sock))))
files)))
- (log "sending secrets to ~a~%" port)
+ (log "sending secrets to ~a~%" (socket-address->string address))
+
(let ((sock (socket AF_INET (logior SOCK_CLOEXEC SOCK_STREAM) 0))
- (addr (make-socket-address AF_INET INADDR_LOOPBACK port))
(sleep (if (resolve-module '(fibers) #f)
(module-ref (resolve-interface '(fibers)) 'sleep)
sleep)))
@@ -129,7 +144,7 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
;; forward port inside the guest.
(let loop ((retry retry))
(catch 'system-error
- (cute connect sock addr)
+ (cute connect sock address)
(lambda (key . args)
(when (zero? retry)
(apply throw key args))
@@ -147,7 +162,8 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
(('secret-service-server ('version version ...))
(log "sending files from ~s...~%" secret-root)
(send-files sock)
- (log "done sending files to port ~a~%" port)
+ (log "done sending files to ~a~%"
+ (socket-address->string address))
(close-port sock)
secret-root)
(x
@@ -155,7 +171,8 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
(close-port sock)
#f))
(begin ;timeout
- (log "timeout while sending files to ~a~%" port)
+ (log "timeout while sending files to ~a~%"
+ (socket-address->string address))
(close-port sock)
#f))))
@@ -168,19 +185,20 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
(unless (= ENOENT (system-error-errno args))
(apply throw args)))))
-(define (secret-service-receive-secrets port)
- "Listen to local PORT and wait for a secret service client to send secrets.
-Write them to the file system. Return the list of files installed on success,
-and #f otherwise."
+(define (secret-service-receive-secrets address)
+ "Listen to ADDRESS, an address returned by 'make-socket-address', and wait
+for a secret service client to send secrets. Write them to the file system.
+Return the list of files installed on success, and #f otherwise."
- (define (wait-for-client port)
- ;; Wait for a TCP connection on PORT. Note: We cannot use the
- ;; virtio-serial ports, which would be safer, because they are
- ;; (presumably) unsupported on GNU/Hurd.
+ (define (wait-for-client address)
+ ;; Wait for a connection on ADDRESS. Note: virtio-serial ports are safer
+ ;; than TCP connections but they are (presumably) unsupported on GNU/Hurd.
(let ((sock (socket AF_INET (logior SOCK_CLOEXEC SOCK_STREAM) 0)))
- (bind sock AF_INET INADDR_ANY port)
+ (bind sock address)
(listen sock 1)
- (log "waiting for secrets on port ~a...~%" port)
+ (log "waiting for secrets on ~a...~%"
+ (socket-address->string address))
+
(match (select (list sock) '() '() 60)
(((_) () ())
(match (accept sock)
@@ -244,7 +262,7 @@ and #f otherwise."
(log "invalid secrets received~%")
#f)))
- (let* ((port (wait-for-client port))
+ (let* ((port (wait-for-client address))
(result (and=> port read-secrets)))
(when port
(close-port port))
diff --git a/gnu/local.mk b/gnu/local.mk
index f6ea8c4154..dd3e96a080 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -64,6 +64,7 @@
# Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
# Copyright © 2023 Herman Rimm <herman@rimm.ee>
# Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
+# Copyright © 2024 David Elsing <david.elsing@posteo.net>
#
# This file is part of GNU Guix.
#
@@ -308,7 +309,9 @@ GNU_SYSTEM_MODULES = \
%D%/packages/gnu-pw-mgr.scm \
%D%/packages/gobby.scm \
%D%/packages/golang.scm \
+ %D%/packages/golang-build.scm \
%D%/packages/golang-check.scm \
+ %D%/packages/golang-compression.scm \
%D%/packages/golang-crypto.scm \
%D%/packages/golang-web.scm \
%D%/packages/golang-xyz.scm \
@@ -959,6 +962,7 @@ dist_patch_DATA = \
%D%/packages/patches/audiofile-function-signature.patch \
%D%/packages/patches/automake-skip-amhello-tests.patch \
%D%/packages/patches/avahi-localstatedir.patch \
+ %D%/packages/patches/avalon-toolkit-rdkit-fixes.patch \
%D%/packages/patches/avidemux-install-to-lib.patch \
%D%/packages/patches/awesome-reproducible-png.patch \
%D%/packages/patches/awesome-4.3-fno-common.patch \
@@ -1061,7 +1065,6 @@ dist_patch_DATA = \
%D%/packages/patches/converseen-hide-non-free-pointers.patch \
%D%/packages/patches/cool-retro-term-wctype.patch \
%D%/packages/patches/coreutils-gnulib-tests.patch \
- %D%/packages/patches/coq-fix-envvars.patch \
%D%/packages/patches/cppcheck-disable-char-signedness-test.patch \
%D%/packages/patches/cpuinfo-system-libraries.patch \
%D%/packages/patches/cpulimit-with-glib-2.32.patch \
@@ -1516,6 +1519,9 @@ dist_patch_DATA = \
%D%/packages/patches/libcall-ui-make-it-installable.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 \
+ %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch \
+ %D%/packages/patches/libgeotiff-fix-tests-on-i386.patch \
%D%/packages/patches/libobjc2-unbundle-robin-map.patch \
%D%/packages/patches/librime-fix-build-with-gcc10.patch \
%D%/packages/patches/libvirt-add-install-prefix.patch \
@@ -1734,10 +1740,6 @@ dist_patch_DATA = \
%D%/packages/patches/nvi-db4.patch \
%D%/packages/patches/nyacc-binary-literals.patch \
%D%/packages/patches/obs-modules-location.patch \
- %D%/packages/patches/ocaml-dose3-add-unix-dependency.patch \
- %D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch \
- %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \
- %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \
%D%/packages/patches/ocaml-multiple-definitions.patch \
%D%/packages/patches/ocaml-4.07-dynamically-allocate-signal-stack.patch \
%D%/packages/patches/ocaml-4.09-dynamically-allocate-signal-stack.patch \
@@ -2017,6 +2019,7 @@ dist_patch_DATA = \
%D%/packages/patches/rw-igraph-0.10.patch \
%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/sbc-fix-build-non-x86.patch \
%D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \
%D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \
@@ -2053,7 +2056,6 @@ dist_patch_DATA = \
%D%/packages/patches/source-highlight-gcc-compat.patch \
%D%/packages/patches/softhsm-fix-openssl3-tests.patch \
%D%/packages/patches/spectre-meltdown-checker-externalize-fwdb.patch \
- %D%/packages/patches/spdlog-fix-tests.patch \
%D%/packages/patches/sphinxbase-fix-doxygen.patch \
%D%/packages/patches/sssd-system-directories.patch \
%D%/packages/patches/steghide-fixes.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index fcf05992d8..11f69e57a4 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -130,6 +130,8 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-compression)
#:use-module (gnu packages groff)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@@ -4907,6 +4909,33 @@ It can mount all local file systems supported by @command{mount}, as well as
LUKS volumes encrypted with the user's log-in password.")
(license (list license:gpl2+ license:lgpl2.1+))))
+(define-public pam-uaccess
+ (let ((commit "54fbf043c63cc500b4850b0b4a12ea14078f2b53")
+ (revision "0"))
+ (package
+ (name "pam-uaccess")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~kennylevinsen/pam_uaccess")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "08068cw4nvcanym8b5dyccnnb3qc3f09pbvi6fcfiz227yx73npc"))))
+ (build-system meson-build-system)
+ (native-inputs (list pkg-config))
+ (inputs (list acl eudev linux-pam))
+ (home-page "https://git.sr.ht/~kennylevinsen/pam_uaccess")
+ (synopsis
+ "PAM module that grants access to devices tagged @code{uaccess} in udev")
+ (description
+ "@code{pam_uaccess} is a PAM module that grants access to devices tagged
+@code{uaccess} in udev for the duration of the users' session, replacing
+elogind's uaccess feature.")
+ (license license:expat))))
+
(define-public jc
(package
(name "jc")
diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm
index 750db04040..d061b18b11 100644
--- a/gnu/packages/antivirus.scm
+++ b/gnu/packages/antivirus.scm
@@ -45,14 +45,14 @@
(define-public clamav
(package
(name "clamav")
- (version "0.103.8")
+ (version "0.103.11")
(source (origin
(method url-fetch)
(uri (string-append "https://www.clamav.net/downloads/production/"
"clamav-" version ".tar.gz"))
(sha256
(base32
- "0gwcikzfdswrdh5vhh3x4lx8w92476fmb7im7phnv4r7x5pdljbg"))
+ "04by1g3p6awhi3j1y6zpwzmasdnvjgi6lwm34l2gadlwgkdfpmv1"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index aedb5ef8f9..b7b057e026 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2023 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2024 Andy Tai <lichengtai@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -949,7 +950,7 @@ different kinds of input files.")
(define-public gnuastro
(package
(name "gnuastro")
- (version "0.21")
+ (version "0.22")
(source
(origin
(method url-fetch)
@@ -957,7 +958,7 @@ different kinds of input files.")
version ".tar.lz"))
(sha256
(base32
- "1zyk764pmfrsfj45gnc3qp4z1zfmgrv7kcsji2bxfzvs9inzzq4c"))))
+ "15rljx1mx9dyvni17qpj7y9gv086cvmjf9f5j34m1pbiyn989fqz"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 4a84f8ccdf..a57c7bb341 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -6311,7 +6311,7 @@ and DSD streams.")
(define-public qpwgraph
(package
(name "qpwgraph")
- (version "0.6.0")
+ (version "0.6.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -6320,7 +6320,7 @@ and DSD streams.")
(file-name (git-file-name name version))
(sha256
(base32
- "17jl347rwagdyx6pgnp83l1ffhlyfl0s4jf7ii2i1j3s1m9sz7y0"))))
+ "0185hxbwqxhjiyym0s7bmrm50f3p4bnvx92qqmgvg3zd7r1x8m8s"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f)) ; no tests
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 09c6fb5abd..01c8ea0df7 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -71,6 +71,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages gperf)
@@ -1278,27 +1279,28 @@ backup.")
(define-public disarchive
(package
(name "disarchive")
- (version "0.5.0")
+ (version "0.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.ngyro.com/disarchive/"
"disarchive-" version ".tar.gz"))
(sha256
(base32
- "16sjplkn9nr7zhfrqll7l1m2b2j4hg8k29p6bqjap9fkj6zpn2q2"))))
+ "1s4lyhhh1zsaxgn11hy2b1kdvnvpipii68wba0hwr471rd43m08k"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
automake
pkg-config
guile-3.0 ;for cross-compilation
+ guile-bzip2
guile-gcrypt
guile-lzma
guile-quickcheck))
(inputs
(list guile-3.0 zlib))
(propagated-inputs
- (list guile-gcrypt guile-lzma))
+ (list guile-bzip2 guile-gcrypt guile-lzma))
(home-page "https://ngyro.com/software/disarchive.html")
(synopsis "Software archive disassembler")
(description "Disarchive can disassemble software archives into data
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index a54c9006a3..91cd5976ee 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -2388,13 +2388,13 @@ yeast are also included.")
(define-public r-curatedtcgadata
(package
(name "r-curatedtcgadata")
- (version "1.24.0")
+ (version "1.24.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "curatedTCGAData" version 'experiment))
(sha256
- (base32 "0kfdzc5arzsrdaps7b3r718yawpv1x7wms5jp90j8cxpn0hz07az"))))
+ (base32 "0hr66p8l54nzfsizcxxd2njy44xnia607wvfhrgv46f3f8s95z02"))))
(properties
`((upstream-name . "curatedTCGAData")))
(build-system r-build-system)
@@ -3356,13 +3356,13 @@ these biases and construct statistically consistent estimators.")
(define-public r-animalcules
(package
(name "r-animalcules")
- (version "1.18.2")
+ (version "1.18.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "animalcules" version))
(sha256
(base32
- "1q0ca3pagqzj12kah79jg4py3ibz7qsdl975r2mxhphqwj76gnh8"))))
+ "0j8fa5cr6s20bgw7v62by61q7nk8iw64v4wshwbd2cc36gr7s3c8"))))
(properties `((upstream-name . "animalcules")))
(build-system r-build-system)
(propagated-inputs
@@ -6276,23 +6276,22 @@ Michailidis G (2016) <doi:10.1093/bioinformatics/btw410>.")
(define-public r-nmf
(package
(name "r-nmf")
- (version "0.26")
+ (version "0.27")
(source
(origin
(method url-fetch)
(uri (cran-uri "NMF" version))
(sha256
(base32
- "1h1fpjnj6vjvi9ygxpfxs8k5bhly0aflr54zj88khgzkylp5ci4d"))))
+ "1y9y7xpfd9y8j5b8s2x5g61455ilpgqpdhrirpz58xjarbph4hxg"))))
(properties `((upstream-name . "NMF")))
(build-system r-build-system)
(propagated-inputs
- (list r-cluster
- r-codetools
- r-biobase
+ (list r-biobase
r-biocmanager
- r-bigmemory ; suggested
- r-synchronicity ; suggested
+ r-bigmemory ;suggested
+ r-cluster
+ r-codetools
r-colorspace
r-digest
r-doparallel
@@ -6303,7 +6302,8 @@ Michailidis G (2016) <doi:10.1093/bioinformatics/btw410>.")
r-registry
r-reshape2
r-rngtools
- r-stringr))
+ r-stringr
+ r-synchronicity)) ;suggested
(native-inputs
(list r-knitr))
(home-page "https://renozao.github.io/NMF")
@@ -6970,13 +6970,13 @@ effort and encourages consistency.")
(define-public r-bsgenome
(package
(name "r-bsgenome")
- (version "1.70.1")
+ (version "1.70.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "BSgenome" version))
(sha256
(base32
- "1bdrh1kp7ihnlyvgdvwdzly69l9zy5rr09gizm0l59zy4kh59nih"))))
+ "02qrqg7lfisj44gvlfn1gkhxxjqdh11q28inxggfpcda9b67j61d"))))
(properties
`((upstream-name . "BSgenome")))
(build-system r-build-system)
@@ -7479,13 +7479,13 @@ originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2):
(define-public r-dittoseq
(package
(name "r-dittoseq")
- (version "1.14.0")
+ (version "1.14.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "dittoSeq" version))
(sha256
(base32
- "17ks6bbhv8iw8grzlkibgqmwggrqp5hikg1p49m4a6b6bayillv2"))))
+ "0qyiq6azknjqim0hjy5xw5gvs5jyczx29vcs95dwsfk92sygdps0"))))
(properties `((upstream-name . "dittoSeq")))
(build-system r-build-system)
(propagated-inputs
@@ -7881,13 +7881,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.5")
+ (version "1.38.6")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomeInfoDb" version))
(sha256
(base32
- "17w5zrvpk2x0sc55xfkbn9krphg4aszmvwmj1qfsf1bdrazfpwic"))))
+ "0z8wkv5jhx8wr6idnakm26lhhk4ssj6ivbb7hfbzhkajcbnnf7mq"))))
(properties
`((upstream-name . "GenomeInfoDb")))
(build-system r-build-system)
@@ -10126,13 +10126,13 @@ the graph algorithms contained in the Boost library.")
(define-public r-rcas
(package
(name "r-rcas")
- (version "1.28.2")
+ (version "1.28.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "RCAS" version))
(sha256
(base32
- "19ildsck3g8v4w0g2f473sb8hyhn4avprdi78fim0prva5f9nqnv"))))
+ "1d9icr17xwdmgm6b8ihrwxsg1fp342c2p9f8yqdjm2y52z88gmpd"))))
(properties `((upstream-name . "RCAS")))
(build-system r-build-system)
(propagated-inputs
@@ -10148,7 +10148,6 @@ the graph algorithms contained in the Boost library.")
r-genomicfeatures
r-genomicranges
r-ggplot2
- r-ggseqlogo
r-gprofiler2
r-iranges
r-knitr
@@ -10162,7 +10161,7 @@ the graph algorithms contained in the Boost library.")
r-rsqlite
r-rtracklayer
r-s4vectors
- pandoc))
+ r-seqlogo))
(native-inputs
(list r-knitr))
(synopsis "RNA-centric annotation system")
@@ -11475,14 +11474,14 @@ able to deal also with novel and case specific events.")
(define-public r-trajectoryutils
(package
(name "r-trajectoryutils")
- (version "1.10.0")
+ (version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "TrajectoryUtils" version))
(sha256
(base32
- "0pqdl0v16q90ffxla34rp07mq0if1q9izpbimfnq0rx7633mk95v"))))
+ "178v5r0nck9ils5k7hj92x7z1xk5zq6zyc78wqnz7s3shbnq9ld7"))))
(properties
`((upstream-name . "TrajectoryUtils")))
(build-system r-build-system)
@@ -13533,13 +13532,13 @@ information.")
(define-public r-glmgampoi
(package
(name "r-glmgampoi")
- (version "1.14.0")
+ (version "1.14.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "glmGamPoi" version))
(sha256
(base32
- "1qc3f1spzkcjk95b07jpxgrjiwmlamwwx6mlhml4lgzy5qby7dpw"))))
+ "1swbp560ss5sksf1m10c6md4b81yc9qwa6in64j4zzksmrn9jn2d"))))
(properties `((upstream-name . "glmGamPoi")))
(build-system r-build-system)
(propagated-inputs
@@ -16600,14 +16599,14 @@ footprints.")
(define-public r-gofuncr
(package
(name "r-gofuncr")
- (version "1.22.0")
+ (version "1.22.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "GOfuncR" version))
(sha256
(base32
- "1baa3aabkhmwq66xkzf4jk5nz85kkx1ks0mqc91s2ra9916wj6cd"))))
+ "004483q584530mh5nb28ppa8wllkd639n9yyw309acs2s4rc7saa"))))
(properties `((upstream-name . "GOfuncR")))
(build-system r-build-system)
(propagated-inputs
@@ -19897,14 +19896,14 @@ gene expression.")
(define-public r-bgx
(package
(name "r-bgx")
- (version "1.68.0")
+ (version "1.68.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "bgx" version))
(sha256
(base32
- "0v85i0lwmxq5yq9ygfzljgy8fsflqq1p53rq8aasnndd6gsm8ld2"))))
+ "1a3hq2i1mxf6dpkk82b6y88q5fcjbqpdcxqplkfp5d2slzsqc3jp"))))
(properties `((upstream-name . "bgx")))
(build-system r-build-system)
(arguments
@@ -20938,14 +20937,14 @@ analytics on packages.")
(define-public r-biocset
(package
(name "r-biocset")
- (version "1.16.0")
+ (version "1.16.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "BiocSet" version))
(sha256
(base32
- "0sk4kmvl86xm85dqaf8gvii0qavyycyn2qp0v6dmfcjqai528v2x"))))
+ "1qmi6b0hrfzj7ixcbxlsxyy3qg7d2qrq8jcjrjrgfyrgcfws46qd"))))
(properties `((upstream-name . "BiocSet")))
(build-system r-build-system)
(propagated-inputs
@@ -21564,14 +21563,14 @@ block processing.")
(define-public r-rhdf5lib
(package
(name "r-rhdf5lib")
- (version "1.24.1")
+ (version "1.24.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rhdf5lib" version))
(sha256
(base32
- "0lb5dkzfnfvxwrk8s9vzfjp8ab1sbr7b22jnzg41hgmpysi7dswh"))
+ "0b2g57dxvzmnq6dig4dz7cy8lpy3q7fih5q643i5xjcds2cj6lk5"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -21632,11 +21631,10 @@ block processing.")
(("cp \"\\$\\{SZIP_LIB\\}.*") "")
(("PKG_LIBS =.*") "PKG_LIBS = -lz -lhdf5\n"))))))))
(propagated-inputs
- (list hdf5-1.10 r-biocstyle r-stringr zlib))
+ (list hdf5-1.10 zlib))
(native-inputs
`(("hdf5-source" ,(package-source hdf5-1.10))
- ("r-knitr" ,r-knitr)
- ("r-rmarkdown" ,r-rmarkdown)))
+ ("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/Rhdf5lib")
(synopsis "HDF5 library as an R package")
(description "This package provides C and C++ HDF5 libraries for use in R
@@ -23974,14 +23972,14 @@ using aCGH or sequencing.")
(define-public r-bionero
(package
(name "r-bionero")
- (version "1.10.0")
+ (version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "BioNERO" version))
(sha256
(base32
- "0pq5fiacb2x8l5jk3p6bnha9bcwg91grpklgx2nirrlwwr80gf2h"))))
+ "0dxn4pijr6gsqybl8x3ix1xydizg7gzfp72risk37zc5i4xk2lca"))))
(properties `((upstream-name . "BioNERO")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 4db6987763..bcfe3c2656 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -93,7 +93,9 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#: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 glib)
#:use-module (gnu packages graph)
#:use-module (gnu packages graphics)
@@ -2244,6 +2246,38 @@ parallel. It uses Python's native multiprocessing framework to apply a user
defined rule on an input file.")
(license license:gpl3)))
+(define-public python-pdbfixer
+ (package
+ (name "python-pdbfixer")
+ (version "1.9")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/openmm/pdbfixer")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zjhb19q5dclkwvzh8n29p31n1vzkhlmmzwqllimi89jsis1cx35"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ '(list "-k"
+ ;; These tests fail because they require internet access.
+ (string-append "not test_build_and_simulate.py"
+ " and not test_cli.py"
+ " and not test_mutate.py"))))
+ (propagated-inputs (list openmm python-numpy))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/openmm/pdbfixer")
+ (synopsis "Application for fixing problems in Protein Data Bank")
+ (description
+ "PDBFixer is designed to rectify issues in Protein Data Bank files.
+Its intuitive interface simplifies the process of resolving problems
+encountered in PDB files prior to simulation tasks.")
+ (license license:expat)))
+
(define-public python-peaks2utr
(package
(name "python-peaks2utr")
diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm
index 00dd5a7075..603373dc1e 100644
--- a/gnu/packages/browser-extensions.scm
+++ b/gnu/packages/browser-extensions.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
-;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2023, 2024 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -58,7 +58,7 @@ supported content to the Kodi media center.")
;; Arbitrary commit of branch master,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-main-assets")
- (commit "76bd7cb53036a36f7e7df5ee9173f588ba8aa966")
+ (commit "0cb71ec86524082c463d2fd2e18ecdea04fe335c")
(revision "1")
(version (git-version "0" revision commit)))
(origin
@@ -68,13 +68,13 @@ supported content to the Kodi media center.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1kdzvflr1yxykyva5vsjqr0p2ik1200xbhxwpl3cx2jsiv8l95sk")))))
+ (base32 "1rsf7sznlnv12i7jx1b492whwqpkhkqy2ny3m04fbbv5x31gqp93")))))
(define ublock-prod-assets
;; Arbitrary commit of branch gh-pages,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-prod-assets")
- (commit "a379a168fc149ffbd6d10cd0700d4ab4801e57f2")
+ (commit "21c07155353d7ecca2ffdc9e786f252a8cf00935")
(revision "1")
(version (git-version "0" revision commit)))
(origin
@@ -84,12 +84,12 @@ supported content to the Kodi media center.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "0syf3kbhvsbn5xka5knpclxby2kp92my1w7ixvf5fs9n08ylcip1")))))
+ (base32 "0lwhvpvsf5p20c678qkmj5zy7hy33hl16sqpnp5gz00hbrdx1ddk")))))
(define ublock-origin
(package
(name "ublock-origin")
- (version "1.54.0")
+ (version "1.55.0")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
@@ -99,7 +99,7 @@ supported content to the Kodi media center.")
(file-name (git-file-name name version))
(sha256
(base32
- "1yacqpf9z8lprwsj194bhlp2ba9ywzbagd6lwxj3h6g405s7zp2k"))))
+ "1cd03l78w0xzkyv5588kac1r5k741vdr3d7ircv50l349qp4sjnm"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(properties '((addon-id . "uBlock0@raymondhill.net")))
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 1346605c71..b558145ea0 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -20,7 +20,7 @@
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
-;;; Copyright © 2023 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2023, 2024 David Elsing <david.elsing@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1349,7 +1349,7 @@ performance concurrent systems developed in C99+.")
(define-public tinydir
(package
(name "tinydir")
- (version "1.2.5")
+ (version "1.2.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1358,7 +1358,7 @@ performance concurrent systems developed in C99+.")
(file-name (git-file-name name version))
(sha256
(base32
- "1nprgdfx4i8wzc1idw6chan4fjfa75b5ll8kghdc0q2278pny259"))
+ "143n6yabznxk032gv5g2k8glf0kzicarg9cx0714zsbfmzj8lr07"))
(patches (search-patches "tinydir-fix-cbehave-test.patch"))
(modules '((guix build utils)))
(snippet '(delete-file-recursively "tests/cbehave"))))
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 4f593cde8d..b520d6c58a 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -77,6 +77,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index df96a2f5c1..bd27bfad7a 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2022, 2023 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2022, 2023, 2024 David Elsing <david.elsing@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -589,7 +589,7 @@ your colleagues, or to generate pre-rendered animations.")
(define-public gemmi
(package
(name "gemmi")
- (version "0.5.7")
+ (version "0.6.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -598,7 +598,7 @@ your colleagues, or to generate pre-rendered animations.")
(file-name (git-file-name name version))
(sha256
(base32
- "00km5q726bslrw7xbfwb3f3mrsk19qbimfnl3hvr4wi1y3z8i18a"))
+ "0wciqqswc4p4v4kglfv36gnvyyimqn4lnywdzd0pgrjn443i860y"))
(patches
(search-patches "gemmi-fix-sajson-types.patch"
"gemmi-fix-pegtl-usage.patch"))
@@ -625,7 +625,7 @@ your colleagues, or to generate pre-rendered animations.")
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-includes
(lambda _
- (substitute* (list "include/gemmi/sprintf.hpp"
+ (substitute* (list "src/sprintf.cpp"
"include/gemmi/dirwalk.hpp"
"include/gemmi/cif.hpp"
"include/gemmi/json.hpp"
@@ -708,7 +708,12 @@ It can be used for working with
#~(list "--enable-check"
"--enable-parser-generator"
"CXXFLAGS=-std=c++17"
- "--enable-doxygen")
+ "--enable-doxygen"
+ ;; Some tests rely on replacing malloc with a wrapper which
+ ;; fails in a controlled way, but this does not work if the call
+ ;; is replaced. This was fixed upstream, remove once there is a
+ ;; new release.
+ "CFLAGS=-fno-builtin-malloc")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-libc++-linking
@@ -722,7 +727,7 @@ It can be used for working with
(("libfreesasa\\.a") "libfreesasa.la")
(("freesasa_LDADD \\+= libfreesasa\\.la" prev)
(string-append prev "\nlibfreesasa_la_LIBADD"
- " = -ljson-c ${libxml2_LIBS}\n"))
+ " = -ljson-c -lgemmi_cpp ${libxml2_LIBS}\n"))
(("_a_SOURCES") "_la_SOURCES"))
(substitute* "configure.ac"
(("AC_PROG_INSTALL" inst)
@@ -765,7 +770,7 @@ of the algorithms, the calculations give identical results.")
(define-public maeparser
(package
(name "maeparser")
- (version "1.3.0")
+ (version "1.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -774,7 +779,7 @@ of the algorithms, the calculations give identical results.")
(file-name (git-file-name name version))
(sha256
(base32
- "1yv4y5hn49fhylziigsg922bb244lb57p69r7vg9q899zd3l5b7l"))))
+ "0mr5glg4br04ql5grby8yqni9fqq1l1cc75wyc159a1b9lwr7q7r"))))
(build-system cmake-build-system)
(inputs (list boost zlib))
(home-page "https://github.com/schrodinger/maeparser")
@@ -785,7 +790,7 @@ of the algorithms, the calculations give identical results.")
(define-public coordgenlibs
(package
(name "coordgenlibs")
- (version "3.0.1")
+ (version "3.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -794,7 +799,7 @@ of the algorithms, the calculations give identical results.")
(file-name (git-file-name name version))
(sha256
(base32
- "0d09x3v38i9y184bml020bq7xizdrdwng38qmdxlplzfhqkjdidv"))))
+ "1wjaxwaihjy9xm5ys23f5abl50zcar1h9pww5ajdkgygsqy0bavi"))))
(build-system cmake-build-system)
(arguments
(list
@@ -812,7 +817,7 @@ emphasis on quality rather than speed.")
(define-public yaehmop
(package
(name "yaehmop")
- (version "2022.09.1")
+ (version "2023.03.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -821,7 +826,7 @@ emphasis on quality rather than speed.")
(file-name (git-file-name name version))
(sha256
(base32
- "1x0d75m1hgdb411fiv7c5bwq1n4y0swrll0gigh8v5c73kjxrja0"))
+ "18xnxqn8i7vswy3iffapfh9q2iimpnd23ps45hn4xxbs6dqgzprb"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -917,90 +922,67 @@ calculations and analyzing the results.")
(define-public avalon-toolkit
(package
(name "avalon-toolkit")
- (version "1.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "mirror://sourceforge/avalontoolkit/"
- "AvalonToolkit_" (substring version 0 3) "/AvalonToolkit_"
- version ".source.tar"))
- (sha256
- (base32
- "0rnnyy6axs2da7aa4q6l30ldavbk49v6l22llj1adn74h1i67bpv"))
- (modules '((guix build utils) (ice-9 ftw)))
- (snippet
- #~(begin
- (delete-file-recursively "../SourceDistribution/java")))))
+ (version "2.0.5a")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rohdebe1/ava-formake")
+ (commit (string-append "AvalonToolkit_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1mfg40y5xc17sm59zdfc5sk22n9zm5zk0z1aw47chvl6hp465szk"))
+ (patches
+ (search-patches "avalon-toolkit-rdkit-fixes.patch"))
+ (modules '((guix build utils) (ice-9 ftw)))
+ (snippet
+ #~(begin
+ (delete-file-recursively "src/main/java")
+ (delete-file-recursively "src/test/target")))))
(build-system gnu-build-system)
(arguments
(list
- ;; There are no intended tests
+ ;; There is only one test, which is missing a file
#:tests? #f
#:phases
- #~(let ((programs '("canonizer" "matchtest" "sketch" "smi2mol" "struchk")))
- (modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda _ (chdir "common")))
- (delete 'configure)
- (add-before 'build 'dont-free-static-memory
- (lambda _
- (substitute* "reaccsio.c"
- (("MyFree\\(.*tempdir\\)" m)
- (string-append "/* freeing memory from getenv is bad */"
- "// " m)))))
- ;; The makefile has incorrect compiler flags and is missing some
- ;; object files, so we build it ourselves.
- (replace 'build
- (lambda _
- (for-each
- (lambda (part)
- (format #t "Compiling ~a.c ~~> ~a.o~%" part part)
- (invoke #$(cc-for-target) "-c" "-fPIC" "-O2"
- (string-append part ".c")
- "-o" (string-append part ".o")))
- (list "aacheck" "casutils" "denormal" "depictutil"
- "didepict" "fixcharges" "forio" "geometry"
- "graph" "hashcode" "layout" "local" "pattern"
- "perceive" "reaccsio" "rtutils" "set" "shortcut"
- "sketch" "ssmatch" "stereo" "symbol_lists"
- "symboltable" "utilities"))
- (display "Building libavalontoolkit.so\n")
- (apply invoke "gcc" "-fPIC" "-shared" "-lm"
- "-o" "libavalontoolkit.so" "canonizer.c" "smi2mol.c"
- "struchk.c" "patclean.c" (find-files "." "\\.o$"))
- ;; patclean is not built here as there is an undeclared
- ;; variable in main().
- (for-each
- (lambda (program)
- (display (string-append "Building " program "\n"))
- (invoke "gcc" "-L." "-lavalontoolkit" "-lm" "-O2"
- (string-append "-Wl,-rpath=" #$output "/lib")
- "-DMAIN" (string-append program ".c") "-o" program))
- programs)))
- (replace 'install
- (lambda _
- ;; Executables
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key parallel-build? #:allow-other-keys)
+ (mkdir "build")
+ (mkdir-p "target/executables")
+ (mkdir-p "target/libraries")
+ (invoke "make" "programs" "-j"
+ (if parallel-build?
+ (number->string (parallel-job-count))
+ "1"))))
+ (replace 'install
+ (lambda _
+ ;; Executables
+ (let ((programs '("canonizer" "matchtest" "smi2mol" "struchk")))
(for-each
(lambda (program)
- (install-file program (string-append #$output "/bin")))
- programs)
- (for-each
- (lambda (name)
- (symlink (string-append #$output "/bin/smi2mol")
- (string-append #$output "/bin/" name)))
- '("mol2smi" "rdf2smi" "mol2tbl" "mol2sma" "smi2rdf"))
- ;; Library
- (install-file "libavalontoolkit.so"
- (string-append #$output "/lib"))
- (for-each
- (lambda (file)
- (install-file file (string-append #$output
- "/include/avalontoolkit")))
- (find-files "." "\\.h$"))
- (install-file "../license.txt"
- (string-append #$output "/share/doc/"
- #$name "-" #$version "/"))))))))
+ (install-file (string-append "target/executables/" program)
+ (string-append #$output "/bin")))
+ programs))
+ (for-each
+ (lambda (name)
+ (symlink (string-append #$output "/bin/smi2mol")
+ (string-append #$output "/bin/" name)))
+ '("mol2smi" "rdf2smi" "mol2tbl" "mol2sma" "smi2rdf"))
+ ;; Library
+ (install-file "target/libraries/libavalon_tools.a"
+ (string-append #$output "/lib"))
+ (install-file "target/libraries/libavalon4rdkit.a"
+ (string-append #$output "/lib"))
+ (for-each
+ (lambda (file)
+ (install-file file (string-append #$output
+ "/include/avalontoolkit")))
+ (find-files "src/main/C/include" "\\.h$"))
+ (install-file "license.txt"
+ (string-append #$output "/share/doc/"
+ #$name "-" #$version "/")))))))
(home-page "https://sourceforge.net/projects/avalontoolkit/")
(synopsis "Tools for SMILES and MOL files and for structure fingerprinting")
(description "This package contains a library and programs for
@@ -1091,7 +1073,7 @@ other ring topology descriptions.")
(define-public rdkit
(package
(name "rdkit")
- (version "2022.03.5")
+ (version "2023.09.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1102,7 +1084,7 @@ other ring topology descriptions.")
(file-name (git-file-name name version))
(sha256
(base32
- "19idgilabh04cbr1qj6zgrgsfjm248mmfz6fsr0smrd68d0xnml9"))
+ "1lgcgijlzzwpfxndsdlx13npdfk7hcii11zg25cvpmzhbpn6vyn8"))
(patches
(search-patches "rdkit-unbundle-external-dependencies.patch"))
(modules '((guix build utils)))
@@ -1201,7 +1183,10 @@ other ring topology descriptions.")
"substructLibraryTest" "pyFeatures"
"pythonTestDirML" "pythonTestDirChem"
;; Catching Python exception fails
- "pyRanker") "|")
+ "pyRanker"
+ ;; Flaky test depending on floating point rounding
+ "testConrec"
+ ) "|")
")")))))))))
(inputs
(list avalon-toolkit
@@ -1218,7 +1203,7 @@ other ring topology descriptions.")
(native-inputs
(list bison
boost
- catch2
+ catch2-3
eigen
flex
freesasa
@@ -1232,4 +1217,8 @@ other ring topology descriptions.")
(description "RDKit is a C++ and Python library for cheminformatics, which
includes (among other things) the analysis and modification of molecules in 2D
and 3D and descriptor generation for machine learning.")
+ ;; For 32 bit systems, there is a bug in Boost.Python:
+ ;; https://github.com/boostorg/python/issues/312. Additionally, several
+ ;; other test fail.
+ (supported-systems %64bit-supported-systems)
(license license:bsd-3)))
diff --git a/gnu/packages/clifm.scm b/gnu/packages/clifm.scm
index 92d14f1072..c5610c1afc 100644
--- a/gnu/packages/clifm.scm
+++ b/gnu/packages/clifm.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2023 Rodion Goritskov <rodion.goritskov@gmail.com>
+;;; Copyright © 2023, 2024 Rodion Goritskov <rodion.goritskov@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,7 +30,7 @@
(define-public clifm
(package
(name "clifm")
- (version "1.15")
+ (version "1.16")
(source
(origin
(method git-fetch)
@@ -39,7 +39,7 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1r9pxlyn8jg0wmzbmbc71l42098lz5k32k6yid09yz6d0gaax7g1"))))
+ (base32 "1ddg6d4y4kfjk34j0fb7nij5vi5m69vv48knv7j1plbhzqk6qg5n"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "CC="
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index e28998b570..27fce6f368 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -203,14 +203,14 @@ designs.")
(define-public clojure-tools
(package
(name "clojure-tools")
- (version "1.11.1.1165")
+ (version "1.11.1.1200")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.clojure.org/install/clojure-tools-"
version
".tar.gz"))
- (sha256 (base32 "1lg97waqfcgzr3dz5426fbc4kqcsavpbqil2iyjm1dw3zrfa8ysi"))
+ (sha256 (base32 "075naxfiddi6jqr6rqiywwy91r188n5m8yfqcxddmds2vm5rrpnv"))
;; Remove AOT compiled JAR. The other JAR only contains uncompiled
;; Clojure source code.
(snippet
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 75cf8ae1a6..5de17b6b51 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -998,14 +998,14 @@ byte-for-byte identical output.")
(define-public pigz
(package
(name "pigz")
- (version "2.7")
+ (version "2.8")
(source (origin
(method url-fetch)
(uri (string-append "http://zlib.net/pigz/"
name "-" version ".tar.gz"))
(sha256
(base32
- "01y7n7lafp6maqnp4jrmasawnv67najh1bd7gjrmv3d08h1ydjdl"))))
+ "1l0g2zaz05pl3pijsjd8lqxqj122di88rggpr5cvw3hz1r7jp1zb"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
diff --git a/gnu/packages/configuration-management.scm b/gnu/packages/configuration-management.scm
index 296f48dcd5..6632f429e2 100644
--- a/gnu/packages/configuration-management.scm
+++ b/gnu/packages/configuration-management.scm
@@ -21,6 +21,7 @@
#:use-module (guix build-system go)
#:use-module (guix git-download)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages version-control)
#:use-module (gnu packages textutils)
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index f30f231f3b..105b942ad3 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -31,6 +31,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages emacs)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
@@ -51,10 +52,10 @@
#:use-module (guix utils)
#:use-module ((srfi srfi-1) #:hide (zip)))
-(define-public coq-core
+(define-public coq
(package
- (name "coq-core")
- (version "8.16.1")
+ (name "coq")
+ (version "8.17.1")
(source
(origin
(method git-fetch)
@@ -64,28 +65,35 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0ljpqhh5lfsim29fcfp2xfcvm3j84pf1mb0gnpdr8vcqqw7mqwpf"))
- (patches (search-patches "coq-fix-envvars.patch"))))
+ "0gg6hizq0i08lk741b579cbswhy6qvkh6inc3d3i5a2af98psq63"))))
(native-search-paths
(list (search-path-specification
(variable "COQPATH")
- (files (list "lib/ocaml/site-lib/coq/user-contrib"
- "lib/coq/user-contrib")))
- (search-path-specification
- (variable "COQLIBPATH")
- (files (list "lib/ocaml/site-lib/coq")))
- (search-path-specification
- (variable "COQCORELIB")
- (files (list "lib/ocaml/site-lib/coq-core"))
- (separator #f))))
+ (files (list "lib/coq/user-contrib")))))
(build-system dune-build-system)
+ (arguments
+ (list
+ #:package "coq-core,coq-stdlib,coq"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (coqlib (string-append out "/lib/ocaml/site-lib/coq/")))
+ (invoke "./configure" "-prefix" out
+ "-libdir" coqlib))))
+ (add-before 'build 'make-dunestrap
+ (lambda _ (invoke "make" "dunestrap")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (libdir (string-append out "/lib/ocaml/site-lib")))
+ (invoke "dune" "install" "--prefix" out
+ "--libdir" libdir "coq" "coq-core" "coq-stdlib")))))))
(inputs
(list gmp ocaml-zarith))
(native-inputs
(list ocaml-ounit2 which))
- (arguments
- `(#:package "coq-core"
- #:test-target "."))
(properties '((upstream-name . "coq"))) ; also for inherited packages
(home-page "https://coq.inria.fr")
(synopsis "Proof assistant for higher-order logic")
@@ -97,39 +105,6 @@ It is developed using Objective Caml and Camlp5.")
;; Some of the documentation is distributed under opl1.0+.
(license (list license:lgpl2.1 license:opl1.0+))))
-(define-public coq-stdlib
- (package
- (inherit coq-core)
- (name "coq-stdlib")
- (arguments
- `(#:package "coq-stdlib"
- #:test-target "."
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'fix-dune
- (lambda _
- (substitute* "user-contrib/Ltac2/dune"
- (("coq-core.plugins.ltac2")
- (string-join
- (map (lambda (plugin) (string-append "coq-core.plugins." plugin))
- '("ltac2" "number_string_notation" "tauto" "cc"
- "firstorder"))
- " "))))))))
- (inputs
- (list coq-core gmp ocaml-zarith))
- (native-inputs '())))
-
-(define-public coq
- (package
- (inherit coq-core)
- (name "coq")
- (arguments
- `(#:package "coq"
- #:test-target "."))
- (propagated-inputs
- (list coq-core coq-stdlib))
- (native-inputs '())))
-
(define-public coq-ide-server
(package
(inherit coq)
@@ -148,7 +123,7 @@ It is developed using Objective Caml and Camlp5.")
`(#:tests? #f
#:package "coqide"))
(propagated-inputs
- (list coq coq-ide-server))
+ (list coq coq-ide-server zlib))
(inputs
(list lablgtk3 ocaml-lablgtk3-sourceview3))))
@@ -242,7 +217,7 @@ provers.")
(define-public coq-flocq
(package
(name "coq-flocq")
- (version "4.1.0")
+ (version "4.1.1")
(source
(origin
(method git-fetch)
@@ -252,7 +227,7 @@ provers.")
(file-name (git-file-name name version))
(sha256
(base32
- "1yscj1120wch6myakaia03j11qji416v78ylx842d23hrbaqwmw5"))))
+ "01x38w58j95ba9679vpb5wv4bvfnrapd5dzjqlyz8k7i8a9sfqn0"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@@ -315,7 +290,7 @@ inside Coq.")
(define-public coq-gappa
(package
(name "coq-gappa")
- (version "1.5.2")
+ (version "1.5.3")
(source
(origin
(method git-fetch)
@@ -325,7 +300,7 @@ inside Coq.")
(file-name (git-file-name name version))
(sha256
(base32
- "0l65ah81yj9vabgkwqh47c02qvscvl8nl60gqn1qrs47dx1pi80q"))))
+ "1dzkb2sfglhik2ymw8p65khl163xxjsaqji9agnnkvlk5r6589v6"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@@ -375,7 +350,7 @@ assistant.")
(define-public coq-mathcomp
(package
(name "coq-mathcomp")
- (version "1.15.0")
+ (version "1.17.0")
(source
(origin
(method git-fetch)
@@ -384,7 +359,7 @@ assistant.")
(commit (string-append "mathcomp-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "158zl36zbvi5qx2nqbfnrg00jpgp6hjr5hmls7d8d0421ar6b67i"))))
+ (base32 "06i6kw5p2024n6h9mf8bvwn54il1a4z2h4qrgc8y0iq8hkvx4fnd"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml which coq))
@@ -412,7 +387,7 @@ part of the distribution.")
(define-public coq-coquelicot
(package
(name "coq-coquelicot")
- (version "3.2.0")
+ (version "3.4.0")
(source
(origin
(method git-fetch)
@@ -422,7 +397,7 @@ part of the distribution.")
(file-name (git-file-name name version))
(sha256
(base32
- "146s5y2xsc7wb43m1pq1n4p14hw99gqbzx0ic3a4naxq16v7cv4w"))))
+ "1f6zim6hnm6zrij964vas6rfbxh5p147qsxxmmbxm7gyb85hhy45"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@@ -495,7 +470,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(define-public coq-interval
(package
(name "coq-interval")
- (version "4.5.2")
+ (version "4.8.0")
(source
(origin
(method git-fetch)
@@ -505,7 +480,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(file-name (git-file-name name version))
(sha256
(base32
- "138vgb0bq6wkygrhkahjgb9spwpzc6x6kkycj2qnf5naxx1z412w"))))
+ "0m3icx77p99ld9qfl3xjq62q572pyi4m77i1kc3whvipvg7834rh"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@@ -542,35 +517,31 @@ Coq proof assistant.")
(license license:cecill-c)))
(define-public coq-autosubst
- ;; Latest commit on that branch, where work on supporting coq 8.6 and
- ;; more recent versions of coq happen.
- (let ((branch "coq86-devel")
- (commit "fa6ef30664511ffa659cbcf3c962715cbee03572"))
- (package
- (name "coq-autosubst")
- (version (git-version "1" branch commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "git://github.com/uds-psl/autosubst")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1cl0bp96bk6lplbl7n5c703vd3gvbs5mvf2qrf8q333kkqd7jqq4"))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f
+ (package
+ (name "coq-autosubst")
+ (version "1.8")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/coq-community/autosubst")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0qk72r6cqxwhqqkl2kmryhw365w3l2016qii1q1sk3md7zq46jcz"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
#:make-flags (list (string-append "COQLIBINSTALL="
(assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure))))
- (native-inputs
- (list coq))
- (home-page "https://www.ps.uni-saarland.de/autosubst/")
- (synopsis "Coq library for parallel de Bruijn substitutions")
- (description "Formalizing syntactic theories with variable binders is
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ (list coq))
+ (home-page "https://www.ps.uni-saarland.de/autosubst/")
+ (synopsis "Coq library for parallel de Bruijn substitutions")
+ (description "Formalizing syntactic theories with variable binders is
not easy. Autosubst is a library for the Coq proof assistant to
automate this process. Given an inductive definition of syntactic objects in
de Bruijn representation augmented with binding annotations, Autosubst
@@ -581,21 +552,21 @@ usage of substitution lemmas unnecessary. The tactic is based on our current
work on a decision procedure for the equational theory of an extension of the
sigma-calculus by Abadi et al. The library is completely written in Coq and
uses Ltac to synthesize the substitution operation.")
- (license license:bsd-3))))
+ (license license:bsd-3)))
(define-public coq-equations
(package
(name "coq-equations")
- (version "1.3")
+ (version "1.3-8.17")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattam82/Coq-Equations")
- (commit (string-append "v" version "-8.16"))))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "08f756vgdd1wklkarg0b93j4n5mhkqm5ixxrhyb23dcv2dwhc8yg"))))
+ "0g68h4c1ijpphixvl9wkd7sibds38v4236dpvvh194j5ii42vnn8"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml coq camlp5))
@@ -673,7 +644,7 @@ also provided in Coq, without associated proofs.")
(define-public coq-stdpp
(package
(name "coq-stdpp")
- (version "1.7.0")
+ (version "1.8.0")
(synopsis "Alternative Coq standard library std++")
(source (origin
(method git-fetch)
@@ -683,7 +654,7 @@ also provided in Coq, without associated proofs.")
(file-name (git-file-name name version))
(sha256
(base32
- "0447wbzm23f9rl8byqf6vglasfn6c1wy6cxrrwagqjwsh3i5lx8y"))))
+ "0xawh3xkh76yhs689zw52k55cbzga2gyzl4g1a3pgg6yy420chjn"))))
(build-system gnu-build-system)
(inputs
(list coq))
@@ -747,7 +718,7 @@ for goals involving set operations.
"/lib/coq/user-contrib"))
#:phases (modify-phases %standard-phases
(delete 'configure))))
- (inputs (list coq coq-stdlib coq-mathcomp which))
+ (inputs (list coq coq coq-mathcomp which))
(synopsis "Finite sets and finite types for coq-mathcomp")
(description
"This library is an extension of coq-mathcomp which supports finite sets
@@ -778,7 +749,7 @@ subsume notations for finite sets.")
;; by the packaged project in the future.
#:tests? #f
#:make-flags ,#~(list (string-append "COQBIN="
- #$(this-package-input "coq-core")
+ #$(this-package-input "coq")
"/bin/")
(string-append "COQMF_COQLIB="
(assoc-ref %outputs "out")
@@ -788,7 +759,7 @@ subsume notations for finite sets.")
"/lib/coq/user-contrib"))
#:phases (modify-phases %standard-phases
(delete 'configure))))
- (propagated-inputs (list coq coq-core coq-mathcomp which))
+ (propagated-inputs (list coq coq-mathcomp which))
(home-page "https://math-comp.github.io/")
(synopsis "Small library to do epsilon - N reasoning")
(description
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 62a1923571..e530d1d2a8 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2020, 2021, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020, 2021, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
@@ -29,7 +29,7 @@
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2022, 2023 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2022, 2023, 2024 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
@@ -513,7 +513,17 @@ operating on batches.")
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DHWY_SYSTEM_GTEST=on"
- "-DBUILD_SHARED_LIBS=ON")))
+ "-DBUILD_SHARED_LIBS=ON")
+ ,@(if (string-prefix? "i686-linux" (or (%current-system)
+ (%current-target-system)))
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'really-skip-precision-tests
+ (lambda _
+ (substitute* "hwy/contrib/math/math_test.cc"
+ (("Skipping math_test due to GCC issue with excess precision.*" m)
+ (string-append m "return;\n")))))))
+ '())))
(native-inputs
(list googletest))
(home-page "https://github.com/google/highway")
@@ -2442,7 +2452,7 @@ CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
(define-public fast-float
(package
(name "fast-float")
- (version "3.5.1")
+ (version "6.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2451,7 +2461,7 @@ CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
(file-name (git-file-name name version))
(sha256
(base32
- "0z3rxxd0pwvw70dbnv63rm67biw829vdqf50y16isxm6g3sbrz8g"))))
+ "1xf4gbllha760cr0ri53zsja46dypj45lj070ijb5f78xavfd8f8"))))
(build-system cmake-build-system)
(arguments
(list
@@ -2467,9 +2477,7 @@ CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
(("if\\(NOT supplemental_test_files_POPULATED.*")
(string-append
"set(supplemental_test_files_BINARY_DIR "
- (search-input-directory (or native-inputs inputs)
- "data")
- ")\nif(0)\n"))))))))
+ #$fast-float-test-files ")\nif(0)\n"))))))))
(native-inputs (list doctest fast-float-test-files))
(home-page "https://github.com/fastfloat/fast_float")
(synopsis "Floating point number parser for C++")
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 842946e766..407e64ae05 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2018 Sandeep Subramanian <sandeepsubramanian94@gmail.com>
;;; Copyright © 2018 Charlie Ritter <chewzeirta@posteo.net>
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
-;;; Copyright © 2018, 2020-2023 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
+;;; Copyright © 2018, 2020-2024 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2018 Laura Lazzati <laura.lazzati.15@gmail.com>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
@@ -119,13 +119,13 @@
(define-public r-aer
(package
(name "r-aer")
- (version "1.2-10")
+ (version "1.2-12")
(source (origin
(method url-fetch)
(uri (cran-uri "AER" version))
(sha256
(base32
- "1p6vxr0220lim5i4gwsvphqrfd65zbs8h3qydz4gipca9asmy2k5"))))
+ "11pas7lglcw1h5649bgab13g8xlnx109pc2aqphwc3fdgvqv1ism"))))
(properties `((upstream-name . "AER")))
(build-system r-build-system)
(propagated-inputs
@@ -4418,13 +4418,13 @@ in systems and applications.")
(define-public r-servr
(package
(name "r-servr")
- (version "0.28")
+ (version "0.29")
(source (origin
(method url-fetch)
(uri (cran-uri "servr" version))
(sha256
(base32
- "10nl6aal2kr0k1j7yfpggcxpjxby6z5hhc6wb4nkqhy2w5qi6g26"))))
+ "1zpwvqg9jpvrn8xl9yrlbd5mpxprdgw6v599d6f06rdgh2j537m3"))))
(build-system r-build-system)
(propagated-inputs
(list r-httpuv r-jsonlite r-mime r-xfun))
@@ -6561,14 +6561,14 @@ functions and compiled functions callable by other packages.")
(define-public r-rcppthread
(package
(name "r-rcppthread")
- (version "2.1.6")
+ (version "2.1.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppThread" version))
(sha256
(base32
- "1997ka0dd36d79fb4crqq0ar3bgzdv4mw5hd6v2pmq7555g0qiz9"))))
+ "1s5v4fa59gmjcd0cn7q7zy67ww9zwnly4apbgr87x9qkzgzbmpl8"))))
(properties `((upstream-name . "RcppThread")))
(build-system r-build-system)
(native-inputs (list r-r-rsp))
@@ -6823,13 +6823,13 @@ graphics packages that comes with the base installation.")
(define-public r-ctrdata
(package
(name "r-ctrdata")
- (version "1.17.0")
+ (version "1.17.1")
(source (origin
(method url-fetch)
(uri (cran-uri "ctrdata" version))
(sha256
(base32
- "0wx0922rlabjaiijh66sr940iawm38hcx1zpiyz9r8a2iscqxlwb"))))
+ "0vb6nxhms66p90lh8ky693k7hchi5fbxxf8lnjcj4vhc0c5ijxns"))))
(properties `((upstream-name . "ctrdata")))
(build-system r-build-system)
(propagated-inputs
@@ -7502,13 +7502,13 @@ provides an interactive R manager and worker environment.")
(define-public r-rmumps
(package
(name "r-rmumps")
- (version "5.2.1-26")
+ (version "5.2.1-27")
(source
(origin
(method url-fetch)
(uri (cran-uri "rmumps" version))
(sha256
- (base32 "16ii9yg20xkxhsqszay42s4cr29k74av5d9d1d28kmpw6cjh2r2c"))))
+ (base32 "08zvmbhjgcrlgdhfn8ssajy8vnwcyaw90zgc0v1ncn95z310gpl3"))))
(properties `((upstream-name . "rmumps")))
(build-system r-build-system)
(inputs (list zlib))
@@ -7703,14 +7703,14 @@ software.")
(define-public r-extremes
(package
(name "r-extremes")
- (version "2.1-3")
+ (version "2.1-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "extRemes" version))
(sha256
(base32
- "0h1w177vz3z58vbqrfbiqapf9z2qsd7gcbv8fnbyn0i5akfz1k71"))))
+ "12mphdq9zi0r07x3gpj5dg4687hwnjx42d9a392rjbbsgvv2r96f"))))
(properties `((upstream-name . "extRemes")))
(build-system r-build-system)
(propagated-inputs
@@ -7951,14 +7951,14 @@ transportation problems.")
(define-public r-limsolve
(package
(name "r-limsolve")
- (version "1.5.7")
+ (version "1.5.7.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "limSolve" version))
(sha256
(base32
- "1waqkkipks8h4h5lpn0xw0077hwpz963q42h7xv6f70p07zncxq4"))))
+ "14jvx0sjjdsm6fxvdck648h12sl4cmy8sgw8jx1744pmpcbm5555"))))
(properties `((upstream-name . "limSolve")))
(build-system r-build-system)
(propagated-inputs
@@ -8237,13 +8237,13 @@ contexts.")
(define-public r-cvxr
(package
(name "r-cvxr")
- (version "1.0-11")
+ (version "1.0-12")
(source (origin
(method url-fetch)
(uri (cran-uri "CVXR" version))
(sha256
(base32
- "0alp1g4bszxqcrjbn54bz1zswg8y10372fwwlbi0jjazycw9cap9"))))
+ "1igzi231rkqi7pc5ak8b29a8x7fry0yqs8vg2m4i5ab9jdm8fsp7"))))
(properties `((upstream-name . "CVXR")))
(build-system r-build-system)
(propagated-inputs
@@ -10306,13 +10306,13 @@ iVAT).")
(define-public r-xfun
(package
(name "r-xfun")
- (version "0.41")
+ (version "0.42")
(source
(origin
(method url-fetch)
(uri (cran-uri "xfun" version))
(sha256
- (base32 "00ivgr557ja8l33lvawrivfhgj1xbjmdi4dj07zybwa1y6wc6x13"))))
+ (base32 "02kmlp5hzkcs35hwbvz06178i9rn96yfh93n6swzr89b47nzmfq7"))))
(build-system r-build-system)
(properties
;; knitr itself depends on xfun
@@ -11768,6 +11768,41 @@ point} (IP), @dfn{majorize and minimize} (MM), @dfn{coordinate descent} (CD),
and @dfn{alternating direction method of multipliers algorithms} (ADMM).")
(license license:gpl2+)))
+(define-public r-imifa
+ (package
+ (name "r-imifa")
+ (version "2.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "IMIFA" version))
+ (sha256
+ (base32 "08h53w1axvmvnd4z1nf5bsps5sr6g8a77q6pvg39ss7jcfqm800v"))))
+ (properties `((upstream-name . "IMIFA")))
+ (build-system r-build-system)
+ (propagated-inputs
+ (list r-matrixstats
+ r-mvnfast
+ r-mclust
+ r-rfast
+ r-slam
+ r-viridislite))
+ (native-inputs (list r-knitr))
+ (home-page "https://cran.r-project.org/package=IMIFA")
+ (synopsis
+ "Infinite mixtures of infinite factor analysers and related models")
+ (description
+ "This package provides flexible Bayesian estimation of @acronym{IMIFA,
+infinite mixtures of infinite factor analysers} and related models, for
+nonparametrically clustering high-dimensional data. The IMIFA model conducts
+Bayesian nonparametric model-based clustering with factor analytic covariance
+structures without recourse to model selection criteria to choose the number of
+clusters or cluster-specific latent factors, mostly via efficient Gibbs updates.
+Model-specific diagnostic tools are also provided, as well as many options for
+plotting results, conducting posterior inference on parameters of interest,
+posterior predictive checking, and quantifying uncertainty.")
+ (license license:gpl3+)))
+
(define-public r-import
(package
(name "r-import")
@@ -13477,16 +13512,17 @@ without rendering it again in shiny apps.")
(define-public r-ggseqlogo
(package
(name "r-ggseqlogo")
- (version "0.1")
+ (version "0.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggseqlogo" version))
(sha256
(base32
- "13q6kcpxrqxqbji889fx63p0nsi08lk5yymkchig75r5k1d18ky1"))))
+ "1drncw73950dzjx3lyyfqrxm3rdbrp44n27sl4b17m9d0crdbgqw"))))
(build-system r-build-system)
(propagated-inputs (list r-ggplot2))
+ (native-inputs (list r-knitr))
(home-page "https://github.com/omarwagih/ggseqlogo")
(synopsis "ggplot2 extension for drawing genetic sequence logos")
(description
@@ -14039,14 +14075,14 @@ references and Rd files.")
(define-public r-officer
(package
(name "r-officer")
- (version "0.6.3")
+ (version "0.6.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "officer" version))
(sha256
(base32
- "0z3phawwxj4h1pwzw8lsl6pnypr77b329mg6r2qnzmj0j81585z5"))))
+ "1mhkb2k9l0fp7xxhx69h1cxyh8gnlpwr5rjiw25s7rp1czwmyjk5"))))
(build-system r-build-system)
(propagated-inputs
(list r-openssl r-r6 r-ragg r-uuid r-xml2 r-zip))
@@ -14364,13 +14400,13 @@ tidyverse workflow.")
(define-public r-nodbi
(package
(name "r-nodbi")
- (version "0.10.0")
+ (version "0.10.1")
(source (origin
(method url-fetch)
(uri (cran-uri "nodbi" version))
(sha256
(base32
- "11sq2avgc8607ibi4193iynjfr51l435zmvdj1izf2ci0ca04azw"))))
+ "180zydrq9wr53y0nd5v1z86f00v49m4xlam91ykc6jy4s7xvamz1"))))
(properties `((upstream-name . "nodbi")))
(build-system r-build-system)
(propagated-inputs
@@ -14478,14 +14514,14 @@ documents.")
(define-public r-writexl
(package
(name "r-writexl")
- (version "1.4.2")
+ (version "1.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "writexl" version))
(sha256
(base32
- "09whcadnwqcshicbhv1vnvdai087yimmnz9lvc3rld5nn8z66xcg"))))
+ "1kkd17xw7giy1k2azw1xnagka7ihicp17bi7nzlm3gqay1cdqlz2"))))
(build-system r-build-system)
(inputs (list zlib))
(home-page "https://github.com/ropensci/writexl")
@@ -16398,13 +16434,13 @@ handle data from simple random samples as well as complex surveys.")
(define-public r-tarchetypes
(package
(name "r-tarchetypes")
- (version "0.7.11")
+ (version "0.7.12")
(source (origin
(method url-fetch)
(uri (cran-uri "tarchetypes" version))
(sha256
(base32
- "1iqrz27n8ndazx97ngqbz5yz5ppyimpbxam30zgdwnnzf963s5ym"))))
+ "0l5kk7a3p0pbqh9rrjz43aa4dgcfffcb3wwsl60bm9v48lzv7frv"))))
(properties `((upstream-name . "tarchetypes")))
(build-system r-build-system)
(propagated-inputs (list r-digest
@@ -17170,14 +17206,14 @@ effects models and Bayesian models.")
(define-public r-ggeffects
(package
(name "r-ggeffects")
- (version "1.3.4")
+ (version "1.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggeffects" version))
(sha256
(base32
- "0hxcal1rldi3295hy5n1nzad092gis1cxnjsbbhfrbj3z35aacbs"))))
+ "1r9mbfcanwh2f617fgxnz3gijgpcjxvwzvpd7z8dg30rcm3ajb5r"))))
(build-system r-build-system)
(propagated-inputs
(list r-insight))
@@ -17911,6 +17947,30 @@ the interfaces between R and C++.")
analysing multivariate abundance data in community ecology.")
(license license:lgpl2.1+)))
+(define-public r-mvnfast
+ (package
+ (name "r-mvnfast")
+ (version "0.2.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "mvnfast" version))
+ (sha256
+ (base32 "1869xqq2wd7yw23q4ma5qawcnbdp7myafk6rdxazqymqak7f0wc8"))))
+ (properties `((upstream-name . "mvnfast")))
+ (build-system r-build-system)
+ (propagated-inputs (list r-bh r-rcpp r-rcpparmadillo))
+ (native-inputs (list r-knitr))
+ (home-page "https://github.com/mfasiolo/mvnfast/")
+ (synopsis "Fast multivariate normal and Student's t methods")
+ (description
+ "This package provides computationally efficient tools related to the
+multivariate normal and Student's t distributions. The main functionalities
+are: simulating multivariate random vectors, evaluating multivariate normal or
+Student's t densities and Mahalanobis distances. These tools are developed
+using C++ code and of the OpenMP API.")
+ (license license:gpl2+)))
+
(define-public r-afex
(package
(name "r-afex")
@@ -18166,14 +18226,14 @@ This package provides an R interface.")
(define-public r-rcpphnsw
(package
(name "r-rcpphnsw")
- (version "0.5.0")
+ (version "0.6.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppHNSW" version))
(sha256
(base32
- "0sb9g41lk2f7fj0hpg9qvyp6gbvwlcjpi9gxs3lh3xxfzrnap5w9"))))
+ "03sqzz1993jsjm5vpyd1n1fpsrdfrky6dpv7m9ialhs1m00fv9m5"))))
(properties `((upstream-name . "RcppHNSW")))
(build-system r-build-system)
(propagated-inputs (list r-rcpp))
@@ -18355,14 +18415,14 @@ image formats, including PNG, Postscript, SVG, PGF.")
(define-public r-multicool
(package
(name "r-multicool")
- (version "1.0.0")
+ (version "1.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "multicool" version))
(sha256
(base32
- "0gcic5w3z5yibq75j7jzjv3lmy04rfmxswmw60vxba4xsnbqxc2g"))))
+ "07vcyp7yd1rzlldxzpzrdgifnw88z0maq2dgsqc218vyplgxwwmx"))))
(build-system r-build-system)
(propagated-inputs (list r-rcpp))
(home-page "https://cran.r-project.org/web/packages/multicool/")
@@ -19577,16 +19637,15 @@ Touzet and Varre (2007).")
(define-public r-rnaturalearthdata
(package
(name "r-rnaturalearthdata")
- (version "0.1.0")
+ (version "1.0.0")
(source (origin
(method url-fetch)
(uri (cran-uri "rnaturalearthdata" version))
(sha256
(base32
- "1z32j5lz2lb8xgpkr73majw22k0b49iazj6jjc7j4w9k4zxxa102"))))
+ "0k8yzgpbf8d2jxxy9vzqfa3z3w4h3i9kp4rc811f4pspxbqzmzp1"))))
(properties `((upstream-name . "rnaturalearthdata")))
(build-system r-build-system)
- (propagated-inputs (list r-sp))
(home-page "https://github.com/ropenscilabs/rnaturalearthdata")
(synopsis "World vector map data from Natural Earth")
(description
@@ -21972,14 +22031,14 @@ numbers (e.g. concentrations).")
(define-public r-cobs
(package
(name "r-cobs")
- (version "1.3-5")
+ (version "1.3-7")
(source
(origin
(method url-fetch)
(uri (cran-uri "cobs" version))
(sha256
(base32
- "04f6a6gp11p93j2k35mbrfqgjx5qsgi3dj1085a5v5s0z6l7vbkz"))))
+ "0gz6i8scvfkmg0z7rcqc422dm360xv5ygcxnj6yyvpcpdv7sdp9k"))))
(build-system r-build-system)
(propagated-inputs
(list r-quantreg r-sparsem))
@@ -22607,13 +22666,13 @@ plotting functions are available for analyzing clustering results.")
(define-public r-remacor
(package
(name "r-remacor")
- (version "0.0.16")
+ (version "0.0.18")
(source (origin
(method url-fetch)
(uri (cran-uri "remaCor" version))
(sha256
(base32
- "1xznj2y3qszw8s1fgbs8fiadg7c0gl3ml1blxmwixb32kr2cv5vq"))))
+ "0c8n2zj84m2z0vznx81qrspnyyj38imb73di4l2k0brr8jxgzr2p"))))
(properties `((upstream-name . "remaCor")))
(build-system r-build-system)
(propagated-inputs
@@ -22709,14 +22768,14 @@ can be used with function approximation, eligibility traces (Singh & Sutton,
(define-public r-lemon
(package
(name "r-lemon")
- (version "0.4.7")
+ (version "0.4.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "lemon" version))
(sha256
(base32
- "1r33n7bkfhjpyi23j7gsi387qvyazcy9b912dsd3vg2yqir8s26p"))))
+ "1yjam478s6sz1spggybb34akpmpgq8ybyrhzy3b1v9s1j81b6k87"))))
(build-system r-build-system)
(propagated-inputs
(list r-ggplot2
@@ -23293,13 +23352,13 @@ or raster data cubes) are handled by package stars'.")
(define-public r-spdep
(package
(name "r-spdep")
- (version "1.3-1")
+ (version "1.3-3")
(source (origin
(method url-fetch)
(uri (cran-uri "spdep" version))
(sha256
(base32
- "15jkx3f4c1255kidsqdq4gyi28r4jk3h46fm7jj114ag176jq1in"))
+ "06j26v0w33vyh5ilq1cn0rh8z0lrr3n0lxwxc7bsk2w524d3v6yw"))
(snippet
'(for-each delete-file '("inst/doc/CO69.html"
"inst/doc/CO69.R"
@@ -23554,14 +23613,14 @@ include
(define-public r-haplo-stats
(package
(name "r-haplo-stats")
- (version "1.9.5")
+ (version "1.9.5.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "haplo.stats" version))
(sha256
(base32
- "17h7nxpc5ggxwpc4j4cxf7n0qglc93vhwd4ljwa8ic33x3yab673"))))
+ "1fcnyglmz9ia6zpk0vvmjqiwxlpal58rksgb1yvrajqgylw3kbsy"))))
(properties `((upstream-name . "haplo.stats")))
(build-system r-build-system)
(propagated-inputs
@@ -24683,14 +24742,14 @@ discriminant analysis for the purpose of classifying high dimensional data.")
(define-public r-ggvis
(package
(name "r-ggvis")
- (version "0.4.8")
+ (version "0.4.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggvis" version))
(sha256
(base32
- "0sm28s2zlr3rbp7qzpgin7d9axixn4kgi1apb5mw4mvsp6h80m1x"))
+ "0bx1bg19l8nfwzwhnn2jn0b0lwcb781l6v9k5zfsx44wg22d3fb9"))
(snippet
'(for-each delete-file
'("inst/www/lib/d3/d3.min.js"
@@ -25306,14 +25365,14 @@ matched.")
(define-public r-ggnewscale
(package
(name "r-ggnewscale")
- (version "0.4.9")
+ (version "0.4.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggnewscale" version))
(sha256
(base32
- "1vy0i2gk57k06gzywy8hdhl2k9511c5mhy9dzvkzlagqihp5b8bh"))))
+ "1j8d512qhdlhfp3hb36d1dqlqlxs0i303mnn31xnq1adcwwibmlz"))))
(properties `((upstream-name . "ggnewscale")))
(build-system r-build-system)
(propagated-inputs
@@ -26118,14 +26177,14 @@ annotated biological functions.")
(define-public r-plot3d
(package
(name "r-plot3d")
- (version "1.4")
+ (version "1.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "plot3D" version))
(sha256
(base32
- "1h59zlsyzbjylaziwavppl9bjmnba4iiq34772y3dys6fqclajnh"))))
+ "1x6ian6hfkaih2aa11z92qlihqqf5wmpc9705dzigafx8i4gfvfv"))))
(properties `((upstream-name . "plot3D")))
(build-system r-build-system)
(propagated-inputs (list r-misc3d))
@@ -27176,14 +27235,14 @@ in pipelines.")
(define-public r-parameters
(package
(name "r-parameters")
- (version "0.21.3")
+ (version "0.21.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "parameters" version))
(sha256
(base32
- "091zpyq37v7xjicj4h4r4fqhrrc7d3hicgbdznsjn85sw4d7q595"))))
+ "0yxljycspmljj5s4i5knwyhxp29s616f7kg3xcwn0ip15kfg260v"))))
(properties `((upstream-name . "parameters")))
(build-system r-build-system)
(propagated-inputs
@@ -28095,14 +28154,14 @@ Adibi et al. (2019) @url{doi:10.1101/651901}.")
(define-public r-smpracticals
(package
(name "r-smpracticals")
- (version "1.4-3")
+ (version "1.4-3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "SMPracticals" version))
(sha256
(base32
- "0zxq84f9i3b86xx6msb25b61gyj9k09iab2b7wg4d93yas9qzayf"))))
+ "1xplp7ihy9ish7fqhc27bhvij9lk9w9mrs7lpdca38ppi4iiafi2"))))
(properties `((upstream-name . "SMPracticals")))
(build-system r-build-system)
(propagated-inputs
@@ -30534,14 +30593,14 @@ these algorithms also detect anomalies (outliers).")
(define-public r-idpmisc
(package
(name "r-idpmisc")
- (version "1.1.20")
+ (version "1.1.21")
(source
(origin
(method url-fetch)
(uri (cran-uri "IDPmisc" version))
(sha256
(base32
- "0zy6mxqa8arq0vvhsdcifzm3085c23rnwa1n36fhircph1xwvfdw"))))
+ "1308z4i2glr1260zjjymm19g3d7nk8djhdwdfbh7ipvkgsp9b2s7"))))
(properties `((upstream-name . "IDPmisc")))
(build-system r-build-system)
(propagated-inputs
@@ -30736,14 +30795,14 @@ Francesca Mazzia (2012).")
(define-public r-lim
(package
(name "r-lim")
- (version "1.4.7")
+ (version "1.4.7.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "LIM" version))
(sha256
(base32
- "0d9bgyd0mnag8wds993dsvlbpkhyakydlzwc3nghxzv2n8504hjj"))))
+ "1ygzj3mc01jfdn7y938gsnnbf358n0jpddkiyc1zmvjig37yz180"))))
(properties `((upstream-name . "LIM")))
(build-system r-build-system)
(propagated-inputs
@@ -31842,14 +31901,14 @@ fairly comprehensive overview.")
(define-public r-lisreltor
(package
(name "r-lisreltor")
- (version "0.1.5")
+ (version "0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "lisrelToR" version))
(sha256
(base32
- "0i51v0x87277ly0kggdd594w6q4zq62b4n7xs9r25j08bzs82nfk"))))
+ "19xl85dkvjpdsmi6y8789zlyccwjf265alsd7985vbkqdzfvpgkb"))))
(properties `((upstream-name . "lisrelToR")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/package=lisrelToR")
@@ -33147,14 +33206,14 @@ is also implemented here.")
(define-public r-aws
(package
(name "r-aws")
- (version "2.5-3")
+ (version "2.5-5")
(source
(origin
(method url-fetch)
(uri (cran-uri "aws" version))
(sha256
(base32
- "022igrvxlyi0ckl3c6chcm459kv213jxy5hrvc14m36yhn3xckhm"))))
+ "0nsc7fakwcppav2h2kys0j28ga2p2si4kbygfka955dmbiwv4z5j"))))
(properties
`((upstream-name . "aws")))
(build-system r-build-system)
@@ -33474,27 +33533,19 @@ vignette for more information and examples.")
(define-public r-distributional
(package
(name "r-distributional")
- (version "0.3.2")
+ (version "0.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "distributional" version))
(sha256
(base32
- "1y08s301mxz7c54lxa1j0zzbsrgphxv5hsyam3jswcw274rxd0y8"))))
+ "00p6427lw65py24qr9rlhj1wg4z5wgszgmbmbxbpjk7dkckz7d89"))))
(properties
`((upstream-name . "distributional")))
(build-system r-build-system)
(propagated-inputs
- (list r-digest
- r-farver
- r-generics
- r-ggplot2
- r-lifecycle
- r-numderiv
- r-rlang
- r-scales
- r-vctrs))
+ (list r-generics r-lifecycle r-numderiv r-rlang r-vctrs))
(home-page "https://pkg.mitchelloharawild.com/distributional/")
(synopsis "Vectorized probability distributions")
(description
@@ -33813,14 +33864,14 @@ counting and recursive k-means partitioning.")
(define-public r-hardhat
(package
(name "r-hardhat")
- (version "1.3.0")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "hardhat" version))
(sha256
(base32
- "0bp83yw7j34iwir2f73ainic11cdz0q18m5v1kbx8vdsw84z17zy"))))
+ "0v0vvvyy075f0j9ppqkhys6w2k7zmfdg0v77l430582nhrvp99hf"))))
(properties `((upstream-name . "hardhat")))
(build-system r-build-system)
(propagated-inputs
@@ -34329,13 +34380,13 @@ Kolmogorov-Smirnov, ANOVA) are also supported.")
(define-public r-spatstat-model
(package
(name "r-spatstat-model")
- (version "3.2-8")
+ (version "3.2-10")
(source (origin
(method url-fetch)
(uri (cran-uri "spatstat.model" version))
(sha256
(base32
- "1x03fy921rq8dyr6jkpwnx7pf7fc5593mvnl8r1gz3sypnmp6p4d"))))
+ "0hl2pg5lhypqxlzrmf9sjp2m44g1yjbhnjff712x542vhwva889a"))))
(properties `((upstream-name . "spatstat.model")))
(build-system r-build-system)
(propagated-inputs
@@ -34496,14 +34547,14 @@ user-level code from spatstat, except for the code for linear networks.")
(define-public r-spatstat-linnet
(package
(name "r-spatstat-linnet")
- (version "3.1-3")
+ (version "3.1-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.linnet" version))
(sha256
(base32
- "1ybjl5ccp9r5ilbihwzk93zcm46pbpldn3nfbfpdw458xh894r3q"))))
+ "1inqirh58q19mvf4wvnhm31418xfzd1ysvcxwda3g11pv8jq2g3d"))))
(properties
`((upstream-name . "spatstat.linnet")))
(build-system r-build-system)
@@ -36501,14 +36552,14 @@ designs. Broman et al. (2018) <doi:10.1534/genetics.118.301595>.")
(define-public r-seqminer
(package
(name "r-seqminer")
- (version "9.3")
+ (version "9.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "seqminer" version))
(sha256
(base32
- "07dig3ydybmi55qy1zpkxpw568midgc1bzdl3k36734yqnsp2sjs"))))
+ "0m9ysdq4ch4c2i3d86gd32rbi0v637djvr295wzzwgkflk66sz5c"))))
(build-system r-build-system)
(inputs
(list zlib))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index c7145bcb0c..6857ea2075 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -60,6 +60,7 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages image)
#:use-module (gnu packages kerberos)
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 0fb83a7a12..02a602a66d 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -49,6 +49,7 @@
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages guile)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages logging)
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 903088ed4b..dc4a91f14d 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -107,6 +107,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages gperf)
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index de43182172..1715b963a9 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2018, 2020-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,6 +25,7 @@
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix packages)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages autotools)
@@ -146,6 +148,29 @@ contains the archive keys used for that.")
;; "The keys in the keyrings don't fall under any copyright."
(license license:public-domain)))
+(define-public trisquel-keyring
+ (package
+ (name "trisquel-keyring")
+ (version "2022.10.19")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://archive.trisquel.info/trisquel/"
+ "pool/main/t/trisquel-keyring/trisquel-keyring_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1qkqm3wb945i2izm47xni21hi3ad807bvl106r2mnwdxnjs4ij08"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan '(("keyrings/trisquel-archive-keyring.gpg"
+ "share/keyrings/"))))
+ (home-page "http://archive.trisquel.info/trisquel/pool/main/t/trisquel-keyring")
+ (synopsis "GnuPG archive keys of the Trisquel archive")
+ (description "The Trisquel distribution signs its packages. This package
+contains the archive keys used for that.")
+ (license license:gpl2+))) ;; see debian/copyright
+
(define-public ubuntu-keyring
(package
(name "ubuntu-keyring")
@@ -208,6 +233,7 @@ contains the archive keys used for that.")
(add-after 'unpack 'patch-source
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((debian #$(this-package-input "debian-archive-keyring"))
+ (trisquel #$(this-package-input "trisquel-keyring"))
(ubuntu #$(this-package-input "ubuntu-keyring")))
(substitute* "Makefile"
(("/usr") ""))
@@ -220,6 +246,11 @@ contains the archive keys used for that.")
(("/usr") debian))
(substitute* "scripts/gutsy"
(("/usr") ubuntu))
+ (substitute* "scripts/robur"
+ (("/usr/share/keyrings/trisquel-archive-keyring.gpg")
+ (string-append
+ trisquel
+ "/share/keyrings/trisquel-archive-keyring.gpg")))
(substitute* "debootstrap"
(("=/usr") (string-append "=" #$output))
(("/usr/bin/dpkg") (search-input-file inputs "/bin/dpkg")))
@@ -227,6 +258,8 @@ contains the archive keys used for that.")
(substitute* (find-files "scripts")
(("keyring.*(debian-archive-keyring.gpg)"_ keyring)
(string-append "keyring " debian "/share/keyrings/" keyring))
+ (("keyring.*(trisquel-archive-keyring.gpg)" _ keyring)
+ (string-append "keyring " trisquel "/share/keyrings/" keyring))
(("keyring.*(ubuntu-archive-keyring.gpg)" _ keyring)
(string-append "keyring " ubuntu "/share/keyrings/" keyring)))
;; Ensure PATH works both in guix and within the debian chroot
@@ -251,11 +284,14 @@ contains the archive keys used for that.")
#:tests? #f)) ; no tests
(inputs
(list debian-archive-keyring
+ trisquel-keyring
ubuntu-keyring
bash-minimal
dpkg
tzdata
-
+ ;; Needed by dpkg-deb in extract_dpkg_deb_data for at least
+ ;; Trisquel 11 (aramo).
+ zstd
;; Called at run-time from various places, needs to be in PATH.
gnupg
wget))
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 626ac00425..f4d271f690 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -74,7 +74,7 @@
(define-public diffoscope
(package
(name "diffoscope")
- (version "255")
+ (version "256")
(source
(origin
(method git-fetch)
@@ -83,7 +83,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "07mkmwp3ni2dh5w5q2vxkc588l5dabcly3jrd8ic62318si7d400"))))
+ (base32 "1sdg314a3hp2kv492130p8w7j8mlhymij7h2rndm4q7gqrshp6jf"))))
(build-system python-build-system)
(arguments
(list
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 165f0a8a74..b0117d77ce 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -69,6 +69,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index fbe8edeef0..0fe1f2c1c7 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -42,6 +42,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages glib)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages linux)
#:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config)
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 7b72ed0349..c3009537e9 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -47,7 +47,9 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages image)
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index ef8c39d0d7..2d11707711 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -7,6 +7,8 @@
;;; Copyright © 2018 Nikita <nikita@n0.is>
;;; Copyright © 2021 Oskar Köök <oskar@maatriks.ee>
;;; Copyright © 2021 Cees de Groot <cg@evrl.com>
+;;; Copyright © 2024 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2024 Ivan Sokolov <ivan-p-sokolov@ya.ru>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -101,7 +103,18 @@
(add-after 'install 'wrap-programs
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (programs '("elixir" "elixirc" "iex" "mix")))
+ (programs '("elixir" "elixirc" "iex")))
+ ;; mix can be sourced as an elixir script by other elixir
+ ;; program, for example `iex -S mix`, so we should not wrap
+ ;; mix into shell script.
+ (substitute* (string-append out "/bin/mix")
+ (("Mix.start\\(\\)") "\
+~w[GUIX_ELIXIR_LIBS ERL_LIBS]
+|> Enum.map(&System.get_env/1)
+|> Enum.reject(&is_nil/1)
+|> Enum.join(\":\")
+|> case do \"\" -> :ok; erl_libs -> System.put_env(\"ERL_LIBS\", erl_libs) end
+Mix.start()"))
(for-each (lambda (program)
(wrap-program (string-append out "/bin/" program)
'("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}"))))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c7e6852194..472d5cc812 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -11018,8 +11018,8 @@ when the cursor enters a fragment and disappear when it leaves.")
(define-public emacs-org-dailies
;; No tags or versions.
- (let ((commit "64477d5c5cd92df72ba1375eeb149889d42371d7")
- (revision "0"))
+ (let ((commit "58e58d4968ddb70312160def1c7c3c00382ef655")
+ (revision "1"))
(package
(name "emacs-org-dailies")
(version (git-version "0" revision commit))
@@ -11031,9 +11031,8 @@ when the cursor enters a fragment and disappear when it leaves.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1lxm2xr743c2a5wj82qpprcdfsspcw33ijyq5wfbhcv2kngm4yql"))))
+ (base32 "15xhpxkg2cn2fwaql99gnqcdl012g29lxn9fqb6s282mhr9yan7c"))))
(build-system emacs-build-system)
- (propagated-inputs (list emacs-dash))
(home-page "https://git.sr.ht/~ngraves/org-dailies")
(synopsis "Bare-bones daily journaling with Emacs")
(description
@@ -26579,29 +26578,31 @@ autosuggestions with:
(license license:gpl3+)))
(define-public emacs-desktop-environment
- (package
- (name "emacs-desktop-environment")
- (version "0.5.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/DamienCassou/desktop-environment")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "03rl1z860jmirjrrg0xsjx0bqk73k043c8bz6049zhndh7pidri7"))))
- (build-system emacs-build-system)
- (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
- (synopsis "Control your GNU/Linux desktop environment from Emacs")
- (description
- "This package helps you control your GNU/Linux desktop from Emacs.
+ (let ((commit "bc1153aa619b12456304cca642424a0d8d2eb416")
+ (revision "0"))
+ (package
+ (name "emacs-desktop-environment")
+ (version (git-version "0.5.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DamienCassou/desktop-environment")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0bslgm9rz7whk0ll21028dsl22wbd289cdc95qj8hhlk8m4hlp2h"))))
+ (build-system emacs-build-system)
+ (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
+ (synopsis "Control your GNU/Linux desktop environment from Emacs")
+ (description
+ "This package helps you control your GNU/Linux desktop from Emacs.
With @code{desktop-environment}, you can control the brightness and volume as
well as take screenshots and lock your screen. The package depends on the
availability of shell commands to do the hard work for us. These commands can
be changed by customizing the appropriate variables.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-org-caldav
(let ((commit "754989ae500b3f576bdb94fe2ef3059f12eaf7d7")) ;version bump
@@ -34530,11 +34531,11 @@ other @code{helm-type-file} sources such as @code{helm-locate}.")
(license license:gpl3+)))
(define-public emacs-telega-server
- (let ((commit "304705fa007c3dae3c5d0c6dc66641ae783f0081")
+ (let ((commit "e8d9459ef725ed8fb60479b5fccadae1e4eac87a")
(revision "0"))
(package
(name "emacs-telega-server")
- (version (git-version "0.8.230" revision commit))
+ (version (git-version "0.8.240" revision commit))
(source
(origin
(method git-fetch)
@@ -34542,7 +34543,7 @@ other @code{helm-type-file} sources such as @code{helm-locate}.")
(url "https://github.com/zevlg/telega.el")
(commit commit)))
(sha256
- (base32 "02yxjaxpf2f6pjg3ixw7jvx56x6lfh30mnsmiz1p2yi64kyllaan"))
+ (base32 "18f6i2w0iial2wi60vkqck30c0m4p2nj0bzd2x9p4il27dwv5hwq"))
(file-name (git-file-name "emacs-telega" version))
(patches
(search-patches "emacs-telega-path-placeholder.patch"
@@ -39038,8 +39039,8 @@ latest Emacs.")
(define-public emacs-flim-lb
;; No release since Nov 28, 2007.
- (let ((commit "80b8121f05a5a0d7fcfe3e54085467a646dd2028")
- (revision "137"))
+ (let ((commit "abdd2315006eb31476249223569808adb1c0f7b2")
+ (revision "142"))
(package
(name "emacs-flim-lb")
(version (git-version "1.14.9" revision commit))
@@ -39051,7 +39052,7 @@ latest Emacs.")
(file-name (git-file-name name version))
(sha256
(base32
- "02shd2mp9ywncn0wxgrijn0i8fa69kfx1y6nh5jjd64dyiczmskk"))))
+ "1s21y0djlyiwmc1kz3dx19mdiq472ib07gdrw353imw5vmx3mp7d"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-apel-lb emacs-oauth2))
(home-page "https://www.emacswiki.org/emacs/WanderLust")
@@ -39065,8 +39066,8 @@ Emacs.")
(define-public emacs-semi-epg
;; No release since Dec 24, 2003.
- (let ((commit "d15603b8eb791f2057b48071c262996ad7767505")
- (revision "247"))
+ (let ((commit "9063a4485b148a767ea924f0e7cc78d3524ba256")
+ (revision "248"))
(package
(name "emacs-semi-epg")
(version (git-version "1.14.6" revision commit))
@@ -39078,7 +39079,7 @@ Emacs.")
(file-name (git-file-name name version))
(sha256
(base32
- "0cxrzgxflwgz9wsim84vrliwvkf53v242di4dvn2dfh65gccwqjx"))))
+ "18km8jdxjcqnh378xxd7ivvvcxzrif8zpq9zgki9i7f0q8lsx677"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-flim-lb))
(inputs (list emacs-bbdb-vcard))
@@ -39092,8 +39093,8 @@ EasyPG and latest Emacs.")
(define-public emacs-wanderlust
;; No release since Jan 15, 2010.
- (let ((commit "3e8cf26abd9c5c8e4fc611032e259ca930665641")
- (revision "803"))
+ (let ((commit "9fd2c65e8d690625f35035a71e73f51f740dbe04")
+ (revision "818"))
(package
(name "emacs-wanderlust")
(version (git-version "2.15.9" revision commit))
@@ -39114,7 +39115,7 @@ EasyPG and latest Emacs.")
(("package-user-dir") "NONE"))))
(sha256
(base32
- "0k9r3j7pcnvnnj0km8ggjdrf2nfgn1mfq7r7267bk3r3x92cvqh9"))))
+ "034zrl54ql3ddaj5vl62bjzf2a5hvrq5gd9kynmyp0skgk8i6dr2"))))
(build-system emacs-build-system)
(arguments
(list #:phases
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index cde3ee052c..d77659f018 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com>
;;; Copyright © 2021 Felipe Balbi <balbi@kernel.org>
-;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021, 2024 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2023 c4droid <c4droid@foxmail.com>
@@ -351,7 +351,7 @@ console.")
libxi
libxrandr
lzo
- mbedtls-apache
+ mbedtls-lts
mesa
miniupnpc
openal
@@ -791,7 +791,7 @@ and Game Boy Color games.")
(define-public sameboy
(package
(name "sameboy")
- (version "0.15.8")
+ (version "0.16.2")
(source
(origin
(method git-fetch)
@@ -800,7 +800,7 @@ and Game Boy Color games.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "11qz5lamwxgvlh4dc95xd4m8hrypjj3bvha51zg9l454hxlvw4j8"))))
+ (base32 "1ckx5dm57h7ncvfqqqb2mdl5dcmhkardcn78zv965h6w1yxg0ii8"))))
(build-system gnu-build-system)
(native-inputs
(list rgbds pkg-config))
@@ -1433,7 +1433,7 @@ as RetroArch.")
(define-public retroarch
(package
(name "retroarch")
- (version "1.16.0.3")
+ (version "1.17.0")
(source
(origin
(method git-fetch)
@@ -1442,7 +1442,7 @@ as RetroArch.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1nvvd78hx1s73nif7g02pqms29b9v072mxnld0vmsh78236qngq5"))))
+ (base32 "1mf511wh7kpj29vv7rgngamvmfs151n8j4dls7jbqasdj5hik3zi"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
@@ -1490,7 +1490,7 @@ as RetroArch.")
libxml2
libxrandr
libxv
- mbedtls-apache
+ mbedtls-lts
mesa
openal
openssl
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 4a0976ad84..af6d1ee871 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -12,7 +12,8 @@
;;; Copyright © 2021, 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
;;; Copyright © 2022 Brian Cully <bjc@spork.org>
;;; Copyright © 2023 Aaron Covrig <aaron.covrig.us@ieee.org>
-;;;
+;;; Copyright © 2024 Ahmad Draidi <a.r.draidi@redscript.org>
+;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
@@ -71,6 +72,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages guile)
@@ -582,98 +584,98 @@ from a mounted file system.")
(license license:gpl2+)))
(define-public bcachefs-tools
- (let ((commit "1e358401ecdf1963e5799de19ab69111e82e5ebc")
- (revision "0"))
- (package
- (name "bcachefs-tools")
- (version (git-version "1.2" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://evilpiepirate.org/git/bcachefs-tools.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0bflgqb3q9jikyyrv6hywv6m1fapzzn874hlhf86pn6abxrlf5fa"))))
- (build-system gnu-build-system)
- (arguments
- (list #:make-flags
- #~(list (string-append "VERSION=" #$version) ; ‘v…-nogit’ otherwise
- (string-append "PREFIX=" #$output)
- "INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools"
- (string-append "CC=" #$(cc-for-target))
- (string-append "PKG_CONFIG=" #$(pkg-config-for-target))
- ;; ‘This will be less of an option in the future, as more
- ;; code gets rewritten in Rust.’
- "NO_RUST=better")
- #:phases
- #~(modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'check
- ;; The test suite is moribund upstream (‘never been useful’),
- ;; but let's keep running it as a sanity check until then.
- (lambda* (#:key tests? make-flags #:allow-other-keys)
- (when tests?
- ;; We must manually build the test_helper first.
- (apply invoke "make" "tests" make-flags)
- (invoke (string-append
- #$(this-package-native-input "python-pytest")
- "/bin/pytest") "-k"
- ;; These fail (‘invalid argument’) on kernels
- ;; with a previous bcachefs version.
- (string-append "not test_format and "
- "not test_fsck and "
- "not test_list and "
- "not test_list_inodes and "
- "not test_list_dirent")))))
- (add-after 'install 'promote-mount.bcachefs.sh
- ;; The (optional) ‘mount.bcachefs’ requires rust:cargo.
- ;; This shell alternative does the job well enough for now.
- (lambda* (#:key inputs #:allow-other-keys)
- (define (whence file)
- (dirname (search-input-file inputs file)))
- (let ((mount (string-append #$output
- "/sbin/mount.bcachefs")))
- (delete-file mount) ; symlink to ‘bcachefs’
- (copy-file "mount.bcachefs.sh" mount)
- ;; WRAP-SCRIPT causes bogus ‘Insufficient arguments’ errors.
- (wrap-program mount
- `("PATH" ":" prefix
- ,(list (getcwd)
- (whence "bin/tail")
- (whence "bin/awk")
- (whence "bin/mount"))))))))))
- (native-inputs
- (cons* pkg-config
- ;; For generating documentation with rst2man.
- python
- python-docutils
- ;; For tests.
- python-pytest
- (if (member (%current-system) (package-supported-systems valgrind))
- (list valgrind)
- '())))
- (inputs
- (list eudev
- keyutils
- libaio
- libscrypt
- libsodium
- liburcu
- `(,util-linux "lib")
- lz4
- zlib
- `(,zstd "lib")
-
- ;; Only for mount.bcachefs.sh.
- coreutils-minimal
- gawk
- util-linux))
- (home-page "https://bcachefs.org/")
- (synopsis "Tools to create and manage bcachefs file systems")
- (description
- "The bcachefs-tools are command-line utilities for creating, checking,
+ (package
+ (name "bcachefs-tools")
+ (version "1.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://evilpiepirate.org/git/bcachefs-tools.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0axwbckqrw1v3v50nzhpkvpyjbjwy3rq5bv23db84x3xia497apq"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:make-flags
+ #~(list (string-append "VERSION=" #$version) ; ‘v…-nogit’ otherwise
+ (string-append "PREFIX=" #$output)
+ "INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools"
+ "PKGCONFIG_UDEVRULESDIR=$(PREFIX)/lib/udev/rules.d"
+ (string-append "CC=" #$(cc-for-target))
+ (string-append "PKG_CONFIG=" #$(pkg-config-for-target))
+ ;; ‘This will be less of an option in the future, as more
+ ;; code gets rewritten in Rust.’
+ "NO_RUST=better")
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (replace 'check
+ ;; The test suite is moribund upstream (‘never been useful’),
+ ;; but let's keep running it as a sanity check until then.
+ (lambda* (#:key tests? make-flags #:allow-other-keys)
+ (when tests?
+ ;; We must manually build the test_helper first.
+ (apply invoke "make" "tests" make-flags)
+ (invoke (string-append
+ #$(this-package-native-input "python-pytest")
+ "/bin/pytest") "-k"
+ ;; These fail (‘invalid argument’) on kernels
+ ;; with a previous bcachefs version.
+ (string-append "not test_format and "
+ "not test_fsck and "
+ "not test_list and "
+ "not test_list_inodes and "
+ "not test_list_dirent")))))
+ (add-after 'install 'promote-mount.bcachefs.sh
+ ;; The (optional) ‘mount.bcachefs’ requires rust:cargo.
+ ;; This shell alternative does the job well enough for now.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (whence file)
+ (dirname (search-input-file inputs file)))
+ (let ((mount (string-append #$output
+ "/sbin/mount.bcachefs")))
+ (delete-file mount) ; symlink to ‘bcachefs’
+ (copy-file "mount.bcachefs.sh" mount)
+ ;; WRAP-SCRIPT causes bogus ‘Insufficient arguments’ errors.
+ (wrap-program mount
+ `("PATH" ":" prefix
+ ,(list (getcwd)
+ (whence "bin/tail")
+ (whence "bin/awk")
+ (whence "bin/mount"))))))))))
+ (native-inputs
+ (cons* pkg-config
+ ;; For generating documentation with rst2man.
+ python
+ python-docutils
+ ;; For tests.
+ python-pytest
+ (if (member (%current-system) (package-supported-systems valgrind))
+ (list valgrind)
+ '())))
+ (inputs
+ (list eudev
+ keyutils
+ libaio
+ libscrypt
+ libsodium
+ liburcu
+ `(,util-linux "lib")
+ lz4
+ zlib
+ `(,zstd "lib")
+
+ ;; Only for mount.bcachefs.sh.
+ bash-minimal
+ coreutils-minimal
+ gawk
+ util-linux))
+ (home-page "https://bcachefs.org/")
+ (synopsis "Tools to create and manage bcachefs file systems")
+ (description
+ "The bcachefs-tools are command-line utilities for creating, checking,
and otherwise managing bcachefs file systems.
Bcachefs is a @acronym{CoW, copy-on-write} file system supporting native
@@ -683,7 +685,7 @@ multiple block devices for replication and/or performance, similar to RAID.
In addition, bcachefs provides all the functionality of bcache, a block-layer
caching system, and lets you assign different roles to each device based on its
performance and other characteristics.")
- (license license:gpl2+))))
+ (license license:gpl2+)))
(define-public bcachefs-tools/static
(package
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index e050f4fde9..17eb528371 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -58,7 +58,7 @@
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2023 chris <chris@bumblehead.com>
-;;; Copyright © 2023 Luis Felipe López Acevedo <sirgazil@zoho.com>
+;;; Copyright © 2023, 2024 Luis Felipe López Acevedo <sirgazil@zoho.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1975,7 +1975,7 @@ weights and five widths in both Roman and Italic, plus variable fonts.")
(define-public font-sarasa-gothic
(package
(name "font-sarasa-gothic")
- (version "1.0.3")
+ (version "1.0.5")
(source
(origin
(method url-fetch)
@@ -1983,7 +1983,7 @@ weights and five widths in both Roman and Italic, plus variable fonts.")
"/releases/download/v" version
"/Sarasa-TTC-" version ".7z"))
(sha256
- (base32 "1cgqf15fhg567s2bwjpal3xfcdnbgyy0iav5181zkn6b4k56dgl4"))))
+ (base32 "0sfmqrjfzjy2zxd26kjrdbp59ahxj7p2qr1z5qy512j2cgl1gyiq"))))
(build-system font-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -3521,3 +3521,31 @@ for display purposes. It features four weights (light, medium, bold,
and black), a stylistic alternative, small caps, and many alternate
glyphs.")
(license license:silofl1.1))))
+
+(define-public font-oswald
+ (let ((version "0")
+ (commit "6e65651c229e897dc55fb8d17097ee7f75b2769b")
+ (revision "0"))
+ (package
+ (name "font-oswald")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/googlefonts/OswaldFont")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0m5c98crw6df6hbhxv4smh6ldzk5fx434fyri8xgnsjjcrkqxy0h"))))
+ (build-system font-build-system)
+ (home-page "https://github.com/googlefonts/OswaldFont")
+ (synopsis "Gothic typeface")
+ (description "Oswald is a reworking of the classic gothic typeface
+style historically represented by designs such as 'Alternate Gothic'.
+The characters of Oswald have been re-drawn and reformed to better fit
+the pixel grid of standard digital screens. Oswald is designed to be
+used freely across the internet by web browsers on desktop computers,
+laptops and mobile devices.")
+ (license license:silofl1.1))))
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 8d3c017107..299fe87edf 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -19,6 +19,7 @@
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
+;;; Copyright © 2024 Sören Tempel <soeren@soeren-tempel.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -73,6 +74,7 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages tex)
+ #:use-module (gnu packages textutils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
@@ -1911,6 +1913,7 @@ maintain the Noto Fonts project.")
(list check pkg-config scdoc))
(propagated-inputs
(list ;; Required by fcft.pc.
+ utf8proc
fontconfig
freetype
harfbuzz
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 13ac1a0b57..ba0d169fbc 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -425,7 +425,7 @@ a hardware description and verification language.")
(define-public nvc
(package
(name "nvc")
- (version "1.9.2")
+ (version "1.11.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -434,7 +434,7 @@ a hardware description and verification language.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0zifyn7fr4k73ga6iwvsbsl6gi5106vlv5mkmqs0svi0sqx847f4"))))
+ "0rh6xwzr1drgwa04gx6w4r968yxlvfkvzg92950akf7wyxf331k7"))))
(build-system gnu-build-system)
(arguments
`(#:out-of-source? #t
@@ -457,7 +457,8 @@ a hardware description and verification language.")
(inputs
(list elfutils
llvm-9
- libffi))
+ libffi
+ `(,zstd "lib")))
(synopsis "VHDL compiler and simulator")
(description "This package provides a VHDL compiler and simulator.")
(home-page "https://www.nickg.me.uk/nvc/")
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 5f1331183d..78fd42518e 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1344,7 +1344,7 @@ and multimedia programs in the Python language.")
(define-public python-pygame-sdl2
(let ((real-version "2.1.0")
- (renpy-version "8.2.0"))
+ (renpy-version "8.1.3"))
(package
(inherit python-pygame)
(name "python-pygame-sdl2")
@@ -1354,7 +1354,7 @@ and multimedia programs in the Python language.")
(method url-fetch)
(uri (string-append "https://www.renpy.org/dl/" renpy-version
"/pygame_sdl2-" version ".tar.gz"))
- (sha256 (base32 "17mc39c7ha83kzv2wmq61a15mn6p8wh2y33ixhf5sb4bvyr48mhy"))
+ (sha256 (base32 "0qlprs9n3w254ilizqzvr6s01zx72gh7an0bgwxsq4hm22qypdws"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1395,7 +1395,7 @@ developed mainly for Ren'py.")
(define-public python-renpy
(package
(name "python-renpy")
- (version "8.2.0")
+ (version "8.1.3")
(source
(origin
(method url-fetch)
@@ -1403,7 +1403,7 @@ developed mainly for Ren'py.")
"/renpy-" version "-source.tar.bz2"))
(sha256
(base32
- "02v54qqjjigfqhdr50kzhkdvplk56bvprq65jl57kcs1qhvlf5s9"))
+ "1g6fz5dxp7yxhgv6q4brzf5hpfqq3l1g3dfv3fsiwwn6mj0b01z2"))
(modules '((guix build utils)))
(snippet
#~(begin
@@ -2038,7 +2038,7 @@ games.")
libxi
libxinerama
libxrandr
- mbedtls-apache
+ mbedtls-lts
mesa
opusfile
pcre2
@@ -2280,7 +2280,7 @@ scripted in a Python-like language.")
libxinerama
libxkbcommon
libxrandr
- mbedtls-apache
+ mbedtls-lts
mesa
openxr
opusfile
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 06ba868f35..c257a2cfe8 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -60,7 +60,7 @@
;;; Copyright © 2021 Olivier Rojon <o.rojon@posteo.net>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2021, 2022 Greg Hogan <code@greghogan.com>
-;;; Copyright © 2021 David Pflug <david@pflug.io>
+;;; Copyright © 2021, 2024 David Pflug <david@pflug.io>
;;; Copyright © 2021, 2022 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
;;; Copyright © 2021, 2022 Noisytoot <ron@noisytoot.org>
@@ -80,6 +80,7 @@
;;; Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
;;; Copyright © 2023, 2024 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
+;;; Copyright © 2024 Vagrant Cascadian <vagrant@debian.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -149,6 +150,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphics)
#:use-module (gnu packages graphviz)
@@ -8095,26 +8097,49 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
(define-public odamex
(package
(name "odamex")
- (version "0.9.5")
+ (version "10.4.0")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/odamex/Odamex/" version "/"
- "odamex-src-" version ".tar.bz2"))
+ "odamex-src-" version ".tar.xz"))
(sha256
- (base32 "1x0c9vnwn336inkfamh4na8xjyfjmzfxfn49j4snqymkypjqw6jq"))))
+ (base32 "1isrmki18471yry48mmm7lxzp1kiqma9cc7fx38cvpm2mpgfyvzk"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; XXX: Unbundle more, they are not replaced by the ones provided
+ ;; in inputs: fltk, jsoncpp, miniupnp, protobuf.
+ ;;
+ ;; Remove some bundled libraries.
+ (with-directory-excursion "libraries"
+ (for-each delete-file-recursively
+ '("curl" "libpng" "portmidi" "zlib")))))))
(build-system cmake-build-system)
- (arguments `(#:tests? #f)) ; no tests
+ (arguments
+ (list
+ #:tests? #f ; no tests
+ #:configure-flags
+ #~(list "-DBUILD_CLIENT=1"
+ "-DBUILD_MASTER=1"
+ "-DBUILD_SERVER=1"
+ "-DUSE_INTERNAL_LIBS=0"
+ "-DUSE_INTERNAL_MINIUPNP=0")))
(native-inputs
- (list deutex))
+ (list deutex pkg-config))
(inputs
- `(("sdl" ,sdl2)
- ("sdl-mixer" ,sdl2-mixer)
- ("zlib" ,zlib)
- ("libpng" ,libpng)
- ("curl" ,curl)
- ("alsa-lib" ,alsa-lib)))
+ (list alsa-lib
+ curl
+ fltk
+ jsoncpp
+ libpng
+ miniupnpc
+ portmidi
+ protobuf
+ sdl2
+ sdl2-mixer
+ zlib))
(home-page "https://odamex.net/")
(synopsis "Multiplayer Doom port")
(description "Odamex is a modification of the Doom engine that
@@ -11322,7 +11347,7 @@ disassembly of the DOS version, extended with new features.")
(define-public fheroes2
(package
(name "fheroes2")
- (version "1.0.5")
+ (version "1.0.11")
(source
(origin
(method git-fetch)
@@ -11331,7 +11356,7 @@ disassembly of the DOS version, extended with new features.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0v7dxzb5cfjb55jydd8f61zzlvxq9mrgdy51hq19b06dmrx1dnc7"))))
+ (base32 "1i1a4dynlb5kl55rmfmib2jha1b2igw5jyiiyla1fxgkbkjnbf27"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 86d22995a0..64a6b4b918 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2020, 2021, 2022, 2023 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2020–2024 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021, 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021, 2023, 2024 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Clément Lassieur <clement@lassieur.org>
@@ -434,7 +434,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.")
(define-public geos
(package
(name "geos")
- (version "3.11.2")
+ (version "3.12.1")
(source (origin
(method url-fetch)
(uri (string-append "http://download.osgeo.org/geos/geos-"
@@ -442,7 +442,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.")
".tar.bz2"))
(sha256
(base32
- "1k744nwfa5sj4amzsdjxgac83wh6xfb9xi7z5bka7ic1jik7gw5i"))))
+ "00qdk9a4048pzfj2rhzkfw3lvm642znf6kr4x29i3d94494pxsnn"))))
(build-system cmake-build-system)
(arguments `(#:phases
(modify-phases %standard-phases
@@ -450,7 +450,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.")
'unpack 'patch-test-shebangs
(lambda _
(substitute* '("tests/xmltester/testrunner.sh"
- "tests/geostest/testrunner.sh")
+ "tests/xmltester/safe_to_xml.sh")
(("/bin/sh") (which "sh"))))))))
(inputs
(list glib))
@@ -547,7 +547,11 @@ and driving.")
(method url-fetch)
(uri (string-append "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-"
version ".tar.gz"))
- (patches (search-patches "libgeotiff-fix-tests-with-proj-9.1.1.patch"))
+ (patches
+ (search-patches "libgeotiff-fix-tests-with-proj-9.1.1.patch"
+ "libgeotiff-fix-tests-with-proj-9.3.0.patch"
+ "libgeotiff-fix-tests-with-proj-9.3.1.patch"
+ "libgeotiff-fix-tests-on-i386.patch"))
(sha256
(base32 "1mjmgv48x51ppax5dnb6lq7z600czxll53bx6jbzqwd4m93i7aq5"))
(modules '((guix build utils)))
@@ -739,7 +743,7 @@ fully fledged Spatial SQL capabilities.")
(define-public proj
(package
(name "proj")
- (version "9.2.0")
+ (version "9.3.1")
(source
(origin
(method url-fetch)
@@ -747,7 +751,7 @@ fully fledged Spatial SQL capabilities.")
version ".tar.gz"))
(sha256
(base32
- "03nm1sgvh237my7ss6kayn6887cbnayvjxrrxsrfcakkmbsida6y"))))
+ "1g0hkpiablvhsmw0kn5frwgdir3q7avc45p6lc1zhhhzkv5ikydh"))))
(build-system cmake-build-system)
(native-inputs (list googletest pkg-config))
(propagated-inputs (list curl libtiff sqlite)) ;required by proj.pc
@@ -843,31 +847,36 @@ projections.")
(define-public python-pyproj
(package
(name "python-pyproj")
- (version "3.5.0")
+ (version "3.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyproj" version))
(sha256
(base32
- "1xhvr0n5gb7v6x0wd7cqmc0zrky2fag7bq2shx6l2qqq3icx2ncq"))))
+ "1gq1spm5zdq9k8kl9cb31b9m08ybyrdggfw3sjrqyz9b9iq7raj4"))))
(build-system python-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'set-proj-path
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((proj (assoc-ref inputs "proj")))
- (setenv "PROJ_DIR" proj)
- (substitute* "pyproj/datadir.py"
- (("(internal_datadir = ).*$" all var)
- (string-append var "Path(\"" proj "/share/proj\")\n")))))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-proj-path
+ (lambda* (#:key #:allow-other-keys)
+ (let ((proj #$(this-package-input "proj")))
+ (setenv "PROJ_DIR" proj)
+ (substitute* "pyproj/datadir.py"
+ (("(internal_datadir = ).*$" all var)
+ (string-append var "Path(\"" proj
+ "/share/proj\")\n")))))))))
(inputs
(list proj))
(propagated-inputs
(list python-certifi))
(native-inputs
- (list python-cython python-numpy python-pandas python-pytest
+ (list python-cython
+ python-numpy
+ python-pandas
+ python-pytest
python-xarray))
(home-page "https://github.com/pyproj4/pyproj")
(synopsis
@@ -1313,7 +1322,7 @@ utilities for data translation and processing.")
(define-public python-pyshp
(package
(name "python-pyshp")
- (version "2.1.3")
+ (version "2.3.1")
(source
(origin
(method git-fetch)
@@ -1322,8 +1331,13 @@ utilities for data translation and processing.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0jsraqzq82pw19wvx84x7w5cs8agr44a9b5y0jjw540wim4xa73r"))))
+ (base32 "02pbr091p8v4kfv1p6p2aa4asgm9r74dc12r35lvgmhs9y163z69"))))
(build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ ;; This test requires internet access.
+ '(list "--deselect" "test_shapefile.py::test_reader_url")))
(native-inputs
(list python-pytest python-pytest-runner))
(home-page "https://github.com/GeospatialPython/pyshp")
@@ -2572,7 +2586,7 @@ orienteering sport.")
(license license:gpl3+)))
(define-public grass
- (let* ((version "7.8.7")
+ (let* ((version "7.8.8")
(majorminor (string-join (list-head (string-split version #\.) 2) ""))
(grassxx (string-append "grass" majorminor)))
(package
@@ -2584,7 +2598,7 @@ orienteering sport.")
(uri (string-append "https://grass.osgeo.org/" grassxx
"/source/grass-" version ".tar.gz"))
(sha256
- (base32 "0sbz0ba9p963phvd0gmvfqq1fg4ixpipzcjbf20ys86qavjppzsg"))))
+ (base32 "1gpfbppfajc8d6b9alw9fdzgaa83w26kl6fff1395bc9gal215ms"))))
(build-system gnu-build-system)
(inputs
`(("bzip2" ,bzip2)
@@ -2858,6 +2872,7 @@ growing set of geoscientific methods.")
"test_core_pointcloudlayerexporter"
"test_core_projectstorage"
"test_core_coordinatereferencesystem"
+ "test_core_overlayexpression"
"test_gui_queryresultwidget"
"test_provider_copcprovider"
"test_provider_eptprovider"
@@ -2881,6 +2896,7 @@ growing set of geoscientific methods.")
"PyQgsOGRProviderGpkg"
"PyQgsProcessExecutablePt1"
"PyQgsProcessExecutablePt2"
+ "PyQgsProjectionSelectionWidgets"
"PyQgsProviderConnectionGpkg"
"PyQgsProviderConnectionSpatialite"
"PyQgsOGRProvider"
@@ -3089,6 +3105,30 @@ path loss.")
"This is a python implementation of the geodesic routines in GeographicLib.")
(license license:expat)))
+(define-public python-geoip2fast
+ (package
+ (name "python-geoip2fast")
+ (version "1.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "geoip2fast" version))
+ (sha256
+ (base32 "1cmdjlwjd4pg3qvsb8d4vghqj1im58npxb6dmrd5q90wjga4rfvm"))))
+ (build-system pyproject-build-system)
+ ;; The tests are speed tests or development tests to compare results with
+ ;; a different library.
+ (arguments (list #:tests? #false))
+ (home-page "https://github.com/rabuchaim/geoip2fast")
+ (synopsis
+ "Fast GeoIP2 country/city/asn lookup library")
+ (description
+ "@code{GeoIP2Fast} is a fast @code{GeoIP2} country/city/asn lookup
+library that supports IPv4 and IPv6. A search takes less than 0.00003
+seconds. It has its own data file updated twice a week with
+Maxmind-Geolite2-CSV, supports IPv4/IPv6 and is pure Python.")
+ (license license:expat)))
+
(define-public python-geopy
(package
(name "python-geopy")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 26aeefff4c..7397148c2b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2020, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015-2024 Efraim Flashner <efraim@flashner.co.il>
@@ -7943,7 +7943,17 @@ to display dialog boxes from the commandline and shell scripts.")
;; let's disable them as well.
;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
(substitute* "src/tests/clutter/conform/meson.build"
- (("'timeline.*',") ""))))
+ (("'timeline.*',") ""))
+
+ ;; On i686-linux this test fails with a dbus error. This seems
+ ;; to be fine in later versions, so this workaround can probably
+ ;; be removed soon.
+ #$@(if (string=? "i686-linux" (or (%current-target-system)
+ (%current-system)))
+ #~((substitute* "src/tests/wayland-unit-tests.c"
+ (("g_test_add_func \\(\"/wayland/toplevel/activation\",") "")
+ (("^ toplevel_activation\\);") "")))
+ #~())))
(replace 'check
(lambda* (#:key tests? test-options parallel-tests?
#:allow-other-keys)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 59232f0c77..1bf6eee2ff 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -346,11 +346,33 @@ compatible to GNU Pth.")
zlib))
(arguments
(list
- #:configure-flags #~'(;; Otherwise, the test suite looks for the `gpg`
- ;; executable in its installation directory in
- ;; /gnu/store before it has been installed.
- "--enable-gnupg-builddir-envvar"
- "--enable-all-tests")
+ #:configure-flags
+ ;; Always use quasiquote on the next core-updates cycle.
+ #~(#$(if (%current-target-system)
+ #~quasiquote
+ #~quote)
+ (#$@(if (%current-target-system)
+ #~(,(string-append
+ "--with-libgpg-error-prefix="
+ #$(this-package-input "libgpg-error"))
+ ,(string-append
+ "--with-libgcrypt-prefix="
+ #$(this-package-input "libgcrypt"))
+ ,(string-append
+ "--with-libassuan-prefix="
+ #$(this-package-input "libassuan"))
+ ,(string-append
+ "--with-ksba-prefix="
+ #$(this-package-input "libksba"))
+ ,(string-append
+ "--with-npth-prefix="
+ #$(this-package-input "npth")))
+ #~())
+ ;; Otherwise, the test suite looks for the `gpg`
+ ;; executable in its installation directory in
+ ;; /gnu/store before it has been installed.
+ "--enable-gnupg-builddir-envvar"
+ "--enable-all-tests"))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'patch-paths
diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm
new file mode 100644
index 0000000000..8b7dca46a6
--- /dev/null
+++ b/gnu/packages/golang-build.scm
@@ -0,0 +1,506 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
+;;; Copyright © 2019, 2020 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 HiPhish <hiphish@posteo.de>
+;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
+;;; Copyright © 2020 Vagrant Cascadian <vagrant@debian.org>
+;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2021 hackeryarn <artemchernyak@gmail.com>
+;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
+;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
+;;;
+;;; 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 golang-build)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix build-system go)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
+ #:use-module (gnu packages))
+
+;;; Commentary:
+;;;
+;;; Modules (libraries) which are part of the Golang project but outside the
+;;; main Golang tree, see <https://pkg.go.dev/golang.org/x>
+;;;
+;;; Since they are bound to be relied on by many, their dependencies should be
+;;; kept minimal, and this module should not depend on other modules
+;;; containing Golang packages.
+;;;
+;;; Please: Try to add new module packages in alphabetic order.
+;;;
+;;; Code:
+
+(define-public go-github-com-yuin-goldmark
+ (package
+ (name "go-github-com-yuin-goldmark")
+ (version "1.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/yuin/goldmark")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "12rsnsf65drcp0jfw2jl9w589vsn3pxdk1zh3v9q908iigngrcmy"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/yuin/goldmark"))
+ (home-page "https://github.com/yuin/goldmark/")
+ (synopsis "Markdown parser")
+ (description "This package provides a markdown parser.")
+ (license license:expat)))
+
+(define-public go-golang-org-x-crypto
+ (package
+ (name "go-golang-org-x-crypto")
+ (version "0.4.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/crypto")
+ (commit (string-append "v" version))))
+ (file-name (string-append "go.googlesource.com-crypto-"
+ version "-checkout"))
+ (sha256
+ (base32 "13i0yz4hvc4qdr438nmzilvl5ns73v3910bakcddny3jbzq72i2m"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "golang.org/x/crypto"
+ ;; Source-only package
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; Source-only package
+ (delete 'build))))
+ (propagated-inputs
+ (list go-golang-org-x-sys))
+ (home-page "https://go.googlesource.com/crypto/")
+ (synopsis "Supplementary cryptographic libraries in Go")
+ (description "This package provides supplementary cryptographic libraries
+for the Go language.")
+ (license license:bsd-3)))
+
+(define-public go-golang-org-x-exp
+ (package
+ (name "go-golang-org-x-exp")
+ (version "0.0.0-20221004215720-b9f4876ce741")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/exp")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "030b929xyg8dpp6f4qbyg63msi6zgzj9sqmvnyphfcrjkqf7nr41"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "golang.org/x/exp"
+ ;; Source-only package
+ #:tests? #f
+ #:phases (modify-phases %standard-phases
+ (delete 'build))))
+ (home-page "https://golang.org/x/exp")
+ (synopsis "Experimental and deprecated Go packages")
+ (description "This subrepository holds experimental and deprecated (in the
+@code{old} directory) packages.")
+ (license license:bsd-3)))
+
+(define-public go-golang-org-x-image
+ (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
+ (revision "1"))
+ (package
+ (name "go-golang-org-x-image")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/image")
+ (commit commit)))
+ (file-name (string-append "go.googlesource.com-image-"
+ version "-checkout"))
+ (sha256
+ (base32 "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "golang.org/x/image"
+ ;; Source-only package
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build))))
+ (home-page "https://go.googlesource.com/image")
+ (synopsis "Supplemental Go image libraries")
+ (description "This package provides supplemental Go libraries for image
+processing.")
+ (license license:bsd-3))))
+
+(define-public go-golang-org-x-mod
+ (let ((commit "7c05a442b7c1d1a107879b4a090bb5a38d3774a1")
+ (revision "0"))
+ (package
+ (name "go-golang-org-x-mod")
+ (version (git-version "0.7.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/golang/mod")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14r24fq3kn84k2y2jvvg8hwpy52a3q429pimrdwl5zwknbr2awmh"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "golang.org/x/mod/"
+ #:tests? #f
+ #:phases (modify-phases %standard-phases
+ ;; Source-only package
+ (delete 'build))))
+ (home-page "https://golang.org/x/mod")
+ (synopsis "Tools to work directly with Go module mechanics")
+ (description
+ "This repository holds packages for writing tools that work directly
+with Go module mechanics. That is, it is for direct manipulation of Go
+modules themselves.
+
+The specific case of loading packages should still be done by invoking the
+@command{go} command, which remains the single point of truth for package
+loading algorithms.")
+ (license license:bsd-3))))
+
+(define-public go-golang-org-x-net
+ (let ((commit "8e0e7d8d38f2b6d21d742845570dde2902d06a1d")
+ (revision "0"))
+ (package
+ (name "go-golang-org-x-net")
+ (version (git-version "0.5.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/net")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fidlcn3vcz42v2lc0rpmqh3bz08bcklj6jvnmz2vvgc481ci5hy"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "golang.org/x/net"
+ ;; Source-only package
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Source-only package
+ (delete 'build))))
+ (home-page "https://go.googlesource.com/net")
+ (synopsis "Go supplemental networking libraries")
+ (description "This package provides supplemental Go networking libraries.")
+ (license license:bsd-3))))
+
+;; XXX: Not in use by any other packages, consider to remove or merge with
+;; go-golang-org-x-net.
+(define-public go-golang-org-x-net-0.17
+ (let ((commit "b225e7ca6dde1ef5a5ae5ce922861bda011cfabd")
+ (revision "0"))
+ (package
+ (inherit go-golang-org-x-net)
+ (name "go-golang-org-x-net")
+ (version (git-version "0.17.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/net")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17zhim2m0r8nyy18g2lsawxm4rawix2qbjyn80x9vc6jc8fv05m9")))))))
+
+(define-public go-golang-org-x-net-html
+ (package
+ (inherit go-golang-org-x-net)
+ (name "go-golang-org-x-net-html")
+ (arguments
+ '(#:import-path "golang.org/x/net/html"
+ #:unpack-path "golang.org/x/net"))
+ (home-page "https://godoc.org/golang.org/x/net/html")
+ (synopsis "HTML5-compliant tokenizer and parser")
+ (description
+ "This package provides an HTML5-compliant tokenizer and parser.")))
+
+(define-public go-golang-org-x-sync
+ (let ((commit "8fcdb60fdcc0539c5e357b2308249e4e752147f1")
+ (revision "1"))
+ (package
+ (name "go-golang-org-x-sync")
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/sync")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "07qrhni6f5hh5p95k1yk6s4wsj341q663irvx6rllrxfsymj6a0z"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "golang.org/x/sync"
+ #:tests? #f
+ ;; Source-only package
+ #:phases (modify-phases %standard-phases
+ (delete 'build))))
+ (home-page "https://go.googlesource.com/sync/")
+ (synopsis "Additional Go concurrency primitives")
+ (description "This package provides Go concurrency primitives in
+addition to the ones provided by the language and “sync” and “sync/atomic”
+packages.")
+ (license license:bsd-3))))
+
+(define-public go-golang.org-x-sync-errgroup
+ (let ((commit "cd5d95a43a6e21273425c7ae415d3df9ea832eeb")
+ (revision "0"))
+ (package
+ (name "go-golang.org-x-sync-errgroup")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/sync")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "golang.org/x/sync/errgroup"
+ #:unpack-path "golang.org/x/sync"))
+ (home-page "https://godoc.org/golang.org/x/sync/errgroup")
+ (synopsis "Synchronization, error propagation, and Context cancellation
+for groups of goroutines working on subtasks of a common task")
+ (description "This package provides synchronization, error
+propagation, and Context cancellation for groups of goroutines working on
+subtasks of a common task.")
+ (license license:bsd-3))))
+
+(define-public go-golang.org-x-sync-semaphore
+ (package
+ (inherit go-golang.org-x-sync-errgroup)
+ (name "go-golang.org-x-sync-semaphore")
+ (arguments
+ '(#:import-path "golang.org/x/sync/semaphore"
+ #:unpack-path "golang.org/x/sync"))
+ (home-page "https://godoc.org/golang.org/x/sync/semaphore")
+ (synopsis "Weighted semaphore implementation in Go")
+ (description "Weighted semaphore implementation in Go.")))
+
+(define-public go-golang-org-x-sys
+ (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78")
+ (revision "0"))
+ (package
+ (name "go-golang-org-x-sys")
+ (version (git-version "0.8.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/sys")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "golang.org/x/sys"
+ ;; Source-only package
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Source-only package
+ (delete 'build))))
+ (home-page "https://go.googlesource.com/sys")
+ (synopsis "Go support for low-level system interaction")
+ (description "This package provides supplemental libraries offering Go
+support for low-level interaction with the operating system.")
+ (license license:bsd-3))))
+
+(define-public go-golang-org-x-term
+ (package
+ (name "go-golang-org-x-term")
+ (version "0.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/term")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16s3d62fgdhiqvcib61s5pwxp08hhrmzx8bdv5zk1w1krjizdarl"))))
+ (build-system go-build-system)
+ (arguments '(#:import-path "golang.org/x/term"))
+ (propagated-inputs
+ (list go-golang-org-x-sys))
+ (home-page "https://pkg.go.dev/golang.org/x/term")
+ (synopsis "Go terminal/console support")
+ (description "@code{term} provides support functions for dealing with
+terminals, as commonly found on Unix systems.")
+ (license license:bsd-3)))
+
+(define-public go-golang-org-x-text
+ (package
+ (name "go-golang-org-x-text")
+ (version "0.3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/text")
+ (commit (string-append "v" version))))
+ (file-name (string-append "go.googlesource.com-text-"
+ version "-checkout"))
+ (sha256
+ (base32 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "golang.org/x/text"
+ ;; Source-only package
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build))))
+ (home-page "https://go.googlesource.com/text")
+ (synopsis "Supplemental Go text processing libraries")
+ (description "This package provides supplemental Go libraries for text
+processing.")
+ (license license:bsd-3)))
+
+(define-public go-golang-org-x-time
+ (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
+ (revision "2"))
+ (package
+ (name "go-golang-org-x-time")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/time")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "golang.org/x/time"
+ ;; Source-only package
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; Source-only package
+ (delete 'build))))
+ (home-page "https://godoc.org/golang.org/x/time/rate")
+ (synopsis "Supplemental Go time libraries")
+ (description "This package provides supplemental Go libraries related to
+time.")
+ (license license:bsd-3))))
+
+(define-public go-golang-org-x-tools
+ (package
+ (name "go-golang-org-x-tools")
+ (version "0.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/tools")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "08kx2nndq3sr6xai7403mbsqvz5shxmp2icylfr2fmwagr59cb2n"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; gopls versions are tagged separately, and it is a
+ ;; separate Guix package.
+ (delete-file-recursively "gopls")))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "golang.org/x/tools"
+ ;; Source-only package
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; Source-only package
+ (delete 'build))))
+ (propagated-inputs
+ (list go-github-com-yuin-goldmark
+ go-golang-org-x-mod
+ go-golang-org-x-net
+ go-golang-org-x-sys))
+ (home-page "https://go.googlesource.com/tools/")
+ (synopsis "Tools that support the Go programming language")
+ (description "This package provides miscellaneous tools that support the
+Go programming language.")
+ (license license:bsd-3)))
+
+(define-public go-golang-org-x-xerrors
+ (let ((commit "5ec99f83aff198f5fbd629d6c8d8eb38a04218ca")
+ (revision "0"))
+ (package
+ (name "go-golang-org-x-xerrors")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/xerrors")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1dbzc3gmf2haazpv7cgmv97rq40g2xzwbglc17vas8dwhgwgwrzb"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "golang.org/x/xerrors"))
+ (home-page "https://godoc.org/golang.org/x/xerrors")
+ (synopsis "Go 1.13 error values")
+ (description "This package holds the transition packages for the new Go
+1.13 error values.")
+ (license license:bsd-3))))
+
+;;;
+;;; Avoid adding new packages to the end of this file. To reduce the chances
+;;; of a merge conflict, place them above by existing packages with similar
+;;; functionality or similar names.
+;;;
diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm
index 324bf47aa7..8ce85421e9 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2023 Benjamin <benjamin@uvy.fr>
;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
@@ -40,7 +41,9 @@
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (gnu packages)
- #:use-module (gnu packages golang))
+ #:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-xyz))
;;; Commentary:
;;;
@@ -122,6 +125,44 @@
@end itemize\n")
(license license:expat))))
+(define-public go-github-com-davecgh-go-spew
+ (package
+ (name "go-github-com-davecgh-go-spew")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/davecgh/go-spew")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:unpack-path "github.com/davecgh/go-spew"
+ #:import-path "github.com/davecgh/go-spew/spew"))
+ (home-page "https://github.com/davecgh/go-spew")
+ (synopsis "Deep pretty printer for Go data structures to aid in debugging")
+ (description "Package @command{spew} implements a deep pretty printer
+for Go data structures to aid in debugging.
+
+A quick overview of the additional features spew provides over the built-in
+printing facilities for Go data types are as follows:
+
+@itemize
+@item Pointers are dereferenced and followed.
+@item Circular data structures are detected and handled properly.
+@item Custom Stringer/error interfaces are optionally invoked, including on
+unexported types.
+@item Custom types which only implement the Stringer/error interfaces via a
+pointer receiver are optionally invoked when passing non-pointer variables.
+@item Byte arrays and slices are dumped like the hexdump -C command which
+includes offsets, byte values in hex, and ASCII output (only when using Dump
+style).
+@end itemize")
+ (license license:isc)))
+
(define-public go-github-com-frankban-quicktest
(package
(name "go-github-com-frankban-quicktest")
@@ -351,6 +392,30 @@ builds on top of Go's builtin @code{testing} library and is complemented by the
Gomega matcher library.")
(license license:expat)))
+(define-public go-github-com-prashantv-gostub
+ (package
+ (name "go-github-com-prashantv-gostub")
+ (version "1.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/prashantv/gostub")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "035xf5w4fqlicdbbjcflsqflc0z5gmrn6wr7q41xwqfwfpraf9ah"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/prashantv/gostub"))
+ (native-inputs (list go-github-com-stretchr-testify))
+ (home-page "https://github.com/prashantv/gostub")
+ (synopsis "Stubbing library for Go")
+ (description
+ "Package gostub is used for stubbing variables in tests, and resetting the
+original value once the test has been run.")
+ (license license:expat)))
+
(define-public go-github-com-stretchr-testify
(package
(name "go-github-com-stretchr-testify")
diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm
new file mode 100644
index 0000000000..568fdd12b9
--- /dev/null
+++ b/gnu/packages/golang-compression.scm
@@ -0,0 +1,144 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages golang-compression)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix build-system go)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
+ #:use-module (gnu packages))
+
+;;; Commentary:
+;;;
+;;; Please: Try to add new module packages in alphabetic order.
+;;;
+;;; Code:
+
+(define-public go-github-com-andybalholm-brotli
+ (package
+ (name "go-github-com-andybalholm-brotli")
+ (version "1.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/andybalholm/brotli")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zvmj7gbnkq9xwv1bvcxk9acxl06y902148qwbd2kqwgs52wy2c0"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/andybalholm/brotli"))
+ (home-page "https://github.com/andybalholm/brotli")
+ (synopsis "Pure Go Brotli encoder and decoder")
+ (description
+ "This package is a brotli compressor and decompressor implemented in Go.
+It was translated from the reference implementation
+(@url{https://github.com/google/brotli,https://github.com/google/brotli}) with
+the @code{c2go} tool at
+@url{https://github.com/andybalholm/c2go,https://github.com/andybalholm/c2go}.")
+ (license license:expat)))
+
+(define-public go-github-com-golang-snappy
+ (package
+ (name "go-github-com-golang-snappy")
+ (version "0.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/golang/snappy")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "004cw699yz3pdpawhjhpa0y94c4w479nw1rf39zj6h6027kpwv2j"))
+ (patches (search-patches "go-github-com-golang-snappy-32bit-test.patch"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/golang/snappy"))
+ (home-page "https://github.com/golang/snappy")
+ (synopsis "Snappy compression format in the Go programming language")
+ (description "This package provides a Go implementation of the Snappy
+compression format.")
+ (license license:bsd-3)))
+
+(define-public go-github-com-klauspost-compress
+ (package
+ (name "go-github-com-klauspost-compress")
+ (version "1.13.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/klauspost/compress")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ydnf9rizlhm8rilh14674qqx272sbwbkjx06xn9pqvy6mmn2r3r"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/klauspost/compress"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'reset-gzip-timestamps 'fix-permissions
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Provide write permissions on gzip files so that
+ ;; reset-gzip-timestamps has sufficient permissions.
+ (for-each make-file-writable
+ (find-files (assoc-ref outputs "out") ".gz$")))))))
+ (propagated-inputs
+ (list go-github-com-golang-snappy))
+ (home-page "https://github.com/klauspost/compress")
+ (synopsis "Go compression library")
+ (description "@code{compress} provides various compression algorithms.")
+ (license license:bsd-3)))
+
+(define-public go-github.com-ulikunitz-xz
+ (package
+ (name "go-github.com-ulikunitz-xz")
+ (version "0.5.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ulikunitz/xz.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "1xnsymi5fmmm734bi4c6z57p5cvnyxlpi29yxs4v21w5k763aypd"))))
+ (build-system go-build-system)
+ (arguments
+ `(#: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.")
+ (license license:bsd-3)))
+
+;;;
+;;; Avoid adding new packages to the end of this file. To reduce the chances
+;;; of a merge conflict, place them above by existing packages with similar
+;;; functionality or similar names.
+;;;
diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 688523a8f7..58fd9cb250 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -15,6 +15,7 @@
;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022, 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2023 Benjamin <benjamin@uvy.fr>
;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
;;; Copyright © 2023 Jack Hill <jackhill@jackhill.us>
@@ -43,7 +44,9 @@
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages golang)
- #:use-module (gnu packages golang-check))
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression))
;;; Commentary:
;;;
@@ -580,6 +583,55 @@ library's internal ChaCha20 package.")
the Go standard library's TLS 1.3 implementation.")
(license license:bsd-3)))
+(define-public go-github-com-nats-io-jwt-v2
+ (package
+ (name "go-github-com-nats-io-jwt-v2")
+ (version "2.5.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nats-io/jwt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wcqbfyd3b4qdspmf72cpsbi0y2a4b1qd0cv3qvhh17d1h1a6zib"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/nats-io/jwt/v2"
+ #:unpack-path "github.com/nats-io/jwt"))
+ (propagated-inputs (list go-github-com-nats-io-nkeys))
+ (home-page "https://github.com/nats-io/jwt")
+ (synopsis "Go library signing JWT tokens with NKeys for the NATS ecosystem")
+ (description
+ "This library is a JWT implementation that uses nkeys to digitally sign
+JWT tokens. Nkeys use Ed25519 to provide authentication of JWT claims.")
+ (license license:asl2.0)))
+
+(define-public go-github-com-nats-io-nkeys
+ (package
+ (name "go-github-com-nats-io-nkeys")
+ (version "0.4.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nats-io/nkeys")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0779m4nn6n0ql23wnk50ybddslvb84mwx036gf7yw6ckmm4yybxs"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/nats-io/nkeys"))
+ (propagated-inputs (list go-golang-org-x-crypto))
+ (home-page "https://github.com/nats-io/nkeys")
+ (synopsis "Go library implementing public-key system for NATS ecosystem")
+ (description
+ "This package is an Ed25519 based public-key signature system that
+simplifies keys and seeds and performs signing and verification.")
+ (license license:asl2.0)))
+
(define-public go-github-com-minio-blake2b-simd
(let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
(revision "0"))
@@ -611,6 +663,31 @@ performance is obtained with AVX2 which gives roughly a 4X performance
increase approaching hashing speeds of 1GB/sec on a single core.")
(license license:asl2.0))))
+(define-public go-github-com-minio-highwayhash
+ (package
+ (name "go-github-com-minio-highwayhash")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/minio/highwayhash")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1inrix7720273ccynxcyi7xsgc55cskxrw7gwn08qkmdj9xdxqai"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/minio/highwayhash"))
+ (propagated-inputs (list go-golang-org-x-sys))
+ (home-page "https://github.com/minio/highwayhash")
+ (synopsis "HighwayHash library for Go")
+ (description
+ "This package implements the pseudo-random-function (PRF) HighwayHash.
+HighwayHash is a fast hash function designed to defend hash-flooding attacks
+or to authenticate short-lived messages.")
+ (license license:asl2.0)))
+
(define-public go-github-com-minio-sha256-simd
(package
(name "go-github-com-minio-sha256-simd")
@@ -699,6 +776,8 @@ Architecture Processors\" by J. Guilford et al.")
(delete-file-recursively
(string-append "src/" import-path "/testdata"))
#t)))))
+ (native-inputs
+ (list go-golang-org-x-crypto))
(home-page "https://github.com/OperatorFoundation/ed25519")
(synopsis "Ed25519 for go")
(description "Package ed25519 implements the Ed25519 signature
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index c66b93cb84..28a9fad113 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -48,7 +48,9 @@
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages tls)
@@ -1081,6 +1083,7 @@ Microsoft AD PAC authorization data.")
(native-inputs
(list go-github-com-davecgh-go-spew
go-github-com-pmezard-go-difflib
+ go-github-com-stretchr-objx
go-gopkg-in-yaml-v2))
(home-page "https://github.com/jmespath/go-jmespath")
(synopsis "Golang implementation of JMESPath")
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index c58228ec44..f324624f48 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1,5 +1,13 @@
;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev>
+;;; Copyright © 2023 Benjamin <benjamin@uvy.fr>
+;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr>
+;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,7 +32,11 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages)
- #:use-module (gnu packages golang-check))
+ #:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
+ #:use-module (gnu packages golang-crypto))
;;; Commentary:
;;;
@@ -34,6 +46,193 @@
;;;
;;; Code:
+(define-public go-github-com-anmitsu-go-shlex
+ (package
+ (name "go-github-com-anmitsu-go-shlex")
+ (version "0.0.0-20200514113438-38f4b401e2be")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/anmitsu/go-shlex")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17iz68yzbnr7y4s493asbagbv79qq8hvl2pkxvm6bvdkgphj8w1g"))))
+ (build-system go-build-system)
+ (arguments '(#:import-path "github.com/anmitsu/go-shlex"))
+ (home-page "https://github.com/anmitsu/go-shlex")
+ (synopsis "Simple shell-like lexical analyzer for Go")
+ (description "This package provides a simple lexical analyzer to parse
+shell-like commands.")
+ (license license:expat)))
+
+(define-public go-github-com-armon-go-radix
+ (package
+ (name "go-github-com-armon-go-radix")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/armon/go-radix")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1m1k0jz9gjfrk4m7hjm7p03qmviamfgxwm2ghakqxw3hdds8v503"))))
+ (build-system go-build-system)
+ (arguments '(#:import-path "github.com/armon/go-radix"))
+ (home-page "https://github.com/armon/go-radix")
+ (synopsis "Go implementation of Radix trees")
+ (description "This package provides a single @code{Tree} implementation,
+optimized for sparse nodes of
+@url{http://en.wikipedia.org/wiki/Radix_tree,radix tree}.")
+ (license license:expat)))
+
+(define-public go-github-com-bitly-go-hostpool
+ (package
+ (name "go-github-com-bitly-go-hostpool")
+ (version "0.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bitly/go-hostpool")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1iibj7dwymczw7cknrh6glc6sdpp4yap2plnyr8qphynwrzlz73w"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/bitly/go-hostpool"))
+ (native-inputs (list go-github-com-stretchr-testify))
+ (home-page "https://github.com/bitly/go-hostpool")
+ (synopsis "Pool among multiple hosts from Golang")
+ (description
+ "This package provides a Go package to intelligently and flexibly pool among
+multiple hosts from your Go application. Host selection can operate in round
+robin or epsilon greedy mode, and unresponsive hosts are avoided.")
+ (license license:expat)))
+
+(define-public go-github-com-bitly-timer-metrics
+ (package
+ (name "go-github-com-bitly-timer-metrics")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bitly/timer_metrics")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "02fhx8hx8126m2cgxw9fm8q2401r7zfann8b5zy5yyark1sgkrb4"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/bitly/timer_metrics"))
+ (home-page "https://github.com/bitly/timer_metrics")
+ (synopsis "Capture timings and enable periodic metrics every @var{n} events")
+ (description "This package provides an efficient way to capture timing
+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))))
+
+(define-public go-github-com-bmizerany-perks-quantile
+ (package
+ (name "go-github-com-bmizerany-perks-quantile")
+ (version "0.0.0-20230307044200-03f9df79da1e")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bmizerany/perks")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1f2a99v3618bz2mf61iwhdjm3xi1gam6v4apqgcrz71gj7ba9943"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:unpack-path "github.com/bmizerany/perks"
+ #:import-path "github.com/bmizerany/perks/quantile"))
+ (home-page "https://github.com/bmizerany/perks")
+ (synopsis "Library for computing quantiles")
+ (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:bsd-2)))
+
+(define-public go-github-com-burntsushi-toml
+ (package
+ (name "go-github-com-burntsushi-toml")
+ (version "1.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BurntSushi/toml")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1v9czq4hsyvdz7yx70y6sgq77wmrgfmn09r9cj4w85z38jqnamv7"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/BurntSushi/toml"))
+ (home-page "https://github.com/BurntSushi/toml")
+ (synopsis "Toml parser and encoder for Go")
+ (description
+ "This package is toml parser and encoder for Go. The interface is
+similar to Go's standard library @code{json} and @code{xml} package.")
+ (license license:expat)))
+
+(define-public go-github-com-cyberdelia-go-metrics-graphite
+ (package
+ (name "go-github-com-cyberdelia-go-metrics-graphite")
+ (version "0.0.0-20161219230853-39f87cc3b432")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cyberdelia/go-metrics-graphite")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1nnpwryw8i110laffyavvhx38gcd1jnpdir69y6fxxzpx06d094w"))))
+ (build-system go-build-system)
+ (propagated-inputs
+ (list go-github-com-rcrowley-go-metrics))
+ (arguments
+ '(#:tests? #f ; Tests require network interface access
+ #:import-path "github.com/cyberdelia/go-metrics-graphite"))
+ (home-page "https://github.com/cyberdelia/go-metrics-graphite")
+ (synopsis "Graphite client for go-metrics")
+ (description "This package provides a reporter for the
+@url{https://github.com/rcrowley/go-metrics,go-metrics} library which posts
+metrics to Graphite.")
+ (license license:bsd-2)))
+
(define-public go-github-com-djherbis-atime
(package
(name "go-github-com-djherbis-atime")
@@ -56,6 +255,57 @@
atimes for files.")
(license license:expat)))
+(define-public go-github-com-gabriel-vasile-mimetype
+ (package
+ (name "go-github-com-gabriel-vasile-mimetype")
+ (version "1.4.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gabriel-vasile/mimetype")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11swnjczhrza0xi8q2wlk056nnbcghm44vqs52zfv6rwqvy6imhj"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.20
+ #:import-path "github.com/gabriel-vasile/mimetype"
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'check 'add-supported-mimes-md
+ (lambda* (#:key import-path #:allow-other-keys)
+ ;; This file needs to be available for writing during the
+ ;; tests otherwise they will fail.
+ (let ((file (format #f "src/~a/supported_mimes.md"
+ import-path)))
+ (invoke "touch" file)
+ (chmod file #o644)))))))
+ (propagated-inputs (list go-golang-org-x-net))
+ (home-page "https://github.com/gabriel-vasile/mimetype")
+ (synopsis "Golang library for media type and file extension detection")
+ (description
+ "This package provides a Golang module that uses magic number signatures
+to detect the MIME type of a file.
+
+Main features:
+@itemize
+@item Fast and precise MIME type and file extension detection.
+@item Supports
+@url{https://github.com/gabriel-vasile/mimetype/blob/master/supported_mimes.md,
+many MIME types}.
+@item Allows to
+@url{https://pkg.go.dev/github.com/gabriel-vasile/mimetype#example-package-Extend,
+extend} with other file formats.
+@item Common file formats are prioritized.
+@item
+@url{https://pkg.go.dev/github.com/gabriel-vasile/mimetype#example-package-TextVsBinary,
+Differentiation between text and binary files}.
+@item Safe for concurrent usage.
+@end itemize")
+ (license license:expat)))
+
(define-public go-github-com-matryer-try
(package
(name "go-github-com-matryer-try")
@@ -90,6 +340,366 @@ atimes for files.")
(description "This package provides an idiomatic Go retry module.")
(license license:expat)))
+(define-public go-github-com-miekg-dns
+ (package
+ (name "go-github-com-miekg-dns")
+ (version "1.1.48")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/miekg/dns")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14m4wnbgmc1prj4ds1fsz1nwb1awaq365lhbp8clzsidxmhjf3hl"))))
+ (build-system go-build-system)
+ (arguments '(#:import-path "github.com/miekg/dns"))
+ (propagated-inputs
+ (list go-golang-org-x-tools
+ go-golang-org-x-sys
+ go-golang-org-x-sync
+ go-golang-org-x-net))
+ (home-page "https://github.com/miekg/dns")
+ (synopsis "Domain Name Service library in Go")
+ (description
+ "This package provides a fully featured interface to the @acronym{DNS,
+Domain Name System}. Both server and client side programming is supported.
+The package allows complete control over what is sent out to the @acronym{DNS,
+Domain Name Service}. The API follows the less-is-more principle, by
+presenting a small interface.")
+ (license license:bsd-3)))
+
+(define-public go-github-com-mreiferson-go-options
+ (package
+ (name "go-github-com-mreiferson-go-options")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mreiferson/go-options")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pxs9ybrh196qy14ijn4zn51h2z28lj31y6vxrz2xxhgvpmfmxyl"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/mreiferson/go-options"))
+ (home-page "https://github.com/mreiferson/go-options")
+ (synopsis "Go package to structure and resolve options")
+ (description
+ "The @code{options} Go package resolves configuration values set via
+command line flags, config files, and default struct values.")
+ (license license:expat)))
+
+(define-public go-github-com-mreiferson-go-svc
+ ;; NSQ specific fork of github.com/judwhite/go-svc, as Guix go build system
+ ;; does not support go.mod with `replace' statement.
+ (let ((commit "7a96e00010f68d9436e3de53a70c53f209a0c244")
+ (revision "0"))
+ (package
+ (name "go-github-com-mreiferson-go-svc")
+ (version (git-version "1.2.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mreiferson/go-svc")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1acgb0n3svhnraqj1fz5qc5n3b4vc5ffwyk9vfi6gcfkibm0hgmd"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/judwhite/go-svc"))
+ (propagated-inputs (list go-golang-org-x-sys))
+ (home-page "https://github.com/mreiferson/go-svc")
+ (synopsis "Go Windows Service wrapper for GNU/Linux")
+ (description
+ "Go Windows Service wrapper compatible with GNU/Linux. Windows tests
+@url{https://github.com/judwhite/go-svc/raw/master/svc/svc_windows_test.go,here}.")
+ (license license:expat))))
+
+(define-public go-github-com-nats-io-nats-go
+ (package
+ (name "go-github-com-nats-io-nats-go")
+ (version "1.32.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nats-io/nats.go")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "08b3n5mdpxvn9hipz0j001bp5r67i43cqji9x9dyzikypqdfg38k"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.20
+ #:import-path "github.com/nats-io/nats.go"))
+ (propagated-inputs (list go-golang-org-x-text
+ go-github-com-nats-io-nuid
+ go-github-com-nats-io-nkeys
+ go-github-com-klauspost-compress))
+ (home-page "https://github.com/nats-io/nats.go")
+ (synopsis "Go Client for NATS server")
+ (description
+ "This package provides a Go client for the NATS messaging system.")
+ (license license:asl2.0)))
+
+(define-public go-github-com-nats-io-nuid
+ (package
+ (name "go-github-com-nats-io-nuid")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nats-io/nuid")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11zbhg4kds5idsya04bwz4plj0mmiigypzppzih731ppbk2ms1zg"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/nats-io/nuid"))
+ (home-page "https://github.com/nats-io/nuid")
+ (synopsis "Go library implementing identifier generator for NATS ecosystem")
+ (description
+ "This package provides a unique identifier generator that is high performance,
+very fast, and tries to be entropy pool friendly.")
+ (license license:asl2.0)))
+
+(define-public go-github-com-nbrownus-go-metrics-prometheus
+ (package
+ (name "go-github-com-nbrownus-go-metrics-prometheus")
+ (version "0.0.0-20210712211119-974a6260965f")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nbrownus/go-metrics-prometheus")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kl9l08aas544627zmhkgp843qx94sxs4inxm20nw1hx7gp79dz0"))))
+ (build-system go-build-system)
+ (arguments '(#:import-path "github.com/nbrownus/go-metrics-prometheus"))
+ (propagated-inputs
+ (list go-github-com-stretchr-testify
+ go-github-com-rcrowley-go-metrics
+ go-github-com-prometheus-client-golang))
+ (home-page "https://github.com/nbrownus/go-metrics-prometheus")
+ (synopsis "Prometheus support for go-metrics")
+ (description "This package provides a reporter for the @code{go-metrics}
+library which posts the metrics to the Prometheus client registry and just
+updates the registry.")
+ (license license:asl2.0)))
+
+(define-public go-github-com-nsqio-go-diskqueue
+ (package
+ (name "go-github-com-nsqio-go-diskqueue")
+ (version "1.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nsqio/go-diskqueue")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hp66hkmfn0nyf3c53a40f94ah11a9rj01r5zp3jph9p54j8rany"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/nsqio/go-diskqueue"))
+ (home-page "https://github.com/nsqio/go-diskqueue")
+ (synopsis "Go package providing a file system backed FIFO queue")
+ (description
+ "The @code{diskqueue} Go package provides a file system backed FIFO
+queue.")
+ (license license:expat)))
+
+(define-public go-github-com-nsqio-go-nsq
+ (package
+ (name "go-github-com-nsqio-go-nsq")
+ (version "1.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nsqio/go-nsq")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1h9z3z225sdgg7fl3l7x11xn5ch6lm5flgmcj046cdp453qj2qhf"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:tests? #f ;tests require networking
+ #:import-path "github.com/nsqio/go-nsq"))
+ (propagated-inputs (list go-github-com-golang-snappy))
+ (home-page "https://github.com/nsqio/go-nsq")
+ (synopsis "Consumer/producer library for NSQ")
+ (description
+ "The @code{nsq} Go module provides a high-level @code{Consumer} and
+@code{Producer} types as well as low-level functions to communicate over the
+NSQ protocol @url{https://nsq.io/}.")
+ (license license:expat)))
+
+(define-public go-github-com-prometheus-client-model
+ (let ((commit "14fe0d1b01d4d5fc031dd4bec1823bd3ebbe8016")
+ (revision "2"))
+ (package
+ (name "go-github-com-prometheus-client-model")
+ (version (git-version "0.0.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/prometheus/client_model")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/prometheus/client_model"
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; Source-only package
+ (delete 'build))))
+ (propagated-inputs
+ (list go-github-com-golang-protobuf-proto))
+ (synopsis "Data model artifacts for Prometheus")
+ (description "This package provides data model artifacts for Prometheus.")
+ (home-page "https://github.com/prometheus/client_model")
+ (license license:asl2.0))))
+
+(define-public go-github-com-rcrowley-go-metrics
+ (let ((commit "cac0b30c2563378d434b5af411844adff8e32960")
+ (revision "2"))
+ (package
+ (name "go-github-com-rcrowley-go-metrics")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rcrowley/go-metrics")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hfxffnpaw49pr3wrkbzq3pnv3nyzsvk5dxndv0yz70xlrbg8a04"))))
+ (build-system go-build-system)
+ (arguments
+ ;; Arbitrary precision tests are known to be broken on aarch64, ppc64le
+ ;; and s390x. See: https://github.com/rcrowley/go-metrics/issues/249
+ `(#:tests? ,(not (string-prefix? "aarch64" (or (%current-target-system)
+ (%current-system))))
+ #:import-path "github.com/rcrowley/go-metrics"))
+ (propagated-inputs
+ (list go-github-com-stathat-go))
+ (synopsis "Go port of Coda Hale's Metrics library")
+ (description "This package provides a Go implementation of Coda Hale's
+Metrics library.")
+ (home-page "https://github.com/rcrowley/go-metrics")
+ (license license:bsd-2))))
+
+(define-public go-github-com-skip2-go-qrcode
+ (package
+ (name "go-github-com-skip2-go-qrcode")
+ (version "0.0.0-20200617195104-da1b6568686e")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/skip2/go-qrcode")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0pghd6y2x8a5fqy4rjn4d8j5jcslb236naycdza5an7vyvinsgs9"))
+ (patches (search-patches "go-github-com-skip2-go-qrcode-fix-tests.patch"))))
+ (build-system go-build-system)
+ (arguments '(#:import-path "github.com/skip2/go-qrcode"))
+ (home-page "https://github.com/skip2/go-qrcode")
+ (synopsis "QR code encoder")
+ (description "This package provides a QR code encoder for the Goloang.")
+ (license license:expat)))
+
+(define-public go-github-com-songgao-water
+ (package
+ (name "go-github-com-songgao-water")
+ (version "0.0.0-20200317203138-2b4b6d7c09d8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/songgao/water")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1k5aildfszp6x66jzar4y36lic8ijkb5020hfaivpvq3bnwdiikl"))))
+ (build-system go-build-system)
+ (arguments '(#:tests? #f ; Tests require network interface access
+ #:import-path "github.com/songgao/water"))
+ (home-page "https://github.com/songgao/water")
+ (synopsis "Simple network TUN/TAP library")
+ (description
+ "This package provides a simple TUN/TAP interface library for Go that
+efficiently works with standard packages like @code{io}, @code{bufio}, etc..
+Use waterutil with it to work with TUN/TAP packets/frames.")
+ (license license:bsd-3)))
+
+(define-public go-github-com-stathat-go
+ (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
+ (revision "0"))
+ (package
+ (name "go-github-com-stathat-go")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stathat/go")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/stathat/go"))
+ (synopsis "Post statistics to StatHat")
+ (description "This is a Go package for posting to a StatHat account.")
+ (home-page "https://github.com/stathat/go")
+ (license license:expat))))
+
+(define-public go-go-uber-org-automaxprocs
+ (package
+ (name "go-go-uber-org-automaxprocs")
+ (version "1.5.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/uber-go/automaxprocs")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03arxcfaj7k6iwfdk0liaynxf9rjfj9m5glsjp7ws01xjkgrdpbc"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "go.uber.org/automaxprocs"))
+ (native-inputs (list go-github-com-stretchr-testify
+ go-github-com-prashantv-gostub))
+ (home-page "https://github.com/uber-go/automaxprocs")
+ (synopsis "CPU-count detection library for Go")
+ (description
+ "This package automatically set GOMAXPROCS to match Linux container
+CPU quota.")
+ (license license:expat)))
+
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 014ca01602..68e0c8eb24 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -43,6 +43,7 @@
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -80,9 +81,12 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages lua)
#:use-module (gnu packages mail)
#:use-module (gnu packages mp3)
@@ -1877,54 +1881,6 @@ lists (Apple XML, Apple Binary, OpenStep, and GNUStep) from/to arbitrary Go
types.")
(license license:giftware))))
-(define-public go-github-com-bitly-go-hostpool
- (package
- (name "go-github-com-bitly-go-hostpool")
- (version "0.1.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/bitly/go-hostpool")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1iibj7dwymczw7cknrh6glc6sdpp4yap2plnyr8qphynwrzlz73w"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/bitly/go-hostpool"))
- (native-inputs (list go-github-com-stretchr-testify))
- (home-page "https://github.com/bitly/go-hostpool")
- (synopsis "Pool among multiple hosts from Golang")
- (description
- "This package provides a Go package to intelligently and flexibly pool among
-multiple hosts from your Go application. Host selection can operate in round
-robin or epsilon greedy mode, and unresponsive hosts are avoided.")
- (license license:expat)))
-
-(define-public go-github-com-bitly-timer-metrics
- (package
- (name "go-github-com-bitly-timer-metrics")
- (version "1.0.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/bitly/timer_metrics")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "02fhx8hx8126m2cgxw9fm8q2401r7zfann8b5zy5yyark1sgkrb4"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/bitly/timer_metrics"))
- (home-page "https://github.com/bitly/timer_metrics")
- (synopsis "Capture timings and enable periodic metrics every @var{n} events")
- (description
- "This package provides an efficient way to capture timing information and
-periodically output metrics")
- (license license:expat)))
-
(define-public go-github-com-blanu-dust
(package
(name "go-github-com-blanu-dust")
@@ -3072,55 +3028,6 @@ web framework
sunset times from geographical coordinates and a date.")
(license license:expat))))
-(define-public go-github-com-nsqio-go-diskqueue
- (package
- (name "go-github-com-nsqio-go-diskqueue")
- (version "1.1.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/nsqio/go-diskqueue")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1hp66hkmfn0nyf3c53a40f94ah11a9rj01r5zp3jph9p54j8rany"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/nsqio/go-diskqueue"))
- (home-page "https://github.com/nsqio/go-diskqueue")
- (synopsis "Go package providing a file system backed FIFO queue")
- (description
- "The @code{diskqueue} Go package provides a file system backed FIFO
-queue.")
- (license license:expat)))
-
-(define-public go-github-com-nsqio-go-nsq
- (package
- (name "go-github-com-nsqio-go-nsq")
- (version "1.1.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/nsqio/go-nsq")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1h9z3z225sdgg7fl3l7x11xn5ch6lm5flgmcj046cdp453qj2qhf"))))
- (build-system go-build-system)
- (arguments
- (list #:tests? #f ;tests require networking
- #:import-path "github.com/nsqio/go-nsq"))
- (propagated-inputs (list go-github-com-golang-snappy))
- (home-page "https://github.com/nsqio/go-nsq")
- (synopsis "Consumer/producer library for NSQ")
- (description
- "The @code{nsq} Go module provides a high-level @code{Consumer} and
-@code{Producer} types as well as low-level functions to communicate over the
-NSQ protocol @url{https://nsq.io/}.")
- (license license:expat)))
-
(define-public go-github-com-hebcal-gematriya
(let ((commit "fe3043f73e415eb82727701d10f2fb40f87675e9")
(revision "0"))
@@ -3440,105 +3347,6 @@ 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-golang-org-x-exp
- (package
- (name "go-golang-org-x-exp")
- (version "0.0.0-20221004215720-b9f4876ce741")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/exp")
- (commit (go-version->git-ref version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "030b929xyg8dpp6f4qbyg63msi6zgzj9sqmvnyphfcrjkqf7nr41"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "golang.org/x/exp"
- ;; Source-only package
- #:tests? #f
- #:phases (modify-phases %standard-phases
- (delete 'build))))
- (home-page "https://golang.org/x/exp")
- (synopsis "Experimental and deprecated Go packages")
- (description
- "This subrepository holds experimental and deprecated (in the @code{old}
-directory) packages.")
- (license license:bsd-3)))
-
-(define-public go-golang-org-x-tools
- (package
- (name "go-golang-org-x-tools")
- (version "0.5.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/tools")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "08kx2nndq3sr6xai7403mbsqvz5shxmp2icylfr2fmwagr59cb2n"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; gopls versions are tagged separately, and it is a
- ;; separate Guix package.
- (delete-file-recursively "gopls")))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "golang.org/x/tools"
- ;; Source-only package
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- ;; Source-only package
- (delete 'build))))
- (propagated-inputs
- (list
- go-github-com-yuin-goldmark
- go-golang-org-x-mod
- go-golang-org-x-net
- go-golang-org-x-sys))
- (synopsis "Tools that support the Go programming language")
- (description "This package provides miscellaneous tools that support the
-Go programming language.")
- (home-page "https://go.googlesource.com/tools/")
- (license license:bsd-3)))
-
-(define-public go-golang-org-x-crypto
- (package
- (name "go-golang-org-x-crypto")
- (version "0.4.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/crypto")
- (commit (string-append "v" version))))
- (file-name (string-append "go.googlesource.com-crypto-"
- version "-checkout"))
- (sha256
- (base32
- "13i0yz4hvc4qdr438nmzilvl5ns73v3910bakcddny3jbzq72i2m"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "golang.org/x/crypto"
- ;; Source-only package
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- ;; Source-only package
- (delete 'build))))
- (propagated-inputs
- (list go-golang-org-x-sys))
- (synopsis "Supplementary cryptographic libraries in Go")
- (description "This package provides supplementary cryptographic libraries
-for the Go language.")
- (home-page "https://go.googlesource.com/crypto/")
- (license license:bsd-3)))
-
(define-public govulncheck
(package
(name "govulncheck")
@@ -3649,215 +3457,6 @@ developed by the Go team. It provides IDE features to any LSP-compatible
editor.")
(license license:bsd-3)))
-(define-public go-golang-org-x-net
- (let ((commit "8e0e7d8d38f2b6d21d742845570dde2902d06a1d")
- (revision "0"))
- (package
- (name "go-golang-org-x-net")
- (version (git-version "0.5.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/net")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1fidlcn3vcz42v2lc0rpmqh3bz08bcklj6jvnmz2vvgc481ci5hy"))))
- (build-system go-build-system)
- (arguments
- (list
- #:import-path "golang.org/x/net"
- ;; Source-only package
- #:tests? #f
- #:phases
- #~(modify-phases %standard-phases
- ;; Source-only package
- (delete 'build))))
- (synopsis "Go supplemental networking libraries")
- (description "This package provides supplemental Go networking libraries.")
- (home-page "https://go.googlesource.com/net")
- (license license:bsd-3))))
-
-(define-public go-golang-org-x-net-0.17
- (let ((commit "b225e7ca6dde1ef5a5ae5ce922861bda011cfabd")
- (revision "0"))
- (package
- (inherit go-golang-org-x-net)
- (name "go-golang-org-x-net")
- (version (git-version "0.17.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/net")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "17zhim2m0r8nyy18g2lsawxm4rawix2qbjyn80x9vc6jc8fv05m9")))))))
-
-(define-public go-golang-org-x-net-html
- (package
- (inherit go-golang-org-x-net)
- (name "go-golang.org-x-net-html")
- (arguments
- '(#:import-path "golang.org/x/net/html"
- #:unpack-path "golang.org/x/net"))
- (synopsis "HTML5-compliant tokenizer and parser")
- (description
- "This package provides an HTML5-compliant tokenizer and parser.")
- (home-page "https://godoc.org/golang.org/x/net/html")))
-
-(define-public go-golang-org-x-image
- (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
- (revision "1"))
- (package
- (name "go-golang-org-x-image")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/image")
- (commit commit)))
- (file-name (string-append "go.googlesource.com-image-"
- version "-checkout"))
- (sha256
- (base32
- "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "golang.org/x/image"
- ; Source-only package
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (delete 'build))))
- (home-page "https://go.googlesource.com/image")
- (synopsis "Supplemental Go image libraries")
- (description "This package provides supplemental Go libraries for image
-processing.")
- (license license:bsd-3))))
-
-(define-public go-golang-org-x-sync
- (let ((commit "8fcdb60fdcc0539c5e357b2308249e4e752147f1")
- (revision "1"))
- (package
- (name "go-golang-org-x-sync")
- (version (git-version "0.1.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/sync")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "07qrhni6f5hh5p95k1yk6s4wsj341q663irvx6rllrxfsymj6a0z"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "golang.org/x/sync"
- #:tests? #f
- ;; Source-only package
- #:phases (modify-phases %standard-phases
- (delete 'build))))
- (synopsis "Additional Go concurrency primitives")
- (description
- "This package provides Go concurrency primitives in addition
-to the ones provided by the language and “sync” and “sync/atomic”
-packages.")
- (home-page "https://go.googlesource.com/sync/")
- (license license:bsd-3))))
-
-(define-public go-golang-org-x-sys
- (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78")
- (revision "0"))
- (package
- (name "go-golang-org-x-sys")
- (version (git-version "0.8.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/sys")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq"))))
- (build-system go-build-system)
- (arguments
- (list
- #:import-path "golang.org/x/sys"
- ;; Source-only package
- #:tests? #f
- #:phases
- #~(modify-phases %standard-phases
- ;; Source-only package
- (delete 'build))))
- (synopsis "Go support for low-level system interaction")
- (description "This package provides supplemental libraries offering Go
-support for low-level interaction with the operating system.")
- (home-page "https://go.googlesource.com/sys")
- (license license:bsd-3))))
-
-(define-public go-golang-org-x-text
- (package
- (name "go-golang-org-x-text")
- (version "0.3.2")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/text")
- (commit (string-append "v" version))))
- (file-name (string-append "go.googlesource.com-text-"
- version "-checkout"))
- (sha256
- (base32
- "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "golang.org/x/text"
- ; Source-only package
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (delete 'build))))
- (synopsis "Supplemental Go text processing libraries")
- (description "This package provides supplemental Go libraries for text
- processing.")
- (home-page "https://go.googlesource.com/text")
- (license license:bsd-3)))
-
-(define-public go-golang-org-x-time
- (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
- (revision "2"))
- (package
- (name "go-golang-org-x-time")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/time")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "golang.org/x/time"
- ; Source-only package
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (delete 'build))))
-; (propagated-inputs
-; `(("go-golang-org-x-net" ,go-golang-org-x-net)))
- (synopsis "Supplemental Go time libraries")
- (description "This package provides supplemental Go libraries related to
-time.")
- (home-page "https://godoc.org/golang.org/x/time/rate")
- (license license:bsd-3))))
-
(define-public go-golang-org-x-oauth2
(let ((commit "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33")
(revision "1"))
@@ -3885,87 +3484,6 @@ time.")
spec in Go.")
(license license:bsd-3))))
-(define-public go-golang-org-x-xerrors
- (let ((commit "5ec99f83aff198f5fbd629d6c8d8eb38a04218ca")
- (revision "0"))
- (package
- (name "go-golang-org-x-xerrors")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/xerrors")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1dbzc3gmf2haazpv7cgmv97rq40g2xzwbglc17vas8dwhgwgwrzb"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "golang.org/x/xerrors"))
- (synopsis "Go 1.13 error values")
- (description
- "This package holds the transition packages for the new Go 1.13 error values.")
- (home-page "https://godoc.org/golang.org/x/xerrors")
- (license license:bsd-3))))
-
-(define-public go-golang-org-x-mod
- (let ((commit "7c05a442b7c1d1a107879b4a090bb5a38d3774a1")
- (revision "0"))
- (package
- (name "go-golang-org-x-mod")
- (version (git-version "0.7.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/golang/mod")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "14r24fq3kn84k2y2jvvg8hwpy52a3q429pimrdwl5zwknbr2awmh"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "golang.org/x/mod/"
- #:tests? #f
- #:phases (modify-phases %standard-phases
- ;; Source-only package
- (delete 'build))))
- (home-page "https://golang.org/x/mod")
- (synopsis "Tools to work directly with Go module mechanics")
- (description
- "This repository holds packages for writing tools that work directly
-with Go module mechanics. That is, it is for direct manipulation of Go modules
-themselves.
-
-The specific case of loading packages should still be done by invoking the
-@command{go} command, which remains the single point of truth for package
-loading algorithms.")
- (license license:bsd-3))))
-
-(define-public go-github-com-burntsushi-toml
- (package
- (name "go-github-com-burntsushi-toml")
- (version "1.2.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/BurntSushi/toml")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1v9czq4hsyvdz7yx70y6sgq77wmrgfmn09r9cj4w85z38jqnamv7"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/BurntSushi/toml"))
- (home-page "https://github.com/BurntSushi/toml")
- (synopsis "Toml parser and encoder for Go")
- (description
- "This package is toml parser and encoder for Go. The interface
-is similar to Go's standard library @code{json} and @code{xml} package.")
- (license license:expat)))
-
(define-public go-github-com-hashicorp-go-uuid
(package
(name "go-github-com-hashicorp-go-uuid")
@@ -4178,30 +3696,6 @@ to use line-based tools such as grep to search for what you want and see the
absolute \"path\" to it.")
(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))))
-
(define-public go-github-com-google-cadvisor
(let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
(revision "0"))
@@ -4228,32 +3722,6 @@ information about the resource usage and performance characteristics of running
containers.")
(license license:asl2.0))))
-(define-public go-github-com-andybalholm-brotli
- (package
- (name "go-github-com-andybalholm-brotli")
- (version "1.0.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/andybalholm/brotli")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1zvmj7gbnkq9xwv1bvcxk9acxl06y902148qwbd2kqwgs52wy2c0"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/andybalholm/brotli"))
- (home-page "https://github.com/andybalholm/brotli")
- (synopsis "Pure Go Brotli encoder and decoder")
- (description
- "This package is a brotli compressor and decompressor implemented in Go.
-It was translated from the reference implementation
-(@url{https://github.com/google/brotli,https://github.com/google/brotli}) with
-the @code{c2go} tool at
-@url{https://github.com/andybalholm/c2go,https://github.com/andybalholm/c2go}.")
- (license license:expat)))
-
(define-public go-github-com-jonboulle-clockwork
(let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
(revision "0"))
@@ -4776,31 +4244,28 @@ to interact with distribution components.")
(license license:asl2.0))))
(define-public go-github-com-docker-go-connections
- (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
- (revision "0"))
- (package
- (name "go-github-com-docker-go-connections")
- (version (git-version "0.0.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/docker/go-connections")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/docker/go-connections"))
- (home-page "https://github.com/docker/go-connections")
- (synopsis "Networking library for Go")
- (description
- "This package provides a library to work with network connections in
-the Go language. In particular it provides tools to deal with network address
+ (package
+ (name "go-github-com-docker-go-connections")
+ (version "0.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/docker/go-connections")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0svfa9g4xvbn87l5kiww1jkijmci9g5821wjp81xz1rfp13cqrk8"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/docker/go-connections"))
+ (home-page "https://github.com/docker/go-connections")
+ (synopsis "Networking library for Go")
+ (description
+ "This package provides a library to work with network connections in the
+Go language. In particular it provides tools to deal with network address
translation (NAT), proxies, sockets, and transport layer security (TLS).")
- (license license:asl2.0))))
+ (license license:asl2.0)))
(define-public go-github-com-docker-go-units
(package
@@ -5254,6 +4719,7 @@ similar word.")
'build)
`(,@arguments #:import-path
"github.com/client9/misspell/cmd/misspell")))))))
+ (propagated-inputs (list go-github-com-gobwas-glob))
(home-page "https://github.com/client9/misspell")
(synopsis "Correct commonly misspelled English words in source files")
(description
@@ -5482,44 +4948,6 @@ generation features. This code generation is used to achieve:
that's a lot faster (and only does simple bandwidth metrics).")
(license license:expat))))
-(define-public go-github-com-davecgh-go-spew
- (package
- (name "go-github-com-davecgh-go-spew")
- (version "1.1.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/davecgh/go-spew")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"))))
- (build-system go-build-system)
- (arguments
- '(#:unpack-path "github.com/davecgh/go-spew"
- #:import-path "github.com/davecgh/go-spew/spew"))
- (home-page "https://github.com/davecgh/go-spew")
- (synopsis "Deep pretty printer for Go data structures to aid in debugging")
- (description "Package @command{spew} implements a deep pretty printer
-for Go data structures to aid in debugging.
-
-A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
-
-@itemize
-@item Pointers are dereferenced and followed.
-@item Circular data structures are detected and handled properly.
-@item Custom Stringer/error interfaces are optionally invoked, including on
-unexported types.
-@item Custom types which only implement the Stringer/error interfaces via a
-pointer receiver are optionally invoked when passing non-pointer variables.
-@item Byte arrays and slices are dumped like the hexdump -C command which
-includes offsets, byte values in hex, and ASCII output (only when using Dump
-style).
-@end itemize\n")
- (license license:isc)))
-
(define-public go-github-com-btcsuite-btclog
(let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
(revision "0"))
@@ -5573,57 +5001,6 @@ trivial @command{big.Int} encoding benchmark results in 6 times faster
encoding and 8 times faster decoding.")
(license license:expat))))
-(define-public go-github-com-mreiferson-go-options
- (package
- (name "go-github-com-mreiferson-go-options")
- (version "1.0.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mreiferson/go-options")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1pxs9ybrh196qy14ijn4zn51h2z28lj31y6vxrz2xxhgvpmfmxyl"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/mreiferson/go-options"))
- (home-page "https://github.com/mreiferson/go-options")
- (synopsis "Go package to structure and resolve options")
- (description
- "The @code{options} Go package resolves configuration values set via
-command line flags, config files, and default struct values.")
- (license license:expat)))
-
-(define-public go-github-com-mreiferson-go-svc
- ;; NSQ specific fork of github.com/judwhite/go-svc, as Guix go build system
- ;; does not support go.mod with `replace' statement.
- (let ((commit "7a96e00010f68d9436e3de53a70c53f209a0c244")
- (revision "0"))
- (package
- (name "go-github-com-mreiferson-go-svc")
- (version (git-version "1.2.1" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mreiferson/go-svc")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1acgb0n3svhnraqj1fz5qc5n3b4vc5ffwyk9vfi6gcfkibm0hgmd"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/judwhite/go-svc"))
- (propagated-inputs (list go-golang-org-x-sys))
- (home-page "https://github.com/mreiferson/go-svc")
- (synopsis "Go Windows Service wrapper for GNU/Linux")
- (description
- "Go Windows Service wrapper compatible with GNU/Linux. Windows tests
-@url{https://github.com/judwhite/go-svc/raw/master/svc/svc_windows_test.go,here}.")
- (license license:expat))))
-
(define-public go-github-com-spaolacci-murmur3
(package
(name "go-github-com-spaolacci-murmur3")
@@ -6337,7 +5714,7 @@ representation suitable for computing diffs.")
(define-public go-github-com-kr-text
(package
(name "go-github-com-kr-text")
- (version "0.1.0")
+ (version "0.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -6346,10 +5723,11 @@ representation suitable for computing diffs.")
(file-name (git-file-name name version))
(sha256
(base32
- "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
+ "0hf58ypz6rxsw6nx3i856whir9lvy4sdx946wbw1nfaf2rdmr9vx"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/kr/text"))
+ (propagated-inputs (list go-github-com-creack-pty))
(synopsis "Text formatting in Go")
(description "This package provides a text formatting functions in Go.")
(home-page "https://github.com/kr/text")
@@ -6764,6 +6142,8 @@ mutex, simply ignore the RLock/RUnlock functions.")
'(#:import-path "github.com/cheekybits/genny"))
(propagated-inputs
(list go-golang-org-x-tools))
+ (native-inputs
+ (list go-github-com-stretchr-testify))
(synopsis "Generics for Go")
(description "This package provides @code{genny}, a Go language
implementation of generics.")
@@ -7426,44 +6806,6 @@ into URL query parameters.")
create or replace a file or symbolic link.")
(license license:asl2.0)))
-(define-public go-golang.org-x-sync-errgroup
- (let ((commit "cd5d95a43a6e21273425c7ae415d3df9ea832eeb")
- (revision "0"))
- (package
- (name "go-golang.org-x-sync-errgroup")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/sync")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "golang.org/x/sync/errgroup"
- #:unpack-path "golang.org/x/sync"))
- (synopsis "Synchronization, error propagation, and Context cancellation
-for groups of goroutines working on subtasks of a common task")
- (description "This package provides synchronization, error propagation,
-and Context cancellation for groups of goroutines working on subtasks of a
-common task.")
- (home-page "https://godoc.org/golang.org/x/sync/errgroup")
- (license license:bsd-3))))
-
-(define-public go-golang.org-x-sync-semaphore
- (package
- (inherit go-golang.org-x-sync-errgroup)
- (name "go-golang.org-x-sync-semaphore")
- (arguments
- '(#:import-path "golang.org/x/sync/semaphore"
- #:unpack-path "golang.org/x/sync"))
- (synopsis "Weighted semaphore implementation in Go")
- (description "Weighted semaphore implementation in Go.")
- (home-page "https://godoc.org/golang.org/x/sync/semaphore")))
-
(define (go-gotest-tools-source version sha256-base32-hash)
(origin
(method git-fetch)
@@ -8077,6 +7419,27 @@ recursively any exported one. It also won't merge structs inside
maps (because they are not addressable using Go reflection).")
(license license:bsd-3)))
+(define-public go-dario-cat-mergo
+ (package
+ (inherit go-github-com-imdario-mergo)
+ (name "go-dario-cat-mergo")
+ (version "1.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/imdario/mergo")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "037k2bd97vnbyhn2sczxk0j6ijmv06n1282f76i3ky73s3qmqnlf"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:unpack-path "dario.cat/mergo"
+ #:import-path "dario.cat/mergo"))
+ (native-inputs
+ (list go-gopkg-in-yaml-v3))))
+
(define-public go-github-com-masterminds-sprig
(package
(name "go-github-com-masterminds-sprig")
@@ -8169,30 +7532,6 @@ the library more lightweight.")
matching and globbing with support for \"doublestar\" patterns.")
(license license:expat)))
-(define-public go-github-com-bmizerany-perks-quantile
- (package
- (name "go-github-com-bmizerany-perks-quantile")
- (version "0.0.0-20230307044200-03f9df79da1e")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/bmizerany/perks")
- (commit (go-version->git-ref version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1f2a99v3618bz2mf61iwhdjm3xi1gam6v4apqgcrz71gj7ba9943"))))
- (build-system go-build-system)
- (arguments
- (list #:unpack-path "github.com/bmizerany/perks"
- #:import-path "github.com/bmizerany/perks/quantile"))
- (home-page "https://github.com/bmizerany/perks")
- (synopsis "Library for computing quantiles")
- (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:bsd-2)))
-
(define-public go-github-com-dlclark-regexp2
(package
(name "go-github-com-dlclark-regexp2")
@@ -8479,27 +7818,6 @@ escape sequences and color conversions.")
size of the terminal.")
(license license:expat))))
-(define-public go-github-com-yuin-goldmark
- (package
- (name "go-github-com-yuin-goldmark")
- (version "1.2.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/yuin/goldmark")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "12rsnsf65drcp0jfw2jl9w589vsn3pxdk1zh3v9q908iigngrcmy"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/yuin/goldmark"))
- (home-page "https://github.com/yuin/goldmark/")
- (synopsis "Markdown parser")
- (description "This package provides a markdown parser.")
- (license license:expat)))
-
(define-public go-github-com-charmbracelet-glamour
(package
(name "go-github-com-charmbracelet-glamour")
@@ -8711,6 +8029,8 @@ errors (warnings).")
(build-system go-build-system)
(arguments
`(#:import-path "github.com/go-git/go-billy/v5"))
+ (propagated-inputs
+ (list go-golang-org-x-sys))
(native-inputs
(list go-gopkg-in-check-v1))
(home-page "https://github.com/go-git/go-billy/")
@@ -9669,28 +8989,6 @@ modifying them.")
parsers, and related tools.")
(license license:expat))))
-(define-public go-github.com-ulikunitz-xz
- (package
- (name "go-github.com-ulikunitz-xz")
- (version "0.5.8")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/ulikunitz/xz.git")
- (commit (string-append "v" version))))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1xnsymi5fmmm734bi4c6z57p5cvnyxlpi29yxs4v21w5k763aypd"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "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.")
- (home-page "https://github.com/ulikunitz/xz")
- (license license:bsd-3)))
-
(define-public go-github-com-songmu-gitconfig
(package
(name "go-github-com-songmu-gitconfig")
@@ -10152,62 +9450,6 @@ friendly sizes. It converts boring ugly numbers to human-friendly strings and
back.")
(license license:expat)))
-(define-public go-golang-org-x-term
- (package
- (name "go-golang-org-x-term")
- (version "0.3.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/term")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "16s3d62fgdhiqvcib61s5pwxp08hhrmzx8bdv5zk1w1krjizdarl"))))
- (build-system go-build-system)
- (arguments '(#:import-path "golang.org/x/term"))
- (propagated-inputs
- (list go-golang-org-x-sys))
- (home-page "https://pkg.go.dev/golang.org/x/term")
- (synopsis "Go terminal/console support")
- (description "@code{term} provides support functions for dealing with
-terminals, as commonly found on Unix systems.")
- (license license:bsd-3)))
-
-(define-public go-github-com-klauspost-compress
- (package
- (name "go-github-com-klauspost-compress")
- (version "1.13.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/klauspost/compress")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0ydnf9rizlhm8rilh14674qqx272sbwbkjx06xn9pqvy6mmn2r3r"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/klauspost/compress"
- #:phases
- (modify-phases %standard-phases
- (add-before 'reset-gzip-timestamps 'fix-permissions
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Provide write permissions on gzip files so that
- ;; reset-gzip-timestamps has sufficient permissions.
- (for-each make-file-writable
- (find-files (assoc-ref outputs "out") ".gz$")))))))
- (propagated-inputs
- (list go-github-com-golang-snappy))
- (home-page "https://github.com/klauspost/compress")
- (synopsis "Go compression library")
- (description "@code{compress} provides various compression algorithms.")
- (license license:bsd-3)))
-
(define-public go-github-com-oneofone-xxhash
(package
(name "go-github-com-oneofone-xxhash")
diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm
index 4cbc1b3c88..0ece311cde 100644
--- a/gnu/packages/gps.scm
+++ b/gnu/packages/gps.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2024 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -139,7 +140,7 @@ between two other data points.")
(define-public gama
(package
(name "gama")
- (version "2.27")
+ (version "2.28")
(source
(origin
(method url-fetch)
@@ -147,7 +148,7 @@ between two other data points.")
version ".tar.gz"))
(sha256
(base32
- "0h9kwgzz9ijzx6jcpc37qhadc41k1jdcv0s2wcpsz6zjmx63p2wk"))
+ "06kblr43yxkn5y77nigwy42r81cmi5pxz3kp50z271vvj3h3zisx"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 170c25c890..96640a3a6c 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -38,7 +38,7 @@
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2021, 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2021, 2022, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
@@ -1853,7 +1853,7 @@ library}.")
(define-public guile-yamlpp
(package
(name "guile-yamlpp")
- (version "0.2")
+ (version "0.3")
(source
(origin
(method git-fetch)
@@ -1862,7 +1862,7 @@ library}.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "14mlqi7hw7pi9scwk1g432issnqcn185pd8na2plijxq55cy0iq7"))))
+ (base32 "0ik69y0vddg0myp0zdbkmklma0qkkrqzwlqwkij1zirklz6hl1ss"))))
(build-system gnu-build-system)
(native-inputs (list autoconf automake libtool pkg-config))
(inputs (list guile-3.0 yaml-cpp))
@@ -2175,7 +2175,7 @@ provides tight coupling to Guix.")
(define-public guile-ics
(package
(name "guile-ics")
- (version "0.5.0")
+ (version "0.6.0")
(source
(origin
(method git-fetch)
@@ -2185,7 +2185,7 @@ provides tight coupling to Guix.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1ipryn69ad4viqai9pnwhkqqpf9wgw0m2qxrwkfrpm1bfdyilw9w"))))
+ "1gkz19iz3ncf9ddr731lsaw12ca7ygj3dxziz54s9xpp5cw19r0v"))))
(build-system gnu-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
@@ -2196,8 +2196,12 @@ provides tight coupling to Guix.")
texinfo
gettext-minimal ;Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
help2man
- pkg-config))
- (inputs (list guile-3.0 which))
+ pkg-config
+ ;; needed when cross-compiling.
+ guile-3.0
+ guile-lib
+ guile-smc))
+ (inputs (list guile-3.0))
(propagated-inputs (list guile-lib guile-smc guile-dsv))
(home-page "https://github.com/artyom-poptsov/guile-ics")
(synopsis "Guile parser library for the iCalendar format")
@@ -2213,7 +2217,12 @@ The library is shipped with documentation in Info format and usage examples.")
(package
(inherit guile-ics)
(name "guile2.2-ics")
- (inputs (list guile-2.2 which))
+ (native-inputs
+ (modify-inputs (package-native-inputs guile-ics)
+ (replace "guile" guile-2.2)
+ (replace "guile-lib" guile2.2-lib)
+ (replace "guile-smc" guile2.2-smc)))
+ (inputs (list guile-2.2))
(propagated-inputs (list guile2.2-lib guile2.2-dsv guile2.2-smc))))
(define-public guile-imanifest
@@ -4202,7 +4211,7 @@ debugging code.")
(define-public guile-png
(package
(name "guile-png")
- (version "0.7.1")
+ (version "0.7.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4211,7 +4220,7 @@ debugging code.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0y65795s9bs69msqvdbq8h34n00bkfs5v1d44wz21nwdffvq6557"))))
+ "1ad03r84j17rwfxbxqb0qmf70ggqs01kjyman3x1581lm5dk1757"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index a64d8dc2c5..817ec974bc 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -17,7 +17,7 @@
;;; Copyright © 2019 Taylan Kammer <taylan.kammer@gmail.com>
;;; Copyright © 2020-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
-;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2021, 2024 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -999,4 +999,26 @@ library. It exposes an interface similar to other Guile compression
libraries, like Guile-zlib.")
(license license:gpl3+)))
+(define-public guile-bzip2
+ (package
+ (name "guile-bzip2")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://files.ngyro.com/guile-bzip2/guile-bzip2-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1qnxk5fzg8m9ik1ckhjvi22kkhd810mrg8jzxiizhk920b69wbdh"))))
+ (build-system gnu-build-system)
+ (native-inputs (list guile-3.0 guile-bytestructures pkg-config))
+ (inputs (list guile-3.0 bzip2))
+ (propagated-inputs (list guile-bytestructures))
+ (home-page "https://ngyro.com/software/guile-bzip2.html")
+ (synopsis "Guile bindings for libbzip2")
+ (description "Guile-bzip2 is a Guile wrapper for the libbzip2
+library. It exposes an interface similar to other Guile compression
+libraries, like Guile-zlib.")
+ (license license:gpl3+)))
+
;;; guile.scm ends here
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 4765d1c55d..72b6decd81 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -703,7 +703,7 @@ battery state, controlling LEDs, and setting the inactive time.")
(arguments
`(#:tests? #f)) ;; Tests require Google's gtest and gmock
(inputs
- (list mbedtls-apache))
+ (list mbedtls-lts))
(synopsis "C++ library to control Philips Hue lights")
(description "Hueplusplus is a library for controlling Philips Hue lights.
Features:
@@ -1112,7 +1112,7 @@ technology, such as head mounted displays with built in head tracking.")
hueplusplus
nlohmann-json
libusb
- mbedtls-apache
+ mbedtls-lts
qtbase-5))
(native-inputs
(list pkg-config
diff --git a/gnu/packages/haxe.scm b/gnu/packages/haxe.scm
index 6fc30ce02f..859941df70 100644
--- a/gnu/packages/haxe.scm
+++ b/gnu/packages/haxe.scm
@@ -78,7 +78,7 @@
apr-util
gtk+-2
libgc
- mbedtls-apache
+ mbedtls-lts
(list mariadb "dev")
(list mariadb "lib")
openssl
@@ -171,7 +171,7 @@ interactive languages.")
(lambda _
(invoke "make" "install"))))))
(inputs (list libuv
- mbedtls-apache
+ mbedtls-lts
neko
ocaml-extlib
ocaml-luv
@@ -255,7 +255,7 @@ includes the compiler and library manager.")
libpng
libuv
libvorbis
- mbedtls-apache
+ mbedtls-lts
mikktspace
minimp3
openal
diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm
index eccdb3594e..b0e6631389 100644
--- a/gnu/packages/high-availability.scm
+++ b/gnu/packages/high-availability.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2023 Benjamin <benjamin@uvy.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,7 +36,12 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
+ #:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages hardware)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
@@ -45,7 +51,6 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages rsync)
- #:use-module (gnu packages syncthing)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
@@ -194,6 +199,47 @@ applications.")
in general better performances compared to the old network protocol.")
(license (list license:gpl2+ license:lgpl2.1+))))
+(define-public nats-server
+ (package
+ (name "nats-server")
+ (version "2.10.10")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nats-io/nats-server")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1sn8a3xfs1s9jc5fphrnc0ahh83h7ma2ckg2x447gdhg1p7pf9gn"))))
+ (build-system go-build-system)
+ (inputs
+ (list go-github-com-klauspost-compress
+ go-github-com-minio-highwayhash
+ go-github-com-nats-io-jwt-v2
+ go-github-com-nats-io-nats-go
+ go-github-com-nats-io-nkeys
+ go-github-com-nats-io-nuid
+ go-go-uber-org-automaxprocs
+ go-golang-org-x-crypto
+ go-golang-org-x-sys
+ go-golang-org-x-time))
+ (arguments
+ (list
+ #:go go-1.20
+ #:import-path "github.com/nats-io/nats-server"
+ #:install-source? #f))
+ (home-page "https://github.com/nats-io/nats-server")
+ (synopsis "High performance message broker")
+ (description
+ "NATS is a simple, secure and performant communications system for digital
+systems, services and devices. NATS is part of the Cloud Native Computing
+Foundation (CNCF). NATS has over 40 client language implementations, and its
+server can run on-premise, in the cloud, at the edge, and even on a Raspberry
+Pi. NATS can secure and simplify design and operation of modern distributed
+systems.")
+ (license license:asl2.0)))
+
(define-public nsq
(package
(name "nsq")
@@ -240,7 +286,7 @@ applications.")
go-github-com-bmizerany-perks-quantile
go-github-com-burntsushi-toml
go-github-com-davecgh-go-spew
- go-github-com-golang-snappy ; Move to (gnu packages golang)
+ go-github-com-golang-snappy
go-github-com-julienschmidt-httprouter
go-github-com-mreiferson-go-options
go-github-com-mreiferson-go-svc
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 07ba0297cd..98a3d0396d 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 Oleh Malyi <astroclubzp@gmail.com>
-;;; Copyright © 2021, 2022 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021, 2022, 2024 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Andy Tai <atai@atai.org>
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
@@ -494,7 +494,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(define-public opencv
(package
(name "opencv")
- (version "4.8.0")
+ (version "4.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -534,7 +534,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(for-each delete-file (find-files "." "\\.jar$"))))
(sha256
(base32
- "14bjpb0ahhaqnim8g6vs0gyd6jgnmly1amx25a0rk1a6ii2aiywn"))))
+ "1alvfqacbmrn7s6rbx0r150fg0lmsg13s887gn289vdawgrd7k04"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -1240,7 +1240,7 @@ programmatically.")
(define-public vxl
(package
(name "vxl")
- (version "2.0.2")
+ (version "3.5.0")
(source
(origin
(method git-fetch)
@@ -1249,7 +1249,7 @@ programmatically.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0949hw57szq8943f1whwqaz591xjmb19kj803hcv74hdai2b0ycg"))
+ (base32 "0iqq4lm51l5gvkax6r79ypifqmgir3p3vman9gsc2085d2agjvbs"))
(modules '((guix build utils)))
;; TODO: vxl includes an old version of dcmtk. It won't build with
;; version 3.6.x.
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index 206b91c878..f2b87268f0 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -77,6 +77,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages gtk)
#:use-module (gnu packages graphics)
#:use-module (gnu packages image)
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index df00287460..830e2ccd32 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -29,9 +29,12 @@
#:use-module (guix download)
#:use-module (guix build-system go)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages python)
#:use-module (gnu packages shells)
#:use-module (gnu packages syncthing))
@@ -224,7 +227,7 @@ written in Go.")
(define-public kubo
(package
(name "kubo")
- (version "0.18.0")
+ (version "0.19.0")
(source
(origin
(method url-fetch/tarbomb)
@@ -232,7 +235,7 @@ written in Go.")
"https://dist.ipfs.io/kubo/v" version
"/kubo-source.tar.gz"))
(sha256
- (base32 "0fx5a974hyg29xvwwsmh3zz3nk3391ifyk3l0wl36xskfdqdwg5a"))
+ (base32 "0k0mw44fq6306pmfp6v4wawgigry9plnl2ij8i5f46606j55c31w"))
(file-name (string-append name "-" version "-source"))
(modules '((guix build utils)))
(snippet '(for-each delete-file-recursively
@@ -287,7 +290,7 @@ written in Go.")
(list
#:unpack-path "github.com/ipfs/kubo"
#:import-path "github.com/ipfs/kubo/cmd/ipfs"
- #:go go-1.18
+ #:go go-1.20
#:phases
#~(modify-phases %standard-phases
;; https://github.com/ipfs/kubo/blob/master/docs/command-completion.md
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 46961ccb7e..c211fa6595 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -67,6 +67,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@@ -912,7 +913,7 @@ but can also be used independently as a logging bot.")
(list argon2
gnutls
libmaxminddb
- mbedtls-apache
+ mbedtls-lts
(list mariadb "dev")
openldap
openssl
diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index 1c03b7e589..50bbd40a84 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -1399,11 +1399,11 @@ build tree Yggdrasil.")
(("generate_wrapper_header.*")
(string-append
"generate_wrapper_header(\"MbedTLS\", \""
- (assoc-ref inputs "mbedtls-apache") "\")\n"))))
+ (assoc-ref inputs "mbedtls") "\")\n"))))
;; There's a Julia file for each platform, override them all
(find-files "src/wrappers/" "\\.jl$"))
#t)))))
- (inputs (list mbedtls-apache))
+ (inputs (list mbedtls-lts))
(propagated-inputs (list julia-jllwrappers))
(home-page "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl")
(synopsis "Apache's mbed TLS binary wrappers")
diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index 8ba2b480ce..18f0d6c7d3 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -186,7 +186,7 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
"gmp" "lapack"
"libssh2" "libnghttp2" "libgit2"
"libblastrampoline"
- "mbedtls-apache" "mpfr"
+ "mbedtls" "mpfr"
"openblas" "openlibm" "pcre2"
"suitesparse" "gfortran:lib"))
":"))))
@@ -263,9 +263,9 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
(substitute* (jlpath "MPFR")
(((from "libmpfr")) (to "mpfr" "libmpfr")))
(substitute* (jlpath "MbedTLS")
- (((from "libmbedcrypto")) (to "mbedtls-apache" "libmbedcrypto"))
- (((from "libmbedtls")) (to "mbedtls-apache" "libmbedtls"))
- (((from "libmbedx509")) (to "mbedtls-apache" "libmbedx509")))
+ (((from "libmbedcrypto")) (to "mbedtls" "libmbedcrypto"))
+ (((from "libmbedtls")) (to "mbedtls" "libmbedtls"))
+ (((from "libmbedx509")) (to "mbedtls" "libmbedx509")))
(substitute* (jlpath "nghttp2")
(((from "libnghttp2")) (to "libnghttp2" "libnghttp2")))
(substitute* (jlpath "OpenBLAS")
@@ -318,7 +318,7 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
(substitute* "stdlib/PCRE2_jll/test/runtests.jl"
(("10.40.0") ,(package-version (this-package-input "pcre2"))))
(substitute* "stdlib/MbedTLS_jll/test/runtests.jl"
- (("2.28.0") ,(package-version (this-package-input "mbedtls-apache"))))
+ (("2.28.0") ,(package-version (this-package-input "mbedtls"))))
(substitute* "stdlib/MPFR_jll/test/runtests.jl"
(("4.1.0") ,(package-version (this-package-input "mpfr"))))
(substitute* "stdlib/GMP_jll/test/runtests.jl"
@@ -515,7 +515,7 @@ using Dates: @dateformat_str, Date, DateTime, DateFormat, Time"))
("libunwind" ,libunwind-julia)
("libuv" ,libuv-julia)
("llvm" ,llvm-julia)
- ("mbedtls-apache" ,mbedtls-apache)
+ ("mbedtls" ,mbedtls-lts)
("mpfr" ,mpfr)
,@(if (target-x86-64?)
`(("openblas" ,openblas-ilp64))
diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm
index 87854afd72..0d50e4904b 100644
--- a/gnu/packages/jupyter.scm
+++ b/gnu/packages/jupyter.scm
@@ -804,7 +804,13 @@ JupyterLab.")
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
- (invoke "pytest" "-v")))))))
+ (invoke
+ "pytest" "-v"
+ ;; Disable failing tests.
+ "-k" (string-append
+ "not test_dataunion_constricts_widget_data"
+ " and not test_dataunion_widget_change_notified"
+ " and not test_datawidget_creation_blank_comm"))))))))
(propagated-inputs
(list python-ipywidgets python-numpy python-six python-traittypes))
(native-inputs
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 48a30f32d0..be011fd976 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -184,7 +184,7 @@ writing, administering, and running unit tests in C.")
(with-directory-excursion "tester"
(invoke "./bctoolbox_tester"))))))))
(inputs
- (list bcunit libdecaf mbedtls-apache))
+ (list bcunit libdecaf mbedtls-lts))
(synopsis "Belledonne Communications Tool Box")
(description "BcToolBox is an utilities library used by Belledonne
Communications software like belle-sip, mediastreamer2 and linphone.")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index fdfc6ce1b5..cb58ca832e 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -134,6 +134,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
@@ -495,17 +496,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "mainline" kernel.
-(define-public linux-libre-6.7-version "6.7.2")
+(define-public linux-libre-6.7-version "6.7.4")
(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 "0hwashmml56r74kgjb637b3ln2d7f9vgfl18sxvczyl84xlbcncj")
+ (base32 "1ddngihfmwffgvxxv8xsppi76r6grvdxr6zzfzvgl9qw07a6c9fd")
(base32 "1vb2pd0wdfl9p5qi8hj1i5xg1p4pyrp01iqhap9xbb2yai4l80j5")))
(define-public linux-libre-6.7-pristine-source
(let ((version linux-libre-6.7-version)
- (hash (base32 "0wd6pxh7wy9bzjzwd0rdsdnghpr53qbs722fhg07bi19m8dy8kf3")))
+ (hash (base32 "036nk3h7vqzd7gnxan2173kpss5qm2pci1lvd58gh90azigrz3gn")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.7)))
@@ -513,17 +514,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.14")
+(define-public linux-libre-6.6-version "6.6.16")
(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 "0g8m0rb15b0231dv8ji456s75a67szsaim71may3yprplycz6pav")
+ (base32 "1qm8f3fq4yx59f7b6yky5ryyf229ypxnry922sr8cy0s7mp62cmv")
(base32 "0kavbby960k7wg355p3hjb9v1c4gnk8dv3lkfhpz44ayhv7kihg5")))
(define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version)
- (hash (base32 "110mz8fjlg1j9wnhhq2ik5alayhf61adajd8jqmcsqprncnnpsgv")))
+ (hash (base32 "0c5a9agdr27bwd1z6790whczb858z8i34hhn548lzbdylfamf7dj")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.6)))
@@ -531,7 +532,7 @@ 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.75")
+(define-public linux-libre-6.1-version "6.1.77")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@@ -541,7 +542,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1jg2v1nxd6i5x536vmd1l14xhpzrcimpmjfipb1zkrwil102y25f")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
- (hash (base32 "0mis14ll6xmhw71vfpw1aahi5z207qysha7x316fq4qc6c899lbc")))
+ (hash (base32 "07grng6rrgpy6c3465hwqhn3gcdam1c8rwya30vgpk8nfxbfqm1v")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
@@ -2335,7 +2336,7 @@ by Robert Shea and Robert Anton Wilson.")
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ;no test suite
- (inputs (list fuse-2 mbedtls-apache))
+ (inputs (list fuse-2 mbedtls-lts))
(synopsis "FUSE driver to read/write Windows BitLocker drives")
(description
"This package provides means to to read BitLocker encrypted
@@ -10331,25 +10332,25 @@ text-based database (@file{$XDG_CONFIG_HOME/modprobed-db}), which can be read
directly by @code{make localmodconfig} as described above.")
(license license:expat)))
-(define-public kconfig-hardened-check
+(define-public kernel-hardening-checker
(package
- (name "kconfig-hardened-check")
- (version "0.6.1")
+ (name "kernel-hardening-checker")
+ (version "0.6.6")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/a13xp0p0v/kconfig-hardened-check")
+ (url "https://github.com/a13xp0p0v/kernel-hardening-checker")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0bpdy2a7l75y5cqzzc92nh4gapzgza8ml5i8ximr6brf6pr3681z"))))
+ "1w9xx3xvx4wrfdkdwkfzjlfichgkvacil9b8s1fcgla63z65m5f6"))))
(build-system python-build-system)
- (home-page "https://github.com/a13xp0p0v/kconfig-hardened-check")
+ (home-page "https://github.com/a13xp0p0v/kernel-hardening-checker")
(synopsis
"Tool for checking the security hardening options of the Linux kernel")
(description
- "@code{kconfig-hardened-check} is a tool for checking the security
+ "@code{kernel-hardening-checker} is a tool for checking the security
hardening options of the Linux kernel. Provided preferences are based on
suggestions from various sources, including:
@@ -10363,6 +10364,9 @@ suggestions from various sources, including:
This tool supports checking Kconfig options and kernel cmdline parameters.")
(license license:gpl3)))
+(define-public kconfig-hardened-check
+ (deprecated-package "kconfig-hardened-check" kernel-hardening-checker))
+
(define-public firejail
(package
(name "firejail")
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 65038ba2b6..045a3e939a 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -1073,7 +1073,7 @@ options, e.g., by looking up an external key/value store
(define-public sbcl-command-line-args
(package
(name "sbcl-command-line-args")
- (version "0.1.0")
+ (version "0.1.1")
(source
(origin
(method git-fetch)
@@ -1082,7 +1082,7 @@ options, e.g., by looking up an external key/value store
(commit (string-append "v" version))))
(file-name (git-file-name "cl-command-line-args" version))
(sha256
- (base32 "0ncw32qaak878xg68p42m2sh0qv19hg1va9wrh74d92v7cqz08kw"))))
+ (base32 "140xnz2v0v3hfg3dp2fhidw8ns6lxd3a5knm07wqdp48ksg119wy"))))
(build-system asdf-build-system/sbcl)
(arguments
'(#:asd-systems '("whereiseveryone.command-line-args")))
@@ -11551,6 +11551,42 @@ may contain sets, maps may be keyed by sets, etc.")
;; Tests fails on ECL with "The function FSET::MAKE-CHAR is undefined".
'(#:tests? #f))))
+(define-public sbcl-modf
+ (let ((commit "dea93fe62c6bf7f66f32f52ac0c555aedbf7abad")
+ (revision "0"))
+ (package
+ (name "sbcl-modf")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/smithzvk/modf")
+ (commit commit)))
+ (file-name (git-file-name "cl-modf" version))
+ (sha256
+ (base32
+ "1aap7ldy7lv942khp026pgndgdzfkkqa9xcq1ykinrmflrgdazay"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-closer-mop
+ sbcl-iterate))
+ (native-inputs
+ (list sbcl-stefil))
+ (home-page "https://github.com/smithzvk/modf")
+ (synopsis "SETF like macro for functional programming in Common Lisp")
+ (description "This library simplifies functional programming in Common
+Lisp by making it easier to make new data structures with specified changes in
+place.")
+ (license license:bsd-3))))
+
+(define-public cl-modf
+ (sbcl-package->cl-source-package sbcl-modf))
+
+(define-public ecl-modf
+ (sbcl-package->ecl-package sbcl-modf))
+
(define-public sbcl-cl-cont
(let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
(revision "1"))
@@ -21876,8 +21912,8 @@ Common Lisp.")
(sbcl-package->cl-source-package sbcl-metacopy))
(define-public sbcl-legit
- (let ((commit "5f8a2d4c4f5fb8e53340eeef600433ee20e03fbe")
- (revision "2"))
+ (let ((commit "9c677b9b798803d37ab6f5e0e0705441872f7230")
+ (revision "3"))
(package
(name "sbcl-legit")
(version (git-version "1.0.0" revision commit))
@@ -21887,9 +21923,9 @@ Common Lisp.")
(uri (git-reference
(url "https://github.com/Shinmera/legit")
(commit commit)))
- (file-name (git-file-name name version))
+ (file-name (git-file-name "cl-legit" version))
(sha256
- (base32 "0crr7ya7dg15di7glk3w9sgf6j8dmny347gynmxxrdvjj9pa906m"))))
+ (base32 "0jy021ywrbnkgbgb63ip6j7kr40m4wz2pz1v5ybn6xkkn6dyprsz"))))
(build-system asdf-build-system/sbcl)
(arguments
`(#:phases
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 29d5ddebdc..c58e56b7a7 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1242,7 +1242,7 @@ including a built-in database engine and a GUI system.")
(define-public janet
(package
(name "janet")
- (version "1.32.1")
+ (version "1.33.0")
(source
(origin
(method git-fetch)
@@ -1251,7 +1251,7 @@ including a built-in database engine and a GUI system.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1nnqbpql6749597m0lp56i2zqm003pg690399l0g8kb9kwvpv1yv"))))
+ (base32 "16wgljca7hp29fz5p2dnvy2cbscjx4imf85rhjwc1jkgdjswjxli"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 0062bc56cd..2778d0ec38 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -22,7 +22,7 @@
;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2022, 2024 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
@@ -1709,7 +1709,7 @@ misuse of libraries outside of the store.")))
(define-public lldb
(package
(name "lldb")
- (version (package-version llvm-15))
+ (version (package-version llvm-17))
(source (llvm-monorepo version))
(build-system cmake-build-system)
(arguments
@@ -1723,8 +1723,8 @@ misuse of libraries outside of the store.")))
(native-inputs
(list pkg-config swig))
(inputs
- (list clang-15
- llvm-15
+ (list clang-17
+ llvm-17
;; Optional (but recommended) inputs.
ncurses
libedit
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index 0efd828f8a..47e8cd39c2 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -213,7 +213,7 @@ output in multiple windows in a terminal.")
(define-public spdlog
(package
(name "spdlog")
- (version "1.12.0")
+ (version "1.13.0")
(source
(origin
(method git-fetch)
@@ -221,9 +221,8 @@ output in multiple windows in a terminal.")
(url "https://github.com/gabime/spdlog")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
- (patches (search-patches "spdlog-fix-tests.patch"))
(sha256
- (base32 "0yyncv6wjs5rqm76rkqyxpfbsingk1dq5zfcqhy1a7fpw8xdl53k"))))
+ (base32 "0zgdmdgnp2y36jrlk85d4fiyjkjd6anly8pambyc3f3v6sg02zyy"))))
(build-system cmake-build-system)
;; TODO run benchmark. Currently not possible, as adding
;; (gnu packages benchmark) forms a dependency cycle
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 92cc468871..2e20872555 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -24,6 +24,7 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2024 David Pflug <david@pflug.io>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -73,6 +74,7 @@
#:use-module (gnu packages cran)
#:use-module (gnu packages databases)
#:use-module (gnu packages dejagnu)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
@@ -660,6 +662,53 @@ networks) based on simulation of (stochastic) flow in graphs.")
algorithm.")
(license license:gpl3)))
+(define-public openmm
+ (package
+ (name "openmm")
+ (version "8.1.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/openmm/openmm")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "064vv6zaci30pj38z5lwfqscxssm67jqxkz30hcya9vm4ng831d5"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ '(list "-DOPENMM_BUILD_SHARED_LIB=TRUE"
+ "-DOPENMM_BUILD_C_AND_FORTRAN_WRAPPERS=TRUE"
+ "-DOPENMM_BUILD_PYTHON_WRAPPERS=TRUE"
+ "-DOPENMM_BUILD_CUDA_LIB=FALSE")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-python-build-system
+ (lambda _
+ (substitute* "wrappers/python/CMakeLists.txt"
+ (("install --root=\\\\\\$ENV\\{DESTDIR\\}/")
+ (string-append "install --prefix=" #$output
+ " --root=/ --single-version-externally-managed")))))
+ (add-after 'install 'install-python
+ (lambda _
+ (invoke "make" "PythonInstall"))))))
+ (inputs
+ (list python-wrapper))
+ (propagated-inputs
+ (list python-numpy))
+ (native-inputs
+ (list doxygen gfortran opencl-headers python-cython swig))
+ (home-page "https://github.com/openmm/openmm/")
+ (synopsis "Toolkit for molecular simulation")
+ (description
+ "OpenMM is a toolkit for molecular simulation. It can be used either as
+a stand-alone application for running simulations, or as a library you call
+from your own code.")
+ ;; See https://github.com/openmm/openmm/issues/4278#issuecomment-1772982471
+ (license license:expat)))
+
(define-public randomjungle
(package
(name "randomjungle")
@@ -5317,3 +5366,23 @@ Brian 2 simulator.")
"OneAPI Deep Neural Network Library (oneDNN) is a cross-platform
performance library of basic building blocks for deep learning applications.")
(license license:asl2.0)))
+
+(define-public python-gguf
+ (package
+ (name "python-gguf")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "gguf" version))
+ (sha256
+ (base32 "0rbyc2h3kpqnrvbyjvv8a69l577jv55a31l12jnw21m1lamjxqmj"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #false))
+ (inputs (list poetry python-pytest))
+ (propagated-inputs (list python-numpy))
+ (home-page "https://ggml.ai")
+ (synopsis "Read and write ML models in GGUF for GGML")
+ (description "A Python library for reading and writing GGUF & GGML format ML models.")
+ (license license:expat)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 76f379a710..b6f167715c 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -108,6 +108,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
@@ -247,15 +248,15 @@ mail client.")
(name "anubis")
;; This 4.2.90 alpha release adds support for Guile 3 and has fixes for
;; other issues.
- (version "4.2.90")
+ (version "4.3")
(source
(origin
(method url-fetch)
- (uri (string-append "https://alpha.gnu.org/gnu/anubis/anubis-"
+ (uri (string-append "mirror://gnu/anubis/anubis-"
version ".tar.gz"))
(sha256
(base32
- "0dvm6acl32dv8bixx9z50gzwfp6kj4kxnn1j3dcwjlp7sasjp41s"))))
+ "0b5ghaccy09l6fv0bg4my3yrxbw807wpwk14xvjih8j6ghrz62pz"))))
(build-system gnu-build-system)
(native-inputs
(list automake autoconf gettext-minimal m4)) ;for the test suite
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 2a13a50928..ca36eb4f5d 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -28,7 +28,7 @@
;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
;;; Copyright © 2018, 2020-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018 Eric Brown <brown@fastmail.com>
-;;; Copyright © 2018, 2021 Julien Lepiller <julien@lepiller.eu>
+;;; 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 Steve Sprang <scs@stevesprang.com>
@@ -93,6 +93,7 @@
#:use-module (guix build-system ant)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
+ #:use-module (guix build-system dune)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
@@ -184,6 +185,7 @@
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tex)
+ #:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages wxwidgets)
@@ -9355,7 +9357,7 @@ numeric differences and differences in numeric formats.")
(define-public why3
(package
(name "why3")
- (version "1.4.1")
+ (version "1.6.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -9364,7 +9366,7 @@ numeric differences and differences in numeric formats.")
(file-name (git-file-name name version))
(sha256
(base32
- "1yca6mx8bjm8x0i594ivh31aw45s6fbimmwfj8g2v9zwrgmr1i4s"))))
+ "0k3y98xzhrl44vwzq2m6k4nrllrwp3ll69lc2gfl8d77w0wg7gkp"))))
(build-system ocaml-build-system)
(native-inputs
(list autoconf automake coq ocaml which))
@@ -9412,36 +9414,38 @@ of C, Java, or Ada programs.")
(define-public frama-c
(package
(name "frama-c")
- (version "24.0")
+ (version "27.1")
(source (origin
(method url-fetch)
(uri (string-append "http://frama-c.com/download/frama-c-"
- version "-Chromium.tar.gz"))
+ version "-Cobalt.tar.gz"))
(sha256
(base32
- "0x1xgip50jdz1phsb9rzwf2ra8lshn1hmd9g967xia402wrg3sjf"))))
- (build-system ocaml-build-system)
+ "1lirkvhf5m53d33l0aw5jzc1fyzkwx5fkgh9g71732d52r55f4sv"))))
+ (build-system dune-build-system)
(arguments
- `(#:tests? #f; no test target in Makefile
- #:configure-flags
- (list "--enable-verbosemake") ; to aid debugging
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'export-shell
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "CONFIG_SHELL"
- (search-input-file inputs "/bin/sh")))))))
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'set-env
+ (lambda _
+ (setenv "CC" "gcc"))))))
(inputs
(list gmp zlib))
- (propagated-inputs
- (list ocaml-biniou
- ocaml-easy-format
- ocaml-graph
- ocaml-yojson
- ocaml-zarith
- ocaml-lablgtk3-sourceview3
- lablgtk3
- why3))
+ (propagated-inputs (list
+ graphviz
+ lablgtk3
+ ocaml-graph
+ ocaml-odoc
+ ocaml-lablgtk3-sourceview3
+ ocaml-yaml
+ ocaml-yojson
+ ocaml-zarith
+ ocaml-ppx-deriving
+ ocaml-ppx-deriving-yojson
+ ocaml-ppx-deriving-yaml
+ ocaml-ppx-import
+ why3))
+ (native-inputs (list dune-site time ocaml-menhir ocaml-graph))
(native-search-paths
(list (search-path-specification
(variable "FRAMAC_SHARE")
diff --git a/gnu/packages/medical.scm b/gnu/packages/medical.scm
index 33877083e2..15bd870f83 100644
--- a/gnu/packages/medical.scm
+++ b/gnu/packages/medical.scm
@@ -83,32 +83,34 @@ Health Federation.")
(define-public openmolar-1
(package
- (name "openmolar")
- (version "1.0.15-gd81f9e5")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://static.openmolar.com/om1/releases/openmolar-"
- version ".tar.gz"))
- (sha256
- (base32
- "1cfdzfbi6wslw7k0dc6ad6xrgs75iwsl91cg73w4myswaqqkfk3z"))))
- (build-system python-build-system)
- (arguments
- `(#:use-setuptools? #f
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-/usr
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "setup.py"
- (("/usr") (assoc-ref outputs "out")))
- #t)))))
- (inputs
- (list python-pyqt+qscintilla python-mysqlclient qscintilla))
- (home-page "https://openmolar.com/om1")
- (synopsis "Dental practice management software")
- (description "Openmolar is a dental practice management suite. Its
+ (name "openmolar")
+ (version "1.1.6-g81838c85")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://static.openmolar.com/om1/releases/openmolar-" version
+ ".tar.gz"))
+ (sha256
+ (base32 "09vrfqn511vswnj2q9m7srlwdgz066qvqpmja6sg1yl1ibh3cbpr"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:use-setuptools? #f
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-/usr
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* '("setup.py"
+ "src/openmolar/settings/localsettings.py")
+ (("/usr")
+ (assoc-ref outputs "out"))) #t)))))
+ (inputs (list python-pyqtwebengine python-pyqt+qscintilla
+ python-mysqlclient qscintilla))
+ (propagated-inputs (list qtwebengine-5))
+ (home-page "https://openmolar.com/om1")
+ (synopsis "Dental practice management software")
+ (description
+ "Openmolar is a dental practice management suite. Its
functionality includes appointments, patient records, treatment planning,
billing etc. It is a full featured, reliable and thoroughly tested
application and has been translated into many languages.")
- (license gpl3+)))
+ (license gpl3+)))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 491901edf3..98c1c9bf67 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -86,6 +86,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
@@ -2636,11 +2637,11 @@ replacement.")
(license license:gpl2+)))
(define-public tdlib
- (let ((commit "27c3eaeb4964bd5f18d8488e354abde1a4383e49")
+ (let ((commit "c5c55092dd61b9eb15d6bbfd0f02c04c593450e7")
(revision "0"))
(package
(name "tdlib")
- (version (git-version "1.8.23" revision commit))
+ (version (git-version "1.8.24" revision commit))
(source
(origin
(method git-fetch)
@@ -2648,7 +2649,7 @@ replacement.")
(url "https://github.com/tdlib/td")
(commit commit)))
(sha256
- (base32 "14f65dfmg2p5hyvi3lffvvazwcd3i3jrrw3c2pwrc5yfgxk3662g"))
+ (base32 "1kwbp4ay4zvk9jscp0xv9rv4jz2krm9jya8q81wnvn9qd0ybg94f"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
diff --git a/gnu/packages/moe.scm b/gnu/packages/moe.scm
index a1926f738b..93ac00fbc6 100644
--- a/gnu/packages/moe.scm
+++ b/gnu/packages/moe.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2019, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2024 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,14 +29,14 @@
(define-public moe
(package
(name "moe")
- (version "1.13")
+ (version "1.14")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/moe/moe-"
version ".tar.lz"))
(sha256
- (base32 "0sql4r5g60k3rsz8vsr04rl5b873rwli1x75333xd29ga6y5g9a3"))))
+ (base32 "17cw43zsahisz5msqdv366np3zrdschgnm1lk1pm26dfw1nbvfpl"))))
(build-system gnu-build-system)
(native-inputs (list lzip))
(inputs (list ncurses))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index cd06aeddda..6b218376b7 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -52,7 +52,7 @@
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2023 Antero Mejr <antero@mailbox.org>
-;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;;
;;; This file is part of GNU Guix.
@@ -1673,15 +1673,7 @@ typographic detail of symbols on the page.")
(sha256
(base32
"0wma9vzn42h1rhbzh2dwjsrzjhsi1yqdgn6wx1dfk78vaki6prd8"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "python" "-m" "pytest" ".")
- #t))))))
+ (build-system pyproject-build-system)
(native-inputs
(list lilypond
python-black
@@ -1691,7 +1683,8 @@ typographic detail of symbols on the page.")
python-mypy
python-pytest
python-pytest-cov
- python-pytest-helpers-namespace))
+ python-pytest-helpers-namespace
+ python-sphinx-autodoc-typehints))
(propagated-inputs
(list abjad))
(home-page "https://abjad.github.io")
@@ -1715,15 +1708,7 @@ and manipulating rhythms such as accelerandi, taleas, and more.")
(sha256
(base32
"05hr2lr6myzi493k8vc19cqzraxxnbdwlckwbnras19l5g5ns38x"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "python" "-m" "pytest" "tests")
- #t))))))
+ (build-system pyproject-build-system)
(native-inputs
(list lilypond
python-black
@@ -1733,7 +1718,8 @@ and manipulating rhythms such as accelerandi, taleas, and more.")
python-mypy
python-pytest
python-pytest-cov
- python-pytest-helpers-namespace))
+ python-pytest-helpers-namespace
+ python-sphinx-autodoc-typehints))
(propagated-inputs
(list abjad))
(home-page "https://abjad.github.io")
@@ -3821,7 +3807,7 @@ event-based scripts for scrobbling, notifications, etc.")
(define-public picard
(package
(name "picard")
- (version "2.10")
+ (version "2.11")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3829,7 +3815,7 @@ event-based scripts for scrobbling, notifications, etc.")
"picard/picard-" version ".tar.gz"))
(sha256
(base32
- "0f9rvif9m83jhal9n9x8kks17c0cgcipi1hjqmki7a296lz175ss"))))
+ "0ppq2n9jf8c8r8p9dkpcyipd2psr9hg0zbd5hcdsicili25336j4"))))
(build-system python-build-system)
(arguments
(list
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 6416c97625..9b472500bc 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -62,6 +62,8 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
+;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev>
+;;; Copyright © 2024 Alexey Abramov <levenson@mmer.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -125,7 +127,11 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
@@ -832,7 +838,7 @@ at the link-layer level.")
(substitute* "src/supplemental/websocket/CMakeLists.txt"
(("nng_test\\(wssfile_test\\)") "")))))))
(native-inputs (list oksh))
- (inputs (list mbedtls-apache))
+ (inputs (list mbedtls-lts))
(synopsis "Lightweight messaging library")
(description "NNG project is a rewrite of the scalability protocols library
known as libnanomsg, and adds significant new capabilities, while retaining
@@ -4551,7 +4557,7 @@ network.")
(define-public ngtcp2
(package
(name "ngtcp2")
- (version "1.1.0")
+ (version "1.2.0")
(source
(origin
(method url-fetch)
@@ -4559,7 +4565,7 @@ network.")
"releases/download/v" version "/"
"ngtcp2-" version ".tar.xz"))
(sha256
- (base32 "1pppl6s25hz91w6321g1q7dqvfy4vccz9mmc5r8sfdvdc95fngl0"))))
+ (base32 "158acn01df6sxqjqx4h948phpcgc2da88aiqn9p2jqgqph48brxh"))))
(build-system gnu-build-system)
(arguments
(list
@@ -4670,6 +4676,91 @@ IPv6 Internet connectivity - it also works over IPv4.")
;; which apply to the Application, with which you must still comply
license:lgpl3)))
+(define-public nebula
+ (package
+ (name "nebula")
+ (version "1.8.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/slackhq/nebula")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ly1axgmskrkmxhzymqis6gxf2wd7rvhycm94wfb8k0hirndvg5m"))
+ ;; Remove windows-related binary blobs and files
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ (delete-file-recursively "dist/windows")
+ (delete-file-recursively "wintun")))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.20
+ #:import-path "github.com/slackhq/nebula"
+ #:install-source? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ ;; Suggested option to provide build time flags is not supported
+ ;; in Guix for go-build-system.
+ ;; -ldflags "-X main.Build=SOMEVERSION"
+ (substitute* (string-append "src/" import-path "/cmd/nebula/main.go")
+ (("Version: ")
+ (string-append "Version: " #$version)))
+ ;; Build nebula and nebula-cert
+ (let* ((dir "github.com/slackhq/nebula")
+ (nebula-cmd (string-append dir "/cmd/nebula"))
+ (cert-cmd (string-append dir "/cmd/nebula-cert")))
+ (invoke "go" "build" nebula-cmd)
+ (invoke "go" "build" cert-cmd))))
+ (replace 'install
+ (lambda _
+ (let* ((out #$output)
+ (bindir (string-append out "/bin")))
+ (install-file "nebula" bindir)
+ (install-file "nebula-cert" bindir)))))))
+ (inputs
+ (list go-dario-cat-mergo
+ go-github-com-anmitsu-go-shlex
+ go-github-com-armon-go-radix
+ go-github-com-cespare-xxhash
+ go-github-com-cyberdelia-go-metrics-graphite
+ go-github-com-flynn-noise
+ go-github-com-gogo-protobuf
+ go-github-com-google-gopacket
+ go-github-com-miekg-dns
+ go-github-com-nbrownus-go-metrics-prometheus
+ go-github-com-prometheus-client-golang
+ go-github-com-prometheus-client-model
+ go-github-com-prometheus-procfs
+ go-github-com-rcrowley-go-metrics
+ go-github-com-sirupsen-logrus
+ go-github-com-skip2-go-qrcode
+ go-github-com-songgao-water
+ go-github-com-stretchr-testify
+ go-golang-org-x-crypto
+ go-golang-org-x-net
+ go-golang-org-x-sys
+ go-golang-org-x-term
+ go-google-golang-org-protobuf
+ go-gopkg-in-yaml-v2
+ go-netlink
+ go-netns))
+ (home-page "https://github.com/slackhq/nebula")
+ (synopsis "Scalable, peer-to-peer overlay networking tool")
+ (description
+ "Nebula is a peer-to-peer networking tool based on the
+@url{https://noiseprotocol.org/, Noise Protocol Framework}. It is not a fully
+decentralized network, but instead uses central discovery nodes and a
+certificate authority to facilitate direct, encrypted peer-to-peer connections
+from behind most firewalls and @acronym{NAT, Network Address Translation}
+layers.")
+ (license license:expat)))
+
(define-public netdiscover
(package
(name "netdiscover")
@@ -4701,7 +4792,7 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send
(define-public phantomsocks
(package
(name "phantomsocks")
- (version "0.0.0-20231031033204-8b0ac27fc450")
+ (version "0.0.0-20240125140126-2576269ca69a")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4710,10 +4801,10 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send
(file-name (git-file-name name version))
(sha256
(base32
- "1q4i8pgj6hzry9wzlczx729dmmgqdqfb26rfaim2ngmp1dyy9drl"))))
+ "1kbcr6580a9pi0a3wssnfr3mnxqq2k9w1fg4khikn82lqaljab2f"))))
(build-system go-build-system)
(arguments
- (list #:go go-1.20
+ (list #:go go-1.21
#:install-source? #f
#:import-path "github.com/macronut/phantomsocks"
#:build-flags #~'("-tags" #$(if (target-linux?)
@@ -4779,6 +4870,7 @@ implementations.")
(home-page "https://www.chiark.greenend.org.uk/~sgtatham/putty/")
(license license:expat)))
+
(define-public vnstat
(package
(name "vnstat")
diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index 9097d611a6..a47c525d14 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -702,6 +702,32 @@ Subsequent calls will either return the cached previous value or throw an error
if desired.")
(license license:isc)))
+(define-public node-path-key
+ (package
+ (name "node-path-key")
+ (version "4.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sindresorhus/path-key")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "09f4rf70qhq234fcc3pw9nrqic8cb75pk2b6wfnpr96v0r1h8d8g"))))
+ (build-system node-build-system)
+ (arguments
+ '(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ (add-after 'patch-dependencies 'delete-dependencies
+ (lambda _
+ (delete-dependencies '("@types/node" "ava" "tsd" "xo")))))))
+ (home-page "https://github.com/sindresorhus/path-key")
+ (synopsis "Cross-platform utility to compute the PATH environment variable key")
+ (description "@code{path-key} provides an implementation to compute the
+particular cross-platform spellings of the PATH environment variable key.")
+ (license license:expat)))
+
(define-public node-ieee754
(package
(name "node-ieee754")
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index e166cdec2f..0f4c351141 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2018-2020, 2023 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016-2022 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2016-2024 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Peter Kreye <kreyepr@gmail.com>
@@ -29,6 +29,8 @@
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;; Copyright © 2023 Csepp <raingloom@riseup.net>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
+;;; Copyright © 2023 Arnaud DABY-SEESARAM <ds-ac@nanein.fr>
+;;; Copyright © 2024 Sören Tempel <soeren@soeren-tempel.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -253,7 +255,7 @@ functional, imperative and object-oriented styles of programming.")
(define-public ocaml-4.14
(package
(name "ocaml")
- (version "4.14.0")
+ (version "4.14.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -262,7 +264,7 @@ functional, imperative and object-oriented styles of programming.")
"/ocaml-" version ".tar.xz"))
(sha256
(base32
- "0axcc7c23pf4qinz4vxgkba6pwziwbp9i2ydwzar7x9zlp6diarn"))))
+ "0vxvwxxycpc3r5p7ys59d86vw5vdr2lhmck1f3s6qms2096rf9y1"))))
(build-system gnu-build-system)
(native-search-paths
(list (search-path-specification
@@ -713,7 +715,7 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.")
(define-public ocaml-dose3
(package
(name "ocaml-dose3")
- (version "5.0.1")
+ (version "7.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -722,29 +724,16 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.")
(file-name (git-file-name name version))
(sha256
(base32
- "0dxkw37gj8z45kd0dnrlfgpj8yycq0dphs8kjm9kvq9xc8rikxp3"))
- (patches
- (search-patches
- "ocaml-dose3-add-unix-dependency.patch"
- "ocaml-dose3-Fix-for-ocaml-4.06.patch"
- "ocaml-dose3-dont-make-printconf.patch"
- "ocaml-dose3-Install-mli-cmx-etc.patch"))))
- (build-system ocaml-build-system)
- (arguments
- `(#:tests? #f ;the test suite requires python 2
- #:configure-flags
- ,#~(list (string-append "SHELL="
- #+(file-append (canonical-package bash-minimal)
- "/bin/sh")))
- #:make-flags
- ,#~(list (string-append "LIBDIR=" #$output "/lib/ocaml/site-lib"))))
- (propagated-inputs
- (list ocaml-graph ocaml-cudf ocaml-extlib ocaml-re))
- (native-inputs
- (list perl
- ocaml-extlib
- ocamlbuild
- ocaml-cppo))
+ "0hcjh68svicap7j9bghgkp49xa12qhxa1pygmrgc9qwm0m4dhirb"))))
+ (build-system dune-build-system)
+ (arguments `(#:package "dose3"))
+ (propagated-inputs (list ocaml-extlib
+ ocaml-base64-boot
+ ocaml-cudf
+ ocaml-graph
+ ocaml-re
+ ocaml-stdlib-shims))
+ (native-inputs (list ocaml-ounit))
(home-page "https://www.mancoosi.org/software/")
(synopsis "Package distribution management framework")
(description "Dose3 is a framework made of several OCaml libraries for
@@ -780,7 +769,7 @@ repository-wide uninstallability checks.")
,#~(list "build" "--lib-dir"
(string-append #$output "/lib/ocaml/site-lib"))))
(native-inputs
- (list ocaml-findlib ocamlbuild ocaml-topkg opam))
+ (list ocaml-findlib ocamlbuild ocaml-topkg opam-installer))
(home-page "https://erratique.ch/software/down")
(synopsis "OCaml toplevel (REPL) upgrade")
(description "Down is an unintrusive user experience upgrade for the
@@ -846,10 +835,10 @@ the opam file format.")
;; With static-linking exception
(license license:lgpl2.1+)))
-(define-public opam
+(define ocaml-opam-core
(package
- (name "opam")
- (version "2.1.3")
+ (name "ocaml-opam-core")
+ (version "2.1.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -858,34 +847,153 @@ the opam file format.")
(file-name (git-file-name name version))
(sha256
(base32
- "1mw535zsw7xlvpgwnk1dan76z3f7lh5imlg0s6kdyhfg0iqisjd7"))))
+ "0ckd87rcmcz11iyhhm5qnmy27jbdffx6n1fr06hvrqqrzi00jljh"))))
+ (build-system dune-build-system)
+ (arguments `(#:package "opam-core"
+ ;; tests are run with the opam package
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'pre-build
+ (lambda* (#:key inputs make-flags #:allow-other-keys)
+ (let ((bash (assoc-ref inputs "bash"))
+ (bwrap (search-input-file inputs "/bin/bwrap")))
+ (substitute* "src/core/opamSystem.ml"
+ (("\"/bin/sh\"")
+ (string-append "\"" bash "/bin/sh\""))
+ (("getconf")
+ (which "getconf")))))))))
+ (propagated-inputs
+ (list ocaml-graph
+ ocaml-re
+ ocaml-cppo))
+ (inputs (list bubblewrap))
+ (home-page "https://opam.ocamlpro.com/")
+ (synopsis "Package manager for OCaml")
+ (description
+ "OPAM is a tool to manage OCaml packages. It supports multiple
+simultaneous compiler installations, flexible package constraints, and a
+Git-friendly development workflow.")
+ ;; The 'LICENSE' file waives some requirements compared to LGPLv3.
+ (license license:lgpl3)))
+
+(define ocaml-opam-format
+ (package
+ (inherit ocaml-opam-core)
+ (name "ocaml-opam-format")
+ (inputs '())
+ (propagated-inputs (list ocaml-opam-core
+ ocaml-opam-file-format
+ ocaml-re))
+ (arguments `(#:package "opam-format"
+ ;; tests are run with the opam package
+ #:tests? #f
+ #:phases %standard-phases))))
+
+(define-public opam-installer
+ (package
+ (inherit ocaml-opam-core)
+ (name "opam-installer")
+ (native-inputs (list ocaml-opam-format
+ ocaml-cmdliner))
+ (inputs '())
+ (propagated-inputs '())
+ (arguments `(#:package "opam-installer"
+ ;; requires all of opam
+ #:tests? #f))
+ (synopsis "Tool for installing OCaml packages")
+ (description "@var{opam-installer} is a tool for installing OCaml packages
+based on @code{.install} files defined by the OPAM package manager. It is
+useful for installing OCaml packages without requiring the entirety of
+OPAM.")
+ (properties
+ ;; opam-installer is used as a tool and not as a library, we can use the
+ ;; OCaml 4.14 compiled opam until opam is compatible with OCaml 5.0.
+ `((ocaml5.0-variant . ,(delay opam-installer))))))
+
+(define ocaml-opam-repository
+ (package
+ (inherit ocaml-opam-core)
+ (name "ocaml-opam-repository")
+ (inputs '())
+ (propagated-inputs (list ocaml-opam-format))
+ (arguments `(#:package "opam-repository"
+ ;; tests are run with the opam package
+ #:tests? #f
+ #:phases %standard-phases))))
+
+(define ocaml-opam-state
+ (package
+ (inherit ocaml-opam-core)
+ (name "ocaml-opam-state")
+ (arguments `(#:package "opam-state"
+ ;; tests are run with the opam package
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'pre-build
+ (lambda* (#:key inputs make-flags #:allow-other-keys)
+ (let ((bwrap (search-input-file inputs "/bin/bwrap")))
+ ;; Use bwrap from the store directly.
+ (substitute* "src/state/shellscripts/bwrap.sh"
+ (("-v bwrap") (string-append "-v " bwrap))
+ (("exec bwrap") (string-append "exec " bwrap))
+ ;; Mount /gnu and /run/current-system in the
+ ;; isolated environment when building with opam.
+ ;; This is necessary for packages to find external
+ ;; dependencies, such as a C compiler, make, etc...
+ (("^add_sys_mounts /usr")
+ (string-append "add_sys_mounts "
+ (%store-directory)
+ " /run/current-system /usr")))))))))
+ (inputs (list bubblewrap))
+ (propagated-inputs (list ocaml-opam-repository))))
+
+(define ocaml-opam-solver
+ (package
+ (inherit ocaml-opam-core)
+ (name "ocaml-opam-solver")
+ (inputs '())
+ (propagated-inputs (list ocaml-opam-format
+ ocaml-mccs
+ ocaml-dose3))
+ (arguments `(#:package "opam-solver"
+ ;; tests are run with the opam package
+ #:tests? #f
+ #:phases %standard-phases))))
+
+(define ocaml-opam-client
+ (package
+ (inherit ocaml-opam-core)
+ (name "ocaml-opam-client")
+ (arguments `(#:package "opam-client"
+ ;; tests are run with the opam package
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'pre-build
+ (lambda* (#:key inputs make-flags #:allow-other-keys)
+ (let ((bwrap (search-input-file inputs "/bin/bwrap")))
+ (substitute* "src/client/opamInitDefaults.ml"
+ (("\"bwrap\"") (string-append "\"" bwrap "\"")))))))))
+ (inputs (list bubblewrap))
+ (propagated-inputs
+ (list ocaml-opam-state
+ ocaml-opam-solver
+ ocaml-opam-repository
+ ocaml-base64
+ ocaml-re
+ ocaml-cmdliner))))
+
+(define-public opam
+ (package
+ (inherit ocaml-opam-core)
+ (name "opam")
(build-system dune-build-system)
(arguments
- `(#:phases
+ `(#:package "opam"
+ #:phases
(modify-phases %standard-phases
- (add-before 'build 'pre-build
- (lambda* (#:key inputs make-flags #:allow-other-keys)
- (let ((bash (assoc-ref inputs "bash"))
- (bwrap (search-input-file inputs "/bin/bwrap")))
- (substitute* "src/core/opamSystem.ml"
- (("\"/bin/sh\"")
- (string-append "\"" bash "/bin/sh\""))
- (("getconf")
- (which "getconf")))
- ;; Use bwrap from the store directly.
- (substitute* "src/state/shellscripts/bwrap.sh"
- (("-v bwrap") (string-append "-v " bwrap))
- (("exec bwrap") (string-append "exec " bwrap))
- ;; Mount /gnu and /run/current-system in the
- ;; isolated environment when building with opam.
- ;; This is necessary for packages to find external
- ;; dependencies, such as a C compiler, make, etc...
- (("^add_sys_mounts /usr")
- (string-append "add_sys_mounts "
- (%store-directory)
- " /run/current-system /usr")))
- (substitute* "src/client/opamInitDefaults.ml"
- (("\"bwrap\"") (string-append "\"" bwrap "\""))))))
(add-before 'check 'prepare-checks
(lambda* (#:key inputs #:allow-other-keys)
;; Opam tests need to run an isolated environment from a writable
@@ -918,7 +1026,10 @@ name = Guix Builder")
(("diff opamroot-versions.test opamroot-versions.out") "run true")
;; Disable a failing test, probably because the repository we
;; replaced is not as expected
- (("diff opamrt-big-upgrade.test opamrt-big-upgrade.out") "run true"))
+ (("diff opamrt-big-upgrade.test opamrt-big-upgrade.out") "run true")
+ ;; Disable a failing test because of missing sandboxing
+ ;; functionality
+ (("diff init.test init.out") "run true"))
(substitute* "tests/reftests/dune"
;; Because of our changes to the previous file, we cannot check
;; it can be regenerated
@@ -954,34 +1065,47 @@ name = Guix Builder")
("which" ,which)
;; Data for tests
- ("opam-repo-009e00fa" ,(opam-repo "009e00fa86300d11c311309a2544e5c6c3eb8de2"
- "1wwy0rwrsjf4q10j1rh1dazk32fbzhzy6f7zl6qmndidx9b1bq7w"))
- ("opam-repo-7090735c" ,(opam-repo "7090735c9d1dd2dc481c4128c5ef4d3667238f15"
- "1bccsgjhlp64lmvfjfn6viywf3x73ji75myg9ssf1ij1fkmabn0z"))
- ("opam-repo-a5d7cdc0" ,(opam-repo "a5d7cdc0c91452b0aef4fa71c331ee5237f6dddd"
- "0z7kawqisy07088p5xjxwpvmvzlbj1d9cgdipsj90yx7nc5qh369"))
- ("opam-repo-ad4dd344" ,(opam-repo "ad4dd344fe5cd1cab49ced49d6758a9844549fb4"
- "1a1qj47kj8xjdnc4zc50ijrix1kym1n7k20n3viki80a7518baw8"))
- ("opam-repo-c1d23f0e" ,(opam-repo "c1d23f0e17ec83a036ebfbad1c78311b898a2ca0"
- "0j9abisx3ifzm66ci3p45mngmz4f0fx7yd9jjxrz3f8w5jffc9ii"))
- ("opam-repo-f372039d" ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701"
- "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws")))))
- (inputs
- (list ocaml ncurses curl bubblewrap ocaml-cmdliner ocaml-dose3
- ocaml-mccs ocaml-opam-file-format ocaml-re))
+ ("opam-repo-0070613707"
+ ,(opam-repo "00706137074d536d2019d2d222fbe1bea929deda"
+ "1gv1vvmfscj7wirfv6qncp8pf81wygnpzjwd0lyqcxm7g8r8lb4w"))
+ ("opam-repo-009e00fa"
+ ,(opam-repo "009e00fa86300d11c311309a2544e5c6c3eb8de2"
+ "1wwy0rwrsjf4q10j1rh1dazk32fbzhzy6f7zl6qmndidx9b1bq7w"))
+ ("opam-repo-7090735c"
+ ,(opam-repo "7090735c9d1dd2dc481c4128c5ef4d3667238f15"
+ "1bccsgjhlp64lmvfjfn6viywf3x73ji75myg9ssf1ij1fkmabn0z"))
+ ("opam-repo-a5d7cdc0"
+ ,(opam-repo "a5d7cdc0c91452b0aef4fa71c331ee5237f6dddd"
+ "0z7kawqisy07088p5xjxwpvmvzlbj1d9cgdipsj90yx7nc5qh369"))
+ ("opam-repo-ad4dd344"
+ ,(opam-repo "ad4dd344fe5cd1cab49ced49d6758a9844549fb4"
+ "1a1qj47kj8xjdnc4zc50ijrix1kym1n7k20n3viki80a7518baw8"))
+ ("opam-repo-c1842d168d"
+ ,(opam-repo "c1842d168de956caf06d7ac8588e65020d7594d8"
+ "142y1ac7sprygyh91shcp0zcyfxjjkshi9g44qgg4rx60rbsbhai"))
+ ("opam-repo-c1d23f0e"
+ ,(opam-repo "c1d23f0e17ec83a036ebfbad1c78311b898a2ca0"
+ "0j9abisx3ifzm66ci3p45mngmz4f0fx7yd9jjxrz3f8w5jffc9ii"))
+ ("opam-repo-f372039d"
+ ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701"
+ "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws"))
+ ("opam-repo-11ea1cb"
+ ,(opam-repo "11ea1cb6f2418b1f8a6679e4422771a04c9c3655"
+ "1s4p0wfn3bx97yvm8xvj3yhzv2pz0jwml68g2ybv37hj9mpbrsq0"))
+ ("opam-repo-297366c"
+ ,(opam-repo "297366cd01c3aaf29b967bf0b34ccc7989d4d5b3"
+ "1ysg69gys37nc2cxivs2ikh6xp0gj85if4rcrr874mqb9z12dm0j"))
+ ("opam-repo-3235916"
+ ,(opam-repo "3235916a162a59d7c82dac3fe24214975d48f1aa"
+ "1yf73rv2n740a4s9g7a9k4j91b4k7al88nwnw9cdw0k2ncbmr486"))
+ ("opam-repo-de897adf36c4230dfea812f40c98223b31c4521a"
+ ,(opam-repo "de897adf36c4230dfea812f40c98223b31c4521a"
+ "1m18x9gcwnbar8yv9sbfz8a3qpw412fp9cf4d6fb7syn0p0h96jw")))))
+ (inputs (list ocaml-opam-client))
(properties
;; OPAM is used as a tool and not as a library, we can use the OCaml 4.14
;; compiled opam until opam is compatible with OCaml 5.0.
- `((ocaml5.0-variant . ,(delay opam))))
- (home-page "https://opam.ocamlpro.com/")
- (synopsis "Package manager for OCaml")
- (description
- "OPAM is a tool to manage OCaml packages. It supports multiple
-simultaneous compiler installations, flexible package constraints, and a
-Git-friendly development workflow.")
-
- ;; The 'LICENSE' file waives some requirements compared to LGPLv3.
- (license license:lgpl3)))
+ `((ocaml5.0-variant . ,(delay opam))))))
(define-public ocaml-opam-monorepo
(package
@@ -1345,6 +1469,39 @@ libglade (and it an generate OCaml code from .glade files),
libpanel, librsvg and quartz.")
(license license:lgpl2.1)))
+(define-public binsec
+ (package
+ (name "binsec")
+ (version "0.8.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/binsec/binsec")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0j6lwj20jaq0702v2fqvsrax1400zqbvz5q2cmjqhvrjzcfcl0kr"))))
+ (build-system dune-build-system)
+ (native-inputs (list gmp ocaml-qcheck ocaml-ounit2))
+ (propagated-inputs (list dune-site
+ ocaml-base
+ ocaml-menhir
+ ocaml-graph
+ ocaml-zarith
+ ocaml-grain-dypgen
+ ocaml-toml))
+ (synopsis "Binary-level analysis platform")
+ (description
+ "BINSEC is a binary analysis platform which implements analysis
+techniques such as symbolic execution. The goal of BINSEC is to improve
+software security at the binary level through binary analysis. BINSEC
+is a research tool which relies on prior work in binary code analysis
+at the intersection of formal methods, program analysis security and
+software engineering.")
+ (home-page "https://binsec.github.io/")
+ (license license:lgpl2.1)))
+
(define-public unison
(package
(name "unison")
@@ -1509,6 +1666,52 @@ to JUnit and other XUnit testing frameworks.")
other XUnit testing frameworks.")
(license license:expat)))
+(define-public ocaml-junit
+ (package
+ (name "ocaml-junit")
+ (version "2.0.2")
+ (home-page "https://github.com/Khady/ocaml-junit")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1cam7zzarrh9p1l5m3ba3h5rkh9mhark8j37rjgw35a66qd0gds1"))))
+ (build-system dune-build-system)
+ (arguments
+ `(#:package "junit"
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'dune-subst
+ (lambda _
+ (invoke "dune" "subst") #t)))))
+ (properties `((upstream-name . "junit")))
+ (propagated-inputs (list ocaml-ounit ocaml-ptime ocaml-tyxml ocaml-odoc))
+ (synopsis "JUnit XML reports generation library")
+ (description "Ocaml-junit is a package for the creation of JUnit XML
+reports. It provides a typed API to produce valid reports. They are supposed
+to be accepted by Jenkins.")
+ ;; with OCaml linking exception
+ (license license:gpl3+)))
+
+(define-public ocaml-junit-alcotest
+ (package
+ (inherit ocaml-junit)
+ (name "ocaml-junit-alcotest")
+ (propagated-inputs (list ocaml-odoc ocaml-alcotest ocaml-junit))
+ (build-system dune-build-system)
+ (arguments
+ `(#:package "junit_alcotest"
+ #:tests? #f)); tests fail
+ (properties `((upstream-name . "junit_alcotest")))
+ (synopsis "JUnit XML reports generation for alcotest tests")
+ (description "This package generates JUnit XML reports from ocaml-alcotest
+test suites.")
+ ;; with OCaml linking exception
+ (license license:gpl3+)))
+
(define-public camlzip
(package
(name "camlzip")
@@ -1716,7 +1919,7 @@ full_split, cut, rcut, etc..")
(define-public dune-bootstrap
(package
(name "dune")
- (version "3.6.1")
+ (version "3.11.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1725,7 +1928,7 @@ full_split, cut, rcut, etc..")
(file-name (git-file-name name version))
(sha256
(base32
- "0gv851wxbv5ln20429nj7p92spzxgw8vngg9z94q39aawn6q8lx6"))))
+ "12k8k2964s1z05mj71f9imwyvk0jyh5h6mpw4hpyr2d73iw53ink"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f; require odoc
@@ -1742,9 +1945,10 @@ full_split, cut, rcut, etc..")
#t)))))
(home-page "https://github.com/ocaml/dune")
(synopsis "OCaml build system")
- (description "Dune is a build system that was designed to simplify the
-release of Jane Street packages. It reads metadata from @file{dune} files
-following a very simple s-expression syntax.")
+ (description "Dune is a build system for OCaml. It provides a consistent
+experience and takes care of the low-level details of OCaml compilation.
+Descriptions of projects, libraries and executables are provided in
+@file{dune} files following an s-expression syntax.")
(properties '((hidden? . #t)))
(license license:expat)))
@@ -1846,6 +2050,104 @@ config.h files for instance. Among other things, dune-configurator allows one t
(propagated-inputs
(list ocaml5.0-dune-configurator))))
+(define-public ocaml-pp
+ (package
+ (name "ocaml-pp")
+ (version "1.2.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ocaml-dune/pp")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ylwb8lbjzj1prnal3c5p404dvh7bv4s19cvgrplnd7s46lvnj50"))))
+ (build-system dune-build-system)
+ (propagated-inputs (list ocaml-odoc))
+ (native-inputs (list ocaml-ppx-expect))
+ (home-page "https://github.com/ocaml-dune/pp")
+ (synopsis "Pretty-printing library")
+ (description
+ "This library provides an alternative to the @code{Format} module of the OCaml
+standard library. Pp uses the same concepts of boxes and break hints, and the
+final rendering is done to formatter from the @code{Format} module. However it
+defines its own algebra which some might find easier to work with and reason
+about.")
+ (license license:expat)))
+
+(define-public dune-ordering
+ (package
+ (inherit dune)
+ (name "dune-ordering")
+ (source (origin
+ (inherit (package-source dune))
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ (delete-file-recursively "vendor/pp")
+ (delete-file-recursively "vendor/csexp")))))
+ (build-system dune-build-system)
+ (arguments
+ `(#:package "ordering"
+ ;; Tests have a cyclic dependency on stdune
+ #:tests? #f))
+ (synopsis "Dune element ordering")
+ (description "This library represents element ordering in OCaml.")))
+
+(define-public dune-dyn
+ (package
+ (inherit dune-ordering)
+ (name "dune-dyn")
+ (build-system dune-build-system)
+ (arguments
+ `(#:package "dyn"
+ ;; Tests have a cyclic dependency on stdune
+ #:tests? #f))
+ (propagated-inputs (list ocaml-pp dune-ordering))
+ (synopsis "Dune dynamic types")
+ (description "This library represents dynamic types in OCaml.")))
+
+(define-public dune-stdune
+ (package
+ (inherit dune-ordering)
+ (name "dune-stdune")
+ (build-system dune-build-system)
+ (arguments
+ `(#:package "stdune"
+ ;; Tests have a cyclic dependency on itself
+ #:tests? #f))
+ (propagated-inputs (list dune-dyn ocaml-pp))
+ (synopsis "Unstable standard library from Dune")
+ (description "This library implements the standard functions used by Dune.")))
+
+(define-public dune-private-libs
+ (package
+ (inherit dune-ordering)
+ (name "dune-private-libs")
+ (build-system dune-build-system)
+ (arguments
+ `(#:package "dune-private-libs"
+ #:tests? #f))
+ (native-inputs (list dune-stdune ocaml-ppx-expect ocaml-ppx-inline-test))
+ (synopsis "Private libraries of Dune")
+ (description "This package contains code that is shared between various
+dune packages. However, it is not meant for public consumption and provides
+no stability guarantee.")))
+
+(define-public dune-site
+ (package
+ (inherit dune-ordering)
+ (name "dune-site")
+ (build-system dune-build-system)
+ (arguments
+ `(#:package "dune-site"
+ #:tests? #f))
+ (propagated-inputs (list dune-private-libs))
+ (synopsis "Location information embedder")
+ (description "This library helps embed location information inside
+executables and libraries")))
+
(define-public ocaml-csexp
(package
(name "ocaml-csexp")
@@ -2058,6 +2360,84 @@ defined in this library.")
#:ocaml ,ocaml-5.0
#:findlib ,ocaml5.0-findlib))))
+(define-public ocaml-iso8601
+ (package
+ (name "ocaml-iso8601")
+ (version "0.2.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ocaml-community/ISO8601.ml")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0nzadswspizi7s6sf67icn2xgc3w150x8vdg5nk1mjrm2s98n6d3"))))
+ (build-system dune-build-system)
+ (propagated-inputs (list ocaml-stdlib-shims ocaml-core-unix ocaml-ounit))
+ (synopsis "Parser and printer for date-times in ISO8601")
+ (description "This package allows parsing of dates that follow the ISO 8601
+and RFC 3339 formats in OCaml.")
+ (home-page "https://github.com/ocaml-community/ISO8601.ml")
+ (license license:expat)))
+
+(define-public ocaml-toml
+ (package
+ (name "ocaml-toml")
+ (version "7.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ocaml-toml/To.ml")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0z2873mj3i6h9cg8zlkipcjab8jympa4c4avhk4l04755qzphkds"))))
+ (build-system dune-build-system)
+ (propagated-inputs (list ocaml-base ocaml-mdx ocaml-menhir ocaml-iso8601))
+ (synopsis "TOML library for OCaml")
+ (description
+ "This package provides an OCaml library for interacting with files
+in the @acronym{TOML, Tom's Obvious Minimal Language} format. Specifically,
+it provides a parser, a serializer, and a pretty printer.")
+ (home-page "https://github.com/ocaml-toml/To.ml")
+ (license license:expat)))
+
+(define-public ocaml-grain-dypgen
+ (package
+ (name "ocaml-grain-dypgen")
+ (version "0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/grain-lang/dypgen")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1jyxkvi75nchk5kmhqixmjy70z55gmlqa83pxn0hsv2qxvyqxavw"))))
+ (build-system ocaml-build-system)
+ (arguments
+ (list
+ ;; Upstream does not have a test suite.
+ #:tests? #f
+ #:make-flags #~(let ((out #$output))
+ (list (string-append "OCAMLLIBDIR=" out
+ "/lib/ocaml/site-lib")
+ (string-append "BINDIR=" out "/bin")
+ (string-append "MANDIR=" out "/share/man")))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure))))
+ (properties `((upstream-name . "grain_dypgen")))
+ (home-page "https://github.com/grain-lang/dypgen")
+ (synopsis "Self-extensible parsers and lexers for OCaml")
+ (description
+ "This package provides a @acronym{GLR, generalized LR} parser generator
+for OCaml. It is able to generate self-extensible parsers (also called
+adaptive parsers) as well as extensible lexers for the parsers it produces.")
+ (license license:cecill-b)))
+
(define-public ocaml-topkg
(package
(name "ocaml-topkg")
@@ -2071,7 +2451,7 @@ defined in this library.")
"11ycfk0prqvifm9jca2308gw8a6cjb1hqlgfslbji2cqpan09kpq"))))
(build-system ocaml-build-system)
(native-inputs
- (list opam ocamlbuild))
+ (list opam-installer ocamlbuild))
(propagated-inputs
`(("result" ,ocaml-result)))
(arguments
@@ -2101,7 +2481,7 @@ creation and publication procedures.")
"0h2mjyzhay1p4k7n0mzaa7hlc7875kiy6m1i3r1n03j6hddpzahi"))))
(build-system ocaml-build-system)
(native-inputs
- (list opam ocamlbuild))
+ (list opam-installer ocamlbuild))
(propagated-inputs
`(("topkg" ,ocaml-topkg)))
(arguments
@@ -2189,7 +2569,7 @@ manipulate such data.")
"1ss4w3qxsfp51d88r0j7dzqs05dbb1xdx11hn1jl9cvd03ma0g9z"))))
(build-system ocaml-build-system)
(native-inputs
- (list ocamlbuild opam))
+ (list ocamlbuild opam-installer))
(propagated-inputs
`(("topkg" ,ocaml-topkg)))
(arguments
@@ -2304,13 +2684,13 @@ most of the POSIX and GNU conventions.")
"0q8j2in2473xh7k4hfgnppv9qy77f2ih89yp6yhpbp92ba021yzi"))))
(build-system ocaml-build-system)
(native-inputs
- `(("ocamlbuild" ,ocamlbuild)
- ("opam" ,opam)
- ("topkg" ,ocaml-topkg)))
+ (list ocamlbuild
+ opam-installer
+ ocaml-topkg))
(propagated-inputs
- `(("cmdliner" ,ocaml-cmdliner)
- ("ocaml-stdlib-shims" ,ocaml-stdlib-shims)
- ("ocaml-uchar" ,ocaml-uchar)))
+ (list ocaml-cmdliner
+ ocaml-stdlib-shims
+ ocaml-uchar))
(arguments `(#:tests? #f
#:build-flags (list "build" "--with-base-unix" "true"
"--with-cmdliner" "true")
@@ -2336,9 +2716,9 @@ functions.")
"1ykhg9gd3iy7zsgyiy2p9b1wkpqg9irw5pvcqs3sphq71iir4ml6"))))
(build-system ocaml-build-system)
(native-inputs
- `(("ocamlbuild" ,ocamlbuild)
- ("opam" ,opam)
- ("topkg" ,ocaml-topkg)))
+ (list ocamlbuild
+ opam-installer
+ ocaml-topkg))
(arguments
`(#:tests? #f
#:build-flags (list "build")
@@ -2359,7 +2739,7 @@ immutability.")
(define-public ocaml-alcotest
(package
(name "ocaml-alcotest")
- (version "1.6.0")
+ (version "1.7.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2368,7 +2748,7 @@ immutability.")
(file-name (git-file-name name version))
(sha256
(base32
- "195612n7p8y5ba6n19glql7qffl8n3aqkl9nrlln5lb9739gpv4w"))))
+ "0v01vciihd12r30pc4dai70s15p38gy990b4842sn16pvl0ab1az"))))
(build-system dune-build-system)
(arguments
`(#:package "alcotest"
@@ -2456,6 +2836,89 @@ simple (yet expressive) query language to select the tests to run.")
syntactic tools.")
(license license:expat)))
+(define-public ocaml-yaml
+ (package
+ (name "ocaml-yaml")
+ (version "3.2.0")
+ (home-page "https://github.com/avsm/ocaml-yaml")
+ (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 "1m0i9qdazmziswfw1bz4m1x9mlzqyv336vbrss0c21am4im9n6k6"))))
+ (build-system dune-build-system)
+ (propagated-inputs (list ocaml-ppx-sexp-conv ocaml-ctypes ocaml-bos))
+ (native-inputs (list ocaml-fmt
+ ocaml-sexplib
+ ocaml-logs
+ ocaml-mdx
+ ocaml-alcotest
+ ocaml-crowbar
+ ocaml-junit-alcotest
+ ocaml-ezjsonm))
+ (synopsis "Parse and generate YAML 1.1/1.2 files")
+ (description
+ "This package is an OCaml library to parse and generate the YAML file
+format. It is intended to be interoperable with the @code{Ezjsonm}
+JSON handling library, if the simple common subset of Yaml is used. Anchors and
+other advanced Yaml features are not implemented in the JSON compatibility
+layer.")
+ (license license:isc)))
+
+(define-public ocaml-ppx-deriving-yaml
+ (package
+ (name "ocaml-ppx-deriving-yaml")
+ (version "0.2.1")
+ (home-page "https://github.com/patricoferris/ppx_deriving_yaml")
+ (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 "1cxcqgvyl4ykyl86mf2d4ka6frnq51m1yqy0z5v6vdxkixllf9jd"))))
+ (build-system dune-build-system)
+ (propagated-inputs (list ocaml-ppxlib ocaml-ppx-deriving ocaml-yaml
+ ocaml-odoc))
+ (native-inputs (list ocaml-alcotest ocaml-bos ocaml-mdx ocaml-ezjsonm))
+ (properties `((upstream-name . "ppx_deriving_yaml")))
+ (synopsis "Yaml PPX Deriver")
+ (description
+ "This package contains @code{deriving} conversion functions to and from
+yaml for OCaml types.")
+ (license license:isc)))
+
+(define-public ocaml-ppx-import
+ (package
+ (name "ocaml-ppx-import")
+ (version "1.10.0")
+ (home-page "https://github.com/ocaml-ppx/ppx_import")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06srfd6whfwkmjvl6m61kvc65fb7j9b25bhfr1mp338zm87smv5p"))))
+ (build-system dune-build-system)
+ (propagated-inputs (list ocaml-ppx-deriving ocaml-ppxlib
+ ocaml-ppx-sexp-conv))
+ (native-inputs (list ocaml-ounit ocaml-sexplib0))
+ (properties `((upstream-name . "ppx_import")))
+ (synopsis "Extension for importing declarations from interface files.")
+ (description
+ "Ppx-import is a syntax extension for importing declarations from
+interface files.")
+ (license license:expat)))
+
(define-public ocaml-parmap
(package
(name "ocaml-parmap")
@@ -2539,7 +3002,7 @@ maintained. The @code{Pycaml} module provides a signature close to
"16cg4byj8lfbbw96dhh8sks5y9n1c3fshz7f2p8m7wgisqax7bf4"))))
(build-system ocaml-build-system)
(native-inputs
- (list ocamlbuild opam ocaml-topkg))
+ (list ocamlbuild opam-installer ocaml-topkg))
(arguments
`(#:tests? #f
#:build-flags (list "build")
@@ -2663,7 +3126,7 @@ architectures.")
#:phases
(modify-phases %standard-phases
(delete 'configure))))
- (native-inputs (list ocaml-topkg ocamlbuild opam))
+ (native-inputs (list ocaml-topkg ocamlbuild opam-installer))
(home-page "https://erratique.ch/software/hmap")
(synopsis "Heterogeneous value maps for OCaml")
(description
@@ -3107,7 +3570,7 @@ ocaml lwt.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- (list ocamlbuild opam))
+ (list ocamlbuild opam-installer))
(propagated-inputs
`(("fmt" ,ocaml-fmt)
("lwt" ,ocaml-lwt)
@@ -3141,7 +3604,7 @@ message report is decoupled from logging and is handled by a reporter.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- (list ocamlbuild opam))
+ (list ocamlbuild opam-installer))
(propagated-inputs
`(("topkg" ,ocaml-topkg)
("astring" ,ocaml-astring)))
@@ -3171,7 +3634,7 @@ file system and is independent from any system library.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- (list ocamlbuild opam))
+ (list ocamlbuild opam-installer))
(propagated-inputs
`(("topkg" ,ocaml-topkg)
("astring" ,ocaml-astring)
@@ -3245,7 +3708,7 @@ does not require additional C libraries.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- (list ocamlbuild ocaml-topkg opam))
+ (list ocamlbuild ocaml-topkg opam-installer))
(home-page "https://erratique.ch/software/xmlm")
(synopsis "Streaming XML codec for OCaml")
(description "Xmlm is a streaming codec to decode and encode the XML data
@@ -3282,7 +3745,7 @@ and consumable.")
(define-public ocaml-sedlex
(package
(name "ocaml-sedlex")
- (version "2.5")
+ (version "2.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3291,7 +3754,7 @@ and consumable.")
(file-name (git-file-name name version))
(sha256
(base32
- "062a5dvrzvb81l3a9phljrhxfw9nlb61q341q0a6xn65hll3z2wy"))))
+ "1z8mmk1idh9hjhh2b9rp5b1h8kmzcxhagqkw0pvxn6ykx1brskq1"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f ; no tests
@@ -3365,7 +3828,7 @@ and consumable.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- (list ocamlbuild opam))
+ (list ocamlbuild opam-installer))
(home-page "https://github.com/ocaml/uchar")
(synopsis "Compatibility library for OCaml's Uchar module")
(description "The uchar package provides a compatibility library for the
@@ -3391,9 +3854,9 @@ and consumable.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- `(("ocamlbuild" ,ocamlbuild)
- ("opam" ,opam)
- ("topkg" ,ocaml-topkg)))
+ (list ocamlbuild
+ opam-installer
+ ocaml-topkg))
(propagated-inputs
`(("uchar" ,ocaml-uchar)
("cmdliner" ,ocaml-cmdliner)))
@@ -3438,7 +3901,7 @@ string values and to directly encode characters in OCaml Buffer.t values.")
#t)))))
(native-inputs
`(("ocamlbuild" ,ocamlbuild)
- ("opam" ,opam)
+ ("opam-installer" ,opam-installer)
("topkg" ,ocaml-topkg)
;; Test data is otherwise downloaded with curl
("NormalizationTest.txt"
@@ -3479,9 +3942,9 @@ without a complete in-memory representation.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- `(("ocamlbuild" ,ocamlbuild)
- ("opam" ,opam)
- ("topkg" ,ocaml-topkg)))
+ (list ocamlbuild
+ opam-installer
+ ocaml-topkg))
(propagated-inputs
`(("uutf" ,ocaml-uutf)
("cmdliner" ,ocaml-cmdliner)))
@@ -3899,7 +4362,7 @@ epoch.")
#:phases (modify-phases %standard-phases
(delete 'configure))))
(propagated-inputs (list ocaml-result js-of-ocaml))
- (native-inputs (list ocaml-findlib ocamlbuild ocaml-topkg opam))
+ (native-inputs (list ocaml-findlib ocamlbuild ocaml-topkg opam-installer))
(home-page "https://erratique.ch/software/ptime")
(synopsis "POSIX time for OCaml")
(description
@@ -4042,7 +4505,7 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).")
(define-public ocaml-base64
(package
(name "ocaml-base64")
- (version "3.5.0")
+ (version "3.5.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4051,10 +4514,9 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).")
(file-name (git-file-name name version))
(sha256
(base32
- "068hwdbpl7vx9jjpxdc6a10zqd8xa55j3xx7ga6fnwrlfsbs2pjj"))))
+ "1jq349jp663hq51a941afr2y4yyh34r19zsxla73ks9bywj4mm2q"))))
(build-system dune-build-system)
- (native-inputs
- (list ocaml-alcotest ocaml-bos ocaml-rresult))
+ (native-inputs (list ocaml-alcotest ocaml-bos ocaml-rresult))
(home-page "https://github.com/mirage/ocaml-base64")
(synopsis "Base64 encoding for OCaml")
(description "Base64 is a group of similar binary-to-text encoding schemes
@@ -4062,6 +4524,14 @@ that represent binary data in an ASCII string format by translating it into a
radix-64 representation. It is specified in RFC 4648.")
(license license:isc)))
+;; A variant without tests that is used to prevent a cyclic dependency when
+;; compiling ocaml-dose3.
+(define ocaml-base64-boot
+ (package
+ (inherit ocaml-base64)
+ (arguments `(#:tests? #f))
+ (native-inputs '())))
+
(define-public ocamlify
(package
(name "ocamlify")
@@ -4769,7 +5239,7 @@ tool and piqi-ocaml.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- (list ocamlbuild opam))
+ (list ocamlbuild opam-installer))
(propagated-inputs
`(("cmdliner" ,ocaml-cmdliner)
("topkg" ,ocaml-topkg)))
@@ -4783,27 +5253,22 @@ and 4 (random based) according to RFC 4122.")
(define-public ocaml-graph
(package
(name "ocaml-graph")
- (version "1.8.8")
+ (version "2.0.0")
+ (home-page "https://github.com/backtracking/ocamlgraph/")
(source (origin
- (method url-fetch)
- (uri (string-append "http://ocamlgraph.lri.fr/download/"
- "ocamlgraph-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr"))))
- (build-system ocaml-build-system)
- (arguments
- `(#:install-target "install-findlib"
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'set-shell
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "CONFIG_SHELL"
- (search-input-file inputs "/bin/sh")))))))
- (inputs (list lablgtk))
+ "1gjrsyyamvvn2rd9n9yjx6hsglhw0dbm4cgazq0dpx0bbr4inwc3"))))
+ (build-system dune-build-system)
+ (arguments `(#:package "ocamlgraph"))
+ (propagated-inputs (list ocaml-stdlib-shims))
+ (native-inputs (list ocaml-graphics))
(properties `((upstream-name . "ocamlgraph")))
- (home-page "https://ocamlgraph.lri.fr/")
(synopsis "Graph library for OCaml")
(description "OCamlgraph is a generic graph library for OCaml.")
(license license:lgpl2.1)))
@@ -4928,6 +5393,11 @@ necessary set of rewriters.")
;; We don't have a monolithic llvm
(substitute* "oasis/llvm.setup.ml.in"
(("llvm_static = \"true\"") "true"))
+ ;; Package update removed Make_binable, which was an alias
+ ;; for Make_binable_without_uuid
+ (substitute* (find-files "." ".")
+ (("Utils.Make_binable1\\(") "Utils.Make_binable1_without_uuid(")
+ (("Utils.Make_binable\\(") "Utils.Make_binable_without_uuid("))
(invoke "./configure" "--prefix"
(assoc-ref outputs "out")
"--libdir"
@@ -5305,12 +5775,8 @@ without writing or generating any C!")
;; Guix doesn't have cc, but it has gcc
(("\"cc\"") "\"gcc\""))
#t)))))
- (inputs
- `(("topkg" ,ocaml-topkg)
- ("opam" ,opam)))
- (native-inputs
- `(("astring" ,ocaml-astring)
- ("ocamlbuild" ,ocamlbuild)))
+ (inputs (list ocaml-topkg opam-installer))
+ (native-inputs (list ocaml-astring ocamlbuild))
(synopsis "OCamlbuild plugin for C stubs")
(description "Ocb-stubblr is about ten lines of code that you need to
repeat over, over, over and over again if you are using ocamlbuild to build
@@ -5338,7 +5804,7 @@ OCaml projects that contain C stubs.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- (list ocamlbuild ocaml-astring opam pkg-config))
+ (list ocamlbuild ocaml-astring opam-installer pkg-config))
(inputs
`(("topkg" ,ocaml-topkg)
("sdl2" ,sdl2)
@@ -5380,7 +5846,7 @@ developed in other systems. In particular, it enjoys a minimalistic syntax.")
(define-public ocaml-jst-config
(package
(name "ocaml-jst-config")
- (version "0.15.1")
+ (version "0.16.0")
(source
(origin
(method git-fetch)
@@ -5390,7 +5856,7 @@ developed in other systems. In particular, it enjoys a minimalistic syntax.")
(file-name (git-file-name name version))
(sha256
(base32
- "1yp5p63clvaxmkf7vlasgyapxc31x29c154pyq63n0fvi2fpf4y3"))))
+ "01419gk2w2r1xqz11rw1glngi8fi6gq9sh79c06vasrk6vxriy0s"))))
(build-system dune-build-system)
(arguments '(#:tests? #f)) ; no tests
(propagated-inputs
@@ -5905,7 +6371,7 @@ parsexp_io.")
(define-public ocaml-sexplib
(package
(name "ocaml-sexplib")
- (version "0.15.1")
+ (version "0.16.0")
(home-page "https://github.com/janestreet/sexplib")
(source (origin
(method git-fetch)
@@ -5915,7 +6381,7 @@ parsexp_io.")
(file-name (git-file-name name version))
(sha256
(base32
- "1gcvcc0jw6pb69wwfjnaqz1jk5simap2kdb7g43v7v7mksg8sh9f"))))
+ "0hl0zf2cgjivvlsrf85f5lg4xprcgbz7qg2z51k838y7k2121k78"))))
(build-system dune-build-system)
(propagated-inputs
(list ocaml-base ocaml-num ocaml-parsexp ocaml-sexplib0))
@@ -6101,6 +6567,34 @@ ppx_deriving and ppx_type_conv to inter-operate gracefully when linked
as part of the same ocaml-migrate-parsetree driver.")
(license license:bsd-3)))
+(define-public ocaml-ppx-deriving-yojson
+ (package
+ (name "ocaml-ppx-deriving-yojson")
+ (version "3.7.0")
+ (home-page "https://github.com/ocaml-ppx/ppx_deriving_yojson")
+ (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 "1nazam6zlzm9ngyyr1q7s1vmw162fnrvsn8r6bsn5lnpaygv28ly"))))
+ (build-system dune-build-system)
+ (propagated-inputs
+ (list ocaml-yojson
+ ocaml-result
+ ocaml-ppx-deriving
+ ocaml-ppxlib))
+ (native-inputs (list ocaml-ounit))
+ (properties `((upstream-name . "ppx_deriving_yojson")))
+ (synopsis "JSON codec generator for OCaml")
+ (description
+ "Ppx_deriving_yojson is a ppx_deriving plugin that provides a JSON codec
+generator.")
+ (license license:expat)))
+
(define-public ocaml-cinaps
;; The commit removes the unused dependency of ocaml-ppx-jane. We need to
;; use this as we would otherwise have a dependency loop between
@@ -6134,7 +6628,7 @@ the OCaml code.")
(define-public ocaml-ppxlib
(package
(name "ocaml-ppxlib")
- (version "0.25.1")
+ (version "0.28.0")
(home-page "https://github.com/ocaml-ppx/ppxlib")
(source
(origin
@@ -6145,7 +6639,7 @@ the OCaml code.")
(file-name (git-file-name name version))
(sha256
(base32
- "1402fzv5mg5grf3hb82fqsdkzxk07yfp9hvjh33dzjwjsqfhx3wi"))))
+ "0alwn1bnc228z6ivj7dpcszrylbg1z3img8vrcihaa9crbx3xxcb"))))
(build-system dune-build-system)
(arguments
`(#:phases
@@ -6289,7 +6783,7 @@ new record values.")
(define-public ocaml-ppx-sexp-conv
(package
(name "ocaml-ppx-sexp-conv")
- (version "0.15.0")
+ (version "0.15.1")
(home-page "https://github.com/janestreet/ppx_sexp_conv")
(source
(origin
@@ -6300,7 +6794,7 @@ new record values.")
(file-name (git-file-name name version))
(sha256
(base32
- "1fyf7hgxprn7pj58rmmrfpv938a0avpzvvk6wzihpmfm6whgbdm8"))))
+ "163kn5gv1va84s1ysa1fm40fw3hm9xm3788qsvxmm4l3gij2g29m"))))
(build-system dune-build-system)
(propagated-inputs
(list ocaml-base ocaml-ppxlib))
@@ -6363,10 +6857,34 @@ variant types.")
string conversion.")
(license license:asl2.0)))
+(define-public ocaml-ppx-stable-witness
+ (package
+ (name "ocaml-ppx-stable-witness")
+ (version "0.16.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/janestreet/ppx_stable_witness")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ppmazy1vw0j44z1p60ln6fddz414zmyrqkpi54w6cr93giqsl2v"))))
+ (build-system dune-build-system)
+ (propagated-inputs (list ocaml-base ocaml-ppxlib))
+ (properties `((upstream-name . "ppx_stable_witness")))
+ (home-page "https://github.com/janestreet/ppx_stable_witness")
+ (synopsis "Mark a type as stable across versions")
+ (description "This ppx extension is used for deriving a witness that a
+type is intended to be stable. In this context, stable means that the
+serialization format will never change. This allows programs running at
+different versions of the code to safely communicate.")
+ (license license:expat)))
+
(define-public ocaml-bin-prot
(package
(name "ocaml-bin-prot")
- (version "0.15.0")
+ (version "0.16.0")
(source
(origin
(method git-fetch)
@@ -6375,7 +6893,7 @@ string conversion.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qfqglscc25wwnjx7byqmjcnjww1msnr8940gyg8h93wdq43fjnh"))))
+ (base32 "1ybs0152ilgr8sa1hqnc2jj0gbvg855ixl3c5b2pjbnk7blhqnd8"))))
(build-system dune-build-system)
(propagated-inputs
(list ocaml-base
@@ -6384,6 +6902,7 @@ string conversion.")
ocaml-ppx-fields-conv
ocaml-ppx-optcomp
ocaml-ppx-sexp-conv
+ ocaml-ppx-stable-witness
ocaml-ppx-variants-conv))
(properties `((upstream-name . "bin_prot")))
(home-page "https://github.com/janestreet/bin_prot")
@@ -6515,7 +7034,7 @@ many values).")
(define-public ocaml-ppx-bench
(package
(name "ocaml-ppx-bench")
- (version "0.15.0")
+ (version "0.16.0")
(source
(origin
(method git-fetch)
@@ -6524,7 +7043,7 @@ many values).")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0bc0gbm922417wqisafxh35jslcp7xy1s0h0a1q32rhx0ivxx3g6"))))
+ (base32 "0pry0vgi1ilwdi5viqydyf9n7y289c17s8wfn16wyzzfr887769m"))))
(build-system dune-build-system)
(arguments
;; No tests
@@ -7007,7 +7526,7 @@ verification tool.")
(define-public ocaml-ppx-bin-prot
(package
(name "ocaml-ppx-bin-prot")
- (version "0.15.0")
+ (version "0.16.0")
(source
(origin
(method git-fetch)
@@ -7016,7 +7535,7 @@ verification tool.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1280wsls061fmvmdysjqn3lv4mnkyg400jnjf4jyfr14s33h1ad5"))))
+ (base32 "091l1gvgbibrqzy9a31vz03wzfs7z5zmk5ldl5yvg742x7idmmwj"))))
(build-system dune-build-system)
(arguments
;; Cyclic dependency with ocaml-ppx-jane
@@ -7664,7 +8183,7 @@ combinators.")
(define-public ocaml-bisect-ppx
(package
(name "ocaml-bisect-ppx")
- (version "2.8.1")
+ (version "2.8.3")
(source
(origin
(method git-fetch)
@@ -7674,7 +8193,7 @@ combinators.")
(file-name (git-file-name name version))
(sha256
(base32
- "0562rwwnhqlf5alxl1wd1n0xs0k4aamxafrh8bbmh5yl3i5rxrx4"))))
+ "1albx01qvr4fax4wkdmy0dd21q0fd9ixsgsvnr1z32ngj9nyi9fy"))))
(build-system dune-build-system)
(propagated-inputs
(list ocaml-ppxlib ocaml-cmdliner))
@@ -8105,7 +8624,7 @@ client chooses the concrete timeline.")
(propagated-inputs
(list ocaml-xmlm))
(native-inputs
- (list opam ocaml-findlib ocamlbuild ocaml-topkg))
+ (list opam-installer ocaml-findlib ocamlbuild ocaml-topkg))
(home-page "https://erratique.ch/software/uucd")
(synopsis "Unicode character database decoder for OCaml")
(description "Uucd is an OCaml module to decode the data of the Unicode
@@ -8133,7 +8652,7 @@ representations can be extracted.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
- (list opam
+ (list opam-installer
ocaml-findlib
ocamlbuild
ocaml-topkg
@@ -8167,7 +8686,7 @@ selection of character properties of the Unicode character database.")
(propagated-inputs
(list ocaml-uucp ocaml-uutf ocaml-cmdliner))
(native-inputs
- (list opam ocaml-findlib ocamlbuild ocaml-topkg))
+ (list opam-installer ocaml-findlib ocamlbuild ocaml-topkg))
(home-page "https://erratique.ch/software/uuseg")
(synopsis "Unicode text segmentation for OCaml")
(description "Uuseg is an OCaml library for segmenting Unicode text. It
@@ -8628,8 +9147,7 @@ browsers and Node.js.")
(invoke "./build.sh")))
;; XXX: The tests are already run in the build.sh script.
(delete 'check))))
- (native-inputs
- `(("opam" ,opam)))
+ (native-inputs (list opam-installer))
(home-page "https://github.com/stedolan/ocaml-afl-persistent")
(synopsis "Use afl-fuzz in persistent mode")
(description
diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm
index 99ebc9d4f7..ef86c8185a 100644
--- a/gnu/packages/ocr.scm
+++ b/gnu/packages/ocr.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2021 Andy Tai <atai@atai.org>
+;;; Copyright © 2021, 2024 Andy Tai <atai@atai.org>
;;; Copyright © 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
@@ -56,14 +56,14 @@
(define-public ocrad
(package
(name "ocrad")
- (version "0.28")
+ (version "0.29")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/ocrad/ocrad-"
version ".tar.lz"))
(sha256
(base32
- "0bmzpcv7sjf8f5pvd9wwh9yp6s7zqd226876g5csmbdxdmbymk1l"))))
+ "1sfrs9jg102malg09cnjdji7lkv9xxccpp3j9a41dfmpn330q80i"))))
(build-system gnu-build-system)
(native-inputs (list libpng lzip))
(home-page "https://www.gnu.org/software/ocrad/")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 75c45aaa7d..e5c86da418 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -411,11 +411,12 @@ $(prefix)/etc/openrc\n")))
(ssh (assoc-ref inputs "guile-ssh"))
(gnutls (assoc-ref inputs "guile-gnutls"))
(disarchive (assoc-ref inputs "disarchive"))
+ (bzip2 (assoc-ref inputs "guile-bzip2"))
(lzma (assoc-ref inputs "guile-lzma"))
(locales (assoc-ref inputs "glibc-utf8-locales"))
(deps (list gcrypt json sqlite gnutls git
bs ssh zlib lzlib zstd guile-lib
- disarchive lzma))
+ disarchive bzip2 lzma))
(deps* (if avahi (cons avahi deps) deps))
(effective
(read-line
@@ -520,6 +521,7 @@ $(prefix)/etc/openrc\n")))
("bootstrap/xz" ,(bootstrap-executable "xz" (%current-system)))
("disarchive" ,disarchive) ;for 'guix perform-download'
+ ("guile-bzip2" ,guile-bzip2) ;for Disarchive
("guile-lzma" ,guile-lzma) ;for Disarchive
("git-minimal" ,git-minimal) ;for 'guix perform-download'
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 8f59331a02..cbb73567ae 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -64,14 +64,14 @@
(define-public parallel
(package
(name "parallel")
- (version "20231222")
+ (version "20240122")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
- (base32 "1alvva2dlnlq5rbbklzc2a7l84mg550l1xc632zdgfx9dzf6sihr"))
+ (base32 "17s4bdywswgrib6zzj2wcmzf792aw85rcavbn6vdf734np5qi5l5"))
(snippet
'(begin
(use-modules (guix build utils))
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 6dc257dc0e..b79fdfc6a0 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -91,6 +91,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@@ -852,7 +853,7 @@ key URIs using the standard otpauth:// scheme.")
(define-public qtpass
(package
(name "qtpass")
- (version "1.3.2")
+ (version "1.4.0")
(source
(origin
(method git-fetch)
@@ -861,65 +862,37 @@ key URIs using the standard otpauth:// scheme.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "0748hjvhjrybi33ci3c8hcr74k9pdrf5jv8npf9hrsrmdyy1kr9x"))))
- (build-system gnu-build-system)
+ (base32 "10ixahm4ap0l1rrz4cyswblm22ns9z1baf5lv3dn23wprfdcp8m0"))))
+ (build-system qt-build-system)
(arguments
- `(#:modules ((guix build gnu-build-system)
- (guix build qt-utils)
- (guix build utils))
- #:imported-modules (,@%gnu-build-system-modules
- (guix build qt-utils))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; lupdate/lrelease need to find qmake.
- (setenv "QMAKE" "qmake")
- ;; qmake needs to find lrelease/lupdate.
- (invoke "qmake"
- "QMAKE_LRELEASE=lrelease"
- "QMAKE_LUPDATE=lupdate"
- (string-append "PREFIX=" out)))))
- (add-after 'configure 'reset-resource-timestamps
- ;; Reset timestamps on localization files for a reproducible build.
- (lambda _
- (with-directory-excursion "localization"
- (for-each (lambda (file)
- (let* ((base (basename file ".qm"))
- (src (string-append base ".ts"))
- (st (stat src)))
- (set-file-time file st)))
- (find-files "." ".*\\.qm")))
- #t))
- (add-after 'install 'install-auxilliary
- ;; Install man-page, icon and .desktop file.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (applications (string-append out "/share/applications"))
- (icons (string-append out "/share/icons/hicolor/scalable/apps"))
- (man (string-append out "/share/man/man1")))
- (install-file "qtpass.desktop" applications)
- (install-file "artwork/icon.svg" icons)
- (rename-file (string-append icons "/icon.svg")
- (string-append icons "/qtpass-icon.svg"))
- (install-file "qtpass.1" man)
- #t)))
- (add-after 'install 'wrap-qt
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (wrap-qt-program "qtpass" #:output out #:inputs inputs))
- #t))
- (add-before 'check 'check-setup
- ;; Make Qt render "offscreen", required for tests.
- (lambda _
- (setenv "QT_QPA_PLATFORM" "offscreen")
- #t)))))
+ (list
+ #:test-target "check"
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (invoke "qmake"
+ "QMAKE_LRELEASE=lrelease"
+ "QMAKE_LUPDATE=lupdate"
+ (string-append "PREFIX=" #$output))))
+ (add-before 'check 'pre-check
+ ;; Fontconfig needs a writable cache.
+ (lambda _ (setenv "HOME" "/tmp")))
+ (add-after 'install 'install-auxilliary
+ ;; Install man-page, icon and .desktop file.
+ (lambda _
+ (let ((applications (string-append #$output "/share/applications"))
+ (icons (string-append #$output "/share/icons/hicolor/scalable/apps"))
+ (man (string-append #$output "/share/man/man1")))
+ (install-file "qtpass.desktop" applications)
+ (install-file "artwork/icon.svg" icons)
+ (rename-file (string-append icons "/icon.svg")
+ (string-append icons "/qtpass-icon.svg"))
+ (install-file "qtpass.1" man)))))))
(native-inputs
(list qttools-5))
(inputs
- (list qtbase-5 qtsvg-5))
+ (list qtsvg-5))
(home-page "https://qtpass.org")
(synopsis "GUI for password manager password-store")
(description
diff --git a/gnu/packages/patches/avalon-toolkit-rdkit-fixes.patch b/gnu/packages/patches/avalon-toolkit-rdkit-fixes.patch
new file mode 100644
index 0000000000..c93a9869ed
--- /dev/null
+++ b/gnu/packages/patches/avalon-toolkit-rdkit-fixes.patch
@@ -0,0 +1,110 @@
+Patches taken from the rdkit fork at this commit (there version
+AvalonToolkit_2.0.6-pre.2):
+https://github.com/rdkit/ava-formake/commit/d05bee0382b8f4696b2b4b05b0038fb7d559520a
+
+diff -ur a/src/main/C/common/reaccsio.c b/src/main/C/common/reaccsio.c
+--- a/src/main/C/common/reaccsio.c
++++ b/src/main/C/common/reaccsio.c
+@@ -322,34 +322,49 @@
+ fprintf(fp,"\n");
+ }
+
++#define MAX_BONDLINE_FIELDS 7
++#define BONDLINE_FIELD_LEN 3
++
+ int ReadREACCSBond(Fortran_FILE *fp, struct reaccs_bond_t *bp)
+ {
+- int nitems, i;
+- char buffer[MAX_BUFFER+1];
++ int nitems, i, j, k;
++ int bond_line_len, n_chars, pos;
++ int *ptrarray[MAX_BONDLINE_FIELDS];
++ char c;
++ char buffer[BONDLINE_FIELD_LEN+1];
+
+ if (fp->status != FORTRAN_NORMAL) return(fp->status);
+
+- strncpy(buffer,fp->buffer,MAX_BUFFER);
+- /* zero pad only atom numbers! */
+- for (i=0; i<6; i++) if (buffer[i] == ' ') buffer[i] = '0';
+-
+ bp->stereo_symbol = 0;
+ bp->dummy = 0;
+ bp->topography = 0;
+ bp->reaction_mark = NONE;
+- // make sure spaces are interpreted the Fortran-way
+- for (i=9; i<strlen(buffer) && i<21; i+=3)
+- {
+- if ((i+1)<strlen(buffer) && buffer[i+1]==' ') buffer[i+1] = '0';
+- if ((i+2)<strlen(buffer) && buffer[i+2]==' ') buffer[i+2] = '0';
++ ptrarray[0] = &bp->atoms[0];
++ ptrarray[1] = &bp->atoms[1];
++ ptrarray[2] = &bp->bond_type;
++ ptrarray[3] = &bp->stereo_symbol;
++ ptrarray[4] = &bp->dummy;
++ ptrarray[5] = &bp->topography;
++ ptrarray[6] = &bp->reaction_mark;
++ bond_line_len = strlen(fp->buffer);
++ nitems = bond_line_len ? (bond_line_len - 1) / BONDLINE_FIELD_LEN + 1 : 0;
++ if (nitems > MAX_BONDLINE_FIELDS)
++ nitems = MAX_BONDLINE_FIELDS;
++ for (i = 0; i < nitems; ++i)
++ {
++ pos = i * BONDLINE_FIELD_LEN;
++ memset(buffer, 0, BONDLINE_FIELD_LEN + 1);
++ n_chars = bond_line_len - pos;
++ if (n_chars > BONDLINE_FIELD_LEN)
++ n_chars = BONDLINE_FIELD_LEN;
++ for (j = 0, k = 0; j < n_chars; ++j)
++ {
++ c = fp->buffer[pos + j];
++ if (c != ' ')
++ buffer[k++] = c;
++ }
++ sscanf(buffer, "%3d", ptrarray[i]);
+ }
+- nitems = sscanf(buffer,
+- "%3d%3d%3d%3d%3d%3d%3d",
+- &bp->atoms[0], &bp->atoms[1],
+- &bp->bond_type, &bp->stereo_symbol,
+- &bp->dummy,
+- &bp->topography, &bp->reaction_mark);
+-
+ if (nitems >= 3)
+ {
+ GetBuffer(fp);
+@@ -1582,6 +1597,8 @@
+
+ PrintREACCSMolecule(fp, mp,"");
+
++ fputc('\0', fp);
++ fflush(fp);
+ rewind(fp);
+
+ MolStr = _ReadFile(fp);
+diff -ur a/src/main/C/programs/struchk.c b/src/main/C/programs/struchk.c
+--- a/src/main/C/programs/struchk.c
++++ b/src/main/C/programs/struchk.c
+@@ -1581,6 +1581,22 @@
+
+ if ((result & SIZE_CHECK_FAILED) == 0)
+ {
++ for (i = 0; i < mp->n_bonds; ++i) {
++ for (j = 0; j < 2; ++j) {
++ if (mp->bond_array[i].atoms[j] < 1 || mp->bond_array[i].atoms[j] > mp->n_atoms)
++ {
++ snprintf(msg_buffer, MAXMSG,
++ "%10s : illegal atom # (%d, max allowed is %d) in bond %d",
++ mp->name, mp->bond_array[i].atoms[j], mp->n_atoms, i + 1);
++ AddMsgToList(msg_buffer);
++ result |= SIZE_CHECK_FAILED;
++ }
++ }
++ }
++ }
++
++ if ((result & SIZE_CHECK_FAILED) == 0)
++ {
+ if (convert_atom_texts)
+ {
+ tmp = ConvertAtomAliases(mp);
diff --git a/gnu/packages/patches/coq-fix-envvars.patch b/gnu/packages/patches/coq-fix-envvars.patch
deleted file mode 100644
index 6c48224c64..0000000000
--- a/gnu/packages/patches/coq-fix-envvars.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 0e76cda958a4d3e4bcbb96e171c26b6b3478c6c2 Mon Sep 17 00:00:00 2001
-From: Julien Lepiller <julien@lepiller.eu>
-Date: Thu, 10 Feb 2022 16:44:10 +0100
-Subject: [PATCH] Fix environment variable usage.
-
----
- boot/env.ml | 26 +++++++++++++++++++-------
- 1 file changed, 19 insertions(+), 7 deletions(-)
-
-diff --git a/boot/env.ml b/boot/env.ml
-index e8521e7..d834a3a 100644
---- a/boot/env.ml
-+++ b/boot/env.ml
-@@ -32,17 +32,29 @@ let fail_msg =
-
- let fail s = Format.eprintf "%s@\n%!" fail_msg; exit 1
-
-+let path_to_list p =
-+ let sep = if String.equal Sys.os_type "Win32" then ';' else ':' in
-+ String.split_on_char sep p
-+
- (* This code needs to be refactored, for now it is just what used to be in envvars *)
- let guess_coqlib () =
- Util.getenv_else "COQLIB" (fun () ->
- let prelude = "theories/Init/Prelude.vo" in
-- Util.check_file_else
-- ~dir:Coq_config.coqlibsuffix
-- ~file:prelude
-- (fun () ->
-- if Sys.file_exists (Filename.concat Coq_config.coqlib prelude)
-- then Coq_config.coqlib
-- else fail ()))
-+ let coqlibpath = Util.getenv_else "COQLIBPATH" (fun () -> Coq_config.coqlibsuffix) in
-+ let paths = path_to_list coqlibpath in
-+ let valid_paths =
-+ List.filter
-+ (fun dir -> (Util.check_file_else ~dir:dir ~file:prelude (fun () -> "")) <> "")
-+ paths in
-+ match valid_paths with
-+ | [] ->
-+ if Sys.file_exists (Filename.concat Coq_config.coqlib prelude)
-+ then Coq_config.coqlib
-+ else
-+ fail "cannot guess a path for Coq libraries; please use -coqlib option \
-+ or ensure you have installed the package containing Coq's stdlib (coq-stdlib in OPAM) \
-+ If you intend to use Coq without a standard library, the -boot -noinit options must be used."
-+ | p::_ -> p)
-
- (* Build layout uses coqlib = coqcorelib *)
- let guess_coqcorelib lib =
---
-2.34.0
-
diff --git a/gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch b/gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch
new file mode 100644
index 0000000000..631cb0cdab
--- /dev/null
+++ b/gnu/packages/patches/go-github-com-skip2-go-qrcode-fix-tests.patch
@@ -0,0 +1,37 @@
+From dd203f29a36bf518deacbc03e8562b0195c8345f Mon Sep 17 00:00:00 2001
+From: Dominic Martinez <dom@dominicm.dev>
+Date: Mon, 4 Apr 2022 12:06:03 -0400
+Subject: [PATCH] Fix failing qr decode test
+
+First convert integers into runes before performing a string conversion.
+---
+ qrcode_decode_test.go | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/qrcode_decode_test.go b/qrcode_decode_test.go
+index 1f4b1d3..2b0756b 100644
+--- a/qrcode_decode_test.go
++++ b/qrcode_decode_test.go
+@@ -122,7 +122,7 @@ func TestDecodeAllCharacters(t *testing.T) {
+
+ // zbarimg has trouble with null bytes, hence start from ASCII 1.
+ for i := 1; i < 256; i++ {
+- content += string(i)
++ content += string(rune(i))
+ }
+
+ q, err := New(content, Low)
+@@ -154,7 +154,7 @@ func TestDecodeFuzz(t *testing.T) {
+ for j := 0; j < len; j++ {
+ // zbarimg seems to have trouble with special characters, test printable
+ // characters only for now.
+- content += string(32 + r.Intn(94))
++ content += string(rune(32 + r.Intn(94)))
+ }
+
+ for _, level := range []RecoveryLevel{Low, Medium, High, Highest} {
+
+base-commit: da1b6568686e89143e94f980a98bc2dbd5537f13
+--
+2.34.0
+
diff --git a/gnu/packages/patches/libgeotiff-fix-tests-on-i386.patch b/gnu/packages/patches/libgeotiff-fix-tests-on-i386.patch
new file mode 100644
index 0000000000..e84f726a3d
--- /dev/null
+++ b/gnu/packages/patches/libgeotiff-fix-tests-on-i386.patch
@@ -0,0 +1,35 @@
+From 9990160268fafb71751d4f3a9ad724df70cb9451 Mon Sep 17 00:00:00 2001
+From: Bas Couwenberg <sebastic@xs4all.nl>
+Date: Fri, 1 Dec 2023 10:35:46 +0100
+Subject: [PATCH] Fix test failure on i386.
+
+---
+https://github.com/OSGeo/libgeotiff/pull/107
+
+ test/testlistgeo | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/test/testlistgeo b/test/testlistgeo
+index 48e92eb..ceec2e6 100755
+--- a/test/testlistgeo
++++ b/test/testlistgeo
+@@ -218,6 +218,9 @@ echo "" >>${OUT}
+ sed "s/ETRS89-extended/ETRS89/g" < ${OUT} > ${OUT}.tmp
+ mv ${OUT}.tmp ${OUT}
+
++sed "s/ProjCenterLongGeoKey: 46.437229 ( 46d26'14.02\"E)/ProjCenterLongGeoKey: 46.437229 ( 46d26'14.03\"E)/" < ${OUT} > ${OUT}.tmp
++mv ${OUT}.tmp ${OUT}
++
+ sed "s/ETRS89-extended/ETRS89/g" < ${TEST_CLI_DIR}/testlistgeo_out.dist > testlistgeo_out.dist.normalized
+
+ sed "s/GCS: 4053\/Unspecified datum based upon the International 1924 Authalic Sphere/GCS: 10346\/NSIDC Authalic Sphere/g" < ${OUT} > ${OUT}.tmp
+@@ -230,6 +233,9 @@ mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized
+ sed "s/Datum: 6053\/Not specified (based on International 1924 Authalic Sphere)/Datum: 1360\/NSIDC International 1924 Authalic Sphere/g" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp
+ mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized
+
++sed "s/ProjCenterLongGeoKey: 46.437229 ( 46d26'14.02\"E)/ProjCenterLongGeoKey: 46.437229 ( 46d26'14.03\"E)/" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp
++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized
++
+ # do 'diff' with distribution results
+ # after cleaning for avoid spurios result due
+ # to different build dir
diff --git a/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch
new file mode 100644
index 0000000000..5d381d78e2
--- /dev/null
+++ b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch
@@ -0,0 +1,51 @@
+From 3806fdab4a17f44641a2113faec778e756e2be3d Mon Sep 17 00:00:00 2001
+From: Even Rouault <even.rouault@spatialys.com>
+Date: Tue, 29 Aug 2023 19:04:25 +0200
+Subject: [PATCH] Fix 'make check' to pass with PROJ 9.3 (fixes #89)
+
+---
+https://github.com/OSGeo/libgeotiff/pull/90
+
+ test/testlistgeo | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/test/testlistgeo b/test/testlistgeo
+index 9a41e74..48e92eb 100755
+--- a/test/testlistgeo
++++ b/test/testlistgeo
+@@ -218,14 +218,24 @@ echo "" >>${OUT}
+ sed "s/ETRS89-extended/ETRS89/g" < ${OUT} > ${OUT}.tmp
+ mv ${OUT}.tmp ${OUT}
+
+-sed "s/ETRS89-extended/ETRS89/g" < ${TEST_CLI_DIR}/testlistgeo_out.dist > testlistgeo_out.dist.tmp
++sed "s/ETRS89-extended/ETRS89/g" < ${TEST_CLI_DIR}/testlistgeo_out.dist > testlistgeo_out.dist.normalized
++
++sed "s/GCS: 4053\/Unspecified datum based upon the International 1924 Authalic Sphere/GCS: 10346\/NSIDC Authalic Sphere/g" < ${OUT} > ${OUT}.tmp
++mv ${OUT}.tmp ${OUT}
++sed "s/Datum: 6053\/Not specified (based on International 1924 Authalic Sphere)/Datum: 1360\/NSIDC International 1924 Authalic Sphere/g" < ${OUT} > ${OUT}.tmp
++mv ${OUT}.tmp ${OUT}
++
++sed "s/GCS: 4053\/Unspecified datum based upon the International 1924 Authalic Sphere/GCS: 10346\/NSIDC Authalic Sphere/g" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp
++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized
++sed "s/Datum: 6053\/Not specified (based on International 1924 Authalic Sphere)/Datum: 1360\/NSIDC International 1924 Authalic Sphere/g" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp
++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized
+
+ # do 'diff' with distribution results
+ # after cleaning for avoid spurios result due
+ # to different build dir
+ sed -e "s/Testing listgeo .*test/Testing listgeo ..\/test/" -i ${OUT}
+ echo "diff ${OUT} with testlistgeo_out.dist"
+-diff -u ${OUT} testlistgeo_out.dist.tmp
++diff -u ${OUT} testlistgeo_out.dist.normalized
+ if [ $? -ne 0 ] ; then
+ echo ""
+ echo "PROBLEMS HAVE OCCURRED"
+@@ -236,7 +246,7 @@ else
+ echo "TEST OK"
+ echo "test file ${OUT} removed"
+ echo
+- rm testlistgeo_out.dist.tmp
++ rm testlistgeo_out.dist.normalized
+ /bin/rm -f ${OUT}
+ exit 0
+ fi
diff --git a/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch
new file mode 100644
index 0000000000..e9a28d1fcd
--- /dev/null
+++ b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch
@@ -0,0 +1,40 @@
+From 4f90e57fa1cac7afdd57e5f649775cb24aa15612 Mon Sep 17 00:00:00 2001
+From: Bas Couwenberg <sebastic@xs4all.nl>
+Date: Fri, 1 Dec 2023 08:23:20 +0100
+Subject: [PATCH] Fix test failure with PROJ 9.3.1.
+
+Closes: #104
+---
+https://github.com/OSGeo/libgeotiff/pull/105
+
+ test/testlistgeo | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/test/testlistgeo b/test/testlistgeo
+index 48e92eb..4331cc3 100755
+--- a/test/testlistgeo
++++ b/test/testlistgeo
+@@ -218,6 +218,11 @@ echo "" >>${OUT}
+ sed "s/ETRS89-extended/ETRS89/g" < ${OUT} > ${OUT}.tmp
+ mv ${OUT}.tmp ${OUT}
+
++sed "s/Projection = 15914 (BLM zone 14N (US survey .*))/Projection = 15914 (BLM zone 14N)/g" < ${OUT} > ${OUT}.tmp
++mv ${OUT}.tmp ${OUT}
++sed "s/Projection = 6753 (Oregon Columbia River West zone (.*))/Projection = 6753 (Oregon Columbia River West zone)/" < ${OUT} > ${OUT}.tmp
++mv ${OUT}.tmp ${OUT}
++
+ sed "s/ETRS89-extended/ETRS89/g" < ${TEST_CLI_DIR}/testlistgeo_out.dist > testlistgeo_out.dist.normalized
+
+ sed "s/GCS: 4053\/Unspecified datum based upon the International 1924 Authalic Sphere/GCS: 10346\/NSIDC Authalic Sphere/g" < ${OUT} > ${OUT}.tmp
+@@ -230,6 +235,11 @@ mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized
+ sed "s/Datum: 6053\/Not specified (based on International 1924 Authalic Sphere)/Datum: 1360\/NSIDC International 1924 Authalic Sphere/g" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp
+ mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized
+
++sed "s/Projection = 15914 (BLM zone 14N (US survey .*))/Projection = 15914 (BLM zone 14N)/" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp
++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized
++sed "s/Projection = 6753 (Oregon Columbia River West zone (.*))/Projection = 6753 (Oregon Columbia River West zone)/" < testlistgeo_out.dist.normalized > testlistgeo_out.dist.normalized.tmp
++mv testlistgeo_out.dist.normalized.tmp testlistgeo_out.dist.normalized
++
+ # do 'diff' with distribution results
+ # after cleaning for avoid spurios result due
+ # to different build dir
diff --git a/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch b/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
deleted file mode 100644
index 2c344af821..0000000000
--- a/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From aeca7656f499d7f4595319858f242276920e31bb Mon Sep 17 00:00:00 2001
-From: Louis Gesbert <louis.gesbert@ocamlpro.com>
-Date: Sat, 2 Dec 2017 12:51:01 +0100
-Subject: [PATCH] Fix for ocaml 4.06
-
----
- common/criteria_lexer.mll | 8 ++++----
- common/util.ml | 2 +-
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/common/criteria_lexer.mll b/common/criteria_lexer.mll
-index 71f9178..fc4eae3 100644
---- a/common/criteria_lexer.mll
-+++ b/common/criteria_lexer.mll
-@@ -18,7 +18,7 @@
- let c = Lexing.lexeme_char lexbuf 2 in (* the delimiter can be any character *)
- (* find the terminating delimiter *)
- let endpos =
-- try String.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with
-+ try Bytes.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with
- |Invalid_argument _ ->
- raise (Format822.Syntax_error (
- Format822.error lexbuf "String too short"))
-@@ -27,9 +27,9 @@
- Format822.error lexbuf (Printf.sprintf "cannot find: %c" c)))
- in
- let len = endpos - (lexbuf.lex_start_pos + 3) in
-- let s = String.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in
-- lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((String.length s)+4);
-- s
-+ let s = Bytes.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in
-+ lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((Bytes.length s)+4);
-+ Bytes.to_string s
-
- }
-
-diff --git a/common/util.ml b/common/util.ml
-index 598f266..36ca3d1 100644
---- a/common/util.ml
-+++ b/common/util.ml
-@@ -87,7 +87,7 @@ module MakeMessages(X : sig val label : string end) = struct
- let clean label =
- try
- let s = Filename.chop_extension (Filename.basename label) in
-- String.capitalize s
-+ String.capitalize_ascii s
- with Invalid_argument _ -> label
-
- let create ?(enabled=false) label =
---
-2.11.0
-
diff --git a/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch b/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
deleted file mode 100644
index 41494e7b3c..0000000000
--- a/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From b5314c20d8e3caf62fe0dc96ad937a2950158b23 Mon Sep 17 00:00:00 2001
-From: Louis Gesbert <louis.gesbert@ocamlpro.com>
-Date: Thu, 2 Mar 2017 12:19:56 +0100
-Subject: [PATCH] Install mli, cmx, etc.
-
----
- Makefile | 26 +++++++++++++-------------
- 1 file changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 09464ff..5044d7f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -56,7 +56,7 @@ $(DOSELIBS)/cudf.%:
- @for i in _build/cudf/cudf.*; do \
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -67,7 +67,7 @@ $(DOSELIBS)/common.%: common/*.ml common/*.mli
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -78,7 +78,7 @@ $(DOSELIBS)/versioning.%: versioning/*.ml versioning/*.mli
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -88,7 +88,7 @@ $(DOSELIBS)/algo.%: algo/*.ml algo/*.mli $(DOSELIBS)/common.%
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -98,7 +98,7 @@ $(DOSELIBS)/debian.%: deb/*.ml deb/*.mli $(DOSELIBS)/pef.%
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -108,7 +108,7 @@ $(DOSELIBS)/opam.%: opam/*.ml opam/*.mli $(DOSELIBS)/pef.%
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -118,7 +118,7 @@ $(DOSELIBS)/npm.%: npm/*.ml npm/*.mli $(DOSELIBS)/versioning.% $(DOSELIBS)/pef.%
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -128,7 +128,7 @@ $(DOSELIBS)/rpm.%: rpm/*.ml $(DOSELIBS)/algo.%
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -138,7 +138,7 @@ $(DOSELIBS)/pef.%: pef/*.ml pef/*.mli
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -148,7 +148,7 @@ $(DOSELIBS)/csw.%: opencsw/*.ml $(DOSELIBS)/versioning.%
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
-+ rm -f $(DOSELIBS)/*.mlpack ; \
- fi ; \
- done
-
-@@ -158,7 +158,7 @@ $(DOSELIBS)/doseparse.%: $(DOSELIBS)/pef.% $(DOSELIBS)/debian.%
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ; \
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx $(DOSELIBS)/*.ml ; \
-+ rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.ml ; \
- fi ; \
- done
-
-@@ -168,7 +168,7 @@ $(DOSELIBS)/doseparseNoRpm.%: $(DOSELIBS)/pef.% $(DOSELIBS)/debian.%
- if [ -e $$i ]; then \
- cp $$i $(DOSELIBS) ;\
- rm $$i ;\
-- rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ;\
-+ rm -f $(DOSELIBS)/*.mlpack ;\
- fi ; \
- done
-
-@@ -223,7 +223,7 @@ INSTALL_STUFF_ = META
- INSTALL_STUFF_ += $(wildcard _build/doselibs/*.cma _build/doselibs/*.cmi)
- INSTALL_STUFF_ += $(wildcard _build/doselibs/*.cmxa _build/doselibs/*.cmxs)
- INSTALL_STUFF_ += $(wildcard _build/doselibs/*.a)
--#INSTALL_STUFF_ += $(wildcard _build/*/*.mli)
-+INSTALL_STUFF_ += $(wildcard _build/doselibs/*.mli) $(wildcard _build/doselibs/*.cmti) $(wildcard _build/doselibs/*.cmx)
- INSTALL_STUFF_ += $(wildcard _build/rpm/*.so)
-
- exclude_cudf = $(wildcard _build/doselibs/*cudf* _build/cudf/*)
---
-2.11.0
-
diff --git a/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch b/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
deleted file mode 100644
index d2cc44c784..0000000000
--- a/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From b94cf24739818e5aff397e0a83b19ea32dc81f42 Mon Sep 17 00:00:00 2001
-From: Louis Gesbert <louis.gesbert@ocamlpro.com>
-Date: Tue, 6 Feb 2018 10:15:45 +0100
-Subject: [PATCH 3/3] Add "unix" as dependency to dose3.common in META.in
-
----
- META.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/META.in b/META.in
-index aa2cd8d..0f9d337 100644
---- a/META.in
-+++ b/META.in
-@@ -8,7 +8,7 @@ package "common" (
- version = "@PACKAGE_VERSION@"
- archive(byte) = "common.cma"
- archive(native) = "common.cmxa"
--requires = "extlib, re.pcre, cudf, @ZIP@, @BZ2@"
-+requires = "extlib, re.pcre, cudf, unix, @ZIP@, @BZ2@"
- )
-
- package "algo" (
---
-2.11.0
-
diff --git a/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch b/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
deleted file mode 100644
index 84b6a3b81b..0000000000
--- a/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -6552,6 +6552,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
- $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
- fi
--
--
--make printconf
diff --git a/gnu/packages/patches/rdkit-unbundle-external-dependencies.patch b/gnu/packages/patches/rdkit-unbundle-external-dependencies.patch
index 8ee0611d3b..e22ff57ee0 100644
--- a/gnu/packages/patches/rdkit-unbundle-external-dependencies.patch
+++ b/gnu/packages/patches/rdkit-unbundle-external-dependencies.patch
@@ -58,99 +58,82 @@ diff --git a/External/AvalonTools/CMakeLists.txt b/External/AvalonTools/CMakeLis
index 3e31195fc..314ba35b5 100644
--- a/External/AvalonTools/CMakeLists.txt
+++ b/External/AvalonTools/CMakeLists.txt
-@@ -2,107 +2,14 @@ if(NOT RDK_BUILD_AVALON_SUPPORT)
+@@ -2,90 +2,8 @@ if(NOT RDK_BUILD_AVALON_SUPPORT)
return()
endif(NOT RDK_BUILD_AVALON_SUPPORT)
+-set(AVALON_VERSION "2.0.5-pre.3")
-if(NOT DEFINED AVALONTOOLS_DIR)
-- set(AVALONTOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/SourceDistribution")
-- set(fileToPatch "${CMAKE_CURRENT_SOURCE_DIR}/SourceDistribution/common/reaccsio.c")
+- set(AVALONTOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ava-formake-AvalonToolkit_${AVALON_VERSION}")
+- set(fileToCheck "${AVALONTOOLS_DIR}/src/main/C/common/reaccsio.c")
- set(needDownload "TRUE")
-- if(EXISTS "${fileToPatch}")
-- file(READ "${fileToPatch}" buffer)
-- if("${buffer}" MATCHES "//MyFree\\(\\(char \\*\\)tempdir\\);")
-- set(needDownload "FALSE")
-- endif()
+- if(EXISTS "${fileToCheck}")
+- set(needDownload "FALSE")
- endif()
-else()
- string(REGEX REPLACE "\\\\" "/" AVALONTOOLS_DIR ${AVALONTOOLS_DIR})
- set(needDownload "FALSE")
-endif()
-
--set(AVALON_SRC_PATH ${AVALONTOOLS_DIR}/common)
+-set(AVALON_SRC_PATH "${AVALONTOOLS_DIR}/src/main/C")
+-set(AVALON_COMMON_PATH "${AVALON_SRC_PATH}/common")
+-set(AVALON_INCLUDE_PATH "${AVALON_SRC_PATH}/include")
+-set(AVALON_PROGRAMS_PATH "${AVALON_SRC_PATH}/programs")
-
-if(needDownload)
- if(NOT DEFINED AVALONTOOLS_URL)
-- set(AVALONTOOLS_URL "https://sourceforge.net/projects/avalontoolkit/files/AvalonToolkit_1.2/AvalonToolkit_1.2.0.source.tar")
+- set(AVALONTOOLS_URL "https://github.com/rdkit/ava-formake/archive/refs/tags/AvalonToolkit_${AVALON_VERSION}.tar.gz")
- endif()
- if(NOT DEFINED AVALONTOOLS_MD5SUM)
-- set(AVALONTOOLS_MD5SUM "092a94f421873f038aa67d4a6cc8cb54")
+- set(AVALONTOOLS_MD5SUM "7a20c25a7e79f3344e0f9f49afa03351")
- endif()
- if(NOT DEFINED AVALONTOOLS_BASE)
- string(REGEX REPLACE "^.*/" "" AVALONTOOLS_BASE "${AVALONTOOLS_URL}")
- endif()
- downloadAndCheckMD5(${AVALONTOOLS_URL} "${CMAKE_CURRENT_SOURCE_DIR}/${AVALONTOOLS_BASE}" ${AVALONTOOLS_MD5SUM})
-- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf
-- ${CMAKE_CURRENT_SOURCE_DIR}/AvalonToolkit_1.2.0.source.tar
+- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf
+- ${CMAKE_CURRENT_SOURCE_DIR}/AvalonToolkit_${AVALON_VERSION}.tar.gz
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
-- # apply patch to AvalonTools
-- configure_file("${fileToPatch}" "${fileToPatch}.orig" COPYONLY)
-- file(READ "${fileToPatch}" buffer)
-- string(REGEX REPLACE "MyFree\\(\\(char \\*\\)tempdir\\);"
-- "//MyFree((char *)tempdir);" buffer "${buffer}")
-- file(WRITE "${fileToPatch}" "${buffer}")
--endif()
-
- if (MSVC)
- add_definitions("/D_CRT_SECURE_NO_WARNINGS")
- add_compile_options(/wd4224 /wd4101 /wd4018 /wd4996 /wd4244 /wd4305 /wd4013 /wd4146 /wd4334 /wd4715 /wd4715 /nologo)
- endif(MSVC)
-
--set(avalon_clib_srcs ${AVALON_SRC_PATH}/layout.c
-- ${AVALON_SRC_PATH}/symboltable.c
-- ${AVALON_SRC_PATH}/patclean.c
-- ${AVALON_SRC_PATH}/utilities.c
-- ${AVALON_SRC_PATH}/symbol_lists.c
-- ${AVALON_SRC_PATH}/stereo.c
-- ${AVALON_SRC_PATH}/set.c
-- ${AVALON_SRC_PATH}/perceive.c
-- ${AVALON_SRC_PATH}/local.c
-- ${AVALON_SRC_PATH}/graph.c
-- ${AVALON_SRC_PATH}/geometry.c
-- ${AVALON_SRC_PATH}/forio.c
-- ${AVALON_SRC_PATH}/depictutil.c
-- ${AVALON_SRC_PATH}/denormal.c
-- ${AVALON_SRC_PATH}/casutils.c
-- ${AVALON_SRC_PATH}/ssmatch.c
-- ${AVALON_SRC_PATH}/rtutils.c
-- ${AVALON_SRC_PATH}/smi2mol.c
-- ${AVALON_SRC_PATH}/didepict.c
-- ${AVALON_SRC_PATH}/pattern.c
-- ${AVALON_SRC_PATH}/canonizer.c
-- ${AVALON_SRC_PATH}/aacheck.c
-- ${AVALON_SRC_PATH}/fixcharges.c
-- ${AVALON_SRC_PATH}/struchk.c
-- ${AVALON_SRC_PATH}/reaccsio.c
-- ${AVALON_SRC_PATH}/hashcode.c
-- )
--
--# we need this to ensure that builds continue
--# to work on linux systems with older versions
--# of glibc when we're building with gcc-4.1.
--# Without this flag, we'll endup requiring
--# glibc 2.7.
--if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-- add_definitions(-D_GNU_SOURCE=1)
-endif()
-
--if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
-- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-return-type -Wno-implicit-function-declaration -Wno-absolute-value -Wno-parentheses -Wno-logical-op-parentheses -Wno-dangling-else -Wno-format")
+-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
+- add_compile_options(-Wno-format-security -Wformat=0 -Wstringop-overflow=0 -Wformat-overflow=0 -Wno-unused-result )
-endif()
--if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
-- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-result -Wformat-overflow=0 -Wformat=0 -Wno-format-security -Wno-implicit-function-declaration")
+-if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+- add_compile_options(-Wno-absolute-value -Wno-return-type -Wno-tautological-overlap-compare)
-endif()
+-if (MSVC)
+- add_definitions("/D_CRT_SECURE_NO_WARNINGS")
+- add_compile_options(/wd4018 /wd4101 /wd4146 /wd4334 /wd4477 /wd4715 /wd4716 /wd4996 /nologo)
+-endif(MSVC)
-
--
+-set(avalon_clib_srcs ${AVALON_COMMON_PATH}/layout.c
+- ${AVALON_COMMON_PATH}/symboltable.c
+- ${AVALON_COMMON_PATH}/patclean.c
+- ${AVALON_COMMON_PATH}/utilities.c
+- ${AVALON_COMMON_PATH}/symbol_lists.c
+- ${AVALON_COMMON_PATH}/stereo.c
+- ${AVALON_COMMON_PATH}/set.c
+- ${AVALON_COMMON_PATH}/perceive.c
+- ${AVALON_COMMON_PATH}/local.c
+- ${AVALON_COMMON_PATH}/graph.c
+- ${AVALON_COMMON_PATH}/geometry.c
+- ${AVALON_COMMON_PATH}/forio.c
+- ${AVALON_COMMON_PATH}/depictutil.c
+- ${AVALON_COMMON_PATH}/denormal.c
+- ${AVALON_COMMON_PATH}/casutils.c
+- ${AVALON_COMMON_PATH}/ssmatch.c
+- ${AVALON_COMMON_PATH}/rtutils.c
+- ${AVALON_COMMON_PATH}/smi2mol.c
+- ${AVALON_COMMON_PATH}/didepict.c
+- ${AVALON_COMMON_PATH}/pattern.c
+- ${AVALON_COMMON_PATH}/canonizer.c
+- ${AVALON_COMMON_PATH}/aacheck.c
+- ${AVALON_COMMON_PATH}/fixcharges.c
+- ${AVALON_PROGRAMS_PATH}/struchk.c
+- ${AVALON_COMMON_PATH}/reaccsio.c
+- ${AVALON_COMMON_PATH}/hashcode.c
+- )
-
-rdkit_library(avalon_clib ${avalon_clib_srcs})
-target_compile_definitions(avalon_clib PRIVATE RDKIT_AVALONLIB_BUILD)
@@ -159,11 +142,11 @@ index 3e31195fc..314ba35b5 100644
-endif()
-
-include_directories(${CMAKE_CURRENT_SOURCE_DIR})
--include_directories(${AVALON_SRC_PATH})
+-include_directories(${AVALON_INCLUDE_PATH})
-
rdkit_library(AvalonLib AvalonTools.cpp SHARED
- LINK_LIBRARIES avalon_clib SubstructMatch FileParsers SmilesParse GraphMol DataStructs )
-+ LINK_LIBRARIES -lavalontoolkit SubstructMatch FileParsers SmilesParse GraphMol DataStructs )
++ LINK_LIBRARIES -lavalon4rdkit SubstructMatch FileParsers SmilesParse GraphMol DataStructs )
target_compile_definitions(AvalonLib PRIVATE RDKIT_AVALONLIB_BUILD)
rdkit_headers(AvalonTools.h DEST GraphMol)
rdkit_test(testAvalonLib1 test1.cpp
@@ -278,7 +261,7 @@ diff --git a/External/RingFamilies/CMakeLists.txt b/External/RingFamilies/CMakeL
index 08dd1fe04..66ecd5834 100644
--- a/External/RingFamilies/CMakeLists.txt
+++ b/External/RingFamilies/CMakeLists.txt
-@@ -1,47 +1,6 @@
+@@ -1,47 +1,7 @@
-add_custom_target(ringdecomposerlib_support ALL)
-
if(NOT RDK_USE_URF)
@@ -324,10 +307,9 @@ index 08dd1fe04..66ecd5834 100644
-rdkit_headers(${URFLIB_DIR}/RingDecomposerLib.h DEST "")
-
-
--set(RDK_URF_LIBS RingDecomposerLib
-- CACHE STRING "the libraries for the URF calculation" FORCE)
+rdkit_library(RingDecomposerLib dummy.cpp SHARED LINK_LIBRARIES -lRingDecomposerLib)
-+set(RDK_URF_LIBS RingDecomposerLib CACHE STRING "" FORCE)
+ set(RDK_URF_LIBS RingDecomposerLib
+ CACHE STRING "the libraries for the URF calculation" FORCE)
diff --git a/External/RingFamilies/dummy.cpp b/External/RingFamilies/dummy.cpp
new file mode 100644
index 000000000..e69de29bb
@@ -335,40 +317,60 @@ diff --git a/External/YAeHMOP/CMakeLists.txt b/External/YAeHMOP/CMakeLists.txt
index f1027b3bd..8bee2f910 100644
--- a/External/YAeHMOP/CMakeLists.txt
+++ b/External/YAeHMOP/CMakeLists.txt
-@@ -18,32 +18,8 @@ endif()
+@@ -4,52 +4,7 @@ endif(NOT RDK_BUILD_YAEHMOP_SUPPORT)
- include_directories( ${RDKit_ExternalDir}/YAeHMOP )
+ add_definitions(-DRDK_BUILD_YAEHMOP_SUPPORT)
--ExternalProject_Add(yaehmop_project
-- GIT_REPOSITORY https://github.com/greglandrum/yaehmop.git
-- GIT_TAG master
-- UPDATE_COMMAND ""
-- PATCH_COMMAND ""
-- PREFIX ${CMAKE_CURRENT_SOURCE_DIR}
-- SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/yaehmop"
-- SOURCE_SUBDIR "tightbind"
-- CMAKE_ARGS -DUSE_BLAS_LAPACK=OFF -DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-- TEST_COMMAND "")
--
--include_directories(${PROJECT_BINARY_DIR}/include)
--link_directories(${PROJECT_BINARY_DIR}/lib)
--link_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/yaehmop_project-build)
+-if(NOT DEFINED YAEHMOP_DIR)
+- set(YAEHMOP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/yaehmop")
+-endif()
+-
+-if(NOT EXISTS "${YAEHMOP_DIR}/tightbind/bind.h")
+- set(RELEASE_NO "2023.03.1")
+- set(MD5 "e6450f13e02c54d024233b993c3c7ff6")
+- downloadAndCheckMD5("https://github.com/greglandrum/yaehmop/archive/refs/tags/v${RELEASE_NO}.tar.gz"
+- "${CMAKE_CURRENT_SOURCE_DIR}/yaehmop-${RELEASE_NO}.tar.gz" ${MD5})
+- execute_process(COMMAND ${CMAKE_COMMAND} -E tar zxf
+- ${CMAKE_CURRENT_SOURCE_DIR}/yaehmop-${RELEASE_NO}.tar.gz
+- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+-
+- file(RENAME "yaehmop-${RELEASE_NO}" "${YAEHMOP_DIR}")
+-else()
+- message("-- Found YAeHMOP source in ${YAEHMOP_DIR}")
+-endif()
+-
+-set(yaehmop_INCLUDE_DIRS ${YAEHMOP_DIR}/..
+- CACHE STRING "yaehmop Include File" FORCE)
+-include_directories(${yaehmop_INCLUDE_DIRS})
+-
+-if(CMAKE_COMPILER_IS_GNUCXX AND NOT CYGWIN)
+- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+-endif()
+-if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+-endif()
+-
+-# bring in the eHT code, but skip the targets (we'll get yaehmop_eht anyway because it's a dependency)
+-add_subdirectory(yaehmop/tightbind EXCLUDE_FROM_ALL True)
+-
+-# set install dir for the yaehmop library:
+-INSTALL(TARGETS yaehmop_eht EXPORT rdkit-targets
+- DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST}
+- COMPONENT runtime )
+-
+-
+-
-
-set(EHT_PARAM_FILE ${CMAKE_CURRENT_SOURCE_DIR}/yaehmop/tightbind/eht_parms.dat )
-install(FILES ${EHT_PARAM_FILE}
- DESTINATION ${RDKit_ShareDir}/Data
- COMPONENT data)
-
--message("YAeHMOP include_dirs: ${PROJECT_BINARY_DIR}/include")
--message("YAeHMOP link_dirs: ${PROJECT_BINARY_DIR}/lib ${CMAKE_CURRENT_SOURCE_DIR}/src/yaehmop_project-build")
--
-rdkit_library(EHTLib EHTTools.cpp SHARED LINK_LIBRARIES yaehmop_eht GraphMol )
+rdkit_library(EHTLib EHTTools.cpp SHARED LINK_LIBRARIES -lyaehmop_eht GraphMol )
target_compile_definitions(EHTLib PRIVATE RDKIT_EHTLIB_BUILD)
--add_dependencies(EHTLib yaehmop_project)
rdkit_headers(EHTTools.h DEST GraphMol)
rdkit_catch_test(testEHTLib1 test1.cpp
- LINK_LIBRARIES EHTLib FileParsers SmilesParse )
diff --git a/External/YAeHMOP/EHTTools.cpp b/External/YAeHMOP/EHTTools.cpp
index 7a229f51f..71033dc5c 100644
--- a/External/YAeHMOP/EHTTools.cpp
@@ -382,3 +384,23 @@ index 7a229f51f..71033dc5c 100644
}
namespace RDKit {
+@@ -160,4 +160,4 @@ bool runMol(const ROMol &mol, EHTResults &results, int confId,
+ }
+
+ } // end of namespace EHTTools
+-} // end of namespace RDKit
+\ No newline at end of file
++} // end of namespace RDKit
+diff --git a/External/YAeHMOP/Wrap/CMakeLists.txt b/External/YAeHMOP/Wrap/CMakeLists.txt
+index 759a9f360..114d24532 100644
+--- a/External/YAeHMOP/Wrap/CMakeLists.txt
++++ b/External/YAeHMOP/Wrap/CMakeLists.txt
+@@ -4,6 +4,8 @@ rdkit_python_extension(rdEHTTools
+ DEST Chem
+ LINK_LIBRARIES
+ EHTLib )
++
++target_include_directories(rdEHTTools PRIVATE ${RDKit_ExternalDir}/YAeHMOP)
+
+ add_pytest(pyEHTTools
+ ${CMAKE_CURRENT_SOURCE_DIR}/testEHTTools.py)
diff --git a/gnu/packages/patches/spdlog-fix-tests.patch b/gnu/packages/patches/spdlog-fix-tests.patch
deleted file mode 100644
index 13dffb309e..0000000000
--- a/gnu/packages/patches/spdlog-fix-tests.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Remove after next release and package update:
-https://github.com/gabime/spdlog/commit/2ee8bac78e6525a8ad9a9196e65d502ce390d83a
-
-From 2ee8bac78e6525a8ad9a9196e65d502ce390d83a Mon Sep 17 00:00:00 2001
-From: xvitaly <vitaly@easycoding.org>
-Date: Sun, 23 Jul 2023 10:15:25 +0200
-Subject: [PATCH] Added missing square bracket to fix the level_to_string_view
- test. (#2827)
-
----
- tests/test_misc.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/test_misc.cpp b/tests/test_misc.cpp
-index 9f3cb1744..6199641ff 100644
---- a/tests/test_misc.cpp
-+++ b/tests/test_misc.cpp
-@@ -43,7 +43,7 @@ TEST_CASE("log_levels", "[log_levels]")
- REQUIRE(log_info("Hello", spdlog::level::trace) == "Hello");
- }
-
--TEST_CASE("level_to_string_view", "[convert_to_string_view")
-+TEST_CASE("level_to_string_view", "[convert_to_string_view]")
- {
- REQUIRE(spdlog::level::to_string_view(spdlog::level::trace) == "trace");
- REQUIRE(spdlog::level::to_string_view(spdlog::level::debug) == "debug");
diff --git a/gnu/packages/patches/tinydir-fix-cbehave-test.patch b/gnu/packages/patches/tinydir-fix-cbehave-test.patch
index 84ecee12c2..1cad42c7a0 100644
--- a/gnu/packages/patches/tinydir-fix-cbehave-test.patch
+++ b/gnu/packages/patches/tinydir-fix-cbehave-test.patch
@@ -2,10 +2,22 @@ Make test work with upstream cbehave
(tinydir bundles a modified version)
diff --git a/tests/file_open_test.c b/tests/file_open_test.c
-index 3e659bc..9f6f88d 100644
+index 09b856e..92b13ca 100644
--- a/tests/file_open_test.c
+++ b/tests/file_open_test.c
-@@ -19,4 +19,7 @@ FEATURE(file_open, "File open")
+@@ -4,6 +4,11 @@
+ #include "cbehave.h"
+ #include "util.h"
+
++#define ASSERT(cond, ret) \
++if (!(cond)) {\
++ cbehave_feature_return(__FILE__, __LINE__, ret, _state); \
++ goto _feature_over; \
++}\
+
+ FEATURE(file_open, "File open")
+ SCENARIO("Open file in current directory")
+@@ -34,4 +39,7 @@ FEATURE(file_open, "File open")
SCENARIO_END
FEATURE_END
diff --git a/gnu/packages/patool.scm b/gnu/packages/patool.scm
index 31dfd994b1..6d71c3c472 100644
--- a/gnu/packages/patool.scm
+++ b/gnu/packages/patool.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,7 +21,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix git-download)
#:use-module (guix packages)
- #:use-module (guix build-system python)
+ #:use-module (guix build-system pyproject)
#:use-module (gnu packages)
#:use-module (gnu packages backup)
#:use-module (gnu packages cdrom)
@@ -35,7 +36,7 @@
(define-public patool
(package
(name "patool")
- (version "1.12")
+ (version "2.1.1")
(source
(origin
(method git-fetch) ;no test data in PyPI archive
@@ -45,14 +46,20 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0zgvgx9549rvb57rgkpjalydz46k71gibfs6ab3b3sy439s0ay4h"))))
- (build-system python-build-system)
+ "09il0gq1xxlism30hx1aa06alz1xhrnhhwcjzx1znical0bp3q1r"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest")))))))
+ (list
+ #:test-flags
+ '(list "-k" (string-append
+ ;; Disable failing tests.
+ "not test_mime_file_compress"
+ " and not test_mime_file_gzip"
+ " and not test_mime_file_lzip"
+ " and not test_bsdtar_gz_file"
+ " and not test_py_tarfile_gz_file"
+ " and not test_tar_gz_file"
+ " and not test_tar_lzip_file"))))
(native-inputs
(list bzip2
cabextract
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index e0d8e1f33f..0d796f65bb 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -19,7 +19,7 @@
;;; Copyright © 2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2020, 2024 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
@@ -842,14 +842,14 @@ and based on PDF specification 1.7.")
(define-public mupdf
(package
(name "mupdf")
- (version "1.23.7")
+ (version "1.23.10")
(source
(origin
(method url-fetch)
(uri (string-append "https://mupdf.com/downloads/archive/"
"mupdf-" version "-source.tar.lz"))
(sha256
- (base32 "0d0ig1amxyy50jvfbn6rz49zd0980p6syqzcx5v7wg0c3pl2iwwm"))
+ (base32 "0p0smyfcziqrnp391l0pmpjca07075km0xlw20kd3hqa919lhq0i"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-1)))
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 34d413f8c9..b95f56729a 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -172,14 +172,14 @@ different programming languages.")
(define-public fmt-10
(package
(name "fmt")
- (version "10.1.1")
+ (version "10.2.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/fmtlib/fmt/releases/download/"
version "/fmt-" version ".zip"))
(sha256
- (base32 "06wxxn9yxw44nskdnpwyl6y4j27ssmw5d3d4rnb03df922imhkmq"))))
+ (base32 "1j8nln7rql2nxkhdlgpmx1c1dp6dyxnar1n5r7sjg0rws6i5289i"))))
(build-system cmake-build-system)
(arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
(native-inputs (list unzip))
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 37cabf4cff..51a38bbcbe 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
;;; Copyright © 2022 jgart <jgart@dismail.de>
+;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -106,20 +107,16 @@ data in a standard way.")
(uri (pypi-uri "beartype" version))
(sha256
(base32 "0amzckgw9c93bl4jf0q6322j9wyyf3i8vl03yixfkrpllzv6kv14"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
- (list #:phases
- #~(modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv" "beartype_test"
- ;; These tests rely on git through the
- ;; "get_main_readme_file" helper.
- "-k"
- (string-append "not test_doc_readme "
- "and not test_sphinx "
- "and not test_pep561_mypy"))))))))
+ (list
+ #:test-flags
+ #~(list
+ "beartype_test"
+ ;; These tests rely on git through the "get_main_readme_file" helper.
+ "-k" (string-append "not test_doc_readme "
+ "and not test_sphinx "
+ "and not test_pep561_mypy"))))
(native-inputs
(list python-pytest))
(home-page "https://github.com/beartype/beartype")
@@ -182,15 +179,7 @@ tests in cram.")
(sha256
(base32
"17518f2fn5l98lyk9p8r7215c1whi61imzrh6ahrmcksr8w0zz04"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? inputs outputs #:allow-other-keys)
- (when tests?
- (add-installed-pythonpath inputs outputs)
- (invoke "pytest")))))))
+ (build-system pyproject-build-system)
(native-inputs
(list python-pytest-flake8 python-pytest-xdist python-tabulate))
(propagated-inputs
@@ -331,27 +320,35 @@ result documents that can be read by tools such as Jenkins or Bamboo.")
(define-public python-pyinstrument
(package
(name "python-pyinstrument")
- (version "4.1.1")
+ (version "4.6.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyinstrument" version))
(sha256
- (base32 "18n3waxsxcd48pmcp8158s5rlancll2000amrdck9zfj5hfpkhhx"))))
- (build-system python-build-system)
+ (base32 "1xnp1pjhcj1xl4dq20yzzj9599cmiyxb2azblsyjnl6qgr8yw0h0"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" (string-append
+ ;; Disable some failing tests.
+ "not test_script_execution_details"
+ " and not test_path_execution_details"
+ " and not test_module_execution_details"
+ " and not test_program_passed_as_string_execution_details"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'build-extensions
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (invoke "python" "setup.py" "build_ext" "--inplace"))))))
(native-inputs
(list python-flaky
+ python-greenlet
python-pytest
python-pytest-asyncio
python-pytest-trio))
- (arguments
- `(;; TODO: Get tests to work.
- #:tests? #f
- #:phases (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv")))))))
(home-page "https://github.com/joerick/pyinstrument")
(synopsis "Call stack profiler for Python")
(description
@@ -429,31 +426,20 @@ interactions, which will update them to correspond to the new API.")
(sha256
(base32
"1dkr86nxkxc0ka3rdnpmk335m8gl1zh1sy8i7w4w1jsidbf82jvw"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
- ;; FIXME: Tests fail a lot, probably requiring Internet access.
- (list #:tests? #f
- #:phases #~(modify-phases %standard-phases
- (replace 'build
- (lambda _
- (setenv "SETUPTOOLS_SCM_PRETEND_VERSION"
- #$version)
- (setenv "SOURCE_DATE_EPOCH" "315532800")
- (invoke "python"
- "-m"
- "build"
- "--wheel"
- "--no-isolation"
- ".")))
- (add-before 'check 'disable-unsupported-test
- (lambda _
- (substitute* "tests/test_async.py"
- (("def test_asynctest")
- "def __off_test_asynctest"))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "python" "-m" "pytest" "-vvv")))))))
+ (list
+ #:test-flags
+ #~(list "-k" (string-append
+ ;; Disable test requiring network access.
+ "not test_disable_socket_urllib"
+ " and not test_parametrize_with_socket_enabled_and_allow_hosts"
+ " and not test_global_disable_and_allow_host"
+ " and not test_asynctest"
+ " and not test_httpx_fails"
+ " and not test_disabled_urllib_fails"
+ " and not test_urllib_succeeds_by_default"
+ " and not test_enabled_urllib_succeeds"))))
(native-inputs (list python-httpx
python-poetry-core
python-pypa-build
@@ -2338,6 +2324,31 @@ Avocado machine readable outputs this one is streamlined (per test results).
@end table")
(license license:gpl2))) ;some files are under GPLv2 only
+(define-public python-pandas-vet
+ (package
+ (name "python-pandas-vet")
+ ;; Newer versions require flake8>=6.0.0.
+ (version "0.2.3")
+ (source
+ (origin
+ ;; No tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/deppen8/pandas-vet")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1b3pqcargv68p2lpv72q49siq6mxfh3znxhz9vd91rp6fd6lf2cz"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-attrs python-flake8))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/deppen8/pandas-vet")
+ (synopsis "Opionated @code{flake8} plugin for @code{pandas} code")
+ (description
+ "This package provides a @code{flake8} plugin to lint @code{pandas} code
+in an opinionated way.")
+ (license license:expat)))
+
(define-public python-parameterizedtestcase
(package
(name "python-parameterizedtestcase")
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 2b4e74f9be..b6a116f16b 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -339,6 +339,27 @@ logic, also known as grey logic.")
"Scikit-image is a collection of algorithms for image processing.")
(license license:bsd-3)))
+(define-public python-scikit-opt
+ (package
+ (name "python-scikit-opt")
+ (version "0.6.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "scikit-opt" version))
+ (sha256
+ (base32 "0ycqizgsj7q57asc1bphzhf1fx9zqn0vx5rli7q541bas64hfqiy"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-numpy python-scipy))
+ (home-page "https://github.com/guofei9987/scikit-opt")
+ (synopsis "Swarm intelligence algorithms in Python")
+ (description
+ "Scikit-opt (or sko) is a Python module implementing @dfn{swarm
+intelligence} algorithms: genetic algorithm, particle swarm optimization,
+simulated annealing, ant colony algorithm, immune algorithm, artificial fish
+swarm algorithm.")
+ (license license:expat)))
+
(define-public python-scikit-optimize
(package
(name "python-scikit-optimize")
@@ -2153,16 +2174,11 @@ to do spectral analysis in Python.")
(uri (pypi-uri "traittypes" version))
(sha256
(base32 "1mlv93irdrgxrhnhq3ksi9585d55bpi4mv9dha4p8gkkjiia4vxy"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- ;; This one test fails because it doesn't raise an expected
- ;; exception.
- (invoke "pytest" "-vv" "-k" "not test_bad_values")))))))
+ (list
+ ;; This one test fails because it doesn't raise an expected exception.
+ #:test-flags #~(list "-k" "not test_bad_values")))
(propagated-inputs (list python-traitlets))
(native-inputs
(list python-numpy
@@ -2600,6 +2616,31 @@ networking protocol. It allows the easy creation of DICOM
Providers}.")
(license license:expat)))
+(define-public python-pynrrd
+ (package
+ (name "python-pynrrd")
+ (version "1.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mhe/pynrrd")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "09gdyi4kbi3512ydgqxkgr4j7b9a95qh83fk2n9s41bns4id9xj7"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-nptyping python-numpy python-typing-extensions))
+ (home-page "https://github.com/mhe/pynrrd")
+ (synopsis "Python module for reading and writing NRRD files")
+ (description
+ "@code{pynrrd} is a Python module for reading and writing @acronym{NRRD,
+Nearly Raw Raster Data} files (format designed to support scientific
+visualization and image processing involving N-dimensional raster data) into
+and from numpy arrays.")
+ (license license:expat)))
+
(define-public python-libneuroml
(package
(name "python-libneuroml")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 0c0cc46e5f..2dd5dd1c5a 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -5342,13 +5342,13 @@ with oauthlib.")
(define-public whoogle-search
(package
(name "whoogle-search")
- (version "0.8.3")
+ (version "0.8.4")
(source (origin
(method url-fetch)
(uri (pypi-uri "whoogle-search" version))
(sha256
(base32
- "09b9k97jflajvrs0npyz994rj8xkk400s98jw63b6vpsgw9q9nk4"))))
+ "0hsy4l98nzj6i1lf63wvqd0yharkaz44zsxh863ymy47rxnwimz7"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -5364,6 +5364,7 @@ with oauthlib.")
python-dotenv
python-requests
python-stem
+ python-validators
python-waitress))
(home-page "https://github.com/benbusby/whoogle-search")
(synopsis "Self-hosted, ad-free, privacy-respecting metasearch engine")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index cf1132d571..9dd081b3b7 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2267,13 +2267,13 @@ with Numpy and SciPy.")
(define-public python-shapely
(package
(name "python-shapely")
- (version "2.0.1")
+ (version "2.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "shapely" version))
(sha256
- (base32 "14v88k0y7qhp8n5clip6w96pkdzrfqa2hsjkhpy9gkifwyiv39k6"))))
+ (base32 "1rs90q4ys5cav0hz1dq72wq2mk4aqlqqbfjrnb2zzfkiq42cq4qp"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -2284,8 +2284,7 @@ with Numpy and SciPy.")
;; Cython extensions have to be built before running the tests.
(invoke "python" "setup.py" "build_ext" "--inplace"))))))
(native-inputs
- (list python-cython python-matplotlib python-pytest
- python-pytest-cov))
+ (list python-cython python-matplotlib python-pytest))
(inputs
(list geos))
(propagated-inputs
diff --git a/gnu/packages/rrdtool.scm b/gnu/packages/rrdtool.scm
index b1370da003..9c4859b52d 100644
--- a/gnu/packages/rrdtool.scm
+++ b/gnu/packages/rrdtool.scm
@@ -54,7 +54,6 @@
(list cairo
freetype
glib
- gtk+-2
libxml2
pango
python))
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 7a54baba4d..6dde650c37 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -29,7 +29,7 @@
;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
;;; Copyright © 2021 Giovanni Biscuolo <g@xelera.eu>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
-;;; Copyright © 2022, 2023 Remco van 't Veer <remco@remworks.net>
+;;; Copyright © 2022-2024 Remco van 't Veer <remco@remworks.net>
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
@@ -274,7 +274,7 @@ a focus on simplicity and productivity.")
(define-public ruby-3.2
(package
(inherit ruby-3.1)
- (version "3.2.2")
+ (version "3.2.3")
(source
(origin
(method url-fetch)
@@ -283,7 +283,7 @@ a focus on simplicity and productivity.")
"/ruby-" version ".tar.xz"))
(sha256
(base32
- "08wy2ishjwbccfsrd0iwmyadbwjzrpyxnk74wcrf7163gq7jsdab"))))
+ "0ss7pb7f62sakq5ywpw3dl0v586cl61cd91qlm1i094c9fak3cng"))))
(inputs
(modify-inputs (package-inputs ruby-3.1)
(prepend libyaml)))))
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index cdf4a50b5d..78a735c96a 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -374,7 +374,7 @@ for parsing HTML files.")
(list aspell
c-ares
libextractor
- mbedtls-apache
+ mbedtls-lts
postgresql
zlib))
(synopsis "Feature rich search engine")
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 00352dc327..e58e9e61fc 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -51,6 +51,8 @@
#:use-module (gnu packages check)
#:use-module (gnu packages flex)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index 9ae440f86b..d5a5af2af3 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -84,6 +84,12 @@ and file system operations. It is used by all skarnet.org software.")
(assoc-ref %build-inputs "skalibs")
"/lib/skalibs/sysdeps"))
#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ ;; This umask makes the symlinks in lib readable on
+ ;; i586-gnu
+ (substitute* "tools/install.sh"
+ (("umask 077") "umask 033"))))
(add-after
'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
index f0ca932e65..44817d0232 100644
--- a/gnu/packages/sssd.scm
+++ b/gnu/packages/sssd.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2016, 2017, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2021 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2021, 2024 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2021, 2022 Remco van 't Veer <remco@remworks.net>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
@@ -139,7 +139,7 @@ fundamental object types for C.")
(define-public sssd
(package
(name "sssd")
- (version "2.9.3")
+ (version "2.9.4")
(source
(origin
(method git-fetch)
@@ -148,7 +148,7 @@ fundamental object types for C.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0iixn262ycicy2fm96zvifd21p21069mhcsnk262qk79cjvlwdar"))
+ (base32 "11qchs59f8y8w5ns9mqg16nrv1kglfavzvqway0aj2z6ssfxk5al"))
(patches (search-patches "sssd-system-directories.patch"))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index aa8c586cc0..8cfc9507ca 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1606,18 +1606,19 @@ generation in R using Literate Programming techniques.")
(define-public r-knitrbootstrap
(package
(name "r-knitrbootstrap")
- (version "1.0.2")
+ (version "1.0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "knitrBootstrap" version))
(sha256
(base32
- "1aj60j7f0gcs120fdrnfbnb7vk7lfn1phil0mghg6a5zldz4cqs3"))))
+ "157mn2gm7djfiw1b55vdr2ylrmgxlpfg95bmm82ghv5g6vr26smd"))))
(properties `((upstream-name . "knitrBootstrap")))
(build-system r-build-system)
(propagated-inputs
- (list r-knitr r-rmarkdown r-markdown))
+ (list r-knitr r-markdown r-rmarkdown))
+ (native-inputs (list r-knitr))
(home-page "https://github.com/jimhester/knitrBootstrap")
(synopsis "Knitr bootstrap framework")
(description
@@ -3141,13 +3142,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo
(package
(name "r-rcpparmadillo")
- (version "0.12.6.6.1")
+ (version "0.12.8.0.0")
(source (origin
(method url-fetch)
(uri (cran-uri "RcppArmadillo" version))
(sha256
(base32
- "1h7z1l2zf4qv8azi9c4wj0klshhcqihpabvjhln7ra61i8lvssls"))))
+ "0pkn4334dh4k6hqfx4xln2nfvajyxdbfnfddajb8875il0f7kp0x"))))
(properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system)
(propagated-inputs
@@ -5100,14 +5101,14 @@ including:
(define-public r-gplots
(package
(name "r-gplots")
- (version "3.1.3")
+ (version "3.1.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "gplots" version))
(sha256
(base32
- "05k7a8x62qs5g6mps62vb3mwjdnfjzvjb20yws3x0r2j42g3p1cz"))))
+ "1whs45axg1vp2p3jjya4aq68bl6vp11g059saj2av0vmyaadxq8s"))))
(build-system r-build-system)
(propagated-inputs
(list r-catools r-gtools r-kernsmooth))
@@ -5281,13 +5282,13 @@ data at that region, and avoids over-plotting.")
(define-public r-ggthemes
(package
(name "r-ggthemes")
- (version "5.0.0")
+ (version "5.1.0")
(source (origin
(method url-fetch)
(uri (cran-uri "ggthemes" version))
(sha256
(base32
- "1iddxlcxbj5pq0llbhjh5gvxq8j4kzby0cahy0sgzzca074i7aan"))))
+ "03mxigi34nd05wjigm8lpcbyhp4c8jxz7zm04qs27clbzsn1jj07"))))
(build-system r-build-system)
(propagated-inputs
(list r-ggplot2
@@ -5746,14 +5747,14 @@ generally.")
(define-public r-robust
(package
(name "r-robust")
- (version "0.7-3")
+ (version "0.7-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "robust" version))
(sha256
(base32
- "0pj7qinp11rjsibixl7axvxp9alaqr4pjr1l52vq8cl8h6j159w9"))))
+ "0qh816ha18v0n021cccjan1kplmyj0xyb7jmkmrnb6gxf8kma3b3"))))
(build-system r-build-system)
(propagated-inputs
(list r-fit-models r-lattice r-mass r-robustbase r-rrcov))
@@ -6248,14 +6249,14 @@ multivariate case.")
(define-public r-tclust
(package
(name "r-tclust")
- (version "1.5-5")
+ (version "1.5-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "tclust" version))
(sha256
(base32
- "15jl1srsn0m0r5qafbkqsvnh44j30nh3yhipw030mdfa4qkbz3gw"))))
+ "1p7y58mklcwq76msh1q8pm2v6v19ja6fy07xg1j07d2zw2wa0phy"))))
(build-system r-build-system)
;; These are all suggested packages, not build dependencies.
(propagated-inputs
@@ -7459,13 +7460,13 @@ Calculates confidence intervals for the difference in proportion.")
(define-public r-desctools
(package
(name "r-desctools")
- (version "0.99.53")
+ (version "0.99.54")
(source
(origin
(method url-fetch)
(uri (cran-uri "DescTools" version))
(sha256
- (base32 "0b7an97ns7zjc5qqqhrbb0wzzvcx7wcd0980fxlnpbzj5z2idl0p"))))
+ (base32 "16qbm1l1281yj1cg6fp8xgd8xdshpz9a09f0b9cyimsjbm01c2j7"))))
(properties `((upstream-name . "DescTools")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/sugar.scm b/gnu/packages/sugar.scm
index 4a0de1b55a..fe14e55bb4 100644
--- a/gnu/packages/sugar.scm
+++ b/gnu/packages/sugar.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -53,7 +53,7 @@
(define-public sugar
(package
(name "sugar")
- (version "0.120")
+ (version "0.121")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -62,7 +62,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0imhaj49n7ain33kmrqk19rzlfr50m84fbc011vgg1010ddp3vdw"))))
+ "1s31sz1j7x82vynd233k7jqqp881bpz7486r78wfz2i84f2n4n06"))))
(build-system glib-or-gtk-build-system)
(arguments
(list
@@ -79,7 +79,10 @@
(lambda _
(substitute* "autogen.sh"
(("^\"\\$srcdir/configure" m)
- (string-append "#" m)))))
+ (string-append "#" m)))
+ ;; This .po file does not exist
+ (substitute* "po/LINGUAS"
+ (("^ig") ""))))
(add-after 'unpack 'fix-references
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "bin/sugar.in"
@@ -106,12 +109,6 @@
(dirname
(search-input-file inputs
"/share/mobile-broadband-provider-info/serviceproviders.xml"))))
- ;; XXX: spawn_command_line_sync is not used correctly here, so
- ;; we need to patch invocations.
- (substitute* '("extensions/cpsection/aboutcomputer/model.py"
- "src/jarabe/model/brightness.py")
- (("spawn_command_line_sync\\(cmd\\)")
- "spawn_command_line_sync(cmd, 0)"))
(substitute* "extensions/cpsection/aboutcomputer/model.py"
(("ethtool")
(search-input-file inputs "/sbin/ethtool")))
@@ -120,15 +117,11 @@
(string-append "'"
(search-input-file inputs "/bin/locale")
"'")))
- ;; XXX: The brightness component crashes, so we disable it here.
- (substitute* "src/jarabe/main.py"
- (("brightness.get_instance\\(\\)") ""))
- ;; TODO: these locations should be set to places that exist on
- ;; Guix System.
- #;
+ ;; This is a global location on Guix System. Ideally we would
+ ;; have a search path here.
(substitute* "extensions/cpsection/background/model.py"
(("\\('/usr', 'share', 'backgrounds'\\)")
- "('TODO')"))
+ "('/run', 'current-system', 'profile', 'share', 'backgrounds')"))
(substitute* "src/jarabe/view/viewhelp.py"
(("/usr/share/sugar/activities/")
"/run/current-system/profile/share/sugar/activities/"))))
@@ -161,7 +154,7 @@
gstreamer
gtk+
gtksourceview-3
- libsoup-minimal-2
+ libsoup-minimal
libwnck
libxklavier
network-manager
@@ -175,7 +168,7 @@
telepathy-salut ;for XMPP neighborhood
;; This is for the UPowerGlib namespace
upower
- webkitgtk-with-libsoup2))
+ webkitgtk-for-gtk3))
(native-inputs
(list autoconf automake
gettext-minimal
@@ -195,7 +188,7 @@ used every school day by children in more than forty countries.")
(define-public sugar-artwork
(package
(name "sugar-artwork")
- (version "0.120")
+ (version "0.121")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -204,7 +197,7 @@ used every school day by children in more than forty countries.")
(file-name (git-file-name name version))
(sha256
(base32
- "1mjydyx7kbk429s3kswfb8x7g5smjwnai924avwxab1kjsjjksm9"))))
+ "00m3dmwswfy4whc2hs51lqckz1z1f2jnw94jhxgw40b17w00pzwj"))))
(build-system gnu-build-system)
(arguments
(list
@@ -219,7 +212,7 @@ used every school day by children in more than forty countries.")
(string-append "#" m))))))))
(inputs (list cairo gtk+))
(native-inputs
- (list autoconf automake
+ (list autoconf-2.71 automake
icon-naming-utils
libtool
pkg-config
@@ -236,7 +229,7 @@ activities and other Sugar components.")
(define-public sugar-datastore
(package
(name "sugar-datastore")
- (version "0.120")
+ (version "0.121")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -245,7 +238,7 @@ activities and other Sugar components.")
(file-name (git-file-name name version))
(sha256
(base32
- "1wf33w6dm26i8a1zpb40339fj3l9vxjznagls9bc845nld318sqc"))))
+ "01mp0vyg9d6ig29p484prqlgqpa7a3pai8ki37dyk682gr0fhljb"))))
(build-system glib-or-gtk-build-system)
(arguments
(list
@@ -293,7 +286,8 @@ activities and other Sugar components.")
python-pygobject
python-xapian-bindings))
(native-inputs
- (list autoconf automake
+ (list autoconf-2.71
+ automake
libtool
pkg-config))
(home-page "https://www.sugarlabs.org/")
@@ -305,7 +299,7 @@ and metadata, and the journal with querying and full text search.")
(define-public sugar-toolkit-gtk3
(package
(name "sugar-toolkit-gtk3")
- (version "0.120")
+ (version "0.121")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -314,7 +308,7 @@ and metadata, and the journal with querying and full text search.")
(file-name (git-file-name name version))
(sha256
(base32
- "1wqanc38zplyiq1vxda4bj1n0xd78zqlwml6lzklsrbz923llykz"))))
+ "0x80jqx0z89jxfy2dvn4l35qbyvq3c2hg9jq4i0llq1qgkc4034b"))))
(build-system glib-or-gtk-build-system)
(arguments
(list
@@ -368,9 +362,10 @@ and metadata, and the journal with querying and full text search.")
python-six
telepathy-glib
- webkitgtk-with-libsoup2))
+ webkitgtk-for-gtk3))
(native-inputs
- (list autoconf automake
+ (list autoconf-2.71
+ automake
gettext-minimal
glib
(list glib "bin")
@@ -386,11 +381,11 @@ the Sugar Toolkit.")
(define-public sugar-block-party-activity
- (let ((commit "a49e68ec00e647af712d8e284622722f2f78b6bf")
+ (let ((commit "26a58f14254d6ae38b7bfa3cb2fc63291eefcc97")
(revision "1"))
(package
(name "sugar-block-party-activity")
- (version (git-version "11" revision commit))
+ (version (git-version "12" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -399,7 +394,7 @@ the Sugar Toolkit.")
(file-name (git-file-name name version))
(sha256
(base32
- "0hy82c0gn1hr34arhnh9k6mx2789ki85fkgvga4sw6gwh31278pl"))))
+ "0zinqhwmvyvk1zvs28dr71p68vb6widn4v3zp35zlzj4ayyn5rvx"))))
(build-system python-build-system)
(arguments
(list
@@ -430,7 +425,7 @@ a Tetris-like game.")
(define-public sugar-browse-activity
(package
(name "sugar-browse-activity")
- (version "207")
+ (version "208")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -439,7 +434,7 @@ a Tetris-like game.")
(file-name (git-file-name name version))
(sha256
(base32
- "01p1gfdw9fhn92didc9sq23n6a3krs6findbbmicijz91kx8kfb2"))))
+ "1lxwkwz7bz8vd0jgsgvlwdm6gkrmzcmwlyqvp12j2jk5mpr4fp44"))))
(build-system python-build-system)
(arguments
(list
@@ -468,11 +463,11 @@ a Tetris-like game.")
gobject-introspection
gtk+
(librsvg-for-system)
- libsoup-minimal-2
+ libsoup-minimal
python-pygobject
sugar-toolkit-gtk3
telepathy-glib
- webkitgtk-with-libsoup2))
+ webkitgtk-for-gtk3))
(inputs
(list (list glib "bin")))
(native-inputs
@@ -528,8 +523,8 @@ to provide users with easy access to documentation and manuals.")
(license license:gpl3+))))
(define-public sugar-jukebox-activity
- (let ((commit "e11f40c94c1c6302d3e36ddf4dc8101732ffb9d9")
- (revision "1"))
+ (let ((commit "44ad1da717904a7c7d93a08985b94468a9b7ab7a")
+ (revision "2"))
(package
(name "sugar-jukebox-activity")
(version (git-version "36" revision commit))
@@ -541,7 +536,7 @@ to provide users with easy access to documentation and manuals.")
(file-name (git-file-name name version))
(sha256
(base32
- "0gm1cj4vrwwdriyshd27w6vc0palwpg9pnnab5axinrnkzczyk1v"))))
+ "1c8g4h52jnwzk5vlkrkm8j0p5dbrjqd8hv3bdz5rp39w9in3skzk"))))
(build-system python-build-system)
(arguments
(list
@@ -640,7 +635,7 @@ looking for why an activity or Sugar is not working properly.")
(define-public sugar-maze-activity
(package
(name "sugar-maze-activity")
- (version "31")
+ (version "32")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -649,7 +644,7 @@ looking for why an activity or Sugar is not working properly.")
(file-name (git-file-name name version))
(sha256
(base32
- "0ai2ws3mqkxi13chy0hidd1gxiv97862r9lg8qgxb7qkxqyh6afr"))))
+ "0506mwxy3agyxlilb5v3pn29pg45lzaxm8rhj9azm58irs3wdmnq"))))
(build-system python-build-system)
(arguments
(list
@@ -716,7 +711,7 @@ or you can also play with a friend!")
(list evince
gtk+
sugar-toolkit-gtk3
- webkitgtk-with-libsoup2))
+ webkitgtk-for-gtk3))
(inputs
(list gettext-minimal))
(home-page "https://help.sugarlabs.org/read.html")
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index e3c0593aee..d09b03bcdb 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023 Benjamin Slade <slade@lambda-y.net>
+;;; Copyright © 2024 David Pflug <david@pflug.io>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,6 +38,8 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-compression)
#:use-module (gnu packages gtk)
#:use-module (gnu packages linux)
#:use-module (gnu packages python-crypto)
@@ -45,7 +48,7 @@
(define-public syncthing
(package
(name "syncthing")
- (version "1.27.1")
+ (version "1.27.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/syncthing/syncthing"
@@ -53,7 +56,7 @@
"/syncthing-source-v" version ".tar.gz"))
(sha256
(base32
- "0d1qlzh07a9h2wx2fxm2fdask2sm750pqwk7jx62x2hcwmb08ysw"))))
+ "0g418jyqqik8ds8qcrlnmm2bhwwpbrfgd82fg2jyip4zw1aicqia"))))
(build-system go-build-system)
;; The primary Syncthing executable goes to "out", while the auxiliary
;; server programs and utility tools go to "utils". This reduces the size
@@ -397,29 +400,6 @@ processes.")
(home-page "https://github.com/golang/groupcache")
(license asl2.0))))
-(define-public go-github-com-golang-snappy
- (package
- (name "go-github-com-golang-snappy")
- (version "0.0.4")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/golang/snappy")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "004cw699yz3pdpawhjhpa0y94c4w479nw1rf39zj6h6027kpwv2j"))
- (patches (search-patches "go-github-com-golang-snappy-32bit-test.patch"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/golang/snappy"))
- (synopsis "Snappy compression format in the Go programming language")
- (description "This package provides a Go implementation of the Snappy
-compression format.")
- (home-page "https://github.com/golang/snappy")
- (license bsd-3)))
-
(define-public go-github-com-jackpal-gateway
(package
(name "go-github-com-jackpal-gateway")
@@ -518,59 +498,6 @@ higher-level API for doing so.")
(home-page "https://github.com/oschwald/maxminddb-golang")
(license isc)))
-(define-public go-github-com-stathat-go
- (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
- (revision "0"))
- (package
- (name "go-github-com-stathat-go")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/stathat/go")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/stathat/go"))
- (synopsis "Post statistics to StatHat")
- (description "This is a Go package for posting to a StatHat account.")
- (home-page "https://github.com/stathat/go")
- (license expat))))
-
-(define-public go-github-com-rcrowley-go-metrics
- (let ((commit "cac0b30c2563378d434b5af411844adff8e32960")
- (revision "2"))
- (package
- (name "go-github-com-rcrowley-go-metrics")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/rcrowley/go-metrics")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1hfxffnpaw49pr3wrkbzq3pnv3nyzsvk5dxndv0yz70xlrbg8a04"))))
- (build-system go-build-system)
- (arguments
- ;; Arbitrary precision tests are known to be broken on aarch64, ppc64le
- ;; and s390x. See: https://github.com/rcrowley/go-metrics/issues/249
- `(#:tests? ,(not (string-prefix? "aarch64" (or (%current-target-system)
- (%current-system))))
- #:import-path "github.com/rcrowley/go-metrics"))
- (propagated-inputs
- (list go-github-com-stathat-go))
- (synopsis "Go port of Coda Hale's Metrics library")
- (description "This package provides a Go implementation of Coda Hale's
-Metrics library.")
- (home-page "https://github.com/rcrowley/go-metrics")
- (license bsd-2))))
-
(define-public go-github-com-sasha-s-go-deadlock
(package
(name "go-github-com-sasha-s-go-deadlock")
@@ -805,36 +732,6 @@ bounds.")
(home-page "https://github.com/beorn7/perks")
(license expat))))
-(define-public go-github-com-prometheus-client-model
- (let ((commit "14fe0d1b01d4d5fc031dd4bec1823bd3ebbe8016")
- (revision "2"))
- (package
- (name "go-github-com-prometheus-client-model")
- (version (git-version "0.0.2" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/prometheus/client_model")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550"))))
- (build-system go-build-system)
- (arguments
- '(#:import-path "github.com/prometheus/client_model"
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- ;; Source-only package
- (delete 'build))))
- (propagated-inputs
- (list go-github-com-golang-protobuf-proto))
- (synopsis "Data model artifacts for Prometheus")
- (description "This package provides data model artifacts for Prometheus.")
- (home-page "https://github.com/prometheus/client_model")
- (license asl2.0))))
-
(define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
(let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c")
(revision "0"))
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index f609de8eff..37223d0d18 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -90,6 +90,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libcanberra)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 69a269db93..1732d842c8 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -57062,7 +57062,7 @@ develop documents with LaTeX, in a single application.")
(define-public texstudio
(package
(name "texstudio")
- (version "4.5.2")
+ (version "4.7.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -57071,7 +57071,7 @@ develop documents with LaTeX, in a single application.")
(file-name (git-file-name name version))
(sha256
(base32
- "0bzdcsc0273809hx04zqd2famq05q9rpvqcbqhkjqnqp9vxbisig"))))
+ "10w398airsq04vym27n37pw10425f19a7vbhicnwn5iinahdm3s3"))))
(build-system qt-build-system)
(arguments
`(#:tests? #f)) ;tests work only with debug build
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 61236b58cc..2c2b39312c 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -27,10 +27,12 @@
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022 Andy Tai <atai@atai.org>
+;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2023 Eidvilas Markevičius <markeviciuseidvilas@gmail.com>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; Copyright © 2023 David Pflug <david@pflug.io>
+;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -310,7 +312,8 @@ Rust.")
(file-name (git-file-name name version))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
+ `(#:install-source? #f
+ #:cargo-inputs
(("rust-getopts" ,rust-getopts-0.2)
("rust-libc" ,rust-libc-0.2)
("rust-emacs" ,rust-emacs-0.11)
@@ -318,7 +321,26 @@ Rust.")
("rust-serde-json" ,rust-serde-json-1)
("rust-serde-derive" ,rust-serde-derive-1)
("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
- ("rust-unicode-width" ,rust-unicode-width-0.1))))
+ ("rust-unicode-width" ,rust-unicode-width-0.1))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-plugins-and-libs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (vimfiles (string-append out "/share/vim/vimfiles/"
+ "pack/guix/start/parinfer")))
+ (with-directory-excursion "target/release"
+ (install-file "libparinfer_rust.so" lib))
+ (substitute* "plugin/parinfer.vim"
+ (("(let s:libdir = ).*" all libdir)
+ (format #f "~a'~a'\n" libdir lib)))
+ (install-file "doc/parinfer.txt"
+ (string-append vimfiles "/doc"))
+ (install-file "plugin/parinfer.vim"
+ (string-append vimfiles "/plugin"))
+ (install-file "rc/parinfer.kak"
+ (string-append out "/share/kak/autoload"))))))))
(inputs
(list clang))
(home-page "https://github.com/justinbarclay/parinfer-rust")
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 96bc2e56cc..25de916fcb 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -28,6 +28,8 @@
;;; Copyright © 2023 Reza Housseini <reza@housseini.me>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Timotej Lazar <timotej.lazar@araneo.si>;;
+;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -46,16 +48,16 @@
(define-module (gnu packages textutils)
#:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix gexp)
- #:use-module (guix git-download)
#:use-module (guix build-system ant)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
- #:use-module (guix build-system cmake)
#:use-module (guix build-system perl)
#: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 autotools)
@@ -63,10 +65,11 @@
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages gettext)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-crypto)
- #:use-module (gnu packages gettext)
#:use-module (gnu packages java)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
@@ -86,14 +89,14 @@
(define-public dos2unix
(package
(name "dos2unix")
- (version "7.5.1")
+ (version "7.5.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://waterlan.home.xs4all.nl/dos2unix/"
"dos2unix-" version ".tar.gz"))
(sha256
- (base32 "05gwq7asks48l4iliw9cvbcaqa45yrkd2wb47zbb0ag0na5ph1ys"))))
+ (base32 "0fmzqhwq5y14gv5p4kin5flv6g1hvbv0mhlniys2wi08cr244ir6"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
@@ -1358,9 +1361,9 @@ This package provides Python bindings.")
of a Unix terminal to HTML code.")
(license (list license:lgpl2.0+ license:mpl1.1))))
-(define-public go-github-com-errata-ai-vale
+(define-public vale
(package
- (name "go-github-com-errata-ai-vale")
+ (name "vale")
(version "2.4.0")
(source
(origin
@@ -1373,10 +1376,10 @@ of a Unix terminal to HTML code.")
(file-name (git-file-name name version))))
(build-system go-build-system)
(native-inputs
- `(("github.com/sp13/afero" ,go-github-com-spf13-afero)
- ("github.com/urfave/cli" ,go-github-com-urfave-cli)
- ("github.com/olekukonko/tablewriter" ,go-github-com-olekukonko-tablewriter)
- ("github.com/mitchellh/mapstructure" ,go-github-com-mitchellh-mapstructure)))
+ (list go-github-com-mitchellh-mapstructure
+ go-github-com-olekukonko-tablewriter
+ go-github-com-spf13-afero
+ go-github-com-urfave-cli))
(arguments
`(#:import-path "github.com/errata-ai/vale"
#:install-source? #f))
@@ -1390,6 +1393,9 @@ around it also has a list of style guides implemented with Vale in
@url{https://github.com/errata-ai/styles, their styles repo}.")
(license license:expat)))
+(define-public go-github-com-errata-ai-vale
+ (deprecated-package "go-github-com-errata-ai-vale" vale))
+
(define-public utf-8-lineseparator
(package
(name "utf-8-lineseparator")
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 6ba2effa5d..2f212e9f90 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -973,14 +973,10 @@ correct OpenSSL include path. It is intended for use in your
number generator")
(license license:perl-license)))
-;; The "-apache" variant is the upstreamed prefered variant. A "-gpl"
-;; variant exists in addition to the "-apache" one.
-(define-public mbedtls-apache
+(define-public mbedtls-lts
(package
- (name "mbedtls-apache")
- ;; XXX Check whether ‘-Wformat-signedness’ still breaks mbedtls-for-hiawatha
- ;; when updating.
- (version "2.28.5")
+ (name "mbedtls")
+ (version "2.28.7")
(source
(origin
(method git-fetch)
@@ -989,17 +985,17 @@ number generator")
(commit (string-append "mbedtls-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1jlkvvyigpjvv404b8vmx68f1v6g1h2zr6rd78dhc0xgqi018phs"))))
+ (base32 "070i5pxciw04swfqk1rmdprhsafn4cias3dlmkm467pqpjnhb394"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags
- (list "-DUSE_SHARED_MBEDTLS_LIBRARY=ON"
- "-DUSE_STATIC_MBEDTLS_LIBRARY=OFF")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'make-source-writable
- (lambda _
- (for-each make-file-writable (find-files ".")))))))
+ (list #:configure-flags
+ #~(list "-DUSE_SHARED_MBEDTLS_LIBRARY=ON"
+ "-DUSE_STATIC_MBEDTLS_LIBRARY=OFF")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'make-source-writable
+ (lambda _
+ (for-each make-file-writable (find-files ".")))))))
(native-inputs
(list perl python))
(synopsis "Small TLS library")
@@ -1009,47 +1005,41 @@ for developers to include cryptographic and SSL/TLS capabilities in their
(embedded) products, facilitating this functionality with a minimal
coding footprint.")
(home-page "https://www.trustedfirmware.org/projects/mbed-tls/")
- (license license:asl2.0)))
+ (license (list license:asl2.0 license:gpl2+)))) ;dual licensed
+
+(define-public mbedtls
+ (package
+ (inherit mbedtls-lts)
+ (name "mbedtls")
+ (version "3.5.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ARMmbed/mbedtls")
+ (commit (string-append "mbedtls-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wsjrx98h74q0q4zqwsghiqvjz4aqgvigpxb9f8xjw0w4sfsclcm"))))))
+
+(define-public mbedtls-apache
+ (deprecated-package "mbedtls-apache" mbedtls-lts))
;; The Hiawatha Web server requires some specific features to be enabled.
(define-public mbedtls-for-hiawatha
(hidden-package
(package
- (inherit mbedtls-apache)
- (name "mbedtls-apache")
- (version "2.26.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/ARMmbed/mbedtls")
- (commit (string-append "mbedtls-" version))))
- (sha256
- (base32 "0scwpmrgvg6q7rvqkc352d2fqlsx0aylcbyibcp1f1rsn8iiif2m"))
- (file-name (git-file-name name version))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Can be removed with the next version.
- ;; Reduce level of format truncation warnings due to false positives.
- ;; https://github.com/ARMmbed/mbedtls/commit/2065a8d8af27c6cb1e40c9462b5933336dca7434
- (substitute* "CMakeLists.txt"
- (("Wformat-truncation=2") "Wformat-truncation"))
- #t))))
+ (inherit mbedtls-lts)
(arguments
- (substitute-keyword-arguments (package-arguments mbedtls-apache)
+ (substitute-keyword-arguments (package-arguments mbedtls-lts)
((#:phases phases)
- `(modify-phases ,phases
- (add-before 'configure 'configure-extra-features
- (lambda _
- (for-each (lambda (feature)
- (invoke "scripts/config.pl" "set" feature))
- (list "MBEDTLS_THREADING_C"
- "MBEDTLS_THREADING_PTHREAD"))
- ;; XXX The above enables code that breaks with -Werror…
- (substitute* "CMakeLists.txt"
- ((" -Wformat-signedness") ""))
- #t)))))))))
+ #~(modify-phases #$phases
+ (add-before 'configure 'configure-extra-features
+ (lambda _
+ (for-each (lambda (feature)
+ (invoke "scripts/config.pl" "set" feature))
+ (list "MBEDTLS_THREADING_C"
+ "MBEDTLS_THREADING_PTHREAD")))))))))))
(define-public dehydrated
(package
diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm
index f0a8296970..bb15a481cc 100644
--- a/gnu/packages/tor-browsers.scm
+++ b/gnu/packages/tor-browsers.scm
@@ -149,7 +149,7 @@
;; We copy the official build id, which can be found there:
;; https://aus1.torproject.org/torbrowser/update_3/release/.
-(define %moz-build-date "20240115174022")
+(define %torbrowser-build-date "20240115174022")
;; To find the last version, look at https://www.torproject.org/download/.
(define %torbrowser-version "13.0.9")
@@ -161,6 +161,8 @@
(define %torbrowser-firefox-version "115.7.0esr-13.0-1-build1")
;; 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
(origin
(method git-fetch)
@@ -219,6 +221,7 @@ Browser.")
branding-directory
assets
locales
+ build-date
base-browser-version)
(package
(name "torbrowser")
@@ -539,7 +542,7 @@ Browser.")
(setenv "MOZ_CHROME_MULTILOCALE"
(string-join (map car #$locales)))
;; Make build reproducible.
- (setenv "MOZ_BUILD_DATE" #$%moz-build-date)))
+ (setenv "MOZ_BUILD_DATE" #$build-date)))
(add-before 'configure 'mozconfig
(lambda* (#:key configure-flags #:allow-other-keys)
(with-output-to-file "mozconfig"
@@ -838,4 +841,171 @@ attacks on the privacy of Tor users.")
#:branding-directory "browser/branding/tb-release"
#:assets torbrowser-assets
#:locales %torbrowser-locales
+ #:build-date %torbrowser-build-date
#:base-browser-version %torbrowser-version))
+
+
+;; See tor-browser-build/rbm.conf for the list.
+;; See browser/locales/l10n-changesets.json for the changeset.
+;; See update-mozilla-locales in gnuzilla.scm to automate updating changeset.
+(define %mullvadbrowser-locales
+ (mozilla-locales
+ ;; sha256 changeset locale
+ ;;---------------------------------------------------------------------------
+ ("14wnjv13alaj04pd8i8ysillbr3ic2jqa867rbj5ncz8h4hxxfxc" "4c7e24ef78bd" "ar")
+ ("0is7qbykv2pj0z9ll9r35vwjp0x29vmfr10yjl3s0amfaqzjqpqc" "0a0b774407cc" "da")
+ ("0yq7m4v7d7ayg90m66j73mflrnp709qw9n7skhpsl9h1wbhrd7q7" "633986260777" "de")
+ ("018qi9zn24kzfcidsj9lbqfg5n97r295yr8fs953nyfdbim9jsfv" "accf5e4506c0" "es-ES")
+ ("11prhmh2cp95dpv6z0k479mb11zbfm541bvigs3gnkh3nazjvc8q" "37aa71d77cb6" "fa")
+ ("1lv9l98q88ixb0ph970yzphahgzbl97x0w069bkxa54kblkv1ch1" "dc40a4fd5d0e" "fi")
+ ("0wx4k7mwhvpv5w0wa4y5pca2q3jac62jv804nxqnfwh1bvi90wv0" "415c1f0e84bd" "fr")
+ ("1n7l5idw9399n8ih1r1d6m8vzpzhwmnxmr9i7jvygkdc8d6adp1k" "07d5e1ff5f9b" "it")
+ ("1w6nw9cd92p1ndy82wwlq9xizyq3i8rq0nj7118gbxbx368mk2kj" "e6f9db9ce3e6" "ja")
+ ("116a8s0k2yvijy7qf0xpqm5w66gdzs32jhc06364sdar5v34lyhh" "805b85981696" "ko")
+ ("0kk3cjlpghbi7j3ndb2s0c7g838fzd2mpzg01bp0cra8lzd0n2ac" "4ab6f0d05aa6" "my")
+ ("1i3r2ici95mazw07m2mrf192fc6bfa3x6j3c2pcc1zg7z9srihgh" "561b0cd86ec1" "nb-NO")
+ ("1c0m8jhn52h1dif5bswrdwrlzppgga01y61wlii4aaaw15imd6yd" "2a55df0cc389" "nl")
+ ("1gssvg306b80drp7kvc35kvcxwldb5sga0bapaxhv362irq1nya8" "a64a7dab01c4" "pl")
+ ("1dzh13x85a7src8szbrq5pjmrbak4isln9xdwjk7a1yq4g9h7jgs" "33bf2a9f4c49" "pt-BR")
+ ("09x2jirf04kgc118a70z0xrb3msbm7vr4f41ig4xrwf2s5b816r3" "528b76d6aaca" "ru")
+ ("1cyimbd42aaq2amyhdbbx26jwsns77lsfl8g9a70bsjlpwzwzryg" "cc8e8962e59c" "sv-SE")
+ ("03mqrvcal7i172gf9239q9fnynfp5kg9b3r1w8gr9iz7rkr22gw5" "d361502c559e" "th")
+ ("12srgqkqwaidcwbz0y7zr59165f7aq5k5s3b81ql7ixdbwia91pm" "f6173aca4762" "tr")
+ ("1dl2dpif4wwrlpx7zkz5qf8kk4vhxyf63016xcfpbhxizqqwc1ki" "df2d025ed631" "zh-CN")
+ ("1c63ngff9lsc1x3pi6lnkyxw19gdc65yc67p7alzvrka3cv292ia" "11f8d68148a4" "zh-TW")))
+
+;; 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 "20240115174108")
+
+;; To find the last version, look at
+;; https://mullvad.net/en/download/browser/linux.
+(define %mullvadbrowser-version "13.0.9")
+
+;; 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.7.0esr-13.0-1-build1")
+
+;; See tor-browser-build/projects/translation/config.
+(define translation-mullvad-browser
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.torproject.org/tpo/translation.git")
+ (commit "57de1569da0e2c48fd999a13e555f6b522041993")))
+ (file-name "translation-mullvad-browser")
+ (sha256
+ (base32
+ "1q3979ac92c5mib573hx9w06x3hrfw7r52wzmj9r75sz2hhsmrq3"))))
+
+(define mullvadbrowser-assets
+ ;; This is a prebuilt Mullvad Browser from which we take the assets we need.
+ (package
+ (name "mullvadbrowser-assets")
+ (version %mullvadbrowser-version)
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "https://archive.torproject.org/tor-package-archive/mullvadbrowser/"
+ version "/mullvad-browser-linux-x86_64-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1f930j3c1xq88cqlqmnj0m00k0hd63cmgnxd788sp9hz56al22sc"))))
+ (arguments
+ (list
+ #:install-plan
+ ''(("Browser" "." #:include-regexp
+ ("^\\./fonts/"
+ "^\\./fontconfig/fonts.conf"
+ ;; Mullvad Browser Extension
+ "^\\./distribution/extensions/\\{d19a89b9-76c1-4a61-bcd4-49e8de916403\\}.xpi"
+ )))))
+ (build-system copy-build-system)
+ (home-page "https://www.torproject.org")
+ (synopsis "Mullvad Browser assets")
+ (description "This package contains fonts and configuration files for
+Mullvad Browser.")
+ (license license:silofl1.1)))
+
+(define mullvadbrowser-base
+ (make-torbrowser #:moz-app-name "mullvadbrowser"
+ #:moz-app-remotingname "Mullvad Browser"
+ #:branding-directory "browser/branding/mb-release"
+ #:assets mullvadbrowser-assets
+ #:locales %mullvadbrowser-locales
+ #:build-date %mullvadbrowser-build-date
+ #:base-browser-version %mullvadbrowser-version))
+
+(define-public mullvadbrowser
+ (package
+ (inherit mullvadbrowser-base)
+ (name "mullvadbrowser")
+ (version %mullvadbrowser-version)
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "https://archive.torproject.org/tor-package-archive/mullvadbrowser/"
+ version "/src-firefox-mullvad-browser-"
+ %mullvadbrowser-firefox-version ".tar.xz"))
+ (sha256
+ (base32
+ "16chkc07pqr4ypmmgy4z2grvlpvbyr161gpzy72w35dgzzff46f9"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments mullvadbrowser-base)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'ublock-private-allowed
+ (lambda _
+ (substitute* "toolkit/components/extensions/Extension.sys.mjs"
+ ;; The code that gives the correct permission only applies
+ ;; to distribution add-ons (see installDistributionAddon()
+ ;; in XPIProvider.jsm).
+ (("this.isNoScript")
+ (format #f "this.isNoScript || this.id === ~s"
+ "uBlock0@raymondhill.net")))))
+ ;; See tor-browser-build/projects/firefox/build.
+ (replace 'copy-torbrowser-locales
+ (lambda _
+ (for-each
+ (lambda (lang)
+ (system
+ (format #f "cp -Lr ~a/~a .mozbuild/l10n-central/"
+ #$translation-mullvad-browser lang)))
+ (map car #$%mullvadbrowser-locales))))
+ (add-before 'build 'fix-profiles
+ ;; Otherwise the profile would change every time the install
+ ;; location changes, that is: at every package update. These
+ ;; values are already the default values for Icecat and Tor
+ ;; Browser.
+ (lambda _
+ (substitute* "browser/moz.configure"
+ (("\"MOZ_DEDICATED_PROFILES\", True")
+ "\"MOZ_DEDICATED_PROFILES\", False")
+ (("\"MOZ_BLOCK_PROFILE_DOWNGRADE\", True")
+ "\"MOZ_BLOCK_PROFILE_DOWNGRADE\", False"))))
+ (add-after 'deploy-fonts 'deploy-extension
+ (lambda _
+ (let ((lib (in-vicinity #$output "lib/mullvadbrowser")))
+ ;; Mullvad Browser Extension (FIXME: package it)
+ (copy-recursively
+ (in-vicinity #$mullvadbrowser-assets "distribution")
+ (in-vicinity lib "distribution")))))
+ (delete 'deploy-tor-assets)
+ (delete 'autoconfig-tor)))))
+ (inputs
+ (modify-inputs (package-inputs torbrowser)
+ (delete go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird)))
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs torbrowser)
+ (append ublock-origin/icecat)))
+ (home-page "https://mullvad.net/en/browser")
+ (synopsis "Privacy-focused web browser")
+ (description "Mullvad Browser is a privacy-focused web browser developed
+in collaboration between Mullvad VPN and the Tor Project. It’s produced to
+minimize tracking and fingerprinting.")))
diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm
index 2fa47315c0..c058e70dac 100644
--- a/gnu/packages/toys.scm
+++ b/gnu/packages/toys.scm
@@ -30,6 +30,7 @@
#:use-module (gnu packages flex)
#:use-module (gnu packages gtk)
#:use-module (gnu packages man)
+ #:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
@@ -365,7 +366,7 @@ The GNU project hosts a similar collection of filters, the GNU talkfilters.")
(define-public xsnow
(package
(name "xsnow")
- (version "3.4.2")
+ (version "3.7.7")
(source
(origin
(method url-fetch)
@@ -373,7 +374,7 @@ The GNU project hosts a similar collection of filters, the GNU talkfilters.")
"https://www.ratrabbit.nl/downloads/xsnow/xsnow-"
version ".tar.gz"))
(sha256
- (base32 "17pxc955jgkjan8ax0lw3b3sibw7aikc7p9qbxsp0w7g7jkxf666"))))
+ (base32 "1wiwlqbc6lfcq69hln8mxsms327sjbdpv0mmkfi9j2xrcgmw41bs"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -386,9 +387,11 @@ The GNU project hosts a similar collection of filters, the GNU talkfilters.")
(string-append prefix "bin")))
#t)))))
(inputs
- (list gtk+ libx11 libxpm libxt libxml2))
+ (list gsl libx11 libxpm libxt libxml2))
(native-inputs
(list pkg-config))
+ (propagated-inputs
+ (list gdk-pixbuf gtk+))
(home-page "https://www.ratrabbit.nl/ratrabbit/xsnow/index.html")
(synopsis "Let it snow on the desktop")
(description "@code{Xsnow} animates snowfall and Santa with reindeer on
diff --git a/gnu/packages/uucp.scm b/gnu/packages/uucp.scm
index 37dc27625a..8e47834fef 100644
--- a/gnu/packages/uucp.scm
+++ b/gnu/packages/uucp.scm
@@ -19,6 +19,8 @@
(define-module (gnu packages uucp)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages texinfo)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 8f9fae5ce2..51754245d3 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -106,6 +106,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index ef69c1dcc8..1123fd0a44 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -3954,7 +3954,7 @@ be used for realtime video capture via Linux-specific APIs.")
libxcomposite
libxkbcommon
luajit
- mbedtls-apache
+ mbedtls-lts
mesa
pciutils
pipewire
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 55c896f373..f09c12db32 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2022, 2023 Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com>
;;; Copyright © 2023 Charles Jackson <charles.b.jackson@protonmail.com>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
-;;; Copyright © 2023 Nguyễn Gia Phong <mcsinyx@disroot.org>
+;;; Copyright © 2023, 2024 Nguyễn Gia Phong <mcsinyx@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -86,7 +86,7 @@
(define-public vim
(package
(name "vim")
- (version "9.0.2001")
+ (version "9.1.0059")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -95,7 +95,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1y0xfvndnyfv677gn4mkq0jf5k15mm1dngl96l9j90sp4lbqrszx"))))
+ "146zhwhagdsbsh3h7f8h7izbzrwh3hgry4cx2lalq9s275qy3hzb"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 1dd82106e3..5ab1c04628 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2149,7 +2149,7 @@ main monitor/GPU.")
(define-public runc
(package
(name "runc")
- (version "1.1.9")
+ (version "1.1.12")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2158,7 +2158,7 @@ main monitor/GPU.")
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "1hhxqwg0mblrgv2aim3scfd9xg13l6i22j124sdma5sf2fzgx5bn"))))
+ "1mx4iik1gx1am3d2s4ljhrirwjzf4ikn8frba5hdhy74012y7na7"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/opencontainers/runc"
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 02c1ee1043..7823ef19eb 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -23,6 +23,7 @@
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2024 Allan Adair <allan@adair.no>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -70,6 +71,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages guile)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
@@ -1245,17 +1247,29 @@ L2TP allows you to tunnel PPP over UDP.")
(package
(name "vpn-slice")
(version "0.16.1")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "vpn-slice" version))
- (sha256
- (base32
- "1anfx4hn2ggm6sbwqmqx68s3l2rjcy4z4l038xqb440jnk8jvl18"))))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "vpn-slice" version))
+ (sha256
+ (base32 "1anfx4hn2ggm6sbwqmqx68s3l2rjcy4z4l038xqb440jnk8jvl18"))))
(build-system python-build-system)
- (inputs (list python-dnspython python-setproctitle))
+ (arguments
+ (list
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'patch-FHS-file-names
+ (lambda _
+ (substitute* "vpn_slice/linux.py"
+ (("/sbin/iptables")
+ (which "iptables"))
+ (("/sbin/ip")
+ (which "ip"))))))))
+ (inputs (list python-dnspython python-setproctitle iproute iptables))
(home-page "https://github.com/dlenski/vpn-slice")
(synopsis "Split tunneling replacement for vpnc-script")
- (description "vpn-slice is a replacement for @command{vpnc-script} used by
+ (description
+ "vpn-slice is a replacement for @command{vpnc-script} used by
@code{openconnect} and @code{vpnc}. Instead of trying to copy the behavior of
standard corporate VPN clients, which normally reroute all your network
traffic through the VPN, vpn-slice tries to minimize your contact with an
diff --git a/gnu/packages/weather.scm b/gnu/packages/weather.scm
index 6ba656017f..5a58b97a30 100644
--- a/gnu/packages/weather.scm
+++ b/gnu/packages/weather.scm
@@ -22,7 +22,8 @@
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages)
- #:use-module (gnu packages golang))
+ #:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build))
(define-public wego
(package
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index e775118f16..030cce111a 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -590,7 +590,7 @@ driven and does not detract you from your daily work.")
(define-public nyxt
(package
(name "nyxt")
- (version "3.11.1")
+ (version "3.11.2")
(source
(origin
(method git-fetch)
@@ -599,7 +599,7 @@ driven and does not detract you from your daily work.")
(commit version)))
(sha256
(base32
- "107zsjpwhdiafgj55zdbqj6qwyvpfcdf8vxn16sry16r2jaxxagf"))
+ "1gg77dlc7mrwr9h6dgn0cnd78kw6glnr8j6xjs6l93wcr0z5pkqg"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 1a97dd8dec..0c67e7d6e4 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -143,6 +143,7 @@
#:use-module (gnu packages gnunet)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
@@ -1638,7 +1639,7 @@ for efficient socket-like bidirectional reliable communication channels.")
(define-public wabt
(package
(name "wabt")
- (version "1.0.32")
+ (version "1.0.34")
(source
(origin
(method git-fetch)
@@ -1648,13 +1649,15 @@ for efficient socket-like bidirectional reliable communication channels.")
(recursive? #true)))
(file-name (git-file-name name version))
(sha256
- (base32 "0m124r8v9c0hxiaa4iy7ch4ng8msnirbc2vb702gbdjhvgzyrcwh"))
+ (base32 "1vxvc34b7a7lkrmzdb5cjv0b54vhiyr33sy0i2ps5jrmg5rqqmia"))
(modules '((guix build utils)))
(snippet
'(delete-file-recursively "third_party/gtest/"))))
(build-system cmake-build-system)
(arguments
(list
+ ;; Tests on non-x86_64 architectures are not well supported upstream.
+ #:tests? (target-x86-64?)
#:test-target "run-tests"
#:configure-flags '(list "-DUSE_SYSTEM_GTEST=ON")
#:phases
@@ -6490,7 +6493,7 @@ functions of Tidy.")
;; Make sure 'hiawatha' finds 'mbedtls'.
(let* ((out (assoc-ref outputs "out"))
(sbin (string-append out "/sbin"))
- (mbed (assoc-ref inputs "mbedtls-apache")))
+ (mbed (assoc-ref inputs "mbedtls")))
(wrap-program (string-append sbin "/hiawatha")
`("PATH" ":" prefix (,mbed)))))))))
(inputs
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 959928d8e2..13bbda5c94 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -66,6 +66,7 @@
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
+;;; Copyright © 2024 Timotej Lazar <timotej.lazar@araneo.si>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2047,7 +2048,7 @@ core/thread.")
(define-public wlr-randr
(package
(name "wlr-randr")
- (version "0.3.1")
+ (version "0.4.0")
(source
(origin
(method git-fetch)
@@ -2056,7 +2057,7 @@ core/thread.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "13mya6j5z7cwg2a973y28ya8w36kxhj0fgj8bk9z6yf2w0ryr5xv"))))
+ (base32 "1f3dc2i6c1rn2adfcnqmh10570ps335188zllg66sv1d0l8mggry"))))
(build-system meson-build-system)
(inputs (list wayland))
(native-inputs (list pkg-config))
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index b7279d0633..17a35d964d 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5217,10 +5217,33 @@ application-facing EGL functions.")
(home-page "https://github.com/NVIDIA/eglexternalplatform")
(license license:expat)))
+(define-public egl-gbm
+ (package
+ (name "egl-gbm")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/NVIDIA/egl-gbm")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "125h1751vdg60klci0cbmcqj46spxalzqawvvd469qvx69bm30da"))))
+ (build-system meson-build-system)
+ (native-inputs (list pkg-config))
+ (inputs (list eglexternalplatform mesa))
+ (synopsis "GBM EGL external platform library")
+ (description
+ "This package provides an EGL External Platform library implementation for
+GBM EGL support.")
+ (home-page "https://github.com/NVIDIA/egl-gbm")
+ (license license:expat)))
+
(define-public egl-wayland
(package
(name "egl-wayland")
- (version "1.1.11")
+ (version "1.1.13")
(source
(origin
(method git-fetch)
@@ -5229,7 +5252,7 @@ application-facing EGL functions.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "11a3j2rjai2vsway9ki5y3ncvhrwd300pz2zcq36mq3brbr1vgf5"))))
+ (base32 "0irmvp8g2wn18q6k3vcmg4a57q4ddmqccv3g7hbysqnsdsps63rl"))))
(build-system meson-build-system)
(native-inputs
(cons* libglvnd ;needed for headers
diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm
index 9ee0d93030..9955a11e64 100644
--- a/gnu/services/linux.scm
+++ b/gnu/services/linux.scm
@@ -291,7 +291,7 @@ more information)."
(shepherd-service
(documentation "Load kernel modules.")
(provision '(kernel-module-loader))
- (requirement '())
+ (requirement '(udev))
(one-shot? #t)
(modules `((srfi srfi-1)
(srfi srfi-34)
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index f0f0ab3bf1..0fbd51de8d 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com>
-;;; Copyright © 2018, 2020-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2020-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020, 2021, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
@@ -43,6 +43,8 @@
#:use-module (gnu system hurd)
#:use-module (gnu system image)
#:use-module (gnu system shadow)
+ #:autoload (gnu system vm) (linux-image-startup-command
+ virtualized-operating-system)
#:use-module (gnu system)
#:use-module (guix derivations)
#:use-module (guix gexp)
@@ -55,12 +57,20 @@
#:autoload (guix self) (make-config.scm)
#:autoload (guix platform) (platform-system)
+ #:use-module ((srfi srfi-1) #:hide (partition))
#:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 match)
- #:export (%hurd-vm-operating-system
+ #:export (virtual-build-machine
+ virtual-build-machine-service-type
+
+ %virtual-build-machine-operating-system
+ %virtual-build-machine-default-vm
+
+ %hurd-vm-operating-system
hurd-vm-configuration
hurd-vm-configuration?
hurd-vm-configuration-os
@@ -996,7 +1006,7 @@ specified, the QEMU default path is used."))
;;; Secrets for guest VMs.
;;;
-(define (secret-service-shepherd-services port)
+(define (secret-service-shepherd-services address)
"Return a Shepherd service that fetches sensitive material at local PORT,
over TCP. Reboot upon failure."
;; This is a Shepherd service, rather than an activation snippet, to make
@@ -1018,7 +1028,7 @@ over TCP. Reboot upon failure."
"receiving secrets from the host...~%")
(force-output (current-error-port))
- (let ((sent (secret-service-receive-secrets #$port)))
+ (let ((sent (secret-service-receive-secrets #$address)))
(unless sent
(sleep 3)
(reboot))))))
@@ -1039,9 +1049,13 @@ over TCP. Reboot upon failure."
boot time. This service is meant to be used by virtual machines (VMs) that
can only be accessed by their host.")))
-(define (secret-service-operating-system os)
+(define* (secret-service-operating-system os
+ #:optional
+ (address
+ #~(make-socket-address
+ AF_INET INADDR_ANY 1004)))
"Return an operating system based on OS that includes the secret-service,
-that will be listening to receive secret keys on port 1004, TCP."
+that will be listening to receive secret keys on ADDRESS."
(operating-system
(inherit os)
(services
@@ -1049,7 +1063,7 @@ that will be listening to receive secret keys on port 1004, TCP."
;; activation: that requires entropy and thus takes time during boot, and
;; those keys are going to be overwritten by secrets received from the
;; host anyway.
- (cons (service secret-service-type 1004)
+ (cons (service secret-service-type address)
(modify-services (operating-system-user-services os)
(openssh-service-type
config => (openssh-configuration
@@ -1062,6 +1076,475 @@ that will be listening to receive secret keys on port 1004, TCP."
;;;
+;;; Offloading-as-a-service.
+;;;
+
+(define-record-type* <virtual-build-machine>
+ virtual-build-machine make-virtual-build-machine
+ virtual-build-machine?
+ this-virtual-build-machine
+ (name virtual-build-machine-name
+ (default 'build-vm))
+ (image virtual-build-machine-image
+ (thunked)
+ (default
+ (virtual-build-machine-default-image
+ this-virtual-build-machine)))
+ (qemu virtual-build-machine-qemu
+ (default qemu-minimal))
+ (cpu virtual-build-machine-cpu
+ (thunked)
+ (default
+ (qemu-cpu-model-for-date
+ (virtual-build-machine-systems this-virtual-build-machine)
+ (virtual-build-machine-date this-virtual-build-machine))))
+ (cpu-count virtual-build-machine-cpu-count
+ (default 4))
+ (memory-size virtual-build-machine-memory-size ;integer (MiB)
+ (default 2048))
+ (date virtual-build-machine-date
+ ;; Default to a date "in the past" assuming a common use case
+ ;; is to rebuild old packages.
+ (default (make-date 0 0 00 00 01 01 2020 0)))
+ (port-forwardings virtual-build-machine-port-forwardings
+ (default
+ `((,%build-vm-ssh-port . 22)
+ (,%build-vm-secrets-port . 1004))))
+ (systems virtual-build-machine-systems
+ (default (list (%current-system))))
+ (auto-start? virtual-build-machine-auto-start?
+ (default #f)))
+
+(define %build-vm-ssh-port
+ ;; Default host port where the guest's SSH port is forwarded.
+ 11022)
+
+(define %build-vm-secrets-port
+ ;; Host port to communicate secrets to the build VM.
+ ;; FIXME: Anyone on the host can talk to it; use virtio ports or AF_VSOCK
+ ;; instead.
+ 11044)
+
+(define %x86-64-intel-cpu-models
+ ;; List of release date/CPU model pairs representing Intel's x86_64 models.
+ ;; The list is taken from
+ ;; <https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures>.
+ ;; CPU model strings are those found in 'qemu-system-x86_64 -cpu help'.
+ (letrec-syntax ((cpu-models (syntax-rules ()
+ ((_ (date model) rest ...)
+ (alist-cons (date->time-utc
+ (string->date date "~Y-~m-~d"))
+ model
+ (cpu-models rest ...)))
+ ((_)
+ '()))))
+ (reverse
+ (cpu-models ("2006-01-01" "core2duo")
+ ("2010-01-01" "Westmere")
+ ("2008-01-01" "Nehalem")
+ ("2011-01-01" "SandyBridge")
+ ("2012-01-01" "IvyBridge")
+ ("2013-01-01" "Haswell")
+ ("2014-01-01" "Broadwell")
+ ("2015-01-01" "Skylake-Client")))))
+
+(define (qemu-cpu-model-for-date systems date)
+ "Return the QEMU name of a CPU model for SYSTEMS that was current at DATE."
+ (if (any (cut string-prefix? "x86_64-" <>) systems)
+ (let ((time (date->time-utc date)))
+ (any (match-lambda
+ ((release-date . model)
+ (and (time<? release-date time)
+ model)))
+ %x86-64-intel-cpu-models))
+ ;; TODO: Add models for other architectures.
+ "host"))
+
+(define (virtual-build-machine-ssh-port config)
+ "Return the host port where CONFIG has its VM's SSH port forwarded."
+ (any (match-lambda
+ ((host-port . 22) host-port)
+ (_ #f))
+ (virtual-build-machine-port-forwardings config)))
+
+(define (virtual-build-machine-secrets-port config)
+ "Return the host port where CONFIG has its VM's secrets port forwarded."
+ (any (match-lambda
+ ((host-port . 1004) host-port)
+ (_ #f))
+ (virtual-build-machine-port-forwardings config)))
+
+(define %minimal-vm-syslog-config
+ ;; Minimal syslog configuration for a VM.
+ (plain-file "vm-syslog.conf" "\
+# Log most messages to the console, which goes to the serial
+# output, allowing the host to log it.
+*.info;auth.notice;authpriv.none -/dev/console
+
+# The rest.
+*.=debug -/var/log/debug
+authpriv.*;auth.info /var/log/secure
+"))
+
+(define %virtual-build-machine-operating-system
+ (operating-system
+ (host-name "build-machine")
+ (bootloader (bootloader-configuration ;unused
+ (bootloader grub-minimal-bootloader)
+ (targets '("/dev/null"))))
+ (file-systems (cons (file-system ;unused
+ (mount-point "/")
+ (device "none")
+ (type "tmpfs"))
+ %base-file-systems))
+ (users (cons (user-account
+ (name "offload")
+ (group "users")
+ (supplementary-groups '("kvm"))
+ (comment "Account used for offloading"))
+ %base-user-accounts))
+ (services (cons* (service static-networking-service-type
+ (list %qemu-static-networking))
+ (service openssh-service-type
+ (openssh-configuration
+ (openssh openssh-sans-x)))
+
+ (modify-services %base-services
+ ;; By default, the secret service introduces a
+ ;; pre-initialized /etc/guix/acl file in the VM. Thus,
+ ;; clear 'authorize-key?' so that it's not overridden
+ ;; at activation time.
+ (guix-service-type config =>
+ (guix-configuration
+ (inherit config)
+ (authorize-key? #f)))
+ (syslog-service-type config =>
+ (syslog-configuration
+ (config-file
+ %minimal-vm-syslog-config)))
+ (delete mingetty-service-type)
+ (delete console-font-service-type))))))
+
+(define %default-virtual-build-machine-image-size
+ ;; Size of the default disk image of virtual build machines. It should be
+ ;; large enough to let users build a few things.
+ (* 20 (expt 2 30)))
+
+(define (virtual-build-machine-default-image config)
+ (let* ((type (lookup-image-type-by-name 'mbr-raw))
+ (base (os->image %virtual-build-machine-operating-system
+ #:type type)))
+ (image (inherit base)
+ (name (symbol-append 'build-vm-
+ (virtual-build-machine-name config)))
+ (format 'compressed-qcow2)
+ (partition-table-type 'mbr)
+ (shared-store? #f)
+ (size %default-virtual-build-machine-image-size)
+ (partitions (match (image-partitions base)
+ ((root)
+ ;; Increase the size of the root partition to match
+ ;; that of the disk image.
+ (let ((root-size (- size (* 50 (expt 2 20)))))
+ (list (partition
+ (inherit root)
+ (size root-size))))))))))
+
+(define (virtual-build-machine-account-name config)
+ (string-append "build-vm-"
+ (symbol->string
+ (virtual-build-machine-name config))))
+
+(define (virtual-build-machine-accounts config)
+ (let ((name (virtual-build-machine-account-name config)))
+ (list (user-group (name name) (system? #t))
+ (user-account
+ (name name)
+ (group name)
+ (supplementary-groups '("kvm"))
+ (comment "Privilege separation user for the virtual build machine")
+ (home-directory "/var/empty")
+ (shell (file-append shadow "/sbin/nologin"))
+ (system? #t)))))
+
+(define (build-vm-shepherd-services config)
+ (define transform
+ (compose secret-service-operating-system
+ operating-system-with-locked-root-account
+ operating-system-with-offloading-account
+ (lambda (os)
+ (virtualized-operating-system os #:full-boot? #t))))
+
+ (define transformed-image
+ (let ((base (virtual-build-machine-image config)))
+ (image
+ (inherit base)
+ (operating-system
+ (transform (image-operating-system base))))))
+
+ (define command
+ (linux-image-startup-command transformed-image
+ #:qemu
+ (virtual-build-machine-qemu config)
+ #:cpu
+ (virtual-build-machine-cpu config)
+ #:cpu-count
+ (virtual-build-machine-cpu-count config)
+ #:memory-size
+ (virtual-build-machine-memory-size config)
+ #:port-forwardings
+ (virtual-build-machine-port-forwardings
+ config)
+ #:date
+ (virtual-build-machine-date config)))
+
+ (define user
+ (virtual-build-machine-account-name config))
+
+ (list (shepherd-service
+ (documentation "Run the build virtual machine service.")
+ (provision (list (virtual-build-machine-name config)))
+ (requirement '(user-processes))
+ (modules `((gnu build secret-service)
+ (guix build utils)
+ ,@%default-modules))
+ (start
+ (with-imported-modules (source-module-closure
+ '((gnu build secret-service)
+ (guix build utils)))
+ #~(lambda arguments
+ (let* ((pid (fork+exec-command (append #$command arguments)
+ #:user #$user
+ #:group "kvm"
+ #:environment-variables
+ ;; QEMU tries to write to /var/tmp
+ ;; by default.
+ '("TMPDIR=/tmp")))
+ (port #$(virtual-build-machine-secrets-port config))
+ (root #$(virtual-build-machine-secret-root config))
+ (address (make-socket-address AF_INET INADDR_LOOPBACK
+ port)))
+ (catch #t
+ (lambda _
+ (if (secret-service-send-secrets address root)
+ pid
+ (begin
+ (kill (- pid) SIGTERM)
+ #f)))
+ (lambda (key . args)
+ (kill (- pid) SIGTERM)
+ (apply throw key args)))))))
+ (stop #~(make-kill-destructor))
+ (auto-start? (virtual-build-machine-auto-start? config)))))
+
+(define (authorize-guest-substitutes-on-host)
+ "Return a program that authorizes the guest's archive signing key (passed as
+an argument) on the host."
+ (define not-config?
+ (match-lambda
+ ('(guix config) #f)
+ (('guix _ ...) #t)
+ (('gnu _ ...) #t)
+ (_ #f)))
+
+ (define run
+ (with-extensions (list guile-gcrypt)
+ (with-imported-modules `(((guix config) => ,(make-config.scm))
+ ,@(source-module-closure
+ '((guix pki)
+ (guix build utils))
+ #:select? not-config?))
+ #~(begin
+ (use-modules (ice-9 match)
+ (ice-9 textual-ports)
+ (gcrypt pk-crypto)
+ (guix pki)
+ (guix build utils))
+
+ (match (command-line)
+ ((_ guest-config-directory)
+ (let ((guest-key (string-append guest-config-directory
+ "/signing-key.pub")))
+ (if (file-exists? guest-key)
+ ;; Add guest key to the host's ACL.
+ (let* ((key (string->canonical-sexp
+ (call-with-input-file guest-key
+ get-string-all)))
+ (acl (public-keys->acl
+ (cons key (acl->public-keys (current-acl))))))
+ (with-atomic-file-replacement %acl-file
+ (lambda (_ port)
+ (write-acl acl port))))
+ (format (current-error-port)
+ "warning: guest key missing from '~a'~%"
+ guest-key)))))))))
+
+ (program-file "authorize-guest-substitutes-on-host" run))
+
+(define (initialize-build-vm-substitutes)
+ "Initialize the Hurd VM's key pair and ACL and store it on the host."
+ (define run
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+
+ (define host-key
+ "/etc/guix/signing-key.pub")
+
+ (define host-acl
+ "/etc/guix/acl")
+
+ (match (command-line)
+ ((_ guest-config-directory)
+ (setenv "GUIX_CONFIGURATION_DIRECTORY"
+ guest-config-directory)
+ (invoke #+(file-append guix "/bin/guix") "archive"
+ "--generate-key")
+
+ (when (file-exists? host-acl)
+ ;; Copy the host ACL.
+ (copy-file host-acl
+ (string-append guest-config-directory
+ "/acl")))
+
+ (when (file-exists? host-key)
+ ;; Add the host key to the childhurd's ACL.
+ (let ((key (open-fdes host-key O_RDONLY)))
+ (close-fdes 0)
+ (dup2 key 0)
+ (execl #+(file-append guix "/bin/guix")
+ "guix" "archive" "--authorize"))))))))
+
+ (program-file "initialize-build-vm-substitutes" run))
+
+(define* (build-vm-activation secret-directory
+ #:key
+ offloading-ssh-key
+ (offloading? #t))
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+
+ (define secret-directory
+ #$secret-directory)
+
+ (define ssh-directory
+ (string-append secret-directory "/etc/ssh"))
+
+ (define guix-directory
+ (string-append secret-directory "/etc/guix"))
+
+ (define offloading-ssh-key
+ #$offloading-ssh-key)
+
+ (unless (file-exists? ssh-directory)
+ ;; Generate SSH host keys under SSH-DIRECTORY.
+ (mkdir-p ssh-directory)
+ (invoke #$(file-append openssh "/bin/ssh-keygen")
+ "-A" "-f" secret-directory))
+
+ (unless (or (not #$offloading?)
+ (file-exists? offloading-ssh-key))
+ ;; Generate a user SSH key pair for the host to use when offloading
+ ;; to the guest.
+ (mkdir-p (dirname offloading-ssh-key))
+ (invoke #$(file-append openssh "/bin/ssh-keygen")
+ "-t" "ed25519" "-N" ""
+ "-f" offloading-ssh-key)
+
+ ;; Authorize it in the guest for user 'offloading'.
+ (let ((authorizations
+ (string-append ssh-directory
+ "/authorized_keys.d/offloading")))
+ (mkdir-p (dirname authorizations))
+ (copy-file (string-append offloading-ssh-key ".pub")
+ authorizations)
+ (chmod (dirname authorizations) #o555)))
+
+ (unless (file-exists? guix-directory)
+ (invoke #$(initialize-build-vm-substitutes)
+ guix-directory))
+
+ (when #$offloading?
+ ;; Authorize the archive signing key from GUIX-DIRECTORY in the host.
+ (invoke #$(authorize-guest-substitutes-on-host) guix-directory)))))
+
+(define (virtual-build-machine-offloading-ssh-key config)
+ "Return the name of the file containing the SSH key of user 'offloading'."
+ (string-append "/etc/guix/offload/ssh/virtual-build-machine/"
+ (symbol->string
+ (virtual-build-machine-name config))))
+
+(define (virtual-build-machine-activation config)
+ "Return a gexp to activate the build VM according to CONFIG."
+ (build-vm-activation (virtual-build-machine-secret-root config)
+ #:offloading? #t
+ #:offloading-ssh-key
+ (virtual-build-machine-offloading-ssh-key config)))
+
+(define (virtual-build-machine-secret-root config)
+ (string-append "/etc/guix/virtual-build-machines/"
+ (symbol->string
+ (virtual-build-machine-name config))))
+
+(define (check-vm-availability config)
+ "Return a Scheme file that evaluates to true if the service corresponding to
+CONFIG, a <virtual-build-machine>, is up and running."
+ (define service-name
+ (virtual-build-machine-name config))
+
+ (scheme-file "check-build-vm-availability.scm"
+ #~(begin
+ (use-modules (gnu services herd)
+ (srfi srfi-34))
+
+ (guard (c ((service-not-found-error? c) #f))
+ (->bool (current-service '#$service-name))))))
+
+(define (build-vm-guix-extension config)
+ (define vm-ssh-key
+ (string-append
+ (virtual-build-machine-secret-root config)
+ "/etc/ssh/ssh_host_ed25519_key.pub"))
+
+ (define host-ssh-key
+ (virtual-build-machine-offloading-ssh-key config))
+
+ (guix-extension
+ (build-machines
+ (list #~(if (primitive-load #$(check-vm-availability config))
+ (list (build-machine
+ (name "localhost")
+ (port #$(virtual-build-machine-ssh-port config))
+ (systems
+ '#$(virtual-build-machine-systems config))
+ (user "offloading")
+ (host-key (call-with-input-file #$vm-ssh-key
+ (@ (ice-9 textual-ports)
+ get-string-all)))
+ (private-key #$host-ssh-key)))
+ '())))))
+
+(define virtual-build-machine-service-type
+ (service-type
+ (name 'build-vm)
+ (extensions (list (service-extension shepherd-root-service-type
+ build-vm-shepherd-services)
+ (service-extension guix-service-type
+ build-vm-guix-extension)
+ (service-extension account-service-type
+ virtual-build-machine-accounts)
+ (service-extension activation-service-type
+ virtual-build-machine-activation)))
+ (description
+ "Create a @dfn{virtual build machine}: a virtual machine (VM) that builds
+can be offloaded to. By default, the virtual machine starts with a clock
+running at some point in the past.")
+ (default-value (virtual-build-machine))))
+
+
+;;;
;;; The Hurd in VM service: a Childhurd.
;;;
@@ -1243,24 +1726,26 @@ is added to the OS specified in CONFIG."
(source-module-closure '((gnu build secret-service)
(guix build utils)))
#~(lambda ()
- (let ((pid (fork+exec-command #$vm-command
- #:user "childhurd"
- ;; XXX TODO: use "childhurd" after
- ;; updating Shepherd
- #:group "kvm"
- #:environment-variables
- ;; QEMU tries to write to /var/tmp
- ;; by default.
- '("TMPDIR=/tmp")))
- (port #$(hurd-vm-port config %hurd-vm-secrets-port))
- (root #$(hurd-vm-configuration-secret-root config)))
+ (let* ((pid (fork+exec-command #$vm-command
+ #:user "childhurd"
+ ;; XXX TODO: use "childhurd" after
+ ;; updating Shepherd
+ #:group "kvm"
+ #:environment-variables
+ ;; QEMU tries to write to /var/tmp
+ ;; by default.
+ '("TMPDIR=/tmp")))
+ (port #$(hurd-vm-port config %hurd-vm-secrets-port))
+ (root #$(hurd-vm-configuration-secret-root config))
+ (address (make-socket-address AF_INET INADDR_LOOPBACK
+ port)))
(catch #t
(lambda _
;; XXX: 'secret-service-send-secrets' won't complete until
;; the guest has booted and its secret service server is
;; running, which could take 20+ seconds during which PID 1
;; is stuck waiting.
- (if (secret-service-send-secrets port root)
+ (if (secret-service-send-secrets address root)
pid
(begin
(kill (- pid) SIGTERM)
@@ -1284,136 +1769,13 @@ is added to the OS specified in CONFIG."
(shell (file-append shadow "/sbin/nologin"))
(system? #t))))
-(define (initialize-hurd-vm-substitutes)
- "Initialize the Hurd VM's key pair and ACL and store it on the host."
- (define run
- (with-imported-modules '((guix build utils))
- #~(begin
- (use-modules (guix build utils)
- (ice-9 match))
-
- (define host-key
- "/etc/guix/signing-key.pub")
-
- (define host-acl
- "/etc/guix/acl")
-
- (match (command-line)
- ((_ guest-config-directory)
- (setenv "GUIX_CONFIGURATION_DIRECTORY"
- guest-config-directory)
- (invoke #+(file-append guix "/bin/guix") "archive"
- "--generate-key")
-
- (when (file-exists? host-acl)
- ;; Copy the host ACL.
- (copy-file host-acl
- (string-append guest-config-directory
- "/acl")))
-
- (when (file-exists? host-key)
- ;; Add the host key to the childhurd's ACL.
- (let ((key (open-fdes host-key O_RDONLY)))
- (close-fdes 0)
- (dup2 key 0)
- (execl #+(file-append guix "/bin/guix")
- "guix" "archive" "--authorize"))))))))
-
- (program-file "initialize-hurd-vm-substitutes" run))
-
-(define (authorize-guest-substitutes-on-host)
- "Return a program that authorizes the guest's archive signing key (passed as
-an argument) on the host."
- (define not-config?
- (match-lambda
- ('(guix config) #f)
- (('guix _ ...) #t)
- (('gnu _ ...) #t)
- (_ #f)))
-
- (define run
- (with-extensions (list guile-gcrypt)
- (with-imported-modules `(((guix config) => ,(make-config.scm))
- ,@(source-module-closure
- '((guix pki)
- (guix build utils))
- #:select? not-config?))
- #~(begin
- (use-modules (ice-9 match)
- (ice-9 textual-ports)
- (gcrypt pk-crypto)
- (guix pki)
- (guix build utils))
-
- (match (command-line)
- ((_ guest-config-directory)
- (let ((guest-key (string-append guest-config-directory
- "/signing-key.pub")))
- (if (file-exists? guest-key)
- ;; Add guest key to the host's ACL.
- (let* ((key (string->canonical-sexp
- (call-with-input-file guest-key
- get-string-all)))
- (acl (public-keys->acl
- (cons key (acl->public-keys (current-acl))))))
- (with-atomic-file-replacement %acl-file
- (lambda (_ port)
- (write-acl acl port))))
- (format (current-error-port)
- "warning: guest key missing from '~a'~%"
- guest-key)))))))))
-
- (program-file "authorize-guest-substitutes-on-host" run))
-
(define (hurd-vm-activation config)
"Return a gexp to activate the Hurd VM according to CONFIG."
- (with-imported-modules '((guix build utils))
- #~(begin
- (use-modules (guix build utils))
-
- (define secret-directory
- #$(hurd-vm-configuration-secret-root config))
-
- (define ssh-directory
- (string-append secret-directory "/etc/ssh"))
-
- (define guix-directory
- (string-append secret-directory "/etc/guix"))
-
- (define offloading-ssh-key
- #$(hurd-vm-configuration-offloading-ssh-key config))
-
- (unless (file-exists? ssh-directory)
- ;; Generate SSH host keys under SSH-DIRECTORY.
- (mkdir-p ssh-directory)
- (invoke #$(file-append openssh "/bin/ssh-keygen")
- "-A" "-f" secret-directory))
-
- (unless (or (not #$(hurd-vm-configuration-offloading? config))
- (file-exists? offloading-ssh-key))
- ;; Generate a user SSH key pair for the host to use when offloading
- ;; to the guest.
- (mkdir-p (dirname offloading-ssh-key))
- (invoke #$(file-append openssh "/bin/ssh-keygen")
- "-t" "ed25519" "-N" ""
- "-f" offloading-ssh-key)
-
- ;; Authorize it in the guest for user 'offloading'.
- (let ((authorizations
- (string-append ssh-directory
- "/authorized_keys.d/offloading")))
- (mkdir-p (dirname authorizations))
- (copy-file (string-append offloading-ssh-key ".pub")
- authorizations)
- (chmod (dirname authorizations) #o555)))
-
- (unless (file-exists? guix-directory)
- (invoke #$(initialize-hurd-vm-substitutes)
- guix-directory))
-
- (when #$(hurd-vm-configuration-offloading? config)
- ;; Authorize the archive signing key from GUIX-DIRECTORY in the host.
- (invoke #$(authorize-guest-substitutes-on-host) guix-directory)))))
+ (build-vm-activation (hurd-vm-configuration-secret-root config)
+ #:offloading?
+ (hurd-vm-configuration-offloading? config)
+ #:offloading-ssh-key
+ (hurd-vm-configuration-offloading-ssh-key config)))
(define (hurd-vm-configuration-offloading-ssh-key config)
"Return the name of the file containing the SSH key of user 'offloading'."
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 5456b3a5a0..3082bcff46 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -72,6 +72,7 @@
#:export (root-offset
root-label
image-without-os
+ operating-system-for-image
esp-partition
esp32-partition
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index 485baea4c5..c780b68fba 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2020 Google LLC
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2023 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2024 Leo Nikkilä <hello@lnikki.la>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -56,7 +57,7 @@ from OS that are needed on the bare metal and not in a container."
(if shared-network?
(list hosts-service-type)
'()))))
- (operating-system-default-essential-services os)))
+ (operating-system-essential-services os)))
(cons (service system-service-type
`(("locale" ,(operating-system-locale-directory os))))
@@ -144,48 +145,53 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
(list (service dummy-networking-service-type))
'()))
+ (define os-with-base-essential-services
+ (operating-system
+ (inherit os)
+ (swap-devices '()) ; disable swap
+ (services
+ (append services-to-add
+ (filter-map (lambda (s)
+ (cond ((memq (service-kind s) services-to-drop)
+ #f)
+ ((eq? nscd-service-type (service-kind s))
+ (service nscd-service-type
+ (nscd-configuration
+ (inherit (service-value s))
+ (caches %nscd-container-caches))))
+ ((eq? guix-service-type (service-kind s))
+ ;; Pass '--disable-chroot' so that
+ ;; guix-daemon can build thing even in
+ ;; Docker without '--privileged'.
+ (service guix-service-type
+ (guix-configuration
+ (inherit (service-value s))
+ (extra-options
+ (cons "--disable-chroot"
+ (guix-configuration-extra-options
+ (service-value s)))))))
+ (else s)))
+ (operating-system-user-services os))))
+ (file-systems (append (map mapping->fs
+ (if shared-network?
+ (append %network-file-mappings mappings)
+ mappings))
+ extra-file-systems
+ user-file-systems
+
+ ;; Provide a dummy root file system so we can create
+ ;; a 'boot-parameters' file.
+ (list (file-system
+ (mount-point "/")
+ (device "nothing")
+ (type "dummy")))))))
+
+ ;; `essential-services' is thunked, we need to evaluate it separately.
(operating-system
- (inherit os)
- (swap-devices '()) ; disable swap
+ (inherit os-with-base-essential-services)
(essential-services (container-essential-services
- this-operating-system
- #:shared-network? shared-network?))
- (services
- (append services-to-add
- (filter-map (lambda (s)
- (cond ((memq (service-kind s) services-to-drop)
- #f)
- ((eq? nscd-service-type (service-kind s))
- (service nscd-service-type
- (nscd-configuration
- (inherit (service-value s))
- (caches %nscd-container-caches))))
- ((eq? guix-service-type (service-kind s))
- ;; Pass '--disable-chroot' so that
- ;; guix-daemon can build thing even in
- ;; Docker without '--privileged'.
- (service guix-service-type
- (guix-configuration
- (inherit (service-value s))
- (extra-options
- (cons "--disable-chroot"
- (guix-configuration-extra-options
- (service-value s)))))))
- (else s)))
- (operating-system-user-services os))))
- (file-systems (append (map mapping->fs
- (if shared-network?
- (append %network-file-mappings mappings)
- mappings))
- extra-file-systems
- user-file-systems
-
- ;; Provide a dummy root file system so we can create
- ;; a 'boot-parameters' file.
- (list (file-system
- (mount-point "/")
- (device "nothing")
- (type "dummy")))))))
+ os-with-base-essential-services
+ #:shared-network? shared-network?))))
(define* (container-script os #:key (mappings '()) shared-network?)
"Return a derivation of a script that runs OS as a Linux container.
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 8c27ff787d..fcfd1cdb48 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -63,6 +63,7 @@
#:use-module (gnu system uuid)
#:use-module ((srfi srfi-1) #:hide (partition))
+ #:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 match)
@@ -70,8 +71,19 @@
#:export (virtualized-operating-system
system-qemu-image/shared-store-script
+ linux-image-startup-command
+
virtual-machine
- virtual-machine?))
+ virtual-machine?
+ virtual-machine-operating-system
+ virtual-machine-qemu
+ virtual-machine-cpu-count
+ virtual-machine-volatile?
+ virtual-machine-graphic?
+ virtual-machine-memory-size
+ virtual-machine-disk-image-size
+ virtual-machine-port-forwardings
+ virtual-machine-date))
;;; Commentary:
@@ -122,7 +134,8 @@
(check? #f)
(create-mount-point? #t)))))
-(define* (virtualized-operating-system os mappings
+(define* (virtualized-operating-system os
+ #:optional (mappings '())
#:key (full-boot? #f) volatile?)
"Return an operating system based on OS suitable for use in a virtualized
environment with the store shared with the host. MAPPINGS is a list of
@@ -306,6 +319,63 @@ useful when FULL-BOOT? is true."
(gexp->derivation "run-vm.sh" builder)))
+(define* (linux-image-startup-command image
+ #:key
+ (system (%current-system))
+ (target #f)
+ (qemu qemu-minimal)
+ (graphic? #f)
+ (cpu "max")
+ (cpu-count 1)
+ (memory-size 1024)
+ (port-forwardings '())
+ (date #f))
+ "Return a list-valued gexp representing the command to start QEMU to run
+IMAGE, assuming it uses the Linux kernel, and not sharing the store with the
+host."
+ (define os
+ ;; Note: 'image-operating-system' would return the wrong OS, before
+ ;; its root partition has been assigned a UUID.
+ (operating-system-for-image image))
+
+ (define kernel-arguments
+ #~(list #$@(if graphic? #~() #~("console=ttyS0"))
+ #+@(operating-system-kernel-arguments os "/dev/vda1")))
+
+ #~`(#+(file-append qemu "/bin/"
+ (qemu-command (or target system)))
+ ,@(if (access? "/dev/kvm" (logior R_OK W_OK))
+ '("-enable-kvm")
+ '())
+
+ "-cpu" #$cpu
+ #$@(if (> cpu-count 1)
+ #~("-smp" #$(string-append "cpus=" (number->string cpu-count)))
+ #~())
+ "-m" #$(number->string memory-size)
+ "-nic" #$(string-append
+ "user,model=virtio-net-pci,"
+ (port-forwardings->qemu-options port-forwardings))
+ "-kernel" #$(operating-system-kernel-file os)
+ "-initrd" #$(file-append os "/initrd")
+ "-append" ,(string-join #$kernel-arguments)
+ "-serial" "stdio"
+
+ #$@(if date
+ #~("-rtc"
+ #$(string-append "base=" (date->string date "~5")))
+ #~())
+
+ "-object" "rng-random,filename=/dev/urandom,id=guix-vm-rng"
+ "-device" "virtio-rng-pci,rng=guix-vm-rng"
+
+ "-drive"
+ ,(string-append "file=" #$(system-image image)
+ ",format=qcow2,if=virtio,"
+ "cache=writeback,werror=report,readonly=off")
+ "-snapshot"
+ "-no-reboot"))
+
;;;
;;; High-level abstraction.
@@ -317,6 +387,8 @@ useful when FULL-BOOT? is true."
(operating-system virtual-machine-operating-system) ;<operating-system>
(qemu virtual-machine-qemu ;<package>
(default qemu-minimal))
+ (cpu-count virtual-machine-cpu-count ;integer
+ (default 1))
(volatile? virtual-machine-volatile? ;Boolean
(default #t))
(graphic? virtual-machine-graphic? ;Boolean
@@ -326,7 +398,9 @@ useful when FULL-BOOT? is true."
(disk-image-size virtual-machine-disk-image-size ;integer (bytes)
(default 'guess))
(port-forwardings virtual-machine-port-forwardings ;list of integer pairs
- (default '())))
+ (default '()))
+ (date virtual-machine-date ;SRFI-19 date | #f
+ (default #f)))
(define-syntax virtual-machine
(syntax-rules ()
@@ -352,23 +426,24 @@ FORWARDINGS is a list of host-port/guest-port pairs."
(define-gexp-compiler (virtual-machine-compiler (vm <virtual-machine>)
system target)
(match vm
- (($ <virtual-machine> os qemu volatile? graphic? memory-size
- disk-image-size ())
- (system-qemu-image/shared-store-script os
- #:system system
- #:target target
- #:qemu qemu
- #:graphic? graphic?
- #:volatile? volatile?
- #:memory-size memory-size
- #:disk-image-size
- disk-image-size))
- (($ <virtual-machine> os qemu volatile? graphic? memory-size
- disk-image-size forwardings)
+ (($ <virtual-machine> os qemu cpus volatile? graphic? memory-size
+ disk-image-size forwardings date)
(let ((options
- `("-nic" ,(string-append
- "user,model=virtio-net-pci,"
- (port-forwardings->qemu-options forwardings)))))
+ (append (if (null? forwardings)
+ '()
+ `("-nic" ,(string-append
+ "user,model=virtio-net-pci,"
+ (port-forwardings->qemu-options
+ forwardings))))
+ (if (> cpus 1)
+ `("-smp" ,(string-append "cpus="
+ (number->string cpus)))
+ '())
+ (if date
+ `("-rtc"
+ ,(string-append
+ "base=" (date->string date "~5")))
+ '()))))
(system-qemu-image/shared-store-script os
#:system system
#:target target
diff --git a/gnu/tests/virtualization.scm b/gnu/tests/virtualization.scm
index 6ca88cbacd..c8b42eb1db 100644
--- a/gnu/tests/virtualization.scm
+++ b/gnu/tests/virtualization.scm
@@ -33,6 +33,7 @@
#:use-module (gnu services)
#:use-module (gnu services dbus)
#:use-module (gnu services networking)
+ #:use-module (gnu services ssh)
#:use-module (gnu services virtualization)
#:use-module (gnu packages ssh)
#:use-module (gnu packages virtualization)
@@ -42,7 +43,8 @@
#:use-module (guix modules)
#:export (%test-libvirt
%test-qemu-guest-agent
- %test-childhurd))
+ %test-childhurd
+ %test-build-vm))
;;;
@@ -241,6 +243,36 @@
(password "")) ;empty password
%base-user-accounts))))))))
+(define* (run-command-over-ssh command
+ #:key (port 10022) (user "test"))
+ "Return a program that runs COMMAND over SSH and prints the result on standard
+output."
+ (define run
+ (with-extensions (list guile-ssh)
+ #~(begin
+ (use-modules (ssh session)
+ (ssh auth)
+ (ssh popen)
+ (ice-9 match)
+ (ice-9 textual-ports))
+
+ (let ((session (make-session #:user #$user
+ #:port #$port
+ #:host "localhost"
+ #:timeout 120
+ #:log-verbosity 'rare)))
+ (match (connect! session)
+ ('ok
+ (userauth-password! session "")
+ (display
+ (get-string-all
+ (open-remote-input-pipe* session #$@command))))
+ (status
+ (error "could not connect to guest over SSH"
+ session status)))))))
+
+ (program-file "run-command-over-ssh" run))
+
(define (run-childhurd-test)
(define (import-module? module)
;; This module is optional and depends on Guile-Gcrypt, do skip it.
@@ -261,36 +293,6 @@
(operating-system os)
(memory-size (* 1024 3))))
- (define (run-command-over-ssh . command)
- ;; Program that runs COMMAND over SSH and prints the result on standard
- ;; output.
- (let ()
- (define run
- (with-extensions (list guile-ssh)
- #~(begin
- (use-modules (ssh session)
- (ssh auth)
- (ssh popen)
- (ice-9 match)
- (ice-9 textual-ports))
-
- (let ((session (make-session #:user "test"
- #:port 10022
- #:host "localhost"
- #:timeout 120
- #:log-verbosity 'rare)))
- (match (connect! session)
- ('ok
- (userauth-password! session "")
- (display
- (get-string-all
- (open-remote-input-pipe* session #$@command))))
- (status
- (error "could not connect to childhurd over SSH"
- session status)))))))
-
- (program-file "run-command-over-ssh" run)))
-
(define test
(with-imported-modules '((gnu build marionette))
#~(begin
@@ -356,21 +358,24 @@
;; 'uname' command.
(marionette-eval
'(begin
- (use-modules (ice-9 popen))
+ (use-modules (ice-9 popen)
+ (ice-9 textual-ports))
(get-string-all
- (open-input-pipe #$(run-command-over-ssh "uname" "-on"))))
+ (open-input-pipe #$(run-command-over-ssh '("uname" "-on")))))
marionette))
(test-assert "guix-daemon up and running"
(let ((drv (marionette-eval
'(begin
- (use-modules (ice-9 popen))
+ (use-modules (ice-9 popen)
+ (ice-9 textual-ports))
(get-string-all
(open-input-pipe
- #$(run-command-over-ssh "guix" "build" "coreutils"
- "--no-grafts" "-d"))))
+ #$(run-command-over-ssh
+ '("guix" "build" "coreutils"
+ "--no-grafts" "-d")))))
marionette)))
;; We cannot compare the .drv with (raw-derivation-file
;; coreutils) on the host: they may differ due to fixed-output
@@ -416,3 +421,102 @@
"Connect to the GNU/Hurd virtual machine service, aka. a childhurd, making
sure that the childhurd boots and runs its SSH server.")
(value (run-childhurd-test))))
+
+
+;;;
+;;; Virtual build machine.
+;;;
+
+(define %build-vm-os
+ (simple-operating-system
+ (service virtual-build-machine-service-type
+ (virtual-build-machine
+ (cpu-count 1)
+ (memory-size (* 1 1024))))))
+
+(define (run-build-vm-test)
+ (define (import-module? module)
+ ;; This module is optional and depends on Guile-Gcrypt, do skip it.
+ (and (guix-module-name? module)
+ (not (equal? module '(guix store deduplication)))))
+
+ (define os
+ (marionette-operating-system
+ %build-vm-os
+ #:imported-modules (source-module-closure
+ '((gnu services herd)
+ (gnu build install))
+ #:select? import-module?)))
+
+ (define vm
+ (virtual-machine
+ (operating-system os)
+ (memory-size (* 1024 3))))
+
+ (define test
+ (with-imported-modules '((gnu build marionette))
+ #~(begin
+ (use-modules (gnu build marionette)
+ (srfi srfi-64)
+ (ice-9 match))
+
+ (define marionette
+ ;; Emulate as much as the host CPU supports so that, possibly, KVM
+ ;; is available inside as well ("nested KVM"), provided
+ ;; /sys/module/kvm_intel/parameters/nested (or similar) allows it.
+ (make-marionette (list #$vm "-cpu" "max")))
+
+ (test-runner-current (system-test-runner #$output))
+ (test-begin "build-vm")
+
+ (test-assert "service running"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd)
+ (ice-9 match))
+
+ (start-service 'build-vm))
+ marionette))
+
+ (test-assert "guest SSH up and running"
+ ;; Note: Pass #:peek? #t because due to the way QEMU port
+ ;; forwarding works, connecting to 11022 always works even if the
+ ;; 'sshd' service hasn't been started yet in the guest.
+ (wait-for-tcp-port 11022 marionette
+ #:peek? #t))
+
+ (test-assert "copy-on-write store"
+ ;; Set up a writable store. The root partition is already an
+ ;; overlayfs, which is not suitable as the bottom part of this
+ ;; additional overlayfs; thus, create a tmpfs for the backing
+ ;; store.
+ ;; TODO: Remove this when <virtual-machine> creates a writable
+ ;; store.
+ (marionette-eval
+ '(begin
+ (use-modules (gnu build install)
+ (guix build syscalls))
+
+ (mkdir "/run/writable-store")
+ (mount "none" "/run/writable-store" "tmpfs")
+ (mount-cow-store "/run/writable-store" "/backing-store")
+ (system* "df" "-hT"))
+ marionette))
+
+ (test-equal "offloading"
+ 0
+ (marionette-eval
+ '(and (file-exists? "/etc/guix/machines.scm")
+ (system* "guix" "offload" "test"))
+ marionette))
+
+ (test-end))))
+
+ (gexp->derivation "build-vm-test" test))
+
+(define %test-build-vm
+ (system-test
+ (name "build-vm")
+ (description
+ "Offload to a virtual build machine over SSH.")
+ (value (run-build-vm-test))))
diff --git a/guix/build-system/perl.scm b/guix/build-system/perl.scm
index 0d5493ab90..3f7a2dea27 100644
--- a/guix/build-system/perl.scm
+++ b/guix/build-system/perl.scm
@@ -197,7 +197,9 @@ XS or similar."
native-search-paths))
#:make-maker? #$make-maker?
#:make-maker-flags #$make-maker-flags
- #:module-build-flags #$(sexp->gexp module-build-flags)
+ #:module-build-flags #$(if (pair? module-build-flags)
+ (sexp->gexp module-build-flags)
+ module-build-flags)
#:phases #$phases
#:build #$build
#:system #$system
diff --git a/guix/build/git.scm b/guix/build/git.scm
index 867cade2c4..4c69365a7b 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2016, 2019, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2016, 2019, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -20,7 +20,9 @@
(define-module (guix build git)
#:use-module (guix build utils)
#:autoload (guix build download-nar) (download-nar)
- #:autoload (guix swh) (%verify-swh-certificate? swh-download)
+ #:autoload (guix swh) (%verify-swh-certificate?
+ swh-download
+ swh-download-directory-by-nar-hash)
#:use-module (srfi srfi-34)
#:use-module (ice-9 format)
#:export (git-fetch
@@ -91,10 +93,13 @@ fetched, recursively. Return #t on success, #f otherwise."
(define* (git-fetch-with-fallback url commit directory
#:key (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."
+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?
@@ -110,7 +115,14 @@ and if that also fails, download from the Software Heritage archive."
(format (current-error-port)
"Trying to download from Software Heritage...~%")
- (swh-download url commit directory)
+ ;; First try to look up and download the directory corresponding
+ ;; to HASH: this is fundamentally more reliable than looking up
+ ;; COMMIT, especially when COMMIT denotes a tag.
+ (or (and hash hash-algorithm
+ (swh-download-directory-by-nar-hash hash hash-algorithm
+ directory))
+ (swh-download url commit directory))
+
(when (file-exists?
(string-append directory "/.gitattributes"))
;; Perform CR/LF conversion and other changes
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 3de6ae970d..aadcbd234c 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2021, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2021, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -165,6 +165,8 @@ respective documentation."
(git-fetch-with-fallback (getenv "git url") (getenv "git commit")
#$output
+ #:hash #$hash
+ #:hash-algorithm '#$hash-algo
#:lfs? lfs?
#:recursive? recursive?
#:git-command "git")))))
diff --git a/guix/lint.scm b/guix/lint.scm
index 861e352b93..c95de85e69 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2013-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -1658,24 +1658,31 @@ try again later")
(or (not (request-rate-limit-reached? url method))
(throw skip-key #t)))
+ (define (lookup-by-nar-hash hash)
+ (lookup-directory-by-nar-hash (content-hash-value hash)
+ (content-hash-algorithm hash)))
+
(parameterize ((%allow-request? skip-when-limit-reached))
(catch #t
(lambda ()
(match (package-source package)
(#f ;no source
'())
- ((and (? origin?)
+ ((and (? origin? origin)
(= origin-uri (? git-reference? reference)))
(define url
(git-reference-url reference))
(define commit
(git-reference-commit reference))
-
- (match (if (commit-id? commit)
- (or (lookup-revision commit)
- (lookup-origin-revision url commit))
- (lookup-origin-revision url commit))
- ((? revision? revision)
+ (define hash
+ (origin-hash origin))
+
+ (match (or (lookup-by-nar-hash hash)
+ (if (commit-id? commit)
+ (or (lookup-revision commit)
+ (lookup-origin-revision url commit))
+ (lookup-origin-revision url commit)))
+ ((or (? string?) (? revision?))
'())
(#f
;; Revision is missing from the archive, attempt to save it.
@@ -1704,9 +1711,10 @@ try again later")
(if (and=> (origin-hash origin) ;XXX: for ungoogled-chromium
content-hash-value) ;& icecat
(let ((hash (origin-hash origin)))
- (match (lookup-content (content-hash-value hash)
- (symbol->string
- (content-hash-algorithm hash)))
+ (match (or (lookup-by-nar-hash hash)
+ (lookup-content (content-hash-value hash)
+ (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
diff --git a/guix/scripts/git/authenticate.scm b/guix/scripts/git/authenticate.scm
index 5f5d423f28..6ff5cee682 100644
--- a/guix/scripts/git/authenticate.scm
+++ b/guix/scripts/git/authenticate.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +27,7 @@
#:use-module ((guix git) #:select (with-git-error-handling))
#:use-module (guix progress)
#:use-module (guix base64)
+ #:autoload (rnrs bytevectors) (bytevector-length)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-37)
@@ -133,6 +134,16 @@ Authenticate the given Git checkout using COMMIT/SIGNER as its introduction.\n")
(define commit-short-id
(compose (cut string-take <> 7) oid->string commit-id))
+ (define (openpgp-fingerprint* str)
+ (unless (string-every (char-set-union char-set:hex-digit
+ char-set:whitespace)
+ str)
+ (leave (G_ "~a: invalid OpenPGP fingerprint~%") str))
+ (let ((fingerprint (openpgp-fingerprint str)))
+ (unless (= 20 (bytevector-length fingerprint))
+ (leave (G_ "~a: wrong length for OpenPGP fingerprint~%") str))
+ fingerprint))
+
(define (make-reporter start-commit end-commit commits)
(format (current-error-port)
(G_ "Authenticating commits ~a to ~a (~h new \
@@ -165,7 +176,7 @@ commits)...~%")
(repository-cache-key repository))))
(define stats
(authenticate-repository repository (string->oid commit)
- (openpgp-fingerprint signer)
+ (openpgp-fingerprint* signer)
#:end end
#:keyring-reference keyring
#:historical-authorizations history
diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm
index 9aa0e61e9d..e7eb3b2a1f 100644
--- a/guix/scripts/perform-download.scm
+++ b/guix/scripts/perform-download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016-2018, 2020, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2018, 2020, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -115,6 +115,8 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
(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))))
diff --git a/guix/self.scm b/guix/self.scm
index f378548959..19c6d08e01 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -65,6 +65,7 @@
("guile-gnutls" . ,(ref 'tls 'guile-gnutls))
("guix-daemon" . ,(ref 'package-management 'guix-daemon))
("disarchive" . ,(ref 'backup 'disarchive))
+ ("guile-bzip2" . ,(ref 'guile 'guile-bzip2))
("guile-lzma" . ,(ref 'guile 'guile-lzma))
("gzip" . ,(ref 'compression 'gzip))
("bzip2" . ,(ref 'compression 'bzip2))
@@ -827,6 +828,9 @@ itself."
(define disarchive
(specification->package "disarchive"))
+ (define guile-bzip2
+ (specification->package "guile-bzip2"))
+
(define guile-lzma
(specification->package "guile-lzma"))
@@ -1058,6 +1062,7 @@ itself."
#:source source
#:dependencies
(cons* disarchive
+ guile-bzip2
guile-lzma
dependencies)
#:guile guile-for-build
diff --git a/guix/swh.scm b/guix/swh.scm
index c7c1c873a2..04cecd854c 100644
--- a/guix/swh.scm
+++ b/guix/swh.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>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
@@ -78,6 +78,14 @@
lookup-revision
lookup-origin-revision
+ external-id?
+ external-id-value
+ external-id-type
+ external-id-version
+ external-id-target
+ lookup-external-id
+ lookup-directory-by-nar-hash
+
content?
content-checksums
content-data-url
@@ -115,6 +123,7 @@
commit-id?
swh-download-directory
+ swh-download-directory-by-nar-hash
swh-download))
;;; Commentary:
@@ -382,6 +391,15 @@ FALSE-IF-404? is true, return #f upon 404 responses."
(permissions directory-entry-permissions "perms")
(target-url directory-entry-target-url "target_url"))
+;; <https://archive.softwareheritage.org/api/1/extid/doc/>
+(define-json-mapping <external-id> make-external-id external-id?
+ json->external-id
+ (value external-id-value "extid")
+ (type external-id-type "extid_type")
+ (version external-id-version "extid_version")
+ (target external-id-target)
+ (target-url external-id-target-url "target_url"))
+
;; <https://archive.softwareheritage.org/api/1/origin/save/>
(define-json-mapping <save-reply> make-save-reply save-reply?
json->save-reply
@@ -428,7 +446,7 @@ FALSE-IF-404? is true, return #f upon 404 responses."
json->revision)
(define-query (lookup-directory id)
- "Return the directory with the given ID."
+ "Return the list of entries of the directory with the given ID."
(path "/api/1/directory" id)
json->directory-entries)
@@ -436,6 +454,24 @@ FALSE-IF-404? is true, return #f upon 404 responses."
(map json->directory-entry
(vector->list (json->scm port))))
+(define (lookup-external-id type id)
+ "Return the external ID record for ID, a bytevector, of the given TYPE
+(currently one of: \"bzr-nodeid\", \"hg-nodeid\", \"nar-sha256\",
+\"checksum-sha512\")."
+ (call (swh-url "/api/1/extid" type
+ (string-append "hex:" (bytevector->base16-string id)))
+ json->external-id))
+
+(define* (lookup-directory-by-nar-hash hash #:optional (algorithm 'sha256))
+ "Return the SWHID of a directory---i.e., prefixed by \"swh:1:dir\"---for the
+directory that with the given HASH (a bytevector), assuming nar serialization
+and use of ALGORITHM."
+ ;; example:
+ ;; https://archive.softwareheritage.org/api/1/extid/nar-sha256/base64url:0jD6Z4TLMm5g1CviuNNuVNP31KWyoT_oevfr8TQwc3Y/
+ (and=> (lookup-external-id (string-append "nar-" (symbol->string algorithm))
+ hash)
+ external-id-target))
+
(define (origin-visits origin)
"Return the list of visits of ORIGIN, a record as returned by
'lookup-origin'."
@@ -583,6 +619,41 @@ directory identifier is deprecated."
json->vault-reply
http-post*))
+(define* (http-get/follow url
+ #:key
+ (verify-certificate? (%verify-swh-certificate?)))
+ "Like 'http-get' but follow redirects (HTTP 30x). On success, return two
+values: an input port to read the response body and its 'Content-Length'. On
+failure return #f and #f."
+ (define uri
+ (if (string? url) (string->uri url) url))
+
+ (let loop ((uri uri))
+ (define (resolve-uri-reference target)
+ (if (and (uri-scheme target) (uri-host target))
+ target
+ (build-uri (uri-scheme uri) #:host (uri-host uri)
+ #:port (uri-port uri)
+ #:path (uri-path target))))
+
+ (let*-values (((response port)
+ (http-get* uri #:streaming? #t
+ #:verify-certificate? verify-certificate?))
+ ((code)
+ (response-code response)))
+ (case code
+ ((200)
+ (values port (response-content-length response)))
+ ((301 ; moved permanently
+ 302 ; found (redirection)
+ 303 ; see other
+ 307 ; temporary redirection
+ 308) ; permanent redirection
+ (close-port port)
+ (loop (resolve-uri-reference (response-location response))))
+ (else
+ (values #f #f))))))
+
(define* (vault-fetch id
#:optional kind
#:key
@@ -604,16 +675,11 @@ for a tarball containing a bare Git repository corresponding to a revision."
(match (vault-reply-status reply)
('done
;; Fetch the bundle.
- (let-values (((response port)
- (http-get* (swh-url (vault-reply-fetch-url reply))
- #:streaming? #t
- #:verify-certificate?
- (%verify-swh-certificate?))))
- (if (= (response-code response) 200)
- port
- (begin ;shouldn't happen
- (close-port port)
- #f))))
+ (let-values (((port length)
+ (http-get/follow (swh-url (vault-reply-fetch-url reply))
+ #:verify-certificate?
+ (%verify-swh-certificate?))))
+ port))
('failed
;; Upon failure, we're supposed to try again.
(format log-port "SWH vault: failure: ~a~%"
@@ -740,3 +806,26 @@ wait until it becomes available, which could take several minutes."
"SWH: revision ~s originating from ~a could not be found~%"
reference url)
#f)))
+
+(define* (swh-download-directory-by-nar-hash hash algorithm output
+ #:key
+ (log-port (current-error-port)))
+ "Download from Software Heritage the directory with the given nar HASH for
+ALGORITHM (a symbol such as 'sha256), and unpack it in OUTPUT. Return #t on
+success and #f on failure.
+
+This procedure uses the \"vault\", which contains \"cooked\" directories in
+the form of tarballs. If the requested directory is not cooked yet, it will
+wait until it becomes available, which could take several minutes."
+ (match (lookup-directory-by-nar-hash hash algorithm)
+ (#f
+ (format log-port
+ "SWH: directory with nar-~a hash ~a not found~%"
+ algorithm (bytevector->base16-string hash))
+ #f)
+ (swhid
+ (format log-port "SWH: found directory with nar-~a hash ~a at '~a'~%"
+ algorithm (bytevector->base16-string hash) swhid)
+ (swh-download-archive swhid output
+ #:archive-type 'flat ;SWHID denotes a directory
+ #:log-port log-port))))
diff --git a/tests/lint.scm b/tests/lint.scm
index a52a82237b..87213fcc78 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Alex Kost <alezost@gmail.com>
@@ -1358,7 +1358,8 @@
;; https://archive.softwareheritage.org/api/1/content/
(content "{ \"checksums\": {}, \"data_url\": \"xyz\",
\"length\": 42 }"))
- (with-http-server `((200 ,content))
+ (with-http-server `((404 "") ;extid
+ (200 ,content))
(parameterize ((%swh-base-url (%local-url)))
(check-archival (dummy-package "x" (source origin)))))))
@@ -1378,7 +1379,8 @@
\"type\": \"file\",
\"name\": \"README\"
\"length\": 42 } ]"))
- (with-http-server `((404 "") ;lookup-content
+ (with-http-server `((404 "") ;lookup-directory-by-nar-hash
+ (404 "") ;lookup-content
(200 ,disarchive) ;Disarchive database lookup
(200 ,directory)) ;lookup-directory
(mock ((guix download) %disarchive-mirrors (list (%local-url)))
@@ -1397,7 +1399,8 @@
\"save_request_date\": \"2014-11-17T22:09:38+01:00\",
\"save_request_status\": \"accepted\",
\"save_task_status\": \"scheduled\" }")
- (warnings (with-http-server `((404 "No revision.") ;lookup-revision
+ (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)))
@@ -1415,7 +1418,27 @@
;; https://archive.softwareheritage.org/api/1/revision/
(revision "{ \"author\": {}, \"parents\": [],
\"date\": \"2014-11-17T22:09:38+01:00\" }"))
- (with-http-server `((200 ,revision))
+ (with-http-server `((404 "No directory.") ;lookup-directory-by-nar-hash
+ (200 ,revision))
+ (parameterize ((%swh-base-url (%local-url)))
+ (check-archival (dummy-package "x" (source origin)))))))
+
+(test-equal "archival: nar-sha256 extid available"
+ '()
+ (let* ((origin (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://example.org/foo.git")
+ (commit "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")))
+ (sha256 (make-bytevector 32))))
+ ;; https://archive.softwareheritage.org/api/1/extid/doc/
+ (extid "{ \"extid_type\": \"nar-sha256\",
+ \"extid\": \"1234\",
+ \"extid_version\": 0,
+ \"target\": \"swh:1:dir:cabba93\",
+ \"target_url\": \"boo\"
+ }"))
+ (with-http-server `((200 ,extid))
(parameterize ((%swh-base-url (%local-url)))
(check-archival (dummy-package "x" (source origin)))))))
diff --git a/tests/swh.scm b/tests/swh.scm
index a36f951241..e7ced6b50c 100644
--- a/tests/swh.scm
+++ b/tests/swh.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019-2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,6 +18,7 @@
(define-module (test-swh)
#:use-module (guix swh)
+ #:use-module (guix base32)
#:use-module (guix tests http)
#:use-module (web response)
#:use-module (srfi srfi-19)
@@ -56,6 +57,16 @@
\"length\": 456,
\"dir_id\": 2 } ]")
+(define %external-id
+ "{ \"extid_type\": \"nar-sha256\",
+ \"extid\":
+\"0b56ba94c2b83b8f74e3772887c1109135802eb3e8962b628377987fe97e1e63\",
+ \"version\": 0,
+ \"target\": \"swh:1:dir:84a8b34591712c0a90bab0af604188bcd1fe3153\",
+ \"target_url\":
+\"https://archive.softwareheritage.org/swh:1:dir:84a8b34591712c0a90bab0af604188bcd1fe3153\"
+ }")
+
(define-syntax-rule (with-json-result str exp ...)
(with-http-server `((200 ,str))
(parameterize ((%swh-base-url (%local-url)))
@@ -98,6 +109,14 @@
(directory-entry-length entry)))
(lookup-directory "123"))))
+(test-equal "lookup-directory-by-nar-hash"
+ "swh:1:dir:84a8b34591712c0a90bab0af604188bcd1fe3153"
+ (with-json-result %external-id
+ (lookup-directory-by-nar-hash
+ (nix-base32-string->bytevector
+ "0qqygvlpz63phdi2p5p8ncp80dci230qfa3pwds8yfxqqaablmhb")
+ 'sha256)))
+
(test-equal "rate limit reached"
3000000000
(let ((too-many (build-response