diff options
author | Marius Bakke <marius@gnu.org> | 2022-12-02 19:13:45 +0100 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2022-12-02 19:13:45 +0100 |
commit | f2b6350a507158b2a0ed28ada69d8ca3f544d5e5 (patch) | |
tree | 0dc9a7d9702e912b2fa098942a75e3e925629157 /gnu | |
parent | c5e15ef4ddcbe7ebf77b4d24a99707396121cb6c (diff) | |
parent | 365b0b55334ab61e73f368f142af7aa1c3a3d28a (diff) | |
download | guix-f2b6350a507158b2a0ed28ada69d8ca3f544d5e5.tar.gz |
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
78 files changed, 6904 insertions, 3851 deletions
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 08feab3e01..a109c52b54 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1345,6 +1345,7 @@ 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-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 \ @@ -1822,6 +1823,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 \ @@ -1836,7 +1838,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 \ @@ -1867,7 +1868,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/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 466dd65a1f..42a0608073 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..c3cdbb9e66 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) @@ -10601,6 +10602,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 0467e6b1c9..80267b939b 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -516,7 +516,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..837a2a7593 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.71") (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")))) + "1309rz06s7fw9p7h5968nk23rbsyfhqm5znqrw6nh24qdbg6z3zx")))) (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")) + "0pgzf6xrd71is1dld1arhq366vjp8p54x75zyx6y7vcjqj0a0v6b")) (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-io.scm b/gnu/packages/crates-io.scm index 792779a28f..431a37527c 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 @@ -4998,22 +5063,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 @@ -10455,70 +10517,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 +10655,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 +11627,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 +11635,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 +11731,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") @@ -13825,6 +14040,32 @@ 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-rt-format-0.3 + (package + (name "rust-rt-format") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "rt-format" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1qjjwh9ny95xck1kp99gi6hfm9glrx54jx8npnj6yccxc7p7q225")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("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-rust-crypto-0.2 (package (name "rust-rust-crypto") @@ -14468,23 +14709,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 @@ -18781,6 +19020,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 +19530,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 @@ -21419,6 +21676,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") @@ -26873,6 +27154,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 +27427,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 +27597,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 +28072,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") @@ -29390,18 +29889,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 +30983,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") @@ -32195,14 +32721,15 @@ file IO.") (define-public rust-memoffset-0.6 (package (name "rust-memoffset") - (version "0.6.4") + (version "0.6.5") (source (origin (method url-fetch) (uri (crate-uri "memoffset" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1yfx2v8kmkhr2d4gwk8ghihdwg73vapn3vvp0im06f0kgx8crb2r")))) + (base32 + "1kkrzll58a3ayn5zdyy9i1f1v3mx0xgl29x0chq614zazba638ss")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -32229,8 +32756,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 +33464,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 +35417,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 +35444,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 +38534,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 +38810,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 +38836,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 +39526,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 +42832,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 +47236,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 + "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 - "rstest uses procedural macros to help you on writing fixtures and -table-based tests.") + "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 +48354,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 +48574,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") @@ -53619,21 +54376,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 +56480,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 +56601,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 +56640,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 +58623,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 +58657,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 +58688,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 +58727,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 +58916,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 +58948,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 +59037,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 +59063,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 +59949,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 +64034,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 +64206,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 +64256,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 +64353,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 +65799,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 +66706,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 +67674,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") @@ -67454,300 +68508,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)))) - -(define-public rust-windows-i686-msvc-0.28 - (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)))) + "1hpk0n2z0jzzvwlvs98b75sa4q920953nqfc119rv19nwm0mlsaj")))))) -(define-public rust-windows-i686-msvc-0.36 +(define-public rust-windows-i686-gnu-0.42 (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 +68728,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 +68758,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 +68791,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 +68859,182 @@ if they were just another Rust module.") windows crate.") (license (list license:expat license:asl2.0)))) -(define-public rust-xmltree-0.10 +(define-public rust-windows-x86-64-gnu-0.42 (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 - (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/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/ebook.scm b/gnu/packages/ebook.scm index 60ef39c77e..8dff0f2ec8 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -197,6 +197,7 @@ with Microsoft Compiled HTML (CHM) files") python-psutil python-py7zr python-pychm + python-pycryptodome python-pygments python-pyqt-without-qtwebkit python-pyqtwebengine diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 35d6d87030..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 @@ -889,6 +889,29 @@ of the segments available in that package using icons from information in the mode line.") (license license:expat))) +(define-public emacs-spongebob + (let ((commit "ae8ae6ba0dc57b7357ba87ff0609d27c4a0a5f51") + (revision "0")) + (package + (name "emacs-spongebob") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/dustyweb/spongebob.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1agqpp078ij2irn0kb8bgqk0nd47fi20yfd9szn8kbqypfqalvgc")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/dustyweb/gauche") + (synopsis "Memetically mock a region of text") + (description "This package transforms text using @code{studlify-region} +and inserts a SpongeBob SquarePants ASCII art figure in the current +buffer.") + (license license:gpl3+)))) + (define-public emacs-project (package (name "emacs-project") @@ -5089,6 +5112,28 @@ at the current line number or active region. @code{git-link-commit} returns the URL for a commit. URLs are added to the kill ring.") (license license:gpl3+))) +(define-public emacs-frowny + (package + (name "emacs-frowny") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/duckwork/frowny.el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01ss3js71as1jpqcf0x9hfvapiyyhj9ni4y1n6wvqsghv5dcaiy0")))) + (build-system emacs-build-system) + (home-page "https://github.com/duckwork/frowny.el") + (synopsis "Insert frownies in Emacs :(") + (description "This package ships @code{frowny-mode}, which makes it so that +inserting a single @code{(} when after a @code{:} will not automatically close +the parenthesis, meaning that only @code{:(} is inserted. Works with +@code{electric-pair-mode}, @code{paredit-mode}, and others.") + (license license:public-domain))) + (define-public emacs-apache-mode (package (name "emacs-apache-mode") @@ -15971,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) @@ -15980,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") @@ -30358,39 +30403,40 @@ service, and connect it with Emacs via inter-process communication.") (name "emacs-telega") (build-system emacs-build-system) (arguments - `(#:emacs ,(if (target-64bit?) - emacs-minimal - ;; Require wide-int support for 32-bit platform. - emacs-wide-int) - #:include (cons "^etc\\/" %default-include) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-sources - (lambda* (#:key inputs #:allow-other-keys) - ;; Hard-code paths to `ffplay` and `ffmpeg`. - (let* ((ffplay-bin (search-input-file inputs "/bin/ffplay")) - (ffmpeg-bin (search-input-file inputs "/bin/ffmpeg"))) - (substitute* '("telega-ffplay.el" "telega-vvnote.el") - (("(shell-command-to-string\|concat) \"(ffmpeg\|ffprobe)" - all func cmd) - (string-append func " \"" - (search-input-file - inputs (string-append "/bin/" cmd)))) - (("\\(executable-find \"ffplay\"\\)") - (string-append "(and (file-executable-p \"" ffplay-bin "\")" - "\"" ffplay-bin "\")")) - (("\\(executable-find \"ffmpeg\"\\)") - (string-append "(and (file-executable-p \"" ffmpeg-bin "\")" - "\"" ffmpeg-bin "\")")))))) - (add-after 'unpack 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "telega-customize.el" - (("@TELEGA_SERVER_BIN@") - (search-input-file inputs "/bin/telega-server"))) - (substitute* "telega-util.el" - (("@TELEGA_SHARE@") - (string-append (elpa-directory (assoc-ref outputs "out")) - "/etc")))))))) + (list + #:emacs (if (target-64bit?) + emacs-minimal + ;; Require wide-int support for 32-bit platform. + emacs-wide-int) + #:include #~(cons "^etc\\/" %default-include) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-sources + (lambda* (#:key inputs #:allow-other-keys) + ;; Hard-code paths to `ffplay` and `ffmpeg`. + (let* ((ffplay-bin (search-input-file inputs "/bin/ffplay")) + (ffmpeg-bin (search-input-file inputs "/bin/ffmpeg"))) + (substitute* '("telega-ffplay.el" "telega-vvnote.el") + (("(shell-command-to-string\|concat) \"(ffmpeg\|ffprobe)" + all func cmd) + (string-append func " \"" + (search-input-file + inputs (string-append "/bin/" cmd)))) + (("\\(executable-find \"ffplay\"\\)") + (string-append "(and (file-executable-p \"" ffplay-bin "\")" + "\"" ffplay-bin "\")")) + (("\\(executable-find \"ffmpeg\"\\)") + (string-append "(and (file-executable-p \"" ffmpeg-bin "\")" + "\"" ffmpeg-bin "\")")))))) + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "telega-customize.el" + (("@TELEGA_SERVER_BIN@") + (search-input-file inputs "/bin/telega-server"))) + (substitute* "telega-util.el" + (("@TELEGA_SHARE@") + (string-append (elpa-directory (assoc-ref outputs "out")) + "/etc")))))))) (inputs (list emacs-telega-server ffmpeg)) (native-inputs '()) @@ -30406,13 +30452,14 @@ for the Telegram messaging platform."))) (inherit emacs-telega) (name "emacs-telega-contrib") (arguments - `(#:exclude '("telega-live-location.el") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'enter-subdirectory - (lambda _ (chdir "contrib") #t)) - (add-before 'install-license-files 'leave-subdirectory - (lambda _ (chdir "..") #t))))) + (list + #:exclude #~(list "telega-live-location.el") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'enter-subdirectory + (lambda _ (chdir "contrib"))) + (add-before 'install-license-files 'leave-subdirectory + (lambda _ (chdir "..")))))) (inputs '()) (native-inputs '()) (propagated-inputs 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 40b7de4467..af53ddb6eb 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1882,7 +1882,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) @@ -1891,7 +1891,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/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 7e4fb04e0f..a878c82b66 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -99,6 +99,7 @@ "jami-fix-unit-tests-build.patch" "jami-fix-qml-imports.patch" "jami-no-webengine.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 8bc4364ece..75f38a923a 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 ad2da5fa82..841aa48bb9 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -454,6 +454,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 "048bea40cac0a89480f8c41ae542be45945f3268") + (revision "0")) + (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 "0734xia2hf7lqkm59gjhyvpsp0vl50djyhy4llwwbzbwwdkdihw4")))) + (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")) @@ -2516,7 +2551,7 @@ clause if no operation becomes available within a set amount of time. Calispel is a message-passing library, and as such leaves the role of threading abstractions and utilities left to be filled by complementary libraries such as Bordeaux-Threads and Eager Future.") - (home-page "https://www.thoughtcrime.us/software/jpl-queues/") + (home-page "https://www.thoughtcrime.us/software/calispel/") (license license:isc)))) (define-public cl-calispel @@ -18124,6 +18159,35 @@ long-running threads. In principle, it is like an in-Lisp process supervisor.") (define-public ecl-moira (sbcl-package->ecl-package sbcl-moira)) +(define-public sbcl-with-user-abort + (let ((commit "60693b4a1354faf17107ad6003b0b870cca37081") + (revision "0")) + (package + (name "sbcl-with-user-abort") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/compufox/with-user-abort") + (commit commit))) + (file-name (git-file-name "cl-with-user-abort" version)) + (sha256 + (base32 "0k1xxfvncdw4fx8nncis1ma128bqq05zky1mrzak5rjbivzjm8j1")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/compufox/with-user-abort") + (synopsis "Portability library for catching SIGINT from Common Lisp") + (description + "@code{with-user-abort} is a Common Lisp portability library providing a +like-named macro that catches the SIGINT signal.") + (license license:bsd-3)))) + +(define-public cl-with-user-abort + (sbcl-package->cl-source-package sbcl-with-user-abort)) + +(define-public ecl-with-user-abort + (sbcl-package->ecl-package sbcl-with-user-abort)) + (define-public sbcl-cl-package-locks (let ((commit "96a358ede7cef416d61d2f699e724fe1d9de602c") (revision "1")) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 800bba21a0..62eeb1faab 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")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index dc9fed90eb..fe6f122812 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -50,6 +50,7 @@ ;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2022 muradm <mail@muradm.net> ;;; Copyright © 2022 jgart <jgart@dismail.de> +;;; Copyright © 2022 ( <paren@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -151,6 +152,7 @@ #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) + #:use-module (gnu packages rust-apps) #:use-module (gnu packages search) #:use-module (gnu packages serialization) #:use-module (gnu packages samba) @@ -3811,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 @@ -3831,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 @@ -3840,7 +3848,7 @@ tools and applications: gnutls gpgme gtk+ - gtksourceview + gtksourceview-4 gtkspell3 libassuan ; in gpgme.pc Requires libcanberra @@ -3860,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 @@ -4754,3 +4765,120 @@ addresses.") mailserver on their machine. It enables these users to send their mail over a remote SMTP server.") (license license:gpl2+))) + +(define-public aerc + (package + (name "aerc") + (version "0.13.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~rjarry/aerc") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18rykklc0ppl53sm9lzhrw6kv4rcc7x45nv7qii7m4qads2pyjm5")))) + (build-system go-build-system) + (arguments + (list #:import-path "git.sr.ht/~rjarry/aerc" + ;; Installing the source is only necessary for Go libraries. + #:install-source? #f + #:build-flags + #~(list "-tags=notmuch" "-ldflags" + (string-append "-X main.Version=" #$version + " -X git.sr.ht/~rjarry/aerc/config.shareDir=" + #$output "/share/aerc")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key import-path inputs #:allow-other-keys) + (with-directory-excursion + (string-append "src/" import-path) + (substitute* (list "config/config.go" + "lib/templates/template.go" + "widgets/compose.go" + "widgets/msgviewer.go" + "worker/maildir/worker.go" + "worker/notmuch/worker.go") + (("\"sh\"") + (string-append + "\"" (search-input-file inputs "bin/sh") + "\""))) + (substitute* "commands/z.go" + (("\"zoxide\"") + (string-append + "\"" (search-input-file inputs "bin/zoxide") + "\""))) + (substitute* (list "lib/crypto/gpg/gpg.go" + "lib/crypto/gpg/gpg_test.go" + "lib/crypto/gpg/gpgbin/keys.go" + "lib/crypto/gpg/gpgbin/gpgbin.go") + (("\"gpg\"") + (string-append + "\"" (search-input-file inputs "bin/gpg") + "\"")) + (("strings\\.Contains\\(stderr\\.String\\(\\), .*\\)") + "strings.Contains(stderr.String(), \"gpg\")"))))) + (add-after 'build 'doc + (lambda* (#:key import-path build-flags #:allow-other-keys) + (invoke "make" "doc" "-C" + (string-append "src/" import-path)))) + (replace 'install + (lambda* (#:key import-path build-flags #:allow-other-keys) + (invoke "make" "install" "-C" + (string-append "src/" import-path) + (string-append "PREFIX=" #$output))))))) + (inputs (list gnupg + go-github-com-zenhack-go-notmuch + go-golang-org-x-oauth2 + go-github-com-xo-terminfo + go-github-com-stretchr-testify + go-github-com-riywo-loginshell + go-github-com-pkg-errors + go-github-com-mitchellh-go-homedir + go-github-com-miolini-datacounter + go-github-com-mattn-go-runewidth + go-github-com-mattn-go-isatty + go-github-com-lithammer-fuzzysearch + go-github-com-kyoh86-xdg + go-github-com-imdario-mergo + go-github-com-google-shlex + go-github-com-go-ini-ini + go-github-com-gdamore-tcell-v2 + go-github-com-gatherstars-com-jwz + go-github-com-fsnotify-fsnotify + go-github-com-emersion-go-smtp + go-github-com-emersion-go-sasl + go-github-com-emersion-go-pgpmail + go-github-com-emersion-go-message + go-github-com-emersion-go-maildir + go-github-com-emersion-go-imap-sortthread + go-github-com-emersion-go-imap + go-github-com-emersion-go-msgauth + go-github-com-emersion-go-mbox + go-github-com-ddevault-go-libvterm + go-github-com-danwakefield-fnmatch + go-github-com-creack-pty + go-github-com-arran4-golang-ical + go-github-com-protonmail-go-crypto + go-github-com-syndtr-goleveldb-leveldb + go-git-sr-ht-sircmpwn-getopt + go-git-sr-ht-rockorager-tcell-term + zoxide)) + (native-inputs (list scdoc)) + (home-page "https://git.sr.ht/~rjarry/aerc") + (synopsis "Email client for the terminal") + (description "@code{aerc} is a textual email client for terminals. It +features: +@enumerate +@item First-class support for using patches and @code{git send-email} +@item Vi-like keybindings and command system +@item A built-in console +@item Support for multiple accounts +@end enumerate") + ;; The license given is MIT/Expat; however, linking against notmuch + ;; effectively makes it GPL-3.0-or-later. See this thread discussing it: + ;; <https://lists.sr.ht/~rjarry/aerc-devel/%3Cb5cb213a7d0c699a886971658c2476 + ;; 1073eb2391%40disroot.org%3E> + (license license:gpl3+))) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index cd37d4682c..e0bd7633bc 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -581,7 +581,7 @@ mpdevil loads all tags and covers on demand.") (define-public mympd (package (name "mympd") - (version "10.1.2") + (version "10.1.3") (source (origin (method git-fetch) (uri (git-reference @@ -590,7 +590,7 @@ mpdevil loads all tags and covers on demand.") (file-name (git-file-name name version)) (sha256 (base32 - "1cqq09j7mi7dz5y6l7i0sa6vi2n5zrndnrxnqsi4vcg99fc2vwv8")))) + "16cvjwbyb1m88kmgylp95p82a4xdjikmrw9arl6kvmgcbyw317yp")))) (build-system cmake-build-system) (arguments (list #:tests? #f)) ; no test target 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/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/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/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..0f5e1c3530 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,13 +2728,28 @@ 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/fdlibm" "third_party/ffmpeg" + "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" @@ -2730,19 +2760,30 @@ 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/libjxl" "third_party/libpng" "third_party/libsrtp" "third_party/libsync" "third_party/libudev" + "third_party/liburlpattern" "third_party/libvpx" "third_party/libwebm" "third_party/libwebp" + "third_party/libx11" + "third_party/libxcb-keysyms" "third_party/libxml" "third_party/libxslt" "third_party/libyuv" + "third_party/lottie" "third_party/lss" "third_party/mako" "third_party/markupsafe" @@ -2750,18 +2791,23 @@ 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/openh264" "third_party/opus" "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 +2823,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 +2848,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/wuffs" + "third_party/x11proto" "third_party/zlib" "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 +2864,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* @@ -2980,6 +2984,7 @@ linux/libcurl_wrapper.h" (append clang-14 lld-as-ld-wrapper python-wrapper + python-beautifulsoup4 python-html5lib))) (inputs (modify-inputs (package-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..616eded618 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -486,14 +486,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 +655,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 +825,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 +1078,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 +1137,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 +1429,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 +1515,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 +1559,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 +1968,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 @@ -2111,14 +2111,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 +2406,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 +2729,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 +2821,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 +2938,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 +3131,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 +3287,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 +3676,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 +3685,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 +3760,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 +3907,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 +4020,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 +4121,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 +4311,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 +4380,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 +4617,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 +4724,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 +4743,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 +5547,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 +5590,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 +5717,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 +6045,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 +6766,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/texinfo.scm b/gnu/packages/texinfo.scm index 0deec8fb3a..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> @@ -40,6 +40,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages compression) #:use-module (gnu packages gettext) + #:use-module ((gnu packages hurd) #:select (hurd-target?)) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages readline)) @@ -71,7 +72,10 @@ (("env -i") "env ")) #t))) - %standard-phases))) + %standard-phases) + + ;; XXX: Work around <https://issues.guix.gnu.org/59616>. + #:tests? ,(not (hurd-target?)))) (inputs (list ncurses perl)) ;; When cross-compiling, texinfo will build some of its own binaries with ;; the native compiler. This means ncurses is needed both in both inputs @@ -98,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 757187dda7..78dbbebec1 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -5083,7 +5083,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) @@ -5092,10 +5092,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. @@ -5113,7 +5111,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))) @@ -5569,3 +5568,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 87ed717b9e..7bdd84e187 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4898,6 +4898,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..149ea1bb69 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,49 @@ 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)))) 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..7bcac8ded0 --- /dev/null +++ b/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl @@ -0,0 +1,75 @@ +;; 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 %my-public-key + (local-file (string-append (getenv "HOME") "/.ssh/id_ecdsa.pub"))) + +(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) + (authorized-keys + `(("pi" ,%my-public-key))))) + %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..7d2638dd80 --- /dev/null +++ b/gnu/system/examples/raspberry-pi-64.tmpl @@ -0,0 +1,79 @@ +;; 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 %my-public-key + (local-file (string-append (getenv "HOME") "/.ssh/id_ecdsa.pub"))) + +(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) + (authorized-keys + `(("pi" ,%my-public-key))))) + %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? |