aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am3
-rw-r--r--doc/contributing.texi7
-rw-r--r--doc/guix.texi77
-rw-r--r--etc/snippets/yas/log-edit-mode/guix-vc-commit-message-add-package9
-rw-r--r--etc/snippets/yas/log-edit-mode/guix-vc-commit-message-remove-package9
-rw-r--r--etc/snippets/yas/log-edit-mode/guix-vc-commit-message-rename-package14
-rw-r--r--etc/snippets/yas/log-edit-mode/guix-vc-commit-message-update-package12
-rw-r--r--etc/snippets/yas/log-edit-mode/guix-vc-commit-message-use-https-home-page9
-rw-r--r--etc/teams.scm.in3
-rw-r--r--gnu/bootloader.scm105
-rw-r--r--gnu/bootloader/grub.scm220
-rw-r--r--gnu/build/hurd-boot.scm50
-rw-r--r--gnu/home/services/mcron.scm58
-rw-r--r--gnu/home/services/shells.scm50
-rw-r--r--gnu/home/services/xdg.scm54
-rw-r--r--gnu/local.mk7
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/apparmor.scm202
-rw-r--r--gnu/packages/assembly.scm6
-rw-r--r--gnu/packages/astronomy.scm54
-rw-r--r--gnu/packages/audio.scm2
-rw-r--r--gnu/packages/backup.scm4
-rw-r--r--gnu/packages/bioconductor.scm89
-rw-r--r--gnu/packages/bioinformatics.scm242
-rw-r--r--gnu/packages/bootloaders.scm817
-rw-r--r--gnu/packages/build-tools.scm89
-rw-r--r--gnu/packages/cdrom.scm2
-rw-r--r--gnu/packages/chromium.scm42
-rw-r--r--gnu/packages/code.scm4
-rw-r--r--gnu/packages/compression.scm8
-rw-r--r--gnu/packages/cook.scm4
-rw-r--r--gnu/packages/cran.scm672
-rw-r--r--gnu/packages/crates-graphics.scm54
-rw-r--r--gnu/packages/crates-gtk.scm25
-rw-r--r--gnu/packages/crates-io.scm3235
-rw-r--r--gnu/packages/cups.scm10
-rw-r--r--gnu/packages/curl.scm5
-rw-r--r--gnu/packages/debug.scm29
-rw-r--r--gnu/packages/digest.scm12
-rw-r--r--gnu/packages/disk.scm7
-rw-r--r--gnu/packages/dns.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm12
-rw-r--r--gnu/packages/embedded.scm35
-rw-r--r--gnu/packages/engineering.scm45
-rw-r--r--gnu/packages/finance.scm4
-rw-r--r--gnu/packages/freedesktop.scm4
-rw-r--r--gnu/packages/ftp.scm2
-rw-r--r--gnu/packages/game-development.scm28
-rw-r--r--gnu/packages/games.scm24
-rw-r--r--gnu/packages/geo.scm2
-rw-r--r--gnu/packages/gnome.scm2
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/gnuzilla.scm149
-rw-r--r--gnu/packages/golang.scm15
-rw-r--r--gnu/packages/gstreamer.scm2
-rw-r--r--gnu/packages/gtk.scm14
-rw-r--r--gnu/packages/hardware.scm23
-rw-r--r--gnu/packages/jami.scm2
-rw-r--r--gnu/packages/libreoffice.scm22
-rw-r--r--gnu/packages/linux.scm171
-rw-r--r--gnu/packages/lisp-xyz.scm75
-rw-r--r--gnu/packages/lisp.scm7
-rw-r--r--gnu/packages/loko.scm75
-rw-r--r--gnu/packages/mail.scm17
-rw-r--r--gnu/packages/music.scm62
-rw-r--r--gnu/packages/networking.scm34
-rw-r--r--gnu/packages/patches/jami-sip-contacts.patch38
-rw-r--r--gnu/packages/patches/jami-sipaccount-segfault.patch30
-rw-r--r--gnu/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch565
-rw-r--r--gnu/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch27
-rw-r--r--gnu/packages/patches/sssd-optional-systemd.patch45
-rw-r--r--gnu/packages/protobuf.scm13
-rw-r--r--gnu/packages/python-check.scm29
-rw-r--r--gnu/packages/python-science.scm4
-rw-r--r--gnu/packages/python-xyz.scm115
-rw-r--r--gnu/packages/qt.scm285
-rw-r--r--gnu/packages/raspberry-pi.scm136
-rw-r--r--gnu/packages/rust-apps.scm303
-rw-r--r--gnu/packages/rust.scm17
-rw-r--r--gnu/packages/sssd.scm9
-rw-r--r--gnu/packages/statistics.scm844
-rw-r--r--gnu/packages/telephony.scm104
-rw-r--r--gnu/packages/texinfo.scm6
-rw-r--r--gnu/packages/text-editors.scm6
-rw-r--r--gnu/packages/video.scm33
-rw-r--r--gnu/packages/web.scm63
-rw-r--r--gnu/packages/wm.scm82
-rw-r--r--gnu/packages/wxwidgets.scm232
-rw-r--r--gnu/services/base.scm922
-rw-r--r--gnu/services/cuirass.scm4
-rw-r--r--gnu/services/getmail.scm22
-rw-r--r--gnu/services/networking.scm684
-rw-r--r--gnu/system/examples/raspberry-pi-64-nfs-root.tmpl70
-rw-r--r--gnu/system/examples/raspberry-pi-64.tmpl74
-rw-r--r--gnu/system/hurd.scm44
-rw-r--r--gnu/system/linux-container.scm28
-rw-r--r--gnu/tests/gdm.scm127
-rw-r--r--guix/build-system/linux-module.scm4
-rw-r--r--guix/build/kconfig.scm183
-rw-r--r--guix/import/cran.scm1
-rw-r--r--guix/records.scm87
-rwxr-xr-xguix/scripts/substitute.scm2
-rw-r--r--tests/guix-system.sh4
-rw-r--r--tests/records.scm33
104 files changed, 8170 insertions, 4244 deletions
diff --git a/Makefile.am b/Makefile.am
index 28546be18c..b54288c0fc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -237,6 +237,7 @@ MODULES = \
guix/build/waf-build-system.scm \
guix/build/haskell-build-system.scm \
guix/build/julia-build-system.scm \
+ guix/build/kconfig.scm \
guix/build/linux-module-build-system.scm \
guix/build/store-copy.scm \
guix/build/json.scm \
@@ -440,6 +441,8 @@ EXAMPLES = \
gnu/system/examples/desktop.tmpl \
gnu/system/examples/lightweight-desktop.tmpl \
gnu/system/examples/docker-image.tmpl \
+ gnu/system/examples/raspberry-pi-64.tmpl \
+ gnu/system/examples/raspberry-pi-64-nfs-root.tmpl \
gnu/system/examples/vm-image.tmpl
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go)
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 40ae33ecac..6a8ffd6524 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -1089,11 +1089,16 @@ and then to browse them ``by hand'' using @code{car}, @code{cdr},
notably the fact that it is hard to read, error-prone, and a hindrance
to proper type error reports.
+@findex define-record-type*
+@findex match-record
+@cindex pattern matching
Guix code should define appropriate data types (for instance, using
@code{define-record-type*}) rather than abuse lists. In addition, it
should use pattern matching, via Guile’s @code{(ice-9 match)} module,
especially when matching lists (@pxref{Pattern Matching,,, guile, GNU
-Guile Reference Manual}).
+Guile Reference Manual}); pattern matching for records is better done
+using @code{match-record} from @code{(guix records)}, which, unlike
+@code{match}, verifies field names at macro-expansion time.
@node Formatting Code
@subsection Formatting Code
diff --git a/doc/guix.texi b/doc/guix.texi
index e547d469f4..a79b777826 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -18409,9 +18409,6 @@ udev rules can be provided as a list of files through the @var{rules}
variable. The procedures @code{udev-rule}, @code{udev-rules-service}
and @code{file->udev-rule} from @code{(gnu services base)} simplify the
creation of such rule files.
-
-The @command{herd rules udev} command, as root, returns the name of the
-directory containing all the active udev rules.
@end deffn
@deffn {Scheme Procedure} udev-rule [@var{file-name} @var{contents}]
@@ -18940,9 +18937,8 @@ gexps to introduce job definitions that are passed to mcron
;; job's action as a Scheme procedure.
#~(job '(next-hour '(3))
(lambda ()
- (execl (string-append #$findutils "/bin/updatedb")
- "updatedb"
- "--prunepaths=/tmp /var/tmp /gnu/store"))
+ (system* (string-append #$findutils "/bin/updatedb")
+ "--prunepaths=/tmp /var/tmp /gnu/store"))
"updatedb"))
(define garbage-collector-job
@@ -18980,6 +18976,12 @@ the job would appear as ``Lambda function'' in the output of
@command{herd schedule mcron}, which is not nearly descriptive enough!
@end quotation
+@quotation Tip
+Avoid calling the Guile procedures @code{execl}, @code{execle} or
+@code{execlp} inside a job specification, else mcron won't be able to
+output the completion status of the job.
+@end quotation
+
For more complex jobs defined in Scheme where you need control over the top
level, for instance to introduce a @code{use-modules} form, you can move your
code to a separate program using the @code{program-file} procedure of the
@@ -19581,6 +19583,10 @@ This is the list of available plugins for virtual private networks
(VPNs). An example of this is the @code{network-manager-openvpn}
package, which allows NetworkManager to manage VPNs @i{via} OpenVPN.
+@item @code{iwd?} (default: @code{#f})
+NetworkManager will use iwd as a backend for wireless networking if this
+option is set to @code{#t}, otherwise it will use wpa-supplicant.
+
@end table
@end deftp
@@ -37991,8 +37997,9 @@ The type of a bootloader configuration declaration.
@cindex BIOS, bootloader
The bootloader to use, as a @code{bootloader} object. For now
@code{grub-bootloader}, @code{grub-efi-bootloader},
-@code{grub-efi-netboot-bootloader}, @code{grub-efi-removable-bootloader},
-@code{extlinux-bootloader} and @code{u-boot-bootloader} are supported.
+@code{grub-efi-removable-bootloader}, @code{grub-efi-netboot-bootloader},
+@code{grub-efi-netboot-removable-bootloader}, @code{extlinux-bootloader}
+and @code{u-boot-bootloader} are supported.
@cindex ARM, bootloaders
@cindex AArch64, bootloaders
@@ -38001,15 +38008,29 @@ modules. In particular, @code{(gnu bootloader u-boot)} contains definitions
of bootloaders for a wide range of ARM and AArch64 systems, using the
@uref{https://www.denx.de/wiki/U-Boot/, U-Boot bootloader}.
+@vindex grub-bootloader
+@code{grub-bootloader} allows you to boot in particular Intel-based machines
+in ``legacy'' BIOS mode.
+
@vindex grub-efi-bootloader
@code{grub-efi-bootloader} allows to boot on modern systems using the
@dfn{Unified Extensible Firmware Interface} (UEFI). This is what you should
use if the installation image contains a @file{/sys/firmware/efi} directory
when you boot it on your system.
-@vindex grub-bootloader
-@code{grub-bootloader} allows you to boot in particular Intel-based machines
-in ``legacy'' BIOS mode.
+@vindex grub-efi-removable-bootloader
+@code{grub-efi-removable-bootloader} allows you to boot your system from
+removable media by writing the GRUB file to the UEFI-specification location of
+@file{/EFI/BOOT/BOOTX64.efi} of the boot directory, usually @file{/boot/efi}.
+This is also useful for some UEFI firmwares that ``forget'' their configuration
+from their non-volatile storage. Like @code{grub-efi-bootloader}, this can only
+be used if the @file{/sys/firmware/efi} directory is available.
+
+@quotation Note
+This @emph{will} overwrite the GRUB file from any other operating systems that
+also place their GRUB file in the UEFI-specification location; making them
+unbootable.
+@end quotation
@vindex grub-efi-netboot-bootloader
@code{grub-efi-netboot-bootloader} allows you to boot your system over network
@@ -38018,9 +38039,10 @@ build a diskless Guix system.
The installation of the @code{grub-efi-netboot-bootloader} generates the
content of the TFTP root directory at @code{targets} (@pxref{Bootloader
-Configuration, @code{targets}}), to be served by a TFTP server. You may
-want to mount your TFTP server directories onto the @code{targets} to
-move the required files to the TFTP server automatically.
+Configuration, @code{targets}}) below the sub-directory @file{efi/Guix}, to be
+served by a TFTP server. You may want to mount your TFTP server directories
+onto the @code{targets} to move the required files to the TFTP server
+automatically during installation.
If you plan to use an NFS root file system as well (actually if you mount the
store from an NFS share), then the TFTP server needs to serve the file
@@ -38049,25 +38071,34 @@ this constellation the symlinks will work.
For other constellations you will have to program your own bootloader
installer, which then takes care to make necessary files from the store
accessible through TFTP, for example by copying them into the TFTP root
-directory to your @code{targets}.
+directory for your @code{targets}.
It is important to note that symlinks pointing outside the TFTP root directory
may need to be allowed in the configuration of your TFTP server. Further the
store link exposes the whole store through TFTP@. Both points need to be
-considered carefully for security aspects.
+considered carefully for security aspects. It is advised to disable any TFTP
+write access!
+
+Please note, that this bootloader will not modify the ‘UEFI Boot Manager’ of
+the system.
Beside the @code{grub-efi-netboot-bootloader}, the already mentioned TFTP and
NFS servers, you also need a properly configured DHCP server to make the booting
over netboot possible. For all this we can currently only recommend you to look
for instructions about @acronym{PXE, Preboot eXecution Environment}.
-@vindex grub-efi-removable-bootloader
-@code{grub-efi-removable-bootloader} allows you to boot your system from
-removable media by writing the GRUB file to the UEFI-specification location of
-@file{/EFI/BOOT/BOOTX64.efi} of the boot directory, usually @file{/boot/efi}.
-This is also useful for some UEFI firmwares that ``forget'' their configuration
-from their non-volatile storage. Like @code{grub-efi-bootloader}, this can only
-be used if the @file{/sys/firmware/efi} directory is available.
+If a local EFI System Partition (ESP) or a similar partition with a FAT
+file system is mounted in @code{targets}, then symlinks cannot be
+created. In this case everything will be prepared for booting from
+local storage, matching the behavior of @code{grub-efi-bootloader}, with
+the difference that all GRUB binaries are copied to @code{targets},
+necessary for booting over the network.
+
+@vindex grub-efi-netboot-removable-bootloader
+@code{grub-efi-netboot-removable-bootloader} is identical to
+@code{grub-efi-netboot-bootloader} with the exception that the
+sub-directory @file{efi/boot} will be used instead of @file{efi/Guix} to
+comply with the UEFI specification for removable media.
@quotation Note
This @emph{will} overwrite the GRUB file from any other operating systems that
diff --git a/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-add-package b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-add-package
new file mode 100644
index 0000000000..cc2dddb1e0
--- /dev/null
+++ b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-add-package
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# name: guix-vc-commit-message-add-package
+# key: add
+# --
+gnu: Add ${1:`(when (string-match "\\+(define-public \\(\\S-+\\)" vc-patch-string)
+ (match-string-no-properties 1 vc-patch-string))`}.
+
+* `(car (log-edit-files))` ($1): New variable.
+`(mapconcat (lambda (file) (concat "* " file)) (cdr (log-edit-files)) "\n")`
diff --git a/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-remove-package b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-remove-package
new file mode 100644
index 0000000000..9ab4ce6156
--- /dev/null
+++ b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-remove-package
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# name: guix-vc-commit-message-remove-package
+# key: remove
+# --
+gnu: Remove ${1:`(when (string-match "\\-(define-public \\(\\S-+\\)" vc-patch-string)
+ (match-string-no-properties 1 vc-patch-string))`}.
+
+* `(car (log-edit-files))` ($1): Delete variable.
+`(mapconcat (lambda (file) (concat "* " file)) (cdr (log-edit-files)) "\n")`
diff --git a/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-rename-package b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-rename-package
new file mode 100644
index 0000000000..89c85f8016
--- /dev/null
+++ b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-rename-package
@@ -0,0 +1,14 @@
+# -*- mode: snippet -*-
+# name: guix-vc-commit-message-rename-package
+# key: rename
+# --
+gnu: ${1:`(when (string-match "\\-(define-public \\(\\S-+\\)" vc-patch-string)
+ (match-string-no-properties 1 vc-patch-string))
+ `}: Rename package to ${2:`
+ (when (string-match "\\+(define-public \\(\\S-+\\)" vc-patch-string)
+ (match-string-no-properties 1 vc-patch-string))`}.
+
+* `(car (log-edit-files))` ($1): Define in terms of
+'deprecated-package'.
+($2): New variable, formerly known as "$1".
+`(mapconcat (lambda (file) (concat "* " file)) (cdr (log-edit-files)) "\n")`
diff --git a/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-update-package b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-update-package
new file mode 100644
index 0000000000..b5e41709f5
--- /dev/null
+++ b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-update-package
@@ -0,0 +1,12 @@
+# -*- mode: snippet -*-
+# name: guix-vc-commit-message-update-package
+# key: update
+# --
+
+gnu: ${1:`(when (string-match "^[ ]*(define-public \\(\\S-+\\)" vc-patch-string)
+ (match-string-no-properties 1 vc-patch-string))`}: Update to ${2:`
+ (when (string-match "^\\+[ ]*(version \"\\(.*\\)\"" vc-patch-string)
+ (match-string-no-properties 1 vc-patch-string))`}.
+
+* `(car (log-edit-files))` ($1): Update to $2.$0
+`(mapconcat (lambda (file) (concat "* " file)) (cdr (log-edit-files)) "\n")`
diff --git a/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-use-https-home-page b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-use-https-home-page
new file mode 100644
index 0000000000..e0f170b015
--- /dev/null
+++ b/etc/snippets/yas/log-edit-mode/guix-vc-commit-message-use-https-home-page
@@ -0,0 +1,9 @@
+# -*- mode: snippet -*-
+# name: guix-vc-commit-message-use-https-home-page
+# key: https
+# --
+gnu: ${1:`(when (string-match "^[ ]*(define-public \\(\\S-+\\)" vc-patch-string)
+ (match-string-no-properties 1 vc-patch-string))`}: Use HTTPS home page URI.
+
+* `(car (log-edit-files))` ($1)[home-page]: Use HTTPS URI.
+`(mapconcat (lambda (file) (concat "* " file)) (cdr (log-edit-files)) "\n")`
diff --git a/etc/teams.scm.in b/etc/teams.scm.in
index c458b14e3b..f744204017 100644
--- a/etc/teams.scm.in
+++ b/etc/teams.scm.in
@@ -393,7 +393,8 @@ and Thunderbird."
"The Racket language and Racket-based languages, Racket packages,
Racket's variant of Chez Scheme, and development of a Racket build system and
importer."
- #:scope (list "gnu/packages/racket.scm")))
+ #:scope (list "gnu/packages/chez.scm"
+ "gnu/packages/racket.scm")))
(define-member (person "Thiago Jung Bauermann"
diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm
index da65b9d5d5..2c36d8c6cf 100644
--- a/gnu/bootloader.scm
+++ b/gnu/bootloader.scm
@@ -322,26 +322,22 @@ instead~%")))
(force %bootloaders))
(leave (G_ "~a: no such bootloader~%") name)))
-(define (efi-bootloader-profile files bootloader-package hooks)
- "Creates a profile with BOOTLOADER-PACKAGE and a directory collection/ with
-links to additional FILES from the store. This collection is meant to be used
-by the bootloader installer.
+(define (efi-bootloader-profile packages files hooks)
+ "Creates a profile from the lists of PACKAGES and FILES from the store.
+This profile is meant to be used by the bootloader-installer.
FILES is a list of file or directory names from the store, which will be
-symlinked into the collection/ directory. If a directory name ends with '/',
-then the directory content instead of the directory itself will be symlinked
-into the collection/ directory.
+symlinked into the profile. If a directory name ends with '/', then the
+directory content instead of the directory itself will be symlinked into the
+profile.
-FILES may contain file like objects produced by functions like plain-file,
+FILES may contain file like objects produced by procedures like plain-file,
local-file, etc., or package contents produced with file-append.
HOOKS lists additional hook functions to modify the profile."
- (define (bootloader-collection manifest)
+ (define (efi-bootloader-profile-hook manifest)
(define build
- (with-imported-modules '((guix build utils)
- (ice-9 ftw)
- (srfi srfi-1)
- (srfi srfi-26))
+ (with-imported-modules '((guix build utils))
#~(begin
(use-modules ((guix build utils)
#:select (mkdir-p strip-store-file-name))
@@ -365,8 +361,7 @@ HOOKS lists additional hook functions to modify the profile."
(define (name-is-store-entry? name)
"Return #t if NAME is a direct store entry and nothing inside."
(not (string-index (strip-store-file-name name) #\/)))
- (let* ((collection (string-append #$output "/collection"))
- (files '#$files)
+ (let* ((files '#$files)
(directories (filter name-ends-with-/? files))
(names-from-directories
(append-map (lambda (directory)
@@ -374,11 +369,11 @@ HOOKS lists additional hook functions to modify the profile."
directories))
(names (append names-from-directories
(remove name-ends-with-/? files))))
- (mkdir-p collection)
+ (mkdir-p #$output)
(if (every file-exists? names)
(begin
(for-each (lambda (name)
- (symlink-to name collection
+ (symlink-to name #$output
(if (name-is-store-entry? name)
strip-store-file-name
basename)))
@@ -386,57 +381,63 @@ HOOKS lists additional hook functions to modify the profile."
#t)
#f)))))
- (gexp->derivation "bootloader-collection"
+ (gexp->derivation "efi-bootloader-profile"
build
#:local-build? #t
#:substitutable? #f
#:properties
`((type . profile-hook)
- (hook . bootloader-collection))))
+ (hook . efi-bootloader-profile-hook))))
- (profile (content (packages->manifest (list bootloader-package)))
- (name "bootloader-profile")
- (hooks (append (list bootloader-collection) hooks))
+ (profile (content (packages->manifest packages))
+ (name "efi-bootloader-profile")
+ (hooks (cons efi-bootloader-profile-hook hooks))
(locales? #f)
(allow-collisions? #f)
(relative-symlinks? #f)))
-(define* (efi-bootloader-chain files
- final-bootloader
+(define* (efi-bootloader-chain final-bootloader
#:key
+ (packages '())
+ (files '())
(hooks '())
- installer)
- "Define a bootloader chain with FINAL-BOOTLOADER as the final bootloader and
-certain directories and files from the store given in the list of FILES.
+ installer
+ disk-image-installer)
+ "Define a chain of bootloaders with the FINAL-BOOTLOADER, optional PACKAGES,
+and optional directories and files from the store given in the list of FILES.
-FILES may contain file like objects produced by functions like plain-file,
-local-file, etc., or package contents produced with file-append. They will be
-collected inside a directory collection/ inside a generated bootloader profile,
-which will be passed to the INSTALLER.
+The package of the FINAL-BOOTLOADER and all PACKAGES and FILES will be placed
+in an efi-bootloader-profile, which will be passed to the INSTALLER.
+
+FILES may contain file-like objects produced by procedures like plain-file,
+local-file, etc., or package contents produced with file-append.
If a directory name in FILES ends with '/', then the directory content instead
-of the directory itself will be symlinked into the collection/ directory.
+of the directory itself will be symlinked into the efi-bootloader-profile.
The procedures in the HOOKS list can be used to further modify the bootloader
profile. It is possible to pass a single function instead of a list.
-If the INSTALLER argument is used, then this function will be called to install
-the bootloader. Otherwise the installer of the FINAL-BOOTLOADER will be called."
- (let* ((final-installer (or installer
- (bootloader-installer final-bootloader)))
- (profile (efi-bootloader-profile files
- (bootloader-package final-bootloader)
- (if (list? hooks)
- hooks
- (list hooks)))))
- (bootloader
- (inherit final-bootloader)
- (package profile)
- (installer
- #~(lambda (bootloader target mount-point)
- (#$final-installer bootloader target mount-point)
- (copy-recursively
- (string-append bootloader "/collection")
- (string-append mount-point target)
- #:follow-symlinks? #t
- #:log (%make-void-port "w")))))))
+If the INSTALLER argument is used, then this gexp procedure will be called to
+install the efi-bootloader-profile. Otherwise the installer of the
+FINAL-BOOTLOADER will be called.
+
+If the DISK-IMAGE-INSTALLER is used, then this gexp procedure will be called
+to install the efi-bootloader-profile into a disk image. Otherwise the
+disk-image-installer of the FINAL-BOOTLOADER will be called."
+ (bootloader
+ (inherit final-bootloader)
+ (name "efi-bootloader-chain")
+ (package
+ (efi-bootloader-profile (cons (bootloader-package final-bootloader)
+ packages)
+ files
+ (if (list? hooks)
+ hooks
+ (list hooks))))
+ (installer
+ (or installer
+ (bootloader-installer final-bootloader)))
+ (disk-image-installer
+ (or disk-image-installer
+ (bootloader-disk-image-installer final-bootloader)))))
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 7283257354..aab766fd6c 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -53,13 +53,14 @@
grub-theme-gfxmode
install-grub-efi-removable
- install-grub-efi-netboot
+ make-grub-efi-netboot-installer
grub-bootloader
grub-efi-bootloader
grub-efi-removable-bootloader
grub-efi32-bootloader
grub-efi-netboot-bootloader
+ grub-efi-netboot-removable-bootloader
grub-mkrescue-bootloader
grub-minimal-bootloader
@@ -353,7 +354,7 @@ code."
((or #f (? string?))
#~(format #f "search --file --set ~a" #$file)))))
-(define* (grub-configuration-file config entries
+(define* (make-grub-configuration grub config entries
#:key
(locale #f)
(system (%current-system))
@@ -453,9 +454,7 @@ menuentry ~s {
(define locale-config
(let* ((entry (first all-entries))
(device (menu-entry-device entry))
- (mount-point (menu-entry-device-mount-point entry))
- (bootloader (bootloader-configuration-bootloader config))
- (grub (bootloader-package bootloader)))
+ (mount-point (menu-entry-device-mount-point entry)))
#~(let ((locale #$(and locale
(locale-definition-source
(locale-name->definition locale))))
@@ -481,8 +480,6 @@ set lang=~a~%"
(define keyboard-layout-config
(let* ((layout (bootloader-configuration-keyboard-layout config))
- (grub (bootloader-package
- (bootloader-configuration-bootloader config)))
(keymap* (and layout
(keyboard-layout-file layout #:grub grub)))
(entry (first all-entries))
@@ -533,6 +530,16 @@ fi~%"))))
#:options '(#:local-build? #t
#:substitutable? #f)))
+(define (grub-configuration-file config . args)
+ (let* ((bootloader (bootloader-configuration-bootloader config))
+ (grub (bootloader-package bootloader)))
+ (apply make-grub-configuration grub config args)))
+
+(define (grub-efi-configuration-file . args)
+ (apply make-grub-configuration grub-efi args))
+
+(define grub-cfg "/boot/grub/grub.cfg")
+
;;;
@@ -674,42 +681,31 @@ fi~%"))))
((target-arm?) "--target=arm-efi"))
"--efi-directory" target-esp)))))
-(define (install-grub-efi-netboot subdir)
- "Define a grub-efi-netboot bootloader installer for installation in SUBDIR,
-which is usually efi/Guix or efi/boot."
- (let* ((system (string-split (nix-system->gnu-triplet
- (or (%current-target-system)
- (%current-system)))
- #\-))
- (arch (first system))
- (boot-efi-link (match system
- ;; These are the supportend systems and the names
- ;; defined by the UEFI standard for removable media.
- (("i686" _ ...) "/bootia32.efi")
- (("x86_64" _ ...) "/bootx64.efi")
- (("arm" _ ...) "/bootarm.efi")
- (("aarch64" _ ...) "/bootaa64.efi")
- (("riscv" _ ...) "/bootriscv32.efi")
- (("riscv64" _ ...) "/bootriscv64.efi")
- ;; Other systems are not supported, although defined.
- ;; (("riscv128" _ ...) "/bootriscv128.efi")
- ;; (("ia64" _ ...) "/bootia64.efi")
- ((_ ...) #f)))
- (core-efi (string-append
- ;; This is the arch dependent file name of GRUB, e.g.
- ;; i368-efi/core.efi or arm64-efi/core.efi.
- (match arch
- ("i686" "i386")
- ("aarch64" "arm64")
- ("riscv" "riscv32")
- (_ arch))
- "-efi/core.efi")))
- (with-imported-modules
- '((guix build union))
- #~(lambda (bootloader target mount-point)
- "Install the BOOTLOADER, which must be the package grub, as e.g.
-bootx64.efi or bootaa64.efi into SUBDIR, which is usually efi/Guix or efi/boot,
-below the directory TARGET for the system whose root is mounted at MOUNT-POINT.
+(define* (make-grub-efi-netboot-installer grub-efi grub-cfg subdir)
+ "Make a bootloader-installer for a grub-efi-netboot bootloader, which expects
+its files in SUBDIR and its configuration file in GRUB-CFG.
+
+As a grub-efi-netboot package is already pre-installed by 'grub-mknetdir', the
+installer basically copies all files from the bootloader-package (or profile)
+into the bootloader-target directory.
+
+Additionally for network booting over TFTP, two relative symlinks to the store
+and to the GRUB-CFG file are necessary. Due to this a TFTP root directory must
+not be located on a FAT file-system.
+
+If the bootloader-target does not support symlinks, then it is assumed to be a
+kind of EFI System Partition (ESP). In this case an intermediate configuration
+file is created with the help of GRUB-EFI to load the GRUB-CFG.
+
+The installer is usable for any efi-bootloader-chain, which prepares the
+bootloader-profile in a way ready for copying.
+
+The installer does not manipulate the system's 'UEFI Boot Manager'.
+
+The returned installer accepts the BOOTLOADER, TARGET and MOUNT-POINT
+arguments. Its job is to copy the BOOTLOADER, which must be a pre-installed
+grub-efi-netboot package with a SUBDIR like efi/boot or efi/Guix, below the
+directory TARGET for the system whose root is mounted at MOUNT-POINT.
MOUNT-POINT is the last argument in 'guix system init /etc/config.scm mnt/point'
or '/' for other 'guix system' commands.
@@ -719,17 +715,19 @@ bootloader-configuration in:
(operating-system
(bootloader (bootloader-configuration
- (targets '(\"/boot\"))
+ (targets '(\"/boot/efi\"))
…))
…)
TARGET is required to be an absolute directory name, usually mounted via NFS,
-and finally needs to be provided by a TFTP server as the TFTP root directory.
+and finally needs to be provided by a TFTP server as
+the TFTP root directory.
+Usually the installer will be used to prepare network booting over TFTP. Then
GRUB will load tftp://server/SUBDIR/grub.cfg and this file will instruct it to
load more files from the store like tftp://server/gnu/store/…-linux…/Image.
-To make this possible two symlinks will be created. The first symlink points
+To make this possible two symlinks are created. The first symlink points
relatively form MOUNT-POINT/TARGET/SUBDIR/grub.cfg to
MOUNT-POINT/boot/grub/grub.cfg, and the second symlink points relatively from
MOUNT-POINT/TARGET/%store-prefix to MOUNT-POINT/%store-prefix.
@@ -739,34 +737,80 @@ paths on the TFTP server side are unknown.
It is also important to note that both symlinks will point outside the TFTP root
directory and that the TARGET/%store-prefix symlink makes the whole store
-accessible via TFTP. Possibly the TFTP server must be configured
-to allow accesses outside its TFTP root directory. This may need to be
-considered for security aspects."
- (use-modules ((guix build union) #:select (symlink-relative)))
- (let* ((net-dir (string-append mount-point target "/"))
- (sub-dir (string-append net-dir #$subdir "/"))
- (store (string-append mount-point (%store-prefix)))
- (store-link (string-append net-dir (%store-prefix)))
- (grub-cfg (string-append mount-point "/boot/grub/grub.cfg"))
- (grub-cfg-link (string-append sub-dir (basename grub-cfg)))
- (boot-efi-link (string-append sub-dir #$boot-efi-link)))
- ;; Prepare the symlink to the store.
- (mkdir-p (dirname store-link))
- (false-if-exception (delete-file store-link))
- (symlink-relative store store-link)
- ;; Prepare the symlink to the grub.cfg, which points into the store.
- (mkdir-p (dirname grub-cfg-link))
- (false-if-exception (delete-file grub-cfg-link))
- (symlink-relative grub-cfg grub-cfg-link)
- ;; Install GRUB, which refers to the grub.cfg, with support for
- ;; encrypted partitions,
- (setenv "GRUB_ENABLE_CRYPTODISK" "y")
- (invoke/quiet (string-append bootloader "/bin/grub-mknetdir")
- (string-append "--net-directory=" net-dir)
- (string-append "--subdir=" #$subdir))
- ;; Prepare the bootloader symlink, which points to core.efi of GRUB.
- (false-if-exception (delete-file boot-efi-link))
- (symlink #$core-efi boot-efi-link))))))
+accessible via TFTP. Possibly the TFTP server must be configured to allow
+accesses outside its TFTP root directory. This all may need to be considered
+for security aspects. It is advised to disable any TFTP write access!
+
+The installer can also be used to prepare booting from local storage, if the
+underlying file-system, like FAT on an EFI System Partition (ESP), does not
+support symlinks. In this case the MOUNT-POINT/TARGET/SUBDIR/grub.cfg will be
+created with the help of GRUB-EFI to load the /boot/grub/grub.cfg file. A
+symlink to the store is not needed in this case."
+ (with-imported-modules '((guix build union))
+ #~(lambda (bootloader target mount-point)
+ ;; In context of a disk image creation TARGET will be #f and an
+ ;; installer is expected to do necessary installations on MOUNT-POINT,
+ ;; which will become the root file system. If TARGET is #f, this
+ ;; installer has nothing to do, as it only cares about the EFI System
+ ;; Partition (ESP).
+ (when target
+ (use-modules ((guix build union) #:select (symlink-relative))
+ (ice-9 popen)
+ (ice-9 rdelim))
+ (let* ((mount-point/target (string-append mount-point target "/"))
+ ;; When installing Guix, it is common to mount TARGET below
+ ;; MOUNT-POINT rather than the root directory.
+ (bootloader-target (if (file-exists? mount-point/target)
+ mount-point/target
+ target))
+ (store (string-append mount-point (%store-prefix)))
+ (store-link (string-append bootloader-target (%store-prefix)))
+ (grub-cfg (string-append mount-point #$grub-cfg))
+ (grub-cfg-link (string-append bootloader-target
+ #$subdir "/"
+ (basename grub-cfg))))
+ ;; Copy the bootloader into the bootloader-target directory.
+ ;; Should we beforehand recursively delete any existing file?
+ (copy-recursively bootloader bootloader-target
+ #:follow-symlinks? #t
+ #:log (%make-void-port "w"))
+ ;; For TFTP we need to install additional relative symlinks.
+ ;; If we install on an EFI System Partition (ESP) or some other FAT
+ ;; file-system, then symlinks cannot be created and are not needed.
+ ;; Therefore we ignore exceptions when trying.
+ ;; Prepare the symlink to the grub.cfg.
+ (mkdir-p (dirname grub-cfg-link))
+ (false-if-exception (delete-file grub-cfg-link))
+ (if (unspecified?
+ (false-if-exception (symlink-relative grub-cfg grub-cfg-link)))
+ ;; Symlinks are supported.
+ (begin
+ ;; Prepare the symlink to the store.
+ (mkdir-p (dirname store-link))
+ (false-if-exception (delete-file store-link))
+ (symlink-relative store store-link))
+ ;; Creating symlinks does not seem to be supported. Probably
+ ;; an ESP is used. Add a script to search and load the actual
+ ;; grub.cfg.
+ (let* ((probe #$(file-append grub-efi "/sbin/grub-probe"))
+ (port (open-pipe* OPEN_READ probe "--target=fs_uuid"
+ grub-cfg))
+ (search-root
+ (match (read-line port)
+ ((? eof-object?)
+ ;; There is no UUID available. As a fallback search
+ ;; everywhere for the grub.cfg.
+ (string-append "search --file --set " #$grub-cfg))
+ (fs-uuid
+ ;; The UUID to load the grub.cfg from is known.
+ (string-append "search --fs-uuid --set " fs-uuid))))
+ (load-grub-cfg (string-append "configfile " #$grub-cfg)))
+ (close-pipe port)
+ (with-output-to-file grub-cfg-link
+ (lambda ()
+ (display (string-join (list search-root
+ load-grub-cfg)
+ "\n")))))))))))
@@ -784,7 +828,7 @@ considered for security aspects."
(package grub)
(installer install-grub)
(disk-image-installer install-grub-disk-image)
- (configuration-file "/boot/grub/grub.cfg")
+ (configuration-file grub-cfg)
(configuration-file-generator grub-configuration-file)))
(define grub-minimal-bootloader
@@ -794,11 +838,12 @@ considered for security aspects."
(define grub-efi-bootloader
(bootloader
- (inherit grub-bootloader)
+ (name 'grub-efi)
+ (package grub-efi)
(installer install-grub-efi)
(disk-image-installer #f)
- (name 'grub-efi)
- (package grub-efi)))
+ (configuration-file grub-cfg)
+ (configuration-file-generator grub-configuration-file)))
(define grub-efi-removable-bootloader
(bootloader
@@ -813,11 +858,22 @@ considered for security aspects."
(name 'grub-efi32)
(package grub-efi32)))
-(define grub-efi-netboot-bootloader
+(define (make-grub-efi-netboot-bootloader name subdir)
(bootloader
- (inherit grub-efi-bootloader)
- (name 'grub-efi-netboot-bootloader)
- (installer (install-grub-efi-netboot "efi/Guix"))))
+ (name name)
+ (package (make-grub-efi-netboot (symbol->string name) subdir))
+ (installer (make-grub-efi-netboot-installer grub-efi grub-cfg subdir))
+ (disk-image-installer #f)
+ (configuration-file grub-cfg)
+ (configuration-file-generator grub-efi-configuration-file)))
+
+(define grub-efi-netboot-bootloader
+ (make-grub-efi-netboot-bootloader 'grub-efi-netboot-bootloader
+ "efi/Guix"))
+
+(define grub-efi-netboot-removable-bootloader
+ (make-grub-efi-netboot-bootloader 'grub-efi-netboot-removable-bootloader
+ "efi/boot"))
(define grub-mkrescue-bootloader
(bootloader
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
index ad3c50d61e..e068ffc202 100644
--- a/gnu/build/hurd-boot.scm
+++ b/gnu/build/hurd-boot.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -127,6 +127,9 @@ set."
(define (translated? file-name)
"Return true if a translator is installed on FILE-NAME."
+ ;; On GNU/Hurd, 'getxattr' in glibc opens the file without O_NOTRANS, and
+ ;; then, for "gnu.translator", it calls 'file_get_translator', resulting in
+ ;; EOPNOTSUPP (conversely, 'showtrans' opens the file with O_NOTRANS).
(if (string-contains %host-type "linux-gnu")
(passive-translator-xattr? file-name)
(passive-translator-installed? file-name)))
@@ -210,31 +213,34 @@ set."
;; 'fd_to_filename' in libc expects it.
("dev/fd" ("/hurd/magic" "--directory" "fd") #o555)
- ("dev/tty1" ("/hurd/term" "/dev/tty1" "hurdio" "/dev/vcs/1/console")
- #o666)
- ("dev/tty2" ("/hurd/term" "/dev/tty2" "hurdio" "/dev/vcs/2/console")
- #o666)
- ("dev/tty3" ("/hurd/term" "/dev/tty3" "hurdio" "/dev/vcs/3/console")
- #o666)
-
- ("dev/ptyp0" ("/hurd/term" "/dev/ptyp0" "pty-master" "/dev/ttyp0")
- #o666)
- ("dev/ptyp1" ("/hurd/term" "/dev/ptyp1" "pty-master" "/dev/ttyp1")
- #o666)
- ("dev/ptyp2" ("/hurd/term" "/dev/ptyp2" "pty-master" "/dev/ttyp2")
- #o666)
-
- ("dev/ttyp0" ("/hurd/term" "/dev/ttyp0" "pty-slave" "/dev/ptyp0")
- #o666)
- ("dev/ttyp1" ("/hurd/term" "/dev/ttyp1" "pty-slave" "/dev/ptyp1")
- #o666)
- ("dev/ttyp2" ("/hurd/term" "/dev/ttyp2" "pty-slave" "/dev/ptyp2")
- #o666)))
+ ;; Create a number of ttys; syslogd writes to tty12 by default.
+ ;; FIXME: Creating /dev/tty12 leads the console client to switch to
+ ;; tty12 when syslogd starts, which is confusing for users. Thus, do
+ ;; not create tty12.
+ ,@(map (lambda (n)
+ (let ((n (number->string n)))
+ `(,(string-append "dev/tty" n)
+ ("/hurd/term" ,(string-append "/dev/tty" n)
+ "hurdio" ,(string-append "/dev/vcs/" n "/console"))
+ #o666)))
+ (iota 11 1))
+
+ ,@(append-map (lambda (n)
+ (let ((n (number->string n)))
+ `((,(string-append "dev/ptyp" n)
+ ("/hurd/term" ,(string-append "/dev/ptyp" n)
+ "pty-master" ,(string-append "/dev/ttyp" n))
+ #o666)
+
+ (,(string-append "dev/ttyp" n)
+ ("/hurd/term" ,(string-append "/dev/ttyp" n)
+ "pty-slave" ,(string-append "/dev/ptyp" n))
+ #o666))))
+ (iota 10 0))))
(for-each scope-set-translator servers)
(mkdir* "dev/vcs/1")
(mkdir* "dev/vcs/2")
- (mkdir* "dev/vcs/2")
(rename-file (scope "dev/console") (scope "dev/console-"))
(for-each scope-set-translator devices)
diff --git a/gnu/home/services/mcron.scm b/gnu/home/services/mcron.scm
index 1d294a997c..5f35bfe054 100644
--- a/gnu/home/services/mcron.scm
+++ b/gnu/home/services/mcron.scm
@@ -77,35 +77,35 @@ Each message is also prefixed by a timestamp by GNU Shepherd."))
(define shepherd-schedule-action
(@@ (gnu services mcron) shepherd-schedule-action))
-(define home-mcron-shepherd-services
- (match-lambda
- (($ <home-mcron-configuration> mcron '()) ; no jobs to run
- '())
- (($ <home-mcron-configuration> mcron jobs log? log-format)
- (let ((files (job-files mcron jobs)))
- (list (shepherd-service
- (documentation "User cron jobs.")
- (provision '(mcron))
- (modules `((srfi srfi-1)
- (srfi srfi-26)
- (ice-9 popen) ; for the 'schedule' action
- (ice-9 rdelim)
- (ice-9 match)
- ,@%default-modules))
- (start #~(make-forkexec-constructor
- (list (string-append #$mcron "/bin/mcron")
- #$@(if log?
- #~("--log" "--log-format" #$log-format)
- #~())
- #$@files)
- #:log-file (string-append
- (or (getenv "XDG_LOG_HOME")
- (format #f "~a/.local/var/log"
- (getenv "HOME")))
- "/mcron.log")))
- (stop #~(make-kill-destructor))
- (actions
- (list (shepherd-schedule-action mcron files)))))))))
+(define (home-mcron-shepherd-services config)
+ (match-record config <home-mcron-configuration>
+ (mcron jobs log? log-format)
+ (if (null? jobs)
+ '() ;no jobs to run
+ (let ((files (job-files mcron jobs)))
+ (list (shepherd-service
+ (documentation "User cron jobs.")
+ (provision '(mcron))
+ (modules `((srfi srfi-1)
+ (srfi srfi-26)
+ (ice-9 popen) ;for the 'schedule' action
+ (ice-9 rdelim)
+ (ice-9 match)
+ ,@%default-modules))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$mcron "/bin/mcron")
+ #$@(if log?
+ #~("--log" "--log-format" #$log-format)
+ #~())
+ #$@files)
+ #:log-file (string-append
+ (or (getenv "XDG_LOG_HOME")
+ (format #f "~a/.local/var/log"
+ (getenv "HOME")))
+ "/mcron.log")))
+ (stop #~(make-kill-destructor))
+ (actions
+ (list (shepherd-schedule-action mcron files)))))))))
(define home-mcron-profile (compose list home-mcron-configuration-mcron))
diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm
index 3e346c3813..b529c8e798 100644
--- a/gnu/home/services/shells.scm
+++ b/gnu/home/services/shells.scm
@@ -25,6 +25,7 @@
#:use-module (gnu packages bash)
#:use-module (guix gexp)
#:use-module (guix packages)
+ #:use-module (guix records)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
@@ -479,31 +480,30 @@ with text blocks from other extensions and the base service.")
with text blocks from other extensions and the base service."))
(define (home-bash-extensions original-config extension-configs)
- (match original-config
- (($ <home-bash-configuration> _ _ environment-variables aliases
- bash-profile bashrc bash-logout)
- (home-bash-configuration
- (inherit original-config)
- (environment-variables
- (append environment-variables
- (append-map
- home-bash-extension-environment-variables extension-configs)))
- (aliases
- (append aliases
- (append-map
- home-bash-extension-aliases extension-configs)))
- (bash-profile
- (append bash-profile
- (append-map
- home-bash-extension-bash-profile extension-configs)))
- (bashrc
- (append bashrc
- (append-map
- home-bash-extension-bashrc extension-configs)))
- (bash-logout
- (append bash-logout
- (append-map
- home-bash-extension-bash-logout extension-configs)))))))
+ (match-record original-config <home-bash-configuration>
+ (environment-variables aliases bash-profile bashrc bash-logout)
+ (home-bash-configuration
+ (inherit original-config)
+ (environment-variables
+ (append environment-variables
+ (append-map
+ home-bash-extension-environment-variables extension-configs)))
+ (aliases
+ (append aliases
+ (append-map
+ home-bash-extension-aliases extension-configs)))
+ (bash-profile
+ (append bash-profile
+ (append-map
+ home-bash-extension-bash-profile extension-configs)))
+ (bashrc
+ (append bashrc
+ (append-map
+ home-bash-extension-bashrc extension-configs)))
+ (bash-logout
+ (append bash-logout
+ (append-map
+ home-bash-extension-bash-logout extension-configs))))))
(define home-bash-service-type
(service-type (name 'home-bash)
diff --git a/gnu/home/services/xdg.scm b/gnu/home/services/xdg.scm
index 63c6041cd4..865f8b81d7 100644
--- a/gnu/home/services/xdg.scm
+++ b/gnu/home/services/xdg.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2021, 2022 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;;
;;; This file is part of GNU Guix.
@@ -35,10 +35,24 @@
#:export (home-xdg-base-directories-service-type
home-xdg-base-directories-configuration
home-xdg-base-directories-configuration?
+ home-xdg-base-directories-configuration-cache-home
+ home-xdg-base-directories-configuration-config-home
+ home-xdg-base-directories-configuration-data-home
+ home-xdg-base-directories-configuration-state-home
+ home-xdg-base-directories-configuration-log-home
+ home-xdg-base-directories-configuration-runtime-dir
home-xdg-user-directories-service-type
home-xdg-user-directories-configuration
home-xdg-user-directories-configuration?
+ home-xdg-user-directories-configuration-desktop
+ home-xdg-user-directories-configuration-documents
+ home-xdg-user-directories-configuration-download
+ home-xdg-user-directories-configuration-music
+ home-xdg-user-directories-configuration-pictures
+ home-xdg-user-directories-configuration-publicshare
+ home-xdg-user-directories-configuration-templates
+ home-xdg-user-directories-configuration-videos
xdg-desktop-action
xdg-desktop-entry
@@ -383,25 +397,25 @@ configuration."
(define (serialize-alist config)
(generic-serialize-alist append format-config config))
- (define (serialize-xdg-desktop-action action)
- (match action
- (($ <xdg-desktop-action> action name config)
- `(,(format #f "[Desktop Action ~a]\n"
- (string-capitalize (maybe-object->string action)))
- ,(format #f "Name=~a\n" name)
- ,@(serialize-alist config)))))
-
- (match entry
- (($ <xdg-desktop-entry> file name type config actions)
- (list (if (string-suffix? file ".desktop")
- file
- (string-append file ".desktop"))
- `("[Desktop Entry]\n"
- ,(format #f "Name=~a\n" name)
- ,(format #f "Type=~a\n"
- (string-capitalize (symbol->string type)))
- ,@(serialize-alist config)
- ,@(append-map serialize-xdg-desktop-action actions))))))
+ (define (serialize-xdg-desktop-action desktop-action)
+ (match-record desktop-action <xdg-desktop-action>
+ (action name config)
+ `(,(format #f "[Desktop Action ~a]\n"
+ (string-capitalize (maybe-object->string action)))
+ ,(format #f "Name=~a\n" name)
+ ,@(serialize-alist config))))
+
+ (match-record entry <xdg-desktop-entry>
+ (file name type config actions)
+ (list (if (string-suffix? file ".desktop")
+ file
+ (string-append file ".desktop"))
+ `("[Desktop Entry]\n"
+ ,(format #f "Name=~a\n" name)
+ ,(format #f "Type=~a\n"
+ (string-capitalize (symbol->string type)))
+ ,@(serialize-alist config)
+ ,@(append-map serialize-xdg-desktop-action actions)))))
(define-configuration home-xdg-mime-applications-configuration
(added
diff --git a/gnu/local.mk b/gnu/local.mk
index 7278c50e4f..3329801fa6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -116,6 +116,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/anthy.scm \
%D%/packages/antivirus.scm \
%D%/packages/apl.scm \
+ %D%/packages/apparmor.scm \
%D%/packages/apr.scm \
%D%/packages/arcan.scm \
%D%/packages/aspell.scm \
@@ -759,6 +760,7 @@ GNU_SYSTEM_MODULES = \
%D%/tests/docker.scm \
%D%/tests/file-sharing.scm \
%D%/tests/ganeti.scm \
+ %D%/tests/gdm.scm \
%D%/tests/guix.scm \
%D%/tests/monitoring.scm \
%D%/tests/nfs.scm \
@@ -1345,6 +1347,8 @@ dist_patch_DATA = \
%D%/packages/patches/jami-fix-unit-tests-build.patch \
%D%/packages/patches/jami-libjami-headers-search.patch \
%D%/packages/patches/jami-no-webengine.patch \
+ %D%/packages/patches/jami-sipaccount-segfault.patch \
+ %D%/packages/patches/jami-sip-contacts.patch \
%D%/packages/patches/jami-sip-unregister.patch \
%D%/packages/patches/jami-xcb-link.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
@@ -1823,6 +1827,7 @@ dist_patch_DATA = \
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
%D%/packages/patches/ruby-sanitize-system-libxml.patch \
%D%/packages/patches/rustc-1.54.0-src.patch \
+ %D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-adblock-ignore-live-tests.patch \
%D%/packages/patches/i3status-rust-enable-unstable-features.patch \
%D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \
@@ -1837,7 +1842,6 @@ dist_patch_DATA = \
%D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \
%D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch \
%D%/packages/patches/sbcl-clml-fix-types.patch \
- %D%/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch \
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
%D%/packages/patches/scalapack-gcc-10-compilation.patch \
%D%/packages/patches/scheme48-tests.patch \
@@ -1868,7 +1872,6 @@ dist_patch_DATA = \
%D%/packages/patches/spectre-meltdown-checker-find-kernel.patch \
%D%/packages/patches/sphinxbase-fix-doxygen.patch \
%D%/packages/patches/spice-vdagent-glib-2.68.patch \
- %D%/packages/patches/sssd-optional-systemd.patch \
%D%/packages/patches/sssd-system-directories.patch \
%D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/suitesparse-mongoose-cmake.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 99231a710e..b1f928014e 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1175,7 +1175,7 @@ would need and has several interesting built-in capabilities.")
(define-public netcat-openbsd
(package
(name "netcat-openbsd")
- (version "1.218-5")
+ (version "1.219-1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1184,7 +1184,7 @@ would need and has several interesting built-in capabilities.")
(file-name (git-file-name name version))
(sha256
(base32
- "0hpbmz9m2q22a6qgbn9590z2x96xgffim8g0m1v47mariz3pqhlc"))))
+ "1fhrmnbdl6bgsjk02vi78zy9i486mmniymbbbhdkzl8zfjbjkpxc"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
diff --git a/gnu/packages/apparmor.scm b/gnu/packages/apparmor.scm
new file mode 100644
index 0000000000..ddbd9eb7a9
--- /dev/null
+++ b/gnu/packages/apparmor.scm
@@ -0,0 +1,202 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
+;;;
+;;; 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 apparmor)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages dejagnu)
+ #:use-module (gnu packages flex)
+ #:use-module (gnu packages gawk)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages ruby)
+ #:use-module (gnu packages swig)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix utils))
+
+(define-public libapparmor
+ (package
+ (name "libapparmor")
+ (version "3.1.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/apparmor/apparmor")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1h77a7ww0rxfv5nsi1iy4fffklxdr2vq6r7kdsqm15yysglhbjyi"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:configure-flags
+ #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
+ "--with-perl" "--with-python" "--with-ruby")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (for-each patch-shebang
+ '("common/list_af_names.sh"
+ "common/list_capabilities.sh"))
+ (for-each (lambda (file)
+ (substitute* file
+ (("/usr") "")
+ (("/bin/\\<(pod2man|pod2html|podchecker|prove)\\>" path)
+ (search-input-file inputs path))
+ (("/include/linux/capability.h" path)
+ (search-input-file inputs path))))
+ '("common/Make-po.rules"
+ "common/Make.rules"
+ "binutils/Makefile"
+ "parser/Makefile"
+ "parser/tst/Makefile"
+ "profiles/Makefile"
+ "utils/Makefile"
+ "utils/python-tools-setup.py"
+ "utils/vim/Makefile"))))
+ (add-after 'fix-paths 'change-directory
+ (lambda _
+ (chdir "libraries/libapparmor"))))))
+ (native-inputs
+ (list autoconf
+ automake
+ bison
+ dejagnu
+ flex
+ libtool
+ perl
+ python-minimal
+ ruby
+ swig
+ which))
+ (home-page "https://apparmor.net")
+ (synopsis "Linux kernel security module")
+ (description
+ "AppArmor is an effective and easy-to-use Linux application security
+system.
+
+AppArmor proactively protects the operating system and applications from
+external or internal threats, even zero-day attacks, by enforcing good
+behavior and preventing both known and unknown application flaws from being
+exploited.
+
+AppArmor supplements the traditional Unix discretionary access control (DAC)
+model by providing mandatory access control (MAC). It has been included in
+the mainline Linux kernel since version 2.6.36 and its development has been
+supported by Canonical since 2009.")
+ (license license:lgpl2.1)
+ (supported-systems (filter (lambda (system)
+ (string-suffix? "-linux" system))
+ %supported-systems))))
+
+(define-public apparmor
+ (let ((base libapparmor))
+ (package
+ (inherit base)
+ (name "apparmor")
+ (arguments
+ (append
+ (list #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "DESTDIR=" #$output)
+ "USE_SYSTEM=1"
+ ;; No need to run the linter
+ "PYFLAKES=true"))
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (delete 'configure)
+ ;; apparmor-binutils
+ (replace 'change-directory
+ (lambda _
+ (chdir "binutils")))
+
+ ;; apparmor-parser
+ (add-after 'install 'chdir-parser
+ (lambda _
+ (chdir "../parser")))
+ (add-after 'chdir-parser 'patch-source-shebangs-parser
+ (assoc-ref %standard-phases 'patch-source-shebangs))
+ (add-after 'patch-source-shebangs-parser 'build-parser
+ (assoc-ref %standard-phases 'build))
+ (add-after 'build-parser 'check-parser
+ (assoc-ref %standard-phases 'check))
+ (add-after 'check-parser 'install-parser
+ (assoc-ref %standard-phases 'install))
+
+ ;; apparmor-utils
+ ;; FIXME: Tests required Python library from this package
+ ;; (itself).
+ (add-after 'install-parser 'chdir-utils
+ (lambda _
+ (chdir "../utils")
+ ;; Fix paths to installed policygroups and templates for
+ ;; easyprof.
+ (substitute* "easyprof/easyprof.conf"
+ (("/usr") #$output))))
+ (add-after 'chdir-utils 'build-utils
+ (assoc-ref %standard-phases 'build))
+ (add-after 'build-utils 'install-utils
+ (assoc-ref %standard-phases 'install))
+
+ ;; apparmor-profiles
+ ;; FIXME: Tests need an AppArmor-enabled system.
+ (add-after 'install-utils 'chdir-profiles
+ (lambda _
+ (chdir "../profiles")))
+ (add-after 'chdir-profiles 'build-profiles
+ (assoc-ref %standard-phases 'build))
+ (add-after 'check-build 'install-profiles
+ (assoc-ref %standard-phases 'install)))))))
+ (propagated-inputs
+ (list libapparmor))
+ ;; Python module `readline' needed
+ (native-inputs
+ (list bison flex gettext-minimal perl python which))
+ (license license:gpl2))))
+
+(define-public pam-apparmor
+ (let ((base apparmor))
+ (package
+ (inherit base)
+ (name "pam-apparmor")
+ (arguments
+ (append
+ (list #:tests? #f) ;no tests
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (delete 'chdir-parser)
+ (delete 'chdir-utils)
+ (delete 'chdir-profiles)
+ (replace 'change-directory
+ (lambda _
+ (chdir "changehat/pam_apparmor"))))))))
+ (native-inputs (list pkg-config perl which))
+ (inputs (list libapparmor linux-pam))
+ (license license:bsd-3))))
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 8a899f0020..7e36bbcc71 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -144,8 +144,10 @@ debugging information in STABS, DWARF 2, and CodeView 8 formats.")
(build-system gnu-build-system)
(native-inputs (list zlib))
(arguments
- ;; Some tests fail when run in parallel.
- `(#:parallel-tests? #f))
+ `(#:configure-flags
+ (list "--disable-static")
+ ;; Some tests fail when run in parallel.
+ #:parallel-tests? #f))
(synopsis "Library for generating assembly code at runtime")
(description
"GNU Lightning is a library that generates assembly language code at
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 439fdf72a8..759ccbec9e 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -89,6 +89,58 @@
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
+(define-public alfa
+ (package
+ (name "alfa")
+ (version "2.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rwesson/ALFA")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "0aqxqar36822mh373awsl79j7zn8vik4yddyydsxv0c76gn4i2k3"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:parallel-build? #f
+ #:make-flags #~(list (string-append "PREFIX="
+ #$output)
+ (string-append "VERSION="
+ #$version))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (add-after 'install 'post-install-check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "fittest")))))))
+ (inputs (list cfitsio gfortran))
+ (home-page "https://nebulousresearch.org/codes/alfa/")
+ (synopsis "Automated line fitting algorithm")
+ (description
+ "This package provides @acronym{ALFA, Automatic line fitting algorithm},
+which can identify and fit hundreds of lines in emission line spectra in just a
+few seconds with following features:
+@itemize
+
+@item A population of synthetic spectra is generated using a reference line
+catalogue.
+
+@item The goodness of fit for each synthetic spectrum is calculated. The best
+sets of parameters are retained and the rest discarded.
+
+@item A new population of synthetic spectra is obtained by averaging pairs of
+the best performers.
+
+@item A small fraction of the parameters of the lines in the new generation are
+randomly altered.
+
+@item The process repeats until a good fit is obtained.
+@end itemize")
+ (license license:gpl3)))
+
(define-public aocommon
(let ((commit "7329a075271edab8f6264db649e81e62b2b6ae5e")
(revision "1"))
@@ -1873,7 +1925,7 @@ It can be used to calculate the trajectory of satellites.")
(native-inputs
(list boost pkg-config))
(inputs
- (list cfitsio freeimage glew wxwidgets))
+ (list cfitsio freeimage glew wxwidgets-3.0))
(home-page "https://github.com/GreatAttractor/imppg")
(synopsis "Astronomical Image Post-Proccessor (ImPPG)")
(description
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index ead5ce5963..2f9cb9526e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -892,7 +892,7 @@ engineers, musicians, soundtrack editors and composers.")
#t))))
(build-system cmake-build-system)
(inputs
- (list wxwidgets-3.1
+ (list wxwidgets
gtk+
alsa-lib
jack-1
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 67708138a6..00d95e7b3d 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -1088,14 +1088,14 @@ interactive mode.")
(define-public btrbk
(package
(name "btrbk")
- (version "0.32.4")
+ (version "0.32.5")
(source (origin
(method url-fetch)
(uri (string-append "https://digint.ch/download/btrbk/releases/"
"btrbk-" version ".tar.xz"))
(sha256
(base32
- "1nl6cbzqkc2srwi1428vijq69rp5cdx7484zcx61ph0rnhg9srfc"))))
+ "1d4zqf5klad55gdzzldipsjrhpprixzjmn03g66df5h2d28l1zpi"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index bb319a13e5..c62c5970b8 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -2454,13 +2454,13 @@ plants. The method has been specifically designed to:
(define-public r-alpine
(package
(name "r-alpine")
- (version "1.22.0")
+ (version "1.24.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "alpine" version))
(sha256
(base32
- "1nl1hxwakh5m9rqm3ksn2jzknsj9xnwl51bmc30knknm4q35wdv9"))))
+ "0rjnwljh4c2f7ml0m14pllns4pvyjwwf23qsn6zjygm5x04bapf0"))))
(properties `((upstream-name . "alpine")))
(build-system r-build-system)
(propagated-inputs
@@ -4216,18 +4216,19 @@ mapping.")
(define-public r-nmf
(package
(name "r-nmf")
- (version "0.24.0")
+ (version "0.25")
(source
(origin
(method url-fetch)
(uri (cran-uri "NMF" version))
(sha256
(base32
- "14yxra6in5c1md5nr75y8cdmh9pg0lxqabqflvlhgg1vbg9i2628"))))
+ "0kdl7yz4v7pms6y2lff4x5w7pwkx54488qx0v539qmvcbxv1if98"))))
(properties `((upstream-name . "NMF")))
(build-system r-build-system)
(propagated-inputs
(list r-cluster
+ r-codetools
r-biobase
r-biocmanager
r-bigmemory ; suggested
@@ -4238,7 +4239,6 @@ mapping.")
r-foreach
r-ggplot2
r-gridbase
- r-pkgmaker
r-rcolorbrewer
r-registry
r-reshape2
@@ -4787,13 +4787,13 @@ only one command.")
(define-public r-biocparallel
(package
(name "r-biocparallel")
- (version "1.32.1")
+ (version "1.32.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "BiocParallel" version))
(sha256
(base32
- "1fkfbs0n0sdssli7ibrswkfag080kgv8n1zf6ssxx729g1fz3m3h"))))
+ "0z2g3p6ip4g865na9bmqaa7w2s52769pmjr3hpiv6x8bhifh3nm5"))))
(properties
`((upstream-name . "BiocParallel")))
(build-system r-build-system)
@@ -6010,6 +6010,42 @@ reduction (between group analysis) and joint dimension reduction of two
datasets (coinertia analysis).")
(license license:artistic2.0)))
+(define-public r-metaneighbor
+ (package
+ (name "r-metaneighbor")
+ (version "1.18.0")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "MetaNeighbor" version))
+ (sha256
+ (base32
+ "1gjjp5qlmv26sd3fvrd8cgv3invckxr8ldjpizpqm4mxjzifxwpm"))))
+ (properties `((upstream-name . "MetaNeighbor")))
+ (build-system r-build-system)
+ (propagated-inputs
+ (list r-beanplot
+ r-dplyr
+ r-ggplot2
+ r-gplots
+ r-igraph
+ r-matrix
+ r-matrixstats
+ r-rcolorbrewer
+ r-singlecellexperiment
+ r-summarizedexperiment
+ r-tibble
+ r-tidyr))
+ (native-inputs (list r-knitr))
+ (home-page "https://bioconductor.org/packages/MetaNeighbor")
+ (synopsis "Single cell replicability analysis")
+ (description
+ "This package implements a method to rapidly assess cell type identity using
+both functional and random gene sets and it allows users to quantify cell type
+replicability across datasets using neighbor voting. @code{MetaNeighbor} works
+on the basis that cells of the same type should have more similar gene expression
+profiles than cells of different types.")
+ (license license:expat)))
+
(define-public r-methylkit
(package
(name "r-methylkit")
@@ -8765,6 +8801,41 @@ representations of analysis results in order to provide additional
information.")
(license license:lgpl3)))
+(define-public r-glmgampoi
+ (package
+ (name "r-glmgampoi")
+ (version "1.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "glmGamPoi" version))
+ (sha256
+ (base32
+ "12jbqigg4k2ngrk2anbrrxrwkp57bbzdz492lg8lc6w1gygp5yip"))))
+ (properties `((upstream-name . "glmGamPoi")))
+ (build-system r-build-system)
+ (propagated-inputs
+ (list r-beachmat
+ r-biocgenerics
+ r-delayedarray
+ r-delayedmatrixstats
+ r-hdf5array
+ r-matrixgenerics
+ r-matrixstats
+ r-rcpp
+ r-rcpparmadillo
+ r-rlang
+ r-singlecellexperiment
+ r-summarizedexperiment))
+ (native-inputs (list r-knitr))
+ (home-page "https://github.com/const-ae/glmGamPoi")
+ (synopsis "Fit a Gamma-Poisson Generalized Linear Model")
+ (description
+ "Fit linear models to overdispersed count data. The package can estimate
+the overdispersion and fit repeated models for matrix input. It is designed
+to handle large input datasets as they typically occur in single cell RNA-seq
+experiments.")
+ (license license:gpl3)))
+
(define-public r-rots
(package
(name "r-rots")
@@ -17820,14 +17891,14 @@ the Bioconductor project.")
(define-public r-biodb
(package
(name "r-biodb")
- (version "1.6.0")
+ (version "1.6.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "biodb" version))
(sha256
(base32
- "08ahz3v2xbhwfh89dbnhhcdm0x5qv4hibi8wknlqf5x8gqm5j5w6"))))
+ "0mbqsias2ajw29d1wgl10y2cjqv3slrsgifccz0kh9l5r6bk28vz"))))
(properties `((upstream-name . "biodb")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 6c6ff3e25a..3a7dc1a1b7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -57,6 +57,7 @@
#:use-module (guix build-system meson)
#:use-module (guix build-system ocaml)
#:use-module (guix build-system perl)
+ #:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system r)
@@ -846,7 +847,7 @@ intended to behave exactly the same as the original BWK awk.")
(define-public python-cellbender
(package
(name "python-cellbender")
- (version "0.2.1")
+ (version "0.2.2")
(source
(origin
(method git-fetch)
@@ -856,8 +857,8 @@ intended to behave exactly the same as the original BWK awk.")
(file-name (git-file-name name version))
(sha256
(base32
- "1zav2q8nnss80i25y06fccagkvrqsy7lpylsl4dxv4qkj8p4fnv3"))))
- (build-system python-build-system)
+ "12q22va7rbc3sx9ygc6p6hh6xw9wbqjmhba5h5gb836p5xplj5fa"))))
+ (build-system pyproject-build-system)
(arguments
(list #:tests? #false)) ;there are none
(propagated-inputs
@@ -884,14 +885,14 @@ from high-throughput single-cell RNA sequencing (scRNA-seq) data.")
(define-public python-htsget
(package
(name "python-htsget")
- (version "0.2.5")
+ (version "0.2.6")
(source (origin
(method url-fetch)
(uri (pypi-uri "htsget" version))
(sha256
(base32
- "0ic07q85vhw9djf23k57b21my7i5xp400m8gfqgr5gcryqvdr0yk"))))
- (build-system python-build-system)
+ "111q4pzkav26aa3hkgh948wqlyrq7dq6sjml9z63n3blw8s6b0c4"))))
+ (build-system pyproject-build-system)
(native-inputs
(list python-setuptools-scm))
(propagated-inputs
@@ -913,11 +914,12 @@ servers supporting the protocol.")
(sha256
(base32
"18rhzk08d3rpxhi5xh6pqg64x6v5q3daw6y3v54k85v4swncjrwj"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
`(#:modules ((srfi srfi-26)
(guix build utils)
- (guix build python-build-system))
+ (guix build python-build-system)
+ (guix build pyproject-build-system))
;; See https://github.com/daler/pybedtools/issues/192
#:phases
(modify-phases %standard-phases
@@ -977,7 +979,7 @@ which are widely used for genomic interval manipulation or \"genome algebra\".
pybedtools extends BEDTools by offering feature-level manipulations from with
Python.")
;; pypi lists GPLv2 in the PKG-INFO and website, but was relicensed in
- ;; version 0.9.0 and the LICENSE.txt is consistant with the source code.
+ ;; version 0.9.0 and the LICENSE.txt is consistent with the source code.
;;
;; pybedtools/include/gzstream.cpp and pybedtools/include/gzstream.h are
;; licensed lgpl2.1+
@@ -1031,7 +1033,7 @@ use-case, we encourage users to compose functions to achieve their goals.")
(define-public python-biom-format
(package
(name "python-biom-format")
- (version "2.1.10")
+ (version "2.1.12")
(source
(origin
(method git-fetch)
@@ -1043,25 +1045,22 @@ use-case, we encourage users to compose functions to achieve their goals.")
(file-name (git-file-name name version))
(sha256
(base32
- "0i62j6ksmp78ap2dnl969gq6vprc3q87zc8ksj9if8g2603iq6i8"))
+ "06x2d8fv80jp86kd66fm3ragmxrpa2j0lzsbm337ziqjnpsdwc0f"))
(modules '((guix build utils)))
;; Delete generated C files.
(snippet
'(for-each delete-file (find-files "." "\\.c")))))
(build-system python-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
+ (list
+ #:phases
+ '(modify-phases %standard-phases
(add-after 'unpack 'use-cython
(lambda _ (setenv "USE_CYTHON" "1")))
- (add-after 'unpack 'relax
- (lambda _
- (substitute* "setup.py"
- (("pytest < 5.3.4") "pytest"))))
(add-after 'unpack 'disable-broken-tests
(lambda _
- (substitute* "biom/tests/test_cli/test_validate_table.py"
- (("^(.+)def test_invalid_hdf5" m indent)
+ (substitute* "biom/tests/test_util.py"
+ (("^(.+)def test_biom_open_hdf5_no_h5py" m indent)
(string-append indent
"@npt.dec.skipif(True, msg='Guix')\n"
m)))
@@ -1072,13 +1071,14 @@ use-case, we encourage users to compose functions to achieve their goals.")
m))))))))
(propagated-inputs
(list python-anndata
- python-numpy
- python-scipy
+ python-click
python-flake8
python-future
- python-click
python-h5py
- python-pandas))
+ python-numpy
+ python-pandas
+ python-scikit-bio
+ python-scipy))
(native-inputs
(list python-cython python-pytest python-pytest-cov python-nose))
(home-page "http://www.biom-format.org")
@@ -1093,42 +1093,45 @@ e.g. microbiome samples, genomes, metagenomes.")
(define-public python-pairtools
(package
(name "python-pairtools")
- (version "0.3.0")
+ (version "1.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/mirnylab/pairtools")
+ (url "https://github.com/open2c/pairtools")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0gr8y13q7sd6yai6df4aavl2470n1f9s3cib6r473z4hr8hcbwmc"))))
+ "0xn4cg4jq3rfn42h8rfwg0k6xkvihjrv32gwldb9y0jp05lzw9cs"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-references
(lambda _
- (substitute* '("pairtools/pairtools_merge.py"
- "pairtools/pairtools_sort.py")
- (("/bin/bash") (which "bash")))
- #t))
+ (substitute* '("pairtools/cli/header.py"
+ "pairtools/cli/merge.py"
+ "pairtools/cli/sort.py")
+ (("/bin/bash") (which "bash")))))
(replace 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (with-directory-excursion "/tmp"
- (invoke "pytest" "-v")))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "/tmp"
+ (invoke "pytest" "-v"))))))))
(native-inputs
- (list python-cython python-nose python-pytest))
- (inputs
- `(("python" ,python-wrapper)))
+ (list python-cython python-pytest))
(propagated-inputs
(list htslib ; for bgzip, looked up in PATH
samtools ; looked up in PATH
lz4 ; for lz4c
+ python-bioframe
python-click
- python-numpy))
- (home-page "https://github.com/mirnylab/pairtools")
+ python-numpy
+ python-pandas
+ python-pysam
+ python-pyyaml
+ python-scipy))
+ (home-page "https://github.com/open2c/pairtools")
(synopsis "Process mapped Hi-C data")
(description "Pairtools is a simple and fast command-line framework to
process sequencing data from a Hi-C experiment. Process pair-end sequence
@@ -2973,6 +2976,71 @@ generation, and transformation to RDF. Salad provides a bridge between document
and record oriented data modeling and the Semantic Web.")
(license license:asl2.0)))
+(define-public python-scikit-bio
+ (package
+ (name "python-scikit-bio")
+ (version "0.5.7")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "scikit-bio" version))
+ (sha256
+ (base32
+ "1a8xbp3vrw8wfpm3pa2nb4rcar0643iqnb043ifwqbqyc86clhv3"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ '(modify-phases %standard-phases
+ ;; See https://github.com/biocore/scikit-bio/pull/1826
+ (add-after 'unpack 'compatibility
+ (lambda _
+ (substitute* "skbio/sequence/tests/test_sequence.py"
+ (("def test_concat_strict_many")
+ "def _do_not_test_concat_strict_many"))
+ (substitute* "skbio/stats/distance/_mantel.py"
+ (("from scipy.stats import PearsonRConstantInputWarning")
+ "from scipy.stats import ConstantInputWarning")
+ (("from scipy.stats import PearsonRNearConstantInputWarning")
+ "from scipy.stats import NearConstantInputWarning")
+ (("from scipy.stats import SpearmanRConstantInputWarning") "")
+ (("warnings.warn\\(PearsonRConstantInputWarning\\(\\)\\)")
+ "warnings.warn(ConstantInputWarning())")
+ (("warnings.warn\\(PearsonRNearConstantInputWarning\\(\\)\\)")
+ "warnings.warn(NearConstantInputWarning())")
+ (("warnings.warn\\(SpearmanRConstantInputWarning\\(\\)\\)")
+ "warnings.warn(ConstantInputWarning())"))
+ (substitute* "skbio/diversity/alpha/tests/test_base.py"
+ (("self.assertEqual\\(pielou_e")
+ "self.assertAlmostEqual(pielou_e"))))
+ (add-before 'check 'build-extensions
+ (lambda _
+ ;; Cython extensions have to be built before running the tests.
+ (invoke "python3" "setup.py" "build_ext" "--inplace")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "python3" "-m" "skbio.test")))))))
+ (propagated-inputs
+ (list python-cachecontrol
+ python-decorator
+ python-h5py
+ python-hdmedians
+ python-ipython
+ python-lockfile
+ python-matplotlib
+ python-natsort
+ python-numpy
+ python-pandas
+ python-scikit-learn
+ python-scipy))
+ (native-inputs
+ (list python-coverage python-pytest))
+ (home-page "https://scikit-bio.org")
+ (synopsis "Data structures, algorithms and educational resources for bioinformatics")
+ (description
+ "This package provides data structures, algorithms and educational
+resources for bioinformatics.")
+ (license license:bsd-3)))
+
(define-public cwltool
(package
(name "cwltool")
@@ -10601,6 +10669,102 @@ traditional read alignments) and massively-parallel stochastic collapsed
variational inference.")
(license license:gpl3+)))
+(define-public python-fanc
+ (package
+ (name "python-fanc")
+ (version "0.9.25")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vaquerizaslab/fanc")
+ ;; There are no tags. This commit corresponds to
+ ;; version 0.9.25.
+ (commit "e2205346c13ea5349681dff21adeb271d4ea5261")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0rxq24p852iiayi0083fyigvc30as695rha71q6xd4s2ij1k9mqi"))))
+ (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"
+ "-k"
+ ;; XXX: These all fail because they fail to read
+ ;; the included test_{cooler,juicer}.hic files.
+ (string-append "not test_edges_iter"
+ " and not test_get_edges_uncorrected"
+ " and not test_get_edges"))))))))
+ (propagated-inputs
+ (list python-biopython
+ python-cooler
+ python-deprecated
+ python-future
+ python-genomic-regions
+ python-gridmap
+ python-h5py
+ python-intervaltree
+ python-matplotlib
+ python-msgpack
+ python-msgpack-numpy
+ python-numpy
+ python-pandas
+ python-pillow
+ python-progressbar2
+ python-pybedtools
+ python-pybigwig
+ python-pysam
+ python-pytest
+ python-pyyaml
+ python-scikit-image
+ python-scikit-learn
+ python-scipy
+ python-seaborn
+ python-tables))
+ (native-inputs
+ (list python-cython))
+ (home-page "https://github.com/vaquerizaslab/fanc")
+ (synopsis "Framework for the analysis of C-data")
+ (description
+ "FAN-C provides a pipeline for analysing Hi-C data starting at
+mapped paired-end sequencing reads.")
+ (license license:gpl3+)))
+
+(define-public python-genomic-regions
+ (package
+ (name "python-genomic-regions")
+ (version "0.0.10")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "genomic_regions" version))
+ (sha256
+ (base32
+ "0hz811iyd1prml1r90qyzimmwyjwycwkjqw4vnl12bxy61rfzjz5"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs
+ (list python-future
+ python-intervaltree
+ python-numpy
+ python-pandas
+ python-pybedtools
+ python-pybigwig
+ python-pytest
+ python-msgpack-numpy
+ python-cython
+ python-msgpack
+ python-pysam))
+ (home-page "https://pypi.org/project/genomic-regions/")
+ (synopsis "Consistently handle genomic regions")
+ (description "This package aims to simplify working with genomic region /
+interval data by providing a common interface that lets you access a wide
+selection of file types and formats for handling genomic region data---all
+using the same syntax.")
+ (license license:expat)))
+
(define-public python-loompy
(package
(name "python-loompy")
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 210bc30536..8888c51736 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -16,6 +16,7 @@
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2021 Stefan <stefan-guix@vodafonemail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -67,13 +68,17 @@
#:use-module (gnu packages virtualization)
#:use-module (gnu packages xorg)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
+ #:use-module (ice-9 optargs)
+ #:use-module (ice-9 match)
#:use-module (ice-9 regex))
(define unifont
@@ -92,22 +97,22 @@
(name "grub")
(version "2.06")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/grub/grub-" version ".tar.xz"))
- (sha256
- (base32
- "1qbycnxkx07arj9f2nlsi9kp0dyldspbv07ysdyd34qvz55a97mp"))
- (patches (search-patches
- "grub-efi-fat-serial-number.patch"
- "grub-setup-root.patch"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Adjust QEMU invocation to not use a deprecated device
- ;; name that was removed in QEMU 6.0. Remove for >2.06.
- (substitute* "tests/ahci_test.in"
- (("ide-drive")
- "ide-hd"))))))
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/grub/grub-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1qbycnxkx07arj9f2nlsi9kp0dyldspbv07ysdyd34qvz55a97mp"))
+ (patches (search-patches
+ "grub-efi-fat-serial-number.patch"
+ "grub-setup-root.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Adjust QEMU invocation to not use a deprecated device
+ ;; name that was removed in QEMU 6.0. Remove for >2.06.
+ (substitute* "tests/ahci_test.in"
+ (("ide-drive")
+ "ide-hd"))))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -117,65 +122,62 @@
(list "PYTHON=true")
;; Grub fails to load modules stripped with --strip-unneeded.
#:strip-flags '("--strip-debug" "--enable-deterministic-archives")
- #:phases (modify-phases %standard-phases
- (add-after 'unpack 'patch-stuff
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (substitute* "grub-core/Makefile.in"
- (("/bin/sh") (which "sh")))
-
- ;; Give the absolute file name of 'mdadm', used to
- ;; determine the root file system when it's a RAID
- ;; device. Failing to do that, 'grub-probe' silently
- ;; fails if 'mdadm' is not in $PATH.
- (when (assoc-ref inputs "mdadm")
- (substitute* "grub-core/osdep/linux/getroot.c"
- (("argv\\[0\\] = \"mdadm\"")
- (string-append "argv[0] = \""
- (assoc-ref inputs "mdadm")
- "/sbin/mdadm\""))))
-
- ;; Make the font visible.
- (copy-file (assoc-ref (or native-inputs inputs)
- "unifont")
- "unifont.bdf.gz")
- (system* "gunzip" "unifont.bdf.gz")
-
- ;; Give the absolute file name of 'ckbcomp'.
- (substitute* "util/grub-kbdcomp.in"
- (("^ckbcomp ")
- (string-append
- (search-input-file inputs "/bin/ckbcomp")
- " ")))))
- (add-after 'unpack 'set-freetype-variables
- ;; These variables need to be set to the native versions
- ;; of the dependencies because they are used to build
- ;; programs which are executed during build time.
- (lambda* (#:key native-inputs #:allow-other-keys)
- (when (assoc-ref native-inputs "freetype")
- (let ((freetype (assoc-ref native-inputs "freetype")))
- (setenv "BUILD_FREETYPE_LIBS"
- (string-append "-L" freetype
- "/lib -lfreetype"))
- (setenv "BUILD_FREETYPE_CFLAGS"
- (string-append "-I" freetype
- "/include/freetype2"))))
- #t))
- (add-before 'check 'disable-flaky-test
- (lambda _
- ;; This test is unreliable. For more information, see:
- ;; <https://bugs.gnu.org/26936>.
- (substitute* "Makefile.in"
- (("grub_cmd_date grub_cmd_set_date grub_cmd_sleep")
- "grub_cmd_date grub_cmd_sleep"))
- #t))
- (add-before 'check 'disable-pixel-perfect-test
- (lambda _
- ;; This test compares many screenshots rendered with an
- ;; older Unifont (9.0.06) than that packaged in Guix.
- (substitute* "Makefile.in"
- (("test_unset grub_func_test")
- "test_unset"))
- #t)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-stuff
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (substitute* "grub-core/Makefile.in"
+ (("/bin/sh") (which "sh")))
+
+ ;; Give the absolute file name of 'mdadm', used to determine the
+ ;; root file system when it's a RAID device. Failing to do that,
+ ;; 'grub-probe' silently fails if 'mdadm' is not in $PATH.
+ (when (assoc-ref inputs "mdadm")
+ (substitute* "grub-core/osdep/linux/getroot.c"
+ (("argv\\[0\\] = \"mdadm\"")
+ (string-append "argv[0] = \""
+ (assoc-ref inputs "mdadm")
+ "/sbin/mdadm\""))))
+
+ ;; Make the font visible.
+ (copy-file (assoc-ref (or native-inputs inputs)
+ "unifont")
+ "unifont.bdf.gz")
+ (system* "gunzip" "unifont.bdf.gz")
+
+ ;; Give the absolute file name of 'ckbcomp'.
+ (substitute* "util/grub-kbdcomp.in"
+ (("^ckbcomp ")
+ (string-append
+ (search-input-file inputs "/bin/ckbcomp")
+ " ")))))
+ (add-after 'unpack 'set-freetype-variables
+ ;; These variables need to be set to the native versions of the
+ ;; dependencies because they are used to build programs which are
+ ;; executed during build time.
+ (lambda* (#:key native-inputs #:allow-other-keys)
+ (when (assoc-ref native-inputs "freetype")
+ (let ((freetype (assoc-ref native-inputs "freetype")))
+ (setenv "BUILD_FREETYPE_LIBS"
+ (string-append "-L" freetype
+ "/lib -lfreetype"))
+ (setenv "BUILD_FREETYPE_CFLAGS"
+ (string-append "-I" freetype
+ "/include/freetype2"))))))
+ (add-before 'check 'disable-flaky-test
+ (lambda _
+ ;; This test is unreliable. For more information, see:
+ ;; <https://bugs.gnu.org/26936>.
+ (substitute* "Makefile.in"
+ (("grub_cmd_date grub_cmd_set_date grub_cmd_sleep")
+ "grub_cmd_date grub_cmd_sleep"))))
+ (add-before 'check 'disable-pixel-perfect-test
+ (lambda _
+ ;; This test compares many screenshots rendered with an older
+ ;; Unifont (9.0.06) than that packaged in Guix.
+ (substitute* "Makefile.in"
+ (("test_unset grub_func_test")
+ "test_unset")))))
;; Disable tests on ARM and AARCH64 platforms or when cross-compiling.
#:tests? ,(not (or (any (cute string-prefix? <> (or (%current-target-system)
(%current-system)))
@@ -222,19 +224,19 @@
("flex" ,flex)
("texinfo" ,texinfo)
("help2man" ,help2man)
- ("freetype" ,freetype) ; native version needed for build-grub-mkfont
+ ("freetype" ,freetype) ;native version needed for build-grub-mkfont
;; XXX: When building GRUB 2.02 on 32-bit x86, we need a binutils
;; capable of assembling 64-bit instructions. However, our default
;; binutils on 32-bit x86 is not 64-bit capable.
,@(if (string-match "^i[3456]86-" (%current-system))
(let ((binutils (package/inherit
- binutils
- (name "binutils-i386")
- (arguments
- (substitute-keyword-arguments (package-arguments binutils)
- ((#:configure-flags flags ''())
- `(cons "--enable-64-bit-bfd" ,flags)))))))
+ binutils
+ (name "binutils-i386")
+ (arguments
+ (substitute-keyword-arguments (package-arguments binutils)
+ ((#:configure-flags flags ''())
+ `(cons "--enable-64-bit-bfd" ,flags)))))))
`(("ld-wrapper" ,(make-ld-wrapper "ld-wrapper-i386"
#:binutils binutils))
("binutils" ,binutils)))
@@ -342,21 +344,21 @@ menu to select one of the installed operating systems.")
`(,@(substitute-keyword-arguments (package-arguments grub-efi)
((#:configure-flags flags ''())
`(cons*
- ,@(cond ((target-x86?) '("--target=i386"))
- ((target-aarch64?)
- (list "--target=arm"
- (string-append "TARGET_CC="
- (cc-for-target "arm-linux-gnueabihf"))))
- ((target-arm?) '("--target=arm"))
- (else '()))
- ,flags)))))
+ ,@(cond ((target-x86?) '("--target=i386"))
+ ((target-aarch64?)
+ (list "--target=arm"
+ (string-append "TARGET_CC="
+ (cc-for-target "arm-linux-gnueabihf"))))
+ ((target-arm?) '("--target=arm"))
+ (else '()))
+ ,flags)))))
(native-inputs
(if (target-aarch64?)
- (modify-inputs (package-native-inputs grub-efi)
- (prepend
- (cross-gcc "arm-linux-gnueabihf")
- (cross-binutils "arm-linux-gnueabihf")))
- (package-native-inputs grub-efi)))))
+ (modify-inputs (package-native-inputs grub-efi)
+ (prepend
+ (cross-gcc "arm-linux-gnueabihf")
+ (cross-binutils "arm-linux-gnueabihf")))
+ (package-native-inputs grub-efi)))))
;; Because grub searches hardcoded paths it's easiest to just build grub
;; again to make it find both grub-pc and grub-efi. There is a command
@@ -392,6 +394,92 @@ menu to select one of the installed operating systems.")
(scandir input-dir))
#t)))))))))
+(define-public (make-grub-efi-netboot name subdir)
+ "Make a grub-efi-netboot package named NAME, which will be able to boot over
+network via TFTP by accessing its files in the SUBDIR of a TFTP root directory.
+This package is also able to boot from local storage devices.
+
+A bootloader-installer basically needs to copy the package content into the
+bootloader-target directory, which will usually be the TFTP root, as
+'grub-mknetdir' will be invoked already during the package creation.
+
+Alternatively the bootloader-target directory can be a mounted EFI System
+Partition (ESP), or a similar partition with a FAT file system, for booting
+from local storage devices.
+
+The name of the GRUB EFI binary will conform to the UEFI specification for
+removable media. Depending on the system it will be e.g. bootx64.efi or
+bootaa64.efi below SUBDIR.
+
+The SUBDIR argument needs to be set to \"efi/boot\" to create a package which
+conforms to the UEFI specification for removable media.
+
+The SUBDIR argument defaults to \"efi/Guix\", as it is also the case for
+'grub-efi-bootloader'."
+ (package
+ (name name)
+ (version (package-version grub-efi))
+ ;; Source is not needed, but it cannot be omitted.
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments
+ (let* ((system (string-split (nix-system->gnu-triplet
+ (or (%current-target-system)
+ (%current-system)))
+ #\-))
+ (arch (first system))
+ (boot-efi
+ (match system
+ ;; These are the supportend systems and the names defined by
+ ;; the UEFI standard for removable media.
+ (("i686" _ ...) "/bootia32.efi")
+ (("x86_64" _ ...) "/bootx64.efi")
+ (("arm" _ ...) "/bootarm.efi")
+ (("aarch64" _ ...) "/bootaa64.efi")
+ (("riscv" _ ...) "/bootriscv32.efi")
+ (("riscv64" _ ...) "/bootriscv64.efi")
+ ;; Other systems are not supported, although defined.
+ ;; (("riscv128" _ ...) "/bootriscv128.efi")
+ ;; (("ia64" _ ...) "/bootia64.efi")
+ ((_ ...) #f)))
+ (core-efi (string-append
+ ;; This is the arch dependent file name of GRUB, e.g.
+ ;; i368-efi/core.efi or arm64-efi/core.efi.
+ (match arch
+ ("i686" "i386")
+ ("aarch64" "arm64")
+ ("riscv" "riscv32")
+ (_ arch))
+ "-efi/core.efi")))
+ (list
+ #:modules '((guix build utils))
+ #:builder
+ #~(begin
+ (use-modules (guix build utils))
+ (let* ((bootloader #$(this-package-input "grub-efi"))
+ (net-dir #$output)
+ (sub-dir (string-append net-dir "/" #$subdir "/"))
+ (boot-efi (string-append sub-dir #$boot-efi))
+ (core-efi (string-append sub-dir #$core-efi)))
+ ;; Install GRUB, which refers to the grub.cfg, with support for
+ ;; encrypted partitions,
+ (setenv "GRUB_ENABLE_CRYPTODISK" "y")
+ (invoke/quiet (string-append bootloader "/bin/grub-mknetdir")
+ (string-append "--net-directory=" net-dir)
+ (string-append "--subdir=" #$subdir)
+ ;; These modules must be pre-loaded to allow booting
+ ;; from an ESP or a similar partition with a FAT
+ ;; file system.
+ (string-append "--modules=part_msdos part_gpt fat"))
+ ;; Move GRUB's core.efi to the removable media name.
+ (false-if-exception (delete-file boot-efi))
+ (rename-file core-efi boot-efi))))))
+ (inputs (list grub-efi))
+ (synopsis (package-synopsis grub-efi))
+ (description (package-description grub-efi))
+ (home-page (package-home-page grub-efi))
+ (license (package-license grub-efi))))
+
(define-public syslinux
(let ((commit "bb41e935cc83c6242de24d2271e067d76af3585c"))
(package
@@ -481,14 +569,14 @@ menu to select one of the installed operating systems.")
(build-system gnu-build-system)
(native-inputs
(append
- (list bison
- flex
- libyaml
- pkg-config
- swig)
- (if (member (%current-system) (package-supported-systems valgrind))
- (list valgrind)
- '())))
+ (list bison
+ flex
+ libyaml
+ pkg-config
+ swig)
+ (if (member (%current-system) (package-supported-systems valgrind))
+ (list valgrind)
+ '())))
(inputs
(list python))
(arguments
@@ -545,7 +633,7 @@ tree binary files. These are board description files used by Linux and BSD.")
(name "u-boot")
(version "2022.04")
(source (origin
- (patches
+ (patches
(list %u-boot-rockchip-inno-usb-patch
%u-boot-allow-disabling-openssl-patch
%u-boot-sifive-prevent-relocating-initrd-fdt
@@ -594,12 +682,12 @@ also initializes the boards (RAM etc).")
(add-after 'unpack 'patch
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile"
- (("/bin/pwd") (which "pwd"))
- (("/bin/false") (which "false")))
+ (("/bin/pwd") (which "pwd"))
+ (("/bin/false") (which "false")))
(substitute* "tools/dtoc/fdt_util.py"
- (("'cc'") "'gcc'"))
+ (("'cc'") "'gcc'"))
(substitute* "tools/patman/test_util.py"
- ;; python3-coverage is simply called coverage in guix.
+ ;; python3-coverage is simply called coverage in guix.
(("python3-coverage") "coverage")
;; Don't require 100% coverage since it's brittle and can
@@ -607,40 +695,40 @@ also initializes the boards (RAM etc).")
(("raise ValueError\\('Test coverage failure'\\)")
"print('Continuing anyway since Guix does not care :O')"))
(substitute* "test/run"
- ;; Make it easier to find test failures.
- (("#!/bin/bash") "#!/bin/bash -x")
- ;; This test would require git.
- (("\\./tools/patman/patman") (which "true"))
- ;; FIXME: test fails, needs further investiation
- (("run_test \"binman\"") "# run_test \"binman\"")
- ;; FIXME: test_spl fails, needs further investiation
- (("test_ofplatdata or test_handoff or test_spl")
+ ;; Make it easier to find test failures.
+ (("#!/bin/bash") "#!/bin/bash -x")
+ ;; This test would require git.
+ (("\\./tools/patman/patman") (which "true"))
+ ;; FIXME: test fails, needs further investiation
+ (("run_test \"binman\"") "# run_test \"binman\"")
+ ;; FIXME: test_spl fails, needs further investiation
+ (("test_ofplatdata or test_handoff or test_spl")
"test_ofplatdata or test_handoff")
- ;; FIXME: code coverage not working
- (("run_test \"binman code coverage\"")
- "# run_test \"binman code coverage\"")
- ;; This test would require internet access.
- (("\\./tools/buildman/buildman") (which "true")))
+ ;; FIXME: code coverage not working
+ (("run_test \"binman code coverage\"")
+ "# run_test \"binman code coverage\"")
+ ;; This test would require internet access.
+ (("\\./tools/buildman/buildman") (which "true")))
(substitute* "test/py/tests/test_sandbox_exit.py"
- (("def test_ctrl_c")
- "@pytest.mark.skip(reason='Guix has problems with SIGINT')
+ (("def test_ctrl_c")
+ "@pytest.mark.skip(reason='Guix has problems with SIGINT')
def test_ctrl_c"))
;; Test against the tools being installed rather than tools built
;; for "sandbox" target.
(substitute* "test/image/test-imagetools.sh"
(("BASEDIR=sandbox") "BASEDIR=."))
(for-each (lambda (file)
- (substitute* file
- ;; Disable features that require OpenSSL due
- ;; to GPL/Openssl license incompatibilities.
- ;; See https://bugs.gnu.org/34717 for
- ;; details.
- (("CONFIG_FIT_SIGNATURE=y")
- "CONFIG_FIT_SIGNATURE=n\nCONFIG_UT_LIB_ASN1=n\nCONFIG_TOOLS_LIBCRYPTO=n")
- ;; This test requires a sound system, which is un-used
- ;; in u-boot-tools.
- (("CONFIG_SOUND=y") "CONFIG_SOUND=n")))
- (find-files "configs" "sandbox_.*defconfig$|tools-only_defconfig"))
+ (substitute* file
+ ;; Disable features that require OpenSSL due
+ ;; to GPL/Openssl license incompatibilities.
+ ;; See https://bugs.gnu.org/34717 for
+ ;; details.
+ (("CONFIG_FIT_SIGNATURE=y")
+ "CONFIG_FIT_SIGNATURE=n\nCONFIG_UT_LIB_ASN1=n\nCONFIG_TOOLS_LIBCRYPTO=n")
+ ;; This test requires a sound system, which is un-used
+ ;; in u-boot-tools.
+ (("CONFIG_SOUND=y") "CONFIG_SOUND=n")))
+ (find-files "configs" "sandbox_.*defconfig$|tools-only_defconfig"))
#t))
(replace 'configure
(lambda* (#:key make-flags #:allow-other-keys)
@@ -668,28 +756,37 @@ def test_ctrl_c"))
"tools/env/fw_printenv"
"tools/sunxi-spl-image-builder"))
#t)))
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key make-flags test-target #:allow-other-keys)
- (invoke "test/image/test-imagetools.sh")))
- ;; Only run full test suite on x86_64 systems, as many tests
- ;; assume x86_64.
- ,@(if (string-match "^x86_64-linux"
- (or (%current-target-system)
- (%current-system)))
- '((add-after 'check 'check-x86
- (lambda* (#:key make-flags test-target #:allow-other-keys)
- (apply invoke "make" "mrproper" make-flags)
- (setenv "SDL_VIDEODRIVER" "dummy")
- (setenv "PAGER" "cat")
- (apply invoke "make" test-target make-flags))))
- '()))))
- (description "U-Boot is a bootloader used mostly for ARM boards. It
-also initializes the boards (RAM etc). This package provides its
-board-independent tools.")))
-
-(define-public (make-u-boot-package board triplet)
- "Returns a u-boot package for BOARD cross-compiled for TRIPLET."
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key make-flags test-target #:allow-other-keys)
+ (invoke "test/image/test-imagetools.sh")))
+ ;; Only run full test suite on x86_64 systems, as many tests
+ ;; assume x86_64.
+ ,@(if (string-match "^x86_64-linux"
+ (or (%current-target-system)
+ (%current-system)))
+ '((add-after 'check 'check-x86
+ (lambda* (#:key make-flags test-target #:allow-other-keys)
+ (apply invoke "make" "mrproper" make-flags)
+ (setenv "SDL_VIDEODRIVER" "dummy")
+ (setenv "PAGER" "cat")
+ (apply invoke "make" test-target make-flags))))
+ '()))))
+ (description (string-append
+ (package-description u-boot)
+ " This package provides board-independent tools "
+ "of U-Boot."))))
+
+(define*-public (make-u-boot-package board triplet
+ #:key
+ defconfig
+ configs
+ name-suffix
+ append-description)
+ "Return a U-Boot package for BOARD cross-compiled for TRIPLET with the
+optional DEFCONFIG file and optional configuration changes from CONFIGS.
+NAME-SUFFIX is appended to the package name, while APPEND-DESCRIPTION is
+appended to the package description."
(let ((same-arch? (lambda ()
(string=? (%current-system)
(gnu-triplet->nix-system triplet)))))
@@ -697,33 +794,51 @@ board-independent tools.")))
(inherit u-boot)
(name (string-append "u-boot-"
(string-replace-substring (string-downcase board)
- "_" "-")))
+ "_" "-")
+ (or name-suffix "")))
+ (description (if append-description
+ (string-append (package-description u-boot)
+ "\n\n" append-description)
+ (package-description u-boot)))
(native-inputs
`(,@(if (not (same-arch?))
- `(("cross-gcc" ,(cross-gcc triplet))
- ("cross-binutils" ,(cross-binutils triplet)))
- `())
+ `(("cross-gcc" ,(cross-gcc triplet))
+ ("cross-binutils" ,(cross-binutils triplet)))
+ `())
,@(package-native-inputs u-boot)))
(arguments
`(#:modules ((ice-9 ftw)
(srfi srfi-1)
- (guix build utils)
- (guix build gnu-build-system))
+ (guix build gnu-build-system)
+ (guix build kconfig)
+ (guix build utils))
+ #:imported-modules (,@%gnu-build-system-modules
+ (guix build kconfig))
#:test-target "test"
#:make-flags
(list "HOSTCC=gcc"
,@(if (not (same-arch?))
- `((string-append "CROSS_COMPILE=" ,triplet "-"))
- '()))
+ `((string-append "CROSS_COMPILE=" ,triplet "-"))
+ '()))
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs make-flags #:allow-other-keys)
- (let ((config-name (string-append ,board "_defconfig")))
- (if (file-exists? (string-append "configs/" config-name))
- (apply invoke "make" `(,@make-flags ,config-name))
+ (let* ((config-name (string-append ,board "_defconfig"))
+ (config-file (string-append "configs/" config-name))
+ (defconfig ,defconfig)
+ (configs ',configs))
+ (when defconfig
+ ;; Replace the board-specific defconfig with the given one.
+ (copy-file defconfig config-file))
+ (if (file-exists? config-file)
+ (begin
+ (when configs
+ (modify-defconfig config-file configs))
+ (apply invoke "make" `(,@make-flags ,config-name))
+ (verify-config ".config" config-file))
(begin
- (display "Invalid board name. Valid board names are:"
+ (display "invalid board name; valid board names are:"
(current-error-port))
(let ((suffix-len (string-length "_defconfig"))
(entries (scandir "configs")))
@@ -734,7 +849,7 @@ board-independent tools.")))
(string-drop-right file-name
suffix-len))))
(sort entries string-ci<)))
- (error "Invalid boardname ~s." ,board))))))
+ (error "invalid boardname ~s" ,board))))))
(add-after 'configure 'disable-tools-libcrypto
;; Disable libcrypto due to GPL and OpenSSL license
;; incompatibilities
@@ -775,52 +890,37 @@ board-independent tools.")))
(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
(define-public u-boot-am335x-boneblack
- (let ((base (make-u-boot-package "am335x_evm" "arm-linux-gnueabihf")))
- (package
- (inherit base)
- (name "u-boot-am335x-boneblack")
- (description "U-Boot is a bootloader used mostly for ARM boards. It
-also initializes the boards (RAM etc).
-
-This U-Boot is built for the BeagleBone Black, which was removed upstream,
-adjusted from the am335x_evm build with several device trees removed so that
-it fits within common partitioning schemes.")
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'patch-defconfig
- ;; Patch out other devicetrees to build image small enough to
- ;; fit within typical partitioning schemes where the first
- ;; partition begins at sector 2048.
- (lambda _
- (substitute* "configs/am335x_evm_defconfig"
- (("CONFIG_OF_LIST=.*$") "CONFIG_OF_LIST=\"am335x-evm am335x-boneblack\"\n"))
- #t)))))))))
+ (make-u-boot-package
+ "am335x_evm" "arm-linux-gnueabihf"
+ ;; Patch out other device trees to build an image small enough to fit
+ ;; within typical partitioning schemes where the first partition begins at
+ ;; sector 2048.
+ #:configs '("CONFIG_OF_LIST=\"am335x-evm am335x-boneblack\"")
+ #:name-suffix "-boneblack"
+ #:append-description "This U-Boot is built for the BeagleBone Black, which
+was removed upstream, adjusted from the am335x_evm build with several device
+trees removed so that it fits within common partitioning schemes."))
(define-public u-boot-am335x-evm
(make-u-boot-package "am335x_evm" "arm-linux-gnueabihf"))
-(define-public (make-u-boot-sunxi64-package board triplet)
- (let ((base (make-u-boot-package board triplet)))
+(define*-public (make-u-boot-sunxi64-package board triplet
+ #:key defconfig configs)
+ (let ((base (make-u-boot-package
+ board triplet #:defconfig defconfig #:configs configs)))
(package
(inherit base)
(arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (let ((bl31
- (string-append
- (assoc-ref (or native-inputs inputs) "firmware")
- "/bl31.bin")))
- (setenv "BL31" bl31)
- ;; This is necessary when we're using the bundled dtc.
- ;(setenv "PATH" (string-append (getenv "PATH") ":"
- ; "scripts/dtc"))
- )
- #t))))))
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let ((bl31
+ (string-append
+ (assoc-ref (or native-inputs inputs) "firmware")
+ "/bl31.bin")))
+ (setenv "BL31" bl31))))))))
(native-inputs
`(("firmware" ,arm-trusted-firmware-sun50i-a64)
,@(package-native-inputs base))))))
@@ -832,20 +932,11 @@ it fits within common partitioning schemes.")
(make-u-boot-sunxi64-package "pine64-lts" "aarch64-linux-gnu"))
(define-public u-boot-pinebook
- (let ((base (make-u-boot-sunxi64-package "pinebook" "aarch64-linux-gnu")))
- (package
- (inherit base)
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'patch-pinebook-config
- ;; Fix regression with LCD video output introduced in 2020.01
- ;; https://patchwork.ozlabs.org/patch/1225130/
- (lambda _
- (substitute* "configs/pinebook_defconfig"
- (("CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y") "CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y\nCONFIG_VIDEO_BPP32=y"))
- #t)))))))))
+ (make-u-boot-sunxi64-package
+ "pinebook" "aarch64-linux-gnu"
+ ;; Fix regression with LCD video output introduced in 2020.01
+ ;; https://patchwork.ozlabs.org/patch/1225130/
+ #:configs '("CONFIG_VIDEO_BPP32=y")))
(define-public u-boot-bananapi-m2-ultra
(make-u-boot-package "Bananapi_M2_Ultra" "arm-linux-gnueabihf"))
@@ -861,7 +952,14 @@ it fits within common partitioning schemes.")
(define-public u-boot-nintendo-nes-classic-edition
(let ((base (make-u-boot-package "Nintendo_NES_Classic_Edition"
- "arm-linux-gnueabihf")))
+ "arm-linux-gnueabihf"
+ #:append-description "This version is for
+the Nintendo NES Classic Edition. It is assumed that you have added a serial
+port to pins PB0 and PB1 as described on
+@url{https://linux-sunxi.org/Nintendo_NES_Classic_Edition}.
+
+In order to use FEL mode on the device, hold the Reset button on the
+device while it's being turned on (and a while longer).")))
(package
(inherit base)
;; Starting with 2019.01, FEL doesn't work anymore on A33.
@@ -875,16 +973,7 @@ it fits within common partitioning schemes.")
(base32
"0znkwljfwwn4y7j20pzz4ilqw8znphrfxns0x1lwdzh3xbr96z3k"))
(patches (search-patches
- "u-boot-nintendo-nes-serial.patch"))))
- (description "U-Boot is a bootloader used mostly for ARM boards. It
-also initializes the boards (RAM etc).
-
-This version is for the Nintendo NES Classic Edition. It is assumed that
-you have added a serial port to pins PB0 and PB1 as described on
-@url{https://linux-sunxi.org/Nintendo_NES_Classic_Edition}.
-
-In order to use FEL mode on the device, hold the Reset button on the
-device while it's being turned on (and a while longer).")
+ "u-boot-nintendo-nes-serial.patch"))))
(native-inputs
`(("python" ,python-2)
,@(package-native-inputs base))))))
@@ -896,25 +985,14 @@ device while it's being turned on (and a while longer).")
(make-u-boot-package "mx6cuboxi" "arm-linux-gnueabihf"))
(define-public u-boot-novena
- (let ((base (make-u-boot-package "novena" "arm-linux-gnueabihf")))
- (package
- (inherit base)
- (description "U-Boot is a bootloader used mostly for ARM boards. It
-also initializes the boards (RAM etc).
-
-This U-Boot is built for Novena. Be advised that this version, contrary
-to Novena upstream, does not load u-boot.img from the first partition.")
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'patch-novena-defconfig
- ;; Patch configuration to disable loading u-boot.img from FAT partition,
- ;; allowing it to be installed at a device offset.
- (lambda _
- (substitute* "configs/novena_defconfig"
- (("CONFIG_SPL_FS_FAT=y") "# CONFIG_SPL_FS_FAT is not set"))
- #t)))))))))
+ (make-u-boot-package
+ "novena" "arm-linux-gnueabihf"
+ ;; Patch configuration to disable loading u-boot.img from FAT partition,
+ ;; allowing it to be installed at a device offset.
+ #:configs '("# CONFIG_SPL_FS_FAT is not set")
+ #:append-description "This U-Boot is built for Novena. Be advised that this
+version, contrary to Novena upstream, does not load u-boot.img from the first
+partition."))
(define-public u-boot-cubieboard
(make-u-boot-package "Cubieboard" "arm-linux-gnueabihf"))
@@ -927,16 +1005,16 @@ to Novena upstream, does not load u-boot.img from the first partition.")
(package
(inherit base)
(arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BL31"
+ (search-input-file inputs "/bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
(native-inputs
`(("firmware" ,arm-trusted-firmware-rk3399)
,@(package-native-inputs base))))))
@@ -988,65 +1066,62 @@ to Novena upstream, does not load u-boot.img from the first partition.")
(package
(inherit base)
(arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BL31" (search-input-file inputs "/bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
(native-inputs
`(("firmware" ,arm-trusted-firmware-rk3399)
,@(package-native-inputs base))))))
(define-public u-boot-rockpro64-rk3399
- (let ((base (make-u-boot-package "rockpro64-rk3399" "aarch64-linux-gnu")))
+ (let ((base (make-u-boot-package "rockpro64-rk3399" "aarch64-linux-gnu"
+ #:configs '("CONFIG_USB=y"
+ "CONFIG_AHCI=y"
+ "CONFIG_AHCI_PCI=y"
+ "CONFIG_SATA=y"
+ "CONFIG_SATA_SIL=y"
+ "CONFIG_SCSI=y"
+ "CONFIG_SCSI_AHCI=y"
+ "CONFIG_DM_SCSI=y"))))
(package
(inherit base)
(arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- (add-after 'unpack 'patch-config
- (lambda _
- (substitute* "configs/rockpro64-rk3399_defconfig"
- (("CONFIG_USB=y") "\
-CONFIG_USB=y
-CONFIG_AHCI=y
-CONFIG_AHCI_PCI=y
-CONFIG_SATA=y
-CONFIG_SATA_SIL=y
-CONFIG_SCSI=y
-CONFIG_SCSI_AHCI=y
-CONFIG_DM_SCSI=y
-"))
- (substitute* "include/config_distro_bootcmd.h"
- (("\"scsi_need_init=false")
- "\"setenv scsi_need_init false")
- (("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
- "#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
- (substitute* "include/configs/rockchip-common.h"
- (("#define BOOT_TARGET_DEVICES\\(func\\)")
- "
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BL31"
+ (search-input-file inputs "/bl31.elf"))))
+ (add-after 'unpack 'patch-header
+ (lambda _
+ (substitute* "include/config_distro_bootcmd.h"
+ (("\"scsi_need_init=false")
+ "\"setenv scsi_need_init false")
+ (("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
+ "#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
+ (substitute* "include/configs/rockchip-common.h"
+ (("#define BOOT_TARGET_DEVICES\\(func\\)")
+ "
#if CONFIG_IS_ENABLED(CMD_SCSI)
#define BOOT_TARGET_SCSI(func) func(SCSI, scsi, 0)
#else
#define BOOT_TARGET_SCSI(func)
#endif
#define BOOT_TARGET_DEVICES(func)")
- (("BOOT_TARGET_NVME\\(func\\) \\\\")
- "\
+ (("BOOT_TARGET_NVME\\(func\\) \\\\")
+ "\
BOOT_TARGET_NVME(func) \\
BOOT_TARGET_SCSI(func) \\"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
(native-inputs
`(("firmware" ,arm-trusted-firmware-rk3399)
,@(package-native-inputs base))))))
@@ -1056,20 +1131,132 @@ BOOT_TARGET_NVME(func) \\
(package
(inherit base)
(arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'set-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "BL31"
- (search-input-file inputs "/bl31.elf"))))
- ;; Phases do not succeed on the bl31 ELF.
- (delete 'strip)
- (delete 'validate-runpath)))))
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'set-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BL31"
+ (search-input-file inputs "/bl31.elf"))))
+ ;; Phases do not succeed on the bl31 ELF.
+ (delete 'strip)
+ (delete 'validate-runpath)))))
(native-inputs
`(("firmware" ,arm-trusted-firmware-rk3399)
,@(package-native-inputs base))))))
+(define*-public (make-u-boot-bin-package u-boot-package
+ #:key
+ (u-boot-bin "u-boot.bin"))
+ "Return a package with a single U-BOOT-BIN file from the U-BOOT-PACKAGE.
+The package name will be that of the U-BOOT package suffixed with \"-bin\"."
+ (package
+ (name (string-append (package-name u-boot-package) "-bin"))
+ (version (package-version u-boot-package))
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments
+ (list
+ #:builder
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+ (mkdir #$output)
+ (symlink (search-input-file %build-inputs
+ (string-append "libexec/" #$u-boot-bin))
+ (string-append #$output "/" #$u-boot-bin))))))
+ (inputs (list u-boot-package))
+ (home-page (package-home-page u-boot-package))
+ (synopsis (package-synopsis u-boot-package))
+ (description (string-append
+ (package-description u-boot-package)
+ "\n\n"
+ (format #f
+ "This package only contains the file ~a."
+ u-boot-bin)))
+ (license (package-license u-boot-package))))
+
+(define-public %u-boot-rpi-efi-configs
+ '("CONFIG_OF_EMBED"
+ "CONFIG_OF_BOARD=y"))
+
+(define %u-boot-rpi-description-32-bit
+ "This is a 32-bit build of U-Boot.")
+
+(define %u-boot-rpi-description-64-bit
+ "This is a common 64-bit build of U-Boot for all 64-bit capable Raspberry Pi
+variants.")
+
+(define %u-boot-rpi-efi-description
+ "It allows network booting and uses the device-tree from the firmware,
+allowing the usage of overlays. It can act as an EFI firmware for the
+grub-efi-netboot-removable-bootloader.")
+
+(define %u-boot-rpi-efi-description-32-bit
+ (string-append %u-boot-rpi-efi-description " "
+ %u-boot-rpi-description-32-bit))
+
+(define-public u-boot-rpi-2
+ (make-u-boot-package "rpi_2" "arm-linux-gnueabihf"
+ #:append-description %u-boot-rpi-description-32-bit))
+
+(define-public u-boot-rpi-3-32b
+ (make-u-boot-package "rpi_3_32b" "arm-linux-gnueabihf"
+ #:append-description %u-boot-rpi-description-32-bit))
+
+(define-public u-boot-rpi-4-32b
+ (make-u-boot-package "rpi_4_32b" "arm-linux-gnueabihf"
+ #:append-description %u-boot-rpi-description-32-bit))
+
+(define-public u-boot-rpi-arm64
+ (make-u-boot-package "rpi_arm64" "aarch64-linux-gnu"
+ #:append-description %u-boot-rpi-description-64-bit))
+
+(define-public u-boot-rpi-2-efi
+ (make-u-boot-package "rpi_2" "arm-linux-gnueabihf"
+ #:name-suffix "-efi"
+ #:configs %u-boot-rpi-efi-configs
+ #:append-description %u-boot-rpi-efi-description-32-bit))
+
+(define-public u-boot-rpi-3-32b-efi
+ (make-u-boot-package "rpi_3_32b" "arm-linux-gnueabihf"
+ #:name-suffix "-efi"
+ #:configs %u-boot-rpi-efi-configs
+ #:append-description %u-boot-rpi-efi-description-32-bit))
+
+(define-public u-boot-rpi-4-32b-efi
+ (make-u-boot-package "rpi_4_32b" "arm-linux-gnueabihf"
+ #:name-suffix "-efi"
+ #:configs %u-boot-rpi-efi-configs
+ #:append-description %u-boot-rpi-efi-description-32-bit))
+
+(define-public u-boot-rpi-arm64-efi
+ (make-u-boot-package "rpi_arm64""aarch64-linux-gnu"
+ #:name-suffix "-efi"
+ #:configs %u-boot-rpi-efi-configs
+ #:append-description (string-append
+ %u-boot-rpi-efi-description " "
+ %u-boot-rpi-description-64-bit)))
+
+(define-public u-boot-rpi-2-bin (make-u-boot-bin-package u-boot-rpi-2))
+
+(define-public u-boot-rpi-3_32b-bin (make-u-boot-bin-package u-boot-rpi-3-32b))
+
+(define-public u-boot-rpi-4_32b-bin (make-u-boot-bin-package u-boot-rpi-4-32b))
+
+(define-public u-boot-rpi-arm64-bin (make-u-boot-bin-package u-boot-rpi-arm64))
+
+(define-public u-boot-rpi-2-efi-bin (make-u-boot-bin-package u-boot-rpi-2-efi))
+
+(define-public u-boot-rpi-3-32b-efi-bin
+ (make-u-boot-bin-package u-boot-rpi-3-32b-efi))
+
+(define-public u-boot-rpi-4-32b-efi-bin
+ (make-u-boot-bin-package u-boot-rpi-4-32b-efi))
+
+(define-public u-boot-rpi-arm64-efi-bin
+ (make-u-boot-bin-package u-boot-rpi-arm64-efi))
+
(define-public vboot-utils
(package
(name "vboot-utils")
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 8627f699a1..6c1350c44f 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -204,8 +204,8 @@ programs and other files depend.")
(license license:bsd-3)))
(define-public gn
- (let ((commit "e327ffdc503815916db2543ec000226a8df45163")
- (revision "1819")) ;as returned by `git describe`, used below
+ (let ((commit "1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41")
+ (revision "2072")) ;as returned by `git describe`, used below
(package
(name "gn")
(version (git-version "0.0" revision commit))
@@ -215,49 +215,56 @@ programs and other files depend.")
(uri (git-reference (url home-page) (commit commit)))
(sha256
(base32
- "0kvlfj3www84zp1vmxh76x8fdjm9hyk8lkh2vdsidafpmm75fphr"))
+ "02621c9nqpr4pwcapy31x36l5kbyd0vdgd0wdaxj5p8hrxk67d6b"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-before 'configure 'set-build-environment
- (lambda _
- (setenv "CC" "gcc") (setenv "CXX" "g++")
- (setenv "AR" "ar")))
- (replace 'configure
- (lambda _
- (invoke "python" "build/gen.py"
- "--no-last-commit-position")))
- (add-after 'configure 'create-last-commit-position
- (lambda _
- ;; Create "last_commit_position.h" to avoid a dependency
- ;; on 'git' (and the checkout..).
- (call-with-output-file "out/last_commit_position.h"
- (lambda (port)
- (format port
- (string-append
- "#define LAST_COMMIT_POSITION_NUM ~a\n"
- "#define LAST_COMMIT_POSITION \"~a (~a)\"\n")
- ,revision ,revision ,(string-take commit 8))))))
- (replace 'build
- (lambda _
- (invoke "ninja" "-C" "out" "gn"
- "-j" (number->string (parallel-job-count)))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (if tests?
- (begin
- (invoke "ninja" "-C" "out" "gn_unittests"
- "-j" (number->string (parallel-job-count)))
- (invoke "./out/gn_unittests"))
- (format #t "test suite not run~%"))))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (install-file "out/gn" (string-append out "/bin"))))))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'set-build-environment
+ (lambda _
+ (setenv "CC" "gcc")
+ (setenv "CXX" "g++")
+ (setenv "AR" "ar")))
+ (replace 'configure
+ (lambda _
+ (invoke "python" "build/gen.py"
+ "--no-last-commit-position")))
+ (add-after 'configure 'create-last-commit-position
+ (lambda _
+ ;; Mimic GenerateLastCommitPosition from gen.py.
+ (call-with-output-file "out/last_commit_position.h"
+ (lambda (port)
+ (format port
+ "// Generated by Guix.
+
+#ifndef OUT_LAST_COMMIT_POSITION_H_
+#define OUT_LAST_COMMIT_POSITION_H_
+
+#define LAST_COMMIT_POSITION_NUM ~a
+#define LAST_COMMIT_POSITION \"~a (~a)\"
+
+#endif // OUT_LAST_COMMIT_POSITION_H_
+"
+ #$revision #$revision
+ #$(string-take commit 12))))))
+ (replace 'build
+ (lambda _
+ (invoke "ninja" "-C" "out" "gn"
+ "-j" (number->string (parallel-job-count)))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (begin
+ (invoke "ninja" "-C" "out" "gn_unittests"
+ "-j" (number->string (parallel-job-count)))
+ (invoke "./out/gn_unittests"))
+ (format #t "test suite not run~%"))))
+ (replace 'install
+ (lambda _
+ (install-file "out/gn" (string-append #$output "/bin")))))))
(native-inputs
- `(("ninja" ,ninja)
- ("python" ,python-wrapper)))
+ (list ninja python-wrapper))
(synopsis "Generate Ninja build files")
(description
"GN is a tool that collects information about a project from @file{.gn}
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 8cf106b5e4..b544f0e59d 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -515,7 +515,7 @@ capacity is user-selectable.")
#t)))
#:tests? #f)) ; No tests.
(inputs ; TODO package bundled wxvillalib
- `(("wxwidgets" ,wxwidgets-3.1)
+ `(("wxwidgets" ,wxwidgets)
("wssvg" ,wxsvg)
("dbus" ,dbus)
("cdrtools" ,cdrtools)
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index e0a9f5fbad..7ef5104006 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -183,11 +183,11 @@
"third_party/libaddressinput" ;ASL2.0
"third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
"third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3
+ "third_party/libaom/source/libaom/third_party/SVT-AV1" ;BSD-3
"third_party/libaom/source/libaom/third_party/vector" ;Expat
"third_party/libaom/source/libaom/third_party/x86inc" ;ISC
"third_party/libjxl" ;ASL2.0
"third_party/libgav1" ;ASL2.0
- "third_party/libgifcodec" ;MPL1.1/GPL2+/LGPL2.1+, BSD-3, BSD-2
"third_party/libjingle_xmpp" ;BSD-3
"third_party/libphonenumber" ;ASL2.0
"third_party/libsecret" ;LGPL2.1+
@@ -273,7 +273,7 @@
"third_party/utf" ;Expat
"third_party/vulkan-deps" ;ASL2.0, BSD-3, Expat
"third_party/vulkan_memory_allocator" ;Expat
- "third_party/wayland/protocol" ;Expat
+ "third_party/wayland/src/protocol" ;Expat
"third_party/wayland/stubs" ;BSD-3, Expat
"third_party/wayland/wayland_scanner_wrapper.py" ;BSD-3
"third_party/wayland-protocols" ;Expat
@@ -317,10 +317,10 @@
;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests"))
-(define %chromium-version "107.0.5304.121")
+(define %chromium-version "108.0.5359.94")
(define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision "debian/102.0.5005.61-1")
-(define %arch-revision "6afedb08139b97089ce8ef720ece5cd14c83948c")
+(define %arch-revision "4de5019014aeb77187a517c5ca6db8723d622a40")
(define %ungoogled-origin
(origin
@@ -330,7 +330,7 @@
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256
(base32
- "1ns664y7qx0ry8hg8r704z64jmx8j6rpxn2lkliv0xjfwlrbbfx3"))))
+ "0hlrcp34cf6m8c7100m8xr99s02ch0vmkgwl9pqkrinaghh29kgn"))))
(define %debian-origin
(origin
@@ -360,9 +360,6 @@
"system/zlib.patch"
"system/openjpeg.patch")))
-(define %gcc-patches
- '())
-
(define (arch-patch revision name hash)
(origin
(method url-fetch)
@@ -376,10 +373,12 @@
(arch-patch %arch-revision "REVERT-roll-src-third_party-ffmpeg-m102.patch"
"0i7crn6fcwq09kd6a4smqnffaldyv61lmv2p0drcnpfrwalmkprh")
(arch-patch %arch-revision "REVERT-roll-src-third_party-ffmpeg-m106.patch"
- "0li10cvxnppmmmsc7w77b1s7z02s5bzd39zsal9x768708fx64jc")
- ;; Fix crash when using Global Media Controls.
- (arch-patch %arch-revision "REVERT-enable-GlobalMediaControlsCastStartStop.patch"
- "1ilsw421lylkjnq3lvc607bdx7cvwlish8qzgwx9s84l4hzv37vp")))
+ "0li10cvxnppmmmsc7w77b1s7z02s5bzd39zsal9x768708fx64jc")))
+
+(define %arch-patches
+ (list
+ (arch-patch %arch-revision "disable-GlobalMediaControlsCastStartStop.patch"
+ "00m361ka38d60zpbss7qnfw80vcwnip2pjcz3wf46wd2sqi1nfvz")))
(define %guix-patches
(list (local-file
@@ -398,6 +397,9 @@
(assume-valid-file-name
(search-patch "ungoogled-chromium-system-nspr.patch")))))
+(define %patches
+ (append %debian-patches %arch-patches %guix-patches))
+
;; This is a source 'snippet' that does the following:
;; *) Applies various patches for unbundling purposes and libstdc++ compatibility.
;; *) Runs the ungoogled patch-, domain substitution-, and scrubbing scripts.
@@ -419,8 +421,7 @@
(for-each (lambda (patch)
(invoke "patch" "-p1" "--force" "--input"
patch "--no-backup-if-mismatch"))
- (append '#+%debian-patches '#+%guix-patches
- '#+%gcc-patches))
+ '#+%patches)
;; These patches are "reversed", i.e. their changes should be undone.
(for-each (lambda (patch)
@@ -495,7 +496,7 @@
%chromium-version ".tar.xz"))
(sha256
(base32
- "12z0fhgxcsdkf6shnsg9maj3v901226cjcy8y2x8m88maw2apc0j"))
+ "1zmndi4q9x8fyixwl1mp5qyf883x9xafq7ipzf9vk9d8h62521q6"))
(modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
@@ -561,7 +562,7 @@
"use_system_libjpeg=true"
"use_system_libopenjpeg2=true"
"use_system_libpng=true"
- "use_system_libwayland_server=true"
+ "use_system_libwayland=true"
"use_system_wayland_scanner=true"
(string-append "system_wayland_scanner_path=\""
(search-input-file %build-inputs
@@ -613,11 +614,12 @@
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-stuff
(lambda* (#:key inputs #:allow-other-keys)
- (let ((openjpeg (search-input-directory
- inputs "include/openjpeg-2.4")))
+ (let* ((libopenjp2 (search-input-file inputs "lib/libopenjp2.so"))
+ (openjpeg (dirname (dirname libopenjp2))))
(substitute* "third_party/pdfium/BUILD.gn"
;; This include path is added by Debians openjpeg patch.
- (("/usr/include/openjpeg-2.4") openjpeg))
+ (("/usr/include/openjpeg-")
+ (string-append openjpeg "/include/openjpeg-")))
;; Adjust minizip header inclusions.
(substitute* (find-files "third_party/tflite_support\
@@ -910,7 +912,7 @@
gdk-pixbuf
glib
gtk+
- harfbuzz-3
+ harfbuzz-5
icu4c-71
jsoncpp
lcms
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 1bbbb1e2fe..0ed978a768 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -391,7 +391,7 @@ features that are not supported by the standard @code{stdio} implementation.")
(define-public universal-ctags
(package
(name "universal-ctags")
- (version "5.9.20220807.0")
+ (version "5.9.20221127.0")
(source
(origin
(method git-fetch)
@@ -401,7 +401,7 @@ features that are not supported by the standard @code{stdio} implementation.")
(file-name (git-file-name name version))
(sha256
(base32
- "1wjj6hlda7xyjm8yrl2zz74ks7azymm9yyrpz36zxxpx2scf6lsk"))
+ "0nvkx5j2vyzjf935a2s5w56gamlr6f12jy1x38bkqz78p5l0d3ja"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index f60ed4f597..d2a1ed36f7 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1127,7 +1127,7 @@ tarballs.")
(define-public libjcat
(package
(name "libjcat")
- (version "0.1.11")
+ (version "0.1.12")
(source
(origin
(method git-fetch)
@@ -1137,7 +1137,7 @@ tarballs.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "08zywwhm9q8m8v17w2mp23w3w93p40ir1w4x18zrlbhs10xnhiys"))))
+ (base32 "0fbcmnpc0y7s2ls3q829dv3ardhv0m5gxqqmbn0dnkzgkh42vv7p"))))
(build-system meson-build-system)
(native-inputs
(list gobject-introspection help2man pkg-config))
@@ -2695,7 +2695,7 @@ to their original, binary CD format.")
(define-public libdeflate
(package
(name "libdeflate")
- (version "1.12")
+ (version "1.14")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2704,7 +2704,7 @@ to their original, binary CD format.")
(file-name (git-file-name name version))
(sha256
(base32
- "16n9232zjavcp5wp17cx0gh2v7gipxpncsha05j3ybajfs7g88jv"))))
+ "09y69mnbv3mprgjp53zvin5zqznqajginrk5b25xmi9y0b83bns8"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
diff --git a/gnu/packages/cook.scm b/gnu/packages/cook.scm
index 7a064480d4..584f561ceb 100644
--- a/gnu/packages/cook.scm
+++ b/gnu/packages/cook.scm
@@ -24,8 +24,8 @@
#:use-module (guix download)
#:use-module (gnu packages ed)
#:use-module (gnu packages bison)
- #:use-module (gnu packages groff)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages groff)
#:use-module (guix build-system gnu))
(define-public cook
@@ -70,7 +70,7 @@
(setenv "SH" (which "sh"))
#t)))))
- (native-inputs (list bison
+ (native-inputs (list bison-3.0
;; For building the documentation:
groff
;; For the tests:
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index ad0657ef3b..5c5258d6e0 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -307,14 +307,14 @@ etc.")
(define-public r-datawizard
(package
(name "r-datawizard")
- (version "0.6.3")
+ (version "0.6.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "datawizard" version))
(sha256
(base32
- "0cn9ixljf4l333d401pz5rcwqkzpl6d90as153j1wrkz9rjzm6i7"))))
+ "0iv3h08bzmijrxyv2jz70jf53i2bk14kh0vq9a93fms5z08jv19p"))))
(properties `((upstream-name . "datawizard")))
(build-system r-build-system)
(propagated-inputs
@@ -710,13 +710,13 @@ can read and write both the metadata and the cell data in a Sheet.")
(define-public r-proj4
(package
(name "r-proj4")
- (version "1.0-11")
+ (version "1.0-12")
(source (origin
(method url-fetch)
(uri (cran-uri "proj4" version))
(sha256
(base32
- "07fil52jswbg2h807cd82m2wlm5j2fb891ifri9ms037099qdwf5"))))
+ "1y3n6zjc4s78pagq5f2x9sdfjg5x5nwnhq67jd06fndlsma8mssa"))))
(properties `((upstream-name . "proj4")))
(build-system r-build-system)
(inputs (list proj-7 zlib))
@@ -931,14 +931,14 @@ similar rank-based tests for equal probability distributions due to Neuhauser
(define-public r-v8
(package
(name "r-v8")
- (version "4.2.1")
+ (version "4.2.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "V8" version))
(sha256
(base32
- "1w1zihmhrygn2i674wimbv7xqjnwlld4x3ndvh5dl4cdg7s1m24r"))))
+ "0friwpw3cbg40hfsqnlp8g3a6l4zhfag6lh005ya6dw634kkarah"))))
(properties `((upstream-name . "V8")))
(build-system r-build-system)
(arguments
@@ -1076,6 +1076,32 @@ size and can be easily tested locally before being sent to a remote.")
the system clipboards.")
(license license:gpl3)))
+(define-public r-clock
+ (package
+ (name "r-clock")
+ (version "0.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "clock" version))
+ (sha256
+ (base32
+ "00hp7k24d599dzkzhhb6xky2pj6xaggdfwgviyb3i592v1gkh37q"))))
+ (properties `((upstream-name . "clock")))
+ (build-system r-build-system)
+ (propagated-inputs (list r-cpp11 r-rlang r-tzdb r-vctrs))
+ (native-inputs (list r-knitr))
+ (home-page "https://clock.r-lib.org")
+ (synopsis "Date-Time types and tools")
+ (description
+ "This package provides a comprehensive library for date-time
+manipulations using a new family of orthogonal date-time
+classes (durations, time points, zoned-times, and calendars) that
+partition responsibilities so that the complexities of time zones are
+only considered when they are really needed. Capabilities include:
+date-time parsing, formatting, arithmetic, extraction and updating of
+components, and rounding.")
+ (license license:expat)))
+
(define-public r-clvalid
(package
(name "r-clvalid")
@@ -1101,13 +1127,13 @@ BSI. Further information can be found in Brock, G et al. (2008) <doi:
(define-public r-dlm
(package
(name "r-dlm")
- (version "1.1-5")
+ (version "1.1-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "dlm" version))
(sha256
- (base32 "1aksm66sfa7ipl5xgs4j5giac7q2m744wjl40mva56xn6i674h4r"))))
+ (base32 "0mxfakryagyg2idjhw1ydp4xqk57s3z17cv69hj16lisx8q43pc9"))))
(properties `((upstream-name . "dlm")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/package=dlm")
@@ -1783,13 +1809,13 @@ control over dimensions and appearance.")
(define-public r-philentropy
(package
(name "r-philentropy")
- (version "0.6.0")
+ (version "0.7.0")
(source (origin
(method url-fetch)
(uri (cran-uri "philentropy" version))
(sha256
(base32
- "1dpf4hfflp4mcql4na46wzcq1flabkipiwyycz9wj5xbxlmcz2hk"))))
+ "1dw46p2bk68hqbc44629lywg5r1mdaz37ahccgmsx07fg8rf4wnf"))))
(properties `((upstream-name . "philentropy")))
(build-system r-build-system)
(propagated-inputs (list r-kernsmooth r-poorman r-rcpp))
@@ -2417,14 +2443,14 @@ same time tries to group instances from the same class together.")
(define-public r-callr
(package
(name "r-callr")
- (version "3.7.2")
+ (version "3.7.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "callr" version))
(sha256
(base32
- "01q3b0w1cbrryvv1dwvnyd3j1f09xmhnwg1wskc51r3r4qhqmnhj"))))
+ "0knh5yxhxwjz96kbjrq524w4j8cac10k6mghhmblq79s0zgzwysn"))))
(build-system r-build-system)
(propagated-inputs
(list r-r6 r-processx))
@@ -2512,17 +2538,40 @@ supported for the trees and a test for parameter heterogeneity is provided for
the personalised models.")
(license license:gpl2+)))
+(define-public r-modelenv
+ (package
+ (name "r-modelenv")
+ (version "0.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "modelenv" version))
+ (sha256
+ (base32
+ "18wgl3hslvwq4z8ab91514p5nhzxzb727s61ccawvx3ixfjfrid4"))))
+ (properties `((upstream-name . "modelenv")))
+ (build-system r-build-system)
+ (propagated-inputs (list r-glue r-rlang r-tibble r-vctrs))
+ (home-page "https://github.com/tidymodels/modelenv")
+ (synopsis "Tools for registering models for use in tidymodels")
+ (description
+ "This is a developer-focused, low dependency package in
+@code{tidymodels} that provides functions to register how models are
+to be used. Functions to register models are complimented with
+accessor functions to retrieve registered model information to aid in
+model fitting and error handling.")
+ (license license:expat)))
+
(define-public r-modelr
(package
(name "r-modelr")
- (version "0.1.9")
+ (version "0.1.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "modelr" version))
(sha256
(base32
- "1jd9vxirj5ii4ac0ka07g0rcq1c8yqv06jg27nmvp5a6kvlgvs8h"))))
+ "0qqgdb7gpb1h9lf5zijg51gd0qmbzj8f37aykhv1w633cglacick"))))
(build-system r-build-system)
(propagated-inputs
(list r-broom
@@ -2657,13 +2706,13 @@ in systems and applications.")
(define-public r-servr
(package
(name "r-servr")
- (version "0.24")
+ (version "0.25")
(source (origin
(method url-fetch)
(uri (cran-uri "servr" version))
(sha256
(base32
- "11x0857m3xzdbzr4z0vx4fcdk36arfagyf2qgamvprich0qisknr"))))
+ "0g77lpyfjaibcpqb3z723z1p82msjdnc74f2n5l740z91560vbp6"))))
(build-system r-build-system)
(propagated-inputs
(list r-httpuv r-jsonlite r-mime r-xfun))
@@ -2997,14 +3046,14 @@ jQuery.")
(define-public r-sass
(package
(name "r-sass")
- (version "0.4.2")
+ (version "0.4.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "sass" version))
(sha256
(base32
- "0iln5ky6k1ix0gddlyw4rr2953kc499x66bcyi9yiyp91nfh82dl"))))
+ "0hk5svmpbhx9q3ni3qll2pa7q3pfc0zxv616kp62r6vakn1az16j"))))
(properties `((upstream-name . "sass")))
(build-system r-build-system)
(propagated-inputs
@@ -3059,14 +3108,14 @@ expression estimates for all genes.")
(define-public r-bslib
(package
(name "r-bslib")
- (version "0.4.0")
+ (version "0.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "bslib" version))
(sha256
(base32
- "1hkmaj0mpygbf6qr1955biv9z4q3khflyqi5x0c3dwi6qz74xspv"))
+ "0bz6w34shk2pijq5hvjv2bg8xhhg4yazn4wcix7436yi9k41zgaf"))
(snippet
'(for-each delete-file
'("inst/lib/bs-a11y-p/plugins/js/bootstrap-accessibility.min.js"
@@ -3830,14 +3879,14 @@ files). It currently supports linked brushing and filtering.")
(define-public r-rook
(package
(name "r-rook")
- (version "1.1-1")
+ (version "1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "Rook" version))
(sha256
(base32
- "00s9a0kr9rwxvlq433daxjk4ji8m0w60hjdprf502msw9kxfrx00"))))
+ "0qjziszrrwsp1mbykps3yf5r98q83cyd4jzpgi7gvbsd2ssy96n7"))))
(properties `((upstream-name . "Rook")))
(build-system r-build-system)
(propagated-inputs (list r-brew))
@@ -3981,16 +4030,16 @@ complex non-linear objective function with a very large number of optima.")
(define-public r-geosphere
(package
(name "r-geosphere")
- (version "1.5-14")
+ (version "1.5-18")
(source
(origin
(method url-fetch)
(uri (cran-uri "geosphere" version))
(sha256
(base32
- "0bg4vfmrw140j2ax0p6bflvb77w03ir39wa87l96rj473jpa9hzj"))))
+ "1h6sqvxwxv22js6hz4s8sjk50ygw0y34icbbbdb2v36ca3q6zzwr"))))
(build-system r-build-system)
- (propagated-inputs (list r-sp))
+ (propagated-inputs (list r-rcpp r-sp))
(home-page "https://cran.r-project.org/web/packages/geosphere")
(synopsis "Spherical trigonometry")
(description "This package computes spherical trigonometry for geographic
@@ -4001,14 +4050,14 @@ applications. That is, compute distances and related measures for angular
(define-public r-jpeg
(package
(name "r-jpeg")
- (version "0.1-9")
+ (version "0.1-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "jpeg" version))
(sha256
(base32
- "0wihj538wdnr71wdldym83qadb4kh68a6rkallwbh2f25r27b881"))))
+ "1jkqj58hj33ar9wyl7c1cnj3h42icq7crmjk93n933q8qc4zdnf8"))))
(build-system r-build-system)
(inputs (list libjpeg-turbo))
(home-page "https://www.rforge.net/jpeg/")
@@ -4021,17 +4070,18 @@ files and in-memory raw vectors.")
(define-public r-ggmap
(package
(name "r-ggmap")
- (version "3.0.0")
+ (version "3.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggmap" version))
(sha256
(base32
- "13dmzl6z62pzjiffilarkji46vy0sacxa8a7mhrhc3biq3ylzhln"))))
+ "0pg38zyxv1j6mwdwdqljynqrg7zjwqpsh65xdwmvbl0zgxa4p0pw"))))
(build-system r-build-system)
(propagated-inputs
(list r-bitops
+ r-cli
r-digest
r-dplyr
r-ggplot2
@@ -4043,7 +4093,7 @@ files and in-memory raw vectors.")
r-png
r-purrr
r-rgooglemaps
- r-rjson
+ r-rlang
r-scales
r-stringr
r-tibble
@@ -4420,13 +4470,13 @@ processes. Most of its code is based on the @code{psutil} Python package.")
(define-public r-pkgbuild
(package
(name "r-pkgbuild")
- (version "1.3.1")
+ (version "1.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "pkgbuild" version))
(sha256
- (base32 "0j6v5nbp8kg1m3j999gd1qsbdmqcqm1mf28ngmm177miwv8q4skw"))))
+ (base32 "1mjyln5njbvi0k97w8az2v5klmas6pqiz68mlylfll4nr503qzrm"))))
(build-system r-build-system)
(propagated-inputs
(list r-callr
@@ -4434,6 +4484,7 @@ processes. Most of its code is based on the @code{psutil} Python package.")
r-crayon
r-desc
r-prettyunits
+ r-processx
r-r6
r-rprojroot
r-withr))
@@ -4448,14 +4499,14 @@ is configured appropriately so R can use them.")
(define-public r-pkgload
(package
(name "r-pkgload")
- (version "1.3.1")
+ (version "1.3.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "pkgload" version))
(sha256
(base32
- "16k7n5hrwkzdwm54qyf5p6d1v5rf6vq688x48iylw6bygc6vgf66"))))
+ "0bvbnj98b1yaiksdmfi017g2w3229a5pcsnpjamzrvpy5c1rml9m"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli
@@ -5116,13 +5167,13 @@ most popular ones.")
(define-public r-sp
(package
(name "r-sp")
- (version "1.5-0")
+ (version "1.5-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "sp" version))
(sha256
- (base32 "077q1wh9ihhcn1338xspnd90hy16ljxsav1xcrxdxj4fyynhd6lk"))))
+ (base32 "1pr9yb2wqapyizdfpi7zqd4a5b40q58czbfj6svvp2fkh6sfmfb9"))))
(build-system r-build-system)
(propagated-inputs
(list r-lattice))
@@ -5321,14 +5372,14 @@ spreadsheet software.")
(define-public r-extremes
(package
(name "r-extremes")
- (version "2.1-2")
+ (version "2.1-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "extRemes" version))
(sha256
(base32
- "19q560prq02h3bwk01jb68693qb5bhsv8wiqhia7v5knm34qv8x7"))))
+ "0h1w177vz3z58vbqrfbiqapf9z2qsd7gcbv8fnbyn0i5akfz1k71"))))
(properties `((upstream-name . "extRemes")))
(build-system r-build-system)
(propagated-inputs
@@ -5888,6 +5939,31 @@ techniques from R packages and provides a common interface for calling the
methods.")
(license license:gpl3)))
+(define-public r-timechange
+ (package
+ (name "r-timechange")
+ (version "0.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "timechange" version))
+ (sha256
+ (base32
+ "0w3zbmzhg3zr5d9aa83kmr6gyhk75l7jysa7zs0pnz9x4ffr20w5"))))
+ (properties `((upstream-name . "timechange")))
+ (build-system r-build-system)
+ (propagated-inputs (list r-cpp11))
+ (home-page "https://github.com/vspinu/timechange/")
+ (synopsis "Efficient manipulation of Date-Times")
+ (description
+ "This package provides efficient routines for manipulation of
+date-time objects while accounting for time-zones and daylight saving
+times. The package includes utilities for updating of date-time
+components (year, month, day etc.), modification of time-zones,
+rounding of date-times, period addition and subtraction etc. Parts of
+the CCTZ source code, released under the Apache 2.0 License, are
+included in this package.")
+ (license license:gpl3)))
+
(define-public r-timedate
(package
(name "r-timedate")
@@ -5912,14 +5988,14 @@ calendar objects.")
(define-public r-magic
(package
(name "r-magic")
- (version "1.6-0")
+ (version "1.6-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "magic" version))
(sha256
(base32
- "1gybia2aq80ldk1d845y5srncfzbbmpqhgl7vfaz7qqqjs6d85j5"))))
+ "0xkrrg5qk62pfqx0avijdjaljzslpwd0hv2m52qnqwrbx5xfqyfa"))))
(build-system r-build-system)
(propagated-inputs
(list r-abind))
@@ -6235,17 +6311,18 @@ provides a one-row summary of model-level statistics.")
(define-public r-recipes
(package
(name "r-recipes")
- (version "1.0.2")
+ (version "1.0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "recipes" version))
(sha256
(base32
- "03k7spw5vivj35lwqj8xj259smgc04qxkdimk5ck9yj656d5lyqs"))))
+ "0pi7j1jj5dmc5kzx6zkm691xya7dw4fn8c8nb2x3gs8mp14spzhg"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli
+ r-clock
r-dplyr
r-ellipsis
r-generics
@@ -6305,14 +6382,14 @@ for certain use cases.")
(define-public r-ggrepel
(package
(name "r-ggrepel")
- (version "0.9.1")
+ (version "0.9.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggrepel" version))
(sha256
(base32
- "1z5xyr5f4aryy0v1gzz9m8m4s5fzzwbrf0fxll1nbflr8xnr3yr9"))))
+ "123lh86qs7w1i3v8i1a08jxlwx4sy32bpznyclm8wlkph728hc0a"))))
(build-system r-build-system)
(propagated-inputs
(list r-ggplot2 r-rcpp r-rlang r-scales))
@@ -6378,13 +6455,13 @@ color labels, layout, etc.")
(define-public r-stringdist
(package
(name "r-stringdist")
- (version "0.9.9")
+ (version "0.9.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "stringdist" version))
(sha256
- (base32 "0pkggr25azadczhnsxc9wh1753wigf3wijyvwfc2ip5a42c1f55x"))))
+ (base32 "1s3cy2q6l4ppgslwfbfydi5f3kzshfhzkb25gz546n7jgw5jxm3g"))))
(build-system r-build-system)
(home-page "https://github.com/markvanderloo/stringdist")
(synopsis "Approximate string matching and string distance functions")
@@ -6474,17 +6551,17 @@ response matrices.")
(define-public r-ordinal
(package
(name "r-ordinal")
- (version "2019.12-10")
+ (version "2022.11-16")
(source
(origin
(method url-fetch)
(uri (cran-uri "ordinal" version))
(sha256
(base32
- "09bpmjmbf4x82kgf6bm4bkncq2apdv9mk20zj4zgma2jx2vyfhbs"))))
+ "14yld28vjmvxbwz6mapfri4vrj3nsf9p73fn2z80j6jkz8fsv22l"))))
(build-system r-build-system)
(propagated-inputs
- (list r-mass r-matrix r-numderiv r-ucminf))
+ (list r-mass r-matrix r-nlme r-numderiv r-ucminf))
(home-page "https://github.com/runehaubo/ordinal")
(synopsis "Regression models for ordinal data")
(description
@@ -6568,14 +6645,14 @@ analysis of multiply imputed data sets.")
(define-public r-mice
(package
(name "r-mice")
- (version "3.14.0")
+ (version "3.15.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "mice" version))
(sha256
(base32
- "01fnfrr7adp29s5kic95r9q0rdznkz2pjmziyimnrqzyicyvfyzq"))))
+ "0yz88b40mpn24z40yfpxrkwrsxk362gwks3v5x69rkix1qkdsr1x"))))
(build-system r-build-system)
(propagated-inputs
(list r-broom
@@ -6585,8 +6662,7 @@ analysis of multiply imputed data sets.")
r-lattice
r-rcpp
r-rlang
- r-tidyr
- r-withr))
+ r-tidyr))
(home-page "https://cran.r-project.org/web/packages/mice/")
(synopsis "Multivariate imputation by chained equations")
(description
@@ -7325,13 +7401,13 @@ iVAT).")
(define-public r-xfun
(package
(name "r-xfun")
- (version "0.34")
+ (version "0.35")
(source
(origin
(method url-fetch)
(uri (cran-uri "xfun" version))
(sha256
- (base32 "0gc5lbk73bf0yhvc7wwz7hbq39hvphd8xdsgwi2c125rxcgnrrsh"))))
+ (base32 "04x6y7f3f105fzxn2kzmvfz0zqf2v28g8aqnsln6q9n4lm74vz45"))))
(build-system r-build-system)
;; knitr itself depends on xfun
#;
@@ -7412,14 +7488,14 @@ estimated from a given sample.")
(define-public r-vctrs
(package
(name "r-vctrs")
- (version "0.5.0")
+ (version "0.5.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "vctrs" version))
(sha256
(base32
- "11pnblg2fpa3lr5hbiyw6w7wvlkdvqw35wxrkffcxnlxqc9jwdvw"))))
+ "01yv85rjpn9cz4473m768awrcaif51ffjh29p097c7pj2zvq4ya9"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli r-glue r-lifecycle r-rlang))
@@ -9740,14 +9816,14 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
(define-public r-rastervis
(package
(name "r-rastervis")
- (version "0.51.2")
+ (version "0.51.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "rasterVis" version))
(sha256
(base32
- "0kgg6cm7xjqya2d46w0i1i1wjpkb8f99lyqy7rgwa7l9xmwzj5n1"))))
+ "1z4vwjmx8n01jc2ypqs1pmx70rc3pjaz3ahk8j8zcif40v0qgy6i"))))
(properties `((upstream-name . "rasterVis")))
(build-system r-build-system)
(propagated-inputs
@@ -9822,14 +9898,14 @@ reproducible.")
(define-public r-learnr
(package
(name "r-learnr")
- (version "0.11.1")
+ (version "0.11.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "learnr" version))
(sha256
(base32
- "1p3943hv3ybmbcyfbxidd55dripi0570pf5l51hwz9r3635cx3zs"))))
+ "1w8lcghnqvmggfp90hdpcjflvnxyp5shfk48vq5s4kci8414dm6j"))))
(build-system r-build-system)
(native-inputs (list r-knitr))
(propagated-inputs
@@ -10113,14 +10189,14 @@ and adds the annotation to the plot.")
(define-public r-rstatix
(package
(name "r-rstatix")
- (version "0.7.0")
+ (version "0.7.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "rstatix" version))
(sha256
(base32
- "0330y8iziffqg8j9j5h9zv4qcdyf8ybhmzxrr9fzq9nc6bf1gbm5"))))
+ "0c001w1mj8jw7gzmix90wzzb9kj45q173mzl7pmvykm77zpn61ak"))))
(properties `((upstream-name . "rstatix")))
(build-system r-build-system)
(propagated-inputs
@@ -10150,14 +10226,14 @@ matrix.")
(define-public r-ggpubr
(package
(name "r-ggpubr")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggpubr" version))
(sha256
(base32
- "0x86lmghr25k8w90yrp360dn42dhp5cjvjpdiv2s2gxfn701xcmb"))))
+ "0fbm3rcpsabb7j7sdr69scqiq1bnx2623ji9ap9v4rmqqy8s08gv"))))
(build-system r-build-system)
(propagated-inputs
(list r-cowplot
@@ -10530,14 +10606,14 @@ hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.")
(define-public r-rbibutils
(package
(name "r-rbibutils")
- (version "2.2.9")
+ (version "2.2.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "rbibutils" version))
(sha256
(base32
- "11pzbqykmn7m9gp5jspfcj6vij865wqf9ry6m3jkihvfj7zhfb5j"))))
+ "1xqpij07d19nvg18kyikpm37r3fharkdmxzm0cjddmqwv757lim6"))))
(properties `((upstream-name . "rbibutils")))
(build-system r-build-system)
(home-page "https://geobosh.github.io/rbibutils/")
@@ -10704,14 +10780,14 @@ or missing responses.")
(define-public r-acdm
(package
(name "r-acdm")
- (version "1.0.4.1")
+ (version "1.0.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ACDm" version))
(sha256
(base32
- "129ykw0j8z30mr4c01qzx6qy6h4bl87zxvmps0vkh8cqb7akninq"))))
+ "00i33b76gqllyc6ywwwrgyjvxfspqb3jf52b9sjaazlfwgn5xyjf"))))
(properties `((upstream-name . "ACDm")))
(build-system r-build-system)
(propagated-inputs
@@ -10814,14 +10890,14 @@ Decomposition in R (Beaton et al 2014) <doi:10.1016/j.csda.2013.11.006>.")
(define-public r-insight
(package
(name "r-insight")
- (version "0.18.6")
+ (version "0.18.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "insight" version))
(sha256
(base32
- "1bhwfx75lnjrvn6byl2dn8fzfh2in2msghxwyy9jwpvnxk4c63db"))))
+ "01bm7w8f80i550gwv41kakaxp0d5a2pqa2s3ihz36snkczmdlapm"))))
(build-system r-build-system)
(native-inputs
(list r-knitr))
@@ -10950,14 +11026,14 @@ functions.")
(define-public r-flextable
(package
(name "r-flextable")
- (version "0.8.2")
+ (version "0.8.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "flextable" version))
(sha256
(base32
- "054rkx98qhwp8i4fj9jkv5297sc4g193wfs6b537q62iyqmcjlx3"))))
+ "0fqc0zq1w7fdnql2m96g0rpichfpwrhyinnld29ddaw0d742gfj5"))))
(build-system r-build-system)
(propagated-inputs
(list r-base64enc
@@ -11713,13 +11789,13 @@ ABC algorithms.")
(define-public r-abctools
(package
(name "r-abctools")
- (version "1.1.3")
+ (version "1.1.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "abctools" version))
(sha256
- (base32 "07s9dg10i8lsxl73b4n2hynca2fjgb0ykb0dz8c3zv6cgw3cyx97"))))
+ (base32 "02c473fqj7yd27flma2x7flqzqbrnba2xfcjy466nww0sm1vvhjg"))))
(build-system r-build-system)
(propagated-inputs
(list r-abc r-abind r-hmisc r-plyr))
@@ -11735,16 +11811,16 @@ and coverage methods to tune the choice of threshold.")
(define-public r-ggstance
(package
(name "r-ggstance")
- (version "0.3.5")
+ (version "0.3.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggstance" version))
(sha256
- (base32 "0jz9vvnmcc6a38n8nzr458r65sna23bgn5r8mxdhzdlyqibihr7d"))))
+ (base32 "0wk3gbi5365sndi02gwd4c33vcrj5p8cfwakwjg010y5hgxx96nd"))))
(build-system r-build-system)
(propagated-inputs
- (list r-ggplot2 r-plyr r-rlang r-withr))
+ (list r-cli r-ggplot2 r-plyr r-rlang r-withr))
(home-page "https://cran.r-project.org/web/packages/ggstance/")
(synopsis "Horizontal and vertical versions of @code{r-ggplot2}")
(description
@@ -11807,14 +11883,14 @@ repeated measures data, respectively.")
(define-public r-gam
(package
(name "r-gam")
- (version "1.20.2")
+ (version "1.22")
(source
(origin
(method url-fetch)
(uri (cran-uri "gam" version))
(sha256
(base32
- "1ndgnaq5fk1w6l6z93w5gd22887yxkykrchbdbx366qmz8v8wcyg"))))
+ "0gyrg73f63ccars1639n0gv6cnh8ixp7p7lgdxb2yjl240lk0c9i"))))
(properties `((upstream-name . "gam")))
(build-system r-build-system)
(propagated-inputs
@@ -12077,14 +12153,14 @@ used to teach mathematics, statistics, computation and modeling.")
(define-public r-raster
(package
(name "r-raster")
- (version "3.6-3")
+ (version "3.6-11")
(source
(origin
(method url-fetch)
(uri (cran-uri "raster" version))
(sha256
(base32
- "1in3n0hqzcdhibjl3y82nwn6m6wcv4k3l6s2jw57jn32qgvy01lz"))))
+ "1arvmhf3ijzh3aanw8n6mdnwk4h26axsxpszvr5g43l7g5vfmggf"))))
(build-system r-build-system)
(propagated-inputs
(list r-rcpp r-sp r-terra))
@@ -12655,13 +12731,13 @@ multiple-imputation datasets.")
(define-public r-mixsqp
(package
(name "r-mixsqp")
- (version "0.3-43")
+ (version "0.3-48")
(source (origin
(method url-fetch)
(uri (cran-uri "mixsqp" version))
(sha256
(base32
- "1qics04w0swyp216d6g8dmsph8q2kpadpacp66h2qih3521js12q"))))
+ "02cjg33m5iqziyy0xi11wvbm5qnlgfy51r1dbpjzyhqsrv1dfx48"))))
(properties `((upstream-name . "mixsqp")))
(build-system r-build-system)
(propagated-inputs
@@ -13242,14 +13318,14 @@ correlation, censored, ordered and multivariate problems.")
(define-public r-bayesplot
(package
(name "r-bayesplot")
- (version "1.9.0")
+ (version "1.10.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "bayesplot" version))
(sha256
(base32
- "0hqy597ang53phxnl084hak35ffqz9lw9hygax7370gpkjws908a"))))
+ "1zqka7lg7a6ccli1yzhk1n13vbrlp8m0kjxmykjqmkz438mvjk5v"))))
(build-system r-build-system)
(inputs
(list pandoc))
@@ -13305,17 +13381,18 @@ detection, parallelism through BLAS and parallel user templates.")
(define-public r-sjstats
(package
(name "r-sjstats")
- (version "0.18.1")
+ (version "0.18.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "sjstats" version))
(sha256
- (base32 "1cv80yjnyh6qihxf57zivihhia20gibr5f03x8aspy6382wnwlka"))))
+ (base32 "0a1y6bqyvgs0avzasr8g6vwcxcnj4d9g0rfz2qiznwadpjzqw66h"))))
(build-system r-build-system)
(propagated-inputs
(list r-bayestestr
r-broom
+ r-datawizard
r-dplyr
r-effectsize
r-emmeans
@@ -13348,14 +13425,14 @@ models.")
(define-public r-glmmtmb
(package
(name "r-glmmtmb")
- (version "1.1.4")
+ (version "1.1.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "glmmTMB" version))
(sha256
(base32
- "1ldly6qn8iwqr41ndqlwsdz4v2n36giavsmx33vybn9g7r2fq4m7"))))
+ "1yh8q0l3l8hm408k8khjj1hff3nkqx0wq6a41fddwfmrq1alfjrk"))))
(properties `((upstream-name . "glmmTMB")))
(build-system r-build-system)
(propagated-inputs
@@ -13408,14 +13485,14 @@ ROPE percentage and pd).")
(define-public r-performance
(package
(name "r-performance")
- (version "0.10.0")
+ (version "0.10.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "performance" version))
(sha256
(base32
- "15yx75y17h3l1v7jpp8zbygy64lz7kds5yrgd7wrzw56564d2rhb"))))
+ "1m2zzznfbla8qdm0kxbj5vp431kpygpi4d70042hkg1ly3fyg7pz"))))
(build-system r-build-system)
(propagated-inputs
(list r-bayestestr r-datawizard r-insight))
@@ -13488,13 +13565,13 @@ conversion of indices such as Cohen's d, r, odds, etc.")
(define-public r-sjplot
(package
(name "r-sjplot")
- (version "2.8.11")
+ (version "2.8.12")
(source
(origin
(method url-fetch)
(uri (cran-uri "sjPlot" version))
(sha256
- (base32 "05iimcf1if1cx9bmsjb6f5gcq58hjiw10vx7kqd4nqnyhzcvy8yr"))))
+ (base32 "0g6r4p1r70jjzw74177kxcx2br2n206jwlqazw0vxcsbffb8a411"))))
(properties `((upstream-name . "sjPlot")))
(build-system r-build-system)
(propagated-inputs
@@ -14550,13 +14627,13 @@ isosurfaces.")
(define-public r-ks
(package
(name "r-ks")
- (version "1.13.5")
+ (version "1.14.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ks" version))
(sha256
- (base32 "05bqrjkbx2kn5aax0hy3xd6pf7nxka9bm1sp8ll1cc2gf1nx1i6i"))))
+ (base32 "14a3pcxxcsfkqz5j6n2wlxkp0gsdp5mzdq7ipcjb65q2gdmwbf9d"))))
(build-system r-build-system)
(propagated-inputs
(list r-fnn
@@ -14727,14 +14804,14 @@ al. (2010) <DOI:10.1016/j.neuroimage.2010.04.241>, Tabelow and Polzehl (2011)
(define-public r-fmsb
(package
(name "r-fmsb")
- (version "0.7.3")
+ (version "0.7.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "fmsb" version))
(sha256
(base32
- "1gi94xr0b1yk9xzwfprfafxi25yic1lcivd66p73n6iqfzdaimbk"))))
+ "1rmmvx38rmamiw0ajqhlksgxj6fgm8ymq903yxqq2bzxx8fhj5n2"))))
(build-system r-build-system)
(home-page "http://minato.sip21c.org/msb/")
(synopsis "Functions for medical statistics book with demographic data")
@@ -15628,14 +15705,14 @@ and compatibility with @code{ape} objects.")
(define-public r-rnifti
(package
(name "r-rnifti")
- (version "1.4.2")
+ (version "1.4.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "RNifti" version))
(sha256
(base32
- "1zr9g102zhb1h6a06p141g1jq0ik94kah8r3z3q2zharj30y2waz"))))
+ "1w627brzag9laxsfrr1kxh07glycl8l1n5xf5frn8m0jzvrn3d50"))))
(properties `((upstream-name . "RNifti")))
(build-system r-build-system)
(inputs (list zlib))
@@ -15671,13 +15748,13 @@ creating color scales and calculating color distances.")
(define-public r-ore
(package
(name "r-ore")
- (version "1.7.1.1")
+ (version "1.7.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ore" version))
(sha256
- (base32 "0rs5r5h11x4l4nsbl4xqzbl4ahajd5374fq05abcmfjnjr9j64w5"))))
+ (base32 "104506x9x14bs8lfhydwpgdh4qws2vqkvyy6xrlrviqlll6qbjgg"))))
(build-system r-build-system)
(home-page "https://github.com/jonclayden/ore")
(synopsis "R interface to the Onigmo regular expression library")
@@ -16067,14 +16144,14 @@ preparing, executing, and processing HTTP requests.")
(define-public r-gmp
(package
(name "r-gmp")
- (version "0.6-7")
+ (version "0.6-8")
(source
(origin
(method url-fetch)
(uri (cran-uri "gmp" version))
(sha256
(base32
- "119z6q3xca1ysdpjfmq3crplj355vlwggxvqh2gs4yi63xlzwcv3"))))
+ "0fba80f28fcb2w2spiy6wg7dr5cz7w6gf9z3yrkc6p60zbxdaccf"))))
(build-system r-build-system)
(arguments
'(#:phases
@@ -17103,14 +17180,14 @@ subsetting.")
(define-public r-globals
(package
(name "r-globals")
- (version "0.16.1")
+ (version "0.16.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "globals" version))
(sha256
(base32
- "158y39qv99f1kc2i7w8d4lm2ls96plb43fzamz31im9xb9bkmxpp"))))
+ "02kpdlrx1bannaixz03c0f7bii9g36iy2nw779mfgi56byljcb38"))))
(build-system r-build-system)
(propagated-inputs
(list r-codetools))
@@ -17155,14 +17232,14 @@ port-forwarding to your local computer.")
(define-public r-future
(package
(name "r-future")
- (version "1.28.0")
+ (version "1.29.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "future" version))
(sha256
(base32
- "1xhv0nf97yxxxsmxczyqqbnb4yn5sfn5vzvhm9dmw9csrmmadpbg"))))
+ "0ws3jp82qjpnvgn5xrxdq7hg7r97rkylj329f9jqr69g3paiyvc5"))))
(build-system r-build-system)
(arguments
`(#:phases
@@ -17190,14 +17267,14 @@ the local machine to, say, distributed processing on a remote compute cluster.")
(define-public r-future-apply
(package
(name "r-future-apply")
- (version "1.9.1")
+ (version "1.10.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "future.apply" version))
(sha256
(base32
- "0cr141mamjxby79sww02493yal9lahslvp3a3ic7f856rbawq8jg"))))
+ "1all7ri4nsjxfakw8pssif22j33ch1nhw3sc0raqrzhj93c2vsfy"))))
(properties `((upstream-name . "future.apply")))
(build-system r-build-system)
(arguments
@@ -17323,14 +17400,14 @@ chosen parallel environment and associated foreach backend.")
(define-public r-blockmodeling
(package
(name "r-blockmodeling")
- (version "1.1.3")
+ (version "1.1.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "blockmodeling" version))
(sha256
(base32
- "19mxmxsnl6rrh85p0sak91vcaw4dz2cnm70hdzfwnvdrr695yw2z"))))
+ "1f6jx8pwp3pnhs4wwxdrd1ska3h4w2423dpd11illxfajvnigkk9"))))
(build-system r-build-system)
(propagated-inputs
(list r-matrix))
@@ -18112,14 +18189,14 @@ running IRkernel session.")
(define-public r-irkernel
(package
(name "r-irkernel")
- (version "1.3")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "IRkernel" version))
(sha256
(base32
- "00qrmsywpzw2hfp88020zjaijma7q4hqm9h2cz53rywdjzywnzss"))))
+ "03343ds7sprql1c6h41dibk40rc3225mzxca452ns967fyhy71ii"))))
(properties `((upstream-name . "IRkernel")))
(build-system r-build-system)
(arguments
@@ -18520,14 +18597,14 @@ barplots or heatmaps.")
(define-public r-seqinr
(package
(name "r-seqinr")
- (version "4.2-16")
+ (version "4.2-23")
(source
(origin
(method url-fetch)
(uri (cran-uri "seqinr" version))
(sha256
(base32
- "0cj07b7km5mla63qhbkxg1mnqq6vh79lsyyfpnbm29gw68w2bwy4"))))
+ "14zv47cdrx9rpyxzccyikp0zxvcqrviw7bid0qhiixvji4bp88dg"))))
(build-system r-build-system)
(propagated-inputs
(list r-ade4 r-segmented))
@@ -18617,14 +18694,14 @@ univariate class intervals for mapping or other graphics purposes.")
(define-public r-spdata
(package
(name "r-spdata")
- (version "2.2.0")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "spData" version))
(sha256
(base32
- "07whxr039cxvk2nn65jada3i8vqqw34lgca9j17ah8chy9r0m73f"))))
+ "1ddkk8c4dblv5p2rqvqx8b89k8pazvvq48rlw661vf2iwwvm8d2m"))))
(properties `((upstream-name . "spData")))
(build-system r-build-system)
(propagated-inputs
@@ -18717,14 +18794,14 @@ high-performance functions are provided here.")
(define-public r-s2
(package
(name "r-s2")
- (version "1.1.0")
+ (version "1.1.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "s2" version))
(sha256
(base32
- "05n459rp5b1wk826sq3c5d2z1xwgkpfp8m1jnfshvs4gadlfkap3"))))
+ "07c9f8ghfjqdjcw50by3y4j8nbsmmcwd4a3vpcwsxr4mvybckq0w"))))
(properties `((upstream-name . "s2")))
(build-system r-build-system)
(arguments
@@ -18758,14 +18835,14 @@ information about geometries.")
(define-public r-sf
(package
(name "r-sf")
- (version "1.0-8")
+ (version "1.0-9")
(source
(origin
(method url-fetch)
(uri (cran-uri "sf" version))
(sha256
(base32
- "0cl7m47ar3iw95rpwpmjl23frdbscxa15q39mlzmwswxwy871p1x"))))
+ "0fq1v2ksnllyd5yx7ch8f298aqiys4v6xacswy0h4xb418dcgh45"))))
(build-system r-build-system)
(inputs
(list gdal geos proj sqlite zlib))
@@ -18994,13 +19071,13 @@ either PDF/EPS files.")
(define-public r-polspline
(package
(name "r-polspline")
- (version "1.1.20")
+ (version "1.1.22")
(source
(origin
(method url-fetch)
(uri (cran-uri "polspline" version))
(sha256
- (base32 "1dd1jwiaglkkhajzvqfkd1x5r3wzjlk5ww0yxzmns0s1kr74i4k9"))))
+ (base32 "0ys5sxr5q55ip49dsc3kbgcr3bn9dj5bblmshwm4jz8d0a7ikwmj"))))
(build-system r-build-system)
(native-inputs (list gfortran))
(home-page "https://cran.r-project.org/web/packages/polspline/")
@@ -19099,14 +19176,14 @@ include
(define-public r-haplo-stats
(package
(name "r-haplo-stats")
- (version "1.8.9")
+ (version "1.9.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "haplo.stats" version))
(sha256
(base32
- "0np9kw4f30xbvwr4f79g909ilis5n273ridmlwyzjxiskiry6mx0"))))
+ "1397rxcqqz29yaf3f2gphg1jhmfw3wvvjvqk7cz01jdh3pihdh56"))))
(properties `((upstream-name . "haplo.stats")))
(build-system r-build-system)
(propagated-inputs
@@ -19147,14 +19224,14 @@ lines. It includes maximum likelihood and Bayesian tools.")
(define-public r-ibdreg
(package
(name "r-ibdreg")
- (version "0.3.6")
+ (version "0.3.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "ibdreg" version))
(sha256
(base32
- "1x8z0vr2cmdks12hxfm0wwxskb0cr669w5j5rpa2ln8q704yy41g"))))
+ "0c4svyfd7xjx9k6pl40l7y9rc67zschs0nz1l386xi1m7arsp44n"))))
(build-system r-build-system)
(home-page "https://www.mayo.edu/research/labs/\
statistical-genetics-genetic-epidemiology/software")
@@ -19260,13 +19337,13 @@ SELECT or UPDATE queries to an end-point.")
(define-public r-bookdown
(package
(name "r-bookdown")
- (version "0.29")
+ (version "0.30")
(source (origin
(method url-fetch)
(uri (cran-uri "bookdown" version))
(sha256
(base32
- "08zpky94bdbjsbhi90pymxpczpfkjxwbx7p1v7ip8raw9b23skjv"))))
+ "1i54sbrdv2c9l6pcm3229wlwdnhn0x6f2918adszm5k8qdp0h74i"))))
(build-system r-build-system)
(propagated-inputs
(list r-htmltools
@@ -20331,13 +20408,13 @@ analysis.")
(define-public r-png
(package
(name "r-png")
- (version "0.1-7")
+ (version "0.1-8")
(source (origin
(method url-fetch)
(uri (cran-uri "png" version))
(sha256
(base32
- "0g2mcp55lvvpx4kd3mn225mpbxqcq73wy5qx8b4lyf04iybgysg2"))))
+ "077nca3x0l6mq2g6izknzcn994bqs3nfqk7wscrjbfk2dnxzldjs"))))
(build-system r-build-system)
(inputs
(list libpng zlib))
@@ -20376,14 +20453,14 @@ function for computing a matrix of correlation p-values.")
(define-public r-ggfun
(package
(name "r-ggfun")
- (version "0.0.7")
+ (version "0.0.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggfun" version))
(sha256
(base32
- "0x71p3mm0sw72hv92368wy2yiy7zv826p3kddpwndqv1bywmyfx8"))))
+ "04kn367mzgrfwnwz97vw5jqp2kig94hmxmhyyic7ddvk3sfhwx2w"))))
(properties `((upstream-name . "ggfun")))
(build-system r-build-system)
(propagated-inputs
@@ -20716,14 +20793,14 @@ external dependencies. This package has is implemented purely in R.")
(define-public r-aplot
(package
(name "r-aplot")
- (version "0.1.8")
+ (version "0.1.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "aplot" version))
(sha256
(base32
- "17256cdn46cii97s0h2zmah9vs116ybnih78734lpkn7kmvdfcfr"))))
+ "04mv2jhkk47sqmm69dbcmy84han2k19sv6vnmk572xbm19i661xg"))))
(properties `((upstream-name . "aplot")))
(build-system r-build-system)
(propagated-inputs
@@ -20939,14 +21016,14 @@ Row} (CSR) format.")
(define-public r-text2vec
(package
(name "r-text2vec")
- (version "0.6.2")
+ (version "0.6.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "text2vec" version))
(sha256
(base32
- "1as58w1hb6h0hpncwcr2nx9a8bj5fy6bfllx2a8ck8hal764iach"))))
+ "1hi7ydb7xkgbff4lwnnz1biyl8m90w16hn3x5rrzvscvm53sj4y7"))))
(properties `((upstream-name . "text2vec")))
(build-system r-build-system)
(propagated-inputs
@@ -21141,14 +21218,14 @@ batch correction, and data correction.")
(define-public r-styler
(package
(name "r-styler")
- (version "1.8.0")
+ (version "1.8.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "styler" version))
(sha256
(base32
- "1iw4nj68aj4psysrpyy7s6g3r3vhpfk8s05n6d20m2qmmk0p92sg"))))
+ "1sc1xr9pfrbd2yyzyyxpj8dd81djmsr00gxgr0mr18habyl5yl0m"))))
(build-system r-build-system)
;; This is needed by R.cache.
(arguments
@@ -21277,14 +21354,14 @@ experiments in a well-organized and reproducible way.")
(define-public r-clue
(package
(name "r-clue")
- (version "0.3-62")
+ (version "0.3-63")
(source
(origin
(method url-fetch)
(uri (cran-uri "clue" version))
(sha256
(base32
- "1lhybs6rhq8zs7q15ahng7c93liiygr64i2zwg3ya6maqji3ynjp"))))
+ "0c402fb3r1cxd0j6ikjhssq2k22lbnsq4k7vjpgvyx4a4ly2h4yr"))))
(build-system r-build-system)
(propagated-inputs (list r-cluster))
(home-page "https://cran.r-project.org/web/packages/clue/")
@@ -21532,14 +21609,14 @@ includes data sets from oceanography.")
(define-public r-ggfortify
(package
(name "r-ggfortify")
- (version "0.4.14")
+ (version "0.4.15")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggfortify" version))
(sha256
(base32
- "038m74azpy43869ax1yi6wxbl1kr59iaxl8raiikjg749vcx6njw"))))
+ "1cfwv8jjy1yk0l5wnp48ql1javvrzq1wnh1lv49xp6rynz00lxm8"))))
(build-system r-build-system)
(propagated-inputs
(list r-dplyr
@@ -22100,14 +22177,14 @@ be used further by e.g. graphic devices.")
(define-public r-graphlayouts
(package
(name "r-graphlayouts")
- (version "0.8.3")
+ (version "0.8.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "graphlayouts" version))
(sha256
(base32
- "08a4cpy0n90hw8xzmxck13hp76yh40r0njb2m7mwdldljkbybr7r"))))
+ "1zch8v0fc9lrm1pklcvi7g4g7zmqq3gxprm7pbdx018b35z8z3bp"))))
(properties `((upstream-name . "graphlayouts")))
(build-system r-build-system)
(propagated-inputs
@@ -22125,14 +22202,14 @@ emphasize hidden group structures in networks or focus on specific nodes.")
(define-public r-terra
(package
(name "r-terra")
- (version "1.6-17")
+ (version "1.6-41")
(source
(origin
(method url-fetch)
(uri (cran-uri "terra" version))
(sha256
(base32
- "00mwigymvsqf7r3swbkdw8fwqzr05ddk84fhyhr16lfa4118z26v"))))
+ "0n0si3b6l88w0svvpc999slqack1djdd96jc0m8fdkwp0nwi3hkc"))))
(properties `((upstream-name . "terra")))
(build-system r-build-system)
(inputs
@@ -22221,14 +22298,14 @@ cell RNA-seq experiments.")
(define-public r-assertr
(package
(name "r-assertr")
- (version "2.8")
+ (version "3.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "assertr" version))
(sha256
(base32
- "00764vv86r3bn4r85in4w637harffyw605fgq0dj6mrbrwcfb650"))))
+ "1wi3mz968clvwqg6mbm32zhj4vyfskklk72b4028cjsfdry6bpfp"))))
(build-system r-build-system)
(propagated-inputs
(list r-dplyr r-mass r-rlang))
@@ -22246,14 +22323,14 @@ in pipelines.")
(define-public r-parameters
(package
(name "r-parameters")
- (version "0.19.0")
+ (version "0.20.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "parameters" version))
(sha256
(base32
- "10cl8vgcjncnry6qkkr41yyh8ngxxn81hwqqqix9g7pwpbf3c2mf"))))
+ "16y92q4h385sqc7xgdcrdmdvw0l8plxxbhcdsnx4gqqgm8di9l9p"))))
(properties `((upstream-name . "parameters")))
(build-system r-build-system)
(propagated-inputs
@@ -22274,13 +22351,13 @@ effect size.")
(define-public r-rgdal
(package
(name "r-rgdal")
- (version "1.5-32")
+ (version "1.6-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "rgdal" version))
(sha256
- (base32 "1vbkyhw8nd7dw1r53qisphav31x6zvpbzilvnlvbjbj9hzhs90s5"))))
+ (base32 "0g83r9lzq79hs7mk31kqym1sjqnmk53j3nikrn2vk257v854pavy"))))
(properties `((upstream-name . "rgdal")))
(build-system r-build-system)
(inputs
@@ -23385,14 +23462,14 @@ facilitates insertion into pipelines, and content inspection.")
(define-public r-rngwell
(package
(name "r-rngwell")
- (version "0.10-7")
+ (version "0.10-8")
(source
(origin
(method url-fetch)
(uri (cran-uri "rngWELL" version))
(sha256
(base32
- "0f1dxxaimfb0fww8ym9ciqf6q760ai46wxldl37m5mfpd57ca00c"))))
+ "0ad1mz11l27h6apil2hd7gwz5zhi9jkjrk2jnhbkd8d0wz9g0sis"))))
(properties `((upstream-name . "rngWELL")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/rngWELL/")
@@ -23430,14 +23507,14 @@ and prints vectorized images.")
(define-public r-randtoolbox
(package
(name "r-randtoolbox")
- (version "2.0.2")
+ (version "2.0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "randtoolbox" version))
(sha256
(base32
- "0mvafd2gm1jpg19gdn6bw8668pqghi0xmcb56rl4fwamg8jg09xn"))))
+ "0i23wj9nmsfy3x2yzlfadzrvil2yhcrxs6qxrykrqs15r9jwx3hm"))))
(properties `((upstream-name . "randtoolbox")))
(build-system r-build-system)
(propagated-inputs
@@ -23589,14 +23666,14 @@ models.")
(define-public r-gamlss
(package
(name "r-gamlss")
- (version "5.4-3")
+ (version "5.4-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "gamlss" version))
(sha256
(base32
- "0xih19zqgpjl5qv5j38ana6x29y84shn2jfl2lk4kaw3q7yx86b6"))))
+ "1cm0rvihniad309j26ll8kabndqzs3wdh5dak70b60z4kljrfx4c"))))
(properties `((upstream-name . "gamlss")))
(build-system r-build-system)
(propagated-inputs
@@ -25669,14 +25746,14 @@ automatically show a loader when the output is (re)calculating.")
(define-public r-rsvg
(package
(name "r-rsvg")
- (version "2.3.2")
+ (version "2.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "rsvg" version))
(sha256
(base32
- "1lx84x5dnxj1xdsidwfg9i6fkay7ldarwrbg0gl0f02wajf8ifsz"))))
+ "1schf5gfqzvwmaigdsic5va9bbk9ycvcisiyll8xjjw116y9cxyb"))))
(properties `((upstream-name . "rsvg")))
(build-system r-build-system)
(inputs
@@ -25982,14 +26059,14 @@ Raftery, Appl.Statistics, 1989); it includes inference and basic methods.")
(define-public r-forecast
(package
(name "r-forecast")
- (version "8.18")
+ (version "8.19")
(source
(origin
(method url-fetch)
(uri (cran-uri "forecast" version))
(sha256
(base32
- "1pfq2b1ppkbg3a9bag4jrfsjclf0c7mdqbhf1l08h6fqv6lbl82r"))))
+ "1l3mdldghsf319fh8gx81w8f5i5mnrcn70rjjylzk4j8n7gicpih"))))
(properties `((upstream-name . "forecast")))
(build-system r-build-system)
(propagated-inputs
@@ -26331,14 +26408,14 @@ errors; tetrachoric and biserial correlations are special cases.")
(define-public r-msm
(package
(name "r-msm")
- (version "1.6.9")
+ (version "1.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "msm" version))
(sha256
(base32
- "08vhazswyxr3y1zb9y60mbg3bappzlizxml8s08p65mh82xxkz5f"))))
+ "1c0dvmrjxx551n207fq4yjr56rdchaf1zzldxx4rx4b6g7jgi2bz"))))
(properties `((upstream-name . "msm")))
(build-system r-build-system)
(propagated-inputs
@@ -27474,14 +27551,14 @@ linear systems can be manageable using the @code{Matrix} package along with
(define-public r-zvcv
(package
(name "r-zvcv")
- (version "2.1.1")
+ (version "2.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ZVCV" version))
(sha256
(base32
- "0gc76j9i8fkm2v638nyzzb1qxl4zmapbspkkaffb8gi5qyjja448"))))
+ "0ws0v7i6r7skb8lv6j718k29v5qsy1b007jxidv81iv0jcz9zfpy"))))
(properties `((upstream-name . "ZVCV")))
(build-system r-build-system)
(propagated-inputs
@@ -27704,13 +27781,13 @@ appropriate dog and cat images for many status codes.")
(define-public r-latex2exp
(package
(name "r-latex2exp")
- (version "0.9.5")
+ (version "0.9.6")
(source (origin
(method url-fetch)
(uri (cran-uri "latex2exp" version))
(sha256
(base32
- "153br3xflvnnxqhkhm1wgwb2664bw08alhslgdcgjdk73clafhla"))))
+ "1jp0l0hi5kv4yh28qg2yj2z5fj33gnfvdz2g2v4ibn516fj2d636"))))
(build-system r-build-system)
(propagated-inputs
(list r-stringr r-magrittr))
@@ -27726,13 +27803,13 @@ rendered as text, axis labels, etc. throughout R's plotting system.")
(define-public r-oai
(package
(name "r-oai")
- (version "0.3.2")
+ (version "0.4.0")
(source (origin
(method url-fetch)
(uri (cran-uri "oai" version))
(sha256
(base32
- "1zcbcxhw692s0y6izvwazyzhgx0iwsxsbcan2nk0mb7n11p7bypb"))))
+ "0czf8f2qcjl9lh48svicpis09d3iwz9cndfm7hq8wlz5dl3dwh7m"))))
(build-system r-build-system)
(propagated-inputs
(list r-xml2 r-httr r-plyr r-stringr r-tibble))
@@ -28232,14 +28309,14 @@ here.")
(define-public r-projpred
(package
(name "r-projpred")
- (version "2.2.1")
+ (version "2.2.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "projpred" version))
(sha256
(base32
- "1bbjrjaj6zzb1ph69x16i40fj2j6cg8vzmmw2rchsn0ygphaq9b8"))))
+ "0fycjmaqbcr3vp5708003flvi9ny4z04acgbcfly1ird0kcw9s3v"))))
(properties `((upstream-name . "projpred")))
(build-system r-build-system)
(propagated-inputs
@@ -28249,6 +28326,7 @@ here.")
r-lme4
r-loo
r-magrittr
+ r-mass
r-mgcv
r-mvtnorm
r-rcpp
@@ -28486,14 +28564,14 @@ amounts of memory.")
(define-public r-boruta
(package
(name "r-boruta")
- (version "7.0.0")
+ (version "8.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "Boruta" version))
(sha256
(base32
- "0y2w4wb45kfnzrxcrdsiwgal9fsnlr3wad1sqdc70qv8gp921xbg"))))
+ "1irx7qg1sw69ggsk4jgxfd3pp741kd944fipnda1qbcbphg5prrq"))))
(properties `((upstream-name . "Boruta")))
(build-system r-build-system)
(propagated-inputs (list r-ranger))
@@ -28898,13 +28976,13 @@ doi.org/10.1007/s10115-013-0679-x} for details.")
(define-public r-memuse
(package
(name "r-memuse")
- (version "4.2-1")
+ (version "4.2-2")
(source (origin
(method url-fetch)
(uri (cran-uri "memuse" version))
(sha256
(base32
- "1wvwnjaaiv2647561z2b55dss35033ildx4kk8hzxfzgsjmdpsgm"))))
+ "1rdp8wi9sd03qdak7mifvdc1szgk0fdzmhbikdfsza8xshm2pp33"))))
(properties `((upstream-name . "memuse")))
(build-system r-build-system)
(home-page "https://github.com/shinra-dev/memuse")
@@ -29025,6 +29103,90 @@ arrays collapsed in specific extents by summing along the appropriate
diagonals. This package allows you to compute the tensor product of arrays.")
(license license:gpl2+)))
+(define-public r-spatstat-explore
+ (package
+ (name "r-spatstat-explore")
+ (version "3.0-5")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "spatstat.explore" version))
+ (sha256
+ (base32
+ "0qn8dmymbnh9vdw0hysijkk2nwz5q69i62smpp8f3wy3z898lhwz"))))
+ (properties `((upstream-name . "spatstat.explore")))
+ (build-system r-build-system)
+ (propagated-inputs
+ (list r-abind
+ r-goftest
+ r-matrix
+ r-nlme
+ r-spatstat-data
+ r-spatstat-geom
+ r-spatstat-random
+ r-spatstat-sparse
+ r-spatstat-utils))
+ (home-page "https://spatstat.org/")
+ (synopsis "Exploratory data analysis for the spatstat family")
+ (description
+ "This package implements functionality for exploratory data
+analysis and nonparametric analysis of spatial data, mainly spatial
+point patterns, in the @code{spatstat} family of packages. Methods
+include quadrat counts, K-functions and their simulation envelopes,
+nearest neighbour distance and empty space statistics, Fry plots, pair
+correlation function, kernel smoothed intensity, relative risk
+estimation with cross-validated bandwidth selection, mark correlation
+functions, segregation indices, mark dependence diagnostics, and
+kernel estimates of covariate effects. Formal hypothesis tests of
+random pattern (chi-squared, Kolmogorov-Smirnov, Monte Carlo,
+Diggle-Cressie-Loosmore-Ford, Dao-Genton, two-stage Monte Carlo) and
+tests for covariate effects (Cox-Berman-Waller-Lawson,
+Kolmogorov-Smirnov, ANOVA) are also supported.")
+ (license license:gpl2+)))
+
+(define-public r-spatstat-model
+ (package
+ (name "r-spatstat-model")
+ (version "3.0-2")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "spatstat.model" version))
+ (sha256
+ (base32
+ "0a6lf5y0k13h60s0lnwwfrmxswl7avcg4fhqmha1nmycidhga8z9"))))
+ (properties `((upstream-name . "spatstat.model")))
+ (build-system r-build-system)
+ (propagated-inputs
+ (list r-abind
+ r-goftest
+ r-matrix
+ r-mgcv
+ r-nlme
+ r-rpart
+ r-spatstat-data
+ r-spatstat-explore
+ r-spatstat-geom
+ r-spatstat-random
+ r-spatstat-sparse
+ r-spatstat-utils
+ r-tensor))
+ (home-page "https://spatstat.org/")
+ (synopsis "Parametric statistical modelling for the spatstat family")
+ (description
+ "This package implements functionality for exploratory data
+analysis and nonparametric analysis of spatial data, mainly spatial
+point patterns, in the spatstat family of packages. Methods include
+quadrat counts, K-functions and their simulation envelopes, nearest
+neighbour distance and empty space statistics, Fry plots, pair
+correlation function, kernel smoothed intensity, relative risk
+estimation with cross-validated bandwidth selection, mark correlation
+functions, segregation indices, mark dependence diagnostics, and
+kernel estimates of covariate effects. Formal hypothesis tests of
+random pattern (chi-squared, Kolmogorov-Smirnov, Monte Carlo,
+Diggle-Cressie-Loosmore-Ford, Dao-Genton, two-stage Monte Carlo) and
+tests for covariate effects (Cox-Berman-Waller-Lawson,
+Kolmogorov-Smirnov, ANOVA) are also supported.")
+ (license license:gpl2+)))
+
(define-public r-spatstat-utils
(package
(name "r-spatstat-utils")
@@ -29151,22 +29313,23 @@ user-level code from spatstat, except for the code for linear networks.")
(define-public r-spatstat-linnet
(package
(name "r-spatstat-linnet")
- (version "2.3-2")
+ (version "3.0-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.linnet" version))
(sha256
(base32
- "0y1py6x0xbw4ad3pjwcspi4ysgfh61f5fd79787zzgyyh2va8y4w"))))
+ "1y9crkj9sa1hnfsfkyyq8zv6fgafv07b8w0y01qps1rd6virnns0"))))
(properties
`((upstream-name . "spatstat.linnet")))
(build-system r-build-system)
(propagated-inputs
(list r-matrix
- r-spatstat-core
r-spatstat-data
+ r-spatstat-explore
r-spatstat-geom
+ r-spatstat-model
r-spatstat-random
r-spatstat-sparse
r-spatstat-utils))
@@ -29180,13 +29343,13 @@ for spatial data on a linear network.")
(define-public r-spatstat-random
(package
(name "r-spatstat-random")
- (version "2.2-0")
+ (version "3.0-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.random" version))
(sha256
- (base32 "0kb01s8k67ydcfqcnz3i55vpiksihh4xsg0w2p2bclxxkpdvpw25"))))
+ (base32 "1dp58dxw7ln9bsls9ssbb917qakvgr9nf2jci6zq31rv0rf8934k"))))
(properties `((upstream-name . "spatstat.random")))
(build-system r-build-system)
(propagated-inputs (list r-spatstat-data r-spatstat-geom r-spatstat-utils))
@@ -29208,19 +29371,20 @@ sampler).")
(define-public r-spatstat
(package
(name "r-spatstat")
- (version "2.3-4")
+ (version "3.0-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat" version))
(sha256
(base32
- "1nlrp7660y68axlm4pczc5rxbdhbbac1ylh69azr4swj1gbzi82f"))))
+ "1k8qs5hsy0n4rh7ccp6bdnqgbw3fvjdp55bc0zhjqwbbhq8c0ax0"))))
(properties `((upstream-name . "spatstat")))
(build-system r-build-system)
(propagated-inputs
- (list r-spatstat-core r-spatstat-data r-spatstat-geom
- r-spatstat-linnet r-spatstat-random r-spatstat-utils))
+ (list r-spatstat-data r-spatstat-explore r-spatstat-geom
+ r-spatstat-linnet r-spatstat-model r-spatstat-random
+ r-spatstat-utils))
(home-page "http://www.spatstat.org")
(synopsis "Spatial Point Pattern analysis, model-fitting, simulation, tests")
(description
@@ -29998,14 +30162,14 @@ more.")
(define-public r-workflows
(package
(name "r-workflows")
- (version "1.1.0")
+ (version "1.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "workflows" version))
(sha256
(base32
- "0l5v5qmgj1qv2bk50kv59k2nydh1r97hmqffyxkfpkh2121b2qaq"))))
+ "1wlgx7gl4h9szw9lr6ck9mnkrflah0wfbs56fialbl7wd5jv6hcg"))))
(properties `((upstream-name . "workflows")))
(build-system r-build-system)
(propagated-inputs
@@ -30014,6 +30178,7 @@ more.")
r-glue
r-hardhat
r-lifecycle
+ r-modelenv
r-parsnip
r-rlang
r-tidyselect
@@ -30172,18 +30337,18 @@ different palettes and includes both diverging and sequential types.")
(define-public r-slider
(package
(name "r-slider")
- (version "0.2.2")
+ (version "0.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "slider" version))
(sha256
(base32
- "1vxk2bc33svwcki2j8zr5jcxswh27i0fqgzjw2a5a1pp9dh3fmd3"))))
+ "18gw0bxpbb00qcafmyv2avyj83s710hrj10x998ch9qbbyx1fsmw"))))
(properties `((upstream-name . "slider")))
(build-system r-build-system)
(propagated-inputs
- (list r-ellipsis r-glue r-rlang r-vctrs r-warp))
+ (list r-cli r-rlang r-vctrs r-warp))
(native-inputs (list r-knitr))
(home-page "https://github.com/DavisVaughan/slider")
(synopsis "Sliding window functions")
@@ -30275,18 +30440,19 @@ Design} (SFD) and to test their quality.")
(define-public r-dials
(package
(name "r-dials")
- (version "1.0.0")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "dials" version))
(sha256
(base32
- "0flpd7bxknsscv0gk6c7zz1aid9y3z6sibkvjp9zcyc5wnqldrvj"))))
+ "1ly675h6shfclikwg82x8vwvrb63qmklamrbsqxsa0npbafqgvpb"))))
(properties `((upstream-name . "dials")))
(build-system r-build-system)
(propagated-inputs
- (list r-dicedesign
+ (list r-cli
+ r-dicedesign
r-dplyr
r-glue
r-hardhat
@@ -30634,14 +30800,14 @@ analysis using @code{dplyr}, @code{ggplot2}, and other Tidy tools.")
(define-public r-parsnip
(package
(name "r-parsnip")
- (version "1.0.2")
+ (version "1.0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "parsnip" version))
(sha256
(base32
- "171crglp6ncy41iyb60gj6xp7zn2vnbffgbgpszrahf6j2hhxvw4"))))
+ "1s1d5zjwag5a13y67l7sz4zj1w0dv0k7vpb6inz4x87d5rgchfi1"))))
(properties `((upstream-name . "parsnip")))
(build-system r-build-system)
(propagated-inputs
@@ -31002,14 +31168,14 @@ designs. Broman et al. (2018) <doi:10.1534/genetics.118.301595>.")
(define-public r-seqminer
(package
(name "r-seqminer")
- (version "8.4")
+ (version "8.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "seqminer" version))
(sha256
(base32
- "1mbx1hw9dhgry7hhan43g6aiz2lyd5api7wxq3fwajyzjrc6p1g8"))))
+ "1ki8b4bgb3ky9y3x2g56h7i94lk345awgwkg10lys022jxhm30d7"))))
(build-system r-build-system)
(inputs
(list zlib))
@@ -31024,14 +31190,14 @@ data (variant call format, e.g. VCF or BCF) or meta-analysis results in R.")
(define-public r-maldiquant
(package
(name "r-maldiquant")
- (version "1.21")
+ (version "1.22")
(source
(origin
(method url-fetch)
(uri (cran-uri "MALDIquant" version))
(sha256
(base32
- "1y1g3819ss06dry70kfhg2syddw71682qmzkcyppfsma6hhghw87"))))
+ "05fhr7945m0qxh7f5c4ax9v2k32s4n4v4xc1dm1crk1vbzha40bv"))))
(properties `((upstream-name . "MALDIquant")))
(build-system r-build-system)
(native-inputs
@@ -31074,14 +31240,14 @@ data to rasters. It speeds up plotting of data with millions of points.")
(define-public r-seuratobject
(package
(name "r-seuratobject")
- (version "4.1.2")
+ (version "4.1.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "SeuratObject" version))
(sha256
(base32
- "03bd4fazcafaf5mp37cf9w6bxm9zwrlxkrqm9bjdnwxm07slanba"))))
+ "1lw6v5mwq0sngjr33j99r5h42kaxlbq271a51xzkcnhnyra2fpaq"))))
(properties `((upstream-name . "SeuratObject")))
(build-system r-build-system)
(propagated-inputs
@@ -31091,7 +31257,6 @@ data to rasters. It speeds up plotting of data with millions of points.")
r-progressr
r-rcpp
r-rcppeigen
- r-rgeos
r-rlang
r-sp))
(home-page "https://satijalab.org/seurat")
@@ -31107,13 +31272,13 @@ other R users.")
(define-public r-seurat
(package
(name "r-seurat")
- (version "4.2.0")
+ (version "4.3.0")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
- "1vzb2k21nnzlky5dbf586wnixffz7wc9ncrpbgdw8md2kcmd58r2"))))
+ "0z7rzxi1gli56k50s6w1363ndw18wykgk5xmc3g7jhpphqxwpfky"))))
(properties `((upstream-name . "Seurat")))
(build-system r-build-system)
(propagated-inputs
@@ -31141,6 +31306,7 @@ other R users.")
r-pbapply
r-plotly
r-png
+ r-progressr
r-rann
r-rcolorbrewer
r-rcpp
@@ -31156,7 +31322,7 @@ other R users.")
r-sctransform
r-seuratobject
r-shiny
- r-spatstat-core
+ r-spatstat-explore
r-spatstat-geom
r-tibble
r-uwot))
@@ -31412,14 +31578,14 @@ and Yu (2020), arXiv:2009.06182.")
(define-public r-locpol
(package
(name "r-locpol")
- (version "0.7-0")
+ (version "0.8.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "locpol" version))
(sha256
(base32
- "1p915n0l09kbwkly627074jslxl01yssp1rf0c7sygvsw6sgy5lm"))))
+ "1bip9x45kdnwc14rvk3ckzfbs32yc2wiid1ypmbbin4mk7364zxk"))))
(properties `((upstream-name . "locpol")))
(build-system r-build-system)
(home-page
@@ -31661,13 +31827,13 @@ performing ordinal regression.")
(define-public r-paradox
(package
(name "r-paradox")
- (version "0.10.0")
+ (version "0.11.0")
(source (origin
(method url-fetch)
(uri (cran-uri "paradox" version))
(sha256
(base32
- "08h92wk8splf0w3rach9zbk3xz13phgcd1yybmgbs0sj4vx93whd"))))
+ "03v26qb0l8yhys7z5v2p9pwnc5wh26fvq4p0a0rh67qap6157dyx"))))
(build-system r-build-system)
(propagated-inputs
(list r-backports r-checkmate r-data-table r-mlr3misc r-r6))
@@ -31682,13 +31848,13 @@ implemented as @code{R6} classes.")
(define-public r-mlr3
(package
(name "r-mlr3")
- (version "0.14.0")
+ (version "0.14.1")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3" version))
(sha256
(base32
- "0cnyby4947g1w0h45nd3ld5zr4k19xrwp565mq1hnqkjwmyjsgdj"))))
+ "192hvc0may73m396j2igwm46ym6f345w6q0q69kqhia58fp6h3nd"))))
(build-system r-build-system)
(propagated-inputs
(list r-r6
@@ -31719,13 +31885,13 @@ computational operations, add-on packages provide additional functionality.")
(define-public r-mlr3learners
(package
(name "r-mlr3learners")
- (version "0.5.4")
+ (version "0.5.5")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3learners" version))
(sha256
(base32
- "0sa2qjvhvjzsfssln9ah08zknzdcps1z28xzgkdfgi6dj25a0y3k"))))
+ "0m5s7jfqfh48gxllvi93wb5w2pzhzx8rcx5bz87lkmv1cnj65q84"))))
(build-system r-build-system)
(propagated-inputs
(list r-checkmate
@@ -31746,14 +31912,14 @@ vector machines, and gradient boosting.")
(define-public r-bbotk
(package
(name "r-bbotk")
- (version "0.6.0")
+ (version "0.7.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "bbotk" version))
(sha256
(base32
- "0ingnvfps46bysi8k2rqnvlh577bzk6fih6hcf20mjspdxx1as3v"))))
+ "0g3x3r1dkp9w57arpqc6iccvsawjdf7vlv8c27cb1r36b0z45fi6"))))
(properties `((upstream-name . "bbotk")))
(build-system r-build-system)
(propagated-inputs
@@ -31776,13 +31942,13 @@ annealing.")
(define-public r-mlr3tuning
(package
(name "r-mlr3tuning")
- (version "0.15.0")
+ (version "0.17.0")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3tuning" version))
(sha256
(base32
- "13p0gcnl8sxvn3ig526pscl63g1dx7l5i9sfzi2yyrddg8vgik4g"))))
+ "1dg02qyyymflgws47sly3b7wd8nj4i9vv7ybx42hgvd55al3smdp"))))
(build-system r-build-system)
(propagated-inputs
(list r-bbotk
@@ -32734,14 +32900,14 @@ and formatted text files with additional meta-data, such including @code{.csv},
(define-public r-packcircles
(package
(name "r-packcircles")
- (version "0.3.4")
+ (version "0.3.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "packcircles" version))
(sha256
(base32
- "05pv5c4k4njkr0xw6i6ksiy34hcyx2lbiqpv5gxw81yrkm0rxfyk"))))
+ "0m8ivgc5y1f9ramqw6sxb02ri6aqxz3av0l5csl32mdldrb126nc"))))
(properties `((upstream-name . "packcircles")))
(build-system r-build-system)
(propagated-inputs (list r-rcpp))
@@ -32758,14 +32924,14 @@ and formatted text files with additional meta-data, such including @code{.csv},
(define-public r-lwgeom
(package
(name "r-lwgeom")
- (version "0.2-9")
+ (version "0.2-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "lwgeom" version))
(sha256
(base32
- "1a0s15rliqd4zr6pyj76xln41f64s9yfwblk074342zvvbps5ck9"))))
+ "1gdvp2q4mzlg1kpjqxkiqxw1r5c4n5pxwvhdbzp89a3gyyjgh7zf"))))
(properties `((upstream-name . "lwgeom")))
(build-system r-build-system)
(inputs
@@ -32784,14 +32950,14 @@ light-weight geometry library used by @url{http://postgis.net/,PostGIS}.")
(define-public r-stars
(package
(name "r-stars")
- (version "0.5-6")
+ (version "0.6-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "stars" version))
(sha256
(base32
- "0qcli9bangpym4yp96yfibd5f4li5qw1622jnbvzfd9n8aakqhg0"))))
+ "0zwbsqp8bihcq5sjdw05pvbh4l9s68p0qw3ffkk0jphsipvy9za9"))))
(properties `((upstream-name . "stars")))
(build-system r-build-system)
(propagated-inputs
@@ -33491,14 +33657,14 @@ Apache2.")
(define-public r-exactextractr
(package
(name "r-exactextractr")
- (version "0.9.0")
+ (version "0.9.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "exactextractr" version))
(sha256
(base32
- "13di9s0lv9kdv2p3hp9ksrr0rh98z6m998pj5a1xq9zl6iakankh"))))
+ "18glacc1v0kj65g6fbqnhvgg83sr334chdfll7nhjnx44my3dkzh"))))
(properties `((upstream-name . "exactextractr")))
(build-system r-build-system)
(inputs (list geos))
@@ -35118,14 +35284,14 @@ be efficient and easy to use.")
(define-public r-ggh4x
(package
(name "r-ggh4x")
- (version "0.2.2")
+ (version "0.2.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggh4x" version))
(sha256
(base32
- "11mskrby3gyjhkvnkcwl2ar1bdh4h45y48dfnm4kzgc7nwvdl3ia"))))
+ "0da5r8zfx1ixhk266byspfm2aifhm0jrvbk264xya712pxayiw4a"))))
(properties `((upstream-name . "ggh4x")))
(build-system r-build-system)
(propagated-inputs
@@ -35151,14 +35317,14 @@ smaller collection of stats, geoms and axis guides.")
(define-public r-gghalves
(package
(name "r-gghalves")
- (version "0.1.3")
+ (version "0.1.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "gghalves" version))
(sha256
(base32
- "1lj4c38fzxwg8gy57ymf00lqjdplb7v2a0lnd262c1d5cavqiws4"))))
+ "1qsxq2zbz4zcpqc7949apznn9f2c959jwwx010bl4gf2p6vchfx7"))))
(properties `((upstream-name . "gghalves")))
(build-system r-build-system)
(propagated-inputs
@@ -35405,13 +35571,13 @@ calculate a dimension's unknown value from other dimensions' measurements.")
(define-public r-sungeo
(package
(name "r-sungeo")
- (version "0.2.288")
+ (version "0.2.292")
(source (origin
(method url-fetch)
(uri (cran-uri "SUNGEO" version))
(sha256
(base32
- "0c8y0ngx1020rw2v00rxmq8syd72f41ckik5sg7gigg7d80gi31w"))
+ "1xav5by7sl21cwfg9m1ij1lz1kvdlqkkp2ah67rnj9vp4vk7nkfg"))
(modules '((guix build utils)))
(snippet '(begin
;; Fortunately, the package does not actually use
@@ -35422,28 +35588,28 @@ calculate a dimension's unknown value from other dimensions' measurements.")
(("rmapshaper,") ""))
(substitute* "NAMESPACE"
(("importFrom\\(rmapshaper,ms_dissolve\\)
-") ""))
- #t))))
+") ""))))))
(properties `((upstream-name . "SUNGEO")))
(build-system r-build-system)
- (propagated-inputs (list r-automap
- r-cartogram
- r-data-table
- r-dplyr
- r-fasterize
- r-httr
- r-jsonlite
- r-measurements
- r-packcircles
- r-purrr
- r-rann
- r-raster
- r-rcpp
- r-rcurl
- r-rlang
- r-sf
- r-sp
- r-spdep))
+ (propagated-inputs
+ (list r-automap
+ r-cartogram
+ r-data-table
+ r-dplyr
+ r-fasterize
+ r-httr
+ r-jsonlite
+ r-measurements
+ r-packcircles
+ r-purrr
+ r-rann
+ r-raster
+ r-rcpp
+ r-rcurl
+ r-rlang
+ r-sf
+ r-sp
+ r-spdep))
(home-page "https://github.com/zhukovyuri/SUNGEO/")
(synopsis "Sub-National Geospatial Data Archive: Geoprocessing Toolkit")
(description
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index 4ea7033790..a1b29a4022 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -726,30 +726,6 @@ EUI-64, also known as MAC-48 media access control addresses.")
(description "This package is a core library of Gfx-rs.")
(license license:asl2.0)))
-(define-public rust-gfx-gl-0.6
- (package
- (name "rust-gfx-gl")
- (version "0.6.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "gfx_gl" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0ppzj4bgjawdqz3fvnscqk8lnmgh95pwzh0v96vwy809cxj83lzj"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-gl-generator" ,rust-gl-generator-0.14))))
- (home-page "https://github.com/gfx-rs/gfx_gl")
- (synopsis "OpenGL bindings for gfx, based on gl-rs")
- (description
- "This package provides OpenGL bindings for gfx, based on gl-rs.")
- (license license:asl2.0)))
-
(define-public rust-gif-0.11
(package
(name "rust-gif")
@@ -795,8 +771,31 @@ EUI-64, also known as MAC-48 media access control addresses.")
#:cargo-development-inputs
(("rust-glob" ,rust-glob-0.3))))))
+(define-public rust-gl-0.14
+ (package
+ (name "rust-gl")
+ (version "0.14.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "gl" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "015lgy3qpzdw7mnh59a4y4hdjq1fhv7nkqlmh1h6fzc212qxlkm9"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-development-inputs
+ (("rust-glutin" ,rust-glutin-0.21))
+ #:cargo-inputs
+ (("rust-gl-generator" ,rust-gl-generator-0.14))))
+ (home-page "https://github.com/brendanzab/gl-rs/")
+ (synopsis "OpenGL bindings for rust")
+ (description "This package provides OpenGL bindings for rust.")
+ (license license:asl2.0)))
+
(define-public rust-gl-0.11
(package
+ (inherit rust-gl-0.14)
(name "rust-gl")
(version "0.11.0")
(source
@@ -808,15 +807,10 @@ EUI-64, also known as MAC-48 media access control addresses.")
(sha256
(base32
"1wcqpyhck0xriffkmgmldy33lwk2044hb4l02d44vm4fbvicin6p"))))
- (build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
- (("rust-gl-generator" ,rust-gl-generator-0.10))))
- (home-page "https://github.com/brendanzab/gl-rs/")
- (synopsis "OpenGL bindings for rust")
- (description "This package provides OpenGL bindings for rust.")
- (license license:asl2.0)))
+ (("rust-gl-generator" ,rust-gl-generator-0.10))))))
(define-public rust-gl-generator-0.14
(package
diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 14ac194fc6..403c1f2aef 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -1160,31 +1160,6 @@
#:cargo-development-inputs
(("rust-tempfile" ,rust-tempfile-3))))))
-(define-public rust-glib-0.8
- (package
- (inherit rust-glib-0.9)
- (name "rust-glib")
- (version "0.8.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "glib" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0ysy87zrwyzhfpf3d8rkyyr3amwj85wky05fsl7kx95s84l269xy"))))
- (arguments
- `(#:cargo-inputs
- (("rust-bitflags" ,rust-bitflags-1)
- ("rust-futures-preview" ,rust-futures-preview-0.3)
- ("rust-glib-sys" ,rust-glib-sys-0.9)
- ("rust-gobject-sys" ,rust-gobject-sys-0.9)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-libc" ,rust-libc-0.2))
- #:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3))))))
-
(define-public rust-glib-macros-0.15
(package
(name "rust-glib-macros")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 792779a28f..487befa965 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -3536,117 +3536,179 @@ the web.")
(define-public rust-askama-escape-0.10
(package
(name "rust-askama-escape")
- (version "0.10.1")
+ (version "0.10.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "askama_escape" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "1ys6wcrkpzygk6r93zd0rhinhy89rraarl0m4afwi023m70hihch"))))
+ (base32 "0hg3rz0cma5f6385z7qmqw3jbir76jndwd5s7dqfk92v9gil75v1"))))
(build-system cargo-build-system)
- (arguments `(#:skip-build? #t))
+ (arguments (list #:skip-build? #t))
(home-page "https://github.com/djc/askama")
- (synopsis
- "Optimized HTML escaping code, extracted from Askama")
+ (synopsis "HTML escaping extracted from Askama")
(description
- "This package provides a optimized HTML escaping code, extracted from
-Askama.")
+ "This package provides an optimized HTML escaping library,
+extracted from Askama.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-askama-shared-0.12
+ (package
+ (name "rust-askama-shared")
+ (version "0.12.2")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "askama_shared" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1l4fycmw65zyvfabf672sj2pc0ilfcj0y6a0csygq1wa26a2nwmz"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-askama-escape" ,rust-askama-escape-0.10)
+ ("rust-comrak" ,rust-comrak-0.12)
+ ("rust-humansize" ,rust-humansize-1)
+ ("rust-mime" ,rust-mime-0.3)
+ ("rust-mime-guess" ,rust-mime-guess-2)
+ ("rust-nom" ,rust-nom-7)
+ ("rust-num-traits" ,rust-num-traits-0.2)
+ ("rust-percent-encoding"
+ ,rust-percent-encoding-2)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+ ("rust-syn" ,rust-syn-1)
+ ("rust-toml" ,rust-toml-0.5))))
+ (home-page "https://github.com/djc/askama")
+ (synopsis "Shared code for Askama")
+ (description "This package provides shared code for Askama.")
(license (list license:expat license:asl2.0))))
(define-public rust-askama-shared-0.11
(package
+ (inherit rust-askama-shared-0.12)
(name "rust-askama-shared")
(version "0.11.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "askama_shared" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "1g3ksf5is0qwx9rd5lxn5gbvxfcpby5gl9cahg26wl1w1xzbg0i5"))))
- (build-system cargo-build-system)
+ (base32 "1g3ksf5is0qwx9rd5lxn5gbvxfcpby5gl9cahg26wl1w1xzbg0i5"))))
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-askama-escape" ,rust-askama-escape-0.10)
- ("rust-humansize" ,rust-humansize-1)
- ("rust-nom" ,rust-nom-6)
- ("rust-num-traits" ,rust-num-traits-0.2)
- ("rust-percent-encoding"
- ,rust-percent-encoding-2)
- ("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-quote" ,rust-quote-1)
- ("rust-serde" ,rust-serde-1)
- ("rust-serde-derive" ,rust-serde-derive-1)
- ("rust-serde-json" ,rust-serde-json-1)
- ("rust-serde-yaml" ,rust-serde-yaml-0.8)
- ("rust-syn" ,rust-syn-1)
- ("rust-toml" ,rust-toml-0.5))))
- (home-page "https://github.com/djc/askama")
- (synopsis "Shared code for Askama")
- (description "This package provides a shared code for Askama.")
- (license (list license:expat license:asl2.0))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-askama-escape" ,rust-askama-escape-0.10)
+ ("rust-humansize" ,rust-humansize-1)
+ ("rust-nom" ,rust-nom-6)
+ ("rust-num-traits" ,rust-num-traits-0.2)
+ ("rust-percent-encoding"
+ ,rust-percent-encoding-2)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-derive" ,rust-serde-derive-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+ ("rust-syn" ,rust-syn-1)
+ ("rust-toml" ,rust-toml-0.5))))))
-(define-public rust-askama-derive-0.10
+(define-public rust-askama-derive-0.11
(package
(name "rust-askama-derive")
- (version "0.10.5")
+ (version "0.11.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "askama_derive" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "08jmqb4lq5cvfjjcq7kjk5q4589zlsvc3ld35yfjyf4hqb22aafa"))))
+ (base32 "0wbb5l1x1bx8x8vvz4ayw196l9y64mi3vrmxm7pn8wmlx3k8ggw7"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-askama-shared" ,rust-askama-shared-0.11)
- ("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-syn" ,rust-syn-1))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-askama-shared" ,rust-askama-shared-0.12)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-syn" ,rust-syn-1))))
(home-page "https://github.com/djc/askama")
(synopsis "Procedural macro package for Askama")
(description
- "This package provide procedural macro package for Askama.")
+ "This package provide the procedural macro package for
+Askama.")
(license (list license:expat license:asl2.0))))
-(define-public rust-askama-0.10
+(define-public rust-askama-derive-0.10
(package
- (name "rust-askama")
+ (inherit rust-askama-derive-0.11)
+ (name "rust-askama-derive")
(version "0.10.5")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "askama_derive" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "08jmqb4lq5cvfjjcq7kjk5q4589zlsvc3ld35yfjyf4hqb22aafa"))))
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-askama-shared" ,rust-askama-shared-0.11)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-syn" ,rust-syn-1))))))
+
+(define-public rust-askama-0.11
+ (package
+ (name "rust-askama")
+ (version "0.11.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "askama" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "0d1iwywdgw3nba2iphayw8sfm3s8m9izwnhfar707qa7ds5p766j"))))
+ (base32 "0f81mzccdadryzaf2dbad1araq4nadp9mssyvdvv31hj6w7z367v"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-askama-derive" ,rust-askama-derive-0.10)
- ("rust-askama-escape" ,rust-askama-escape-0.10)
- ("rust-askama-shared" ,rust-askama-shared-0.11)
- ("rust-mime" ,rust-mime-0.3)
- ("rust-mime-guess" ,rust-mime-guess-2))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-askama-derive" ,rust-askama-derive-0.11)
+ ("rust-askama-escape" ,rust-askama-escape-0.10)
+ ("rust-askama-shared" ,rust-askama-shared-0.12))))
(home-page "https://github.com/djc/askama")
- (synopsis
- "Type-safe, compiled Jinja-like templates for Rust")
+ (synopsis "Type-safe, compiled Jinja-like templates for Rust")
(description
- "This package provides a type-safe, compiled Jinja-like templates for Rust.")
+ "This package provides a type-safe, compiled Jinja-like template
+library for Rust.")
(license (list license:expat license:asl2.0))))
+(define-public rust-askama-0.10
+ (package
+ (inherit rust-askama-0.11)
+ (name "rust-askama")
+ (version "0.10.5")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "askama" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0d1iwywdgw3nba2iphayw8sfm3s8m9izwnhfar707qa7ds5p766j"))))
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-askama-derive" ,rust-askama-derive-0.10)
+ ("rust-askama-escape" ,rust-askama-escape-0.10)
+ ("rust-askama-shared" ,rust-askama-shared-0.11)
+ ("rust-mime" ,rust-mime-0.3)
+ ("rust-mime-guess" ,rust-mime-guess-2))))))
+
(define-public rust-asn1-derive-0.8
(package
(name "rust-asn1-derive")
@@ -4607,40 +4669,43 @@ futures.")
(define-public rust-async-std-1
(package
(name "rust-async-std")
- (version "1.9.0")
+ (version "1.12.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "async-std" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0h834fni3npsggjqin8386d2fn11m2z42dr1ymq0aknppa2ndw6r"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-async-attributes" ,rust-async-attributes-1)
- ("rust-async-channel" ,rust-async-channel-1)
- ("rust-async-global-executor" ,rust-async-global-executor-2)
- ("rust-async-io" ,rust-async-io-1)
- ("rust-async-lock" ,rust-async-lock-2)
- ("rust-async-process" ,rust-async-process-1)
- ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
- ("rust-futures-channel" ,rust-futures-channel-0.3)
- ("rust-futures-core" ,rust-futures-core-0.3)
- ("rust-futures-io" ,rust-futures-io-0.3)
- ("rust-futures-lite" ,rust-futures-lite-1)
- ("rust-gloo-timers" ,rust-gloo-timers-0.2)
- ("rust-kv-log-macro" ,rust-kv-log-macro-1)
- ("rust-log" ,rust-log-0.4)
- ("rust-memchr" ,rust-memchr-2)
- ("rust-num-cpus" ,rust-num-cpus-1)
- ("rust-once-cell" ,rust-once-cell-1)
- ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
- ("rust-pin-utils" ,rust-pin-utils-0.1)
- ("rust-slab" ,rust-slab-0.4)
- ("rust-surf" ,rust-surf-2)
- ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4))))
+ (base32 "0pbgxhyb97h4n0451r26njvr20ywqsbm6y1wjllnp4if82s5nmk2"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-async-attributes" ,rust-async-attributes-1)
+ ("rust-async-channel" ,rust-async-channel-1)
+ ("rust-async-global-executor" ,rust-async-global-executor-2)
+ ("rust-async-io" ,rust-async-io-1)
+ ("rust-async-lock" ,rust-async-lock-2)
+ ("rust-async-process" ,rust-async-process-1)
+ ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+ ("rust-femme" ,rust-femme-2)
+ ("rust-futures-channel" ,rust-futures-channel-0.3)
+ ("rust-futures-core" ,rust-futures-core-0.3)
+ ("rust-futures-io" ,rust-futures-io-0.3)
+ ("rust-futures-lite" ,rust-futures-lite-1)
+ ("rust-gloo-timers" ,rust-gloo-timers-0.2)
+ ("rust-kv-log-macro" ,rust-kv-log-macro-1)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-memchr" ,rust-memchr-2)
+ ("rust-once-cell" ,rust-once-cell-1)
+ ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+ ("rust-pin-utils" ,rust-pin-utils-0.1)
+ ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
+ ("rust-slab" ,rust-slab-0.4)
+ ("rust-surf" ,rust-surf-2)
+ ("rust-wasm-bindgen-futures"
+ ,rust-wasm-bindgen-futures-0.4)
+ ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
(home-page "https://async.rs")
(synopsis "Async version of the Rust standard library")
(description
@@ -4885,6 +4950,29 @@ methods.")
(description "This package provides a safe abstraction around AtomicPtr.")
(license license:asl2.0)))
+(define-public rust-atomic-0.5
+ (package
+ (name "rust-atomic")
+ (version "0.5.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "atomic" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0k135q1qfmxxyzrlhr47r0j38r5fnd4163rgl552qxyagrk853dq"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-autocfg" ,rust-autocfg-1))))
+ (home-page "https://github.com/Amanieu/atomic-rs")
+ (synopsis "Generic @code{Atomic<T>} wrapper type")
+ (description
+ "This package provides a generic @code{Atomic<T>} type for all
+@code{T: Copy} types, unlike the standard library which only provides a few
+fixed atomic types.")
+ ;; The user can choose either license.
+ (license (list license:asl2.0 license:expat))))
+
(define-public rust-atomic-polyfill-1
(package
(name "rust-atomic-polyfill")
@@ -4998,22 +5086,19 @@ they're not available.")
(define-public rust-autocfg-1
(package
(name "rust-autocfg")
- (version "1.0.1")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "autocfg" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d"))))
+ (base32 "1ylp3cb47ylzabimazvbz9ms6ap784zhb6syaz6c1jqpmcmq0s6l"))))
(build-system cargo-build-system)
(home-page "https://github.com/cuviper/autocfg")
- (synopsis
- "Automatic cfg for Rust compiler features")
+ (synopsis "Automatic configuration for Rust compiler features")
(description
- "Automatic cfg for Rust compiler features.")
+ "This package utomatically configures Rust compiler features.")
(license (list license:asl2.0 license:expat))))
(define-public rust-autocfg-0.1
@@ -7378,24 +7463,6 @@ extension of blocks.")
(("rust-arrayref" ,rust-arrayref-0.3)
("rust-byte-tools" ,rust-byte-tools-0.2))))))
-(define-public rust-block-buffer-0.2
- (package
- (inherit rust-block-buffer-0.9)
- (name "rust-block-buffer")
- (version "0.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "block-buffer" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "055q90a6vk80j85i3fixjd5ci0dznrm9lkdd6xbjk7sx5w2a2f8k"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-byte-tools" ,rust-byte-tools-0.2)
- ("rust-generic-array" ,rust-generic-array-0.8))))))
-
(define-public rust-block-cipher-0.7
(package
(name "rust-block-cipher")
@@ -9870,29 +9937,6 @@ reduced-round ChaCha8Poly1305 and ChaCha12Poly1305 lightweight variants.")
macros.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-chalk-derive-0.68
- (package
- (inherit rust-chalk-derive-0.75)
- (name "rust-chalk-derive")
- (version "0.68.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "chalk-derive" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0ss18zx2ddp50mvbwffs5jmmcs7a0pkiq1g62xa7z1bacvkm45ga"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-quote" ,rust-quote-1)
- ("rust-syn" ,rust-syn-1)
- ("rust-synstructure" ,rust-synstructure-0.12))))))
-
(define-public rust-chalk-ir-0.75
(package
(name "rust-chalk-ir")
@@ -9921,28 +9965,6 @@ macros.")
clauses.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-chalk-ir-0.68
- (package
- (inherit rust-chalk-ir-0.75)
- (name "rust-chalk-ir")
- (version "0.68.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "chalk-ir" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0riyv4fjmxys8gsyrikn9in34cjcgwgj55qyaj9w9fld8kqxbmqr"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-bitflags" ,rust-bitflags-1)
- ("rust-chalk-derive" ,rust-chalk-derive-0.68)
- ("rust-lazy-static" ,rust-lazy-static-1))))))
-
(define-public rust-chalk-recursive-0.75
(package
(name "rust-chalk-recursive")
@@ -10455,70 +10477,106 @@ traits.")
("rust-libc" ,rust-libc-0.2)
("rust-libloading" ,rust-libloading-0.3))))))
+(define-public rust-clap-conf-0.1
+ (package
+ (name "rust-clap-conf")
+ (version "0.1.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "clap_conf" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1n29wr6ns660hi63mc30zvs7dhidaycw35am9spzknsal3nrs0sn"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-anyhow" ,rust-anyhow-1)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-thiserror" ,rust-thiserror-1)
+ ("rust-toml" ,rust-toml-0.5))))
+ (home-page "https://github.com/storyfeet/clap_conf")
+ (synopsis
+ "Library to unify commandline arguments, config files and environment variables")
+ (description
+ "This package provides a library to unify commandline arguments with config
+files and environment variables. And make it easier for users to tell your program
+how to behave across the three main input sources")
+ (license license:expat)))
+
(define-public rust-clap-derive-3
(package
(name "rust-clap-derive")
- (version "3.0.0-beta.2")
+ (version "3.2.18")
(source
(origin
(method url-fetch)
(uri (crate-uri "clap_derive" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "18cn82jhcha7m0nkpi1a03jx8k7aaq5kxfcxnsqpaa8ih5dp23rp"))))
+ (base32 "0r9az0cl33xx0i9g18l56l3vd5ayjvcflvza2gdf8jwcab78n37a"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-heck" ,rust-heck-0.3)
- ("rust-proc-macro-error"
- ,rust-proc-macro-error-1)
- ("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-quote" ,rust-quote-1)
- ("rust-syn" ,rust-syn-1))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-heck" ,rust-heck-0.4)
+ ("rust-proc-macro-error"
+ ,rust-proc-macro-error-1)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-syn" ,rust-syn-1))))
(home-page "https://clap.rs/")
- (synopsis
- "Parse command line argument by defining a struct, derive crate")
+ (synopsis "Procedural macro crate for Clap")
(description
- "This package provides a parse command line argument by defining a struct,
-derive crate.")
+ "This package provides the procedural macro crate for Clap.")
(license (list license:expat license:asl2.0))))
(define-public rust-clap-3
(package
(name "rust-clap")
- (version "3.0.0-beta.2")
+ (version "3.2.23")
(source
(origin
(method url-fetch)
(uri (crate-uri "clap" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "0hm1kivw6190rxbfqhdr4hqwlrijvwh90i3d9dyyw0d5k0chdlab"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-atty" ,rust-atty-0.2)
- ("rust-bitflags" ,rust-bitflags-1)
- ("rust-clap-derive" ,rust-clap-derive-3)
- ("rust-indexmap" ,rust-indexmap-1)
- ("rust-os-str-bytes" ,rust-os-str-bytes-2)
- ("rust-strsim" ,rust-strsim-0.10)
- ("rust-termcolor" ,rust-termcolor-1)
- ("rust-terminal-size" ,rust-terminal-size-0.1)
- ("rust-textwrap" ,rust-textwrap-0.12)
- ("rust-unicode-width" ,rust-unicode-width-0.1)
- ("rust-vec-map" ,rust-vec-map-0.8)
- ("rust-yaml-rust" ,rust-yaml-rust-0.4))
- #:cargo-development-inputs
- (("rust-criterion" ,rust-criterion-0.3)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-regex" ,rust-regex-1)
- ("rust-version-sync" ,rust-version-sync-0.8))))
+ (base32 "19bkwkj49ha7mlip0gxsqb9xmd3jpr7ghvcx1hkx6icqrd2mqrbi"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-test-flags
+ '(list "--release" "--"
+ ;; thread 'main' panicked at 'assertion failed: `(left == right)`
+ ;; left: `"_AnonymousValueParser(ValueParser::other(TypeId { t: 3349385470118513432 }))"`,
+ ;; right: `"_AnonymousValueParser(ValueParser::other(usize))"`', src/builder/value_parser.rs:18:1
+ "--skip=builder::value_parser::value_parser")
+ #:cargo-inputs
+ `(("rust-atty" ,rust-atty-0.2)
+ ("rust-backtrace" ,rust-backtrace-0.3)
+ ("rust-bitflags" ,rust-bitflags-1)
+ ("rust-clap-derive" ,rust-clap-derive-3)
+ ("rust-clap-lex" ,rust-clap-lex-0.2)
+ ("rust-indexmap" ,rust-indexmap-1)
+ ("rust-once-cell" ,rust-once-cell-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-strsim" ,rust-strsim-0.10)
+ ("rust-termcolor" ,rust-termcolor-1)
+ ("rust-terminal-size" ,rust-terminal-size-0.2)
+ ("rust-textwrap" ,rust-textwrap-0.16)
+ ("rust-unicase" ,rust-unicase-2)
+ ("rust-yaml-rust" ,rust-yaml-rust-0.4))
+ #:cargo-development-inputs
+ `(("rust-humantime" ,rust-humantime-2)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-rustversion" ,rust-rustversion-1)
+ ("rust-shlex" ,rust-shlex-1)
+ ("rust-snapbox" ,rust-snapbox-0.2)
+ ("rust-static-assertions" ,rust-static-assertions-1)
+ ("rust-trybuild" ,rust-trybuild-1)
+ ("rust-trycmd" ,rust-trycmd-0.13))))
(home-page "https://clap.rs/")
(synopsis "Command Line Argument Parser")
(description
@@ -10557,6 +10615,86 @@ Command Line Argument Parser.")
("rust-version-sync" ,rust-version-sync-0.8))))
(license license:expat)))
+(define-public rust-clap-complete-3
+ (package
+ (name "rust-clap-complete")
+ (version "3.2.5")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "clap-complete" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1n3whjkznszrxif1hzvql7hav7agq85j456fmwjwwi9cjq52wyiz"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-clap" ,rust-clap-3)
+ ("rust-clap-lex" ,rust-clap-lex-0.2)
+ ("rust-is-executable" ,rust-is-executable-1)
+ ("rust-os-str-bytes" ,rust-os-str-bytes-6)
+ ("rust-pathdiff" ,rust-pathdiff-0.2)
+ ("rust-shlex" ,rust-shlex-1)
+ ("rust-unicode-xid" ,rust-unicode-xid-0.2))
+ #:cargo-development-inputs
+ `(("rust-clap" ,rust-clap-3)
+ ("rust-pretty-assertions" ,rust-pretty-assertions-1)
+ ("rust-snapbox" ,rust-snapbox-0.2)
+ ("rust-trycmd" ,rust-trycmd-0.13))))
+ (home-page "https://github.com/clap-rs/clap/tree/master/clap_complete")
+ (synopsis "Generate shell completion scripts for Clap CLIs")
+ (description
+ "This package provides generation of shell completion scripts
+for programs written with Clap.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-clap-complete-fig-3
+ (package
+ (name "rust-clap-complete-fig")
+ (version "3.2.4")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "clap-complete-fig" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1fb4965w8wyrcwq35ywgx4mzfsv2cqba73mdlvmp6ii1q70b8dzd"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-clap" ,rust-clap-3)
+ ("rust-clap-complete" ,rust-clap-complete-3))
+ #:cargo-development-inputs
+ `(("rust-snapbox" ,rust-snapbox-0.2))))
+ (home-page "https://github.com/clap-rs/clap/tree/master/clap_complete_fig")
+ (synopsis "Generate Fig completion scripts for Clap CLIs")
+ (description
+ "This package provides a generator library for Rust used
+with Clap to generate Fig completion scripts.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-clap-lex-0.2
+ (package
+ (name "rust-clap-lex")
+ (version "0.2.4")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "clap-lex" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ib1a9v55ybnaws11l63az0jgz5xiy24jkdgsmyl7grcm3sz4l18"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-os-str-bytes" ,rust-os-str-bytes-6))))
+ (home-page "https://github.com/clap-rs/clap/tree/master/clap_lex")
+ (synopsis "Command line parser for Clap")
+ (description
+ "This package provides a parser for command line options. As opposed to a
+declarative parser, @code{rust-clap-lex} processes arguments as a stream of tokens.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-clearscreen-1
(package
(name "rust-clearscreen")
@@ -11449,7 +11587,7 @@ literals.")
(define-public rust-compiler-builtins-0.1
(package
(name "rust-compiler-builtins")
- (version "0.1.26")
+ (version "0.1.84")
(source
(origin
(method url-fetch)
@@ -11457,13 +11595,14 @@ literals.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1rhj6ccmfkh9gcxnxgjq4fg257yi4f9325nfzsphbmxwkrg06sq3"))))
+ "040bzrhwyqm75yp94vdyfyljg3d25y3d3lb9vipx02p9lqf2r6wq"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
- ("rust-cc" ,rust-cc-1))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-rustc-std-workspace-core"
+ ,rust-rustc-std-workspace-core-1)
+ ("rust-cc" ,rust-cc-1))))
(home-page "https://github.com/rust-lang/compiler-builtins")
(synopsis "Compiler intrinsics used by the Rust compiler")
(description
@@ -11552,6 +11691,42 @@ harness.")
("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
("rust-tempdir" ,rust-tempdir-0.3))))))
+(define-public rust-comrak-0.12
+ (package
+ (name "rust-comrak")
+ (version "0.12.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "comrak" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0x2f1qz64i3ni7sk87whc3bvp27ps1wxn0ia47qlvsrk39p4fg7z"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-clap" ,rust-clap-2)
+ ("rust-entities" ,rust-entities-1)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-pest" ,rust-pest-2)
+ ("rust-pest-derive" ,rust-pest-derive-2)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-shell-words" ,rust-shell-words-1)
+ ("rust-syntect" ,rust-syntect-4)
+ ("rust-twoway" ,rust-twoway-0.2)
+ ("rust-typed-arena" ,rust-typed-arena-1)
+ ("rust-unicode-categories" ,rust-unicode-categories-0.1)
+ ("rust-xdg" ,rust-xdg-2))
+ #:cargo-development-inputs
+ `(("rust-propfuzz" ,rust-propfuzz-0.0.1)
+ ("rust-timebomb" ,rust-timebomb-0.1))))
+ (home-page "https://github.com/kivikakk/comrak")
+ (synopsis "GitHub flavoured Markdown parser and formatter")
+ (description
+ "This package provides a 100% CommonMark-compatible GitHub
+flavoured Markdown parser and formatter written in Rust.")
+ (license license:bsd-2)))
+
(define-public rust-concat-idents-1
(package
(name "rust-concat-idents")
@@ -13738,38 +13913,6 @@ abstractions around common WinAPI calls.")
#:cargo-inputs
(("rust-winapi" ,rust-winapi-0.3))))))
-(define-public rust-crossterm-winapi-0.6
- (package
- (inherit rust-crossterm-winapi-0.7)
- (name "rust-crossterm-winapi")
- (version "0.6.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "crossterm_winapi" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1nqhjp979c6iv092dbxl6hpncwgwjciafyj1nvcpa008iqzmq9n2"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-winapi" ,rust-winapi-0.3))))))
-
-(define-public rust-crossterm-winapi-0.4
- (package
- (inherit rust-crossterm-winapi-0.7)
- (name "rust-crossterm-winapi")
- (version "0.4.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "crossterm-winapi" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1j3av8bba3f5y4n4w1vgn0iz28vdajxrli6lqxnvpddbphskmph2"))))
- (arguments
- `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))))
-
(define-public rust-crunchy-0.2
(package
(name "rust-crunchy")
@@ -13825,33 +13968,31 @@ number ``crunching``.")
"@code{roxmltree} represents an XML 1.0 document as a read-only tree.")
(license (list license:expat license:asl2.0))))
-(define-public rust-rust-crypto-0.2
+(define-public rust-rt-format-0.3
(package
- (name "rust-rust-crypto")
- (version "0.2.36")
+ (name "rust-rt-format")
+ (version "0.3.1")
(source
(origin
(method url-fetch)
- (uri (crate-uri "rust-crypto" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (uri (crate-uri "rt-format" version))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0aias7gh2ypj4skmh6hfsjli4fhnvcvf9s1ljjpz9m9zk79havgp"))))
+ (base32 "1qjjwh9ny95xck1kp99gi6hfm9glrx54jx8npnj6yccxc7p7q225"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
- (("rust-gcc" ,rust-gcc-0.3)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-rand" ,rust-rand-0.3)
- ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
- ("rust-time" ,rust-time-0.1))))
- (home-page "https://github.com/DaGenix/rust-crypto/")
- (synopsis "Mostly pure-Rust implementation of various cryptographic algorithms")
- (description
- "This package provides a (mostly) pure-Rust implementation of various
-common cryptographic algorithms.")
- (license (list license:expat license:asl2.0))))
+ (("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-regex" ,rust-regex-1))))
+ (home-page "https://github.com/vstojkovic/rt-format")
+ (synopsis "Runtime equivalent of the Rust format! macro")
+ (description "This package provides a runtime equivalent of the Rust
+format! macro. It allows formatting strings like the format! macro, with the
+formatting string and the arguments provided at runtime. This crate supports
+all the formatting features of the format! macro, except for the fill
+character.")
+ (license license:asl2.0)))
(define-public rust-rusticata-macros-4
(package
@@ -14468,23 +14609,21 @@ use with sct crate.")
(define-public rust-ctor-0.1
(package
(name "rust-ctor")
- (version "0.1.15")
+ (version "0.1.26")
(source
(origin
(method url-fetch)
(uri (crate-uri "ctor" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "09x2my9x33srjdip8yf4lm5gq7xqis2694abvpa64r60pajqm19r"))))
+ (base32 "15m0wqhv12p25xkxz5dxvg23r7a6bkh7p8zi1cdhgswjhdl028vd"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-syn" ,rust-syn-1)
- ("rust-quote" ,rust-quote-1))
- #:cargo-development-inputs
- (("rust-libc-print" ,rust-libc-print-0.1))))
+ (list #:cargo-inputs
+ `(("rust-syn" ,rust-syn-1)
+ ("rust-quote" ,rust-quote-1))
+ #:cargo-development-inputs
+ `(("rust-libc-print" ,rust-libc-print-0.1))))
(home-page "https://github.com/mmastrac/rust-ctor")
(synopsis "__attribute__((constructor)) for Rust")
(description
@@ -16907,7 +17046,7 @@ diff.")
(define-public rust-digest-0.10
(package
(name "rust-digest")
- (version "0.10.1")
+ (version "0.10.6")
(source
(origin
(method url-fetch)
@@ -16916,7 +17055,7 @@ diff.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "16wpqnwlzx0lbnwccwikns7dq8fblcc6kma2l7xz8anlh5hdd5xn"))))
+ "0vz74785s96g727vg37iwkjvbkcfzp093j49ihhyf8sh9s7kfs41"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -18781,6 +18920,24 @@ Standard.")
order.")
(license license:expat)))
+(define-public rust-enquote-1
+ (package
+ (name "rust-enquote")
+ (version "1.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "enquote" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/reujab/enquote")
+ (synopsis "Rust library that quotes, unquotes, and unescapes strings")
+ (description "This package provides a Rust library quotes, unquotes, and
+unescapes strings.")
+ (license license:unlicense)))
+
(define-public rust-entities-1
(package
(name "rust-entities")
@@ -19273,27 +19430,27 @@ deserialized from environment variables.")
(define-public rust-errno-0.2
(package
(name "rust-errno")
- (version "0.2.4")
+ (version "0.2.8")
(source
(origin
(method url-fetch)
(uri (crate-uri "errno" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0kn8mlygxxr02cm97401nppd2dbkwsalpcbai67rh6yh3rh73862"))))
+ "18cnqgk8r6lq1n5cfy3bryiyz9zkqr10dxj49sa3fkzfamih8fgn"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-errno-dragonfly" ,rust-errno-dragonfly-0.1)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-winapi" ,rust-winapi-0.3))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-errno-dragonfly" ,rust-errno-dragonfly-0.1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-winapi" ,rust-winapi-0.3))))
(home-page "https://github.com/lambda-fairy/rust-errno")
(synopsis "Cross-platform interface to the @code{errno} variable")
(description
- "Cross-platform interface to the @code{errno} variable.")
+ "This package provides a cross-platform interface to the
+@code{errno} variable.")
(license (list license:asl2.0 license:expat))))
(define-public rust-errno-dragonfly-0.1
@@ -19526,31 +19683,6 @@ decoding.")
(description "This Rust library implements the Ethereum bloom filter.")
(license (list license:expat license:asl2.0))))
-(define-public rust-ethbloom-0.5
- (package
- (inherit rust-ethbloom-0.11)
- (name "rust-ethbloom")
- (version "0.5.3")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "ethbloom" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0q2kix0p067rrfffhbfra453dw51s4cfgs0lhirslsv4callsad6"))))
- (arguments
- `(#:tests? #f ; The tests fail.
- #:cargo-inputs
- (("rust-crunchy" ,rust-crunchy-0.1)
- ("rust-ethereum-types-serialize" ,rust-ethereum-types-serialize-0.2)
- ("rust-fixed-hash" ,rust-fixed-hash-0.2)
- ("rust-serde" ,rust-serde-1)
- ("rust-tiny-keccak" ,rust-tiny-keccak-1))
- #:cargo-development-inputs
- (("rust-hex-literal" ,rust-hex-literal-0.1)
- ("rust-rand" ,rust-rand-0.4)
- ("rust-rustc-hex" ,rust-rustc-hex-1))))))
-
(define-public rust-ethereum-types-0.12
(package
(name "rust-ethereum-types")
@@ -19573,21 +19705,6 @@ decoding.")
ecosystem.")
(license (list license:expat license:asl2.0))))
-(define-public rust-ethereum-types-0.9
- (package
- (inherit rust-ethereum-types-0.12)
- (name "rust-ethereum-types")
- (version "0.9.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "ethereum-types" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1c1l2sg6li301izl4nzkkfrpc8snafxwnr81vfwygn3bd3zyqfj7"))))))
-
(define-public rust-ethereum-types-serialize-0.2
(package
(name "rust-ethereum-types-serialize")
@@ -21419,6 +21536,30 @@ values to other threads.")
duplication.")
(license (list license:expat license:asl2.0))))
+(define-public rust-fs-err-2
+ (package
+ (name "rust-fs-err")
+ (version "2.9.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "fs-err" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0ha5ysh5jz2hxlhmydc82pjcycps6ips4jyni41jy8cr48jzli88"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-tokio" ,rust-tokio-1))
+ #:cargo-development-inputs
+ `(("rust-serde-json" ,rust-serde-json-1))))
+ (home-page "https://github.com/andrewhickman/fs-err")
+ (synopsis "@code{std::fs} with more helpful errors")
+ (description
+ "This package provides an alternative to @code{std::fs} with
+more helpful error messages.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-fs-extra-1
(package
(name "rust-fs-extra")
@@ -22672,30 +22813,6 @@ archive to be linked into Rustcode.")
API library @code{gdi32}.")
(license license:expat)))
-(define-public rust-generational-arena-0.2
- (package
- (name "rust-generational-arena")
- (version "0.2.8")
- (source (origin
- (method url-fetch)
- (uri (crate-uri "generational-arena" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "00gn1g6nlky883qkacvsbp19yzl5ay8avq6f902jvxkl2mvkn7cf"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-cfg-if" ,rust-cfg-if-0.1)
- ("rust-serde" ,rust-serde-1))))
- (home-page "https://github.com/fitzgen/generational-arena")
- (synopsis "Safe arena allocator that supports deletion")
- (description
- "This package provides a safe arena allocator that supports deletion without
-suffering from the ABA problem by using generational indices.")
- (license license:mpl2.0)))
-
(define-public rust-generator-0.7
(package
(name "rust-generator")
@@ -23404,28 +23521,6 @@ permitted in ordinary Rust.")
debugging format.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-gimli-0.23
- (package
- (inherit rust-gimli-0.26)
- (name "rust-gimli")
- (version "0.23.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "gimli" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1km657nwcrb0pnv7v0ldhgl9y8s889y2j9jckmws8k2i8bhkyl7n"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
- ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
- ("rust-indexmap" ,rust-indexmap-1)
- ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
- ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
- ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))))
-
(define-public rust-git-version-0.3
(package
(name "rust-git-version")
@@ -24112,33 +24207,6 @@ libraries GMP, MPFR, and MPC.")
and loading crate.")
(license license:expat)))
-(define-public rust-goblin-0.0
- (package
- (name "rust-goblin")
- (version "0.0.23")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "goblin" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1g92bl76dgc3v3rins61l811pkwsl3jif1x35h2jx33b7dsv8mmc"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-log" ,rust-log-0.4)
- ("rust-plain" ,rust-plain-0.2)
- ("rust-scroll" ,rust-scroll-0.9))))
- (home-page "https://github.com/m4b/goblin")
- (synopsis "Binary parsing and loading")
- (description
- "An impish, cross-platform, ELF, Mach-o, and PE binary parsing and
-loading crate.")
- (license license:expat)))
-
(define-public rust-greetd-ipc-0.8
(package
(name "rust-greetd-ipc")
@@ -26873,6 +26941,145 @@ let} expressions.")
ignore files such as @file{.gitignore} against file paths.")
(license (list license:unlicense license:expat))))
+(define-public rust-im-rc-15
+ (package
+ (name "rust-im-rc")
+ (version "15.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "im-rc" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0gsgcs1nn38r40973l6zr1v4d85f4s9qyl32n5f20jphf5z9ba1w"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-arbitrary" ,rust-arbitrary-0.4)
+ ("rust-bitmaps" ,rust-bitmaps-2)
+ ("rust-proptest" ,rust-proptest-0.9)
+ ("rust-quickcheck" ,rust-quickcheck-0.9)
+ ("rust-rand-core" ,rust-rand-core-0.5)
+ ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.4)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-refpool" ,rust-refpool-0.4)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-sized-chunks" ,rust-sized-chunks-0.6)
+ ("rust-typenum" ,rust-typenum-1)
+ ("rust-version-check" ,rust-version-check-0.9))
+ #:cargo-development-inputs
+ (("rust-metrohash" ,rust-metrohash-1)
+ ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
+ ("rust-proptest" ,rust-proptest-0.9)
+ ("rust-proptest-derive" ,rust-proptest-derive-0.1)
+ ("rust-rand" ,rust-rand-0.7)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-version-check" ,rust-version-check-0.9))))
+ (home-page "https://docs.rs/crate/im")
+ (synopsis "Fast immutable collection datatypes for Rust")
+ (description "@code{im-rc} provides immutable collection datatypes for
+Rust that are very fast but not thread-safe. A thread-safe (and slower)
+variant of this library is available separately as @code{im}.")
+ (license license:mpl2.0)))
+
+(define-public rust-impl-codec-0.5
+ (package
+ (name "rust-impl-codec")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "impl-codec" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0hy4svffnw9idy9ipp0hkmbzk97fl583akqwyqmvbqy8qgzbs7hn"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-parity-scale-codec" ,rust-parity-scale-codec-2))))
+ (home-page "https://github.com/paritytech/parity-common")
+ (synopsis "Parity Codec serialization support for uint and fixed hash")
+ (description "This package provides Parity Codec serialization support
+for uint and fixed hash.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-impl-rlp-0.3
+ (package
+ (name "rust-impl-rlp")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "impl-rlp" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "021869d5s47ili9kmhm9y80qpsbf0wwdap14qzfpb84pjbw210pj"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-rlp" ,rust-rlp-0.5))))
+ (home-page "https://github.com/paritytech/parity-common")
+ (synopsis "RLP serialization support for uint and fixed hash")
+ (description "This package provides RLP serialization support for uint
+and fixed hash.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-impl-serde-0.3
+ (package
+ (name "rust-impl-serde")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "impl-serde" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0p2zy8ikdxd28s3vb22nwqgnwjn8gx920sr2svdn93j3yd1g0la5"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-serde" ,rust-serde-1))
+ #:cargo-development-inputs
+ (("rust-criterion" ,rust-criterion-0.3)
+ ("rust-serde-derive" ,rust-serde-derive-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-uint" ,rust-uint-0.9))))
+ (home-page "https://github.com/paritytech/parity-common")
+ (synopsis "Serde serialization support for uint and fixed hash")
+ (description "This package provides @code{serde} serialization support
+for @code{uint} and @code{fixed_hash}.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-impl-trait-for-tuples-0.2
+ (package
+ (name "rust-impl-trait-for-tuples")
+ (version "0.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "impl-trait-for-tuples" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1vii634v1zvb680h28md42xpdrj1j1d50ix3dga95fxkql8cpnnm"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:tests? #false ; Some tests fail. Unstable compiler messages?
+ #:cargo-inputs
+ (("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-syn" ,rust-syn-1))
+ #:cargo-development-inputs
+ (("rust-trybuild" ,rust-trybuild-1))))
+ (home-page "https://github.com/bkchr/impl-trait-for-tuples")
+ (synopsis "Attribute macro to implement a trait for tuples")
+ (description "This package provides attribute macro to implement
+a trait for tuples.")
+ (license (list license:asl2.0 license:expat))))
+
(define-public rust-include-flate-0.1
(package
(name "rust-include-flate")
@@ -27007,6 +27214,34 @@ removals, and it allows lookup of its elements by either hash table key
or numerical index. A corresponding hash set type is also provided.")
(license (list license:asl2.0 license:expat))))
+(define-public rust-indicatif-0.16
+ (package
+ (name "rust-indicatif")
+ (version "0.16.2")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "indicatif" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "06xyjs0kzqiqkjn60n1miwm2l87sa9p2lmzz0ymq18y72z37s81d"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-console" ,rust-console-0.15)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-number-prefix" ,rust-number-prefix-0.4)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+ ("rust-unicode-width" ,rust-unicode-width-0.1))))
+ (home-page "https://github.com/console-rs/indicatif")
+ (synopsis "Progress bar and cli reporting library for Rust")
+ (description
+ "This package provides a progress bar and cli reporting library for
+Rust.")
+ (license license:expat)))
+
(define-public rust-indicatif-0.15
(package
(name "rust-indicatif")
@@ -27149,6 +27384,27 @@ signature.")
(description "This package provides DEFLATE decoding.")
(license license:expat)))
+(define-public rust-inflections-1
+ (package
+ (name "rust-inflections")
+ (version "1.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "inflections" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0yl3gas612q25c72lwf04405i87yxr02vgv3ckcnz2fyvhpmhmx2"))))
+ (build-system cargo-build-system)
+ (home-page "https://docs.rs/inflections")
+ (synopsis "Inflection transformation library for changing properties of words")
+ (description
+ "High performance inflection transformation library for changing properties of
+words like the case.")
+ (license license:expat)))
+
(define-public rust-inflector-0.11
(package
(name "rust-inflector")
@@ -27603,6 +27859,36 @@ versions < 0.2.")
;; Either license can be chosen at the users option.
(license (list license:expat license:asl2.0))))
+(define-public rust-io-lifetimes-0.7
+ (package
+ (name "rust-io-lifetimes")
+ (version "0.7.5")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "io-lifetimes" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0x10ak2iy4p24g7bnp1rfrq6aqddjlzkykgwjdayi7nl97wmxkjr"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-async-std" ,rust-async-std-1)
+ ("rust-fs-err" ,rust-fs-err-2)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-mio" ,rust-mio-0.8)
+ ("rust-os-pipe" ,rust-os-pipe-1)
+ ("rust-socket2" ,rust-socket2-0.4)
+ ("rust-tokio" ,rust-tokio-1)
+ ("rust-windows-sys" ,rust-windows-sys-0.42))))
+ (home-page "https://github.com/sunfishcode/io-lifetimes")
+ (synopsis "Low-level I/O ownership and borrowing library")
+ (description
+ "This package provides a low-level I/O ownership and borrowing
+library.")
+ (license (list license:asl2.0
+ license:expat))))
+
(define-public rust-iovec-0.1
(package
(name "rust-iovec")
@@ -28812,6 +29098,35 @@ kernel32.")
"This package provides a Log macro for log's kv-unstable backend.")
(license (list license:expat license:asl2.0))))
+(define-public rust-k9-0.11
+ (package
+ (name "rust-k9")
+ (version "0.11.6")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "k9" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1a8pxz6fygqzknxdlb4l835kqxgjk7snm4bjhhhn783r025vbp9j"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
+ ("rust-colored" ,rust-colored-1)
+ ("rust-diff" ,rust-diff-0.1)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-syn" ,rust-syn-1)
+ ("rust-term-size" ,rust-term-size-0.3))))
+ (home-page "https://github.com/aaronabramov/k9")
+ (synopsis "Testing library")
+ (description
+ "This package contains helper macros for writing unit tests.")
+ (license license:expat)))
+
(define-public rust-language-tags-0.3
(package
(name "rust-language-tags")
@@ -29390,18 +29705,18 @@ parser in Rust.")
(define-public rust-libc-0.2
(package
(name "rust-libc")
- (version "0.2.112")
+ (version "0.2.137")
(source
(origin
(method url-fetch)
(uri (crate-uri "libc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "09bik7pcck869kfr5i9hjhnck0mzpd9v0ijxbqnh8fja6rzx20qv"))))
+ (base32 "12dz2lk4a7lm03k079n2rkm1l6cpdhvy6nrngbfprzrv19icqzzw"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
+ (list #:cargo-inputs
+ `(("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
(home-page "https://github.com/rust-lang/libc")
(synopsis "Raw FFI bindings to platform libraries like libc")
(description
@@ -30484,6 +30799,33 @@ in plain text. It is smart about where a link ends, such as with trailing
punctuation.")
(license (list license:expat license:asl2.0))))
+(define-public rust-linux-raw-sys-0.0.46
+ (package
+ (name "rust-linux-raw-sys")
+ (version "0.0.46")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "linux-raw-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0kc528mp2fp8m96csm6rmwg0ac7zbgf36k19ml4a4c9j6xn4blnl"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+ ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))
+ #:cargo-development-inputs
+ `(("rust-libc" ,rust-libc-0.2)
+ ("rust-static-assertions" ,rust-static-assertions-1))))
+ (home-page "https://github.com/sunfishcode/linux-raw-sys")
+ (synopsis "Generated bindings for Linux APIs")
+ (description
+ "This package provides automatically generated bindings for
+Linux userspace APIs.")
+ (license (list license:asl2.0
+ license:expat))))
+
(define-public rust-libssh2-sys-0.2
(package
(name "rust-libssh2-sys")
@@ -31846,8 +32188,33 @@ parallelize and optimize.")
"This package provides MaybeUninit for friends of backwards compatibility.")
(license (list license:asl2.0 license:expat))))
+(define-public rust-md-5-0.10
+ (package
+ (name "rust-md-5")
+ (version "0.10.5")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "md-5" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1jmrykh705dfclkgxwjysj5y8l1nyrn1gddw5xpgyjyla1l50rb3"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-digest" ,rust-digest-0.10)
+ ("rust-md5-asm" ,rust-md5-asm-0.5))))
+ (home-page "https://github.com/RustCrypto/hashes")
+ (synopsis "MD5 hash function")
+ (description
+ "This library provides a MD5 hash function for Rust.")
+ ;; The user can choose either license.
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-md-5-0.9
(package
+ (inherit rust-md-5-0.10)
(name "rust-md-5")
(version "0.9.1")
(source
@@ -31859,7 +32226,6 @@ parallelize and optimize.")
(sha256
(base32
"059ajjacz1q3cms7vl6cvhdqs4qdw2nnwj9dq99ryzv0p6djfnkv"))))
- (build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-block-buffer" ,rust-block-buffer-0.9)
@@ -31868,11 +32234,7 @@ parallelize and optimize.")
("rust-opaque-debug" ,rust-opaque-debug-0.3))
#:cargo-development-inputs
(("rust-digest" ,rust-digest-0.9)
- ("rust-hex-literal" ,rust-hex-literal-0.2))))
- (home-page "https://github.com/RustCrypto/hashes")
- (synopsis "MD5 hash function")
- (description "MD5 hash function.")
- (license (list license:expat license:asl2.0))))
+ ("rust-hex-literal" ,rust-hex-literal-0.2))))))
(define-public rust-md-5-0.8
(package
@@ -31946,8 +32308,31 @@ parallelize and optimize.")
(base32
"0j2s8aqdkhwhy7awga2bmv5n8qq8bgy8672iha9f3y871dm6vibr"))))))
+(define-public rust-md5-asm-0.5
+ (package
+ (name "rust-md5-asm")
+ (version "0.5.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "md5-asm" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ixmkg8j7sqy9zln6pz9xi2dl2d9zpm8pz6p49za47n1bvradfbk"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-cc" ,rust-cc-1))))
+ (home-page "https://github.com/RustCrypto/asm-hashes")
+ (synopsis "Assembly implementation of MD5 compression function")
+ (description
+ "This package contains an assembly implementation of the MD5
+compression function.")
+ (supported-systems '("x86_64-linux" "i686-linux"))
+ (license license:expat)))
+
(define-public rust-md5-asm-0.4
(package
+ (inherit rust-md5-asm-0.5)
(name "rust-md5-asm")
(version "0.4.3")
(source
@@ -31959,16 +32344,9 @@ parallelize and optimize.")
(sha256
(base32
"0gpk5647js1k084jc7pg2gji0cvl6hjkkbfia6lnpk8y4shyairv"))))
- (build-system cargo-build-system)
(arguments
`(#:cargo-inputs
- (("rust-cc" ,rust-cc-1))))
- (home-page "https://github.com/RustCrypto/asm-hashes")
- (synopsis "Assembly implementation of MD5 compression function")
- (description "This package contains an assembly implementation of MD5
-compression function.")
- (supported-systems '("x86_64-linux" "i686-linux"))
- (license license:expat)))
+ (("rust-cc" ,rust-cc-1))))))
(define-public rust-measureme-0.7
(package
@@ -32192,24 +32570,23 @@ file IO.")
(sha256
(base32 "0nmymqy9q62x577ydja0ysfyir7h5qa0n5fwcnvchfhhlsi0rdyr"))))))
-(define-public rust-memoffset-0.6
+(define-public rust-memoffset-0.7
(package
(name "rust-memoffset")
- (version "0.6.4")
+ (version "0.7.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "memoffset" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1yfx2v8kmkhr2d4gwk8ghihdwg73vapn3vvp0im06f0kgx8crb2r"))))
+ (base32 "1x2zv8hv9c9bvgmhsjvr9bymqwyxvgbca12cm8xkhpyy5k1r7s2x"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-autocfg" ,rust-autocfg-1))
#:cargo-development-inputs
(("rust-doc-comment" ,rust-doc-comment-0.3))))
- (inputs (list rust-autocfg-1))
(home-page "https://github.com/Gilnaa/memoffset")
(synopsis "C-like offset_of functionality for Rust structs")
(description
@@ -32217,6 +32594,27 @@ file IO.")
for Rust structs.")
(license license:expat)))
+(define-public rust-memoffset-0.6
+ (package
+ (inherit rust-memoffset-0.7)
+ (name "rust-memoffset")
+ (version "0.6.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "memoffset" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kkrzll58a3ayn5zdyy9i1f1v3mx0xgl29x0chq614zazba638ss"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-autocfg" ,rust-autocfg-1))
+ #:cargo-development-inputs
+ (("rust-doc-comment" ,rust-doc-comment-0.3))))
+ (inputs (list rust-autocfg-1))))
+
(define-public rust-memoffset-0.5
(package
(inherit rust-memoffset-0.6)
@@ -32229,8 +32627,7 @@ for Rust structs.")
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "1fblqzc25hfaym8m0pj112s66pqq87avvaqm5hp5rskib2w9w63m"))))
+ (base32 "1fblqzc25hfaym8m0pj112s66pqq87avvaqm5hp5rskib2w9w63m"))))
(arguments
`(#:skip-build? #t
#:cargo-inputs
@@ -32938,25 +33335,24 @@ streaming API for miniz_oxide.")
(define-public rust-mio-0.8
(package
(name "rust-mio")
- (version "0.8.0")
+ (version "0.8.5")
(source
(origin
(method url-fetch)
(uri (crate-uri "mio" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1cmgipv6k536xf0a6qd359wnpxg0pfrpkr9bhy8zqh8bza2jy9xs"))))
+ (base32 "1pjqn6jvmqkgyykf2z5danqka1rfs3il7w4d0qin8yi062y35mz5"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-libc" ,rust-libc-0.2)
- ("rust-log" ,rust-log-0.4)
- ("rust-miow" ,rust-miow-0.3)
- ("rust-ntapi" ,rust-ntapi-0.3)
- ("rust-winapi" ,rust-winapi-0.3))
- #:cargo-development-inputs
- (("rust-env-logger" ,rust-env-logger-0.8)
- ("rust-rand" ,rust-rand-0.8))))
+ (list #:cargo-inputs
+ `(("rust-libc" ,rust-libc-0.2)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-wasi" ,rust-wasi-0.11)
+ ("rust-windows-sys" ,rust-windows-sys-0.42))
+ #:cargo-development-inputs
+ `(("rust-env-logger" ,rust-env-logger-0.8)
+ ("rust-rand" ,rust-rand-0.8))))
(home-page "https://github.com/tokio-rs/mio")
(synopsis "Lightweight non-blocking IO")
(description
@@ -34892,26 +35288,25 @@ nitrokey crate and others using it.")
nitrokey-test crate.")
(license license:gpl3+)))
-(define-public rust-nix-0.23
+(define-public rust-nix-0.24
(package
(name "rust-nix")
- (version "0.23.1")
+ (version "0.24.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "nix" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1iimixk7y2qk0jswqich4mkd8kqyzdghcgy6203j8fmxmhbn71lz"))))
+ (base32 "1z35n1bhzslr7zawy2c0fl90jjy9l5b3lnsidls3908vfk0xnp0r"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-bitflags" ,rust-bitflags-1)
- ("rust-cc" ,rust-cc-1)
- ("rust-cfg-if" ,rust-cfg-if-1)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-memoffset" ,rust-memoffset-0.6))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-bitflags" ,rust-bitflags-1)
+ ("rust-cfg-if" ,rust-cfg-if-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-memoffset" ,rust-memoffset-0.6))))
(home-page "https://github.com/nix-rust/nix")
(synopsis "Rust friendly bindings to *nix APIs")
(description
@@ -34920,6 +35315,27 @@ The goal is to not provide a 100% unified interface, but to unify what can be
while still providing platform specific APIs.")
(license license:expat)))
+(define-public rust-nix-0.23
+ (package
+ (inherit rust-nix-0.24)
+ (name "rust-nix")
+ (version "0.23.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "nix" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1iimixk7y2qk0jswqich4mkd8kqyzdghcgy6203j8fmxmhbn71lz"))))
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-bitflags" ,rust-bitflags-1)
+ ("rust-cc" ,rust-cc-1)
+ ("rust-cfg-if" ,rust-cfg-if-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-memoffset" ,rust-memoffset-0.6))))))
+
(define-public rust-nix-0.22
(package
(inherit rust-nix-0.23)
@@ -37989,6 +38405,29 @@ memory page size.")
"This package pipes your Rust output through an external pager.")
(license (list license:asl2.0 license:expat))))
+(define-public rust-pam-sys-0.5
+ (package
+ (name "rust-pam-sys")
+ (version "0.5.6")
+ (home-page "https://github.com/1wilkens/pam-sys")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "pam-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+ (inputs `(("linux-pam" ,linux-pam)))
+ (synopsis
+ "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)")
+ (description
+ "This crate uses bindgen to generate the raw FFI definitions for PAM. For a
+rustified API consider using pam.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-pancurses-0.16
(package
(name "rust-pancurses")
@@ -38242,27 +38681,24 @@ unparking.")
(sha256
(base32 "0z6q9rxm98vrp3fimw8b5syzwgf8l0pnn6y0cqm4lbblf7r01cvc"))))))
-(define-public rust-parking-lot-0.11
+(define-public rust-parking-lot-0.12
(package
(name "rust-parking-lot")
- (version "0.11.2")
+ (version "0.12.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "parking_lot" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "16gzf41bxmm10x82bla8d6wfppy9ym3fxsmdjyvn61m66s0bf5vx"))))
+ (base32 "13r2xk7mnxfc5g0g6dkdxqdqad99j7s7z8zhzz4npw5r0g0v4hip"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-instant" ,rust-instant-0.1)
- ("rust-lock-api" ,rust-lock-api-0.4)
- ("rust-parking-lot-core" ,rust-parking-lot-core-0.8))
- #:cargo-development-inputs
- (("rust-bincode" ,rust-bincode-1)
- ("rust-rand" ,rust-rand-0.8))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-instant" ,rust-instant-0.1)
+ ("rust-lock-api" ,rust-lock-api-0.4)
+ ("rust-parking-lot-core" ,rust-parking-lot-core-0.8))))
(home-page "https://github.com/Amanieu/parking_lot")
(synopsis
"Efficient implementations of the standard synchronization primitives")
@@ -38271,6 +38707,25 @@ unparking.")
of the standard synchronization primitives.")
(license (list license:asl2.0 license:expat))))
+(define-public rust-parking-lot-0.11
+ (package
+ (inherit rust-parking-lot-0.12)
+ (name "rust-parking-lot")
+ (version "0.11.2")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "parking_lot" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "16gzf41bxmm10x82bla8d6wfppy9ym3fxsmdjyvn61m66s0bf5vx"))))
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-instant" ,rust-instant-0.1)
+ ("rust-lock-api" ,rust-lock-api-0.4)
+ ("rust-parking-lot-core" ,rust-parking-lot-core-0.8))))))
+
(define-public rust-parking-lot-0.10
(package
(name "rust-parking-lot")
@@ -38942,23 +39397,25 @@ path.Clean.")
(define-public rust-pathdiff-0.2
(package
(name "rust-pathdiff")
- (version "0.2.0")
+ (version "0.2.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "pathdiff" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "0d2aqgrqhdn5kxlnd5dxv7d6pgsgf92r6r9gqm6bdh0mvsrk0xl7"))))
+ (base32 "1pa4dcmb7lwir4himg1mnl97a05b2z0svczg62l8940pbim12dc8"))))
(build-system cargo-build-system)
- (arguments `(#:skip-build? #t))
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-camino" ,rust-camino-1))))
(home-page "https://github.com/Manishearth/pathdiff")
(synopsis "Library for diffing paths to obtain relative paths")
(description
- "Use diff_paths to construct a relative path from a provided base
-directory path to the provided path.")
+ "This package provides a Rust library for constructing a
+relative path from a provided base directory path to the provided
+path.")
(license (list license:asl2.0 license:expat))))
(define-public rust-pbkdf2-0.10
@@ -42246,6 +42703,53 @@ status.")
progress-bars for Rust.")
(license license:asl2.0)))
+(define-public rust-propfuzz-0.0.1
+ (package
+ (name "rust-propfuzz")
+ (version "0.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "propfuzz" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1xadkjqsnnazfksaywxkdgv0fjkclj2p7x36r044jbj9g395nxyg"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-propfuzz-macro" ,rust-propfuzz-macro-0.0.1)
+ ("rust-proptest" ,rust-proptest-0.10))))
+ (home-page "https://github.com/facebookincubator/propfuzz")
+ (synopsis "Property-based testing and fuzzing")
+ (description
+ "This package provides a Rust library that combines
+property-based testing and fuzzing.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-propfuzz-macro-0.0.1
+ (package
+ (name "rust-propfuzz-macro")
+ (version "0.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "propfuzz-macro" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1xizaahjxxvcz9n91pgpji3nd7b755qgq3m2kmmg53zwjwv9nnsx"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-syn" ,rust-syn-1))))
+ (home-page "https://github.com/facebookincubator/propfuzz")
+ (synopsis "Support macro for propfuzz")
+ (description
+ "This package provides a support macro for propfuzz.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-proptest-1
(package
(name "rust-proptest")
@@ -46603,58 +47107,117 @@ rust.")
(base32
"1b6vjfwvpcgy0q8ywywz548vhxrmhbz2sm6xyhnmj5p5xd1xfqff"))))))
-(define-public rust-rstest-0.6
+(define-public rust-rstest-0.15
(package
(name "rust-rstest")
- (version "0.6.5")
+ (version "0.15.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "rstest" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1wdd0ci0bn6fd5v5c19lhlqrpadk18fl4jzvh75b26616anlxdil"))))
+ (base32 "0c5r8wimr2fv3x25dbb99rk165lzcsz6jlpv7xk2ny99rikdrjg9"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-cfg-if" ,rust-cfg-if-1)
- ("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-quote" ,rust-quote-1)
- ("rust-rustc-version" ,rust-rustc-version-0.3)
- ("rust-syn" ,rust-syn-1))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-futures" ,rust-futures-0.3)
+ ("rust-futures-timer" ,rust-futures-timer-3)
+ ("rust-rstest-macros" ,rust-rstest-macros-0.14)
+ ("rust-rustc-version" ,rust-rustc-version-0.3))))
(home-page "https://github.com/la10736/rstest")
(synopsis "Rust fixture based test framework")
(description
- "rstest uses procedural macros to help you on writing fixtures and
-table-based tests.")
+ "@code{rstest} uses procedural macros to help you write fixtures
+and table-based tests.")
(license (list license:expat license:asl2.0))))
(define-public rust-rstest-0.10
(package
+ (inherit rust-rstest-0.15)
(name "rust-rstest")
(version "0.10.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "rstest" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1bwhy92fsqc05y8x9iyyq9sykinh0gxnl25zpdca3xhl5hhb06q4"))))
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "rstest" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1bwhy92fsqc05y8x9iyyq9sykinh0gxnl25zpdca3xhl5hhb06q4"))))
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-cfg-if" ,rust-cfg-if-1)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-rustc-version" ,rust-rustc-version-0.3)
+ ("rust-syn" ,rust-syn-1))))))
+
+(define-public rust-rstest-0.6
+ (package
+ (inherit rust-rstest-0.10)
+ (name "rust-rstest")
+ (version "0.6.5")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "rstest" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1wdd0ci0bn6fd5v5c19lhlqrpadk18fl4jzvh75b26616anlxdil"))))))
+
+(define-public rust-rstest-macros-0.14
+ (package
+ (name "rust-rstest-macros")
+ (version "0.14.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "rstest-macros" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0rlwp3r1dg3fl4f100wjd3ya7dhs23vpyqgf7vg5mac50s5fc5ah"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-cfg-if" ,rust-cfg-if-1)
- ("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-quote" ,rust-quote-1)
- ("rust-rustc-version" ,rust-rustc-version-0.3)
- ("rust-syn" ,rust-syn-1))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-cfg-if" ,rust-cfg-if-1)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-rustc-version" ,rust-rustc-version-0.4)
+ ("rust-syn" ,rust-syn-1))))
(home-page "https://github.com/la10736/rstest")
- (synopsis "Rust fixture based test framework")
+ (synopsis "Procedural macros for @code{rstest}.")
(description
- "rstest uses procedural macros to help you on writing fixtures and
-table-based tests.")
+ "This package provides the procedural macro crate for
+@code{rstest}.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-rstest-reuse-0.4
+ (package
+ (name "rust-rstest-reuse")
+ (version "0.4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "rstest-reuse" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "05zcs22fbvv7q50p2xs6w13lqbcklddnj2dm1mz1wi2pak9sxdgr"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-quote" ,rust-quote-1)
+ ("rust-rustc-version" ,rust-rustc-version-0.4)
+ ("rust-syn" ,rust-syn-1))))
+ (home-page "https://github.com/la10736/rstest")
+ (synopsis "Reuse rstest attributes")
+ (description
+ "This package provides a Rust library for reusing rstest
+attributes by creating a set of tests and applying it to every
+scenario you want to test.")
(license (list license:expat license:asl2.0))))
(define-public rust-rug-1
@@ -47662,6 +48225,26 @@ rust-lang/rust integration.")
(license (list license:asl2.0
license:expat))))
+(define-public rust-rustc-workspace-hack-1
+ (package
+ (name "rust-rustc-workspace-hack")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rustc-workspace-hack" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1yx8l58n2vb2ldpi3z1jn4dmi5hnxvikbhpd5lilpdvkl7xd4wgw"))))
+ (build-system cargo-build-system)
+ (home-page "https://crates.io/crates/rustc-workspace-hack")
+ (synopsis "Hack for the compiler's own build system")
+ (description "Hack for the compiler's own build system. It is used by
+@code{cargo}.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-rustc-std-workspace-std-1
(package
(name "rust-rustc-std-workspace-std")
@@ -47862,6 +48445,51 @@ rustc compiler.")
`(("rust-failure" ,rust-failure-0.1)
,@(alist-delete "rust-anyhow" cargo-inputs)))))))
+(define-public rust-rustix-0.35
+ (package
+ (name "rust-rustix")
+ (version "0.35.13")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "rustix" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1yfmkj5nwghxd3nha5ywf1cj6zqh44qwm0cavwifr1ppcmnilykj"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-bitflags" ,rust-bitflags-1)
+ ("rust-cc" ,rust-cc-1)
+ ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+ ("rust-errno" ,rust-errno-0.2)
+ ("rust-io-lifetimes" ,rust-io-lifetimes-0.7)
+ ("rust-itoa" ,rust-itoa-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-linux-raw-sys" ,rust-linux-raw-sys-0.0.46)
+ ("rust-once-cell" ,rust-once-cell-1)
+ ("rust-rustc-std-workspace-alloc"
+ ,rust-rustc-std-workspace-alloc-1)
+ ("rust-rustc-std-workspace-core"
+ ,rust-rustc-std-workspace-core-1)
+ ("rust-windows-sys" ,rust-windows-sys-0.42))
+ #:cargo-development-inputs
+ `(("rust-criterion" ,rust-criterion-0.3)
+ ("rust-ctor" ,rust-ctor-0.1)
+ ("rust-errno" ,rust-errno-0.2)
+ ("rust-io-lifetimes" ,rust-io-lifetimes-0.7)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-memoffset" ,rust-memoffset-0.6)
+ ("rust-serial-test" ,rust-serial-test-0.6)
+ ("rust-tempfile" ,rust-tempfile-3))))
+ (home-page "https://github.com/bytecodealliance/rustix")
+ (synopsis "Safe Rust bindings to POSIX syscalls")
+ (description
+ "This package provides safe Rust bindings to POSIX syscalls.")
+ ;; Apache 2.0, Apache 2.0 with LLVM exception, or Expat.
+ (license (list license:asl2.0
+ license:expat))))
+
(define-public rust-rustls-0.20
(package
(name "rust-rustls")
@@ -51589,6 +52217,28 @@ functionality and without weak references.")
(base32
"1i1i8viy6y30mv9v5hwhg9w6b722qkyh9c6n8bn4d27jpv14pg0s"))))))
+(define-public rust-sha1-smol-1
+ (package
+ (name "rust-sha1-smol")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "sha1_smol" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "04nhbhvsk5ms1zbshs80iq5r1vjszp2xnm9f0ivj38q3dhc4f6mf"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs (("rust-serde" ,rust-serde-1))))
+ (home-page "https://github.com/mitsuhiko/sha1-smol")
+ (synopsis "Dependency free SHA1 implementation")
+ (description
+ "This package provides a minimal dependency free implementation of
+SHA1 for Rust.")
+ (license license:bsd-3)))
+
(define-public rust-sha1collisiondetection-0.2
(package
(name "rust-sha1collisiondetection")
@@ -53619,21 +54269,19 @@ benchmarking.")
(define-public rust-socket2-0.4
(package
(name "rust-socket2")
- (version "0.4.0")
+ (version "0.4.7")
(source
(origin
(method url-fetch)
(uri (crate-uri "socket2" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "18ny6m1gnf6cwp5ax0b5hr36w6yg16z7faj76b31aq2jghhgqgcy"))))
+ (base32 "1gaf57dc16s1lfyv388w9vdl9qay15xds78jcwakml9kj3dx5qh2"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-libc" ,rust-libc-0.2)
- ("rust-winapi" ,rust-winapi-0.3))))
+ (list #:cargo-inputs
+ `(("rust-libc" ,rust-libc-0.2)
+ ("rust-winapi" ,rust-winapi-0.3))))
(home-page "https://github.com/rust-lang/socket2")
(synopsis "Networking sockets in Rust")
(description
@@ -55725,25 +56373,120 @@ values without proliferating generics.")
(description "This package provides custom derive for @code{sval}.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-swayipc-2
+(define-public rust-svd-parser-0.10
+ (package
+ (name "rust-svd-parser")
+ (version "0.10.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "svd-parser" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1fbr4m9cla6xvmrib7pad9hv29sn2d5hjbc77pz12lwzmm2pczk9"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-anyhow" ,rust-anyhow-1)
+ ("rust-once-cell" ,rust-once-cell-1)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-thiserror" ,rust-thiserror-1)
+ ("rust-xmltree" ,rust-xmltree-0.8))
+ #:cargo-development-inputs
+ (("rust-serde-json" ,rust-serde-json-1))))
+ (home-page "https://github.com/rust-embedded/svd")
+ (synopsis "CMSIS-SVD file parser")
+ (description "This package provides a CMSIS-SVD file parser.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-svgtypes-0.5
+ (package
+ (name "rust-svgtypes")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "svgtypes" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1zv0yb4nfyz78y8k7fmyjqgdh9vf7xc44c9pzry8640szym6ylww"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-float-cmp" ,rust-float-cmp-0.5)
+ ("rust-siphasher" ,rust-siphasher-0.2))))
+ (home-page "https://github.com/RazrFalcon/svgtypes")
+ (synopsis "SVG types parser")
+ (description "This package provides SVG types parser.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-sxd-document-0.3
+ (package
+ (name "rust-sxd-document")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "sxd-document" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0y10shqmy9xb73g403rg1108wsagny9d8jrcm081pbwzpqvjzn4l"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-peresil" ,rust-peresil-0.3)
+ ("rust-typed-arena" ,rust-typed-arena-1))))
+ (home-page "https://github.com/shepmaster/sxd-document")
+ (synopsis "Rust XML DOM library")
+ (description "This package provides a Rust XML DOM library.")
+ (license license:expat)))
+
+(define-public rust-sxd-xpath-0.4
+ (package
+ (name "rust-sxd-xpath")
+ (version "0.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "sxd-xpath" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1sin3g8lzans065gjcwrpm7gdpwdpdg4rpi91rlvb1q8sfjrvqrn"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-peresil" ,rust-peresil-0.3)
+ ("rust-quick-error" ,rust-quick-error-1)
+ ("rust-sxd-document" ,rust-sxd-document-0.3))))
+ (home-page "https://github.com/shepmaster/sxd-xpath")
+ (synopsis "Rust XML XPath library")
+ (description "This package provides a Rust XML XPath library.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-swayipc-3
(package
(name "rust-swayipc")
- (version "2.7.2")
+ (version "3.0.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "swayipc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "03r15c2sijyrxmpsyjgma4gz7zmdl1g8akjnjkw6hrml91d5dilj"))))
+ (base32 "16pf4r6svf99p73b8dhdannkvhfvmbjb4rx7gifxh8xj53rwy7db"))))
(build-system cargo-build-system)
(arguments
- `(#:tests? #f ; test sync::tests::connect ... FAILED
+ `(#:skip-build? #t
#:cargo-inputs
(("rust-serde" ,rust-serde-1)
- ("rust-async-std" ,rust-async-std-1)
- ("rust-swayipc-command-builder" ,rust-swayipc-command-builder-0.1)
- ("rust-serde-json" ,rust-serde-json-1))))
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-swayipc-types" ,rust-swayipc-types-1))))
(home-page "https://github.com/jaycefayne/swayipc-rs")
(synopsis "Library for controlling sway through its IPC interface")
(description
@@ -55751,6 +56494,26 @@ values without proliferating generics.")
interface.")
(license license:expat)))
+(define-public rust-swayipc-2
+ (package
+ (inherit rust-swayipc-3)
+ (name "rust-swayipc")
+ (version "2.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "swayipc" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "03r15c2sijyrxmpsyjgma4gz7zmdl1g8akjnjkw6hrml91d5dilj"))))
+ (arguments
+ `(#:tests? #f ; test sync::tests::connect ... FAILED
+ #:cargo-inputs
+ (("rust-serde" ,rust-serde-1)
+ ("rust-async-std" ,rust-async-std-1)
+ ("rust-swayipc-command-builder" ,rust-swayipc-command-builder-0.1)
+ ("rust-serde-json" ,rust-serde-json-1))))))
+
(define-public rust-swayipc-command-builder-0.1
(package
(name "rust-swayipc-command-builder")
@@ -55770,6 +56533,31 @@ interface.")
executed by swayipc.")
(license license:expat)))
+(define-public rust-swayipc-types-1
+ (package
+ (name "rust-swayipc-types")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "swayipc-types" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "13lj6jyyxg41r9g0b07y8yd7ygy5gih61w5v48bpksvfdzhwwn55"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-thiserror" ,rust-thiserror-1))))
+ (home-page "https://github.com/jaycefayne/swayipc-rs")
+ (synopsis "A library containing Type defintions from sway's IPC interface")
+ (description
+ "This package provides a library containing Type defintions from sway's IPC
+interface")
+ (license license:expat)))
+
(define-public rust-syn-1
(package
(name "rust-syn")
@@ -57728,8 +58516,31 @@ writing colored text to a terminal.")
#:cargo-inputs
(("rust-wincolor" ,rust-wincolor-0.1))))))
+(define-public rust-terminal-size-0.2
+ (package
+ (name "rust-terminal-size")
+ (version "0.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "terminal-size" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0yhza8sc6jkka6j0nq5sl749ckx1jagvxp3b38yhh4px6k291jj0"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:tests? #f ;tests require /dev/stderr
+ #:cargo-inputs
+ `(("rust-rustix" ,rust-rustix-0.35))))
+ (home-page "https://github.com/eminence/terminal-size")
+ (synopsis "Gets the size of your Linux or Windows terminal")
+ (description
+ "This package gets the size of your Linux or Windows terminal.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-terminal-size-0.1
(package
+ (inherit rust-terminal-size-0.2)
(name "rust-terminal-size")
(version "0.1.17")
(source
@@ -57739,17 +58550,11 @@ writing colored text to a terminal.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1pq60ng1a7fjp597ifk1cqlz8fv9raz9xihddld1m1pfdia1lg33"))))
- (build-system cargo-build-system)
(arguments
- `(#:tests? #f ; Tests require /dev/stderr
- #:cargo-inputs
- (("rust-libc" ,rust-libc-0.2)
- ("rust-winapi" ,rust-winapi-0.3))))
- (home-page "https://github.com/eminence/terminal-size")
- (synopsis "Gets the size of your Linux or Windows terminal")
- (description
- "This package gets the size of your Linux or Windows terminal.")
- (license (list license:expat license:asl2.0))))
+ (list #:tests? #f ;tests require /dev/stderr
+ #:cargo-inputs
+ `(("rust-libc" ,rust-libc-0.2)
+ ("rust-winapi" ,rust-winapi-0.3))))))
(define-public rust-terminfo-0.7
(package
@@ -57776,8 +58581,35 @@ writing colored text to a terminal.")
(description "Terminal capabilities with type-safe getters.")
(license license:wtfpl2)))
+(define-public rust-termion-2
+ (package
+ (name "rust-termion")
+ (version "2.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "termion" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "147c0a9l2dj4l8xhd7bb1f0f611lv6k0szacx3jwf21lkwviz735"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:tests? #f ;tests require a terminal
+ #:cargo-inputs
+ `(("rust-libc" ,rust-libc-0.2)
+ ("rust-numtoa" ,rust-numtoa-0.1)
+ ("rust-redox-syscall" ,rust-redox-syscall-0.2)
+ ("rust-redox-termios" ,rust-redox-termios-0.1)
+ ("rust-serde" ,rust-serde-1))))
+ (home-page "https://gitlab.redox-os.org/redox-os/termion")
+ (synopsis "Library for manipulating terminals")
+ (description
+ "This package provides a bindless library for manipulating terminals.")
+ (license license:expat)))
+
(define-public rust-termion-1
(package
+ (inherit rust-termion-2)
(name "rust-termion")
(version "1.5.5")
(source
@@ -57788,19 +58620,13 @@ writing colored text to a terminal.")
(sha256
(base32
"01f9787d5nx445bqbj644v38bn0hl2swwjy9baz0dnbqi6fyqb62"))))
- (build-system cargo-build-system)
(arguments
- `(#:tests? #f ; Tests want a terminal.
- #:cargo-inputs
- (("rust-libc" ,rust-libc-0.2)
- ("rust-numtoa" ,rust-numtoa-0.1)
- ("rust-redox-syscall" ,rust-redox-syscall-0.1)
- ("rust-redox-termios" ,rust-redox-termios-0.1))))
- (home-page "https://gitlab.redox-os.org/redox-os/termion")
- (synopsis "Library for manipulating terminals")
- (description
- "This package provides a bindless library for manipulating terminals.")
- (license license:expat)))
+ (list #:tests? #f ;tests require a terminal
+ #:cargo-inputs
+ `(("rust-libc" ,rust-libc-0.2)
+ ("rust-numtoa" ,rust-numtoa-0.1)
+ ("rust-redox-syscall" ,rust-redox-syscall-0.1)
+ ("rust-redox-termios" ,rust-redox-termios-0.1))))))
(define-public rust-termios-0.3
(package
@@ -57983,28 +58809,30 @@ unstable language features.")
(description "This package provides a newtypes for text offsets")
(license (list license:expat license:asl2.0))))
-(define-public rust-textwrap-0.12
+(define-public rust-textwrap-0.16
(package
(name "rust-textwrap")
- (version "0.12.1")
+ (version "0.16.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "textwrap" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "12978qmkl5gcp94lxndpvp9qxq8mxp7hm9xbrw3422dgikchhc10"))))
+ (base32 "0gbwkjf15l6p3x2rkr75fa4cpcs1ly4c8pmlfx5bl6zybcm24ai2"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-hyphenation" ,rust-hyphenation-0.8)
- ("rust-terminal-size" ,rust-terminal-size-0.1)
- ("rust-unicode-width" ,rust-unicode-width-0.1))))
- (home-page
- "https://github.com/mgeisler/textwrap")
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-hyphenation" ,rust-hyphenation-0.8)
+ ("rust-smawk" ,rust-smawk-0.3)
+ ("rust-terminal-size" ,rust-terminal-size-0.2)
+ ("rust-termion" ,rust-termion-2)
+ ("rust-unic-emoji-char" ,rust-unic-emoji-char-0.9)
+ ("rust-unicode-linebreak" ,rust-unicode-linebreak-0.1)
+ ("rust-unicode-width" ,rust-unicode-width-0.1)
+ ("rust-version-sync" ,rust-version-sync-0.9))))
+ (home-page "https://github.com/mgeisler/textwrap")
(synopsis "Library for word wrapping, indenting, and dedenting strings")
(description
"Textwrap is a small library for word wrapping, indenting, and dedenting
@@ -58013,6 +58841,46 @@ for display in commandline applications. It is designed to be efficient and
handle Unicode characters correctly.")
(license license:expat)))
+(define-public rust-textwrap-0.15
+ (package
+ (inherit rust-textwrap-0.16)
+ (name "rust-textwrap")
+ (version "0.15.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "textwrap" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1yw513k61lfiwgqrfvsjw1a5wpvm0azhpjr2kr0jhnq9c56is55i"))))
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-hyphenation" ,rust-hyphenation-0.8)
+ ("rust-smawk" ,rust-smawk-0.3)
+ ("rust-terminal-size" ,rust-terminal-size-0.1)
+ ("rust-unicode-linebreak" ,rust-unicode-linebreak-0.1)
+ ("rust-unicode-width" ,rust-unicode-width-0.1))))))
+
+(define-public rust-textwrap-0.12
+ (package
+ (inherit rust-textwrap-0.15)
+ (name "rust-textwrap")
+ (version "0.12.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "textwrap" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "12978qmkl5gcp94lxndpvp9qxq8mxp7hm9xbrw3422dgikchhc10"))))
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-hyphenation" ,rust-hyphenation-0.8)
+ ("rust-terminal-size" ,rust-terminal-size-0.1)
+ ("rust-unicode-width" ,rust-unicode-width-0.1))))))
+
(define-public rust-textwrap-0.11
(package
(inherit rust-textwrap-0.12)
@@ -58062,16 +58930,14 @@ handle Unicode characters correctly.")
(define-public rust-thiserror-1
(package
(name "rust-thiserror")
- (version "1.0.26")
+ (version "1.0.37")
(source
(origin
(method url-fetch)
(uri (crate-uri "thiserror" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "1qmz542pq4wmz3p0s4kavsqv09h0x99klkf3k33ydjy1x97rw4ck"))))
+ (base32 "0gky83x4i87gd87w3fknnp920wvk9yycp7dgkf5h3jg364vb7phh"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -58090,16 +58956,14 @@ handle Unicode characters correctly.")
(define-public rust-thiserror-impl-1
(package
(name "rust-thiserror-impl")
- (version "1.0.26")
+ (version "1.0.37")
(source
(origin
(method url-fetch)
(uri (crate-uri "thiserror-impl" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "0ia72qiynlws5avb8f1xqlazp4g6bqgzjbwy5vs6nyg7myh6j386"))))
+ (base32 "1fydmpksd14x1mkc24zas01qjssz8q43sbn2ywl6n527dda1fbcq"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -58978,32 +59842,31 @@ tinyobjloader.")
(define-public rust-tokio-1
(package
(name "rust-tokio")
- (version "1.15.0")
+ (version "1.22.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "tokio" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "0f2qwp9ljc4gf955g7qcksp0jc1bwmzxb2nf6mb7h1n2irvirgzv"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-autocfg" ,rust-autocfg-1)
- ("rust-bytes" ,rust-bytes-1)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-memchr" ,rust-memchr-2)
- ("rust-mio" ,rust-mio-0.7)
- ("rust-num-cpus" ,rust-num-cpus-1)
- ("rust-once-cell" ,rust-once-cell-1)
- ("rust-parking-lot" ,rust-parking-lot-0.11)
- ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
- ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
- ("rust-tokio-macros" ,rust-tokio-macros-1)
- ("rust-tracing" ,rust-tracing-0.1)
- ("rust-winapi" ,rust-winapi-0.3))))
+ (base32 "1qrarnfikvp8cwd3qcskzgdb1a6f47r11xjbql2wd25lbyky8v6p"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-autocfg" ,rust-autocfg-1)
+ ("rust-bytes" ,rust-bytes-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-memchr" ,rust-memchr-2)
+ ("rust-mio" ,rust-mio-0.8)
+ ("rust-num-cpus" ,rust-num-cpus-1)
+ ("rust-parking-lot" ,rust-parking-lot-0.12)
+ ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+ ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
+ ("rust-socket2" ,rust-socket2-0.4)
+ ("rust-tokio-macros" ,rust-tokio-macros-1)
+ ("rust-tracing" ,rust-tracing-0.1)
+ ("rust-winapi" ,rust-winapi-0.3))))
(home-page "https://tokio.rs")
(synopsis "Event-driven, non-blocking I/O platform")
(description
@@ -63064,6 +63927,30 @@ the Unicode and Internationalization Crates (UNIC) project.")
Internationalization Crates (UNIC) project.")
(license (list license:expat license:asl2.0))))
+(define-public rust-unic-emoji-char-0.9
+ (package
+ (name "rust-unic-emoji-char")
+ (version "0.9.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "unic-emoji-char" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0ka9fr7s6lv0z43r9xphg9injn35pfxf9g9q18ki0wl9d0g241qb"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:cargo-inputs
+ `(("rust-unic-char-property" ,rust-unic-char-property-0.9)
+ ("rust-unic-char-range" ,rust-unic-char-range-0.9)
+ ("rust-unic-ucd-version" ,rust-unic-ucd-version-0.9))))
+ (home-page "https://github.com/open-i18n/rust-unic/")
+ (synopsis "UNIC emoji character properties for Rust")
+ (description
+ "This package provides UNIC properties for emoji characters
+in Rust.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-unic-segment-0.9
(package
(name "rust-unic-segment")
@@ -63212,6 +64099,25 @@ Unicode and Internationalization Crates (UNIC) project.")
"Implementation of the Unicode Bidirectional Algorithm.")
(license (list license:asl2.0 license:expat))))
+(define-public rust-unicode-categories-0.1
+ (package
+ (name "rust-unicode-categories")
+ (version "0.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "unicode-categories" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0kp1d7fryxxm7hqywbk88yb9d1avsam9sg76xh36k5qx2arj9v1r"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/swgillespie/unicode-categories")
+ (synopsis "Query Unicode category membership")
+ (description
+ "This package provides a package for querying Unicode category
+membership for characters in Rust.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-unicode-ident-1
(package
(name "rust-unicode-ident")
@@ -63243,22 +64149,24 @@ Standard Annex #31.")
(define-public rust-unicode-linebreak-0.1
(package
(name "rust-unicode-linebreak")
- (version "0.1.2")
+ (version "0.1.4")
(source
(origin
(method url-fetch)
(uri (crate-uri "unicode-linebreak" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0grq6bsn967q4vpifld53s7a140nlmpq5vy8ghgr73f4n2mdqlis"))))
+ (base32 "0drixqb16bzmabd5d8ldvar5760rxy6nxzszhlsqnasl3bisvyn5"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-regex" ,rust-regex-1))))
+ (list #:cargo-inputs
+ `(("rust-hashbrown" ,rust-hashbrown-0.12)
+ ("rust-regex" ,rust-regex-1))))
(home-page "https://github.com/axelf4/unicode-linebreak")
- (synopsis "Implementation of the Unicode Line Breaking Algorithm")
- (description "This package provides an Implementation of the Unicode Line
-Breaking Algorithm in Rust.")
+ (synopsis "Implementation of the Unicode line breaking algorithm")
+ (description
+ "This package provides an implementation of the Unicode line
+breaking algorithm in Rust.")
(license license:asl2.0)))
(define-public rust-unicode-normalization-0.1
@@ -63338,22 +64246,26 @@ boundaries according to Unicode Standard Annex #29 rules.")
(define-public rust-unicode-xid-0.2
(package
(name "rust-unicode-xid")
- (version "0.2.1")
+ (version "0.2.4")
(source
(origin
(method url-fetch)
(uri (crate-uri "unicode-xid" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "0r6mknipyy9vpz8mwmxvkx65ff2ha1n2pxqjj6f46lcn8yrhpzpp"))))
+ (base32 "131dfzf7d8fsr1ivch34x42c2d1ik5ig3g78brxncnn0r1sdyqpr"))))
(build-system cargo-build-system)
+ (arguments
+ (list #:cargo-development-inputs
+ `(("rust-criterion" ,rust-criterion-0.3))))
(home-page "https://github.com/unicode-rs/unicode-xid")
(synopsis "Determine Unicode XID related properties")
- (description "Determine whether characters have the XID_Start
-or XID_Continue properties according to Unicode Standard Annex #31.")
- (license (list license:asl2.0 license:expat))))
+ (description
+ "This package provides a Rust library to determine whether
+characters have the XID_Start or XID_Continue properties according
+to Unicode Standard Annex #31.")
+ (license (list license:asl2.0
+ license:expat))))
(define-public rust-unicode-xid-0.1
(package
@@ -64780,33 +65692,46 @@ result.")
(description "Warp is a composable, web server framework.")
(license license:expat)))
-(define-public rust-wasi-0.9
+(define-public rust-wasi-0.11
(package
(name "rust-wasi")
- (version "0.9.0+wasi-snapshot-preview1")
+ (version "0.11.0+wasi-snapshot-preview1")
(source
(origin
(method url-fetch)
(uri (crate-uri "wasi" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "06g5v3vrdapfzvfq662cij7v8a1flwr2my45nnncdv2galrdzkfc"))))
+ (base32 "08z4hxwkpdpalxjps1ai9y7ihin26y9f476i53dv98v45gkqg3cw"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
- ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
- ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+ ("rust-rustc-std-workspace-alloc"
+ ,rust-rustc-std-workspace-alloc-1)
+ ("rust-rustc-std-workspace-core"
+ ,rust-rustc-std-workspace-core-1))))
(home-page "https://github.com/bytecodealliance/wasi")
(synopsis "Experimental WASI API bindings for Rust")
(description
- "This package provides an experimental WASI API bindings for Rust.")
+ "This package provides experimental WASI API bindings for Rust.")
(license (list license:asl2.0
license:expat))))
+(define-public rust-wasi-0.9
+ (package
+ (inherit rust-wasi-0.11)
+ (name "rust-wasi")
+ (version "0.9.0+wasi-snapshot-preview1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "wasi" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "06g5v3vrdapfzvfq662cij7v8a1flwr2my45nnncdv2galrdzkfc"))))))
+
(define-public rust-wasm-bindgen-0.2
(package
(name "rust-wasm-bindgen")
@@ -65674,27 +66599,28 @@ using @code{bindgen}.")
(define-public rust-which-4
(package
(name "rust-which")
- (version "4.2.2")
+ (version "4.3.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "which" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1nbsy9f5sn206jzby28if4m4s0m21n97mhk8qd703g3rya77l67a"))))
+ (base32 "0yybp94wikf21vkcl8b6w6l5pnd95nl4fxryz669l4lyxsxiz0qw"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-either" ,rust-either-1)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-regex" ,rust-regex-1))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-either" ,rust-either-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-once-cell" ,rust-once-cell-1)
+ ("rust-regex" ,rust-regex-1))))
(home-page "https://github.com/harryfei/which-rs.git")
- (synopsis "Rust equivalent of Unix command @command{which}")
+ (synopsis "Rust equivalent of @command{which}")
(description
- "This package provides a Rust equivalent of Unix command @command{which}.
-It locates installed executable in cross platforms.")
+ "This package provides a cross-platform Rust equivalent of the
+Unix @command{which} command. It returns the full path of an installed
+executable.")
(license license:expat)))
(define-public rust-which-3
@@ -66641,6 +67567,27 @@ to XDG Base Directory specification.")
"This package provides a moderately simple command line arguments parser.")
(license (list license:expat license:asl2.0))))
+(define-public rust-xi-unicode-0.3
+ (package
+ (name "rust-xi-unicode")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "xi-unicode" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "12mvjgrhr7557cib69wm4q5s4srba27pg2df9l1zihrxgnbh0wx6"))))
+ (build-system cargo-build-system)
+ (arguments `(#:skip-build? #t))
+ (home-page "https://github.com/google/xi-editor")
+ (synopsis
+ "Unicode utilities for text editing, including a line breaking iterator")
+ (description
+ "This package provides Unicode utilities useful for text editing,
+including a line breaking iterator.")
+ (license license:asl2.0)))
+
(define-public rust-xml-rs-0.8
(package
(name "rust-xml-rs")
@@ -66954,8 +67901,31 @@ for locating fonts.")
(description "This package provides an implementation of zbase32.")
(license license:lgpl3+)))
+(define-public rust-zerocopy-0.6
+ (package
+ (name "rust-zerocopy")
+ (version "0.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "zerocopy" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0dpj4nd9v56wy93ahjkp95znjzj91waqvidqch8gxwdwq661hbrk"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-byteorder" ,rust-byteorder-1)
+ ("rust-zerocopy-derive" ,rust-zerocopy-derive-0.3))))
+ (home-page "https://github.com/google/zerocopy")
+ (synopsis "Utilities for zero-copy parsing and serialization")
+ (description "Utilities for zero-copy parsing and serialization")
+ (license license:bsd-2)))
+
(define-public rust-zerocopy-0.3
(package
+ (inherit rust-zerocopy-0.6)
(name "rust-zerocopy")
(version "0.3.1")
(source
@@ -66965,21 +67935,41 @@ for locating fonts.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "00nbb6yal8f74bkpn7msjcnhisimw8s5777a63206rfnn3br45zh"))))
- (build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-byteorder" ,rust-byteorder-1)
("rust-zerocopy-derive" ,rust-zerocopy-derive-0.2))))
- (home-page "https://fuchsia.googlesource.com/fuchsia/+/HEAD/src/lib/zerocopy")
- (synopsis "Utilities for zero-copy parsing and serialization")
- (description
- "This package provides utilities for zero-copy parsing and
-serialization.")
(license license:bsd-3)))
+(define-public rust-zerocopy-derive-0.3
+ (package
+ (name "rust-zerocopy-derive")
+ (version "0.3.2")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "zerocopy-derive" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "18qr7dqlj89v1xl1g58l2xd6jidv0sbccscgl131gpppba0yc1b5"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-syn" ,rust-syn-1)
+ ("rust-synstructure" ,rust-synstructure-0.12))))
+ (home-page "https://github.com/google/zerocopy")
+ (synopsis "Custom derive for traits from the zerocopy Rust crate")
+ (description
+ "This package provides custom derive for traits from the zerocopy Rust
+crate.")
+ (license license:bsd-2)))
+
(define-public rust-zerocopy-derive-0.2
(package
+ (inherit rust-zerocopy-derive-0.3)
(name "rust-zerocopy-derive")
(version "0.2.1")
(source
@@ -66989,18 +67979,12 @@ serialization.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1594sf9wwgpbavl1hb1avyz6n7km9apm8afc03x9y8h3spk3k76w"))))
- (build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-syn" ,rust-syn-1)
("rust-synstructure" ,rust-synstructure-0.12))))
- (home-page "https://fuchsia.googlesource.com/fuchsia/+/HEAD/src/lib/zerocopy/zerocopy-derive")
- (synopsis "Custom derive for traits from the zerocopy Rust crate")
- (description
- "This package provides custom derive for traits from the zerocopy Rust
-crate.")
(license license:bsd-3)))
(define-public rust-zeroize-1
@@ -67454,300 +68438,202 @@ configuration file and/or environment variables.")
("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.32)
("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.32))))))
-(define-public rust-windows-x86-64-msvc-0.28
+(define-public rust-windows-aarch64-gnullvm-0.42
(package
- (name "rust-windows-x86-64-msvc")
- (version "0.28.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "windows_x86_64_msvc" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "17z8q25pd3dp6b84qm9nlayd3ym78sbryxlqmgcxvz9vpmy8qarz"))))
- (build-system cargo-build-system)
- (arguments `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-x86-64-msvc-0.36
- (package
- (name "rust-windows-x86-64-msvc")
- (version "0.36.1")
+ (name "rust-windows-aarch64-gnullvm")
+ (version "0.42.0")
(source (origin
(method url-fetch)
- (uri (crate-uri "windows_x86_64_msvc" version))
+ (uri (crate-uri "windows-aarch64-gnullvm" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "103n3xijm5vr7qxr1dps202ckfnv7njjnnfqmchg8gl5ii5cl4f8"))))
+ "17m1p753qk02r25afg31dxym4rpy7kpr0z8nwl5f1jzhyrqsmlj1"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t))
+ (list #:skip-build? #t))
(home-page "https://github.com/microsoft/windows-rs")
(synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
+ (description
+ "This package provides code gen support for the windows crate.")
(license (list license:expat license:asl2.0))))
-(define-public rust-windows-x86-64-msvc-0.32
+(define-public rust-windows-aarch64-msvc-0.42
(package
- (name "rust-windows-x86-64-msvc")
- (version "0.32.0")
+ (name "rust-windows-aarch64-msvc")
+ (version "0.42.0")
(source (origin
(method url-fetch)
- (uri (crate-uri "windows_x86_64_msvc" version))
+ (uri (crate-uri "windows-aarch64-msvc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "05l392h518dxn808dc1zkv6d0r9z38q68qqc0ix9fs9741v28jjh"))))
+ "1d6d9ny0yl5l9vvagydigvkfcphzk2aygchiccywijimb8pja3yx"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t))
+ (list #:skip-build? #t))
(home-page "https://github.com/microsoft/windows-rs")
(synopsis "Code gen support for the windows crate")
(description "This package provides code gen support for the windows
crate.")
(license (list license:expat license:asl2.0))))
-(define-public rust-windows-x86-64-gnu-0.28
+(define-public rust-windows-aarch64-msvc-0.36
(package
- (name "rust-windows-x86-64-gnu")
- (version "0.28.0")
+ (inherit rust-windows-aarch64-msvc-0.42)
+ (name "rust-windows-aarch64-msvc")
+ (version "0.36.1")
(source
(origin
(method url-fetch)
- (uri (crate-uri "windows_x86_64_gnu" version))
+ (uri (crate-uri "windows_aarch64_msvc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0m79bhdr54g4h4wh2q8wkjlkypb5wvl7xzhc2csiaqb5yl4z8cdw"))))
- (build-system cargo-build-system)
- (arguments `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
+ (base32 "0ixaxs2c37ll2smprzh0xq5p238zn8ylzb3lk1zddqmd77yw7f4v"))))))
-(define-public rust-windows-x86-64-gnu-0.36
+(define-public rust-windows-aarch64-msvc-0.32
(package
- (name "rust-windows-x86-64-gnu")
- (version "0.36.1")
+ (inherit rust-windows-aarch64-msvc-0.36)
+ (name "rust-windows-aarch64-msvc")
+ (version "0.32.0")
(source (origin
(method url-fetch)
- (uri (crate-uri "windows_x86_64_gnu" version))
+ (uri (crate-uri "windows_aarch64_msvc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1qfrck3jnihymfrd01s8260d4snql8ks2p8yaabipi3nhwdigkad"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
+ "1x8bnafz15ksgpbjbgk1l1j2jx4rq4a2ylzcahb1jhy4n59jgsfq"))))))
-(define-public rust-windows-x86-64-gnu-0.32
+(define-public rust-windows-aarch64-msvc-0.28
(package
- (name "rust-windows-x86-64-gnu")
- (version "0.32.0")
+ (inherit rust-windows-aarch64-msvc-0.32)
+ (name "rust-windows-aarch64-msvc")
+ (version "0.28.0")
(source (origin
(method url-fetch)
- (uri (crate-uri "windows_x86_64_gnu" version))
+ (uri (crate-uri "windows_aarch64_msvc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1g34xhcayig9sndq3555w95q6lr7jr839zxv6l365ijlfhpv24n9"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
+ "1hpk0n2z0jzzvwlvs98b75sa4q920953nqfc119rv19nwm0mlsaj"))))))
-(define-public rust-windows-i686-msvc-0.28
+(define-public rust-windows-i686-gnu-0.42
(package
- (name "rust-windows-i686-msvc")
- (version "0.28.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "windows_i686_msvc" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0r0z8s1wcdwd20azsdfilf2a6bz68xkavl990wy64hyc8f51bmai"))))
- (build-system cargo-build-system)
- (arguments `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-windows-i686-msvc-0.36
- (package
- (name "rust-windows-i686-msvc")
- (version "0.36.1")
+ (name "rust-windows-i686-gnu")
+ (version "0.42.0")
(source (origin
(method url-fetch)
- (uri (crate-uri "windows_i686_msvc" version))
+ (uri (crate-uri "windows_i686_gnu" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "097h2a7wig04wbmpi3rz1akdy4s8gslj5szsx8g2v0dj91qr3rz2"))))
+ "1rsxdjp50nk38zfd1dxj12i2qmhpvxsm6scdq8v1d10ncygy3spv"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t))
+ (list #:skip-build? #t))
(home-page "https://github.com/microsoft/windows-rs")
(synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
+ (description
+ "This package provides code gen support for the windows crate.")
(license (list license:expat license:asl2.0))))
-(define-public rust-windows-i686-msvc-0.32
+(define-public rust-windows-i686-gnu-0.36
(package
- (name "rust-windows-i686-msvc")
- (version "0.32.0")
+ (inherit rust-windows-i686-gnu-0.42)
+ (name "rust-windows-i686-gnu")
+ (version "0.36.1")
(source (origin
(method url-fetch)
- (uri (crate-uri "windows_i686_msvc" version))
+ (uri (crate-uri "windows_i686_gnu" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0wj1wi01fc8hrasbakjcq8y5a7ynw9l2mcw08svmsq823axi2v0l"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
+ "1dm3svxfzamrv6kklyda9c3qylgwn5nwdps6p0kc9x6s077nq3hq"))))))
-(define-public rust-windows-i686-gnu-0.36
+(define-public rust-windows-i686-gnu-0.32
(package
+ (inherit rust-windows-i686-gnu-0.36)
(name "rust-windows-i686-gnu")
- (version "0.36.1")
+ (version "0.32.0")
(source (origin
(method url-fetch)
(uri (crate-uri "windows_i686_gnu" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1dm3svxfzamrv6kklyda9c3qylgwn5nwdps6p0kc9x6s077nq3hq"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
+ "05g6kpdfxwxnw2gn1nrd7bsf5997rci0k3h3nqby168ph5l1qwba"))))))
(define-public rust-windows-i686-gnu-0.28
(package
+ (inherit rust-windows-i686-gnu-0.32)
(name "rust-windows-i686-gnu")
(version "0.28.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "windows_i686_gnu" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "12hx7qpsjg9p7jggfcplqa3mf1mzr7k7s5ybzqwg1zmg4fn2aizm"))))
- (build-system cargo-build-system)
- (arguments `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows_i686_gnu" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "12hx7qpsjg9p7jggfcplqa3mf1mzr7k7s5ybzqwg1zmg4fn2aizm"))))))
-(define-public rust-windows-i686-gnu-0.32
+(define-public rust-windows-i686-msvc-0.42
(package
- (name "rust-windows-i686-gnu")
- (version "0.32.0")
+ (name "rust-windows-i686-msvc")
+ (version "0.42.0")
(source (origin
(method url-fetch)
- (uri (crate-uri "windows_i686_gnu" version))
+ (uri (crate-uri "windows_i686_msvc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "05g6kpdfxwxnw2gn1nrd7bsf5997rci0k3h3nqby168ph5l1qwba"))))
+ "0ii2hrsdif2ms79dfiyfzm1n579jzj42ji3fpsxd57d3v9jjzhc4"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t))
+ (list #:skip-build? #t))
(home-page "https://github.com/microsoft/windows-rs")
(synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
+ (description
+ "This package provides code gen support for the windows crate.")
(license (list license:expat license:asl2.0))))
-(define-public rust-windows-aarch64-msvc-0.36
+(define-public rust-windows-i686-msvc-0.36
(package
- (name "rust-windows-aarch64-msvc")
+ (inherit rust-windows-i686-msvc-0.42)
+ (name "rust-windows-i686-msvc")
(version "0.36.1")
(source (origin
(method url-fetch)
- (uri (crate-uri "windows_aarch64_msvc" version))
+ (uri (crate-uri "windows_i686_msvc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0ixaxs2c37ll2smprzh0xq5p238zn8ylzb3lk1zddqmd77yw7f4v"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
+ "097h2a7wig04wbmpi3rz1akdy4s8gslj5szsx8g2v0dj91qr3rz2"))))))
-(define-public rust-windows-aarch64-msvc-0.28
+(define-public rust-windows-i686-msvc-0.32
(package
- (name "rust-windows-aarch64-msvc")
- (version "0.28.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "windows_aarch64_msvc" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1hpk0n2z0jzzvwlvs98b75sa4q920953nqfc119rv19nwm0mlsaj"))))
- (build-system cargo-build-system)
- (arguments `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
+ (inherit rust-windows-i686-msvc-0.36)
+ (name "rust-windows-i686-msvc")
+ (version "0.32.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows_i686_msvc" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0wj1wi01fc8hrasbakjcq8y5a7ynw9l2mcw08svmsq823axi2v0l"))))))
-(define-public rust-windows-aarch64-msvc-0.32
+(define-public rust-windows-i686-msvc-0.28
(package
- (name "rust-windows-aarch64-msvc")
- (version "0.32.0")
+ (inherit rust-windows-i686-msvc-0.32)
+ (name "rust-windows-i686-msvc")
+ (version "0.28.0")
(source (origin
(method url-fetch)
- (uri (crate-uri "windows_aarch64_msvc" version))
+ (uri (crate-uri "windows_i686_msvc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1x8bnafz15ksgpbjbgk1l1j2jx4rq4a2ylzcahb1jhy4n59jgsfq"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Code gen support for the windows crate")
- (description "This package provides code gen support for the windows
-crate.")
- (license (list license:expat license:asl2.0))))
+ "0r0z8s1wcdwd20azsdfilf2a6bz68xkavl990wy64hyc8f51bmai"))))))
(define-public rust-windows-implement-0.32
(package
@@ -67772,26 +68658,28 @@ crate.")
crate.")
(license (list license:expat license:asl2.0))))
-(define-public rust-windows-sys-0.36
+(define-public rust-windows-sys-0.42
(package
(name "rust-windows-sys")
- (version "0.36.1")
+ (version "0.42.0")
(source (origin
(method url-fetch)
(uri (crate-uri "windows-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1lmqangv0zg1l46xiq7rfnqwsx8f8m52mqbgg2mrx7x52rd1a17a"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.36)
- ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.36)
- ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.36)
- ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.36)
- ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.36))))
+ "19waf8aryvyq9pzk0gamgfwjycgzk4gnrazpfvv171cby0h1hgjs"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.42)
+ ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.42)
+ ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.42)
+ ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.42)
+ ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.42)
+ ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.42)
+ ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42))))
(home-page "https://github.com/microsoft/windows-rs")
(synopsis "Rust for Windows")
(description "The windows crate lets you call any Windows API past,
@@ -67800,8 +68688,30 @@ describing the API and right into your Rust package where you can call them as
if they were just another Rust module.")
(license (list license:expat license:asl2.0))))
+(define-public rust-windows-sys-0.36
+ (package
+ (inherit rust-windows-sys-0.42)
+ (name "rust-windows-sys")
+ (version "0.36.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1lmqangv0zg1l46xiq7rfnqwsx8f8m52mqbgg2mrx7x52rd1a17a"))))
+ (arguments
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.36)
+ ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.36)
+ ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.36)
+ ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.36)
+ ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.36))))))
+
(define-public rust-windows-sys-0.28
(package
+ (inherit rust-windows-sys-0.36)
(name "rust-windows-sys")
(version "0.28.0")
(source
@@ -67811,22 +68721,14 @@ if they were just another Rust module.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1xkghf343nll9i1yvha1a4spf53mnb5knzmnqj9adgsw5mh3kjl2"))))
- (build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.28)
- ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.28)
- ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.28)
- ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.28)
- ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.28))))
- (home-page "https://github.com/microsoft/windows-rs")
- (synopsis "Rust for Windows")
- (description "The windows crate lets you call any Windows API past,
-present, and future using code generated on the fly directly from the metadata
-describing the API and right into your Rust package where you can call them as
-if they were just another Rust module.")
- (license (list license:expat license:asl2.0))))
+ (list #:skip-build? #t
+ #:cargo-inputs
+ `(("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.28)
+ ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.28)
+ ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.28)
+ ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.28)
+ ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.28))))))
(define-public rust-windows-gen-0.9
(package
@@ -67887,599 +68789,182 @@ if they were just another Rust module.")
windows crate.")
(license (list license:expat license:asl2.0))))
-(define-public rust-xmltree-0.10
- (package
- (name "rust-xmltree")
- (version "0.10.3")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "xmltree" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1jqzwhr1a5cknflsshhhjlllmd1xi04qdkjsls2bnmv5mxgagn6p"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-indexmap" ,rust-indexmap-1)
- ("rust-xml-rs" ,rust-xml-rs-0.8))))
- (home-page "https://github.com/eminence/xmltree-rs")
- (synopsis "Parse an XML file into a simple tree-like structure")
- (description "This package provides a small library for parsing an XML
-file into an in-memory tree structure.")
- (license license:expat)))
-
-(define-public rust-xmltree-0.8
+(define-public rust-windows-x86-64-gnu-0.42
(package
- (inherit rust-xmltree-0.10)
- (name "rust-xmltree")
- (version "0.8.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "xmltree" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0w0y0jz7lhxg05ca6ngfj0lj8sbrjh4vaqv13q7qaqkhs7lsx3pz"))))
- (arguments
- `(#:cargo-inputs
- (("rust-indexmap" ,rust-indexmap-1)
- ("rust-xml-rs" ,rust-xml-rs-0.7))))))
-
-(define-public rust-svd-parser-0.9
- (package
- (name "rust-svd-parser")
- (version "0.10.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "svd-parser" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1fbr4m9cla6xvmrib7pad9hv29sn2d5hjbc77pz12lwzmm2pczk9"))))
+ (name "rust-windows-x86-64-gnu")
+ (version "0.42.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows_x86_64_gnu" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1vdh8k5a4m6pfkc5gladqznyqxgapkjm0qb8iwqvqb1nnlhinyxz"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-anyhow" ,rust-anyhow-1)
- ("rust-once-cell" ,rust-once-cell-1)
- ("rust-rayon" ,rust-rayon-1)
- ("rust-regex" ,rust-regex-1)
- ("rust-serde" ,rust-serde-1)
- ("rust-thiserror" ,rust-thiserror-1)
- ("rust-xmltree" ,rust-xmltree-0.8))
- #:cargo-development-inputs
- (("rust-serde-json" ,rust-serde-json-1))))
- (home-page "https://github.com/rust-embedded/svd")
- (synopsis "CMSIS-SVD file parser")
+ (list #:skip-build? #t))
+ (home-page "https://github.com/microsoft/windows-rs")
+ (synopsis "Code gen support for the windows crate")
(description
- "This package provides a CMSIS-SVD file parser")
+ "This package provides code gen support for the windows crate.")
(license (list license:expat license:asl2.0))))
-(define-public rust-svgtypes-0.5
- (package
- (name "rust-svgtypes")
- (version "0.5.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "svgtypes" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1zv0yb4nfyz78y8k7fmyjqgdh9vf7xc44c9pzry8640szym6ylww"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build?
- #t
- #:cargo-inputs
- (("rust-float-cmp" ,rust-float-cmp-0.5)
- ("rust-siphasher" ,rust-siphasher-0.2))))
- (home-page "https://github.com/RazrFalcon/svgtypes")
- (synopsis "SVG types parser")
- (description "This package provides SVG types parser.")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-sxd-document-0.3
- (package
- (name "rust-sxd-document")
- (version "0.3.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "sxd-document" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0y10shqmy9xb73g403rg1108wsagny9d8jrcm081pbwzpqvjzn4l"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-peresil" ,rust-peresil-0.3)
- ("rust-typed-arena" ,rust-typed-arena-1))))
- (home-page "https://github.com/shepmaster/sxd-document")
- (synopsis "Rust XML DOM library")
- (description "This package provides a Rust XML DOM library.")
- (license license:expat)))
-
-(define-public rust-sxd-xpath-0.4
+(define-public rust-windows-x86-64-gnu-0.36
(package
- (name "rust-sxd-xpath")
- (version "0.4.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "sxd-xpath" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1sin3g8lzans065gjcwrpm7gdpwdpdg4rpi91rlvb1q8sfjrvqrn"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-peresil" ,rust-peresil-0.3)
- ("rust-quick-error" ,rust-quick-error-1)
- ("rust-sxd-document" ,rust-sxd-document-0.3))))
- (home-page "https://github.com/shepmaster/sxd-xpath")
- (synopsis "Rust XML XPath library")
- (description "This package provides a Rust XML XPath library.")
- (license (list license:expat license:asl2.0))))
+ (inherit rust-windows-x86-64-gnu-0.42)
+ (name "rust-windows-x86-64-gnu")
+ (version "0.36.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows_x86_64_gnu" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1qfrck3jnihymfrd01s8260d4snql8ks2p8yaabipi3nhwdigkad"))))))
-(define-public rust-im-rc-15
+(define-public rust-windows-x86-64-gnu-0.32
(package
- (name "rust-im-rc")
- (version "15.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "im-rc" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0gsgcs1nn38r40973l6zr1v4d85f4s9qyl32n5f20jphf5z9ba1w"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-arbitrary" ,rust-arbitrary-0.4)
- ("rust-bitmaps" ,rust-bitmaps-2)
- ("rust-proptest" ,rust-proptest-0.9)
- ("rust-quickcheck" ,rust-quickcheck-0.9)
- ("rust-rand-core" ,rust-rand-core-0.5)
- ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.4)
- ("rust-rayon" ,rust-rayon-1)
- ("rust-refpool" ,rust-refpool-0.4)
- ("rust-serde" ,rust-serde-1)
- ("rust-sized-chunks" ,rust-sized-chunks-0.6)
- ("rust-typenum" ,rust-typenum-1)
- ("rust-version-check" ,rust-version-check-0.9))
- #:cargo-development-inputs
- (("rust-metrohash" ,rust-metrohash-1)
- ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
- ("rust-proptest" ,rust-proptest-0.9)
- ("rust-proptest-derive" ,rust-proptest-derive-0.1)
- ("rust-rand" ,rust-rand-0.7)
- ("rust-rayon" ,rust-rayon-1)
- ("rust-serde" ,rust-serde-1)
- ("rust-serde-json" ,rust-serde-json-1)
- ("rust-version-check" ,rust-version-check-0.9))))
- (home-page "https://docs.rs/crate/im")
- (synopsis "Fast immutable collection datatypes for Rust")
- (description "@code{im-rc} provides immutable collection datatypes for
-Rust that are very fast but not thread-safe. A thread-safe (and slower)
-variant of this library is available separately as @code{im}.")
- (license license:mpl2.0)))
+ (inherit rust-windows-x86-64-gnu-0.36)
+ (name "rust-windows-x86-64-gnu")
+ (version "0.32.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows_x86_64_gnu" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1g34xhcayig9sndq3555w95q6lr7jr839zxv6l365ijlfhpv24n9"))))))
-(define-public rust-impl-codec-0.5
+(define-public rust-windows-x86-64-gnu-0.28
(package
- (name "rust-impl-codec")
- (version "0.5.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "impl-codec" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0hy4svffnw9idy9ipp0hkmbzk97fl583akqwyqmvbqy8qgzbs7hn"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-parity-scale-codec" ,rust-parity-scale-codec-2))))
- (home-page "https://github.com/paritytech/parity-common")
- (synopsis "Parity Codec serialization support for uint and fixed hash")
- (description "This package provides Parity Codec serialization support
-for uint and fixed hash.")
- (license (list license:expat license:asl2.0))))
+ (inherit rust-windows-x86-64-gnu-0.32)
+ (name "rust-windows-x86-64-gnu")
+ (version "0.28.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows_x86_64_gnu" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0m79bhdr54g4h4wh2q8wkjlkypb5wvl7xzhc2csiaqb5yl4z8cdw"))))))
-(define-public rust-impl-rlp-0.3
+(define-public rust-windows-x86-64-gnullvm-0.42
(package
- (name "rust-impl-rlp")
- (version "0.3.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "impl-rlp" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "021869d5s47ili9kmhm9y80qpsbf0wwdap14qzfpb84pjbw210pj"))))
+ (name "rust-windows-x86-64-gnullvm")
+ (version "0.42.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows-x86-64-gnullvm" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0a10rns9b07m9snlr97iqxq42zi9ai547gb5fqlv7vihpb92bm89"))))
(build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-rlp" ,rust-rlp-0.5))))
- (home-page "https://github.com/paritytech/parity-common")
- (synopsis "RLP serialization support for uint and fixed hash")
- (description "This package provides RLP serialization support for uint
-and fixed hash.")
+ (arguments (list #:skip-build? #t))
+ (home-page "https://github.com/microsoft/windows-rs")
+ (synopsis "Code gen support for the windows crate")
+ (description
+ "This package provides code gen support for the windows crate.")
(license (list license:expat license:asl2.0))))
-(define-public rust-impl-serde-0.3
+(define-public rust-windows-x86-64-msvc-0.42
(package
- (name "rust-impl-serde")
- (version "0.3.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "impl-serde" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0p2zy8ikdxd28s3vb22nwqgnwjn8gx920sr2svdn93j3yd1g0la5"))))
+ (name "rust-windows-x86-64-msvc")
+ (version "0.42.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows_x86_64_msvc" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1xdnvhg8yj4fgjy0vkrahq5cbgfpcd7ak2bdv8s5lwjrazc0j07l"))))
(build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-serde" ,rust-serde-1))
- #:cargo-development-inputs
- (("rust-criterion" ,rust-criterion-0.3)
- ("rust-serde-derive" ,rust-serde-derive-1)
- ("rust-serde-json" ,rust-serde-json-1)
- ("rust-uint" ,rust-uint-0.9))))
- (home-page "https://github.com/paritytech/parity-common")
- (synopsis "Serde serialization support for uint and fixed hash")
- (description "This package provides @code{serde} serialization support
-for @code{uint} and @code{fixed_hash}.")
+ (arguments (list #:skip-build? #t))
+ (home-page "https://github.com/microsoft/windows-rs")
+ (synopsis "Code gen support for the windows crate")
+ (description
+ "This package provides code gen support for the windows crate.")
(license (list license:expat license:asl2.0))))
-(define-public rust-impl-trait-for-tuples-0.2
+(define-public rust-windows-x86-64-msvc-0.36
(package
- (name "rust-impl-trait-for-tuples")
- (version "0.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "impl-trait-for-tuples" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1vii634v1zvb680h28md42xpdrj1j1d50ix3dga95fxkql8cpnnm"))))
- (build-system cargo-build-system)
- (arguments
- `(#:tests? #false ; Some tests fail. Unstable compiler messages?
- #:cargo-inputs
- (("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-quote" ,rust-quote-1)
- ("rust-syn" ,rust-syn-1))
- #:cargo-development-inputs
- (("rust-trybuild" ,rust-trybuild-1))))
- (home-page "https://github.com/bkchr/impl-trait-for-tuples")
- (synopsis "Attribute macro to implement a trait for tuples")
- (description "This package provides attribute macro to implement
-a trait for tuples.")
- (license (list license:asl2.0 license:expat))))
+ (inherit rust-windows-x86-64-msvc-0.42)
+ (name "rust-windows-x86-64-msvc")
+ (version "0.36.1")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows_x86_64_msvc" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "103n3xijm5vr7qxr1dps202ckfnv7njjnnfqmchg8gl5ii5cl4f8"))))))
-(define-public rust-indicatif-0.16
+(define-public rust-windows-x86-64-msvc-0.32
(package
- (name "rust-indicatif")
- (version "0.16.2")
+ (inherit rust-windows-x86-64-msvc-0.36)
+ (name "rust-windows-x86-64-msvc")
+ (version "0.32.0")
(source (origin
(method url-fetch)
- (uri (crate-uri "indicatif" version))
+ (uri (crate-uri "windows_x86_64_msvc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "06xyjs0kzqiqkjn60n1miwm2l87sa9p2lmzz0ymq18y72z37s81d"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-console" ,rust-console-0.15)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-number-prefix" ,rust-number-prefix-0.4)
- ("rust-rayon" ,rust-rayon-1)
- ("rust-regex" ,rust-regex-1)
- ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
- ("rust-unicode-width" ,rust-unicode-width-0.1))))
- (home-page "https://github.com/console-rs/indicatif")
- (synopsis "Progress bar and cli reporting library for Rust")
- (description
- "This package provides a progress bar and cli reporting library for
-Rust.")
- (license license:expat)))
+ "05l392h518dxn808dc1zkv6d0r9z38q68qqc0ix9fs9741v28jjh"))))))
-(define-public rust-inflections-1
+(define-public rust-windows-x86-64-msvc-0.28
(package
- (name "rust-inflections")
- (version "1.1.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "inflections" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0yl3gas612q25c72lwf04405i87yxr02vgv3ckcnz2fyvhpmhmx2"))))
- (build-system cargo-build-system)
- (home-page #f)
- (synopsis
- "Inflection transformation library for changing properties of words")
- (description
- "High performance inflection transformation library for changing properties of words like the case.")
- (license license:expat)))
+ (inherit rust-windows-x86-64-msvc-0.32)
+ (name "rust-windows-x86-64-msvc")
+ (version "0.28.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "windows_x86_64_msvc" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17z8q25pd3dp6b84qm9nlayd3ym78sbryxlqmgcxvz9vpmy8qarz"))))))
-(define-public rust-rustc-workspace-hack-1
+(define-public rust-xmltree-0.10
(package
- (name "rust-rustc-workspace-hack")
- (version "1.0.0")
+ (name "rust-xmltree")
+ (version "0.10.3")
(source
(origin
(method url-fetch)
- (uri (crate-uri "rustc-workspace-hack" version))
+ (uri (crate-uri "xmltree" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "1yx8l58n2vb2ldpi3z1jn4dmi5hnxvikbhpd5lilpdvkl7xd4wgw"))))
- (build-system cargo-build-system)
- (home-page "https://crates.io/crates/rustc-workspace-hack")
- (synopsis "Hack for the compiler's own build system")
- (description "Hack for the compiler's own build system. It is used by
-@code{cargo}.")
- (license (list license:expat license:asl2.0))))
-
-(define-public skim
- (package
- (name "skim")
- (version "0.9.4")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "skim" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1d5v9vq8frkdjm7bnw3455h6xf3c277d51il2qasn7r20kwik7ab"))))
+ (base32 "1jqzwhr1a5cknflsshhhjlllmd1xi04qdkjsls2bnmv5mxgagn6p"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-atty-0.2" ,rust-atty-0.2)
- ("rust-beef" ,rust-beef-0.5)
- ("rust-bitflags" ,rust-bitflags-1)
- ("rust-chrono" ,rust-chrono-0.4)
- ("rust-clap" ,rust-clap-2)
- ("rust-crossbeam" ,rust-crossbeam-0.8)
- ("rust-defer-drop" ,rust-defer-drop-1)
- ("rust-derive-builder" ,rust-derive-builder-0.9)
- ("rust-env-logger" ,rust-env-logger-0.8)
- ("rust-fuzzy-matcher" ,rust-fuzzy-matcher-0.3)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-log" ,rust-log-0.4)
- ("rust-nix" ,rust-nix-0.19)
- ("rust-rayon" ,rust-rayon-1)
- ("rust-regex" ,rust-regex-1)
- ("rust-shlex" ,rust-shlex-0.1)
- ("rust-time" ,rust-time-0.2)
- ("rust-timer" ,rust-timer-0.2)
- ("rust-tuikit" ,rust-tuikit-0.4)
- ("rust-unicode-width" ,rust-unicode-width-0.1)
- ("rust-vte" ,rust-vte-0.9))
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'install-extras
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (share (string-append out "/share"))
- (man (string-append out "/share/man"))
- (vimfiles (string-append share "/vim/vimfiles/plugin"))
- (bash-completion
- (string-append share "/bash-completions/completions"))
- (zsh-site (string-append share "/zsh/site-functions"))
- (fish-vendor
- (string-append share "/fish/vendor-completions.d")))
- ;; Binaries
- (for-each
- (lambda (binary) (install-file binary bin))
- (find-files "bin"))
- (mkdir-p share)
- ;; Manpages
- (copy-recursively "man" man)
- ;; Vim plugins
- (mkdir-p vimfiles)
- (copy-recursively "plugin" vimfiles)
- ;; Completions
- (mkdir-p bash-completion)
- (copy-file
- "shell/completion.bash"
- (string-append bash-completion "/skim"))
- (copy-file
- "shell/key-bindings.bash"
- (string-append bash-completion "/skim-bindings"))
- (mkdir-p zsh-site)
- (copy-file
- "shell/completion.zsh"
- (string-append zsh-site "/_skim"))
- (copy-file
- "shell/key-bindings.zsh"
- (string-append zsh-site "/_skim-bindings"))
- (mkdir-p fish-vendor)
- (copy-file
- "shell/key-bindings.fish"
- (string-append fish-vendor "/skim-bindings.fish"))))))))
- (home-page "https://github.com/lotabout/skim")
- (synopsis "Fuzzy Finder in Rust")
- (description "This package provides a fuzzy finder in Rust.")
- (license license:expat)))
-
-(define-public skim-0.7
- (package
- (inherit skim)
- (name "skim")
- (version "0.7.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "skim" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1yiyd6fml5hd2l811sckkzmiiq9bd7018ajk4qk3ai4wyvqnw8mv"))))
- (arguments
`(#:cargo-inputs
- (("rust-bitflags" ,rust-bitflags-1)
- ("rust-chrono" ,rust-chrono-0.4)
- ("rust-clap" ,rust-clap-2)
- ("rust-derive-builder" ,rust-derive-builder-0.9)
- ("rust-env-logger" ,rust-env-logger-0.6)
- ("rust-fuzzy-matcher" ,rust-fuzzy-matcher-0.3)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-log" ,rust-log-0.4)
- ("rust-nix" ,rust-nix-0.14)
- ("rust-rayon" ,rust-rayon-1)
- ("rust-regex" ,rust-regex-1)
- ("rust-shlex" ,rust-shlex-0.1)
- ("rust-time" ,rust-time-0.1)
- ("rust-timer" ,rust-timer-0.2)
- ("rust-tuikit" ,rust-tuikit-0.2)
- ("rust-unicode-width" ,rust-unicode-width-0.1)
- ("rust-vte" ,rust-vte-0.3))))))
-
-(define-public rust-skim-0.7
- (deprecated-package "rust-skim-0.7" skim-0.7))
-
-(define-public rust-clap-conf-0.1
- (package
- (name "rust-clap-conf")
- (version "0.1.5")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "clap_conf" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1n29wr6ns660hi63mc30zvs7dhidaycw35am9spzknsal3nrs0sn"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-anyhow" ,rust-anyhow-1)
- ("rust-clap" ,rust-clap-2)
- ("rust-serde" ,rust-serde-1)
- ("rust-thiserror" ,rust-thiserror-1)
- ("rust-toml" ,rust-toml-0.5))))
- (home-page
- "https://github.com/storyfeet/clap_conf")
- (synopsis
- "Library to unify commandline arguments, config files and environment variables")
- (description
- "This package provides a library to unify commandline arguments with config files and environment variables. And make it easier for users to tell your program how to behave across the three main input sources")
+ (("rust-indexmap" ,rust-indexmap-1)
+ ("rust-xml-rs" ,rust-xml-rs-0.8))))
+ (home-page "https://github.com/eminence/xmltree-rs")
+ (synopsis "Parse an XML file into a simple tree-like structure")
+ (description "This package provides a small library for parsing an XML
+file into an in-memory tree structure.")
(license license:expat)))
-(define-public svd2rust
- (package
- (name "svd2rust")
- (version "0.19.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "svd2rust" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0q8slfgjfhpljzlk2myb0i538mfq99q1ljn398jm17r1q2pjjxhv"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-anyhow" ,rust-anyhow-1)
- ("rust-cast" ,rust-cast-0.2)
- ("rust-clap" ,rust-clap-2)
- ("rust-clap-conf" ,rust-clap-conf-0.1)
- ("rust-env-logger" ,rust-env-logger-0.7)
- ("rust-inflections" ,rust-inflections-1)
- ("rust-log" ,rust-log-0.4)
- ("rust-proc-macro2" ,rust-proc-macro2-0.4)
- ("rust-quote" ,rust-quote-1)
- ("rust-svd-parser" ,rust-svd-parser-0.9)
- ("rust-syn" ,rust-syn-1)
- ("rust-thiserror" ,rust-thiserror-1))))
- (home-page #f)
- (synopsis
- "Generate Rust register maps (`struct`s) from SVD files")
- (description
- "Generate Rust register maps (`struct`s) from SVD files")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-xi-unicode-0.3
+(define-public rust-xmltree-0.8
(package
- (name "rust-xi-unicode")
- (version "0.3.0")
+ (inherit rust-xmltree-0.10)
+ (name "rust-xmltree")
+ (version "0.8.0")
(source
(origin
(method url-fetch)
- (uri (crate-uri "xi-unicode" version))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (crate-uri "xmltree" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "12mvjgrhr7557cib69wm4q5s4srba27pg2df9l1zihrxgnbh0wx6"))))
- (build-system cargo-build-system)
- (arguments `(#:skip-build? #t))
- (home-page "https://github.com/google/xi-editor")
- (synopsis
- "Unicode utilities for text editing, including a line breaking iterator")
- (description
- "This package provides Unicode utilities useful for text editing,
-including a line breaking iterator.")
- (license license:asl2.0)))
-
-(define-public rust-enquote-1
- (package
- (name "rust-enquote")
- (version "1.1.0")
- (home-page "https://github.com/reujab/enquote")
- (source (origin
- (method url-fetch)
- (uri (crate-uri "enquote" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6"))))
- (build-system cargo-build-system)
- (synopsis "Rust library that quotes, unquotes, and unescapes strings")
- (description "A Rust library quotes, unquotes, and unescapes strings")
- (license license:unlicense)))
-
-(define-public rust-pam-sys-0.5
- (package
- (name "rust-pam-sys")
- (version "0.5.6")
- (home-page "https://github.com/1wilkens/pam-sys")
- (source (origin
- (method url-fetch)
- (uri (crate-uri "pam-sys" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d"))))
- (build-system cargo-build-system)
+ (base32 "0w0y0jz7lhxg05ca6ngfj0lj8sbrjh4vaqv13q7qaqkhs7lsx3pz"))))
(arguments
- `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
- (inputs `(("linux-pam" ,linux-pam)))
- (synopsis
- "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)")
- (description
- "This crate uses bindgen to generate the raw FFI definitions for PAM. For a rustified API consider using pam.")
- (license (list license:expat license:asl2.0))))
+ `(#:cargo-inputs
+ (("rust-indexmap" ,rust-indexmap-1)
+ ("rust-xml-rs" ,rust-xml-rs-0.7))))))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index d3b1f179b6..c729363fe8 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -871,7 +871,7 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.")
(define-public epson-inkjet-printer-escpr
(package
(name "epson-inkjet-printer-escpr")
- (version "1.7.21")
+ (version "1.7.22")
;; XXX: This currently works. But it will break as soon as a newer
;; version is available since the URLs for older versions are not
;; preserved. An alternative source will be added as soon as
@@ -879,11 +879,11 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.")
(source
(origin
(method url-fetch)
- (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/13/77/"
- "93/e85dc2dc266e96fdc242bd95758bd88d1a51963e/"
- "epson-inkjet-printer-escpr-1.7.21-1lsb3.2.tar.gz"))
+ (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/13/96/"
+ "55/c6fced63098ae1ba104f11f572794fd558ffca29/"
+ "epson-inkjet-printer-escpr-1.7.22-1lsb3.2.tar.gz"))
(sha256
- (base32 "0z1x9p58321plf2swfxgl72wn7ls8bfbyjwd9l9c8jxfr1v2skkz"))))
+ (base32 "0b359krhhjjw5hc4b0gqdqwrm6dzc263mdccfzgnyyq7znkyybqb"))))
(build-system gnu-build-system)
(arguments
(list #:modules
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index d82d94abff..c713859a62 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -366,7 +366,7 @@ curl to obtain exactly that HTTP request.")
(define-public coeurl
(package
(name "coeurl")
- (version "0.2.0")
+ (version "0.2.1")
(source
(origin
(method git-fetch)
@@ -375,8 +375,7 @@ curl to obtain exactly that HTTP request.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "0kbazvrb4hzc9jr7yywd36ack1yy7bh8sh1kc4jzv6jfzvxjb0i0"))))
+ (base32 "0qbbrfs35zl0wl6x6jn4p9ncxgdm70a883cflvikkykx9n5k2lpq"))))
(build-system meson-build-system)
(native-inputs
(list doctest pkg-config))
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index e69d1ce83b..1c4f570fe4 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2022 Matthew James Kraai <kraai@ftbfs.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -34,6 +35,8 @@
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system go)
+ #:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages attr)
#:use-module (gnu packages autotools)
@@ -856,3 +859,29 @@ engineering.")
(home-page "https://github.com/epasveer/seer")
;; Note: Some icons in src/resources are creative commons 3.0 and/or 4.0.
(license license:gpl3+)))
+
+(define-public delve
+ (package
+ (name "delve")
+ (version "1.9.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/go-delve/delve")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "07jch3yd1pgqviyy18amn23gazbzi7l51f210c3vmc707v3vbbqr"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/go-delve/delve/cmd/dlv"
+ #:unpack-path "github.com/go-delve/delve"
+ #:install-source? #f
+ #:phases #~(modify-phases %standard-phases (delete 'check))))
+ (propagated-inputs (list go))
+ (home-page "https://github.com/go-delve/delve")
+ (synopsis "Debugger for the Go programming language")
+ (description "Delve is a debugger for the Go programming language.")
+ (license license:expat)))
diff --git a/gnu/packages/digest.scm b/gnu/packages/digest.scm
index 4211848fdb..481771804b 100644
--- a/gnu/packages/digest.scm
+++ b/gnu/packages/digest.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com>
-;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,9 +25,11 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix utils)
+ #:use-module (gnu packages python-build)
#:use-module (ice-9 match))
(define-public wyhash
@@ -111,15 +113,17 @@ platforms (both big and little endian).")
(define-public python-xxhash
(package
(name "python-xxhash")
- (version "2.0.2")
+ (version "3.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xxhash" version))
(sha256
(base32
- "0jbvz19acznq00544gcsjg05fkvrmwbnwdfgrvwss3i1ys6avgmp"))))
- (build-system python-build-system)
+ "1hdxcscry59gh0znlm71ya23mm9rfmvz8lvvlplzxzf63pib28dc"))))
+ (build-system pyproject-build-system)
+ ;; Needed to embed the correct version string
+ (native-inputs (list python-setuptools-scm))
(home-page "https://github.com/ifduyue/python-xxhash")
(synopsis "Python binding for xxHash")
(description "This package provides Python bindings for the xxHash hash
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 8912bb74bc..85e2d7c729 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -1021,7 +1021,7 @@ to create devices with respective mappings for the ATARAID sets discovered.")
(define-public libblockdev
(package
(name "libblockdev")
- (version "2.27")
+ (version "2.28")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/storaged-project/"
@@ -1029,7 +1029,7 @@ to create devices with respective mappings for the ATARAID sets discovered.")
version "-1/libblockdev-" version ".tar.gz"))
(sha256
(base32
- "05rm9h8v30rahr245jcw6if6b5g16mb5hnz7wl1shzip0wky3k3d"))))
+ "1x3xbgd2dyjhcqvyalpnrp727xidfxmaxgyyvv5gwx4aw90wijc2"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -1142,6 +1142,7 @@ on your file system and offers to remove it. @command{rmlint} can find:
(define-public lf
(package
(name "lf")
+ ;; When updating, remove go-github-com-gdamore-tcell-v2-2.3 from golang.scm.
(version "27")
(source (origin
(method git-fetch)
@@ -1155,7 +1156,7 @@ on your file system and offers to remove it. @command{rmlint} can find:
(build-system go-build-system)
(native-inputs
(list go-github.com-mattn-go-runewidth go-golang-org-x-term
- go-gopkg-in-djherbis-times-v1 go-github-com-gdamore-tcell-v2))
+ go-gopkg-in-djherbis-times-v1 go-github-com-gdamore-tcell-v2-2.3))
(arguments
`(#:import-path "github.com/gokcehan/lf"))
(home-page "https://github.com/gokcehan/lf")
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 21b711d147..3762e093a2 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -871,7 +871,7 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
- (version "3.2.2")
+ (version "3.2.3")
(source
(origin
(method git-fetch)
@@ -880,7 +880,7 @@ Extensions} (DNSSEC).")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1x1waa2cb91zhsqkx4mkiqy00kq1f1pavjfhlz7wknlnll48iayd"))
+ (base32 "117q8jllaakd6gv0mfkq45sigy5c8j8jbyxiwna3wan0mjx81fhv"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 9013e37a54..4dd813f919 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -258,7 +258,7 @@
(define-public emacs-geiser
(package
(name "emacs-geiser")
- (version "0.28")
+ (version "0.28.1")
(source
(origin
(method git-fetch)
@@ -267,7 +267,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0dd20cq3nz4jjysaqx2aiqqaxvkfkbj2x4zm2mz3pd4rmydckj2y"))))
+ (base32 "111as99278vbv6pwj8rpl308g327f8iznnrz71mngl6d5mr0xpa1"))))
(build-system emacs-build-system)
(arguments
'(#:phases
@@ -305,7 +305,7 @@ e.g. emacs-geiser-guile for Guile.")
(define-public emacs-geiser-guile
(package
(name "emacs-geiser-guile")
- (version "0.28.0")
+ (version "0.28.1")
(source
(origin
(method git-fetch)
@@ -314,7 +314,7 @@ e.g. emacs-geiser-guile for Guile.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "13qxg1npm0pmnml5q268k5xk1clyqldp8v200ihrqwqlc3ga7f36"))))
+ (base32 "0gp8xbfm7y2gabjyys8jylfy1pkkglqas32xxrbqxfh1hv0cfh2f"))))
(build-system emacs-build-system)
(arguments
(list
@@ -16016,7 +16016,7 @@ similar syntax; currently C++, Objective-C, Java, CORBA's IDL, Pike, and AWK.")
(define-public emacs-csharp-mode
(package
(name "emacs-csharp-mode")
- (version "1.1.1")
+ (version "2.0.0")
(source
(origin
(method git-fetch)
@@ -16025,7 +16025,7 @@ similar syntax; currently C++, Objective-C, Java, CORBA's IDL, Pike, and AWK.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0wfd4jdjsq8qp6pavf25y87dxvlnsqapfi4c4m3xj24baalr2dpq"))))
+ (base32 "1d0pf236xi4c7fazv67a53yrac24lilnkzp9pb55xm88gig7rfmz"))))
(build-system emacs-build-system)
(home-page "https://github.com/josteink/csharp-mode")
(synopsis "Major mode for C# code")
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 0458ed5f13..6f8758aeeb 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -1676,3 +1676,38 @@ provides command line tools for Mbed OS to detect Mbed enabled devices
connected by USB, checkout Mbed projects and perform builds amongst other
operations.")
(license license:asl2.0)))
+
+(define-public ts4900-utils
+ ;; There are no proper release nor tag; use the latest commit.
+ (let ((revision "0")
+ (commit "e10a12f8050d1d1229e711c7cfab8a0d5d93ee58"))
+ (package
+ (name "ts4900-utils")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/embeddedTS/ts4900-utils")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1vr8i425qijbwgbc10av3wr35p3x11wy6y442w0ja0yny7si8wp8"))))
+ (build-system gnu-build-system)
+ (native-inputs (list autoconf automake))
+ (home-page "https://github.com/embeddedTS/ts4900-utils")
+ (synopsis "Utilities for the TS-4900 board family")
+ (description "This package contains utilities useful for boards of the
+TS-4900 family. The included commands are:
+@itemize @code
+@item adc8390
+@item gpioctl
+@item isl12020rtc
+@item load_fpga
+@item nvramctl
+@item tshwctl
+@item tsmicroctl
+@item tsmicroupdate
+@item tssilomon
+@end itemize")
+ (license license:bsd-2))))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 43e23e30a8..1f3958f55c 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -669,7 +669,7 @@ multipole-accelerated algorithm.")
(define-public fritzing
(package
(name "fritzing")
- (version "0.9.3b")
+ (version "0.9.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -678,7 +678,7 @@ multipole-accelerated algorithm.")
(file-name (git-file-name name version))
(sha256
(base32
- "0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3"))))
+ "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -687,24 +687,18 @@ multipole-accelerated algorithm.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively (assoc-ref inputs "fritzing-parts-db")
"parts")
- ;; Make compatible with libgit2 > 0.24
- (substitute* "src/version/partschecker.cpp"
- (("error = git_remote_connect\\(remote, GIT_DIRECTION_FETCH, &callbacks\\)")
- "error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL, NULL)"))
-
;; Use system libgit2 and boost.
(substitute* "phoenix.pro"
- (("^LIBGIT2INCLUDE =.*")
- (string-append "LIBGIT2INCLUDE="
- (assoc-ref inputs "libgit2") "/include\n"))
- (("^ LIBGIT2LIB =.*")
- (string-append " LIBGIT2LIB="
- (assoc-ref inputs "libgit2") "/lib\n")))
- ;; This file checks for old versions of Boost, insisting on
- ;; having us download the boost sources and placing them in the
- ;; build directory.
- (substitute* "pri/utils.pri"
- (("error\\(") "message("))
+ (("^LIBGIT_STATIC.*")
+ (string-append "LIBGIT2INCLUDE=" (assoc-ref inputs "libgit2") "/include\n"
+ "LIBGIT2LIB=" (assoc-ref inputs "libgit2") "/lib\n"
+ "INCLUDEPATH += $$LIBGIT2INCLUDE\n"
+ "LIBS += -L$$LIBGIT2LIB -lgit2\n"))
+ (("^.*pri/libgit2detect.pri.") ""))
+ ;; Trick the internal mechanism to load the parts
+ (substitute* "src/version/partschecker.cpp"
+ ((".*git_libgit2_init.*")
+ "return \"083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs\";"))
(let ((out (assoc-ref outputs "out")))
(invoke "qmake"
@@ -723,11 +717,11 @@ multipole-accelerated algorithm.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/fritzing/fritzing-parts")
- (commit version)))
+ (commit (string-append "release_" version))))
(file-name (git-file-name "fritzing-parts" version))
(sha256
(base32
- "1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1"))))))
+ "0wsvn57v6n0ygnhk2my94rrfzb962z1cj4d1xmp1farwck3811h6"))))))
(home-page "https://fritzing.org")
(synopsis "Electronic circuit design")
(description
@@ -970,6 +964,7 @@ Emacs).")
#$(this-package-input "opencascade-occt")
"/include/opencascade")
"-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
+ "-DKICAD_USE_EGL=ON" ;because wxWidgets uses EGL
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
#:phases
(modify-phases %standard-phases
@@ -980,16 +975,6 @@ Emacs).")
(string-append "NGSPICE_DLL_FILE=\""
(assoc-ref inputs "libngspice")
"/lib/libngspice.so\"")))))
- (add-after 'unpack 'fix-python-detection
- (lambda _
- (substitute* "CMakeModules/FindPythonLibs.cmake"
- (("_PYTHON3_VERSIONS 3\\.8 3\\.7")
- "_PYTHON3_VERSIONS 3.9 3.8 3.7"))))
- (add-after 'unpack 'add-missing-include
- (lambda _
- (substitute* "common/lib_tree_model.cpp"
- (("#include <eda_pattern_match.h>" all)
- (string-append "#include <algorithm>\n" all)))))
(add-after 'install 'wrap-program
;; Ensure correct Python at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index feb533eca7..eb70503f57 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -2177,7 +2177,7 @@ mining.")
(define-public p2pool
(package
(name "p2pool")
- (version "2.5")
+ (version "2.6")
(source
(origin
(method git-fetch)
@@ -2186,7 +2186,7 @@ mining.")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
- (sha256 (base32 "1kdsxh6f24zp7h7bwkrin2mc81ysfny5wprzgy41h2bc6dpq067w"))
+ (sha256 (base32 "0832mv3f4c61w8s25higjbmmajjkvjdriw1xfygjiw5qxdcs202z"))
(modules '((guix build utils)))
(snippet
#~(for-each delete-file-recursively
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 1c510951e9..077d56ad3d 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1912,7 +1912,7 @@ that wish to perform colour calibration.")
(define-public libfprint
(package
(name "libfprint")
- (version "1.94.4")
+ (version "1.94.5")
(source
(origin
(method git-fetch)
@@ -1921,7 +1921,7 @@ that wish to perform colour calibration.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1wfd2svsq26wizhsaifnr74havswbc1rlfm79b36yrhw9n7c3jqb"))))
+ (base32 "1l1ak7y2kz0nrdkfj41n7h34dyykgzdg50y752ayk3ginp6szr7r"))))
(build-system meson-build-system)
(arguments
(list #:configure-flags
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index 05955ad59a..80ffa927e3 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -240,7 +240,7 @@ output.
nettle
pugixml
sqlite
- wxwidgets))
+ wxwidgets-3.0))
(home-page "https://filezilla-project.org")
(synopsis "Full-featured graphical FTP/FTPS/SFTP client")
(description
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 66d0ca316f..4a0435045b 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -736,6 +736,34 @@ to ease the development of games and multimedia applications. It is composed
of five modules: system, window, graphics, audio and network.")
(license license:zlib)))
+(define-public csfml
+ (package
+ (name "csfml")
+ (version "2.5.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/SFML/CSFML")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wj1p798myyavld2xdhvvflb5h4nf1vgxxzs6nh5qad44vj9b3kb"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags #~(list "-DCSFML_BUILD_DOC=TRUE")
+ #:tests? #f)) ;no tests
+ (native-inputs (list doxygen))
+ (inputs (list sfml))
+ (synopsis "C bindings for the SFML multimedia library")
+ (description
+ "CSFML is the official C binding to the SFML libraries. SFML provides a
+simple interface to the various computer components, to ease the development of
+games and multimedia applications. It is composed of five modules: system,
+window, graphics, audio and network.")
+ (home-page "https://www.sfml-dev.org/download/csfml/")
+ (license license:zlib)))
+
(define-public sfxr
(package
(name "sfxr")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 9d79efbe94..661d727d79 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1427,7 +1427,7 @@ real-time combat.")
(define-public golly
(package
(name "golly")
- (version "3.3")
+ (version "4.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/golly/golly/golly-"
@@ -1435,7 +1435,7 @@ real-time combat.")
"-src.tar.gz"))
(sha256
(base32
- "1j3ksnar4rdam4xiyspgyrs1pifbvxfxkrn65brkwxpx39mpgzc8"))))
+ "0pg9cp83nxc354lizgza5bqdy7z5wh36863203zw6r6s4flji4an"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags (list "CC=gcc"
@@ -1445,17 +1445,7 @@ real-time combat.")
#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs #:allow-other-keys)
- ;; For some reason, setting the PYTHON_SHLIB make flag doesn't
- ;; properly set the path to the Python shared library. This
- ;; substitution acheives the same end by different means.
- (substitute* "gui-wx/wxprefs.cpp"
- (("pythonlib = wxT\\(STRINGIFY\\(PYTHON_SHLIB\\)\\)")
- (string-append "pythonlib = \""
- (assoc-ref inputs "python")
- "/lib/libpython-2.7.so\"")))
- #t))
+ (delete 'configure)
(replace 'build
(lambda* (#:key make-flags outputs #:allow-other-keys)
(with-directory-excursion "gui-wx"
@@ -1485,11 +1475,7 @@ real-time combat.")
(native-inputs
(list lua))
(inputs
- `(("glu" ,glu)
- ("mesa" ,mesa)
- ("python" ,python-2)
- ("wxwidgets" ,wxwidgets-gtk2)
- ("zlib" ,zlib)))
+ (list glu mesa python sdl2 wxwidgets zlib))
(home-page "http://golly.sourceforge.net/")
(synopsis "Software for exploring cellular automata")
(description
@@ -6151,7 +6137,7 @@ starting a decryption sequence to reveal the original plaintext characters.")
libvorbis
lua
sdl2
- wxwidgets))
+ wxwidgets-3.0))
(native-inputs
(list cppunit pkg-config))
(arguments
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 0f777c7f9b..b3a5c0df3f 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -2158,7 +2158,7 @@ exchanged form one Spatial DBMS and the other.")
sqlite
tinyxml
wxsvg
- wxwidgets
+ wxwidgets-3.0
xz
zlib))
(arguments
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f81b44cca2..8652d9e03c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7292,7 +7292,7 @@ almost all of them.")
("gtkspell3" ,gtkspell3)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
- ("webkitgtk" ,webkitgtk)))
+ ("webkitgtk" ,webkitgtk-with-libsoup2)))
(home-page "https://wiki.gnome.org/Apps/Eolie")
(synopsis "Web browser for GNOME")
(description
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 064b775ab1..13b603b64a 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -485,7 +485,7 @@ gpgpme starting with version 1.7.")
(define-public guile-gcrypt
(package
(name "guile-gcrypt")
- (version "0.3.0")
+ (version "0.4.0")
(home-page "https://notabug.org/cwebber/guile-gcrypt")
(source (origin
(method git-fetch)
@@ -494,7 +494,7 @@ gpgpme starting with version 1.7.")
(commit (string-append "v" version))))
(sha256
(base32
- "0m29fg4pdfifnqqsa437zc5c1bhbfh62mc69ba25ak4x2cla41ll"))
+ "0m75h9q10yb27kzjsvhhq0yk3jaxiy9bpbfd9qg269hf9gabgfdx"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index feb80d81a2..52ece9bbd4 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -19,7 +19,6 @@
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Baptiste Strazzul <bstrazzull@hotmail.fr>
-;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -85,7 +84,6 @@
#:use-module (gnu packages assembly)
#:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps)
- #:use-module (gnu packages crates-io)
#:use-module (gnu packages llvm)
#:use-module (gnu packages nss)
#:use-module (gnu packages icu4c)
@@ -350,148 +348,6 @@ in C/C++.")
(inputs
(list icu4c readline zlib))))
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Temporary packaging of rust-cbindgen-0.23 and its dependencies
-;; follow, pending their inclusion into (gnu packages rust-apps)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define rust-textwrap-0.15-promise
- (delay
- (package
- (inherit rust-textwrap-0.12)
- (name "rust-textwrap")
- (version "0.15.0")
- (source (origin
- (method url-fetch)
- (uri (crate-uri "textwrap" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1yw513k61lfiwgqrfvsjw1a5wpvm0azhpjr2kr0jhnq9c56is55i"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs (("rust-hyphenation" ,rust-hyphenation-0.8)
- ("rust-smawk" ,rust-smawk-0.3)
- ("rust-terminal-size" ,rust-terminal-size-0.1)
- ("rust-unicode-linebreak" ,rust-unicode-linebreak-0.1)
- ("rust-unicode-width" ,rust-unicode-width-0.1)))))))
-
-(define rust-clap-lex-0.2
- (package
- (name "rust-clap-lex")
- (version "0.2.4")
- (source (origin
- (method url-fetch)
- (uri (crate-uri "clap_lex" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1ib1a9v55ybnaws11l63az0jgz5xiy24jkdgsmyl7grcm3sz4l18"))))
- (build-system cargo-build-system)
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs (("rust-os-str-bytes" ,rust-os-str-bytes-6))))
- (home-page "https://github.com/clap-rs/clap/tree/master/clap_lex")
- (synopsis "Minimal, flexible command line parser")
- (description "Minimal, flexible command line parser")
- (license (list license:expat license:asl2.0))))
-
-(define rust-clap-derive-3.2.15-promise
- (delay
- (package
- (inherit rust-clap-derive-3)
- (name "rust-clap-derive")
- (version "3.2.15")
- (source (origin
- (method url-fetch)
- (uri (crate-uri "clap_derive" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1d2c4vs345fwihkd8cc7m6acbiydcwramkd5mnp36p0a7g6jm9cv"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs (("rust-heck" ,rust-heck-0.4)
- ("rust-proc-macro-error" ,rust-proc-macro-error-1)
- ("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-quote" ,rust-quote-1)
- ("rust-syn" ,rust-syn-1)))))))
-
-(define rust-clap-3.2.16-promise
- (delay
- (package
- (inherit rust-clap-3)
- (name "rust-clap")
- (version "3.2.16")
- (source (origin
- (method url-fetch)
- (uri (crate-uri "clap" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1af06z8z7m3327yz1xvzxfjanclgpvvy3lssb745rig7adkbpnx3"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs (("rust-atty" ,rust-atty-0.2)
- ("rust-backtrace" ,rust-backtrace-0.3)
- ("rust-bitflags" ,rust-bitflags-1)
- ("rust-clap-derive" ,(force rust-clap-derive-3.2.15-promise))
- ("rust-clap-lex" ,rust-clap-lex-0.2)
- ("rust-indexmap" ,rust-indexmap-1)
- ("rust-once-cell" ,rust-once-cell-1)
- ("rust-regex" ,rust-regex-1)
- ("rust-strsim" ,rust-strsim-0.10)
- ("rust-termcolor" ,rust-termcolor-1)
- ("rust-terminal-size" ,rust-terminal-size-0.1)
- ("rust-textwrap" ,(force rust-textwrap-0.15-promise))
- ("rust-unicase" ,rust-unicase-2)
- ("rust-yaml-rust" ,rust-yaml-rust-0.4)))))))
-
-(define rust-cbindgen-0.24-promise
- (delay
- (package
- (inherit rust-cbindgen-0.19)
- (name "rust-cbindgen")
- (version "0.24.3")
- (source (origin
- (method url-fetch)
- (uri (crate-uri "cbindgen" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1yqxqsz2d0cppd8zwihk2139g5gy38wqgl9snj6rnk8gyvnqsdd6"))))
- (arguments
- `(#:cargo-inputs (("rust-clap" ,(force rust-clap-3.2.16-promise))
- ("rust-heck" ,rust-heck-0.4)
- ("rust-indexmap" ,rust-indexmap-1)
- ("rust-log" ,rust-log-0.4)
- ("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-quote" ,rust-quote-1)
- ("rust-serde" ,rust-serde-1)
- ("rust-serde-json" ,rust-serde-json-1)
- ("rust-syn" ,rust-syn-1)
- ("rust-tempfile" ,rust-tempfile-3)
- ("rust-toml" ,rust-toml-0.5))
- #:cargo-development-inputs (("rust-serial-test" ,rust-serial-test-0.5)))))))
-
-;; Bug with IceCat 102 with cbindgen-0.24, see
-;; https://bugzilla.mozilla.org/show_bug.cgi?id=1773259#c5 for
-;; possible patch (untested)
-(define rust-cbindgen-0.23-promise
- (delay
- (package
- (inherit (force rust-cbindgen-0.24-promise))
- (name "rust-cbindgen")
- (version "0.23.0")
- (source (origin
- (method url-fetch)
- (uri (crate-uri "cbindgen" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav")))))))
-
-
(define mozilla-compare-locales
(origin
(method hg-fetch)
@@ -865,10 +721,9 @@ in C/C++.")
;; ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch"))
;; ("icecat-use-system-media-libs.patch"
;; ,(search-patch "icecat-use-system-media-libs.patch"))
- ;; TODO: Change the following lines to use 'rust' when it's >= 1.59.
rust
`(,rust "cargo")
- (force rust-cbindgen-0.23-promise)
+ rust-cbindgen-0.23
llvm
clang
perl
@@ -1551,7 +1406,7 @@ ca495991b7852b855"))
pkg-config
python-wrapper
rust
- (force rust-cbindgen-0.23-promise)
+ rust-cbindgen-0.23
which
yasm))
(home-page "https://www.thunderbird.net")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index b7c0acb9f6..70ddef52f1 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -6259,6 +6259,21 @@ systems.")
(modify-inputs (package-inputs go-github-com-gdamore-tcell)
(prepend go-golang-org-x-term go-golang-org-x-sys)))))
+(define-public go-github-com-gdamore-tcell-v2-2.3
+ (package
+ (inherit go-github-com-gdamore-tcell-v2)
+ (name "go-github-com-gdamore-tcell")
+ (version "2.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gdamore/tcell")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ypbl5080q9sd3irad8mv7zlg4242i8pmg5xyhbyq95kymwibaid"))))))
+
(define-public go-git-sr-ht-rockorager-tcell-term
(package
(name "go-git-sr-ht-rockorager-tcell-term")
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index e46bf7b741..d846c79526 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -794,7 +794,7 @@ model to base your own plug-in on, here it is.")
;; This test is flaky on at least some architectures.
;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1244
#$@(if (member (%current-system)
- '("i686-linux" "aarch64-linux"))
+ '("i686-linux" "aarch64-linux" "riscv64-linux"))
`((("'elements/camerabin\\.c'\\]\\],")
"'elements/camerabin.c'], true, ],"))
'())
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ad34dd51ec..de82b9e55f 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -344,6 +344,20 @@ output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
(base32
"0c5mzwgz43d37h75p4b6cgjg4v24jdd96i7gjpgxirn8qks2i5m4"))))))
+
+(define-public harfbuzz-5
+ (package
+ (inherit harfbuzz)
+ (version "5.3.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/harfbuzz/harfbuzz"
+ "/releases/download/" version "/harfbuzz-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0ka3nkk2lks2lgakq02vyibwdziv11dkpa2brkx230asnyby0v2a"))))))
+
(define-public libdatrie
(package
(name "libdatrie")
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index f392bb8c16..65558ffe08 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -998,7 +998,7 @@ technology, such as head mounted displays with built in head tracking.")
(define-public openrgb
(package
(name "openrgb")
- (version "0.7")
+ (version "0.8")
(source
(origin
(method git-fetch)
@@ -1007,15 +1007,25 @@ technology, such as head mounted displays with built in head tracking.")
(commit (string-append "release_" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0xhfaz0b74nfnh7il2cz5c0338xlzay00g6hc2h3lsncarj8d5n7"))
+ (base32 "1yz7sdrjcxajm1zpa5djinmych5dvck0r1fvk0x5qmk87va4p9z3"))
(patches
(search-patches "openrgb-unbundle-hueplusplus.patch"))
(modules '((guix build utils)))
(snippet
'(begin
- ;; Delete the bundled hueplusplus and json libraries.
- (delete-file-recursively "dependencies/hueplusplus-1.0.0")
- (delete-file-recursively "dependencies/json")))))
+ ;; Delete many of the bundled libraries.
+ (for-each delete-file-recursively
+ (list "dependencies/hidapi-win"
+ "dependencies/hueplusplus-1.0.0"
+ "dependencies/json"
+ "dependencies/libusb-1.0.22"
+ "dependencies/macUSPCIO"
+ "dependencies/mbedtls-2.24.0"
+ "dependencies/NVFC"
+ "dependencies/openrazer-win32"
+ "dependencies/winring0"
+ ;; Some bundled appimages
+ "scripts/tools"))))))
(build-system cmake-build-system)
(arguments
(list
@@ -1044,7 +1054,8 @@ technology, such as head mounted displays with built in head tracking.")
mbedtls-apache
qtbase-5))
(native-inputs
- (list pkg-config))
+ (list pkg-config
+ qttools-5))
(synopsis "RGB lighting control")
(description
"OpenRGB is lighting control that doesn't depend on manufacturer software.
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index a9a988ca5a..3bdcabdc17 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -99,6 +99,8 @@
"jami-fix-unit-tests-build.patch"
"jami-fix-qml-imports.patch"
"jami-no-webengine.patch"
+ "jami-sipaccount-segfault.patch"
+ "jami-sip-contacts.patch"
"jami-sip-unregister.patch"
"jami-xcb-link.patch"))))
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 530396213a..2103aec5a0 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -483,14 +483,14 @@ Apple Keynote documents. It currently supports Keynote versions 2 to 5.")
(define-public liblangtag
(package
(name "liblangtag")
- (version "0.6.3")
+ (version "0.6.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/tagoh/liblangtag/downloads/"
"liblangtag-" version ".tar.bz2"))
(sha256
- (base32 "1g9kwxx60q0hpwvs66ys1cb9qg54hfvbivadwli8sfpc085a44hz"))))
+ (base32 "0r55r30ih8dgq1hwbpl834igilj7bpxcnmlrlkd3vryk2wn0c0ap"))))
(build-system gnu-build-system)
(native-inputs
(list libtool pkg-config))
@@ -745,14 +745,14 @@ from the old StarOffice (.sdc, .sdw, ...).")
(define-public libwps
(package
(name "libwps")
- (version "0.4.12")
+ (version "0.4.13")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
name "-" version "/" name "-" version ".tar.xz"))
(sha256 (base32
- "1nsfacqp5sfkyayw7q0wp68lidksd1wjdix8qmsbf0vdl19gn6p2"))))
+ "03y4aslp5lfqc14agn0hgkifwrknh8s4hfjll9wrfs1hq3kaz5ff"))))
(build-system gnu-build-system)
(native-inputs
(list doxygen pkg-config))
@@ -992,7 +992,7 @@ spell-checking library.")
(build-system gnu-build-system)
(inputs
(list perl))
- (home-page "http://hunspell.sourceforge.net/")
+ (home-page "https://hunspell.github.io/")
(synopsis "Hyphenation library")
(description "Hyphen is a hyphenation library using TeX hyphenation
patterns, which are pre-processed by a perl script.")
@@ -1050,20 +1050,20 @@ spell-checking library.")
(define-public mythes
(package
(name "mythes")
- (version "1.2.4")
+ (version "1.2.5")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/hunspell/MyThes/" version "/"
- name "-" version ".tar.gz"))
- (sha256 (base32
- "0prh19wy1c74kmzkkavm9qslk99gz8h8wmjvwzjc6lf8v2az708y"))))
+ (uri (string-append "https://github.com/hunspell/mythes/releases/"
+ "download/v" version "/mythes-" version ".tar.xz"))
+ (sha256
+ (base32 "07ajdyyif19k445dqffkm32c1kl8z0cw6bczc7x5zgkvf1q9y9qr"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
(inputs
(list hunspell perl))
- (home-page "http://hunspell.sourceforge.net/")
+ (home-page "https://hunspell.github.io/")
(synopsis "Thesaurus")
(description "MyThes is a simple thesaurus that uses a structured text
data file and an index file with binary search to look up words and phrases
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 2e1da21800..8c417fb600 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -67,6 +67,7 @@
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Hunter Jozwiak <hunter.t.joz@gmail.com>
;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
+;;; Copyright © 2022 Stefan <stefan-guix@vodafonemail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -189,11 +190,31 @@
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
- #:use-module (ice-9 regex))
+ #:use-module (ice-9 regex)
+ #:export (customize-linux
+ make-defconfig))
+
+(define (linux-srcarch)
+ "Return the linux SRCARCH name, which is set in the toplevel Makefile of
+Linux and denotes the architecture-specific directory name below arch/ in its
+source code. Some few architectures share a common folder. It resembles the
+definition of SRCARCH based on ARCH in the Makefile and may be used to place a
+defconfig file in the proper path."
+ (let ((linux-arch (platform-linux-architecture
+ (lookup-platform-by-target-or-system
+ (or (%current-target-system)
+ (%current-system))))))
+ (match linux-arch
+ ("i386" "x86")
+ ("x86_64" "x86")
+ ("sparc32" "sparc")
+ ("sparc64" "sparc")
+ ("sh64" "sh")
+ (_ linux-arch))))
(define-public (system->defconfig system)
"Some systems (notably powerpc-linux) require a special target for kernel
-defconfig. Return the appropriate make target if applicable, otherwise return
+defconfig. Return the appropriate Make target if applicable, otherwise return
\"defconfig\"."
(cond ((string-prefix? "powerpc-" system) "pmac32_defconfig")
((string-prefix? "powerpc64-" system) "ppc64_defconfig")
@@ -846,8 +867,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
(string-append "infodir=" #$output
"/share/info"))))))
#~())
- (replace 'configure
- (lambda* (#:key inputs target #:allow-other-keys)
+ (add-before 'configure 'set-environment
+ (lambda* (#:key target #:allow-other-keys)
;; Avoid introducing timestamps.
(setenv "KCONFIG_NOTIMESTAMP" "1")
(setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
@@ -863,18 +884,21 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
(%current-system))))))
(setenv "ARCH" arch)
(format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
-
(when target
(setenv "CROSS_COMPILE" (string-append target "-"))
(format #t "`CROSS_COMPILE' set to `~a'~%"
(getenv "CROSS_COMPILE"))))
+ ;; Allow EXTRAVERSION to be set via the environment.
+ (substitute* "Makefile"
+ (("^ *EXTRAVERSION[[:blank:]]*=")
+ "EXTRAVERSION ?="))
(setenv "EXTRAVERSION"
#$(and extra-version
- (string-append "-" extra-version)))
-
+ (string-append "-" extra-version)))))
+ (replace 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
(let ((config (assoc-ref inputs "kconfig")))
-
;; Use a custom kernel configuration file or a default
;; configuration file.
(if config
@@ -882,17 +906,15 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
(copy-file config ".config")
(chmod ".config" #o666))
(invoke "make" #$defconfig))
-
;; Appending works even when the option wasn't in the
;; file. The last one prevails if duplicated.
(let ((port (open-file ".config" "a"))
(extra-configuration #$(config->string extra-options)))
(display extra-configuration port)
(close-port port))
-
(invoke "make" "oldconfig"))))
(replace 'install
- (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (lambda* (#:key inputs #:allow-other-keys)
(let ((moddir (string-append #$output "/lib/modules"))
(dtbdir (string-append #$output "/lib/dtbs")))
;; Install kernel image, kernel configuration and link map.
@@ -1238,6 +1260,110 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
(inputs (modify-inputs (package-inputs base-linux-libre)
(prepend cpio))))))
+
+;;;
+;;; Linux kernel customization functions.
+;;;
+
+(define* (customize-linux #:key name
+ (linux linux-libre)
+ source
+ defconfig
+ (configs "")
+ extra-version)
+ "Make a customized Linux package NAME derived from the LINUX package.
+
+If NAME is not given, then it defaults to the same name as the LINUX package.
+
+Unless SOURCE is given the source of LINUX is used.
+
+A DEFCONFIG file to be used can be given as an origin, as a file-like object
+(file-append, local-file etc.), or as a string with the name of a defconfig file
+available in the Linux sources. If DEFCONFIG is not given, then a defconfig
+file will be saved from the LINUX package configuration.
+
+Additional CONFIGS will be used to modify the given or saved defconfig, which
+will finally be used to build Linux.
+
+CONFIGS can be a list of strings, with one configuration per line. The usual
+defconfig syntax has to be used, but there is a special extension to ease the
+removal of configurations. Comment lines are supported as well.
+
+Here is an example:
+
+ '(;; This string defines the version tail in 'uname -r'.
+ \"CONFIG_LOCALVERSION=\\\"-handcrafted\\\"
+ ;; This '# CONFIG_... is not set' syntax has to match exactly!
+ \"# CONFIG_BOOT_CONFIG is not set\"
+ \"CONFIG_NFS_SWAP=y\"
+ ;; This is a multiline configuration:
+ \"CONFIG_E1000=y
+# This is a comment, below follows an extension to unset a configuration:
+CONFIG_CMDLINE_EXTEND\")
+
+A string of configurations instead of a list of configuration strings is also
+possible.
+
+EXTRA-VERSION can be a string overwriting the EXTRAVERSION setting of the LINUX
+package, after being prepended by a hyphen. It will be visible in the output
+of 'uname -r' behind the Linux version numbers."
+ (package
+ (inherit linux)
+ (name (or name (package-name linux)))
+ (source (or source (package-source linux)))
+ (arguments
+ (substitute-keyword-arguments
+ (package-arguments linux)
+ ((#:imported-modules imported-modules %gnu-build-system-modules)
+ `((guix build kconfig) ,@imported-modules))
+ ((#:modules modules)
+ `((guix build kconfig) ,@modules))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'configure
+ (lambda* (#:key inputs #:allow-other-keys #:rest arguments)
+ (setenv "EXTRAVERSION"
+ #$(and extra-version
+ (not (string-null? extra-version))
+ (string-append "-" extra-version)))
+ (let* ((configs
+ (string-append "arch/" #$(linux-srcarch) "/configs/"))
+ (guix_defconfig
+ (string-append configs "guix_defconfig")))
+ #$(cond
+ ((not defconfig)
+ #~(begin
+ ;; Call the original 'configure phase.
+ (apply (assoc-ref #$phases 'configure) arguments)
+ ;; Save a defconfig file.
+ (invoke "make" "savedefconfig")
+ ;; Move the saved defconfig to the proper location.
+ (rename-file "defconfig"
+ guix_defconfig)))
+ ((string? defconfig)
+ ;; Use another existing defconfig from the Linux sources.
+ #~(rename-file (string-append configs #$defconfig)
+ guix_defconfig))
+ (else
+ ;; Copy the defconfig input to the proper location.
+ #~(copy-file (assoc-ref inputs "guix_defconfig")
+ guix_defconfig)))
+ (chmod guix_defconfig #o644)
+ (modify-defconfig guix_defconfig '#$configs)
+ (invoke "make" "guix_defconfig")
+ (verify-config ".config" guix_defconfig))))))))
+ (native-inputs
+ (append (if (or (not defconfig)
+ (string? defconfig))
+ '()
+ ;; The defconfig should be an origin or file-like object.
+ `(("guix_defconfig" ,defconfig)))
+ (package-native-inputs linux)))))
+
+(define (make-defconfig uri sha256-as-base32)
+ (origin (method url-fetch)
+ (uri uri)
+ (sha256 (base32 sha256-as-base32))))
;;;
@@ -3151,7 +3277,7 @@ devices. It replaces @code{iwconfig}, which is deprecated.")
(define-public powertop
(package
(name "powertop")
- (version "2.14")
+ (version "2.15")
(source
(origin
(method git-fetch)
@@ -3160,7 +3286,7 @@ devices. It replaces @code{iwconfig}, which is deprecated.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1zkr2y5nb1nr22nq8a3zli87iyfasfq6489p7h1k428pv8k45w4f"))))
+ (base32 "10vbk4vplmzp3p1mhwnhj81g6i5xvam9pdvmiy6cmd0xvnmdyy77"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
@@ -3179,18 +3305,17 @@ devices. It replaces @code{iwconfig}, which is deprecated.")
;; These programs are only needed to calibrate, so using
;; relative file names avoids adding extra inputs. When they
;; are missing powertop gracefully handles it.
- (("/usr/bin/hcitool") "hcitool")
- (("/usr/bin/xset") "xset")
- (("/usr/sbin/hciconfig") "hciconfig"))
- #t))))))
+ (("/usr/s?bin/(hciconfig|hcitool|xset)" _ command)
+ command))))))))
+ (native-inputs
+ (list autoconf
+ autoconf-archive
+ automake
+ gettext-minimal
+ libtool
+ pkg-config))
(inputs
(list kmod libnl ncurses pciutils zlib))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("gettext" ,gettext-minimal)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
(home-page "https://01.org/powertop/")
(synopsis "Analyze power consumption on Intel-based laptops")
(description
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index e3ddc26eac..008876ea07 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -255,6 +255,46 @@ text.")
(define-public ecl-langutils
(sbcl-package->ecl-package sbcl-langutils))
+(define-public sbcl-duologue
+ (let ((commit "ea1ada244a81da65f85b548823c9a6d7c9c145e1")
+ (revision "0"))
+ (package
+ (name "sbcl-duologue")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mmontone/duologue")
+ (commit commit)))
+ (file-name (git-file-name "cl-duologue" version))
+ (sha256
+ (base32 "1yg7f27im9h0m6jihcay1p7alfhzm9hafwm5dw5hsyacy8f2cwk2"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs (list sbcl-stefil))
+ (inputs
+ (list sbcl-alexandria
+ sbcl-anaphora
+ sbcl-chronicity
+ sbcl-cl-ansi-text
+ sbcl-cl-fad
+ sbcl-clavier
+ sbcl-drakma))
+ (home-page "https://github.com/mmontone/duologue/")
+ (synopsis "High level user interaction library")
+ (description
+ "Duologue is high-level interaction library for Common Lisp. It features
+coloured printing via @code{cl-ansi-text} and readline completion.")
+ (license (list license:expat
+ ;; https://github.com/mmontone/duologue/issues/9
+ license:gpl3+)))))
+
+(define-public cl-duologue
+ (sbcl-package->cl-source-package sbcl-duologue))
+
+(define-public ecl-duologue
+ (sbcl-package->ecl-package sbcl-duologue))
+
(define-public sbcl-alea
(package
(name "sbcl-alea")
@@ -454,6 +494,41 @@ It's intended as a simpler alternative to parser generators.")
(define-public ecl-meta
(sbcl-package->ecl-package sbcl-meta))
+(define-public sbcl-clavier
+ (let ((commit "9b1424eaad131e114a45b400784079124b5e2321")
+ (revision "1"))
+ (package
+ (name "sbcl-clavier")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mmontone/clavier")
+ (commit commit)))
+ (file-name (git-file-name "cl-clavier" version))
+ (sha256
+ (base32 "1gjd0rhxs2x7gn3fw1hnxivmm4ca4f1wxlg0fqv8fdfabgzsvl5y"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs (list sbcl-stefil))
+ (inputs
+ (list sbcl-alexandria
+ sbcl-chronicity
+ sbcl-cl-fad
+ sbcl-cl-ppcre
+ sbcl-closer-mop))
+ (home-page "https://github.com/mmontone/clavier/")
+ (synopsis "General purpose validation library")
+ (description "Clavier is a general purpose validation library for
+Common Lisp.")
+ (license license:expat))))
+
+(define-public cl-clavier
+ (sbcl-package->cl-source-package sbcl-clavier))
+
+(define-public ecl-clavier
+ (sbcl-package->ecl-package sbcl-clavier))
+
(define-public sbcl-cl-inotify
(let ((commit "66f29e01ec28355ebba8292411b4de90eebd76a3")
(revision "0"))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 0749a02cd7..339368f363 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -423,17 +423,14 @@ an interpreter, a compiler, a debugger, and much more.")
(define-public sbcl
(package
(name "sbcl")
- (version "2.2.10")
+ (version "2.2.11")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2"))
- (patches
- ;; TODO: remove this patch when updating to sbcl > 2.2.10.
- (search-patches "sbcl-fix-build-on-arm64-with-clisp-as-host.patch"))
(sha256
- (base32 "0cq8x4svkawirxq5s5gs4qxkl23m4q5p722a2kpss8qjfslc7hwc"))))
+ (base32 "1pwnhjp0fmkcgq11a6hj36gw8k05qramspgdbj28063k2s0dc1rn"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(native-inputs
diff --git a/gnu/packages/loko.scm b/gnu/packages/loko.scm
index 449c62f1f0..49dcc92d1e 100644
--- a/gnu/packages/loko.scm
+++ b/gnu/packages/loko.scm
@@ -18,6 +18,7 @@
(define-module (gnu packages loko)
#:use-module (guix packages)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
@@ -29,7 +30,7 @@
(define-public loko-scheme
(package
(name "loko-scheme")
- (version "0.7.0")
+ (version "0.12.0")
(source
(origin
(method git-fetch)
@@ -37,45 +38,47 @@
(url "https://gitlab.com/weinholt/loko")
(commit (string-append "v" version))))
(sha256
- (base32 "1441aarw3vy14zdxyab495ag2fch04v4j89krhbqnqfkz6mdi0vy"))
+ (base32 "12xp82z91qkp9q8lfp46s4sda8qgs472jic3js1kbykn4jzy7399"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
- `(;; r7rs tests are a work in progress as of 0.7.0.
- #:tests? #f
- #:strip-binaries? #f
- #:make-flags
- (let ((out (assoc-ref %outputs "out")))
- (list
- (string-append "PREFIX=" out)
- (string-append "GDB_AUTOLOAD_PATH=" out "/share/gdb/auto-load")))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (add-before 'build 'akku-fixes
- (lambda* (#:key inputs #:allow-other-keys)
- (delete-file "Akku.lock")
- (substitute* "Akku.manifest"
- (("\\(depends.*") "(depends)"))
- (invoke "akku" "install")
- (let ((dest "./.akku/lib/")
- (source "/share/guile/site/3.0/"))
- (for-each
- (lambda (name)
- ;; Symlink the scheme libraries so that Akku can find them
- (symlink (string-append (assoc-ref inputs name) source name)
- (string-append dest name)))
- '("struct" "laesare" "pfds" "machine-code")))
- (substitute* ".akku/env"
- (("/bin/sh") (which "sh")))
- #t)))))
+ (list
+ ;; r7rs tests are a work in progress as of 0.7.0.
+ #:tests? #f
+ #:strip-binaries? #f
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'akku-fixes
+ (lambda _
+ (delete-file "Akku.lock")
+ (substitute* "Akku.manifest"
+ (("\\(depends.*") "(depends)"))
+ (invoke "akku" "install")
+ (let ((dest "./.akku/lib/")
+ (source "/share/guile/site/3.0/"))
+ (for-each
+ (lambda (name prefix)
+ ;; Symlink the scheme libraries so that Akku can find them
+ (symlink (string-append prefix source name)
+ (string-append dest name)))
+ '("struct" "laesare" "pfds" "machine-code")
+ (list #$(this-package-native-input "guile-struct-pack")
+ #$(this-package-native-input "guile-laesare")
+ #$(this-package-native-input "guile-pfds")
+ #$(this-package-native-input "guile-machine-code"))))
+ (substitute* ".akku/env"
+ (("/bin/sh") (which "sh")))
+ #t)))))
(native-inputs
- `(("akku" ,akku)
- ("chez-scheme" ,(chez-scheme-for-system))
- ("struct" ,guile-struct-pack)
- ("laesare" ,guile-laesare)
- ("pfds" ,guile-pfds)
- ("machine-code" ,guile-machine-code)))
+ (list akku
+ (chez-scheme-for-system)
+ guile-struct-pack
+ guile-laesare
+ guile-pfds
+ guile-machine-code))
(home-page "https://scheme.fail")
(synopsis "Implementation of the algorithmic language Scheme")
(description
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index cef5fe2916..fe6f122812 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -3813,14 +3813,14 @@ tools and applications:
(define-public balsa
(package
(name "balsa")
- (version "2.6.3")
+ (version "2.6.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://pawsa.fedorapeople.org/balsa/"
"balsa-" version ".tar.xz"))
(sha256
- (base32 "1m0x3rk7cp7slr47rmg4y91rbxgs652v706lyxj600m5r5v4bl6l"))))
+ (base32 "1hcgmjka2x2igdrmvzlfs12mv892kv4vzv5iy90kvcqxa625kymy"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -3833,7 +3833,13 @@ tools and applications:
"--with-gpgme"
"--with-sqlite"
"--with-compface"
- "--with-ldap")))
+ "--with-ldap")
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'adjust-for-new-webkitgtk
+ (lambda _
+ (substitute* "configure"
+ (("webkit2gtk-4.0")
+ "webkit2gtk-4.1")))))))
(inputs
(list cyrus-sasl
enchant
@@ -3842,7 +3848,7 @@ tools and applications:
gnutls
gpgme
gtk+
- gtksourceview
+ gtksourceview-4
gtkspell3
libassuan ; in gpgme.pc Requires
libcanberra
@@ -3862,6 +3868,9 @@ tools and applications:
the GNOME desktop. It supports both POP3 and IMAP servers as well as the
mbox, maildir and mh local mailbox formats. Balsa also supports SMTP and/or
the use of a local MTA such as Sendmail.")
+ (properties
+ '((release-monitoring-url
+ . "https://pawsa.fedorapeople.org/balsa/download.html")))
(license license:gpl3+)))
(define-public afew
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 22b8ca7d68..d02d893f02 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2463,6 +2463,66 @@ which can modulate the oscillators, filter, and amplitude; distortion and
reverb effects.")
(license license:gpl2+)))
+(define-public paulxstretch
+ (package
+ (name "paulxstretch")
+ (version "1.6.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/essej/paulxstretch")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1pff51imfgmgqzc6mdgwd1v9fci0a8hj85fnkdsvkdzbnxdzvs9r"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f ;no test suite
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (let* ((bin (string-append #$output "/bin"))
+ (lib (string-append #$output "/lib"))
+ (share (string-append #$output "/share"))
+ (clap (string-append lib "/clap"))
+ (vst3 (string-append lib "/vst3")))
+ (with-directory-excursion
+ "PaulXStretch_artefacts/RelWithDebInfo"
+ (install-file "Standalone/paulxstretch" bin)
+ (install-file "CLAP/PaulXStretch.clap" clap)
+ (mkdir-p vst3)
+ (copy-recursively "VST3" vst3)
+ (install-file (string-append
+ #$source
+ "/linux/paulxstretch.desktop")
+ (string-append share "/applications"))
+ (install-file
+ (string-append
+ #$source
+ "/images/paulxstretch_icon_1024_rounded.png")
+ (string-append share "/pixmaps")))))))))
+ (home-page "https://sonosaurus.com/paulxstretch/")
+ (native-inputs (list pkg-config))
+ (inputs (list alsa-lib
+ curl
+ fftwf
+ freetype
+ jack-1
+ libx11
+ libxcursor
+ libxext
+ libxinerama
+ libxrandr))
+ (supported-systems '("x86_64-linux")) ;pffft.c uses SIMD code
+ (synopsis "Audio timestretching application and plugin")
+ (description
+ "PaulXStretch is an application/plugin is based on the PaulStretch
+algorithm (Paul’s Extreme Time Stretch, originally developed by Nasca Octavian
+Paul), and specifically the PaulXStretch version from Xenakios.")
+ (license license:gpl3+)))
+
(define-public setbfree
(package
(name "setbfree")
@@ -3980,7 +4040,7 @@ with a number of bugfixes and changes to improve IT playback.")
(inputs
(list jack-1
alsa-lib
- wxwidgets-gtk2
+ wxwidgets-gtk2-3.0
libsndfile
libsamplerate
liblo
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index f5276e330e..751eb2b867 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2998,6 +2998,40 @@ updates to the zebra daemon.")
(home-page "https://www.nongnu.org/quagga/")
(license license:gpl2+)))
+(define-public bgpq3
+ (package
+ (name "bgpq3")
+ (version "0.1.36.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/snar/bgpq3")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0768hihx7idmn2dk8ii21m0dm052amlnfpqq53vsfaapb60n1smc"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f)) ; no test suite
+ (native-inputs (list python-markdown))
+ (home-page "http://snar.spb.ru/prog/bgpq3/")
+ (synopsis
+ "Generate BGP filters from the @acronym{IRR, Internet Routing Registry}")
+ (description
+ "This program helps automate the creation and maintenance of @acronym{BGP,
+Border Gateway Protocol} routing filters used for peering trough Internet
+exchanges.
+
+It generates prefix lists, (extended) access lists, policy-statement terms, and
+AS paths from data in the @acronym{IRR, Internet Routing Registry}, including
+the @acronym{RADB, Routing Assets Database} operated by the Merit Network at the
+University of Michigan.
+
+The filters can be aggregated and exported in the most common formats.")
+ (license (list license:bsd-3 ; strlcpy.c, sys_queue.h
+ license:bsd-2)))) ; everything else, but missing headers
+
(define-public thc-ipv6
(let ((revision "0")
(commit "4bb72573e0950ce6f8ca2800a10748477020029e"))
diff --git a/gnu/packages/patches/jami-sip-contacts.patch b/gnu/packages/patches/jami-sip-contacts.patch
new file mode 100644
index 0000000000..dce8f6b98d
--- /dev/null
+++ b/gnu/packages/patches/jami-sip-contacts.patch
@@ -0,0 +1,38 @@
+From 3ba007d02bc19e499c8f3c2345302453028831a8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
+ <sebastien.blin@savoirfairelinux.com>
+Date: Tue, 29 Nov 2022 09:26:20 -0500
+Subject: [PATCH] misc: fix incoming message sip
+
+We do not need to check contacts for SIP as it will be considered
+automatically as a contact
+
+Change-Id: If78113e9d79dcd695c39c2d12c0441e2cb282737
+---
+ src/libclient/conversationmodel.cpp | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/client-qt/src/libclient/conversationmodel.cpp b/client-qt/src/libclient/conversationmodel.cpp
+index dba206bd..5604a17c 100644
+--- a/client-qt/src/libclient/conversationmodel.cpp
++++ b/client-qt/src/libclient/conversationmodel.cpp
+@@ -3611,8 +3611,12 @@ ConversationModelPimpl::addIncomingMessage(const QString& peerId,
+ try {
+ auto contact = linked.owner.contactModel->getContact(peerId);
+ isRequest = contact.profileInfo.type == profile::Type::PENDING;
+- if (isRequest && !contact.isBanned && peerId != linked.owner.profileInfo.uri) {
+- addContactRequest(peerId);
++ // if isSip, it will be a contact!
++ auto isSip = linked.owner.profileInfo.type == profile::Type::SIP;
++ if (isSip
++ || (isRequest && !contact.isBanned && peerId != linked.owner.profileInfo.uri)) {
++ if (!isSip)
++ addContactRequest(peerId);
+ convIds.push_back(storage::beginConversationWithPeer(db, contact.profileInfo.uri));
+ auto& conv = getConversationForPeerUri(contact.profileInfo.uri).get();
+ conv.uid = convIds[0];
+
+base-commit: 6f30acf0043d07dcbe63ee8636509885a9b6fd76
+--
+2.38.1
+
diff --git a/gnu/packages/patches/jami-sipaccount-segfault.patch b/gnu/packages/patches/jami-sipaccount-segfault.patch
new file mode 100644
index 0000000000..1cef512124
--- /dev/null
+++ b/gnu/packages/patches/jami-sipaccount-segfault.patch
@@ -0,0 +1,30 @@
+From e5a449d60abc667d85dacd75ad6e31d4ddca5853 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
+ <sebastien.blin@savoirfairelinux.com>
+Date: Thu, 17 Nov 2022 12:02:20 -0500
+Subject: [PATCH] sipaccount: fix potential null dereference
+
+Detected by sonarqube
+
+Change-Id: I606f9cf2458dda07471d0a67af8915c7ca13d410
+---
+ src/sip/sipaccount.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/daemon/src/sip/sipaccount.cpp b/daemon/src/sip/sipaccount.cpp
+index 695b71839..e544ac31a 100644
+--- a/daemon/src/sip/sipaccount.cpp
++++ b/daemon/src/sip/sipaccount.cpp
+@@ -789,7 +789,8 @@ SIPAccount::sendRegister()
+ if (pjsip_regc_set_transport(regc, &tp_sel) != PJ_SUCCESS)
+ throw VoipLinkException("Unable to set transport");
+
+- setUpTransmissionData(tdata, tp_sel.u.transport->key.type);
++ if (tp_sel.u.transport)
++ setUpTransmissionData(tdata, tp_sel.u.transport->key.type);
+
+ // pjsip_regc_send increment the transport ref count by one,
+ if ((status = pjsip_regc_send(regc, tdata)) != PJ_SUCCESS) {
+--
+GitLab
+
diff --git a/gnu/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch b/gnu/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch
new file mode 100644
index 0000000000..4567f81224
--- /dev/null
+++ b/gnu/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch
@@ -0,0 +1,565 @@
+https://github.com/rust-lang/rust/commit/263edd43c5255084292329423c61a9d69715ebfa.patch
+https://github.com/rust-lang/rust/issues/102155
+Issue seen on native builds on riscv64 across multiple Linux
+Distributions. An alternative workaround appears to be building stage 1
+with debug enabled.
+
+From 27412d1e3e128349bc515c16ce882860e20f037d Mon Sep 17 00:00:00 2001
+From: 5225225 <5225225@mailbox.org>
+Date: Thu, 14 Jul 2022 22:42:47 +0100
+Subject: [PATCH] Use constant eval to do strict validity checks
+
+---
+ Cargo.lock | 1 +
+ .../src/intrinsics/mod.rs | 15 +----
+ compiler/rustc_codegen_ssa/Cargo.toml | 1 +
+ compiler/rustc_codegen_ssa/src/mir/block.rs | 9 ++-
+ .../src/const_eval/machine.rs | 2 +-
+ .../src/interpret/intrinsics.rs | 56 ++++++++--------
+ compiler/rustc_const_eval/src/lib.rs | 6 ++
+ .../src/might_permit_raw_init.rs | 40 +++++++++++
+ compiler/rustc_middle/src/query/mod.rs | 8 +++
+ compiler/rustc_middle/src/ty/query.rs | 1 +
+ compiler/rustc_query_impl/src/keys.rs | 12 +++-
+ compiler/rustc_target/src/abi/mod.rs | 38 +++++------
+ .../intrinsics/panic-uninitialized-zeroed.rs | 66 ++++++++++++-------
+ 13 files changed, 161 insertions(+), 94 deletions(-)
+ create mode 100644 compiler/rustc_const_eval/src/might_permit_raw_init.rs
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 147d47044078a..dd6f0345affd0 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -3664,6 +3664,7 @@ dependencies = [
+ "rustc_arena",
+ "rustc_ast",
+ "rustc_attr",
++ "rustc_const_eval",
+ "rustc_data_structures",
+ "rustc_errors",
+ "rustc_fs_util",
+diff --git a/compiler/rustc_codegen_cranelift/src/intrinsics/mod.rs b/compiler/rustc_codegen_cranelift/src/intrinsics/mod.rs
+index eafae1cdc8af0..4b2207f375879 100644
+--- a/compiler/rustc_codegen_cranelift/src/intrinsics/mod.rs
++++ b/compiler/rustc_codegen_cranelift/src/intrinsics/mod.rs
+@@ -58,7 +58,6 @@ pub(crate) use llvm::codegen_llvm_intrinsic_call;
+ use rustc_middle::ty::print::with_no_trimmed_paths;
+ use rustc_middle::ty::subst::SubstsRef;
+ use rustc_span::symbol::{kw, sym, Symbol};
+-use rustc_target::abi::InitKind;
+
+ use crate::prelude::*;
+ use cranelift_codegen::ir::AtomicRmwOp;
+@@ -672,12 +671,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
+ return;
+ }
+
+- if intrinsic == sym::assert_zero_valid
+- && !layout.might_permit_raw_init(
+- fx,
+- InitKind::Zero,
+- fx.tcx.sess.opts.unstable_opts.strict_init_checks) {
+-
++ if intrinsic == sym::assert_zero_valid && !fx.tcx.permits_zero_init(layout) {
+ with_no_trimmed_paths!({
+ crate::base::codegen_panic(
+ fx,
+@@ -688,12 +682,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
+ return;
+ }
+
+- if intrinsic == sym::assert_uninit_valid
+- && !layout.might_permit_raw_init(
+- fx,
+- InitKind::Uninit,
+- fx.tcx.sess.opts.unstable_opts.strict_init_checks) {
+-
++ if intrinsic == sym::assert_uninit_valid && !fx.tcx.permits_uninit_init(layout) {
+ with_no_trimmed_paths!({
+ crate::base::codegen_panic(
+ fx,
+diff --git a/compiler/rustc_codegen_ssa/Cargo.toml b/compiler/rustc_codegen_ssa/Cargo.toml
+index faabea92f5a6c..81c8b9ceb136e 100644
+--- a/compiler/rustc_codegen_ssa/Cargo.toml
++++ b/compiler/rustc_codegen_ssa/Cargo.toml
+@@ -40,6 +40,7 @@ rustc_metadata = { path = "../rustc_metadata" }
+ rustc_query_system = { path = "../rustc_query_system" }
+ rustc_target = { path = "../rustc_target" }
+ rustc_session = { path = "../rustc_session" }
++rustc_const_eval = { path = "../rustc_const_eval" }
+
+ [dependencies.object]
+ version = "0.29.0"
+diff --git a/compiler/rustc_codegen_ssa/src/mir/block.rs b/compiler/rustc_codegen_ssa/src/mir/block.rs
+index 745da821c9d76..773c55cf551d5 100644
+--- a/compiler/rustc_codegen_ssa/src/mir/block.rs
++++ b/compiler/rustc_codegen_ssa/src/mir/block.rs
+@@ -22,7 +22,7 @@ use rustc_span::source_map::Span;
+ use rustc_span::{sym, Symbol};
+ use rustc_symbol_mangling::typeid_for_fnabi;
+ use rustc_target::abi::call::{ArgAbi, FnAbi, PassMode};
+-use rustc_target::abi::{self, HasDataLayout, InitKind, WrappingRange};
++use rustc_target::abi::{self, HasDataLayout, WrappingRange};
+ use rustc_target::spec::abi::Abi;
+
+ /// Used by `FunctionCx::codegen_terminator` for emitting common patterns
+@@ -528,7 +528,6 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
+ source_info: mir::SourceInfo,
+ target: Option<mir::BasicBlock>,
+ cleanup: Option<mir::BasicBlock>,
+- strict_validity: bool,
+ ) -> bool {
+ // Emit a panic or a no-op for `assert_*` intrinsics.
+ // These are intrinsics that compile to panics so that we can get a message
+@@ -547,12 +546,13 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
+ });
+ if let Some(intrinsic) = panic_intrinsic {
+ use AssertIntrinsic::*;
++
+ let ty = instance.unwrap().substs.type_at(0);
+ let layout = bx.layout_of(ty);
+ let do_panic = match intrinsic {
+ Inhabited => layout.abi.is_uninhabited(),
+- ZeroValid => !layout.might_permit_raw_init(bx, InitKind::Zero, strict_validity),
+- UninitValid => !layout.might_permit_raw_init(bx, InitKind::Uninit, strict_validity),
++ ZeroValid => !bx.tcx().permits_zero_init(layout),
++ UninitValid => !bx.tcx().permits_uninit_init(layout),
+ };
+ if do_panic {
+ let msg_str = with_no_visible_paths!({
+@@ -687,7 +687,6 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
+ source_info,
+ target,
+ cleanup,
+- self.cx.tcx().sess.opts.unstable_opts.strict_init_checks,
+ ) {
+ return;
+ }
+diff --git a/compiler/rustc_const_eval/src/const_eval/machine.rs b/compiler/rustc_const_eval/src/const_eval/machine.rs
+index 29ab1d187719c..e00e667fb71e2 100644
+--- a/compiler/rustc_const_eval/src/const_eval/machine.rs
++++ b/compiler/rustc_const_eval/src/const_eval/machine.rs
+@@ -104,7 +104,7 @@ pub struct CompileTimeInterpreter<'mir, 'tcx> {
+ }
+
+ impl<'mir, 'tcx> CompileTimeInterpreter<'mir, 'tcx> {
+- pub(super) fn new(const_eval_limit: Limit, can_access_statics: bool) -> Self {
++ pub(crate) fn new(const_eval_limit: Limit, can_access_statics: bool) -> Self {
+ CompileTimeInterpreter {
+ steps_remaining: const_eval_limit.0,
+ stack: Vec::new(),
+diff --git a/compiler/rustc_const_eval/src/interpret/intrinsics.rs b/compiler/rustc_const_eval/src/interpret/intrinsics.rs
+index e2a8a9891f72f..7827fb8395b7f 100644
+--- a/compiler/rustc_const_eval/src/interpret/intrinsics.rs
++++ b/compiler/rustc_const_eval/src/interpret/intrinsics.rs
+@@ -15,7 +15,7 @@ use rustc_middle::ty::layout::LayoutOf as _;
+ use rustc_middle::ty::subst::SubstsRef;
+ use rustc_middle::ty::{Ty, TyCtxt};
+ use rustc_span::symbol::{sym, Symbol};
+-use rustc_target::abi::{Abi, Align, InitKind, Primitive, Size};
++use rustc_target::abi::{Abi, Align, Primitive, Size};
+
+ use super::{
+ util::ensure_monomorphic_enough, CheckInAllocMsg, ImmTy, InterpCx, Machine, OpTy, PlaceTy,
+@@ -413,35 +413,33 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
+ ),
+ )?;
+ }
+- if intrinsic_name == sym::assert_zero_valid
+- && !layout.might_permit_raw_init(
+- self,
+- InitKind::Zero,
+- self.tcx.sess.opts.unstable_opts.strict_init_checks,
+- )
+- {
+- M::abort(
+- self,
+- format!(
+- "aborted execution: attempted to zero-initialize type `{}`, which is invalid",
+- ty
+- ),
+- )?;
++
++ if intrinsic_name == sym::assert_zero_valid {
++ let should_panic = !self.tcx.permits_zero_init(layout);
++
++ if should_panic {
++ M::abort(
++ self,
++ format!(
++ "aborted execution: attempted to zero-initialize type `{}`, which is invalid",
++ ty
++ ),
++ )?;
++ }
+ }
+- if intrinsic_name == sym::assert_uninit_valid
+- && !layout.might_permit_raw_init(
+- self,
+- InitKind::Uninit,
+- self.tcx.sess.opts.unstable_opts.strict_init_checks,
+- )
+- {
+- M::abort(
+- self,
+- format!(
+- "aborted execution: attempted to leave type `{}` uninitialized, which is invalid",
+- ty
+- ),
+- )?;
++
++ if intrinsic_name == sym::assert_uninit_valid {
++ let should_panic = !self.tcx.permits_uninit_init(layout);
++
++ if should_panic {
++ M::abort(
++ self,
++ format!(
++ "aborted execution: attempted to leave type `{}` uninitialized, which is invalid",
++ ty
++ ),
++ )?;
++ }
+ }
+ }
+ sym::simd_insert => {
+diff --git a/compiler/rustc_const_eval/src/lib.rs b/compiler/rustc_const_eval/src/lib.rs
+index d65d4f7eb720e..72ac6af685dc4 100644
+--- a/compiler/rustc_const_eval/src/lib.rs
++++ b/compiler/rustc_const_eval/src/lib.rs
+@@ -33,11 +33,13 @@ extern crate rustc_middle;
+ pub mod const_eval;
+ mod errors;
+ pub mod interpret;
++mod might_permit_raw_init;
+ pub mod transform;
+ pub mod util;
+
+ use rustc_middle::ty;
+ use rustc_middle::ty::query::Providers;
++use rustc_target::abi::InitKind;
+
+ pub fn provide(providers: &mut Providers) {
+ const_eval::provide(providers);
+@@ -59,4 +61,8 @@ pub fn provide(providers: &mut Providers) {
+ let (param_env, value) = param_env_and_value.into_parts();
+ const_eval::deref_mir_constant(tcx, param_env, value)
+ };
++ providers.permits_uninit_init =
++ |tcx, ty| might_permit_raw_init::might_permit_raw_init(tcx, ty, InitKind::Uninit);
++ providers.permits_zero_init =
++ |tcx, ty| might_permit_raw_init::might_permit_raw_init(tcx, ty, InitKind::Zero);
+ }
+diff --git a/compiler/rustc_const_eval/src/might_permit_raw_init.rs b/compiler/rustc_const_eval/src/might_permit_raw_init.rs
+new file mode 100644
+index 0000000000000..f971c2238c7bb
+--- /dev/null
++++ b/compiler/rustc_const_eval/src/might_permit_raw_init.rs
+@@ -0,0 +1,40 @@
++use crate::const_eval::CompileTimeInterpreter;
++use crate::interpret::{InterpCx, MemoryKind, OpTy};
++use rustc_middle::ty::layout::LayoutCx;
++use rustc_middle::ty::{layout::TyAndLayout, ParamEnv, TyCtxt};
++use rustc_session::Limit;
++use rustc_target::abi::InitKind;
++
++pub fn might_permit_raw_init<'tcx>(
++ tcx: TyCtxt<'tcx>,
++ ty: TyAndLayout<'tcx>,
++ kind: InitKind,
++) -> bool {
++ let strict = tcx.sess.opts.unstable_opts.strict_init_checks;
++
++ if strict {
++ let machine = CompileTimeInterpreter::new(Limit::new(0), false);
++
++ let mut cx = InterpCx::new(tcx, rustc_span::DUMMY_SP, ParamEnv::reveal_all(), machine);
++
++ let allocated = cx
++ .allocate(ty, MemoryKind::Machine(crate::const_eval::MemoryKind::Heap))
++ .expect("OOM: failed to allocate for uninit check");
++
++ if kind == InitKind::Zero {
++ cx.write_bytes_ptr(
++ allocated.ptr,
++ std::iter::repeat(0_u8).take(ty.layout.size().bytes_usize()),
++ )
++ .expect("failed to write bytes for zero valid check");
++ }
++
++ let ot: OpTy<'_, _> = allocated.into();
++
++ // Assume that if it failed, it's a validation failure.
++ cx.validate_operand(&ot).is_ok()
++ } else {
++ let layout_cx = LayoutCx { tcx, param_env: ParamEnv::reveal_all() };
++ ty.might_permit_raw_init(&layout_cx, kind)
++ }
++}
+diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs
+index bdae7e5fcd6b1..0581ef41f66c2 100644
+--- a/compiler/rustc_middle/src/query/mod.rs
++++ b/compiler/rustc_middle/src/query/mod.rs
+@@ -2053,4 +2053,12 @@ rustc_queries! {
+ desc { |tcx| "looking up generator diagnostic data of `{}`", tcx.def_path_str(key) }
+ separate_provide_extern
+ }
++
++ query permits_uninit_init(key: TyAndLayout<'tcx>) -> bool {
++ desc { "checking to see if {:?} permits being left uninit", key.ty }
++ }
++
++ query permits_zero_init(key: TyAndLayout<'tcx>) -> bool {
++ desc { "checking to see if {:?} permits being left zeroed", key.ty }
++ }
+ }
+diff --git a/compiler/rustc_middle/src/ty/query.rs b/compiler/rustc_middle/src/ty/query.rs
+index 3d662ed5de4ba..2452bcf6a61b8 100644
+--- a/compiler/rustc_middle/src/ty/query.rs
++++ b/compiler/rustc_middle/src/ty/query.rs
+@@ -28,6 +28,7 @@ use crate::traits::query::{
+ use crate::traits::specialization_graph;
+ use crate::traits::{self, ImplSource};
+ use crate::ty::fast_reject::SimplifiedType;
++use crate::ty::layout::TyAndLayout;
+ use crate::ty::subst::{GenericArg, SubstsRef};
+ use crate::ty::util::AlwaysRequiresDrop;
+ use crate::ty::GeneratorDiagnosticData;
+diff --git a/compiler/rustc_query_impl/src/keys.rs b/compiler/rustc_query_impl/src/keys.rs
+index 6fbafeb1d32b3..5477431431374 100644
+--- a/compiler/rustc_query_impl/src/keys.rs
++++ b/compiler/rustc_query_impl/src/keys.rs
+@@ -6,7 +6,7 @@ use rustc_middle::mir;
+ use rustc_middle::traits;
+ use rustc_middle::ty::fast_reject::SimplifiedType;
+ use rustc_middle::ty::subst::{GenericArg, SubstsRef};
+-use rustc_middle::ty::{self, Ty, TyCtxt};
++use rustc_middle::ty::{self, layout::TyAndLayout, Ty, TyCtxt};
+ use rustc_span::symbol::{Ident, Symbol};
+ use rustc_span::{Span, DUMMY_SP};
+
+@@ -385,6 +385,16 @@ impl<'tcx> Key for Ty<'tcx> {
+ }
+ }
+
++impl<'tcx> Key for TyAndLayout<'tcx> {
++ #[inline(always)]
++ fn query_crate_is_local(&self) -> bool {
++ true
++ }
++ fn default_span(&self, _: TyCtxt<'_>) -> Span {
++ DUMMY_SP
++ }
++}
++
+ impl<'tcx> Key for (Ty<'tcx>, Ty<'tcx>) {
+ #[inline(always)]
+ fn query_crate_is_local(&self) -> bool {
+diff --git a/compiler/rustc_target/src/abi/mod.rs b/compiler/rustc_target/src/abi/mod.rs
+index d1eafd6ac5fb8..6f4d073d70486 100644
+--- a/compiler/rustc_target/src/abi/mod.rs
++++ b/compiler/rustc_target/src/abi/mod.rs
+@@ -1372,7 +1372,7 @@ pub struct PointeeInfo {
+
+ /// Used in `might_permit_raw_init` to indicate the kind of initialisation
+ /// that is checked to be valid
+-#[derive(Copy, Clone, Debug)]
++#[derive(Copy, Clone, Debug, PartialEq, Eq)]
+ pub enum InitKind {
+ Zero,
+ Uninit,
+@@ -1487,14 +1487,18 @@ impl<'a, Ty> TyAndLayout<'a, Ty> {
+ ///
+ /// `init_kind` indicates if the memory is zero-initialized or left uninitialized.
+ ///
+- /// `strict` is an opt-in debugging flag added in #97323 that enables more checks.
++ /// This code is intentionally conservative, and will not detect
++ /// * zero init of an enum whose 0 variant does not allow zero initialization
++ /// * making uninitialized types who have a full valid range (ints, floats, raw pointers)
++ /// * Any form of invalid value being made inside an array (unless the value is uninhabited)
+ ///
+- /// This is conservative: in doubt, it will answer `true`.
++ /// A strict form of these checks that uses const evaluation exists in
++ /// `rustc_const_eval::might_permit_raw_init`, and a tracking issue for making these checks
++ /// stricter is <https://github.com/rust-lang/rust/issues/66151>.
+ ///
+- /// FIXME: Once we removed all the conservatism, we could alternatively
+- /// create an all-0/all-undef constant and run the const value validator to see if
+- /// this is a valid value for the given type.
+- pub fn might_permit_raw_init<C>(self, cx: &C, init_kind: InitKind, strict: bool) -> bool
++ /// FIXME: Once all the conservatism is removed from here, and the checks are ran by default,
++ /// we can use the const evaluation checks always instead.
++ pub fn might_permit_raw_init<C>(self, cx: &C, init_kind: InitKind) -> bool
+ where
+ Self: Copy,
+ Ty: TyAbiInterface<'a, C>,
+@@ -1507,13 +1511,8 @@ impl<'a, Ty> TyAndLayout<'a, Ty> {
+ s.valid_range(cx).contains(0)
+ }
+ InitKind::Uninit => {
+- if strict {
+- // The type must be allowed to be uninit (which means "is a union").
+- s.is_uninit_valid()
+- } else {
+- // The range must include all values.
+- s.is_always_valid(cx)
+- }
++ // The range must include all values.
++ s.is_always_valid(cx)
+ }
+ }
+ };
+@@ -1534,19 +1533,12 @@ impl<'a, Ty> TyAndLayout<'a, Ty> {
+ // If we have not found an error yet, we need to recursively descend into fields.
+ match &self.fields {
+ FieldsShape::Primitive | FieldsShape::Union { .. } => {}
+- FieldsShape::Array { count, .. } => {
++ FieldsShape::Array { .. } => {
+ // FIXME(#66151): For now, we are conservative and do not check arrays by default.
+- if strict
+- && *count > 0
+- && !self.field(cx, 0).might_permit_raw_init(cx, init_kind, strict)
+- {
+- // Found non empty array with a type that is unhappy about this kind of initialization
+- return false;
+- }
+ }
+ FieldsShape::Arbitrary { offsets, .. } => {
+ for idx in 0..offsets.len() {
+- if !self.field(cx, idx).might_permit_raw_init(cx, init_kind, strict) {
++ if !self.field(cx, idx).might_permit_raw_init(cx, init_kind) {
+ // We found a field that is unhappy with this kind of initialization.
+ return false;
+ }
+diff --git a/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs b/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs
+index 3ffd35ecdb8da..255151a96032c 100644
+--- a/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs
++++ b/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs
+@@ -57,6 +57,13 @@ enum LR_NonZero {
+
+ struct ZeroSized;
+
++#[allow(dead_code)]
++#[repr(i32)]
++enum ZeroIsValid {
++ Zero(u8) = 0,
++ One(NonNull<()>) = 1,
++}
++
+ fn test_panic_msg<T>(op: impl (FnOnce() -> T) + panic::UnwindSafe, msg: &str) {
+ let err = panic::catch_unwind(op).err();
+ assert_eq!(
+@@ -152,33 +159,12 @@ fn main() {
+ "attempted to zero-initialize type `*const dyn core::marker::Send`, which is invalid"
+ );
+
+- /* FIXME(#66151) we conservatively do not error here yet.
+- test_panic_msg(
+- || mem::uninitialized::<LR_NonZero>(),
+- "attempted to leave type `LR_NonZero` uninitialized, which is invalid"
+- );
+- test_panic_msg(
+- || mem::zeroed::<LR_NonZero>(),
+- "attempted to zero-initialize type `LR_NonZero`, which is invalid"
+- );
+-
+- test_panic_msg(
+- || mem::uninitialized::<ManuallyDrop<LR_NonZero>>(),
+- "attempted to leave type `std::mem::ManuallyDrop<LR_NonZero>` uninitialized, \
+- which is invalid"
+- );
+- test_panic_msg(
+- || mem::zeroed::<ManuallyDrop<LR_NonZero>>(),
+- "attempted to zero-initialize type `std::mem::ManuallyDrop<LR_NonZero>`, \
+- which is invalid"
+- );
+- */
+-
+ test_panic_msg(
+ || mem::uninitialized::<(NonNull<u32>, u32, u32)>(),
+ "attempted to leave type `(core::ptr::non_null::NonNull<u32>, u32, u32)` uninitialized, \
+ which is invalid"
+ );
++
+ test_panic_msg(
+ || mem::zeroed::<(NonNull<u32>, u32, u32)>(),
+ "attempted to zero-initialize type `(core::ptr::non_null::NonNull<u32>, u32, u32)`, \
+@@ -196,11 +182,23 @@ fn main() {
+ which is invalid"
+ );
+
++ test_panic_msg(
++ || mem::uninitialized::<LR_NonZero>(),
++ "attempted to leave type `LR_NonZero` uninitialized, which is invalid"
++ );
++
++ test_panic_msg(
++ || mem::uninitialized::<ManuallyDrop<LR_NonZero>>(),
++ "attempted to leave type `core::mem::manually_drop::ManuallyDrop<LR_NonZero>` uninitialized, \
++ which is invalid"
++ );
++
+ test_panic_msg(
+ || mem::uninitialized::<NoNullVariant>(),
+ "attempted to leave type `NoNullVariant` uninitialized, \
+ which is invalid"
+ );
++
+ test_panic_msg(
+ || mem::zeroed::<NoNullVariant>(),
+ "attempted to zero-initialize type `NoNullVariant`, \
+@@ -212,10 +210,12 @@ fn main() {
+ || mem::uninitialized::<bool>(),
+ "attempted to leave type `bool` uninitialized, which is invalid"
+ );
++
+ test_panic_msg(
+ || mem::uninitialized::<LR>(),
+ "attempted to leave type `LR` uninitialized, which is invalid"
+ );
++
+ test_panic_msg(
+ || mem::uninitialized::<ManuallyDrop<LR>>(),
+ "attempted to leave type `core::mem::manually_drop::ManuallyDrop<LR>` uninitialized, which is invalid"
+@@ -229,6 +229,7 @@ fn main() {
+ let _val = mem::zeroed::<Option<&'static i32>>();
+ let _val = mem::zeroed::<MaybeUninit<NonNull<u32>>>();
+ let _val = mem::zeroed::<[!; 0]>();
++ let _val = mem::zeroed::<ZeroIsValid>();
+ let _val = mem::uninitialized::<MaybeUninit<bool>>();
+ let _val = mem::uninitialized::<[!; 0]>();
+ let _val = mem::uninitialized::<()>();
+@@ -259,12 +260,33 @@ fn main() {
+ || mem::zeroed::<[NonNull<()>; 1]>(),
+ "attempted to zero-initialize type `[core::ptr::non_null::NonNull<()>; 1]`, which is invalid"
+ );
++
++ // FIXME(#66151) we conservatively do not error here yet (by default).
++ test_panic_msg(
++ || mem::zeroed::<LR_NonZero>(),
++ "attempted to zero-initialize type `LR_NonZero`, which is invalid"
++ );
++
++ test_panic_msg(
++ || mem::zeroed::<ManuallyDrop<LR_NonZero>>(),
++ "attempted to zero-initialize type `core::mem::manually_drop::ManuallyDrop<LR_NonZero>`, \
++ which is invalid"
++ );
+ } else {
+ // These are UB because they have not been officially blessed, but we await the resolution
+ // of <https://github.com/rust-lang/unsafe-code-guidelines/issues/71> before doing
+ // anything about that.
+ let _val = mem::uninitialized::<i32>();
+ let _val = mem::uninitialized::<*const ()>();
++
++ // These are UB, but best to test them to ensure we don't become unintentionally
++ // stricter.
++
++ // It's currently unchecked to create invalid enums and values inside arrays.
++ let _val = mem::zeroed::<LR_NonZero>();
++ let _val = mem::zeroed::<[LR_NonZero; 1]>();
++ let _val = mem::zeroed::<[NonNull<()>; 1]>();
++ let _val = mem::uninitialized::<[NonNull<()>; 1]>();
+ }
+ }
+ }
diff --git a/gnu/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch b/gnu/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch
deleted file mode 100644
index 4fe3ed16db..0000000000
--- a/gnu/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 944f53fb00794f4bc96700dd14df1e88b6cd5623 Mon Sep 17 00:00:00 2001
-From: Christophe Rhodes <csr21@cantab.net>
-Date: Thu, 17 Nov 2022 22:29:26 +0000
-Subject: [PATCH] Fix build on arm64 with clisp as host
-
-Make sure the offset constants are defined while compiling vm.lisp.
----
- src/compiler/arm64/vm.lisp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/compiler/arm64/vm.lisp b/src/compiler/arm64/vm.lisp
-index ae6d7c7fa..2a151be58 100644
---- a/src/compiler/arm64/vm.lisp
-+++ b/src/compiler/arm64/vm.lisp
-@@ -23,7 +23,8 @@
- (macrolet ((defreg (name offset)
- (let ((offset-sym (symbolicate name "-OFFSET")))
- `(progn
-- (defconstant ,offset-sym ,offset)
-+ (eval-when (:compile-toplevel :load-toplevel :execute)
-+ (defconstant ,offset-sym ,offset))
- (setf (svref *register-names* ,offset-sym) ,(symbol-name name)))))
-
- (defregset (name &rest regs)
---
-2.30.2
-
diff --git a/gnu/packages/patches/sssd-optional-systemd.patch b/gnu/packages/patches/sssd-optional-systemd.patch
deleted file mode 100644
index e6d74e79fa..0000000000
--- a/gnu/packages/patches/sssd-optional-systemd.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Allow running sss_analyze without Python modules for systemd.
-Upstream PR: https://github.com/SSSD/sssd/pull/6125
-
-diff --git a/src/tools/analyzer/modules/request.py b/src/tools/analyzer/modules/request.py
-index b9fe3caf8..51ec3a151 100644
---- a/src/tools/analyzer/modules/request.py
-+++ b/src/tools/analyzer/modules/request.py
-@@ -1,8 +1,6 @@
- import re
- import logging
-
--from sssd.source_files import Files
--from sssd.source_journald import Journald
- from sssd.parser import SubparsersAction
- from sssd.parser import Option
-
-@@ -76,8 +74,10 @@ class RequestAnalyzer:
- Instantiated source object
- """
- if args.source == "journald":
-+ from sssd.source_journald import Journald
- source = Journald()
- else:
-+ from sssd.source_files import Files
- source = Files(args.logdir)
- return source
-
-@@ -142,7 +142,7 @@ class RequestAnalyzer:
- self.consumed_logs.append(line.rstrip(line[-1]))
- else:
- # files source includes newline
-- if isinstance(source, Files):
-+ if type(source).__name__ == 'Files':
- print(line, end='')
- else:
- print(line)
-@@ -240,7 +240,7 @@ class RequestAnalyzer:
- self.print_formatted_verbose(source, patterns)
- else:
- for line in self.matched_line(source, patterns):
-- if isinstance(source, Journald):
-+ if type(source).__name__ == 'Journald':
- print(line)
- else:
- self.print_formatted(line)
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index f7184bd49a..b580f8b2a7 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017, 2018, 2019, 2022 Ricardo Wurmus <rekado@elephly.net>
@@ -406,6 +406,12 @@ from protobuf specification files.")
(base32
"1ja2vpk9nklllmsirmil2s4l7ni9yfqvbvj47zz5xx17s1k1bhxd"))))
(build-system python-build-system)
+ (inputs (list protobuf))
+ (arguments
+ `(;; Favor C++ implementation from protobuf over the native Python
+ ;; implementation. The additional dependency yields significant
+ ;; performance improvements for some workloads.
+ #:configure-flags '("--cpp_implementation")))
(home-page "https://github.com/google/protobuf")
(synopsis "Protocol buffers is a data interchange format")
(description
@@ -462,9 +468,8 @@ structured data.")
(sha256
(base32
"04bqb12smlckzmgkj6vgmpbr3cby0n6726cmz33bqr7kn1vb728l"))))
- (inputs
- (cons python-six
- (package-inputs python-protobuf)))))
+ (arguments '()) ;no "--cpp_implementation" here
+ (inputs (list python-six))))
(define-public python-proto-plus
(package
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 749902271b..486abf1c13 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -16,6 +16,7 @@
;;; Copyright © 2022 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
+;;; Copyright © 2022 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2439,6 +2440,34 @@ parsed examples as part of your normal test run. Integration is
provided for the main Python test runners.")
(license license:expat)))
+(define-public python-pytest-parawtf
+ (package
+ (name "python-pytest-parawtf")
+ (version "1.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-parawtf" version))
+ (sha256
+ (base32
+ "08s86hy58lvrd90cnayzydvac4slaflj0ph9yknakcc42anrm023"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; https://github.com/flub/pytest-parawtf/issues/1
+ (invoke "pytest" "-k" "not test_mark")))))))
+ (propagated-inputs (list python-pytest))
+ (home-page "https://github.com/flub/pytest-parawtf/")
+ (synopsis "Finally spell paramete?ri[sz]e correctly")
+ (description
+"@code{python-pytest} uses one of four different spellings of
+parametrize. This plugin allows you to use all four.")
+ (license license:expat)))
+
(define-public python-pytest-httpx
(package
(name "python-pytest-httpx")
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 52fe1460bb..ba99b57bcb 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -693,14 +693,14 @@ and visualization with these data structures.")
(define-public python-msgpack-numpy
(package
(name "python-msgpack-numpy")
- (version "0.4.6.post0")
+ (version "0.4.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "msgpack-numpy" version))
(sha256
(base32
- "0syzy645mwcy7lfjwz6pc8f9p2vv1qk4limc8iina3l5nnf0rjyz"))))
+ "0sbfanbkfs6c77np4vz0ayrwnv99bpn5xgj5fnf2yhhk0lcd6ry6"))))
(build-system python-build-system)
(propagated-inputs
(list python-msgpack python-numpy))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 87963f9f19..40c3f9c99c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -131,6 +131,7 @@
;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it>
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
+;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -159,9 +160,11 @@
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
+ #:use-module (gnu packages digest)
#:use-module (gnu packages django)
#:use-module (gnu packages djvu)
#:use-module (gnu packages docker)
@@ -4634,6 +4637,73 @@ accessible for novices, as well as a scripting interface offering the full
flexibility and power of the Python language.")
(license license:gpl3+)))
+(define-public python-dm-tree
+ (package
+ (name "python-dm-tree")
+ (version "0.1.7")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "dm-tree" version))
+ (sha256
+ (base32 "0apxfxgmqh22qpk92zmmf3acqkavhwxz78lnwz026a5rlnncizih"))))
+ (build-system python-build-system)
+ (inputs (list pybind11 abseil-cpp python))
+ (propagated-inputs (list python-wheel
+ python-absl-py
+ python-attrs
+ python-numpy
+ python-wrapt))
+ (arguments
+ (list #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'build-shared-lib
+ (lambda _
+ (let* ((pybind11 #$(this-package-input "pybind11"))
+ (python #$(this-package-input "python"))
+ (version (python-version python))
+ (abseil-cpp #$(this-package-input "abseil-cpp")))
+ ;; Delete default cmake build.
+ (substitute* "setup.py"
+ (("ext_modules.*") "")
+ (("cmdclass.*") ""))
+ ;; Actual build phase.
+ (mkdir-p "build/temp/tree/")
+ (invoke
+ "gcc" "-pthread" "-Wno-unused-result" "-Wsign-compare"
+ "-DNDEBUG" "-g" "-fwrapv" "-O3" "-Wall"
+ "-fno-semantic-interposition" "-fPIC"
+ "-I" (string-append pybind11
+ "/lib/python" version
+ "/site-packages/pybind11/include")
+ "-I" (string-append python "/include/python"
+ version)
+ "-I" (string-append abseil-cpp "/include")
+ "-c" "tree/tree.cc"
+ "-o" "build/temp/tree/tree.o"
+ "-fvisibility=hidden" "-g0")
+ (mkdir-p "build/lib/tree")
+ (invoke
+ "g++" "-pthread" "-shared"
+ (string-append "-Wl," "-rpath=" python "/lib")
+ "-fno-semantic-interposition"
+ "build/temp/tree/tree.o"
+ "-L" (string-append python "/lib")
+ "-L" (string-append abseil-cpp "/lib")
+ "-l" "absl_int128"
+ "-l" "absl_raw_hash_set"
+ "-l" "absl_raw_logging_internal"
+ "-l" "absl_strings"
+ "-l" "absl_throw_delegate"
+ "-o" "build/lib/tree/_tree.so")))))))
+ (home-page "https://github.com/deepmind/tree")
+ (synopsis "Work with nested data structures in Python")
+ (description "Tree is a python library for working with nested data
+structures. In a way, @code{tree} generalizes the builtin @code{map} function
+which only supports flat sequences, and allows you to apply a function to each
+leaf preserving the overall structure.")
+ (license license:asl2.0)))
+
(define-public python-docutils
(package
(name "python-docutils")
@@ -22364,6 +22434,25 @@ working with iterables.")
(description "Lexer and codec to work with LaTeX code in Python.")
(license license:expat)))
+(define-public python-pybloom-live
+ (package
+ (name "python-pybloom-live")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pybloom_live" version))
+ (sha256
+ (base32
+ "040i6bjqvl33j30v865shsk30s3h7f16pqwiaj5kig857dfmqm4r"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-bitarray python-xxhash))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/joseph-fox/python-bloomfilter")
+ (synopsis "Bloom filter")
+ (description "This package provides a scalable Bloom filter implemented in
+Python.")
+ (license license:expat)))
+
(define-public python-pybtex
(package
(name "python-pybtex")
@@ -23082,6 +23171,32 @@ environments.")
"PyNamecheap is a Namecheap API client in Python.")
(license license:expat)))
+(define-public python-pynixutil
+ (package
+ (name "python-pynixutil")
+ (version "0.5.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nix-community/pynixutil")
+ (commit version)))
+ (file-name (git-file-name name version))
+ ;; Derivation test uses nix.
+ (modules '((guix build utils)))
+ (snippet '(delete-file "tests/test_drv.py"))
+ (sha256
+ (base32
+ "1lnspcai7mqpv73bbd8kgyw63fxwgkwvfkl09b2bl5y2g2v7np6m"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list poetry python-pytest))
+ (home-page "https://github.com/nix-community/pynixutil")
+ (synopsis "Utility functions for working with data from Nix in Python")
+ (description
+ "@code{pynixutil} provides functions for base32 encoding/decoding and
+derivation parsing, namingly @code{b32decode()}, @code{b32encode()} and
+@code{drvparse()}.")
+ (license license:expat)))
+
(define-public python-dns-lexicon
(package
(name "python-dns-lexicon")
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index a0ced6451b..519a7d1548 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2018, 2020, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -2280,6 +2280,61 @@ using the Enchant spell-checking library.")
;; COPYING file specify GPL3, but source code files all refer to GPL2+.
(license license:gpl2+)))
+(define remove-third-party-files
+ #~(begin
+ (define preserved-club
+ ;; Prefix exceptions with ./ for comparison with ftw.
+ (map (cut string-append "./" <>)
+ preserved-third-party-files))
+ (define protected (make-regexp "\\.(gn|gyp)i?$"))
+ (define (empty? dir)
+ (equal? (scandir dir) '("." "..")))
+ (define (third-party? file)
+ (string-contains file "/third_party/"))
+ (define (useless? file)
+ (any (cute string-suffix? <> file)
+ '(".zip" ".so" ".dll" ".exe" ".jar")))
+ (define (parents child)
+ ;; Return all parent directories of CHILD up to and including
+ ;; the closest "third_party".
+ (let loop ((parent (dirname child))
+ (parents '()))
+ (if (string=? "third_party" (basename parent))
+ (cons parent parents)
+ (loop (dirname parent)
+ (cons parent parents)))))
+ (define (remove-loudly file)
+ (format #t "deleting ~a...~%" file)
+ (force-output)
+ (delete-file file))
+ (define (delete-unwanted-files child stat flag base level)
+ (match flag
+ ((or 'regular 'symlink 'stale-symlink)
+ (when (third-party? child)
+ (unless (or (member child preserved-club)
+ (any (cute member <> preserved-club)
+ (parents child))
+ (regexp-exec protected child))
+ (remove-loudly child)))
+ (when (and (useless? child) (file-exists? child))
+ (remove-loudly child))
+ #t)
+ ('directory-processed
+ (when (empty? child)
+ (rmdir child))
+ #t)
+ (_ #t)))
+
+ (nftw "." delete-unwanted-files 'depth 'physical)
+
+ ;; Assert that each preserved item is present to catch
+ ;; removals.
+ (for-each (lambda (third-party)
+ (unless (file-exists? third-party)
+ (error (format #f "~s does not exist!~%"
+ third-party))))
+ preserved-club)))
+
(define-public qtwebengine-5
(package
(inherit qtsvg-5)
@@ -2298,7 +2353,7 @@ using the Enchant spell-checking library.")
(srfi srfi-26)
(guix build utils)))
(snippet
- '(begin
+ #~(begin
(let ((preserved-third-party-files
'("base/third_party/double_conversion"
"base/third_party/cityhash"
@@ -2434,54 +2489,7 @@ using the Enchant spell-checking library.")
"v8/src/third_party/valgrind"
"v8/src/third_party/siphash"
"v8/third_party/v8/builtins"
- "v8/third_party/inspector_protocol"))
- (protected (make-regexp "\\.(gn|gyp)i?$")))
- (define preserved-club
- (map (lambda (member)
- (string-append "./" member))
- preserved-third-party-files))
- (define (empty? dir)
- (equal? (scandir dir) '("." "..")))
- (define (third-party? file)
- (string-contains file "third_party/"))
- (define (useless? file)
- (any (cute string-suffix? <> file)
- '(".zip" ".so" ".dll" ".exe" ".jar")))
- (define (parents child)
- ;; Return all parent directories of CHILD up to and including
- ;; the closest "third_party".
- (let* ((dirs (match (string-split child #\/)
- ((dirs ... last) dirs)))
- (closest (list-index (lambda (dir)
- (string=? "third_party" dir))
- (reverse dirs)))
- (delim (- (length dirs) closest)))
- (fold (lambda (dir prev)
- (cons (string-append (car prev) "/" dir)
- prev))
- (list (string-join (list-head dirs delim) "/"))
- (list-tail dirs delim))))
- (define (remove-loudly file)
- (format #t "deleting ~a...~%" file)
- (force-output)
- (delete-file file))
- (define (delete-unwanted-files child stat flag base level)
- (match flag
- ((or 'regular 'symlink 'stale-symlink)
- (when (third-party? child)
- (unless (or (member child preserved-club)
- (any (cute member <> preserved-club)
- (parents child))
- (regexp-exec protected child))
- (remove-loudly child)))
- (when (and (useless? child) (file-exists? child))
- (remove-loudly child))
- #t)
- ('directory-processed
- (when (empty? child)
- (rmdir child))
- #t)
- (_ #t)))
+ "v8/third_party/inspector_protocol")))
(with-directory-excursion "src/3rdparty"
;; TODO: Try removing "gn" too for future versions of qtwebengine-5.
@@ -2490,13 +2498,7 @@ using the Enchant spell-checking library.")
(with-directory-excursion "chromium"
;; Delete bundled software and binaries that were not explicitly
;; preserved above.
- (nftw "." delete-unwanted-files 'depth 'physical)
-
- ;; Assert that each preserved item is present to catch removals.
- (for-each (lambda (third-party)
- (unless (file-exists? third-party)
- (error (format #f "~s does not exist!~%" third-party))))
- preserved-club)
+ #$remove-third-party-files
;; Use relative header locations instead of hard coded ones.
(substitute*
@@ -2676,7 +2678,7 @@ and binaries removed, and adds modular support for using system libraries.")
(srfi srfi-26)
(guix build utils)))
(snippet
- '(begin
+ #~(begin
(let ((preserved-third-party-files
'("base/third_party/double_conversion"
"base/third_party/cityhash"
@@ -2698,12 +2700,25 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/angle/src/common/third_party/base"
"third_party/angle/src/common/third_party/smhasher"
"third_party/angle/src/common/third_party/xxhash"
+ "third_party/angle/src/third_party/trace_event"
+ "third_party/angle/src/third_party/volk"
"third_party/axe-core"
"third_party/blink"
"third_party/boringssl"
"third_party/boringssl/src/third_party/fiat"
"third_party/breakpad"
"third_party/brotli"
+ "third_party/catapult"
+ "third_party/catapult/common/py_vulcanize/third_party/rcssmin"
+ "third_party/catapult/common/py_vulcanize/third_party/rjsmin"
+ "third_party/catapult/third_party/polymer"
+ "third_party/catapult/tracing/third_party/d3/d3.min.js"
+ "third_party/catapult/tracing/third_party/gl-matrix/dist/gl-matrix-min.js"
+ "third_party/catapult/tracing/third_party/jpeg-js/jpeg-js-decoder.js"
+ "third_party/catapult/tracing/third_party/jszip/jszip.min.js"
+ "third_party/catapult/tracing/third_party/mannwhitneyu/mannwhitneyu.js"
+ "third_party/catapult/tracing/third_party/oboe/dist"
+ "third_party/catapult/tracing/third_party/pako/pako.min.js"
"third_party/ced"
"third_party/cld_3"
"third_party/closure_compiler"
@@ -2713,16 +2728,39 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/crc32c"
"third_party/dav1d"
"third_party/dawn"
+ "third_party/dawn/third_party/tint"
"third_party/devtools-frontend"
+ "third_party/devtools-frontend/src/front_end/third_party/i18n"
+ "third_party/devtools-frontend/src/front_end/third_party/acorn"
+ "third_party/devtools-frontend/src/front_end/third_party/acorn-loose"
+ "third_party/devtools-frontend/src/front_end/third_party/axe-core"
+ "third_party/devtools-frontend/src/front_end/third_party/chromium"
+ "third_party/devtools-frontend/src/front_end/third_party/codemirror"
+ "third_party/devtools-frontend/src/front_end/third_party/diff"
+ "third_party/devtools-frontend/src/front_end/third_party/intl-messageformat"
"third_party/devtools-frontend/src/front_end/third_party/lighthouse"
+ "third_party/devtools-frontend/src/front_end/third_party/lit-html"
+ "third_party/devtools-frontend/src/front_end/third_party/marked"
"third_party/devtools-frontend/src/front_end/third_party/wasmparser"
+ "third_party/devtools-frontend/src/third_party/typescript"
"third_party/emoji-segmenter"
- "third_party/ffmpeg"
+ "third_party/fdlibm"
+ "third_party/ffmpeg/libavcodec/avcodec.h"
+ "third_party/ffmpeg/libavcodec/packet.h"
+ "third_party/ffmpeg/libavformat/avformat.h"
+ "third_party/ffmpeg/libavformat/avio.h"
+ "third_party/ffmpeg/libavutil/avutil.h"
+ "third_party/ffmpeg/libavutil/imgutils.h"
+ "third_party/ffmpeg/libavutil/log.h"
+ "third_party/ffmpeg/libavutil/mathematics.h"
+ "third_party/ffmpeg/libavutil/opt.h"
+ "third_party/freetype"
"third_party/googletest"
- "third_party/harfbuzz-ng/utils"
+ "third_party/harfbuzz-ng"
+ "third_party/highway"
"third_party/hunspell"
"third_party/iccjpeg"
- "third_party/icu"
+ "third_party/icu" ;TODO: make pdfium use system version
"third_party/inspector_protocol"
"third_party/jinja2"
"third_party/jsoncpp"
@@ -2730,19 +2768,35 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/khronos"
"third_party/leveldatabase"
"third_party/libaddressinput"
+ "third_party/libaom"
+ "third_party/libaom/source/libaom/third_party/fastfeat"
+ "third_party/libaom/source/libaom/third_party/vector"
+ "third_party/libaom/source/libaom/third_party/x86inc"
+ "third_party/libavif"
+ "third_party/libgav1"
"third_party/libgifcodec"
"third_party/libjingle_xmpp"
"third_party/libjpeg_turbo"
- "third_party/libpng"
+ "third_party/libjxl"
+ "third_party/libpng" ;TODO: make pdfium use system version
"third_party/libsrtp"
"third_party/libsync"
"third_party/libudev"
+ "third_party/liburlpattern"
"third_party/libvpx"
"third_party/libwebm"
- "third_party/libwebp"
- "third_party/libxml"
- "third_party/libxslt"
+ "third_party/libwebp/src/webp/decode.h"
+ "third_party/libwebp/src/webp/demux.h"
+ "third_party/libwebp/src/webp/encode.h"
+ "third_party/libwebp/src/webp/format_constants.h"
+ "third_party/libwebp/src/webp/mux.h"
+ "third_party/libwebp/src/webp/mux_types.h"
+ "third_party/libwebp/src/webp/types.h"
+ "third_party/libx11"
+ "third_party/libxcb-keysyms"
+ "third_party/libxml/chromium"
"third_party/libyuv"
+ "third_party/lottie"
"third_party/lss"
"third_party/mako"
"third_party/markupsafe"
@@ -2750,18 +2804,27 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/metrics_proto"
"third_party/modp_b64"
"third_party/nasm"
+ "third_party/node"
"third_party/one_euro_filter"
- "third_party/openh264/src/codec/api/svc"
- "third_party/opus"
+ "third_party/openh264"
+ "third_party/opus/src/include/opus.h"
+ "third_party/opus/src/include/opus_custom.h"
+ "third_party/opus/src/include/opus_defines.h"
+ "third_party/opus/src/include/opus_multistream.h"
+ "third_party/opus/src/include/opus_types.h"
"third_party/ots"
"third_party/pdfium"
"third_party/pdfium/third_party/agg23"
"third_party/pdfium/third_party/base"
+ "third_party/pdfium/third_party/bigint"
"third_party/pdfium/third_party/freetype"
"third_party/pdfium/third_party/lcms"
"third_party/pdfium/third_party/libopenjpeg20"
+ "third_party/pdfium/third_party/libpng16"
+ "third_party/pdfium/third_party/libtiff"
"third_party/pdfium/third_party/skia_shared"
"third_party/perfetto"
+ "third_party/perfetto/protos/third_party/chromium"
"third_party/pffft"
"third_party/ply"
"third_party/polymer"
@@ -2777,9 +2840,18 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/skia/third_party/vulkanmemoryallocator"
"third_party/smhasher"
"third_party/snappy"
+ "third_party/speech-dispatcher"
"third_party/sqlite"
"third_party/usb_ids"
"third_party/usrsctp"
+ "third_party/vulkan-deps/glslang"
+ "third_party/vulkan-deps/spirv-headers"
+ "third_party/vulkan-deps/spirv-tools"
+ "third_party/vulkan-deps/vulkan-headers"
+ "third_party/vulkan-deps/vulkan-loader"
+ "third_party/vulkan-deps/vulkan-tools"
+ "third_party/vulkan-deps/vulkan-validation-layers"
+ "third_party/vulkan_memory_allocator"
"third_party/web-animations-js"
"third_party/webrtc"
"third_party/webrtc/common_audio/third_party/ooura"
@@ -2793,58 +2865,15 @@ and binaries removed, and adds modular support for using system libraries.")
"third_party/widevine/cdm/widevine_cdm_common.h"
"third_party/widevine/cdm/widevine_cdm_version.h"
"third_party/woff2"
- "third_party/zlib"
+ "third_party/wuffs"
+ "third_party/x11proto"
+ "third_party/zlib" ;TODO: make pdfium use system version
"url/third_party/mozilla"
"v8/src/third_party/utf8-decoder"
"v8/src/third_party/valgrind"
"v8/src/third_party/siphash"
"v8/third_party/v8/builtins"
- "v8/third_party/inspector_protocol"))
- (protected (make-regexp "\\.(gn|gyp)i?$")))
- (define preserved-club
- (map (lambda (member)
- (string-append "./" member))
- preserved-third-party-files))
- (define (empty? dir)
- (equal? (scandir dir) '("." "..")))
- (define (third-party? file)
- (string-contains file "third_party/"))
- (define (useless? file)
- (any (cute string-suffix? <> file)
- '(".zip" ".so" ".dll" ".exe" ".jar")))
- (define (parents child)
- ;; Return all parent directories of CHILD up to and including
- ;; the closest "third_party".
- (let* ((dirs (match (string-split child #\/)
- ((dirs ... last) dirs)))
- (closest (list-index (lambda (dir)
- (string=? "third_party" dir))
- (reverse dirs)))
- (delim (- (length dirs) closest)))
- (fold (lambda (dir prev)
- (cons (string-append (car prev) "/" dir)
- prev))
- (list (string-join (list-head dirs delim) "/"))
- (list-tail dirs delim))))
- (define (remove-loudly file)
- (format #t "deleting ~a...~%" file)
- (force-output)
- (delete-file file))
- (define (delete-unwanted-files child stat flag base level)
- (match flag
- ((or 'regular 'symlink 'stale-symlink)
- (when (third-party? child)
- (unless (or (member child preserved-club)
- (any (cute member <> preserved-club)
- (parents child))
- (regexp-exec protected child))
- (remove-loudly child)))
- (when (and (useless? child) (file-exists? child))
- (remove-loudly child)))
- ('directory-processed
- (when (empty? child)
- (rmdir child)))
- (_ #t)))
+ "v8/third_party/inspector_protocol")))
(with-directory-excursion "src/3rdparty"
(delete-file-recursively "ninja")
@@ -2852,15 +2881,7 @@ and binaries removed, and adds modular support for using system libraries.")
(with-directory-excursion "chromium"
;; Delete bundled software and binaries that were not
;; explicitly preserved above.
- (nftw "." delete-unwanted-files 'depth 'physical)
-
- ;; Assert that each preserved item is present to catch
- ;; removals.
- (for-each (lambda (third-party)
- (unless (file-exists? third-party)
- (error (format #f "~s does not exist!~%"
- third-party))))
- preserved-club)
+ #$remove-third-party-files
;; Use relative header locations instead of hard coded ones.
(substitute*
@@ -2910,15 +2931,29 @@ linux/libcurl_wrapper.h"
"-DQT_FEATURE_webengine_printing_and_pdf=OFF"
"-DQT_FEATURE_webengine_pepper_plugins=OFF" ;widevine
"-DQT_FEATURE_system_ffmpeg=ON"
+
;; Do not artificially limit codec support; video decoding is
;; done by ffmpeg.
"-DQT_FEATURE_webengine_proprietary_codecs=ON"
+
+ ;; Use system libraries where possible (see src/core/CMakeLists.txt).
"-DQT_FEATURE_webengine_system_alsa=ON"
+ "-DQT_FEATURE_webengine_system_ffmpeg=ON"
+ "-DQT_FEATURE_webengine_system_freetype=ON"
+ "-DQT_FEATURE_webengine_system_harfbuzz=ON"
"-DQT_FEATURE_webengine_system_icu=ON"
- "-DQT_FEATURE_webengine_system_libxml=ON"
+ "-DQT_FEATURE_webengine_system_lcms2=ON"
+ "-DQT_FEATURE_webengine_system_libevent=ON"
+ "-DQT_FEATURE_webengine_system_libjpeg=ON"
"-DQT_FEATURE_webengine_system_libpci=ON"
"-DQT_FEATURE_webengine_system_libpng=ON"
+ "-DQT_FEATURE_webengine_system_libwebp=ON"
+ "-DQT_FEATURE_webengine_system_libxml=ON"
+ "-DQT_FEATURE_webengine_system_libxslt=ON"
+ "-DQT_FEATURE_webengine_system_minizip=ON"
+ "-DQT_FEATURE_webengine_system_opus=ON"
"-DQT_FEATURE_webengine_system_pulseaudio=ON"
+ "-DQT_FEATURE_webengine_system_re2=ON"
"-DQT_FEATURE_webengine_system_zlib=ON")
#:phases
#~(modify-phases %standard-phases
@@ -2980,10 +3015,12 @@ linux/libcurl_wrapper.h"
(append clang-14
lld-as-ld-wrapper
python-wrapper
+ python-beautifulsoup4
python-html5lib)))
(inputs
(modify-inputs (package-inputs qtwebengine-5)
(replace "qtmultimedia" qtmultimedia)
+ (replace "harfbuzz" harfbuzz-5)
(append libxkbfile xkeyboard-config)))
(propagated-inputs
(modify-inputs (package-propagated-inputs qtwebengine-5)
diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm
index bb38b8b218..21bc9a3bd8 100644
--- a/gnu/packages/raspberry-pi.scm
+++ b/gnu/packages/raspberry-pi.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2021 Stefan <stefan-guix@vodafonemail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -17,17 +18,22 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages raspberry-pi)
+ #:use-module (gnu bootloader)
+ #:use-module (gnu bootloader grub)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages algebra)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages bootloaders)
#:use-module (gnu packages commencement)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages embedded)
#:use-module (gnu packages file)
#:use-module (gnu packages gcc)
- #:use-module (gnu packages embedded)
+ #:use-module (gnu packages linux)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -40,7 +46,10 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-26)
- #:use-module (ice-9 match))
+ #:use-module (ice-9 match)
+ #:export (make-raspi-bcm28-dtbs
+ raspi-config-file
+ raspi-custom-txt))
(define-public bcm2835
(package
@@ -235,3 +244,126 @@ Raspberry Pi. Note: It does not work on Raspberry Pi 1.")
(install-file "arm64.bin" libexec)
#t))))))))
(supported-systems '("aarch64-linux"))))
+
+(define (raspi-config-file name content)
+ "Make a configuration file like config.txt for the Raspberry Pi firmware.
+CONTENT can be a list of strings, which are concatenated with a newline
+character. Alternatively CONTENT can be a string with the full file content."
+ (plain-file
+ name
+ (if (list? content)
+ (string-join content "\n" 'suffix)
+ content)))
+
+(define-public %raspi-config-txt
+ ;; A config.txt file to start the ARM cores up in 64-bit mode if necessary
+ ;; and to include a dtb.txt, bootloader.txt, and a custom.txt, each with
+ ;; separated configurations for the Raspberry Pi firmware.
+ (raspi-config-file
+ "config.txt"
+ `("# See https://www.raspberrypi.org/documentation/configuration/config-txt/README.md for details."
+ ""
+ ,(string-append "arm_64bit=" (if (target-aarch64?) "1" "0"))
+ "include dtb.txt"
+ "include bootloader.txt"
+ "include custom.txt")))
+
+(define-public %raspi-bcm27-dtb-txt
+ ;; A dtb.txt file to be included by the config.txt to ensure that the
+ ;; downstream device tree files bcm27*.dtb will be used.
+ (raspi-config-file
+ "dtb.txt"
+ "upstream_kernel=0"))
+
+(define-public %raspi-bcm28-dtb-txt
+ ;; A dtb.txt file to be included by the config.txt to ensure that the
+ ;; upstream device tree files bcm28*.dtb will be used.
+ ;; This also implies the use of the dtoverlay=upstream.
+ (raspi-config-file
+ "dtb.txt"
+ "upstream_kernel=1"))
+
+(define-public %raspi-u-boot-bootloader-txt
+ ;; A bootloader.txt file to be included by the config.txt to load the
+ ;; U-Boot bootloader.
+ (raspi-config-file
+ "bootloader.txt"
+ '("dtoverlay=upstream"
+ "enable_uart=1"
+ "kernel=u-boot.bin")))
+
+(define (raspi-custom-txt content)
+ "Make a custom.txt file for the Raspberry Pi firmware.
+CONTENT can be a list of strings, which are concatenated with a newline
+character. Alternatively CONTENT can be a string with the full file content."
+ (raspi-config-file "custom.txt" content))
+
+(define (make-raspi-bcm28-dtbs linux)
+ "Make a package with the device-tree files for Raspberry Pi models from the
+kernel LINUX."
+ (package
+ (inherit linux)
+ (name "raspi-bcm28-dtbs")
+ (source #f)
+ (build-system copy-build-system)
+ (arguments
+ #~(list
+ #:phases #~(modify-phases %standard-phases (delete 'unpack))
+ #:install-plan
+ (list (list (search-input-directory %build-inputs
+ "lib/dtbs/broadcom/")
+ "." #:include-regexp '("/bcm....-rpi.*\\.dtb")))))
+ (inputs (list linux))
+ (synopsis "Device-tree files for a Raspberry Pi")
+ (description
+ (format #f "The device-tree files for Raspberry Pi models from ~a."
+ (package-name linux)))))
+
+(define-public grub-efi-bootloader-chain-raspi-64
+ ;; A bootloader capable to boot a Raspberry Pi over network via TFTP or from
+ ;; a local storage like a micro SD card. It neither installs firmware nor
+ ;; device-tree files for the Raspberry Pi. It just assumes them to be
+ ;; existing in boot/efi in the same way that some UEFI firmware with ACPI
+ ;; data is usually assumed to be existing on PCs. It creates firmware
+ ;; configuration files and a bootloader-chain with U-Boot to provide an EFI
+ ;; API for the final GRUB bootloader. It also serves as a blue-print to
+ ;; create an a custom bootloader-chain with firmware and device-tree
+ ;; packages or files.
+ (efi-bootloader-chain grub-efi-netboot-removable-bootloader
+ #:packages (list u-boot-rpi-arm64-efi-bin)
+ #:files (list %raspi-config-txt
+ %raspi-bcm27-dtb-txt
+ %raspi-u-boot-bootloader-txt)))
+
+(define (make-raspi-defconfig arch defconfig sha256-as-base32)
+ "Make for the architecture ARCH a file-like object from the DEFCONFIG file
+with the hash SHA256-AS-BASE32. This object can be used as the #:defconfig
+argument of the function (modify-linux)."
+ (make-defconfig
+ (string-append
+ ;; This is from commit 7838840 on branch rpi-5.18.y,
+ ;; see https://github.com/raspberrypi/linux/tree/rpi-5.18.y/
+ ;; and https://github.com/raspberrypi/linux/commit/7838840b5606a2051b31da4c598466df7b1c3005
+ "https://raw.githubusercontent.com/raspberrypi/linux/7838840b5606a2051b31da4c598466df7b1c3005/arch/"
+ arch "/configs/" defconfig)
+ sha256-as-base32))
+
+(define-public %bcm2709-defconfig
+ (make-raspi-defconfig
+ "arm" "bcm2709_defconfig"
+ "1hcxmsr131f92ay3bfglrggds8ajy904yj3vw7c42i4c66256a79"))
+
+(define-public %bcm2711-defconfig
+ (make-raspi-defconfig
+ "arm" "bcm2711_defconfig"
+ "1n7g5yq0hdp8lh0x6bfxph2ff8yn8zisdj3qg0gbn83j4v8i1zbd"))
+
+(define-public %bcm2711-defconfig-64
+ (make-raspi-defconfig
+ "arm64" "bcm2711_defconfig"
+ "0k9q7qvw826v2hrp49xnxnw93pnnkicwx869chvlf7i57461n4i7"))
+
+(define-public %bcmrpi3-defconfig
+ (make-raspi-defconfig
+ "arm64" "bcmrpi3_defconfig"
+ "1bfnl4p0ddx3200dg91kmh2pln36w95y05x1asc312kixv0jgd81"))
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 693489264d..9c8c1ba4d4 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -20,6 +20,8 @@
;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it>
+;;; Copyright © 2022 ( <paren@disroot.org>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,11 +39,12 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages rust-apps)
- #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cargo)
+ #:use-module (guix deprecation)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
- #:use-module (guix deprecation)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages)
@@ -1028,6 +1031,49 @@ rebase.")
"This package provides a tool for generating C/C++ bindings to Rust code.")
(license license:mpl2.0)))
+(define-public rust-cbindgen-0.24
+ (package
+ (inherit rust-cbindgen)
+ (name "rust-cbindgen")
+ (version "0.24.3")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "cbindgen" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1yqxqsz2d0cppd8zwihk2139g5gy38wqgl9snj6rnk8gyvnqsdd6"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-clap" ,rust-clap-3)
+ ("rust-heck" ,rust-heck-0.4)
+ ("rust-indexmap" ,rust-indexmap-1)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-syn" ,rust-syn-1)
+ ("rust-tempfile" ,rust-tempfile-3)
+ ("rust-toml" ,rust-toml-0.5))
+ #:cargo-development-inputs
+ (("rust-serial-test" ,rust-serial-test-0.5))))
+ (native-inputs
+ (list python-cython))))
+
+(define-public rust-cbindgen-0.23
+ (package
+ (inherit rust-cbindgen-0.24)
+ (name "rust-cbindgen")
+ (version "0.23.0")
+ (source (origin
+ (method url-fetch)
+ (uri (crate-uri "cbindgen" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav"))))))
+
(define-public rust-cbindgen-0.19
(package
(inherit rust-cbindgen)
@@ -1875,6 +1921,164 @@ C-compatible) software.")
consecutive lines and since program start.")
(license license:expat)))
+(define-public skim
+ (package
+ (name "skim")
+ (version "0.9.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "skim" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1d5v9vq8frkdjm7bnw3455h6xf3c277d51il2qasn7r20kwik7ab"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-atty-0.2" ,rust-atty-0.2)
+ ("rust-beef" ,rust-beef-0.5)
+ ("rust-bitflags" ,rust-bitflags-1)
+ ("rust-chrono" ,rust-chrono-0.4)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-crossbeam" ,rust-crossbeam-0.8)
+ ("rust-defer-drop" ,rust-defer-drop-1)
+ ("rust-derive-builder" ,rust-derive-builder-0.9)
+ ("rust-env-logger" ,rust-env-logger-0.8)
+ ("rust-fuzzy-matcher" ,rust-fuzzy-matcher-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-nix" ,rust-nix-0.19)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-shlex" ,rust-shlex-0.1)
+ ("rust-time" ,rust-time-0.2)
+ ("rust-timer" ,rust-timer-0.2)
+ ("rust-tuikit" ,rust-tuikit-0.4)
+ ("rust-unicode-width" ,rust-unicode-width-0.1)
+ ("rust-vte" ,rust-vte-0.9))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-extras
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (share (string-append out "/share"))
+ (man (string-append out "/share/man"))
+ (vimfiles (string-append share "/vim/vimfiles/plugin"))
+ (bash-completion
+ (string-append share "/bash-completions/completions"))
+ (zsh-site (string-append share "/zsh/site-functions"))
+ (fish-vendor
+ (string-append share "/fish/vendor-completions.d")))
+ ;; Binaries
+ (for-each
+ (lambda (binary) (install-file binary bin))
+ (find-files "bin"))
+ (mkdir-p share)
+ ;; Manpages
+ (copy-recursively "man" man)
+ ;; Vim plugins
+ (mkdir-p vimfiles)
+ (copy-recursively "plugin" vimfiles)
+ ;; Completions
+ (mkdir-p bash-completion)
+ (copy-file
+ "shell/completion.bash"
+ (string-append bash-completion "/skim"))
+ (copy-file
+ "shell/key-bindings.bash"
+ (string-append bash-completion "/skim-bindings"))
+ (mkdir-p zsh-site)
+ (copy-file
+ "shell/completion.zsh"
+ (string-append zsh-site "/_skim"))
+ (copy-file
+ "shell/key-bindings.zsh"
+ (string-append zsh-site "/_skim-bindings"))
+ (mkdir-p fish-vendor)
+ (copy-file
+ "shell/key-bindings.fish"
+ (string-append fish-vendor "/skim-bindings.fish"))))))))
+ (home-page "https://github.com/lotabout/skim")
+ (synopsis "Fuzzy Finder in Rust")
+ (description "This package provides a fuzzy finder in Rust.")
+ (license license:expat)))
+
+(define-public skim-0.7
+ (package
+ (inherit skim)
+ (name "skim")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "skim" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1yiyd6fml5hd2l811sckkzmiiq9bd7018ajk4qk3ai4wyvqnw8mv"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-bitflags" ,rust-bitflags-1)
+ ("rust-chrono" ,rust-chrono-0.4)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-derive-builder" ,rust-derive-builder-0.9)
+ ("rust-env-logger" ,rust-env-logger-0.6)
+ ("rust-fuzzy-matcher" ,rust-fuzzy-matcher-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-nix" ,rust-nix-0.14)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-shlex" ,rust-shlex-0.1)
+ ("rust-time" ,rust-time-0.1)
+ ("rust-timer" ,rust-timer-0.2)
+ ("rust-tuikit" ,rust-tuikit-0.2)
+ ("rust-unicode-width" ,rust-unicode-width-0.1)
+ ("rust-vte" ,rust-vte-0.3))))))
+
+(define-public rust-skim-0.7
+ (deprecated-package "rust-skim-0.7" skim-0.7))
+
+(define-public svd2rust
+ (package
+ (name "svd2rust")
+ (version "0.19.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "svd2rust" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0q8slfgjfhpljzlk2myb0i538mfq99q1ljn398jm17r1q2pjjxhv"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-anyhow" ,rust-anyhow-1)
+ ("rust-cast" ,rust-cast-0.2)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-clap-conf" ,rust-clap-conf-0.1)
+ ("rust-env-logger" ,rust-env-logger-0.7)
+ ("rust-inflections" ,rust-inflections-1)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-proc-macro2" ,rust-proc-macro2-0.4)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-svd-parser" ,rust-svd-parser-0.10)
+ ("rust-syn" ,rust-syn-1)
+ ("rust-thiserror" ,rust-thiserror-1))))
+ (home-page "https://github.com/rust-embedded/svd2rust/")
+ (synopsis
+ "Generate Rust register maps (`struct`s) from SVD files")
+ (description
+ "This program can be used to generate Rust register maps (`struct`s) from SVD
+files.")
+ (license (list license:expat license:asl2.0))))
+
(define-public swayhide
(package
(name "swayhide")
@@ -1900,6 +2104,43 @@ workflow includes opening graphical programs from the terminal, as the locked
terminal won't have to take up any space.")
(license license:gpl3+)))
+(define-public swayr
+ (package
+ (name "swayr")
+ (version "0.18.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "swayr" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1m443lwbs3lm20kkviw60db56w9i59dm393z1sn6llpfi2xihh3h"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:tests? #f
+ #:cargo-inputs
+ (("rust-clap" ,rust-clap-3)
+ ("rust-directories" ,rust-directories-4)
+ ("rust-env-logger" ,rust-env-logger-0.9)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-once-cell" ,rust-once-cell-1)
+ ("rust-rand" ,rust-rand-0.8)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-rt-format" ,rust-rt-format-0.3)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-swayipc" ,rust-swayipc-3)
+ ("rust-toml" ,rust-toml-0.5))))
+ (home-page "https://sr.ht/~tsdh/swayr/")
+ (synopsis "Window-switcher for the sway window manager")
+ (description
+ "This package provides a last-recently-used window-switcher for the sway
+window manager. Swayr consists of a daemon, and a client. The swayrd daemon
+records window/workspace creations, deletions, and focus changes using sway's
+JSON IPC interface. The swayr client offers subcommands, and sends them to the
+daemon which executes them.")
+ (license license:gpl3+)))
+
(define-public tealdeer
(package
(name "tealdeer")
@@ -2029,32 +2270,54 @@ It will then write @code{fixup!} commits for each of those changes.")
(define-public zoxide
(package
(name "zoxide")
- (version "0.6.0")
+ (version "0.8.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "zoxide" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1ih01l3xp8plicxhmyxjkq12ncpdb8954jcj3dh3lwvkhvw29nkk"))))
+ (base32 "0y5v2vgl9f3n0n0w4b3iddbfyxv0hls0vw5406ry0hcvnnjyy2l3"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-anyhow" ,rust-anyhow-1)
- ("rust-askama" ,rust-askama-0.10)
- ("rust-bincode" ,rust-bincode-1)
- ("rust-clap" ,rust-clap-3)
- ("rust-dirs-next" ,rust-dirs-next-2)
- ("rust-dunce" ,rust-dunce-1)
- ("rust-glob" ,rust-glob-0.3)
- ("rust-once-cell" ,rust-once-cell-1)
- ("rust-ordered-float" ,rust-ordered-float-2)
- ("rust-rand" ,rust-rand-0.7)
- ("rust-serde" ,rust-serde-1)
- ("rust-tempfile" ,rust-tempfile-3))
- #:cargo-development-inputs
- (("rust-assert-cmd" ,rust-assert-cmd-1)
- ("rust-seq-macro" ,rust-seq-macro-0.2))))
+ (list #:cargo-inputs
+ `(("rust-anyhow" ,rust-anyhow-1)
+ ("rust-askama" ,rust-askama-0.11)
+ ("rust-bincode" ,rust-bincode-1)
+ ("rust-clap" ,rust-clap-3)
+ ("rust-clap-complete" ,rust-clap-complete-3)
+ ("rust-clap-complete-fig" ,rust-clap-complete-fig-3)
+ ("rust-dirs" ,rust-dirs-4)
+ ("rust-dunce" ,rust-dunce-1)
+ ("rust-fastrand" ,rust-fastrand-1)
+ ("rust-glob" ,rust-glob-0.3)
+ ("rust-nix" ,rust-nix-0.24)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-which" ,rust-which-4))
+ #:cargo-development-inputs
+ `(("rust-assert-cmd" ,rust-assert-cmd-2)
+ ("rust-rstest" ,rust-rstest-0.15)
+ ("rust-rstest-reuse" ,rust-rstest-reuse-0.4)
+ ("rust-tempfile" ,rust-tempfile-3))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'use-older-rust
+ (lambda _
+ (setenv "RUSTC_BOOTSTRAP" "1")
+ (substitute* "Cargo.toml"
+ (("^rust-version = .*$")
+ (string-append
+ "rust-version = \""
+ #$(package-version rust)
+ "\"\n")))
+ (substitute* "src/main.rs"
+ (("#!\\[allow\\(clippy::single_component_path_imports)]")
+ "#![feature(total_cmp)]"))
+ (substitute* "src/cmd/query.rs"
+ (("let handle = &mut io::stdout\\()\\.lock\\();")
+ "\
+let _stdout = io::stdout();
+let handle = &mut _stdout.lock();")))))))
(home-page "https://github.com/ajeetdsouza/zoxide/")
(synopsis "Fast way to navigate your file system")
(description
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index bfa5e1bc68..c0f663977a 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -625,6 +625,11 @@ safety and thread safety guarantees.")
rust-1.63 "1.64.0" "018j720b2n12slp4xk64jc6shkncd46d621qdyzh2a8s3r49zkdk")))
(package
(inherit base-rust)
+ (source
+ (origin
+ (inherit (package-source base-rust))
+ (patches (search-patches "rust-1.64-fix-riscv64-bootstrap.patch"))
+ (patch-flags '("-p1" "--reverse"))))
(arguments
(substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases)
@@ -638,8 +643,16 @@ safety and thread safety guarantees.")
(generate-all-checksums "vendor"))))))))))
(define rust-1.65
- (rust-bootstrapped-package
- rust-1.64 "1.65.0" "0f005kc0vl7qyy298f443i78ibz71hmmh820726bzskpyrkvna2q"))
+ (let ((base-rust
+ (rust-bootstrapped-package
+ rust-1.64 "1.65.0" "0f005kc0vl7qyy298f443i78ibz71hmmh820726bzskpyrkvna2q")))
+ (package
+ (inherit base-rust)
+ (source
+ (origin
+ (inherit (package-source base-rust))
+ (patches '())
+ (patch-flags '("-p1")))))))
;;; Note: Only the latest versions of Rust are supported and tested. The
;;; intermediate rusts are built for bootstrapping purposes and should not
diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
index e3f94fd0b0..051d7df014 100644
--- a/gnu/packages/sssd.scm
+++ b/gnu/packages/sssd.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; 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>
@@ -154,7 +154,7 @@ fundamental object types for C.")
(define-public sssd
(package
(name "sssd")
- (version "2.7.4")
+ (version "2.8.1")
(source
(origin
(method git-fetch)
@@ -163,9 +163,8 @@ fundamental object types for C.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1946pfwyv1ci0m4flrhwkksq42p14n7kcng6fbq6sy4lcn5g3yml"))
- (patches (search-patches "sssd-optional-systemd.patch"
- "sssd-system-directories.patch"))))
+ (base32 "19vn2a1r33q6fnw7jmfv3s4kirnviz0rgq0w6wzx6h008iysidsd"))
+ (patches (search-patches "sssd-system-directories.patch"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 6196d6bd69..4c7609683b 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -45,6 +45,7 @@
#:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system r)
+ #:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
@@ -486,14 +487,14 @@ available, greatly increasing its breadth and scope.")
(define-public r-boot
(package
(name "r-boot")
- (version "1.3-28")
+ (version "1.3-28.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "boot" version))
(sha256
(base32
- "0cjafhqv1c1mrjjcasqr767vs96wjcc6am9r1icryr8l4zymhwcz"))))
+ "0lzz08fpn80qzm197s4806hr6skanr3r3rlx6bx7zk4cripygkfl"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/boot")
(synopsis "Bootstrap functions for R")
@@ -655,14 +656,14 @@ also flexible enough to handle most nonstandard requirements.")
(define-public r-matrix
(package
(name "r-matrix")
- (version "1.5-1")
+ (version "1.5-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "Matrix" version))
(sha256
(base32
- "0pap6pb0is2s02l43y982p7banwi844bjpgbcgf6fb8pb01vlzam"))))
+ "03g0zqkbaa1k52i0d0yyn7vclmg93hdqaid48sbc1ccpvi70ywjf"))))
(properties `((upstream-name . "Matrix")))
(build-system r-build-system)
(propagated-inputs
@@ -825,14 +826,14 @@ curves, Cox models, and parametric accelerated failure time models.")
(define-public r-bit
(package
(name "r-bit")
- (version "4.0.4")
+ (version "4.0.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "bit" version))
(sha256
(base32
- "0s7isadibxp2wr62r5cpbyh9z31sczzfz4j3rm7gxgjfpqgq8174"))))
+ "1g5zakrzkhrqh3d7p1zka6zzzw11rdlbrvxsh05s7dkli1m57wph"))))
(build-system r-build-system)
(native-inputs
(list r-knitr))
@@ -1078,13 +1079,13 @@ in which the whole-plots or split-plots or both can be freely exchangeable.")
(define-public r-plyr
(package
(name "r-plyr")
- (version "1.8.7")
+ (version "1.8.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "plyr" version))
(sha256
- (base32 "0zz88q055c38b9xqzfg1mwm7ikxzlyx3pnk16sfa8dbh2pqxm7vx"))))
+ (base32 "030706kwgqa2s5jd93ck271iqb0pj3fshrj9frg4wgp1pfs12cm7"))))
(build-system r-build-system)
(propagated-inputs (list r-rcpp))
(home-page "http://had.co.nz/plyr")
@@ -1137,14 +1138,14 @@ designed by Cynthia Brewer as described at http://colorbrewer2.org")
(define-public r-sendmailr
(package
(name "r-sendmailr")
- (version "1.2-1.1")
+ (version "1.3-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "sendmailR" version))
(sha256
(base32
- "1dgxl6wnadlw5b3m4has5zalpk3pd5j70hfps92b9lbx4i7xbmr0"))))
+ "1vxs9pdz1qbm7gzzigmvn5ybglakj4fska8dfj94azdvpkijs6hx"))))
(properties `((upstream-name . "sendmailR")))
(build-system r-build-system)
(propagated-inputs
@@ -1429,13 +1430,13 @@ for template use among CRAN packages.")
(define-public r-evaluate
(package
(name "r-evaluate")
- (version "0.17")
+ (version "0.18")
(source (origin
(method url-fetch)
(uri (cran-uri "evaluate" version))
(sha256
(base32
- "0qx9dgwcz0xmf4k8hy45p50dhb3nldhmhmg5y0d92rxr9k4l7is9"))))
+ "0dmznan8zajzb5f31yabcgpkinlqczz59i1rg9f6sa5cjzffqkkz"))))
(build-system r-build-system)
(home-page "https://github.com/hadley/evaluate")
(synopsis "Parsing and evaluation tools for R")
@@ -1515,13 +1516,13 @@ data derived from /etc/mime.types in UNIX-type systems.")
(define-public r-markdown
(package
(name "r-markdown")
- (version "1.3")
+ (version "1.4")
(source (origin
(method url-fetch)
(uri (cran-uri "markdown" version))
(sha256
(base32
- "1w9hrc745zwgsnmr72jkwfh22xqgdsq089qcajlc69xrwya3wxxi"))))
+ "0ziwirplzjcci2km6wln035qfd2irjl58r77kl98r8s257kavqz0"))))
(build-system r-build-system)
;; Skip check phase because the tests require the r-knitr package to be
;; installed. This prevents installation failures. Knitr normally
@@ -1559,13 +1560,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
(define-public r-knitr
(package
(name "r-knitr")
- (version "1.40")
+ (version "1.41")
(source (origin
(method url-fetch)
(uri (cran-uri "knitr" version))
(sha256
(base32
- "1g1mhnkyxd2sv6p1l6iph9dnmpbwxhah78xx4kq543ks6vzrb3wv"))))
+ "1izv1m56ngc20wx4da9mmr5ll6ah14ka8dqn9i3pd7ah70lmya81"))))
(build-system r-build-system)
(propagated-inputs
(list r-evaluate r-highr r-stringr r-xfun r-yaml))
@@ -1968,13 +1969,13 @@ times.")
(define-public r-data-table
(package
(name "r-data-table")
- (version "1.14.4")
+ (version "1.14.6")
(source (origin
(method url-fetch)
(uri (cran-uri "data.table" version))
(sha256
(base32
- "1w28wg119w8pnzfdwp5yw7jgk7vv80b6cagms67i02c3dv1afqj8"))))
+ "05h99rk2s1ds9igrqw2nhnk6yahgssszqlnw0y0p9p83lsndp30x"))))
(properties `((upstream-name . "data.table")))
(build-system r-build-system)
(inputs
@@ -2010,6 +2011,36 @@ and fast file reading.")
"This package provides tools to export R data as LaTeX and HTML tables.")
(license license:gpl2+)))
+(define-public python-hdmedians
+ (package
+ (name "python-hdmedians")
+ (version "0.14.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "hdmedians" version))
+ (sha256
+ (base32
+ "1mn2k8srnmfy451l7zvb2l4hn9701bc5awjm6q3vmqbicyqyqyml"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ '(modify-phases %standard-phases
+ (add-before 'check 'build-extensions
+ (lambda _
+ ;; Cython extensions have to be built before running the tests.
+ (invoke "python" "setup.py" "build_ext" "--inplace"))))))
+ (propagated-inputs (list python-cython python-numpy))
+ (native-inputs (list python-nose))
+ (home-page "http://github.com/daleroberts/hdmedians")
+ (synopsis "High-dimensional medians")
+ (description "Various definitions for a high-dimensional median exist and
+this Python package provides a number of fast implementations of these
+definitions. Medians are extremely useful due to their high breakdown
+point (up to 50% contamination) and have a number of nice applications in
+machine learning, computer vision, and high-dimensional statistics.")
+ (license license:asl2.0)))
+
(define-public python-patsy
(package
(name "python-patsy")
@@ -2111,14 +2142,14 @@ chain.")
(define-public r-ade4
(package
(name "r-ade4")
- (version "1.7-19")
+ (version "1.7-20")
(source
(origin
(method url-fetch)
(uri (cran-uri "ade4" version))
(sha256
(base32
- "1vv5y6badksnpjb3bcphhjdzzh6i2grmwnsalcf2cfpr3y412lf8"))))
+ "0yxd9dgci3rzz807wsb76wis12ipgjv9w86smdyz20jrnn45giyx"))))
(build-system r-build-system)
(propagated-inputs
(list r-mass r-pixmap r-sp))
@@ -2406,13 +2437,13 @@ tables, autolinks and strikethrough text.")
(define-public r-roxygen2
(package
(name "r-roxygen2")
- (version "7.2.1")
+ (version "7.2.2")
(source (origin
(method url-fetch)
(uri (cran-uri "roxygen2" version))
(sha256
(base32
- "08fs5jw6npriqsr8pribs2yy1r8163xzcv4gmlgmcaywj4jk9w6j"))))
+ "07pijickz5kgd31xzn2z11xqiym4sscj742qwbc5bjh7mayhhmki"))))
(build-system r-build-system)
(propagated-inputs
(list r-brew
@@ -2729,13 +2760,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo
(package
(name "r-rcpparmadillo")
- (version "0.11.4.0.1")
+ (version "0.11.4.2.1")
(source (origin
(method url-fetch)
(uri (cran-uri "RcppArmadillo" version))
(sha256
(base32
- "1qrpdalcvn9bkhiq4l2jflicy6116l5j913h8clyf8yaygsxvr0c"))))
+ "172vz9j1hck6iwk56hgsrg91n4f11df1n6hy1crbv3cb53rkyjgn"))))
(properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system)
(propagated-inputs
@@ -2821,13 +2852,13 @@ certain criterion, e.g., it contains a certain regular file.")
(define-public r-rmarkdown
(package
(name "r-rmarkdown")
- (version "2.17")
+ (version "2.18")
(source
(origin
(method url-fetch)
(uri (cran-uri "rmarkdown" version))
(sha256
- (base32 "1gn413pgyfr45mmiv82gymz9r39d41h3ykmai93fihn4ir2nqmxa"))))
+ (base32 "08lgzb7n7lll1ff7flcyilnz9afj60npi882c035pyyy4vk7majg"))))
(properties `((upstream-name . "rmarkdown")))
(build-system r-build-system)
(propagated-inputs
@@ -2938,13 +2969,13 @@ a column in data frame.")
(define-public r-rsqlite
(package
(name "r-rsqlite")
- (version "2.2.18")
+ (version "2.2.19")
(source (origin
(method url-fetch)
(uri (cran-uri "RSQLite" version))
(sha256
(base32
- "1sjbjh4rhaagmhiv2rg3csakbsc62qwyawz5vhywg3mdcbdnl6b2"))))
+ "11jzg3ywzaql3zwp7cwql1nilz8pvbz903whyh0d447rs0xnn3vj"))))
(properties `((upstream-name . "RSQLite")))
(build-system r-build-system)
(propagated-inputs
@@ -3131,14 +3162,14 @@ statements.")
(define-public r-segmented
(package
(name "r-segmented")
- (version "1.6-0")
+ (version "1.6-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "segmented" version))
(sha256
(base32
- "0sg59j59kz3zrwl3mi4ps1qw3hvwljygqa1d652vjdsx9w57zbvb"))))
+ "0vym03p04jf66fdpx3kzy727b8bay2fpvd3n0xxmm94c3hqwl2gn"))))
(build-system r-build-system)
(propagated-inputs (list r-mass r-nlme))
(home-page "https://cran.r-project.org/web/packages/segmented")
@@ -3287,303 +3318,339 @@ using the multicore functionality of the parallel package.")
(license license:gpl2+)))
(define-public r-dt
- (let ((javascript-sources
- '(("https://cdn.datatables.net/1.10.20/js/jquery.dataTables.js"
- "03ln7ys1q1hy3xpsrjxnjpg9hq3lfpqz0firrxsgjzj8fsw20is3"
- "datatables")
- ("https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap.js"
- "16clrnxm7axn6cdimyf3qbskxg10gpn9ld5ls2xdfw5q1qf2i4ml"
- "datatables")
- ("https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.js"
- "16v49zqxr1zil19bcx3wdnv95zdpiz2m979aazan7z04ymqb2rzb"
- "datatables")
- ("https://cdn.datatables.net/1.10.20/js/dataTables.foundation.js"
- "1gpjm1pi2pl0hxsn0pg3s3f382y2s7nsr06866vxld6gb8054lld"
- "datatables")
- ("https://cdn.datatables.net/1.10.20/js/dataTables.jqueryui.js"
- "0nxd8jph34vsk8k8whs2yiybrn6nsnwzhri0bxn2k1dzmcvpn24i"
- "datatables")
- ("https://cdn.datatables.net/1.10.20/js/dataTables.semanticui.js"
- "1477f49xyxs4phias789mbspv23w8alxchhl5b5iy0aw6vd35c43"
- "datatables")
-
- ("https://cdn.datatables.net/autofill/2.3.4/js/dataTables.autoFill.js"
- "04i6n7r3512gzfihl5wnhrvm0klnjp41g1z6cny3j803hvmnp8zk"
- "datatables-extensions/AutoFill")
- ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.bootstrap.js"
- "1zi7iiq63i5qx3p9cyynn6am4idxwj8xaz8mp4n3klm1x68sc0ja"
- "datatables-extensions/AutoFill")
- ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.bootstrap4.js"
- "1vk2smcz14raf0cz88a65yf36a7mnmbml02q03apg2b8bqy91m7w"
- "datatables-extensions/AutoFill")
- ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.foundation.js"
- "0sbcib1461pkglk69fzzqi73g4abylah74f264v0f79dc5247yzz"
- "datatables-extensions/AutoFill")
- ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.jqueryui.js"
- "1dw9vbbchzbd2c7id8na2p1cxac2kgjbzjrvqafra715hr0i4z3z"
- "datatables-extensions/AutoFill")
- ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.semanticui.js"
- "07ck81y6wpqchq8jfym6gjgc57xwj6vv9h5w9grc1gps6p7q9xnr"
- "datatables-extensions/AutoFill")
-
- ("https://cdn.datatables.net/buttons/1.6.1/js/dataTables.buttons.js"
- "15l9kd9898zm8xf996d5c761rwl55k4w718k9k5fzz2gh91g21g5"
- "datatables-extensions/Buttons")
- ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.colVis.js"
- "1rqlv5pacipl652xgyzsdq1gbfwv52rwl4mr2fx9a3py21yskppk"
- "datatables-extensions/Buttons")
- ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.flash.js"
- "150r2ypxl017kl5agrn17cnyvwpf7x2x7vkqbc1qxif8vclf35kj"
- "datatables-extensions/Buttons")
- ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.html5.js"
- "1d8is99yrh95hycjijzbrbxy1anfslab6krmhj2xbwsmssyn16xh"
- "datatables-extensions/Buttons")
- ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.print.js"
- "1irgspv2zidv6v0ay92152d8cvhz2zyrwb71xk3nw903223vc2gl"
- "datatables-extensions/Buttons")
- ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.semanticui.js"
- "1p02r953ampxlzfzpay227ya6qdzsxz2anjxpnx3q8qs6gv6y2jl"
- "datatables-extensions/Buttons")
- ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.foundation.js"
- "0aykm1sk8rwvxp5r4qnvbb2scx2bln5kh88h36829mcqcdksfc50"
- "datatables-extensions/Buttons")
- ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.jqueryui.js"
- "1im6f6jw3yc3959rw1i3bghvz863kmp3wgfvz661r1r2wjzzfs4d"
- "datatables-extensions/Buttons")
- ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.bootstrap.js"
- "1mzmpabhrk0iag7hb16n8bhghx4cprq39p2vqn3v65mpklajzznc"
- "datatables-extensions/Buttons")
- ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.bootstrap4.js"
- "0hfclipg43wr9p7irrcn9vp5wji8z7gz6y5mclkq88z1mlpwklzf"
- "datatables-extensions/Buttons")
- ("https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.js"
- "01l5lw49jz2qn6k9i63dk4llar4lvvpd6xp6i45mpwfk49fbxqg2"
- "datatables-extensions/Buttons")
- ("https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.js"
- "1sfw80az2cgzin5wk7q1p2n9zm66c35cz0m6isdygml81i594wia"
- "datatables-extensions/Buttons")
- ("https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"
- "1k324s0hw4lfpd71bb1cnv4j5096k8smk64fjdsh81sl0ykizf2w"
- "datatables-extensions/Buttons")
-
- ("https://cdn.datatables.net/colreorder/1.5.2/js/dataTables.colReorder.js"
- "1dalc28km19xzzszsa82hsd9alikrqpzjvf9vzxkccjpf7m2sdqg"
- "datatables-extensions/ColReorder")
- ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.foundation.js"
- "0nrddc8swkmsfzji518kh6ks55ykyk9p8r4x5fmf8ckr9fhjkh0s"
- "datatables-extensions/ColReorder")
- ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.bootstrap.js"
- "0crgmjwcn817yz6ibjkji6gsickvv2a4las9asyldfcpj2c99x84"
- "datatables-extensions/ColReorder")
- ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.bootstrap4.js"
- "065fhw4v2d9rp3ic9zfb1q5d7pfq4f2949rr24hdjbspf19m3ymd"
- "datatables-extensions/ColReorder")
- ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.semanticui.js"
- "17kw143ny0nq0yidsffw3cpghvlg2bzlzavfi0ihkamcn26ymxcp"
- "datatables-extensions/ColReorder")
- ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.jqueryui.js"
- "1rd8hijz3prg2y36fvqczrpdzixibjy2dxgs2fmgr8wrm8k01rrm"
- "datatables-extensions/ColReorder")
-
- ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/dataTables.fixedColumns.js"
- "0vsqk2fv59n351bdfcbvhmvpq38qwf41j1cn810xz1l1i07cg4hg"
- "datatables-extensions/FixedColumns")
- ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.bootstrap.js"
- "1j4wvg694l960gk5dg7wghwa3dpgq8mnrcgp78ghm92i08djb1wy"
- "datatables-extensions/FixedColumns")
- ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.bootstrap4.js"
- "1p79k9bjslyvmp1bdhmg4nm2l9nbfsi4kgw7rx3vjka3n50qy730"
- "datatables-extensions/FixedColumns")
- ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.foundation.js"
- "0f0xkrsapzgma58f6l63rpn68xid098dxwqqddsyddl0hy0x1z82"
- "datatables-extensions/FixedColumns")
- ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.jqueryui.js"
- "0lw35c8vkajx75pg4ddik4gyzmjak1jaw3flq850frwgnzsvhahx"
- "datatables-extensions/FixedColumns")
- ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.semanticui.js"
- "1kqsap9y0d25a7m5zjakipifl5qi2qr72kfj4ap3zxavd8md2wyn"
- "datatables-extensions/FixedColumns")
-
- ("https://cdn.datatables.net/fixedheader/3.1.6/js/dataTables.fixedHeader.js"
- "1ml5ilnm8nirr6rsgmzn75l1k0hcjz3sqk6h1y1gy8cpwpklvqri"
- "datatables-extensions/FixedHeader")
- ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.bootstrap.js"
- "1qf3pkb3svpia7g8bwyql7ma3x2g4zj5bp0d14pnv8xpc9h52r93"
- "datatables-extensions/FixedHeader")
- ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.bootstrap4.js"
- "19jcvnk7zh4k6fd5si3b743x70qzlkqiw3m10jbc5jzbpz8sj6qd"
- "datatables-extensions/FixedHeader")
- ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.foundation.js"
- "0xmpx1r76vykqygksyjaf4d1ql1fid69rqhvk4k857iybqz3gdcv"
- "datatables-extensions/FixedHeader")
- ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.jqueryui.js"
- "1lc0g2cag1sj3bqmh7rh5z00pmfv1srxfhwi32y4mgpzhrzpfzxn"
- "datatables-extensions/FixedHeader")
- ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.semanticui.js"
- "1v0i6dc68h8l8673fb5970igzkl7as36riv504iyg82glfi7n877"
- "datatables-extensions/FixedHeader")
-
- ("https://cdn.datatables.net/keytable/2.5.1/js/dataTables.keyTable.js"
- "16iib2icxsjh93x5hd42gpsl7bzpcsqb7zjgj0m1s02ls45bdlv5"
- "datatables-extensions/KeyTable")
- ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.bootstrap.js"
- "0hnhk6am4yl6h6bb7as935k8h2syil9hf8g7nn409yd3ws736xpj"
- "datatables-extensions/KeyTable")
- ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.bootstrap4.js"
- "0r85mp5yf9hgl5ayzzs46dfbxa231bjlvgb8lqpyzik1m6afa51i"
- "datatables-extensions/KeyTable")
- ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.foundation.js"
- "11fr14p33lyvs0wfcx228m600i4qcaqb44q3hk723jxcz59k17dw"
- "datatables-extensions/KeyTable")
- ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.jqueryui.js"
- "0572rxrvwyprdr8l5jkgacj2bkmhmgxjy5vybm65n54g9j19l6bc"
- "datatables-extensions/KeyTable")
- ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.semanticui.js"
- "157mqn9mhmmf7vas2das4hbpwipk3wshs8n0808q04rbijr0g2bz"
- "datatables-extensions/KeyTable")
-
- ("https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.js"
- "1jnsx4sqf7qjd1gz5ag9hn6n76cwwfms23rzw37lgbd6h54yqzwr"
- "datatables-extensions/Responsive")
- ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.foundation.js"
- "1vzzqpd9l8xv0am42g4cilx9igmq60mgk0hab4ssqvbicrmrgq9z"
- "datatables-extensions/Responsive")
- ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.semanticui.js"
- "1cjiwcf0d07482k08dhn5ffsizshw4hqgz5l58p03pq9g6wc9pvm"
- "datatables-extensions/Responsive")
- ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.jqueryui.js"
- "10nykak2kf4sai64girh26xdmdil29jvw3zja2rpp2qzjg4172z9"
- "datatables-extensions/Responsive")
- ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.bootstrap.js"
- "1xxlh01vmzmfwwlsa611pl2nrl2sx58rp8xmx301bfsylmp2v5b2"
- "datatables-extensions/Responsive")
- ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.bootstrap4.js"
- "1zjh15p7n1038sggaxv1xvcwbkhw2nk1ndx745s6cxiqb69y3i0h"
- "datatables-extensions/Responsive")
-
- ("https://cdn.datatables.net/rowgroup/1.1.1/js/dataTables.rowGroup.js"
- "0s4q7ir2d6q36g29nn9mqk7vrqrdig2mm5zbcv0sn2lixqi29pkj"
- "datatables-extensions/RowGroup")
- ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.bootstrap.js"
- "1xfdhqgznz9x1v8spvql6b0wbna13h8cbzvkjza14nqsmccxck66"
- "datatables-extensions/RowGroup")
- ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.bootstrap4.js"
- "1xm53sda4fabwdaglngrj09bpiygkn9mm17grxbykn1jazqqdp62"
- "datatables-extensions/RowGroup")
- ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.foundation.js"
- "0832i10vils1wv1sm10qvsnd4i2k2xkhskz6i9y2q0axkmk73hcd"
- "datatables-extensions/RowGroup")
- ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.jqueryui.js"
- "0n53cd294s9mjblkykkqvd9n414bsc26wpcg5spxdscjl6hxh79p"
- "datatables-extensions/RowGroup")
- ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.semanticui.js"
- "010wls5nf387p21fdc2k952bxq89r5kxkv7j4wbvwf8k2a18cmc9"
- "datatables-extensions/RowGroup")
-
- ("https://cdn.datatables.net/rowreorder/1.2.6/js/dataTables.rowReorder.js"
- "13ymbn3h9755pgb0gmlb9gl54vz9nqnz4mws7g6mlmz53r3sqhmj"
- "datatables-extensions/RowReorder")
- ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.bootstrap.js"
- "185if2pxgc940rm49hdgln57pc5h9cszlii3bfpdf3pdc1fjhckm"
- "datatables-extensions/RowReorder")
- ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.bootstrap4.js"
- "14129x4md57i4ff7j18m49jn5fw8r716np84cdrcawlydgjsxp4a"
- "datatables-extensions/RowReorder")
- ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.foundation.js"
- "0zg94jckymxzda2xjyj9p38y5v61cji55kak1ylq72l6a9sw8sg6"
- "datatables-extensions/RowReorder")
- ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.jqueryui.js"
- "08gm419xcixgqw0i5yv2mxyyvafhzviibifp6nv129vdxx0a5d8v"
- "datatables-extensions/RowReorder")
- ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.semanticui.js"
- "1zjrx2rlgw3qannsqa88pcp3i4pc87pwv7rmgfw1dar8namkr9kk"
- "datatables-extensions/RowReorder")
-
- ("https://cdn.datatables.net/scroller/2.0.1/js/dataTables.scroller.js"
- "0zfjjdvwwlsnps24i9l4c97hmway2qs6addks1is5bxl4k1r6d16"
- "datatables-extensions/Scroller")
- ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.foundation.js"
- "04bk6ink8wqay7655v93jvv86m3bn6asrsfb22i99rgxdvm8gn1z"
- "datatables-extensions/Scroller")
- ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.bootstrap.js"
- "19dl40dl8ir21xvs1j7xhm2a4py1m21xbypwn499fg2awj8vaidi"
- "datatables-extensions/Scroller")
- ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.bootstrap4.js"
- "0pbkgncijlafwdmyh4l65dabd18hzjh8r01cad3b9iy8cfif6iwd"
- "datatables-extensions/Scroller")
- ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.jqueryui.js"
- "1md5mpx5in7wzsr38yn801cmv3phm0i0ikdnpd0b1nsna5ccpj14"
- "datatables-extensions/Scroller")
- ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.semanticui.js"
- "1dfbblbzbryjgiv31qfdjnijz19lmyijg12win3y8gsgfd4fp9zz"
- "datatables-extensions/Scroller")
-
- ("https://cdn.datatables.net/searchbuilder/1.0.0/js/dataTables.searchBuilder.js"
- "0n5g0j0yfzqvdpsmwb27bj1rd8zx864fsx2k7b2kpv6mqqavzpqc"
- "datatables-extensions/SearchBuilder")
- ("https://cdn.datatables.net/searchbuilder/1.0.0/js/searchBuilder.bootstrap.js"
- "1gnd8rjcg9c96xayshn9rwinzgmlwzddczjlpfmf2j33npmyka2y"
- "datatables-extensions/SearchBuilder")
- ("https://cdn.datatables.net/searchbuilder/1.0.0/js/searchBuilder.bootstrap4.js"
- "0vdv5mi6zbp2dspmj0lw2vaqxvfadcydlmc6frqv4a68rms7wz05"
- "datatables-extensions/SearchBuilder")
- ("https://cdn.datatables.net/searchbuilder/1.0.0/js/searchBuilder.dataTables.js"
- "0fbzfnaqswb2xq7m1vdzcg7l7qi0wmyz64ml6k4002kp0dm4xnlx"
- "datatables-extensions/SearchBuilder")
-
- ("https://cdn.datatables.net/searchpanes/1.1.1/js/dataTables.searchPanes.js"
- "1s697avk42h24fsaq79d1kkw66dqig7xgpx9bvmhwncv8amkmz6i"
- "datatables-extensions/SearchPanes")
- ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.bootstrap.js"
- "0n3z4fdx1nsga4l5hmd4s93piv9k0v607xd7q9h2zpq613if7sld"
- "datatables-extensions/SearchPanes")
- ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.bootstrap4.js"
- "1i1arnvxp57z01wc207jxnw9h8clcish6l96c2gnmachgkaz8lqa"
- "datatables-extensions/SearchPanes")
- ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.dataTables.js"
- "04zzg7i46igcd6gfvdln5alpgjn7m663yf9bf2f3fk9va4fvis6y"
- "datatables-extensions/SearchPanes")
- ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.foundation.js"
- "0m78wdajxn1m3j9jn9jfwqf73wwsxrsfw4zf84h5y6saj4rrcz72"
- "datatables-extensions/SearchPanes")
- ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.jqueryui.js"
- "0zb2x736isb8nxrmd7j8nb78lj8h0h9j3axnbjiybwzzk819xw1m"
- "datatables-extensions/SearchPanes")
- ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.semanticui.js"
- "1781d0xmx7xz0jly0wsw2zbrdmfc1crahmcdbsfbj5s66kdsnd7c"
- "datatables-extensions/SearchPanes")
-
- ("https://cdn.datatables.net/select/1.3.1/js/dataTables.select.js"
- "0a7bkbz1cizhiq4h417b4rcdr7998pn8q4dlyzx8449xdp0h0n0v"
- "datatables-extensions/Select")
- ("https://cdn.datatables.net/select/1.3.1/js/select.bootstrap.js"
- "0mm5ly3p2iprlfi8ajz548rjqx8lz1sbjj5ysgqmwqg14gw7l9k7"
- "datatables-extensions/Select")
- ("https://cdn.datatables.net/select/1.3.1/js/select.bootstrap4.js"
- "1hv6d9lwgflmxhy7mdfb9rvli2wa2cbkdhqjz64zkf1a1a7wlb5q"
- "datatables-extensions/Select")
- ("https://cdn.datatables.net/select/1.3.1/js/select.foundation.js"
- "1zzygcbngvrqh7m22x0s23k8m5xj5fv1p466pzjs23p94qq24a2r"
- "datatables-extensions/Select")
- ("https://cdn.datatables.net/select/1.3.1/js/select.jqueryui.js"
- "1hv5zlmfifd27hylfqsji09y2hbp3m2hnb7j41418sjrxs63f6x6"
- "datatables-extensions/Select")
- ("https://cdn.datatables.net/select/1.3.1/js/select.semanticui.js"
- "0q6q3vb6pa5nmkxy7zcnjs0bkn4ldw8ykdcfrc04bf1d2hjjaw47"
- "datatables-extensions/Select"))))
+ (let* ((extension-url (lambda (name version file)
+ (format #false
+ "https://cdn.datatables.net/~a/~a/js/~a"
+ (string-downcase name)
+ version file)))
+ (extensions
+ '(((name . "AutoFill")
+ (version . "2.4.0")
+ (files . (("dataTables.autoFill.js"
+ "098a4kd4cahc618x543nqc388mpg4ximg3mc43dfjs8p9gsjr6pm")
+ ("autoFill.bootstrap.js"
+ "1zi7iiq63i5qx3p9cyynn6am4idxwj8xaz8mp4n3klm1x68sc0ja")
+ ("autoFill.bootstrap4.js"
+ "1vk2smcz14raf0cz88a65yf36a7mnmbml02q03apg2b8bqy91m7w")
+ ("autoFill.bootstrap5.js"
+ "0azvycv5vgny0a60b3yl5m129qa2780bcxij9x4lqhi7jj8g8cdi")
+ ("autoFill.bulma.js"
+ "047fyrq59xa1xvzywc5q1dr201ky0wnr7iiljmc5kpgw9k2hfm8z")
+ ("autoFill.dataTables.js"
+ "1rz0d1w8m1xr3y64sy88c0ahs04dff8k353vnf5ck1kmfqz7iyz5")
+ ("autoFill.foundation.js"
+ "0sbcib1461pkglk69fzzqi73g4abylah74f264v0f79dc5247yzz")
+ ("autoFill.jqueryui.js"
+ "1dw9vbbchzbd2c7id8na2p1cxac2kgjbzjrvqafra715hr0i4z3z")
+ ("autoFill.semanticui.js"
+ "07ck81y6wpqchq8jfym6gjgc57xwj6vv9h5w9grc1gps6p7q9xnr"))))
+ ((name . "Buttons")
+ (version . "2.2.3")
+ (files . (("dataTables.buttons.js"
+ "0yvvnk57qzq50x2z8gb0269636qz2m8050lwp84ic9l98kwkfsqr")
+ ("buttons.bootstrap.js"
+ "11z9m0lnicac0hibh4d87gfgzzql816pa442xykdlraji52jx8h7")
+ ("buttons.bootstrap4.js"
+ "1n2l595jk2ndbq57ns9mjvpzs354xlpnqghhm27a4ipc29hil9i7")
+ ("buttons.bootstrap5.js"
+ "0qsr748lns5hd52yy4w3w392f9f0y0jn0z382vna6fwynamkpmxi")
+ ("buttons.bulma.js"
+ "08f0969mwyd6x2hgg62b74c53aiq1j7aiwivpi5qbhm64r5haxg2")
+ ("buttons.colVis.js"
+ "1gc2162lyw1l790973mbqhsbapypdf410g5dlhmarnb6w783awhi")
+ ("buttons.foundation.js"
+ "1hhrylxg5jfc0x22gf372bmh2b3nbd0vrl3mi47bp23kgnq7ymdl")
+ ("buttons.html5.js"
+ "1dvy05j0w1galnwgvnisp0zg3indrjikl66z1qzm0m00zz9d1vjr")
+ ("buttons.jqueryui.js"
+ "0y2fgadmj1bmdak3bz80rzkjsa55di5py3m5cn5qmd21a0jam5c5")
+ ("buttons.print.js"
+ "0fxkla48jda592jk0vg9n5jh39d8czibqmq0hmiz8l5d5dyimwi6")
+ ("buttons.semanticui.js"
+ "1v2p8fr68jsjnkgych55qk4lwjj7cix51pl6gykqfr140ps4wfv0"))))
+ ((name . "ColReorder")
+ (version . "1.5.6")
+ (files . (("dataTables.colReorder.js"
+ "0xg1vhrmzy758zygq4n8sriwxkalvqrv4l36rxk4zkgr74iqdcl9")
+ ("colReorder.bootstrap.js"
+ "0crgmjwcn817yz6ibjkji6gsickvv2a4las9asyldfcpj2c99x84")
+ ("colReorder.bootstrap4.js"
+ "065fhw4v2d9rp3ic9zfb1q5d7pfq4f2949rr24hdjbspf19m3ymd")
+ ("colReorder.bootstrap5.js"
+ "1bsdixwgjlgj8hfgcj4kz23bzn9pj2w6fay1bywk4k42wy9hkwcd")
+ ("colReorder.bulma.js"
+ "0ld1bvcizcq6rd31sn0dcb9md7ri1b3npi64hd8nwz5jr2ln0izh")
+ ("colReorder.foundation.js"
+ "0nrddc8swkmsfzji518kh6ks55ykyk9p8r4x5fmf8ckr9fhjkh0s")
+ ("colReorder.jqueryui.js"
+ "1rd8hijz3prg2y36fvqczrpdzixibjy2dxgs2fmgr8wrm8k01rrm")
+ ("colReorder.semanticui.js"
+ "17kw143ny0nq0yidsffw3cpghvlg2bzlzavfi0ihkamcn26ymxcp"))))
+ ((name . "DateTime")
+ (version . "1.1.2")
+ (files . (("dataTables.dateTime.js"
+ "022znjrf95yxn72j3cbasvsrqnbxcch10jbv2gb1816ngw90ykrd"))))
+ ((name . "FixedColumns")
+ (version . "4.1.0")
+ (files . (("dataTables.fixedColumns.js"
+ "1mayfgas63gbzxbbliy56d5b4c5rkyqzvmj3mzrpwyvaf90jskxg")
+ ("fixedColumns.bootstrap.js"
+ "0463y93jl926s3kmx35vw7k95zwz18z917kxiygjw1i3flbyw979")
+ ("fixedColumns.bootstrap4.js"
+ "04z19y4qb0sqcvlra8h15vbpfw6w2brkwh5msvpn6g8hslq7xfqg")
+ ("fixedColumns.bootstrap5.js"
+ "1jgwl5v6b44q8fjdaphqliyl749mmd6bjg9qgnss4xspz4ix5600")
+ ("fixedColumns.bulma.js"
+ "0dvw6adjr0h19vysmwynsg2kjs2ihm6slsybpaw50qz28is6qj1i")
+ ("fixedColumns.foundation.js"
+ "1xmxsxd5phm5r67pvd6r7rqi7l83pw6gp9a9kfjvs7a8s1fbcv7j")
+ ("fixedColumns.jqueryui.js"
+ "0996m40kl7q8bg9przp4lzmp4z2flr538sv2phg3hsl0mra4yqx2")
+ ("fixedColumns.semanticui.js"
+ "0wwxkk7ias986c1iyd2wfd4gcarla99mcaaancgxcadqil6gs2z7"))))
+ ((name . "FixedHeader")
+ (version . "3.2.4")
+ (files . (("dataTables.fixedHeader.js"
+ "1hz2b1987hw8xnbm7fgf1wifjsx9zzzc2y1jxa4fcdvlhyqcikqh")
+ ("fixedHeader.bootstrap.js"
+ "1qf3pkb3svpia7g8bwyql7ma3x2g4zj5bp0d14pnv8xpc9h52r93")
+ ("fixedHeader.bootstrap4.js"
+ "19jcvnk7zh4k6fd5si3b743x70qzlkqiw3m10jbc5jzbpz8sj6qd")
+ ("fixedHeader.bootstrap5.js"
+ "0p8av4ipbwfqfpkpkz9i32rcihx437rbmi4sq6s58rb97vpj1hjr")
+ ("fixedHeader.bulma.js"
+ "1cs3fwx7y1an06ckr4b95crs81sl8xhgs10ggvjghbqdinzkx42v")
+ ("fixedHeader.foundation.js"
+ "0yd1812jrlrawv1sr4n83rl59n1gfablxbhhs8jp4h3mj3f0881p")
+ ("fixedHeader.jqueryui.js"
+ "1lc0g2cag1sj3bqmh7rh5z00pmfv1srxfhwi32y4mgpzhrzpfzxn")
+ ("fixedHeader.semanticui.js"
+ "1v0i6dc68h8l8673fb5970igzkl7as36riv504iyg82glfi7n877"))))
+ ((name . "KeyTable")
+ (version . "2.7.0")
+ (files . (("dataTables.keyTable.js"
+ "0fhpzwdcjcigal2bbh1slq23lvp2xi16f3ninmigczk7p719jfxm")
+ ("keyTable.bootstrap.js"
+ "0hnhk6am4yl6h6bb7as935k8h2syil9hf8g7nn409yd3ws736xpj")
+ ("keyTable.bootstrap4.js"
+ "0r85mp5yf9hgl5ayzzs46dfbxa231bjlvgb8lqpyzik1m6afa51i")
+ ("keyTable.bootstrap5.js"
+ "0k24shf3v8frjp5m055g4fcdp48m8ird6c51p514m0ky97cdfhrp")
+ ("keyTable.bulma.js"
+ "1fgb5v85b6fblm4dh68y5z2hpwy46b15a2x483aszac5177xw9h1")
+ ("keyTable.foundation.js"
+ "11fr14p33lyvs0wfcx228m600i4qcaqb44q3hk723jxcz59k17dw")
+ ("keyTable.jqueryui.js"
+ "0572rxrvwyprdr8l5jkgacj2bkmhmgxjy5vybm65n54g9j19l6bc")
+ ("keyTable.semanticui.js"
+ "157mqn9mhmmf7vas2das4hbpwipk3wshs8n0808q04rbijr0g2bz"))))
+ ((name . "Responsive")
+ (version . "2.3.0")
+ (files . (("dataTables.responsive.js"
+ "1pfc8bkg33jmzbjmdbvlvf4qi6jp42f5c9vzg59p017cwlcdai8q")
+ ("responsive.bootstrap.js"
+ "1xxlh01vmzmfwwlsa611pl2nrl2sx58rp8xmx301bfsylmp2v5b2")
+ ("responsive.bootstrap4.js"
+ "1zjh15p7n1038sggaxv1xvcwbkhw2nk1ndx745s6cxiqb69y3i0h")
+ ("responsive.bootstrap5.js"
+ "0c1dwa0hq5dcb2g4h7s5fidzfm5f87gwx79zw63jxw0p6x3qs2qn")
+ ("responsive.bulma.js"
+ "09gy9v9506am6w3xlkcx12b2sqp3gg09vrs3ns515f1512bnfsrm")
+ ("responsive.foundation.js"
+ "1qgyqw3r8a60rm9csiq5ym9bfazzyybrk8ana3mk8pxjs2cnryq7")
+ ("responsive.jqueryui.js"
+ "10nykak2kf4sai64girh26xdmdil29jvw3zja2rpp2qzjg4172z9")
+ ("responsive.semanticui.js"
+ "191d69i7pzh63fjkfwz8xkxh1rlbxk43xywkad7129c6hqsw4gml"))))
+ ((name . "RowGroup")
+ (version . "1.2.0")
+ (files . (("dataTables.rowGroup.js"
+ "0vl3962x0syhxnxnc5cb6dx3711m3gfsfj1i715b2rc4pyxwbzi2")
+ ("rowGroup.bootstrap.js"
+ "1xfdhqgznz9x1v8spvql6b0wbna13h8cbzvkjza14nqsmccxck66")
+ ("rowGroup.bootstrap4.js"
+ "1xm53sda4fabwdaglngrj09bpiygkn9mm17grxbykn1jazqqdp62")
+ ("rowGroup.bootstrap5.js"
+ "1z5ii27dhi5qznp279p458zcx4q322dkwswmk45wh1sx5ws9kxcp")
+ ("rowGroup.bulma.js"
+ "0bwa2bw7wasbvc35c1m78i7vb2yf4dwr7wp1qclw3lv8sx137i4d")
+ ("rowGroup.foundation.js"
+ "0832i10vils1wv1sm10qvsnd4i2k2xkhskz6i9y2q0axkmk73hcd")
+ ("rowGroup.jqueryui.js"
+ "0n53cd294s9mjblkykkqvd9n414bsc26wpcg5spxdscjl6hxh79p")
+ ("rowGroup.semanticui.js"
+ "010wls5nf387p21fdc2k952bxq89r5kxkv7j4wbvwf8k2a18cmc9"))))
+ ((name . "RowReorder")
+ (version . "1.2.8")
+ (files . (("dataTables.rowReorder.js"
+ "1hjh4c5dp82sxyhd38k363dmsdhpq02fmbz3wah0ggns1i4hhpq4")
+ ("rowReorder.bootstrap.js"
+ "185if2pxgc940rm49hdgln57pc5h9cszlii3bfpdf3pdc1fjhckm")
+ ("rowReorder.bootstrap4.js"
+ "14129x4md57i4ff7j18m49jn5fw8r716np84cdrcawlydgjsxp4a")
+ ("rowReorder.bootstrap5.js"
+ "1shq721y56ms72zsn00glpfm44hl120zh6nslj20w3d5maly6xp8")
+ ("rowReorder.bulma.js"
+ "16rpjsbiwv4vdrmigkcnj9cyxgm2cscnvn0ac079s3qh1gi7ysv0")
+ ("rowReorder.foundation.js"
+ "0zg94jckymxzda2xjyj9p38y5v61cji55kak1ylq72l6a9sw8sg6")
+ ("rowReorder.jqueryui.js"
+ "08gm419xcixgqw0i5yv2mxyyvafhzviibifp6nv129vdxx0a5d8v")
+ ("rowReorder.semanticui.js"
+ "1zjrx2rlgw3qannsqa88pcp3i4pc87pwv7rmgfw1dar8namkr9kk"))))
+ ((name . "Scroller")
+ (version . "2.0.7")
+ (files . (("dataTables.scroller.js"
+ "0vk7kxv78nmmr5y9rqshh4rglj9wd1fhlq1jzyxz5mpdc4scn82w")
+ ("scroller.bootstrap.js"
+ "19dl40dl8ir21xvs1j7xhm2a4py1m21xbypwn499fg2awj8vaidi")
+ ("scroller.bootstrap4.js"
+ "0pbkgncijlafwdmyh4l65dabd18hzjh8r01cad3b9iy8cfif6iwd")
+ ("scroller.bootstrap5.js"
+ "0h257c782ypbncsavrlzrhzc2dpmilkgrpcfmzlyxs964c0lb03d")
+ ("scroller.bulma.js"
+ "0yn1c4aj64h3h93g8x4q76zf9l8h9r3i5x6havvqx1h5q3xzrz6a")
+ ("scroller.foundation.js"
+ "04bk6ink8wqay7655v93jvv86m3bn6asrsfb22i99rgxdvm8gn1z")
+ ("scroller.jqueryui.js"
+ "1md5mpx5in7wzsr38yn801cmv3phm0i0ikdnpd0b1nsna5ccpj14")
+ ("scroller.semanticui.js"
+ "1dfbblbzbryjgiv31qfdjnijz19lmyijg12win3y8gsgfd4fp9zz"))))
+ ((name . "SearchBuilder")
+ (version . "1.3.4")
+ (files . (("dataTables.searchBuilder.js"
+ "02l908xd2r6vnjygwvnbyhv0qckg4nyq00zwcmpz5a2aiqz68vwn")
+ ("searchBuilder.bootstrap.js"
+ "00a5sb9n180nmpghnks0xiwhpaq8nqf7gsh112vqm4m63b3nfiq7")
+ ("searchBuilder.bootstrap4.js"
+ "1rf58fdfjdwr86ywfapaixclcixhwd46nw0q6zprwrms1h90wbqq")
+ ("searchBuilder.bootstrap5.js"
+ "0wizg55hxf79kapcsrjmzkr2v619bqva64s6l9f8crdzknvfxw06")
+ ("searchBuilder.bulma.js"
+ "0sc72fkffggxrms08ffc512r2cj3k2rs0rn75r472b0mkrz7fiaa")
+ ("searchBuilder.foundation.js"
+ "0xirkl92gws8yirip39q9vsnaghxh4c86ny9n3a08mswrr5zkl4f")
+ ("searchBuilder.jqueryui.js"
+ "1h91w1nk5r8a8xhk891p2ljif8bxigl9x0cm0hzkxihiv9bkskyx")
+ ("searchBuilder.semanticui.js"
+ "15icf6dicb6v1sw58llrd74nsjqkghnjfn50ylyvw3rcbw6a9drl"))))
+ ((name . "SearchPanes")
+ (version . "2.0.2")
+ (files . (("dataTables.searchPanes.js"
+ "1baxayq9gjkyvyv463cj2ckzplgh88800kvgkr7ji5nmbvd4qhss")
+ ("searchPanes.bootstrap.js"
+ "0p3x6345aqhr4aw447pc9dxc0kb9pz31vvf1ikcv8li5bdcgdk4q")
+ ("searchPanes.bootstrap4.js"
+ "1l21c1jnsmakbi6z1kq4cy3ydirm8l25qwhzl5hwvw4kjpc0mi8n")
+ ("searchPanes.bootstrap5.js"
+ "1sgw7hxhwnm59l8c0bkk4l9vp3blf8mq4wn4zfrv4cvxlawncdr8")
+ ("searchPanes.bulma.js"
+ "0yrabx503jcrzmh97xzpbbs59ba714a17sm9n1ls1yc8pmk3327x")
+ ("searchPanes.foundation.js"
+ "1f4pzr4h1hjcvnb3s7sdpdps7b29sgp3l7hbclv39dx8lmwv5fx4")
+ ("searchPanes.jqueryui.js"
+ "1s1xfqdnzj16ad5z1nxpziabf4vfxzc7a7jrfh10mfhnzklzf8sa")
+ ("searchPanes.semanticui.js"
+ "1qydrghn8033zmaww9zm3fi7maakgb61vvvrqynypyrc56y53w6n"))))
+ ((name . "Select")
+ (version . "1.4.0")
+ (files . (("dataTables.select.js"
+ "1rz7ljiazy3v7xkyccn33wxij1bcz3mzkn7kpha8a3d4zy1b1n2j")
+ ("select.bootstrap.js"
+ "0mm5ly3p2iprlfi8ajz548rjqx8lz1sbjj5ysgqmwqg14gw7l9k7")
+ ("select.bootstrap4.js"
+ "1hv6d9lwgflmxhy7mdfb9rvli2wa2cbkdhqjz64zkf1a1a7wlb5q")
+ ("select.bootstrap5.js"
+ "0ixzqpkrd24np1p9wkq857ddgvs00zb5jzpw6zwj7nbpws0qf9df")
+ ("select.bulma.js"
+ "14vw871rqz4wfzy8nns9nsmjyfv0g6xdcrv1x3c8i0r53qciymqz")
+ ("select.foundation.js"
+ "1zzygcbngvrqh7m22x0s23k8m5xj5fv1p466pzjs23p94qq24a2r")
+ ("select.jqueryui.js"
+ "1hv5zlmfifd27hylfqsji09y2hbp3m2hnb7j41418sjrxs63f6x6")
+ ("select.semanticui.js"
+ "0q6q3vb6pa5nmkxy7zcnjs0bkn4ldw8ykdcfrc04bf1d2hjjaw47"))))
+ ((name . "StateRestore")
+ (version . "1.1.1")
+ (files . (("dataTables.stateRestore.js"
+ "0f1df3kqgvka5kcxs8dxm33g3kgdxhphr95013rz5wmwcxfbgfwb")
+ ("stateRestore.bootstrap.js"
+ "07n6z3ffdg2hqbkjh15bgp96jv0mr8xbm0zn7ckkwkyfiw7085jf")
+ ("stateRestore.bootstrap4.js"
+ "15l9ka5vq37y7axfmm8s7kfim12mir2xiqfqqf9s031647kld0am")
+ ("stateRestore.bootstrap5.js"
+ "1sdcycdnp5m65d9glch2mqd5lbaq2gaxgyl1x91bynzpnwi2q6mc")
+ ("stateRestore.bulma.js"
+ "06ly3r8b2jwb62hj4im6kg694rp6gnjvb0fvzvivndgqk4bqz22s")
+ ("stateRestore.foundation.js"
+ "17qrf8ihw4k3as9fsxhqz7qndi4k7j3x901sn6kj5yy82cgrvafa")
+ ("stateRestore.jqueryui.js"
+ "0gcbn5n12vg2ifvqhpgb7ligjzz2qr1dp4pzn3jw8nn264warn3p")
+ ("stateRestore.semanticui.js"
+ "0d61jhj2chln9q39hdbapxbw90142gaizjwshh0svlnn2pd3m5nx"))))))
+ (javascript-sources
+ `(("https://cdn.datatables.net/1.12.1/js/jquery.dataTables.js"
+ "16wdm7gvfikwgc9zw7qdjwjc0ry55v60ldmqvza8911las26q93k"
+ "datatables")
+ ("https://cdn.datatables.net/1.12.1/js/dataTables.bootstrap.js"
+ "0r0gxzxg7hr95k3cgv0hscxh058qxddj11f9l1x3czivlx1pbcp4"
+ "datatables")
+ ("https://cdn.datatables.net/1.12.1/js/dataTables.bootstrap4.js"
+ "0p0jbg44ipp6qkpsawndzxaxk34f5dd6jn3k6g86smrn2c8vaknr"
+ "datatables")
+ ("https://cdn.datatables.net/1.12.1/js/dataTables.bootstrap5.js"
+ "1qzmaqij2hxs0gn6vjqsw5bgx109qgs7qpkp3c4p44pkkmx3g58h"
+ "datatables")
+ ("https://cdn.datatables.net/1.12.1/js/dataTables.bulma.js"
+ "1gvw4al40i134gphna2pij0hq9h9cqlj1rhmncan435hzpzrxhpb"
+ "datatables")
+ ("https://cdn.datatables.net/1.12.1/js/dataTables.foundation.js"
+ "193hy4kyiig4zz59y4m9714l7p9gk6n9p937qlfg83dr5l9x6kdp"
+ "datatables")
+ ("https://cdn.datatables.net/1.12.1/js/dataTables.jqueryui.js"
+ "1k8a31d43jiv56dvcai5xs0ja4y521xp9h25lgsa40ccsyn33k7n"
+ "datatables")
+ ("https://cdn.datatables.net/1.12.1/js/dataTables.semanticui.js"
+ "01xih6l7bn3ddmhnkvyvf79xdlgdzpasx3cx4fkkijay593gl2vb"
+ "datatables")
+ ("https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.js"
+ "01l5lw49jz2qn6k9i63dk4llar4lvvpd6xp6i45mpwfk49fbxqg2"
+ "datatables-extensions/Buttons")
+ ,@(apply append
+ (map (lambda (extension)
+ (map (lambda (file+hash)
+ (list (extension-url (assoc-ref extension 'name)
+ (assoc-ref extension 'version)
+ (car file+hash))
+ (cadr file+hash)
+ (string-append "datatables-extensions/"
+ (assoc-ref extension 'name))))
+ (assoc-ref extension 'files)))
+ extensions)))))
(package
(name "r-dt")
- (version "0.25")
+ (version "0.26")
(source (origin
(method url-fetch)
(uri (cran-uri "DT" version))
(sha256
(base32
- "0as43h4minnz5c09nvbvq8b1d9506mzkcdl98bhf87rf0q9qgz0d"))
- (modules '((guix build utils)))
+ "0303yxvzi8ln677716pv7m6fih5dclfqw9aram0lzm16w4mr64n4"))
+ (modules '((guix build utils)
+ (ice-9 match)))
(snippet
- '(for-each delete-file
- (find-files "inst/htmlwidgets/lib" "\\.min\\.js$")))))
+ `(with-directory-excursion "inst/htmlwidgets/lib"
+ (for-each (match-lambda
+ ((url hash dir)
+ (let ((file (string-append dir "/js/" (basename url ".js") ".min.js")))
+ (delete-file file))))
+ ',javascript-sources)
+ (delete-file "nouislider/jquery.nouislider.min.js")
+ (delete-file "selectize/selectize.min.js")
+ (with-directory-excursion "datatables-plugins/features/"
+ (for-each delete-file
+ '("scrollResize/source.min.js"
+ "searchHighlight/source.min.js")))))))
(properties
`((upstream-name . "DT")))
(build-system r-build-system)
@@ -3640,7 +3707,7 @@ using the multicore functionality of the parallel package.")
`(("r-knitr" ,r-knitr)
("uglifyjs" ,node-uglify-js)
("datatables-plugins"
- ,(let ((version "1.10.20"))
+ ,(let ((version "1.12.0"))
(origin
(method git-fetch)
(uri (git-reference
@@ -3649,7 +3716,7 @@ using the multicore functionality of the parallel package.")
(file-name (git-file-name "datatables-plugins" version))
(sha256
(base32
- "05zni20863ml1711lfllljdfkb3k05h0kpqhkijkbp0bp7q0ak94")))))
+ "15kiqjy0ssd2ksvrqv8jyg9gc92ga3kn542vp1mij5hnfcbj6hf8")))))
("js-nouislider"
,(let ((version "7.0.10"))
(origin
@@ -3724,13 +3791,13 @@ analysis of large sparse or dense matrices.")
(define-public r-glmnet
(package
(name "r-glmnet")
- (version "4.1-4")
+ (version "4.1-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "glmnet" version))
(sha256
- (base32 "1y80a3b5s24ywhlil3r7b3a0vs9j59d7jkxrqa8zz09x1c5ggc7n"))))
+ (base32 "0c3y9g3k0f0yclcffxzgfhfylb3py0iydhyspcjdrl44lb7cdi5y"))))
(build-system r-build-system)
(native-inputs
(list gfortran r-knitr))
@@ -3871,13 +3938,13 @@ computation, bagged clustering, naive Bayes classifier, and more.")
(define-public r-bigmemory-sri
(package
(name "r-bigmemory-sri")
- (version "0.1.3")
+ (version "0.1.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "bigmemory.sri" version))
(sha256
- (base32 "0mg14ilwdkd64q2ri9jdwnk7mp55dqim7xfifrs65sdsv1934h2m"))))
+ (base32 "03468ak0lgd9m0f7synxms2zzr8f7n2nm1gmhcraj3nfcv4nmyiv"))))
(properties
`((upstream-name . "bigmemory.sri")))
(build-system r-build-system)
@@ -3984,13 +4051,13 @@ maintenance for package developers.")
(define-public r-r-utils
(package
(name "r-r-utils")
- (version "2.12.1")
+ (version "2.12.2")
(source (origin
(method url-fetch)
(uri (cran-uri "R.utils" version))
(sha256
(base32
- "0qmd16g0wmalm9q2mwvzxcpvizc2ss94zgcxrn29d7z9pq1jkf1y"))))
+ "0dl8rc7s7vg4g2pkmrwwqx7dkm02096jk439x4s0cm21hsmg2g7y"))))
(properties `((upstream-name . "R.utils")))
(build-system r-build-system)
(propagated-inputs
@@ -4085,13 +4152,13 @@ t-probabilities, quantiles, random deviates and densities.")
(define-public r-matrixstats
(package
(name "r-matrixstats")
- (version "0.62.0")
+ (version "0.63.0")
(source (origin
(method url-fetch)
(uri (cran-uri "matrixStats" version))
(sha256
(base32
- "1jjfsi5vzx6js7phlnd3v64fd05fg0jyz8iq5pivy36jdmmh3ql5"))))
+ "0pqz6mn5l7inh464yj45i6rf8ycab0zdvvjczwsv0bkl442bc060"))))
(properties `((upstream-name . "matrixStats")))
(build-system r-build-system)
(arguments
@@ -4275,14 +4342,53 @@ features present in other programming languages.")
(define-public r-plotly
(package
(name "r-plotly")
- (version "4.10.0")
+ (version "4.10.1")
(source (origin
(method url-fetch)
(uri (cran-uri "plotly" version))
(sha256
(base32
- "16iqj7sv49mva6siibsci7iijsbnk7pqvfns9al0k35w9mjmr6dx"))))
+ "0yin1kid3a69fcwrrajwzqbhx4xc81x8p8m0yfh1fkm2rfhj22dc"))
+ (modules '((guix build utils)))
+ (snippet
+ '(with-directory-excursion "inst/htmlwidgets/lib/"
+ (for-each delete-file
+ '("plotlyjs/plotly-latest.min.js"
+ "colourpicker/colourpicker.min.js"
+ "typedarray/typedarray.min.js"
+ "selectize/selectize.min.js"))))))
(build-system r-build-system)
+ (arguments
+ (list
+ #:modules '((guix build utils)
+ (guix build r-build-system)
+ (srfi srfi-1))
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'process-javascript
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "inst/htmlwidgets/lib/"
+ (symlink (string-append (assoc-ref inputs "js-selectize")
+ "/share/javascript/selectize.min.js")
+ "selectize/selectize.min.js")
+ (call-with-values
+ (lambda ()
+ (unzip2
+ `((,(assoc-ref inputs "js-plotly")
+ "plotlyjs/plotly-latest.min.js")
+ (,(string-append (assoc-ref inputs "js-colourpicker")
+ "/js/colourpicker.js")
+ "colourpicker/colourpicker.min.js")
+ (,(string-append (assoc-ref inputs "js-typedarray")
+ "/typedarray.js")
+ "typedarray/typedarray.min.js"))))
+ (lambda (sources targets)
+ (for-each (lambda (source target)
+ (format #t "Processing ~a --> ~a~%"
+ source target)
+ (invoke "esbuild" source "--minify"
+ (string-append "--outfile=" target)))
+ sources targets)))))))))
(propagated-inputs
(list r-base64enc
r-crosstalk
@@ -4305,6 +4411,48 @@ features present in other programming languages.")
r-tidyr
r-vctrs
r-viridislite))
+ (native-inputs
+ `(("esbuild" ,esbuild)
+ ("js-colourpicker"
+ ,(let ((commit "27c2a266d51e18a9fe6d7542264152b27c7d34e0")
+ (version "1.1")
+ (revision "0"))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/daattali/jquery-colourpicker")
+ (commit commit)))
+ (file-name (git-file-name "jquery-colourpicker"
+ (git-version version revision commit)))
+ (sha256
+ (base32
+ "0lg8amh8xh6p246j38rqghrljd7v5z34i169ra6403z8ga33wiqb")))))
+ ("js-plotly"
+ ,(let ((version "2.11.1"))
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://raw.githubusercontent.com/plotly/plotly.js/v"
+ version "/dist/plotly.js"))
+ (sha256
+ (base32
+ "1mxd8s4v3i885w5i02cyzqsrvqfr9w0svdclvqxbd05dly4bdkbj")))))
+ ("js-selectize" ,js-selectize)
+ ;; This is not quite the same as the bundled minified script from 2016,
+ ;; but it seems to be the original with fixes from late 2017.
+ ("js-typedarray"
+ ,(let ((commit "9f7d4168657e2c164d647a6959f402f2c33eb5b4")
+ (version "0")
+ (revision "0"))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/inexorabletash/polyfill/")
+ (commit commit)))
+ (file-name (git-file-name "typedarray-polyfill"
+ (git-version version revision commit)))
+ (sha256
+ (base32
+ "0f9np4mmyhny03n3xpwzs07rld30lnfqsnh97x1v7xm0qy0zjanf")))))))
(home-page "https://plot.ly/r")
(synopsis "Create interactive web graphics")
(description
@@ -4500,13 +4648,13 @@ package instead.")
(define-public r-hmisc
(package
(name "r-hmisc")
- (version "4.7-1")
+ (version "4.7-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "Hmisc" version))
(sha256
- (base32 "0zrfi2mmi6wfl6440iqflzzmkina8dhxia2qsamqw6djd0d5fp9j"))))
+ (base32 "0lyacs5q6mdg9lirixl9r2dqs9ljxyn5d53mmb04ci0jam3vk0wc"))))
(properties `((upstream-name . "Hmisc")))
(build-system r-build-system)
(native-inputs
@@ -4607,14 +4755,14 @@ existing packages provide.")
(define-public r-sfsmisc
(package
(name "r-sfsmisc")
- (version "1.1-13")
+ (version "1.1-14")
(source
(origin
(method url-fetch)
(uri (cran-uri "sfsmisc" version))
(sha256
(base32
- "0622yf4fl1b1zm988dfwdrhq7pg0rllhm8wz1pqdmp72glsi05x8"))))
+ "1vxkziprndrzc5sdz36i20qdqfcyw8m87vpxm3jccf6pqbc45adw"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/sfsmisc")
(synopsis "Utilities from \"Seminar fuer Statistik\" ETH Zurich")
@@ -4626,14 +4774,14 @@ Zurich, including many that are related to graphics.")
(define-public r-gtools
(package
(name "r-gtools")
- (version "3.9.3")
+ (version "3.9.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "gtools" version))
(sha256
(base32
- "0criwc0jmbrgaslh2kdjirgdzbf0ycry8yjryi95fb9qgckm7yvs"))))
+ "04gihp78x2caahqvf0mlv1cqy1m121l6hkdvbp01r2z99wcqpksr"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/gtools")
(synopsis "Various R programming tools")
@@ -5430,14 +5578,14 @@ VGLMs can be loosely thought of as multivariate generalised linear models.")
(define-public r-pbapply
(package
(name "r-pbapply")
- (version "1.5-0")
+ (version "1.6-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "pbapply" version))
(sha256
(base32
- "0m8a0ygwl98cs0vcha5gs9f7z8whcplwxhravhs9bfp5hvigxzgg"))))
+ "0qbzqgxz3lm97y0k9v2radqblzb4r5zkfrjw5wj1a91dvxz3xhg8"))))
(build-system r-build-system)
(home-page "https://github.com/psolymos/pbapply")
(synopsis "Adding progress bar to apply functions")
@@ -5473,14 +5621,14 @@ based on an interface to Fortran implementations by M. J. D. Powell.")
(define-public r-rcppeigen
(package
(name "r-rcppeigen")
- (version "0.3.3.9.2")
+ (version "0.3.3.9.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppEigen" version))
(sha256
(base32
- "14ylrq7mmylmi513zkwyqqy43kqbz95fc6fzpagqvyx6snaffir5"))))
+ "0xhwgn77166ir7qnzl25mj0byskkqr0b36hihrpr2zaqsrzs8wsq"))))
(properties `((upstream-name . "RcppEigen")))
(build-system r-build-system)
(propagated-inputs
@@ -5600,14 +5748,14 @@ algorithms.")
(define-public r-lme4
(package
(name "r-lme4")
- (version "1.1-30")
+ (version "1.1-31")
(source
(origin
(method url-fetch)
(uri (cran-uri "lme4" version))
(sha256
(base32
- "03rhg6cnsvdk06a1yxkivfvfwlx9934nd9q6jnp0bzscnv2dzazx"))))
+ "1zgdfbzc8lv4rrsjdacagwa693ij2bmn6xkc1bnfbv1z7pix3zss"))))
(build-system r-build-system)
(propagated-inputs
(list r-boot
@@ -5928,17 +6076,17 @@ is supported.")
(define-public r-lubridate
(package
(name "r-lubridate")
- (version "1.8.0")
+ (version "1.9.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "lubridate" version))
(sha256
(base32
- "199b00cql07gf3rf4hh5ba34amnk0ai40zhx73dq1mpkn7ynxml7"))))
+ "0flh3arja7al9xznj5jvicadvq1kb2s63zyg63wlx2bii8gh8dmr"))))
(build-system r-build-system)
(propagated-inputs
- (list r-generics r-cpp11))
+ (list r-generics r-timechange))
(native-inputs
(list r-knitr))
(home-page "https://cran.r-project.org/web/packages/lubridate/")
@@ -6649,14 +6797,14 @@ or eta squared effect size.")
(define-public r-logspline
(package
(name "r-logspline")
- (version "2.1.17")
+ (version "2.1.19")
(source
(origin
(method url-fetch)
(uri (cran-uri "logspline" version))
(sha256
(base32
- "05c8l22zcvb086909h9vw7icphww703vkcxp2h881y4n1232pdq3"))))
+ "1527cnnn5qdjp8gr4yls0jp0aachjz5s2v79vs79vrfyvxp9w89p"))))
(properties `((upstream-name . "logspline")))
(build-system r-build-system)
(native-inputs (list gfortran))
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 13feedbb2e..302b351fbb 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -67,6 +67,7 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages libusb)
#:use-module (gnu packages linphone)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
@@ -79,6 +80,8 @@
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages samba)
+ #:use-module (gnu packages security-token)
#:use-module (gnu packages serialization)
#:use-module (gnu packages speech)
#:use-module (gnu packages tls)
@@ -926,3 +929,104 @@ gateway. It implements the STUN (Session Traversal Utilities for NAT) and
TURN (Traversal Using Relays around NAT) server protocols.")
(home-page "https://github.com/coturn/coturn")
(license license:bsd-3)))
+
+(define-public libosmocore
+ (package
+ (name "libosmocore")
+ (version "1.7.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitea.osmocom.org/osmocom/libosmocore.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "147ld3xwb9k6vb56hk8q8jkcb5ahxl66v87vdhazb6rxj3frsjqf"))))
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-bin-sh
+ (lambda _
+ (substitute* '("git-version-gen" "src/exec.c")
+ (("/bin/sh")
+ (which "sh"))))))))
+ (inputs (list gnutls
+ libmnl
+ libusb
+ lksctp-tools
+ pcsc-lite
+ talloc))
+ (native-inputs (list autoconf
+ automake
+ coreutils
+ doxygen
+ libtool
+ pkg-config
+ python))
+ (build-system gnu-build-system)
+ (synopsis "Libraries for sharing common code between osmocom projects")
+ (description
+ "Libosmocore includes several libraries:
+@itemize
+@item libosmocore: general-purpose functions
+@item libosmovty: interactive VTY command-line interface
+@item libosmogsm: definitions and helper code related to GSM protocols
+@item libosmoctrl: shared implementation of the Osmocom control interface
+@item libosmogb: implementation of the Gb interface with its NS/BSSGP protocols
+@item libosmocodec: implementation of GSM voice codecs
+@item libosmocoding: implementation of GSM 05.03 burst transcoding functions
+@item libosmosim: infrastructure to interface with SIM/UICC/USIM cards
+@end itemize")
+ (home-page "https://osmocom.org/projects/libosmocore/wiki/Libosmocore")
+ (license license:gpl2+)))
+
+(define-public xgoldmon
+ ;; There are no releases nor tags.
+ (let ((revision "1")
+ (commit "f2d5372acee4e492f31f6ba8b850cfb48fbbe478"))
+ (package
+ (name "xgoldmon")
+ (version (git-version "1.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/2b-as/xgoldmon")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0dvgagqsbwq1sd5qjzk0hd9rxnv2vnmhazvv5mz4pj7v467amgdz"))))
+ (arguments
+ (list #:tests? #f ;no tests
+ #:make-flags #~(list (string-append "CC="
+ #$(cc-for-target)))
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda _
+ (let ((bin (string-append #$output "/bin"))
+ (doc (string-append #$output "/share/doc")))
+ (install-file "xgoldmon" bin)
+ (install-file "README" doc)
+ (install-file
+ "screenshot-mtsms-while-in-a-call.png" doc)))))))
+ (inputs (list libosmocore lksctp-tools talloc))
+ (native-inputs (list pkg-config))
+ (build-system gnu-build-system)
+ (synopsis "Displays cellular network protocol traces in Wireshark")
+ (description
+ "xgoldmon is an utility that converts the USB logging mode
+messages that various Intel/Infineon XGold modems send to the USB port to
+gsmtap. It then then sends them to a given IP address to enable users
+to view cellular network protocol traces in Wireshark.
+
+It supports the following smartphones:
+@itemize
+@item Samsung Galaxy S4, GT-I9500 variant
+@item Samsung Galaxy SIII, GT-I9300 variant
+@item Samsung Galaxy Nexus, GT-I9250 variant
+@item Samsung Galaxy SII, GT-I9100 variant
+@item Samsung Galaxy Note II, GT-N7100 variant
+@end itemize")
+ (home-page "https://github.com/2b-as/xgoldmon")
+ (license license:gpl2+))))
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index 25498ae36e..5ecbb1e4cd 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2012, 2013, 2015, 2016, 2017, 2019, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2019, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -102,14 +102,14 @@ is on expressing the content semantically, avoiding physical markup commands.")
(define-public texinfo-7
(package
(inherit texinfo)
- (version "7.0")
+ (version "7.0.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/texinfo/texinfo-"
version ".tar.xz"))
(sha256
(base32
- "1q73zd0bm7zjamc5ssf329v7fndd8dqv0d7fii6s1rqwaf14nx10"))))))
+ "1cn6na6vgz6nhda0f5naiysx5sqhw3azi81qk6hah1yqnbyj3lmw"))))))
(define-public texinfo-5
(package (inherit texinfo)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 4d472575fa..a95cf37011 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -310,7 +310,7 @@ bindings and many of the powerful features of GNU Emacs.")
(define-public jucipp
(package
(name "jucipp")
- (version "1.7.1")
+ (version "1.7.2")
(home-page "https://gitlab.com/cppit/jucipp")
(source (origin
(method git-fetch)
@@ -322,7 +322,7 @@ bindings and many of the powerful features of GNU Emacs.")
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32 "0xyf1fa7jvxzvg1dxh5vc50fbwjjsar4fmlvbfhicdd1f8bhz1ii"))
+ (base32 "034il3z38a7qvp95f52n9rxbqmh8fxsy416rjak3zzagvfkvzyii"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -346,7 +346,7 @@ bindings and many of the powerful features of GNU Emacs.")
;; Disable the CMake build test, as it does not test
;; functionality of the package, and requires doing
;; an "in-source" build.
- (("add_test\\(cmake_build_test.*\\)")
+ (("add_test\\(cmake_(build|file_api)_test.*\\)")
"")
;; Disable the git test, as it requires the full checkout.
(("add_test\\(git_test.*\\)")
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 70a9cd4033..6e0a1e313c 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -5120,7 +5120,7 @@ transcode or reformat the videos in any way, producing perfect backups.")
(define-public svt-av1
(package
(name "svt-av1")
- (version "0.9.1")
+ (version "1.3.0")
(source
(origin
(method git-fetch)
@@ -5129,10 +5129,8 @@ transcode or reformat the videos in any way, producing perfect backups.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "02fchq2vlxcxzbrss72xl9vrxzysdy39d5i159bmg3qa45ngd2iw"))))
+ (base32 "0blnla32yz665bx0xyx8lrjs2wqd2xhpbqwwpz72mq7zf341j8vv"))))
(build-system cmake-build-system)
- ;; SVT-AV1 only supports 64-bit Intel-compatible CPUs.
- (supported-systems '("x86_64-linux"))
(arguments
;; The test suite tries to download test data and git clone a 3rd-party
;; fork of libaom. Skip it.
@@ -5150,7 +5148,8 @@ transcode or reformat the videos in any way, producing perfect backups.")
(synopsis "AV1 video codec")
(description "SVT-AV1 is an AV1 codec implementation. The encoder is a
work-in-progress, aiming to support video-on-demand and live streaming
-applications. It only supports Intel-compatible CPUs (x86).")
+applications with high performance requirements. It mainly targets
+Intel-compatible CPUs (x86), but has limited support for other architectures.")
(home-page "https://gitlab.com/AOMediaCodec/SVT-AV1")
(license license:bsd-2)))
@@ -5606,3 +5605,27 @@ VCS, by default, makes screenshots the same size as the video, see the manual
for details on how to change this.")
(home-page "http://p.outlyer.net/vcs/")
(license license:lgpl2.1+)))
+
+(define-public svtplay-dl
+ (package
+ (name "svtplay-dl")
+ (version "4.14")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/spaam/svtplay-dl")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wdrdszalvhv80m5jizbvjz4jc08acmbpxcsslyfb5cwh842in8m"))))
+ (build-system python-build-system)
+ (inputs (list ffmpeg python-pyaml python-requests python-pysocks
+ python-cryptography))
+ (home-page "https://svtplay-dl.se/")
+ (synopsis "Download or stream SVT Play's (and others) TV programmes")
+ (description
+ "@code{svtplay-dl} allows downloading TV programmes from various Swedish
+broadcasters including SVT Play, Sveriges Radio, TV4 Play, along with many
+others.")
+ (license license:expat)))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 61e1d1f1bc..a313b0c7a4 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4896,6 +4896,69 @@ little effort, and the program to do so is often shorter and simpler than
you'd expect.")
(license (list license:expat license:cc-by3.0))))
+(define-public go-github-com-itchyny-timefmt-go
+ (package
+ (name "go-github-com-itchyny-timefmt-go")
+ (version "0.1.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/itchyny/timefmt-go")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0z5z8hy5lbjqdxp544mf238i77n7pf7bv3psgr5gffh0630dsyag"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/itchyny/timefmt-go"))
+ (home-page "https://github.com/itchyny/timefmt-go")
+ (synopsis "Efficient time formatting library (strftime, strptime) for Golang")
+ (description
+ "@code{timefmt-go} is a Go language package for formatting and parsing date
+time strings.")
+ (license license:expat)))
+
+(define-public go-github-com-itchyny-gojq
+ (package
+ (name "go-github-com-itchyny-gojq")
+ (version "0.12.9")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/itchyny/gojq")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1m4zchhhi2428r1v0qz08drac4s63mag1pwcqzsf6n495yc3g0h0"))))
+ (build-system go-build-system)
+ (inputs
+ (list go-github-com-google-go-cmp-cmp
+ go-github-com-itchyny-timefmt-go
+ go-github-com-mattn-go-isatty
+ go-github-com-mattn-go-runewidth
+ go-gopkg-in-yaml-v3))
+ (arguments
+ (list
+ #:import-path "github.com/itchyny/gojq/cmd/gojq"
+ #:unpack-path "github.com/itchyny/gojq"))
+ (home-page "https://github.com/itchyny/gojq")
+ (synopsis "Pure Go implementation of jq")
+ (description
+ "@command{gojq} is an Go implementation and library of the jq JSON
+processor.")
+ (license license:expat)))
+
+(define-public gojq
+ (package
+ (inherit go-github-com-itchyny-gojq)
+ (name "gojq")
+ (arguments
+ (ensure-keyword-arguments
+ (package-arguments go-github-com-itchyny-gojq)
+ (list #:install-source? #f)))))
+
(define-public pup
(let ((revision "1")
(commit "681d7bb639334bf485476f5872c5bdab10931f9a"))
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index cf0dc63a38..04a44b4c15 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1725,7 +1725,7 @@ display a clock or apply image manipulation techniques to the background image."
(define-public waybar
(package
(name "waybar")
- (version "0.9.15")
+ (version "0.9.16")
(source
(origin
(method git-fetch)
@@ -1734,7 +1734,7 @@ display a clock or apply image manipulation techniques to the background image."
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0mvwsd3krrlniga0fq13b0qvsf1fj22mk9nzsfgz49r55lqw8sdv"))))
+ (base32 "06vwsax8z6vvvav4c1d40nfiljc7h1cla57r43nv8dw86n539ic5"))))
(build-system meson-build-system)
(inputs (list date
fmt
@@ -2987,3 +2987,81 @@ file.")))
(synopsis "Primitive drawing library for Wayland")
(description "wld is a drawing library that targets Wayland.")
(license license:expat))))
+
+(define-public swc
+ (let ((commit "a7b615567f83d9e48d585251015048c441ca0239")
+ (revision "1"))
+ (package
+ (name "swc")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/michaelforney/swc")
+ (commit commit)))
+ (sha256
+ (base32
+ "19rpbwpi81pm92fkhsmbx7pzagpah5m9ih5h5k3m8dy6r8ihdh35"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no tests
+ #:make-flags (list (string-append "CC="
+ ,(cc-for-target))
+ (string-append "PREFIX=" %output))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs (list libdrm
+ libinput
+ libxcb
+ libxkbcommon
+ wayland
+ wayland-protocols
+ wld
+ xcb-util-wm))
+ (native-inputs (list pkg-config))
+ (home-page "https://github.com/michaelforney/swc")
+ (synopsis "Library for making a simple Wayland compositor")
+ (description
+ "swc is a small Wayland compositor implemented as a library.
+
+It has been designed primarily with tiling window managers in mind. Additionally,
+notable features include:
+@itemize
+@item Easy to follow code base
+@item XWayland support
+@item Can place borders around windows
+@end itemize")
+ (license license:expat))))
+
+(define-public velox
+ (let ((commit "fcc041265539befd907a64ee3a536cb2489ffb99")
+ (revision "1"))
+ (package
+ (name "velox")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/michaelforney/velox")
+ (commit commit)))
+ (sha256
+ (base32
+ "0d11bmag5zwmas3rf1b7x5hjla7wpxq70nr86dz3x9r7cal04mym"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no tests
+ #:make-flags (list (string-append "CC="
+ ,(cc-for-target))
+ (string-append "PREFIX=" %output))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs (list libinput libxkbcommon wayland wld))
+ (propagated-inputs (list swc))
+ (native-inputs (list pkg-config))
+ (home-page "https://github.com/michaelforney/velox")
+ (synopsis "Simple window manager based on swc")
+ (description "velox is a simple window manager for Wayland based on swc.
+It is inspired by dwm and xmonad.")
+ (license license:expat))))
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index 4d2fd73cee..2d34b49d93 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,6 +36,7 @@
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages check)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages freedesktop)
@@ -45,18 +47,19 @@
#:use-module (gnu packages image)
#:use-module (gnu packages photo)
#:use-module (gnu packages video)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sdl)
#:use-module (gnu packages webkit)
- #:use-module (gnu packages xorg)
- #:use-module ((srfi srfi-1) #:select (alist-delete)))
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg))
(define-public wxwidgets
(package
(name "wxwidgets")
- (version "3.0.5.1")
+ (version "3.2.1")
(source
(origin
(method url-fetch)
@@ -64,25 +67,129 @@
"releases/download/v" version
"/wxWidgets-" version ".tar.bz2"))
(sha256
- (base32 "01y89999jw5q7njrhxajincx7lydls6yq37ikazjryssrxrnw3s4"))))
+ (base32 "0rpsyph7l7kmpld376y0940la3c94y5vdpxmbkj8isqknimrfaf2"))
+ (modules '((guix build utils)
+ (ice-9 ftw)
+ (srfi srfi-26)))
+ (snippet
+ '(begin
+ ;; wxWidgets bundles third-party code in the "3rdparty" directory as
+ ;; well as the "src" directory. Remove external components that are
+ ;; not required.
+ (let ((preserved-3rdparty '("nanosvg"))
+ ;; The src directory contains a mixture of third party libraries
+ ;; and similarly-named integration code. Cautiously use a
+ ;; blacklist approach here.
+ (bundled-src '("expat" "jpeg" "png" "tiff" "zlib")))
+ (with-directory-excursion "3rdparty"
+ (for-each delete-file-recursively
+ (scandir "." (negate (cut member <>
+ (append '("." "..")
+ preserved-3rdparty))))))
+ (with-directory-excursion "src"
+ (for-each delete-file-recursively bundled-src)))))))
(build-system glib-or-gtk-build-system)
(inputs
- `(("glu" ,glu)
- ;; XXX gstreamer-0.10 builds fail
- ;; ("gstreamer" ,gstreamer-0.10)
- ("gtk" ,gtk+)
- ("libjpeg" ,libjpeg-turbo)
- ("libmspack" ,libmspack)
- ("libsm" ,libsm)
- ("libtiff" ,libtiff)
- ("mesa" ,mesa)
- ("webkitgtk" ,webkitgtk)
- ("sdl" ,sdl)
- ("shared-mime-info" ,shared-mime-info)
- ("xdg-utils" ,xdg-utils)))
+ (list catch-framework
+ curl
+ expat
+ glu
+ gstreamer
+ gst-plugins-base
+ gtk+
+ libjpeg-turbo
+ libmspack
+ libnotify
+ libpng
+ libsecret
+ libsm
+ libtiff
+ mesa
+ pcre2
+ sdl2
+ shared-mime-info
+ webkitgtk-with-libsoup2
+ xdg-utils
+ zlib))
(native-inputs
(list pkg-config))
(arguments
+ (list
+ #:configure-flags #~'("--with-libmspack"
+ "--with-regex"
+ "--with-sdl"
+ "--enable-gui"
+ "--enable-mediactrl"
+ "--enable-webview"
+ "--enable-webviewwebkit")
+ #:make-flags
+ #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
+ #:tests? #f ;TODO
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'use-newer-webkit
+ (lambda _
+ ;; XXX: The configure script tests only for an ancient
+ ;; WebKitGTK version.
+ (substitute* "configure"
+ (("webkit2gtk-4\\.0")
+ "webkit2gtk-4.1"))))
+ (add-after 'unpack 'refer-to-inputs
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((catch (search-input-file inputs "include/catch.hpp"))
+ (mime (search-input-directory inputs "share/mime"))
+ (xdg-open (search-input-file inputs "bin/xdg-open")))
+ (install-file catch "3rdparty/catch/include/")
+ (substitute* "src/unix/utilsx11.cpp"
+ (("wxExecute\\(xdg_open \\+")
+ (string-append "wxExecute(\"" xdg-open "\"")))
+ (substitute* "src/unix/mimetype.cpp"
+ (("/usr(/local)?/share/mime")
+ mime)))))
+ (replace 'configure
+ (lambda* (#:key native-inputs inputs configure-flags
+ #:allow-other-keys)
+ (let ((sh (search-input-file (or native-inputs inputs)
+ "bin/sh")))
+ ;; The configure script does not understand some of the default
+ ;; options of gnu-build-system, so run it "by hand".
+ (apply invoke "./configure"
+ (string-append "SHELL=" sh)
+ (string-append "CONFIG_SHELL=" sh)
+ (string-append "--prefix=" #$output)
+ configure-flags)))))))
+ (home-page "https://www.wxwidgets.org/")
+ (synopsis "Widget toolkit for creating graphical user interfaces")
+ (description
+ "wxWidgets is a C++ library that lets developers create applications with
+a graphical user interface. It has language bindings for Python, Perl, Ruby
+and many other languages.")
+ (license (list l:lgpl2.0+ (l:fsf-free "file://doc/license.txt")))))
+
+(define-public wxwidgets-gtk2
+ (package/inherit wxwidgets
+ (name "wxwidgets-gtk2")
+ (inputs (modify-inputs (package-inputs wxwidgets)
+ (delete "gtk+")
+ (prepend gtk+-2)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments wxwidgets)
+ ((#:configure-flags flags #~'())
+ #~(append #$flags '("--with-gtk=2")))))))
+
+(define-public wxwidgets-3.0
+ (package
+ (inherit wxwidgets)
+ (version "3.0.5.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/wxWidgets/wxWidgets/"
+ "releases/download/v" version
+ "/wxWidgets-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "01y89999jw5q7njrhxajincx7lydls6yq37ikazjryssrxrnw3s4"))))
+ (arguments
`(#:configure-flags
'("--with-regex" "--with-libmspack"
"--with-sdl"
@@ -102,20 +209,24 @@
(modify-phases %standard-phases
(add-after 'unpack 'refer-to-inputs
(lambda* (#:key inputs #:allow-other-keys)
- (let* ((mime (search-input-directory inputs "/share/mime")))
+ (let ((mime (search-input-directory inputs "share/mime"))
+ (xdg-open (search-input-file inputs "bin/xdg-open")))
(substitute* "src/unix/utilsx11.cpp"
(("wxExecute\\(xdg_open \\+")
- (string-append "wxExecute(\"" (which "xdg-open") "\"")))
+ (string-append "wxExecute(\"" xdg-open "\"")))
(substitute* "src/unix/mimetype.cpp"
- (("/usr(/local)?/share/mime") mime))
- #t))))))
- (home-page "https://www.wxwidgets.org/")
- (synopsis "Widget toolkit for creating graphical user interfaces")
- (description
- "wxWidgets is a C++ library that lets developers create applications with
-a graphical user interface. It has language bindings for Python, Perl, Ruby
-and many other languages.")
- (license (list l:lgpl2.0+ (l:fsf-free "file://doc/license.txt")))))
+ (("/usr(/local)?/share/mime") mime))))))))))
+
+(define-public wxwidgets-gtk2-3.0
+ (package/inherit wxwidgets-3.0
+ (name "wxwidgets-gtk2")
+ (inputs (modify-inputs (package-inputs wxwidgets-3.0)
+ (delete "gtk+")
+ (prepend gtk+-2)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments wxwidgets-3.0)
+ ((#:configure-flags flags #~'())
+ #~(append #$flags '("--with-gtk=2")))))))
(define-public wxwidgets-2
(package
@@ -152,74 +263,17 @@ and many other languages.")
(("-Wall") "-Wall -Wno-narrowing"))
#t)))))))
-(define-public wxwidgets-gtk2
- (package/inherit wxwidgets
- (inputs `(("gtk+" ,gtk+-2)
- ,@(alist-delete
- "gtk+"
- (package-inputs wxwidgets))))
- (name "wxwidgets-gtk2")))
-
-;; Development version of wxWidgets, required to build against gstreamer-1.x.
-;; This can be removed when wxWidgets is updated to the next stable version.
-(define-public wxwidgets-3.1
- (package (inherit wxwidgets)
- (version "3.1.5")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/wxWidgets/wxWidgets")
- (commit (string-append "v" version))))
- (file-name (git-file-name "wxwidgets" version))
- (sha256
- (base32
- "0j998nzqmycafignclxmahgqm5kgs1fiqbsiyvzm7bnpnafi333y"))))
- (inputs (modify-inputs (package-inputs wxwidgets)
- (prepend catch-framework gstreamer gst-plugins-base)))
- (arguments
- (substitute-keyword-arguments (package-arguments wxwidgets)
- ((#:configure-flags flags)
- '(list "--with-regex" "--with-libmspack" "--with-sdl"
- "--enable-mediactrl" "--enable-webviewwebkit"))
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'add-catch
- (lambda* (#:key inputs #:allow-other-keys)
- (install-file
- (search-input-file inputs "include/catch.hpp")
- "3rdparty/catch/include/")))
- (replace 'configure
- (lambda* (#:key configure-flags inputs native-inputs outputs
- #:allow-other-keys)
- (let ((sh (search-input-file (or native-inputs inputs)
- "bin/sh")))
- (apply invoke "./configure"
- (string-append "SHELL=" sh)
- (string-append "CONFIG_SHELL=" sh)
- (string-append "--prefix="
- (assoc-ref outputs "out"))
- configure-flags))))))))))
-
-(define-public wxwidgets-gtk2-3.1
- (package/inherit wxwidgets-3.1
- (inputs `(("gtk+" ,gtk+-2)
- ,@(alist-delete
- "gtk+"
- (package-inputs wxwidgets-3.1))))
- (name "wxwidgets-gtk2")))
-
(define-public python-wxpython
(package
(name "python-wxpython")
- (version "4.0.7.post1")
+ (version "4.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "wxPython" version))
(sha256
(base32
- "1jppcr3n428m8pgwb9q3g0iiqydxd451ncri4njk8b53xsiflhys"))
+ "1iw6xp76b3fmdqwbqmsx9i1razzpfki5z1hq6l8mszlxa32fng36"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -255,7 +309,7 @@ and many other languages.")
(native-inputs
(list pkg-config python-waf))
(propagated-inputs
- (list python-numpy python-pillow python-six))
+ (list python-attrdict python-numpy python-pillow python-six))
(home-page "https://wxpython.org/")
(synopsis "Cross platform GUI toolkit for Python")
(description "wxPython is a cross-platform GUI toolkit for the Python
@@ -278,7 +332,7 @@ provide a 100% native look and feel for the application.")
(base32 "1fdbvihw1w2vm29xj54cqgpdabhlg0ydf3clkb0qrlf7mhgkc1rz"))))
(build-system glib-or-gtk-build-system)
(inputs
- (list wxwidgets-3.1 cairo ffmpeg))
+ (list wxwidgets cairo ffmpeg))
(native-inputs
(list pkg-config))
(propagated-inputs
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index d99548573d..370696a55e 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -977,148 +977,148 @@ to use as the tty. This is primarily useful for headless systems."
((device-name _ ...)
device-name))))))))
-(define agetty-shepherd-service
- (match-lambda
- (($ <agetty-configuration> agetty tty term baud-rate auto-login
- login-program login-pause? eight-bits? no-reset? remote? flow-control?
- host no-issue? init-string no-clear? local-line extract-baud?
- skip-login? no-newline? login-options chroot hangup? keep-baud? timeout
- detect-case? wait-cr? no-hints? no-hostname? long-hostname?
- erase-characters kill-characters chdir delay nice extra-options
- shepherd-requirement)
- (list
- (shepherd-service
- (documentation "Run agetty on a tty.")
- (provision (list (symbol-append 'term- (string->symbol (or tty "console")))))
-
- ;; Since the login prompt shows the host name, wait for the 'host-name'
- ;; service to be done. Also wait for udev essentially so that the tty
- ;; text is not lost in the middle of kernel messages (see also
- ;; mingetty-shepherd-service).
- (requirement (cons* 'user-processes 'host-name 'udev
- shepherd-requirement))
-
- (modules '((ice-9 match) (gnu build linux-boot)))
- (start
- (with-imported-modules (source-module-closure
- '((gnu build linux-boot)))
- #~(lambda args
- (let ((defaulted-tty #$(or tty (default-serial-port))))
- (apply
- (if defaulted-tty
- (make-forkexec-constructor
- (list #$(file-append util-linux "/sbin/agetty")
- #$@extra-options
- #$@(if eight-bits?
- #~("--8bits")
- #~())
- #$@(if no-reset?
- #~("--noreset")
- #~())
- #$@(if remote?
- #~("--remote")
- #~())
- #$@(if flow-control?
- #~("--flow-control")
- #~())
- #$@(if host
- #~("--host" #$host)
- #~())
- #$@(if no-issue?
- #~("--noissue")
- #~())
- #$@(if init-string
- #~("--init-string" #$init-string)
- #~())
- #$@(if no-clear?
- #~("--noclear")
- #~())
+(define (agetty-shepherd-service config)
+ (match-record config <agetty-configuration>
+ (agetty tty term baud-rate auto-login
+ login-program login-pause? eight-bits? no-reset? remote? flow-control?
+ host no-issue? init-string no-clear? local-line extract-baud?
+ skip-login? no-newline? login-options chroot hangup? keep-baud? timeout
+ detect-case? wait-cr? no-hints? no-hostname? long-hostname?
+ erase-characters kill-characters chdir delay nice extra-options
+ shepherd-requirement)
+ (list
+ (shepherd-service
+ (documentation "Run agetty on a tty.")
+ (provision (list (symbol-append 'term- (string->symbol (or tty "console")))))
+
+ ;; Since the login prompt shows the host name, wait for the 'host-name'
+ ;; service to be done. Also wait for udev essentially so that the tty
+ ;; text is not lost in the middle of kernel messages (see also
+ ;; mingetty-shepherd-service).
+ (requirement (cons* 'user-processes 'host-name 'udev
+ shepherd-requirement))
+
+ (modules '((ice-9 match) (gnu build linux-boot)))
+ (start
+ (with-imported-modules (source-module-closure
+ '((gnu build linux-boot)))
+ #~(lambda args
+ (let ((defaulted-tty #$(or tty (default-serial-port))))
+ (apply
+ (if defaulted-tty
+ (make-forkexec-constructor
+ (list #$(file-append util-linux "/sbin/agetty")
+ #$@extra-options
+ #$@(if eight-bits?
+ #~("--8bits")
+ #~())
+ #$@(if no-reset?
+ #~("--noreset")
+ #~())
+ #$@(if remote?
+ #~("--remote")
+ #~())
+ #$@(if flow-control?
+ #~("--flow-control")
+ #~())
+ #$@(if host
+ #~("--host" #$host)
+ #~())
+ #$@(if no-issue?
+ #~("--noissue")
+ #~())
+ #$@(if init-string
+ #~("--init-string" #$init-string)
+ #~())
+ #$@(if no-clear?
+ #~("--noclear")
+ #~())
;;; FIXME This doesn't work as expected. According to agetty(8), if this option
;;; is not passed, then the default is 'auto'. However, in my tests, when that
;;; option is selected, agetty never presents the login prompt, and the
;;; term-ttyS0 service respawns every few seconds.
- #$@(if local-line
- #~(#$(match local-line
- ('auto "--local-line=auto")
- ('always "--local-line=always")
- ('never "-local-line=never")))
- #~())
- #$@(if tty
- #~()
- #~("--keep-baud"))
- #$@(if extract-baud?
- #~("--extract-baud")
- #~())
- #$@(if skip-login?
- #~("--skip-login")
- #~())
- #$@(if no-newline?
- #~("--nonewline")
- #~())
- #$@(if login-options
- #~("--login-options" #$login-options)
- #~())
- #$@(if chroot
- #~("--chroot" #$chroot)
- #~())
- #$@(if hangup?
- #~("--hangup")
- #~())
- #$@(if keep-baud?
- #~("--keep-baud")
- #~())
- #$@(if timeout
- #~("--timeout" #$(number->string timeout))
- #~())
- #$@(if detect-case?
- #~("--detect-case")
- #~())
- #$@(if wait-cr?
- #~("--wait-cr")
- #~())
- #$@(if no-hints?
- #~("--nohints?")
- #~())
- #$@(if no-hostname?
- #~("--nohostname")
- #~())
- #$@(if long-hostname?
- #~("--long-hostname")
- #~())
- #$@(if erase-characters
- #~("--erase-chars" #$erase-characters)
- #~())
- #$@(if kill-characters
- #~("--kill-chars" #$kill-characters)
- #~())
- #$@(if chdir
- #~("--chdir" #$chdir)
- #~())
- #$@(if delay
- #~("--delay" #$(number->string delay))
- #~())
- #$@(if nice
- #~("--nice" #$(number->string nice))
- #~())
- #$@(if auto-login
- (list "--autologin" auto-login)
- '())
- #$@(if login-program
- #~("--login-program" #$login-program)
- #~())
- #$@(if login-pause?
- #~("--login-pause")
- #~())
- defaulted-tty
- #$@(if baud-rate
- #~(#$baud-rate)
- #~())
- #$@(if term
- #~(#$term)
- #~())))
- (const #f)) ; never start.
- args)))))
- (stop #~(make-kill-destructor)))))))
+ #$@(if local-line
+ #~(#$(match local-line
+ ('auto "--local-line=auto")
+ ('always "--local-line=always")
+ ('never "-local-line=never")))
+ #~())
+ #$@(if tty
+ #~()
+ #~("--keep-baud"))
+ #$@(if extract-baud?
+ #~("--extract-baud")
+ #~())
+ #$@(if skip-login?
+ #~("--skip-login")
+ #~())
+ #$@(if no-newline?
+ #~("--nonewline")
+ #~())
+ #$@(if login-options
+ #~("--login-options" #$login-options)
+ #~())
+ #$@(if chroot
+ #~("--chroot" #$chroot)
+ #~())
+ #$@(if hangup?
+ #~("--hangup")
+ #~())
+ #$@(if keep-baud?
+ #~("--keep-baud")
+ #~())
+ #$@(if timeout
+ #~("--timeout" #$(number->string timeout))
+ #~())
+ #$@(if detect-case?
+ #~("--detect-case")
+ #~())
+ #$@(if wait-cr?
+ #~("--wait-cr")
+ #~())
+ #$@(if no-hints?
+ #~("--nohints?")
+ #~())
+ #$@(if no-hostname?
+ #~("--nohostname")
+ #~())
+ #$@(if long-hostname?
+ #~("--long-hostname")
+ #~())
+ #$@(if erase-characters
+ #~("--erase-chars" #$erase-characters)
+ #~())
+ #$@(if kill-characters
+ #~("--kill-chars" #$kill-characters)
+ #~())
+ #$@(if chdir
+ #~("--chdir" #$chdir)
+ #~())
+ #$@(if delay
+ #~("--delay" #$(number->string delay))
+ #~())
+ #$@(if nice
+ #~("--nice" #$(number->string nice))
+ #~())
+ #$@(if auto-login
+ (list "--autologin" auto-login)
+ '())
+ #$@(if login-program
+ #~("--login-program" #$login-program)
+ #~())
+ #$@(if login-pause?
+ #~("--login-pause")
+ #~())
+ defaulted-tty
+ #$@(if baud-rate
+ #~(#$baud-rate)
+ #~())
+ #$@(if term
+ #~(#$term)
+ #~())))
+ (const #f)) ; never start.
+ args)))))
+ (stop #~(make-kill-destructor))))))
(define agetty-service-type
(service-type (name 'agetty)
@@ -1148,42 +1148,42 @@ the tty to run, among other things."
(clear-on-logout? mingetty-clear-on-logout? ;Boolean
(default #t)))
-(define mingetty-shepherd-service
- (match-lambda
- (($ <mingetty-configuration> mingetty tty auto-login login-program
- login-pause? clear-on-logout?)
- (list
- (shepherd-service
- (documentation "Run mingetty on an tty.")
- (provision (list (symbol-append 'term- (string->symbol tty))))
-
- ;; Since the login prompt shows the host name, wait for the 'host-name'
- ;; service to be done. Also wait for udev essentially so that the tty
- ;; text is not lost in the middle of kernel messages (XXX).
- (requirement '(user-processes host-name udev virtual-terminal))
-
- (start #~(make-forkexec-constructor
- (list #$(file-append mingetty "/sbin/mingetty")
-
- ;; Avoiding 'vhangup' allows us to avoid 'setfont'
- ;; errors down the path where various ioctls get
- ;; EIO--see 'hung_up_tty_ioctl' in driver/tty/tty_io.c
- ;; in Linux.
- "--nohangup" #$tty
-
- #$@(if clear-on-logout?
- #~()
- #~("--noclear"))
- #$@(if auto-login
- #~("--autologin" #$auto-login)
- #~())
- #$@(if login-program
- #~("--loginprog" #$login-program)
- #~())
- #$@(if login-pause?
- #~("--loginpause")
- #~()))))
- (stop #~(make-kill-destructor)))))))
+(define (mingetty-shepherd-service config)
+ (match-record config <mingetty-configuration>
+ (mingetty tty auto-login login-program
+ login-pause? clear-on-logout?)
+ (list
+ (shepherd-service
+ (documentation "Run mingetty on an tty.")
+ (provision (list (symbol-append 'term- (string->symbol tty))))
+
+ ;; Since the login prompt shows the host name, wait for the 'host-name'
+ ;; service to be done. Also wait for udev essentially so that the tty
+ ;; text is not lost in the middle of kernel messages (XXX).
+ (requirement '(user-processes host-name udev virtual-terminal))
+
+ (start #~(make-forkexec-constructor
+ (list #$(file-append mingetty "/sbin/mingetty")
+
+ ;; Avoiding 'vhangup' allows us to avoid 'setfont'
+ ;; errors down the path where various ioctls get
+ ;; EIO--see 'hung_up_tty_ioctl' in driver/tty/tty_io.c
+ ;; in Linux.
+ "--nohangup" #$tty
+
+ #$@(if clear-on-logout?
+ #~()
+ #~("--noclear"))
+ #$@(if auto-login
+ #~("--autologin" #$auto-login)
+ #~())
+ #$@(if login-program
+ #~("--loginprog" #$login-program)
+ #~())
+ #$@(if login-pause?
+ #~("--loginpause")
+ #~()))))
+ (stop #~(make-kill-destructor))))))
(define mingetty-service-type
(service-type (name 'mingetty)
@@ -1260,46 +1260,47 @@ the tty to run, among other things."
(define (nscd.conf-file config)
"Return the @file{nscd.conf} configuration file for @var{config}, an
@code{<nscd-configuration>} object."
- (define cache->config
- (match-lambda
- (($ <nscd-cache> (= symbol->string database)
- positive-ttl negative-ttl size check-files?
- persistent? shared? max-size propagate?)
- (string-append "\nenable-cache\t" database "\tyes\n"
-
- "positive-time-to-live\t" database "\t"
- (number->string positive-ttl) "\n"
- "negative-time-to-live\t" database "\t"
- (number->string negative-ttl) "\n"
- "suggested-size\t" database "\t"
- (number->string size) "\n"
- "check-files\t" database "\t"
- (if check-files? "yes\n" "no\n")
- "persistent\t" database "\t"
- (if persistent? "yes\n" "no\n")
- "shared\t" database "\t"
- (if shared? "yes\n" "no\n")
- "max-db-size\t" database "\t"
- (number->string max-size) "\n"
- "auto-propagate\t" database "\t"
- (if propagate? "yes\n" "no\n")))))
-
- (match config
- (($ <nscd-configuration> log-file debug-level caches)
- (plain-file "nscd.conf"
- (string-append "\
+ (define (cache->config cache)
+ (match-record cache <nscd-cache>
+ (database positive-time-to-live negative-time-to-live
+ suggested-size check-files?
+ persistent? shared? max-database-size auto-propagate?)
+ (let ((database (symbol->string database)))
+ (string-append "\nenable-cache\t" database "\tyes\n"
+
+ "positive-time-to-live\t" database "\t"
+ (number->string positive-time-to-live) "\n"
+ "negative-time-to-live\t" database "\t"
+ (number->string negative-time-to-live) "\n"
+ "suggested-size\t" database "\t"
+ (number->string suggested-size) "\n"
+ "check-files\t" database "\t"
+ (if check-files? "yes\n" "no\n")
+ "persistent\t" database "\t"
+ (if persistent? "yes\n" "no\n")
+ "shared\t" database "\t"
+ (if shared? "yes\n" "no\n")
+ "max-db-size\t" database "\t"
+ (number->string max-database-size) "\n"
+ "auto-propagate\t" database "\t"
+ (if auto-propagate? "yes\n" "no\n")))))
+
+ (match-record config <nscd-configuration>
+ (log-file debug-level caches)
+ (plain-file "nscd.conf"
+ (string-append "\
# Configuration of libc's name service cache daemon (nscd).\n\n"
- (if log-file
- (string-append "logfile\t" log-file)
- "")
- "\n"
- (if debug-level
- (string-append "debug-level\t"
- (number->string debug-level))
- "")
- "\n"
- (string-concatenate
- (map cache->config caches)))))))
+ (if log-file
+ (string-append "logfile\t" log-file)
+ "")
+ "\n"
+ (if debug-level
+ (string-append "debug-level\t"
+ (number->string debug-level))
+ "")
+ "\n"
+ (string-concatenate
+ (map cache->config caches))))))
(define (nscd-action-procedure nscd config option)
;; XXX: This is duplicated from mcron; factorize.
@@ -1797,17 +1798,15 @@ proxy of 'guix-daemon'...~%")
(define (guix-accounts config)
"Return the user accounts and user groups for CONFIG."
- (match config
- (($ <guix-configuration> _ build-group build-accounts)
- (cons (user-group
- (name build-group)
- (system? #t)
-
- ;; Use a fixed GID so that we can create the store with the right
- ;; owner.
- (id 30000))
- (guix-build-accounts build-accounts
- #:group build-group)))))
+ (cons (user-group
+ (name (guix-configuration-build-group config))
+ (system? #t)
+
+ ;; Use a fixed GID so that we can create the store with the right
+ ;; owner.
+ (id 30000))
+ (guix-build-accounts (guix-configuration-build-accounts config)
+ #:group (guix-configuration-build-group config))))
(define (guix-activation config)
"Return the activation gexp for CONFIG."
@@ -2130,95 +2129,94 @@ item of @var{packages}."
(udev-rule "90-kvm.rules"
"KERNEL==\"kvm\", GROUP=\"kvm\", MODE=\"0660\"\n"))
-(define udev-shepherd-service
+(define (udev-shepherd-service config)
;; Return a <shepherd-service> for UDEV with RULES.
- (match-lambda
- (($ <udev-configuration> udev)
- (list
- (shepherd-service
- (provision '(udev))
-
- ;; Udev needs /dev to be a 'devtmpfs' mount so that new device nodes can
- ;; be added: see
- ;; <http://www.linuxfromscratch.org/lfs/view/development/chapter07/udev.html>.
- (requirement '(root-file-system))
-
- (documentation "Populate the /dev directory, dynamically.")
- (start
- (with-imported-modules (source-module-closure
- '((gnu build linux-boot)))
- #~(lambda ()
- (define udevd
- ;; 'udevd' from eudev.
- #$(file-append udev "/sbin/udevd"))
-
- (define (wait-for-udevd)
- ;; Wait until someone's listening on udevd's control
- ;; socket.
- (let ((sock (socket AF_UNIX SOCK_SEQPACKET 0)))
- (let try ()
- (catch 'system-error
- (lambda ()
- (connect sock PF_UNIX "/run/udev/control")
- (close-port sock))
- (lambda args
- (format #t "waiting for udevd...~%")
- (usleep 500000)
- (try))))))
-
- ;; Allow udev to find the modules.
- (setenv "LINUX_MODULE_DIRECTORY"
- "/run/booted-system/kernel/lib/modules")
-
- (let* ((kernel-release
- (utsname:release (uname)))
- (linux-module-directory
- (getenv "LINUX_MODULE_DIRECTORY"))
- (directory
- (string-append linux-module-directory "/"
- kernel-release))
- (old-umask (umask #o022)))
- ;; If we're in a container, DIRECTORY might not exist,
- ;; for instance because the host runs a different
- ;; kernel. In that case, skip it; we'll just miss a few
- ;; nodes like /dev/fuse.
- (when (file-exists? directory)
- (make-static-device-nodes directory))
- (umask old-umask))
-
- (let ((pid (fork+exec-command
- (list udevd)
- #:environment-variables
- (cons*
- ;; The first one is for udev, the second one for
- ;; eudev.
- "UDEV_CONFIG_FILE=/etc/udev/udev.conf"
- "EUDEV_RULES_DIRECTORY=/etc/udev/rules.d"
- (string-append "LINUX_MODULE_DIRECTORY="
- (getenv "LINUX_MODULE_DIRECTORY"))
- (default-environment-variables)))))
- ;; Wait until udevd is up and running. This appears to
- ;; be needed so that the events triggered below are
- ;; actually handled.
- (wait-for-udevd)
-
- ;; Trigger device node creation.
- (system* #$(file-append udev "/bin/udevadm")
- "trigger" "--action=add")
-
- ;; Wait for things to settle down.
- (system* #$(file-append udev "/bin/udevadm")
- "settle")
- pid))))
- (stop #~(make-kill-destructor))
-
- ;; When halting the system, 'udev' is actually killed by
- ;; 'user-processes', i.e., before its own 'stop' method was called.
- ;; Thus, make sure it is not respawned.
- (respawn? #f)
- ;; We need additional modules.
- (modules `((gnu build linux-boot) ;'make-static-device-nodes'
- ,@%default-modules)))))))
+ (let ((udev (udev-configuration-udev config)))
+ (list
+ (shepherd-service
+ (provision '(udev))
+
+ ;; Udev needs /dev to be a 'devtmpfs' mount so that new device nodes can
+ ;; be added: see
+ ;; <http://www.linuxfromscratch.org/lfs/view/development/chapter07/udev.html>.
+ (requirement '(root-file-system))
+
+ (documentation "Populate the /dev directory, dynamically.")
+ (start
+ (with-imported-modules (source-module-closure
+ '((gnu build linux-boot)))
+ #~(lambda ()
+ (define udevd
+ ;; 'udevd' from eudev.
+ #$(file-append udev "/sbin/udevd"))
+
+ (define (wait-for-udevd)
+ ;; Wait until someone's listening on udevd's control
+ ;; socket.
+ (let ((sock (socket AF_UNIX SOCK_SEQPACKET 0)))
+ (let try ()
+ (catch 'system-error
+ (lambda ()
+ (connect sock PF_UNIX "/run/udev/control")
+ (close-port sock))
+ (lambda args
+ (format #t "waiting for udevd...~%")
+ (usleep 500000)
+ (try))))))
+
+ ;; Allow udev to find the modules.
+ (setenv "LINUX_MODULE_DIRECTORY"
+ "/run/booted-system/kernel/lib/modules")
+
+ (let* ((kernel-release
+ (utsname:release (uname)))
+ (linux-module-directory
+ (getenv "LINUX_MODULE_DIRECTORY"))
+ (directory
+ (string-append linux-module-directory "/"
+ kernel-release))
+ (old-umask (umask #o022)))
+ ;; If we're in a container, DIRECTORY might not exist,
+ ;; for instance because the host runs a different
+ ;; kernel. In that case, skip it; we'll just miss a few
+ ;; nodes like /dev/fuse.
+ (when (file-exists? directory)
+ (make-static-device-nodes directory))
+ (umask old-umask))
+
+ (let ((pid (fork+exec-command
+ (list udevd)
+ #:environment-variables
+ (cons*
+ ;; The first one is for udev, the second one for
+ ;; eudev.
+ "UDEV_CONFIG_FILE=/etc/udev/udev.conf"
+ "EUDEV_RULES_DIRECTORY=/etc/udev/rules.d"
+ (string-append "LINUX_MODULE_DIRECTORY="
+ (getenv "LINUX_MODULE_DIRECTORY"))
+ (default-environment-variables)))))
+ ;; Wait until udevd is up and running. This appears to
+ ;; be needed so that the events triggered below are
+ ;; actually handled.
+ (wait-for-udevd)
+
+ ;; Trigger device node creation.
+ (system* #$(file-append udev "/bin/udevadm")
+ "trigger" "--action=add")
+
+ ;; Wait for things to settle down.
+ (system* #$(file-append udev "/bin/udevadm")
+ "settle")
+ pid))))
+ (stop #~(make-kill-destructor))
+
+ ;; When halting the system, 'udev' is actually killed by
+ ;; 'user-processes', i.e., before its own 'stop' method was called.
+ ;; Thus, make sure it is not respawned.
+ (respawn? #f)
+ ;; We need additional modules.
+ (modules `((gnu build linux-boot) ;'make-static-device-nodes'
+ ,@%default-modules))))))
(define udev.conf
(computed-file "udev.conf"
@@ -2226,14 +2224,15 @@ item of @var{packages}."
(lambda (port)
(format port "udev_rules=\"/etc/udev/rules.d\"~%")))))
-(define udev-etc
- (match-lambda
- (($ <udev-configuration> udev rules)
- `(("udev"
- ,(file-union
- "udev" `(("udev.conf" ,udev.conf)
- ("rules.d" ,(udev-rules-union (cons* udev kvm-udev-rule
- rules))))))))))
+(define (udev-etc config)
+ (match-record config <udev-configuration>
+ (udev rules)
+ `(("udev"
+ ,(file-union "udev"
+ `(("udev.conf" ,udev.conf)
+ ("rules.d"
+ ,(udev-rules-union (cons* udev kvm-udev-rule
+ rules)))))))))
(define udev-service-type
(service-type (name 'udev)
@@ -2243,11 +2242,11 @@ item of @var{packages}."
(service-extension etc-service-type udev-etc)))
(compose concatenate) ;concatenate the list of rules
(extend (lambda (config rules)
- (match config
- (($ <udev-configuration> udev initial-rules)
- (udev-configuration
- (udev udev)
- (rules (append initial-rules rules)))))))
+ (let ((initial-rules
+ (udev-configuration-rules config)))
+ (udev-configuration
+ (inherit config)
+ (rules (append initial-rules rules))))))
(default-value (udev-configuration))
(description
"Run @command{udev}, which populates the @file{/dev}
@@ -2385,23 +2384,23 @@ instance."
(options gpm-configuration-options ;list of strings
(default %default-gpm-options)))
-(define gpm-shepherd-service
- (match-lambda
- (($ <gpm-configuration> gpm options)
- (list (shepherd-service
- (requirement '(udev))
- (provision '(gpm))
- ;; 'gpm' runs in the background and sets a PID file.
- ;; Note that it requires running as "root".
- (start #~(make-forkexec-constructor
- (list #$(file-append gpm "/sbin/gpm")
- #$@options)
- #:pid-file "/var/run/gpm.pid"
- #:pid-file-timeout 3))
- (stop #~(lambda (_)
- ;; Return #f if successfully stopped.
- (not (zero? (system* #$(file-append gpm "/sbin/gpm")
- "-k"))))))))))
+(define (gpm-shepherd-service config)
+ (match-record config <gpm-configuration>
+ (gpm options)
+ (list (shepherd-service
+ (requirement '(udev))
+ (provision '(gpm))
+ ;; 'gpm' runs in the background and sets a PID file.
+ ;; Note that it requires running as "root".
+ (start #~(make-forkexec-constructor
+ (list #$(file-append gpm "/sbin/gpm")
+ #$@options)
+ #:pid-file "/var/run/gpm.pid"
+ #:pid-file-timeout 3))
+ (stop #~(lambda (_)
+ ;; Return #f if successfully stopped.
+ (not (zero? (system* #$(file-append gpm "/sbin/gpm")
+ "-k")))))))))
(define gpm-service-type
(service-type (name 'gpm)
@@ -2654,32 +2653,64 @@ to CONFIG."
"/servers/socket/2")
#f))))
-(define network-set-up/linux
- (match-lambda
- (($ <static-networking> addresses links routes)
- (scheme-file "set-up-network"
- (with-extensions (list guile-netlink)
- #~(begin
- (use-modules (ip addr) (ip link) (ip route))
-
- #$@(map (lambda (address)
- #~(begin
- (addr-add #$(network-address-device address)
- #$(network-address-value address)
- #:ipv6?
- #$(network-address-ipv6? address))
- ;; FIXME: loopback?
- (link-set #$(network-address-device address)
- #:multicast-on #t
- #:up #t)))
- addresses)
- #$@(map (match-lambda
- (($ <network-link> name type arguments)
- #~(link-add #$name #$type
- #:type-args '#$arguments)))
- links)
- #$@(map (lambda (route)
- #~(route-add #$(network-route-destination route)
+(define (network-set-up/linux config)
+ (match-record config <static-networking>
+ (addresses links routes)
+ (scheme-file "set-up-network"
+ (with-extensions (list guile-netlink)
+ #~(begin
+ (use-modules (ip addr) (ip link) (ip route))
+
+ #$@(map (lambda (address)
+ #~(begin
+ (addr-add #$(network-address-device address)
+ #$(network-address-value address)
+ #:ipv6?
+ #$(network-address-ipv6? address))
+ ;; FIXME: loopback?
+ (link-set #$(network-address-device address)
+ #:multicast-on #t
+ #:up #t)))
+ addresses)
+ #$@(map (match-lambda
+ (($ <network-link> name type arguments)
+ #~(link-add #$name #$type
+ #:type-args '#$arguments)))
+ links)
+ #$@(map (lambda (route)
+ #~(route-add #$(network-route-destination route)
+ #:device
+ #$(network-route-device route)
+ #:ipv6?
+ #$(network-route-ipv6? route)
+ #:via
+ #$(network-route-gateway route)
+ #:src
+ #$(network-route-source route)))
+ routes)
+ #t)))))
+
+(define (network-tear-down/linux config)
+ (match-record config <static-networking>
+ (addresses links routes)
+ (scheme-file "tear-down-network"
+ (with-extensions (list guile-netlink)
+ #~(begin
+ (use-modules (ip addr) (ip link) (ip route)
+ (netlink error)
+ (srfi srfi-34))
+
+ (define-syntax-rule (false-if-netlink-error exp)
+ (guard (c ((netlink-error? c) #f))
+ exp))
+
+ ;; Wrap calls in 'false-if-netlink-error' so this
+ ;; script goes as far as possible undoing the effects
+ ;; of "set-up-network".
+
+ #$@(map (lambda (route)
+ #~(false-if-netlink-error
+ (route-del #$(network-route-destination route)
#:device
#$(network-route-device route)
#:ipv6?
@@ -2687,80 +2718,47 @@ to CONFIG."
#:via
#$(network-route-gateway route)
#:src
- #$(network-route-source route)))
- routes)
- #t))))))
-
-(define network-tear-down/linux
- (match-lambda
- (($ <static-networking> addresses links routes)
- (scheme-file "tear-down-network"
- (with-extensions (list guile-netlink)
- #~(begin
- (use-modules (ip addr) (ip link) (ip route)
- (netlink error)
- (srfi srfi-34))
-
- (define-syntax-rule (false-if-netlink-error exp)
- (guard (c ((netlink-error? c) #f))
- exp))
-
- ;; Wrap calls in 'false-if-netlink-error' so this
- ;; script goes as far as possible undoing the effects
- ;; of "set-up-network".
-
- #$@(map (lambda (route)
- #~(false-if-netlink-error
- (route-del #$(network-route-destination route)
- #:device
- #$(network-route-device route)
- #:ipv6?
- #$(network-route-ipv6? route)
- #:via
- #$(network-route-gateway route)
- #:src
- #$(network-route-source route))))
- routes)
- #$@(map (match-lambda
- (($ <network-link> name type arguments)
- #~(false-if-netlink-error
- (link-del #$name))))
- links)
- #$@(map (lambda (address)
+ #$(network-route-source route))))
+ routes)
+ #$@(map (match-lambda
+ (($ <network-link> name type arguments)
#~(false-if-netlink-error
- (addr-del #$(network-address-device
- address)
- #$(network-address-value address)
- #:ipv6?
- #$(network-address-ipv6? address))))
- addresses)
- #f))))))
+ (link-del #$name))))
+ links)
+ #$@(map (lambda (address)
+ #~(false-if-netlink-error
+ (addr-del #$(network-address-device
+ address)
+ #$(network-address-value address)
+ #:ipv6?
+ #$(network-address-ipv6? address))))
+ addresses)
+ #f)))))
(define (static-networking-shepherd-service config)
- (match config
- (($ <static-networking> addresses links routes
- provision requirement name-servers)
- (let ((loopback? (and provision (memq 'loopback provision))))
- (shepherd-service
+ (match-record config <static-networking>
+ (addresses links routes provision requirement name-servers)
+ (let ((loopback? (and provision (memq 'loopback provision))))
+ (shepherd-service
- (documentation
- "Bring up the networking interface using a static IP address.")
- (requirement requirement)
- (provision provision)
+ (documentation
+ "Bring up the networking interface using a static IP address.")
+ (requirement requirement)
+ (provision provision)
- (start #~(lambda _
- ;; Return #t if successfully started.
- (load #$(let-system (system target)
- (if (string-contains (or target system) "-linux")
- (network-set-up/linux config)
- (network-set-up/hurd config))))))
- (stop #~(lambda _
- ;; Return #f is successfully stopped.
+ (start #~(lambda _
+ ;; Return #t if successfully started.
(load #$(let-system (system target)
(if (string-contains (or target system) "-linux")
- (network-tear-down/linux config)
- (network-tear-down/hurd config))))))
- (respawn? #f))))))
+ (network-set-up/linux config)
+ (network-set-up/hurd config))))))
+ (stop #~(lambda _
+ ;; Return #f is successfully stopped.
+ (load #$(let-system (system target)
+ (if (string-contains (or target system) "-linux")
+ (network-tear-down/linux config)
+ (network-tear-down/hurd config))))))
+ (respawn? #f)))))
(define (static-networking-shepherd-services networks)
(map static-networking-shepherd-service networks))
@@ -2873,33 +2871,33 @@ to handle."
(extra-env greetd-agreety-extra-env (default '()))
(xdg-env? greetd-agreety-xdg-env? (default #t)))
-(define greetd-agreety-tty-session-command
- (match-lambda
- (($ <greetd-agreety-session> _ command args extra-env)
- (program-file
- "agreety-tty-session-command"
- #~(begin
- (use-modules (ice-9 match))
- (for-each (match-lambda ((var . val) (setenv var val)))
- (quote (#$@extra-env)))
- (apply execl #$command #$command (list #$@args)))))))
-
-(define greetd-agreety-tty-xdg-session-command
- (match-lambda
- (($ <greetd-agreety-session> _ command args extra-env)
- (program-file
- "agreety-tty-xdg-session-command"
- #~(begin
- (use-modules (ice-9 match))
- (let*
- ((username (getenv "USER"))
- (useruid (passwd:uid (getpwuid username)))
- (useruid (number->string useruid)))
- (setenv "XDG_SESSION_TYPE" "tty")
- (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid)))
- (for-each (match-lambda ((var . val) (setenv var val)))
- (quote (#$@extra-env)))
- (apply execl #$command #$command (list #$@args)))))))
+(define (greetd-agreety-tty-session-command config)
+ (match-record config <greetd-agreety-session>
+ (command command-args extra-env)
+ (program-file
+ "agreety-tty-session-command"
+ #~(begin
+ (use-modules (ice-9 match))
+ (for-each (match-lambda ((var . val) (setenv var val)))
+ (quote (#$@extra-env)))
+ (apply execl #$command #$command (list #$@command-args))))))
+
+(define (greetd-agreety-tty-xdg-session-command config)
+ (match-record config <greetd-agreety-session>
+ (command command-args extra-env)
+ (program-file
+ "agreety-tty-xdg-session-command"
+ #~(begin
+ (use-modules (ice-9 match))
+ (let*
+ ((username (getenv "USER"))
+ (useruid (passwd:uid (getpwuid username)))
+ (useruid (number->string useruid)))
+ (setenv "XDG_SESSION_TYPE" "tty")
+ (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid)))
+ (for-each (match-lambda ((var . val) (setenv var val)))
+ (quote (#$@extra-env)))
+ (apply execl #$command #$command (list #$@command-args))))))
(define-gexp-compiler (greetd-agreety-session-compiler
(session <greetd-agreety-session>)
diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm
index 52de5ca7c0..d7c6ab9877 100644
--- a/gnu/services/cuirass.scm
+++ b/gnu/services/cuirass.scm
@@ -125,7 +125,7 @@
(let ((cuirass (cuirass-configuration-cuirass config))
(cache-directory (cuirass-configuration-cache-directory config))
(web-log-file (cuirass-configuration-web-log-file config))
- (log-file (cuirass-configuration-log-file config))
+ (main-log-file (cuirass-configuration-log-file config))
(user (cuirass-configuration-user config))
(group (cuirass-configuration-group config))
(interval (cuirass-configuration-interval config))
@@ -169,7 +169,7 @@
#:user #$user
#:group #$group
- #:log-file #$log-file))
+ #:log-file #$main-log-file))
(stop #~(make-kill-destructor)))
,(shepherd-service
(documentation "Run Cuirass web interface.")
diff --git a/gnu/services/getmail.scm b/gnu/services/getmail.scm
index fb82d054ca..19faea782f 100644
--- a/gnu/services/getmail.scm
+++ b/gnu/services/getmail.scm
@@ -215,17 +215,6 @@ lines.")
(parameter-alist '())
"Extra options to include."))
-(define (serialize-getmail-configuration-file field-name val)
- (match-record val <getmail-configuration-file>
- (retriever destination options)
- #~(string-append
- "[retriever]\n"
- #$(serialize-getmail-retriever-configuration #f retriever)
- "\n[destination]\n"
- #$(serialize-getmail-destination-configuration #f destination)
- "\n[options]\n"
- #$(serialize-getmail-options-configuration #f options))))
-
(define-configuration getmail-configuration-file
(retriever
(getmail-retriever-configuration (getmail-retriever-configuration))
@@ -237,6 +226,17 @@ lines.")
(getmail-options-configuration (getmail-options-configuration))
"Configure getmail."))
+(define (serialize-getmail-configuration-file field-name val)
+ (match-record val <getmail-configuration-file>
+ (retriever destination options)
+ #~(string-append
+ "[retriever]\n"
+ #$(serialize-getmail-retriever-configuration #f retriever)
+ "\n[destination]\n"
+ #$(serialize-getmail-destination-configuration #f destination)
+ "\n[options]\n"
+ #$(serialize-getmail-options-configuration #f options))))
+
(define (serialize-symbol field-name val) "")
(define (serialize-getmail-configuration field-name val) "")
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index de02f16a34..702404bc6c 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2021 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2022 Andrew Tropin <andrew@trop.in>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -277,8 +278,10 @@ fe80::1%lo0 apps.facebook.com\n")
(define dhcp-client-shepherd-service
(match-lambda
- (($ <dhcp-client-configuration> package interfaces)
- (let ((pid-file "/var/run/dhclient.pid"))
+ ((? dhcp-client-configuration? config)
+ (let ((package (dhcp-client-configuration-package config))
+ (interfaces (dhcp-client-configuration-interfaces config))
+ (pid-file "/var/run/dhclient.pid"))
(list (shepherd-service
(documentation "Set up networking via DHCP.")
(requirement '(user-processes udev))
@@ -359,46 +362,46 @@ Protocol (DHCP) client, on all the non-loopback network interfaces.")))
(interfaces dhcpd-configuration-interfaces
(default '())))
-(define dhcpd-shepherd-service
- (match-lambda
- (($ <dhcpd-configuration> package config-file version run-directory
- lease-file pid-file interfaces)
- (unless config-file
- (error "Must supply a config-file"))
- (list (shepherd-service
- ;; Allow users to easily run multiple versions simultaneously.
- (provision (list (string->symbol
- (string-append "dhcpv" version "-daemon"))))
- (documentation (string-append "Run the DHCPv" version " daemon"))
- (requirement '(networking))
- (start #~(make-forkexec-constructor
- '(#$(file-append package "/sbin/dhcpd")
- #$(string-append "-" version)
- "-lf" #$lease-file
- "-pf" #$pid-file
- "-cf" #$config-file
- #$@interfaces)
- #:pid-file #$pid-file))
- (stop #~(make-kill-destructor)))))))
-
-(define dhcpd-activation
- (match-lambda
- (($ <dhcpd-configuration> package config-file version run-directory
- lease-file pid-file interfaces)
- (with-imported-modules '((guix build utils))
- #~(begin
- (unless (file-exists? #$run-directory)
- (mkdir #$run-directory))
- ;; According to the DHCP manual (man dhcpd.leases), the lease
- ;; database must be present for dhcpd to start successfully.
- (unless (file-exists? #$lease-file)
- (with-output-to-file #$lease-file
- (lambda _ (display ""))))
- ;; Validate the config.
- (invoke/quiet
- #$(file-append package "/sbin/dhcpd")
- #$(string-append "-" version)
- "-t" "-cf" #$config-file))))))
+(define (dhcpd-shepherd-service config)
+ (match-record config <dhcpd-configuration>
+ (package config-file version run-directory
+ lease-file pid-file interfaces)
+ (unless config-file
+ (error "Must supply a config-file"))
+ (list (shepherd-service
+ ;; Allow users to easily run multiple versions simultaneously.
+ (provision (list (string->symbol
+ (string-append "dhcpv" version "-daemon"))))
+ (documentation (string-append "Run the DHCPv" version " daemon"))
+ (requirement '(networking))
+ (start #~(make-forkexec-constructor
+ '(#$(file-append package "/sbin/dhcpd")
+ #$(string-append "-" version)
+ "-lf" #$lease-file
+ "-pf" #$pid-file
+ "-cf" #$config-file
+ #$@interfaces)
+ #:pid-file #$pid-file))
+ (stop #~(make-kill-destructor))))))
+
+(define (dhcpd-activation config)
+ (match-record config <dhcpd-configuration>
+ (package config-file version run-directory
+ lease-file pid-file interfaces)
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (unless (file-exists? #$run-directory)
+ (mkdir #$run-directory))
+ ;; According to the DHCP manual (man dhcpd.leases), the lease
+ ;; database must be present for dhcpd to start successfully.
+ (unless (file-exists? #$lease-file)
+ (with-output-to-file #$lease-file
+ (lambda _ (display ""))))
+ ;; Validate the config.
+ (invoke/quiet
+ #$(file-append package "/sbin/dhcpd")
+ #$(string-append "-" version)
+ "-t" "-cf" #$config-file)))))
(define dhcpd-service-type
(service-type
@@ -449,16 +452,16 @@ daemon is responsible for allocating IP addresses to its client.")))
(fold loop res x)
(cons (format #f "~a" x) res)))))
- (match ntp-server
- (($ <ntp-server> type address options)
- ;; XXX: It'd be neater if fields were validated at the syntax level (for
- ;; static ones at least). Perhaps the Guix record type could support a
- ;; predicate property on a field?
- (unless (enum-set-member? type ntp-server-types)
- (error "Invalid NTP server type" type))
- (string-join (cons* (symbol->string type)
- address
- (flatten options))))))
+ (match-record ntp-server <ntp-server>
+ (type address options)
+ ;; XXX: It'd be neater if fields were validated at the syntax level (for
+ ;; static ones at least). Perhaps the Guix record type could support a
+ ;; predicate property on a field?
+ (unless (enum-set-member? type ntp-server-types)
+ (error "Invalid NTP server type" type))
+ (string-join (cons* (symbol->string type)
+ address
+ (flatten options)))))
(define %ntp-servers
;; Default set of NTP servers. These URLs are managed by the NTP Pool project.
@@ -497,17 +500,16 @@ deprecated. Please use <ntp-server> records instead.\n")
((($ <ntp-server>) ($ <ntp-server>) ...)
ntp-servers))))
-(define ntp-shepherd-service
- (lambda (config)
- (match config
- (($ <ntp-configuration> ntp servers allow-large-adjustment?)
- (let ((servers (ntp-configuration-servers config)))
- ;; TODO: Add authentication support.
- (define config
- (string-append "driftfile /var/run/ntpd/ntp.drift\n"
- (string-join (map ntp-server->string servers)
- "\n")
- "
+(define (ntp-shepherd-service config)
+ (match-record config <ntp-configuration>
+ (ntp servers allow-large-adjustment?)
+ (let ((servers (ntp-configuration-servers config)))
+ ;; TODO: Add authentication support.
+ (define config
+ (string-append "driftfile /var/run/ntpd/ntp.drift\n"
+ (string-join (map ntp-server->string servers)
+ "\n")
+ "
# Disable status queries as a workaround for CVE-2013-5211:
# <http://support.ntp.org/bin/view/Main/SecurityNotice#DRDoS_Amplification_Attack_using>.
restrict default kod nomodify notrap nopeer noquery limited
@@ -521,21 +523,21 @@ restrict -6 ::1
# option by default, as documented in the 'ntp.conf' manual.
restrict source notrap nomodify noquery\n"))
- (define ntpd.conf
- (plain-file "ntpd.conf" config))
-
- (list (shepherd-service
- (provision '(ntpd))
- (documentation "Run the Network Time Protocol (NTP) daemon.")
- (requirement '(user-processes networking))
- (start #~(make-forkexec-constructor
- (list (string-append #$ntp "/bin/ntpd") "-n"
- "-c" #$ntpd.conf "-u" "ntpd"
- #$@(if allow-large-adjustment?
- '("-g")
- '()))
- #:log-file "/var/log/ntpd.log"))
- (stop #~(make-kill-destructor)))))))))
+ (define ntpd.conf
+ (plain-file "ntpd.conf" config))
+
+ (list (shepherd-service
+ (provision '(ntpd))
+ (documentation "Run the Network Time Protocol (NTP) daemon.")
+ (requirement '(user-processes networking))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$ntp "/bin/ntpd") "-n"
+ "-c" #$ntpd.conf "-u" "ntpd"
+ #$@(if allow-large-adjustment?
+ '("-g")
+ '()))
+ #:log-file "/var/log/ntpd.log"))
+ (stop #~(make-kill-destructor)))))))
(define %ntp-accounts
(list (user-account
@@ -742,19 +744,19 @@ daemon will keep the system clock synchronized with that of the given servers.")
" ") "\n")))
entries)))
-(define inetd-shepherd-service
- (match-lambda
- (($ <inetd-configuration> program ()) '()) ; empty list of entries -> do nothing
- (($ <inetd-configuration> program entries)
- (list
- (shepherd-service
- (documentation "Run inetd.")
- (provision '(inetd))
- (requirement '(user-processes networking syslogd))
- (start #~(make-forkexec-constructor
- (list #$program #$(inetd-config-file entries))
- #:pid-file "/var/run/inetd.pid"))
- (stop #~(make-kill-destructor)))))))
+(define (inetd-shepherd-service config)
+ (let ((entries (inetd-configuration-entries config)))
+ (if (null? entries)
+ '() ;do nothing
+ (let ((program (inetd-configuration-program config)))
+ (list (shepherd-service
+ (documentation "Run inetd.")
+ (provision '(inetd))
+ (requirement '(user-processes networking syslogd))
+ (start #~(make-forkexec-constructor
+ (list #$program #$(inetd-config-file entries))
+ #:pid-file "/var/run/inetd.pid"))
+ (stop #~(make-kill-destructor))))))))
(define-public inetd-service-type
(service-type
@@ -938,97 +940,94 @@ applications in communication. It is used by Jami, for example.")))
(define (tor-configuration->torrc config)
"Return a 'torrc' file for CONFIG."
- (match config
- (($ <tor-configuration> tor config-file services
- socks-socket-type control-socket?)
- (computed-file
- "torrc"
- (with-imported-modules '((guix build utils))
- #~(begin
- (use-modules (guix build utils)
- (ice-9 match))
-
- (call-with-output-file #$output
- (lambda (port)
- (display "\
+ (match-record config <tor-configuration>
+ (tor config-file hidden-services socks-socket-type control-socket?)
+ (computed-file
+ "torrc"
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+
+ (call-with-output-file #$output
+ (lambda (port)
+ (display "\
### These lines were generated from your system configuration:
DataDirectory /var/lib/tor
Log notice syslog\n" port)
- (when (eq? 'unix '#$socks-socket-type)
- (display "\
+ (when (eq? 'unix '#$socks-socket-type)
+ (display "\
SocksPort unix:/var/run/tor/socks-sock
UnixSocksGroupWritable 1\n" port))
- (when #$control-socket?
- (display "\
+ (when #$control-socket?
+ (display "\
ControlSocket unix:/var/run/tor/control-sock GroupWritable RelaxDirModeCheck
ControlSocketsGroupWritable 1\n"
- port))
+ port))
- (for-each (match-lambda
- ((service (ports hosts) ...)
- (format port "\
+ (for-each (match-lambda
+ ((service (ports hosts) ...)
+ (format port "\
HiddenServiceDir /var/lib/tor/hidden-services/~a~%"
- service)
- (for-each (lambda (tcp-port host)
- (format port "\
+ service)
+ (for-each (lambda (tcp-port host)
+ (format port "\
HiddenServicePort ~a ~a~%"
- tcp-port host))
- ports hosts)))
- '#$(map (match-lambda
- (($ <hidden-service> name mapping)
- (cons name mapping)))
- services))
-
- (display "\
+ tcp-port host))
+ ports hosts)))
+ '#$(map (match-lambda
+ (($ <hidden-service> name mapping)
+ (cons name mapping)))
+ hidden-services))
+
+ (display "\
### End of automatically generated lines.\n\n" port)
- ;; Append the user's config file.
- (call-with-input-file #$config-file
- (lambda (input)
- (dump-port input port)))
- #t))))))))
+ ;; Append the user's config file.
+ (call-with-input-file #$config-file
+ (lambda (input)
+ (dump-port input port)))
+ #t)))))))
(define (tor-shepherd-service config)
"Return a <shepherd-service> running Tor."
- (match config
- (($ <tor-configuration> tor)
- (let* ((torrc (tor-configuration->torrc config))
- (tor (least-authority-wrapper
- (file-append tor "/bin/tor")
- #:name "tor"
- #:mappings (list (file-system-mapping
- (source "/var/lib/tor")
- (target source)
- (writable? #t))
- (file-system-mapping
- (source "/dev/log") ;for syslog
- (target source))
- (file-system-mapping
- (source "/var/run/tor")
- (target source)
- (writable? #t))
- (file-system-mapping
- (source torrc)
- (target source)))
- #:namespaces (delq 'net %namespaces))))
- (list (shepherd-service
- (provision '(tor))
-
- ;; Tor needs at least one network interface to be up, hence the
- ;; dependency on 'loopback'.
- (requirement '(user-processes loopback syslogd))
-
- ;; XXX: #:pid-file won't work because the wrapped 'tor'
- ;; program would print its PID within the user namespace
- ;; instead of its actual PID outside. There's no inetd or
- ;; systemd socket activation support either (there's
- ;; 'sd_notify' though), so we're stuck with that.
- (start #~(make-forkexec-constructor
- (list #$tor "-f" #$torrc)
- #:user "tor" #:group "tor"))
- (stop #~(make-kill-destructor))
- (actions (list (shepherd-configuration-action torrc)))
- (documentation "Run the Tor anonymous network overlay.")))))))
+ (let* ((torrc (tor-configuration->torrc config))
+ (tor (least-authority-wrapper
+ (file-append (tor-configuration-tor config) "/bin/tor")
+ #:name "tor"
+ #:mappings (list (file-system-mapping
+ (source "/var/lib/tor")
+ (target source)
+ (writable? #t))
+ (file-system-mapping
+ (source "/dev/log") ;for syslog
+ (target source))
+ (file-system-mapping
+ (source "/var/run/tor")
+ (target source)
+ (writable? #t))
+ (file-system-mapping
+ (source torrc)
+ (target source)))
+ #:namespaces (delq 'net %namespaces))))
+ (list (shepherd-service
+ (provision '(tor))
+
+ ;; Tor needs at least one network interface to be up, hence the
+ ;; dependency on 'loopback'.
+ (requirement '(user-processes loopback syslogd))
+
+ ;; XXX: #:pid-file won't work because the wrapped 'tor'
+ ;; program would print its PID within the user namespace
+ ;; instead of its actual PID outside. There's no inetd or
+ ;; systemd socket activation support either (there's
+ ;; 'sd_notify' though), so we're stuck with that.
+ (start #~(make-forkexec-constructor
+ (list #$tor "-f" #$torrc)
+ #:user "tor" #:group "tor"))
+ (stop #~(make-kill-destructor))
+ (actions (list (shepherd-configuration-action torrc)))
+ (documentation "Run the Tor anonymous network overlay.")))))
(define (tor-activation config)
"Set up directories for Tor and its hidden services, if any."
@@ -1143,19 +1142,20 @@ project's documentation} for more information."
(dns network-manager-configuration-dns
(default "default"))
(vpn-plugins network-manager-configuration-vpn-plugins ;list of file-like
- (default '())))
+ (default '()))
+ (iwd? network-manager-configuration-iwd? (default #f)))
-(define network-manager-activation
+(define (network-manager-activation config)
;; Activation gexp for NetworkManager
- (match-lambda
- (($ <network-manager-configuration> network-manager dns vpn-plugins)
- #~(begin
- (use-modules (guix build utils))
- (mkdir-p "/etc/NetworkManager/system-connections")
- #$@(if (equal? dns "dnsmasq")
- ;; create directory to store dnsmasq lease file
- '((mkdir-p "/var/lib/misc"))
- '())))))
+ (match-record config <network-manager-configuration>
+ (network-manager dns vpn-plugins)
+ #~(begin
+ (use-modules (guix build utils))
+ (mkdir-p "/etc/NetworkManager/system-connections")
+ #$@(if (equal? dns "dnsmasq")
+ ;; create directory to store dnsmasq lease file
+ '((mkdir-p "/var/lib/misc"))
+ '()))))
(define (vpn-plugin-directory plugins)
"Return a directory containing PLUGINS, the NM VPN plugins."
@@ -1188,44 +1188,47 @@ project's documentation} for more information."
(cons (user-group (name "network-manager") (system? #t))
accounts))))
-(define network-manager-environment
- (match-lambda
- (($ <network-manager-configuration> network-manager dns vpn-plugins)
- ;; Define this variable in the global environment such that
- ;; "nmcli connection import type openvpn file foo.ovpn" works.
- `(("NM_VPN_PLUGIN_DIR"
- . ,(file-append (vpn-plugin-directory vpn-plugins)
- "/lib/NetworkManager/VPN"))))))
-
-(define network-manager-shepherd-service
- (match-lambda
- (($ <network-manager-configuration> network-manager dns vpn-plugins)
- (let ((conf (plain-file "NetworkManager.conf"
- (string-append "[main]\ndns=" dns "\n")))
- (vpn (vpn-plugin-directory vpn-plugins)))
- (list (shepherd-service
- (documentation "Run the NetworkManager.")
- (provision '(networking))
- (requirement '(user-processes dbus-system wpa-supplicant loopback))
- (start #~(make-forkexec-constructor
- (list (string-append #$network-manager
- "/sbin/NetworkManager")
- (string-append "--config=" #$conf)
- "--no-daemon")
- #:environment-variables
- (list (string-append "NM_VPN_PLUGIN_DIR=" #$vpn
- "/lib/NetworkManager/VPN")
- ;; Override non-existent default users
- "NM_OPENVPN_USER="
- "NM_OPENVPN_GROUP=")))
- (stop #~(make-kill-destructor))))))))
+(define (network-manager-environment config)
+ (match-record config <network-manager-configuration>
+ (network-manager dns vpn-plugins)
+ ;; Define this variable in the global environment such that
+ ;; "nmcli connection import type openvpn file foo.ovpn" works.
+ `(("NM_VPN_PLUGIN_DIR"
+ . ,(file-append (vpn-plugin-directory vpn-plugins)
+ "/lib/NetworkManager/VPN")))))
+
+(define (network-manager-shepherd-service config)
+ (match-record config <network-manager-configuration>
+ (network-manager dns vpn-plugins iwd?)
+ (let ((conf (plain-file "NetworkManager.conf"
+ (string-append
+ "[main]\ndns=" dns "\n"
+ (if iwd? "[device]\nwifi.backend=iwd\n" ""))))
+ (vpn (vpn-plugin-directory vpn-plugins)))
+ (list (shepherd-service
+ (documentation "Run the NetworkManager.")
+ (provision '(networking))
+ (requirement (append '(user-processes dbus-system loopback)
+ (if iwd? '(iwd) '(wpa-supplicant))))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$network-manager
+ "/sbin/NetworkManager")
+ (string-append "--config=" #$conf)
+ "--no-daemon")
+ #:environment-variables
+ (list (string-append "NM_VPN_PLUGIN_DIR=" #$vpn
+ "/lib/NetworkManager/VPN")
+ ;; Override non-existent default users
+ "NM_OPENVPN_USER="
+ "NM_OPENVPN_GROUP=")))
+ (stop #~(make-kill-destructor)))))))
(define network-manager-service-type
- (let
- ((config->packages
- (match-lambda
- (($ <network-manager-configuration> network-manager _ vpn-plugins)
- `(,network-manager ,@vpn-plugins)))))
+ (let ((config->packages
+ (lambda (config)
+ (match-record config <network-manager-configuration>
+ (network-manager vpn-plugins)
+ `(,network-manager ,@vpn-plugins)))))
(service-type
(name 'network-manager)
@@ -1332,9 +1335,8 @@ a network connection manager."))))
(define modem-manager-service-type
(let ((config->package
- (match-lambda
- (($ <modem-manager-configuration> modem-manager)
- (list modem-manager)))))
+ (lambda (config)
+ (list (modem-manager-configuration-modem-manager config)))))
(service-type (name 'modem-manager)
(extensions
(list (service-extension dbus-root-service-type
@@ -1405,24 +1407,25 @@ device is detected."
usb-modeswitch package specified in CONFIG. The rules file will invoke
usb_modeswitch.sh from the usb-modeswitch package, modified to pass the right
config file."
- (match config
- (($ <usb-modeswitch-configuration> usb-modeswitch data config-file)
- (computed-file
- "usb_modeswitch.rules"
- (with-imported-modules '((guix build utils))
- #~(begin
- (use-modules (guix build utils))
- (let ((in (string-append #$data "/udev/40-usb_modeswitch.rules"))
- (out (string-append #$output "/lib/udev/rules.d"))
- (script #$(usb-modeswitch-sh usb-modeswitch config-file)))
- (mkdir-p out)
- (chdir out)
- (install-file in out)
- (substitute* "40-usb_modeswitch.rules"
- (("PROGRAM=\"usb_modeswitch")
- (string-append "PROGRAM=\"" script "/usb_modeswitch"))
- (("RUN\\+=\"usb_modeswitch")
- (string-append "RUN+=\"" script "/usb_modeswitch"))))))))))
+ (match-record config <usb-modeswitch-configuration>
+ (usb-modeswitch usb-modeswitch-data config-file)
+ (computed-file
+ "usb_modeswitch.rules"
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+ (let ((in (string-append #$usb-modeswitch-data
+ "/udev/40-usb_modeswitch.rules"))
+ (out (string-append #$output "/lib/udev/rules.d"))
+ (script #$(usb-modeswitch-sh usb-modeswitch config-file)))
+ (mkdir-p out)
+ (chdir out)
+ (install-file in out)
+ (substitute* "40-usb_modeswitch.rules"
+ (("PROGRAM=\"usb_modeswitch")
+ (string-append "PROGRAM=\"" script "/usb_modeswitch"))
+ (("RUN\\+=\"usb_modeswitch")
+ (string-append "RUN+=\"" script "/usb_modeswitch")))))))))
(define usb-modeswitch-service-type
(service-type
@@ -1466,40 +1469,39 @@ whatever the thing is supposed to do).")))
(extra-options wpa-supplicant-configuration-extra-options ;list of strings
(default '())))
-(define wpa-supplicant-shepherd-service
- (match-lambda
- (($ <wpa-supplicant-configuration> wpa-supplicant requirement pid-file dbus?
- interface config-file extra-options)
- (list (shepherd-service
- (documentation "Run the WPA supplicant daemon")
- (provision '(wpa-supplicant))
- (requirement (if dbus?
- (cons 'dbus-system requirement)
- requirement))
- (start #~(make-forkexec-constructor
- (list (string-append #$wpa-supplicant
- "/sbin/wpa_supplicant")
- (string-append "-P" #$pid-file)
- "-B" ;run in background
- "-s" ;log to syslogd
- #$@(if dbus?
- #~("-u")
- #~())
- #$@(if interface
- #~((string-append "-i" #$interface))
- #~())
- #$@(if config-file
- #~((string-append "-c" #$config-file))
- #~())
- #$@extra-options)
- #:pid-file #$pid-file))
- (stop #~(make-kill-destructor)))))))
+(define (wpa-supplicant-shepherd-service config)
+ (match-record config <wpa-supplicant-configuration>
+ (wpa-supplicant requirement pid-file dbus?
+ interface config-file extra-options)
+ (list (shepherd-service
+ (documentation "Run the WPA supplicant daemon")
+ (provision '(wpa-supplicant))
+ (requirement (if dbus?
+ (cons 'dbus-system requirement)
+ requirement))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$wpa-supplicant
+ "/sbin/wpa_supplicant")
+ (string-append "-P" #$pid-file)
+ "-B" ;run in background
+ "-s" ;log to syslogd
+ #$@(if dbus?
+ #~("-u")
+ #~())
+ #$@(if interface
+ #~((string-append "-i" #$interface))
+ #~())
+ #$@(if config-file
+ #~((string-append "-c" #$config-file))
+ #~())
+ #$@extra-options)
+ #:pid-file #$pid-file))
+ (stop #~(make-kill-destructor))))))
(define wpa-supplicant-service-type
(let ((config->package
- (match-lambda
- (($ <wpa-supplicant-configuration> wpa-supplicant)
- (list wpa-supplicant)))))
+ (lambda (config)
+ (list (wpa-supplicant-configuration-wpa-supplicant config)))))
(service-type (name 'wpa-supplicant)
(extensions
(list (service-extension shepherd-root-service-type
@@ -1621,41 +1623,38 @@ simulation."
(package openvswitch-configuration-package
(default openvswitch)))
-(define openvswitch-activation
- (match-lambda
- (($ <openvswitch-configuration> package)
- (let ((ovsdb-tool (file-append package "/bin/ovsdb-tool")))
- (with-imported-modules '((guix build utils))
- #~(begin
- (use-modules (guix build utils))
- (mkdir-p "/var/run/openvswitch")
- (mkdir-p "/var/lib/openvswitch")
- (let ((conf.db "/var/lib/openvswitch/conf.db"))
- (unless (file-exists? conf.db)
- (system* #$ovsdb-tool "create" conf.db)))))))))
-
-(define openvswitch-shepherd-service
- (match-lambda
- (($ <openvswitch-configuration> package)
- (let ((ovsdb-server (file-append package "/sbin/ovsdb-server"))
- (ovs-vswitchd (file-append package "/sbin/ovs-vswitchd")))
- (list
- (shepherd-service
- (provision '(ovsdb))
- (documentation "Run the Open vSwitch database server.")
- (start #~(make-forkexec-constructor
- (list #$ovsdb-server "--pidfile"
- "--remote=punix:/var/run/openvswitch/db.sock")
- #:pid-file "/var/run/openvswitch/ovsdb-server.pid"))
- (stop #~(make-kill-destructor)))
- (shepherd-service
- (provision '(vswitchd))
- (requirement '(ovsdb))
- (documentation "Run the Open vSwitch daemon.")
- (start #~(make-forkexec-constructor
- (list #$ovs-vswitchd "--pidfile")
- #:pid-file "/var/run/openvswitch/ovs-vswitchd.pid"))
- (stop #~(make-kill-destructor))))))))
+(define (openvswitch-activation config)
+ (let ((ovsdb-tool (file-append (openvswitch-configuration-package config)
+ "/bin/ovsdb-tool")))
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+ (mkdir-p "/var/run/openvswitch")
+ (mkdir-p "/var/lib/openvswitch")
+ (let ((conf.db "/var/lib/openvswitch/conf.db"))
+ (unless (file-exists? conf.db)
+ (system* #$ovsdb-tool "create" conf.db)))))))
+
+(define (openvswitch-shepherd-service config)
+ (let* ((package (openvswitch-configuration-package config))
+ (ovsdb-server (file-append package "/sbin/ovsdb-server"))
+ (ovs-vswitchd (file-append package "/sbin/ovs-vswitchd")))
+ (list (shepherd-service
+ (provision '(ovsdb))
+ (documentation "Run the Open vSwitch database server.")
+ (start #~(make-forkexec-constructor
+ (list #$ovsdb-server "--pidfile"
+ "--remote=punix:/var/run/openvswitch/db.sock")
+ #:pid-file "/var/run/openvswitch/ovsdb-server.pid"))
+ (stop #~(make-kill-destructor)))
+ (shepherd-service
+ (provision '(vswitchd))
+ (requirement '(ovsdb))
+ (documentation "Run the Open vSwitch daemon.")
+ (start #~(make-forkexec-constructor
+ (list #$ovs-vswitchd "--pidfile")
+ #:pid-file "/var/run/openvswitch/ovs-vswitchd.pid"))
+ (stop #~(make-kill-destructor))))))
(define openvswitch-service-type
(service-type
@@ -1695,20 +1694,20 @@ COMMIT
(ipv6-rules iptables-configuration-ipv6-rules
(default %iptables-accept-all-rules)))
-(define iptables-shepherd-service
- (match-lambda
- (($ <iptables-configuration> iptables ipv4-rules ipv6-rules)
- (let ((iptables-restore (file-append iptables "/sbin/iptables-restore"))
- (ip6tables-restore (file-append iptables "/sbin/ip6tables-restore")))
- (shepherd-service
- (documentation "Packet filtering framework")
- (provision '(iptables))
- (start #~(lambda _
- (invoke #$iptables-restore #$ipv4-rules)
- (invoke #$ip6tables-restore #$ipv6-rules)))
- (stop #~(lambda _
- (invoke #$iptables-restore #$%iptables-accept-all-rules)
- (invoke #$ip6tables-restore #$%iptables-accept-all-rules))))))))
+(define (iptables-shepherd-service config)
+ (match-record config <iptables-configuration>
+ (iptables ipv4-rules ipv6-rules)
+ (let ((iptables-restore (file-append iptables "/sbin/iptables-restore"))
+ (ip6tables-restore (file-append iptables "/sbin/ip6tables-restore")))
+ (shepherd-service
+ (documentation "Packet filtering framework")
+ (provision '(iptables))
+ (start #~(lambda _
+ (invoke #$iptables-restore #$ipv4-rules)
+ (invoke #$ip6tables-restore #$ipv6-rules)))
+ (stop #~(lambda _
+ (invoke #$iptables-restore #$%iptables-accept-all-rules)
+ (invoke #$ip6tables-restore #$%iptables-accept-all-rules)))))))
(define iptables-service-type
(service-type
@@ -1767,17 +1766,17 @@ table inet filter {
(ruleset nftables-configuration-ruleset ; file-like object
(default %default-nftables-ruleset)))
-(define nftables-shepherd-service
- (match-lambda
- (($ <nftables-configuration> package ruleset)
- (let ((nft (file-append package "/sbin/nft")))
- (shepherd-service
- (documentation "Packet filtering and classification")
- (provision '(nftables))
- (start #~(lambda _
- (invoke #$nft "--file" #$ruleset)))
- (stop #~(lambda _
- (invoke #$nft "flush" "ruleset"))))))))
+(define (nftables-shepherd-service config)
+ (match-record config <nftables-configuration>
+ (package ruleset)
+ (let ((nft (file-append package "/sbin/nft")))
+ (shepherd-service
+ (documentation "Packet filtering and classification")
+ (provision '(nftables))
+ (start #~(lambda _
+ (invoke #$nft "--file" #$ruleset)))
+ (stop #~(lambda _
+ (invoke #$nft "flush" "ruleset")))))))
(define nftables-service-type
(service-type
@@ -2150,23 +2149,22 @@ of the IPFS peer-to-peer storage network.")))
(config-file keepalived-configuration-config-file ;file-like
(default #f)))
-(define keepalived-shepherd-service
- (match-lambda
- (($ <keepalived-configuration> keepalived config-file)
- (list
- (shepherd-service
- (provision '(keepalived))
- (documentation "Run keepalived.")
- (requirement '(loopback))
- (start #~(make-forkexec-constructor
- (list (string-append #$keepalived "/sbin/keepalived")
- "--dont-fork" "--log-console" "--log-detail"
- "--pid=/var/run/keepalived.pid"
- (string-append "--use-file=" #$config-file))
- #:pid-file "/var/run/keepalived.pid"
- #:log-file "/var/log/keepalived.log"))
- (respawn? #f)
- (stop #~(make-kill-destructor)))))))
+(define (keepalived-shepherd-service config)
+ (match-record config <keepalived-configuration>
+ (keepalived config-file)
+ (list (shepherd-service
+ (provision '(keepalived))
+ (documentation "Run keepalived.")
+ (requirement '(loopback))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$keepalived "/sbin/keepalived")
+ "--dont-fork" "--log-console" "--log-detail"
+ "--pid=/var/run/keepalived.pid"
+ (string-append "--use-file=" #$config-file))
+ #:pid-file "/var/run/keepalived.pid"
+ #:log-file "/var/log/keepalived.log"))
+ (respawn? #f)
+ (stop #~(make-kill-destructor))))))
(define %keepalived-log-rotation
(list (log-rotation
diff --git a/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl b/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl
new file mode 100644
index 0000000000..8c47c650f6
--- /dev/null
+++ b/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl
@@ -0,0 +1,70 @@
+;; This is an operating-system configuration template of a
+;; 64-bit minimal system for a Raspberry Pi with an NFS root file-system.
+
+;; It neither installs firmware nor device-tree files for the Raspberry Pi.
+;; It just assumes them to be existing in boot/efi in the same way that some
+;; UEFI firmware with ACPI data is usually assumed to be existing on PCs.
+
+;; It expects the boot/efi directory to be served via TFTP and the root
+;; file-system to be served via NFS. See the grub-efi-netboot-bootloader
+;; description in the manual for more details.
+
+(use-modules (gnu)
+ (gnu artwork)
+ (gnu system nss))
+(use-service-modules admin
+ avahi
+ networking
+ ssh)
+(use-package-modules certs
+ linux
+ raspberry-pi
+ ssh)
+
+(define-public raspberry-pi-64-nfs-root
+ (operating-system
+ (host-name "raspberrypi-guix")
+ (timezone "Europe/Berlin")
+ (bootloader (bootloader-configuration
+ (bootloader grub-efi-bootloader-chain-raspi-64)
+ (targets (list "/boot/efi"))
+ (theme (grub-theme
+ (resolution '(1920 . 1080))
+ (image (file-append
+ %artwork-repository
+ "/grub/GuixSD-fully-black-16-9.svg"))))))
+ (kernel-arguments '("ip=dhcp"))
+ (kernel (customize-linux #:linux linux-libre-arm64-generic
+ #:extra-version "arm64-generic-netboot"
+ #:configs '("CONFIG_NFS_SWAP=y"
+ "CONFIG_USB_USBNET=y"
+ "CONFIG_USB_LAN78XX=y"
+ "CONFIG_USB_NET_SMSC95XX=y")))
+ (initrd-modules '())
+ (file-systems (cons* (file-system
+ (mount-point "/")
+ (type "nfs")
+ (device ":/export/raspberrypi/guix")
+ (options "addr=10.20.30.40,vers=4.1"))
+ %base-file-systems))
+ (swap-devices (list (swap-space
+ (target "/run/swapfile"))))
+ (users (cons* (user-account
+ (name "pi")
+ (group "users")
+ (supplementary-groups '("wheel" "netdev" "audio" "video"))
+ (home-directory "/home/pi"))
+ %base-user-accounts))
+ (packages (cons* nss-certs
+ openssh
+ %base-packages))
+ (services (cons* (service avahi-service-type)
+ (service dhcp-client-service-type)
+ (service ntp-service-type)
+ (service openssh-service-type
+ (openssh-configuration
+ (x11-forwarding? #t)))
+ %base-services))
+ (name-service-switch %mdns-host-lookup-nss)))
+
+raspberry-pi-64-nfs-root
diff --git a/gnu/system/examples/raspberry-pi-64.tmpl b/gnu/system/examples/raspberry-pi-64.tmpl
new file mode 100644
index 0000000000..3ad588207c
--- /dev/null
+++ b/gnu/system/examples/raspberry-pi-64.tmpl
@@ -0,0 +1,74 @@
+;; This is an operating-system configuration template of a
+;; 64-bit minimal system for a Raspberry Pi with local storage.
+
+;; It neither installs firmware nor device-tree files for the Raspberry Pi.
+;; It just assumes them to be existing in boot/efi in the same way that some
+;; UEFI firmware with ACPI data is usually assumed to be existing on PCs.
+
+;; It expects the boot-partition to be mounted as boot/efi in the same way
+;; as it is usually expeted on PCs with UEFI firmware.
+
+(use-modules (gnu)
+ (gnu artwork)
+ (gnu system nss))
+(use-service-modules admin
+ avahi
+ networking
+ ssh)
+(use-package-modules certs
+ linux
+ raspberry-pi
+ ssh)
+
+(define-public raspberry-pi-64
+ (operating-system
+ (host-name "raspberrypi-guix")
+ (timezone "Europe/Berlin")
+ (bootloader (bootloader-configuration
+ (bootloader grub-efi-bootloader-chain-raspi-64)
+ (targets (list "/boot/efi"))
+ (theme (grub-theme
+ (resolution '(1920 . 1080))
+ (image (file-append
+ %artwork-repository
+ "/grub/GuixSD-fully-black-16-9.svg"))))))
+ (kernel (customize-linux #:linux linux-libre-arm64-generic
+ ;; It is possible to use a specific defconfig
+ ;; file, for example the "bcmrpi3_defconfig" with
+ ;; the variable shown below. Unfortunately the
+ ;; kernel built from the linux-libre sources with
+ ;; this defconfig file does not boot.
+ ;;#:extra-version "gnu-bcmrpi3"
+ ;;#:defconfig %bcmrpi3-defconfig
+ ))
+ (initrd-modules '())
+ (file-systems (cons* (file-system
+ (mount-point "/")
+ (type "ext4")
+ (device (file-system-label "Guix")))
+ (file-system
+ (mount-point "/boot/efi")
+ (type "vfat")
+ (device (file-system-label "EFI")))
+ %base-file-systems))
+ (swap-devices (list (swap-space
+ (target "/run/swapfile"))))
+ (users (cons* (user-account
+ (name "pi")
+ (group "users")
+ (supplementary-groups '("wheel" "netdev" "audio" "video"))
+ (home-directory "/home/pi"))
+ %base-user-accounts))
+ (packages (cons* nss-certs
+ openssh
+ %base-packages))
+ (services (cons* (service avahi-service-type)
+ (service dhcp-client-service-type)
+ (service ntp-service-type)
+ (service openssh-service-type
+ (openssh-configuration
+ (x11-forwarding? #t)))
+ %base-services))
+ (name-service-switch %mdns-host-lookup-nss)))
+
+raspberry-pi-64
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 4bc32d9bd1..24fc6dbcae 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -75,28 +75,30 @@
info-reader))
(define %base-services/hurd
- (list (service hurd-console-service-type
- (hurd-console-configuration (hurd hurd)))
- (service hurd-getty-service-type (hurd-getty-configuration
- (tty "tty1")))
- (service hurd-getty-service-type (hurd-getty-configuration
- (tty "tty2")))
- (service static-networking-service-type
- (list %loopback-static-networking
+ (append (list (service hurd-console-service-type
+ (hurd-console-configuration (hurd hurd)))
+ (service static-networking-service-type
+ (list %loopback-static-networking
- ;; QEMU user-mode networking. To get "eth0", you need
- ;; QEMU to emulate a device for which Mach has an
- ;; in-kernel driver, for instance with:
- ;; --device rtl8139,netdev=net0 --netdev user,id=net0
- %qemu-static-networking))
- (syslog-service)
- (service guix-service-type
- (guix-configuration
- (extra-options '("--disable-chroot"
- "--disable-deduplication"))))
- (service special-files-service-type
- `(("/bin/sh" ,(file-append bash "/bin/sh"))
- ("/usr/bin/env" ,(file-append coreutils "/bin/env"))))))
+ ;; QEMU user-mode networking. To get "eth0", you need
+ ;; QEMU to emulate a device for which Mach has an
+ ;; in-kernel driver, for instance with:
+ ;; --device rtl8139,netdev=net0 --netdev user,id=net0
+ %qemu-static-networking))
+ (service guix-service-type
+ (guix-configuration
+ (extra-options '("--disable-chroot"
+ "--disable-deduplication"))))
+ (service special-files-service-type
+ `(("/bin/sh" ,(file-append bash "/bin/sh"))
+ ("/usr/bin/env" ,(file-append coreutils
+ "/bin/env"))))
+ (syslog-service))
+ (map (lambda (n)
+ (service hurd-getty-service-type
+ (hurd-getty-configuration
+ (tty (string-append "tty" (number->string n))))))
+ (iota 6 1))))
(define %setuid-programs/hurd
;; Default set of setuid-root programs.
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index 69080bcacb..c2fd55d48e 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -121,9 +121,7 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
;; different configs that are better suited to containers.
(append (list console-font-service-type
mingetty-service-type
- agetty-service-type
- ;; Reinstantiated below with smaller caches.
- nscd-service-type)
+ agetty-service-type)
(if shared-network?
;; Replace these with dummy-networking-service-type below.
(list
@@ -134,17 +132,13 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
(list))))
(define services-to-add
- (append
- ;; Many Guix services depend on a 'networking' shepherd
- ;; service, so make sure to provide a dummy 'networking'
- ;; service when we are sure that networking is already set up
- ;; in the host and can be used. That prevents double setup.
- (if shared-network?
- (list (service dummy-networking-service-type))
- '())
- (list
- (nscd-service (nscd-configuration
- (caches %nscd-container-caches))))))
+ ;; Many Guix services depend on a 'networking' shepherd
+ ;; service, so make sure to provide a dummy 'networking'
+ ;; service when we are sure that networking is already set up
+ ;; in the host and can be used. That prevents double setup.
+ (if shared-network?
+ (list (service dummy-networking-service-type))
+ '()))
(operating-system
(inherit os)
@@ -155,7 +149,11 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
(services (append (remove (lambda (service)
(memq (service-kind service)
services-to-drop))
- (operating-system-user-services os))
+ (modify-services (operating-system-user-services os)
+ (nscd-service-type
+ config => (nscd-configuration
+ (inherit config)
+ (caches %nscd-container-caches)))))
services-to-add))
(file-systems (append (map mapping->fs
(if shared-network?
diff --git a/gnu/tests/gdm.scm b/gnu/tests/gdm.scm
new file mode 100644
index 0000000000..70a86b9065
--- /dev/null
+++ b/gnu/tests/gdm.scm
@@ -0,0 +1,127 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>.
+;;;
+;;; 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 tests gdm)
+ #:use-module (gnu tests)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu services)
+ #:use-module (gnu services desktop)
+ #:use-module (gnu services xorg)
+ #:use-module (gnu system)
+ #:use-module (gnu system file-systems)
+ #:use-module (gnu system vm)
+ #:use-module (guix gexp)
+ #:use-module (ice-9 format)
+ #:export (%test-gdm-x11
+ %test-gdm-wayland
+ %test-gdm-wayland-tmpfs))
+
+(define* (make-os #:key wayland? tmp-tmpfs?)
+ (operating-system
+ (inherit %simple-os)
+ (services
+ (modify-services %desktop-services
+ (gdm-service-type config => (gdm-configuration
+ (inherit config)
+ (wayland? wayland?)))))
+ (file-systems (if tmp-tmpfs? (cons (file-system
+ (mount-point "/tmp")
+ (device "none")
+ (type "tmpfs")
+ (flags '(no-dev no-suid))
+ (check? #f))
+ %base-file-systems)
+ %base-file-systems))))
+
+(define* (run-gdm-test #:key wayland? tmp-tmpfs?)
+ "Run tests in a vm which has gdm running."
+ (define os
+ (marionette-operating-system
+ (make-os #:wayland? wayland? #:tmp-tmpfs? tmp-tmpfs?)
+ #:imported-modules '((gnu services herd))))
+
+ (define vm
+ (virtual-machine
+ (operating-system os)
+ (memory-size 1024)))
+
+ (define name (format #f "gdm-~:[x11~;wayland~]~:[~;-tmpfs~]" wayland? tmp-tmpfs?))
+
+ (define test
+ (with-imported-modules '((gnu build marionette))
+ #~(begin
+ (use-modules (gnu build marionette)
+ (ice-9 format)
+ (srfi srfi-64))
+
+ (let* ((marionette (make-marionette (list #$vm)))
+ (expected-session-type #$(if wayland? "wayland" "x11")))
+
+ (test-runner-current (system-test-runner #$output))
+ (test-begin #$name)
+
+ ;; service for gdm is called xorg-server
+ (test-assert "service is running"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (start-service 'xorg-server))
+ marionette))
+
+ (test-assert "gdm ready"
+ (wait-for-file "/var/run/gdm/gdm.pid" marionette))
+
+ (test-equal (string-append "session-type is " expected-session-type)
+ expected-session-type
+ (marionette-eval
+ '(begin
+ (use-modules (ice-9 popen)
+ (ice-9 rdelim))
+
+ (let* ((loginctl #$(file-append elogind "/bin/loginctl"))
+ (get-session-cmd (string-join `(,loginctl "show-user" "gdm"
+ "--property Display" "--value")))
+ (session (call-with-port (open-input-pipe get-session-cmd) read-line))
+ (get-type-cmd (string-join `(,loginctl "show-session" ,session
+ "--property Type" "--value")))
+ (type (call-with-port (open-input-pipe get-type-cmd) read-line)))
+ type))
+ marionette))
+
+ (test-end)))))
+
+ (gexp->derivation (string-append name "-test") test))
+
+(define %test-gdm-x11
+ (system-test
+ (name "gdm-x11")
+ (description "Basic tests for the GDM service. (X11)")
+ (value (run-gdm-test))))
+
+(define %test-gdm-wayland
+ (system-test
+ (name "gdm-wayland")
+ (description "Basic tests for the GDM service. (Wayland)")
+ (value (run-gdm-test #:wayland? #t))))
+
+(define %test-gdm-wayland-tmpfs
+ (system-test
+ ;; See <https://issues.guix.gnu.org/57589>.
+ (name "gdm-wayland-tmpfs")
+ (description "Basic tests for the GDM service. (Wayland, /tmp as tmpfs)")
+ (value (run-gdm-test #:wayland? #t #:tmp-tmpfs? #t))))
diff --git a/guix/build-system/linux-module.scm b/guix/build-system/linux-module.scm
index d6c369d65d..c1ddeaea10 100644
--- a/guix/build-system/linux-module.scm
+++ b/guix/build-system/linux-module.scm
@@ -66,7 +66,9 @@
(replace 'build
(lambda _
(invoke "make" "modules_prepare")))
- (delete 'strip) ; faster
+ (delete 'strip) ;faster
+ (delete 'build-doc) ;costly and not useful here
+ (delete 'install-doc)
(replace 'install
(lambda* (#:key inputs #:allow-other-keys)
(let ((out-lib-build (string-append #$output "/lib/modules/build")))
diff --git a/guix/build/kconfig.scm b/guix/build/kconfig.scm
new file mode 100644
index 0000000000..d0189f558f
--- /dev/null
+++ b/guix/build/kconfig.scm
@@ -0,0 +1,183 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build kconfig)
+ #:use-module (ice-9 rdelim)
+ #:use-module (ice-9 regex)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:export (modify-defconfig
+ verify-config))
+
+;; Commentary:
+;;
+;; Builder-side code to modify configurations for the Kconfig build system as
+;; used by Linux and U-Boot.
+;;
+;; Code:
+
+(define (config-string->pair config-string)
+ "Parse a configuration string like \"CONFIG_EXAMPLE=m\" into a key-value pair.
+An error is thrown for invalid configurations.
+
+\"CONFIG_A=y\" -> '(\"CONFIG_A\" . \"y\")
+\"CONFIG_B=\\\"\\\"\" -> '(\"CONFIG_B\" . \"\\\"\\\"\")
+\"CONFIG_C=\" -> '(\"CONFIG_C\" . \"\")
+\"# CONFIG_E is not set\" -> '(\"CONFIG_E\" . #f)
+\"CONFIG_D\" -> '(\"CONFIG_D\" . #f)
+\"# Any comment\" -> '(#f . \"# Any comment\")
+\"\" -> '(#f . \"\")
+\"# CONFIG_E=y\" -> (error \"Invalid configuration\")
+\"CONFIG_E is not set\" -> (error \"Invalid configuration\")
+\"Anything else\" -> (error \"Invalid configuration\")"
+ (define config-regexp
+ (make-regexp
+ ;; (match:substring (string-match "=(.*)" "=") 1) returns "", but the
+ ;; pattern "=(.+)?" makes it return #f instead. From a "CONFIG_A=" we like
+ ;; to get "", which later emits "CONFIG_A=" again.
+ (string-append "^ *(#[\\t ]*)?(CONFIG_[a-zA-Z0-9_]+)([\\t ]*="
+ "[\\t ]*(.*)|([\\t ]+is[\\t ]+not[\\t ]+set))?$")))
+
+ (define config-comment-regexp
+ (make-regexp "^([\\t ]*(#.*)?)$"))
+
+ (let ((match (regexp-exec config-regexp (string-trim-right config-string))))
+ (if match
+ (let* ((comment (match:substring match 1))
+ (key (match:substring match 2))
+ (unset (match:substring match 5))
+ (value (and (not comment)
+ (not unset)
+ (match:substring match 4))))
+ (if (eq? (not comment) (not unset))
+ ;; The key is uncommented and set or commented and unset.
+ (cons key value)
+ ;; The key is set or unset ambigiously.
+ (error (format #f "invalid configuration, did you mean \"~a\"?"
+ (pair->config-string (cons key #f)))
+ config-string)))
+ ;; This is not a valid or ambigious config-string, but maybe a
+ ;; comment.
+ (if (regexp-exec config-comment-regexp config-string)
+ (cons #f config-string) ;keep valid comments
+ (error "Invalid configuration" config-string)))))
+
+(define (pair->config-string pair)
+ "Convert a PAIR back to a config-string."
+ (let* ((key (first pair))
+ (value (cdr pair)))
+ (if (string? key)
+ (if (string? value)
+ (string-append key "=" value)
+ (string-append "# " key " is not set"))
+ value)))
+
+(define (defconfig->alist defconfig)
+ "Convert the content of a DEFCONFIG (or .config) file into an alist."
+ (with-input-from-file defconfig
+ (lambda ()
+ (let loop ((alist '())
+ (line (read-line)))
+ (if (eof-object? line)
+ ;; Building the alist is done, now check for duplicates.
+ ;; Note: the filter invocation is used to remove comments.
+ (let loop ((keys (map first (filter first alist)))
+ (duplicates '()))
+ (if (null? keys)
+ ;; The search for duplicates is done.
+ ;; Return the alist or throw an error on duplicates.
+ (if (null? duplicates)
+ alist
+ (error
+ (format #f "duplicate configurations in ~a" defconfig)
+ duplicates))
+ ;; Continue the search for duplicates.
+ (loop (cdr keys)
+ (if (member (first keys) (cdr keys))
+ (cons (first keys) duplicates)
+ duplicates))))
+ ;; Build the alist.
+ (loop (cons (config-string->pair line) alist)
+ (read-line)))))))
+
+(define (modify-defconfig defconfig configs)
+ "This function can modify a given DEFCONFIG (or .config) file by adding,
+changing or removing the list of strings in CONFIGS. This allows customization
+of Kconfig based projects like the kernel Linux or the bootloader 'Das U-Boot'.
+
+These are examples for CONFIGS to add, change or remove configurations to/from
+DEFCONFIG:
+
+'(\"CONFIG_A=\\\"a\\\"\"
+ \"CONFIG_B=0\"
+ \"CONFIG_C=y\"
+ \"CONFIG_D=m\"
+ \"CONFIG_E=\"
+ \"# CONFIG_G is not set\"
+ ;; For convenience this abbrevation can be used for not set configurations.
+ \"CONFIG_F\")
+
+Instead of a list, CONFIGS can be a string with one configuration per line."
+ (let* (;; Split the configs into a list of single configurations. Both a
+ ;; string and or a list of strings is supported, each with newlines
+ ;; to separate configurations.
+ (config-pairs (map config-string->pair
+ (append-map (cut string-split <> #\newline)
+ (if (string? configs)
+ (list configs)
+ configs))))
+ ;; Generate a blocklist from all valid keys in config-pairs.
+ (blocklist (delete #f (map first config-pairs)))
+ ;; Generate an alist from the defconfig without the keys in blocklist.
+ (filtered-defconfig-pairs (remove (lambda (pair)
+ (member (first pair) blocklist))
+ (defconfig->alist defconfig))))
+ (with-output-to-file defconfig
+ (lambda ()
+ (for-each (lambda (pair)
+ (display (pair->config-string pair))
+ (newline))
+ (append filtered-defconfig-pairs config-pairs))))))
+
+(define (verify-config config defconfig)
+ "Verify that the CONFIG file contains all configurations from the DEFCONFIG
+file. When the verification fails, raise an error with the mismatching keys
+and their values."
+ (let* ((config-pairs (defconfig->alist config))
+ (defconfig-pairs (defconfig->alist defconfig))
+ (mismatching-pairs
+ (remove (lambda (pair)
+ ;; Remove all configurations, whose values are #f and
+ ;; whose keys are not in config-pairs, as not in
+ ;; config-pairs means unset, ...
+ (and (not (cdr pair))
+ (not (assoc-ref config-pairs (first pair)))))
+ ;; ... from the defconfig-pairs different to config-pairs.
+ (lset-difference equal?
+ ;; Remove comments by filtering with first.
+ (filter first defconfig-pairs)
+ config-pairs))))
+ (unless (null? mismatching-pairs)
+ (error (format #f "Mismatching configurations in ~a and ~a"
+ config defconfig)
+ (map (lambda (mismatching-pair)
+ (let* ((key (first mismatching-pair))
+ (defconfig-value (cdr mismatching-pair))
+ (config-value (assoc-ref config-pairs key)))
+ (cons key (list (list config-value defconfig-value)))))
+ mismatching-pairs)))))
diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index 286a4c21b9..a02e746417 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -410,6 +410,7 @@ empty list when the FIELD cannot be found."
("tcl/tk" "tcl")
("booktabs" "texlive-booktabs")
("freetype2" "freetype")
+ ("sqlite3" "sqlite")
(_ sysname)))
(define cran-guix-name (cut guix-name "r-" <>))
diff --git a/guix/records.scm b/guix/records.scm
index ed94c83dac..13463647c8 100644
--- a/guix/records.scm
+++ b/guix/records.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -104,6 +104,10 @@ error-reporting purposes."
(()
#t)))))))
+(define-syntax map-fields
+ (lambda (x)
+ (syntax-violation 'map-fields "bad use of syntactic keyword" x x)))
+
(define-syntax-parameter this-record
(lambda (s)
"Return the record being defined. This macro may only be used in the
@@ -325,6 +329,15 @@ This expression returns a new object equal to 'x' except for its 'name'
field and its 'loc' field---the latter is marked as \"innate\", so it is not
inherited."
+ (define (rtd-identifier type)
+ ;; Return an identifier derived from TYPE to name its record type
+ ;; descriptor (RTD).
+ (let ((type-name (syntax->datum type)))
+ (datum->syntax
+ type
+ (string->symbol
+ (string-append "% " (symbol->string type-name) " rtd")))))
+
(define (field-default-value s)
(syntax-case s (default)
((field (default val) _ ...)
@@ -428,10 +441,31 @@ inherited."
field)))
field-spec)))
#`(begin
- (define-record-type type
+ (define-record-type #,(rtd-identifier #'type)
(ctor field ...)
pred
field-spec* ...)
+
+ ;; Rectify the vtable type name...
+ (set-struct-vtable-name! #,(rtd-identifier #'type) 'type)
+ (cond-expand
+ (guile-3
+ ;; ... and the record type name.
+ (struct-set! #,(rtd-identifier #'type) vtable-offset-user
+ 'type))
+ (else #f))
+
+ (define-syntax type
+ (lambda (s)
+ "This macro lets us query record type info at
+macro-expansion time."
+ (syntax-case s (map-fields)
+ ((_ map-fields macro)
+ #'(macro (field ...)))
+ (id
+ (identifier? #'id)
+ #'#,(rtd-identifier #'type)))))
+
(define #,(current-abi-identifier #'type)
#,cookie)
@@ -535,19 +569,50 @@ pairs. Stop upon an empty line (after consuming it) or EOF."
(else
(error "unmatched line" line))))))))
+
+;;;
+;;; Pattern matching.
+;;;
+
+(define-syntax lookup-field
+ (lambda (s)
+ "Look up FIELD in the given list and return an expression that represents
+its offset in the record. Raise a syntax violation when the field is not
+found."
+ (syntax-case s ()
+ ((_ field offset ())
+ (syntax-violation 'lookup-field "unknown record type field"
+ s #'field))
+ ((_ field offset (head tail ...))
+ (free-identifier=? #'field #'head)
+ #'offset)
+ ((_ field offset (_ tail ...))
+ #'(lookup-field field (+ 1 offset) (tail ...))))))
+
+(define-syntax match-record-inner
+ (lambda (s)
+ (syntax-case s ()
+ ((_ record type (field rest ...) body ...)
+ #`(let-syntax ((field-offset (syntax-rules ()
+ ((_ f)
+ (lookup-field field 0 f)))))
+ (let* ((offset (type map-fields field-offset))
+ (field (struct-ref record offset)))
+ (match-record-inner record type (rest ...) body ...))))
+ ((_ record type () body ...)
+ #'(begin body ...)))))
+
(define-syntax match-record
(syntax-rules ()
"Bind each FIELD of a RECORD of the given TYPE to it's FIELD name.
+The order in which fields appear does not matter. A syntax error is raised if
+an unknown field is queried.
+
The current implementation does not support thunked and delayed fields."
- ((_ record type (field fields ...) body ...)
+ ;; TODO support thunked and delayed fields
+ ((_ record type (fields ...) body ...)
(if (eq? (struct-vtable record) type)
- ;; TODO compute indices and report wrong-field-name errors at
- ;; expansion time
- ;; TODO support thunked and delayed fields
- (let ((field ((record-accessor type 'field) record)))
- (match-record record type (fields ...) body ...))
- (throw 'wrong-type-arg record)))
- ((_ record type () body ...)
- (begin body ...))))
+ (match-record-inner record type (fields ...) body ...)
+ (throw 'wrong-type-arg record)))))
;;; records.scm ends here
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index cf59db4315..0efa61b0d7 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -366,7 +366,7 @@ authorized substitutes."
When FRESH? is true, delete any cached connections for URI and open a new one.
Return #f if URI's scheme is 'file' or #f.
-When true, TIMEOUT is the maximum number of milliseconds to wait for
+When true, TIMEOUT is the maximum number of seconds to wait for
connection establishment. When VERIFY-CERTIFICATE? is true, verify HTTPS
server certificates."
(define host (uri-host uri))
diff --git a/tests/guix-system.sh b/tests/guix-system.sh
index a59bd9a6b9..16c02e6e4c 100644
--- a/tests/guix-system.sh
+++ b/tests/guix-system.sh
@@ -342,6 +342,10 @@ for example in gnu/system/examples/*.tmpl; do
# 'asus-c201.tmpl' uses 'linux-libre-arm-generic', which is an
# ARM-only package.
options="--system=armhf-linux";;
+ *raspberry*)
+ # The Raspberry Pi templates 'linux-libre-arm64-generic', which is
+ # an ARM-only package.
+ options="--system=aarch64-linux";;
*vm-image*)
# The VM image tries to build 'current-guix' as per 'guix pull'.
# Skip it.
diff --git a/tests/records.scm b/tests/records.scm
index 00c58b0736..8504c8d5a5 100644
--- a/tests/records.scm
+++ b/tests/records.scm
@@ -528,4 +528,37 @@ Description: 1st line,
'("a" "b" "c")
'("a")))
+(test-equal "match-record, simple"
+ '((1 2) (a b))
+ (let ()
+ (define-record-type* <foo> foo make-foo
+ foo?
+ (first foo-first (default 1))
+ (second foo-second))
+
+ (list (match-record (foo (second 2)) <foo>
+ (first second)
+ (list first second))
+ (match-record (foo (first 'a) (second 'b)) <foo>
+ (second first)
+ (list first second)))))
+
+(test-equal "match-record, unknown field"
+ 'syntax-error
+ (catch 'syntax-error
+ (lambda ()
+ (eval '(begin
+ (use-modules (guix records))
+
+ (define-record-type* <foo> foo make-foo
+ foo?
+ (first foo-first (default 1))
+ (second foo-second))
+
+ (match-record (foo (second 2)) <foo>
+ (one two)
+ #f))
+ (make-fresh-user-module)))
+ (lambda (key . args) key)))
+
(test-end)